From d9bf56bf0bf96e21cc0fe4016adb0b4a4d0dec34 Mon Sep 17 00:00:00 2001 From: Jonathan Cole Date: Tue, 16 Nov 2021 16:25:34 -0500 Subject: [PATCH] 0.14.2 rc --- changelog.md | 5 +++++ lib/guify.js | 9 +++++---- lib/guify.js.map | 2 +- lib/guify.min.js | 2 +- lib/guify.min.js.map | 2 +- package.json | 2 +- 6 files changed, 14 insertions(+), 8 deletions(-) diff --git a/changelog.md b/changelog.md index e734afa..de76af6 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,8 @@ +## 0.14.2 + +- Fixed extra padding below `range` and `color` components +- Fixed vertical alignment of `title` component + ## 0.14.1 - Fixed incorrect `interval` height and background diff --git a/lib/guify.js b/lib/guify.js index 8b7e193..86d93ea 100644 --- a/lib/guify.js +++ b/lib/guify.js @@ -1028,7 +1028,8 @@ var Color = /*#__PURE__*/function (_ComponentBase) { position: "absolute" }); dom_css__WEBPACK_IMPORTED_MODULE_3___default()(icon, { - position: "relative", + position: "absolute", + // Fixes extra height being applied below for some reason display: "inline-block", width: "12.5%", height: theme.sizing.componentHeight, @@ -3444,7 +3445,7 @@ __webpack_require__.r(__webpack_exports__); var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); ___CSS_LOADER_EXPORT___.i(_node_modules_css_loader_dist_cjs_js_variables_css__WEBPACK_IMPORTED_MODULE_2__["default"]); // Module -___CSS_LOADER_EXPORT___.push([module.id, ":root {\n --range-track-color: var(--color-component-background);\n --range-thumb-color: var(--color-component-foreground);\n --range-thumb-highlight: var(--color-component-active);\n\n --range-track-color-disabled: var(--color-component-background-disabled);\n --range-thumb-color-disabled: var(--color-text-disabled);\n}\n\ninput[type=range].guify-range {\n -webkit-appearance: none;\n width: 100%;\n height: var(--size-component-height);\n margin: 0px 0;\n padding: 0;\n display: inline-block;\n}\n\n.disabled input[type=range].guify-range {\n pointer-events: none;\n}\n\n/* Remove outlines since we'll be adding our own */\ninput[type=range].guify-range:focus {\n outline: none;\n}\ninput[type=range].guify-range::-moz-focus-outer {\n border: 0;\n}\n\n/* Webkit */\ninput[type=range].guify-range::-webkit-slider-runnable-track {\n width: 100%;\n height: var(--size-component-height);\n cursor: ew-resize;\n background: var(--color-component-background);\n background: var(--range-track-color);\n}\ninput[type=range].guify-range::-webkit-slider-thumb {\n height: var(--size-component-height);\n width: 10px;\n background: var(--color-component-foreground);\n background: var(--range-thumb-color);\n cursor: ew-resize;\n -webkit-appearance: none;\n margin-top: 0px;\n}\ninput[type=range].guify-range:focus::-webkit-slider-runnable-track {\n background: var(--color-component-active);\n background: var(--range-thumb-highlight);\n outline: none;\n}\n\n.disabled input[type=range].guify-range::-webkit-slider-runnable-track { /* Disabled track */\n pointer-events: none;\n background: var(--color-component-background-disabled);\n background: var(--range-track-color-disabled);\n}\n\n.disabled input[type=range].guify-range::-webkit-slider-thumb { /* Disabled thumb */\n pointer-events: none;\n background: var(--color-text-disabled);\n}\n\n/* Gecko */\ninput[type=range].guify-range::-moz-range-track {\n width: 100%;\n height: var(--size-component-height);\n cursor: ew-resize;\n background: var(--color-component-background);\n background: var(--range-track-color);\n}\ninput[type=range].guify-range:focus::-moz-range-track {\n background: var(--color-component-active);\n background: var(--range-thumb-highlight);\n}\ninput[type=range].guify-range::-moz-range-thumb {\n height: var(--size-component-height);\n width: 10px;\n background: var(--color-component-foreground);\n background: var(--range-thumb-color);\n cursor: ew-resize;\n border: none;\n border-radius: 0;\n}\n\n.disabled input[type=range].guify-range::-moz-range-track { /* Disabled track */\n pointer-events: none;\n background: var(--color-component-background-disabled);\n background: var(--range-track-color-disabled);\n}\n\n.disabled input[type=range].guify-range::-moz-range-thumb { /* Disabled thumb */\n pointer-events: none;\n background: var(--color-text-disabled);\n background: var(--range-thumb-color-disabled);\n}", "",{"version":3,"sources":["webpack://./src/components/public/range.css"],"names":[],"mappings":"AAEA;IACI,sDAAsD;IACtD,sDAAsD;IACtD,sDAAsD;;IAEtD,wEAAwE;IACxE,wDAAwD;AAC5D;;AAEA;IACI,wBAAwB;IACxB,WAAW;IACX,oCAAoC;IACpC,aAAa;IACb,UAAU;IACV,qBAAqB;AACzB;;AAEA;IACI,oBAAoB;AACxB;;AAEA,kDAAkD;AAClD;IACI,aAAa;AACjB;AACA;IACI,SAAS;AACb;;AAEA,WAAW;AACX;IACI,WAAW;IACX,oCAAoC;IACpC,iBAAiB;IACjB,6CAAoC;IAApC,oCAAoC;AACxC;AACA;IACI,oCAAoC;IACpC,WAAW;IACX,6CAAoC;IAApC,oCAAoC;IACpC,iBAAiB;IACjB,wBAAwB;IACxB,eAAe;AACnB;AACA;IACI,yCAAwC;IAAxC,wCAAwC;IACxC,aAAa;AACjB;;AAEA,yEAAyE,mBAAmB;IACxF,oBAAoB;IACpB,sDAA6C;IAA7C,6CAA6C;AACjD;;AAEA,gEAAgE,mBAAmB;IAC/E,oBAAoB;IACpB,sCAAsC;AAC1C;;AAEA,UAAU;AACV;IACI,WAAW;IACX,oCAAoC;IACpC,iBAAiB;IACjB,6CAAoC;IAApC,oCAAoC;AACxC;AACA;IACI,yCAAwC;IAAxC,wCAAwC;AAC5C;AACA;IACI,oCAAoC;IACpC,WAAW;IACX,6CAAoC;IAApC,oCAAoC;IACpC,iBAAiB;IACjB,YAAY;IACZ,gBAAgB;AACpB;;AAEA,4DAA4D,mBAAmB;IAC3E,oBAAoB;IACpB,sDAA6C;IAA7C,6CAA6C;AACjD;;AAEA,4DAA4D,mBAAmB;IAC3E,oBAAoB;IACpB,sCAA6C;IAA7C,6CAA6C;AACjD","sourcesContent":["@import \"../variables.css\";\n\n:root {\n --range-track-color: var(--color-component-background);\n --range-thumb-color: var(--color-component-foreground);\n --range-thumb-highlight: var(--color-component-active);\n\n --range-track-color-disabled: var(--color-component-background-disabled);\n --range-thumb-color-disabled: var(--color-text-disabled);\n}\n\ninput[type=range].guify-range {\n -webkit-appearance: none;\n width: 100%;\n height: var(--size-component-height);\n margin: 0px 0;\n padding: 0;\n display: inline-block;\n}\n\n.disabled input[type=range].guify-range {\n pointer-events: none;\n}\n\n/* Remove outlines since we'll be adding our own */\ninput[type=range].guify-range:focus {\n outline: none;\n}\ninput[type=range].guify-range::-moz-focus-outer {\n border: 0;\n}\n\n/* Webkit */\ninput[type=range].guify-range::-webkit-slider-runnable-track {\n width: 100%;\n height: var(--size-component-height);\n cursor: ew-resize;\n background: var(--range-track-color);\n}\ninput[type=range].guify-range::-webkit-slider-thumb {\n height: var(--size-component-height);\n width: 10px;\n background: var(--range-thumb-color);\n cursor: ew-resize;\n -webkit-appearance: none;\n margin-top: 0px;\n}\ninput[type=range].guify-range:focus::-webkit-slider-runnable-track {\n background: var(--range-thumb-highlight);\n outline: none;\n}\n\n.disabled input[type=range].guify-range::-webkit-slider-runnable-track { /* Disabled track */\n pointer-events: none;\n background: var(--range-track-color-disabled);\n}\n\n.disabled input[type=range].guify-range::-webkit-slider-thumb { /* Disabled thumb */\n pointer-events: none;\n background: var(--color-text-disabled);\n}\n\n/* Gecko */\ninput[type=range].guify-range::-moz-range-track {\n width: 100%;\n height: var(--size-component-height);\n cursor: ew-resize;\n background: var(--range-track-color);\n}\ninput[type=range].guify-range:focus::-moz-range-track {\n background: var(--range-thumb-highlight);\n}\ninput[type=range].guify-range::-moz-range-thumb {\n height: var(--size-component-height);\n width: 10px;\n background: var(--range-thumb-color);\n cursor: ew-resize;\n border: none;\n border-radius: 0;\n}\n\n.disabled input[type=range].guify-range::-moz-range-track { /* Disabled track */\n pointer-events: none;\n background: var(--range-track-color-disabled);\n}\n\n.disabled input[type=range].guify-range::-moz-range-thumb { /* Disabled thumb */\n pointer-events: none;\n background: var(--range-thumb-color-disabled);\n}"],"sourceRoot":""}]); +___CSS_LOADER_EXPORT___.push([module.id, ":root {\n --range-track-color: var(--color-component-background);\n --range-thumb-color: var(--color-component-foreground);\n --range-thumb-highlight: var(--color-component-active);\n\n --range-track-color-disabled: var(--color-component-background-disabled);\n --range-thumb-color-disabled: var(--color-text-disabled);\n}\n\ninput[type=range].guify-range {\n position: absolute; /* Gets rid of weird spacing below slider that I can't figure out the source of, seems internal */\n -webkit-appearance: none;\n width: 100%;\n height: var(--size-component-height);\n margin: 0px 0;\n padding: 0;\n display: inline-block;\n}\n\n.disabled input[type=range].guify-range {\n pointer-events: none;\n}\n\n/* Remove outlines since we'll be adding our own */\ninput[type=range].guify-range:focus {\n outline: none;\n}\ninput[type=range].guify-range::-moz-focus-outer {\n border: 0;\n}\n\n/* Webkit */\ninput[type=range].guify-range::-webkit-slider-runnable-track {\n width: 100%;\n height: var(--size-component-height);\n cursor: ew-resize;\n background: var(--color-component-background);\n background: var(--range-track-color);\n}\ninput[type=range].guify-range::-webkit-slider-thumb {\n height: var(--size-component-height);\n width: 10px;\n background: var(--color-component-foreground);\n background: var(--range-thumb-color);\n cursor: ew-resize;\n -webkit-appearance: none;\n margin-top: 0px;\n}\ninput[type=range].guify-range:focus::-webkit-slider-runnable-track {\n background: var(--color-component-active);\n background: var(--range-thumb-highlight);\n outline: none;\n}\n\n.disabled input[type=range].guify-range::-webkit-slider-runnable-track { /* Disabled track */\n pointer-events: none;\n background: var(--color-component-background-disabled);\n background: var(--range-track-color-disabled);\n}\n\n.disabled input[type=range].guify-range::-webkit-slider-thumb { /* Disabled thumb */\n pointer-events: none;\n background: var(--color-text-disabled);\n}\n\n/* Gecko */\ninput[type=range].guify-range::-moz-range-track {\n width: 100%;\n height: var(--size-component-height);\n cursor: ew-resize;\n background: var(--color-component-background);\n background: var(--range-track-color);\n}\ninput[type=range].guify-range:focus::-moz-range-track {\n background: var(--color-component-active);\n background: var(--range-thumb-highlight);\n}\ninput[type=range].guify-range::-moz-range-thumb {\n height: var(--size-component-height);\n width: 10px;\n background: var(--color-component-foreground);\n background: var(--range-thumb-color);\n cursor: ew-resize;\n border: none;\n border-radius: 0;\n}\n\n.disabled input[type=range].guify-range::-moz-range-track { /* Disabled track */\n pointer-events: none;\n background: var(--color-component-background-disabled);\n background: var(--range-track-color-disabled);\n}\n\n.disabled input[type=range].guify-range::-moz-range-thumb { /* Disabled thumb */\n pointer-events: none;\n background: var(--color-text-disabled);\n background: var(--range-thumb-color-disabled);\n}", "",{"version":3,"sources":["webpack://./src/components/public/range.css"],"names":[],"mappings":"AAEA;IACI,sDAAsD;IACtD,sDAAsD;IACtD,sDAAsD;;IAEtD,wEAAwE;IACxE,wDAAwD;AAC5D;;AAEA;IACI,kBAAkB,EAAE,iGAAiG;IACrH,wBAAwB;IACxB,WAAW;IACX,oCAAoC;IACpC,aAAa;IACb,UAAU;IACV,qBAAqB;AACzB;;AAEA;IACI,oBAAoB;AACxB;;AAEA,kDAAkD;AAClD;IACI,aAAa;AACjB;AACA;IACI,SAAS;AACb;;AAEA,WAAW;AACX;IACI,WAAW;IACX,oCAAoC;IACpC,iBAAiB;IACjB,6CAAoC;IAApC,oCAAoC;AACxC;AACA;IACI,oCAAoC;IACpC,WAAW;IACX,6CAAoC;IAApC,oCAAoC;IACpC,iBAAiB;IACjB,wBAAwB;IACxB,eAAe;AACnB;AACA;IACI,yCAAwC;IAAxC,wCAAwC;IACxC,aAAa;AACjB;;AAEA,yEAAyE,mBAAmB;IACxF,oBAAoB;IACpB,sDAA6C;IAA7C,6CAA6C;AACjD;;AAEA,gEAAgE,mBAAmB;IAC/E,oBAAoB;IACpB,sCAAsC;AAC1C;;AAEA,UAAU;AACV;IACI,WAAW;IACX,oCAAoC;IACpC,iBAAiB;IACjB,6CAAoC;IAApC,oCAAoC;AACxC;AACA;IACI,yCAAwC;IAAxC,wCAAwC;AAC5C;AACA;IACI,oCAAoC;IACpC,WAAW;IACX,6CAAoC;IAApC,oCAAoC;IACpC,iBAAiB;IACjB,YAAY;IACZ,gBAAgB;AACpB;;AAEA,4DAA4D,mBAAmB;IAC3E,oBAAoB;IACpB,sDAA6C;IAA7C,6CAA6C;AACjD;;AAEA,4DAA4D,mBAAmB;IAC3E,oBAAoB;IACpB,sCAA6C;IAA7C,6CAA6C;AACjD","sourcesContent":["@import \"../variables.css\";\n\n:root {\n --range-track-color: var(--color-component-background);\n --range-thumb-color: var(--color-component-foreground);\n --range-thumb-highlight: var(--color-component-active);\n\n --range-track-color-disabled: var(--color-component-background-disabled);\n --range-thumb-color-disabled: var(--color-text-disabled);\n}\n\ninput[type=range].guify-range {\n position: absolute; /* Gets rid of weird spacing below slider that I can't figure out the source of, seems internal */\n -webkit-appearance: none;\n width: 100%;\n height: var(--size-component-height);\n margin: 0px 0;\n padding: 0;\n display: inline-block;\n}\n\n.disabled input[type=range].guify-range {\n pointer-events: none;\n}\n\n/* Remove outlines since we'll be adding our own */\ninput[type=range].guify-range:focus {\n outline: none;\n}\ninput[type=range].guify-range::-moz-focus-outer {\n border: 0;\n}\n\n/* Webkit */\ninput[type=range].guify-range::-webkit-slider-runnable-track {\n width: 100%;\n height: var(--size-component-height);\n cursor: ew-resize;\n background: var(--range-track-color);\n}\ninput[type=range].guify-range::-webkit-slider-thumb {\n height: var(--size-component-height);\n width: 10px;\n background: var(--range-thumb-color);\n cursor: ew-resize;\n -webkit-appearance: none;\n margin-top: 0px;\n}\ninput[type=range].guify-range:focus::-webkit-slider-runnable-track {\n background: var(--range-thumb-highlight);\n outline: none;\n}\n\n.disabled input[type=range].guify-range::-webkit-slider-runnable-track { /* Disabled track */\n pointer-events: none;\n background: var(--range-track-color-disabled);\n}\n\n.disabled input[type=range].guify-range::-webkit-slider-thumb { /* Disabled thumb */\n pointer-events: none;\n background: var(--color-text-disabled);\n}\n\n/* Gecko */\ninput[type=range].guify-range::-moz-range-track {\n width: 100%;\n height: var(--size-component-height);\n cursor: ew-resize;\n background: var(--range-track-color);\n}\ninput[type=range].guify-range:focus::-moz-range-track {\n background: var(--range-thumb-highlight);\n}\ninput[type=range].guify-range::-moz-range-thumb {\n height: var(--size-component-height);\n width: 10px;\n background: var(--range-thumb-color);\n cursor: ew-resize;\n border: none;\n border-radius: 0;\n}\n\n.disabled input[type=range].guify-range::-moz-range-track { /* Disabled track */\n pointer-events: none;\n background: var(--range-track-color-disabled);\n}\n\n.disabled input[type=range].guify-range::-moz-range-thumb { /* Disabled thumb */\n pointer-events: none;\n background: var(--range-thumb-color-disabled);\n}"],"sourceRoot":""}]); // Exports /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); @@ -3534,7 +3535,7 @@ __webpack_require__.r(__webpack_exports__); var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); ___CSS_LOADER_EXPORT___.i(_node_modules_css_loader_dist_cjs_js_variables_css__WEBPACK_IMPORTED_MODULE_2__["default"]); // Module -___CSS_LOADER_EXPORT___.push([module.id, ".guify-title {\n box-sizing: border-box;\n width: 100%;\n display: inline-block;\n height: var(--size-component-height);\n vertical-align: top;\n}\n\n.guify-title-text {\n display: inline-block;\n vertical-align: sub;\n height: var(--size-component-height);\n line-height: var(--size-component-height);\n padding-left: 5px;\n padding-right: 5px;\n background-color: var(--color-text-primary);\n color: var(--color-panel-background);\n}\n\n/* Disabled style */\n\n.disabled .guify-title-text {\n background-color: var(--color-text-disabled);\n}", "",{"version":3,"sources":["webpack://./src/components/public/title.css"],"names":[],"mappings":"AAEA;IACI,sBAAsB;IACtB,WAAW;IACX,qBAAqB;IACrB,oCAAoC;IACpC,mBAAmB;AACvB;;AAEA;IACI,qBAAqB;IACrB,mBAAmB;IACnB,oCAAoC;IACpC,yCAAyC;IACzC,iBAAiB;IACjB,kBAAkB;IAClB,2CAA2C;IAC3C,oCAAoC;AACxC;;AAEA,mBAAmB;;AAEnB;IACI,4CAA4C;AAChD","sourcesContent":["@import \"../variables.css\";\n\n.guify-title {\n box-sizing: border-box;\n width: 100%;\n display: inline-block;\n height: var(--size-component-height);\n vertical-align: top;\n}\n\n.guify-title-text {\n display: inline-block;\n vertical-align: sub;\n height: var(--size-component-height);\n line-height: var(--size-component-height);\n padding-left: 5px;\n padding-right: 5px;\n background-color: var(--color-text-primary);\n color: var(--color-panel-background);\n}\n\n/* Disabled style */\n\n.disabled .guify-title-text {\n background-color: var(--color-text-disabled);\n}"],"sourceRoot":""}]); +___CSS_LOADER_EXPORT___.push([module.id, ".guify-title {\n box-sizing: border-box;\n width: 100%;\n display: inline-block;\n height: var(--size-component-height);\n vertical-align: top;\n}\n\n.guify-title-text {\n display: inline-block;\n height: var(--size-component-height);\n line-height: var(--size-component-height);\n padding-left: 5px;\n padding-right: 5px;\n background-color: var(--color-text-primary);\n color: var(--color-panel-background);\n}\n\n/* Disabled style */\n\n.disabled .guify-title-text {\n background-color: var(--color-text-disabled);\n}", "",{"version":3,"sources":["webpack://./src/components/public/title.css"],"names":[],"mappings":"AAEA;IACI,sBAAsB;IACtB,WAAW;IACX,qBAAqB;IACrB,oCAAoC;IACpC,mBAAmB;AACvB;;AAEA;IACI,qBAAqB;IACrB,oCAAoC;IACpC,yCAAyC;IACzC,iBAAiB;IACjB,kBAAkB;IAClB,2CAA2C;IAC3C,oCAAoC;AACxC;;AAEA,mBAAmB;;AAEnB;IACI,4CAA4C;AAChD","sourcesContent":["@import \"../variables.css\";\n\n.guify-title {\n box-sizing: border-box;\n width: 100%;\n display: inline-block;\n height: var(--size-component-height);\n vertical-align: top;\n}\n\n.guify-title-text {\n display: inline-block;\n height: var(--size-component-height);\n line-height: var(--size-component-height);\n padding-left: 5px;\n padding-right: 5px;\n background-color: var(--color-text-primary);\n color: var(--color-panel-background);\n}\n\n/* Disabled style */\n\n.disabled .guify-title-text {\n background-color: var(--color-text-disabled);\n}"],"sourceRoot":""}]); // Exports /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); @@ -3561,7 +3562,7 @@ __webpack_require__.r(__webpack_exports__); var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); // Module -___CSS_LOADER_EXPORT___.push([module.id, ":root {\n --color-menu-bar-background: \"black\";\n --color-menu-bar-text: \"black\";\n --color-panel-background: \"black\";\n\n --color-component-background: \"black\";\n --color-component-background-hover: \"black\";\n --color-component-background-disabled: \"black\";\n --color-component-foreground: \"black\";\n --color-component-active: \"black\";\n\n --color-text-primary: \"black\";\n --color-text-secondary: \"black\";\n --color-text-hover: \"black\";\n --color-text-active: \"black\";\n --color-text-disabled: \"black\";\n\n --size-menu-bar-height: 25px;\n --size-component-height: 2rem;\n --size-component-spacing: 5px;\n --size-label-width: 42%;\n\n /* --font-family: \"Hack\";\n --font-size: initial;\n --font-weight: initial; */\n\n}\n", "",{"version":3,"sources":["webpack://./src/components/variables.css"],"names":[],"mappings":"AAAA;IACI,oCAAoC;IACpC,8BAA8B;IAC9B,iCAAiC;;IAEjC,qCAAqC;IACrC,2CAA2C;IAC3C,8CAA8C;IAC9C,qCAAqC;IACrC,iCAAiC;;IAEjC,6BAA6B;IAC7B,+BAA+B;IAC/B,2BAA2B;IAC3B,4BAA4B;IAC5B,8BAA8B;;IAE9B,4BAA4B;IAC5B,6BAA6B;IAC7B,6BAA6B;IAC7B,uBAAuB;;IAEvB;;6BAEyB;;AAE7B","sourcesContent":[":root {\n --color-menu-bar-background: \"black\";\n --color-menu-bar-text: \"black\";\n --color-panel-background: \"black\";\n\n --color-component-background: \"black\";\n --color-component-background-hover: \"black\";\n --color-component-background-disabled: \"black\";\n --color-component-foreground: \"black\";\n --color-component-active: \"black\";\n\n --color-text-primary: \"black\";\n --color-text-secondary: \"black\";\n --color-text-hover: \"black\";\n --color-text-active: \"black\";\n --color-text-disabled: \"black\";\n\n --size-menu-bar-height: 25px;\n --size-component-height: 2rem;\n --size-component-spacing: 5px;\n --size-label-width: 42%;\n\n /* --font-family: \"Hack\";\n --font-size: initial;\n --font-weight: initial; */\n\n}\n"],"sourceRoot":""}]); +___CSS_LOADER_EXPORT___.push([module.id, ":root {\n --color-menu-bar-background: \"black\";\n --color-menu-bar-text: \"black\";\n --color-panel-background: \"black\";\n\n --color-component-background: \"black\";\n --color-component-background-hover: \"black\";\n --color-component-background-disabled: \"black\";\n --color-component-foreground: \"black\";\n --color-component-active: \"black\";\n\n --color-text-primary: \"black\";\n --color-text-secondary: \"black\";\n --color-text-hover: \"black\";\n --color-text-active: \"black\";\n --color-text-disabled: \"black\";\n\n --size-menu-bar-height: 25px;\n --size-component-height: 2rem;\n --size-component-spacing: 5px;\n --size-label-width: 42%;\n}\n", "",{"version":3,"sources":["webpack://./src/components/variables.css"],"names":[],"mappings":"AAAA;IACI,oCAAoC;IACpC,8BAA8B;IAC9B,iCAAiC;;IAEjC,qCAAqC;IACrC,2CAA2C;IAC3C,8CAA8C;IAC9C,qCAAqC;IACrC,iCAAiC;;IAEjC,6BAA6B;IAC7B,+BAA+B;IAC/B,2BAA2B;IAC3B,4BAA4B;IAC5B,8BAA8B;;IAE9B,4BAA4B;IAC5B,6BAA6B;IAC7B,6BAA6B;IAC7B,uBAAuB;AAC3B","sourcesContent":[":root {\n --color-menu-bar-background: \"black\";\n --color-menu-bar-text: \"black\";\n --color-panel-background: \"black\";\n\n --color-component-background: \"black\";\n --color-component-background-hover: \"black\";\n --color-component-background-disabled: \"black\";\n --color-component-foreground: \"black\";\n --color-component-active: \"black\";\n\n --color-text-primary: \"black\";\n --color-text-secondary: \"black\";\n --color-text-hover: \"black\";\n --color-text-active: \"black\";\n --color-text-disabled: \"black\";\n\n --size-menu-bar-height: 25px;\n --size-component-height: 2rem;\n --size-component-spacing: 5px;\n --size-label-width: 42%;\n}\n"],"sourceRoot":""}]); // Exports /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); diff --git a/lib/guify.js.map b/lib/guify.js.map index a4237fa..e18f7eb 100644 --- a/lib/guify.js.map +++ b/lib/guify.js.map @@ -1 +1 @@ -{"version":3,"file":"guify.js","mappings":"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AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA,kBAAkB;;AAElB,kBAAkB;AAClB;AACA;AACA;AACA;AACA,KAAK,IAAI;AACT,IAAI;AACJ;AACA;AACA;;;;;;;;;;;AC5DA,qBAAqB;AACrB,wBAAwB,eAAe;;AAEvC;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA,wCAAwC;;AAExC;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB;;;;;;;;;;;ACzDxB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAM,IAA8B;AACpC,QAAQ,KAA6B;AACrC;AACA;AACA,IAAI,iBAAiB;AACrB,IAAI,KAAK,EAMN;;AAEH,CAAC;;;;;;;;;;;ACvBD;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,gCAAgC,QAAQ;AACxC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;AC7BA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA,kBAAkB,KAA6B;;AAE/C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,SAAS,OAAO;AAChB;AACA;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;A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A;AACA;AACA;;;;;;;;;;;ACvGa;;AAEb;AACA;;AAEA;AACA;AACA,sDAAsD;;AAEtD;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;ACtCa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACVa;;AAEb;AACA;AACA,cAAc,KAAwC,GAAG,sBAAiB,GAAG,CAAI;;AAEjF;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACXa;;AAEb;AACA;AACA;;AAEA;AACA,kDAAkD;AAClD;;AAEA;AACA,0CAA0C;AAC1C;;AAEA;;AAEA;AACA,iFAAiF;AACjF;;AAEA;;AAEA;AACA,aAAa;AACb;;AAEA;AACA,aAAa;AACb;;AAEA;AACA,aAAa;AACb;;AAEA;;AAEA;AACA,yDAAyD;AACzD,IAAI;;AAEJ;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACrEa;;AAEb;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;ACfA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,uBAAuB;AACvB,uBAAuB;;AAEvB;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,+BAA+B,oBAAoB,MAAM;AACzD,+BAA+B,oBAAoB,MAAM;AACzD,+BAA+B,oBAAoB,MAAM;AACzD;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,iBAAiB;AACjB,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,iBAAiB;AACjB,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,iBAAiB;AACjB,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,iBAAiB;AACjB,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD,yCAAyC;AACzC,yCAAyC;AACzC;;AAEA;AACA;;AAEA,aAAa;AACb;;AAEA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa;AACb;;AAEA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,eAAe;AACf;AACA;AACA;AACA,uDAAuD;AACvD,yCAAyC;AACzC,yCAAyC;AACzC;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB,wCAAwC;AAC5D,oBAAoB,wCAAwC;AAC5D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uCAAuC;AAC3D,oBAAoB,wCAAwC;AAC5D,oBAAoB,wCAAwC;AAC5D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sCAAsC;AAC1D,oBAAoB,uCAAuC;AAC3D;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,gEAAgE,WAAW;AAC3E;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,6BAA6B,iBAAiB;AAC9C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,2DAA2D,wBAAwB;;AAEnF;AACA;AACA,2CAA2C,wBAAwB;AACnE;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,8EAA8E,4BAA4B,iBAAiB;AAC3H,8EAA8E,2BAA2B,kBAAkB;AAC3H,qDAAqD,oDAAoD,iBAAiB;AAC1H,qDAAqD,oDAAoD,iBAAiB;AAC1H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;AACA;AACA;AACA;;AAEA,oDAAoD,0BAA0B;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;;AAEA,MAAM,iBAAiB,aAAa,iBAAiB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,6BAA6B;;AAE7B;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE,cAAc,EAAE,cAAc,EAAE;AACjE,+BAA+B,EAAE,cAAc,EAAE,cAAc,EAAE;AACjE,+BAA+B,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE;AACjF,+BAA+B,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE;AACjF;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yCAAyC,SAAS,QAAQ,SAAS,QAAQ,QAAQ;AACnF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,2CAA2C;AAC3C;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA,IAAI,KAA6B;AACjC;AACA;AACA;AACA,SAAS,IAA0C;AACnD,IAAI,mCAAO,aAAa,kBAAkB;AAAA,kGAAC;AAC3C;AACA;AACA,KAAK,EAEJ;;AAED,CAAC;;;;;;;;;;;;ACzqCD,YAAY,mBAAO,CAAC,4DAAe;;AAEnC;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;;AAEA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;ACnBA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;;AAEA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;ACjEA,YAAY,mBAAO,CAAC,sDAAY;;AAEhC;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;;AAEA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;ACpBA,SAAS,mBAAO,CAAC,uCAAM;AACvB,SAAS,mBAAO,CAAC,uCAAM;;AAEvB;AACA;AACA;;AAEA;;;;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACzBA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC;;AAElC;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,QAAQ;AAC/B;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;ACjCA,UAAU,mBAAO,CAAC,yDAAW;AAC7B,kBAAkB,mBAAO,CAAC,iEAAmB;;AAE7C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,oCAAoC;AACpC;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB,OAAO;AACzB;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;AC5GA,UAAU,mBAAO,CAAC,yDAAW;AAC7B,kBAAkB,mBAAO,CAAC,iEAAmB;;AAE7C;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,YAAY;AAC3B,eAAe,UAAU;AACzB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,gBAAgB,mBAAmB;AACnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,eAAe,UAAU;AACzB,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;;AAEA,oBAAoB,sBAAsB;AAC1C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,eAAe,UAAU;AACzB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,eAAe,UAAU;AACzB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,UAAU;AACzB,gBAAgB,QAAQ;AACxB;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,eAAe,UAAU;AACzB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sBAAsB;AACrC,eAAe,YAAY;AAC3B,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sBAAsB;AACrC,eAAe,YAAY;AAC3B,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,sBAAsB;AACrC,eAAe,YAAY;AAC3B,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,eAAe,OAAO;AACtB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,4BAA4B,sBAAsB;AAClD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,eAAe,MAAM;AACrB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA,iDAAiD;AACjD;;AAEA;AACA,2BAA2B,oBAAoB;AAC/C;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAQ,IAA0C;AAClD,QAAQ,mCAAO;AACf;AACA,SAAS;AAAA,kGAAC;AACV;AACA,SAAS,EAKJ;AACL,CAAC,oDAAoD;;;;;;;UCrerD;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;;;;;;;;;;;;ACNA;AACA;AACA;AACA,IAAIG,KAAK,GAAGD,+CAAZ","sources":["webpack://guify/webpack/universalModuleDefinition","webpack://guify/./node_modules/add-px-to-style/index.js","webpack://guify/./src/component-manager.js","webpack://guify/./src/components/component-base.js","webpack://guify/./src/components/internal/menu-bar.js","webpack://guify/./src/components/internal/panel.js","webpack://guify/./src/components/internal/toast-area.js","webpack://guify/./src/components/partials/container.js","webpack://guify/./src/components/partials/header.js","webpack://guify/./src/components/partials/label.js","webpack://guify/./src/components/partials/value.js","webpack://guify/./src/components/public/button.js","webpack://guify/./src/components/public/checkbox.js","webpack://guify/./src/components/public/color.js","webpack://guify/./src/components/public/display.js","webpack://guify/./src/components/public/file.js","webpack://guify/./src/components/public/folder.js","webpack://guify/./src/components/public/interval.js","webpack://guify/./src/components/public/range.js","webpack://guify/./src/components/public/select.js","webpack://guify/./src/components/public/text.js","webpack://guify/./src/components/public/title.js","webpack://guify/./src/gui.js","webpack://guify/./src/theme.js","webpack://guify/./src/themes.js","webpack://guify/./src/utils/math-utils.js","webpack://guify/./src/components/internal/container.css","webpack://guify/./src/components/internal/menu-bar.css","webpack://guify/./src/components/internal/panel.css","webpack://guify/./src/components/internal/toast-area.css","webpack://guify/./src/components/partials/container.css","webpack://guify/./src/components/partials/label.css","webpack://guify/./src/components/partials/value.css","webpack://guify/./src/components/public/button.css","webpack://guify/./src/components/public/checkbox.css","webpack://guify/./src/components/public/color.css","webpack://guify/./src/components/public/display.css","webpack://guify/./src/components/public/file.css","webpack://guify/./src/components/public/folder.css","webpack://guify/./src/components/public/interval.css","webpack://guify/./src/components/public/range.css","webpack://guify/./src/components/public/select.css","webpack://guify/./src/components/public/text.css","webpack://guify/./src/components/public/title.css","webpack://guify/./src/components/variables.css","webpack://guify/./node_modules/css-loader/dist/runtime/api.js","webpack://guify/./node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://guify/./node_modules/dom-css/index.js","webpack://guify/./node_modules/insert-css/index.js","webpack://guify/./node_modules/is-numeric/is-numeric.js","webpack://guify/./node_modules/prefix-style/index.js","webpack://guify/./node_modules/screenfull/dist/screenfull.js","webpack://guify/./node_modules/simple-color-picker/dist/simple-color-picker.module.js","webpack://guify/./src/components/internal/container.css?0113","webpack://guify/./src/components/internal/menu-bar.css?3bfe","webpack://guify/./src/components/internal/panel.css?bbeb","webpack://guify/./src/components/internal/toast-area.css?3899","webpack://guify/./src/components/partials/container.css?cfea","webpack://guify/./src/components/partials/label.css?3e26","webpack://guify/./src/components/partials/value.css?cf62","webpack://guify/./src/components/public/button.css?2c6d","webpack://guify/./src/components/public/checkbox.css?8d5c","webpack://guify/./src/components/public/color.css?5c58","webpack://guify/./src/components/public/display.css?3c9a","webpack://guify/./src/components/public/file.css?9b4e","webpack://guify/./src/components/public/folder.css?b2a7","webpack://guify/./src/components/public/interval.css?430e","webpack://guify/./src/components/public/range.css?3e15","webpack://guify/./src/components/public/select.css?80f1","webpack://guify/./src/components/public/text.css?0dfd","webpack://guify/./src/components/public/title.css?d79d","webpack://guify/./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://guify/./node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://guify/./node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://guify/./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://guify/./node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://guify/./node_modules/style-loader/dist/runtime/styleTagTransform.js","webpack://guify/./node_modules/tinycolor2/tinycolor.js","webpack://guify/./node_modules/to-camel-case/index.js","webpack://guify/./node_modules/to-no-case/index.js","webpack://guify/./node_modules/to-space-case/index.js","webpack://guify/./node_modules/uuid/index.js","webpack://guify/./node_modules/uuid/lib/bytesToUuid.js","webpack://guify/./node_modules/uuid/lib/rng-browser.js","webpack://guify/./node_modules/uuid/v1.js","webpack://guify/./node_modules/uuid/v4.js","webpack://guify/./node_modules/wolfy87-eventemitter/EventEmitter.js","webpack://guify/webpack/bootstrap","webpack://guify/webpack/runtime/compat get default export","webpack://guify/webpack/runtime/define property getters","webpack://guify/webpack/runtime/hasOwnProperty shorthand","webpack://guify/webpack/runtime/make namespace object","webpack://guify/./src/guify.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(self, function() {\nreturn ","/* The following list is defined in React's core */\nvar IS_UNITLESS = {\n animationIterationCount: true,\n boxFlex: true,\n boxFlexGroup: true,\n boxOrdinalGroup: true,\n columnCount: true,\n flex: true,\n flexGrow: true,\n flexPositive: true,\n flexShrink: true,\n flexNegative: true,\n flexOrder: true,\n gridRow: true,\n gridColumn: true,\n fontWeight: true,\n lineClamp: true,\n lineHeight: true,\n opacity: true,\n order: true,\n orphans: true,\n tabSize: true,\n widows: true,\n zIndex: true,\n zoom: true,\n\n // SVG-related properties\n fillOpacity: true,\n stopOpacity: true,\n strokeDashoffset: true,\n strokeOpacity: true,\n strokeWidth: true\n};\n\nmodule.exports = function(name, value) {\n if(typeof value === 'number' && !IS_UNITLESS[ name ]) {\n return value + 'px';\n } else {\n return value;\n }\n};","import { default as TitleComponent } from \"./components/public/title\";\nimport { default as RangeComponent } from \"./components/public/range\";\nimport { default as ButtonComponent } from \"./components/public/button\";\nimport { default as CheckboxComponent } from \"./components/public/checkbox\";\nimport { default as SelectComponent } from \"./components/public/select\";\nimport { default as TextComponent } from \"./components/public/text\";\nimport { default as ColorComponent } from \"./components/public/color\";\nimport { default as FolderComponent } from \"./components/public/folder\";\nimport { default as FileComponent } from \"./components/public/file\";\nimport { default as DisplayComponent } from \"./components/public/display\";\nimport { default as IntervalComponent } from \"./components/public/interval\";\n\n/**\n * Manages the loading and instantiation of Components.\n */\nexport class ComponentManager {\n constructor(theme) {\n this.theme = theme;\n this.components = {\n \"title\": TitleComponent,\n \"range\": RangeComponent,\n \"button\": ButtonComponent,\n \"checkbox\": CheckboxComponent,\n \"select\": SelectComponent,\n \"text\": TextComponent,\n \"color\": ColorComponent,\n \"folder\": FolderComponent,\n \"file\": FileComponent,\n \"display\": DisplayComponent,\n \"interval\": IntervalComponent,\n };\n\n }\n\n /**\n * Creates the component specified by `opts` and appends it to the\n * document as a child of `root`.\n *\n * @param {HTMLElement} [root] Parent of the created component\n * @param {Object} [opts] Options used to create the component\n */\n Create(root, opts) {\n let initializer = this.components[opts.type];\n if(initializer === undefined) {\n throw new Error(`No component type named '${opts.type}' exists.`);\n }\n\n let newComponent = new initializer(root, opts, this.theme);\n\n return newComponent;\n }\n\n\n\n}\n","import EventEmitter from \"wolfy87-eventemitter\";\nimport { v4 as uuidv4 } from \"uuid\";\n\nimport { default as ContainerPartial } from \"./partials/container\";\n\nexport default class ComponentBase extends EventEmitter {\n SetEnabled(enabled) {\n this.enabled = enabled;\n if (enabled) {\n this.container?.classList.remove(\"disabled\");\n } else {\n this.container?.classList.add(\"disabled\");\n }\n }\n\n Remove() {\n if (this.container) {\n this.container.parentNode.removeChild(this.container);\n }\n }\n\n constructor(root, opts, theme, makeContainer=true) {\n super();\n\n this.root = root;\n this.opts = opts;\n this.theme = theme;\n\n this.uuid = uuidv4();\n\n if (makeContainer) {\n this.container = ContainerPartial(root, opts.label, theme);\n }\n\n this.SetEnabled(opts.enabled || true);\n }\n}","import ComponentBase from \"../component-base.js\";\n\nimport css from \"dom-css\";\nimport screenfull from \"screenfull\";\n\nimport \"./menu-bar.css\";\n\nexport class MenuBar extends ComponentBase {\n constructor(root, opts, theme) {\n super(root, opts, theme, false);\n\n // Create menu bar\n this.element = document.createElement(\"div\");\n this.element.classList.add(\"guify-bar\");\n root.appendChild(this.element);\n\n if (opts.title) {\n // Create a text label inside of the bar\n let text = this.element.appendChild(document.createElement(\"div\"));\n text.classList.add(\"guify-bar-title\");\n text.innerHTML = opts.title;\n this.label = text;\n }\n\n // Make the menu collapse button\n let menuButton = this.element.appendChild(document.createElement(\"button\"));\n menuButton.classList.add(\"guify-bar-button\");\n menuButton.innerHTML = \"Controls\";\n css(menuButton, {\n left: opts.align == \"left\" ? \"0\" : \"unset\",\n right: opts.align == \"left\" ? \"unset\" : \"0\",\n });\n menuButton.onclick = () => {\n this.emit(\"ontogglepanel\");\n };\n\n // Make the fullscreen button\n if (screenfull.isEnabled) {\n let fullscreenButton = this.element.appendChild(document.createElement(\"button\"));\n fullscreenButton.classList.add(\"guify-bar-button\");\n fullscreenButton.innerHTML = \"「 」\";\n fullscreenButton.setAttribute(\"aria-label\", \"Toggle Fullscreen\");\n css(fullscreenButton, {\n left: opts.align == \"left\" ? \"unset\" : \"0\", // Place on opposite side from menuButton\n right: opts.align == \"left\" ? \"0\" : \"unset\",\n });\n fullscreenButton.onclick = () => {\n this.emit(\"onfullscreenrequested\");\n };\n }\n\n }\n\n SetVisible(show) {\n this.element.style.display = show ? \"block\" : \"none\";\n }\n\n}\n","import ComponentBase from \"../component-base.js\";\n\nimport css from \"dom-css\";\n\nimport \"./panel.css\";\n\nexport class Panel extends ComponentBase {\n constructor(root, opts, theme) {\n super(root, opts, theme, false);\n\n // Container the panel will sit in\n this.container = root.appendChild(document.createElement(\"div\"));\n this.container.classList.add(\"guify-panel-container\");\n css(this.container, {\n width: opts.width,\n opacity: opts.opacity || 1.0,\n left: opts.align == \"left\" ? \"0\" : \"unset\",\n right: opts.align == \"left\" ? \"unset\" : \"0\",\n });\n\n if(opts.panelMode == \"outer\") {\n css(this.container, {\n left: opts.align == \"left\" ? \"unset\" : \"100%\",\n right: opts.align == \"left\" ? \"100%\" : \"unset\",\n });\n }\n\n if(opts.barMode === \"none\") {\n this._MakeToggleButton();\n }\n\n // Create panel inside container\n this.panel = this.container.appendChild(document.createElement(\"div\"));\n this.panel.classList.add(\"guify-panel\");\n\n // Add a title to the panel\n if(opts.barMode === \"none\" && opts.title)\n require(\"../partials/header\")(this.panel, opts.title, theme);\n\n }\n\n /**\n * Makes the panel visible based on the truthiness of `show`.\n * @param {Bool} [show]\n */\n SetVisible(show) {\n if(show){\n // this.panel.style.height = Array.prototype.reduce.call(this.panel.childNodes, function(p, c) {return p + (c.offsetHeight || 0) + 5 + 1;}, 0) + 'px';\n // this.panel.style.paddingTop = '14px';\n // this.panel.style.paddingBottom = '8px';\n this.panel.classList.remove(\"guify-panel-hidden\");\n\n if(this.menuButton) this.menuButton.setAttribute(\"alt\", \"Close GUI\");\n\n }\n else {\n // this.panel.style.height = '0px';\n // this.panel.style.paddingTop = '0px';\n // this.panel.style.paddingBottom = '0px';\n this.panel.classList.add(\"guify-panel-hidden\");\n\n if(this.menuButton) this.menuButton.setAttribute(\"alt\", \"Open GUI\");\n\n }\n }\n\n /**\n * Toggles the visibility of the panel.\n */\n ToggleVisible() {\n if (this.panel.classList.contains(\"guify-panel-hidden\"))\n this.SetVisible(true);\n else\n this.SetVisible(false);\n }\n\n /**\n * Makes a show/hide button that sits at the bottom of the panel.\n */\n _MakeToggleButton() {\n // Make the menu collapse button\n this.menuButton = this.container.appendChild(document.createElement(\"button\"));\n this.menuButton.className = \"guify-panel-toggle-button\";\n css(this.menuButton, {\n left: this.opts.align == \"left\" ? \"0px\" : \"unset\",\n right: this.opts.align == \"left\" ? \"unset\" : \"0px\",\n });\n\n this.menuButton.onclick = () => {\n this.ToggleVisible();\n };\n\n // Defocus on mouse up (for non-accessibility users)\n this.menuButton.addEventListener(\"mouseup\", () => {\n this.menuButton.blur();\n });\n\n this.menuButton.innerHTML = `\n \n \n \n `;\n }\n\n}\n","import ComponentBase from \"../component-base.js\";\n\nimport css from \"dom-css\";\n\nimport \"./toast-area.css\";\n\n/**\n * Represents a container div that creates and holds toast notifications.\n */\nexport class ToastArea extends ComponentBase {\n constructor(root, opts, theme) {\n super(root, opts, theme, false);\n\n // Make toast area\n this.element = root.appendChild(document.createElement(\"div\"));\n this.element.classList.add(\"guify-toast-area\");\n css(this.element, {\n position: \"absolute\",\n \"width\": \"100%\",\n });\n }\n\n /**\n * Makes a message that appears under the menu bar. Transitions out\n * over `transitionMS` milliseconds after `stayMS` milliseconds have passed.\n */\n CreateToast(message, stayMS = 5000, transitionMS = 0) {\n console.log(\"[Toast] \" + message);\n\n let toast = this.element.appendChild(document.createElement(\"div\"));\n toast.classList.add(\"guify-toast-notification\");\n toast.setAttribute(\"aria-live\", \"polite\");\n\n toast.innerHTML = message;\n\n css(toast, {\n // Animation stuff\n // '-webkit-transition': 'opacity ' + transitionMS + 'ms linear',\n // 'transition': 'opacity ' + transitionMS + 'ms linear',\n });\n\n // Make close button in toast\n let closeButton = toast.appendChild(document.createElement(\"button\"));\n closeButton.innerHTML = \"✖\";\n closeButton.classList.add(\"guify-toast-close-button\");\n\n let timeout;\n\n let TransitionOut = () => {\n toast.blur();\n css(toast, {\n //'transform-style': 'flat',\n //'transform-style': 'preserve-3d',\n\n // Slide up\n // '-webkit-transition': '-webkit-transform ' + transitionMS + 'ms linear',\n // 'transition': 'transform ' + transitionMS + 'ms linear',\n // '-webkit-transform': 'translate3d(0, -100%, 0)',\n // 'transform:': 'translate3d(0, -100%, 0)',\n\n // Fade out\n //'-webkit-transition': '-webkit-opacity ' + transitionMS + 'ms linear',\n //'transition': 'opacity ' + transitionMS + 'ms linear',\n \"opacity\": \"0\",\n });\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n if(toast)\n toast.parentNode.removeChild(toast);\n }, transitionMS);\n };\n\n timeout = setTimeout(TransitionOut, stayMS);\n\n closeButton.onclick = TransitionOut;\n }\n\n}\n","import \"./container.css\";\n\n// eslint-disable-next-line no-unused-vars\nlet Container = (root, label, theme) => {\n let container = root.appendChild(document.createElement(\"div\"));\n container.classList.add(\"guify-component-container\");\n return container;\n};\n\nexport default Container;\n","import css from \"dom-css\";\n\nexport default function (root, text, theme) {\n var title = root.appendChild(document.createElement(\"div\"));\n title.innerHTML = text;\n\n css(title, {\n width: \"100%\",\n textAlign: \"center\",\n color: theme.colors.textSecondary,\n height: \"20px\",\n marginBottom: \"4px\"\n });\n\n return title;\n}\n","import \"./label.css\";\n\n// eslint-disable-next-line no-unused-vars\nexport default (root, text, theme) => {\n var label = root.appendChild(document.createElement(\"div\"));\n label.classList.add(\"guify-component-label\");\n label.innerHTML = text;\n return label;\n};\n","import css from \"dom-css\";\n\nimport \"./value.css\";\n\nexport default (root, text, theme, width, left) => {\n\n let input = root.appendChild(document.createElement(\"input\"));\n input.type = \"text\";\n input.classList.add(\"guify-value-input\");\n\n input.value = text;\n\n if (!left) {\n input.classList.add(\"guify-value-input-right\");\n }\n\n css(input, {\n \"width\": width,\n });\n\n return input;\n};\n","import ComponentBase from \"../component-base.js\";\n\nimport { default as LabelPartial } from \"../partials/label\";\n\nimport \"./button.css\";\n\nexport default class Button extends ComponentBase {\n constructor(root, opts, theme) {\n super(root, opts, theme);\n\n this.label = LabelPartial(this.container, \"\", theme);\n\n this.input = this.container.appendChild(document.createElement(\"button\"));\n this.input.classList.add(\"guify-button\");\n\n this.input.textContent = opts.label;\n this.button = this.input;\n\n this.input.addEventListener(\"click\", opts.action);\n\n // Defocus on mouse up (for non-accessibility users)\n this.input.addEventListener(\"mouseup\", () => {\n this.input.blur();\n });\n }\n}\n","import ComponentBase from \"../component-base.js\";\n\nimport { default as LabelPartial } from \"../partials/label\";\n\nimport \"./checkbox.css\";\n\nexport default class Checkbox extends ComponentBase {\n constructor (root, opts, theme) {\n super(root, opts, theme);\n\n this.label = LabelPartial(this.container, opts.label, theme);\n\n this.input = this.container.appendChild(document.createElement(\"input\"));\n this.input.id = \"checkbox-\" + opts.label + this.uuid;\n this.input.type = \"checkbox\";\n this.input.checked = opts.initial;\n this.input.classList.add(\"guify-checkbox\");\n // Add ARIA attribute to input based on label text\n if(opts.label) this.input.setAttribute(\"aria-label\", opts.label);\n\n var label = this.container.appendChild(document.createElement(\"label\"));\n label.htmlFor = this.input.id;\n\n setTimeout(() => {\n this.emit(\"initialized\", this.input.checked);\n });\n\n this.input.onchange = (data) => {\n this.emit(\"input\", data.target.checked);\n };\n\n }\n\n SetValue(value) {\n this.input.checked = value;\n }\n\n GetValue() {\n return this.input.checked;\n }\n}\n","import ComponentBase from \"../component-base.js\";\n\nimport ColorPicker from \"simple-color-picker\";\nimport tinycolor from \"tinycolor2\";\n\nimport css from \"dom-css\";\nimport \"./color.css\";\n\nimport { default as LabelPartial } from \"../partials/label\";\nimport { default as ValuePartial } from \"../partials/value\";\n\nexport default class Color extends ComponentBase {\n constructor (root, opts, theme) {\n super(root, opts, theme);\n\n opts.format = opts.format || \"rgb\";\n opts.initial = opts.initial || \"#123456\";\n\n this.label = LabelPartial(this.container, opts.label, theme);\n\n var icon = this.container.appendChild(document.createElement(\"span\"));\n icon.classList.add(\"guify-color\");\n\n var value = ValuePartial(this.container, \"\", theme, `calc(100% - ${theme.sizing.labelWidth} - 12% - 0.5em)`);\n value.setAttribute(\"readonly\", \"true\");\n\n icon.onmouseover = () => {\n this.picker.$el.style.display = \"\";\n };\n\n var initial = opts.initial;\n switch (opts.format) {\n case \"rgb\":\n initial = tinycolor(initial).toHexString();\n break;\n case \"hex\":\n initial = tinycolor(initial).toHexString();\n break;\n case \"array\":\n initial = tinycolor.fromRatio({r: initial[0], g: initial[1], b: initial[2]}).toHexString();\n break;\n default:\n break;\n }\n\n this.picker = new ColorPicker({\n el: icon,\n color: initial,\n background: theme.colors.componentBackground,\n width: 125,\n height: 100\n });\n\n css(this.picker.$el, {\n marginTop: theme.sizing.componentHeight,\n display: \"none\",\n position: \"absolute\"\n });\n\n css(icon, {\n position: \"relative\",\n display: \"inline-block\",\n width: \"12.5%\",\n height: theme.sizing.componentHeight,\n backgroundColor: this.picker.getHexString()\n });\n\n icon.onmouseout = () => {\n this.picker.$el.style.display = \"none\";\n };\n\n setTimeout(() => {\n this.emit(\"initialized\", initial);\n });\n\n this.picker.onChange((hex) => {\n value.value = this.Format(hex);\n css(icon, {backgroundColor: hex});\n this.emit(\"input\", this.Format(hex));\n });\n }\n\n Format(hex) {\n switch (this.opts.format) {\n case \"rgb\":\n return tinycolor(hex).toRgbString();\n case \"hex\":\n return tinycolor(hex).toHexString();\n case \"array\":\n var rgb = tinycolor(hex).toRgb();\n return [rgb.r / 255, rgb.g / 255, rgb.b / 255].map((x) => {\n return x.toFixed(2);\n });\n default:\n return hex;\n }\n }\n\n SetValue(value) {\n if (!this.picker.isChoosing) {\n this.picker.setColor(value);\n }\n }\n\n GetValue() {\n return this.Format(this.picker.getColor());\n }\n}\n","import ComponentBase from \"../component-base.js\";\n\nimport \"./display.css\";\n\nimport { default as LabelPartial } from \"../partials/label\";\n\n/**\n * Display component. Shows the state of a variable.\n */\nexport default class Display extends ComponentBase {\n constructor (root, opts, theme) {\n super(root, opts, theme);\n\n this.label = LabelPartial(this.container, opts.label, theme);\n\n this.text = this.container.appendChild(document.createElement(\"div\"));\n this.text.classList.add(\"guify-display\");\n\n // Add ARIA attribute to text based on label text\n if(opts.label) this.text.setAttribute(\"aria-label\", opts.label);\n }\n\n SetValue(value) {\n this.text.innerHTML = value.toString();\n }\n\n GetValue() {\n return this.text.innerHTML.toString();\n }\n}\n","import ComponentBase from \"../component-base.js\";\nimport css from \"dom-css\";\n\nimport \"./file.css\";\n\n/**\n * File component. Drag and drop a file or click to choose a file.\n */\nexport default class File extends ComponentBase {\n constructor (root, opts, theme) {\n super(root, opts, theme);\n\n this.opts.fileReadFunc = this.opts.fileReadFunc || \"readAsDataURL\";\n\n this.file = null;\n this.fileName = null;\n\n this.container.classList.add(\"guify-file-container\");\n this.container.setAttribute(\"role\", \"button\");\n this.container.setAttribute(\"tabIndex\", \"0\"); // Make tabbable\n css(this.container, {\n width: \"100%\",\n \"box-sizing\": \"border-box\",\n \"-moz-box-sizing\": \"border-box\",\n \"-webkit-box-sizing\": \"border-box\",\n height: \"unset\", // Grow with content\n padding: \"8px\"\n });\n\n let label = this.container.appendChild(document.createElement(\"div\"));\n label.innerHTML = opts.label;\n css(label, \"padding-bottom\", \"5px\");\n\n this.input = this.container.appendChild(document.createElement(\"input\"));\n this.input.setAttribute(\"type\", \"file\");\n this.input.setAttribute(\"multiple\", false);\n this.input.style.display = \"none\";\n // Add ARIA attribute to input based on label text\n if(opts.label) this.input.setAttribute(\"aria-label\", opts.label);\n\n this.fileLabel = this.container.appendChild(document.createElement(\"div\"));\n this.fileLabel.innerHTML = \"Choose a file...\";\n //css(this.fileLabel, 'color', theme.colors.textSecondary);\n\n let FileDropped = (event) => {\n var files;\n if(event.dataTransfer) {\n files = event.dataTransfer.files;\n } else if(event.target) {\n files = event.target.files;\n }\n\n var reader = new FileReader();\n reader.onload = () => {\n this.file = reader.result;\n this.fileLabel.innerHTML = files[0].name;\n this.emit(\"input\", this.file);\n };\n\n reader[this.opts.fileReadFunc](files[0]);\n };\n\n this.input.addEventListener(\"change\", FileDropped);\n\n this.container.addEventListener(\"dragover\", (event) => {\n event.preventDefault();\n event.stopPropagation();\n this.container.classList.add(\"guify-dragover\");\n });\n\n this.container.addEventListener(\"dragleave\", (event) => {\n event.preventDefault();\n event.stopPropagation();\n this.container.classList.remove(\"guify-dragover\");\n });\n\n this.container.addEventListener(\"drop\", (event) => {\n event.preventDefault();\n event.stopPropagation();\n this.container.classList.remove(\"guify-dragover\");\n FileDropped(event);\n });\n\n this.container.onclick = () => {\n this.input.click();\n };\n\n this.container.addEventListener(\"keydown\", (e) => {\n // Listen for Space or Enter\n if(e.which === 13 || e.which === 32) {\n this.input.click();\n }\n });\n\n // Defocus on mouse up (for non-accessibility users)\n this.container.addEventListener(\"mouseup\", () => {\n this.container.blur();\n });\n\n }\n\n // eslint-disable-next-line no-unused-vars\n SetValue(value) {\n return;\n }\n\n GetValue() {\n return this.file;\n }\n\n}\n","import ComponentBase from \"../component-base.js\";\n\nimport \"./folder.css\";\n\nexport default class Folder extends ComponentBase {\n constructor (root, opts, theme) {\n super(root, opts, theme);\n\n this.container.classList.add(\"guify-folder\");\n this.container.setAttribute(\"role\", \"button\");\n this.container.setAttribute(\"tabIndex\", \"0\"); // Make tabbable\n // css(container, {\n // color: theme.colors.text1,\n // })\n\n this.arrow = this.container.appendChild(document.createElement(\"div\"));\n this.arrow.classList.add(\"guify-folder-arrow\");\n this.arrow.innerHTML = \"▾\";\n\n this.label = this.container.appendChild(document.createElement(\"div\"));\n this.label.classList.add(\"guify-folder-text\");\n this.label.innerHTML = opts.label;\n\n this.container.onclick = () => {\n this.Toggle();\n };\n\n // Defocus on mouse up (for non-accessibility users)\n this.container.addEventListener(\"mouseup\", () => {\n this.container.blur();\n });\n\n this.container.addEventListener(\"keydown\", (e) => {\n // Listen for Space or Enter\n if(e.which === 13 || e.which === 32) {\n this.Toggle();\n }\n });\n\n this.folderContainer = root.appendChild(document.createElement(\"div\"));\n this.folderContainer.classList.add(\"guify-folder-contents\");\n\n this.open = this.opts.open || false;\n this.SetOpen(this.open);\n\n }\n\n SetEnabled(enabled) {\n super.SetEnabled(enabled);\n // Disable everything in the folder\n if (enabled) {\n this.folderContainer?.classList.remove(\"disabled\");\n } else {\n this.folderContainer?.classList.add(\"disabled\");\n }\n }\n\n // Toggle visibility\n Toggle() {\n this.open = !this.open;\n this.SetOpen(this.open);\n }\n\n // Show or hide the contents\n SetOpen(show) {\n this.open = show;\n if(show) {\n this.folderContainer.classList.remove(\"guify-folder-closed\");\n this.arrow.innerHTML = \"▾\"; // Down triangle\n\n }\n else {\n this.folderContainer.classList.add(\"guify-folder-closed\");\n this.arrow.innerHTML = \"▸\"; // Right triangle\n }\n\n }\n}\n","import ComponentBase from \"../component-base.js\";\n\nimport css from \"dom-css\";\nimport isnumeric from \"is-numeric\";\n\nimport \"./interval.css\";\n\nimport { default as LabelPartial } from \"../partials/label\";\nimport { default as ValuePartial } from \"../partials/value\";\n\nimport { lerp } from \"../../utils/math-utils\";\n\nfunction clamp(x, min, max)\n{\n return Math.min(Math.max(x, min), max);\n}\n\nexport default class Interval extends ComponentBase {\n constructor (root, opts, theme) {\n super(root, opts, theme);\n\n this.label = LabelPartial(this.container, opts.label, theme);\n\n if (!!opts.step && !!opts.steps) {\n throw new Error(\"Cannot specify both step and steps. Got step = \" + opts.step + \", steps = \", opts.steps);\n }\n\n this.input = this.container.appendChild(document.createElement(\"span\"));\n this.input.classList.add(\"guify-interval\");\n\n this.handle = document.createElement(\"span\");\n this.handle.classList.add(\"guify-interval-handle\");\n this.input.appendChild(this.handle);\n\n\n if (!Array.isArray(opts.initial))\n {\n opts.initial = [];\n }\n\n this.scale = opts.scale;\n\n // Get initial value:\n if( opts.scale === \"log\" )\n {\n // If logarithmic, we're going to set the slider to a known linear range. Then we'll\n // map that linear range to the user-set range using a log scale.\n\n // Check if all signs are valid\n if (opts.min * opts.max <= 0) {\n throw new Error(\"Log range min/max must have the same sign and not equal zero. Got min = \" + opts.min + \", max = \" + opts.max);\n }\n\n // Step is invalid for log scale slider\n if (isnumeric(opts.step)) {\n console.warn(\"Step is unused for log scale sliders.\");\n }\n\n // Warn that `steps` was removed\n if (isnumeric(opts.steps)) {\n console.warn(\"\\\"steps\\\" option for log scale sliders has been removed.\");\n }\n\n // Min/max are forced to a known range, and log value will be derived from slider position within.\n this.minPos = 0;\n this.maxPos = 1000000;\n\n this.min = Math.log( (isnumeric(opts.min)) ? opts.min : 0.000001 ); // This cannot be 0\n this.max = Math.log( (isnumeric(opts.max)) ? opts.max : 100 );\n\n this.precision = (isnumeric(opts.precision)) ? opts.precision : 3;\n this.logScale = (this.max - this.min) / (this.maxPos - this.minPos);\n\n this.initial = [\n isnumeric(opts.initial[0]) ? opts.initial[0] : this.min,\n isnumeric(opts.initial[1]) ? opts.initial[1] : this.max,\n ];\n }\n else\n {\n // If linear, this is much simpler. Pos and value can directly match.\n this.minPos = (isnumeric(opts.min)) ? opts.min : 0;\n this.maxPos = (isnumeric(opts.max)) ? opts.max : 100;\n this.min = this.minPos;\n this.max = this.maxPos;\n\n this.precision = (isnumeric(opts.precision)) ? opts.precision : 3;\n this.step = (isnumeric(opts.step)) ? opts.step : (10 / Math.pow(10, 3)); // Default is the lowest possible number given the precision. When precision = 3, step = 0.01.\n\n this.initial = [\n isnumeric(opts.initial[0]) ? opts.initial[0] : this.min,\n isnumeric(opts.initial[1]) ? opts.initial[1] : this.max,\n ];\n\n // Quantize the initial value to the nearest step:\n if (this.step != 0) {\n this.initial = this.initial.map((value) => {\n return this.min + this.step * Math.round((value - this.min) / this.step);\n });\n }\n }\n\n this.value = opts.initial;\n\n // Set handle positions from value\n this._RefreshHandles();\n\n // Display the values:\n this.lValue = ValuePartial(this.container, this.value[0], theme, \"11%\", true);\n this.rValue = ValuePartial(this.container, this.value[1], theme, \"11%\", false);\n\n // Add ARIA attribute to input based on label text\n if(opts.label) this.lValue.setAttribute(\"aria-label\", opts.label + \" lower value\");\n if(opts.label) this.lValue.setAttribute(\"aria-label\", opts.label + \" upper value\");\n\n // An index to track what's being dragged:\n this.activeIndex = -1;\n\n setTimeout(() => {\n this.emit(\"initialized\", this.value);\n });\n\n // // Gain focus\n // this.input.addEventListener(\"focus\", () => {\n // this.focused = true;\n // });\n\n // // Lose focus\n // this.input.addEventListener(\"blur\", () => {\n // this.focused = false;\n // });\n\n let mouseX = (ev) =>\n {\n // Get mouse position in page coords relative to the container:\n return ev.pageX - this.input.getBoundingClientRect().left;\n };\n\n let mouseMoveListener = ( ev ) =>\n {\n let fraction = clamp(mouseX(ev) / this.input.offsetWidth, 0, 1);\n\n this._SetFromMousePosition(fraction);\n };\n\n let mouseUpListener = ( ev ) =>\n {\n let fraction = clamp(mouseX(ev) / this.input.offsetWidth, 0, 1);\n\n this._SetFromMousePosition(fraction);\n\n document.removeEventListener(\"mousemove\", mouseMoveListener);\n document.removeEventListener(\"mouseup\", mouseUpListener);\n\n this.activeIndex = -1;\n };\n\n this.input.addEventListener(\"mousedown\", (ev) =>\n {\n // Get mouse position fraction:\n let fraction = clamp(mouseX(ev) / this.input.offsetWidth, 0, 1);\n\n let posForLeftValue = this._Position(this.value[0]);\n let posForRightValue = this._Position(this.value[1]);\n\n // Get the current fraction of position --> [0, 1]:\n let lofrac = (posForLeftValue - this.minPos) / (this.maxPos - this.minPos);\n let hifrac = (posForRightValue - this.minPos) / (this.maxPos - this.minPos);\n\n // This is just for making decisions, so perturb it ever\n // so slightly just in case the bounds are numerically equal:\n lofrac -= Math.abs(this.maxPos - this.minPos) * 1e-15;\n hifrac += Math.abs(this.maxPos - this.minPos) * 1e-15;\n\n // Figure out which is closer:\n let lodiff = Math.abs(lofrac - fraction);\n let hidiff = Math.abs(hifrac - fraction);\n\n this.activeIndex = lodiff < hidiff ? 0 : 1;\n\n console.log(this.activeIndex);\n\n // Attach this to *document* so that we can still drag if the mouse\n // passes outside the container:\n document.addEventListener(\"mousemove\", mouseMoveListener);\n document.addEventListener(\"mouseup\", mouseUpListener);\n });\n\n // Defocus on mouse up (for non-accessibility users)\n this.input.addEventListener(\"mouseup\", () => {\n this.input.blur();\n });\n\n this.input.oninput = () => {\n // let position = parseFloat(data.target.value);\n // var scaledValue = this._Value(position);\n // this.valueComponent.value = this._FormatNumber(scaledValue, this.precision);\n this.lValue.value = this.value[0];\n this.rValue.value = this.value[1];\n this.emit(\"input\", this.value);\n };\n\n // Handle lower bound input box changes\n this.lValue.onchange = () => {\n let rawValue = this.lValue.value;\n let otherValue = parseFloat(this.rValue.value);\n if (Number(parseFloat(rawValue)) == rawValue) {\n // Input number is valid\n var value = parseFloat(rawValue);\n // Clamp to input range\n value = Math.min(Math.max(value, this.min), this.max);\n // Map to nearest step\n if (this.step) {\n value = Math.ceil((value - this.min) / this.step ) * this.step + this.min;\n }\n // Prevent value from going beyond interval upper value\n value = Math.min(value, otherValue);\n\n this.lValue.value = value;\n this.value = [value, otherValue];\n this.emit(\"input\", [value, otherValue]);\n this._RefreshHandles([value, otherValue]);\n } else {\n // Input number is invalid\n // Go back to before input change\n this.lValue.value = this.lastValue[0];\n }\n };\n\n // Handle upper bound input box changes\n this.rValue.onchange = () => {\n let rawValue = this.rValue.value;\n let otherValue = parseFloat(this.lValue.value);\n if (Number(parseFloat(rawValue)) == rawValue) {\n // Input number is valid\n var value = parseFloat(rawValue);\n // Clamp to input range\n value = Math.min(Math.max(value, this.min), this.max);\n // Map to nearest step\n if (this.step) {\n value = Math.ceil((value - this.min) / this.step ) * this.step + this.min;\n }\n // Prevent value from going below interval lower value\n value = Math.max(value, otherValue);\n\n this.rValue.value = value;\n this.value = [otherValue, value];\n this.emit(\"input\", [otherValue, value]);\n this._RefreshHandles();\n } else {\n // Input number is invalid\n // Go back to before input change\n this.rValue.value = this.lastValue[1];\n }\n };\n }\n\n /**\n * Calculate value from slider position\n */\n _Value(position) {\n if (this.scale === \"log\") {\n // Map from slider position range to log value range\n\n // Map from slider range to min-max value range\n let rangePos = (position - this.minPos) * this.logScale + this.min;\n // Now convert to log space\n return Math.exp(rangePos);\n } else {\n // Position and value are equivalent\n return position;\n }\n }\n\n /**\n * Calculate slider position from value\n */\n _Position(value) {\n if (this.scale === \"log\") {\n // Map from log value range to the slider's position range\n return this.minPos + (Math.log(value) - this.min) / this.logScale;\n } else {\n // Value and position are equivalent\n return value;\n }\n }\n\n /**\n * Updates the current value given a mouse X position normalized from 0 to 1.\n */\n _SetFromMousePosition( fraction )\n {\n if (this.activeIndex === -1) {\n return;\n }\n\n // Clip against the other bound:\n if (this.activeIndex === 0) {\n // Get the right side in position-space [0, 1]:\n let hifrac = (this._Position(this.value[1]) - this.minPos) / (this.maxPos - this.minPos);\n // Prevent fraction from exceeding right-side position\n fraction = Math.min(hifrac, fraction);\n } else {\n // Get the right side in position-space [0, 1]:\n let lofrac = (this._Position(this.value[0]) - this.minPos) / (this.maxPos - this.minPos);\n // Prevent fraction from going below left-side position\n fraction = Math.max(lofrac, fraction);\n }\n\n // Map from 0-1 scale to position-scale\n let position = lerp(this.minPos, this.maxPos, fraction);\n // Map from position-scale to value-scale and assign to values\n var newValue = this._Value(position);\n\n // Quantize the value\n if (this.step) {\n newValue = this.min + this.step * Math.round((newValue - this.min) / this.step);\n }\n\n this.value[this.activeIndex] = newValue;\n\n // Update and send the event:\n this._RefreshHandles();\n this.input.oninput();\n }\n\n SetValue( value )\n {\n if(this.focused !== true)\n {\n this.lValue.value = this._FormatNumber(value[0], this.precision);\n this.rValue.value = this._FormatNumber(value[1], this.precision);\n\n this.lastValue = [ this.lValue.value, this.rValue.value ];\n }\n }\n\n // Formats the number for display.\n // `opts.precision` lets you customize how many decimal places you want here.\n // The default is 3.\n _FormatNumber(value, precision) {\n // https://stackoverflow.com/a/29249277\n return value.toFixed(precision).replace(/\\.?0*$/,\"\");\n }\n\n GetValue() {\n return [ this.lValue.value, this.rValue.value ];\n }\n\n _RefreshHandles() {\n let leftPercent = ((this._Position(this.value[0]) - this.minPos) / (this.maxPos - this.minPos)) * 100;\n let rightPercent = 100 - (((this._Position(this.value[1]) - this.minPos) / (this.maxPos - this.minPos)) * 100);\n css(this.handle, {\n left: `${leftPercent}%`,\n right: `${rightPercent}%`,\n });\n }\n}\n","import ComponentBase from \"../component-base.js\";\n\nimport css from \"dom-css\";\nimport isnumeric from \"is-numeric\";\n\nimport \"./range.css\";\n\nimport { default as LabelPartial } from \"../partials/label\";\nimport { default as ValuePartial } from \"../partials/value\";\n\nexport default class Range extends ComponentBase {\n constructor (root, opts, theme) {\n super(root, opts, theme);\n\n this.scale = opts.scale;\n\n this.label = LabelPartial(this.container, opts.label, theme);\n\n this.input = this.container.appendChild(document.createElement(\"input\"));\n this.input.type = \"range\";\n this.input.classList.add(\"guify-range\");\n // Add ARIA attribute to input based on label text\n if(opts.label) this.input.setAttribute(\"aria-label\", opts.label + \" input\");\n\n // Get initial value:\n if (opts.scale === \"log\") {\n // If logarithmic, we're going to set the slider to a known linear range. Then we'll\n // map that linear range to the user-set range using a log scale.\n\n // Check if all signs are valid\n if (opts.min * opts.max <= 0) {\n throw new Error(\"Log range min/max must have the same sign and not equal zero. Got min = \" + opts.min + \", max = \" + opts.max);\n }\n\n // Step is invalid for log scale slider\n if (isnumeric(opts.step)) {\n console.warn(\"Step is unused for log scale sliders.\");\n }\n\n // Warn that `steps` was removed\n if (isnumeric(opts.steps)) {\n console.warn(\"\\\"steps\\\" option for log scale sliders has been removed.\");\n }\n\n // Min/max are forced to a known range, and log value will be derived from slider position within.\n this.minPos = 0;\n this.maxPos = 1000000;\n\n this.min = Math.log( (isnumeric(opts.min)) ? opts.min : 0.000001 ); // This cannot be 0\n this.max = Math.log( (isnumeric(opts.max)) ? opts.max : 100 );\n\n this.precision = (isnumeric(opts.precision)) ? opts.precision : 3;\n this.logScale = (this.max - this.min) / (this.maxPos - this.minPos);\n\n this.initial = isnumeric(opts.initial) ? opts.initial : this.min;\n\n if (opts.initial < 0) {\n throw new Error(`Log range initial value must be > 0. Got initial value = ${opts.initial}`);\n }\n } else {\n // If linear, this is much simpler. Pos and value can directly match.\n this.minPos = (isnumeric(opts.min)) ? opts.min : 0;\n this.maxPos = (isnumeric(opts.max)) ? opts.max : 100;\n this.min = this.minPos;\n this.max = this.maxPos;\n\n this.precision = (isnumeric(opts.precision)) ? opts.precision : 3;\n this.step = (isnumeric(opts.step)) ? opts.step : (10 / Math.pow(10, 3)); // Default is the lowest possible number given the precision. When precision = 3, step = 0.01.\n\n this.initial = isnumeric(opts.initial) ? opts.initial : this.min;\n\n // Quantize the initial value to the nearest step:\n if (this.step != 0) {\n var initialStep = Math.round((this.initial - this.min) / this.step);\n this.initial = this.min + this.step * initialStep;\n }\n }\n\n // Set value on the this.input itself:\n this.input.min = this.minPos;\n this.input.max = this.maxPos;\n if (isnumeric(this.step)) {\n this.input.step = this.step;\n }\n this.input.value = this.initial;\n\n css(this.input, {\n width: `calc(100% - ${theme.sizing.labelWidth} - 16% - 0.5em)`\n });\n\n this.valueComponent = ValuePartial(this.container, this._Position(this.initial), theme, \"16%\");\n // Add ARIA attribute to input based on label text\n if(opts.label) this.valueComponent.setAttribute(\"aria-label\", opts.label + \" value\");\n\n setTimeout(() => {\n this.emit(\"initialized\", parseFloat(this.input.value));\n });\n\n this.userIsModifying = false;\n\n // Gain focus\n this.input.addEventListener(\"focus\", () => {\n this.focused = true;\n });\n\n // Lose focus\n this.input.addEventListener(\"blur\", () => {\n this.focused = false;\n });\n\n // Defocus on mouse up (for non-accessibility users)\n this.input.addEventListener(\"mouseup\", () => {\n this.input.blur();\n });\n\n this.input.oninput = (data) => {\n let position = parseFloat(data.target.value);\n var scaledValue = this._Value(position);\n this.valueComponent.value = this._FormatNumber(scaledValue, this.precision);\n this.emit(\"input\", scaledValue);\n };\n\n this.valueComponent.onchange = () => {\n let rawValue = this.valueComponent.value;\n if(Number(parseFloat(rawValue)) == rawValue){\n // Input number is valid\n var value = parseFloat(rawValue);\n\n // Ensure number fits slider properties\n value = this._ValidatedInputValue(value);\n\n this.valueComponent.value = value;\n this.emit(\"input\", value);\n this.lastValue = value;\n } else {\n // Input number is invalid\n // Go back to before input change\n this.valueComponent.value = this.lastValue;\n }\n };\n }\n\n /**\n * Calculate value from slider position\n */\n _Value(position) {\n if (this.scale === \"log\") {\n // Map from slider position range to log value range\n\n // Map from slider range to min-max value range\n let rangePos = (position - this.minPos) * this.logScale + this.min;\n // Now convert to log space\n return Math.exp(rangePos);\n } else {\n // Position and value are equivalent\n return position;\n }\n }\n\n /**\n * Calculate slider position from value\n */\n _Position(value) {\n if (this.scale === \"log\") {\n // Map from log value range to the slider's position range\n return this.minPos + (Math.log(value) - this.min) / this.logScale;\n } else {\n // Value and position are equivalent\n return value;\n }\n }\n\n _ValidatedInputValue(value) {\n var newValue;\n if (this.scale === \"log\") {\n // Clamp to input range, turning logmin and logmax back into min/max in linear space\n newValue = Math.min(Math.max(value, Math.exp(this.min)), Math.exp(this.max));\n } else {\n // Clamp to input range\n newValue = Math.min(Math.max(value, this.min), this.max);\n // Quantize to step\n newValue = Math.ceil((newValue - this.min) / this.step) * this.step + this.min;\n }\n return newValue;\n }\n\n SetValue(value) {\n let validated = this._ValidatedInputValue(value);\n if(this.focused !== true) {\n this.valueComponent.value = this._FormatNumber(validated, this.precision);\n this.input.value = this._Position(validated);\n this.lastValue = validated;\n }\n }\n\n GetValue() {\n return this._Value(this.input.value);\n }\n\n // Formats the number for display.\n // `opts.precision` lets you customize how many decimal places you want here.\n // The default is 3.\n _FormatNumber(value, precision) {\n // https://stackoverflow.com/a/29249277\n return value.toFixed(precision).replace(/\\.?0*$/,\"\");\n }\n}\n","import ComponentBase from \"../component-base.js\";\n\nimport \"./select.css\";\n\nimport { default as LabelPartial } from \"../partials/label\";\n\nexport default class Select extends ComponentBase {\n constructor (root, opts, theme) {\n super(root, opts, theme);\n\n var i, downTriangle, upTriangle, key, option, el, keys;\n\n this.label = LabelPartial(this.container, opts.label, theme);\n\n this.input = document.createElement(\"select\");\n this.input.classList.add(\"guify-select-dropdown\");\n // Add ARIA attribute to input based on label text\n if(opts.label) this.input.setAttribute(\"aria-label\", opts.label);\n\n downTriangle = document.createElement(\"span\");\n downTriangle.classList.add(\"guify-select-triangle\", \"guify-select-triangle--down\");\n\n upTriangle = document.createElement(\"span\");\n upTriangle.classList.add(\"guify-select-triangle\", \"guify-select-triangle--up\");\n\n this.container.appendChild(downTriangle);\n this.container.appendChild(upTriangle);\n\n if (Array.isArray(opts.options)) {\n for (i = 0; i < opts.options.length; i++) {\n option = opts.options[i];\n el = document.createElement(\"option\");\n el.value = el.textContent = option;\n if (opts.initial === option) {\n el.selected = \"selected\";\n }\n this.input.appendChild(el);\n }\n } else {\n keys = Object.keys(opts.options);\n for (i = 0; i < keys.length; i++) {\n key = keys[i];\n el = document.createElement(\"option\");\n el.value = key;\n if (opts.initial === key) {\n el.selected = \"selected\";\n }\n el.textContent = opts.options[key];\n this.input.appendChild(el);\n }\n }\n\n this.container.appendChild(this.input);\n\n this.input.onchange = (data) => {\n this.emit(\"input\", data.target.value);\n };\n\n // Style the arrows based on mouse / focus behavior (and unfocus on mouse leave).\n // I'd like to do this through CSS :focus/:hover selectors but I just couldn't figure it out.\n // It could be done easily if CSS had a \"general previous sibling\" selector.\n let StyleFocus = () => {\n downTriangle.classList.add(\"guify-select-triangle--down-highlight\");\n upTriangle.classList.add(\"guify-select-triangle--up-highlight\");\n };\n\n let StyleUnfocus = () => {\n downTriangle.classList.remove(\"guify-select-triangle--down-highlight\");\n upTriangle.classList.remove(\"guify-select-triangle--up-highlight\");\n };\n let focused = false;\n\n this.input.addEventListener(\"mouseover\", StyleFocus);\n this.input.addEventListener(\"focus\", () => { focused = true; StyleFocus(); });\n this.input.addEventListener(\"blur\", () => { focused = false; StyleUnfocus(); });\n this.input.addEventListener(\"mouseleave\", () => { if (!focused) StyleUnfocus(); });\n\n }\n\n SetValue(value) {\n this.input.value = value;\n }\n\n GetValue() {\n return this.input.value;\n }\n}\n","import ComponentBase from \"../component-base.js\";\n\nimport \"./text.css\";\n\nimport { default as LabelPartial } from \"../partials/label\";\n\nexport default class Text extends ComponentBase {\n static #supportedInputListenModes = [\"input\", \"change\"];\n\n constructor (root, opts, theme) {\n super(root, opts, theme);\n\n this.listenMode = opts.listenMode || \"input\";\n if (!Text.#supportedInputListenModes.includes(this.listenMode)) {\n console.error(`listenMode \"${this.listenMode}\" is not supported for text component \"${opts.label}\"! Falling back on \"input\".`);\n }\n\n this.label = LabelPartial(this.container, opts.label, theme);\n\n this.input = this.container.appendChild(document.createElement(\"input\"));\n this.input.type = \"text\";\n this.input.classList.add(\"guify-text-input\");\n if (opts.initial) this.input.value = opts.initial;\n // Add ARIA attribute to input based on label text\n if(opts.label) this.input.setAttribute(\"aria-label\", opts.label);\n\n setTimeout(() => {\n this.emit(\"initialized\", this.input.value);\n });\n\n this.input.addEventListener(this.listenMode, (data) => {\n console.log(data);\n this.emit(\"input\", data.target.value);\n });\n\n // Gain focus\n this.input.addEventListener(\"focus\", () => {\n this.focused = true;\n });\n\n // Lose focus\n this.input.addEventListener(\"blur\", () => {\n this.focused = false;\n });\n }\n\n SetValue(value) {\n if(this.focused !== true)\n this.input.value = value;\n }\n\n GetValue() {\n return this.input.value;\n }\n}\n","import ComponentBase from \"../component-base.js\";\n\nimport \"./title.css\";\n\nexport default class Title extends ComponentBase {\n constructor (root, opts, theme) {\n super(root, opts, theme);\n\n var background = this.container.appendChild(document.createElement(\"div\"));\n background.classList.add(\"guify-title\");\n\n var label = background.appendChild(document.createElement(\"div\"));\n label.classList.add(\"guify-title-text\");\n label.innerHTML = `■ ${opts.label} ■`;\n }\n}\n","import css from \"dom-css\";\n\nimport { default as Theme } from \"./theme\";\n\nimport \"./components/internal/container.css\";\n\nimport { ComponentManager } from \"./component-manager\";\n\nimport { MenuBar } from \"./components/internal/menu-bar\";\nimport { Panel } from \"./components/internal/panel\";\nimport { ToastArea } from \"./components/internal/toast-area\";\nimport screenfull from \"screenfull\";\n\nexport default class GUI {\n constructor(opts) {\n this.opts = opts;\n\n this.hasRoot = opts.root !== undefined;\n\n opts.width = opts.width || 300;\n opts.root = opts.root || document.body;\n opts.align = opts.align || \"left\"; // Can be 'left' or 'right'\n opts.opacity = opts.opacity || 1.0;\n opts.barMode = opts.barMode || \"offset\"; // Can be 'none', 'above', 'offset', or 'overlay'\n opts.panelMode = opts.panelMode || \"inner\";\n opts.pollRateMS = opts.pollRateMS || 100;\n opts.open = opts.open || false;\n\n // Set theme from opts\n let themeName = opts.theme || \"dark\";\n this.theme = new Theme(themeName);\n this.theme.Apply();\n\n this._ConstructElements();\n this._LoadStyles();\n\n this.componentManager = new ComponentManager(this.theme);\n\n this.loadedComponents = [];\n\n // Begin component update loop\n this._UpdateComponents();\n\n }\n\n /**\n * Load any runtime styling information needed here.\n */\n _LoadStyles() {\n // Loads a font and appends it to the head\n let AppendFont = (href) => {\n var elem = document.createElement(\"style\");\n elem.setAttribute(\"type\", \"text/css\");\n elem.setAttribute(\"rel\", \"stylesheet\");\n elem.setAttribute(\"href\", href);\n document.getElementsByTagName(\"head\")[0].appendChild(elem);\n };\n // Load the fonts we'll be using\n // Mono font\n AppendFont(\"//cdn.jsdelivr.net/font-hack/2.019/css/hack.min.css\");\n // Theme font\n if(this.theme.font) {\n // Set default font to theme font\n if(this.theme.font.fontURL) AppendFont(this.theme.font.fontURL);\n if(this.theme.font.fontFamily) css(this.container, \"font-family\", this.theme.font.fontFamily);\n if(this.theme.font.fontSize) css(this.container, \"font-size\", this.theme.font.fontSize);\n if(this.theme.font.fontWeight) css(this.container, \"font-weight\", this.theme.font.fontWeight);\n } else {\n css(this.container, \"font-family\", \"'Hack', monospace\");\n }\n }\n\n /**\n * Create container, MenuBar, Panel, and ToastArea\n */\n _ConstructElements() {\n // Create the container that all the other elements will be contained within\n this.container = document.createElement(\"div\");\n this.container.classList.add(\"guify-container\");\n\n let containerCSS = {};\n\n // Position the container relative to the root based on `opts`\n if(this.opts.barMode == \"overlay\" || this.opts.barMode == \"above\" || this.opts.barMode == \"none\"){\n containerCSS.position = \"absolute\";\n }\n if(this.hasRoot && this.opts.barMode == \"above\"){\n containerCSS.top = `-${this.theme.sizing.menuBarHeight}`;\n }\n css(this.container, containerCSS);\n\n // Insert the container into the root as the first element\n this.opts.root.insertBefore(this.container, this.opts.root.childNodes[0]);\n\n // Create a menu bar if specified in `opts`\n if(this.opts.barMode !== \"none\") {\n this.bar = new MenuBar(this.container, this.opts, this.theme);\n this.bar.addListener(\"ontogglepanel\", () => {\n this.panel.ToggleVisible();\n });\n this.bar.addListener(\"onfullscreenrequested\", () => {\n this.ToggleFullscreen();\n });\n }\n\n // Create panel\n this.panel = new Panel(this.container, this.opts, this.theme);\n\n // Show the panel by default if there's no menu bar or it's requested\n if(this.opts.barMode === \"none\" || this.opts.open === true) {\n this.panel.SetVisible(true);\n } else {\n // Otherwise hide it by default\n this.panel.SetVisible(false);\n }\n\n // Create toast area\n this.toaster = new ToastArea(this.container, this.opts, this.theme);\n\n }\n\n /**\n * Polling loop that allows our components to update themselves.\n * You can set the frequency of this using `this.opts.pollRateMS`.\n */\n _UpdateComponents() {\n this.loadedComponents.forEach((component) => {\n if(component.binding) {\n // Update the component from its bound value if the value has changed\n if(component.binding.object[component.binding.property] != component.oldValue) {\n component.SetValue(component.binding.object[component.binding.property]);\n component.oldValue = component.binding.object[component.binding.property];\n }\n }\n });\n\n setTimeout(() => {\n window.requestAnimationFrame(() => {\n this._UpdateComponents();\n });\n }, this.opts.pollRateMS);\n\n }\n\n\n /**\n * Creates a new component in the panel based on the provided options.\n * @param {*} [obj] Either an opts object or an array of opts objects\n * @param {Object} [applyToAll] Each property of this object will be applied to all opts objects\n */\n Register(obj, applyToAll = {}) {\n if (Array.isArray(obj)) {\n obj.forEach((item) => {\n let merged = Object.assign(item, applyToAll);\n this._Register(merged);\n });\n }\n else {\n let merged = Object.assign(obj, applyToAll);\n return this._Register(merged);\n }\n }\n\n Remove(obj) {\n obj.Remove();\n this.loadedComponents = this.loadedComponents.filter((item) => {\n return item !== obj;\n });\n }\n\n /**\n * Creates new component in the panel based on the options provided.\n *\n * @param {Object} [opts] Options for the component\n */\n _Register(opts) {\n\n if (opts.object && opts.property)\n if (opts.object[opts.property] === undefined)\n throw new Error(`Object ${opts.object} has no property '${opts.property}'`);\n\n // Set opts properties from the input\n if(opts.object && opts.property) {\n opts.initial = opts.object[opts.property];\n // If no label is specified, generate it from property name\n //opts.label = opts.label || property;\n }\n\n let root = this.panel.panel;\n\n // If a folder was specified, try to find a folder component with that name\n // and get its folderContainer.\n if(opts.folder) {\n let folderComp = this.loadedComponents.find((cmp) => {\n return cmp === opts.folder || (cmp.opts.type === \"folder\" && cmp.opts.label === opts.folder);\n });\n\n if(folderComp) root = folderComp.folderContainer;\n else throw new Error(`No folder exists with the name ${opts.folder}`);\n }\n\n let component = this.componentManager.Create(root, opts);\n\n // Add binding properties if specified\n if(opts.object && opts.property) {\n component[\"binding\"] = { object: opts.object, property: opts.property };\n }\n\n // If the component has events, add listeners for those events.\n if(component.on) {\n component.on(\"initialized\", function (data) {\n if(opts.onInitialize)\n opts.onInitialize(data);\n });\n\n component.on(\"input\", (data) => {\n if(opts.object && opts.property)\n opts.object[opts.property] = data;\n\n if(opts.onChange) {\n opts.onChange(data);\n }\n });\n }\n\n this.loadedComponents.push(component);\n\n return component;\n\n\n }\n\n /**\n * Displays a toast notification under the MenuBar at the top of the root.\n *\n * @param {String} [message] The string you want displayed in the notification.\n * @param {Integer} [stayMS] The number of milliseconds to display the notification for\n * @param {Integer} [transitionMS] The number of milliseconds it takes for the notification to transition into disappearing\n */\n Toast(message, stayMS = 5000, transitionMS = 0) {\n this.toaster.CreateToast(message, stayMS, transitionMS);\n }\n\n\n ToggleFullscreen() {\n let isFullscreen = screenfull.isFullscreen;\n if (isFullscreen) {\n screenfull.exit();\n } else {\n console.log(\"Request fullscreen\");\n screenfull.request(this.opts.root);\n }\n }\n\n // Just for debugging.\n _SetAllEnabled(enabled) {\n this.loadedComponents.forEach((item) => {\n item.SetEnabled(enabled);\n });\n }\n\n}\n","import themes from \"./themes\";\n\nexport default class Theme {\n constructor(themeName) {\n\n var theme = themes[themeName];\n if(theme === undefined) {\n console.error(`There is no theme preset with the name '${themeName}'! Defaulting to dark theme.`);\n theme = themes.dark;\n }\n\n // Merge the base theme with the theme parameters and make\n // the result properties of this object\n Object.assign(this, baseTheme, theme);\n }\n\n /**\n * Applies the CSS to the global scope.\n */\n Apply() {\n console.log(this);\n\n let root = document.documentElement;\n root.style.setProperty(\"--color-menu-bar-background\", this.colors.menuBarBackground);\n root.style.setProperty(\"--color-menu-bar-text\", this.colors.menuBarText);\n root.style.setProperty(\"--color-panel-background\", this.colors.panelBackground);\n\n root.style.setProperty(\"--color-component-background\", this.colors.componentBackground);\n root.style.setProperty(\"--color-component-background-hover\", this.colors.componentBackgroundHover);\n root.style.setProperty(\"--color-component-background-disabled\", this.colors.componentBackgroundDisabled);\n root.style.setProperty(\"--color-component-foreground\", this.colors.componentForeground);\n root.style.setProperty(\"--color-component-active\", this.colors.componentActive);\n\n root.style.setProperty(\"--color-text-primary\", this.colors.textPrimary);\n root.style.setProperty(\"--color-text-secondary\", this.colors.textSecondary);\n root.style.setProperty(\"--color-text-hover\", this.colors.textHover);\n root.style.setProperty(\"--color-text-active\", this.colors.textActive);\n root.style.setProperty(\"--color-text-disabled\", this.colors.textDisabled);\n\n root.style.setProperty(\"--size-menu-bar-height\", this.sizing.menuBarHeight);\n root.style.setProperty(\"--size-component-height\", this.sizing.componentHeight);\n root.style.setProperty(\"--size-component-spacing\", this.sizing.componentSpacing);\n root.style.setProperty(\"--size-label-width\", this.sizing.labelWidth);\n }\n}\n\nconst baseTheme = {\n name: \"BaseTheme\",\n\n colors: {\n menuBarBackground: \"black\",\n menuBarText: \"black\",\n panelBackground: \"black\",\n\n componentBackground: \"black\",\n componentBackgroundHover: \"black\",\n componentBackgroundDisabled: \"black\",\n componentForeground: \"black\",\n componentActive: \"black\",\n\n textPrimary: \"black\",\n textSecondary: \"black\",\n textHover: \"black\",\n textActive: \"black\",\n textDisabled: \"black\",\n },\n\n sizing: {\n menuBarHeight: \"25px\",\n componentHeight: \"20px\",\n componentSpacing: \"5px\",\n labelWidth: \"42%\",\n },\n};\n","module.exports = {\n\n light: {\n name: \"Light\",\n\n colors: {\n menuBarBackground: \"rgb(227, 227, 227)\",\n menuBarText: \"rgb(36, 36, 36)\",\n panelBackground: \"rgb(227, 227, 227)\",\n\n componentBackground: \"rgb(204, 204, 204)\",\n componentBackgroundHover: \"rgb(190, 190, 190)\",\n componentBackgroundDisabled: \"rgb(200, 200, 200)\",\n componentForeground: \"rgb(105, 105, 105)\",\n componentActive: \"rgb(36, 36, 36)\",\n\n textPrimary: \"rgb(36, 36, 36)\",\n textSecondary: \"rgb(87, 87, 87)\",\n textHover: \"rgb(204, 204, 204)\",\n textActive: \"rgb(204, 204, 204)\",\n textDisabled: \"rgb(180, 180, 180)\",\n },\n\n },\n\n dark: {\n name: \"Dark\",\n\n colors: {\n menuBarBackground: \"rgb(35, 35, 35)\",\n menuBarText: \"rgb(235, 235, 235)\",\n panelBackground: \"rgb(35, 35, 35)\",\n\n componentBackground: \"rgb(54, 54, 54)\",\n componentBackgroundHover: \"rgb(76, 76, 76)\",\n componentBackgroundDisabled: \"rgb(24, 24, 24)\",\n componentForeground: \"rgb(112, 112, 112)\",\n componentActive: \"rgb(202, 202, 202)\",\n\n textPrimary: \"rgb(235, 235, 235)\",\n textSecondary: \"rgb(181, 181, 181)\",\n textHover: \"rgb(235, 235, 235)\",\n textActive: \"rgb(54, 54, 54)\",\n textDisabled: \"rgb(54, 54, 54)\",\n },\n\n },\n\n // Color scheme from https://metakirby5.github.io/yorha/\n yorha: {\n name: \"YoRHa\",\n\n colors: {\n menuBarBackground: \"#CCC8B1\",\n menuBarText: \"#454138\",\n panelBackground: \"#CCC8B1\",\n\n componentBackground: \"#BAB5A1\",\n componentBackgroundHover: \"#877F6E\",\n componentBackgroundDisabled: \"#DED8C7\",\n componentForeground: \"#454138\",\n componentActive: \"#978F7E\",\n\n textPrimary: \"#454138\",\n textSecondary: \"#454138\",\n textHover: \"#CCC8B1\",\n textActive: \"#CCC8B1\",\n textDisabled: \"#BAB5A6\",\n },\n\n //Optional\n font: {\n fontFamily: \"helvetica, sans-serif\",\n fontSize: \"14px\",\n fontWeight: \"100\"\n },\n },\n\n\n};\n","\n/**\n * Linearly interpolates `t` between `v0` and `v1`.\n * https://en.wikipedia.org/wiki/Linear_interpolation\n * @param {*} v0 Lower bound\n * @param {*} v1 Upper bound\n * @param {*} t Progress (value between 0 and 1)\n * @returns Mapped number\n */\nfunction lerp(v0, v1, t) {\n return (1 - t) * v0 + t * v1;\n}\n\nexport { lerp };","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".guify-container {\\n position: relative;\\n left: 0;\\n width: 100%;\\n font-size: 11px;\\n z-index: 9999;\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/internal/container.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,kBAAkB;IAClB,OAAO;IACP,WAAW;IACX,eAAe;IACf,aAAa;AACjB\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n.guify-container {\\n position: relative;\\n left: 0;\\n width: 100%;\\n font-size: 11px;\\n z-index: 9999;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".guify-bar {\\n background-color: var(--color-menu-bar-background);\\n height: var(--size-menu-bar-height);\\n width: 100%;\\n opacity: 1.0;\\n position: relative;\\n cursor: default;\\n}\\n\\n.guify-bar-title {\\n color: var(--color-menu-bar-text);\\n text-align: center;\\n width: 100%;\\n position: absolute;\\n top: 0;\\n line-height: var(--size-menu-bar-height);\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n}\\n\\n.guify-bar-button {\\n text-align: center;\\n border: none;\\n cursor: pointer;\\n font-family: inherit;\\n height: 100%;\\n position: absolute;\\n top: 0;\\n color: var(--color-text-primary);\\n background-color: var(--color-component-background);\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n margin: 0;\\n\\n}\\n\\n/* Hide default accessibility outlines since we're providing our own visual feedback */\\n.guify-bar-button:focus {\\n outline: none;\\n}\\n.guify-bar-button::-moz-focus-inner {\\n border: 0;\\n}\\n\\n.guify-bar-button:hover,\\n.guify-bar-button:focus {\\n color: var(--color-text-hover);\\n background-color: var(--color-component-foreground);\\n}\\n\\n.guify-bar-button:active {\\n color: var(--color-text-active) !important;\\n background-color: var(--color-component-active) !important;\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/internal/menu-bar.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,kDAAkD;IAClD,mCAAmC;IACnC,WAAW;IACX,YAAY;IACZ,kBAAkB;IAClB,eAAe;AACnB;;AAEA;IACI,iCAAiC;IACjC,kBAAkB;IAClB,WAAW;IACX,kBAAkB;IAClB,MAAM;IACN,wCAAwC;IACxC,yBAAyB;IACzB,sBAAsB;IACtB,qBAAqB;IACrB,iBAAiB;AACrB;;AAEA;IACI,kBAAkB;IAClB,YAAY;IACZ,eAAe;IACf,oBAAoB;IACpB,YAAY;IACZ,kBAAkB;IAClB,MAAM;IACN,gCAAgC;IAChC,mDAAmD;IACnD,yBAAyB;IACzB,sBAAsB;IACtB,qBAAqB;IACrB,iBAAiB;IACjB,SAAS;;AAEb;;AAEA,sFAAsF;AACtF;IACI,aAAa;AACjB;AACA;IACI,SAAS;AACb;;AAEA;;IAEI,8BAA8B;IAC9B,mDAAmD;AACvD;;AAEA;IACI,0CAA0C;IAC1C,0DAA0D;AAC9D\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n.guify-bar {\\n background-color: var(--color-menu-bar-background);\\n height: var(--size-menu-bar-height);\\n width: 100%;\\n opacity: 1.0;\\n position: relative;\\n cursor: default;\\n}\\n\\n.guify-bar-title {\\n color: var(--color-menu-bar-text);\\n text-align: center;\\n width: 100%;\\n position: absolute;\\n top: 0;\\n line-height: var(--size-menu-bar-height);\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n}\\n\\n.guify-bar-button {\\n text-align: center;\\n border: none;\\n cursor: pointer;\\n font-family: inherit;\\n height: 100%;\\n position: absolute;\\n top: 0;\\n color: var(--color-text-primary);\\n background-color: var(--color-component-background);\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n margin: 0;\\n\\n}\\n\\n/* Hide default accessibility outlines since we're providing our own visual feedback */\\n.guify-bar-button:focus {\\n outline: none;\\n}\\n.guify-bar-button::-moz-focus-inner {\\n border: 0;\\n}\\n\\n.guify-bar-button:hover,\\n.guify-bar-button:focus {\\n color: var(--color-text-hover);\\n background-color: var(--color-component-foreground);\\n}\\n\\n.guify-bar-button:active {\\n color: var(--color-text-active) !important;\\n background-color: var(--color-component-active) !important;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".guify-panel-container {\\n position: absolute;\\n background: var(--color-panel-background);\\n}\\n\\n.guify-panel {\\n padding: 14px;\\n /* Last component will have a margin, so reduce padding to account for this */\\n padding-bottom: calc(14px - var(--size-component-spacing));\\n\\n /* all: initial; */\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n cursor: default;\\n text-align: left;\\n box-sizing: border-box;\\n}\\n\\n.guify-panel.guify-panel-hidden {\\n height: 0px;\\n display: none;\\n}\\n\\n.guify-panel * {\\n box-sizing: content-box;\\n box-sizing: initial;\\n -webkit-box-sizing: initial;\\n -moz-box-sizing: initial;\\n}\\n\\n.guify-panel input {\\n font-family: 'Hack';\\n font-size: 11px;\\n display: inline;\\n}\\n\\n.guify-panel a {\\n color: inherit;\\n text-decoration: none;\\n}\\n\\n.guify-panel-toggle-button {\\n position: absolute;\\n top: 0;\\n margin: 0;\\n padding: 0;\\n width: 15px;\\n height: 15px;\\n line-height: 15px;\\n text-align: center;\\n border: none;\\n cursor: pointer;\\n font-family: inherit;\\n color: var(--color-text-primary);\\n background-color: var(--color-component-background);\\n\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n\\n}\\n\\n/* Open/Close button styling */\\n.guify-panel-toggle-button svg {\\n fill-opacity: 0;\\n stroke-width: 3;\\n stroke: var(--color-component-foreground);\\n}\\n\\n/* Remove browser default outlines since we're providing our own */\\n.guify-panel-toggle-button:focus {\\n outline:none;\\n}\\n.guify-panel-toggle-button::-moz-focus-inner {\\n border: 0;\\n}\\n\\n.guify-panel-toggle-button:hover,\\n.guify-panel-toggle-button:focus {\\n color: var(--color-text-hover);\\n background-color: var(--color-component-foreground);\\n}\\n\\n.guify-panel-toggle-button:active {\\n color: var(--color-text-active);\\n background-color:var(--color-component-active);\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/internal/panel.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,kBAAkB;IAClB,yCAAyC;AAC7C;;AAEA;IACI,aAAa;IACb,6EAA6E;IAC7E,0DAA0D;;IAE1D,mBAAmB;IACnB,yBAAyB;IACzB,sBAAsB;IACtB,qBAAqB;IACrB,iBAAiB;IACjB,eAAe;IACf,gBAAgB;IAChB,sBAAsB;AAC1B;;AAEA;IACI,WAAW;IACX,aAAa;AACjB;;AAEA;IACI,uBAAmB;IAAnB,mBAAmB;IACnB,2BAA2B;IAC3B,wBAAwB;AAC5B;;AAEA;IACI,mBAAmB;IACnB,eAAe;IACf,eAAe;AACnB;;AAEA;IACI,cAAc;IACd,qBAAqB;AACzB;;AAEA;IACI,kBAAkB;IAClB,MAAM;IACN,SAAS;IACT,UAAU;IACV,WAAW;IACX,YAAY;IACZ,iBAAiB;IACjB,kBAAkB;IAClB,YAAY;IACZ,eAAe;IACf,oBAAoB;IACpB,gCAAgC;IAChC,mDAAmD;;IAEnD,yBAAyB;IACzB,sBAAsB;IACtB,qBAAqB;IACrB,iBAAiB;;AAErB;;AAEA,8BAA8B;AAC9B;IACI,eAAe;IACf,eAAe;IACf,yCAAyC;AAC7C;;AAEA,kEAAkE;AAClE;IACI,YAAY;AAChB;AACA;IACI,SAAS;AACb;;AAEA;;IAEI,8BAA8B;IAC9B,mDAAmD;AACvD;;AAEA;IACI,+BAA+B;IAC/B,8CAA8C;AAClD\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n.guify-panel-container {\\n position: absolute;\\n background: var(--color-panel-background);\\n}\\n\\n.guify-panel {\\n padding: 14px;\\n /* Last component will have a margin, so reduce padding to account for this */\\n padding-bottom: calc(14px - var(--size-component-spacing));\\n\\n /* all: initial; */\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n cursor: default;\\n text-align: left;\\n box-sizing: border-box;\\n}\\n\\n.guify-panel.guify-panel-hidden {\\n height: 0px;\\n display: none;\\n}\\n\\n.guify-panel * {\\n box-sizing: initial;\\n -webkit-box-sizing: initial;\\n -moz-box-sizing: initial;\\n}\\n\\n.guify-panel input {\\n font-family: 'Hack';\\n font-size: 11px;\\n display: inline;\\n}\\n\\n.guify-panel a {\\n color: inherit;\\n text-decoration: none;\\n}\\n\\n.guify-panel-toggle-button {\\n position: absolute;\\n top: 0;\\n margin: 0;\\n padding: 0;\\n width: 15px;\\n height: 15px;\\n line-height: 15px;\\n text-align: center;\\n border: none;\\n cursor: pointer;\\n font-family: inherit;\\n color: var(--color-text-primary);\\n background-color: var(--color-component-background);\\n\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n\\n}\\n\\n/* Open/Close button styling */\\n.guify-panel-toggle-button svg {\\n fill-opacity: 0;\\n stroke-width: 3;\\n stroke: var(--color-component-foreground);\\n}\\n\\n/* Remove browser default outlines since we're providing our own */\\n.guify-panel-toggle-button:focus {\\n outline:none;\\n}\\n.guify-panel-toggle-button::-moz-focus-inner {\\n border: 0;\\n}\\n\\n.guify-panel-toggle-button:hover,\\n.guify-panel-toggle-button:focus {\\n color: var(--color-text-hover);\\n background-color: var(--color-component-foreground);\\n}\\n\\n.guify-panel-toggle-button:active {\\n color: var(--color-text-active);\\n background-color:var(--color-component-active);\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".guify-toast-notification {\\n box-sizing: border-box;\\n position: relative;\\n width: 100%;\\n /* height: 20px; */\\n padding: 8px;\\n padding-left: 20px;\\n padding-right: 20px;\\n text-align: center;\\n font-family: 'Hack', monospace;\\n font-size: 11px;\\n}\\n\\n.guify-toast-area .guify-toast-notification:nth-child(odd) {\\n color: var(--color-text-primary);\\n background-color:var(--color-panel-background);\\n}\\n\\n.guify-toast-area .guify-toast-notification:nth-child(even) {\\n color: var(--color-text-primary);\\n background-color: var(--color-menu-bar-background);\\n}\\n\\n.guify-toast-close-button {\\n color: var(--color-text-primary);\\n background: transparent;\\n position: absolute;\\n text-align: center;\\n margin-top: auto;\\n margin-bottom: auto;\\n border: none;\\n cursor: pointer;\\n top: 0;\\n bottom: 0;\\n right: 8px;\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/internal/toast-area.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,sBAAsB;IACtB,kBAAkB;IAClB,WAAW;IACX,kBAAkB;IAClB,YAAY;IACZ,kBAAkB;IAClB,mBAAmB;IACnB,kBAAkB;IAClB,8BAA8B;IAC9B,eAAe;AACnB;;AAEA;IACI,gCAAgC;IAChC,8CAA8C;AAClD;;AAEA;IACI,gCAAgC;IAChC,kDAAkD;AACtD;;AAEA;IACI,gCAAgC;IAChC,uBAAuB;IACvB,kBAAkB;IAClB,kBAAkB;IAClB,gBAAgB;IAChB,mBAAmB;IACnB,YAAY;IACZ,eAAe;IACf,MAAM;IACN,SAAS;IACT,UAAU;AACd\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n.guify-toast-notification {\\n box-sizing: border-box;\\n position: relative;\\n width: 100%;\\n /* height: 20px; */\\n padding: 8px;\\n padding-left: 20px;\\n padding-right: 20px;\\n text-align: center;\\n font-family: 'Hack', monospace;\\n font-size: 11px;\\n}\\n\\n.guify-toast-area .guify-toast-notification:nth-child(odd) {\\n color: var(--color-text-primary);\\n background-color:var(--color-panel-background);\\n}\\n\\n.guify-toast-area .guify-toast-notification:nth-child(even) {\\n color: var(--color-text-primary);\\n background-color: var(--color-menu-bar-background);\\n}\\n\\n.guify-toast-close-button {\\n color: var(--color-text-primary);\\n background: transparent;\\n position: absolute;\\n text-align: center;\\n margin-top: auto;\\n margin-bottom: auto;\\n border: none;\\n cursor: pointer;\\n top: 0;\\n bottom: 0;\\n right: 8px;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".guify-component-container {\\n position: relative;\\n min-height: var(--size-component-height);\\n line-height: var(--size-component-height);\\n margin-bottom: var(--size-component-spacing);\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/partials/container.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,kBAAkB;IAClB,wCAAwC;IACxC,yCAAyC;IACzC,4CAA4C;AAChD\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n.guify-component-container {\\n position: relative;\\n min-height: var(--size-component-height);\\n line-height: var(--size-component-height);\\n margin-bottom: var(--size-component-spacing);\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".guify-component-label {\\n left: 0;\\n width: calc(var(--size-label-width) - 2%);\\n display: inline-block;\\n margin-right: 2%;\\n vertical-align: top;\\n min-height: var(--size-component-height);\\n line-height: var(--size-component-height);\\n\\n color: var(--color-text-primary);\\n}\\n\\n/* Disabled styles */\\n.disabled .guify-component-label {\\n color: var(--color-text-disabled);\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/partials/label.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,OAAO;IACP,yCAAyC;IACzC,qBAAqB;IACrB,gBAAgB;IAChB,mBAAmB;IACnB,wCAAwC;IACxC,yCAAyC;;IAEzC,gCAAgC;AACpC;;AAEA,oBAAoB;AACpB;IACI,iCAAiC;AACrC\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n.guify-component-label {\\n left: 0;\\n width: calc(var(--size-label-width) - 2%);\\n display: inline-block;\\n margin-right: 2%;\\n vertical-align: top;\\n min-height: var(--size-component-height);\\n line-height: var(--size-component-height);\\n\\n color: var(--color-text-primary);\\n}\\n\\n/* Disabled styles */\\n.disabled .guify-component-label {\\n color: var(--color-text-disabled);\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".guify-value-input {\\n position: absolute;\\n background-color: var(--color-component-background);\\n padding-left: 1%;\\n height: var(--size-component-height);\\n display: inline-block;\\n overflow: hidden;\\n border: none;\\n\\n font-family: 'Hack', monospace;\\n font-size: 11px;\\n color: var(--color-text-secondary);\\n -webkit-user-select: text;\\n -moz-user-select: text;\\n -ms-user-select: text;\\n user-select: text;\\n cursor: text;\\n line-height: var(--size-component-height);\\n word-break: break-all;\\n\\n box-sizing: border-box !important;\\n -moz-box-sizing: border-box !important;\\n -webkit-box-sizing: border-box !important;\\n}\\n\\n.guify-value-input-right {\\n right: 0 !important;\\n}\\n\\n.disabled .guify-value-input {\\n pointer-events: none;\\n background-color: var(--color-component-background-disabled);\\n color: var(--color-text-disabled);\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/partials/value.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,kBAAkB;IAClB,mDAAmD;IACnD,gBAAgB;IAChB,oCAAoC;IACpC,qBAAqB;IACrB,gBAAgB;IAChB,YAAY;;IAEZ,8BAA8B;IAC9B,eAAe;IACf,kCAAkC;IAClC,yBAAiB;OAAjB,sBAAiB;QAAjB,qBAAiB;YAAjB,iBAAiB;IACjB,YAAY;IACZ,yCAAyC;IACzC,qBAAqB;;IAErB,iCAAiC;IACjC,sCAAsC;IACtC,yCAAyC;AAC7C;;AAEA;IACI,mBAAmB;AACvB;;AAEA;IACI,oBAAoB;IACpB,4DAA4D;IAC5D,iCAAiC;AACrC\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n.guify-value-input {\\n position: absolute;\\n background-color: var(--color-component-background);\\n padding-left: 1%;\\n height: var(--size-component-height);\\n display: inline-block;\\n overflow: hidden;\\n border: none;\\n\\n font-family: 'Hack', monospace;\\n font-size: 11px;\\n color: var(--color-text-secondary);\\n user-select: text;\\n cursor: text;\\n line-height: var(--size-component-height);\\n word-break: break-all;\\n\\n box-sizing: border-box !important;\\n -moz-box-sizing: border-box !important;\\n -webkit-box-sizing: border-box !important;\\n}\\n\\n.guify-value-input-right {\\n right: 0 !important;\\n}\\n\\n.disabled .guify-value-input {\\n pointer-events: none;\\n background-color: var(--color-component-background-disabled);\\n color: var(--color-text-disabled);\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".guify-button {\\n box-sizing: border-box !important;\\n color: var(--color-text-secondary);\\n background-color: var(--color-component-background);\\n\\n position: absolute;\\n text-align: center;\\n height: var(--size-component-height);\\n line-height: var(--size-component-height);\\n padding-top: 0px;\\n padding-bottom: 0px;\\n width: calc(100% - var(--size-label-width));\\n border: none;\\n cursor: pointer;\\n right: 0;\\n font-family: inherit;\\n}\\n\\n.guify-button:focus {\\n outline:none;\\n}\\n.guify-button::-moz-focus-inner {\\n border:0;\\n}\\n\\n.guify-button:hover,\\n.guify-button:focus {\\n color: var(--color-text-hover);\\n background-color: var(--color-component-foreground);\\n}\\n\\n.guify-button:active {\\n color: var(--color-text-active) !important;\\n background-color: var(--color-component-active) !important;\\n}\\n\\n*.disabled > .guify-button {\\n pointer-events: none;\\n background-color: var(--color-component-background-disabled);\\n color: var(--color-text-disabled);\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/public/button.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,iCAAiC;IACjC,kCAAkC;IAClC,mDAAmD;;IAEnD,kBAAkB;IAClB,kBAAkB;IAClB,oCAAoC;IACpC,yCAAyC;IACzC,gBAAgB;IAChB,mBAAmB;IACnB,2CAA2C;IAC3C,YAAY;IACZ,eAAe;IACf,QAAQ;IACR,oBAAoB;AACxB;;AAEA;IACI,YAAY;AAChB;AACA;IACI,QAAQ;AACZ;;AAEA;;IAEI,8BAA8B;IAC9B,mDAAmD;AACvD;;AAEA;IACI,0CAA0C;IAC1C,0DAA0D;AAC9D;;AAEA;IACI,oBAAoB;IACpB,4DAA4D;IAC5D,iCAAiC;AACrC\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n.guify-button {\\n box-sizing: border-box !important;\\n color: var(--color-text-secondary);\\n background-color: var(--color-component-background);\\n\\n position: absolute;\\n text-align: center;\\n height: var(--size-component-height);\\n line-height: var(--size-component-height);\\n padding-top: 0px;\\n padding-bottom: 0px;\\n width: calc(100% - var(--size-label-width));\\n border: none;\\n cursor: pointer;\\n right: 0;\\n font-family: inherit;\\n}\\n\\n.guify-button:focus {\\n outline:none;\\n}\\n.guify-button::-moz-focus-inner {\\n border:0;\\n}\\n\\n.guify-button:hover,\\n.guify-button:focus {\\n color: var(--color-text-hover);\\n background-color: var(--color-component-foreground);\\n}\\n\\n.guify-button:active {\\n color: var(--color-text-active) !important;\\n background-color: var(--color-component-active) !important;\\n}\\n\\n*.disabled > .guify-button {\\n pointer-events: none;\\n background-color: var(--color-component-background-disabled);\\n color: var(--color-text-disabled);\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root {\\n --checkbox-border-width: 4px;\\n}\\n\\ninput[type=checkbox].guify-checkbox {\\n opacity: 0;\\n appearance: none;\\n -moz-appearance: none;\\n -webkit-appearance: none;\\n margin: 0;\\n border-radius: 0;\\n cursor: pointer;\\n}\\n\\ninput[type=checkbox].guify-checkbox + label {\\n margin: 0;\\n}\\n\\ninput[type=checkbox].guify-checkbox + label:before {\\n content: \\\"\\\";\\n display: inline-block;\\n width: var(--size-component-height);\\n height: var(--size-component-height);\\n padding: 0;\\n margin: 0;\\n vertical-align: middle;\\n background-color: var(--color-component-background);\\n border-radius: 0px;\\n cursor: pointer;\\n box-sizing: content-box;\\n -moz-box-sizing: content-box;\\n -webkit-box-sizing: content-box;\\n\\n}\\n\\n/* Hover style */\\ninput[type=checkbox].guify-checkbox:hover:not(:disabled) + label:before {\\n width: calc(var(--size-component-height) - (4px * 2));\\n width: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\\n height: calc(var(--size-component-height) - (4px * 2));\\n height: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\\n background-color: var(--color-component-background-hover);\\n border: solid 4px var(--color-component-background);\\n}\\n\\n/* Checked style */\\ninput[type=checkbox]:checked.guify-checkbox + label:before {\\n width: calc(var(--size-component-height) - (4px * 2));\\n width: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\\n height: calc(var(--size-component-height) - (4px * 2));\\n height: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\\n background-color: var(--color-component-foreground);\\n border: solid 4px var(--color-component-background);\\n border: solid var(--checkbox-border-width) var(--color-component-background);\\n}\\n\\n/* Focused and checked */\\ninput[type=checkbox]:checked.guify-checkbox:focus + label:before {\\n width: calc(var(--size-component-height) - (4px * 2));\\n width: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\\n height: calc(var(--size-component-height) - (4px * 2));\\n height: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\\n background-color: var(--color-component-foreground);\\n border: solid 4px var(--color-component-background-hover);\\n border: solid var(--checkbox-border-width) var(--color-component-background-hover);\\n}\\n\\n/* Focus and unchecked */\\ninput[type=checkbox].guify-checkbox:focus + label:before {\\n background-color: var(--color-component-background-hover);\\n}\\n\\n/* Disabled styles */\\n.disabled input[type=checkbox].guify-checkbox + label {\\n pointer-events: none;\\n}\\n.disabled input[type=\\\"checkbox\\\"].guify-checkbox + label::before {\\n pointer-events: none;\\n background-color: var(--color-component-background-disabled);\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/public/checkbox.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,4BAA4B;AAChC;;AAEA;IACI,UAAU;IACV,gBAAgB;IAChB,qBAAqB;IACrB,wBAAwB;IACxB,SAAS;IACT,gBAAgB;IAChB,eAAe;AACnB;;AAEA;IACI,SAAS;AACb;;AAEA;IACI,WAAW;IACX,qBAAqB;IACrB,mCAAmC;IACnC,oCAAoC;IACpC,UAAU;IACV,SAAS;IACT,sBAAsB;IACtB,mDAAmD;IACnD,kBAAkB;IAClB,eAAe;IACf,uBAAuB;IACvB,4BAA4B;IAC5B,+BAA+B;;AAEnC;;AAEA,gBAAgB;AAChB;IACI,qDAA8E;IAA9E,8EAA8E;IAC9E,sDAA+E;IAA/E,+EAA+E;IAC/E,yDAAyD;IACzD,mDAAmD;AACvD;;AAEA,kBAAkB;AAClB;IACI,qDAA8E;IAA9E,8EAA8E;IAC9E,sDAA+E;IAA/E,+EAA+E;IAC/E,mDAAmD;IACnD,mDAA4E;IAA5E,4EAA4E;AAChF;;AAEA,wBAAwB;AACxB;IACI,qDAA8E;IAA9E,8EAA8E;IAC9E,sDAA+E;IAA/E,+EAA+E;IAC/E,mDAAmD;IACnD,yDAAkF;IAAlF,kFAAkF;AACtF;;AAEA,wBAAwB;AACxB;IACI,yDAAyD;AAC7D;;AAEA,oBAAoB;AACpB;IACI,oBAAoB;AACxB;AACA;IACI,oBAAoB;IACpB,4DAA4D;AAChE\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n:root {\\n --checkbox-border-width: 4px;\\n}\\n\\ninput[type=checkbox].guify-checkbox {\\n opacity: 0;\\n appearance: none;\\n -moz-appearance: none;\\n -webkit-appearance: none;\\n margin: 0;\\n border-radius: 0;\\n cursor: pointer;\\n}\\n\\ninput[type=checkbox].guify-checkbox + label {\\n margin: 0;\\n}\\n\\ninput[type=checkbox].guify-checkbox + label:before {\\n content: \\\"\\\";\\n display: inline-block;\\n width: var(--size-component-height);\\n height: var(--size-component-height);\\n padding: 0;\\n margin: 0;\\n vertical-align: middle;\\n background-color: var(--color-component-background);\\n border-radius: 0px;\\n cursor: pointer;\\n box-sizing: content-box;\\n -moz-box-sizing: content-box;\\n -webkit-box-sizing: content-box;\\n\\n}\\n\\n/* Hover style */\\ninput[type=checkbox].guify-checkbox:hover:not(:disabled) + label:before {\\n width: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\\n height: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\\n background-color: var(--color-component-background-hover);\\n border: solid 4px var(--color-component-background);\\n}\\n\\n/* Checked style */\\ninput[type=checkbox]:checked.guify-checkbox + label:before {\\n width: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\\n height: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\\n background-color: var(--color-component-foreground);\\n border: solid var(--checkbox-border-width) var(--color-component-background);\\n}\\n\\n/* Focused and checked */\\ninput[type=checkbox]:checked.guify-checkbox:focus + label:before {\\n width: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\\n height: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\\n background-color: var(--color-component-foreground);\\n border: solid var(--checkbox-border-width) var(--color-component-background-hover);\\n}\\n\\n/* Focus and unchecked */\\ninput[type=checkbox].guify-checkbox:focus + label:before {\\n background-color: var(--color-component-background-hover);\\n}\\n\\n/* Disabled styles */\\n.disabled input[type=checkbox].guify-checkbox + label {\\n pointer-events: none;\\n}\\n.disabled input[type=\\\"checkbox\\\"].guify-checkbox + label::before {\\n pointer-events: none;\\n background-color: var(--color-component-background-disabled);\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/* Styling for simple-color-picker */\\n\\n.guify-color .Scp {\\n width: 125px;\\n height: 100px;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n position: relative;\\n z-index: 1000;\\n cursor: pointer;\\n}\\n.guify-color .Scp-saturation {\\n position: relative;\\n width: calc(100% - 25px);\\n height: 100%;\\n background: linear-gradient(to right, #fff 0%, #f00 100%);\\n float: left;\\n margin-right: 5px;\\n}\\n.guify-color .Scp-brightness {\\n width: 100%;\\n height: 100%;\\n background: linear-gradient(to top, #000 0%, rgba(255,255,255,0) 100%);\\n}\\n.guify-color .Scp-sbSelector {\\n border: 1px solid;\\n position: absolute;\\n width: 14px;\\n height: 14px;\\n background: #fff;\\n border-radius: 10px;\\n top: -7px;\\n left: -7px;\\n box-sizing: border-box;\\n z-index: 10;\\n}\\n.guify-color .Scp-hue {\\n width: 20px;\\n height: 100%;\\n position: relative;\\n float: left;\\n background: linear-gradient(to bottom, #f00 0%, #f0f 17%, #00f 34%, #0ff 50%, #0f0 67%, #ff0 84%, #f00 100%);\\n}\\n.guify-color .Scp-hSelector {\\n position: absolute;\\n background: #fff;\\n border-bottom: 1px solid #000;\\n right: -3px;\\n width: 10px;\\n height: 2px;\\n}\\n\\n/* Disabled styles */\\n.disabled .guify-color {\\n pointer-events: none;\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/public/color.css\"],\"names\":[],\"mappings\":\"AAEA,oCAAoC;;AAEpC;IACI,YAAY;IACZ,aAAa;IACb,yBAAyB;QACrB,sBAAsB;YAClB,qBAAqB;gBACjB,iBAAiB;IAC7B,kBAAkB;IAClB,aAAa;IACb,eAAe;AACnB;AACA;IACI,kBAAkB;IAClB,wBAAwB;IACxB,YAAY;IACZ,yDAAyD;IACzD,WAAW;IACX,iBAAiB;AACrB;AACA;IACI,WAAW;IACX,YAAY;IACZ,sEAAsE;AAC1E;AACA;IACI,iBAAiB;IACjB,kBAAkB;IAClB,WAAW;IACX,YAAY;IACZ,gBAAgB;IAChB,mBAAmB;IACnB,SAAS;IACT,UAAU;IACV,sBAAsB;IACtB,WAAW;AACf;AACA;IACI,WAAW;IACX,YAAY;IACZ,kBAAkB;IAClB,WAAW;IACX,4GAA4G;AAChH;AACA;IACI,kBAAkB;IAClB,gBAAgB;IAChB,6BAA6B;IAC7B,WAAW;IACX,WAAW;IACX,WAAW;AACf;;AAEA,oBAAoB;AACpB;IACI,oBAAoB;AACxB\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n/* Styling for simple-color-picker */\\n\\n.guify-color .Scp {\\n width: 125px;\\n height: 100px;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n position: relative;\\n z-index: 1000;\\n cursor: pointer;\\n}\\n.guify-color .Scp-saturation {\\n position: relative;\\n width: calc(100% - 25px);\\n height: 100%;\\n background: linear-gradient(to right, #fff 0%, #f00 100%);\\n float: left;\\n margin-right: 5px;\\n}\\n.guify-color .Scp-brightness {\\n width: 100%;\\n height: 100%;\\n background: linear-gradient(to top, #000 0%, rgba(255,255,255,0) 100%);\\n}\\n.guify-color .Scp-sbSelector {\\n border: 1px solid;\\n position: absolute;\\n width: 14px;\\n height: 14px;\\n background: #fff;\\n border-radius: 10px;\\n top: -7px;\\n left: -7px;\\n box-sizing: border-box;\\n z-index: 10;\\n}\\n.guify-color .Scp-hue {\\n width: 20px;\\n height: 100%;\\n position: relative;\\n float: left;\\n background: linear-gradient(to bottom, #f00 0%, #f0f 17%, #00f 34%, #0ff 50%, #0f0 67%, #ff0 84%, #f00 100%);\\n}\\n.guify-color .Scp-hSelector {\\n position: absolute;\\n background: #fff;\\n border-bottom: 1px solid #000;\\n right: -3px;\\n width: 10px;\\n height: 2px;\\n}\\n\\n/* Disabled styles */\\n.disabled .guify-color {\\n pointer-events: none;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".guify-display {\\n display: inline-block;\\n height: unset;\\n min-height: var(--size-component-height);\\n width: calc(100% - var(--size-label-width));\\n border: none;\\n color: var(--color-text-secondary);\\n font-family: inherit;\\n box-sizing: border-box;\\n -moz-box-sizing: border-box;\\n -webkit-box-sizing: border-box;\\n vertical-align: sub;\\n line-height: 1rem;\\n -webkit-user-select: text;\\n -moz-user-select: text;\\n -ms-user-select: text;\\n user-select: text;\\n}\\n\\n.disabled .guify-display {\\n color: var(--color-text-disabled);\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/public/display.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,qBAAqB;IACrB,aAAa;IACb,wCAAwC;IACxC,2CAA2C;IAC3C,YAAY;IACZ,kCAAkC;IAClC,oBAAoB;IACpB,sBAAsB;IACtB,2BAA2B;IAC3B,8BAA8B;IAC9B,mBAAmB;IACnB,iBAAiB;IACjB,yBAAiB;OAAjB,sBAAiB;QAAjB,qBAAiB;YAAjB,iBAAiB;AACrB;;AAEA;IACI,iCAAiC;AACrC\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n.guify-display {\\n display: inline-block;\\n height: unset;\\n min-height: var(--size-component-height);\\n width: calc(100% - var(--size-label-width));\\n border: none;\\n color: var(--color-text-secondary);\\n font-family: inherit;\\n box-sizing: border-box;\\n -moz-box-sizing: border-box;\\n -webkit-box-sizing: border-box;\\n vertical-align: sub;\\n line-height: 1rem;\\n user-select: text;\\n}\\n\\n.disabled .guify-display {\\n color: var(--color-text-disabled);\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".guify-file-container {\\n display: inline-block;\\n outline: none;\\n padding-top: 8px;\\n padding-bottom: 8px;\\n color: var(--color-text-primary);\\n background-color: var(--color-component-background);\\n cursor: pointer;\\n}\\n\\n.guify-file-container:hover:not(:disabled),\\n.guify-file-container:focus:not(:disabled) {\\n color: var(--color-text-hover);\\n background-color: var(--color-component-foreground);\\n}\\n\\n.guify-file-container:active:not(:disabled) {\\n color: var(--color-text-active) !important;\\n background-color: var(--color-component-active) !important;\\n}\\n\\n.guify-dragover:not(:disabled) {\\n background-color: var(--color-component-background);\\n box-shadow: inset 0 0 0 3px var(--color-component-foreground);\\n}\\n\\n.disabled.guify-file-container {\\n pointer-events: none;\\n color: var(--color-text-disabled) !important;\\n background-color: var(--color-component-background-disabled) !important;\\n box-shadow: inset 0 0 0 3px var(--color-component-background-disabled) !important;\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/public/file.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,qBAAqB;IACrB,aAAa;IACb,gBAAgB;IAChB,mBAAmB;IACnB,gCAAgC;IAChC,mDAAmD;IACnD,eAAe;AACnB;;AAEA;;IAEI,8BAA8B;IAC9B,mDAAmD;AACvD;;AAEA;IACI,0CAA0C;IAC1C,0DAA0D;AAC9D;;AAEA;IACI,mDAAmD;IACnD,6DAA6D;AACjE;;AAEA;IACI,oBAAoB;IACpB,4CAA4C;IAC5C,uEAAuE;IACvE,iFAAiF;AACrF\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n.guify-file-container {\\n display: inline-block;\\n outline: none;\\n padding-top: 8px;\\n padding-bottom: 8px;\\n color: var(--color-text-primary);\\n background-color: var(--color-component-background);\\n cursor: pointer;\\n}\\n\\n.guify-file-container:hover:not(:disabled),\\n.guify-file-container:focus:not(:disabled) {\\n color: var(--color-text-hover);\\n background-color: var(--color-component-foreground);\\n}\\n\\n.guify-file-container:active:not(:disabled) {\\n color: var(--color-text-active) !important;\\n background-color: var(--color-component-active) !important;\\n}\\n\\n.guify-dragover:not(:disabled) {\\n background-color: var(--color-component-background);\\n box-shadow: inset 0 0 0 3px var(--color-component-foreground);\\n}\\n\\n.disabled.guify-file-container {\\n pointer-events: none;\\n color: var(--color-text-disabled) !important;\\n background-color: var(--color-component-background-disabled) !important;\\n box-shadow: inset 0 0 0 3px var(--color-component-background-disabled) !important;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".guify-folder {\\n cursor: pointer;\\n padding-left: 0.5em;\\n color: var(--color-text-primary);\\n}\\n\\n.guify-folder div {\\n display: inline-block;\\n vertical-align: sub;\\n line-height: calc(var(--size-component-height) + 5px);\\n}\\n\\n.guify-folder:hover,\\n.guify-folder:focus {\\n color: var(--color-text-hover);\\n background-color: var(--color-component-foreground);\\n outline: none;\\n}\\n\\n\\n.guify-folder-contents {\\n display: block;\\n box-sizing: border-box;\\n padding-left: 14px;\\n margin-bottom: 5px;\\n border-left: 2px solid var(--color-component-background);\\n}\\n\\n.guify-folder-contents.guify-folder-closed {\\n height: 0;\\n display: none;\\n}\\n\\n.guify-folder .guify-folder-arrow {\\n width: 1.5em;\\n}\\n\\n/* Disabled styles */\\n\\n.guify-folder.disabled {\\n pointer-events: none;\\n color: var(--color-text-disabled);\\n}\\n\\n.guify-folder.disabled + .guify-folder-contents {\\n pointer-events: none;\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/public/folder.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,eAAe;IACf,mBAAmB;IACnB,gCAAgC;AACpC;;AAEA;IACI,qBAAqB;IACrB,mBAAmB;IACnB,qDAAqD;AACzD;;AAEA;;IAEI,8BAA8B;IAC9B,mDAAmD;IACnD,aAAa;AACjB;;;AAGA;IACI,cAAc;IACd,sBAAsB;IACtB,kBAAkB;IAClB,kBAAkB;IAClB,wDAAwD;AAC5D;;AAEA;IACI,SAAS;IACT,aAAa;AACjB;;AAEA;IACI,YAAY;AAChB;;AAEA,oBAAoB;;AAEpB;IACI,oBAAoB;IACpB,iCAAiC;AACrC;;AAEA;IACI,oBAAoB;AACxB\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n.guify-folder {\\n cursor: pointer;\\n padding-left: 0.5em;\\n color: var(--color-text-primary);\\n}\\n\\n.guify-folder div {\\n display: inline-block;\\n vertical-align: sub;\\n line-height: calc(var(--size-component-height) + 5px);\\n}\\n\\n.guify-folder:hover,\\n.guify-folder:focus {\\n color: var(--color-text-hover);\\n background-color: var(--color-component-foreground);\\n outline: none;\\n}\\n\\n\\n.guify-folder-contents {\\n display: block;\\n box-sizing: border-box;\\n padding-left: 14px;\\n margin-bottom: 5px;\\n border-left: 2px solid var(--color-component-background);\\n}\\n\\n.guify-folder-contents.guify-folder-closed {\\n height: 0;\\n display: none;\\n}\\n\\n.guify-folder .guify-folder-arrow {\\n width: 1.5em;\\n}\\n\\n/* Disabled styles */\\n\\n.guify-folder.disabled {\\n pointer-events: none;\\n color: var(--color-text-disabled);\\n}\\n\\n.guify-folder.disabled + .guify-folder-contents {\\n pointer-events: none;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root {\\n --interval-track-color: var(--color-component-background);\\n --interval-thumb-color: var(--color-component-foreground);\\n --interval-thumb-highlight: var(--color-component-active);\\n\\n --interval-track-color-disabled: var(--color-component-background-disabled);\\n --interval-thumb-color-disabled: var(--color-text-disabled);\\n}\\n\\n.guify-interval {\\n -webkit-appearance: none;\\n position: absolute;\\n height: var(--size-component-height);\\n margin: 0px 0;\\n width: 33%;\\n left: 54.5%;\\n background-color: var(--color-component-background);\\n background-color: var(--interval-track-color);\\n cursor: ew-resize;\\n\\n -webkit-touch-callout: none;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n}\\n.guify-interval-handle {\\n background-color: var(--color-component-foreground);\\n background-color: var(--interval-thumb-color);\\n position: absolute;\\n height: var(--size-component-height);\\n min-width: 1px;\\n}\\n.guify-interval-handle:focus {\\n background: var(--color-component-active);\\n background: var(--interval-thumb-highlight);\\n}\\n\\n.disabled .guify-interval {\\n pointer-events: none;\\n background-color: var(--color-component-background-disabled);\\n background-color: var(--interval-track-color-disabled);\\n}\\n\\n.disabled .guify-interval .guify-interval-handle {\\n background: var(--color-text-disabled);\\n background: var(--interval-thumb-color-disabled);\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/public/interval.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,yDAAyD;IACzD,yDAAyD;IACzD,yDAAyD;;IAEzD,2EAA2E;IAC3E,2DAA2D;AAC/D;;AAEA;IACI,wBAAwB;IACxB,kBAAkB;IAClB,oCAAoC;IACpC,aAAa;IACb,UAAU;IACV,WAAW;IACX,mDAA6C;IAA7C,6CAA6C;IAC7C,iBAAiB;;IAEjB,2BAA2B;IAC3B,yBAAyB;IAEzB,sBAAsB;IACtB,qBAAqB;IACrB,iBAAiB;AACrB;AACA;IACI,mDAA6C;IAA7C,6CAA6C;IAC7C,kBAAkB;IAClB,oCAAoC;IACpC,cAAc;AAClB;AACA;IACI,yCAA2C;IAA3C,2CAA2C;AAC/C;;AAEA;IACI,oBAAoB;IACpB,4DAAsD;IAAtD,sDAAsD;AAC1D;;AAEA;IACI,sCAAgD;IAAhD,gDAAgD;AACpD\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n:root {\\n --interval-track-color: var(--color-component-background);\\n --interval-thumb-color: var(--color-component-foreground);\\n --interval-thumb-highlight: var(--color-component-active);\\n\\n --interval-track-color-disabled: var(--color-component-background-disabled);\\n --interval-thumb-color-disabled: var(--color-text-disabled);\\n}\\n\\n.guify-interval {\\n -webkit-appearance: none;\\n position: absolute;\\n height: var(--size-component-height);\\n margin: 0px 0;\\n width: 33%;\\n left: 54.5%;\\n background-color: var(--interval-track-color);\\n cursor: ew-resize;\\n\\n -webkit-touch-callout: none;\\n -webkit-user-select: none;\\n -khtml-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n}\\n.guify-interval-handle {\\n background-color: var(--interval-thumb-color);\\n position: absolute;\\n height: var(--size-component-height);\\n min-width: 1px;\\n}\\n.guify-interval-handle:focus {\\n background: var(--interval-thumb-highlight);\\n}\\n\\n.disabled .guify-interval {\\n pointer-events: none;\\n background-color: var(--interval-track-color-disabled);\\n}\\n\\n.disabled .guify-interval .guify-interval-handle {\\n background: var(--interval-thumb-color-disabled);\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root {\\n --range-track-color: var(--color-component-background);\\n --range-thumb-color: var(--color-component-foreground);\\n --range-thumb-highlight: var(--color-component-active);\\n\\n --range-track-color-disabled: var(--color-component-background-disabled);\\n --range-thumb-color-disabled: var(--color-text-disabled);\\n}\\n\\ninput[type=range].guify-range {\\n -webkit-appearance: none;\\n width: 100%;\\n height: var(--size-component-height);\\n margin: 0px 0;\\n padding: 0;\\n display: inline-block;\\n}\\n\\n.disabled input[type=range].guify-range {\\n pointer-events: none;\\n}\\n\\n/* Remove outlines since we'll be adding our own */\\ninput[type=range].guify-range:focus {\\n outline: none;\\n}\\ninput[type=range].guify-range::-moz-focus-outer {\\n border: 0;\\n}\\n\\n/* Webkit */\\ninput[type=range].guify-range::-webkit-slider-runnable-track {\\n width: 100%;\\n height: var(--size-component-height);\\n cursor: ew-resize;\\n background: var(--color-component-background);\\n background: var(--range-track-color);\\n}\\ninput[type=range].guify-range::-webkit-slider-thumb {\\n height: var(--size-component-height);\\n width: 10px;\\n background: var(--color-component-foreground);\\n background: var(--range-thumb-color);\\n cursor: ew-resize;\\n -webkit-appearance: none;\\n margin-top: 0px;\\n}\\ninput[type=range].guify-range:focus::-webkit-slider-runnable-track {\\n background: var(--color-component-active);\\n background: var(--range-thumb-highlight);\\n outline: none;\\n}\\n\\n.disabled input[type=range].guify-range::-webkit-slider-runnable-track { /* Disabled track */\\n pointer-events: none;\\n background: var(--color-component-background-disabled);\\n background: var(--range-track-color-disabled);\\n}\\n\\n.disabled input[type=range].guify-range::-webkit-slider-thumb { /* Disabled thumb */\\n pointer-events: none;\\n background: var(--color-text-disabled);\\n}\\n\\n/* Gecko */\\ninput[type=range].guify-range::-moz-range-track {\\n width: 100%;\\n height: var(--size-component-height);\\n cursor: ew-resize;\\n background: var(--color-component-background);\\n background: var(--range-track-color);\\n}\\ninput[type=range].guify-range:focus::-moz-range-track {\\n background: var(--color-component-active);\\n background: var(--range-thumb-highlight);\\n}\\ninput[type=range].guify-range::-moz-range-thumb {\\n height: var(--size-component-height);\\n width: 10px;\\n background: var(--color-component-foreground);\\n background: var(--range-thumb-color);\\n cursor: ew-resize;\\n border: none;\\n border-radius: 0;\\n}\\n\\n.disabled input[type=range].guify-range::-moz-range-track { /* Disabled track */\\n pointer-events: none;\\n background: var(--color-component-background-disabled);\\n background: var(--range-track-color-disabled);\\n}\\n\\n.disabled input[type=range].guify-range::-moz-range-thumb { /* Disabled thumb */\\n pointer-events: none;\\n background: var(--color-text-disabled);\\n background: var(--range-thumb-color-disabled);\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/public/range.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,sDAAsD;IACtD,sDAAsD;IACtD,sDAAsD;;IAEtD,wEAAwE;IACxE,wDAAwD;AAC5D;;AAEA;IACI,wBAAwB;IACxB,WAAW;IACX,oCAAoC;IACpC,aAAa;IACb,UAAU;IACV,qBAAqB;AACzB;;AAEA;IACI,oBAAoB;AACxB;;AAEA,kDAAkD;AAClD;IACI,aAAa;AACjB;AACA;IACI,SAAS;AACb;;AAEA,WAAW;AACX;IACI,WAAW;IACX,oCAAoC;IACpC,iBAAiB;IACjB,6CAAoC;IAApC,oCAAoC;AACxC;AACA;IACI,oCAAoC;IACpC,WAAW;IACX,6CAAoC;IAApC,oCAAoC;IACpC,iBAAiB;IACjB,wBAAwB;IACxB,eAAe;AACnB;AACA;IACI,yCAAwC;IAAxC,wCAAwC;IACxC,aAAa;AACjB;;AAEA,yEAAyE,mBAAmB;IACxF,oBAAoB;IACpB,sDAA6C;IAA7C,6CAA6C;AACjD;;AAEA,gEAAgE,mBAAmB;IAC/E,oBAAoB;IACpB,sCAAsC;AAC1C;;AAEA,UAAU;AACV;IACI,WAAW;IACX,oCAAoC;IACpC,iBAAiB;IACjB,6CAAoC;IAApC,oCAAoC;AACxC;AACA;IACI,yCAAwC;IAAxC,wCAAwC;AAC5C;AACA;IACI,oCAAoC;IACpC,WAAW;IACX,6CAAoC;IAApC,oCAAoC;IACpC,iBAAiB;IACjB,YAAY;IACZ,gBAAgB;AACpB;;AAEA,4DAA4D,mBAAmB;IAC3E,oBAAoB;IACpB,sDAA6C;IAA7C,6CAA6C;AACjD;;AAEA,4DAA4D,mBAAmB;IAC3E,oBAAoB;IACpB,sCAA6C;IAA7C,6CAA6C;AACjD\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n:root {\\n --range-track-color: var(--color-component-background);\\n --range-thumb-color: var(--color-component-foreground);\\n --range-thumb-highlight: var(--color-component-active);\\n\\n --range-track-color-disabled: var(--color-component-background-disabled);\\n --range-thumb-color-disabled: var(--color-text-disabled);\\n}\\n\\ninput[type=range].guify-range {\\n -webkit-appearance: none;\\n width: 100%;\\n height: var(--size-component-height);\\n margin: 0px 0;\\n padding: 0;\\n display: inline-block;\\n}\\n\\n.disabled input[type=range].guify-range {\\n pointer-events: none;\\n}\\n\\n/* Remove outlines since we'll be adding our own */\\ninput[type=range].guify-range:focus {\\n outline: none;\\n}\\ninput[type=range].guify-range::-moz-focus-outer {\\n border: 0;\\n}\\n\\n/* Webkit */\\ninput[type=range].guify-range::-webkit-slider-runnable-track {\\n width: 100%;\\n height: var(--size-component-height);\\n cursor: ew-resize;\\n background: var(--range-track-color);\\n}\\ninput[type=range].guify-range::-webkit-slider-thumb {\\n height: var(--size-component-height);\\n width: 10px;\\n background: var(--range-thumb-color);\\n cursor: ew-resize;\\n -webkit-appearance: none;\\n margin-top: 0px;\\n}\\ninput[type=range].guify-range:focus::-webkit-slider-runnable-track {\\n background: var(--range-thumb-highlight);\\n outline: none;\\n}\\n\\n.disabled input[type=range].guify-range::-webkit-slider-runnable-track { /* Disabled track */\\n pointer-events: none;\\n background: var(--range-track-color-disabled);\\n}\\n\\n.disabled input[type=range].guify-range::-webkit-slider-thumb { /* Disabled thumb */\\n pointer-events: none;\\n background: var(--color-text-disabled);\\n}\\n\\n/* Gecko */\\ninput[type=range].guify-range::-moz-range-track {\\n width: 100%;\\n height: var(--size-component-height);\\n cursor: ew-resize;\\n background: var(--range-track-color);\\n}\\ninput[type=range].guify-range:focus::-moz-range-track {\\n background: var(--range-thumb-highlight);\\n}\\ninput[type=range].guify-range::-moz-range-thumb {\\n height: var(--size-component-height);\\n width: 10px;\\n background: var(--range-thumb-color);\\n cursor: ew-resize;\\n border: none;\\n border-radius: 0;\\n}\\n\\n.disabled input[type=range].guify-range::-moz-range-track { /* Disabled track */\\n pointer-events: none;\\n background: var(--range-track-color-disabled);\\n}\\n\\n.disabled input[type=range].guify-range::-moz-range-thumb { /* Disabled thumb */\\n pointer-events: none;\\n background: var(--range-thumb-color-disabled);\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".guify-select-dropdown {\\n display: inline-block;\\n position: absolute;\\n width: calc(100% - var(--size-label-width));\\n padding-left: 1.5%;\\n height: var(--size-component-height);\\n border: none;\\n border-radius: 0;\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n -o-appearance:none;\\n appearance: none;\\n font-family: inherit;\\n background-color: var(--color-component-background);\\n color: var(--color-text-secondary);\\n box-sizing: border-box !important;\\n -moz-box-sizing: border-box !important;\\n -webkit-box-sizing: border-box !important;\\n}\\n\\n/* Disable default outline since we're providing our own */\\n.guify-select-dropdown:focus {\\n outline: none;\\n}\\n.guify-select-dropdown::-moz-focus-inner {\\n border: 0;\\n}\\n\\n\\n.guify-select-dropdown:focus,\\n.guify-select-dropdown:hover {\\n color: var(--color-text-hover);\\n background-color: var(--color-component-foreground);\\n}\\n\\n.guify-select-dropdown::-ms-expand {\\n display:none;\\n}\\n.guify-select-triangle {\\n content: ' ';\\n border-right: 3px solid transparent;\\n border-left: 3px solid transparent;\\n line-height: var(--size-component-height);\\n position: absolute;\\n right: 2.5%;\\n z-index: 1;\\n pointer-events: none;\\n}\\n\\n.guify-select-triangle--up {\\n bottom: 55%;\\n border-bottom: 5px solid var(--color-text-secondary);\\n border-top: 0px transparent;\\n}\\n\\n.guify-select-triangle--down {\\n top: 55%;\\n border-top: 5px solid var(--color-text-secondary);\\n border-bottom: 0px transparent;\\n}\\n\\n.guify-select-triangle--up-highlight {\\n border-bottom-color: var(--color-text-hover);\\n}\\n\\n.guify-select-triangle--down-highlight {\\n border-top-color: var(--color-text-hover);\\n}\\n\\n/* Disabled styles */\\n\\n.disabled .guify-select-dropdown {\\n pointer-events: none;\\n color: var(--color-text-disabled);\\n background-color: var(--color-component-background-disabled);\\n}\\n\\n.disabled *[class^=\\\"guify-select-triangle\\\"] {\\n border-color: var(--color-text-disabled);\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/public/select.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,qBAAqB;IACrB,kBAAkB;IAClB,2CAA2C;IAC3C,kBAAkB;IAClB,oCAAoC;IACpC,YAAY;IACZ,gBAAgB;IAChB,wBAAwB;IACxB,qBAAqB;IACrB,kBAAkB;IAClB,gBAAgB;IAChB,oBAAoB;IACpB,mDAAmD;IACnD,kCAAkC;IAClC,iCAAiC;IACjC,sCAAsC;IACtC,yCAAyC;AAC7C;;AAEA,0DAA0D;AAC1D;IACI,aAAa;AACjB;AACA;IACI,SAAS;AACb;;;AAGA;;IAEI,8BAA8B;IAC9B,mDAAmD;AACvD;;AAEA;IACI,YAAY;AAChB;AACA;IACI,YAAY;IACZ,mCAAmC;IACnC,kCAAkC;IAClC,yCAAyC;IACzC,kBAAkB;IAClB,WAAW;IACX,UAAU;IACV,oBAAoB;AACxB;;AAEA;IACI,WAAW;IACX,oDAAoD;IACpD,2BAA2B;AAC/B;;AAEA;IACI,QAAQ;IACR,iDAAiD;IACjD,8BAA8B;AAClC;;AAEA;IACI,4CAA4C;AAChD;;AAEA;IACI,yCAAyC;AAC7C;;AAEA,oBAAoB;;AAEpB;IACI,oBAAoB;IACpB,iCAAiC;IACjC,4DAA4D;AAChE;;AAEA;IACI,wCAAwC;AAC5C\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n.guify-select-dropdown {\\n display: inline-block;\\n position: absolute;\\n width: calc(100% - var(--size-label-width));\\n padding-left: 1.5%;\\n height: var(--size-component-height);\\n border: none;\\n border-radius: 0;\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n -o-appearance:none;\\n appearance: none;\\n font-family: inherit;\\n background-color: var(--color-component-background);\\n color: var(--color-text-secondary);\\n box-sizing: border-box !important;\\n -moz-box-sizing: border-box !important;\\n -webkit-box-sizing: border-box !important;\\n}\\n\\n/* Disable default outline since we're providing our own */\\n.guify-select-dropdown:focus {\\n outline: none;\\n}\\n.guify-select-dropdown::-moz-focus-inner {\\n border: 0;\\n}\\n\\n\\n.guify-select-dropdown:focus,\\n.guify-select-dropdown:hover {\\n color: var(--color-text-hover);\\n background-color: var(--color-component-foreground);\\n}\\n\\n.guify-select-dropdown::-ms-expand {\\n display:none;\\n}\\n.guify-select-triangle {\\n content: ' ';\\n border-right: 3px solid transparent;\\n border-left: 3px solid transparent;\\n line-height: var(--size-component-height);\\n position: absolute;\\n right: 2.5%;\\n z-index: 1;\\n pointer-events: none;\\n}\\n\\n.guify-select-triangle--up {\\n bottom: 55%;\\n border-bottom: 5px solid var(--color-text-secondary);\\n border-top: 0px transparent;\\n}\\n\\n.guify-select-triangle--down {\\n top: 55%;\\n border-top: 5px solid var(--color-text-secondary);\\n border-bottom: 0px transparent;\\n}\\n\\n.guify-select-triangle--up-highlight {\\n border-bottom-color: var(--color-text-hover);\\n}\\n\\n.guify-select-triangle--down-highlight {\\n border-top-color: var(--color-text-hover);\\n}\\n\\n/* Disabled styles */\\n\\n.disabled .guify-select-dropdown {\\n pointer-events: none;\\n color: var(--color-text-disabled);\\n background-color: var(--color-component-background-disabled);\\n}\\n\\n.disabled *[class^=\\\"guify-select-triangle\\\"] {\\n border-color: var(--color-text-disabled);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".guify-text-input {\\n position: absolute;\\n padding-left: 6px;\\n height: var(--size-component-height);\\n width: calc(100% - var(--size-label-width));\\n border: none;\\n background: var(--color-component-background);\\n color: var(--color-text-secondary);\\n font-family: inherit;\\n box-sizing: border-box !important;\\n resize: vertical;\\n}\\n\\n.guify-text-input:focus {\\n outline: none;\\n}\\n\\n.disabled .guify-text-input {\\n pointer-events: none;\\n color: var(--color-text-disabled);\\n background-color: var(--color-component-background-disabled);\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/public/text.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,kBAAkB;IAClB,iBAAiB;IACjB,oCAAoC;IACpC,2CAA2C;IAC3C,YAAY;IACZ,6CAA6C;IAC7C,kCAAkC;IAClC,oBAAoB;IACpB,iCAAiC;IACjC,gBAAgB;AACpB;;AAEA;IACI,aAAa;AACjB;;AAEA;IACI,oBAAoB;IACpB,iCAAiC;IACjC,4DAA4D;AAChE\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n.guify-text-input {\\n position: absolute;\\n padding-left: 6px;\\n height: var(--size-component-height);\\n width: calc(100% - var(--size-label-width));\\n border: none;\\n background: var(--color-component-background);\\n color: var(--color-text-secondary);\\n font-family: inherit;\\n box-sizing: border-box !important;\\n resize: vertical;\\n}\\n\\n.guify-text-input:focus {\\n outline: none;\\n}\\n\\n.disabled .guify-text-input {\\n pointer-events: none;\\n color: var(--color-text-disabled);\\n background-color: var(--color-component-background-disabled);\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".guify-title {\\n box-sizing: border-box;\\n width: 100%;\\n display: inline-block;\\n height: var(--size-component-height);\\n vertical-align: top;\\n}\\n\\n.guify-title-text {\\n display: inline-block;\\n vertical-align: sub;\\n height: var(--size-component-height);\\n line-height: var(--size-component-height);\\n padding-left: 5px;\\n padding-right: 5px;\\n background-color: var(--color-text-primary);\\n color: var(--color-panel-background);\\n}\\n\\n/* Disabled style */\\n\\n.disabled .guify-title-text {\\n background-color: var(--color-text-disabled);\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/public/title.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,sBAAsB;IACtB,WAAW;IACX,qBAAqB;IACrB,oCAAoC;IACpC,mBAAmB;AACvB;;AAEA;IACI,qBAAqB;IACrB,mBAAmB;IACnB,oCAAoC;IACpC,yCAAyC;IACzC,iBAAiB;IACjB,kBAAkB;IAClB,2CAA2C;IAC3C,oCAAoC;AACxC;;AAEA,mBAAmB;;AAEnB;IACI,4CAA4C;AAChD\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n.guify-title {\\n box-sizing: border-box;\\n width: 100%;\\n display: inline-block;\\n height: var(--size-component-height);\\n vertical-align: top;\\n}\\n\\n.guify-title-text {\\n display: inline-block;\\n vertical-align: sub;\\n height: var(--size-component-height);\\n line-height: var(--size-component-height);\\n padding-left: 5px;\\n padding-right: 5px;\\n background-color: var(--color-text-primary);\\n color: var(--color-panel-background);\\n}\\n\\n/* Disabled style */\\n\\n.disabled .guify-title-text {\\n background-color: var(--color-text-disabled);\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root {\\n --color-menu-bar-background: \\\"black\\\";\\n --color-menu-bar-text: \\\"black\\\";\\n --color-panel-background: \\\"black\\\";\\n\\n --color-component-background: \\\"black\\\";\\n --color-component-background-hover: \\\"black\\\";\\n --color-component-background-disabled: \\\"black\\\";\\n --color-component-foreground: \\\"black\\\";\\n --color-component-active: \\\"black\\\";\\n\\n --color-text-primary: \\\"black\\\";\\n --color-text-secondary: \\\"black\\\";\\n --color-text-hover: \\\"black\\\";\\n --color-text-active: \\\"black\\\";\\n --color-text-disabled: \\\"black\\\";\\n\\n --size-menu-bar-height: 25px;\\n --size-component-height: 2rem;\\n --size-component-spacing: 5px;\\n --size-label-width: 42%;\\n\\n /* --font-family: \\\"Hack\\\";\\n --font-size: initial;\\n --font-weight: initial; */\\n\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/variables.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,oCAAoC;IACpC,8BAA8B;IAC9B,iCAAiC;;IAEjC,qCAAqC;IACrC,2CAA2C;IAC3C,8CAA8C;IAC9C,qCAAqC;IACrC,iCAAiC;;IAEjC,6BAA6B;IAC7B,+BAA+B;IAC/B,2BAA2B;IAC3B,4BAA4B;IAC5B,8BAA8B;;IAE9B,4BAA4B;IAC5B,6BAA6B;IAC7B,6BAA6B;IAC7B,uBAAuB;;IAEvB;;6BAEyB;;AAE7B\",\"sourcesContent\":[\":root {\\n --color-menu-bar-background: \\\"black\\\";\\n --color-menu-bar-text: \\\"black\\\";\\n --color-panel-background: \\\"black\\\";\\n\\n --color-component-background: \\\"black\\\";\\n --color-component-background-hover: \\\"black\\\";\\n --color-component-background-disabled: \\\"black\\\";\\n --color-component-foreground: \\\"black\\\";\\n --color-component-active: \\\"black\\\";\\n\\n --color-text-primary: \\\"black\\\";\\n --color-text-secondary: \\\"black\\\";\\n --color-text-hover: \\\"black\\\";\\n --color-text-active: \\\"black\\\";\\n --color-text-disabled: \\\"black\\\";\\n\\n --size-menu-bar-height: 25px;\\n --size-component-height: 2rem;\\n --size-component-spacing: 5px;\\n --size-label-width: 42%;\\n\\n /* --font-family: \\\"Hack\\\";\\n --font-size: initial;\\n --font-weight: initial; */\\n\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n\n content += cssWithMappingToString(item);\n\n if (needLayer) {\n content += \"}\";\n }\n\n if (item[2]) {\n content += \"}\";\n }\n\n if (item[4]) {\n content += \"}\";\n }\n\n return content;\n }).join(\"\");\n }; // import a list of modules into the list\n\n\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n\n return [content].join(\"\\n\");\n};","var prefix = require('prefix-style')\nvar toCamelCase = require('to-camel-case')\nvar cache = { 'float': 'cssFloat' }\nvar addPxToStyle = require('add-px-to-style')\n\nfunction style (element, property, value) {\n var camel = cache[property]\n if (typeof camel === 'undefined') {\n camel = detect(property)\n }\n\n // may be false if CSS prop is unsupported\n if (camel) {\n if (value === undefined) {\n return element.style[camel]\n }\n\n element.style[camel] = addPxToStyle(camel, value)\n }\n}\n\nfunction each (element, properties) {\n for (var k in properties) {\n if (properties.hasOwnProperty(k)) {\n style(element, k, properties[k])\n }\n }\n}\n\nfunction detect (cssProp) {\n var camel = toCamelCase(cssProp)\n var result = prefix(camel)\n cache[camel] = cache[cssProp] = cache[result] = result\n return result\n}\n\nfunction set () {\n if (arguments.length === 2) {\n if (typeof arguments[1] === 'string') {\n arguments[0].style.cssText = arguments[1]\n } else {\n each(arguments[0], arguments[1])\n }\n } else {\n style(arguments[0], arguments[1], arguments[2])\n }\n}\n\nmodule.exports = set\nmodule.exports.set = set\n\nmodule.exports.get = function (element, properties) {\n if (Array.isArray(properties)) {\n return properties.reduce(function (obj, prop) {\n obj[prop] = style(element, prop || '')\n return obj\n }, {})\n } else {\n return style(element, properties || '')\n }\n}\n","var containers = []; // will store container HTMLElement references\nvar styleElements = []; // will store {prepend: HTMLElement, append: HTMLElement}\n\nvar usage = 'insert-css: You need to provide a CSS string. Usage: insertCss(cssString[, options]).';\n\nfunction insertCss(css, options) {\n options = options || {};\n\n if (css === undefined) {\n throw new Error(usage);\n }\n\n var position = options.prepend === true ? 'prepend' : 'append';\n var container = options.container !== undefined ? options.container : document.querySelector('head');\n var containerId = containers.indexOf(container);\n\n // first time we see this container, create the necessary entries\n if (containerId === -1) {\n containerId = containers.push(container) - 1;\n styleElements[containerId] = {};\n }\n\n // try to get the correponding container + position styleElement, create it otherwise\n var styleElement;\n\n if (styleElements[containerId] !== undefined && styleElements[containerId][position] !== undefined) {\n styleElement = styleElements[containerId][position];\n } else {\n styleElement = styleElements[containerId][position] = createStyleElement();\n\n if (position === 'prepend') {\n container.insertBefore(styleElement, container.childNodes[0]);\n } else {\n container.appendChild(styleElement);\n }\n }\n\n // strip potential UTF-8 BOM if css was read from a file\n if (css.charCodeAt(0) === 0xFEFF) { css = css.substr(1, css.length); }\n\n // actually add the stylesheet\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText += css\n } else {\n styleElement.textContent += css;\n }\n\n return styleElement;\n};\n\nfunction createStyleElement() {\n var styleElement = document.createElement('style');\n styleElement.setAttribute('type', 'text/css');\n return styleElement;\n}\n\nmodule.exports = insertCss;\nmodule.exports.insertCss = insertCss;\n","(function(root) {\n 'use strict';\n\n function isNumeric(v) {\n if (typeof v === 'number' && !isNaN(v)) return true;\n v = (v||'').toString().trim();\n if (!v) return false;\n return !isNaN(v);\n }\n\n if (typeof exports !== 'undefined') {\n if (typeof module !== 'undefined' && module.exports) {\n exports = module.exports = isNumeric;\n }\n exports.isNumeric = isNumeric;\n } else if (typeof define === 'function' && define.amd) {\n define([], function() {\n return isNumeric;\n });\n } else {\n root.isNumeric = isNumeric;\n }\n\n})(this);\n","var div = null\nvar prefixes = [ 'Webkit', 'Moz', 'O', 'ms' ]\n\nmodule.exports = function prefixStyle (prop) {\n // re-use a dummy div\n if (!div) {\n div = document.createElement('div')\n }\n\n var style = div.style\n\n // prop exists without prefix\n if (prop in style) {\n return prop\n }\n\n // borderRadius -> BorderRadius\n var titleCase = prop.charAt(0).toUpperCase() + prop.slice(1)\n\n // find the vendor-prefixed prop\n for (var i = prefixes.length; i >= 0; i--) {\n var name = prefixes[i] + titleCase\n // e.g. WebkitBorderRadius or webkitBorderRadius\n if (name in style) {\n return name\n }\n }\n\n return false\n}\n","/*!\n* screenfull\n* v5.0.0 - 2019-09-09\n* (c) Sindre Sorhus; MIT License\n*/\n(function () {\n\t'use strict';\n\n\tvar document = typeof window !== 'undefined' && typeof window.document !== 'undefined' ? window.document : {};\n\tvar isCommonjs = typeof module !== 'undefined' && module.exports;\n\n\tvar fn = (function () {\n\t\tvar val;\n\n\t\tvar fnMap = [\n\t\t\t[\n\t\t\t\t'requestFullscreen',\n\t\t\t\t'exitFullscreen',\n\t\t\t\t'fullscreenElement',\n\t\t\t\t'fullscreenEnabled',\n\t\t\t\t'fullscreenchange',\n\t\t\t\t'fullscreenerror'\n\t\t\t],\n\t\t\t// New WebKit\n\t\t\t[\n\t\t\t\t'webkitRequestFullscreen',\n\t\t\t\t'webkitExitFullscreen',\n\t\t\t\t'webkitFullscreenElement',\n\t\t\t\t'webkitFullscreenEnabled',\n\t\t\t\t'webkitfullscreenchange',\n\t\t\t\t'webkitfullscreenerror'\n\n\t\t\t],\n\t\t\t// Old WebKit\n\t\t\t[\n\t\t\t\t'webkitRequestFullScreen',\n\t\t\t\t'webkitCancelFullScreen',\n\t\t\t\t'webkitCurrentFullScreenElement',\n\t\t\t\t'webkitCancelFullScreen',\n\t\t\t\t'webkitfullscreenchange',\n\t\t\t\t'webkitfullscreenerror'\n\n\t\t\t],\n\t\t\t[\n\t\t\t\t'mozRequestFullScreen',\n\t\t\t\t'mozCancelFullScreen',\n\t\t\t\t'mozFullScreenElement',\n\t\t\t\t'mozFullScreenEnabled',\n\t\t\t\t'mozfullscreenchange',\n\t\t\t\t'mozfullscreenerror'\n\t\t\t],\n\t\t\t[\n\t\t\t\t'msRequestFullscreen',\n\t\t\t\t'msExitFullscreen',\n\t\t\t\t'msFullscreenElement',\n\t\t\t\t'msFullscreenEnabled',\n\t\t\t\t'MSFullscreenChange',\n\t\t\t\t'MSFullscreenError'\n\t\t\t]\n\t\t];\n\n\t\tvar i = 0;\n\t\tvar l = fnMap.length;\n\t\tvar ret = {};\n\n\t\tfor (; i < l; i++) {\n\t\t\tval = fnMap[i];\n\t\t\tif (val && val[1] in document) {\n\t\t\t\tfor (i = 0; i < val.length; i++) {\n\t\t\t\t\tret[fnMap[0][i]] = val[i];\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t})();\n\n\tvar eventNameMap = {\n\t\tchange: fn.fullscreenchange,\n\t\terror: fn.fullscreenerror\n\t};\n\n\tvar screenfull = {\n\t\trequest: function (element) {\n\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\tvar onFullScreenEntered = function () {\n\t\t\t\t\tthis.off('change', onFullScreenEntered);\n\t\t\t\t\tresolve();\n\t\t\t\t}.bind(this);\n\n\t\t\t\tthis.on('change', onFullScreenEntered);\n\n\t\t\t\telement = element || document.documentElement;\n\n\t\t\t\tPromise.resolve(element[fn.requestFullscreen]()).catch(reject);\n\t\t\t}.bind(this));\n\t\t},\n\t\texit: function () {\n\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\tif (!this.isFullscreen) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar onFullScreenExit = function () {\n\t\t\t\t\tthis.off('change', onFullScreenExit);\n\t\t\t\t\tresolve();\n\t\t\t\t}.bind(this);\n\n\t\t\t\tthis.on('change', onFullScreenExit);\n\n\t\t\t\tPromise.resolve(document[fn.exitFullscreen]()).catch(reject);\n\t\t\t}.bind(this));\n\t\t},\n\t\ttoggle: function (element) {\n\t\t\treturn this.isFullscreen ? this.exit() : this.request(element);\n\t\t},\n\t\tonchange: function (callback) {\n\t\t\tthis.on('change', callback);\n\t\t},\n\t\tonerror: function (callback) {\n\t\t\tthis.on('error', callback);\n\t\t},\n\t\ton: function (event, callback) {\n\t\t\tvar eventName = eventNameMap[event];\n\t\t\tif (eventName) {\n\t\t\t\tdocument.addEventListener(eventName, callback, false);\n\t\t\t}\n\t\t},\n\t\toff: function (event, callback) {\n\t\t\tvar eventName = eventNameMap[event];\n\t\t\tif (eventName) {\n\t\t\t\tdocument.removeEventListener(eventName, callback, false);\n\t\t\t}\n\t\t},\n\t\traw: fn\n\t};\n\n\tif (!fn) {\n\t\tif (isCommonjs) {\n\t\t\tmodule.exports = {isEnabled: false};\n\t\t} else {\n\t\t\twindow.screenfull = {isEnabled: false};\n\t\t}\n\n\t\treturn;\n\t}\n\n\tObject.defineProperties(screenfull, {\n\t\tisFullscreen: {\n\t\t\tget: function () {\n\t\t\t\treturn Boolean(document[fn.fullscreenElement]);\n\t\t\t}\n\t\t},\n\t\telement: {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\treturn document[fn.fullscreenElement];\n\t\t\t}\n\t\t},\n\t\tisEnabled: {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\t// Coerce to boolean in case of old WebKit\n\t\t\t\treturn Boolean(document[fn.fullscreenEnabled]);\n\t\t\t}\n\t\t}\n\t});\n\n\tif (isCommonjs) {\n\t\tmodule.exports = screenfull;\n\t} else {\n\t\twindow.screenfull = screenfull;\n\t}\n})();\n","import{insertCss as t}from\"insert-css\";function e(t,e){for(var i=0;i>16&255)/255,g:(t>>8&255)/255,b:(255&t)/255}}(this._hexNumber),i=e.g,s=e.b;this._rgba.r=e.r,this._rgba.g=i,this._rgba.b=s;var n=function(t){var e,i=t.r,o=t.g,s=t.b,n=Math.max(i,o,s),r=Math.min(i,o,s),h=n-r,u=0===n?0:h/n,a=n;if(n==r)e=0;else{switch(n){case i:e=(o-s)/h+(o\\n
\\n
\\n \\n
\\n
\\n
\\n ',this.$saturation=this.$el.querySelector(\".Scp-saturation\"),this.$hue=this.$el.querySelector(\".Scp-hue\"),this.$sbSelector=this.$el.querySelector(\".Scp-sbSelector\"),this.$hSelector=this.$el.querySelector(\".Scp-hSelector\"),this.$saturation.addEventListener(\"mousedown\",this._onSaturationMouseDown),this.$saturation.addEventListener(\"touchstart\",this._onSaturationMouseDown),this.$hue.addEventListener(\"mousedown\",this._onHueMouseDown),this.$hue.addEventListener(\"touchstart\",this._onHueMouseDown),t.el&&this.appendTo(t.el),t.background&&this.setBackgroundColor(t.background),t.widthUnits&&(this._widthUnits=t.widthUnits),t.heightUnits&&(this._heightUnits=t.heightUnits),this.setSize(t.width||175,t.height||150),this.setColor(t.color)}var e=t.prototype;return e.appendTo=function(t){return\"string\"==typeof t?document.querySelector(t).appendChild(this.$el):t.appendChild(this.$el),this},e.remove=function(){this._callbacks=[],this._onSaturationMouseUp(),this._onHueMouseUp(),this.$saturation.removeEventListener(\"mousedown\",this._onSaturationMouseDown),this.$saturation.removeEventListener(\"touchstart\",this._onSaturationMouseDown),this.$hue.removeEventListener(\"mousedown\",this._onHueMouseDown),this.$hue.removeEventListener(\"touchstart\",this._onHueMouseDown),this.$el.parentNode&&this.$el.parentNode.removeChild(this.$el)},e.setColor=function(t){this._inputIsNumber=o(t),this.color.fromHex(t);var e=this.color.hsv,i=e.h,s=e.s,n=e.v;return isNaN(i)||(this.hue=i),this._moveSelectorTo(this._saturationWidth*s,(1-n)*this._hueHeight),this._moveHueTo((1-this.hue)*this._hueHeight),this._updateHue(),this},e.setSize=function(t,e){return this.width=t,this.height=e,this.$el.style.width=this.width+this._widthUnits,this.$el.style.height=this.height+this._heightUnits,this._saturationWidth=this.width-25,this.$saturation.style.width=this._saturationWidth+\"px\",this._hueHeight=this.height,this._maxHue=this._hueHeight-2,this},e.setBackgroundColor=function(t){return this.backgroundColor.fromHex(t),this.$el.style.padding=\"5px\",this.$el.style.background=this.backgroundColor.hexString,this},e.setNoBackground=function(){return this.$el.style.padding=\"0px\",this.$el.style.background=\"none\",this},e.onChange=function(t){return this._callbacks.indexOf(t)<0&&(this._callbacks.push(t),t(this.getHexString())),this},e.getColor=function(){return this._inputIsNumber?this.getHexNumber():this.getHexString()},e.getHexString=function(){return this.color.hexString.toUpperCase()},e.getHexNumber=function(){return this.color.hex},e.getRGB=function(){return this.color.rgb},e.getHSV=function(){return this.color.hsv},e.isDark=function(){return this.color.isDark},e.isLight=function(){return this.color.isLight},e._moveSelectorTo=function(t,e){this.position.x=s(t,0,this._saturationWidth),this.position.y=s(e,0,this._hueHeight),this.$sbSelector.style.transform=\"translate(\"+this.position.x+\"px, \"+this.position.y+\"px)\"},e._updateColorFromPosition=function(){this.color.fromHsv({h:this.hue,s:this.position.x/this._saturationWidth,v:1-this.position.y/this._hueHeight}),this._updateColor()},e._moveHueTo=function(t){this._huePosition=s(t,0,this._maxHue),this.$hSelector.style.transform=\"translateY(\"+this._huePosition+\"px)\"},e._updateHueFromPosition=function(){var t=this.getHSV();this.hue=1-this._huePosition/this._maxHue,this.color.fromHsv({h:this.hue,s:t.s,v:t.v}),this._updateHue()},e._updateHue=function(){this.hueColor.fromHsv({h:this.hue,s:1,v:1}),this.$saturation.style.background=\"linear-gradient(to right, #fff, \"+this.hueColor.hexString+\")\",this._updateColor()},e._updateColor=function(){this.$sbSelector.style.background=this.getHexString(),this.$sbSelector.style.borderColor=this.isDark()?\"#fff\":\"#000\",this._triggerChange()},e._triggerChange=function(){var t=this;this._callbacks.forEach(function(e){return e(t.getHexString())})},i(t,[{key:\"isChoosing\",get:function(){return this._isChoosing}}]),t}();t(\".Scp{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative}.Scp-saturation{position:relative;height:100%;background:linear-gradient(90deg,#fff,red);float:left;margin-right:5px}.Scp-brightness{width:100%;height:100%;background:linear-gradient(hsla(0,0%,100%,0),#000)}.Scp-sbSelector{border:2px solid #fff;position:absolute;width:14px;height:14px;background:#fff;border-radius:10px;top:-7px;left:-7px;box-sizing:border-box;z-index:10}.Scp-hue{width:20px;height:100%;position:relative;float:left;background:linear-gradient(red,#f0f 17%,#00f 34%,#0ff 50%,#0f0 67%,#ff0 84%,red)}.Scp-hSelector{position:absolute;background:#fff;border-bottom:1px solid #000;right:-3px;width:10px;height:2px}\");export default a;\n//# sourceMappingURL=simple-color-picker.module.js.map\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./container.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./container.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./menu-bar.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./menu-bar.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./panel.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./panel.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./toast-area.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./toast-area.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./container.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./container.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./label.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./label.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./value.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./value.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./button.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./button.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./checkbox.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./checkbox.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./color.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./color.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./display.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./display.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./file.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./file.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./folder.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./folder.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./interval.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./interval.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./range.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./range.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./select.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./select.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./text.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./text.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./title.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./title.css\";\n export default content && content.locals ? content.locals : undefined;\n","\"use strict\";\n\nvar stylesInDOM = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n\n return updater;\n}\n\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n\n stylesInDOM.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n/* istanbul ignore next */\n\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n}\n/* istanbul ignore next */\n\n\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n}\n\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\n\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\n\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n\n var needLayer = typeof obj.layer !== \"undefined\";\n\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n\n css += obj.css;\n\n if (needLayer) {\n css += \"}\";\n }\n\n if (obj.media) {\n css += \"}\";\n }\n\n if (obj.supports) {\n css += \"}\";\n }\n\n var sourceMap = obj.sourceMap;\n\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n options.styleTagTransform(css, styleElement, options.options);\n}\n\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n\n styleElement.parentNode.removeChild(styleElement);\n}\n/* istanbul ignore next */\n\n\nfunction domAPI(options) {\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\n\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n\n styleElement.appendChild(document.createTextNode(css));\n }\n}\n\nmodule.exports = styleTagTransform;","// TinyColor v1.4.1\n// https://github.com/bgrins/TinyColor\n// Brian Grinstead, MIT License\n\n(function(Math) {\n\nvar trimLeft = /^\\s+/,\n trimRight = /\\s+$/,\n tinyCounter = 0,\n mathRound = Math.round,\n mathMin = Math.min,\n mathMax = Math.max,\n mathRandom = Math.random;\n\nfunction tinycolor (color, opts) {\n\n color = (color) ? color : '';\n opts = opts || { };\n\n // If input is already a tinycolor, return itself\n if (color instanceof tinycolor) {\n return color;\n }\n // If we are called as a function, call using new instead\n if (!(this instanceof tinycolor)) {\n return new tinycolor(color, opts);\n }\n\n var rgb = inputToRGB(color);\n this._originalInput = color,\n this._r = rgb.r,\n this._g = rgb.g,\n this._b = rgb.b,\n this._a = rgb.a,\n this._roundA = mathRound(100*this._a) / 100,\n this._format = opts.format || rgb.format;\n this._gradientType = opts.gradientType;\n\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this._r < 1) { this._r = mathRound(this._r); }\n if (this._g < 1) { this._g = mathRound(this._g); }\n if (this._b < 1) { this._b = mathRound(this._b); }\n\n this._ok = rgb.ok;\n this._tc_id = tinyCounter++;\n}\n\ntinycolor.prototype = {\n isDark: function() {\n return this.getBrightness() < 128;\n },\n isLight: function() {\n return !this.isDark();\n },\n isValid: function() {\n return this._ok;\n },\n getOriginalInput: function() {\n return this._originalInput;\n },\n getFormat: function() {\n return this._format;\n },\n getAlpha: function() {\n return this._a;\n },\n getBrightness: function() {\n //http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n },\n getLuminance: function() {\n //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var RsRGB, GsRGB, BsRGB, R, G, B;\n RsRGB = rgb.r/255;\n GsRGB = rgb.g/255;\n BsRGB = rgb.b/255;\n\n if (RsRGB <= 0.03928) {R = RsRGB / 12.92;} else {R = Math.pow(((RsRGB + 0.055) / 1.055), 2.4);}\n if (GsRGB <= 0.03928) {G = GsRGB / 12.92;} else {G = Math.pow(((GsRGB + 0.055) / 1.055), 2.4);}\n if (BsRGB <= 0.03928) {B = BsRGB / 12.92;} else {B = Math.pow(((BsRGB + 0.055) / 1.055), 2.4);}\n return (0.2126 * R) + (0.7152 * G) + (0.0722 * B);\n },\n setAlpha: function(value) {\n this._a = boundAlpha(value);\n this._roundA = mathRound(100*this._a) / 100;\n return this;\n },\n toHsv: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a };\n },\n toHsvString: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n var h = mathRound(hsv.h * 360), s = mathRound(hsv.s * 100), v = mathRound(hsv.v * 100);\n return (this._a == 1) ?\n \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\" :\n \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \"+ this._roundA + \")\";\n },\n toHsl: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a };\n },\n toHslString: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n var h = mathRound(hsl.h * 360), s = mathRound(hsl.s * 100), l = mathRound(hsl.l * 100);\n return (this._a == 1) ?\n \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\" :\n \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \"+ this._roundA + \")\";\n },\n toHex: function(allow3Char) {\n return rgbToHex(this._r, this._g, this._b, allow3Char);\n },\n toHexString: function(allow3Char) {\n return '#' + this.toHex(allow3Char);\n },\n toHex8: function(allow4Char) {\n return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n },\n toHex8String: function(allow4Char) {\n return '#' + this.toHex8(allow4Char);\n },\n toRgb: function() {\n return { r: mathRound(this._r), g: mathRound(this._g), b: mathRound(this._b), a: this._a };\n },\n toRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \")\" :\n \"rgba(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \", \" + this._roundA + \")\";\n },\n toPercentageRgb: function() {\n return { r: mathRound(bound01(this._r, 255) * 100) + \"%\", g: mathRound(bound01(this._g, 255) * 100) + \"%\", b: mathRound(bound01(this._b, 255) * 100) + \"%\", a: this._a };\n },\n toPercentageRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%)\" :\n \"rgba(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n },\n toName: function() {\n if (this._a === 0) {\n return \"transparent\";\n }\n\n if (this._a < 1) {\n return false;\n }\n\n return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n },\n toFilter: function(secondColor) {\n var hex8String = '#' + rgbaToArgbHex(this._r, this._g, this._b, this._a);\n var secondHex8String = hex8String;\n var gradientType = this._gradientType ? \"GradientType = 1, \" : \"\";\n\n if (secondColor) {\n var s = tinycolor(secondColor);\n secondHex8String = '#' + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n }\n\n return \"progid:DXImageTransform.Microsoft.gradient(\"+gradientType+\"startColorstr=\"+hex8String+\",endColorstr=\"+secondHex8String+\")\";\n },\n toString: function(format) {\n var formatSet = !!format;\n format = format || this._format;\n\n var formattedString = false;\n var hasAlpha = this._a < 1 && this._a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format === \"hex\" || format === \"hex6\" || format === \"hex3\" || format === \"hex4\" || format === \"hex8\" || format === \"name\");\n\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === \"name\" && this._a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === \"rgb\") {\n formattedString = this.toRgbString();\n }\n if (format === \"prgb\") {\n formattedString = this.toPercentageRgbString();\n }\n if (format === \"hex\" || format === \"hex6\") {\n formattedString = this.toHexString();\n }\n if (format === \"hex3\") {\n formattedString = this.toHexString(true);\n }\n if (format === \"hex4\") {\n formattedString = this.toHex8String(true);\n }\n if (format === \"hex8\") {\n formattedString = this.toHex8String();\n }\n if (format === \"name\") {\n formattedString = this.toName();\n }\n if (format === \"hsl\") {\n formattedString = this.toHslString();\n }\n if (format === \"hsv\") {\n formattedString = this.toHsvString();\n }\n\n return formattedString || this.toHexString();\n },\n clone: function() {\n return tinycolor(this.toString());\n },\n\n _applyModification: function(fn, args) {\n var color = fn.apply(null, [this].concat([].slice.call(args)));\n this._r = color._r;\n this._g = color._g;\n this._b = color._b;\n this.setAlpha(color._a);\n return this;\n },\n lighten: function() {\n return this._applyModification(lighten, arguments);\n },\n brighten: function() {\n return this._applyModification(brighten, arguments);\n },\n darken: function() {\n return this._applyModification(darken, arguments);\n },\n desaturate: function() {\n return this._applyModification(desaturate, arguments);\n },\n saturate: function() {\n return this._applyModification(saturate, arguments);\n },\n greyscale: function() {\n return this._applyModification(greyscale, arguments);\n },\n spin: function() {\n return this._applyModification(spin, arguments);\n },\n\n _applyCombination: function(fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function() {\n return this._applyCombination(analogous, arguments);\n },\n complement: function() {\n return this._applyCombination(complement, arguments);\n },\n monochromatic: function() {\n return this._applyCombination(monochromatic, arguments);\n },\n splitcomplement: function() {\n return this._applyCombination(splitcomplement, arguments);\n },\n triad: function() {\n return this._applyCombination(triad, arguments);\n },\n tetrad: function() {\n return this._applyCombination(tetrad, arguments);\n }\n};\n\n// If input is an object, force 1 into \"1.0\" to handle ratios properly\n// String input requires \"1.0\" as input, so 1 will be treated as 1\ntinycolor.fromRatio = function(color, opts) {\n if (typeof color == \"object\") {\n var newColor = {};\n for (var i in color) {\n if (color.hasOwnProperty(i)) {\n if (i === \"a\") {\n newColor[i] = color[i];\n }\n else {\n newColor[i] = convertToPercentage(color[i]);\n }\n }\n }\n color = newColor;\n }\n\n return tinycolor(color, opts);\n};\n\n// Given a string or object, convert that input to RGB\n// Possible string inputs:\n//\n// \"red\"\n// \"#f00\" or \"f00\"\n// \"#ff0000\" or \"ff0000\"\n// \"#ff000000\" or \"ff000000\"\n// \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n// \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n// \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n// \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n// \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n// \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n// \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n//\nfunction inputToRGB(color) {\n\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n\n if (typeof color == \"string\") {\n color = stringInputToObject(color);\n }\n\n if (typeof color == \"object\") {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === \"%\" ? \"prgb\" : \"rgb\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = \"hsv\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = \"hsl\";\n }\n\n if (color.hasOwnProperty(\"a\")) {\n a = color.a;\n }\n }\n\n a = boundAlpha(a);\n\n return {\n ok: ok,\n format: color.format || format,\n r: mathMin(255, mathMax(rgb.r, 0)),\n g: mathMin(255, mathMax(rgb.g, 0)),\n b: mathMin(255, mathMax(rgb.b, 0)),\n a: a\n };\n}\n\n\n// Conversion Functions\n// --------------------\n\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// \n\n// `rgbToRgb`\n// Handle bounds / percentage checking to conform to CSS color spec\n// \n// *Assumes:* r, g, b in [0, 255] or [0, 1]\n// *Returns:* { r, g, b } in [0, 255]\nfunction rgbToRgb(r, g, b){\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255\n };\n}\n\n// `rgbToHsl`\n// Converts an RGB color value to HSL.\n// *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n// *Returns:* { h, s, l } in [0,1]\nfunction rgbToHsl(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, l = (max + min) / 2;\n\n if(max == min) {\n h = s = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n\n h /= 6;\n }\n\n return { h: h, s: s, l: l };\n}\n\n// `hslToRgb`\n// Converts an HSL color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hslToRgb(h, s, l) {\n var r, g, b;\n\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n\n function hue2rgb(p, q, t) {\n if(t < 0) t += 1;\n if(t > 1) t -= 1;\n if(t < 1/6) return p + (q - p) * 6 * t;\n if(t < 1/2) return q;\n if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;\n return p;\n }\n\n if(s === 0) {\n r = g = b = l; // achromatic\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1/3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1/3);\n }\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHsv`\n// Converts an RGB color value to HSV\n// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n// *Returns:* { h, s, v } in [0,1]\nfunction rgbToHsv(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, v = max;\n\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n\n if(max == min) {\n h = 0; // achromatic\n }\n else {\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n\n// `hsvToRgb`\n// Converts an HSV color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\n function hsvToRgb(h, s, v) {\n\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n\n var i = Math.floor(h),\n f = h - i,\n p = v * (1 - s),\n q = v * (1 - f * s),\n t = v * (1 - (1 - f) * s),\n mod = i % 6,\n r = [v, q, p, p, t, v][mod],\n g = [t, v, v, q, p, p][mod],\n b = [p, p, t, v, v, q][mod];\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHex`\n// Converts an RGB color to hex\n// Assumes r, g, and b are contained in the set [0, 255]\n// Returns a 3 or 6 character hex\nfunction rgbToHex(r, g, b, allow3Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n // Return a 3 character hex if possible\n if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToHex`\n// Converts an RGBA color plus alpha transparency to hex\n// Assumes r, g, b are contained in the set [0, 255] and\n// a in [0, 1]. Returns a 4 or 8 character rgba hex\nfunction rgbaToHex(r, g, b, a, allow4Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16)),\n pad2(convertDecimalToHex(a))\n ];\n\n // Return a 4 character hex if possible\n if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToArgbHex`\n// Converts an RGBA color to an ARGB Hex8 string\n// Rarely used, but required for \"toFilter()\"\nfunction rgbaToArgbHex(r, g, b, a) {\n\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n return hex.join(\"\");\n}\n\n// `equals`\n// Can be called with any tinycolor input\ntinycolor.equals = function (color1, color2) {\n if (!color1 || !color2) { return false; }\n return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n};\n\ntinycolor.random = function() {\n return tinycolor.fromRatio({\n r: mathRandom(),\n g: mathRandom(),\n b: mathRandom()\n });\n};\n\n\n// Modification Functions\n// ----------------------\n// Thanks to less.js for some of the basics here\n// \n\nfunction desaturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction saturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction greyscale(color) {\n return tinycolor(color).desaturate(100);\n}\n\nfunction lighten (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\nfunction brighten(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var rgb = tinycolor(color).toRgb();\n rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * - (amount / 100))));\n rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * - (amount / 100))));\n rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * - (amount / 100))));\n return tinycolor(rgb);\n}\n\nfunction darken (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\n// Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n// Values outside of this range will be wrapped into this range.\nfunction spin(color, amount) {\n var hsl = tinycolor(color).toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return tinycolor(hsl);\n}\n\n// Combination Functions\n// ---------------------\n// Thanks to jQuery xColor for some of the ideas behind these\n// \n\nfunction complement(color) {\n var hsl = tinycolor(color).toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return tinycolor(hsl);\n}\n\nfunction triad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction tetrad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction splitcomplement(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l}),\n tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l})\n ];\n}\n\nfunction analogous(color, results, slices) {\n results = results || 6;\n slices = slices || 30;\n\n var hsl = tinycolor(color).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color)];\n\n for (hsl.h = ((hsl.h - (part * results >> 1)) + 720) % 360; --results; ) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(tinycolor(hsl));\n }\n return ret;\n}\n\nfunction monochromatic(color, results) {\n results = results || 6;\n var hsv = tinycolor(color).toHsv();\n var h = hsv.h, s = hsv.s, v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n\n while (results--) {\n ret.push(tinycolor({ h: h, s: s, v: v}));\n v = (v + modification) % 1;\n }\n\n return ret;\n}\n\n// Utility Functions\n// ---------------------\n\ntinycolor.mix = function(color1, color2, amount) {\n amount = (amount === 0) ? 0 : (amount || 50);\n\n var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n\n var p = amount / 100;\n\n var rgba = {\n r: ((rgb2.r - rgb1.r) * p) + rgb1.r,\n g: ((rgb2.g - rgb1.g) * p) + rgb1.g,\n b: ((rgb2.b - rgb1.b) * p) + rgb1.b,\n a: ((rgb2.a - rgb1.a) * p) + rgb1.a\n };\n\n return tinycolor(rgba);\n};\n\n\n// Readability Functions\n// ---------------------\n// false\n// tinycolor.isReadable(\"#000\", \"#111\",{level:\"AA\",size:\"large\"}) => false\ntinycolor.isReadable = function(color1, color2, wcag2) {\n var readability = tinycolor.readability(color1, color2);\n var wcag2Parms, out;\n\n out = false;\n\n wcag2Parms = validateWCAG2Parms(wcag2);\n switch (wcag2Parms.level + wcag2Parms.size) {\n case \"AAsmall\":\n case \"AAAlarge\":\n out = readability >= 4.5;\n break;\n case \"AAlarge\":\n out = readability >= 3;\n break;\n case \"AAAsmall\":\n out = readability >= 7;\n break;\n }\n return out;\n\n};\n\n// `mostReadable`\n// Given a base color and a list of possible foreground or background\n// colors for that base, returns the most readable color.\n// Optionally returns Black or White if the most readable color is unreadable.\n// *Example*\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:false}).toHexString(); // \"#112255\"\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:true}).toHexString(); // \"#ffffff\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"large\"}).toHexString(); // \"#faf3f3\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"small\"}).toHexString(); // \"#ffffff\"\ntinycolor.mostReadable = function(baseColor, colorList, args) {\n var bestColor = null;\n var bestScore = 0;\n var readability;\n var includeFallbackColors, level, size ;\n args = args || {};\n includeFallbackColors = args.includeFallbackColors ;\n level = args.level;\n size = args.size;\n\n for (var i= 0; i < colorList.length ; i++) {\n readability = tinycolor.readability(baseColor, colorList[i]);\n if (readability > bestScore) {\n bestScore = readability;\n bestColor = tinycolor(colorList[i]);\n }\n }\n\n if (tinycolor.isReadable(baseColor, bestColor, {\"level\":level,\"size\":size}) || !includeFallbackColors) {\n return bestColor;\n }\n else {\n args.includeFallbackColors=false;\n return tinycolor.mostReadable(baseColor,[\"#fff\", \"#000\"],args);\n }\n};\n\n\n// Big List of Colors\n// ------------------\n// \nvar names = tinycolor.names = {\n aliceblue: \"f0f8ff\",\n antiquewhite: \"faebd7\",\n aqua: \"0ff\",\n aquamarine: \"7fffd4\",\n azure: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"000\",\n blanchedalmond: \"ffebcd\",\n blue: \"00f\",\n blueviolet: \"8a2be2\",\n brown: \"a52a2a\",\n burlywood: \"deb887\",\n burntsienna: \"ea7e5d\",\n cadetblue: \"5f9ea0\",\n chartreuse: \"7fff00\",\n chocolate: \"d2691e\",\n coral: \"ff7f50\",\n cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"0ff\",\n darkblue: \"00008b\",\n darkcyan: \"008b8b\",\n darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\",\n darkgreen: \"006400\",\n darkgrey: \"a9a9a9\",\n darkkhaki: \"bdb76b\",\n darkmagenta: \"8b008b\",\n darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\",\n darkorchid: \"9932cc\",\n darkred: \"8b0000\",\n darksalmon: \"e9967a\",\n darkseagreen: \"8fbc8f\",\n darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\",\n darkslategrey: \"2f4f4f\",\n darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\",\n deeppink: \"ff1493\",\n deepskyblue: \"00bfff\",\n dimgray: \"696969\",\n dimgrey: \"696969\",\n dodgerblue: \"1e90ff\",\n firebrick: \"b22222\",\n floralwhite: \"fffaf0\",\n forestgreen: \"228b22\",\n fuchsia: \"f0f\",\n gainsboro: \"dcdcdc\",\n ghostwhite: \"f8f8ff\",\n gold: \"ffd700\",\n goldenrod: \"daa520\",\n gray: \"808080\",\n green: \"008000\",\n greenyellow: \"adff2f\",\n grey: \"808080\",\n honeydew: \"f0fff0\",\n hotpink: \"ff69b4\",\n indianred: \"cd5c5c\",\n indigo: \"4b0082\",\n ivory: \"fffff0\",\n khaki: \"f0e68c\",\n lavender: \"e6e6fa\",\n lavenderblush: \"fff0f5\",\n lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\",\n lightblue: \"add8e6\",\n lightcoral: \"f08080\",\n lightcyan: \"e0ffff\",\n lightgoldenrodyellow: \"fafad2\",\n lightgray: \"d3d3d3\",\n lightgreen: \"90ee90\",\n lightgrey: \"d3d3d3\",\n lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\",\n lightseagreen: \"20b2aa\",\n lightskyblue: \"87cefa\",\n lightslategray: \"789\",\n lightslategrey: \"789\",\n lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\",\n lime: \"0f0\",\n limegreen: \"32cd32\",\n linen: \"faf0e6\",\n magenta: \"f0f\",\n maroon: \"800000\",\n mediumaquamarine: \"66cdaa\",\n mediumblue: \"0000cd\",\n mediumorchid: \"ba55d3\",\n mediumpurple: \"9370db\",\n mediumseagreen: \"3cb371\",\n mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\",\n mediumturquoise: \"48d1cc\",\n mediumvioletred: \"c71585\",\n midnightblue: \"191970\",\n mintcream: \"f5fffa\",\n mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\",\n navajowhite: \"ffdead\",\n navy: \"000080\",\n oldlace: \"fdf5e6\",\n olive: \"808000\",\n olivedrab: \"6b8e23\",\n orange: \"ffa500\",\n orangered: \"ff4500\",\n orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\",\n palegreen: \"98fb98\",\n paleturquoise: \"afeeee\",\n palevioletred: \"db7093\",\n papayawhip: \"ffefd5\",\n peachpuff: \"ffdab9\",\n peru: \"cd853f\",\n pink: \"ffc0cb\",\n plum: \"dda0dd\",\n powderblue: \"b0e0e6\",\n purple: \"800080\",\n rebeccapurple: \"663399\",\n red: \"f00\",\n rosybrown: \"bc8f8f\",\n royalblue: \"4169e1\",\n saddlebrown: \"8b4513\",\n salmon: \"fa8072\",\n sandybrown: \"f4a460\",\n seagreen: \"2e8b57\",\n seashell: \"fff5ee\",\n sienna: \"a0522d\",\n silver: \"c0c0c0\",\n skyblue: \"87ceeb\",\n slateblue: \"6a5acd\",\n slategray: \"708090\",\n slategrey: \"708090\",\n snow: \"fffafa\",\n springgreen: \"00ff7f\",\n steelblue: \"4682b4\",\n tan: \"d2b48c\",\n teal: \"008080\",\n thistle: \"d8bfd8\",\n tomato: \"ff6347\",\n turquoise: \"40e0d0\",\n violet: \"ee82ee\",\n wheat: \"f5deb3\",\n white: \"fff\",\n whitesmoke: \"f5f5f5\",\n yellow: \"ff0\",\n yellowgreen: \"9acd32\"\n};\n\n// Make it easy to access colors via `hexNames[hex]`\nvar hexNames = tinycolor.hexNames = flip(names);\n\n\n// Utilities\n// ---------\n\n// `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\nfunction flip(o) {\n var flipped = { };\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n flipped[o[i]] = i;\n }\n }\n return flipped;\n}\n\n// Return a valid alpha value [0,1] with all invalid values being set to 1\nfunction boundAlpha(a) {\n a = parseFloat(a);\n\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n\n return a;\n}\n\n// Take input from [0, n] and return it as [0, 1]\nfunction bound01(n, max) {\n if (isOnePointZero(n)) { n = \"100%\"; }\n\n var processPercent = isPercentage(n);\n n = mathMin(max, mathMax(0, parseFloat(n)));\n\n // Automatically convert percentage into number\n if (processPercent) {\n n = parseInt(n * max, 10) / 100;\n }\n\n // Handle floating point rounding errors\n if ((Math.abs(n - max) < 0.000001)) {\n return 1;\n }\n\n // Convert into [0, 1] range if it isn't already\n return (n % max) / parseFloat(max);\n}\n\n// Force a number between 0 and 1\nfunction clamp01(val) {\n return mathMin(1, mathMax(0, val));\n}\n\n// Parse a base-16 hex value into a base-10 integer\nfunction parseIntFromHex(val) {\n return parseInt(val, 16);\n}\n\n// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n// \nfunction isOnePointZero(n) {\n return typeof n == \"string\" && n.indexOf('.') != -1 && parseFloat(n) === 1;\n}\n\n// Check to see if string passed in is a percentage\nfunction isPercentage(n) {\n return typeof n === \"string\" && n.indexOf('%') != -1;\n}\n\n// Force a hex value to have 2 characters\nfunction pad2(c) {\n return c.length == 1 ? '0' + c : '' + c;\n}\n\n// Replace a decimal with it's percentage value\nfunction convertToPercentage(n) {\n if (n <= 1) {\n n = (n * 100) + \"%\";\n }\n\n return n;\n}\n\n// Converts a decimal to a hex value\nfunction convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n// Converts a hex value to a decimal\nfunction convertHexToDecimal(h) {\n return (parseIntFromHex(h) / 255);\n}\n\nvar matchers = (function() {\n\n // \n var CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\";\n\n // \n var CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\n\n // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\n var CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n\n // Actual matching.\n // Parentheses and commas are optional, but not required.\n // Whitespace can take the place of commas or opening paren\n var PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n var PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n\n return {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp(\"rgb\" + PERMISSIVE_MATCH3),\n rgba: new RegExp(\"rgba\" + PERMISSIVE_MATCH4),\n hsl: new RegExp(\"hsl\" + PERMISSIVE_MATCH3),\n hsla: new RegExp(\"hsla\" + PERMISSIVE_MATCH4),\n hsv: new RegExp(\"hsv\" + PERMISSIVE_MATCH3),\n hsva: new RegExp(\"hsva\" + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n };\n})();\n\n// `isValidCSSUnit`\n// Take in a single string / number and check to see if it looks like a CSS unit\n// (see `matchers` above for definition).\nfunction isValidCSSUnit(color) {\n return !!matchers.CSS_UNIT.exec(color);\n}\n\n// `stringInputToObject`\n// Permissive string parsing. Take in a number of formats, and output an object\n// based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\nfunction stringInputToObject(color) {\n\n color = color.replace(trimLeft,'').replace(trimRight, '').toLowerCase();\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color == 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: \"name\" };\n }\n\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match;\n if ((match = matchers.rgb.exec(color))) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n if ((match = matchers.rgba.exec(color))) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n if ((match = matchers.hsl.exec(color))) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n if ((match = matchers.hsla.exec(color))) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n if ((match = matchers.hsv.exec(color))) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n if ((match = matchers.hsva.exec(color))) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n if ((match = matchers.hex8.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex6.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n if ((match = matchers.hex4.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n a: convertHexToDecimal(match[4] + '' + match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex3.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n\n return false;\n}\n\nfunction validateWCAG2Parms(parms) {\n // return valid WCAG2 parms for isReadable.\n // If input parms are invalid, return {\"level\":\"AA\", \"size\":\"small\"}\n var level, size;\n parms = parms || {\"level\":\"AA\", \"size\":\"small\"};\n level = (parms.level || \"AA\").toUpperCase();\n size = (parms.size || \"small\").toLowerCase();\n if (level !== \"AA\" && level !== \"AAA\") {\n level = \"AA\";\n }\n if (size !== \"small\" && size !== \"large\") {\n size = \"small\";\n }\n return {\"level\":level, \"size\":size};\n}\n\n// Node: Export function\nif (typeof module !== \"undefined\" && module.exports) {\n module.exports = tinycolor;\n}\n// AMD/requirejs: Define the module\nelse if (typeof define === 'function' && define.amd) {\n define(function () {return tinycolor;});\n}\n// Browser: Expose to window\nelse {\n window.tinycolor = tinycolor;\n}\n\n})(Math);\n","\nvar space = require('to-space-case')\n\n/**\n * Export.\n */\n\nmodule.exports = toCamelCase\n\n/**\n * Convert a `string` to camel case.\n *\n * @param {String} string\n * @return {String}\n */\n\nfunction toCamelCase(string) {\n return space(string).replace(/\\s(\\w)/g, function (matches, letter) {\n return letter.toUpperCase()\n })\n}\n","\n/**\n * Export.\n */\n\nmodule.exports = toNoCase\n\n/**\n * Test whether a string is camel-case.\n */\n\nvar hasSpace = /\\s/\nvar hasSeparator = /(_|-|\\.|:)/\nvar hasCamel = /([a-z][A-Z]|[A-Z][a-z])/\n\n/**\n * Remove any starting case from a `string`, like camel or snake, but keep\n * spaces and punctuation that may be important otherwise.\n *\n * @param {String} string\n * @return {String}\n */\n\nfunction toNoCase(string) {\n if (hasSpace.test(string)) return string.toLowerCase()\n if (hasSeparator.test(string)) return (unseparate(string) || string).toLowerCase()\n if (hasCamel.test(string)) return uncamelize(string).toLowerCase()\n return string.toLowerCase()\n}\n\n/**\n * Separator splitter.\n */\n\nvar separatorSplitter = /[\\W_]+(.|$)/g\n\n/**\n * Un-separate a `string`.\n *\n * @param {String} string\n * @return {String}\n */\n\nfunction unseparate(string) {\n return string.replace(separatorSplitter, function (m, next) {\n return next ? ' ' + next : ''\n })\n}\n\n/**\n * Camelcase splitter.\n */\n\nvar camelSplitter = /(.)([A-Z]+)/g\n\n/**\n * Un-camelcase a `string`.\n *\n * @param {String} string\n * @return {String}\n */\n\nfunction uncamelize(string) {\n return string.replace(camelSplitter, function (m, previous, uppers) {\n return previous + ' ' + uppers.toLowerCase().split('').join(' ')\n })\n}\n","\nvar clean = require('to-no-case')\n\n/**\n * Export.\n */\n\nmodule.exports = toSpaceCase\n\n/**\n * Convert a `string` to space case.\n *\n * @param {String} string\n * @return {String}\n */\n\nfunction toSpaceCase(string) {\n return clean(string).replace(/[\\W_]+(.|$)/g, function (matches, match) {\n return match ? ' ' + match : ''\n }).trim()\n}\n","var v1 = require('./v1');\nvar v4 = require('./v4');\n\nvar uuid = v4;\nuuid.v1 = v1;\nuuid.v4 = v4;\n\nmodule.exports = uuid;\n","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return ([\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]]\n ]).join('');\n}\n\nmodule.exports = bytesToUuid;\n","// Unique ID creation requires a high quality random # generator. In the\n// browser this is a little complicated due to unknown quality of Math.random()\n// and inconsistent support for the `crypto` API. We do the best we can via\n// feature-detection\n\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto\n// implementation. Also, find the complete implementation of crypto on IE11.\nvar getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) ||\n (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto));\n\nif (getRandomValues) {\n // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto\n var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\n module.exports = function whatwgRNG() {\n getRandomValues(rnds8);\n return rnds8;\n };\n} else {\n // Math.random()-based (RNG)\n //\n // If all else fails, use Math.random(). It's fast, but is of unspecified\n // quality.\n var rnds = new Array(16);\n\n module.exports = function mathRNG() {\n for (var i = 0, r; i < 16; i++) {\n if ((i & 0x03) === 0) r = Math.random() * 0x100000000;\n rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;\n }\n\n return rnds;\n };\n}\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\n\nvar _nodeId;\nvar _clockseq;\n\n// Previous uuid creation time\nvar _lastMSecs = 0;\nvar _lastNSecs = 0;\n\n// See https://github.com/uuidjs/uuid for API details\nfunction v1(options, buf, offset) {\n var i = buf && offset || 0;\n var b = buf || [];\n\n options = options || {};\n var node = options.node || _nodeId;\n var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq;\n\n // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n if (node == null || clockseq == null) {\n var seedBytes = rng();\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [\n seedBytes[0] | 0x01,\n seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]\n ];\n }\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n }\n\n // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime();\n\n // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1;\n\n // Time since last uuid creation (in msecs)\n var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000;\n\n // Per 4.2.1.2, Bump clockseq on clock regression\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n }\n\n // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n }\n\n // Per 4.2.1.2 Throw error if too many uuids are requested\n if (nsecs >= 10000) {\n throw new Error('uuid.v1(): Can\\'t create more than 10M uuids/sec');\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq;\n\n // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n msecs += 12219292800000;\n\n // `time_low`\n var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff;\n\n // `time_mid`\n var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff;\n\n // `time_high_and_version`\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n b[i++] = tmh >>> 16 & 0xff;\n\n // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n b[i++] = clockseq >>> 8 | 0x80;\n\n // `clock_seq_low`\n b[i++] = clockseq & 0xff;\n\n // `node`\n for (var n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf ? buf : bytesToUuid(b);\n}\n\nmodule.exports = v1;\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof(options) == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nmodule.exports = v4;\n","/*!\n * EventEmitter v5.2.8 - git.io/ee\n * Unlicense - http://unlicense.org/\n * Oliver Caldwell - https://oli.me.uk/\n * @preserve\n */\n\n;(function (exports) {\n 'use strict';\n\n /**\n * Class for managing events.\n * Can be extended to provide event functionality in other classes.\n *\n * @class EventEmitter Manages event registering and emitting.\n */\n function EventEmitter() {}\n\n // Shortcuts to improve speed and size\n var proto = EventEmitter.prototype;\n var originalGlobalValue = exports.EventEmitter;\n\n /**\n * Finds the index of the listener for the event in its storage array.\n *\n * @param {Function[]} listeners Array of listeners to search through.\n * @param {Function} listener Method to look for.\n * @return {Number} Index of the specified listener, -1 if not found\n * @api private\n */\n function indexOfListener(listeners, listener) {\n var i = listeners.length;\n while (i--) {\n if (listeners[i].listener === listener) {\n return i;\n }\n }\n\n return -1;\n }\n\n /**\n * Alias a method while keeping the context correct, to allow for overwriting of target method.\n *\n * @param {String} name The name of the target method.\n * @return {Function} The aliased method\n * @api private\n */\n function alias(name) {\n return function aliasClosure() {\n return this[name].apply(this, arguments);\n };\n }\n\n /**\n * Returns the listener array for the specified event.\n * Will initialise the event object and listener arrays if required.\n * Will return an object if you use a regex search. The object contains keys for each matched event. So /ba[rz]/ might return an object containing bar and baz. But only if you have either defined them with defineEvent or added some listeners to them.\n * Each property in the object response is an array of listener functions.\n *\n * @param {String|RegExp} evt Name of the event to return the listeners from.\n * @return {Function[]|Object} All listener functions for the event.\n */\n proto.getListeners = function getListeners(evt) {\n var events = this._getEvents();\n var response;\n var key;\n\n // Return a concatenated array of all matching events if\n // the selector is a regular expression.\n if (evt instanceof RegExp) {\n response = {};\n for (key in events) {\n if (events.hasOwnProperty(key) && evt.test(key)) {\n response[key] = events[key];\n }\n }\n }\n else {\n response = events[evt] || (events[evt] = []);\n }\n\n return response;\n };\n\n /**\n * Takes a list of listener objects and flattens it into a list of listener functions.\n *\n * @param {Object[]} listeners Raw listener objects.\n * @return {Function[]} Just the listener functions.\n */\n proto.flattenListeners = function flattenListeners(listeners) {\n var flatListeners = [];\n var i;\n\n for (i = 0; i < listeners.length; i += 1) {\n flatListeners.push(listeners[i].listener);\n }\n\n return flatListeners;\n };\n\n /**\n * Fetches the requested listeners via getListeners but will always return the results inside an object. This is mainly for internal use but others may find it useful.\n *\n * @param {String|RegExp} evt Name of the event to return the listeners from.\n * @return {Object} All listener functions for an event in an object.\n */\n proto.getListenersAsObject = function getListenersAsObject(evt) {\n var listeners = this.getListeners(evt);\n var response;\n\n if (listeners instanceof Array) {\n response = {};\n response[evt] = listeners;\n }\n\n return response || listeners;\n };\n\n function isValidListener (listener) {\n if (typeof listener === 'function' || listener instanceof RegExp) {\n return true\n } else if (listener && typeof listener === 'object') {\n return isValidListener(listener.listener)\n } else {\n return false\n }\n }\n\n /**\n * Adds a listener function to the specified event.\n * The listener will not be added if it is a duplicate.\n * If the listener returns true then it will be removed after it is called.\n * If you pass a regular expression as the event name then the listener will be added to all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to attach the listener to.\n * @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.addListener = function addListener(evt, listener) {\n if (!isValidListener(listener)) {\n throw new TypeError('listener must be a function');\n }\n\n var listeners = this.getListenersAsObject(evt);\n var listenerIsWrapped = typeof listener === 'object';\n var key;\n\n for (key in listeners) {\n if (listeners.hasOwnProperty(key) && indexOfListener(listeners[key], listener) === -1) {\n listeners[key].push(listenerIsWrapped ? listener : {\n listener: listener,\n once: false\n });\n }\n }\n\n return this;\n };\n\n /**\n * Alias of addListener\n */\n proto.on = alias('addListener');\n\n /**\n * Semi-alias of addListener. It will add a listener that will be\n * automatically removed after its first execution.\n *\n * @param {String|RegExp} evt Name of the event to attach the listener to.\n * @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.addOnceListener = function addOnceListener(evt, listener) {\n return this.addListener(evt, {\n listener: listener,\n once: true\n });\n };\n\n /**\n * Alias of addOnceListener.\n */\n proto.once = alias('addOnceListener');\n\n /**\n * Defines an event name. This is required if you want to use a regex to add a listener to multiple events at once. If you don't do this then how do you expect it to know what event to add to? Should it just add to every possible match for a regex? No. That is scary and bad.\n * You need to tell it what event names should be matched by a regex.\n *\n * @param {String} evt Name of the event to create.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.defineEvent = function defineEvent(evt) {\n this.getListeners(evt);\n return this;\n };\n\n /**\n * Uses defineEvent to define multiple events.\n *\n * @param {String[]} evts An array of event names to define.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.defineEvents = function defineEvents(evts) {\n for (var i = 0; i < evts.length; i += 1) {\n this.defineEvent(evts[i]);\n }\n return this;\n };\n\n /**\n * Removes a listener function from the specified event.\n * When passed a regular expression as the event name, it will remove the listener from all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to remove the listener from.\n * @param {Function} listener Method to remove from the event.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.removeListener = function removeListener(evt, listener) {\n var listeners = this.getListenersAsObject(evt);\n var index;\n var key;\n\n for (key in listeners) {\n if (listeners.hasOwnProperty(key)) {\n index = indexOfListener(listeners[key], listener);\n\n if (index !== -1) {\n listeners[key].splice(index, 1);\n }\n }\n }\n\n return this;\n };\n\n /**\n * Alias of removeListener\n */\n proto.off = alias('removeListener');\n\n /**\n * Adds listeners in bulk using the manipulateListeners method.\n * If you pass an object as the first argument you can add to multiple events at once. The object should contain key value pairs of events and listeners or listener arrays. You can also pass it an event name and an array of listeners to be added.\n * You can also pass it a regular expression to add the array of listeners to all events that match it.\n * Yeah, this function does quite a bit. That's probably a bad thing.\n *\n * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add to multiple events at once.\n * @param {Function[]} [listeners] An optional array of listener functions to add.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.addListeners = function addListeners(evt, listeners) {\n // Pass through to manipulateListeners\n return this.manipulateListeners(false, evt, listeners);\n };\n\n /**\n * Removes listeners in bulk using the manipulateListeners method.\n * If you pass an object as the first argument you can remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays.\n * You can also pass it an event name and an array of listeners to be removed.\n * You can also pass it a regular expression to remove the listeners from all events that match it.\n *\n * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to remove from multiple events at once.\n * @param {Function[]} [listeners] An optional array of listener functions to remove.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.removeListeners = function removeListeners(evt, listeners) {\n // Pass through to manipulateListeners\n return this.manipulateListeners(true, evt, listeners);\n };\n\n /**\n * Edits listeners in bulk. The addListeners and removeListeners methods both use this to do their job. You should really use those instead, this is a little lower level.\n * The first argument will determine if the listeners are removed (true) or added (false).\n * If you pass an object as the second argument you can add/remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays.\n * You can also pass it an event name and an array of listeners to be added/removed.\n * You can also pass it a regular expression to manipulate the listeners of all events that match it.\n *\n * @param {Boolean} remove True if you want to remove listeners, false if you want to add.\n * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add/remove from multiple events at once.\n * @param {Function[]} [listeners] An optional array of listener functions to add/remove.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.manipulateListeners = function manipulateListeners(remove, evt, listeners) {\n var i;\n var value;\n var single = remove ? this.removeListener : this.addListener;\n var multiple = remove ? this.removeListeners : this.addListeners;\n\n // If evt is an object then pass each of its properties to this method\n if (typeof evt === 'object' && !(evt instanceof RegExp)) {\n for (i in evt) {\n if (evt.hasOwnProperty(i) && (value = evt[i])) {\n // Pass the single listener straight through to the singular method\n if (typeof value === 'function') {\n single.call(this, i, value);\n }\n else {\n // Otherwise pass back to the multiple function\n multiple.call(this, i, value);\n }\n }\n }\n }\n else {\n // So evt must be a string\n // And listeners must be an array of listeners\n // Loop over it and pass each one to the multiple method\n i = listeners.length;\n while (i--) {\n single.call(this, evt, listeners[i]);\n }\n }\n\n return this;\n };\n\n /**\n * Removes all listeners from a specified event.\n * If you do not specify an event then all listeners will be removed.\n * That means every event will be emptied.\n * You can also pass a regex to remove all events that match it.\n *\n * @param {String|RegExp} [evt] Optional name of the event to remove all listeners for. Will remove from every event if not passed.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.removeEvent = function removeEvent(evt) {\n var type = typeof evt;\n var events = this._getEvents();\n var key;\n\n // Remove different things depending on the state of evt\n if (type === 'string') {\n // Remove all listeners for the specified event\n delete events[evt];\n }\n else if (evt instanceof RegExp) {\n // Remove all events matching the regex.\n for (key in events) {\n if (events.hasOwnProperty(key) && evt.test(key)) {\n delete events[key];\n }\n }\n }\n else {\n // Remove all listeners in all events\n delete this._events;\n }\n\n return this;\n };\n\n /**\n * Alias of removeEvent.\n *\n * Added to mirror the node API.\n */\n proto.removeAllListeners = alias('removeEvent');\n\n /**\n * Emits an event of your choice.\n * When emitted, every listener attached to that event will be executed.\n * If you pass the optional argument array then those arguments will be passed to every listener upon execution.\n * Because it uses `apply`, your array of arguments will be passed as if you wrote them out separately.\n * So they will not arrive within the array on the other side, they will be separate.\n * You can also pass a regular expression to emit to all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to emit and execute listeners for.\n * @param {Array} [args] Optional array of arguments to be passed to each listener.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.emitEvent = function emitEvent(evt, args) {\n var listenersMap = this.getListenersAsObject(evt);\n var listeners;\n var listener;\n var i;\n var key;\n var response;\n\n for (key in listenersMap) {\n if (listenersMap.hasOwnProperty(key)) {\n listeners = listenersMap[key].slice(0);\n\n for (i = 0; i < listeners.length; i++) {\n // If the listener returns true then it shall be removed from the event\n // The function is executed either with a basic call or an apply if there is an args array\n listener = listeners[i];\n\n if (listener.once === true) {\n this.removeListener(evt, listener.listener);\n }\n\n response = listener.listener.apply(this, args || []);\n\n if (response === this._getOnceReturnValue()) {\n this.removeListener(evt, listener.listener);\n }\n }\n }\n }\n\n return this;\n };\n\n /**\n * Alias of emitEvent\n */\n proto.trigger = alias('emitEvent');\n\n /**\n * Subtly different from emitEvent in that it will pass its arguments on to the listeners, as opposed to taking a single array of arguments to pass on.\n * As with emitEvent, you can pass a regex in place of the event name to emit to all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to emit and execute listeners for.\n * @param {...*} Optional additional arguments to be passed to each listener.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.emit = function emit(evt) {\n var args = Array.prototype.slice.call(arguments, 1);\n return this.emitEvent(evt, args);\n };\n\n /**\n * Sets the current value to check against when executing listeners. If a\n * listeners return value matches the one set here then it will be removed\n * after execution. This value defaults to true.\n *\n * @param {*} value The new value to check for when executing listeners.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.setOnceReturnValue = function setOnceReturnValue(value) {\n this._onceReturnValue = value;\n return this;\n };\n\n /**\n * Fetches the current value to check against when executing listeners. If\n * the listeners return value matches this one then it should be removed\n * automatically. It will return true by default.\n *\n * @return {*|Boolean} The current value to check for or the default, true.\n * @api private\n */\n proto._getOnceReturnValue = function _getOnceReturnValue() {\n if (this.hasOwnProperty('_onceReturnValue')) {\n return this._onceReturnValue;\n }\n else {\n return true;\n }\n };\n\n /**\n * Fetches the events object and creates one if required.\n *\n * @return {Object} The events storage object.\n * @api private\n */\n proto._getEvents = function _getEvents() {\n return this._events || (this._events = {});\n };\n\n /**\n * Reverts the global {@link EventEmitter} to its previous value and returns a reference to this version.\n *\n * @return {Function} Non conflicting EventEmitter class.\n */\n EventEmitter.noConflict = function noConflict() {\n exports.EventEmitter = originalGlobalValue;\n return EventEmitter;\n };\n\n // Expose the class either via AMD, CommonJS or the global object\n if (typeof define === 'function' && define.amd) {\n define(function () {\n return EventEmitter;\n });\n }\n else if (typeof module === 'object' && module.exports){\n module.exports = EventEmitter;\n }\n else {\n exports.EventEmitter = EventEmitter;\n }\n}(typeof window !== 'undefined' ? window : this || {}));\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// Export GUI class as 'guify'.\n// Make sure Webpack is assigning the export to the global scope (don't set library.name)\nimport { default as gui } from \"./gui.js\";\nlet guify = gui;\nexport { guify };"],"names":["default","TitleComponent","RangeComponent","ButtonComponent","CheckboxComponent","SelectComponent","TextComponent","ColorComponent","FolderComponent","FileComponent","DisplayComponent","IntervalComponent","ComponentManager","theme","components","root","opts","initializer","type","undefined","Error","newComponent","EventEmitter","v4","uuidv4","ContainerPartial","ComponentBase","makeContainer","uuid","container","label","SetEnabled","enabled","classList","remove","add","parentNode","removeChild","css","screenfull","MenuBar","element","document","createElement","appendChild","title","text","innerHTML","menuButton","left","align","right","onclick","emit","isEnabled","fullscreenButton","setAttribute","show","style","display","Panel","width","opacity","panelMode","barMode","_MakeToggleButton","panel","require","contains","SetVisible","className","ToggleVisible","addEventListener","blur","ToastArea","position","message","stayMS","transitionMS","console","log","toast","closeButton","timeout","TransitionOut","clearTimeout","setTimeout","Container","textAlign","color","colors","textSecondary","height","marginBottom","input","value","LabelPartial","Button","textContent","button","action","Checkbox","id","checked","initial","htmlFor","onchange","data","target","ColorPicker","tinycolor","ValuePartial","Color","format","icon","sizing","labelWidth","onmouseover","picker","$el","toHexString","fromRatio","r","g","b","el","background","componentBackground","marginTop","componentHeight","backgroundColor","getHexString","onmouseout","onChange","hex","Format","toRgbString","rgb","toRgb","map","x","toFixed","isChoosing","setColor","getColor","Display","toString","File","fileReadFunc","file","fileName","padding","fileLabel","FileDropped","event","files","dataTransfer","reader","FileReader","onload","result","name","preventDefault","stopPropagation","click","e","which","Folder","arrow","Toggle","folderContainer","open","SetOpen","isnumeric","lerp","clamp","min","max","Math","Interval","step","steps","handle","Array","isArray","scale","warn","minPos","maxPos","precision","logScale","pow","round","_RefreshHandles","lValue","rValue","activeIndex","mouseX","ev","pageX","getBoundingClientRect","mouseMoveListener","fraction","offsetWidth","_SetFromMousePosition","mouseUpListener","removeEventListener","posForLeftValue","_Position","posForRightValue","lofrac","hifrac","abs","lodiff","hidiff","oninput","rawValue","otherValue","parseFloat","Number","ceil","lastValue","rangePos","exp","newValue","_Value","focused","_FormatNumber","replace","leftPercent","rightPercent","Range","initialStep","valueComponent","userIsModifying","scaledValue","_ValidatedInputValue","validated","Select","i","downTriangle","upTriangle","key","option","keys","options","length","selected","Object","StyleFocus","StyleUnfocus","Text","listenMode","includes","error","Title","Theme","GUI","hasRoot","body","pollRateMS","themeName","Apply","_ConstructElements","_LoadStyles","componentManager","loadedComponents","_UpdateComponents","AppendFont","href","elem","getElementsByTagName","font","fontURL","fontFamily","fontSize","fontWeight","containerCSS","top","menuBarHeight","insertBefore","childNodes","bar","addListener","ToggleFullscreen","toaster","forEach","component","binding","object","property","oldValue","SetValue","window","requestAnimationFrame","obj","applyToAll","item","merged","assign","_Register","Remove","filter","folder","folderComp","find","cmp","Create","on","onInitialize","push","CreateToast","isFullscreen","exit","request","themes","dark","baseTheme","documentElement","setProperty","menuBarBackground","menuBarText","panelBackground","componentBackgroundHover","componentBackgroundDisabled","componentForeground","componentActive","textPrimary","textHover","textActive","textDisabled","componentSpacing","module","exports","light","yorha","v0","v1","t","gui","guify"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"guify.js","mappings":"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AM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA,kBAAkB;;AAElB,kBAAkB;AAClB;AACA;AACA;AACA;AACA,KAAK,IAAI;AACT,IAAI;AACJ;AACA;AACA;;;;;;;;;;;AC5DA,qBAAqB;AACrB,wBAAwB,eAAe;;AAEvC;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA,wCAAwC;;AAExC;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB;;;;;;;;;;;ACzDxB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAM,IAA8B;AACpC,QAAQ,KAA6B;AACrC;AACA;AACA,IAAI,iBAAiB;AACrB,IAAI,KAAK,EAMN;;AAEH,CAAC;;;;;;;;;;;ACvBD;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,gCAAgC,QAAQ;AACxC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;AC7BA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA,kBAAkB,KAA6B;;AAE/C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,SAAS,OAAO;AAChB;AACA;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAC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A;AACA;AACA,sDAAsD;;AAEtD;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;ACtCa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACVa;;AAEb;AACA;AACA,cAAc,KAAwC,GAAG,sBAAiB,GAAG,CAAI;;AAEjF;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACXa;;AAEb;AACA;AACA;;AAEA;AACA,kDAAkD;AAClD;;AAEA;AACA,0CAA0C;AAC1C;;AAEA;;AAEA;AACA,iFAAiF;AACjF;;AAEA;;AAEA;AACA,aAAa;AACb;;AAEA;AACA,aAAa;AACb;;AAEA;AACA,aAAa;AACb;;AAEA;;AAEA;AACA,yDAAyD;AACzD,IAAI;;AAEJ;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACrEa;;AAEb;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;ACfA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,uBAAuB;AACvB,uBAAuB;;AAEvB;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,+BAA+B,oBAAoB,MAAM;AACzD,+BAA+B,oBAAoB,MAAM;AACzD,+BAA+B,oBAAoB,MAAM;AACzD;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,iBAAiB;AACjB,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,iBAAiB;AACjB,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,iBAAiB;AACjB,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,iBAAiB;AACjB,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD,yCAAyC;AACzC,yCAAyC;AACzC;;AAEA;AACA;;AAEA,aAAa;AACb;;AAEA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa;AACb;;AAEA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,eAAe;AACf;AACA;AACA;AACA,uDAAuD;AACvD,yCAAyC;AACzC,yCAAyC;AACzC;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB,wCAAwC;AAC5D,oBAAoB,wCAAwC;AAC5D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uCAAuC;AAC3D,oBAAoB,wCAAwC;AAC5D,oBAAoB,wCAAwC;AAC5D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sCAAsC;AAC1D,oBAAoB,uCAAuC;AAC3D;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,gEAAgE,WAAW;AAC3E;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,6BAA6B,iBAAiB;AAC9C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,2DAA2D,wBAAwB;;AAEnF;AACA;AACA,2CAA2C,wBAAwB;AACnE;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,8EAA8E,4BAA4B,iBAAiB;AAC3H,8EAA8E,2BAA2B,kBAAkB;AAC3H,qDAAqD,oDAAoD,iBAAiB;AAC1H,qDAAqD,oDAAoD,iBAAiB;AAC1H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;AACA;AACA;AACA;;AAEA,oDAAoD,0BAA0B;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;;AAEA,MAAM,iBAAiB,aAAa,iBAAiB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,6BAA6B;;AAE7B;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE,cAAc,EAAE,cAAc,EAAE;AACjE,+BAA+B,EAAE,cAAc,EAAE,cAAc,EAAE;AACjE,+BAA+B,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE;AACjF,+BAA+B,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE;AACjF;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yCAAyC,SAAS,QAAQ,SAAS,QAAQ,QAAQ;AACnF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,2CAA2C;AAC3C;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA,IAAI,KAA6B;AACjC;AACA;AACA;AACA,SAAS,IAA0C;AACnD,IAAI,mCAAO,aAAa,kBAAkB;AAAA,kGAAC;AAC3C;AACA;AACA,KAAK,EAEJ;;AAED,CAAC;;;;;;;;;;;;ACzqCD,YAAY,mBAAO,CAAC,4DAAe;;AAEnC;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;;AAEA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;ACnBA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;;AAEA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;ACjEA,YAAY,mBAAO,CAAC,sDAAY;;AAEhC;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;;AAEA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;ACpBA,SAAS,mBAAO,CAAC,uCAAM;AACvB,SAAS,mBAAO,CAAC,uCAAM;;AAEvB;AACA;AACA;;AAEA;;;;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACzBA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC;;AAElC;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,QAAQ;AAC/B;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;ACjCA,UAAU,mBAAO,CAAC,yDAAW;AAC7B,kBAAkB,mBAAO,CAAC,iEAAmB;;AAE7C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,oCAAoC;AACpC;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB,OAAO;AACzB;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;AC5GA,UAAU,mBAAO,CAAC,yDAAW;AAC7B,kBAAkB,mBAAO,CAAC,iEAAmB;;AAE7C;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,YAAY;AAC3B,eAAe,UAAU;AACzB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,gBAAgB,mBAAmB;AACnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,eAAe,UAAU;AACzB,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;;AAEA,oBAAoB,sBAAsB;AAC1C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,eAAe,UAAU;AACzB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,eAAe,UAAU;AACzB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,UAAU;AACzB,gBAAgB,QAAQ;AACxB;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,eAAe,UAAU;AACzB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sBAAsB;AACrC,eAAe,YAAY;AAC3B,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sBAAsB;AACrC,eAAe,YAAY;AAC3B,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,sBAAsB;AACrC,eAAe,YAAY;AAC3B,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,eAAe,OAAO;AACtB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,4BAA4B,sBAAsB;AAClD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,eAAe,MAAM;AACrB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA,iDAAiD;AACjD;;AAEA;AACA,2BAA2B,oBAAoB;AAC/C;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAQ,IAA0C;AAClD,QAAQ,mCAAO;AACf;AACA,SAAS;AAAA,kGAAC;AACV;AACA,SAAS,EAKJ;AACL,CAAC,oDAAoD;;;;;;;UCrerD;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;;;;;;;;;;;;ACNA;AACA;AACA;AACA,IAAIG,KAAK,GAAGD,+CAAZ","sources":["webpack://guify/webpack/universalModuleDefinition","webpack://guify/./node_modules/add-px-to-style/index.js","webpack://guify/./src/component-manager.js","webpack://guify/./src/components/component-base.js","webpack://guify/./src/components/internal/menu-bar.js","webpack://guify/./src/components/internal/panel.js","webpack://guify/./src/components/internal/toast-area.js","webpack://guify/./src/components/partials/container.js","webpack://guify/./src/components/partials/header.js","webpack://guify/./src/components/partials/label.js","webpack://guify/./src/components/partials/value.js","webpack://guify/./src/components/public/button.js","webpack://guify/./src/components/public/checkbox.js","webpack://guify/./src/components/public/color.js","webpack://guify/./src/components/public/display.js","webpack://guify/./src/components/public/file.js","webpack://guify/./src/components/public/folder.js","webpack://guify/./src/components/public/interval.js","webpack://guify/./src/components/public/range.js","webpack://guify/./src/components/public/select.js","webpack://guify/./src/components/public/text.js","webpack://guify/./src/components/public/title.js","webpack://guify/./src/gui.js","webpack://guify/./src/theme.js","webpack://guify/./src/themes.js","webpack://guify/./src/utils/math-utils.js","webpack://guify/./src/components/internal/container.css","webpack://guify/./src/components/internal/menu-bar.css","webpack://guify/./src/components/internal/panel.css","webpack://guify/./src/components/internal/toast-area.css","webpack://guify/./src/components/partials/container.css","webpack://guify/./src/components/partials/label.css","webpack://guify/./src/components/partials/value.css","webpack://guify/./src/components/public/button.css","webpack://guify/./src/components/public/checkbox.css","webpack://guify/./src/components/public/color.css","webpack://guify/./src/components/public/display.css","webpack://guify/./src/components/public/file.css","webpack://guify/./src/components/public/folder.css","webpack://guify/./src/components/public/interval.css","webpack://guify/./src/components/public/range.css","webpack://guify/./src/components/public/select.css","webpack://guify/./src/components/public/text.css","webpack://guify/./src/components/public/title.css","webpack://guify/./src/components/variables.css","webpack://guify/./node_modules/css-loader/dist/runtime/api.js","webpack://guify/./node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://guify/./node_modules/dom-css/index.js","webpack://guify/./node_modules/insert-css/index.js","webpack://guify/./node_modules/is-numeric/is-numeric.js","webpack://guify/./node_modules/prefix-style/index.js","webpack://guify/./node_modules/screenfull/dist/screenfull.js","webpack://guify/./node_modules/simple-color-picker/dist/simple-color-picker.module.js","webpack://guify/./src/components/internal/container.css?0113","webpack://guify/./src/components/internal/menu-bar.css?3bfe","webpack://guify/./src/components/internal/panel.css?bbeb","webpack://guify/./src/components/internal/toast-area.css?3899","webpack://guify/./src/components/partials/container.css?cfea","webpack://guify/./src/components/partials/label.css?3e26","webpack://guify/./src/components/partials/value.css?cf62","webpack://guify/./src/components/public/button.css?2c6d","webpack://guify/./src/components/public/checkbox.css?8d5c","webpack://guify/./src/components/public/color.css?5c58","webpack://guify/./src/components/public/display.css?3c9a","webpack://guify/./src/components/public/file.css?9b4e","webpack://guify/./src/components/public/folder.css?b2a7","webpack://guify/./src/components/public/interval.css?430e","webpack://guify/./src/components/public/range.css?3e15","webpack://guify/./src/components/public/select.css?80f1","webpack://guify/./src/components/public/text.css?0dfd","webpack://guify/./src/components/public/title.css?d79d","webpack://guify/./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://guify/./node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://guify/./node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://guify/./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://guify/./node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://guify/./node_modules/style-loader/dist/runtime/styleTagTransform.js","webpack://guify/./node_modules/tinycolor2/tinycolor.js","webpack://guify/./node_modules/to-camel-case/index.js","webpack://guify/./node_modules/to-no-case/index.js","webpack://guify/./node_modules/to-space-case/index.js","webpack://guify/./node_modules/uuid/index.js","webpack://guify/./node_modules/uuid/lib/bytesToUuid.js","webpack://guify/./node_modules/uuid/lib/rng-browser.js","webpack://guify/./node_modules/uuid/v1.js","webpack://guify/./node_modules/uuid/v4.js","webpack://guify/./node_modules/wolfy87-eventemitter/EventEmitter.js","webpack://guify/webpack/bootstrap","webpack://guify/webpack/runtime/compat get default export","webpack://guify/webpack/runtime/define property getters","webpack://guify/webpack/runtime/hasOwnProperty shorthand","webpack://guify/webpack/runtime/make namespace object","webpack://guify/./src/guify.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(self, function() {\nreturn ","/* The following list is defined in React's core */\nvar IS_UNITLESS = {\n animationIterationCount: true,\n boxFlex: true,\n boxFlexGroup: true,\n boxOrdinalGroup: true,\n columnCount: true,\n flex: true,\n flexGrow: true,\n flexPositive: true,\n flexShrink: true,\n flexNegative: true,\n flexOrder: true,\n gridRow: true,\n gridColumn: true,\n fontWeight: true,\n lineClamp: true,\n lineHeight: true,\n opacity: true,\n order: true,\n orphans: true,\n tabSize: true,\n widows: true,\n zIndex: true,\n zoom: true,\n\n // SVG-related properties\n fillOpacity: true,\n stopOpacity: true,\n strokeDashoffset: true,\n strokeOpacity: true,\n strokeWidth: true\n};\n\nmodule.exports = function(name, value) {\n if(typeof value === 'number' && !IS_UNITLESS[ name ]) {\n return value + 'px';\n } else {\n return value;\n }\n};","import { default as TitleComponent } from \"./components/public/title\";\nimport { default as RangeComponent } from \"./components/public/range\";\nimport { default as ButtonComponent } from \"./components/public/button\";\nimport { default as CheckboxComponent } from \"./components/public/checkbox\";\nimport { default as SelectComponent } from \"./components/public/select\";\nimport { default as TextComponent } from \"./components/public/text\";\nimport { default as ColorComponent } from \"./components/public/color\";\nimport { default as FolderComponent } from \"./components/public/folder\";\nimport { default as FileComponent } from \"./components/public/file\";\nimport { default as DisplayComponent } from \"./components/public/display\";\nimport { default as IntervalComponent } from \"./components/public/interval\";\n\n/**\n * Manages the loading and instantiation of Components.\n */\nexport class ComponentManager {\n constructor(theme) {\n this.theme = theme;\n this.components = {\n \"title\": TitleComponent,\n \"range\": RangeComponent,\n \"button\": ButtonComponent,\n \"checkbox\": CheckboxComponent,\n \"select\": SelectComponent,\n \"text\": TextComponent,\n \"color\": ColorComponent,\n \"folder\": FolderComponent,\n \"file\": FileComponent,\n \"display\": DisplayComponent,\n \"interval\": IntervalComponent,\n };\n\n }\n\n /**\n * Creates the component specified by `opts` and appends it to the\n * document as a child of `root`.\n *\n * @param {HTMLElement} [root] Parent of the created component\n * @param {Object} [opts] Options used to create the component\n */\n Create(root, opts) {\n let initializer = this.components[opts.type];\n if(initializer === undefined) {\n throw new Error(`No component type named '${opts.type}' exists.`);\n }\n\n let newComponent = new initializer(root, opts, this.theme);\n\n return newComponent;\n }\n\n\n\n}\n","import EventEmitter from \"wolfy87-eventemitter\";\nimport { v4 as uuidv4 } from \"uuid\";\n\nimport { default as ContainerPartial } from \"./partials/container\";\n\nexport default class ComponentBase extends EventEmitter {\n SetEnabled(enabled) {\n this.enabled = enabled;\n if (enabled) {\n this.container?.classList.remove(\"disabled\");\n } else {\n this.container?.classList.add(\"disabled\");\n }\n }\n\n Remove() {\n if (this.container) {\n this.container.parentNode.removeChild(this.container);\n }\n }\n\n constructor(root, opts, theme, makeContainer=true) {\n super();\n\n this.root = root;\n this.opts = opts;\n this.theme = theme;\n\n this.uuid = uuidv4();\n\n if (makeContainer) {\n this.container = ContainerPartial(root, opts.label, theme);\n }\n\n this.SetEnabled(opts.enabled || true);\n }\n}","import ComponentBase from \"../component-base.js\";\n\nimport css from \"dom-css\";\nimport screenfull from \"screenfull\";\n\nimport \"./menu-bar.css\";\n\nexport class MenuBar extends ComponentBase {\n constructor(root, opts, theme) {\n super(root, opts, theme, false);\n\n // Create menu bar\n this.element = document.createElement(\"div\");\n this.element.classList.add(\"guify-bar\");\n root.appendChild(this.element);\n\n if (opts.title) {\n // Create a text label inside of the bar\n let text = this.element.appendChild(document.createElement(\"div\"));\n text.classList.add(\"guify-bar-title\");\n text.innerHTML = opts.title;\n this.label = text;\n }\n\n // Make the menu collapse button\n let menuButton = this.element.appendChild(document.createElement(\"button\"));\n menuButton.classList.add(\"guify-bar-button\");\n menuButton.innerHTML = \"Controls\";\n css(menuButton, {\n left: opts.align == \"left\" ? \"0\" : \"unset\",\n right: opts.align == \"left\" ? \"unset\" : \"0\",\n });\n menuButton.onclick = () => {\n this.emit(\"ontogglepanel\");\n };\n\n // Make the fullscreen button\n if (screenfull.isEnabled) {\n let fullscreenButton = this.element.appendChild(document.createElement(\"button\"));\n fullscreenButton.classList.add(\"guify-bar-button\");\n fullscreenButton.innerHTML = \"「 」\";\n fullscreenButton.setAttribute(\"aria-label\", \"Toggle Fullscreen\");\n css(fullscreenButton, {\n left: opts.align == \"left\" ? \"unset\" : \"0\", // Place on opposite side from menuButton\n right: opts.align == \"left\" ? \"0\" : \"unset\",\n });\n fullscreenButton.onclick = () => {\n this.emit(\"onfullscreenrequested\");\n };\n }\n\n }\n\n SetVisible(show) {\n this.element.style.display = show ? \"block\" : \"none\";\n }\n\n}\n","import ComponentBase from \"../component-base.js\";\n\nimport css from \"dom-css\";\n\nimport \"./panel.css\";\n\nexport class Panel extends ComponentBase {\n constructor(root, opts, theme) {\n super(root, opts, theme, false);\n\n // Container the panel will sit in\n this.container = root.appendChild(document.createElement(\"div\"));\n this.container.classList.add(\"guify-panel-container\");\n css(this.container, {\n width: opts.width,\n opacity: opts.opacity || 1.0,\n left: opts.align == \"left\" ? \"0\" : \"unset\",\n right: opts.align == \"left\" ? \"unset\" : \"0\",\n });\n\n if(opts.panelMode == \"outer\") {\n css(this.container, {\n left: opts.align == \"left\" ? \"unset\" : \"100%\",\n right: opts.align == \"left\" ? \"100%\" : \"unset\",\n });\n }\n\n if(opts.barMode === \"none\") {\n this._MakeToggleButton();\n }\n\n // Create panel inside container\n this.panel = this.container.appendChild(document.createElement(\"div\"));\n this.panel.classList.add(\"guify-panel\");\n\n // Add a title to the panel\n if(opts.barMode === \"none\" && opts.title)\n require(\"../partials/header\")(this.panel, opts.title, theme);\n\n }\n\n /**\n * Makes the panel visible based on the truthiness of `show`.\n * @param {Bool} [show]\n */\n SetVisible(show) {\n if(show){\n // this.panel.style.height = Array.prototype.reduce.call(this.panel.childNodes, function(p, c) {return p + (c.offsetHeight || 0) + 5 + 1;}, 0) + 'px';\n // this.panel.style.paddingTop = '14px';\n // this.panel.style.paddingBottom = '8px';\n this.panel.classList.remove(\"guify-panel-hidden\");\n\n if(this.menuButton) this.menuButton.setAttribute(\"alt\", \"Close GUI\");\n\n }\n else {\n // this.panel.style.height = '0px';\n // this.panel.style.paddingTop = '0px';\n // this.panel.style.paddingBottom = '0px';\n this.panel.classList.add(\"guify-panel-hidden\");\n\n if(this.menuButton) this.menuButton.setAttribute(\"alt\", \"Open GUI\");\n\n }\n }\n\n /**\n * Toggles the visibility of the panel.\n */\n ToggleVisible() {\n if (this.panel.classList.contains(\"guify-panel-hidden\"))\n this.SetVisible(true);\n else\n this.SetVisible(false);\n }\n\n /**\n * Makes a show/hide button that sits at the bottom of the panel.\n */\n _MakeToggleButton() {\n // Make the menu collapse button\n this.menuButton = this.container.appendChild(document.createElement(\"button\"));\n this.menuButton.className = \"guify-panel-toggle-button\";\n css(this.menuButton, {\n left: this.opts.align == \"left\" ? \"0px\" : \"unset\",\n right: this.opts.align == \"left\" ? \"unset\" : \"0px\",\n });\n\n this.menuButton.onclick = () => {\n this.ToggleVisible();\n };\n\n // Defocus on mouse up (for non-accessibility users)\n this.menuButton.addEventListener(\"mouseup\", () => {\n this.menuButton.blur();\n });\n\n this.menuButton.innerHTML = `\n \n \n \n `;\n }\n\n}\n","import ComponentBase from \"../component-base.js\";\n\nimport css from \"dom-css\";\n\nimport \"./toast-area.css\";\n\n/**\n * Represents a container div that creates and holds toast notifications.\n */\nexport class ToastArea extends ComponentBase {\n constructor(root, opts, theme) {\n super(root, opts, theme, false);\n\n // Make toast area\n this.element = root.appendChild(document.createElement(\"div\"));\n this.element.classList.add(\"guify-toast-area\");\n css(this.element, {\n position: \"absolute\",\n \"width\": \"100%\",\n });\n }\n\n /**\n * Makes a message that appears under the menu bar. Transitions out\n * over `transitionMS` milliseconds after `stayMS` milliseconds have passed.\n */\n CreateToast(message, stayMS = 5000, transitionMS = 0) {\n console.log(\"[Toast] \" + message);\n\n let toast = this.element.appendChild(document.createElement(\"div\"));\n toast.classList.add(\"guify-toast-notification\");\n toast.setAttribute(\"aria-live\", \"polite\");\n\n toast.innerHTML = message;\n\n css(toast, {\n // Animation stuff\n // '-webkit-transition': 'opacity ' + transitionMS + 'ms linear',\n // 'transition': 'opacity ' + transitionMS + 'ms linear',\n });\n\n // Make close button in toast\n let closeButton = toast.appendChild(document.createElement(\"button\"));\n closeButton.innerHTML = \"✖\";\n closeButton.classList.add(\"guify-toast-close-button\");\n\n let timeout;\n\n let TransitionOut = () => {\n toast.blur();\n css(toast, {\n //'transform-style': 'flat',\n //'transform-style': 'preserve-3d',\n\n // Slide up\n // '-webkit-transition': '-webkit-transform ' + transitionMS + 'ms linear',\n // 'transition': 'transform ' + transitionMS + 'ms linear',\n // '-webkit-transform': 'translate3d(0, -100%, 0)',\n // 'transform:': 'translate3d(0, -100%, 0)',\n\n // Fade out\n //'-webkit-transition': '-webkit-opacity ' + transitionMS + 'ms linear',\n //'transition': 'opacity ' + transitionMS + 'ms linear',\n \"opacity\": \"0\",\n });\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n if(toast)\n toast.parentNode.removeChild(toast);\n }, transitionMS);\n };\n\n timeout = setTimeout(TransitionOut, stayMS);\n\n closeButton.onclick = TransitionOut;\n }\n\n}\n","import \"./container.css\";\n\n// eslint-disable-next-line no-unused-vars\nlet Container = (root, label, theme) => {\n let container = root.appendChild(document.createElement(\"div\"));\n container.classList.add(\"guify-component-container\");\n return container;\n};\n\nexport default Container;\n","import css from \"dom-css\";\n\nexport default function (root, text, theme) {\n var title = root.appendChild(document.createElement(\"div\"));\n title.innerHTML = text;\n\n css(title, {\n width: \"100%\",\n textAlign: \"center\",\n color: theme.colors.textSecondary,\n height: \"20px\",\n marginBottom: \"4px\"\n });\n\n return title;\n}\n","import \"./label.css\";\n\n// eslint-disable-next-line no-unused-vars\nexport default (root, text, theme) => {\n var label = root.appendChild(document.createElement(\"div\"));\n label.classList.add(\"guify-component-label\");\n label.innerHTML = text;\n return label;\n};\n","import css from \"dom-css\";\n\nimport \"./value.css\";\n\nexport default (root, text, theme, width, left) => {\n\n let input = root.appendChild(document.createElement(\"input\"));\n input.type = \"text\";\n input.classList.add(\"guify-value-input\");\n\n input.value = text;\n\n if (!left) {\n input.classList.add(\"guify-value-input-right\");\n }\n\n css(input, {\n \"width\": width,\n });\n\n return input;\n};\n","import ComponentBase from \"../component-base.js\";\n\nimport { default as LabelPartial } from \"../partials/label\";\n\nimport \"./button.css\";\n\nexport default class Button extends ComponentBase {\n constructor(root, opts, theme) {\n super(root, opts, theme);\n\n this.label = LabelPartial(this.container, \"\", theme);\n\n this.input = this.container.appendChild(document.createElement(\"button\"));\n this.input.classList.add(\"guify-button\");\n\n this.input.textContent = opts.label;\n this.button = this.input;\n\n this.input.addEventListener(\"click\", opts.action);\n\n // Defocus on mouse up (for non-accessibility users)\n this.input.addEventListener(\"mouseup\", () => {\n this.input.blur();\n });\n }\n}\n","import ComponentBase from \"../component-base.js\";\n\nimport { default as LabelPartial } from \"../partials/label\";\n\nimport \"./checkbox.css\";\n\nexport default class Checkbox extends ComponentBase {\n constructor (root, opts, theme) {\n super(root, opts, theme);\n\n this.label = LabelPartial(this.container, opts.label, theme);\n\n this.input = this.container.appendChild(document.createElement(\"input\"));\n this.input.id = \"checkbox-\" + opts.label + this.uuid;\n this.input.type = \"checkbox\";\n this.input.checked = opts.initial;\n this.input.classList.add(\"guify-checkbox\");\n // Add ARIA attribute to input based on label text\n if(opts.label) this.input.setAttribute(\"aria-label\", opts.label);\n\n var label = this.container.appendChild(document.createElement(\"label\"));\n label.htmlFor = this.input.id;\n\n setTimeout(() => {\n this.emit(\"initialized\", this.input.checked);\n });\n\n this.input.onchange = (data) => {\n this.emit(\"input\", data.target.checked);\n };\n\n }\n\n SetValue(value) {\n this.input.checked = value;\n }\n\n GetValue() {\n return this.input.checked;\n }\n}\n","import ComponentBase from \"../component-base.js\";\n\nimport ColorPicker from \"simple-color-picker\";\nimport tinycolor from \"tinycolor2\";\n\nimport css from \"dom-css\";\nimport \"./color.css\";\n\nimport { default as LabelPartial } from \"../partials/label\";\nimport { default as ValuePartial } from \"../partials/value\";\n\nexport default class Color extends ComponentBase {\n constructor (root, opts, theme) {\n super(root, opts, theme);\n\n opts.format = opts.format || \"rgb\";\n opts.initial = opts.initial || \"#123456\";\n\n this.label = LabelPartial(this.container, opts.label, theme);\n\n var icon = this.container.appendChild(document.createElement(\"span\"));\n icon.classList.add(\"guify-color\");\n\n var value = ValuePartial(this.container, \"\", theme, `calc(100% - ${theme.sizing.labelWidth} - 12% - 0.5em)`);\n value.setAttribute(\"readonly\", \"true\");\n\n icon.onmouseover = () => {\n this.picker.$el.style.display = \"\";\n };\n\n var initial = opts.initial;\n switch (opts.format) {\n case \"rgb\":\n initial = tinycolor(initial).toHexString();\n break;\n case \"hex\":\n initial = tinycolor(initial).toHexString();\n break;\n case \"array\":\n initial = tinycolor.fromRatio({r: initial[0], g: initial[1], b: initial[2]}).toHexString();\n break;\n default:\n break;\n }\n\n this.picker = new ColorPicker({\n el: icon,\n color: initial,\n background: theme.colors.componentBackground,\n width: 125,\n height: 100\n });\n\n css(this.picker.$el, {\n marginTop: theme.sizing.componentHeight,\n display: \"none\",\n position: \"absolute\"\n });\n\n css(icon, {\n position: \"absolute\", // Fixes extra height being applied below for some reason\n display: \"inline-block\",\n width: \"12.5%\",\n height: theme.sizing.componentHeight,\n backgroundColor: this.picker.getHexString()\n });\n\n icon.onmouseout = () => {\n this.picker.$el.style.display = \"none\";\n };\n\n setTimeout(() => {\n this.emit(\"initialized\", initial);\n });\n\n this.picker.onChange((hex) => {\n value.value = this.Format(hex);\n css(icon, {backgroundColor: hex});\n this.emit(\"input\", this.Format(hex));\n });\n }\n\n Format(hex) {\n switch (this.opts.format) {\n case \"rgb\":\n return tinycolor(hex).toRgbString();\n case \"hex\":\n return tinycolor(hex).toHexString();\n case \"array\":\n var rgb = tinycolor(hex).toRgb();\n return [rgb.r / 255, rgb.g / 255, rgb.b / 255].map((x) => {\n return x.toFixed(2);\n });\n default:\n return hex;\n }\n }\n\n SetValue(value) {\n if (!this.picker.isChoosing) {\n this.picker.setColor(value);\n }\n }\n\n GetValue() {\n return this.Format(this.picker.getColor());\n }\n}\n","import ComponentBase from \"../component-base.js\";\n\nimport \"./display.css\";\n\nimport { default as LabelPartial } from \"../partials/label\";\n\n/**\n * Display component. Shows the state of a variable.\n */\nexport default class Display extends ComponentBase {\n constructor (root, opts, theme) {\n super(root, opts, theme);\n\n this.label = LabelPartial(this.container, opts.label, theme);\n\n this.text = this.container.appendChild(document.createElement(\"div\"));\n this.text.classList.add(\"guify-display\");\n\n // Add ARIA attribute to text based on label text\n if(opts.label) this.text.setAttribute(\"aria-label\", opts.label);\n }\n\n SetValue(value) {\n this.text.innerHTML = value.toString();\n }\n\n GetValue() {\n return this.text.innerHTML.toString();\n }\n}\n","import ComponentBase from \"../component-base.js\";\nimport css from \"dom-css\";\n\nimport \"./file.css\";\n\n/**\n * File component. Drag and drop a file or click to choose a file.\n */\nexport default class File extends ComponentBase {\n constructor (root, opts, theme) {\n super(root, opts, theme);\n\n this.opts.fileReadFunc = this.opts.fileReadFunc || \"readAsDataURL\";\n\n this.file = null;\n this.fileName = null;\n\n this.container.classList.add(\"guify-file-container\");\n this.container.setAttribute(\"role\", \"button\");\n this.container.setAttribute(\"tabIndex\", \"0\"); // Make tabbable\n css(this.container, {\n width: \"100%\",\n \"box-sizing\": \"border-box\",\n \"-moz-box-sizing\": \"border-box\",\n \"-webkit-box-sizing\": \"border-box\",\n height: \"unset\", // Grow with content\n padding: \"8px\"\n });\n\n let label = this.container.appendChild(document.createElement(\"div\"));\n label.innerHTML = opts.label;\n css(label, \"padding-bottom\", \"5px\");\n\n this.input = this.container.appendChild(document.createElement(\"input\"));\n this.input.setAttribute(\"type\", \"file\");\n this.input.setAttribute(\"multiple\", false);\n this.input.style.display = \"none\";\n // Add ARIA attribute to input based on label text\n if(opts.label) this.input.setAttribute(\"aria-label\", opts.label);\n\n this.fileLabel = this.container.appendChild(document.createElement(\"div\"));\n this.fileLabel.innerHTML = \"Choose a file...\";\n //css(this.fileLabel, 'color', theme.colors.textSecondary);\n\n let FileDropped = (event) => {\n var files;\n if(event.dataTransfer) {\n files = event.dataTransfer.files;\n } else if(event.target) {\n files = event.target.files;\n }\n\n var reader = new FileReader();\n reader.onload = () => {\n this.file = reader.result;\n this.fileLabel.innerHTML = files[0].name;\n this.emit(\"input\", this.file);\n };\n\n reader[this.opts.fileReadFunc](files[0]);\n };\n\n this.input.addEventListener(\"change\", FileDropped);\n\n this.container.addEventListener(\"dragover\", (event) => {\n event.preventDefault();\n event.stopPropagation();\n this.container.classList.add(\"guify-dragover\");\n });\n\n this.container.addEventListener(\"dragleave\", (event) => {\n event.preventDefault();\n event.stopPropagation();\n this.container.classList.remove(\"guify-dragover\");\n });\n\n this.container.addEventListener(\"drop\", (event) => {\n event.preventDefault();\n event.stopPropagation();\n this.container.classList.remove(\"guify-dragover\");\n FileDropped(event);\n });\n\n this.container.onclick = () => {\n this.input.click();\n };\n\n this.container.addEventListener(\"keydown\", (e) => {\n // Listen for Space or Enter\n if(e.which === 13 || e.which === 32) {\n this.input.click();\n }\n });\n\n // Defocus on mouse up (for non-accessibility users)\n this.container.addEventListener(\"mouseup\", () => {\n this.container.blur();\n });\n\n }\n\n // eslint-disable-next-line no-unused-vars\n SetValue(value) {\n return;\n }\n\n GetValue() {\n return this.file;\n }\n\n}\n","import ComponentBase from \"../component-base.js\";\n\nimport \"./folder.css\";\n\nexport default class Folder extends ComponentBase {\n constructor (root, opts, theme) {\n super(root, opts, theme);\n\n this.container.classList.add(\"guify-folder\");\n this.container.setAttribute(\"role\", \"button\");\n this.container.setAttribute(\"tabIndex\", \"0\"); // Make tabbable\n // css(container, {\n // color: theme.colors.text1,\n // })\n\n this.arrow = this.container.appendChild(document.createElement(\"div\"));\n this.arrow.classList.add(\"guify-folder-arrow\");\n this.arrow.innerHTML = \"▾\";\n\n this.label = this.container.appendChild(document.createElement(\"div\"));\n this.label.classList.add(\"guify-folder-text\");\n this.label.innerHTML = opts.label;\n\n this.container.onclick = () => {\n this.Toggle();\n };\n\n // Defocus on mouse up (for non-accessibility users)\n this.container.addEventListener(\"mouseup\", () => {\n this.container.blur();\n });\n\n this.container.addEventListener(\"keydown\", (e) => {\n // Listen for Space or Enter\n if(e.which === 13 || e.which === 32) {\n this.Toggle();\n }\n });\n\n this.folderContainer = root.appendChild(document.createElement(\"div\"));\n this.folderContainer.classList.add(\"guify-folder-contents\");\n\n this.open = this.opts.open || false;\n this.SetOpen(this.open);\n\n }\n\n SetEnabled(enabled) {\n super.SetEnabled(enabled);\n // Disable everything in the folder\n if (enabled) {\n this.folderContainer?.classList.remove(\"disabled\");\n } else {\n this.folderContainer?.classList.add(\"disabled\");\n }\n }\n\n // Toggle visibility\n Toggle() {\n this.open = !this.open;\n this.SetOpen(this.open);\n }\n\n // Show or hide the contents\n SetOpen(show) {\n this.open = show;\n if(show) {\n this.folderContainer.classList.remove(\"guify-folder-closed\");\n this.arrow.innerHTML = \"▾\"; // Down triangle\n\n }\n else {\n this.folderContainer.classList.add(\"guify-folder-closed\");\n this.arrow.innerHTML = \"▸\"; // Right triangle\n }\n\n }\n}\n","import ComponentBase from \"../component-base.js\";\n\nimport css from \"dom-css\";\nimport isnumeric from \"is-numeric\";\n\nimport \"./interval.css\";\n\nimport { default as LabelPartial } from \"../partials/label\";\nimport { default as ValuePartial } from \"../partials/value\";\n\nimport { lerp } from \"../../utils/math-utils\";\n\nfunction clamp(x, min, max)\n{\n return Math.min(Math.max(x, min), max);\n}\n\nexport default class Interval extends ComponentBase {\n constructor (root, opts, theme) {\n super(root, opts, theme);\n\n this.label = LabelPartial(this.container, opts.label, theme);\n\n if (!!opts.step && !!opts.steps) {\n throw new Error(\"Cannot specify both step and steps. Got step = \" + opts.step + \", steps = \", opts.steps);\n }\n\n this.input = this.container.appendChild(document.createElement(\"span\"));\n this.input.classList.add(\"guify-interval\");\n\n this.handle = document.createElement(\"span\");\n this.handle.classList.add(\"guify-interval-handle\");\n this.input.appendChild(this.handle);\n\n\n if (!Array.isArray(opts.initial))\n {\n opts.initial = [];\n }\n\n this.scale = opts.scale;\n\n // Get initial value:\n if( opts.scale === \"log\" )\n {\n // If logarithmic, we're going to set the slider to a known linear range. Then we'll\n // map that linear range to the user-set range using a log scale.\n\n // Check if all signs are valid\n if (opts.min * opts.max <= 0) {\n throw new Error(\"Log range min/max must have the same sign and not equal zero. Got min = \" + opts.min + \", max = \" + opts.max);\n }\n\n // Step is invalid for log scale slider\n if (isnumeric(opts.step)) {\n console.warn(\"Step is unused for log scale sliders.\");\n }\n\n // Warn that `steps` was removed\n if (isnumeric(opts.steps)) {\n console.warn(\"\\\"steps\\\" option for log scale sliders has been removed.\");\n }\n\n // Min/max are forced to a known range, and log value will be derived from slider position within.\n this.minPos = 0;\n this.maxPos = 1000000;\n\n this.min = Math.log( (isnumeric(opts.min)) ? opts.min : 0.000001 ); // This cannot be 0\n this.max = Math.log( (isnumeric(opts.max)) ? opts.max : 100 );\n\n this.precision = (isnumeric(opts.precision)) ? opts.precision : 3;\n this.logScale = (this.max - this.min) / (this.maxPos - this.minPos);\n\n this.initial = [\n isnumeric(opts.initial[0]) ? opts.initial[0] : this.min,\n isnumeric(opts.initial[1]) ? opts.initial[1] : this.max,\n ];\n }\n else\n {\n // If linear, this is much simpler. Pos and value can directly match.\n this.minPos = (isnumeric(opts.min)) ? opts.min : 0;\n this.maxPos = (isnumeric(opts.max)) ? opts.max : 100;\n this.min = this.minPos;\n this.max = this.maxPos;\n\n this.precision = (isnumeric(opts.precision)) ? opts.precision : 3;\n this.step = (isnumeric(opts.step)) ? opts.step : (10 / Math.pow(10, 3)); // Default is the lowest possible number given the precision. When precision = 3, step = 0.01.\n\n this.initial = [\n isnumeric(opts.initial[0]) ? opts.initial[0] : this.min,\n isnumeric(opts.initial[1]) ? opts.initial[1] : this.max,\n ];\n\n // Quantize the initial value to the nearest step:\n if (this.step != 0) {\n this.initial = this.initial.map((value) => {\n return this.min + this.step * Math.round((value - this.min) / this.step);\n });\n }\n }\n\n this.value = opts.initial;\n\n // Set handle positions from value\n this._RefreshHandles();\n\n // Display the values:\n this.lValue = ValuePartial(this.container, this.value[0], theme, \"11%\", true);\n this.rValue = ValuePartial(this.container, this.value[1], theme, \"11%\", false);\n\n // Add ARIA attribute to input based on label text\n if(opts.label) this.lValue.setAttribute(\"aria-label\", opts.label + \" lower value\");\n if(opts.label) this.lValue.setAttribute(\"aria-label\", opts.label + \" upper value\");\n\n // An index to track what's being dragged:\n this.activeIndex = -1;\n\n setTimeout(() => {\n this.emit(\"initialized\", this.value);\n });\n\n // // Gain focus\n // this.input.addEventListener(\"focus\", () => {\n // this.focused = true;\n // });\n\n // // Lose focus\n // this.input.addEventListener(\"blur\", () => {\n // this.focused = false;\n // });\n\n let mouseX = (ev) =>\n {\n // Get mouse position in page coords relative to the container:\n return ev.pageX - this.input.getBoundingClientRect().left;\n };\n\n let mouseMoveListener = ( ev ) =>\n {\n let fraction = clamp(mouseX(ev) / this.input.offsetWidth, 0, 1);\n\n this._SetFromMousePosition(fraction);\n };\n\n let mouseUpListener = ( ev ) =>\n {\n let fraction = clamp(mouseX(ev) / this.input.offsetWidth, 0, 1);\n\n this._SetFromMousePosition(fraction);\n\n document.removeEventListener(\"mousemove\", mouseMoveListener);\n document.removeEventListener(\"mouseup\", mouseUpListener);\n\n this.activeIndex = -1;\n };\n\n this.input.addEventListener(\"mousedown\", (ev) =>\n {\n // Get mouse position fraction:\n let fraction = clamp(mouseX(ev) / this.input.offsetWidth, 0, 1);\n\n let posForLeftValue = this._Position(this.value[0]);\n let posForRightValue = this._Position(this.value[1]);\n\n // Get the current fraction of position --> [0, 1]:\n let lofrac = (posForLeftValue - this.minPos) / (this.maxPos - this.minPos);\n let hifrac = (posForRightValue - this.minPos) / (this.maxPos - this.minPos);\n\n // This is just for making decisions, so perturb it ever\n // so slightly just in case the bounds are numerically equal:\n lofrac -= Math.abs(this.maxPos - this.minPos) * 1e-15;\n hifrac += Math.abs(this.maxPos - this.minPos) * 1e-15;\n\n // Figure out which is closer:\n let lodiff = Math.abs(lofrac - fraction);\n let hidiff = Math.abs(hifrac - fraction);\n\n this.activeIndex = lodiff < hidiff ? 0 : 1;\n\n console.log(this.activeIndex);\n\n // Attach this to *document* so that we can still drag if the mouse\n // passes outside the container:\n document.addEventListener(\"mousemove\", mouseMoveListener);\n document.addEventListener(\"mouseup\", mouseUpListener);\n });\n\n // Defocus on mouse up (for non-accessibility users)\n this.input.addEventListener(\"mouseup\", () => {\n this.input.blur();\n });\n\n this.input.oninput = () => {\n // let position = parseFloat(data.target.value);\n // var scaledValue = this._Value(position);\n // this.valueComponent.value = this._FormatNumber(scaledValue, this.precision);\n this.lValue.value = this.value[0];\n this.rValue.value = this.value[1];\n this.emit(\"input\", this.value);\n };\n\n // Handle lower bound input box changes\n this.lValue.onchange = () => {\n let rawValue = this.lValue.value;\n let otherValue = parseFloat(this.rValue.value);\n if (Number(parseFloat(rawValue)) == rawValue) {\n // Input number is valid\n var value = parseFloat(rawValue);\n // Clamp to input range\n value = Math.min(Math.max(value, this.min), this.max);\n // Map to nearest step\n if (this.step) {\n value = Math.ceil((value - this.min) / this.step ) * this.step + this.min;\n }\n // Prevent value from going beyond interval upper value\n value = Math.min(value, otherValue);\n\n this.lValue.value = value;\n this.value = [value, otherValue];\n this.emit(\"input\", [value, otherValue]);\n this._RefreshHandles([value, otherValue]);\n } else {\n // Input number is invalid\n // Go back to before input change\n this.lValue.value = this.lastValue[0];\n }\n };\n\n // Handle upper bound input box changes\n this.rValue.onchange = () => {\n let rawValue = this.rValue.value;\n let otherValue = parseFloat(this.lValue.value);\n if (Number(parseFloat(rawValue)) == rawValue) {\n // Input number is valid\n var value = parseFloat(rawValue);\n // Clamp to input range\n value = Math.min(Math.max(value, this.min), this.max);\n // Map to nearest step\n if (this.step) {\n value = Math.ceil((value - this.min) / this.step ) * this.step + this.min;\n }\n // Prevent value from going below interval lower value\n value = Math.max(value, otherValue);\n\n this.rValue.value = value;\n this.value = [otherValue, value];\n this.emit(\"input\", [otherValue, value]);\n this._RefreshHandles();\n } else {\n // Input number is invalid\n // Go back to before input change\n this.rValue.value = this.lastValue[1];\n }\n };\n }\n\n /**\n * Calculate value from slider position\n */\n _Value(position) {\n if (this.scale === \"log\") {\n // Map from slider position range to log value range\n\n // Map from slider range to min-max value range\n let rangePos = (position - this.minPos) * this.logScale + this.min;\n // Now convert to log space\n return Math.exp(rangePos);\n } else {\n // Position and value are equivalent\n return position;\n }\n }\n\n /**\n * Calculate slider position from value\n */\n _Position(value) {\n if (this.scale === \"log\") {\n // Map from log value range to the slider's position range\n return this.minPos + (Math.log(value) - this.min) / this.logScale;\n } else {\n // Value and position are equivalent\n return value;\n }\n }\n\n /**\n * Updates the current value given a mouse X position normalized from 0 to 1.\n */\n _SetFromMousePosition( fraction )\n {\n if (this.activeIndex === -1) {\n return;\n }\n\n // Clip against the other bound:\n if (this.activeIndex === 0) {\n // Get the right side in position-space [0, 1]:\n let hifrac = (this._Position(this.value[1]) - this.minPos) / (this.maxPos - this.minPos);\n // Prevent fraction from exceeding right-side position\n fraction = Math.min(hifrac, fraction);\n } else {\n // Get the right side in position-space [0, 1]:\n let lofrac = (this._Position(this.value[0]) - this.minPos) / (this.maxPos - this.minPos);\n // Prevent fraction from going below left-side position\n fraction = Math.max(lofrac, fraction);\n }\n\n // Map from 0-1 scale to position-scale\n let position = lerp(this.minPos, this.maxPos, fraction);\n // Map from position-scale to value-scale and assign to values\n var newValue = this._Value(position);\n\n // Quantize the value\n if (this.step) {\n newValue = this.min + this.step * Math.round((newValue - this.min) / this.step);\n }\n\n this.value[this.activeIndex] = newValue;\n\n // Update and send the event:\n this._RefreshHandles();\n this.input.oninput();\n }\n\n SetValue( value )\n {\n if(this.focused !== true)\n {\n this.lValue.value = this._FormatNumber(value[0], this.precision);\n this.rValue.value = this._FormatNumber(value[1], this.precision);\n\n this.lastValue = [ this.lValue.value, this.rValue.value ];\n }\n }\n\n // Formats the number for display.\n // `opts.precision` lets you customize how many decimal places you want here.\n // The default is 3.\n _FormatNumber(value, precision) {\n // https://stackoverflow.com/a/29249277\n return value.toFixed(precision).replace(/\\.?0*$/,\"\");\n }\n\n GetValue() {\n return [ this.lValue.value, this.rValue.value ];\n }\n\n _RefreshHandles() {\n let leftPercent = ((this._Position(this.value[0]) - this.minPos) / (this.maxPos - this.minPos)) * 100;\n let rightPercent = 100 - (((this._Position(this.value[1]) - this.minPos) / (this.maxPos - this.minPos)) * 100);\n css(this.handle, {\n left: `${leftPercent}%`,\n right: `${rightPercent}%`,\n });\n }\n}\n","import ComponentBase from \"../component-base.js\";\n\nimport css from \"dom-css\";\nimport isnumeric from \"is-numeric\";\n\nimport \"./range.css\";\n\nimport { default as LabelPartial } from \"../partials/label\";\nimport { default as ValuePartial } from \"../partials/value\";\n\nexport default class Range extends ComponentBase {\n constructor (root, opts, theme) {\n super(root, opts, theme);\n\n this.scale = opts.scale;\n\n this.label = LabelPartial(this.container, opts.label, theme);\n\n this.input = this.container.appendChild(document.createElement(\"input\"));\n this.input.type = \"range\";\n this.input.classList.add(\"guify-range\");\n // Add ARIA attribute to input based on label text\n if(opts.label) this.input.setAttribute(\"aria-label\", opts.label + \" input\");\n\n // Get initial value:\n if (opts.scale === \"log\") {\n // If logarithmic, we're going to set the slider to a known linear range. Then we'll\n // map that linear range to the user-set range using a log scale.\n\n // Check if all signs are valid\n if (opts.min * opts.max <= 0) {\n throw new Error(\"Log range min/max must have the same sign and not equal zero. Got min = \" + opts.min + \", max = \" + opts.max);\n }\n\n // Step is invalid for log scale slider\n if (isnumeric(opts.step)) {\n console.warn(\"Step is unused for log scale sliders.\");\n }\n\n // Warn that `steps` was removed\n if (isnumeric(opts.steps)) {\n console.warn(\"\\\"steps\\\" option for log scale sliders has been removed.\");\n }\n\n // Min/max are forced to a known range, and log value will be derived from slider position within.\n this.minPos = 0;\n this.maxPos = 1000000;\n\n this.min = Math.log( (isnumeric(opts.min)) ? opts.min : 0.000001 ); // This cannot be 0\n this.max = Math.log( (isnumeric(opts.max)) ? opts.max : 100 );\n\n this.precision = (isnumeric(opts.precision)) ? opts.precision : 3;\n this.logScale = (this.max - this.min) / (this.maxPos - this.minPos);\n\n this.initial = isnumeric(opts.initial) ? opts.initial : this.min;\n\n if (opts.initial < 0) {\n throw new Error(`Log range initial value must be > 0. Got initial value = ${opts.initial}`);\n }\n } else {\n // If linear, this is much simpler. Pos and value can directly match.\n this.minPos = (isnumeric(opts.min)) ? opts.min : 0;\n this.maxPos = (isnumeric(opts.max)) ? opts.max : 100;\n this.min = this.minPos;\n this.max = this.maxPos;\n\n this.precision = (isnumeric(opts.precision)) ? opts.precision : 3;\n this.step = (isnumeric(opts.step)) ? opts.step : (10 / Math.pow(10, 3)); // Default is the lowest possible number given the precision. When precision = 3, step = 0.01.\n\n this.initial = isnumeric(opts.initial) ? opts.initial : this.min;\n\n // Quantize the initial value to the nearest step:\n if (this.step != 0) {\n var initialStep = Math.round((this.initial - this.min) / this.step);\n this.initial = this.min + this.step * initialStep;\n }\n }\n\n // Set value on the this.input itself:\n this.input.min = this.minPos;\n this.input.max = this.maxPos;\n if (isnumeric(this.step)) {\n this.input.step = this.step;\n }\n this.input.value = this.initial;\n\n css(this.input, {\n width: `calc(100% - ${theme.sizing.labelWidth} - 16% - 0.5em)`\n });\n\n this.valueComponent = ValuePartial(this.container, this._Position(this.initial), theme, \"16%\");\n // Add ARIA attribute to input based on label text\n if(opts.label) this.valueComponent.setAttribute(\"aria-label\", opts.label + \" value\");\n\n setTimeout(() => {\n this.emit(\"initialized\", parseFloat(this.input.value));\n });\n\n this.userIsModifying = false;\n\n // Gain focus\n this.input.addEventListener(\"focus\", () => {\n this.focused = true;\n });\n\n // Lose focus\n this.input.addEventListener(\"blur\", () => {\n this.focused = false;\n });\n\n // Defocus on mouse up (for non-accessibility users)\n this.input.addEventListener(\"mouseup\", () => {\n this.input.blur();\n });\n\n this.input.oninput = (data) => {\n let position = parseFloat(data.target.value);\n var scaledValue = this._Value(position);\n this.valueComponent.value = this._FormatNumber(scaledValue, this.precision);\n this.emit(\"input\", scaledValue);\n };\n\n this.valueComponent.onchange = () => {\n let rawValue = this.valueComponent.value;\n if(Number(parseFloat(rawValue)) == rawValue){\n // Input number is valid\n var value = parseFloat(rawValue);\n\n // Ensure number fits slider properties\n value = this._ValidatedInputValue(value);\n\n this.valueComponent.value = value;\n this.emit(\"input\", value);\n this.lastValue = value;\n } else {\n // Input number is invalid\n // Go back to before input change\n this.valueComponent.value = this.lastValue;\n }\n };\n }\n\n /**\n * Calculate value from slider position\n */\n _Value(position) {\n if (this.scale === \"log\") {\n // Map from slider position range to log value range\n\n // Map from slider range to min-max value range\n let rangePos = (position - this.minPos) * this.logScale + this.min;\n // Now convert to log space\n return Math.exp(rangePos);\n } else {\n // Position and value are equivalent\n return position;\n }\n }\n\n /**\n * Calculate slider position from value\n */\n _Position(value) {\n if (this.scale === \"log\") {\n // Map from log value range to the slider's position range\n return this.minPos + (Math.log(value) - this.min) / this.logScale;\n } else {\n // Value and position are equivalent\n return value;\n }\n }\n\n _ValidatedInputValue(value) {\n var newValue;\n if (this.scale === \"log\") {\n // Clamp to input range, turning logmin and logmax back into min/max in linear space\n newValue = Math.min(Math.max(value, Math.exp(this.min)), Math.exp(this.max));\n } else {\n // Clamp to input range\n newValue = Math.min(Math.max(value, this.min), this.max);\n // Quantize to step\n newValue = Math.ceil((newValue - this.min) / this.step) * this.step + this.min;\n }\n return newValue;\n }\n\n SetValue(value) {\n let validated = this._ValidatedInputValue(value);\n if(this.focused !== true) {\n this.valueComponent.value = this._FormatNumber(validated, this.precision);\n this.input.value = this._Position(validated);\n this.lastValue = validated;\n }\n }\n\n GetValue() {\n return this._Value(this.input.value);\n }\n\n // Formats the number for display.\n // `opts.precision` lets you customize how many decimal places you want here.\n // The default is 3.\n _FormatNumber(value, precision) {\n // https://stackoverflow.com/a/29249277\n return value.toFixed(precision).replace(/\\.?0*$/,\"\");\n }\n}\n","import ComponentBase from \"../component-base.js\";\n\nimport \"./select.css\";\n\nimport { default as LabelPartial } from \"../partials/label\";\n\nexport default class Select extends ComponentBase {\n constructor (root, opts, theme) {\n super(root, opts, theme);\n\n var i, downTriangle, upTriangle, key, option, el, keys;\n\n this.label = LabelPartial(this.container, opts.label, theme);\n\n this.input = document.createElement(\"select\");\n this.input.classList.add(\"guify-select-dropdown\");\n // Add ARIA attribute to input based on label text\n if(opts.label) this.input.setAttribute(\"aria-label\", opts.label);\n\n downTriangle = document.createElement(\"span\");\n downTriangle.classList.add(\"guify-select-triangle\", \"guify-select-triangle--down\");\n\n upTriangle = document.createElement(\"span\");\n upTriangle.classList.add(\"guify-select-triangle\", \"guify-select-triangle--up\");\n\n this.container.appendChild(downTriangle);\n this.container.appendChild(upTriangle);\n\n if (Array.isArray(opts.options)) {\n for (i = 0; i < opts.options.length; i++) {\n option = opts.options[i];\n el = document.createElement(\"option\");\n el.value = el.textContent = option;\n if (opts.initial === option) {\n el.selected = \"selected\";\n }\n this.input.appendChild(el);\n }\n } else {\n keys = Object.keys(opts.options);\n for (i = 0; i < keys.length; i++) {\n key = keys[i];\n el = document.createElement(\"option\");\n el.value = key;\n if (opts.initial === key) {\n el.selected = \"selected\";\n }\n el.textContent = opts.options[key];\n this.input.appendChild(el);\n }\n }\n\n this.container.appendChild(this.input);\n\n this.input.onchange = (data) => {\n this.emit(\"input\", data.target.value);\n };\n\n // Style the arrows based on mouse / focus behavior (and unfocus on mouse leave).\n // I'd like to do this through CSS :focus/:hover selectors but I just couldn't figure it out.\n // It could be done easily if CSS had a \"general previous sibling\" selector.\n let StyleFocus = () => {\n downTriangle.classList.add(\"guify-select-triangle--down-highlight\");\n upTriangle.classList.add(\"guify-select-triangle--up-highlight\");\n };\n\n let StyleUnfocus = () => {\n downTriangle.classList.remove(\"guify-select-triangle--down-highlight\");\n upTriangle.classList.remove(\"guify-select-triangle--up-highlight\");\n };\n let focused = false;\n\n this.input.addEventListener(\"mouseover\", StyleFocus);\n this.input.addEventListener(\"focus\", () => { focused = true; StyleFocus(); });\n this.input.addEventListener(\"blur\", () => { focused = false; StyleUnfocus(); });\n this.input.addEventListener(\"mouseleave\", () => { if (!focused) StyleUnfocus(); });\n\n }\n\n SetValue(value) {\n this.input.value = value;\n }\n\n GetValue() {\n return this.input.value;\n }\n}\n","import ComponentBase from \"../component-base.js\";\n\nimport \"./text.css\";\n\nimport { default as LabelPartial } from \"../partials/label\";\n\nexport default class Text extends ComponentBase {\n static #supportedInputListenModes = [\"input\", \"change\"];\n\n constructor (root, opts, theme) {\n super(root, opts, theme);\n\n this.listenMode = opts.listenMode || \"input\";\n if (!Text.#supportedInputListenModes.includes(this.listenMode)) {\n console.error(`listenMode \"${this.listenMode}\" is not supported for text component \"${opts.label}\"! Falling back on \"input\".`);\n }\n\n this.label = LabelPartial(this.container, opts.label, theme);\n\n this.input = this.container.appendChild(document.createElement(\"input\"));\n this.input.type = \"text\";\n this.input.classList.add(\"guify-text-input\");\n if (opts.initial) this.input.value = opts.initial;\n // Add ARIA attribute to input based on label text\n if(opts.label) this.input.setAttribute(\"aria-label\", opts.label);\n\n setTimeout(() => {\n this.emit(\"initialized\", this.input.value);\n });\n\n this.input.addEventListener(this.listenMode, (data) => {\n console.log(data);\n this.emit(\"input\", data.target.value);\n });\n\n // Gain focus\n this.input.addEventListener(\"focus\", () => {\n this.focused = true;\n });\n\n // Lose focus\n this.input.addEventListener(\"blur\", () => {\n this.focused = false;\n });\n }\n\n SetValue(value) {\n if(this.focused !== true)\n this.input.value = value;\n }\n\n GetValue() {\n return this.input.value;\n }\n}\n","import ComponentBase from \"../component-base.js\";\n\nimport \"./title.css\";\n\nexport default class Title extends ComponentBase {\n constructor (root, opts, theme) {\n super(root, opts, theme);\n\n var background = this.container.appendChild(document.createElement(\"div\"));\n background.classList.add(\"guify-title\");\n\n var label = background.appendChild(document.createElement(\"div\"));\n label.classList.add(\"guify-title-text\");\n label.innerHTML = `■ ${opts.label} ■`;\n }\n}\n","import css from \"dom-css\";\n\nimport { default as Theme } from \"./theme\";\n\nimport \"./components/internal/container.css\";\n\nimport { ComponentManager } from \"./component-manager\";\n\nimport { MenuBar } from \"./components/internal/menu-bar\";\nimport { Panel } from \"./components/internal/panel\";\nimport { ToastArea } from \"./components/internal/toast-area\";\nimport screenfull from \"screenfull\";\n\nexport default class GUI {\n constructor(opts) {\n this.opts = opts;\n\n this.hasRoot = opts.root !== undefined;\n\n opts.width = opts.width || 300;\n opts.root = opts.root || document.body;\n opts.align = opts.align || \"left\"; // Can be 'left' or 'right'\n opts.opacity = opts.opacity || 1.0;\n opts.barMode = opts.barMode || \"offset\"; // Can be 'none', 'above', 'offset', or 'overlay'\n opts.panelMode = opts.panelMode || \"inner\";\n opts.pollRateMS = opts.pollRateMS || 100;\n opts.open = opts.open || false;\n\n // Set theme from opts\n let themeName = opts.theme || \"dark\";\n this.theme = new Theme(themeName);\n this.theme.Apply();\n\n this._ConstructElements();\n this._LoadStyles();\n\n this.componentManager = new ComponentManager(this.theme);\n\n this.loadedComponents = [];\n\n // Begin component update loop\n this._UpdateComponents();\n\n }\n\n /**\n * Load any runtime styling information needed here.\n */\n _LoadStyles() {\n // Loads a font and appends it to the head\n let AppendFont = (href) => {\n var elem = document.createElement(\"style\");\n elem.setAttribute(\"type\", \"text/css\");\n elem.setAttribute(\"rel\", \"stylesheet\");\n elem.setAttribute(\"href\", href);\n document.getElementsByTagName(\"head\")[0].appendChild(elem);\n };\n // Load the fonts we'll be using\n // Mono font\n AppendFont(\"//cdn.jsdelivr.net/font-hack/2.019/css/hack.min.css\");\n // Theme font\n if(this.theme.font) {\n // Set default font to theme font\n if(this.theme.font.fontURL) AppendFont(this.theme.font.fontURL);\n if(this.theme.font.fontFamily) css(this.container, \"font-family\", this.theme.font.fontFamily);\n if(this.theme.font.fontSize) css(this.container, \"font-size\", this.theme.font.fontSize);\n if(this.theme.font.fontWeight) css(this.container, \"font-weight\", this.theme.font.fontWeight);\n } else {\n css(this.container, \"font-family\", \"'Hack', monospace\");\n }\n }\n\n /**\n * Create container, MenuBar, Panel, and ToastArea\n */\n _ConstructElements() {\n // Create the container that all the other elements will be contained within\n this.container = document.createElement(\"div\");\n this.container.classList.add(\"guify-container\");\n\n let containerCSS = {};\n\n // Position the container relative to the root based on `opts`\n if(this.opts.barMode == \"overlay\" || this.opts.barMode == \"above\" || this.opts.barMode == \"none\"){\n containerCSS.position = \"absolute\";\n }\n if(this.hasRoot && this.opts.barMode == \"above\"){\n containerCSS.top = `-${this.theme.sizing.menuBarHeight}`;\n }\n css(this.container, containerCSS);\n\n // Insert the container into the root as the first element\n this.opts.root.insertBefore(this.container, this.opts.root.childNodes[0]);\n\n // Create a menu bar if specified in `opts`\n if(this.opts.barMode !== \"none\") {\n this.bar = new MenuBar(this.container, this.opts, this.theme);\n this.bar.addListener(\"ontogglepanel\", () => {\n this.panel.ToggleVisible();\n });\n this.bar.addListener(\"onfullscreenrequested\", () => {\n this.ToggleFullscreen();\n });\n }\n\n // Create panel\n this.panel = new Panel(this.container, this.opts, this.theme);\n\n // Show the panel by default if there's no menu bar or it's requested\n if(this.opts.barMode === \"none\" || this.opts.open === true) {\n this.panel.SetVisible(true);\n } else {\n // Otherwise hide it by default\n this.panel.SetVisible(false);\n }\n\n // Create toast area\n this.toaster = new ToastArea(this.container, this.opts, this.theme);\n\n }\n\n /**\n * Polling loop that allows our components to update themselves.\n * You can set the frequency of this using `this.opts.pollRateMS`.\n */\n _UpdateComponents() {\n this.loadedComponents.forEach((component) => {\n if(component.binding) {\n // Update the component from its bound value if the value has changed\n if(component.binding.object[component.binding.property] != component.oldValue) {\n component.SetValue(component.binding.object[component.binding.property]);\n component.oldValue = component.binding.object[component.binding.property];\n }\n }\n });\n\n setTimeout(() => {\n window.requestAnimationFrame(() => {\n this._UpdateComponents();\n });\n }, this.opts.pollRateMS);\n\n }\n\n\n /**\n * Creates a new component in the panel based on the provided options.\n * @param {*} [obj] Either an opts object or an array of opts objects\n * @param {Object} [applyToAll] Each property of this object will be applied to all opts objects\n */\n Register(obj, applyToAll = {}) {\n if (Array.isArray(obj)) {\n obj.forEach((item) => {\n let merged = Object.assign(item, applyToAll);\n this._Register(merged);\n });\n }\n else {\n let merged = Object.assign(obj, applyToAll);\n return this._Register(merged);\n }\n }\n\n Remove(obj) {\n obj.Remove();\n this.loadedComponents = this.loadedComponents.filter((item) => {\n return item !== obj;\n });\n }\n\n /**\n * Creates new component in the panel based on the options provided.\n *\n * @param {Object} [opts] Options for the component\n */\n _Register(opts) {\n\n if (opts.object && opts.property)\n if (opts.object[opts.property] === undefined)\n throw new Error(`Object ${opts.object} has no property '${opts.property}'`);\n\n // Set opts properties from the input\n if(opts.object && opts.property) {\n opts.initial = opts.object[opts.property];\n // If no label is specified, generate it from property name\n //opts.label = opts.label || property;\n }\n\n let root = this.panel.panel;\n\n // If a folder was specified, try to find a folder component with that name\n // and get its folderContainer.\n if(opts.folder) {\n let folderComp = this.loadedComponents.find((cmp) => {\n return cmp === opts.folder || (cmp.opts.type === \"folder\" && cmp.opts.label === opts.folder);\n });\n\n if(folderComp) root = folderComp.folderContainer;\n else throw new Error(`No folder exists with the name ${opts.folder}`);\n }\n\n let component = this.componentManager.Create(root, opts);\n\n // Add binding properties if specified\n if(opts.object && opts.property) {\n component[\"binding\"] = { object: opts.object, property: opts.property };\n }\n\n // If the component has events, add listeners for those events.\n if(component.on) {\n component.on(\"initialized\", function (data) {\n if(opts.onInitialize)\n opts.onInitialize(data);\n });\n\n component.on(\"input\", (data) => {\n if(opts.object && opts.property)\n opts.object[opts.property] = data;\n\n if(opts.onChange) {\n opts.onChange(data);\n }\n });\n }\n\n this.loadedComponents.push(component);\n\n return component;\n\n\n }\n\n /**\n * Displays a toast notification under the MenuBar at the top of the root.\n *\n * @param {String} [message] The string you want displayed in the notification.\n * @param {Integer} [stayMS] The number of milliseconds to display the notification for\n * @param {Integer} [transitionMS] The number of milliseconds it takes for the notification to transition into disappearing\n */\n Toast(message, stayMS = 5000, transitionMS = 0) {\n this.toaster.CreateToast(message, stayMS, transitionMS);\n }\n\n\n ToggleFullscreen() {\n let isFullscreen = screenfull.isFullscreen;\n if (isFullscreen) {\n screenfull.exit();\n } else {\n console.log(\"Request fullscreen\");\n screenfull.request(this.opts.root);\n }\n }\n\n // Just for debugging.\n _SetAllEnabled(enabled) {\n this.loadedComponents.forEach((item) => {\n item.SetEnabled(enabled);\n });\n }\n\n}\n","import themes from \"./themes\";\n\nexport default class Theme {\n constructor(themeName) {\n\n var theme = themes[themeName];\n if(theme === undefined) {\n console.error(`There is no theme preset with the name '${themeName}'! Defaulting to dark theme.`);\n theme = themes.dark;\n }\n\n // Merge the base theme with the theme parameters and make\n // the result properties of this object\n Object.assign(this, baseTheme, theme);\n }\n\n /**\n * Applies the CSS to the global scope.\n */\n Apply() {\n console.log(this);\n\n let root = document.documentElement;\n root.style.setProperty(\"--color-menu-bar-background\", this.colors.menuBarBackground);\n root.style.setProperty(\"--color-menu-bar-text\", this.colors.menuBarText);\n root.style.setProperty(\"--color-panel-background\", this.colors.panelBackground);\n\n root.style.setProperty(\"--color-component-background\", this.colors.componentBackground);\n root.style.setProperty(\"--color-component-background-hover\", this.colors.componentBackgroundHover);\n root.style.setProperty(\"--color-component-background-disabled\", this.colors.componentBackgroundDisabled);\n root.style.setProperty(\"--color-component-foreground\", this.colors.componentForeground);\n root.style.setProperty(\"--color-component-active\", this.colors.componentActive);\n\n root.style.setProperty(\"--color-text-primary\", this.colors.textPrimary);\n root.style.setProperty(\"--color-text-secondary\", this.colors.textSecondary);\n root.style.setProperty(\"--color-text-hover\", this.colors.textHover);\n root.style.setProperty(\"--color-text-active\", this.colors.textActive);\n root.style.setProperty(\"--color-text-disabled\", this.colors.textDisabled);\n\n root.style.setProperty(\"--size-menu-bar-height\", this.sizing.menuBarHeight);\n root.style.setProperty(\"--size-component-height\", this.sizing.componentHeight);\n root.style.setProperty(\"--size-component-spacing\", this.sizing.componentSpacing);\n root.style.setProperty(\"--size-label-width\", this.sizing.labelWidth);\n }\n}\n\nconst baseTheme = {\n name: \"BaseTheme\",\n\n colors: {\n menuBarBackground: \"black\",\n menuBarText: \"black\",\n panelBackground: \"black\",\n\n componentBackground: \"black\",\n componentBackgroundHover: \"black\",\n componentBackgroundDisabled: \"black\",\n componentForeground: \"black\",\n componentActive: \"black\",\n\n textPrimary: \"black\",\n textSecondary: \"black\",\n textHover: \"black\",\n textActive: \"black\",\n textDisabled: \"black\",\n },\n\n sizing: {\n menuBarHeight: \"25px\",\n componentHeight: \"20px\",\n componentSpacing: \"5px\",\n labelWidth: \"42%\",\n },\n};\n","module.exports = {\n\n light: {\n name: \"Light\",\n\n colors: {\n menuBarBackground: \"rgb(227, 227, 227)\",\n menuBarText: \"rgb(36, 36, 36)\",\n panelBackground: \"rgb(227, 227, 227)\",\n\n componentBackground: \"rgb(204, 204, 204)\",\n componentBackgroundHover: \"rgb(190, 190, 190)\",\n componentBackgroundDisabled: \"rgb(200, 200, 200)\",\n componentForeground: \"rgb(105, 105, 105)\",\n componentActive: \"rgb(36, 36, 36)\",\n\n textPrimary: \"rgb(36, 36, 36)\",\n textSecondary: \"rgb(87, 87, 87)\",\n textHover: \"rgb(204, 204, 204)\",\n textActive: \"rgb(204, 204, 204)\",\n textDisabled: \"rgb(180, 180, 180)\",\n },\n\n },\n\n dark: {\n name: \"Dark\",\n\n colors: {\n menuBarBackground: \"rgb(35, 35, 35)\",\n menuBarText: \"rgb(235, 235, 235)\",\n panelBackground: \"rgb(35, 35, 35)\",\n\n componentBackground: \"rgb(54, 54, 54)\",\n componentBackgroundHover: \"rgb(76, 76, 76)\",\n componentBackgroundDisabled: \"rgb(24, 24, 24)\",\n componentForeground: \"rgb(112, 112, 112)\",\n componentActive: \"rgb(202, 202, 202)\",\n\n textPrimary: \"rgb(235, 235, 235)\",\n textSecondary: \"rgb(181, 181, 181)\",\n textHover: \"rgb(235, 235, 235)\",\n textActive: \"rgb(54, 54, 54)\",\n textDisabled: \"rgb(54, 54, 54)\",\n },\n\n },\n\n // Color scheme from https://metakirby5.github.io/yorha/\n yorha: {\n name: \"YoRHa\",\n\n colors: {\n menuBarBackground: \"#CCC8B1\",\n menuBarText: \"#454138\",\n panelBackground: \"#CCC8B1\",\n\n componentBackground: \"#BAB5A1\",\n componentBackgroundHover: \"#877F6E\",\n componentBackgroundDisabled: \"#DED8C7\",\n componentForeground: \"#454138\",\n componentActive: \"#978F7E\",\n\n textPrimary: \"#454138\",\n textSecondary: \"#454138\",\n textHover: \"#CCC8B1\",\n textActive: \"#CCC8B1\",\n textDisabled: \"#BAB5A6\",\n },\n\n //Optional\n font: {\n fontFamily: \"helvetica, sans-serif\",\n fontSize: \"14px\",\n fontWeight: \"100\"\n },\n },\n\n\n};\n","\n/**\n * Linearly interpolates `t` between `v0` and `v1`.\n * https://en.wikipedia.org/wiki/Linear_interpolation\n * @param {*} v0 Lower bound\n * @param {*} v1 Upper bound\n * @param {*} t Progress (value between 0 and 1)\n * @returns Mapped number\n */\nfunction lerp(v0, v1, t) {\n return (1 - t) * v0 + t * v1;\n}\n\nexport { lerp };","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".guify-container {\\n position: relative;\\n left: 0;\\n width: 100%;\\n font-size: 11px;\\n z-index: 9999;\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/internal/container.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,kBAAkB;IAClB,OAAO;IACP,WAAW;IACX,eAAe;IACf,aAAa;AACjB\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n.guify-container {\\n position: relative;\\n left: 0;\\n width: 100%;\\n font-size: 11px;\\n z-index: 9999;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".guify-bar {\\n background-color: var(--color-menu-bar-background);\\n height: var(--size-menu-bar-height);\\n width: 100%;\\n opacity: 1.0;\\n position: relative;\\n cursor: default;\\n}\\n\\n.guify-bar-title {\\n color: var(--color-menu-bar-text);\\n text-align: center;\\n width: 100%;\\n position: absolute;\\n top: 0;\\n line-height: var(--size-menu-bar-height);\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n}\\n\\n.guify-bar-button {\\n text-align: center;\\n border: none;\\n cursor: pointer;\\n font-family: inherit;\\n height: 100%;\\n position: absolute;\\n top: 0;\\n color: var(--color-text-primary);\\n background-color: var(--color-component-background);\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n margin: 0;\\n\\n}\\n\\n/* Hide default accessibility outlines since we're providing our own visual feedback */\\n.guify-bar-button:focus {\\n outline: none;\\n}\\n.guify-bar-button::-moz-focus-inner {\\n border: 0;\\n}\\n\\n.guify-bar-button:hover,\\n.guify-bar-button:focus {\\n color: var(--color-text-hover);\\n background-color: var(--color-component-foreground);\\n}\\n\\n.guify-bar-button:active {\\n color: var(--color-text-active) !important;\\n background-color: var(--color-component-active) !important;\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/internal/menu-bar.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,kDAAkD;IAClD,mCAAmC;IACnC,WAAW;IACX,YAAY;IACZ,kBAAkB;IAClB,eAAe;AACnB;;AAEA;IACI,iCAAiC;IACjC,kBAAkB;IAClB,WAAW;IACX,kBAAkB;IAClB,MAAM;IACN,wCAAwC;IACxC,yBAAyB;IACzB,sBAAsB;IACtB,qBAAqB;IACrB,iBAAiB;AACrB;;AAEA;IACI,kBAAkB;IAClB,YAAY;IACZ,eAAe;IACf,oBAAoB;IACpB,YAAY;IACZ,kBAAkB;IAClB,MAAM;IACN,gCAAgC;IAChC,mDAAmD;IACnD,yBAAyB;IACzB,sBAAsB;IACtB,qBAAqB;IACrB,iBAAiB;IACjB,SAAS;;AAEb;;AAEA,sFAAsF;AACtF;IACI,aAAa;AACjB;AACA;IACI,SAAS;AACb;;AAEA;;IAEI,8BAA8B;IAC9B,mDAAmD;AACvD;;AAEA;IACI,0CAA0C;IAC1C,0DAA0D;AAC9D\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n.guify-bar {\\n background-color: var(--color-menu-bar-background);\\n height: var(--size-menu-bar-height);\\n width: 100%;\\n opacity: 1.0;\\n position: relative;\\n cursor: default;\\n}\\n\\n.guify-bar-title {\\n color: var(--color-menu-bar-text);\\n text-align: center;\\n width: 100%;\\n position: absolute;\\n top: 0;\\n line-height: var(--size-menu-bar-height);\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n}\\n\\n.guify-bar-button {\\n text-align: center;\\n border: none;\\n cursor: pointer;\\n font-family: inherit;\\n height: 100%;\\n position: absolute;\\n top: 0;\\n color: var(--color-text-primary);\\n background-color: var(--color-component-background);\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n margin: 0;\\n\\n}\\n\\n/* Hide default accessibility outlines since we're providing our own visual feedback */\\n.guify-bar-button:focus {\\n outline: none;\\n}\\n.guify-bar-button::-moz-focus-inner {\\n border: 0;\\n}\\n\\n.guify-bar-button:hover,\\n.guify-bar-button:focus {\\n color: var(--color-text-hover);\\n background-color: var(--color-component-foreground);\\n}\\n\\n.guify-bar-button:active {\\n color: var(--color-text-active) !important;\\n background-color: var(--color-component-active) !important;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".guify-panel-container {\\n position: absolute;\\n background: var(--color-panel-background);\\n}\\n\\n.guify-panel {\\n padding: 14px;\\n /* Last component will have a margin, so reduce padding to account for this */\\n padding-bottom: calc(14px - var(--size-component-spacing));\\n\\n /* all: initial; */\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n cursor: default;\\n text-align: left;\\n box-sizing: border-box;\\n}\\n\\n.guify-panel.guify-panel-hidden {\\n height: 0px;\\n display: none;\\n}\\n\\n.guify-panel * {\\n box-sizing: content-box;\\n box-sizing: initial;\\n -webkit-box-sizing: initial;\\n -moz-box-sizing: initial;\\n}\\n\\n.guify-panel input {\\n font-family: 'Hack';\\n font-size: 11px;\\n display: inline;\\n}\\n\\n.guify-panel a {\\n color: inherit;\\n text-decoration: none;\\n}\\n\\n.guify-panel-toggle-button {\\n position: absolute;\\n top: 0;\\n margin: 0;\\n padding: 0;\\n width: 15px;\\n height: 15px;\\n line-height: 15px;\\n text-align: center;\\n border: none;\\n cursor: pointer;\\n font-family: inherit;\\n color: var(--color-text-primary);\\n background-color: var(--color-component-background);\\n\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n\\n}\\n\\n/* Open/Close button styling */\\n.guify-panel-toggle-button svg {\\n fill-opacity: 0;\\n stroke-width: 3;\\n stroke: var(--color-component-foreground);\\n}\\n\\n/* Remove browser default outlines since we're providing our own */\\n.guify-panel-toggle-button:focus {\\n outline:none;\\n}\\n.guify-panel-toggle-button::-moz-focus-inner {\\n border: 0;\\n}\\n\\n.guify-panel-toggle-button:hover,\\n.guify-panel-toggle-button:focus {\\n color: var(--color-text-hover);\\n background-color: var(--color-component-foreground);\\n}\\n\\n.guify-panel-toggle-button:active {\\n color: var(--color-text-active);\\n background-color:var(--color-component-active);\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/internal/panel.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,kBAAkB;IAClB,yCAAyC;AAC7C;;AAEA;IACI,aAAa;IACb,6EAA6E;IAC7E,0DAA0D;;IAE1D,mBAAmB;IACnB,yBAAyB;IACzB,sBAAsB;IACtB,qBAAqB;IACrB,iBAAiB;IACjB,eAAe;IACf,gBAAgB;IAChB,sBAAsB;AAC1B;;AAEA;IACI,WAAW;IACX,aAAa;AACjB;;AAEA;IACI,uBAAmB;IAAnB,mBAAmB;IACnB,2BAA2B;IAC3B,wBAAwB;AAC5B;;AAEA;IACI,mBAAmB;IACnB,eAAe;IACf,eAAe;AACnB;;AAEA;IACI,cAAc;IACd,qBAAqB;AACzB;;AAEA;IACI,kBAAkB;IAClB,MAAM;IACN,SAAS;IACT,UAAU;IACV,WAAW;IACX,YAAY;IACZ,iBAAiB;IACjB,kBAAkB;IAClB,YAAY;IACZ,eAAe;IACf,oBAAoB;IACpB,gCAAgC;IAChC,mDAAmD;;IAEnD,yBAAyB;IACzB,sBAAsB;IACtB,qBAAqB;IACrB,iBAAiB;;AAErB;;AAEA,8BAA8B;AAC9B;IACI,eAAe;IACf,eAAe;IACf,yCAAyC;AAC7C;;AAEA,kEAAkE;AAClE;IACI,YAAY;AAChB;AACA;IACI,SAAS;AACb;;AAEA;;IAEI,8BAA8B;IAC9B,mDAAmD;AACvD;;AAEA;IACI,+BAA+B;IAC/B,8CAA8C;AAClD\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n.guify-panel-container {\\n position: absolute;\\n background: var(--color-panel-background);\\n}\\n\\n.guify-panel {\\n padding: 14px;\\n /* Last component will have a margin, so reduce padding to account for this */\\n padding-bottom: calc(14px - var(--size-component-spacing));\\n\\n /* all: initial; */\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n cursor: default;\\n text-align: left;\\n box-sizing: border-box;\\n}\\n\\n.guify-panel.guify-panel-hidden {\\n height: 0px;\\n display: none;\\n}\\n\\n.guify-panel * {\\n box-sizing: initial;\\n -webkit-box-sizing: initial;\\n -moz-box-sizing: initial;\\n}\\n\\n.guify-panel input {\\n font-family: 'Hack';\\n font-size: 11px;\\n display: inline;\\n}\\n\\n.guify-panel a {\\n color: inherit;\\n text-decoration: none;\\n}\\n\\n.guify-panel-toggle-button {\\n position: absolute;\\n top: 0;\\n margin: 0;\\n padding: 0;\\n width: 15px;\\n height: 15px;\\n line-height: 15px;\\n text-align: center;\\n border: none;\\n cursor: pointer;\\n font-family: inherit;\\n color: var(--color-text-primary);\\n background-color: var(--color-component-background);\\n\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n\\n}\\n\\n/* Open/Close button styling */\\n.guify-panel-toggle-button svg {\\n fill-opacity: 0;\\n stroke-width: 3;\\n stroke: var(--color-component-foreground);\\n}\\n\\n/* Remove browser default outlines since we're providing our own */\\n.guify-panel-toggle-button:focus {\\n outline:none;\\n}\\n.guify-panel-toggle-button::-moz-focus-inner {\\n border: 0;\\n}\\n\\n.guify-panel-toggle-button:hover,\\n.guify-panel-toggle-button:focus {\\n color: var(--color-text-hover);\\n background-color: var(--color-component-foreground);\\n}\\n\\n.guify-panel-toggle-button:active {\\n color: var(--color-text-active);\\n background-color:var(--color-component-active);\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".guify-toast-notification {\\n box-sizing: border-box;\\n position: relative;\\n width: 100%;\\n /* height: 20px; */\\n padding: 8px;\\n padding-left: 20px;\\n padding-right: 20px;\\n text-align: center;\\n font-family: 'Hack', monospace;\\n font-size: 11px;\\n}\\n\\n.guify-toast-area .guify-toast-notification:nth-child(odd) {\\n color: var(--color-text-primary);\\n background-color:var(--color-panel-background);\\n}\\n\\n.guify-toast-area .guify-toast-notification:nth-child(even) {\\n color: var(--color-text-primary);\\n background-color: var(--color-menu-bar-background);\\n}\\n\\n.guify-toast-close-button {\\n color: var(--color-text-primary);\\n background: transparent;\\n position: absolute;\\n text-align: center;\\n margin-top: auto;\\n margin-bottom: auto;\\n border: none;\\n cursor: pointer;\\n top: 0;\\n bottom: 0;\\n right: 8px;\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/internal/toast-area.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,sBAAsB;IACtB,kBAAkB;IAClB,WAAW;IACX,kBAAkB;IAClB,YAAY;IACZ,kBAAkB;IAClB,mBAAmB;IACnB,kBAAkB;IAClB,8BAA8B;IAC9B,eAAe;AACnB;;AAEA;IACI,gCAAgC;IAChC,8CAA8C;AAClD;;AAEA;IACI,gCAAgC;IAChC,kDAAkD;AACtD;;AAEA;IACI,gCAAgC;IAChC,uBAAuB;IACvB,kBAAkB;IAClB,kBAAkB;IAClB,gBAAgB;IAChB,mBAAmB;IACnB,YAAY;IACZ,eAAe;IACf,MAAM;IACN,SAAS;IACT,UAAU;AACd\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n.guify-toast-notification {\\n box-sizing: border-box;\\n position: relative;\\n width: 100%;\\n /* height: 20px; */\\n padding: 8px;\\n padding-left: 20px;\\n padding-right: 20px;\\n text-align: center;\\n font-family: 'Hack', monospace;\\n font-size: 11px;\\n}\\n\\n.guify-toast-area .guify-toast-notification:nth-child(odd) {\\n color: var(--color-text-primary);\\n background-color:var(--color-panel-background);\\n}\\n\\n.guify-toast-area .guify-toast-notification:nth-child(even) {\\n color: var(--color-text-primary);\\n background-color: var(--color-menu-bar-background);\\n}\\n\\n.guify-toast-close-button {\\n color: var(--color-text-primary);\\n background: transparent;\\n position: absolute;\\n text-align: center;\\n margin-top: auto;\\n margin-bottom: auto;\\n border: none;\\n cursor: pointer;\\n top: 0;\\n bottom: 0;\\n right: 8px;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".guify-component-container {\\n position: relative;\\n min-height: var(--size-component-height);\\n line-height: var(--size-component-height);\\n margin-bottom: var(--size-component-spacing);\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/partials/container.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,kBAAkB;IAClB,wCAAwC;IACxC,yCAAyC;IACzC,4CAA4C;AAChD\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n.guify-component-container {\\n position: relative;\\n min-height: var(--size-component-height);\\n line-height: var(--size-component-height);\\n margin-bottom: var(--size-component-spacing);\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".guify-component-label {\\n left: 0;\\n width: calc(var(--size-label-width) - 2%);\\n display: inline-block;\\n margin-right: 2%;\\n vertical-align: top;\\n min-height: var(--size-component-height);\\n line-height: var(--size-component-height);\\n\\n color: var(--color-text-primary);\\n}\\n\\n/* Disabled styles */\\n.disabled .guify-component-label {\\n color: var(--color-text-disabled);\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/partials/label.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,OAAO;IACP,yCAAyC;IACzC,qBAAqB;IACrB,gBAAgB;IAChB,mBAAmB;IACnB,wCAAwC;IACxC,yCAAyC;;IAEzC,gCAAgC;AACpC;;AAEA,oBAAoB;AACpB;IACI,iCAAiC;AACrC\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n.guify-component-label {\\n left: 0;\\n width: calc(var(--size-label-width) - 2%);\\n display: inline-block;\\n margin-right: 2%;\\n vertical-align: top;\\n min-height: var(--size-component-height);\\n line-height: var(--size-component-height);\\n\\n color: var(--color-text-primary);\\n}\\n\\n/* Disabled styles */\\n.disabled .guify-component-label {\\n color: var(--color-text-disabled);\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".guify-value-input {\\n position: absolute;\\n background-color: var(--color-component-background);\\n padding-left: 1%;\\n height: var(--size-component-height);\\n display: inline-block;\\n overflow: hidden;\\n border: none;\\n\\n font-family: 'Hack', monospace;\\n font-size: 11px;\\n color: var(--color-text-secondary);\\n -webkit-user-select: text;\\n -moz-user-select: text;\\n -ms-user-select: text;\\n user-select: text;\\n cursor: text;\\n line-height: var(--size-component-height);\\n word-break: break-all;\\n\\n box-sizing: border-box !important;\\n -moz-box-sizing: border-box !important;\\n -webkit-box-sizing: border-box !important;\\n}\\n\\n.guify-value-input-right {\\n right: 0 !important;\\n}\\n\\n.disabled .guify-value-input {\\n pointer-events: none;\\n background-color: var(--color-component-background-disabled);\\n color: var(--color-text-disabled);\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/partials/value.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,kBAAkB;IAClB,mDAAmD;IACnD,gBAAgB;IAChB,oCAAoC;IACpC,qBAAqB;IACrB,gBAAgB;IAChB,YAAY;;IAEZ,8BAA8B;IAC9B,eAAe;IACf,kCAAkC;IAClC,yBAAiB;OAAjB,sBAAiB;QAAjB,qBAAiB;YAAjB,iBAAiB;IACjB,YAAY;IACZ,yCAAyC;IACzC,qBAAqB;;IAErB,iCAAiC;IACjC,sCAAsC;IACtC,yCAAyC;AAC7C;;AAEA;IACI,mBAAmB;AACvB;;AAEA;IACI,oBAAoB;IACpB,4DAA4D;IAC5D,iCAAiC;AACrC\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n.guify-value-input {\\n position: absolute;\\n background-color: var(--color-component-background);\\n padding-left: 1%;\\n height: var(--size-component-height);\\n display: inline-block;\\n overflow: hidden;\\n border: none;\\n\\n font-family: 'Hack', monospace;\\n font-size: 11px;\\n color: var(--color-text-secondary);\\n user-select: text;\\n cursor: text;\\n line-height: var(--size-component-height);\\n word-break: break-all;\\n\\n box-sizing: border-box !important;\\n -moz-box-sizing: border-box !important;\\n -webkit-box-sizing: border-box !important;\\n}\\n\\n.guify-value-input-right {\\n right: 0 !important;\\n}\\n\\n.disabled .guify-value-input {\\n pointer-events: none;\\n background-color: var(--color-component-background-disabled);\\n color: var(--color-text-disabled);\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".guify-button {\\n box-sizing: border-box !important;\\n color: var(--color-text-secondary);\\n background-color: var(--color-component-background);\\n\\n position: absolute;\\n text-align: center;\\n height: var(--size-component-height);\\n line-height: var(--size-component-height);\\n padding-top: 0px;\\n padding-bottom: 0px;\\n width: calc(100% - var(--size-label-width));\\n border: none;\\n cursor: pointer;\\n right: 0;\\n font-family: inherit;\\n}\\n\\n.guify-button:focus {\\n outline:none;\\n}\\n.guify-button::-moz-focus-inner {\\n border:0;\\n}\\n\\n.guify-button:hover,\\n.guify-button:focus {\\n color: var(--color-text-hover);\\n background-color: var(--color-component-foreground);\\n}\\n\\n.guify-button:active {\\n color: var(--color-text-active) !important;\\n background-color: var(--color-component-active) !important;\\n}\\n\\n*.disabled > .guify-button {\\n pointer-events: none;\\n background-color: var(--color-component-background-disabled);\\n color: var(--color-text-disabled);\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/public/button.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,iCAAiC;IACjC,kCAAkC;IAClC,mDAAmD;;IAEnD,kBAAkB;IAClB,kBAAkB;IAClB,oCAAoC;IACpC,yCAAyC;IACzC,gBAAgB;IAChB,mBAAmB;IACnB,2CAA2C;IAC3C,YAAY;IACZ,eAAe;IACf,QAAQ;IACR,oBAAoB;AACxB;;AAEA;IACI,YAAY;AAChB;AACA;IACI,QAAQ;AACZ;;AAEA;;IAEI,8BAA8B;IAC9B,mDAAmD;AACvD;;AAEA;IACI,0CAA0C;IAC1C,0DAA0D;AAC9D;;AAEA;IACI,oBAAoB;IACpB,4DAA4D;IAC5D,iCAAiC;AACrC\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n.guify-button {\\n box-sizing: border-box !important;\\n color: var(--color-text-secondary);\\n background-color: var(--color-component-background);\\n\\n position: absolute;\\n text-align: center;\\n height: var(--size-component-height);\\n line-height: var(--size-component-height);\\n padding-top: 0px;\\n padding-bottom: 0px;\\n width: calc(100% - var(--size-label-width));\\n border: none;\\n cursor: pointer;\\n right: 0;\\n font-family: inherit;\\n}\\n\\n.guify-button:focus {\\n outline:none;\\n}\\n.guify-button::-moz-focus-inner {\\n border:0;\\n}\\n\\n.guify-button:hover,\\n.guify-button:focus {\\n color: var(--color-text-hover);\\n background-color: var(--color-component-foreground);\\n}\\n\\n.guify-button:active {\\n color: var(--color-text-active) !important;\\n background-color: var(--color-component-active) !important;\\n}\\n\\n*.disabled > .guify-button {\\n pointer-events: none;\\n background-color: var(--color-component-background-disabled);\\n color: var(--color-text-disabled);\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root {\\n --checkbox-border-width: 4px;\\n}\\n\\ninput[type=checkbox].guify-checkbox {\\n opacity: 0;\\n appearance: none;\\n -moz-appearance: none;\\n -webkit-appearance: none;\\n margin: 0;\\n border-radius: 0;\\n cursor: pointer;\\n}\\n\\ninput[type=checkbox].guify-checkbox + label {\\n margin: 0;\\n}\\n\\ninput[type=checkbox].guify-checkbox + label:before {\\n content: \\\"\\\";\\n display: inline-block;\\n width: var(--size-component-height);\\n height: var(--size-component-height);\\n padding: 0;\\n margin: 0;\\n vertical-align: middle;\\n background-color: var(--color-component-background);\\n border-radius: 0px;\\n cursor: pointer;\\n box-sizing: content-box;\\n -moz-box-sizing: content-box;\\n -webkit-box-sizing: content-box;\\n\\n}\\n\\n/* Hover style */\\ninput[type=checkbox].guify-checkbox:hover:not(:disabled) + label:before {\\n width: calc(var(--size-component-height) - (4px * 2));\\n width: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\\n height: calc(var(--size-component-height) - (4px * 2));\\n height: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\\n background-color: var(--color-component-background-hover);\\n border: solid 4px var(--color-component-background);\\n}\\n\\n/* Checked style */\\ninput[type=checkbox]:checked.guify-checkbox + label:before {\\n width: calc(var(--size-component-height) - (4px * 2));\\n width: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\\n height: calc(var(--size-component-height) - (4px * 2));\\n height: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\\n background-color: var(--color-component-foreground);\\n border: solid 4px var(--color-component-background);\\n border: solid var(--checkbox-border-width) var(--color-component-background);\\n}\\n\\n/* Focused and checked */\\ninput[type=checkbox]:checked.guify-checkbox:focus + label:before {\\n width: calc(var(--size-component-height) - (4px * 2));\\n width: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\\n height: calc(var(--size-component-height) - (4px * 2));\\n height: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\\n background-color: var(--color-component-foreground);\\n border: solid 4px var(--color-component-background-hover);\\n border: solid var(--checkbox-border-width) var(--color-component-background-hover);\\n}\\n\\n/* Focus and unchecked */\\ninput[type=checkbox].guify-checkbox:focus + label:before {\\n background-color: var(--color-component-background-hover);\\n}\\n\\n/* Disabled styles */\\n.disabled input[type=checkbox].guify-checkbox + label {\\n pointer-events: none;\\n}\\n.disabled input[type=\\\"checkbox\\\"].guify-checkbox + label::before {\\n pointer-events: none;\\n background-color: var(--color-component-background-disabled);\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/public/checkbox.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,4BAA4B;AAChC;;AAEA;IACI,UAAU;IACV,gBAAgB;IAChB,qBAAqB;IACrB,wBAAwB;IACxB,SAAS;IACT,gBAAgB;IAChB,eAAe;AACnB;;AAEA;IACI,SAAS;AACb;;AAEA;IACI,WAAW;IACX,qBAAqB;IACrB,mCAAmC;IACnC,oCAAoC;IACpC,UAAU;IACV,SAAS;IACT,sBAAsB;IACtB,mDAAmD;IACnD,kBAAkB;IAClB,eAAe;IACf,uBAAuB;IACvB,4BAA4B;IAC5B,+BAA+B;;AAEnC;;AAEA,gBAAgB;AAChB;IACI,qDAA8E;IAA9E,8EAA8E;IAC9E,sDAA+E;IAA/E,+EAA+E;IAC/E,yDAAyD;IACzD,mDAAmD;AACvD;;AAEA,kBAAkB;AAClB;IACI,qDAA8E;IAA9E,8EAA8E;IAC9E,sDAA+E;IAA/E,+EAA+E;IAC/E,mDAAmD;IACnD,mDAA4E;IAA5E,4EAA4E;AAChF;;AAEA,wBAAwB;AACxB;IACI,qDAA8E;IAA9E,8EAA8E;IAC9E,sDAA+E;IAA/E,+EAA+E;IAC/E,mDAAmD;IACnD,yDAAkF;IAAlF,kFAAkF;AACtF;;AAEA,wBAAwB;AACxB;IACI,yDAAyD;AAC7D;;AAEA,oBAAoB;AACpB;IACI,oBAAoB;AACxB;AACA;IACI,oBAAoB;IACpB,4DAA4D;AAChE\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n:root {\\n --checkbox-border-width: 4px;\\n}\\n\\ninput[type=checkbox].guify-checkbox {\\n opacity: 0;\\n appearance: none;\\n -moz-appearance: none;\\n -webkit-appearance: none;\\n margin: 0;\\n border-radius: 0;\\n cursor: pointer;\\n}\\n\\ninput[type=checkbox].guify-checkbox + label {\\n margin: 0;\\n}\\n\\ninput[type=checkbox].guify-checkbox + label:before {\\n content: \\\"\\\";\\n display: inline-block;\\n width: var(--size-component-height);\\n height: var(--size-component-height);\\n padding: 0;\\n margin: 0;\\n vertical-align: middle;\\n background-color: var(--color-component-background);\\n border-radius: 0px;\\n cursor: pointer;\\n box-sizing: content-box;\\n -moz-box-sizing: content-box;\\n -webkit-box-sizing: content-box;\\n\\n}\\n\\n/* Hover style */\\ninput[type=checkbox].guify-checkbox:hover:not(:disabled) + label:before {\\n width: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\\n height: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\\n background-color: var(--color-component-background-hover);\\n border: solid 4px var(--color-component-background);\\n}\\n\\n/* Checked style */\\ninput[type=checkbox]:checked.guify-checkbox + label:before {\\n width: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\\n height: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\\n background-color: var(--color-component-foreground);\\n border: solid var(--checkbox-border-width) var(--color-component-background);\\n}\\n\\n/* Focused and checked */\\ninput[type=checkbox]:checked.guify-checkbox:focus + label:before {\\n width: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\\n height: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\\n background-color: var(--color-component-foreground);\\n border: solid var(--checkbox-border-width) var(--color-component-background-hover);\\n}\\n\\n/* Focus and unchecked */\\ninput[type=checkbox].guify-checkbox:focus + label:before {\\n background-color: var(--color-component-background-hover);\\n}\\n\\n/* Disabled styles */\\n.disabled input[type=checkbox].guify-checkbox + label {\\n pointer-events: none;\\n}\\n.disabled input[type=\\\"checkbox\\\"].guify-checkbox + label::before {\\n pointer-events: none;\\n background-color: var(--color-component-background-disabled);\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/* Styling for simple-color-picker */\\n\\n.guify-color .Scp {\\n width: 125px;\\n height: 100px;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n position: relative;\\n z-index: 1000;\\n cursor: pointer;\\n}\\n.guify-color .Scp-saturation {\\n position: relative;\\n width: calc(100% - 25px);\\n height: 100%;\\n background: linear-gradient(to right, #fff 0%, #f00 100%);\\n float: left;\\n margin-right: 5px;\\n}\\n.guify-color .Scp-brightness {\\n width: 100%;\\n height: 100%;\\n background: linear-gradient(to top, #000 0%, rgba(255,255,255,0) 100%);\\n}\\n.guify-color .Scp-sbSelector {\\n border: 1px solid;\\n position: absolute;\\n width: 14px;\\n height: 14px;\\n background: #fff;\\n border-radius: 10px;\\n top: -7px;\\n left: -7px;\\n box-sizing: border-box;\\n z-index: 10;\\n}\\n.guify-color .Scp-hue {\\n width: 20px;\\n height: 100%;\\n position: relative;\\n float: left;\\n background: linear-gradient(to bottom, #f00 0%, #f0f 17%, #00f 34%, #0ff 50%, #0f0 67%, #ff0 84%, #f00 100%);\\n}\\n.guify-color .Scp-hSelector {\\n position: absolute;\\n background: #fff;\\n border-bottom: 1px solid #000;\\n right: -3px;\\n width: 10px;\\n height: 2px;\\n}\\n\\n/* Disabled styles */\\n.disabled .guify-color {\\n pointer-events: none;\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/public/color.css\"],\"names\":[],\"mappings\":\"AAEA,oCAAoC;;AAEpC;IACI,YAAY;IACZ,aAAa;IACb,yBAAyB;QACrB,sBAAsB;YAClB,qBAAqB;gBACjB,iBAAiB;IAC7B,kBAAkB;IAClB,aAAa;IACb,eAAe;AACnB;AACA;IACI,kBAAkB;IAClB,wBAAwB;IACxB,YAAY;IACZ,yDAAyD;IACzD,WAAW;IACX,iBAAiB;AACrB;AACA;IACI,WAAW;IACX,YAAY;IACZ,sEAAsE;AAC1E;AACA;IACI,iBAAiB;IACjB,kBAAkB;IAClB,WAAW;IACX,YAAY;IACZ,gBAAgB;IAChB,mBAAmB;IACnB,SAAS;IACT,UAAU;IACV,sBAAsB;IACtB,WAAW;AACf;AACA;IACI,WAAW;IACX,YAAY;IACZ,kBAAkB;IAClB,WAAW;IACX,4GAA4G;AAChH;AACA;IACI,kBAAkB;IAClB,gBAAgB;IAChB,6BAA6B;IAC7B,WAAW;IACX,WAAW;IACX,WAAW;AACf;;AAEA,oBAAoB;AACpB;IACI,oBAAoB;AACxB\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n/* Styling for simple-color-picker */\\n\\n.guify-color .Scp {\\n width: 125px;\\n height: 100px;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n position: relative;\\n z-index: 1000;\\n cursor: pointer;\\n}\\n.guify-color .Scp-saturation {\\n position: relative;\\n width: calc(100% - 25px);\\n height: 100%;\\n background: linear-gradient(to right, #fff 0%, #f00 100%);\\n float: left;\\n margin-right: 5px;\\n}\\n.guify-color .Scp-brightness {\\n width: 100%;\\n height: 100%;\\n background: linear-gradient(to top, #000 0%, rgba(255,255,255,0) 100%);\\n}\\n.guify-color .Scp-sbSelector {\\n border: 1px solid;\\n position: absolute;\\n width: 14px;\\n height: 14px;\\n background: #fff;\\n border-radius: 10px;\\n top: -7px;\\n left: -7px;\\n box-sizing: border-box;\\n z-index: 10;\\n}\\n.guify-color .Scp-hue {\\n width: 20px;\\n height: 100%;\\n position: relative;\\n float: left;\\n background: linear-gradient(to bottom, #f00 0%, #f0f 17%, #00f 34%, #0ff 50%, #0f0 67%, #ff0 84%, #f00 100%);\\n}\\n.guify-color .Scp-hSelector {\\n position: absolute;\\n background: #fff;\\n border-bottom: 1px solid #000;\\n right: -3px;\\n width: 10px;\\n height: 2px;\\n}\\n\\n/* Disabled styles */\\n.disabled .guify-color {\\n pointer-events: none;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".guify-display {\\n display: inline-block;\\n height: unset;\\n min-height: var(--size-component-height);\\n width: calc(100% - var(--size-label-width));\\n border: none;\\n color: var(--color-text-secondary);\\n font-family: inherit;\\n box-sizing: border-box;\\n -moz-box-sizing: border-box;\\n -webkit-box-sizing: border-box;\\n vertical-align: sub;\\n line-height: 1rem;\\n -webkit-user-select: text;\\n -moz-user-select: text;\\n -ms-user-select: text;\\n user-select: text;\\n}\\n\\n.disabled .guify-display {\\n color: var(--color-text-disabled);\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/public/display.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,qBAAqB;IACrB,aAAa;IACb,wCAAwC;IACxC,2CAA2C;IAC3C,YAAY;IACZ,kCAAkC;IAClC,oBAAoB;IACpB,sBAAsB;IACtB,2BAA2B;IAC3B,8BAA8B;IAC9B,mBAAmB;IACnB,iBAAiB;IACjB,yBAAiB;OAAjB,sBAAiB;QAAjB,qBAAiB;YAAjB,iBAAiB;AACrB;;AAEA;IACI,iCAAiC;AACrC\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n.guify-display {\\n display: inline-block;\\n height: unset;\\n min-height: var(--size-component-height);\\n width: calc(100% - var(--size-label-width));\\n border: none;\\n color: var(--color-text-secondary);\\n font-family: inherit;\\n box-sizing: border-box;\\n -moz-box-sizing: border-box;\\n -webkit-box-sizing: border-box;\\n vertical-align: sub;\\n line-height: 1rem;\\n user-select: text;\\n}\\n\\n.disabled .guify-display {\\n color: var(--color-text-disabled);\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".guify-file-container {\\n display: inline-block;\\n outline: none;\\n padding-top: 8px;\\n padding-bottom: 8px;\\n color: var(--color-text-primary);\\n background-color: var(--color-component-background);\\n cursor: pointer;\\n}\\n\\n.guify-file-container:hover:not(:disabled),\\n.guify-file-container:focus:not(:disabled) {\\n color: var(--color-text-hover);\\n background-color: var(--color-component-foreground);\\n}\\n\\n.guify-file-container:active:not(:disabled) {\\n color: var(--color-text-active) !important;\\n background-color: var(--color-component-active) !important;\\n}\\n\\n.guify-dragover:not(:disabled) {\\n background-color: var(--color-component-background);\\n box-shadow: inset 0 0 0 3px var(--color-component-foreground);\\n}\\n\\n.disabled.guify-file-container {\\n pointer-events: none;\\n color: var(--color-text-disabled) !important;\\n background-color: var(--color-component-background-disabled) !important;\\n box-shadow: inset 0 0 0 3px var(--color-component-background-disabled) !important;\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/public/file.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,qBAAqB;IACrB,aAAa;IACb,gBAAgB;IAChB,mBAAmB;IACnB,gCAAgC;IAChC,mDAAmD;IACnD,eAAe;AACnB;;AAEA;;IAEI,8BAA8B;IAC9B,mDAAmD;AACvD;;AAEA;IACI,0CAA0C;IAC1C,0DAA0D;AAC9D;;AAEA;IACI,mDAAmD;IACnD,6DAA6D;AACjE;;AAEA;IACI,oBAAoB;IACpB,4CAA4C;IAC5C,uEAAuE;IACvE,iFAAiF;AACrF\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n.guify-file-container {\\n display: inline-block;\\n outline: none;\\n padding-top: 8px;\\n padding-bottom: 8px;\\n color: var(--color-text-primary);\\n background-color: var(--color-component-background);\\n cursor: pointer;\\n}\\n\\n.guify-file-container:hover:not(:disabled),\\n.guify-file-container:focus:not(:disabled) {\\n color: var(--color-text-hover);\\n background-color: var(--color-component-foreground);\\n}\\n\\n.guify-file-container:active:not(:disabled) {\\n color: var(--color-text-active) !important;\\n background-color: var(--color-component-active) !important;\\n}\\n\\n.guify-dragover:not(:disabled) {\\n background-color: var(--color-component-background);\\n box-shadow: inset 0 0 0 3px var(--color-component-foreground);\\n}\\n\\n.disabled.guify-file-container {\\n pointer-events: none;\\n color: var(--color-text-disabled) !important;\\n background-color: var(--color-component-background-disabled) !important;\\n box-shadow: inset 0 0 0 3px var(--color-component-background-disabled) !important;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".guify-folder {\\n cursor: pointer;\\n padding-left: 0.5em;\\n color: var(--color-text-primary);\\n}\\n\\n.guify-folder div {\\n display: inline-block;\\n vertical-align: sub;\\n line-height: calc(var(--size-component-height) + 5px);\\n}\\n\\n.guify-folder:hover,\\n.guify-folder:focus {\\n color: var(--color-text-hover);\\n background-color: var(--color-component-foreground);\\n outline: none;\\n}\\n\\n\\n.guify-folder-contents {\\n display: block;\\n box-sizing: border-box;\\n padding-left: 14px;\\n margin-bottom: 5px;\\n border-left: 2px solid var(--color-component-background);\\n}\\n\\n.guify-folder-contents.guify-folder-closed {\\n height: 0;\\n display: none;\\n}\\n\\n.guify-folder .guify-folder-arrow {\\n width: 1.5em;\\n}\\n\\n/* Disabled styles */\\n\\n.guify-folder.disabled {\\n pointer-events: none;\\n color: var(--color-text-disabled);\\n}\\n\\n.guify-folder.disabled + .guify-folder-contents {\\n pointer-events: none;\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/public/folder.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,eAAe;IACf,mBAAmB;IACnB,gCAAgC;AACpC;;AAEA;IACI,qBAAqB;IACrB,mBAAmB;IACnB,qDAAqD;AACzD;;AAEA;;IAEI,8BAA8B;IAC9B,mDAAmD;IACnD,aAAa;AACjB;;;AAGA;IACI,cAAc;IACd,sBAAsB;IACtB,kBAAkB;IAClB,kBAAkB;IAClB,wDAAwD;AAC5D;;AAEA;IACI,SAAS;IACT,aAAa;AACjB;;AAEA;IACI,YAAY;AAChB;;AAEA,oBAAoB;;AAEpB;IACI,oBAAoB;IACpB,iCAAiC;AACrC;;AAEA;IACI,oBAAoB;AACxB\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n.guify-folder {\\n cursor: pointer;\\n padding-left: 0.5em;\\n color: var(--color-text-primary);\\n}\\n\\n.guify-folder div {\\n display: inline-block;\\n vertical-align: sub;\\n line-height: calc(var(--size-component-height) + 5px);\\n}\\n\\n.guify-folder:hover,\\n.guify-folder:focus {\\n color: var(--color-text-hover);\\n background-color: var(--color-component-foreground);\\n outline: none;\\n}\\n\\n\\n.guify-folder-contents {\\n display: block;\\n box-sizing: border-box;\\n padding-left: 14px;\\n margin-bottom: 5px;\\n border-left: 2px solid var(--color-component-background);\\n}\\n\\n.guify-folder-contents.guify-folder-closed {\\n height: 0;\\n display: none;\\n}\\n\\n.guify-folder .guify-folder-arrow {\\n width: 1.5em;\\n}\\n\\n/* Disabled styles */\\n\\n.guify-folder.disabled {\\n pointer-events: none;\\n color: var(--color-text-disabled);\\n}\\n\\n.guify-folder.disabled + .guify-folder-contents {\\n pointer-events: none;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root {\\n --interval-track-color: var(--color-component-background);\\n --interval-thumb-color: var(--color-component-foreground);\\n --interval-thumb-highlight: var(--color-component-active);\\n\\n --interval-track-color-disabled: var(--color-component-background-disabled);\\n --interval-thumb-color-disabled: var(--color-text-disabled);\\n}\\n\\n.guify-interval {\\n -webkit-appearance: none;\\n position: absolute;\\n height: var(--size-component-height);\\n margin: 0px 0;\\n width: 33%;\\n left: 54.5%;\\n background-color: var(--color-component-background);\\n background-color: var(--interval-track-color);\\n cursor: ew-resize;\\n\\n -webkit-touch-callout: none;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n}\\n.guify-interval-handle {\\n background-color: var(--color-component-foreground);\\n background-color: var(--interval-thumb-color);\\n position: absolute;\\n height: var(--size-component-height);\\n min-width: 1px;\\n}\\n.guify-interval-handle:focus {\\n background: var(--color-component-active);\\n background: var(--interval-thumb-highlight);\\n}\\n\\n.disabled .guify-interval {\\n pointer-events: none;\\n background-color: var(--color-component-background-disabled);\\n background-color: var(--interval-track-color-disabled);\\n}\\n\\n.disabled .guify-interval .guify-interval-handle {\\n background: var(--color-text-disabled);\\n background: var(--interval-thumb-color-disabled);\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/public/interval.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,yDAAyD;IACzD,yDAAyD;IACzD,yDAAyD;;IAEzD,2EAA2E;IAC3E,2DAA2D;AAC/D;;AAEA;IACI,wBAAwB;IACxB,kBAAkB;IAClB,oCAAoC;IACpC,aAAa;IACb,UAAU;IACV,WAAW;IACX,mDAA6C;IAA7C,6CAA6C;IAC7C,iBAAiB;;IAEjB,2BAA2B;IAC3B,yBAAyB;IAEzB,sBAAsB;IACtB,qBAAqB;IACrB,iBAAiB;AACrB;AACA;IACI,mDAA6C;IAA7C,6CAA6C;IAC7C,kBAAkB;IAClB,oCAAoC;IACpC,cAAc;AAClB;AACA;IACI,yCAA2C;IAA3C,2CAA2C;AAC/C;;AAEA;IACI,oBAAoB;IACpB,4DAAsD;IAAtD,sDAAsD;AAC1D;;AAEA;IACI,sCAAgD;IAAhD,gDAAgD;AACpD\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n:root {\\n --interval-track-color: var(--color-component-background);\\n --interval-thumb-color: var(--color-component-foreground);\\n --interval-thumb-highlight: var(--color-component-active);\\n\\n --interval-track-color-disabled: var(--color-component-background-disabled);\\n --interval-thumb-color-disabled: var(--color-text-disabled);\\n}\\n\\n.guify-interval {\\n -webkit-appearance: none;\\n position: absolute;\\n height: var(--size-component-height);\\n margin: 0px 0;\\n width: 33%;\\n left: 54.5%;\\n background-color: var(--interval-track-color);\\n cursor: ew-resize;\\n\\n -webkit-touch-callout: none;\\n -webkit-user-select: none;\\n -khtml-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n}\\n.guify-interval-handle {\\n background-color: var(--interval-thumb-color);\\n position: absolute;\\n height: var(--size-component-height);\\n min-width: 1px;\\n}\\n.guify-interval-handle:focus {\\n background: var(--interval-thumb-highlight);\\n}\\n\\n.disabled .guify-interval {\\n pointer-events: none;\\n background-color: var(--interval-track-color-disabled);\\n}\\n\\n.disabled .guify-interval .guify-interval-handle {\\n background: var(--interval-thumb-color-disabled);\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root {\\n --range-track-color: var(--color-component-background);\\n --range-thumb-color: var(--color-component-foreground);\\n --range-thumb-highlight: var(--color-component-active);\\n\\n --range-track-color-disabled: var(--color-component-background-disabled);\\n --range-thumb-color-disabled: var(--color-text-disabled);\\n}\\n\\ninput[type=range].guify-range {\\n position: absolute; /* Gets rid of weird spacing below slider that I can't figure out the source of, seems internal */\\n -webkit-appearance: none;\\n width: 100%;\\n height: var(--size-component-height);\\n margin: 0px 0;\\n padding: 0;\\n display: inline-block;\\n}\\n\\n.disabled input[type=range].guify-range {\\n pointer-events: none;\\n}\\n\\n/* Remove outlines since we'll be adding our own */\\ninput[type=range].guify-range:focus {\\n outline: none;\\n}\\ninput[type=range].guify-range::-moz-focus-outer {\\n border: 0;\\n}\\n\\n/* Webkit */\\ninput[type=range].guify-range::-webkit-slider-runnable-track {\\n width: 100%;\\n height: var(--size-component-height);\\n cursor: ew-resize;\\n background: var(--color-component-background);\\n background: var(--range-track-color);\\n}\\ninput[type=range].guify-range::-webkit-slider-thumb {\\n height: var(--size-component-height);\\n width: 10px;\\n background: var(--color-component-foreground);\\n background: var(--range-thumb-color);\\n cursor: ew-resize;\\n -webkit-appearance: none;\\n margin-top: 0px;\\n}\\ninput[type=range].guify-range:focus::-webkit-slider-runnable-track {\\n background: var(--color-component-active);\\n background: var(--range-thumb-highlight);\\n outline: none;\\n}\\n\\n.disabled input[type=range].guify-range::-webkit-slider-runnable-track { /* Disabled track */\\n pointer-events: none;\\n background: var(--color-component-background-disabled);\\n background: var(--range-track-color-disabled);\\n}\\n\\n.disabled input[type=range].guify-range::-webkit-slider-thumb { /* Disabled thumb */\\n pointer-events: none;\\n background: var(--color-text-disabled);\\n}\\n\\n/* Gecko */\\ninput[type=range].guify-range::-moz-range-track {\\n width: 100%;\\n height: var(--size-component-height);\\n cursor: ew-resize;\\n background: var(--color-component-background);\\n background: var(--range-track-color);\\n}\\ninput[type=range].guify-range:focus::-moz-range-track {\\n background: var(--color-component-active);\\n background: var(--range-thumb-highlight);\\n}\\ninput[type=range].guify-range::-moz-range-thumb {\\n height: var(--size-component-height);\\n width: 10px;\\n background: var(--color-component-foreground);\\n background: var(--range-thumb-color);\\n cursor: ew-resize;\\n border: none;\\n border-radius: 0;\\n}\\n\\n.disabled input[type=range].guify-range::-moz-range-track { /* Disabled track */\\n pointer-events: none;\\n background: var(--color-component-background-disabled);\\n background: var(--range-track-color-disabled);\\n}\\n\\n.disabled input[type=range].guify-range::-moz-range-thumb { /* Disabled thumb */\\n pointer-events: none;\\n background: var(--color-text-disabled);\\n background: var(--range-thumb-color-disabled);\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/public/range.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,sDAAsD;IACtD,sDAAsD;IACtD,sDAAsD;;IAEtD,wEAAwE;IACxE,wDAAwD;AAC5D;;AAEA;IACI,kBAAkB,EAAE,iGAAiG;IACrH,wBAAwB;IACxB,WAAW;IACX,oCAAoC;IACpC,aAAa;IACb,UAAU;IACV,qBAAqB;AACzB;;AAEA;IACI,oBAAoB;AACxB;;AAEA,kDAAkD;AAClD;IACI,aAAa;AACjB;AACA;IACI,SAAS;AACb;;AAEA,WAAW;AACX;IACI,WAAW;IACX,oCAAoC;IACpC,iBAAiB;IACjB,6CAAoC;IAApC,oCAAoC;AACxC;AACA;IACI,oCAAoC;IACpC,WAAW;IACX,6CAAoC;IAApC,oCAAoC;IACpC,iBAAiB;IACjB,wBAAwB;IACxB,eAAe;AACnB;AACA;IACI,yCAAwC;IAAxC,wCAAwC;IACxC,aAAa;AACjB;;AAEA,yEAAyE,mBAAmB;IACxF,oBAAoB;IACpB,sDAA6C;IAA7C,6CAA6C;AACjD;;AAEA,gEAAgE,mBAAmB;IAC/E,oBAAoB;IACpB,sCAAsC;AAC1C;;AAEA,UAAU;AACV;IACI,WAAW;IACX,oCAAoC;IACpC,iBAAiB;IACjB,6CAAoC;IAApC,oCAAoC;AACxC;AACA;IACI,yCAAwC;IAAxC,wCAAwC;AAC5C;AACA;IACI,oCAAoC;IACpC,WAAW;IACX,6CAAoC;IAApC,oCAAoC;IACpC,iBAAiB;IACjB,YAAY;IACZ,gBAAgB;AACpB;;AAEA,4DAA4D,mBAAmB;IAC3E,oBAAoB;IACpB,sDAA6C;IAA7C,6CAA6C;AACjD;;AAEA,4DAA4D,mBAAmB;IAC3E,oBAAoB;IACpB,sCAA6C;IAA7C,6CAA6C;AACjD\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n:root {\\n --range-track-color: var(--color-component-background);\\n --range-thumb-color: var(--color-component-foreground);\\n --range-thumb-highlight: var(--color-component-active);\\n\\n --range-track-color-disabled: var(--color-component-background-disabled);\\n --range-thumb-color-disabled: var(--color-text-disabled);\\n}\\n\\ninput[type=range].guify-range {\\n position: absolute; /* Gets rid of weird spacing below slider that I can't figure out the source of, seems internal */\\n -webkit-appearance: none;\\n width: 100%;\\n height: var(--size-component-height);\\n margin: 0px 0;\\n padding: 0;\\n display: inline-block;\\n}\\n\\n.disabled input[type=range].guify-range {\\n pointer-events: none;\\n}\\n\\n/* Remove outlines since we'll be adding our own */\\ninput[type=range].guify-range:focus {\\n outline: none;\\n}\\ninput[type=range].guify-range::-moz-focus-outer {\\n border: 0;\\n}\\n\\n/* Webkit */\\ninput[type=range].guify-range::-webkit-slider-runnable-track {\\n width: 100%;\\n height: var(--size-component-height);\\n cursor: ew-resize;\\n background: var(--range-track-color);\\n}\\ninput[type=range].guify-range::-webkit-slider-thumb {\\n height: var(--size-component-height);\\n width: 10px;\\n background: var(--range-thumb-color);\\n cursor: ew-resize;\\n -webkit-appearance: none;\\n margin-top: 0px;\\n}\\ninput[type=range].guify-range:focus::-webkit-slider-runnable-track {\\n background: var(--range-thumb-highlight);\\n outline: none;\\n}\\n\\n.disabled input[type=range].guify-range::-webkit-slider-runnable-track { /* Disabled track */\\n pointer-events: none;\\n background: var(--range-track-color-disabled);\\n}\\n\\n.disabled input[type=range].guify-range::-webkit-slider-thumb { /* Disabled thumb */\\n pointer-events: none;\\n background: var(--color-text-disabled);\\n}\\n\\n/* Gecko */\\ninput[type=range].guify-range::-moz-range-track {\\n width: 100%;\\n height: var(--size-component-height);\\n cursor: ew-resize;\\n background: var(--range-track-color);\\n}\\ninput[type=range].guify-range:focus::-moz-range-track {\\n background: var(--range-thumb-highlight);\\n}\\ninput[type=range].guify-range::-moz-range-thumb {\\n height: var(--size-component-height);\\n width: 10px;\\n background: var(--range-thumb-color);\\n cursor: ew-resize;\\n border: none;\\n border-radius: 0;\\n}\\n\\n.disabled input[type=range].guify-range::-moz-range-track { /* Disabled track */\\n pointer-events: none;\\n background: var(--range-track-color-disabled);\\n}\\n\\n.disabled input[type=range].guify-range::-moz-range-thumb { /* Disabled thumb */\\n pointer-events: none;\\n background: var(--range-thumb-color-disabled);\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".guify-select-dropdown {\\n display: inline-block;\\n position: absolute;\\n width: calc(100% - var(--size-label-width));\\n padding-left: 1.5%;\\n height: var(--size-component-height);\\n border: none;\\n border-radius: 0;\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n -o-appearance:none;\\n appearance: none;\\n font-family: inherit;\\n background-color: var(--color-component-background);\\n color: var(--color-text-secondary);\\n box-sizing: border-box !important;\\n -moz-box-sizing: border-box !important;\\n -webkit-box-sizing: border-box !important;\\n}\\n\\n/* Disable default outline since we're providing our own */\\n.guify-select-dropdown:focus {\\n outline: none;\\n}\\n.guify-select-dropdown::-moz-focus-inner {\\n border: 0;\\n}\\n\\n\\n.guify-select-dropdown:focus,\\n.guify-select-dropdown:hover {\\n color: var(--color-text-hover);\\n background-color: var(--color-component-foreground);\\n}\\n\\n.guify-select-dropdown::-ms-expand {\\n display:none;\\n}\\n.guify-select-triangle {\\n content: ' ';\\n border-right: 3px solid transparent;\\n border-left: 3px solid transparent;\\n line-height: var(--size-component-height);\\n position: absolute;\\n right: 2.5%;\\n z-index: 1;\\n pointer-events: none;\\n}\\n\\n.guify-select-triangle--up {\\n bottom: 55%;\\n border-bottom: 5px solid var(--color-text-secondary);\\n border-top: 0px transparent;\\n}\\n\\n.guify-select-triangle--down {\\n top: 55%;\\n border-top: 5px solid var(--color-text-secondary);\\n border-bottom: 0px transparent;\\n}\\n\\n.guify-select-triangle--up-highlight {\\n border-bottom-color: var(--color-text-hover);\\n}\\n\\n.guify-select-triangle--down-highlight {\\n border-top-color: var(--color-text-hover);\\n}\\n\\n/* Disabled styles */\\n\\n.disabled .guify-select-dropdown {\\n pointer-events: none;\\n color: var(--color-text-disabled);\\n background-color: var(--color-component-background-disabled);\\n}\\n\\n.disabled *[class^=\\\"guify-select-triangle\\\"] {\\n border-color: var(--color-text-disabled);\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/public/select.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,qBAAqB;IACrB,kBAAkB;IAClB,2CAA2C;IAC3C,kBAAkB;IAClB,oCAAoC;IACpC,YAAY;IACZ,gBAAgB;IAChB,wBAAwB;IACxB,qBAAqB;IACrB,kBAAkB;IAClB,gBAAgB;IAChB,oBAAoB;IACpB,mDAAmD;IACnD,kCAAkC;IAClC,iCAAiC;IACjC,sCAAsC;IACtC,yCAAyC;AAC7C;;AAEA,0DAA0D;AAC1D;IACI,aAAa;AACjB;AACA;IACI,SAAS;AACb;;;AAGA;;IAEI,8BAA8B;IAC9B,mDAAmD;AACvD;;AAEA;IACI,YAAY;AAChB;AACA;IACI,YAAY;IACZ,mCAAmC;IACnC,kCAAkC;IAClC,yCAAyC;IACzC,kBAAkB;IAClB,WAAW;IACX,UAAU;IACV,oBAAoB;AACxB;;AAEA;IACI,WAAW;IACX,oDAAoD;IACpD,2BAA2B;AAC/B;;AAEA;IACI,QAAQ;IACR,iDAAiD;IACjD,8BAA8B;AAClC;;AAEA;IACI,4CAA4C;AAChD;;AAEA;IACI,yCAAyC;AAC7C;;AAEA,oBAAoB;;AAEpB;IACI,oBAAoB;IACpB,iCAAiC;IACjC,4DAA4D;AAChE;;AAEA;IACI,wCAAwC;AAC5C\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n.guify-select-dropdown {\\n display: inline-block;\\n position: absolute;\\n width: calc(100% - var(--size-label-width));\\n padding-left: 1.5%;\\n height: var(--size-component-height);\\n border: none;\\n border-radius: 0;\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n -o-appearance:none;\\n appearance: none;\\n font-family: inherit;\\n background-color: var(--color-component-background);\\n color: var(--color-text-secondary);\\n box-sizing: border-box !important;\\n -moz-box-sizing: border-box !important;\\n -webkit-box-sizing: border-box !important;\\n}\\n\\n/* Disable default outline since we're providing our own */\\n.guify-select-dropdown:focus {\\n outline: none;\\n}\\n.guify-select-dropdown::-moz-focus-inner {\\n border: 0;\\n}\\n\\n\\n.guify-select-dropdown:focus,\\n.guify-select-dropdown:hover {\\n color: var(--color-text-hover);\\n background-color: var(--color-component-foreground);\\n}\\n\\n.guify-select-dropdown::-ms-expand {\\n display:none;\\n}\\n.guify-select-triangle {\\n content: ' ';\\n border-right: 3px solid transparent;\\n border-left: 3px solid transparent;\\n line-height: var(--size-component-height);\\n position: absolute;\\n right: 2.5%;\\n z-index: 1;\\n pointer-events: none;\\n}\\n\\n.guify-select-triangle--up {\\n bottom: 55%;\\n border-bottom: 5px solid var(--color-text-secondary);\\n border-top: 0px transparent;\\n}\\n\\n.guify-select-triangle--down {\\n top: 55%;\\n border-top: 5px solid var(--color-text-secondary);\\n border-bottom: 0px transparent;\\n}\\n\\n.guify-select-triangle--up-highlight {\\n border-bottom-color: var(--color-text-hover);\\n}\\n\\n.guify-select-triangle--down-highlight {\\n border-top-color: var(--color-text-hover);\\n}\\n\\n/* Disabled styles */\\n\\n.disabled .guify-select-dropdown {\\n pointer-events: none;\\n color: var(--color-text-disabled);\\n background-color: var(--color-component-background-disabled);\\n}\\n\\n.disabled *[class^=\\\"guify-select-triangle\\\"] {\\n border-color: var(--color-text-disabled);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".guify-text-input {\\n position: absolute;\\n padding-left: 6px;\\n height: var(--size-component-height);\\n width: calc(100% - var(--size-label-width));\\n border: none;\\n background: var(--color-component-background);\\n color: var(--color-text-secondary);\\n font-family: inherit;\\n box-sizing: border-box !important;\\n resize: vertical;\\n}\\n\\n.guify-text-input:focus {\\n outline: none;\\n}\\n\\n.disabled .guify-text-input {\\n pointer-events: none;\\n color: var(--color-text-disabled);\\n background-color: var(--color-component-background-disabled);\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/public/text.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,kBAAkB;IAClB,iBAAiB;IACjB,oCAAoC;IACpC,2CAA2C;IAC3C,YAAY;IACZ,6CAA6C;IAC7C,kCAAkC;IAClC,oBAAoB;IACpB,iCAAiC;IACjC,gBAAgB;AACpB;;AAEA;IACI,aAAa;AACjB;;AAEA;IACI,oBAAoB;IACpB,iCAAiC;IACjC,4DAA4D;AAChE\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n.guify-text-input {\\n position: absolute;\\n padding-left: 6px;\\n height: var(--size-component-height);\\n width: calc(100% - var(--size-label-width));\\n border: none;\\n background: var(--color-component-background);\\n color: var(--color-text-secondary);\\n font-family: inherit;\\n box-sizing: border-box !important;\\n resize: vertical;\\n}\\n\\n.guify-text-input:focus {\\n outline: none;\\n}\\n\\n.disabled .guify-text-input {\\n pointer-events: none;\\n color: var(--color-text-disabled);\\n background-color: var(--color-component-background-disabled);\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".guify-title {\\n box-sizing: border-box;\\n width: 100%;\\n display: inline-block;\\n height: var(--size-component-height);\\n vertical-align: top;\\n}\\n\\n.guify-title-text {\\n display: inline-block;\\n height: var(--size-component-height);\\n line-height: var(--size-component-height);\\n padding-left: 5px;\\n padding-right: 5px;\\n background-color: var(--color-text-primary);\\n color: var(--color-panel-background);\\n}\\n\\n/* Disabled style */\\n\\n.disabled .guify-title-text {\\n background-color: var(--color-text-disabled);\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/public/title.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,sBAAsB;IACtB,WAAW;IACX,qBAAqB;IACrB,oCAAoC;IACpC,mBAAmB;AACvB;;AAEA;IACI,qBAAqB;IACrB,oCAAoC;IACpC,yCAAyC;IACzC,iBAAiB;IACjB,kBAAkB;IAClB,2CAA2C;IAC3C,oCAAoC;AACxC;;AAEA,mBAAmB;;AAEnB;IACI,4CAA4C;AAChD\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n.guify-title {\\n box-sizing: border-box;\\n width: 100%;\\n display: inline-block;\\n height: var(--size-component-height);\\n vertical-align: top;\\n}\\n\\n.guify-title-text {\\n display: inline-block;\\n height: var(--size-component-height);\\n line-height: var(--size-component-height);\\n padding-left: 5px;\\n padding-right: 5px;\\n background-color: var(--color-text-primary);\\n color: var(--color-panel-background);\\n}\\n\\n/* Disabled style */\\n\\n.disabled .guify-title-text {\\n background-color: var(--color-text-disabled);\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root {\\n --color-menu-bar-background: \\\"black\\\";\\n --color-menu-bar-text: \\\"black\\\";\\n --color-panel-background: \\\"black\\\";\\n\\n --color-component-background: \\\"black\\\";\\n --color-component-background-hover: \\\"black\\\";\\n --color-component-background-disabled: \\\"black\\\";\\n --color-component-foreground: \\\"black\\\";\\n --color-component-active: \\\"black\\\";\\n\\n --color-text-primary: \\\"black\\\";\\n --color-text-secondary: \\\"black\\\";\\n --color-text-hover: \\\"black\\\";\\n --color-text-active: \\\"black\\\";\\n --color-text-disabled: \\\"black\\\";\\n\\n --size-menu-bar-height: 25px;\\n --size-component-height: 2rem;\\n --size-component-spacing: 5px;\\n --size-label-width: 42%;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/variables.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,oCAAoC;IACpC,8BAA8B;IAC9B,iCAAiC;;IAEjC,qCAAqC;IACrC,2CAA2C;IAC3C,8CAA8C;IAC9C,qCAAqC;IACrC,iCAAiC;;IAEjC,6BAA6B;IAC7B,+BAA+B;IAC/B,2BAA2B;IAC3B,4BAA4B;IAC5B,8BAA8B;;IAE9B,4BAA4B;IAC5B,6BAA6B;IAC7B,6BAA6B;IAC7B,uBAAuB;AAC3B\",\"sourcesContent\":[\":root {\\n --color-menu-bar-background: \\\"black\\\";\\n --color-menu-bar-text: \\\"black\\\";\\n --color-panel-background: \\\"black\\\";\\n\\n --color-component-background: \\\"black\\\";\\n --color-component-background-hover: \\\"black\\\";\\n --color-component-background-disabled: \\\"black\\\";\\n --color-component-foreground: \\\"black\\\";\\n --color-component-active: \\\"black\\\";\\n\\n --color-text-primary: \\\"black\\\";\\n --color-text-secondary: \\\"black\\\";\\n --color-text-hover: \\\"black\\\";\\n --color-text-active: \\\"black\\\";\\n --color-text-disabled: \\\"black\\\";\\n\\n --size-menu-bar-height: 25px;\\n --size-component-height: 2rem;\\n --size-component-spacing: 5px;\\n --size-label-width: 42%;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n\n content += cssWithMappingToString(item);\n\n if (needLayer) {\n content += \"}\";\n }\n\n if (item[2]) {\n content += \"}\";\n }\n\n if (item[4]) {\n content += \"}\";\n }\n\n return content;\n }).join(\"\");\n }; // import a list of modules into the list\n\n\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n\n return [content].join(\"\\n\");\n};","var prefix = require('prefix-style')\nvar toCamelCase = require('to-camel-case')\nvar cache = { 'float': 'cssFloat' }\nvar addPxToStyle = require('add-px-to-style')\n\nfunction style (element, property, value) {\n var camel = cache[property]\n if (typeof camel === 'undefined') {\n camel = detect(property)\n }\n\n // may be false if CSS prop is unsupported\n if (camel) {\n if (value === undefined) {\n return element.style[camel]\n }\n\n element.style[camel] = addPxToStyle(camel, value)\n }\n}\n\nfunction each (element, properties) {\n for (var k in properties) {\n if (properties.hasOwnProperty(k)) {\n style(element, k, properties[k])\n }\n }\n}\n\nfunction detect (cssProp) {\n var camel = toCamelCase(cssProp)\n var result = prefix(camel)\n cache[camel] = cache[cssProp] = cache[result] = result\n return result\n}\n\nfunction set () {\n if (arguments.length === 2) {\n if (typeof arguments[1] === 'string') {\n arguments[0].style.cssText = arguments[1]\n } else {\n each(arguments[0], arguments[1])\n }\n } else {\n style(arguments[0], arguments[1], arguments[2])\n }\n}\n\nmodule.exports = set\nmodule.exports.set = set\n\nmodule.exports.get = function (element, properties) {\n if (Array.isArray(properties)) {\n return properties.reduce(function (obj, prop) {\n obj[prop] = style(element, prop || '')\n return obj\n }, {})\n } else {\n return style(element, properties || '')\n }\n}\n","var containers = []; // will store container HTMLElement references\nvar styleElements = []; // will store {prepend: HTMLElement, append: HTMLElement}\n\nvar usage = 'insert-css: You need to provide a CSS string. Usage: insertCss(cssString[, options]).';\n\nfunction insertCss(css, options) {\n options = options || {};\n\n if (css === undefined) {\n throw new Error(usage);\n }\n\n var position = options.prepend === true ? 'prepend' : 'append';\n var container = options.container !== undefined ? options.container : document.querySelector('head');\n var containerId = containers.indexOf(container);\n\n // first time we see this container, create the necessary entries\n if (containerId === -1) {\n containerId = containers.push(container) - 1;\n styleElements[containerId] = {};\n }\n\n // try to get the correponding container + position styleElement, create it otherwise\n var styleElement;\n\n if (styleElements[containerId] !== undefined && styleElements[containerId][position] !== undefined) {\n styleElement = styleElements[containerId][position];\n } else {\n styleElement = styleElements[containerId][position] = createStyleElement();\n\n if (position === 'prepend') {\n container.insertBefore(styleElement, container.childNodes[0]);\n } else {\n container.appendChild(styleElement);\n }\n }\n\n // strip potential UTF-8 BOM if css was read from a file\n if (css.charCodeAt(0) === 0xFEFF) { css = css.substr(1, css.length); }\n\n // actually add the stylesheet\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText += css\n } else {\n styleElement.textContent += css;\n }\n\n return styleElement;\n};\n\nfunction createStyleElement() {\n var styleElement = document.createElement('style');\n styleElement.setAttribute('type', 'text/css');\n return styleElement;\n}\n\nmodule.exports = insertCss;\nmodule.exports.insertCss = insertCss;\n","(function(root) {\n 'use strict';\n\n function isNumeric(v) {\n if (typeof v === 'number' && !isNaN(v)) return true;\n v = (v||'').toString().trim();\n if (!v) return false;\n return !isNaN(v);\n }\n\n if (typeof exports !== 'undefined') {\n if (typeof module !== 'undefined' && module.exports) {\n exports = module.exports = isNumeric;\n }\n exports.isNumeric = isNumeric;\n } else if (typeof define === 'function' && define.amd) {\n define([], function() {\n return isNumeric;\n });\n } else {\n root.isNumeric = isNumeric;\n }\n\n})(this);\n","var div = null\nvar prefixes = [ 'Webkit', 'Moz', 'O', 'ms' ]\n\nmodule.exports = function prefixStyle (prop) {\n // re-use a dummy div\n if (!div) {\n div = document.createElement('div')\n }\n\n var style = div.style\n\n // prop exists without prefix\n if (prop in style) {\n return prop\n }\n\n // borderRadius -> BorderRadius\n var titleCase = prop.charAt(0).toUpperCase() + prop.slice(1)\n\n // find the vendor-prefixed prop\n for (var i = prefixes.length; i >= 0; i--) {\n var name = prefixes[i] + titleCase\n // e.g. WebkitBorderRadius or webkitBorderRadius\n if (name in style) {\n return name\n }\n }\n\n return false\n}\n","/*!\n* screenfull\n* v5.0.0 - 2019-09-09\n* (c) Sindre Sorhus; MIT License\n*/\n(function () {\n\t'use strict';\n\n\tvar document = typeof window !== 'undefined' && typeof window.document !== 'undefined' ? window.document : {};\n\tvar isCommonjs = typeof module !== 'undefined' && module.exports;\n\n\tvar fn = (function () {\n\t\tvar val;\n\n\t\tvar fnMap = [\n\t\t\t[\n\t\t\t\t'requestFullscreen',\n\t\t\t\t'exitFullscreen',\n\t\t\t\t'fullscreenElement',\n\t\t\t\t'fullscreenEnabled',\n\t\t\t\t'fullscreenchange',\n\t\t\t\t'fullscreenerror'\n\t\t\t],\n\t\t\t// New WebKit\n\t\t\t[\n\t\t\t\t'webkitRequestFullscreen',\n\t\t\t\t'webkitExitFullscreen',\n\t\t\t\t'webkitFullscreenElement',\n\t\t\t\t'webkitFullscreenEnabled',\n\t\t\t\t'webkitfullscreenchange',\n\t\t\t\t'webkitfullscreenerror'\n\n\t\t\t],\n\t\t\t// Old WebKit\n\t\t\t[\n\t\t\t\t'webkitRequestFullScreen',\n\t\t\t\t'webkitCancelFullScreen',\n\t\t\t\t'webkitCurrentFullScreenElement',\n\t\t\t\t'webkitCancelFullScreen',\n\t\t\t\t'webkitfullscreenchange',\n\t\t\t\t'webkitfullscreenerror'\n\n\t\t\t],\n\t\t\t[\n\t\t\t\t'mozRequestFullScreen',\n\t\t\t\t'mozCancelFullScreen',\n\t\t\t\t'mozFullScreenElement',\n\t\t\t\t'mozFullScreenEnabled',\n\t\t\t\t'mozfullscreenchange',\n\t\t\t\t'mozfullscreenerror'\n\t\t\t],\n\t\t\t[\n\t\t\t\t'msRequestFullscreen',\n\t\t\t\t'msExitFullscreen',\n\t\t\t\t'msFullscreenElement',\n\t\t\t\t'msFullscreenEnabled',\n\t\t\t\t'MSFullscreenChange',\n\t\t\t\t'MSFullscreenError'\n\t\t\t]\n\t\t];\n\n\t\tvar i = 0;\n\t\tvar l = fnMap.length;\n\t\tvar ret = {};\n\n\t\tfor (; i < l; i++) {\n\t\t\tval = fnMap[i];\n\t\t\tif (val && val[1] in document) {\n\t\t\t\tfor (i = 0; i < val.length; i++) {\n\t\t\t\t\tret[fnMap[0][i]] = val[i];\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t})();\n\n\tvar eventNameMap = {\n\t\tchange: fn.fullscreenchange,\n\t\terror: fn.fullscreenerror\n\t};\n\n\tvar screenfull = {\n\t\trequest: function (element) {\n\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\tvar onFullScreenEntered = function () {\n\t\t\t\t\tthis.off('change', onFullScreenEntered);\n\t\t\t\t\tresolve();\n\t\t\t\t}.bind(this);\n\n\t\t\t\tthis.on('change', onFullScreenEntered);\n\n\t\t\t\telement = element || document.documentElement;\n\n\t\t\t\tPromise.resolve(element[fn.requestFullscreen]()).catch(reject);\n\t\t\t}.bind(this));\n\t\t},\n\t\texit: function () {\n\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\tif (!this.isFullscreen) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar onFullScreenExit = function () {\n\t\t\t\t\tthis.off('change', onFullScreenExit);\n\t\t\t\t\tresolve();\n\t\t\t\t}.bind(this);\n\n\t\t\t\tthis.on('change', onFullScreenExit);\n\n\t\t\t\tPromise.resolve(document[fn.exitFullscreen]()).catch(reject);\n\t\t\t}.bind(this));\n\t\t},\n\t\ttoggle: function (element) {\n\t\t\treturn this.isFullscreen ? this.exit() : this.request(element);\n\t\t},\n\t\tonchange: function (callback) {\n\t\t\tthis.on('change', callback);\n\t\t},\n\t\tonerror: function (callback) {\n\t\t\tthis.on('error', callback);\n\t\t},\n\t\ton: function (event, callback) {\n\t\t\tvar eventName = eventNameMap[event];\n\t\t\tif (eventName) {\n\t\t\t\tdocument.addEventListener(eventName, callback, false);\n\t\t\t}\n\t\t},\n\t\toff: function (event, callback) {\n\t\t\tvar eventName = eventNameMap[event];\n\t\t\tif (eventName) {\n\t\t\t\tdocument.removeEventListener(eventName, callback, false);\n\t\t\t}\n\t\t},\n\t\traw: fn\n\t};\n\n\tif (!fn) {\n\t\tif (isCommonjs) {\n\t\t\tmodule.exports = {isEnabled: false};\n\t\t} else {\n\t\t\twindow.screenfull = {isEnabled: false};\n\t\t}\n\n\t\treturn;\n\t}\n\n\tObject.defineProperties(screenfull, {\n\t\tisFullscreen: {\n\t\t\tget: function () {\n\t\t\t\treturn Boolean(document[fn.fullscreenElement]);\n\t\t\t}\n\t\t},\n\t\telement: {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\treturn document[fn.fullscreenElement];\n\t\t\t}\n\t\t},\n\t\tisEnabled: {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\t// Coerce to boolean in case of old WebKit\n\t\t\t\treturn Boolean(document[fn.fullscreenEnabled]);\n\t\t\t}\n\t\t}\n\t});\n\n\tif (isCommonjs) {\n\t\tmodule.exports = screenfull;\n\t} else {\n\t\twindow.screenfull = screenfull;\n\t}\n})();\n","import{insertCss as t}from\"insert-css\";function e(t,e){for(var i=0;i>16&255)/255,g:(t>>8&255)/255,b:(255&t)/255}}(this._hexNumber),i=e.g,s=e.b;this._rgba.r=e.r,this._rgba.g=i,this._rgba.b=s;var n=function(t){var e,i=t.r,o=t.g,s=t.b,n=Math.max(i,o,s),r=Math.min(i,o,s),h=n-r,u=0===n?0:h/n,a=n;if(n==r)e=0;else{switch(n){case i:e=(o-s)/h+(o\\n
\\n
\\n \\n
\\n
\\n
\\n ',this.$saturation=this.$el.querySelector(\".Scp-saturation\"),this.$hue=this.$el.querySelector(\".Scp-hue\"),this.$sbSelector=this.$el.querySelector(\".Scp-sbSelector\"),this.$hSelector=this.$el.querySelector(\".Scp-hSelector\"),this.$saturation.addEventListener(\"mousedown\",this._onSaturationMouseDown),this.$saturation.addEventListener(\"touchstart\",this._onSaturationMouseDown),this.$hue.addEventListener(\"mousedown\",this._onHueMouseDown),this.$hue.addEventListener(\"touchstart\",this._onHueMouseDown),t.el&&this.appendTo(t.el),t.background&&this.setBackgroundColor(t.background),t.widthUnits&&(this._widthUnits=t.widthUnits),t.heightUnits&&(this._heightUnits=t.heightUnits),this.setSize(t.width||175,t.height||150),this.setColor(t.color)}var e=t.prototype;return e.appendTo=function(t){return\"string\"==typeof t?document.querySelector(t).appendChild(this.$el):t.appendChild(this.$el),this},e.remove=function(){this._callbacks=[],this._onSaturationMouseUp(),this._onHueMouseUp(),this.$saturation.removeEventListener(\"mousedown\",this._onSaturationMouseDown),this.$saturation.removeEventListener(\"touchstart\",this._onSaturationMouseDown),this.$hue.removeEventListener(\"mousedown\",this._onHueMouseDown),this.$hue.removeEventListener(\"touchstart\",this._onHueMouseDown),this.$el.parentNode&&this.$el.parentNode.removeChild(this.$el)},e.setColor=function(t){this._inputIsNumber=o(t),this.color.fromHex(t);var e=this.color.hsv,i=e.h,s=e.s,n=e.v;return isNaN(i)||(this.hue=i),this._moveSelectorTo(this._saturationWidth*s,(1-n)*this._hueHeight),this._moveHueTo((1-this.hue)*this._hueHeight),this._updateHue(),this},e.setSize=function(t,e){return this.width=t,this.height=e,this.$el.style.width=this.width+this._widthUnits,this.$el.style.height=this.height+this._heightUnits,this._saturationWidth=this.width-25,this.$saturation.style.width=this._saturationWidth+\"px\",this._hueHeight=this.height,this._maxHue=this._hueHeight-2,this},e.setBackgroundColor=function(t){return this.backgroundColor.fromHex(t),this.$el.style.padding=\"5px\",this.$el.style.background=this.backgroundColor.hexString,this},e.setNoBackground=function(){return this.$el.style.padding=\"0px\",this.$el.style.background=\"none\",this},e.onChange=function(t){return this._callbacks.indexOf(t)<0&&(this._callbacks.push(t),t(this.getHexString())),this},e.getColor=function(){return this._inputIsNumber?this.getHexNumber():this.getHexString()},e.getHexString=function(){return this.color.hexString.toUpperCase()},e.getHexNumber=function(){return this.color.hex},e.getRGB=function(){return this.color.rgb},e.getHSV=function(){return this.color.hsv},e.isDark=function(){return this.color.isDark},e.isLight=function(){return this.color.isLight},e._moveSelectorTo=function(t,e){this.position.x=s(t,0,this._saturationWidth),this.position.y=s(e,0,this._hueHeight),this.$sbSelector.style.transform=\"translate(\"+this.position.x+\"px, \"+this.position.y+\"px)\"},e._updateColorFromPosition=function(){this.color.fromHsv({h:this.hue,s:this.position.x/this._saturationWidth,v:1-this.position.y/this._hueHeight}),this._updateColor()},e._moveHueTo=function(t){this._huePosition=s(t,0,this._maxHue),this.$hSelector.style.transform=\"translateY(\"+this._huePosition+\"px)\"},e._updateHueFromPosition=function(){var t=this.getHSV();this.hue=1-this._huePosition/this._maxHue,this.color.fromHsv({h:this.hue,s:t.s,v:t.v}),this._updateHue()},e._updateHue=function(){this.hueColor.fromHsv({h:this.hue,s:1,v:1}),this.$saturation.style.background=\"linear-gradient(to right, #fff, \"+this.hueColor.hexString+\")\",this._updateColor()},e._updateColor=function(){this.$sbSelector.style.background=this.getHexString(),this.$sbSelector.style.borderColor=this.isDark()?\"#fff\":\"#000\",this._triggerChange()},e._triggerChange=function(){var t=this;this._callbacks.forEach(function(e){return e(t.getHexString())})},i(t,[{key:\"isChoosing\",get:function(){return this._isChoosing}}]),t}();t(\".Scp{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative}.Scp-saturation{position:relative;height:100%;background:linear-gradient(90deg,#fff,red);float:left;margin-right:5px}.Scp-brightness{width:100%;height:100%;background:linear-gradient(hsla(0,0%,100%,0),#000)}.Scp-sbSelector{border:2px solid #fff;position:absolute;width:14px;height:14px;background:#fff;border-radius:10px;top:-7px;left:-7px;box-sizing:border-box;z-index:10}.Scp-hue{width:20px;height:100%;position:relative;float:left;background:linear-gradient(red,#f0f 17%,#00f 34%,#0ff 50%,#0f0 67%,#ff0 84%,red)}.Scp-hSelector{position:absolute;background:#fff;border-bottom:1px solid #000;right:-3px;width:10px;height:2px}\");export default a;\n//# sourceMappingURL=simple-color-picker.module.js.map\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./container.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./container.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./menu-bar.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./menu-bar.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./panel.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./panel.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./toast-area.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./toast-area.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./container.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./container.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./label.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./label.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./value.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./value.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./button.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./button.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./checkbox.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./checkbox.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./color.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./color.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./display.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./display.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./file.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./file.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./folder.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./folder.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./interval.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./interval.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./range.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./range.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./select.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./select.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./text.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./text.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./title.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./title.css\";\n export default content && content.locals ? content.locals : undefined;\n","\"use strict\";\n\nvar stylesInDOM = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n\n return updater;\n}\n\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n\n stylesInDOM.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n/* istanbul ignore next */\n\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n}\n/* istanbul ignore next */\n\n\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n}\n\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\n\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\n\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n\n var needLayer = typeof obj.layer !== \"undefined\";\n\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n\n css += obj.css;\n\n if (needLayer) {\n css += \"}\";\n }\n\n if (obj.media) {\n css += \"}\";\n }\n\n if (obj.supports) {\n css += \"}\";\n }\n\n var sourceMap = obj.sourceMap;\n\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n options.styleTagTransform(css, styleElement, options.options);\n}\n\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n\n styleElement.parentNode.removeChild(styleElement);\n}\n/* istanbul ignore next */\n\n\nfunction domAPI(options) {\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\n\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n\n styleElement.appendChild(document.createTextNode(css));\n }\n}\n\nmodule.exports = styleTagTransform;","// TinyColor v1.4.1\n// https://github.com/bgrins/TinyColor\n// Brian Grinstead, MIT License\n\n(function(Math) {\n\nvar trimLeft = /^\\s+/,\n trimRight = /\\s+$/,\n tinyCounter = 0,\n mathRound = Math.round,\n mathMin = Math.min,\n mathMax = Math.max,\n mathRandom = Math.random;\n\nfunction tinycolor (color, opts) {\n\n color = (color) ? color : '';\n opts = opts || { };\n\n // If input is already a tinycolor, return itself\n if (color instanceof tinycolor) {\n return color;\n }\n // If we are called as a function, call using new instead\n if (!(this instanceof tinycolor)) {\n return new tinycolor(color, opts);\n }\n\n var rgb = inputToRGB(color);\n this._originalInput = color,\n this._r = rgb.r,\n this._g = rgb.g,\n this._b = rgb.b,\n this._a = rgb.a,\n this._roundA = mathRound(100*this._a) / 100,\n this._format = opts.format || rgb.format;\n this._gradientType = opts.gradientType;\n\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this._r < 1) { this._r = mathRound(this._r); }\n if (this._g < 1) { this._g = mathRound(this._g); }\n if (this._b < 1) { this._b = mathRound(this._b); }\n\n this._ok = rgb.ok;\n this._tc_id = tinyCounter++;\n}\n\ntinycolor.prototype = {\n isDark: function() {\n return this.getBrightness() < 128;\n },\n isLight: function() {\n return !this.isDark();\n },\n isValid: function() {\n return this._ok;\n },\n getOriginalInput: function() {\n return this._originalInput;\n },\n getFormat: function() {\n return this._format;\n },\n getAlpha: function() {\n return this._a;\n },\n getBrightness: function() {\n //http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n },\n getLuminance: function() {\n //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var RsRGB, GsRGB, BsRGB, R, G, B;\n RsRGB = rgb.r/255;\n GsRGB = rgb.g/255;\n BsRGB = rgb.b/255;\n\n if (RsRGB <= 0.03928) {R = RsRGB / 12.92;} else {R = Math.pow(((RsRGB + 0.055) / 1.055), 2.4);}\n if (GsRGB <= 0.03928) {G = GsRGB / 12.92;} else {G = Math.pow(((GsRGB + 0.055) / 1.055), 2.4);}\n if (BsRGB <= 0.03928) {B = BsRGB / 12.92;} else {B = Math.pow(((BsRGB + 0.055) / 1.055), 2.4);}\n return (0.2126 * R) + (0.7152 * G) + (0.0722 * B);\n },\n setAlpha: function(value) {\n this._a = boundAlpha(value);\n this._roundA = mathRound(100*this._a) / 100;\n return this;\n },\n toHsv: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a };\n },\n toHsvString: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n var h = mathRound(hsv.h * 360), s = mathRound(hsv.s * 100), v = mathRound(hsv.v * 100);\n return (this._a == 1) ?\n \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\" :\n \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \"+ this._roundA + \")\";\n },\n toHsl: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a };\n },\n toHslString: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n var h = mathRound(hsl.h * 360), s = mathRound(hsl.s * 100), l = mathRound(hsl.l * 100);\n return (this._a == 1) ?\n \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\" :\n \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \"+ this._roundA + \")\";\n },\n toHex: function(allow3Char) {\n return rgbToHex(this._r, this._g, this._b, allow3Char);\n },\n toHexString: function(allow3Char) {\n return '#' + this.toHex(allow3Char);\n },\n toHex8: function(allow4Char) {\n return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n },\n toHex8String: function(allow4Char) {\n return '#' + this.toHex8(allow4Char);\n },\n toRgb: function() {\n return { r: mathRound(this._r), g: mathRound(this._g), b: mathRound(this._b), a: this._a };\n },\n toRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \")\" :\n \"rgba(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \", \" + this._roundA + \")\";\n },\n toPercentageRgb: function() {\n return { r: mathRound(bound01(this._r, 255) * 100) + \"%\", g: mathRound(bound01(this._g, 255) * 100) + \"%\", b: mathRound(bound01(this._b, 255) * 100) + \"%\", a: this._a };\n },\n toPercentageRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%)\" :\n \"rgba(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n },\n toName: function() {\n if (this._a === 0) {\n return \"transparent\";\n }\n\n if (this._a < 1) {\n return false;\n }\n\n return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n },\n toFilter: function(secondColor) {\n var hex8String = '#' + rgbaToArgbHex(this._r, this._g, this._b, this._a);\n var secondHex8String = hex8String;\n var gradientType = this._gradientType ? \"GradientType = 1, \" : \"\";\n\n if (secondColor) {\n var s = tinycolor(secondColor);\n secondHex8String = '#' + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n }\n\n return \"progid:DXImageTransform.Microsoft.gradient(\"+gradientType+\"startColorstr=\"+hex8String+\",endColorstr=\"+secondHex8String+\")\";\n },\n toString: function(format) {\n var formatSet = !!format;\n format = format || this._format;\n\n var formattedString = false;\n var hasAlpha = this._a < 1 && this._a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format === \"hex\" || format === \"hex6\" || format === \"hex3\" || format === \"hex4\" || format === \"hex8\" || format === \"name\");\n\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === \"name\" && this._a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === \"rgb\") {\n formattedString = this.toRgbString();\n }\n if (format === \"prgb\") {\n formattedString = this.toPercentageRgbString();\n }\n if (format === \"hex\" || format === \"hex6\") {\n formattedString = this.toHexString();\n }\n if (format === \"hex3\") {\n formattedString = this.toHexString(true);\n }\n if (format === \"hex4\") {\n formattedString = this.toHex8String(true);\n }\n if (format === \"hex8\") {\n formattedString = this.toHex8String();\n }\n if (format === \"name\") {\n formattedString = this.toName();\n }\n if (format === \"hsl\") {\n formattedString = this.toHslString();\n }\n if (format === \"hsv\") {\n formattedString = this.toHsvString();\n }\n\n return formattedString || this.toHexString();\n },\n clone: function() {\n return tinycolor(this.toString());\n },\n\n _applyModification: function(fn, args) {\n var color = fn.apply(null, [this].concat([].slice.call(args)));\n this._r = color._r;\n this._g = color._g;\n this._b = color._b;\n this.setAlpha(color._a);\n return this;\n },\n lighten: function() {\n return this._applyModification(lighten, arguments);\n },\n brighten: function() {\n return this._applyModification(brighten, arguments);\n },\n darken: function() {\n return this._applyModification(darken, arguments);\n },\n desaturate: function() {\n return this._applyModification(desaturate, arguments);\n },\n saturate: function() {\n return this._applyModification(saturate, arguments);\n },\n greyscale: function() {\n return this._applyModification(greyscale, arguments);\n },\n spin: function() {\n return this._applyModification(spin, arguments);\n },\n\n _applyCombination: function(fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function() {\n return this._applyCombination(analogous, arguments);\n },\n complement: function() {\n return this._applyCombination(complement, arguments);\n },\n monochromatic: function() {\n return this._applyCombination(monochromatic, arguments);\n },\n splitcomplement: function() {\n return this._applyCombination(splitcomplement, arguments);\n },\n triad: function() {\n return this._applyCombination(triad, arguments);\n },\n tetrad: function() {\n return this._applyCombination(tetrad, arguments);\n }\n};\n\n// If input is an object, force 1 into \"1.0\" to handle ratios properly\n// String input requires \"1.0\" as input, so 1 will be treated as 1\ntinycolor.fromRatio = function(color, opts) {\n if (typeof color == \"object\") {\n var newColor = {};\n for (var i in color) {\n if (color.hasOwnProperty(i)) {\n if (i === \"a\") {\n newColor[i] = color[i];\n }\n else {\n newColor[i] = convertToPercentage(color[i]);\n }\n }\n }\n color = newColor;\n }\n\n return tinycolor(color, opts);\n};\n\n// Given a string or object, convert that input to RGB\n// Possible string inputs:\n//\n// \"red\"\n// \"#f00\" or \"f00\"\n// \"#ff0000\" or \"ff0000\"\n// \"#ff000000\" or \"ff000000\"\n// \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n// \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n// \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n// \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n// \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n// \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n// \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n//\nfunction inputToRGB(color) {\n\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n\n if (typeof color == \"string\") {\n color = stringInputToObject(color);\n }\n\n if (typeof color == \"object\") {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === \"%\" ? \"prgb\" : \"rgb\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = \"hsv\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = \"hsl\";\n }\n\n if (color.hasOwnProperty(\"a\")) {\n a = color.a;\n }\n }\n\n a = boundAlpha(a);\n\n return {\n ok: ok,\n format: color.format || format,\n r: mathMin(255, mathMax(rgb.r, 0)),\n g: mathMin(255, mathMax(rgb.g, 0)),\n b: mathMin(255, mathMax(rgb.b, 0)),\n a: a\n };\n}\n\n\n// Conversion Functions\n// --------------------\n\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// \n\n// `rgbToRgb`\n// Handle bounds / percentage checking to conform to CSS color spec\n// \n// *Assumes:* r, g, b in [0, 255] or [0, 1]\n// *Returns:* { r, g, b } in [0, 255]\nfunction rgbToRgb(r, g, b){\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255\n };\n}\n\n// `rgbToHsl`\n// Converts an RGB color value to HSL.\n// *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n// *Returns:* { h, s, l } in [0,1]\nfunction rgbToHsl(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, l = (max + min) / 2;\n\n if(max == min) {\n h = s = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n\n h /= 6;\n }\n\n return { h: h, s: s, l: l };\n}\n\n// `hslToRgb`\n// Converts an HSL color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hslToRgb(h, s, l) {\n var r, g, b;\n\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n\n function hue2rgb(p, q, t) {\n if(t < 0) t += 1;\n if(t > 1) t -= 1;\n if(t < 1/6) return p + (q - p) * 6 * t;\n if(t < 1/2) return q;\n if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;\n return p;\n }\n\n if(s === 0) {\n r = g = b = l; // achromatic\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1/3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1/3);\n }\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHsv`\n// Converts an RGB color value to HSV\n// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n// *Returns:* { h, s, v } in [0,1]\nfunction rgbToHsv(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, v = max;\n\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n\n if(max == min) {\n h = 0; // achromatic\n }\n else {\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n\n// `hsvToRgb`\n// Converts an HSV color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\n function hsvToRgb(h, s, v) {\n\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n\n var i = Math.floor(h),\n f = h - i,\n p = v * (1 - s),\n q = v * (1 - f * s),\n t = v * (1 - (1 - f) * s),\n mod = i % 6,\n r = [v, q, p, p, t, v][mod],\n g = [t, v, v, q, p, p][mod],\n b = [p, p, t, v, v, q][mod];\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHex`\n// Converts an RGB color to hex\n// Assumes r, g, and b are contained in the set [0, 255]\n// Returns a 3 or 6 character hex\nfunction rgbToHex(r, g, b, allow3Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n // Return a 3 character hex if possible\n if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToHex`\n// Converts an RGBA color plus alpha transparency to hex\n// Assumes r, g, b are contained in the set [0, 255] and\n// a in [0, 1]. Returns a 4 or 8 character rgba hex\nfunction rgbaToHex(r, g, b, a, allow4Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16)),\n pad2(convertDecimalToHex(a))\n ];\n\n // Return a 4 character hex if possible\n if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToArgbHex`\n// Converts an RGBA color to an ARGB Hex8 string\n// Rarely used, but required for \"toFilter()\"\nfunction rgbaToArgbHex(r, g, b, a) {\n\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n return hex.join(\"\");\n}\n\n// `equals`\n// Can be called with any tinycolor input\ntinycolor.equals = function (color1, color2) {\n if (!color1 || !color2) { return false; }\n return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n};\n\ntinycolor.random = function() {\n return tinycolor.fromRatio({\n r: mathRandom(),\n g: mathRandom(),\n b: mathRandom()\n });\n};\n\n\n// Modification Functions\n// ----------------------\n// Thanks to less.js for some of the basics here\n// \n\nfunction desaturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction saturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction greyscale(color) {\n return tinycolor(color).desaturate(100);\n}\n\nfunction lighten (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\nfunction brighten(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var rgb = tinycolor(color).toRgb();\n rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * - (amount / 100))));\n rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * - (amount / 100))));\n rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * - (amount / 100))));\n return tinycolor(rgb);\n}\n\nfunction darken (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\n// Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n// Values outside of this range will be wrapped into this range.\nfunction spin(color, amount) {\n var hsl = tinycolor(color).toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return tinycolor(hsl);\n}\n\n// Combination Functions\n// ---------------------\n// Thanks to jQuery xColor for some of the ideas behind these\n// \n\nfunction complement(color) {\n var hsl = tinycolor(color).toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return tinycolor(hsl);\n}\n\nfunction triad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction tetrad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction splitcomplement(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l}),\n tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l})\n ];\n}\n\nfunction analogous(color, results, slices) {\n results = results || 6;\n slices = slices || 30;\n\n var hsl = tinycolor(color).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color)];\n\n for (hsl.h = ((hsl.h - (part * results >> 1)) + 720) % 360; --results; ) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(tinycolor(hsl));\n }\n return ret;\n}\n\nfunction monochromatic(color, results) {\n results = results || 6;\n var hsv = tinycolor(color).toHsv();\n var h = hsv.h, s = hsv.s, v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n\n while (results--) {\n ret.push(tinycolor({ h: h, s: s, v: v}));\n v = (v + modification) % 1;\n }\n\n return ret;\n}\n\n// Utility Functions\n// ---------------------\n\ntinycolor.mix = function(color1, color2, amount) {\n amount = (amount === 0) ? 0 : (amount || 50);\n\n var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n\n var p = amount / 100;\n\n var rgba = {\n r: ((rgb2.r - rgb1.r) * p) + rgb1.r,\n g: ((rgb2.g - rgb1.g) * p) + rgb1.g,\n b: ((rgb2.b - rgb1.b) * p) + rgb1.b,\n a: ((rgb2.a - rgb1.a) * p) + rgb1.a\n };\n\n return tinycolor(rgba);\n};\n\n\n// Readability Functions\n// ---------------------\n// false\n// tinycolor.isReadable(\"#000\", \"#111\",{level:\"AA\",size:\"large\"}) => false\ntinycolor.isReadable = function(color1, color2, wcag2) {\n var readability = tinycolor.readability(color1, color2);\n var wcag2Parms, out;\n\n out = false;\n\n wcag2Parms = validateWCAG2Parms(wcag2);\n switch (wcag2Parms.level + wcag2Parms.size) {\n case \"AAsmall\":\n case \"AAAlarge\":\n out = readability >= 4.5;\n break;\n case \"AAlarge\":\n out = readability >= 3;\n break;\n case \"AAAsmall\":\n out = readability >= 7;\n break;\n }\n return out;\n\n};\n\n// `mostReadable`\n// Given a base color and a list of possible foreground or background\n// colors for that base, returns the most readable color.\n// Optionally returns Black or White if the most readable color is unreadable.\n// *Example*\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:false}).toHexString(); // \"#112255\"\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:true}).toHexString(); // \"#ffffff\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"large\"}).toHexString(); // \"#faf3f3\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"small\"}).toHexString(); // \"#ffffff\"\ntinycolor.mostReadable = function(baseColor, colorList, args) {\n var bestColor = null;\n var bestScore = 0;\n var readability;\n var includeFallbackColors, level, size ;\n args = args || {};\n includeFallbackColors = args.includeFallbackColors ;\n level = args.level;\n size = args.size;\n\n for (var i= 0; i < colorList.length ; i++) {\n readability = tinycolor.readability(baseColor, colorList[i]);\n if (readability > bestScore) {\n bestScore = readability;\n bestColor = tinycolor(colorList[i]);\n }\n }\n\n if (tinycolor.isReadable(baseColor, bestColor, {\"level\":level,\"size\":size}) || !includeFallbackColors) {\n return bestColor;\n }\n else {\n args.includeFallbackColors=false;\n return tinycolor.mostReadable(baseColor,[\"#fff\", \"#000\"],args);\n }\n};\n\n\n// Big List of Colors\n// ------------------\n// \nvar names = tinycolor.names = {\n aliceblue: \"f0f8ff\",\n antiquewhite: \"faebd7\",\n aqua: \"0ff\",\n aquamarine: \"7fffd4\",\n azure: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"000\",\n blanchedalmond: \"ffebcd\",\n blue: \"00f\",\n blueviolet: \"8a2be2\",\n brown: \"a52a2a\",\n burlywood: \"deb887\",\n burntsienna: \"ea7e5d\",\n cadetblue: \"5f9ea0\",\n chartreuse: \"7fff00\",\n chocolate: \"d2691e\",\n coral: \"ff7f50\",\n cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"0ff\",\n darkblue: \"00008b\",\n darkcyan: \"008b8b\",\n darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\",\n darkgreen: \"006400\",\n darkgrey: \"a9a9a9\",\n darkkhaki: \"bdb76b\",\n darkmagenta: \"8b008b\",\n darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\",\n darkorchid: \"9932cc\",\n darkred: \"8b0000\",\n darksalmon: \"e9967a\",\n darkseagreen: \"8fbc8f\",\n darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\",\n darkslategrey: \"2f4f4f\",\n darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\",\n deeppink: \"ff1493\",\n deepskyblue: \"00bfff\",\n dimgray: \"696969\",\n dimgrey: \"696969\",\n dodgerblue: \"1e90ff\",\n firebrick: \"b22222\",\n floralwhite: \"fffaf0\",\n forestgreen: \"228b22\",\n fuchsia: \"f0f\",\n gainsboro: \"dcdcdc\",\n ghostwhite: \"f8f8ff\",\n gold: \"ffd700\",\n goldenrod: \"daa520\",\n gray: \"808080\",\n green: \"008000\",\n greenyellow: \"adff2f\",\n grey: \"808080\",\n honeydew: \"f0fff0\",\n hotpink: \"ff69b4\",\n indianred: \"cd5c5c\",\n indigo: \"4b0082\",\n ivory: \"fffff0\",\n khaki: \"f0e68c\",\n lavender: \"e6e6fa\",\n lavenderblush: \"fff0f5\",\n lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\",\n lightblue: \"add8e6\",\n lightcoral: \"f08080\",\n lightcyan: \"e0ffff\",\n lightgoldenrodyellow: \"fafad2\",\n lightgray: \"d3d3d3\",\n lightgreen: \"90ee90\",\n lightgrey: \"d3d3d3\",\n lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\",\n lightseagreen: \"20b2aa\",\n lightskyblue: \"87cefa\",\n lightslategray: \"789\",\n lightslategrey: \"789\",\n lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\",\n lime: \"0f0\",\n limegreen: \"32cd32\",\n linen: \"faf0e6\",\n magenta: \"f0f\",\n maroon: \"800000\",\n mediumaquamarine: \"66cdaa\",\n mediumblue: \"0000cd\",\n mediumorchid: \"ba55d3\",\n mediumpurple: \"9370db\",\n mediumseagreen: \"3cb371\",\n mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\",\n mediumturquoise: \"48d1cc\",\n mediumvioletred: \"c71585\",\n midnightblue: \"191970\",\n mintcream: \"f5fffa\",\n mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\",\n navajowhite: \"ffdead\",\n navy: \"000080\",\n oldlace: \"fdf5e6\",\n olive: \"808000\",\n olivedrab: \"6b8e23\",\n orange: \"ffa500\",\n orangered: \"ff4500\",\n orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\",\n palegreen: \"98fb98\",\n paleturquoise: \"afeeee\",\n palevioletred: \"db7093\",\n papayawhip: \"ffefd5\",\n peachpuff: \"ffdab9\",\n peru: \"cd853f\",\n pink: \"ffc0cb\",\n plum: \"dda0dd\",\n powderblue: \"b0e0e6\",\n purple: \"800080\",\n rebeccapurple: \"663399\",\n red: \"f00\",\n rosybrown: \"bc8f8f\",\n royalblue: \"4169e1\",\n saddlebrown: \"8b4513\",\n salmon: \"fa8072\",\n sandybrown: \"f4a460\",\n seagreen: \"2e8b57\",\n seashell: \"fff5ee\",\n sienna: \"a0522d\",\n silver: \"c0c0c0\",\n skyblue: \"87ceeb\",\n slateblue: \"6a5acd\",\n slategray: \"708090\",\n slategrey: \"708090\",\n snow: \"fffafa\",\n springgreen: \"00ff7f\",\n steelblue: \"4682b4\",\n tan: \"d2b48c\",\n teal: \"008080\",\n thistle: \"d8bfd8\",\n tomato: \"ff6347\",\n turquoise: \"40e0d0\",\n violet: \"ee82ee\",\n wheat: \"f5deb3\",\n white: \"fff\",\n whitesmoke: \"f5f5f5\",\n yellow: \"ff0\",\n yellowgreen: \"9acd32\"\n};\n\n// Make it easy to access colors via `hexNames[hex]`\nvar hexNames = tinycolor.hexNames = flip(names);\n\n\n// Utilities\n// ---------\n\n// `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\nfunction flip(o) {\n var flipped = { };\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n flipped[o[i]] = i;\n }\n }\n return flipped;\n}\n\n// Return a valid alpha value [0,1] with all invalid values being set to 1\nfunction boundAlpha(a) {\n a = parseFloat(a);\n\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n\n return a;\n}\n\n// Take input from [0, n] and return it as [0, 1]\nfunction bound01(n, max) {\n if (isOnePointZero(n)) { n = \"100%\"; }\n\n var processPercent = isPercentage(n);\n n = mathMin(max, mathMax(0, parseFloat(n)));\n\n // Automatically convert percentage into number\n if (processPercent) {\n n = parseInt(n * max, 10) / 100;\n }\n\n // Handle floating point rounding errors\n if ((Math.abs(n - max) < 0.000001)) {\n return 1;\n }\n\n // Convert into [0, 1] range if it isn't already\n return (n % max) / parseFloat(max);\n}\n\n// Force a number between 0 and 1\nfunction clamp01(val) {\n return mathMin(1, mathMax(0, val));\n}\n\n// Parse a base-16 hex value into a base-10 integer\nfunction parseIntFromHex(val) {\n return parseInt(val, 16);\n}\n\n// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n// \nfunction isOnePointZero(n) {\n return typeof n == \"string\" && n.indexOf('.') != -1 && parseFloat(n) === 1;\n}\n\n// Check to see if string passed in is a percentage\nfunction isPercentage(n) {\n return typeof n === \"string\" && n.indexOf('%') != -1;\n}\n\n// Force a hex value to have 2 characters\nfunction pad2(c) {\n return c.length == 1 ? '0' + c : '' + c;\n}\n\n// Replace a decimal with it's percentage value\nfunction convertToPercentage(n) {\n if (n <= 1) {\n n = (n * 100) + \"%\";\n }\n\n return n;\n}\n\n// Converts a decimal to a hex value\nfunction convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n// Converts a hex value to a decimal\nfunction convertHexToDecimal(h) {\n return (parseIntFromHex(h) / 255);\n}\n\nvar matchers = (function() {\n\n // \n var CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\";\n\n // \n var CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\n\n // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\n var CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n\n // Actual matching.\n // Parentheses and commas are optional, but not required.\n // Whitespace can take the place of commas or opening paren\n var PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n var PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n\n return {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp(\"rgb\" + PERMISSIVE_MATCH3),\n rgba: new RegExp(\"rgba\" + PERMISSIVE_MATCH4),\n hsl: new RegExp(\"hsl\" + PERMISSIVE_MATCH3),\n hsla: new RegExp(\"hsla\" + PERMISSIVE_MATCH4),\n hsv: new RegExp(\"hsv\" + PERMISSIVE_MATCH3),\n hsva: new RegExp(\"hsva\" + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n };\n})();\n\n// `isValidCSSUnit`\n// Take in a single string / number and check to see if it looks like a CSS unit\n// (see `matchers` above for definition).\nfunction isValidCSSUnit(color) {\n return !!matchers.CSS_UNIT.exec(color);\n}\n\n// `stringInputToObject`\n// Permissive string parsing. Take in a number of formats, and output an object\n// based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\nfunction stringInputToObject(color) {\n\n color = color.replace(trimLeft,'').replace(trimRight, '').toLowerCase();\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color == 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: \"name\" };\n }\n\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match;\n if ((match = matchers.rgb.exec(color))) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n if ((match = matchers.rgba.exec(color))) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n if ((match = matchers.hsl.exec(color))) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n if ((match = matchers.hsla.exec(color))) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n if ((match = matchers.hsv.exec(color))) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n if ((match = matchers.hsva.exec(color))) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n if ((match = matchers.hex8.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex6.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n if ((match = matchers.hex4.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n a: convertHexToDecimal(match[4] + '' + match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex3.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n\n return false;\n}\n\nfunction validateWCAG2Parms(parms) {\n // return valid WCAG2 parms for isReadable.\n // If input parms are invalid, return {\"level\":\"AA\", \"size\":\"small\"}\n var level, size;\n parms = parms || {\"level\":\"AA\", \"size\":\"small\"};\n level = (parms.level || \"AA\").toUpperCase();\n size = (parms.size || \"small\").toLowerCase();\n if (level !== \"AA\" && level !== \"AAA\") {\n level = \"AA\";\n }\n if (size !== \"small\" && size !== \"large\") {\n size = \"small\";\n }\n return {\"level\":level, \"size\":size};\n}\n\n// Node: Export function\nif (typeof module !== \"undefined\" && module.exports) {\n module.exports = tinycolor;\n}\n// AMD/requirejs: Define the module\nelse if (typeof define === 'function' && define.amd) {\n define(function () {return tinycolor;});\n}\n// Browser: Expose to window\nelse {\n window.tinycolor = tinycolor;\n}\n\n})(Math);\n","\nvar space = require('to-space-case')\n\n/**\n * Export.\n */\n\nmodule.exports = toCamelCase\n\n/**\n * Convert a `string` to camel case.\n *\n * @param {String} string\n * @return {String}\n */\n\nfunction toCamelCase(string) {\n return space(string).replace(/\\s(\\w)/g, function (matches, letter) {\n return letter.toUpperCase()\n })\n}\n","\n/**\n * Export.\n */\n\nmodule.exports = toNoCase\n\n/**\n * Test whether a string is camel-case.\n */\n\nvar hasSpace = /\\s/\nvar hasSeparator = /(_|-|\\.|:)/\nvar hasCamel = /([a-z][A-Z]|[A-Z][a-z])/\n\n/**\n * Remove any starting case from a `string`, like camel or snake, but keep\n * spaces and punctuation that may be important otherwise.\n *\n * @param {String} string\n * @return {String}\n */\n\nfunction toNoCase(string) {\n if (hasSpace.test(string)) return string.toLowerCase()\n if (hasSeparator.test(string)) return (unseparate(string) || string).toLowerCase()\n if (hasCamel.test(string)) return uncamelize(string).toLowerCase()\n return string.toLowerCase()\n}\n\n/**\n * Separator splitter.\n */\n\nvar separatorSplitter = /[\\W_]+(.|$)/g\n\n/**\n * Un-separate a `string`.\n *\n * @param {String} string\n * @return {String}\n */\n\nfunction unseparate(string) {\n return string.replace(separatorSplitter, function (m, next) {\n return next ? ' ' + next : ''\n })\n}\n\n/**\n * Camelcase splitter.\n */\n\nvar camelSplitter = /(.)([A-Z]+)/g\n\n/**\n * Un-camelcase a `string`.\n *\n * @param {String} string\n * @return {String}\n */\n\nfunction uncamelize(string) {\n return string.replace(camelSplitter, function (m, previous, uppers) {\n return previous + ' ' + uppers.toLowerCase().split('').join(' ')\n })\n}\n","\nvar clean = require('to-no-case')\n\n/**\n * Export.\n */\n\nmodule.exports = toSpaceCase\n\n/**\n * Convert a `string` to space case.\n *\n * @param {String} string\n * @return {String}\n */\n\nfunction toSpaceCase(string) {\n return clean(string).replace(/[\\W_]+(.|$)/g, function (matches, match) {\n return match ? ' ' + match : ''\n }).trim()\n}\n","var v1 = require('./v1');\nvar v4 = require('./v4');\n\nvar uuid = v4;\nuuid.v1 = v1;\nuuid.v4 = v4;\n\nmodule.exports = uuid;\n","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return ([\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]]\n ]).join('');\n}\n\nmodule.exports = bytesToUuid;\n","// Unique ID creation requires a high quality random # generator. In the\n// browser this is a little complicated due to unknown quality of Math.random()\n// and inconsistent support for the `crypto` API. We do the best we can via\n// feature-detection\n\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto\n// implementation. Also, find the complete implementation of crypto on IE11.\nvar getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) ||\n (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto));\n\nif (getRandomValues) {\n // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto\n var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\n module.exports = function whatwgRNG() {\n getRandomValues(rnds8);\n return rnds8;\n };\n} else {\n // Math.random()-based (RNG)\n //\n // If all else fails, use Math.random(). It's fast, but is of unspecified\n // quality.\n var rnds = new Array(16);\n\n module.exports = function mathRNG() {\n for (var i = 0, r; i < 16; i++) {\n if ((i & 0x03) === 0) r = Math.random() * 0x100000000;\n rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;\n }\n\n return rnds;\n };\n}\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\n\nvar _nodeId;\nvar _clockseq;\n\n// Previous uuid creation time\nvar _lastMSecs = 0;\nvar _lastNSecs = 0;\n\n// See https://github.com/uuidjs/uuid for API details\nfunction v1(options, buf, offset) {\n var i = buf && offset || 0;\n var b = buf || [];\n\n options = options || {};\n var node = options.node || _nodeId;\n var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq;\n\n // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n if (node == null || clockseq == null) {\n var seedBytes = rng();\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [\n seedBytes[0] | 0x01,\n seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]\n ];\n }\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n }\n\n // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime();\n\n // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1;\n\n // Time since last uuid creation (in msecs)\n var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000;\n\n // Per 4.2.1.2, Bump clockseq on clock regression\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n }\n\n // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n }\n\n // Per 4.2.1.2 Throw error if too many uuids are requested\n if (nsecs >= 10000) {\n throw new Error('uuid.v1(): Can\\'t create more than 10M uuids/sec');\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq;\n\n // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n msecs += 12219292800000;\n\n // `time_low`\n var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff;\n\n // `time_mid`\n var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff;\n\n // `time_high_and_version`\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n b[i++] = tmh >>> 16 & 0xff;\n\n // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n b[i++] = clockseq >>> 8 | 0x80;\n\n // `clock_seq_low`\n b[i++] = clockseq & 0xff;\n\n // `node`\n for (var n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf ? buf : bytesToUuid(b);\n}\n\nmodule.exports = v1;\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof(options) == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nmodule.exports = v4;\n","/*!\n * EventEmitter v5.2.8 - git.io/ee\n * Unlicense - http://unlicense.org/\n * Oliver Caldwell - https://oli.me.uk/\n * @preserve\n */\n\n;(function (exports) {\n 'use strict';\n\n /**\n * Class for managing events.\n * Can be extended to provide event functionality in other classes.\n *\n * @class EventEmitter Manages event registering and emitting.\n */\n function EventEmitter() {}\n\n // Shortcuts to improve speed and size\n var proto = EventEmitter.prototype;\n var originalGlobalValue = exports.EventEmitter;\n\n /**\n * Finds the index of the listener for the event in its storage array.\n *\n * @param {Function[]} listeners Array of listeners to search through.\n * @param {Function} listener Method to look for.\n * @return {Number} Index of the specified listener, -1 if not found\n * @api private\n */\n function indexOfListener(listeners, listener) {\n var i = listeners.length;\n while (i--) {\n if (listeners[i].listener === listener) {\n return i;\n }\n }\n\n return -1;\n }\n\n /**\n * Alias a method while keeping the context correct, to allow for overwriting of target method.\n *\n * @param {String} name The name of the target method.\n * @return {Function} The aliased method\n * @api private\n */\n function alias(name) {\n return function aliasClosure() {\n return this[name].apply(this, arguments);\n };\n }\n\n /**\n * Returns the listener array for the specified event.\n * Will initialise the event object and listener arrays if required.\n * Will return an object if you use a regex search. The object contains keys for each matched event. So /ba[rz]/ might return an object containing bar and baz. But only if you have either defined them with defineEvent or added some listeners to them.\n * Each property in the object response is an array of listener functions.\n *\n * @param {String|RegExp} evt Name of the event to return the listeners from.\n * @return {Function[]|Object} All listener functions for the event.\n */\n proto.getListeners = function getListeners(evt) {\n var events = this._getEvents();\n var response;\n var key;\n\n // Return a concatenated array of all matching events if\n // the selector is a regular expression.\n if (evt instanceof RegExp) {\n response = {};\n for (key in events) {\n if (events.hasOwnProperty(key) && evt.test(key)) {\n response[key] = events[key];\n }\n }\n }\n else {\n response = events[evt] || (events[evt] = []);\n }\n\n return response;\n };\n\n /**\n * Takes a list of listener objects and flattens it into a list of listener functions.\n *\n * @param {Object[]} listeners Raw listener objects.\n * @return {Function[]} Just the listener functions.\n */\n proto.flattenListeners = function flattenListeners(listeners) {\n var flatListeners = [];\n var i;\n\n for (i = 0; i < listeners.length; i += 1) {\n flatListeners.push(listeners[i].listener);\n }\n\n return flatListeners;\n };\n\n /**\n * Fetches the requested listeners via getListeners but will always return the results inside an object. This is mainly for internal use but others may find it useful.\n *\n * @param {String|RegExp} evt Name of the event to return the listeners from.\n * @return {Object} All listener functions for an event in an object.\n */\n proto.getListenersAsObject = function getListenersAsObject(evt) {\n var listeners = this.getListeners(evt);\n var response;\n\n if (listeners instanceof Array) {\n response = {};\n response[evt] = listeners;\n }\n\n return response || listeners;\n };\n\n function isValidListener (listener) {\n if (typeof listener === 'function' || listener instanceof RegExp) {\n return true\n } else if (listener && typeof listener === 'object') {\n return isValidListener(listener.listener)\n } else {\n return false\n }\n }\n\n /**\n * Adds a listener function to the specified event.\n * The listener will not be added if it is a duplicate.\n * If the listener returns true then it will be removed after it is called.\n * If you pass a regular expression as the event name then the listener will be added to all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to attach the listener to.\n * @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.addListener = function addListener(evt, listener) {\n if (!isValidListener(listener)) {\n throw new TypeError('listener must be a function');\n }\n\n var listeners = this.getListenersAsObject(evt);\n var listenerIsWrapped = typeof listener === 'object';\n var key;\n\n for (key in listeners) {\n if (listeners.hasOwnProperty(key) && indexOfListener(listeners[key], listener) === -1) {\n listeners[key].push(listenerIsWrapped ? listener : {\n listener: listener,\n once: false\n });\n }\n }\n\n return this;\n };\n\n /**\n * Alias of addListener\n */\n proto.on = alias('addListener');\n\n /**\n * Semi-alias of addListener. It will add a listener that will be\n * automatically removed after its first execution.\n *\n * @param {String|RegExp} evt Name of the event to attach the listener to.\n * @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.addOnceListener = function addOnceListener(evt, listener) {\n return this.addListener(evt, {\n listener: listener,\n once: true\n });\n };\n\n /**\n * Alias of addOnceListener.\n */\n proto.once = alias('addOnceListener');\n\n /**\n * Defines an event name. This is required if you want to use a regex to add a listener to multiple events at once. If you don't do this then how do you expect it to know what event to add to? Should it just add to every possible match for a regex? No. That is scary and bad.\n * You need to tell it what event names should be matched by a regex.\n *\n * @param {String} evt Name of the event to create.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.defineEvent = function defineEvent(evt) {\n this.getListeners(evt);\n return this;\n };\n\n /**\n * Uses defineEvent to define multiple events.\n *\n * @param {String[]} evts An array of event names to define.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.defineEvents = function defineEvents(evts) {\n for (var i = 0; i < evts.length; i += 1) {\n this.defineEvent(evts[i]);\n }\n return this;\n };\n\n /**\n * Removes a listener function from the specified event.\n * When passed a regular expression as the event name, it will remove the listener from all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to remove the listener from.\n * @param {Function} listener Method to remove from the event.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.removeListener = function removeListener(evt, listener) {\n var listeners = this.getListenersAsObject(evt);\n var index;\n var key;\n\n for (key in listeners) {\n if (listeners.hasOwnProperty(key)) {\n index = indexOfListener(listeners[key], listener);\n\n if (index !== -1) {\n listeners[key].splice(index, 1);\n }\n }\n }\n\n return this;\n };\n\n /**\n * Alias of removeListener\n */\n proto.off = alias('removeListener');\n\n /**\n * Adds listeners in bulk using the manipulateListeners method.\n * If you pass an object as the first argument you can add to multiple events at once. The object should contain key value pairs of events and listeners or listener arrays. You can also pass it an event name and an array of listeners to be added.\n * You can also pass it a regular expression to add the array of listeners to all events that match it.\n * Yeah, this function does quite a bit. That's probably a bad thing.\n *\n * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add to multiple events at once.\n * @param {Function[]} [listeners] An optional array of listener functions to add.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.addListeners = function addListeners(evt, listeners) {\n // Pass through to manipulateListeners\n return this.manipulateListeners(false, evt, listeners);\n };\n\n /**\n * Removes listeners in bulk using the manipulateListeners method.\n * If you pass an object as the first argument you can remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays.\n * You can also pass it an event name and an array of listeners to be removed.\n * You can also pass it a regular expression to remove the listeners from all events that match it.\n *\n * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to remove from multiple events at once.\n * @param {Function[]} [listeners] An optional array of listener functions to remove.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.removeListeners = function removeListeners(evt, listeners) {\n // Pass through to manipulateListeners\n return this.manipulateListeners(true, evt, listeners);\n };\n\n /**\n * Edits listeners in bulk. The addListeners and removeListeners methods both use this to do their job. You should really use those instead, this is a little lower level.\n * The first argument will determine if the listeners are removed (true) or added (false).\n * If you pass an object as the second argument you can add/remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays.\n * You can also pass it an event name and an array of listeners to be added/removed.\n * You can also pass it a regular expression to manipulate the listeners of all events that match it.\n *\n * @param {Boolean} remove True if you want to remove listeners, false if you want to add.\n * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add/remove from multiple events at once.\n * @param {Function[]} [listeners] An optional array of listener functions to add/remove.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.manipulateListeners = function manipulateListeners(remove, evt, listeners) {\n var i;\n var value;\n var single = remove ? this.removeListener : this.addListener;\n var multiple = remove ? this.removeListeners : this.addListeners;\n\n // If evt is an object then pass each of its properties to this method\n if (typeof evt === 'object' && !(evt instanceof RegExp)) {\n for (i in evt) {\n if (evt.hasOwnProperty(i) && (value = evt[i])) {\n // Pass the single listener straight through to the singular method\n if (typeof value === 'function') {\n single.call(this, i, value);\n }\n else {\n // Otherwise pass back to the multiple function\n multiple.call(this, i, value);\n }\n }\n }\n }\n else {\n // So evt must be a string\n // And listeners must be an array of listeners\n // Loop over it and pass each one to the multiple method\n i = listeners.length;\n while (i--) {\n single.call(this, evt, listeners[i]);\n }\n }\n\n return this;\n };\n\n /**\n * Removes all listeners from a specified event.\n * If you do not specify an event then all listeners will be removed.\n * That means every event will be emptied.\n * You can also pass a regex to remove all events that match it.\n *\n * @param {String|RegExp} [evt] Optional name of the event to remove all listeners for. Will remove from every event if not passed.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.removeEvent = function removeEvent(evt) {\n var type = typeof evt;\n var events = this._getEvents();\n var key;\n\n // Remove different things depending on the state of evt\n if (type === 'string') {\n // Remove all listeners for the specified event\n delete events[evt];\n }\n else if (evt instanceof RegExp) {\n // Remove all events matching the regex.\n for (key in events) {\n if (events.hasOwnProperty(key) && evt.test(key)) {\n delete events[key];\n }\n }\n }\n else {\n // Remove all listeners in all events\n delete this._events;\n }\n\n return this;\n };\n\n /**\n * Alias of removeEvent.\n *\n * Added to mirror the node API.\n */\n proto.removeAllListeners = alias('removeEvent');\n\n /**\n * Emits an event of your choice.\n * When emitted, every listener attached to that event will be executed.\n * If you pass the optional argument array then those arguments will be passed to every listener upon execution.\n * Because it uses `apply`, your array of arguments will be passed as if you wrote them out separately.\n * So they will not arrive within the array on the other side, they will be separate.\n * You can also pass a regular expression to emit to all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to emit and execute listeners for.\n * @param {Array} [args] Optional array of arguments to be passed to each listener.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.emitEvent = function emitEvent(evt, args) {\n var listenersMap = this.getListenersAsObject(evt);\n var listeners;\n var listener;\n var i;\n var key;\n var response;\n\n for (key in listenersMap) {\n if (listenersMap.hasOwnProperty(key)) {\n listeners = listenersMap[key].slice(0);\n\n for (i = 0; i < listeners.length; i++) {\n // If the listener returns true then it shall be removed from the event\n // The function is executed either with a basic call or an apply if there is an args array\n listener = listeners[i];\n\n if (listener.once === true) {\n this.removeListener(evt, listener.listener);\n }\n\n response = listener.listener.apply(this, args || []);\n\n if (response === this._getOnceReturnValue()) {\n this.removeListener(evt, listener.listener);\n }\n }\n }\n }\n\n return this;\n };\n\n /**\n * Alias of emitEvent\n */\n proto.trigger = alias('emitEvent');\n\n /**\n * Subtly different from emitEvent in that it will pass its arguments on to the listeners, as opposed to taking a single array of arguments to pass on.\n * As with emitEvent, you can pass a regex in place of the event name to emit to all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to emit and execute listeners for.\n * @param {...*} Optional additional arguments to be passed to each listener.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.emit = function emit(evt) {\n var args = Array.prototype.slice.call(arguments, 1);\n return this.emitEvent(evt, args);\n };\n\n /**\n * Sets the current value to check against when executing listeners. If a\n * listeners return value matches the one set here then it will be removed\n * after execution. This value defaults to true.\n *\n * @param {*} value The new value to check for when executing listeners.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.setOnceReturnValue = function setOnceReturnValue(value) {\n this._onceReturnValue = value;\n return this;\n };\n\n /**\n * Fetches the current value to check against when executing listeners. If\n * the listeners return value matches this one then it should be removed\n * automatically. It will return true by default.\n *\n * @return {*|Boolean} The current value to check for or the default, true.\n * @api private\n */\n proto._getOnceReturnValue = function _getOnceReturnValue() {\n if (this.hasOwnProperty('_onceReturnValue')) {\n return this._onceReturnValue;\n }\n else {\n return true;\n }\n };\n\n /**\n * Fetches the events object and creates one if required.\n *\n * @return {Object} The events storage object.\n * @api private\n */\n proto._getEvents = function _getEvents() {\n return this._events || (this._events = {});\n };\n\n /**\n * Reverts the global {@link EventEmitter} to its previous value and returns a reference to this version.\n *\n * @return {Function} Non conflicting EventEmitter class.\n */\n EventEmitter.noConflict = function noConflict() {\n exports.EventEmitter = originalGlobalValue;\n return EventEmitter;\n };\n\n // Expose the class either via AMD, CommonJS or the global object\n if (typeof define === 'function' && define.amd) {\n define(function () {\n return EventEmitter;\n });\n }\n else if (typeof module === 'object' && module.exports){\n module.exports = EventEmitter;\n }\n else {\n exports.EventEmitter = EventEmitter;\n }\n}(typeof window !== 'undefined' ? window : this || {}));\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// Export GUI class as 'guify'.\n// Make sure Webpack is assigning the export to the global scope (don't set library.name)\nimport { default as gui } from \"./gui.js\";\nlet guify = gui;\nexport { guify };"],"names":["default","TitleComponent","RangeComponent","ButtonComponent","CheckboxComponent","SelectComponent","TextComponent","ColorComponent","FolderComponent","FileComponent","DisplayComponent","IntervalComponent","ComponentManager","theme","components","root","opts","initializer","type","undefined","Error","newComponent","EventEmitter","v4","uuidv4","ContainerPartial","ComponentBase","makeContainer","uuid","container","label","SetEnabled","enabled","classList","remove","add","parentNode","removeChild","css","screenfull","MenuBar","element","document","createElement","appendChild","title","text","innerHTML","menuButton","left","align","right","onclick","emit","isEnabled","fullscreenButton","setAttribute","show","style","display","Panel","width","opacity","panelMode","barMode","_MakeToggleButton","panel","require","contains","SetVisible","className","ToggleVisible","addEventListener","blur","ToastArea","position","message","stayMS","transitionMS","console","log","toast","closeButton","timeout","TransitionOut","clearTimeout","setTimeout","Container","textAlign","color","colors","textSecondary","height","marginBottom","input","value","LabelPartial","Button","textContent","button","action","Checkbox","id","checked","initial","htmlFor","onchange","data","target","ColorPicker","tinycolor","ValuePartial","Color","format","icon","sizing","labelWidth","onmouseover","picker","$el","toHexString","fromRatio","r","g","b","el","background","componentBackground","marginTop","componentHeight","backgroundColor","getHexString","onmouseout","onChange","hex","Format","toRgbString","rgb","toRgb","map","x","toFixed","isChoosing","setColor","getColor","Display","toString","File","fileReadFunc","file","fileName","padding","fileLabel","FileDropped","event","files","dataTransfer","reader","FileReader","onload","result","name","preventDefault","stopPropagation","click","e","which","Folder","arrow","Toggle","folderContainer","open","SetOpen","isnumeric","lerp","clamp","min","max","Math","Interval","step","steps","handle","Array","isArray","scale","warn","minPos","maxPos","precision","logScale","pow","round","_RefreshHandles","lValue","rValue","activeIndex","mouseX","ev","pageX","getBoundingClientRect","mouseMoveListener","fraction","offsetWidth","_SetFromMousePosition","mouseUpListener","removeEventListener","posForLeftValue","_Position","posForRightValue","lofrac","hifrac","abs","lodiff","hidiff","oninput","rawValue","otherValue","parseFloat","Number","ceil","lastValue","rangePos","exp","newValue","_Value","focused","_FormatNumber","replace","leftPercent","rightPercent","Range","initialStep","valueComponent","userIsModifying","scaledValue","_ValidatedInputValue","validated","Select","i","downTriangle","upTriangle","key","option","keys","options","length","selected","Object","StyleFocus","StyleUnfocus","Text","listenMode","includes","error","Title","Theme","GUI","hasRoot","body","pollRateMS","themeName","Apply","_ConstructElements","_LoadStyles","componentManager","loadedComponents","_UpdateComponents","AppendFont","href","elem","getElementsByTagName","font","fontURL","fontFamily","fontSize","fontWeight","containerCSS","top","menuBarHeight","insertBefore","childNodes","bar","addListener","ToggleFullscreen","toaster","forEach","component","binding","object","property","oldValue","SetValue","window","requestAnimationFrame","obj","applyToAll","item","merged","assign","_Register","Remove","filter","folder","folderComp","find","cmp","Create","on","onInitialize","push","CreateToast","isFullscreen","exit","request","themes","dark","baseTheme","documentElement","setProperty","menuBarBackground","menuBarText","panelBackground","componentBackgroundHover","componentBackgroundDisabled","componentForeground","componentActive","textPrimary","textHover","textActive","textDisabled","componentSpacing","module","exports","light","yorha","v0","v1","t","gui","guify"],"sourceRoot":""} \ No newline at end of file diff --git a/lib/guify.min.js b/lib/guify.min.js index 353a886..ec09a97 100644 --- a/lib/guify.min.js +++ b/lib/guify.min.js @@ -1,3 +1,3 @@ /*! For license information please see guify.min.js.LICENSE.txt */ -!function(n,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t=e();for(var o in t)("object"==typeof exports?exports:n)[o]=t[o]}}(self,(function(){return(()=>{var n={379:n=>{var e={animationIterationCount:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridRow:!0,gridColumn:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,stopOpacity:!0,strokeDashoffset:!0,strokeOpacity:!0,strokeWidth:!0};n.exports=function(n,t){return"number"!=typeof t||e[n]?t:t+"px"}},890:(n,e,t)=>{"use strict";t.r(e),t.d(e,{default:()=>i});var o=t(879),r=t.n(o);function i(n,e,t){var o=n.appendChild(document.createElement("div"));return o.innerHTML=e,r()(o,{width:"100%",textAlign:"center",color:t.colors.textSecondary,height:"20px",marginBottom:"4px"}),o}},764:n=>{n.exports={light:{name:"Light",colors:{menuBarBackground:"rgb(227, 227, 227)",menuBarText:"rgb(36, 36, 36)",panelBackground:"rgb(227, 227, 227)",componentBackground:"rgb(204, 204, 204)",componentBackgroundHover:"rgb(190, 190, 190)",componentBackgroundDisabled:"rgb(200, 200, 200)",componentForeground:"rgb(105, 105, 105)",componentActive:"rgb(36, 36, 36)",textPrimary:"rgb(36, 36, 36)",textSecondary:"rgb(87, 87, 87)",textHover:"rgb(204, 204, 204)",textActive:"rgb(204, 204, 204)",textDisabled:"rgb(180, 180, 180)"}},dark:{name:"Dark",colors:{menuBarBackground:"rgb(35, 35, 35)",menuBarText:"rgb(235, 235, 235)",panelBackground:"rgb(35, 35, 35)",componentBackground:"rgb(54, 54, 54)",componentBackgroundHover:"rgb(76, 76, 76)",componentBackgroundDisabled:"rgb(24, 24, 24)",componentForeground:"rgb(112, 112, 112)",componentActive:"rgb(202, 202, 202)",textPrimary:"rgb(235, 235, 235)",textSecondary:"rgb(181, 181, 181)",textHover:"rgb(235, 235, 235)",textActive:"rgb(54, 54, 54)",textDisabled:"rgb(54, 54, 54)"}},yorha:{name:"YoRHa",colors:{menuBarBackground:"#CCC8B1",menuBarText:"#454138",panelBackground:"#CCC8B1",componentBackground:"#BAB5A1",componentBackgroundHover:"#877F6E",componentBackgroundDisabled:"#DED8C7",componentForeground:"#454138",componentActive:"#978F7E",textPrimary:"#454138",textSecondary:"#454138",textHover:"#CCC8B1",textActive:"#CCC8B1",textDisabled:"#BAB5A6"},font:{fontFamily:"helvetica, sans-serif",fontSize:"14px",fontWeight:"100"}}}},990:(n,e,t)=>{"use strict";t.d(e,{Z:()=>l});var o=t(537),r=t.n(o),i=t(645),a=t.n(i),c=t(19),s=a()(r());s.i(c.Z),s.push([n.id,".guify-container {\n position: relative;\n left: 0;\n width: 100%;\n font-size: 11px;\n z-index: 9999;\n}","",{version:3,sources:["webpack://./src/components/internal/container.css"],names:[],mappings:"AAEA;IACI,kBAAkB;IAClB,OAAO;IACP,WAAW;IACX,eAAe;IACf,aAAa;AACjB",sourcesContent:['@import "../variables.css";\n\n.guify-container {\n position: relative;\n left: 0;\n width: 100%;\n font-size: 11px;\n z-index: 9999;\n}'],sourceRoot:""}]);const l=s},287:(n,e,t)=>{"use strict";t.d(e,{Z:()=>l});var o=t(537),r=t.n(o),i=t(645),a=t.n(i),c=t(19),s=a()(r());s.i(c.Z),s.push([n.id,".guify-bar {\n background-color: var(--color-menu-bar-background);\n height: var(--size-menu-bar-height);\n width: 100%;\n opacity: 1.0;\n position: relative;\n cursor: default;\n}\n\n.guify-bar-title {\n color: var(--color-menu-bar-text);\n text-align: center;\n width: 100%;\n position: absolute;\n top: 0;\n line-height: var(--size-menu-bar-height);\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.guify-bar-button {\n text-align: center;\n border: none;\n cursor: pointer;\n font-family: inherit;\n height: 100%;\n position: absolute;\n top: 0;\n color: var(--color-text-primary);\n background-color: var(--color-component-background);\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n margin: 0;\n\n}\n\n/* Hide default accessibility outlines since we're providing our own visual feedback */\n.guify-bar-button:focus {\n outline: none;\n}\n.guify-bar-button::-moz-focus-inner {\n border: 0;\n}\n\n.guify-bar-button:hover,\n.guify-bar-button:focus {\n color: var(--color-text-hover);\n background-color: var(--color-component-foreground);\n}\n\n.guify-bar-button:active {\n color: var(--color-text-active) !important;\n background-color: var(--color-component-active) !important;\n}","",{version:3,sources:["webpack://./src/components/internal/menu-bar.css"],names:[],mappings:"AAEA;IACI,kDAAkD;IAClD,mCAAmC;IACnC,WAAW;IACX,YAAY;IACZ,kBAAkB;IAClB,eAAe;AACnB;;AAEA;IACI,iCAAiC;IACjC,kBAAkB;IAClB,WAAW;IACX,kBAAkB;IAClB,MAAM;IACN,wCAAwC;IACxC,yBAAyB;IACzB,sBAAsB;IACtB,qBAAqB;IACrB,iBAAiB;AACrB;;AAEA;IACI,kBAAkB;IAClB,YAAY;IACZ,eAAe;IACf,oBAAoB;IACpB,YAAY;IACZ,kBAAkB;IAClB,MAAM;IACN,gCAAgC;IAChC,mDAAmD;IACnD,yBAAyB;IACzB,sBAAsB;IACtB,qBAAqB;IACrB,iBAAiB;IACjB,SAAS;;AAEb;;AAEA,sFAAsF;AACtF;IACI,aAAa;AACjB;AACA;IACI,SAAS;AACb;;AAEA;;IAEI,8BAA8B;IAC9B,mDAAmD;AACvD;;AAEA;IACI,0CAA0C;IAC1C,0DAA0D;AAC9D",sourcesContent:['@import "../variables.css";\n\n.guify-bar {\n background-color: var(--color-menu-bar-background);\n height: var(--size-menu-bar-height);\n width: 100%;\n opacity: 1.0;\n position: relative;\n cursor: default;\n}\n\n.guify-bar-title {\n color: var(--color-menu-bar-text);\n text-align: center;\n width: 100%;\n position: absolute;\n top: 0;\n line-height: var(--size-menu-bar-height);\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.guify-bar-button {\n text-align: center;\n border: none;\n cursor: pointer;\n font-family: inherit;\n height: 100%;\n position: absolute;\n top: 0;\n color: var(--color-text-primary);\n background-color: var(--color-component-background);\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n margin: 0;\n\n}\n\n/* Hide default accessibility outlines since we\'re providing our own visual feedback */\n.guify-bar-button:focus {\n outline: none;\n}\n.guify-bar-button::-moz-focus-inner {\n border: 0;\n}\n\n.guify-bar-button:hover,\n.guify-bar-button:focus {\n color: var(--color-text-hover);\n background-color: var(--color-component-foreground);\n}\n\n.guify-bar-button:active {\n color: var(--color-text-active) !important;\n background-color: var(--color-component-active) !important;\n}'],sourceRoot:""}]);const l=s},153:(n,e,t)=>{"use strict";t.d(e,{Z:()=>l});var o=t(537),r=t.n(o),i=t(645),a=t.n(i),c=t(19),s=a()(r());s.i(c.Z),s.push([n.id,".guify-panel-container {\n position: absolute;\n background: var(--color-panel-background);\n}\n\n.guify-panel {\n padding: 14px;\n /* Last component will have a margin, so reduce padding to account for this */\n padding-bottom: calc(14px - var(--size-component-spacing));\n\n /* all: initial; */\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n cursor: default;\n text-align: left;\n box-sizing: border-box;\n}\n\n.guify-panel.guify-panel-hidden {\n height: 0px;\n display: none;\n}\n\n.guify-panel * {\n box-sizing: content-box;\n box-sizing: initial;\n -webkit-box-sizing: initial;\n -moz-box-sizing: initial;\n}\n\n.guify-panel input {\n font-family: 'Hack';\n font-size: 11px;\n display: inline;\n}\n\n.guify-panel a {\n color: inherit;\n text-decoration: none;\n}\n\n.guify-panel-toggle-button {\n position: absolute;\n top: 0;\n margin: 0;\n padding: 0;\n width: 15px;\n height: 15px;\n line-height: 15px;\n text-align: center;\n border: none;\n cursor: pointer;\n font-family: inherit;\n color: var(--color-text-primary);\n background-color: var(--color-component-background);\n\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n\n}\n\n/* Open/Close button styling */\n.guify-panel-toggle-button svg {\n fill-opacity: 0;\n stroke-width: 3;\n stroke: var(--color-component-foreground);\n}\n\n/* Remove browser default outlines since we're providing our own */\n.guify-panel-toggle-button:focus {\n outline:none;\n}\n.guify-panel-toggle-button::-moz-focus-inner {\n border: 0;\n}\n\n.guify-panel-toggle-button:hover,\n.guify-panel-toggle-button:focus {\n color: var(--color-text-hover);\n background-color: var(--color-component-foreground);\n}\n\n.guify-panel-toggle-button:active {\n color: var(--color-text-active);\n background-color:var(--color-component-active);\n}","",{version:3,sources:["webpack://./src/components/internal/panel.css"],names:[],mappings:"AAEA;IACI,kBAAkB;IAClB,yCAAyC;AAC7C;;AAEA;IACI,aAAa;IACb,6EAA6E;IAC7E,0DAA0D;;IAE1D,mBAAmB;IACnB,yBAAyB;IACzB,sBAAsB;IACtB,qBAAqB;IACrB,iBAAiB;IACjB,eAAe;IACf,gBAAgB;IAChB,sBAAsB;AAC1B;;AAEA;IACI,WAAW;IACX,aAAa;AACjB;;AAEA;IACI,uBAAmB;IAAnB,mBAAmB;IACnB,2BAA2B;IAC3B,wBAAwB;AAC5B;;AAEA;IACI,mBAAmB;IACnB,eAAe;IACf,eAAe;AACnB;;AAEA;IACI,cAAc;IACd,qBAAqB;AACzB;;AAEA;IACI,kBAAkB;IAClB,MAAM;IACN,SAAS;IACT,UAAU;IACV,WAAW;IACX,YAAY;IACZ,iBAAiB;IACjB,kBAAkB;IAClB,YAAY;IACZ,eAAe;IACf,oBAAoB;IACpB,gCAAgC;IAChC,mDAAmD;;IAEnD,yBAAyB;IACzB,sBAAsB;IACtB,qBAAqB;IACrB,iBAAiB;;AAErB;;AAEA,8BAA8B;AAC9B;IACI,eAAe;IACf,eAAe;IACf,yCAAyC;AAC7C;;AAEA,kEAAkE;AAClE;IACI,YAAY;AAChB;AACA;IACI,SAAS;AACb;;AAEA;;IAEI,8BAA8B;IAC9B,mDAAmD;AACvD;;AAEA;IACI,+BAA+B;IAC/B,8CAA8C;AAClD",sourcesContent:["@import \"../variables.css\";\n\n.guify-panel-container {\n position: absolute;\n background: var(--color-panel-background);\n}\n\n.guify-panel {\n padding: 14px;\n /* Last component will have a margin, so reduce padding to account for this */\n padding-bottom: calc(14px - var(--size-component-spacing));\n\n /* all: initial; */\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n cursor: default;\n text-align: left;\n box-sizing: border-box;\n}\n\n.guify-panel.guify-panel-hidden {\n height: 0px;\n display: none;\n}\n\n.guify-panel * {\n box-sizing: initial;\n -webkit-box-sizing: initial;\n -moz-box-sizing: initial;\n}\n\n.guify-panel input {\n font-family: 'Hack';\n font-size: 11px;\n display: inline;\n}\n\n.guify-panel a {\n color: inherit;\n text-decoration: none;\n}\n\n.guify-panel-toggle-button {\n position: absolute;\n top: 0;\n margin: 0;\n padding: 0;\n width: 15px;\n height: 15px;\n line-height: 15px;\n text-align: center;\n border: none;\n cursor: pointer;\n font-family: inherit;\n color: var(--color-text-primary);\n background-color: var(--color-component-background);\n\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n\n}\n\n/* Open/Close button styling */\n.guify-panel-toggle-button svg {\n fill-opacity: 0;\n stroke-width: 3;\n stroke: var(--color-component-foreground);\n}\n\n/* Remove browser default outlines since we're providing our own */\n.guify-panel-toggle-button:focus {\n outline:none;\n}\n.guify-panel-toggle-button::-moz-focus-inner {\n border: 0;\n}\n\n.guify-panel-toggle-button:hover,\n.guify-panel-toggle-button:focus {\n color: var(--color-text-hover);\n background-color: var(--color-component-foreground);\n}\n\n.guify-panel-toggle-button:active {\n color: var(--color-text-active);\n background-color:var(--color-component-active);\n}"],sourceRoot:""}]);const l=s},56:(n,e,t)=>{"use strict";t.d(e,{Z:()=>l});var o=t(537),r=t.n(o),i=t(645),a=t.n(i),c=t(19),s=a()(r());s.i(c.Z),s.push([n.id,".guify-toast-notification {\n box-sizing: border-box;\n position: relative;\n width: 100%;\n /* height: 20px; */\n padding: 8px;\n padding-left: 20px;\n padding-right: 20px;\n text-align: center;\n font-family: 'Hack', monospace;\n font-size: 11px;\n}\n\n.guify-toast-area .guify-toast-notification:nth-child(odd) {\n color: var(--color-text-primary);\n background-color:var(--color-panel-background);\n}\n\n.guify-toast-area .guify-toast-notification:nth-child(even) {\n color: var(--color-text-primary);\n background-color: var(--color-menu-bar-background);\n}\n\n.guify-toast-close-button {\n color: var(--color-text-primary);\n background: transparent;\n position: absolute;\n text-align: center;\n margin-top: auto;\n margin-bottom: auto;\n border: none;\n cursor: pointer;\n top: 0;\n bottom: 0;\n right: 8px;\n}","",{version:3,sources:["webpack://./src/components/internal/toast-area.css"],names:[],mappings:"AAEA;IACI,sBAAsB;IACtB,kBAAkB;IAClB,WAAW;IACX,kBAAkB;IAClB,YAAY;IACZ,kBAAkB;IAClB,mBAAmB;IACnB,kBAAkB;IAClB,8BAA8B;IAC9B,eAAe;AACnB;;AAEA;IACI,gCAAgC;IAChC,8CAA8C;AAClD;;AAEA;IACI,gCAAgC;IAChC,kDAAkD;AACtD;;AAEA;IACI,gCAAgC;IAChC,uBAAuB;IACvB,kBAAkB;IAClB,kBAAkB;IAClB,gBAAgB;IAChB,mBAAmB;IACnB,YAAY;IACZ,eAAe;IACf,MAAM;IACN,SAAS;IACT,UAAU;AACd",sourcesContent:["@import \"../variables.css\";\n\n.guify-toast-notification {\n box-sizing: border-box;\n position: relative;\n width: 100%;\n /* height: 20px; */\n padding: 8px;\n padding-left: 20px;\n padding-right: 20px;\n text-align: center;\n font-family: 'Hack', monospace;\n font-size: 11px;\n}\n\n.guify-toast-area .guify-toast-notification:nth-child(odd) {\n color: var(--color-text-primary);\n background-color:var(--color-panel-background);\n}\n\n.guify-toast-area .guify-toast-notification:nth-child(even) {\n color: var(--color-text-primary);\n background-color: var(--color-menu-bar-background);\n}\n\n.guify-toast-close-button {\n color: var(--color-text-primary);\n background: transparent;\n position: absolute;\n text-align: center;\n margin-top: auto;\n margin-bottom: auto;\n border: none;\n cursor: pointer;\n top: 0;\n bottom: 0;\n right: 8px;\n}"],sourceRoot:""}]);const l=s},54:(n,e,t)=>{"use strict";t.d(e,{Z:()=>l});var o=t(537),r=t.n(o),i=t(645),a=t.n(i),c=t(19),s=a()(r());s.i(c.Z),s.push([n.id,".guify-component-container {\n position: relative;\n min-height: var(--size-component-height);\n line-height: var(--size-component-height);\n margin-bottom: var(--size-component-spacing);\n}","",{version:3,sources:["webpack://./src/components/partials/container.css"],names:[],mappings:"AAEA;IACI,kBAAkB;IAClB,wCAAwC;IACxC,yCAAyC;IACzC,4CAA4C;AAChD",sourcesContent:['@import "../variables.css";\n\n.guify-component-container {\n position: relative;\n min-height: var(--size-component-height);\n line-height: var(--size-component-height);\n margin-bottom: var(--size-component-spacing);\n}'],sourceRoot:""}]);const l=s},142:(n,e,t)=>{"use strict";t.d(e,{Z:()=>l});var o=t(537),r=t.n(o),i=t(645),a=t.n(i),c=t(19),s=a()(r());s.i(c.Z),s.push([n.id,".guify-component-label {\n left: 0;\n width: calc(var(--size-label-width) - 2%);\n display: inline-block;\n margin-right: 2%;\n vertical-align: top;\n min-height: var(--size-component-height);\n line-height: var(--size-component-height);\n\n color: var(--color-text-primary);\n}\n\n/* Disabled styles */\n.disabled .guify-component-label {\n color: var(--color-text-disabled);\n}","",{version:3,sources:["webpack://./src/components/partials/label.css"],names:[],mappings:"AAEA;IACI,OAAO;IACP,yCAAyC;IACzC,qBAAqB;IACrB,gBAAgB;IAChB,mBAAmB;IACnB,wCAAwC;IACxC,yCAAyC;;IAEzC,gCAAgC;AACpC;;AAEA,oBAAoB;AACpB;IACI,iCAAiC;AACrC",sourcesContent:['@import "../variables.css";\n\n.guify-component-label {\n left: 0;\n width: calc(var(--size-label-width) - 2%);\n display: inline-block;\n margin-right: 2%;\n vertical-align: top;\n min-height: var(--size-component-height);\n line-height: var(--size-component-height);\n\n color: var(--color-text-primary);\n}\n\n/* Disabled styles */\n.disabled .guify-component-label {\n color: var(--color-text-disabled);\n}'],sourceRoot:""}]);const l=s},643:(n,e,t)=>{"use strict";t.d(e,{Z:()=>l});var o=t(537),r=t.n(o),i=t(645),a=t.n(i),c=t(19),s=a()(r());s.i(c.Z),s.push([n.id,".guify-value-input {\n position: absolute;\n background-color: var(--color-component-background);\n padding-left: 1%;\n height: var(--size-component-height);\n display: inline-block;\n overflow: hidden;\n border: none;\n\n font-family: 'Hack', monospace;\n font-size: 11px;\n color: var(--color-text-secondary);\n -webkit-user-select: text;\n -moz-user-select: text;\n -ms-user-select: text;\n user-select: text;\n cursor: text;\n line-height: var(--size-component-height);\n word-break: break-all;\n\n box-sizing: border-box !important;\n -moz-box-sizing: border-box !important;\n -webkit-box-sizing: border-box !important;\n}\n\n.guify-value-input-right {\n right: 0 !important;\n}\n\n.disabled .guify-value-input {\n pointer-events: none;\n background-color: var(--color-component-background-disabled);\n color: var(--color-text-disabled);\n}","",{version:3,sources:["webpack://./src/components/partials/value.css"],names:[],mappings:"AAEA;IACI,kBAAkB;IAClB,mDAAmD;IACnD,gBAAgB;IAChB,oCAAoC;IACpC,qBAAqB;IACrB,gBAAgB;IAChB,YAAY;;IAEZ,8BAA8B;IAC9B,eAAe;IACf,kCAAkC;IAClC,yBAAiB;OAAjB,sBAAiB;QAAjB,qBAAiB;YAAjB,iBAAiB;IACjB,YAAY;IACZ,yCAAyC;IACzC,qBAAqB;;IAErB,iCAAiC;IACjC,sCAAsC;IACtC,yCAAyC;AAC7C;;AAEA;IACI,mBAAmB;AACvB;;AAEA;IACI,oBAAoB;IACpB,4DAA4D;IAC5D,iCAAiC;AACrC",sourcesContent:["@import \"../variables.css\";\n\n.guify-value-input {\n position: absolute;\n background-color: var(--color-component-background);\n padding-left: 1%;\n height: var(--size-component-height);\n display: inline-block;\n overflow: hidden;\n border: none;\n\n font-family: 'Hack', monospace;\n font-size: 11px;\n color: var(--color-text-secondary);\n user-select: text;\n cursor: text;\n line-height: var(--size-component-height);\n word-break: break-all;\n\n box-sizing: border-box !important;\n -moz-box-sizing: border-box !important;\n -webkit-box-sizing: border-box !important;\n}\n\n.guify-value-input-right {\n right: 0 !important;\n}\n\n.disabled .guify-value-input {\n pointer-events: none;\n background-color: var(--color-component-background-disabled);\n color: var(--color-text-disabled);\n}"],sourceRoot:""}]);const l=s},351:(n,e,t)=>{"use strict";t.d(e,{Z:()=>l});var o=t(537),r=t.n(o),i=t(645),a=t.n(i),c=t(19),s=a()(r());s.i(c.Z),s.push([n.id,".guify-button {\n box-sizing: border-box !important;\n color: var(--color-text-secondary);\n background-color: var(--color-component-background);\n\n position: absolute;\n text-align: center;\n height: var(--size-component-height);\n line-height: var(--size-component-height);\n padding-top: 0px;\n padding-bottom: 0px;\n width: calc(100% - var(--size-label-width));\n border: none;\n cursor: pointer;\n right: 0;\n font-family: inherit;\n}\n\n.guify-button:focus {\n outline:none;\n}\n.guify-button::-moz-focus-inner {\n border:0;\n}\n\n.guify-button:hover,\n.guify-button:focus {\n color: var(--color-text-hover);\n background-color: var(--color-component-foreground);\n}\n\n.guify-button:active {\n color: var(--color-text-active) !important;\n background-color: var(--color-component-active) !important;\n}\n\n*.disabled > .guify-button {\n pointer-events: none;\n background-color: var(--color-component-background-disabled);\n color: var(--color-text-disabled);\n}","",{version:3,sources:["webpack://./src/components/public/button.css"],names:[],mappings:"AAEA;IACI,iCAAiC;IACjC,kCAAkC;IAClC,mDAAmD;;IAEnD,kBAAkB;IAClB,kBAAkB;IAClB,oCAAoC;IACpC,yCAAyC;IACzC,gBAAgB;IAChB,mBAAmB;IACnB,2CAA2C;IAC3C,YAAY;IACZ,eAAe;IACf,QAAQ;IACR,oBAAoB;AACxB;;AAEA;IACI,YAAY;AAChB;AACA;IACI,QAAQ;AACZ;;AAEA;;IAEI,8BAA8B;IAC9B,mDAAmD;AACvD;;AAEA;IACI,0CAA0C;IAC1C,0DAA0D;AAC9D;;AAEA;IACI,oBAAoB;IACpB,4DAA4D;IAC5D,iCAAiC;AACrC",sourcesContent:['@import "../variables.css";\n\n.guify-button {\n box-sizing: border-box !important;\n color: var(--color-text-secondary);\n background-color: var(--color-component-background);\n\n position: absolute;\n text-align: center;\n height: var(--size-component-height);\n line-height: var(--size-component-height);\n padding-top: 0px;\n padding-bottom: 0px;\n width: calc(100% - var(--size-label-width));\n border: none;\n cursor: pointer;\n right: 0;\n font-family: inherit;\n}\n\n.guify-button:focus {\n outline:none;\n}\n.guify-button::-moz-focus-inner {\n border:0;\n}\n\n.guify-button:hover,\n.guify-button:focus {\n color: var(--color-text-hover);\n background-color: var(--color-component-foreground);\n}\n\n.guify-button:active {\n color: var(--color-text-active) !important;\n background-color: var(--color-component-active) !important;\n}\n\n*.disabled > .guify-button {\n pointer-events: none;\n background-color: var(--color-component-background-disabled);\n color: var(--color-text-disabled);\n}'],sourceRoot:""}]);const l=s},11:(n,e,t)=>{"use strict";t.d(e,{Z:()=>l});var o=t(537),r=t.n(o),i=t(645),a=t.n(i),c=t(19),s=a()(r());s.i(c.Z),s.push([n.id,':root {\n --checkbox-border-width: 4px;\n}\n\ninput[type=checkbox].guify-checkbox {\n opacity: 0;\n appearance: none;\n -moz-appearance: none;\n -webkit-appearance: none;\n margin: 0;\n border-radius: 0;\n cursor: pointer;\n}\n\ninput[type=checkbox].guify-checkbox + label {\n margin: 0;\n}\n\ninput[type=checkbox].guify-checkbox + label:before {\n content: "";\n display: inline-block;\n width: var(--size-component-height);\n height: var(--size-component-height);\n padding: 0;\n margin: 0;\n vertical-align: middle;\n background-color: var(--color-component-background);\n border-radius: 0px;\n cursor: pointer;\n box-sizing: content-box;\n -moz-box-sizing: content-box;\n -webkit-box-sizing: content-box;\n\n}\n\n/* Hover style */\ninput[type=checkbox].guify-checkbox:hover:not(:disabled) + label:before {\n width: calc(var(--size-component-height) - (4px * 2));\n width: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\n height: calc(var(--size-component-height) - (4px * 2));\n height: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\n background-color: var(--color-component-background-hover);\n border: solid 4px var(--color-component-background);\n}\n\n/* Checked style */\ninput[type=checkbox]:checked.guify-checkbox + label:before {\n width: calc(var(--size-component-height) - (4px * 2));\n width: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\n height: calc(var(--size-component-height) - (4px * 2));\n height: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\n background-color: var(--color-component-foreground);\n border: solid 4px var(--color-component-background);\n border: solid var(--checkbox-border-width) var(--color-component-background);\n}\n\n/* Focused and checked */\ninput[type=checkbox]:checked.guify-checkbox:focus + label:before {\n width: calc(var(--size-component-height) - (4px * 2));\n width: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\n height: calc(var(--size-component-height) - (4px * 2));\n height: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\n background-color: var(--color-component-foreground);\n border: solid 4px var(--color-component-background-hover);\n border: solid var(--checkbox-border-width) var(--color-component-background-hover);\n}\n\n/* Focus and unchecked */\ninput[type=checkbox].guify-checkbox:focus + label:before {\n background-color: var(--color-component-background-hover);\n}\n\n/* Disabled styles */\n.disabled input[type=checkbox].guify-checkbox + label {\n pointer-events: none;\n}\n.disabled input[type="checkbox"].guify-checkbox + label::before {\n pointer-events: none;\n background-color: var(--color-component-background-disabled);\n}',"",{version:3,sources:["webpack://./src/components/public/checkbox.css"],names:[],mappings:"AAEA;IACI,4BAA4B;AAChC;;AAEA;IACI,UAAU;IACV,gBAAgB;IAChB,qBAAqB;IACrB,wBAAwB;IACxB,SAAS;IACT,gBAAgB;IAChB,eAAe;AACnB;;AAEA;IACI,SAAS;AACb;;AAEA;IACI,WAAW;IACX,qBAAqB;IACrB,mCAAmC;IACnC,oCAAoC;IACpC,UAAU;IACV,SAAS;IACT,sBAAsB;IACtB,mDAAmD;IACnD,kBAAkB;IAClB,eAAe;IACf,uBAAuB;IACvB,4BAA4B;IAC5B,+BAA+B;;AAEnC;;AAEA,gBAAgB;AAChB;IACI,qDAA8E;IAA9E,8EAA8E;IAC9E,sDAA+E;IAA/E,+EAA+E;IAC/E,yDAAyD;IACzD,mDAAmD;AACvD;;AAEA,kBAAkB;AAClB;IACI,qDAA8E;IAA9E,8EAA8E;IAC9E,sDAA+E;IAA/E,+EAA+E;IAC/E,mDAAmD;IACnD,mDAA4E;IAA5E,4EAA4E;AAChF;;AAEA,wBAAwB;AACxB;IACI,qDAA8E;IAA9E,8EAA8E;IAC9E,sDAA+E;IAA/E,+EAA+E;IAC/E,mDAAmD;IACnD,yDAAkF;IAAlF,kFAAkF;AACtF;;AAEA,wBAAwB;AACxB;IACI,yDAAyD;AAC7D;;AAEA,oBAAoB;AACpB;IACI,oBAAoB;AACxB;AACA;IACI,oBAAoB;IACpB,4DAA4D;AAChE",sourcesContent:['@import "../variables.css";\n\n:root {\n --checkbox-border-width: 4px;\n}\n\ninput[type=checkbox].guify-checkbox {\n opacity: 0;\n appearance: none;\n -moz-appearance: none;\n -webkit-appearance: none;\n margin: 0;\n border-radius: 0;\n cursor: pointer;\n}\n\ninput[type=checkbox].guify-checkbox + label {\n margin: 0;\n}\n\ninput[type=checkbox].guify-checkbox + label:before {\n content: "";\n display: inline-block;\n width: var(--size-component-height);\n height: var(--size-component-height);\n padding: 0;\n margin: 0;\n vertical-align: middle;\n background-color: var(--color-component-background);\n border-radius: 0px;\n cursor: pointer;\n box-sizing: content-box;\n -moz-box-sizing: content-box;\n -webkit-box-sizing: content-box;\n\n}\n\n/* Hover style */\ninput[type=checkbox].guify-checkbox:hover:not(:disabled) + label:before {\n width: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\n height: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\n background-color: var(--color-component-background-hover);\n border: solid 4px var(--color-component-background);\n}\n\n/* Checked style */\ninput[type=checkbox]:checked.guify-checkbox + label:before {\n width: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\n height: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\n background-color: var(--color-component-foreground);\n border: solid var(--checkbox-border-width) var(--color-component-background);\n}\n\n/* Focused and checked */\ninput[type=checkbox]:checked.guify-checkbox:focus + label:before {\n width: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\n height: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\n background-color: var(--color-component-foreground);\n border: solid var(--checkbox-border-width) var(--color-component-background-hover);\n}\n\n/* Focus and unchecked */\ninput[type=checkbox].guify-checkbox:focus + label:before {\n background-color: var(--color-component-background-hover);\n}\n\n/* Disabled styles */\n.disabled input[type=checkbox].guify-checkbox + label {\n pointer-events: none;\n}\n.disabled input[type="checkbox"].guify-checkbox + label::before {\n pointer-events: none;\n background-color: var(--color-component-background-disabled);\n}'],sourceRoot:""}]);const l=s},442:(n,e,t)=>{"use strict";t.d(e,{Z:()=>l});var o=t(537),r=t.n(o),i=t(645),a=t.n(i),c=t(19),s=a()(r());s.i(c.Z),s.push([n.id,"/* Styling for simple-color-picker */\n\n.guify-color .Scp {\n width: 125px;\n height: 100px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n position: relative;\n z-index: 1000;\n cursor: pointer;\n}\n.guify-color .Scp-saturation {\n position: relative;\n width: calc(100% - 25px);\n height: 100%;\n background: linear-gradient(to right, #fff 0%, #f00 100%);\n float: left;\n margin-right: 5px;\n}\n.guify-color .Scp-brightness {\n width: 100%;\n height: 100%;\n background: linear-gradient(to top, #000 0%, rgba(255,255,255,0) 100%);\n}\n.guify-color .Scp-sbSelector {\n border: 1px solid;\n position: absolute;\n width: 14px;\n height: 14px;\n background: #fff;\n border-radius: 10px;\n top: -7px;\n left: -7px;\n box-sizing: border-box;\n z-index: 10;\n}\n.guify-color .Scp-hue {\n width: 20px;\n height: 100%;\n position: relative;\n float: left;\n background: linear-gradient(to bottom, #f00 0%, #f0f 17%, #00f 34%, #0ff 50%, #0f0 67%, #ff0 84%, #f00 100%);\n}\n.guify-color .Scp-hSelector {\n position: absolute;\n background: #fff;\n border-bottom: 1px solid #000;\n right: -3px;\n width: 10px;\n height: 2px;\n}\n\n/* Disabled styles */\n.disabled .guify-color {\n pointer-events: none;\n}","",{version:3,sources:["webpack://./src/components/public/color.css"],names:[],mappings:"AAEA,oCAAoC;;AAEpC;IACI,YAAY;IACZ,aAAa;IACb,yBAAyB;QACrB,sBAAsB;YAClB,qBAAqB;gBACjB,iBAAiB;IAC7B,kBAAkB;IAClB,aAAa;IACb,eAAe;AACnB;AACA;IACI,kBAAkB;IAClB,wBAAwB;IACxB,YAAY;IACZ,yDAAyD;IACzD,WAAW;IACX,iBAAiB;AACrB;AACA;IACI,WAAW;IACX,YAAY;IACZ,sEAAsE;AAC1E;AACA;IACI,iBAAiB;IACjB,kBAAkB;IAClB,WAAW;IACX,YAAY;IACZ,gBAAgB;IAChB,mBAAmB;IACnB,SAAS;IACT,UAAU;IACV,sBAAsB;IACtB,WAAW;AACf;AACA;IACI,WAAW;IACX,YAAY;IACZ,kBAAkB;IAClB,WAAW;IACX,4GAA4G;AAChH;AACA;IACI,kBAAkB;IAClB,gBAAgB;IAChB,6BAA6B;IAC7B,WAAW;IACX,WAAW;IACX,WAAW;AACf;;AAEA,oBAAoB;AACpB;IACI,oBAAoB;AACxB",sourcesContent:['@import "../variables.css";\n\n/* Styling for simple-color-picker */\n\n.guify-color .Scp {\n width: 125px;\n height: 100px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n position: relative;\n z-index: 1000;\n cursor: pointer;\n}\n.guify-color .Scp-saturation {\n position: relative;\n width: calc(100% - 25px);\n height: 100%;\n background: linear-gradient(to right, #fff 0%, #f00 100%);\n float: left;\n margin-right: 5px;\n}\n.guify-color .Scp-brightness {\n width: 100%;\n height: 100%;\n background: linear-gradient(to top, #000 0%, rgba(255,255,255,0) 100%);\n}\n.guify-color .Scp-sbSelector {\n border: 1px solid;\n position: absolute;\n width: 14px;\n height: 14px;\n background: #fff;\n border-radius: 10px;\n top: -7px;\n left: -7px;\n box-sizing: border-box;\n z-index: 10;\n}\n.guify-color .Scp-hue {\n width: 20px;\n height: 100%;\n position: relative;\n float: left;\n background: linear-gradient(to bottom, #f00 0%, #f0f 17%, #00f 34%, #0ff 50%, #0f0 67%, #ff0 84%, #f00 100%);\n}\n.guify-color .Scp-hSelector {\n position: absolute;\n background: #fff;\n border-bottom: 1px solid #000;\n right: -3px;\n width: 10px;\n height: 2px;\n}\n\n/* Disabled styles */\n.disabled .guify-color {\n pointer-events: none;\n}'],sourceRoot:""}]);const l=s},144:(n,e,t)=>{"use strict";t.d(e,{Z:()=>l});var o=t(537),r=t.n(o),i=t(645),a=t.n(i),c=t(19),s=a()(r());s.i(c.Z),s.push([n.id,".guify-display {\n display: inline-block;\n height: unset;\n min-height: var(--size-component-height);\n width: calc(100% - var(--size-label-width));\n border: none;\n color: var(--color-text-secondary);\n font-family: inherit;\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n vertical-align: sub;\n line-height: 1rem;\n -webkit-user-select: text;\n -moz-user-select: text;\n -ms-user-select: text;\n user-select: text;\n}\n\n.disabled .guify-display {\n color: var(--color-text-disabled);\n}","",{version:3,sources:["webpack://./src/components/public/display.css"],names:[],mappings:"AAEA;IACI,qBAAqB;IACrB,aAAa;IACb,wCAAwC;IACxC,2CAA2C;IAC3C,YAAY;IACZ,kCAAkC;IAClC,oBAAoB;IACpB,sBAAsB;IACtB,2BAA2B;IAC3B,8BAA8B;IAC9B,mBAAmB;IACnB,iBAAiB;IACjB,yBAAiB;OAAjB,sBAAiB;QAAjB,qBAAiB;YAAjB,iBAAiB;AACrB;;AAEA;IACI,iCAAiC;AACrC",sourcesContent:['@import "../variables.css";\n\n.guify-display {\n display: inline-block;\n height: unset;\n min-height: var(--size-component-height);\n width: calc(100% - var(--size-label-width));\n border: none;\n color: var(--color-text-secondary);\n font-family: inherit;\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n vertical-align: sub;\n line-height: 1rem;\n user-select: text;\n}\n\n.disabled .guify-display {\n color: var(--color-text-disabled);\n}'],sourceRoot:""}]);const l=s},191:(n,e,t)=>{"use strict";t.d(e,{Z:()=>l});var o=t(537),r=t.n(o),i=t(645),a=t.n(i),c=t(19),s=a()(r());s.i(c.Z),s.push([n.id,".guify-file-container {\n display: inline-block;\n outline: none;\n padding-top: 8px;\n padding-bottom: 8px;\n color: var(--color-text-primary);\n background-color: var(--color-component-background);\n cursor: pointer;\n}\n\n.guify-file-container:hover:not(:disabled),\n.guify-file-container:focus:not(:disabled) {\n color: var(--color-text-hover);\n background-color: var(--color-component-foreground);\n}\n\n.guify-file-container:active:not(:disabled) {\n color: var(--color-text-active) !important;\n background-color: var(--color-component-active) !important;\n}\n\n.guify-dragover:not(:disabled) {\n background-color: var(--color-component-background);\n box-shadow: inset 0 0 0 3px var(--color-component-foreground);\n}\n\n.disabled.guify-file-container {\n pointer-events: none;\n color: var(--color-text-disabled) !important;\n background-color: var(--color-component-background-disabled) !important;\n box-shadow: inset 0 0 0 3px var(--color-component-background-disabled) !important;\n}","",{version:3,sources:["webpack://./src/components/public/file.css"],names:[],mappings:"AAEA;IACI,qBAAqB;IACrB,aAAa;IACb,gBAAgB;IAChB,mBAAmB;IACnB,gCAAgC;IAChC,mDAAmD;IACnD,eAAe;AACnB;;AAEA;;IAEI,8BAA8B;IAC9B,mDAAmD;AACvD;;AAEA;IACI,0CAA0C;IAC1C,0DAA0D;AAC9D;;AAEA;IACI,mDAAmD;IACnD,6DAA6D;AACjE;;AAEA;IACI,oBAAoB;IACpB,4CAA4C;IAC5C,uEAAuE;IACvE,iFAAiF;AACrF",sourcesContent:['@import "../variables.css";\n\n.guify-file-container {\n display: inline-block;\n outline: none;\n padding-top: 8px;\n padding-bottom: 8px;\n color: var(--color-text-primary);\n background-color: var(--color-component-background);\n cursor: pointer;\n}\n\n.guify-file-container:hover:not(:disabled),\n.guify-file-container:focus:not(:disabled) {\n color: var(--color-text-hover);\n background-color: var(--color-component-foreground);\n}\n\n.guify-file-container:active:not(:disabled) {\n color: var(--color-text-active) !important;\n background-color: var(--color-component-active) !important;\n}\n\n.guify-dragover:not(:disabled) {\n background-color: var(--color-component-background);\n box-shadow: inset 0 0 0 3px var(--color-component-foreground);\n}\n\n.disabled.guify-file-container {\n pointer-events: none;\n color: var(--color-text-disabled) !important;\n background-color: var(--color-component-background-disabled) !important;\n box-shadow: inset 0 0 0 3px var(--color-component-background-disabled) !important;\n}'],sourceRoot:""}]);const l=s},211:(n,e,t)=>{"use strict";t.d(e,{Z:()=>l});var o=t(537),r=t.n(o),i=t(645),a=t.n(i),c=t(19),s=a()(r());s.i(c.Z),s.push([n.id,".guify-folder {\n cursor: pointer;\n padding-left: 0.5em;\n color: var(--color-text-primary);\n}\n\n.guify-folder div {\n display: inline-block;\n vertical-align: sub;\n line-height: calc(var(--size-component-height) + 5px);\n}\n\n.guify-folder:hover,\n.guify-folder:focus {\n color: var(--color-text-hover);\n background-color: var(--color-component-foreground);\n outline: none;\n}\n\n\n.guify-folder-contents {\n display: block;\n box-sizing: border-box;\n padding-left: 14px;\n margin-bottom: 5px;\n border-left: 2px solid var(--color-component-background);\n}\n\n.guify-folder-contents.guify-folder-closed {\n height: 0;\n display: none;\n}\n\n.guify-folder .guify-folder-arrow {\n width: 1.5em;\n}\n\n/* Disabled styles */\n\n.guify-folder.disabled {\n pointer-events: none;\n color: var(--color-text-disabled);\n}\n\n.guify-folder.disabled + .guify-folder-contents {\n pointer-events: none;\n}","",{version:3,sources:["webpack://./src/components/public/folder.css"],names:[],mappings:"AAEA;IACI,eAAe;IACf,mBAAmB;IACnB,gCAAgC;AACpC;;AAEA;IACI,qBAAqB;IACrB,mBAAmB;IACnB,qDAAqD;AACzD;;AAEA;;IAEI,8BAA8B;IAC9B,mDAAmD;IACnD,aAAa;AACjB;;;AAGA;IACI,cAAc;IACd,sBAAsB;IACtB,kBAAkB;IAClB,kBAAkB;IAClB,wDAAwD;AAC5D;;AAEA;IACI,SAAS;IACT,aAAa;AACjB;;AAEA;IACI,YAAY;AAChB;;AAEA,oBAAoB;;AAEpB;IACI,oBAAoB;IACpB,iCAAiC;AACrC;;AAEA;IACI,oBAAoB;AACxB",sourcesContent:['@import "../variables.css";\n\n.guify-folder {\n cursor: pointer;\n padding-left: 0.5em;\n color: var(--color-text-primary);\n}\n\n.guify-folder div {\n display: inline-block;\n vertical-align: sub;\n line-height: calc(var(--size-component-height) + 5px);\n}\n\n.guify-folder:hover,\n.guify-folder:focus {\n color: var(--color-text-hover);\n background-color: var(--color-component-foreground);\n outline: none;\n}\n\n\n.guify-folder-contents {\n display: block;\n box-sizing: border-box;\n padding-left: 14px;\n margin-bottom: 5px;\n border-left: 2px solid var(--color-component-background);\n}\n\n.guify-folder-contents.guify-folder-closed {\n height: 0;\n display: none;\n}\n\n.guify-folder .guify-folder-arrow {\n width: 1.5em;\n}\n\n/* Disabled styles */\n\n.guify-folder.disabled {\n pointer-events: none;\n color: var(--color-text-disabled);\n}\n\n.guify-folder.disabled + .guify-folder-contents {\n pointer-events: none;\n}'],sourceRoot:""}]);const l=s},554:(n,e,t)=>{"use strict";t.d(e,{Z:()=>l});var o=t(537),r=t.n(o),i=t(645),a=t.n(i),c=t(19),s=a()(r());s.i(c.Z),s.push([n.id,":root {\n --interval-track-color: var(--color-component-background);\n --interval-thumb-color: var(--color-component-foreground);\n --interval-thumb-highlight: var(--color-component-active);\n\n --interval-track-color-disabled: var(--color-component-background-disabled);\n --interval-thumb-color-disabled: var(--color-text-disabled);\n}\n\n.guify-interval {\n -webkit-appearance: none;\n position: absolute;\n height: var(--size-component-height);\n margin: 0px 0;\n width: 33%;\n left: 54.5%;\n background-color: var(--color-component-background);\n background-color: var(--interval-track-color);\n cursor: ew-resize;\n\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.guify-interval-handle {\n background-color: var(--color-component-foreground);\n background-color: var(--interval-thumb-color);\n position: absolute;\n height: var(--size-component-height);\n min-width: 1px;\n}\n.guify-interval-handle:focus {\n background: var(--color-component-active);\n background: var(--interval-thumb-highlight);\n}\n\n.disabled .guify-interval {\n pointer-events: none;\n background-color: var(--color-component-background-disabled);\n background-color: var(--interval-track-color-disabled);\n}\n\n.disabled .guify-interval .guify-interval-handle {\n background: var(--color-text-disabled);\n background: var(--interval-thumb-color-disabled);\n}","",{version:3,sources:["webpack://./src/components/public/interval.css"],names:[],mappings:"AAEA;IACI,yDAAyD;IACzD,yDAAyD;IACzD,yDAAyD;;IAEzD,2EAA2E;IAC3E,2DAA2D;AAC/D;;AAEA;IACI,wBAAwB;IACxB,kBAAkB;IAClB,oCAAoC;IACpC,aAAa;IACb,UAAU;IACV,WAAW;IACX,mDAA6C;IAA7C,6CAA6C;IAC7C,iBAAiB;;IAEjB,2BAA2B;IAC3B,yBAAyB;IAEzB,sBAAsB;IACtB,qBAAqB;IACrB,iBAAiB;AACrB;AACA;IACI,mDAA6C;IAA7C,6CAA6C;IAC7C,kBAAkB;IAClB,oCAAoC;IACpC,cAAc;AAClB;AACA;IACI,yCAA2C;IAA3C,2CAA2C;AAC/C;;AAEA;IACI,oBAAoB;IACpB,4DAAsD;IAAtD,sDAAsD;AAC1D;;AAEA;IACI,sCAAgD;IAAhD,gDAAgD;AACpD",sourcesContent:['@import "../variables.css";\n\n:root {\n --interval-track-color: var(--color-component-background);\n --interval-thumb-color: var(--color-component-foreground);\n --interval-thumb-highlight: var(--color-component-active);\n\n --interval-track-color-disabled: var(--color-component-background-disabled);\n --interval-thumb-color-disabled: var(--color-text-disabled);\n}\n\n.guify-interval {\n -webkit-appearance: none;\n position: absolute;\n height: var(--size-component-height);\n margin: 0px 0;\n width: 33%;\n left: 54.5%;\n background-color: var(--interval-track-color);\n cursor: ew-resize;\n\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n -khtml-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.guify-interval-handle {\n background-color: var(--interval-thumb-color);\n position: absolute;\n height: var(--size-component-height);\n min-width: 1px;\n}\n.guify-interval-handle:focus {\n background: var(--interval-thumb-highlight);\n}\n\n.disabled .guify-interval {\n pointer-events: none;\n background-color: var(--interval-track-color-disabled);\n}\n\n.disabled .guify-interval .guify-interval-handle {\n background: var(--interval-thumb-color-disabled);\n}'],sourceRoot:""}]);const l=s},115:(n,e,t)=>{"use strict";t.d(e,{Z:()=>l});var o=t(537),r=t.n(o),i=t(645),a=t.n(i),c=t(19),s=a()(r());s.i(c.Z),s.push([n.id,":root {\n --range-track-color: var(--color-component-background);\n --range-thumb-color: var(--color-component-foreground);\n --range-thumb-highlight: var(--color-component-active);\n\n --range-track-color-disabled: var(--color-component-background-disabled);\n --range-thumb-color-disabled: var(--color-text-disabled);\n}\n\ninput[type=range].guify-range {\n -webkit-appearance: none;\n width: 100%;\n height: var(--size-component-height);\n margin: 0px 0;\n padding: 0;\n display: inline-block;\n}\n\n.disabled input[type=range].guify-range {\n pointer-events: none;\n}\n\n/* Remove outlines since we'll be adding our own */\ninput[type=range].guify-range:focus {\n outline: none;\n}\ninput[type=range].guify-range::-moz-focus-outer {\n border: 0;\n}\n\n/* Webkit */\ninput[type=range].guify-range::-webkit-slider-runnable-track {\n width: 100%;\n height: var(--size-component-height);\n cursor: ew-resize;\n background: var(--color-component-background);\n background: var(--range-track-color);\n}\ninput[type=range].guify-range::-webkit-slider-thumb {\n height: var(--size-component-height);\n width: 10px;\n background: var(--color-component-foreground);\n background: var(--range-thumb-color);\n cursor: ew-resize;\n -webkit-appearance: none;\n margin-top: 0px;\n}\ninput[type=range].guify-range:focus::-webkit-slider-runnable-track {\n background: var(--color-component-active);\n background: var(--range-thumb-highlight);\n outline: none;\n}\n\n.disabled input[type=range].guify-range::-webkit-slider-runnable-track { /* Disabled track */\n pointer-events: none;\n background: var(--color-component-background-disabled);\n background: var(--range-track-color-disabled);\n}\n\n.disabled input[type=range].guify-range::-webkit-slider-thumb { /* Disabled thumb */\n pointer-events: none;\n background: var(--color-text-disabled);\n}\n\n/* Gecko */\ninput[type=range].guify-range::-moz-range-track {\n width: 100%;\n height: var(--size-component-height);\n cursor: ew-resize;\n background: var(--color-component-background);\n background: var(--range-track-color);\n}\ninput[type=range].guify-range:focus::-moz-range-track {\n background: var(--color-component-active);\n background: var(--range-thumb-highlight);\n}\ninput[type=range].guify-range::-moz-range-thumb {\n height: var(--size-component-height);\n width: 10px;\n background: var(--color-component-foreground);\n background: var(--range-thumb-color);\n cursor: ew-resize;\n border: none;\n border-radius: 0;\n}\n\n.disabled input[type=range].guify-range::-moz-range-track { /* Disabled track */\n pointer-events: none;\n background: var(--color-component-background-disabled);\n background: var(--range-track-color-disabled);\n}\n\n.disabled input[type=range].guify-range::-moz-range-thumb { /* Disabled thumb */\n pointer-events: none;\n background: var(--color-text-disabled);\n background: var(--range-thumb-color-disabled);\n}","",{version:3,sources:["webpack://./src/components/public/range.css"],names:[],mappings:"AAEA;IACI,sDAAsD;IACtD,sDAAsD;IACtD,sDAAsD;;IAEtD,wEAAwE;IACxE,wDAAwD;AAC5D;;AAEA;IACI,wBAAwB;IACxB,WAAW;IACX,oCAAoC;IACpC,aAAa;IACb,UAAU;IACV,qBAAqB;AACzB;;AAEA;IACI,oBAAoB;AACxB;;AAEA,kDAAkD;AAClD;IACI,aAAa;AACjB;AACA;IACI,SAAS;AACb;;AAEA,WAAW;AACX;IACI,WAAW;IACX,oCAAoC;IACpC,iBAAiB;IACjB,6CAAoC;IAApC,oCAAoC;AACxC;AACA;IACI,oCAAoC;IACpC,WAAW;IACX,6CAAoC;IAApC,oCAAoC;IACpC,iBAAiB;IACjB,wBAAwB;IACxB,eAAe;AACnB;AACA;IACI,yCAAwC;IAAxC,wCAAwC;IACxC,aAAa;AACjB;;AAEA,yEAAyE,mBAAmB;IACxF,oBAAoB;IACpB,sDAA6C;IAA7C,6CAA6C;AACjD;;AAEA,gEAAgE,mBAAmB;IAC/E,oBAAoB;IACpB,sCAAsC;AAC1C;;AAEA,UAAU;AACV;IACI,WAAW;IACX,oCAAoC;IACpC,iBAAiB;IACjB,6CAAoC;IAApC,oCAAoC;AACxC;AACA;IACI,yCAAwC;IAAxC,wCAAwC;AAC5C;AACA;IACI,oCAAoC;IACpC,WAAW;IACX,6CAAoC;IAApC,oCAAoC;IACpC,iBAAiB;IACjB,YAAY;IACZ,gBAAgB;AACpB;;AAEA,4DAA4D,mBAAmB;IAC3E,oBAAoB;IACpB,sDAA6C;IAA7C,6CAA6C;AACjD;;AAEA,4DAA4D,mBAAmB;IAC3E,oBAAoB;IACpB,sCAA6C;IAA7C,6CAA6C;AACjD",sourcesContent:['@import "../variables.css";\n\n:root {\n --range-track-color: var(--color-component-background);\n --range-thumb-color: var(--color-component-foreground);\n --range-thumb-highlight: var(--color-component-active);\n\n --range-track-color-disabled: var(--color-component-background-disabled);\n --range-thumb-color-disabled: var(--color-text-disabled);\n}\n\ninput[type=range].guify-range {\n -webkit-appearance: none;\n width: 100%;\n height: var(--size-component-height);\n margin: 0px 0;\n padding: 0;\n display: inline-block;\n}\n\n.disabled input[type=range].guify-range {\n pointer-events: none;\n}\n\n/* Remove outlines since we\'ll be adding our own */\ninput[type=range].guify-range:focus {\n outline: none;\n}\ninput[type=range].guify-range::-moz-focus-outer {\n border: 0;\n}\n\n/* Webkit */\ninput[type=range].guify-range::-webkit-slider-runnable-track {\n width: 100%;\n height: var(--size-component-height);\n cursor: ew-resize;\n background: var(--range-track-color);\n}\ninput[type=range].guify-range::-webkit-slider-thumb {\n height: var(--size-component-height);\n width: 10px;\n background: var(--range-thumb-color);\n cursor: ew-resize;\n -webkit-appearance: none;\n margin-top: 0px;\n}\ninput[type=range].guify-range:focus::-webkit-slider-runnable-track {\n background: var(--range-thumb-highlight);\n outline: none;\n}\n\n.disabled input[type=range].guify-range::-webkit-slider-runnable-track { /* Disabled track */\n pointer-events: none;\n background: var(--range-track-color-disabled);\n}\n\n.disabled input[type=range].guify-range::-webkit-slider-thumb { /* Disabled thumb */\n pointer-events: none;\n background: var(--color-text-disabled);\n}\n\n/* Gecko */\ninput[type=range].guify-range::-moz-range-track {\n width: 100%;\n height: var(--size-component-height);\n cursor: ew-resize;\n background: var(--range-track-color);\n}\ninput[type=range].guify-range:focus::-moz-range-track {\n background: var(--range-thumb-highlight);\n}\ninput[type=range].guify-range::-moz-range-thumb {\n height: var(--size-component-height);\n width: 10px;\n background: var(--range-thumb-color);\n cursor: ew-resize;\n border: none;\n border-radius: 0;\n}\n\n.disabled input[type=range].guify-range::-moz-range-track { /* Disabled track */\n pointer-events: none;\n background: var(--range-track-color-disabled);\n}\n\n.disabled input[type=range].guify-range::-moz-range-thumb { /* Disabled thumb */\n pointer-events: none;\n background: var(--range-thumb-color-disabled);\n}'],sourceRoot:""}]);const l=s},247:(n,e,t)=>{"use strict";t.d(e,{Z:()=>l});var o=t(537),r=t.n(o),i=t(645),a=t.n(i),c=t(19),s=a()(r());s.i(c.Z),s.push([n.id,".guify-select-dropdown {\n display: inline-block;\n position: absolute;\n width: calc(100% - var(--size-label-width));\n padding-left: 1.5%;\n height: var(--size-component-height);\n border: none;\n border-radius: 0;\n -webkit-appearance: none;\n -moz-appearance: none;\n -o-appearance:none;\n appearance: none;\n font-family: inherit;\n background-color: var(--color-component-background);\n color: var(--color-text-secondary);\n box-sizing: border-box !important;\n -moz-box-sizing: border-box !important;\n -webkit-box-sizing: border-box !important;\n}\n\n/* Disable default outline since we're providing our own */\n.guify-select-dropdown:focus {\n outline: none;\n}\n.guify-select-dropdown::-moz-focus-inner {\n border: 0;\n}\n\n\n.guify-select-dropdown:focus,\n.guify-select-dropdown:hover {\n color: var(--color-text-hover);\n background-color: var(--color-component-foreground);\n}\n\n.guify-select-dropdown::-ms-expand {\n display:none;\n}\n.guify-select-triangle {\n content: ' ';\n border-right: 3px solid transparent;\n border-left: 3px solid transparent;\n line-height: var(--size-component-height);\n position: absolute;\n right: 2.5%;\n z-index: 1;\n pointer-events: none;\n}\n\n.guify-select-triangle--up {\n bottom: 55%;\n border-bottom: 5px solid var(--color-text-secondary);\n border-top: 0px transparent;\n}\n\n.guify-select-triangle--down {\n top: 55%;\n border-top: 5px solid var(--color-text-secondary);\n border-bottom: 0px transparent;\n}\n\n.guify-select-triangle--up-highlight {\n border-bottom-color: var(--color-text-hover);\n}\n\n.guify-select-triangle--down-highlight {\n border-top-color: var(--color-text-hover);\n}\n\n/* Disabled styles */\n\n.disabled .guify-select-dropdown {\n pointer-events: none;\n color: var(--color-text-disabled);\n background-color: var(--color-component-background-disabled);\n}\n\n.disabled *[class^=\"guify-select-triangle\"] {\n border-color: var(--color-text-disabled);\n}\n","",{version:3,sources:["webpack://./src/components/public/select.css"],names:[],mappings:"AAEA;IACI,qBAAqB;IACrB,kBAAkB;IAClB,2CAA2C;IAC3C,kBAAkB;IAClB,oCAAoC;IACpC,YAAY;IACZ,gBAAgB;IAChB,wBAAwB;IACxB,qBAAqB;IACrB,kBAAkB;IAClB,gBAAgB;IAChB,oBAAoB;IACpB,mDAAmD;IACnD,kCAAkC;IAClC,iCAAiC;IACjC,sCAAsC;IACtC,yCAAyC;AAC7C;;AAEA,0DAA0D;AAC1D;IACI,aAAa;AACjB;AACA;IACI,SAAS;AACb;;;AAGA;;IAEI,8BAA8B;IAC9B,mDAAmD;AACvD;;AAEA;IACI,YAAY;AAChB;AACA;IACI,YAAY;IACZ,mCAAmC;IACnC,kCAAkC;IAClC,yCAAyC;IACzC,kBAAkB;IAClB,WAAW;IACX,UAAU;IACV,oBAAoB;AACxB;;AAEA;IACI,WAAW;IACX,oDAAoD;IACpD,2BAA2B;AAC/B;;AAEA;IACI,QAAQ;IACR,iDAAiD;IACjD,8BAA8B;AAClC;;AAEA;IACI,4CAA4C;AAChD;;AAEA;IACI,yCAAyC;AAC7C;;AAEA,oBAAoB;;AAEpB;IACI,oBAAoB;IACpB,iCAAiC;IACjC,4DAA4D;AAChE;;AAEA;IACI,wCAAwC;AAC5C",sourcesContent:['@import "../variables.css";\n\n.guify-select-dropdown {\n display: inline-block;\n position: absolute;\n width: calc(100% - var(--size-label-width));\n padding-left: 1.5%;\n height: var(--size-component-height);\n border: none;\n border-radius: 0;\n -webkit-appearance: none;\n -moz-appearance: none;\n -o-appearance:none;\n appearance: none;\n font-family: inherit;\n background-color: var(--color-component-background);\n color: var(--color-text-secondary);\n box-sizing: border-box !important;\n -moz-box-sizing: border-box !important;\n -webkit-box-sizing: border-box !important;\n}\n\n/* Disable default outline since we\'re providing our own */\n.guify-select-dropdown:focus {\n outline: none;\n}\n.guify-select-dropdown::-moz-focus-inner {\n border: 0;\n}\n\n\n.guify-select-dropdown:focus,\n.guify-select-dropdown:hover {\n color: var(--color-text-hover);\n background-color: var(--color-component-foreground);\n}\n\n.guify-select-dropdown::-ms-expand {\n display:none;\n}\n.guify-select-triangle {\n content: \' \';\n border-right: 3px solid transparent;\n border-left: 3px solid transparent;\n line-height: var(--size-component-height);\n position: absolute;\n right: 2.5%;\n z-index: 1;\n pointer-events: none;\n}\n\n.guify-select-triangle--up {\n bottom: 55%;\n border-bottom: 5px solid var(--color-text-secondary);\n border-top: 0px transparent;\n}\n\n.guify-select-triangle--down {\n top: 55%;\n border-top: 5px solid var(--color-text-secondary);\n border-bottom: 0px transparent;\n}\n\n.guify-select-triangle--up-highlight {\n border-bottom-color: var(--color-text-hover);\n}\n\n.guify-select-triangle--down-highlight {\n border-top-color: var(--color-text-hover);\n}\n\n/* Disabled styles */\n\n.disabled .guify-select-dropdown {\n pointer-events: none;\n color: var(--color-text-disabled);\n background-color: var(--color-component-background-disabled);\n}\n\n.disabled *[class^="guify-select-triangle"] {\n border-color: var(--color-text-disabled);\n}\n'],sourceRoot:""}]);const l=s},532:(n,e,t)=>{"use strict";t.d(e,{Z:()=>l});var o=t(537),r=t.n(o),i=t(645),a=t.n(i),c=t(19),s=a()(r());s.i(c.Z),s.push([n.id,".guify-text-input {\n position: absolute;\n padding-left: 6px;\n height: var(--size-component-height);\n width: calc(100% - var(--size-label-width));\n border: none;\n background: var(--color-component-background);\n color: var(--color-text-secondary);\n font-family: inherit;\n box-sizing: border-box !important;\n resize: vertical;\n}\n\n.guify-text-input:focus {\n outline: none;\n}\n\n.disabled .guify-text-input {\n pointer-events: none;\n color: var(--color-text-disabled);\n background-color: var(--color-component-background-disabled);\n}","",{version:3,sources:["webpack://./src/components/public/text.css"],names:[],mappings:"AAEA;IACI,kBAAkB;IAClB,iBAAiB;IACjB,oCAAoC;IACpC,2CAA2C;IAC3C,YAAY;IACZ,6CAA6C;IAC7C,kCAAkC;IAClC,oBAAoB;IACpB,iCAAiC;IACjC,gBAAgB;AACpB;;AAEA;IACI,aAAa;AACjB;;AAEA;IACI,oBAAoB;IACpB,iCAAiC;IACjC,4DAA4D;AAChE",sourcesContent:['@import "../variables.css";\n\n.guify-text-input {\n position: absolute;\n padding-left: 6px;\n height: var(--size-component-height);\n width: calc(100% - var(--size-label-width));\n border: none;\n background: var(--color-component-background);\n color: var(--color-text-secondary);\n font-family: inherit;\n box-sizing: border-box !important;\n resize: vertical;\n}\n\n.guify-text-input:focus {\n outline: none;\n}\n\n.disabled .guify-text-input {\n pointer-events: none;\n color: var(--color-text-disabled);\n background-color: var(--color-component-background-disabled);\n}'],sourceRoot:""}]);const l=s},146:(n,e,t)=>{"use strict";t.d(e,{Z:()=>l});var o=t(537),r=t.n(o),i=t(645),a=t.n(i),c=t(19),s=a()(r());s.i(c.Z),s.push([n.id,".guify-title {\n box-sizing: border-box;\n width: 100%;\n display: inline-block;\n height: var(--size-component-height);\n vertical-align: top;\n}\n\n.guify-title-text {\n display: inline-block;\n vertical-align: sub;\n height: var(--size-component-height);\n line-height: var(--size-component-height);\n padding-left: 5px;\n padding-right: 5px;\n background-color: var(--color-text-primary);\n color: var(--color-panel-background);\n}\n\n/* Disabled style */\n\n.disabled .guify-title-text {\n background-color: var(--color-text-disabled);\n}","",{version:3,sources:["webpack://./src/components/public/title.css"],names:[],mappings:"AAEA;IACI,sBAAsB;IACtB,WAAW;IACX,qBAAqB;IACrB,oCAAoC;IACpC,mBAAmB;AACvB;;AAEA;IACI,qBAAqB;IACrB,mBAAmB;IACnB,oCAAoC;IACpC,yCAAyC;IACzC,iBAAiB;IACjB,kBAAkB;IAClB,2CAA2C;IAC3C,oCAAoC;AACxC;;AAEA,mBAAmB;;AAEnB;IACI,4CAA4C;AAChD",sourcesContent:['@import "../variables.css";\n\n.guify-title {\n box-sizing: border-box;\n width: 100%;\n display: inline-block;\n height: var(--size-component-height);\n vertical-align: top;\n}\n\n.guify-title-text {\n display: inline-block;\n vertical-align: sub;\n height: var(--size-component-height);\n line-height: var(--size-component-height);\n padding-left: 5px;\n padding-right: 5px;\n background-color: var(--color-text-primary);\n color: var(--color-panel-background);\n}\n\n/* Disabled style */\n\n.disabled .guify-title-text {\n background-color: var(--color-text-disabled);\n}'],sourceRoot:""}]);const l=s},19:(n,e,t)=>{"use strict";t.d(e,{Z:()=>c});var o=t(537),r=t.n(o),i=t(645),a=t.n(i)()(r());a.push([n.id,':root {\n --color-menu-bar-background: "black";\n --color-menu-bar-text: "black";\n --color-panel-background: "black";\n\n --color-component-background: "black";\n --color-component-background-hover: "black";\n --color-component-background-disabled: "black";\n --color-component-foreground: "black";\n --color-component-active: "black";\n\n --color-text-primary: "black";\n --color-text-secondary: "black";\n --color-text-hover: "black";\n --color-text-active: "black";\n --color-text-disabled: "black";\n\n --size-menu-bar-height: 25px;\n --size-component-height: 2rem;\n --size-component-spacing: 5px;\n --size-label-width: 42%;\n\n /* --font-family: "Hack";\n --font-size: initial;\n --font-weight: initial; */\n\n}\n',"",{version:3,sources:["webpack://./src/components/variables.css"],names:[],mappings:"AAAA;IACI,oCAAoC;IACpC,8BAA8B;IAC9B,iCAAiC;;IAEjC,qCAAqC;IACrC,2CAA2C;IAC3C,8CAA8C;IAC9C,qCAAqC;IACrC,iCAAiC;;IAEjC,6BAA6B;IAC7B,+BAA+B;IAC/B,2BAA2B;IAC3B,4BAA4B;IAC5B,8BAA8B;;IAE9B,4BAA4B;IAC5B,6BAA6B;IAC7B,6BAA6B;IAC7B,uBAAuB;;IAEvB;;6BAEyB;;AAE7B",sourcesContent:[':root {\n --color-menu-bar-background: "black";\n --color-menu-bar-text: "black";\n --color-panel-background: "black";\n\n --color-component-background: "black";\n --color-component-background-hover: "black";\n --color-component-background-disabled: "black";\n --color-component-foreground: "black";\n --color-component-active: "black";\n\n --color-text-primary: "black";\n --color-text-secondary: "black";\n --color-text-hover: "black";\n --color-text-active: "black";\n --color-text-disabled: "black";\n\n --size-menu-bar-height: 25px;\n --size-component-height: 2rem;\n --size-component-spacing: 5px;\n --size-label-width: 42%;\n\n /* --font-family: "Hack";\n --font-size: initial;\n --font-weight: initial; */\n\n}\n'],sourceRoot:""}]);const c=a},645:n=>{"use strict";n.exports=function(n){var e=[];return e.toString=function(){return this.map((function(e){var t="",o=void 0!==e[5];return e[4]&&(t+="@supports (".concat(e[4],") {")),e[2]&&(t+="@media ".concat(e[2]," {")),o&&(t+="@layer".concat(e[5].length>0?" ".concat(e[5]):""," {")),t+=n(e),o&&(t+="}"),e[2]&&(t+="}"),e[4]&&(t+="}"),t})).join("")},e.i=function(n,t,o,r,i){"string"==typeof n&&(n=[[null,n,void 0]]);var a={};if(o)for(var c=0;c0?" ".concat(u[5]):""," {").concat(u[1],"}")),u[5]=i),t&&(u[2]?(u[1]="@media ".concat(u[2]," {").concat(u[1],"}"),u[2]=t):u[2]=t),r&&(u[4]?(u[1]="@supports (".concat(u[4],") {").concat(u[1],"}"),u[4]=r):u[4]="".concat(r)),e.push(u))}},e}},537:n=>{"use strict";n.exports=function(n){var e=n[1],t=n[3];if(!t)return e;if("function"==typeof btoa){var o=btoa(unescape(encodeURIComponent(JSON.stringify(t)))),r="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(o),i="/*# ".concat(r," */"),a=t.sources.map((function(n){return"/*# sourceURL=".concat(t.sourceRoot||"").concat(n," */")}));return[e].concat(a).concat([i]).join("\n")}return[e].join("\n")}},879:(n,e,t)=>{var o=t(236),r=t(189),i={float:"cssFloat"},a=t(379);function c(n,e,t){var c=i[e];if(void 0===c&&(c=function(n){var e=r(n),t=o(e);return i[e]=i[n]=i[t]=t,t}(e)),c){if(void 0===t)return n.style[c];n.style[c]=a(c,t)}}function s(n,e){for(var t in e)e.hasOwnProperty(t)&&c(n,t,e[t])}function l(){2===arguments.length?"string"==typeof arguments[1]?arguments[0].style.cssText=arguments[1]:s(arguments[0],arguments[1]):c(arguments[0],arguments[1],arguments[2])}n.exports=l,n.exports.set=l,n.exports.get=function(n,e){return Array.isArray(e)?e.reduce((function(e,t){return e[t]=c(n,t||""),e}),{}):c(n,e||"")}},186:n=>{var e=[],t=[];function o(n,o){if(o=o||{},void 0===n)throw new Error("insert-css: You need to provide a CSS string. Usage: insertCss(cssString[, options]).");var r,i=!0===o.prepend?"prepend":"append",a=void 0!==o.container?o.container:document.querySelector("head"),c=e.indexOf(a);return-1===c&&(c=e.push(a)-1,t[c]={}),void 0!==t[c]&&void 0!==t[c][i]?r=t[c][i]:(r=t[c][i]=function(){var n=document.createElement("style");return n.setAttribute("type","text/css"),n}(),"prepend"===i?a.insertBefore(r,a.childNodes[0]):a.appendChild(r)),65279===n.charCodeAt(0)&&(n=n.substr(1,n.length)),r.styleSheet?r.styleSheet.cssText+=n:r.textContent+=n,r}n.exports=o,n.exports.insertCss=o},114:function(n,e){!function(t){"use strict";function o(n){return"number"==typeof n&&!isNaN(n)||!!(n=(n||"").toString().trim())&&!isNaN(n)}n.exports&&(e=n.exports=o),e.isNumeric=o}()},236:n=>{var e=null,t=["Webkit","Moz","O","ms"];n.exports=function(n){e||(e=document.createElement("div"));var o=e.style;if(n in o)return n;for(var r=n.charAt(0).toUpperCase()+n.slice(1),i=t.length;i>=0;i--){var a=t[i]+r;if(a in o)return a}return!1}},577:n=>{!function(){"use strict";var e="undefined"!=typeof window&&void 0!==window.document?window.document:{},t=n.exports,o=function(){for(var n,t=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],o=0,r=t.length,i={};o{"use strict";var e=[];function t(n){for(var t=-1,o=0;o{"use strict";var e={};n.exports=function(n,t){var o=function(n){if(void 0===e[n]){var t=document.querySelector(n);if(window.HTMLIFrameElement&&t instanceof window.HTMLIFrameElement)try{t=t.contentDocument.head}catch(n){t=null}e[n]=t}return e[n]}(n);if(!o)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");o.appendChild(t)}},216:n=>{"use strict";n.exports=function(n){var e=document.createElement("style");return n.setAttributes(e,n.attributes),n.insert(e,n.options),e}},565:(n,e,t)=>{"use strict";n.exports=function(n){var e=t.nc;e&&n.setAttribute("nonce",e)}},795:n=>{"use strict";n.exports=function(n){var e=n.insertStyleElement(n);return{update:function(t){!function(n,e,t){var o="";t.supports&&(o+="@supports (".concat(t.supports,") {")),t.media&&(o+="@media ".concat(t.media," {"));var r=void 0!==t.layer;r&&(o+="@layer".concat(t.layer.length>0?" ".concat(t.layer):""," {")),o+=t.css,r&&(o+="}"),t.media&&(o+="}"),t.supports&&(o+="}");var i=t.sourceMap;i&&"undefined"!=typeof btoa&&(o+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(i))))," */")),e.styleTagTransform(o,n,e.options)}(e,n,t)},remove:function(){!function(n){if(null===n.parentNode)return!1;n.parentNode.removeChild(n)}(e)}}}},589:n=>{"use strict";n.exports=function(n,e){if(e.styleSheet)e.styleSheet.cssText=n;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(n))}}},621:(n,e,t)=>{var o;!function(r){var i=/^\s+/,a=/\s+$/,c=0,s=r.round,l=r.min,u=r.max,p=r.random;function f(n,e){if(e=e||{},(n=n||"")instanceof f)return n;if(!(this instanceof f))return new f(n,e);var t=function(n){var e,t,o,c={r:0,g:0,b:0},s=1,p=null,f=null,d=null,h=!1,A=!1;return"string"==typeof n&&(n=function(n){n=n.replace(i,"").replace(a,"").toLowerCase();var e,t=!1;if(z[n])n=z[n],t=!0;else if("transparent"==n)return{r:0,g:0,b:0,a:0,format:"name"};return(e=q.rgb.exec(n))?{r:e[1],g:e[2],b:e[3]}:(e=q.rgba.exec(n))?{r:e[1],g:e[2],b:e[3],a:e[4]}:(e=q.hsl.exec(n))?{h:e[1],s:e[2],l:e[3]}:(e=q.hsla.exec(n))?{h:e[1],s:e[2],l:e[3],a:e[4]}:(e=q.hsv.exec(n))?{h:e[1],s:e[2],v:e[3]}:(e=q.hsva.exec(n))?{h:e[1],s:e[2],v:e[3],a:e[4]}:(e=q.hex8.exec(n))?{r:R(e[1]),g:R(e[2]),b:R(e[3]),a:H(e[4]),format:t?"name":"hex8"}:(e=q.hex6.exec(n))?{r:R(e[1]),g:R(e[2]),b:R(e[3]),format:t?"name":"hex"}:(e=q.hex4.exec(n))?{r:R(e[1]+""+e[1]),g:R(e[2]+""+e[2]),b:R(e[3]+""+e[3]),a:H(e[4]+""+e[4]),format:t?"name":"hex8"}:!!(e=q.hex3.exec(n))&&{r:R(e[1]+""+e[1]),g:R(e[2]+""+e[2]),b:R(e[3]+""+e[3]),format:t?"name":"hex"}}(n)),"object"==typeof n&&(W(n.r)&&W(n.g)&&W(n.b)?(e=n.r,t=n.g,o=n.b,c={r:255*O(e,255),g:255*O(t,255),b:255*O(o,255)},h=!0,A="%"===String(n.r).substr(-1)?"prgb":"rgb"):W(n.h)&&W(n.s)&&W(n.v)?(p=T(n.s),f=T(n.v),c=function(n,e,t){n=6*O(n,360),e=O(e,100),t=O(t,100);var o=r.floor(n),i=n-o,a=t*(1-e),c=t*(1-i*e),s=t*(1-(1-i)*e),l=o%6;return{r:255*[t,c,a,a,s,t][l],g:255*[s,t,t,c,a,a][l],b:255*[a,a,s,t,t,c][l]}}(n.h,p,f),h=!0,A="hsv"):W(n.h)&&W(n.s)&&W(n.l)&&(p=T(n.s),d=T(n.l),c=function(n,e,t){var o,r,i;function a(n,e,t){return t<0&&(t+=1),t>1&&(t-=1),t<1/6?n+6*(e-n)*t:t<.5?e:t<2/3?n+(e-n)*(2/3-t)*6:n}if(n=O(n,360),e=O(e,100),t=O(t,100),0===e)o=r=i=t;else{var c=t<.5?t*(1+e):t+e-t*e,s=2*t-c;o=a(s,c,n+1/3),r=a(s,c,n),i=a(s,c,n-1/3)}return{r:255*o,g:255*r,b:255*i}}(n.h,p,d),h=!0,A="hsl"),n.hasOwnProperty("a")&&(s=n.a)),s=P(s),{ok:h,format:n.format||A,r:l(255,u(c.r,0)),g:l(255,u(c.g,0)),b:l(255,u(c.b,0)),a:s}}(n);this._originalInput=n,this._r=t.r,this._g=t.g,this._b=t.b,this._a=t.a,this._roundA=s(100*this._a)/100,this._format=e.format||t.format,this._gradientType=e.gradientType,this._r<1&&(this._r=s(this._r)),this._g<1&&(this._g=s(this._g)),this._b<1&&(this._b=s(this._b)),this._ok=t.ok,this._tc_id=c++}function d(n,e,t){n=O(n,255),e=O(e,255),t=O(t,255);var o,r,i=u(n,e,t),a=l(n,e,t),c=(i+a)/2;if(i==a)o=r=0;else{var s=i-a;switch(r=c>.5?s/(2-i-a):s/(i+a),i){case n:o=(e-t)/s+(e>1)+720)%360;--e;)o.h=(o.h+r)%360,i.push(f(o));return i}function S(n,e){e=e||6;for(var t=f(n).toHsv(),o=t.h,r=t.s,i=t.v,a=[],c=1/e;e--;)a.push(f({h:o,s:r,v:i})),i=(i+c)%1;return a}f.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var n=this.toRgb();return(299*n.r+587*n.g+114*n.b)/1e3},getLuminance:function(){var n,e,t,o=this.toRgb();return n=o.r/255,e=o.g/255,t=o.b/255,.2126*(n<=.03928?n/12.92:r.pow((n+.055)/1.055,2.4))+.7152*(e<=.03928?e/12.92:r.pow((e+.055)/1.055,2.4))+.0722*(t<=.03928?t/12.92:r.pow((t+.055)/1.055,2.4))},setAlpha:function(n){return this._a=P(n),this._roundA=s(100*this._a)/100,this},toHsv:function(){var n=h(this._r,this._g,this._b);return{h:360*n.h,s:n.s,v:n.v,a:this._a}},toHsvString:function(){var n=h(this._r,this._g,this._b),e=s(360*n.h),t=s(100*n.s),o=s(100*n.v);return 1==this._a?"hsv("+e+", "+t+"%, "+o+"%)":"hsva("+e+", "+t+"%, "+o+"%, "+this._roundA+")"},toHsl:function(){var n=d(this._r,this._g,this._b);return{h:360*n.h,s:n.s,l:n.l,a:this._a}},toHslString:function(){var n=d(this._r,this._g,this._b),e=s(360*n.h),t=s(100*n.s),o=s(100*n.l);return 1==this._a?"hsl("+e+", "+t+"%, "+o+"%)":"hsla("+e+", "+t+"%, "+o+"%, "+this._roundA+")"},toHex:function(n){return A(this._r,this._g,this._b,n)},toHexString:function(n){return"#"+this.toHex(n)},toHex8:function(n){return function(n,e,t,o,r){var i=[L(s(n).toString(16)),L(s(e).toString(16)),L(s(t).toString(16)),L(M(o))];return r&&i[0].charAt(0)==i[0].charAt(1)&&i[1].charAt(0)==i[1].charAt(1)&&i[2].charAt(0)==i[2].charAt(1)&&i[3].charAt(0)==i[3].charAt(1)?i[0].charAt(0)+i[1].charAt(0)+i[2].charAt(0)+i[3].charAt(0):i.join("")}(this._r,this._g,this._b,this._a,n)},toHex8String:function(n){return"#"+this.toHex8(n)},toRgb:function(){return{r:s(this._r),g:s(this._g),b:s(this._b),a:this._a}},toRgbString:function(){return 1==this._a?"rgb("+s(this._r)+", "+s(this._g)+", "+s(this._b)+")":"rgba("+s(this._r)+", "+s(this._g)+", "+s(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:s(100*O(this._r,255))+"%",g:s(100*O(this._g,255))+"%",b:s(100*O(this._b,255))+"%",a:this._a}},toPercentageRgbString:function(){return 1==this._a?"rgb("+s(100*O(this._r,255))+"%, "+s(100*O(this._g,255))+"%, "+s(100*O(this._b,255))+"%)":"rgba("+s(100*O(this._r,255))+"%, "+s(100*O(this._g,255))+"%, "+s(100*O(this._b,255))+"%, "+this._roundA+")"},toName:function(){return 0===this._a?"transparent":!(this._a<1)&&(D[A(this._r,this._g,this._b,!0)]||!1)},toFilter:function(n){var e="#"+b(this._r,this._g,this._b,this._a),t=e,o=this._gradientType?"GradientType = 1, ":"";if(n){var r=f(n);t="#"+b(r._r,r._g,r._b,r._a)}return"progid:DXImageTransform.Microsoft.gradient("+o+"startColorstr="+e+",endColorstr="+t+")"},toString:function(n){var e=!!n;n=n||this._format;var t=!1,o=this._a<1&&this._a>=0;return e||!o||"hex"!==n&&"hex6"!==n&&"hex3"!==n&&"hex4"!==n&&"hex8"!==n&&"name"!==n?("rgb"===n&&(t=this.toRgbString()),"prgb"===n&&(t=this.toPercentageRgbString()),"hex"!==n&&"hex6"!==n||(t=this.toHexString()),"hex3"===n&&(t=this.toHexString(!0)),"hex4"===n&&(t=this.toHex8String(!0)),"hex8"===n&&(t=this.toHex8String()),"name"===n&&(t=this.toName()),"hsl"===n&&(t=this.toHslString()),"hsv"===n&&(t=this.toHsvString()),t||this.toHexString()):"name"===n&&0===this._a?this.toName():this.toRgbString()},clone:function(){return f(this.toString())},_applyModification:function(n,e){var t=n.apply(null,[this].concat([].slice.call(e)));return this._r=t._r,this._g=t._g,this._b=t._b,this.setAlpha(t._a),this},lighten:function(){return this._applyModification(y,arguments)},brighten:function(){return this._applyModification(C,arguments)},darken:function(){return this._applyModification(x,arguments)},desaturate:function(){return this._applyModification(g,arguments)},saturate:function(){return this._applyModification(m,arguments)},greyscale:function(){return this._applyModification(v,arguments)},spin:function(){return this._applyModification(k,arguments)},_applyCombination:function(n,e){return n.apply(null,[this].concat([].slice.call(e)))},analogous:function(){return this._applyCombination(E,arguments)},complement:function(){return this._applyCombination(B,arguments)},monochromatic:function(){return this._applyCombination(S,arguments)},splitcomplement:function(){return this._applyCombination(_,arguments)},triad:function(){return this._applyCombination(w,arguments)},tetrad:function(){return this._applyCombination(I,arguments)}},f.fromRatio=function(n,e){if("object"==typeof n){var t={};for(var o in n)n.hasOwnProperty(o)&&(t[o]="a"===o?n[o]:T(n[o]));n=t}return f(n,e)},f.equals=function(n,e){return!(!n||!e)&&f(n).toRgbString()==f(e).toRgbString()},f.random=function(){return f.fromRatio({r:p(),g:p(),b:p()})},f.mix=function(n,e,t){t=0===t?0:t||50;var o=f(n).toRgb(),r=f(e).toRgb(),i=t/100;return f({r:(r.r-o.r)*i+o.r,g:(r.g-o.g)*i+o.g,b:(r.b-o.b)*i+o.b,a:(r.a-o.a)*i+o.a})},f.readability=function(n,e){var t=f(n),o=f(e);return(r.max(t.getLuminance(),o.getLuminance())+.05)/(r.min(t.getLuminance(),o.getLuminance())+.05)},f.isReadable=function(n,e,t){var o,r,i,a,c,s=f.readability(n,e);switch(r=!1,(i=t,"AA"!==(a=((i=i||{level:"AA",size:"small"}).level||"AA").toUpperCase())&&"AAA"!==a&&(a="AA"),"small"!==(c=(i.size||"small").toLowerCase())&&"large"!==c&&(c="small"),o={level:a,size:c}).level+o.size){case"AAsmall":case"AAAlarge":r=s>=4.5;break;case"AAlarge":r=s>=3;break;case"AAAsmall":r=s>=7}return r},f.mostReadable=function(n,e,t){var o,r,i,a,c=null,s=0;r=(t=t||{}).includeFallbackColors,i=t.level,a=t.size;for(var l=0;ls&&(s=o,c=f(e[l]));return f.isReadable(n,c,{level:i,size:a})||!r?c:(t.includeFallbackColors=!1,f.mostReadable(n,["#fff","#000"],t))};var z=f.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},D=f.hexNames=function(n){var e={};for(var t in n)n.hasOwnProperty(t)&&(e[n[t]]=t);return e}(z);function P(n){return n=parseFloat(n),(isNaN(n)||n<0||n>1)&&(n=1),n}function O(n,e){(function(n){return"string"==typeof n&&-1!=n.indexOf(".")&&1===parseFloat(n)})(n)&&(n="100%");var t=function(n){return"string"==typeof n&&-1!=n.indexOf("%")}(n);return n=l(e,u(0,parseFloat(n))),t&&(n=parseInt(n*e,10)/100),r.abs(n-e)<1e-6?1:n%e/parseFloat(e)}function j(n){return l(1,u(0,n))}function R(n){return parseInt(n,16)}function L(n){return 1==n.length?"0"+n:""+n}function T(n){return n<=1&&(n=100*n+"%"),n}function M(n){return r.round(255*parseFloat(n)).toString(16)}function H(n){return R(n)/255}var Z,F,V,q=(F="[\\s|\\(]+("+(Z="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)")+")[,|\\s]+("+Z+")[,|\\s]+("+Z+")\\s*\\)?",V="[\\s|\\(]+("+Z+")[,|\\s]+("+Z+")[,|\\s]+("+Z+")[,|\\s]+("+Z+")\\s*\\)?",{CSS_UNIT:new RegExp(Z),rgb:new RegExp("rgb"+F),rgba:new RegExp("rgba"+V),hsl:new RegExp("hsl"+F),hsla:new RegExp("hsla"+V),hsv:new RegExp("hsv"+F),hsva:new RegExp("hsva"+V),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/});function W(n){return!!q.CSS_UNIT.exec(n)}n.exports?n.exports=f:void 0===(o=function(){return f}.call(e,t,e,n))||(n.exports=o)}(Math)},189:(n,e,t)=>{var o=t(966);n.exports=function(n){return o(n).replace(/\s(\w)/g,(function(n,e){return e.toUpperCase()}))}},788:n=>{n.exports=function(n){return e.test(n)?n.toLowerCase():t.test(n)?(function(n){return n.replace(r,(function(n,e){return e?" "+e:""}))}(n)||n).toLowerCase():o.test(n)?function(n){return n.replace(i,(function(n,e,t){return e+" "+t.toLowerCase().split("").join(" ")}))}(n).toLowerCase():n.toLowerCase()};var e=/\s/,t=/(_|-|\.|:)/,o=/([a-z][A-Z]|[A-Z][a-z])/,r=/[\W_]+(.|$)/g,i=/(.)([A-Z]+)/g},966:(n,e,t)=>{var o=t(788);n.exports=function(n){return o(n).replace(/[\W_]+(.|$)/g,(function(n,e){return e?" "+e:""})).trim()}},877:(n,e,t)=>{var o=t(570),r=t(171),i=r;i.v1=o,i.v4=r,n.exports=i},327:n=>{for(var e=[],t=0;t<256;++t)e[t]=(t+256).toString(16).substr(1);n.exports=function(n,t){var o=t||0,r=e;return[r[n[o++]],r[n[o++]],r[n[o++]],r[n[o++]],"-",r[n[o++]],r[n[o++]],"-",r[n[o++]],r[n[o++]],"-",r[n[o++]],r[n[o++]],"-",r[n[o++]],r[n[o++]],r[n[o++]],r[n[o++]],r[n[o++]],r[n[o++]]].join("")}},217:n=>{var e="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof window.msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto);if(e){var t=new Uint8Array(16);n.exports=function(){return e(t),t}}else{var o=new Array(16);n.exports=function(){for(var n,e=0;e<16;e++)0==(3&e)&&(n=4294967296*Math.random()),o[e]=n>>>((3&e)<<3)&255;return o}}},570:(n,e,t)=>{var o,r,i=t(217),a=t(327),c=0,s=0;n.exports=function(n,e,t){var l=e&&t||0,u=e||[],p=(n=n||{}).node||o,f=void 0!==n.clockseq?n.clockseq:r;if(null==p||null==f){var d=i();null==p&&(p=o=[1|d[0],d[1],d[2],d[3],d[4],d[5]]),null==f&&(f=r=16383&(d[6]<<8|d[7]))}var h=void 0!==n.msecs?n.msecs:(new Date).getTime(),A=void 0!==n.nsecs?n.nsecs:s+1,b=h-c+(A-s)/1e4;if(b<0&&void 0===n.clockseq&&(f=f+1&16383),(b<0||h>c)&&void 0===n.nsecs&&(A=0),A>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");c=h,s=A,r=f;var g=(1e4*(268435455&(h+=122192928e5))+A)%4294967296;u[l++]=g>>>24&255,u[l++]=g>>>16&255,u[l++]=g>>>8&255,u[l++]=255&g;var m=h/4294967296*1e4&268435455;u[l++]=m>>>8&255,u[l++]=255&m,u[l++]=m>>>24&15|16,u[l++]=m>>>16&255,u[l++]=f>>>8|128,u[l++]=255&f;for(var v=0;v<6;++v)u[l+v]=p[v];return e||a(u)}},171:(n,e,t)=>{var o=t(217),r=t(327);n.exports=function(n,e,t){var i=e&&t||0;"string"==typeof n&&(e="binary"===n?new Array(16):null,n=null);var a=(n=n||{}).random||(n.rng||o)();if(a[6]=15&a[6]|64,a[8]=63&a[8]|128,e)for(var c=0;c<16;++c)e[i+c]=a[c];return e||r(a)}},75:function(n,e,t){var o;!function(e){"use strict";function r(){}var i=r.prototype,a=e.EventEmitter;function c(n,e){for(var t=n.length;t--;)if(n[t].listener===e)return t;return-1}function s(n){return function(){return this[n].apply(this,arguments)}}function l(n){return"function"==typeof n||n instanceof RegExp||!(!n||"object"!=typeof n)&&l(n.listener)}i.getListeners=function(n){var e,t,o=this._getEvents();if(n instanceof RegExp)for(t in e={},o)o.hasOwnProperty(t)&&n.test(t)&&(e[t]=o[t]);else e=o[n]||(o[n]=[]);return e},i.flattenListeners=function(n){var e,t=[];for(e=0;e{var e=n&&n.__esModule?()=>n.default:()=>n;return t.d(e,{a:e}),e},t.d=(n,e)=>{for(var o in e)t.o(e,o)&&!t.o(n,o)&&Object.defineProperty(n,o,{enumerable:!0,get:e[o]})},t.o=(n,e)=>Object.prototype.hasOwnProperty.call(n,e),t.r=n=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})};var o={};return(()=>{"use strict";t.r(o),t.d(o,{guify:()=>bt});var n=t(879),e=t.n(n),r=t(764),i=t.n(r);function a(n,e){for(var t=0;t3&&void 0!==arguments[3])||arguments[3];return z(this,a),(o=i.call(this)).root=n,o.opts=e,o.theme=t,o.uuid=(0,w.v4)(),r&&(o.container=E(n,e.label)),o.SetEnabled(e.enabled||!0),o}return e=a,(t=[{key:"SetEnabled",value:function(n){var e,t;this.enabled=n,n?null===(e=this.container)||void 0===e||e.classList.remove("disabled"):null===(t=this.container)||void 0===t||t.classList.add("disabled")}},{key:"Remove",value:function(){this.container&&this.container.parentNode.removeChild(this.container)}}])&&D(e.prototype,t),a}(B()),L=t(146),T={};function M(n){return M="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},M(n)}function H(n,e){return H=Object.setPrototypeOf||function(n,e){return n.__proto__=e,n},H(n,e)}function Z(n,e){if(e&&("object"===M(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(n){if(void 0===n)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return n}(n)}function F(n){return F=Object.setPrototypeOf?Object.getPrototypeOf:function(n){return n.__proto__||Object.getPrototypeOf(n)},F(n)}T.styleTagTransform=y(),T.setAttributes=b(),T.insert=h().bind(null,"head"),T.domAPI=f(),T.insertStyleElement=m(),u()(L.Z,T),L.Z&&L.Z.locals&&L.Z.locals;var V=function(n){!function(n,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");n.prototype=Object.create(e&&e.prototype,{constructor:{value:n,writable:!0,configurable:!0}}),e&&H(n,e)}(r,n);var e,t,o=(e=r,t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(n){return!1}}(),function(){var n,o=F(e);if(t){var r=F(this).constructor;n=Reflect.construct(o,arguments,r)}else n=o.apply(this,arguments);return Z(this,n)});function r(n,e,t){var i;!function(n,e){if(!(n instanceof e))throw new TypeError("Cannot call a class as a function")}(this,r);var a=(i=o.call(this,n,e,t)).container.appendChild(document.createElement("div"));a.classList.add("guify-title");var c=a.appendChild(document.createElement("div"));return c.classList.add("guify-title-text"),c.innerHTML="■ ".concat(e.label," ■"),i}return r}(R),q=t(114),W=t.n(q),U=t(115),N={};N.styleTagTransform=y(),N.setAttributes=b(),N.insert=h().bind(null,"head"),N.domAPI=f(),N.insertStyleElement=m(),u()(U.Z,N),U.Z&&U.Z.locals&&U.Z.locals;var Y=t(142),$={};$.styleTagTransform=y(),$.setAttributes=b(),$.insert=h().bind(null,"head"),$.domAPI=f(),$.insertStyleElement=m(),u()(Y.Z,$),Y.Z&&Y.Z.locals&&Y.Z.locals;const X=function(n,e,t){var o=n.appendChild(document.createElement("div"));return o.classList.add("guify-component-label"),o.innerHTML=e,o};var G=t(643),Q={};Q.styleTagTransform=y(),Q.setAttributes=b(),Q.insert=h().bind(null,"head"),Q.domAPI=f(),Q.insertStyleElement=m(),u()(G.Z,Q),G.Z&&G.Z.locals&&G.Z.locals;const J=function(n,t,o,r,i){var a=n.appendChild(document.createElement("input"));return a.type="text",a.classList.add("guify-value-input"),a.value=t,i||a.classList.add("guify-value-input-right"),e()(a,{width:r}),a};function K(n){return K="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},K(n)}function nn(n,e){for(var t=0;t 0. Got initial value = ".concat(t.initial))}else if(r.minPos=W()(t.min)?t.min:0,r.maxPos=W()(t.max)?t.max:100,r.min=r.minPos,r.max=r.maxPos,r.precision=W()(t.precision)?t.precision:3,r.step=W()(t.step)?t.step:10/Math.pow(10,3),r.initial=W()(t.initial)?t.initial:r.min,0!=r.step){var i=Math.round((r.initial-r.min)/r.step);r.initial=r.min+r.step*i}return r.input.min=r.minPos,r.input.max=r.maxPos,W()(r.step)&&(r.input.step=r.step),r.input.value=r.initial,e()(r.input,{width:"calc(100% - ".concat(o.sizing.labelWidth," - 16% - 0.5em)")}),r.valueComponent=J(r.container,r._Position(r.initial),0,"16%"),t.label&&r.valueComponent.setAttribute("aria-label",t.label+" value"),setTimeout((function(){r.emit("initialized",parseFloat(r.input.value))})),r.userIsModifying=!1,r.input.addEventListener("focus",(function(){r.focused=!0})),r.input.addEventListener("blur",(function(){r.focused=!1})),r.input.addEventListener("mouseup",(function(){r.input.blur()})),r.input.oninput=function(n){var e=parseFloat(n.target.value),t=r._Value(e);r.valueComponent.value=r._FormatNumber(t,r.precision),r.emit("input",t)},r.valueComponent.onchange=function(){var n=r.valueComponent.value;if(Number(parseFloat(n))==n){var e=parseFloat(n);e=r._ValidatedInputValue(e),r.valueComponent.value=e,r.emit("input",e),r.lastValue=e}else r.valueComponent.value=r.lastValue},r}return t=c,o=[{key:"_Value",value:function(n){if("log"===this.scale){var e=(n-this.minPos)*this.logScale+this.min;return Math.exp(e)}return n}},{key:"_Position",value:function(n){return"log"===this.scale?this.minPos+(Math.log(n)-this.min)/this.logScale:n}},{key:"_ValidatedInputValue",value:function(n){var e;return"log"===this.scale?e=Math.min(Math.max(n,Math.exp(this.min)),Math.exp(this.max)):(e=Math.min(Math.max(n,this.min),this.max),e=Math.ceil((e-this.min)/this.step)*this.step+this.min),e}},{key:"SetValue",value:function(n){var e=this._ValidatedInputValue(n);!0!==this.focused&&(this.valueComponent.value=this._FormatNumber(e,this.precision),this.input.value=this._Position(e),this.lastValue=e)}},{key:"GetValue",value:function(){return this._Value(this.input.value)}},{key:"_FormatNumber",value:function(n,e){return n.toFixed(e).replace(/\.?0*$/,"")}}],o&&nn(t.prototype,o),c}(R),an=t(351),cn={};function sn(n){return sn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},sn(n)}function ln(n,e){return ln=Object.setPrototypeOf||function(n,e){return n.__proto__=e,n},ln(n,e)}function un(n,e){if(e&&("object"===sn(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(n){if(void 0===n)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return n}(n)}function pn(n){return pn=Object.setPrototypeOf?Object.getPrototypeOf:function(n){return n.__proto__||Object.getPrototypeOf(n)},pn(n)}cn.styleTagTransform=y(),cn.setAttributes=b(),cn.insert=h().bind(null,"head"),cn.domAPI=f(),cn.insertStyleElement=m(),u()(an.Z,cn),an.Z&&an.Z.locals&&an.Z.locals;var fn=function(n){!function(n,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");n.prototype=Object.create(e&&e.prototype,{constructor:{value:n,writable:!0,configurable:!0}}),e&&ln(n,e)}(r,n);var e,t,o=(e=r,t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(n){return!1}}(),function(){var n,o=pn(e);if(t){var r=pn(this).constructor;n=Reflect.construct(o,arguments,r)}else n=o.apply(this,arguments);return un(this,n)});function r(n,e,t){var i;return function(n,e){if(!(n instanceof e))throw new TypeError("Cannot call a class as a function")}(this,r),(i=o.call(this,n,e,t)).label=X(i.container,""),i.input=i.container.appendChild(document.createElement("button")),i.input.classList.add("guify-button"),i.input.textContent=e.label,i.button=i.input,i.input.addEventListener("click",e.action),i.input.addEventListener("mouseup",(function(){i.input.blur()})),i}return r}(R),dn=t(11),hn={};function An(n){return An="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},An(n)}function bn(n,e){for(var t=0;t>16&255)/255,g:(n>>8&255)/255,b:(255&n)/255}}(this._hexNumber),t=e.g,o=e.b;this._rgba.r=e.r,this._rgba.g=t,this._rgba.b=o;var r=function(n){var e,t=n.r,o=n.g,r=n.b,i=Math.max(t,o,r),a=Math.min(t,o,r),c=i-a,s=0===i?0:c/i,l=i;if(i==a)e=0;else{switch(i){case t:e=(o-r)/c+(o\n
\n
\n \n
\n
\n
\n ',this.$saturation=this.$el.querySelector(".Scp-saturation"),this.$hue=this.$el.querySelector(".Scp-hue"),this.$sbSelector=this.$el.querySelector(".Scp-sbSelector"),this.$hSelector=this.$el.querySelector(".Scp-hSelector"),this.$saturation.addEventListener("mousedown",this._onSaturationMouseDown),this.$saturation.addEventListener("touchstart",this._onSaturationMouseDown),this.$hue.addEventListener("mousedown",this._onHueMouseDown),this.$hue.addEventListener("touchstart",this._onHueMouseDown),n.el&&this.appendTo(n.el),n.background&&this.setBackgroundColor(n.background),n.widthUnits&&(this._widthUnits=n.widthUnits),n.heightUnits&&(this._heightUnits=n.heightUnits),this.setSize(n.width||175,n.height||150),this.setColor(n.color)}var e=n.prototype;return e.appendTo=function(n){return"string"==typeof n?document.querySelector(n).appendChild(this.$el):n.appendChild(this.$el),this},e.remove=function(){this._callbacks=[],this._onSaturationMouseUp(),this._onHueMouseUp(),this.$saturation.removeEventListener("mousedown",this._onSaturationMouseDown),this.$saturation.removeEventListener("touchstart",this._onSaturationMouseDown),this.$hue.removeEventListener("mousedown",this._onHueMouseDown),this.$hue.removeEventListener("touchstart",this._onHueMouseDown),this.$el.parentNode&&this.$el.parentNode.removeChild(this.$el)},e.setColor=function(n){this._inputIsNumber=Fn(n),this.color.fromHex(n);var e=this.color.hsv,t=e.h,o=e.s,r=e.v;return isNaN(t)||(this.hue=t),this._moveSelectorTo(this._saturationWidth*o,(1-r)*this._hueHeight),this._moveHueTo((1-this.hue)*this._hueHeight),this._updateHue(),this},e.setSize=function(n,e){return this.width=n,this.height=e,this.$el.style.width=this.width+this._widthUnits,this.$el.style.height=this.height+this._heightUnits,this._saturationWidth=this.width-25,this.$saturation.style.width=this._saturationWidth+"px",this._hueHeight=this.height,this._maxHue=this._hueHeight-2,this},e.setBackgroundColor=function(n){return this.backgroundColor.fromHex(n),this.$el.style.padding="5px",this.$el.style.background=this.backgroundColor.hexString,this},e.setNoBackground=function(){return this.$el.style.padding="0px",this.$el.style.background="none",this},e.onChange=function(n){return this._callbacks.indexOf(n)<0&&(this._callbacks.push(n),n(this.getHexString())),this},e.getColor=function(){return this._inputIsNumber?this.getHexNumber():this.getHexString()},e.getHexString=function(){return this.color.hexString.toUpperCase()},e.getHexNumber=function(){return this.color.hex},e.getRGB=function(){return this.color.rgb},e.getHSV=function(){return this.color.hsv},e.isDark=function(){return this.color.isDark},e.isLight=function(){return this.color.isLight},e._moveSelectorTo=function(n,e){this.position.x=Vn(n,0,this._saturationWidth),this.position.y=Vn(e,0,this._hueHeight),this.$sbSelector.style.transform="translate("+this.position.x+"px, "+this.position.y+"px)"},e._updateColorFromPosition=function(){this.color.fromHsv({h:this.hue,s:this.position.x/this._saturationWidth,v:1-this.position.y/this._hueHeight}),this._updateColor()},e._moveHueTo=function(n){this._huePosition=Vn(n,0,this._maxHue),this.$hSelector.style.transform="translateY("+this._huePosition+"px)"},e._updateHueFromPosition=function(){var n=this.getHSV();this.hue=1-this._huePosition/this._maxHue,this.color.fromHsv({h:this.hue,s:n.s,v:n.v}),this._updateHue()},e._updateHue=function(){this.hueColor.fromHsv({h:this.hue,s:1,v:1}),this.$saturation.style.background="linear-gradient(to right, #fff, "+this.hueColor.hexString+")",this._updateColor()},e._updateColor=function(){this.$sbSelector.style.background=this.getHexString(),this.$sbSelector.style.borderColor=this.isDark()?"#fff":"#000",this._triggerChange()},e._triggerChange=function(){var n=this;this._callbacks.forEach((function(e){return e(n.getHexString())}))},Zn(n,[{key:"isChoosing",get:function(){return this._isChoosing}}]),n}();(0,Mn.insertCss)(".Scp{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative}.Scp-saturation{position:relative;height:100%;background:linear-gradient(90deg,#fff,red);float:left;margin-right:5px}.Scp-brightness{width:100%;height:100%;background:linear-gradient(hsla(0,0%,100%,0),#000)}.Scp-sbSelector{border:2px solid #fff;position:absolute;width:14px;height:14px;background:#fff;border-radius:10px;top:-7px;left:-7px;box-sizing:border-box;z-index:10}.Scp-hue{width:20px;height:100%;position:relative;float:left;background:linear-gradient(red,#f0f 17%,#00f 34%,#0ff 50%,#0f0 67%,#ff0 84%,red)}.Scp-hSelector{position:absolute;background:#fff;border-bottom:1px solid #000;right:-3px;width:10px;height:2px}");const $n=Yn;var Xn=t(621),Gn=t.n(Xn),Qn=t(442),Jn={};function Kn(n){return Kn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},Kn(n)}function ne(n,e){for(var t=0;t\n \n \n '}}])&&et(o.prototype,r),s}(R),at=t(56),ct={};function st(n){return st="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},st(n)}function lt(n,e){for(var t=0;t1&&void 0!==arguments[1]?arguments[1]:5e3,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;console.log("[Toast] "+n);var r=this.element.appendChild(document.createElement("div"));r.classList.add("guify-toast-notification"),r.setAttribute("aria-live","polite"),r.innerHTML=n,e()(r,{});var i,a=r.appendChild(document.createElement("button"));a.innerHTML="✖",a.classList.add("guify-toast-close-button");var c=function(){r.blur(),e()(r,{opacity:"0"}),clearTimeout(i),i=setTimeout((function(){r&&r.parentNode.removeChild(r)}),o)};i=setTimeout(c,t),a.onclick=c}}],o&<(t.prototype,o),c}(R);function ht(n,e){for(var t=0;t1&&void 0!==arguments[1]?arguments[1]:{};if(!Array.isArray(n)){var o=Object.assign(n,t);return this._Register(o)}n.forEach((function(n){var o=Object.assign(n,t);e._Register(o)}))}},{key:"Remove",value:function(n){n.Remove(),this.loadedComponents=this.loadedComponents.filter((function(e){return e!==n}))}},{key:"_Register",value:function(n){if(n.object&&n.property&&void 0===n.object[n.property])throw new Error("Object ".concat(n.object," has no property '").concat(n.property,"'"));n.object&&n.property&&(n.initial=n.object[n.property]);var e=this.panel.panel;if(n.folder){var t=this.loadedComponents.find((function(e){return e===n.folder||"folder"===e.opts.type&&e.opts.label===n.folder}));if(!t)throw new Error("No folder exists with the name ".concat(n.folder));e=t.folderContainer}var o=this.componentManager.Create(e,n);return n.object&&n.property&&(o.binding={object:n.object,property:n.property}),o.on&&(o.on("initialized",(function(e){n.onInitialize&&n.onInitialize(e)})),o.on("input",(function(e){n.object&&n.property&&(n.object[n.property]=e),n.onChange&&n.onChange(e)}))),this.loadedComponents.push(o),o}},{key:"Toast",value:function(n){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:5e3,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;this.toaster.CreateToast(n,e,t)}},{key:"ToggleFullscreen",value:function(){qe().isFullscreen?qe().exit():(console.log("Request fullscreen"),qe().request(this.opts.root))}},{key:"_SetAllEnabled",value:function(n){this.loadedComponents.forEach((function(e){e.SetEnabled(n)}))}}],o&&ht(t.prototype,o),n}(),bt=At})(),o})()})); +!function(e,n){if("object"==typeof exports&&"object"==typeof module)module.exports=n();else if("function"==typeof define&&define.amd)define([],n);else{var t=n();for(var o in t)("object"==typeof exports?exports:e)[o]=t[o]}}(self,(function(){return(()=>{var e={379:e=>{var n={animationIterationCount:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridRow:!0,gridColumn:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,stopOpacity:!0,strokeDashoffset:!0,strokeOpacity:!0,strokeWidth:!0};e.exports=function(e,t){return"number"!=typeof t||n[e]?t:t+"px"}},890:(e,n,t)=>{"use strict";t.r(n),t.d(n,{default:()=>i});var o=t(879),r=t.n(o);function i(e,n,t){var o=e.appendChild(document.createElement("div"));return o.innerHTML=n,r()(o,{width:"100%",textAlign:"center",color:t.colors.textSecondary,height:"20px",marginBottom:"4px"}),o}},764:e=>{e.exports={light:{name:"Light",colors:{menuBarBackground:"rgb(227, 227, 227)",menuBarText:"rgb(36, 36, 36)",panelBackground:"rgb(227, 227, 227)",componentBackground:"rgb(204, 204, 204)",componentBackgroundHover:"rgb(190, 190, 190)",componentBackgroundDisabled:"rgb(200, 200, 200)",componentForeground:"rgb(105, 105, 105)",componentActive:"rgb(36, 36, 36)",textPrimary:"rgb(36, 36, 36)",textSecondary:"rgb(87, 87, 87)",textHover:"rgb(204, 204, 204)",textActive:"rgb(204, 204, 204)",textDisabled:"rgb(180, 180, 180)"}},dark:{name:"Dark",colors:{menuBarBackground:"rgb(35, 35, 35)",menuBarText:"rgb(235, 235, 235)",panelBackground:"rgb(35, 35, 35)",componentBackground:"rgb(54, 54, 54)",componentBackgroundHover:"rgb(76, 76, 76)",componentBackgroundDisabled:"rgb(24, 24, 24)",componentForeground:"rgb(112, 112, 112)",componentActive:"rgb(202, 202, 202)",textPrimary:"rgb(235, 235, 235)",textSecondary:"rgb(181, 181, 181)",textHover:"rgb(235, 235, 235)",textActive:"rgb(54, 54, 54)",textDisabled:"rgb(54, 54, 54)"}},yorha:{name:"YoRHa",colors:{menuBarBackground:"#CCC8B1",menuBarText:"#454138",panelBackground:"#CCC8B1",componentBackground:"#BAB5A1",componentBackgroundHover:"#877F6E",componentBackgroundDisabled:"#DED8C7",componentForeground:"#454138",componentActive:"#978F7E",textPrimary:"#454138",textSecondary:"#454138",textHover:"#CCC8B1",textActive:"#CCC8B1",textDisabled:"#BAB5A6"},font:{fontFamily:"helvetica, sans-serif",fontSize:"14px",fontWeight:"100"}}}},990:(e,n,t)=>{"use strict";t.d(n,{Z:()=>l});var o=t(537),r=t.n(o),i=t(645),a=t.n(i),c=t(19),s=a()(r());s.i(c.Z),s.push([e.id,".guify-container {\n position: relative;\n left: 0;\n width: 100%;\n font-size: 11px;\n z-index: 9999;\n}","",{version:3,sources:["webpack://./src/components/internal/container.css"],names:[],mappings:"AAEA;IACI,kBAAkB;IAClB,OAAO;IACP,WAAW;IACX,eAAe;IACf,aAAa;AACjB",sourcesContent:['@import "../variables.css";\n\n.guify-container {\n position: relative;\n left: 0;\n width: 100%;\n font-size: 11px;\n z-index: 9999;\n}'],sourceRoot:""}]);const l=s},287:(e,n,t)=>{"use strict";t.d(n,{Z:()=>l});var o=t(537),r=t.n(o),i=t(645),a=t.n(i),c=t(19),s=a()(r());s.i(c.Z),s.push([e.id,".guify-bar {\n background-color: var(--color-menu-bar-background);\n height: var(--size-menu-bar-height);\n width: 100%;\n opacity: 1.0;\n position: relative;\n cursor: default;\n}\n\n.guify-bar-title {\n color: var(--color-menu-bar-text);\n text-align: center;\n width: 100%;\n position: absolute;\n top: 0;\n line-height: var(--size-menu-bar-height);\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.guify-bar-button {\n text-align: center;\n border: none;\n cursor: pointer;\n font-family: inherit;\n height: 100%;\n position: absolute;\n top: 0;\n color: var(--color-text-primary);\n background-color: var(--color-component-background);\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n margin: 0;\n\n}\n\n/* Hide default accessibility outlines since we're providing our own visual feedback */\n.guify-bar-button:focus {\n outline: none;\n}\n.guify-bar-button::-moz-focus-inner {\n border: 0;\n}\n\n.guify-bar-button:hover,\n.guify-bar-button:focus {\n color: var(--color-text-hover);\n background-color: var(--color-component-foreground);\n}\n\n.guify-bar-button:active {\n color: var(--color-text-active) !important;\n background-color: var(--color-component-active) !important;\n}","",{version:3,sources:["webpack://./src/components/internal/menu-bar.css"],names:[],mappings:"AAEA;IACI,kDAAkD;IAClD,mCAAmC;IACnC,WAAW;IACX,YAAY;IACZ,kBAAkB;IAClB,eAAe;AACnB;;AAEA;IACI,iCAAiC;IACjC,kBAAkB;IAClB,WAAW;IACX,kBAAkB;IAClB,MAAM;IACN,wCAAwC;IACxC,yBAAyB;IACzB,sBAAsB;IACtB,qBAAqB;IACrB,iBAAiB;AACrB;;AAEA;IACI,kBAAkB;IAClB,YAAY;IACZ,eAAe;IACf,oBAAoB;IACpB,YAAY;IACZ,kBAAkB;IAClB,MAAM;IACN,gCAAgC;IAChC,mDAAmD;IACnD,yBAAyB;IACzB,sBAAsB;IACtB,qBAAqB;IACrB,iBAAiB;IACjB,SAAS;;AAEb;;AAEA,sFAAsF;AACtF;IACI,aAAa;AACjB;AACA;IACI,SAAS;AACb;;AAEA;;IAEI,8BAA8B;IAC9B,mDAAmD;AACvD;;AAEA;IACI,0CAA0C;IAC1C,0DAA0D;AAC9D",sourcesContent:['@import "../variables.css";\n\n.guify-bar {\n background-color: var(--color-menu-bar-background);\n height: var(--size-menu-bar-height);\n width: 100%;\n opacity: 1.0;\n position: relative;\n cursor: default;\n}\n\n.guify-bar-title {\n color: var(--color-menu-bar-text);\n text-align: center;\n width: 100%;\n position: absolute;\n top: 0;\n line-height: var(--size-menu-bar-height);\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.guify-bar-button {\n text-align: center;\n border: none;\n cursor: pointer;\n font-family: inherit;\n height: 100%;\n position: absolute;\n top: 0;\n color: var(--color-text-primary);\n background-color: var(--color-component-background);\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n margin: 0;\n\n}\n\n/* Hide default accessibility outlines since we\'re providing our own visual feedback */\n.guify-bar-button:focus {\n outline: none;\n}\n.guify-bar-button::-moz-focus-inner {\n border: 0;\n}\n\n.guify-bar-button:hover,\n.guify-bar-button:focus {\n color: var(--color-text-hover);\n background-color: var(--color-component-foreground);\n}\n\n.guify-bar-button:active {\n color: var(--color-text-active) !important;\n background-color: var(--color-component-active) !important;\n}'],sourceRoot:""}]);const l=s},153:(e,n,t)=>{"use strict";t.d(n,{Z:()=>l});var o=t(537),r=t.n(o),i=t(645),a=t.n(i),c=t(19),s=a()(r());s.i(c.Z),s.push([e.id,".guify-panel-container {\n position: absolute;\n background: var(--color-panel-background);\n}\n\n.guify-panel {\n padding: 14px;\n /* Last component will have a margin, so reduce padding to account for this */\n padding-bottom: calc(14px - var(--size-component-spacing));\n\n /* all: initial; */\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n cursor: default;\n text-align: left;\n box-sizing: border-box;\n}\n\n.guify-panel.guify-panel-hidden {\n height: 0px;\n display: none;\n}\n\n.guify-panel * {\n box-sizing: content-box;\n box-sizing: initial;\n -webkit-box-sizing: initial;\n -moz-box-sizing: initial;\n}\n\n.guify-panel input {\n font-family: 'Hack';\n font-size: 11px;\n display: inline;\n}\n\n.guify-panel a {\n color: inherit;\n text-decoration: none;\n}\n\n.guify-panel-toggle-button {\n position: absolute;\n top: 0;\n margin: 0;\n padding: 0;\n width: 15px;\n height: 15px;\n line-height: 15px;\n text-align: center;\n border: none;\n cursor: pointer;\n font-family: inherit;\n color: var(--color-text-primary);\n background-color: var(--color-component-background);\n\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n\n}\n\n/* Open/Close button styling */\n.guify-panel-toggle-button svg {\n fill-opacity: 0;\n stroke-width: 3;\n stroke: var(--color-component-foreground);\n}\n\n/* Remove browser default outlines since we're providing our own */\n.guify-panel-toggle-button:focus {\n outline:none;\n}\n.guify-panel-toggle-button::-moz-focus-inner {\n border: 0;\n}\n\n.guify-panel-toggle-button:hover,\n.guify-panel-toggle-button:focus {\n color: var(--color-text-hover);\n background-color: var(--color-component-foreground);\n}\n\n.guify-panel-toggle-button:active {\n color: var(--color-text-active);\n background-color:var(--color-component-active);\n}","",{version:3,sources:["webpack://./src/components/internal/panel.css"],names:[],mappings:"AAEA;IACI,kBAAkB;IAClB,yCAAyC;AAC7C;;AAEA;IACI,aAAa;IACb,6EAA6E;IAC7E,0DAA0D;;IAE1D,mBAAmB;IACnB,yBAAyB;IACzB,sBAAsB;IACtB,qBAAqB;IACrB,iBAAiB;IACjB,eAAe;IACf,gBAAgB;IAChB,sBAAsB;AAC1B;;AAEA;IACI,WAAW;IACX,aAAa;AACjB;;AAEA;IACI,uBAAmB;IAAnB,mBAAmB;IACnB,2BAA2B;IAC3B,wBAAwB;AAC5B;;AAEA;IACI,mBAAmB;IACnB,eAAe;IACf,eAAe;AACnB;;AAEA;IACI,cAAc;IACd,qBAAqB;AACzB;;AAEA;IACI,kBAAkB;IAClB,MAAM;IACN,SAAS;IACT,UAAU;IACV,WAAW;IACX,YAAY;IACZ,iBAAiB;IACjB,kBAAkB;IAClB,YAAY;IACZ,eAAe;IACf,oBAAoB;IACpB,gCAAgC;IAChC,mDAAmD;;IAEnD,yBAAyB;IACzB,sBAAsB;IACtB,qBAAqB;IACrB,iBAAiB;;AAErB;;AAEA,8BAA8B;AAC9B;IACI,eAAe;IACf,eAAe;IACf,yCAAyC;AAC7C;;AAEA,kEAAkE;AAClE;IACI,YAAY;AAChB;AACA;IACI,SAAS;AACb;;AAEA;;IAEI,8BAA8B;IAC9B,mDAAmD;AACvD;;AAEA;IACI,+BAA+B;IAC/B,8CAA8C;AAClD",sourcesContent:["@import \"../variables.css\";\n\n.guify-panel-container {\n position: absolute;\n background: var(--color-panel-background);\n}\n\n.guify-panel {\n padding: 14px;\n /* Last component will have a margin, so reduce padding to account for this */\n padding-bottom: calc(14px - var(--size-component-spacing));\n\n /* all: initial; */\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n cursor: default;\n text-align: left;\n box-sizing: border-box;\n}\n\n.guify-panel.guify-panel-hidden {\n height: 0px;\n display: none;\n}\n\n.guify-panel * {\n box-sizing: initial;\n -webkit-box-sizing: initial;\n -moz-box-sizing: initial;\n}\n\n.guify-panel input {\n font-family: 'Hack';\n font-size: 11px;\n display: inline;\n}\n\n.guify-panel a {\n color: inherit;\n text-decoration: none;\n}\n\n.guify-panel-toggle-button {\n position: absolute;\n top: 0;\n margin: 0;\n padding: 0;\n width: 15px;\n height: 15px;\n line-height: 15px;\n text-align: center;\n border: none;\n cursor: pointer;\n font-family: inherit;\n color: var(--color-text-primary);\n background-color: var(--color-component-background);\n\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n\n}\n\n/* Open/Close button styling */\n.guify-panel-toggle-button svg {\n fill-opacity: 0;\n stroke-width: 3;\n stroke: var(--color-component-foreground);\n}\n\n/* Remove browser default outlines since we're providing our own */\n.guify-panel-toggle-button:focus {\n outline:none;\n}\n.guify-panel-toggle-button::-moz-focus-inner {\n border: 0;\n}\n\n.guify-panel-toggle-button:hover,\n.guify-panel-toggle-button:focus {\n color: var(--color-text-hover);\n background-color: var(--color-component-foreground);\n}\n\n.guify-panel-toggle-button:active {\n color: var(--color-text-active);\n background-color:var(--color-component-active);\n}"],sourceRoot:""}]);const l=s},56:(e,n,t)=>{"use strict";t.d(n,{Z:()=>l});var o=t(537),r=t.n(o),i=t(645),a=t.n(i),c=t(19),s=a()(r());s.i(c.Z),s.push([e.id,".guify-toast-notification {\n box-sizing: border-box;\n position: relative;\n width: 100%;\n /* height: 20px; */\n padding: 8px;\n padding-left: 20px;\n padding-right: 20px;\n text-align: center;\n font-family: 'Hack', monospace;\n font-size: 11px;\n}\n\n.guify-toast-area .guify-toast-notification:nth-child(odd) {\n color: var(--color-text-primary);\n background-color:var(--color-panel-background);\n}\n\n.guify-toast-area .guify-toast-notification:nth-child(even) {\n color: var(--color-text-primary);\n background-color: var(--color-menu-bar-background);\n}\n\n.guify-toast-close-button {\n color: var(--color-text-primary);\n background: transparent;\n position: absolute;\n text-align: center;\n margin-top: auto;\n margin-bottom: auto;\n border: none;\n cursor: pointer;\n top: 0;\n bottom: 0;\n right: 8px;\n}","",{version:3,sources:["webpack://./src/components/internal/toast-area.css"],names:[],mappings:"AAEA;IACI,sBAAsB;IACtB,kBAAkB;IAClB,WAAW;IACX,kBAAkB;IAClB,YAAY;IACZ,kBAAkB;IAClB,mBAAmB;IACnB,kBAAkB;IAClB,8BAA8B;IAC9B,eAAe;AACnB;;AAEA;IACI,gCAAgC;IAChC,8CAA8C;AAClD;;AAEA;IACI,gCAAgC;IAChC,kDAAkD;AACtD;;AAEA;IACI,gCAAgC;IAChC,uBAAuB;IACvB,kBAAkB;IAClB,kBAAkB;IAClB,gBAAgB;IAChB,mBAAmB;IACnB,YAAY;IACZ,eAAe;IACf,MAAM;IACN,SAAS;IACT,UAAU;AACd",sourcesContent:["@import \"../variables.css\";\n\n.guify-toast-notification {\n box-sizing: border-box;\n position: relative;\n width: 100%;\n /* height: 20px; */\n padding: 8px;\n padding-left: 20px;\n padding-right: 20px;\n text-align: center;\n font-family: 'Hack', monospace;\n font-size: 11px;\n}\n\n.guify-toast-area .guify-toast-notification:nth-child(odd) {\n color: var(--color-text-primary);\n background-color:var(--color-panel-background);\n}\n\n.guify-toast-area .guify-toast-notification:nth-child(even) {\n color: var(--color-text-primary);\n background-color: var(--color-menu-bar-background);\n}\n\n.guify-toast-close-button {\n color: var(--color-text-primary);\n background: transparent;\n position: absolute;\n text-align: center;\n margin-top: auto;\n margin-bottom: auto;\n border: none;\n cursor: pointer;\n top: 0;\n bottom: 0;\n right: 8px;\n}"],sourceRoot:""}]);const l=s},54:(e,n,t)=>{"use strict";t.d(n,{Z:()=>l});var o=t(537),r=t.n(o),i=t(645),a=t.n(i),c=t(19),s=a()(r());s.i(c.Z),s.push([e.id,".guify-component-container {\n position: relative;\n min-height: var(--size-component-height);\n line-height: var(--size-component-height);\n margin-bottom: var(--size-component-spacing);\n}","",{version:3,sources:["webpack://./src/components/partials/container.css"],names:[],mappings:"AAEA;IACI,kBAAkB;IAClB,wCAAwC;IACxC,yCAAyC;IACzC,4CAA4C;AAChD",sourcesContent:['@import "../variables.css";\n\n.guify-component-container {\n position: relative;\n min-height: var(--size-component-height);\n line-height: var(--size-component-height);\n margin-bottom: var(--size-component-spacing);\n}'],sourceRoot:""}]);const l=s},142:(e,n,t)=>{"use strict";t.d(n,{Z:()=>l});var o=t(537),r=t.n(o),i=t(645),a=t.n(i),c=t(19),s=a()(r());s.i(c.Z),s.push([e.id,".guify-component-label {\n left: 0;\n width: calc(var(--size-label-width) - 2%);\n display: inline-block;\n margin-right: 2%;\n vertical-align: top;\n min-height: var(--size-component-height);\n line-height: var(--size-component-height);\n\n color: var(--color-text-primary);\n}\n\n/* Disabled styles */\n.disabled .guify-component-label {\n color: var(--color-text-disabled);\n}","",{version:3,sources:["webpack://./src/components/partials/label.css"],names:[],mappings:"AAEA;IACI,OAAO;IACP,yCAAyC;IACzC,qBAAqB;IACrB,gBAAgB;IAChB,mBAAmB;IACnB,wCAAwC;IACxC,yCAAyC;;IAEzC,gCAAgC;AACpC;;AAEA,oBAAoB;AACpB;IACI,iCAAiC;AACrC",sourcesContent:['@import "../variables.css";\n\n.guify-component-label {\n left: 0;\n width: calc(var(--size-label-width) - 2%);\n display: inline-block;\n margin-right: 2%;\n vertical-align: top;\n min-height: var(--size-component-height);\n line-height: var(--size-component-height);\n\n color: var(--color-text-primary);\n}\n\n/* Disabled styles */\n.disabled .guify-component-label {\n color: var(--color-text-disabled);\n}'],sourceRoot:""}]);const l=s},643:(e,n,t)=>{"use strict";t.d(n,{Z:()=>l});var o=t(537),r=t.n(o),i=t(645),a=t.n(i),c=t(19),s=a()(r());s.i(c.Z),s.push([e.id,".guify-value-input {\n position: absolute;\n background-color: var(--color-component-background);\n padding-left: 1%;\n height: var(--size-component-height);\n display: inline-block;\n overflow: hidden;\n border: none;\n\n font-family: 'Hack', monospace;\n font-size: 11px;\n color: var(--color-text-secondary);\n -webkit-user-select: text;\n -moz-user-select: text;\n -ms-user-select: text;\n user-select: text;\n cursor: text;\n line-height: var(--size-component-height);\n word-break: break-all;\n\n box-sizing: border-box !important;\n -moz-box-sizing: border-box !important;\n -webkit-box-sizing: border-box !important;\n}\n\n.guify-value-input-right {\n right: 0 !important;\n}\n\n.disabled .guify-value-input {\n pointer-events: none;\n background-color: var(--color-component-background-disabled);\n color: var(--color-text-disabled);\n}","",{version:3,sources:["webpack://./src/components/partials/value.css"],names:[],mappings:"AAEA;IACI,kBAAkB;IAClB,mDAAmD;IACnD,gBAAgB;IAChB,oCAAoC;IACpC,qBAAqB;IACrB,gBAAgB;IAChB,YAAY;;IAEZ,8BAA8B;IAC9B,eAAe;IACf,kCAAkC;IAClC,yBAAiB;OAAjB,sBAAiB;QAAjB,qBAAiB;YAAjB,iBAAiB;IACjB,YAAY;IACZ,yCAAyC;IACzC,qBAAqB;;IAErB,iCAAiC;IACjC,sCAAsC;IACtC,yCAAyC;AAC7C;;AAEA;IACI,mBAAmB;AACvB;;AAEA;IACI,oBAAoB;IACpB,4DAA4D;IAC5D,iCAAiC;AACrC",sourcesContent:["@import \"../variables.css\";\n\n.guify-value-input {\n position: absolute;\n background-color: var(--color-component-background);\n padding-left: 1%;\n height: var(--size-component-height);\n display: inline-block;\n overflow: hidden;\n border: none;\n\n font-family: 'Hack', monospace;\n font-size: 11px;\n color: var(--color-text-secondary);\n user-select: text;\n cursor: text;\n line-height: var(--size-component-height);\n word-break: break-all;\n\n box-sizing: border-box !important;\n -moz-box-sizing: border-box !important;\n -webkit-box-sizing: border-box !important;\n}\n\n.guify-value-input-right {\n right: 0 !important;\n}\n\n.disabled .guify-value-input {\n pointer-events: none;\n background-color: var(--color-component-background-disabled);\n color: var(--color-text-disabled);\n}"],sourceRoot:""}]);const l=s},351:(e,n,t)=>{"use strict";t.d(n,{Z:()=>l});var o=t(537),r=t.n(o),i=t(645),a=t.n(i),c=t(19),s=a()(r());s.i(c.Z),s.push([e.id,".guify-button {\n box-sizing: border-box !important;\n color: var(--color-text-secondary);\n background-color: var(--color-component-background);\n\n position: absolute;\n text-align: center;\n height: var(--size-component-height);\n line-height: var(--size-component-height);\n padding-top: 0px;\n padding-bottom: 0px;\n width: calc(100% - var(--size-label-width));\n border: none;\n cursor: pointer;\n right: 0;\n font-family: inherit;\n}\n\n.guify-button:focus {\n outline:none;\n}\n.guify-button::-moz-focus-inner {\n border:0;\n}\n\n.guify-button:hover,\n.guify-button:focus {\n color: var(--color-text-hover);\n background-color: var(--color-component-foreground);\n}\n\n.guify-button:active {\n color: var(--color-text-active) !important;\n background-color: var(--color-component-active) !important;\n}\n\n*.disabled > .guify-button {\n pointer-events: none;\n background-color: var(--color-component-background-disabled);\n color: var(--color-text-disabled);\n}","",{version:3,sources:["webpack://./src/components/public/button.css"],names:[],mappings:"AAEA;IACI,iCAAiC;IACjC,kCAAkC;IAClC,mDAAmD;;IAEnD,kBAAkB;IAClB,kBAAkB;IAClB,oCAAoC;IACpC,yCAAyC;IACzC,gBAAgB;IAChB,mBAAmB;IACnB,2CAA2C;IAC3C,YAAY;IACZ,eAAe;IACf,QAAQ;IACR,oBAAoB;AACxB;;AAEA;IACI,YAAY;AAChB;AACA;IACI,QAAQ;AACZ;;AAEA;;IAEI,8BAA8B;IAC9B,mDAAmD;AACvD;;AAEA;IACI,0CAA0C;IAC1C,0DAA0D;AAC9D;;AAEA;IACI,oBAAoB;IACpB,4DAA4D;IAC5D,iCAAiC;AACrC",sourcesContent:['@import "../variables.css";\n\n.guify-button {\n box-sizing: border-box !important;\n color: var(--color-text-secondary);\n background-color: var(--color-component-background);\n\n position: absolute;\n text-align: center;\n height: var(--size-component-height);\n line-height: var(--size-component-height);\n padding-top: 0px;\n padding-bottom: 0px;\n width: calc(100% - var(--size-label-width));\n border: none;\n cursor: pointer;\n right: 0;\n font-family: inherit;\n}\n\n.guify-button:focus {\n outline:none;\n}\n.guify-button::-moz-focus-inner {\n border:0;\n}\n\n.guify-button:hover,\n.guify-button:focus {\n color: var(--color-text-hover);\n background-color: var(--color-component-foreground);\n}\n\n.guify-button:active {\n color: var(--color-text-active) !important;\n background-color: var(--color-component-active) !important;\n}\n\n*.disabled > .guify-button {\n pointer-events: none;\n background-color: var(--color-component-background-disabled);\n color: var(--color-text-disabled);\n}'],sourceRoot:""}]);const l=s},11:(e,n,t)=>{"use strict";t.d(n,{Z:()=>l});var o=t(537),r=t.n(o),i=t(645),a=t.n(i),c=t(19),s=a()(r());s.i(c.Z),s.push([e.id,':root {\n --checkbox-border-width: 4px;\n}\n\ninput[type=checkbox].guify-checkbox {\n opacity: 0;\n appearance: none;\n -moz-appearance: none;\n -webkit-appearance: none;\n margin: 0;\n border-radius: 0;\n cursor: pointer;\n}\n\ninput[type=checkbox].guify-checkbox + label {\n margin: 0;\n}\n\ninput[type=checkbox].guify-checkbox + label:before {\n content: "";\n display: inline-block;\n width: var(--size-component-height);\n height: var(--size-component-height);\n padding: 0;\n margin: 0;\n vertical-align: middle;\n background-color: var(--color-component-background);\n border-radius: 0px;\n cursor: pointer;\n box-sizing: content-box;\n -moz-box-sizing: content-box;\n -webkit-box-sizing: content-box;\n\n}\n\n/* Hover style */\ninput[type=checkbox].guify-checkbox:hover:not(:disabled) + label:before {\n width: calc(var(--size-component-height) - (4px * 2));\n width: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\n height: calc(var(--size-component-height) - (4px * 2));\n height: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\n background-color: var(--color-component-background-hover);\n border: solid 4px var(--color-component-background);\n}\n\n/* Checked style */\ninput[type=checkbox]:checked.guify-checkbox + label:before {\n width: calc(var(--size-component-height) - (4px * 2));\n width: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\n height: calc(var(--size-component-height) - (4px * 2));\n height: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\n background-color: var(--color-component-foreground);\n border: solid 4px var(--color-component-background);\n border: solid var(--checkbox-border-width) var(--color-component-background);\n}\n\n/* Focused and checked */\ninput[type=checkbox]:checked.guify-checkbox:focus + label:before {\n width: calc(var(--size-component-height) - (4px * 2));\n width: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\n height: calc(var(--size-component-height) - (4px * 2));\n height: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\n background-color: var(--color-component-foreground);\n border: solid 4px var(--color-component-background-hover);\n border: solid var(--checkbox-border-width) var(--color-component-background-hover);\n}\n\n/* Focus and unchecked */\ninput[type=checkbox].guify-checkbox:focus + label:before {\n background-color: var(--color-component-background-hover);\n}\n\n/* Disabled styles */\n.disabled input[type=checkbox].guify-checkbox + label {\n pointer-events: none;\n}\n.disabled input[type="checkbox"].guify-checkbox + label::before {\n pointer-events: none;\n background-color: var(--color-component-background-disabled);\n}',"",{version:3,sources:["webpack://./src/components/public/checkbox.css"],names:[],mappings:"AAEA;IACI,4BAA4B;AAChC;;AAEA;IACI,UAAU;IACV,gBAAgB;IAChB,qBAAqB;IACrB,wBAAwB;IACxB,SAAS;IACT,gBAAgB;IAChB,eAAe;AACnB;;AAEA;IACI,SAAS;AACb;;AAEA;IACI,WAAW;IACX,qBAAqB;IACrB,mCAAmC;IACnC,oCAAoC;IACpC,UAAU;IACV,SAAS;IACT,sBAAsB;IACtB,mDAAmD;IACnD,kBAAkB;IAClB,eAAe;IACf,uBAAuB;IACvB,4BAA4B;IAC5B,+BAA+B;;AAEnC;;AAEA,gBAAgB;AAChB;IACI,qDAA8E;IAA9E,8EAA8E;IAC9E,sDAA+E;IAA/E,+EAA+E;IAC/E,yDAAyD;IACzD,mDAAmD;AACvD;;AAEA,kBAAkB;AAClB;IACI,qDAA8E;IAA9E,8EAA8E;IAC9E,sDAA+E;IAA/E,+EAA+E;IAC/E,mDAAmD;IACnD,mDAA4E;IAA5E,4EAA4E;AAChF;;AAEA,wBAAwB;AACxB;IACI,qDAA8E;IAA9E,8EAA8E;IAC9E,sDAA+E;IAA/E,+EAA+E;IAC/E,mDAAmD;IACnD,yDAAkF;IAAlF,kFAAkF;AACtF;;AAEA,wBAAwB;AACxB;IACI,yDAAyD;AAC7D;;AAEA,oBAAoB;AACpB;IACI,oBAAoB;AACxB;AACA;IACI,oBAAoB;IACpB,4DAA4D;AAChE",sourcesContent:['@import "../variables.css";\n\n:root {\n --checkbox-border-width: 4px;\n}\n\ninput[type=checkbox].guify-checkbox {\n opacity: 0;\n appearance: none;\n -moz-appearance: none;\n -webkit-appearance: none;\n margin: 0;\n border-radius: 0;\n cursor: pointer;\n}\n\ninput[type=checkbox].guify-checkbox + label {\n margin: 0;\n}\n\ninput[type=checkbox].guify-checkbox + label:before {\n content: "";\n display: inline-block;\n width: var(--size-component-height);\n height: var(--size-component-height);\n padding: 0;\n margin: 0;\n vertical-align: middle;\n background-color: var(--color-component-background);\n border-radius: 0px;\n cursor: pointer;\n box-sizing: content-box;\n -moz-box-sizing: content-box;\n -webkit-box-sizing: content-box;\n\n}\n\n/* Hover style */\ninput[type=checkbox].guify-checkbox:hover:not(:disabled) + label:before {\n width: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\n height: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\n background-color: var(--color-component-background-hover);\n border: solid 4px var(--color-component-background);\n}\n\n/* Checked style */\ninput[type=checkbox]:checked.guify-checkbox + label:before {\n width: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\n height: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\n background-color: var(--color-component-foreground);\n border: solid var(--checkbox-border-width) var(--color-component-background);\n}\n\n/* Focused and checked */\ninput[type=checkbox]:checked.guify-checkbox:focus + label:before {\n width: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\n height: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\n background-color: var(--color-component-foreground);\n border: solid var(--checkbox-border-width) var(--color-component-background-hover);\n}\n\n/* Focus and unchecked */\ninput[type=checkbox].guify-checkbox:focus + label:before {\n background-color: var(--color-component-background-hover);\n}\n\n/* Disabled styles */\n.disabled input[type=checkbox].guify-checkbox + label {\n pointer-events: none;\n}\n.disabled input[type="checkbox"].guify-checkbox + label::before {\n pointer-events: none;\n background-color: var(--color-component-background-disabled);\n}'],sourceRoot:""}]);const l=s},442:(e,n,t)=>{"use strict";t.d(n,{Z:()=>l});var o=t(537),r=t.n(o),i=t(645),a=t.n(i),c=t(19),s=a()(r());s.i(c.Z),s.push([e.id,"/* Styling for simple-color-picker */\n\n.guify-color .Scp {\n width: 125px;\n height: 100px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n position: relative;\n z-index: 1000;\n cursor: pointer;\n}\n.guify-color .Scp-saturation {\n position: relative;\n width: calc(100% - 25px);\n height: 100%;\n background: linear-gradient(to right, #fff 0%, #f00 100%);\n float: left;\n margin-right: 5px;\n}\n.guify-color .Scp-brightness {\n width: 100%;\n height: 100%;\n background: linear-gradient(to top, #000 0%, rgba(255,255,255,0) 100%);\n}\n.guify-color .Scp-sbSelector {\n border: 1px solid;\n position: absolute;\n width: 14px;\n height: 14px;\n background: #fff;\n border-radius: 10px;\n top: -7px;\n left: -7px;\n box-sizing: border-box;\n z-index: 10;\n}\n.guify-color .Scp-hue {\n width: 20px;\n height: 100%;\n position: relative;\n float: left;\n background: linear-gradient(to bottom, #f00 0%, #f0f 17%, #00f 34%, #0ff 50%, #0f0 67%, #ff0 84%, #f00 100%);\n}\n.guify-color .Scp-hSelector {\n position: absolute;\n background: #fff;\n border-bottom: 1px solid #000;\n right: -3px;\n width: 10px;\n height: 2px;\n}\n\n/* Disabled styles */\n.disabled .guify-color {\n pointer-events: none;\n}","",{version:3,sources:["webpack://./src/components/public/color.css"],names:[],mappings:"AAEA,oCAAoC;;AAEpC;IACI,YAAY;IACZ,aAAa;IACb,yBAAyB;QACrB,sBAAsB;YAClB,qBAAqB;gBACjB,iBAAiB;IAC7B,kBAAkB;IAClB,aAAa;IACb,eAAe;AACnB;AACA;IACI,kBAAkB;IAClB,wBAAwB;IACxB,YAAY;IACZ,yDAAyD;IACzD,WAAW;IACX,iBAAiB;AACrB;AACA;IACI,WAAW;IACX,YAAY;IACZ,sEAAsE;AAC1E;AACA;IACI,iBAAiB;IACjB,kBAAkB;IAClB,WAAW;IACX,YAAY;IACZ,gBAAgB;IAChB,mBAAmB;IACnB,SAAS;IACT,UAAU;IACV,sBAAsB;IACtB,WAAW;AACf;AACA;IACI,WAAW;IACX,YAAY;IACZ,kBAAkB;IAClB,WAAW;IACX,4GAA4G;AAChH;AACA;IACI,kBAAkB;IAClB,gBAAgB;IAChB,6BAA6B;IAC7B,WAAW;IACX,WAAW;IACX,WAAW;AACf;;AAEA,oBAAoB;AACpB;IACI,oBAAoB;AACxB",sourcesContent:['@import "../variables.css";\n\n/* Styling for simple-color-picker */\n\n.guify-color .Scp {\n width: 125px;\n height: 100px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n position: relative;\n z-index: 1000;\n cursor: pointer;\n}\n.guify-color .Scp-saturation {\n position: relative;\n width: calc(100% - 25px);\n height: 100%;\n background: linear-gradient(to right, #fff 0%, #f00 100%);\n float: left;\n margin-right: 5px;\n}\n.guify-color .Scp-brightness {\n width: 100%;\n height: 100%;\n background: linear-gradient(to top, #000 0%, rgba(255,255,255,0) 100%);\n}\n.guify-color .Scp-sbSelector {\n border: 1px solid;\n position: absolute;\n width: 14px;\n height: 14px;\n background: #fff;\n border-radius: 10px;\n top: -7px;\n left: -7px;\n box-sizing: border-box;\n z-index: 10;\n}\n.guify-color .Scp-hue {\n width: 20px;\n height: 100%;\n position: relative;\n float: left;\n background: linear-gradient(to bottom, #f00 0%, #f0f 17%, #00f 34%, #0ff 50%, #0f0 67%, #ff0 84%, #f00 100%);\n}\n.guify-color .Scp-hSelector {\n position: absolute;\n background: #fff;\n border-bottom: 1px solid #000;\n right: -3px;\n width: 10px;\n height: 2px;\n}\n\n/* Disabled styles */\n.disabled .guify-color {\n pointer-events: none;\n}'],sourceRoot:""}]);const l=s},144:(e,n,t)=>{"use strict";t.d(n,{Z:()=>l});var o=t(537),r=t.n(o),i=t(645),a=t.n(i),c=t(19),s=a()(r());s.i(c.Z),s.push([e.id,".guify-display {\n display: inline-block;\n height: unset;\n min-height: var(--size-component-height);\n width: calc(100% - var(--size-label-width));\n border: none;\n color: var(--color-text-secondary);\n font-family: inherit;\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n vertical-align: sub;\n line-height: 1rem;\n -webkit-user-select: text;\n -moz-user-select: text;\n -ms-user-select: text;\n user-select: text;\n}\n\n.disabled .guify-display {\n color: var(--color-text-disabled);\n}","",{version:3,sources:["webpack://./src/components/public/display.css"],names:[],mappings:"AAEA;IACI,qBAAqB;IACrB,aAAa;IACb,wCAAwC;IACxC,2CAA2C;IAC3C,YAAY;IACZ,kCAAkC;IAClC,oBAAoB;IACpB,sBAAsB;IACtB,2BAA2B;IAC3B,8BAA8B;IAC9B,mBAAmB;IACnB,iBAAiB;IACjB,yBAAiB;OAAjB,sBAAiB;QAAjB,qBAAiB;YAAjB,iBAAiB;AACrB;;AAEA;IACI,iCAAiC;AACrC",sourcesContent:['@import "../variables.css";\n\n.guify-display {\n display: inline-block;\n height: unset;\n min-height: var(--size-component-height);\n width: calc(100% - var(--size-label-width));\n border: none;\n color: var(--color-text-secondary);\n font-family: inherit;\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n vertical-align: sub;\n line-height: 1rem;\n user-select: text;\n}\n\n.disabled .guify-display {\n color: var(--color-text-disabled);\n}'],sourceRoot:""}]);const l=s},191:(e,n,t)=>{"use strict";t.d(n,{Z:()=>l});var o=t(537),r=t.n(o),i=t(645),a=t.n(i),c=t(19),s=a()(r());s.i(c.Z),s.push([e.id,".guify-file-container {\n display: inline-block;\n outline: none;\n padding-top: 8px;\n padding-bottom: 8px;\n color: var(--color-text-primary);\n background-color: var(--color-component-background);\n cursor: pointer;\n}\n\n.guify-file-container:hover:not(:disabled),\n.guify-file-container:focus:not(:disabled) {\n color: var(--color-text-hover);\n background-color: var(--color-component-foreground);\n}\n\n.guify-file-container:active:not(:disabled) {\n color: var(--color-text-active) !important;\n background-color: var(--color-component-active) !important;\n}\n\n.guify-dragover:not(:disabled) {\n background-color: var(--color-component-background);\n box-shadow: inset 0 0 0 3px var(--color-component-foreground);\n}\n\n.disabled.guify-file-container {\n pointer-events: none;\n color: var(--color-text-disabled) !important;\n background-color: var(--color-component-background-disabled) !important;\n box-shadow: inset 0 0 0 3px var(--color-component-background-disabled) !important;\n}","",{version:3,sources:["webpack://./src/components/public/file.css"],names:[],mappings:"AAEA;IACI,qBAAqB;IACrB,aAAa;IACb,gBAAgB;IAChB,mBAAmB;IACnB,gCAAgC;IAChC,mDAAmD;IACnD,eAAe;AACnB;;AAEA;;IAEI,8BAA8B;IAC9B,mDAAmD;AACvD;;AAEA;IACI,0CAA0C;IAC1C,0DAA0D;AAC9D;;AAEA;IACI,mDAAmD;IACnD,6DAA6D;AACjE;;AAEA;IACI,oBAAoB;IACpB,4CAA4C;IAC5C,uEAAuE;IACvE,iFAAiF;AACrF",sourcesContent:['@import "../variables.css";\n\n.guify-file-container {\n display: inline-block;\n outline: none;\n padding-top: 8px;\n padding-bottom: 8px;\n color: var(--color-text-primary);\n background-color: var(--color-component-background);\n cursor: pointer;\n}\n\n.guify-file-container:hover:not(:disabled),\n.guify-file-container:focus:not(:disabled) {\n color: var(--color-text-hover);\n background-color: var(--color-component-foreground);\n}\n\n.guify-file-container:active:not(:disabled) {\n color: var(--color-text-active) !important;\n background-color: var(--color-component-active) !important;\n}\n\n.guify-dragover:not(:disabled) {\n background-color: var(--color-component-background);\n box-shadow: inset 0 0 0 3px var(--color-component-foreground);\n}\n\n.disabled.guify-file-container {\n pointer-events: none;\n color: var(--color-text-disabled) !important;\n background-color: var(--color-component-background-disabled) !important;\n box-shadow: inset 0 0 0 3px var(--color-component-background-disabled) !important;\n}'],sourceRoot:""}]);const l=s},211:(e,n,t)=>{"use strict";t.d(n,{Z:()=>l});var o=t(537),r=t.n(o),i=t(645),a=t.n(i),c=t(19),s=a()(r());s.i(c.Z),s.push([e.id,".guify-folder {\n cursor: pointer;\n padding-left: 0.5em;\n color: var(--color-text-primary);\n}\n\n.guify-folder div {\n display: inline-block;\n vertical-align: sub;\n line-height: calc(var(--size-component-height) + 5px);\n}\n\n.guify-folder:hover,\n.guify-folder:focus {\n color: var(--color-text-hover);\n background-color: var(--color-component-foreground);\n outline: none;\n}\n\n\n.guify-folder-contents {\n display: block;\n box-sizing: border-box;\n padding-left: 14px;\n margin-bottom: 5px;\n border-left: 2px solid var(--color-component-background);\n}\n\n.guify-folder-contents.guify-folder-closed {\n height: 0;\n display: none;\n}\n\n.guify-folder .guify-folder-arrow {\n width: 1.5em;\n}\n\n/* Disabled styles */\n\n.guify-folder.disabled {\n pointer-events: none;\n color: var(--color-text-disabled);\n}\n\n.guify-folder.disabled + .guify-folder-contents {\n pointer-events: none;\n}","",{version:3,sources:["webpack://./src/components/public/folder.css"],names:[],mappings:"AAEA;IACI,eAAe;IACf,mBAAmB;IACnB,gCAAgC;AACpC;;AAEA;IACI,qBAAqB;IACrB,mBAAmB;IACnB,qDAAqD;AACzD;;AAEA;;IAEI,8BAA8B;IAC9B,mDAAmD;IACnD,aAAa;AACjB;;;AAGA;IACI,cAAc;IACd,sBAAsB;IACtB,kBAAkB;IAClB,kBAAkB;IAClB,wDAAwD;AAC5D;;AAEA;IACI,SAAS;IACT,aAAa;AACjB;;AAEA;IACI,YAAY;AAChB;;AAEA,oBAAoB;;AAEpB;IACI,oBAAoB;IACpB,iCAAiC;AACrC;;AAEA;IACI,oBAAoB;AACxB",sourcesContent:['@import "../variables.css";\n\n.guify-folder {\n cursor: pointer;\n padding-left: 0.5em;\n color: var(--color-text-primary);\n}\n\n.guify-folder div {\n display: inline-block;\n vertical-align: sub;\n line-height: calc(var(--size-component-height) + 5px);\n}\n\n.guify-folder:hover,\n.guify-folder:focus {\n color: var(--color-text-hover);\n background-color: var(--color-component-foreground);\n outline: none;\n}\n\n\n.guify-folder-contents {\n display: block;\n box-sizing: border-box;\n padding-left: 14px;\n margin-bottom: 5px;\n border-left: 2px solid var(--color-component-background);\n}\n\n.guify-folder-contents.guify-folder-closed {\n height: 0;\n display: none;\n}\n\n.guify-folder .guify-folder-arrow {\n width: 1.5em;\n}\n\n/* Disabled styles */\n\n.guify-folder.disabled {\n pointer-events: none;\n color: var(--color-text-disabled);\n}\n\n.guify-folder.disabled + .guify-folder-contents {\n pointer-events: none;\n}'],sourceRoot:""}]);const l=s},554:(e,n,t)=>{"use strict";t.d(n,{Z:()=>l});var o=t(537),r=t.n(o),i=t(645),a=t.n(i),c=t(19),s=a()(r());s.i(c.Z),s.push([e.id,":root {\n --interval-track-color: var(--color-component-background);\n --interval-thumb-color: var(--color-component-foreground);\n --interval-thumb-highlight: var(--color-component-active);\n\n --interval-track-color-disabled: var(--color-component-background-disabled);\n --interval-thumb-color-disabled: var(--color-text-disabled);\n}\n\n.guify-interval {\n -webkit-appearance: none;\n position: absolute;\n height: var(--size-component-height);\n margin: 0px 0;\n width: 33%;\n left: 54.5%;\n background-color: var(--color-component-background);\n background-color: var(--interval-track-color);\n cursor: ew-resize;\n\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.guify-interval-handle {\n background-color: var(--color-component-foreground);\n background-color: var(--interval-thumb-color);\n position: absolute;\n height: var(--size-component-height);\n min-width: 1px;\n}\n.guify-interval-handle:focus {\n background: var(--color-component-active);\n background: var(--interval-thumb-highlight);\n}\n\n.disabled .guify-interval {\n pointer-events: none;\n background-color: var(--color-component-background-disabled);\n background-color: var(--interval-track-color-disabled);\n}\n\n.disabled .guify-interval .guify-interval-handle {\n background: var(--color-text-disabled);\n background: var(--interval-thumb-color-disabled);\n}","",{version:3,sources:["webpack://./src/components/public/interval.css"],names:[],mappings:"AAEA;IACI,yDAAyD;IACzD,yDAAyD;IACzD,yDAAyD;;IAEzD,2EAA2E;IAC3E,2DAA2D;AAC/D;;AAEA;IACI,wBAAwB;IACxB,kBAAkB;IAClB,oCAAoC;IACpC,aAAa;IACb,UAAU;IACV,WAAW;IACX,mDAA6C;IAA7C,6CAA6C;IAC7C,iBAAiB;;IAEjB,2BAA2B;IAC3B,yBAAyB;IAEzB,sBAAsB;IACtB,qBAAqB;IACrB,iBAAiB;AACrB;AACA;IACI,mDAA6C;IAA7C,6CAA6C;IAC7C,kBAAkB;IAClB,oCAAoC;IACpC,cAAc;AAClB;AACA;IACI,yCAA2C;IAA3C,2CAA2C;AAC/C;;AAEA;IACI,oBAAoB;IACpB,4DAAsD;IAAtD,sDAAsD;AAC1D;;AAEA;IACI,sCAAgD;IAAhD,gDAAgD;AACpD",sourcesContent:['@import "../variables.css";\n\n:root {\n --interval-track-color: var(--color-component-background);\n --interval-thumb-color: var(--color-component-foreground);\n --interval-thumb-highlight: var(--color-component-active);\n\n --interval-track-color-disabled: var(--color-component-background-disabled);\n --interval-thumb-color-disabled: var(--color-text-disabled);\n}\n\n.guify-interval {\n -webkit-appearance: none;\n position: absolute;\n height: var(--size-component-height);\n margin: 0px 0;\n width: 33%;\n left: 54.5%;\n background-color: var(--interval-track-color);\n cursor: ew-resize;\n\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n -khtml-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.guify-interval-handle {\n background-color: var(--interval-thumb-color);\n position: absolute;\n height: var(--size-component-height);\n min-width: 1px;\n}\n.guify-interval-handle:focus {\n background: var(--interval-thumb-highlight);\n}\n\n.disabled .guify-interval {\n pointer-events: none;\n background-color: var(--interval-track-color-disabled);\n}\n\n.disabled .guify-interval .guify-interval-handle {\n background: var(--interval-thumb-color-disabled);\n}'],sourceRoot:""}]);const l=s},115:(e,n,t)=>{"use strict";t.d(n,{Z:()=>l});var o=t(537),r=t.n(o),i=t(645),a=t.n(i),c=t(19),s=a()(r());s.i(c.Z),s.push([e.id,":root {\n --range-track-color: var(--color-component-background);\n --range-thumb-color: var(--color-component-foreground);\n --range-thumb-highlight: var(--color-component-active);\n\n --range-track-color-disabled: var(--color-component-background-disabled);\n --range-thumb-color-disabled: var(--color-text-disabled);\n}\n\ninput[type=range].guify-range {\n position: absolute; /* Gets rid of weird spacing below slider that I can't figure out the source of, seems internal */\n -webkit-appearance: none;\n width: 100%;\n height: var(--size-component-height);\n margin: 0px 0;\n padding: 0;\n display: inline-block;\n}\n\n.disabled input[type=range].guify-range {\n pointer-events: none;\n}\n\n/* Remove outlines since we'll be adding our own */\ninput[type=range].guify-range:focus {\n outline: none;\n}\ninput[type=range].guify-range::-moz-focus-outer {\n border: 0;\n}\n\n/* Webkit */\ninput[type=range].guify-range::-webkit-slider-runnable-track {\n width: 100%;\n height: var(--size-component-height);\n cursor: ew-resize;\n background: var(--color-component-background);\n background: var(--range-track-color);\n}\ninput[type=range].guify-range::-webkit-slider-thumb {\n height: var(--size-component-height);\n width: 10px;\n background: var(--color-component-foreground);\n background: var(--range-thumb-color);\n cursor: ew-resize;\n -webkit-appearance: none;\n margin-top: 0px;\n}\ninput[type=range].guify-range:focus::-webkit-slider-runnable-track {\n background: var(--color-component-active);\n background: var(--range-thumb-highlight);\n outline: none;\n}\n\n.disabled input[type=range].guify-range::-webkit-slider-runnable-track { /* Disabled track */\n pointer-events: none;\n background: var(--color-component-background-disabled);\n background: var(--range-track-color-disabled);\n}\n\n.disabled input[type=range].guify-range::-webkit-slider-thumb { /* Disabled thumb */\n pointer-events: none;\n background: var(--color-text-disabled);\n}\n\n/* Gecko */\ninput[type=range].guify-range::-moz-range-track {\n width: 100%;\n height: var(--size-component-height);\n cursor: ew-resize;\n background: var(--color-component-background);\n background: var(--range-track-color);\n}\ninput[type=range].guify-range:focus::-moz-range-track {\n background: var(--color-component-active);\n background: var(--range-thumb-highlight);\n}\ninput[type=range].guify-range::-moz-range-thumb {\n height: var(--size-component-height);\n width: 10px;\n background: var(--color-component-foreground);\n background: var(--range-thumb-color);\n cursor: ew-resize;\n border: none;\n border-radius: 0;\n}\n\n.disabled input[type=range].guify-range::-moz-range-track { /* Disabled track */\n pointer-events: none;\n background: var(--color-component-background-disabled);\n background: var(--range-track-color-disabled);\n}\n\n.disabled input[type=range].guify-range::-moz-range-thumb { /* Disabled thumb */\n pointer-events: none;\n background: var(--color-text-disabled);\n background: var(--range-thumb-color-disabled);\n}","",{version:3,sources:["webpack://./src/components/public/range.css"],names:[],mappings:"AAEA;IACI,sDAAsD;IACtD,sDAAsD;IACtD,sDAAsD;;IAEtD,wEAAwE;IACxE,wDAAwD;AAC5D;;AAEA;IACI,kBAAkB,EAAE,iGAAiG;IACrH,wBAAwB;IACxB,WAAW;IACX,oCAAoC;IACpC,aAAa;IACb,UAAU;IACV,qBAAqB;AACzB;;AAEA;IACI,oBAAoB;AACxB;;AAEA,kDAAkD;AAClD;IACI,aAAa;AACjB;AACA;IACI,SAAS;AACb;;AAEA,WAAW;AACX;IACI,WAAW;IACX,oCAAoC;IACpC,iBAAiB;IACjB,6CAAoC;IAApC,oCAAoC;AACxC;AACA;IACI,oCAAoC;IACpC,WAAW;IACX,6CAAoC;IAApC,oCAAoC;IACpC,iBAAiB;IACjB,wBAAwB;IACxB,eAAe;AACnB;AACA;IACI,yCAAwC;IAAxC,wCAAwC;IACxC,aAAa;AACjB;;AAEA,yEAAyE,mBAAmB;IACxF,oBAAoB;IACpB,sDAA6C;IAA7C,6CAA6C;AACjD;;AAEA,gEAAgE,mBAAmB;IAC/E,oBAAoB;IACpB,sCAAsC;AAC1C;;AAEA,UAAU;AACV;IACI,WAAW;IACX,oCAAoC;IACpC,iBAAiB;IACjB,6CAAoC;IAApC,oCAAoC;AACxC;AACA;IACI,yCAAwC;IAAxC,wCAAwC;AAC5C;AACA;IACI,oCAAoC;IACpC,WAAW;IACX,6CAAoC;IAApC,oCAAoC;IACpC,iBAAiB;IACjB,YAAY;IACZ,gBAAgB;AACpB;;AAEA,4DAA4D,mBAAmB;IAC3E,oBAAoB;IACpB,sDAA6C;IAA7C,6CAA6C;AACjD;;AAEA,4DAA4D,mBAAmB;IAC3E,oBAAoB;IACpB,sCAA6C;IAA7C,6CAA6C;AACjD",sourcesContent:["@import \"../variables.css\";\n\n:root {\n --range-track-color: var(--color-component-background);\n --range-thumb-color: var(--color-component-foreground);\n --range-thumb-highlight: var(--color-component-active);\n\n --range-track-color-disabled: var(--color-component-background-disabled);\n --range-thumb-color-disabled: var(--color-text-disabled);\n}\n\ninput[type=range].guify-range {\n position: absolute; /* Gets rid of weird spacing below slider that I can't figure out the source of, seems internal */\n -webkit-appearance: none;\n width: 100%;\n height: var(--size-component-height);\n margin: 0px 0;\n padding: 0;\n display: inline-block;\n}\n\n.disabled input[type=range].guify-range {\n pointer-events: none;\n}\n\n/* Remove outlines since we'll be adding our own */\ninput[type=range].guify-range:focus {\n outline: none;\n}\ninput[type=range].guify-range::-moz-focus-outer {\n border: 0;\n}\n\n/* Webkit */\ninput[type=range].guify-range::-webkit-slider-runnable-track {\n width: 100%;\n height: var(--size-component-height);\n cursor: ew-resize;\n background: var(--range-track-color);\n}\ninput[type=range].guify-range::-webkit-slider-thumb {\n height: var(--size-component-height);\n width: 10px;\n background: var(--range-thumb-color);\n cursor: ew-resize;\n -webkit-appearance: none;\n margin-top: 0px;\n}\ninput[type=range].guify-range:focus::-webkit-slider-runnable-track {\n background: var(--range-thumb-highlight);\n outline: none;\n}\n\n.disabled input[type=range].guify-range::-webkit-slider-runnable-track { /* Disabled track */\n pointer-events: none;\n background: var(--range-track-color-disabled);\n}\n\n.disabled input[type=range].guify-range::-webkit-slider-thumb { /* Disabled thumb */\n pointer-events: none;\n background: var(--color-text-disabled);\n}\n\n/* Gecko */\ninput[type=range].guify-range::-moz-range-track {\n width: 100%;\n height: var(--size-component-height);\n cursor: ew-resize;\n background: var(--range-track-color);\n}\ninput[type=range].guify-range:focus::-moz-range-track {\n background: var(--range-thumb-highlight);\n}\ninput[type=range].guify-range::-moz-range-thumb {\n height: var(--size-component-height);\n width: 10px;\n background: var(--range-thumb-color);\n cursor: ew-resize;\n border: none;\n border-radius: 0;\n}\n\n.disabled input[type=range].guify-range::-moz-range-track { /* Disabled track */\n pointer-events: none;\n background: var(--range-track-color-disabled);\n}\n\n.disabled input[type=range].guify-range::-moz-range-thumb { /* Disabled thumb */\n pointer-events: none;\n background: var(--range-thumb-color-disabled);\n}"],sourceRoot:""}]);const l=s},247:(e,n,t)=>{"use strict";t.d(n,{Z:()=>l});var o=t(537),r=t.n(o),i=t(645),a=t.n(i),c=t(19),s=a()(r());s.i(c.Z),s.push([e.id,".guify-select-dropdown {\n display: inline-block;\n position: absolute;\n width: calc(100% - var(--size-label-width));\n padding-left: 1.5%;\n height: var(--size-component-height);\n border: none;\n border-radius: 0;\n -webkit-appearance: none;\n -moz-appearance: none;\n -o-appearance:none;\n appearance: none;\n font-family: inherit;\n background-color: var(--color-component-background);\n color: var(--color-text-secondary);\n box-sizing: border-box !important;\n -moz-box-sizing: border-box !important;\n -webkit-box-sizing: border-box !important;\n}\n\n/* Disable default outline since we're providing our own */\n.guify-select-dropdown:focus {\n outline: none;\n}\n.guify-select-dropdown::-moz-focus-inner {\n border: 0;\n}\n\n\n.guify-select-dropdown:focus,\n.guify-select-dropdown:hover {\n color: var(--color-text-hover);\n background-color: var(--color-component-foreground);\n}\n\n.guify-select-dropdown::-ms-expand {\n display:none;\n}\n.guify-select-triangle {\n content: ' ';\n border-right: 3px solid transparent;\n border-left: 3px solid transparent;\n line-height: var(--size-component-height);\n position: absolute;\n right: 2.5%;\n z-index: 1;\n pointer-events: none;\n}\n\n.guify-select-triangle--up {\n bottom: 55%;\n border-bottom: 5px solid var(--color-text-secondary);\n border-top: 0px transparent;\n}\n\n.guify-select-triangle--down {\n top: 55%;\n border-top: 5px solid var(--color-text-secondary);\n border-bottom: 0px transparent;\n}\n\n.guify-select-triangle--up-highlight {\n border-bottom-color: var(--color-text-hover);\n}\n\n.guify-select-triangle--down-highlight {\n border-top-color: var(--color-text-hover);\n}\n\n/* Disabled styles */\n\n.disabled .guify-select-dropdown {\n pointer-events: none;\n color: var(--color-text-disabled);\n background-color: var(--color-component-background-disabled);\n}\n\n.disabled *[class^=\"guify-select-triangle\"] {\n border-color: var(--color-text-disabled);\n}\n","",{version:3,sources:["webpack://./src/components/public/select.css"],names:[],mappings:"AAEA;IACI,qBAAqB;IACrB,kBAAkB;IAClB,2CAA2C;IAC3C,kBAAkB;IAClB,oCAAoC;IACpC,YAAY;IACZ,gBAAgB;IAChB,wBAAwB;IACxB,qBAAqB;IACrB,kBAAkB;IAClB,gBAAgB;IAChB,oBAAoB;IACpB,mDAAmD;IACnD,kCAAkC;IAClC,iCAAiC;IACjC,sCAAsC;IACtC,yCAAyC;AAC7C;;AAEA,0DAA0D;AAC1D;IACI,aAAa;AACjB;AACA;IACI,SAAS;AACb;;;AAGA;;IAEI,8BAA8B;IAC9B,mDAAmD;AACvD;;AAEA;IACI,YAAY;AAChB;AACA;IACI,YAAY;IACZ,mCAAmC;IACnC,kCAAkC;IAClC,yCAAyC;IACzC,kBAAkB;IAClB,WAAW;IACX,UAAU;IACV,oBAAoB;AACxB;;AAEA;IACI,WAAW;IACX,oDAAoD;IACpD,2BAA2B;AAC/B;;AAEA;IACI,QAAQ;IACR,iDAAiD;IACjD,8BAA8B;AAClC;;AAEA;IACI,4CAA4C;AAChD;;AAEA;IACI,yCAAyC;AAC7C;;AAEA,oBAAoB;;AAEpB;IACI,oBAAoB;IACpB,iCAAiC;IACjC,4DAA4D;AAChE;;AAEA;IACI,wCAAwC;AAC5C",sourcesContent:['@import "../variables.css";\n\n.guify-select-dropdown {\n display: inline-block;\n position: absolute;\n width: calc(100% - var(--size-label-width));\n padding-left: 1.5%;\n height: var(--size-component-height);\n border: none;\n border-radius: 0;\n -webkit-appearance: none;\n -moz-appearance: none;\n -o-appearance:none;\n appearance: none;\n font-family: inherit;\n background-color: var(--color-component-background);\n color: var(--color-text-secondary);\n box-sizing: border-box !important;\n -moz-box-sizing: border-box !important;\n -webkit-box-sizing: border-box !important;\n}\n\n/* Disable default outline since we\'re providing our own */\n.guify-select-dropdown:focus {\n outline: none;\n}\n.guify-select-dropdown::-moz-focus-inner {\n border: 0;\n}\n\n\n.guify-select-dropdown:focus,\n.guify-select-dropdown:hover {\n color: var(--color-text-hover);\n background-color: var(--color-component-foreground);\n}\n\n.guify-select-dropdown::-ms-expand {\n display:none;\n}\n.guify-select-triangle {\n content: \' \';\n border-right: 3px solid transparent;\n border-left: 3px solid transparent;\n line-height: var(--size-component-height);\n position: absolute;\n right: 2.5%;\n z-index: 1;\n pointer-events: none;\n}\n\n.guify-select-triangle--up {\n bottom: 55%;\n border-bottom: 5px solid var(--color-text-secondary);\n border-top: 0px transparent;\n}\n\n.guify-select-triangle--down {\n top: 55%;\n border-top: 5px solid var(--color-text-secondary);\n border-bottom: 0px transparent;\n}\n\n.guify-select-triangle--up-highlight {\n border-bottom-color: var(--color-text-hover);\n}\n\n.guify-select-triangle--down-highlight {\n border-top-color: var(--color-text-hover);\n}\n\n/* Disabled styles */\n\n.disabled .guify-select-dropdown {\n pointer-events: none;\n color: var(--color-text-disabled);\n background-color: var(--color-component-background-disabled);\n}\n\n.disabled *[class^="guify-select-triangle"] {\n border-color: var(--color-text-disabled);\n}\n'],sourceRoot:""}]);const l=s},532:(e,n,t)=>{"use strict";t.d(n,{Z:()=>l});var o=t(537),r=t.n(o),i=t(645),a=t.n(i),c=t(19),s=a()(r());s.i(c.Z),s.push([e.id,".guify-text-input {\n position: absolute;\n padding-left: 6px;\n height: var(--size-component-height);\n width: calc(100% - var(--size-label-width));\n border: none;\n background: var(--color-component-background);\n color: var(--color-text-secondary);\n font-family: inherit;\n box-sizing: border-box !important;\n resize: vertical;\n}\n\n.guify-text-input:focus {\n outline: none;\n}\n\n.disabled .guify-text-input {\n pointer-events: none;\n color: var(--color-text-disabled);\n background-color: var(--color-component-background-disabled);\n}","",{version:3,sources:["webpack://./src/components/public/text.css"],names:[],mappings:"AAEA;IACI,kBAAkB;IAClB,iBAAiB;IACjB,oCAAoC;IACpC,2CAA2C;IAC3C,YAAY;IACZ,6CAA6C;IAC7C,kCAAkC;IAClC,oBAAoB;IACpB,iCAAiC;IACjC,gBAAgB;AACpB;;AAEA;IACI,aAAa;AACjB;;AAEA;IACI,oBAAoB;IACpB,iCAAiC;IACjC,4DAA4D;AAChE",sourcesContent:['@import "../variables.css";\n\n.guify-text-input {\n position: absolute;\n padding-left: 6px;\n height: var(--size-component-height);\n width: calc(100% - var(--size-label-width));\n border: none;\n background: var(--color-component-background);\n color: var(--color-text-secondary);\n font-family: inherit;\n box-sizing: border-box !important;\n resize: vertical;\n}\n\n.guify-text-input:focus {\n outline: none;\n}\n\n.disabled .guify-text-input {\n pointer-events: none;\n color: var(--color-text-disabled);\n background-color: var(--color-component-background-disabled);\n}'],sourceRoot:""}]);const l=s},146:(e,n,t)=>{"use strict";t.d(n,{Z:()=>l});var o=t(537),r=t.n(o),i=t(645),a=t.n(i),c=t(19),s=a()(r());s.i(c.Z),s.push([e.id,".guify-title {\n box-sizing: border-box;\n width: 100%;\n display: inline-block;\n height: var(--size-component-height);\n vertical-align: top;\n}\n\n.guify-title-text {\n display: inline-block;\n height: var(--size-component-height);\n line-height: var(--size-component-height);\n padding-left: 5px;\n padding-right: 5px;\n background-color: var(--color-text-primary);\n color: var(--color-panel-background);\n}\n\n/* Disabled style */\n\n.disabled .guify-title-text {\n background-color: var(--color-text-disabled);\n}","",{version:3,sources:["webpack://./src/components/public/title.css"],names:[],mappings:"AAEA;IACI,sBAAsB;IACtB,WAAW;IACX,qBAAqB;IACrB,oCAAoC;IACpC,mBAAmB;AACvB;;AAEA;IACI,qBAAqB;IACrB,oCAAoC;IACpC,yCAAyC;IACzC,iBAAiB;IACjB,kBAAkB;IAClB,2CAA2C;IAC3C,oCAAoC;AACxC;;AAEA,mBAAmB;;AAEnB;IACI,4CAA4C;AAChD",sourcesContent:['@import "../variables.css";\n\n.guify-title {\n box-sizing: border-box;\n width: 100%;\n display: inline-block;\n height: var(--size-component-height);\n vertical-align: top;\n}\n\n.guify-title-text {\n display: inline-block;\n height: var(--size-component-height);\n line-height: var(--size-component-height);\n padding-left: 5px;\n padding-right: 5px;\n background-color: var(--color-text-primary);\n color: var(--color-panel-background);\n}\n\n/* Disabled style */\n\n.disabled .guify-title-text {\n background-color: var(--color-text-disabled);\n}'],sourceRoot:""}]);const l=s},19:(e,n,t)=>{"use strict";t.d(n,{Z:()=>c});var o=t(537),r=t.n(o),i=t(645),a=t.n(i)()(r());a.push([e.id,':root {\n --color-menu-bar-background: "black";\n --color-menu-bar-text: "black";\n --color-panel-background: "black";\n\n --color-component-background: "black";\n --color-component-background-hover: "black";\n --color-component-background-disabled: "black";\n --color-component-foreground: "black";\n --color-component-active: "black";\n\n --color-text-primary: "black";\n --color-text-secondary: "black";\n --color-text-hover: "black";\n --color-text-active: "black";\n --color-text-disabled: "black";\n\n --size-menu-bar-height: 25px;\n --size-component-height: 2rem;\n --size-component-spacing: 5px;\n --size-label-width: 42%;\n}\n',"",{version:3,sources:["webpack://./src/components/variables.css"],names:[],mappings:"AAAA;IACI,oCAAoC;IACpC,8BAA8B;IAC9B,iCAAiC;;IAEjC,qCAAqC;IACrC,2CAA2C;IAC3C,8CAA8C;IAC9C,qCAAqC;IACrC,iCAAiC;;IAEjC,6BAA6B;IAC7B,+BAA+B;IAC/B,2BAA2B;IAC3B,4BAA4B;IAC5B,8BAA8B;;IAE9B,4BAA4B;IAC5B,6BAA6B;IAC7B,6BAA6B;IAC7B,uBAAuB;AAC3B",sourcesContent:[':root {\n --color-menu-bar-background: "black";\n --color-menu-bar-text: "black";\n --color-panel-background: "black";\n\n --color-component-background: "black";\n --color-component-background-hover: "black";\n --color-component-background-disabled: "black";\n --color-component-foreground: "black";\n --color-component-active: "black";\n\n --color-text-primary: "black";\n --color-text-secondary: "black";\n --color-text-hover: "black";\n --color-text-active: "black";\n --color-text-disabled: "black";\n\n --size-menu-bar-height: 25px;\n --size-component-height: 2rem;\n --size-component-spacing: 5px;\n --size-label-width: 42%;\n}\n'],sourceRoot:""}]);const c=a},645:e=>{"use strict";e.exports=function(e){var n=[];return n.toString=function(){return this.map((function(n){var t="",o=void 0!==n[5];return n[4]&&(t+="@supports (".concat(n[4],") {")),n[2]&&(t+="@media ".concat(n[2]," {")),o&&(t+="@layer".concat(n[5].length>0?" ".concat(n[5]):""," {")),t+=e(n),o&&(t+="}"),n[2]&&(t+="}"),n[4]&&(t+="}"),t})).join("")},n.i=function(e,t,o,r,i){"string"==typeof e&&(e=[[null,e,void 0]]);var a={};if(o)for(var c=0;c0?" ".concat(u[5]):""," {").concat(u[1],"}")),u[5]=i),t&&(u[2]?(u[1]="@media ".concat(u[2]," {").concat(u[1],"}"),u[2]=t):u[2]=t),r&&(u[4]?(u[1]="@supports (".concat(u[4],") {").concat(u[1],"}"),u[4]=r):u[4]="".concat(r)),n.push(u))}},n}},537:e=>{"use strict";e.exports=function(e){var n=e[1],t=e[3];if(!t)return n;if("function"==typeof btoa){var o=btoa(unescape(encodeURIComponent(JSON.stringify(t)))),r="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(o),i="/*# ".concat(r," */"),a=t.sources.map((function(e){return"/*# sourceURL=".concat(t.sourceRoot||"").concat(e," */")}));return[n].concat(a).concat([i]).join("\n")}return[n].join("\n")}},879:(e,n,t)=>{var o=t(236),r=t(189),i={float:"cssFloat"},a=t(379);function c(e,n,t){var c=i[n];if(void 0===c&&(c=function(e){var n=r(e),t=o(n);return i[n]=i[e]=i[t]=t,t}(n)),c){if(void 0===t)return e.style[c];e.style[c]=a(c,t)}}function s(e,n){for(var t in n)n.hasOwnProperty(t)&&c(e,t,n[t])}function l(){2===arguments.length?"string"==typeof arguments[1]?arguments[0].style.cssText=arguments[1]:s(arguments[0],arguments[1]):c(arguments[0],arguments[1],arguments[2])}e.exports=l,e.exports.set=l,e.exports.get=function(e,n){return Array.isArray(n)?n.reduce((function(n,t){return n[t]=c(e,t||""),n}),{}):c(e,n||"")}},186:e=>{var n=[],t=[];function o(e,o){if(o=o||{},void 0===e)throw new Error("insert-css: You need to provide a CSS string. Usage: insertCss(cssString[, options]).");var r,i=!0===o.prepend?"prepend":"append",a=void 0!==o.container?o.container:document.querySelector("head"),c=n.indexOf(a);return-1===c&&(c=n.push(a)-1,t[c]={}),void 0!==t[c]&&void 0!==t[c][i]?r=t[c][i]:(r=t[c][i]=function(){var e=document.createElement("style");return e.setAttribute("type","text/css"),e}(),"prepend"===i?a.insertBefore(r,a.childNodes[0]):a.appendChild(r)),65279===e.charCodeAt(0)&&(e=e.substr(1,e.length)),r.styleSheet?r.styleSheet.cssText+=e:r.textContent+=e,r}e.exports=o,e.exports.insertCss=o},114:function(e,n){!function(t){"use strict";function o(e){return"number"==typeof e&&!isNaN(e)||!!(e=(e||"").toString().trim())&&!isNaN(e)}e.exports&&(n=e.exports=o),n.isNumeric=o}()},236:e=>{var n=null,t=["Webkit","Moz","O","ms"];e.exports=function(e){n||(n=document.createElement("div"));var o=n.style;if(e in o)return e;for(var r=e.charAt(0).toUpperCase()+e.slice(1),i=t.length;i>=0;i--){var a=t[i]+r;if(a in o)return a}return!1}},577:e=>{!function(){"use strict";var n="undefined"!=typeof window&&void 0!==window.document?window.document:{},t=e.exports,o=function(){for(var e,t=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],o=0,r=t.length,i={};o{"use strict";var n=[];function t(e){for(var t=-1,o=0;o{"use strict";var n={};e.exports=function(e,t){var o=function(e){if(void 0===n[e]){var t=document.querySelector(e);if(window.HTMLIFrameElement&&t instanceof window.HTMLIFrameElement)try{t=t.contentDocument.head}catch(e){t=null}n[e]=t}return n[e]}(e);if(!o)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");o.appendChild(t)}},216:e=>{"use strict";e.exports=function(e){var n=document.createElement("style");return e.setAttributes(n,e.attributes),e.insert(n,e.options),n}},565:(e,n,t)=>{"use strict";e.exports=function(e){var n=t.nc;n&&e.setAttribute("nonce",n)}},795:e=>{"use strict";e.exports=function(e){var n=e.insertStyleElement(e);return{update:function(t){!function(e,n,t){var o="";t.supports&&(o+="@supports (".concat(t.supports,") {")),t.media&&(o+="@media ".concat(t.media," {"));var r=void 0!==t.layer;r&&(o+="@layer".concat(t.layer.length>0?" ".concat(t.layer):""," {")),o+=t.css,r&&(o+="}"),t.media&&(o+="}"),t.supports&&(o+="}");var i=t.sourceMap;i&&"undefined"!=typeof btoa&&(o+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(i))))," */")),n.styleTagTransform(o,e,n.options)}(n,e,t)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(n)}}}},589:e=>{"use strict";e.exports=function(e,n){if(n.styleSheet)n.styleSheet.cssText=e;else{for(;n.firstChild;)n.removeChild(n.firstChild);n.appendChild(document.createTextNode(e))}}},621:(e,n,t)=>{var o;!function(r){var i=/^\s+/,a=/\s+$/,c=0,s=r.round,l=r.min,u=r.max,p=r.random;function f(e,n){if(n=n||{},(e=e||"")instanceof f)return e;if(!(this instanceof f))return new f(e,n);var t=function(e){var n,t,o,c={r:0,g:0,b:0},s=1,p=null,f=null,d=null,h=!1,A=!1;return"string"==typeof e&&(e=function(e){e=e.replace(i,"").replace(a,"").toLowerCase();var n,t=!1;if(z[e])e=z[e],t=!0;else if("transparent"==e)return{r:0,g:0,b:0,a:0,format:"name"};return(n=q.rgb.exec(e))?{r:n[1],g:n[2],b:n[3]}:(n=q.rgba.exec(e))?{r:n[1],g:n[2],b:n[3],a:n[4]}:(n=q.hsl.exec(e))?{h:n[1],s:n[2],l:n[3]}:(n=q.hsla.exec(e))?{h:n[1],s:n[2],l:n[3],a:n[4]}:(n=q.hsv.exec(e))?{h:n[1],s:n[2],v:n[3]}:(n=q.hsva.exec(e))?{h:n[1],s:n[2],v:n[3],a:n[4]}:(n=q.hex8.exec(e))?{r:R(n[1]),g:R(n[2]),b:R(n[3]),a:H(n[4]),format:t?"name":"hex8"}:(n=q.hex6.exec(e))?{r:R(n[1]),g:R(n[2]),b:R(n[3]),format:t?"name":"hex"}:(n=q.hex4.exec(e))?{r:R(n[1]+""+n[1]),g:R(n[2]+""+n[2]),b:R(n[3]+""+n[3]),a:H(n[4]+""+n[4]),format:t?"name":"hex8"}:!!(n=q.hex3.exec(e))&&{r:R(n[1]+""+n[1]),g:R(n[2]+""+n[2]),b:R(n[3]+""+n[3]),format:t?"name":"hex"}}(e)),"object"==typeof e&&(W(e.r)&&W(e.g)&&W(e.b)?(n=e.r,t=e.g,o=e.b,c={r:255*O(n,255),g:255*O(t,255),b:255*O(o,255)},h=!0,A="%"===String(e.r).substr(-1)?"prgb":"rgb"):W(e.h)&&W(e.s)&&W(e.v)?(p=T(e.s),f=T(e.v),c=function(e,n,t){e=6*O(e,360),n=O(n,100),t=O(t,100);var o=r.floor(e),i=e-o,a=t*(1-n),c=t*(1-i*n),s=t*(1-(1-i)*n),l=o%6;return{r:255*[t,c,a,a,s,t][l],g:255*[s,t,t,c,a,a][l],b:255*[a,a,s,t,t,c][l]}}(e.h,p,f),h=!0,A="hsv"):W(e.h)&&W(e.s)&&W(e.l)&&(p=T(e.s),d=T(e.l),c=function(e,n,t){var o,r,i;function a(e,n,t){return t<0&&(t+=1),t>1&&(t-=1),t<1/6?e+6*(n-e)*t:t<.5?n:t<2/3?e+(n-e)*(2/3-t)*6:e}if(e=O(e,360),n=O(n,100),t=O(t,100),0===n)o=r=i=t;else{var c=t<.5?t*(1+n):t+n-t*n,s=2*t-c;o=a(s,c,e+1/3),r=a(s,c,e),i=a(s,c,e-1/3)}return{r:255*o,g:255*r,b:255*i}}(e.h,p,d),h=!0,A="hsl"),e.hasOwnProperty("a")&&(s=e.a)),s=P(s),{ok:h,format:e.format||A,r:l(255,u(c.r,0)),g:l(255,u(c.g,0)),b:l(255,u(c.b,0)),a:s}}(e);this._originalInput=e,this._r=t.r,this._g=t.g,this._b=t.b,this._a=t.a,this._roundA=s(100*this._a)/100,this._format=n.format||t.format,this._gradientType=n.gradientType,this._r<1&&(this._r=s(this._r)),this._g<1&&(this._g=s(this._g)),this._b<1&&(this._b=s(this._b)),this._ok=t.ok,this._tc_id=c++}function d(e,n,t){e=O(e,255),n=O(n,255),t=O(t,255);var o,r,i=u(e,n,t),a=l(e,n,t),c=(i+a)/2;if(i==a)o=r=0;else{var s=i-a;switch(r=c>.5?s/(2-i-a):s/(i+a),i){case e:o=(n-t)/s+(n>1)+720)%360;--n;)o.h=(o.h+r)%360,i.push(f(o));return i}function S(e,n){n=n||6;for(var t=f(e).toHsv(),o=t.h,r=t.s,i=t.v,a=[],c=1/n;n--;)a.push(f({h:o,s:r,v:i})),i=(i+c)%1;return a}f.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var e=this.toRgb();return(299*e.r+587*e.g+114*e.b)/1e3},getLuminance:function(){var e,n,t,o=this.toRgb();return e=o.r/255,n=o.g/255,t=o.b/255,.2126*(e<=.03928?e/12.92:r.pow((e+.055)/1.055,2.4))+.7152*(n<=.03928?n/12.92:r.pow((n+.055)/1.055,2.4))+.0722*(t<=.03928?t/12.92:r.pow((t+.055)/1.055,2.4))},setAlpha:function(e){return this._a=P(e),this._roundA=s(100*this._a)/100,this},toHsv:function(){var e=h(this._r,this._g,this._b);return{h:360*e.h,s:e.s,v:e.v,a:this._a}},toHsvString:function(){var e=h(this._r,this._g,this._b),n=s(360*e.h),t=s(100*e.s),o=s(100*e.v);return 1==this._a?"hsv("+n+", "+t+"%, "+o+"%)":"hsva("+n+", "+t+"%, "+o+"%, "+this._roundA+")"},toHsl:function(){var e=d(this._r,this._g,this._b);return{h:360*e.h,s:e.s,l:e.l,a:this._a}},toHslString:function(){var e=d(this._r,this._g,this._b),n=s(360*e.h),t=s(100*e.s),o=s(100*e.l);return 1==this._a?"hsl("+n+", "+t+"%, "+o+"%)":"hsla("+n+", "+t+"%, "+o+"%, "+this._roundA+")"},toHex:function(e){return A(this._r,this._g,this._b,e)},toHexString:function(e){return"#"+this.toHex(e)},toHex8:function(e){return function(e,n,t,o,r){var i=[L(s(e).toString(16)),L(s(n).toString(16)),L(s(t).toString(16)),L(M(o))];return r&&i[0].charAt(0)==i[0].charAt(1)&&i[1].charAt(0)==i[1].charAt(1)&&i[2].charAt(0)==i[2].charAt(1)&&i[3].charAt(0)==i[3].charAt(1)?i[0].charAt(0)+i[1].charAt(0)+i[2].charAt(0)+i[3].charAt(0):i.join("")}(this._r,this._g,this._b,this._a,e)},toHex8String:function(e){return"#"+this.toHex8(e)},toRgb:function(){return{r:s(this._r),g:s(this._g),b:s(this._b),a:this._a}},toRgbString:function(){return 1==this._a?"rgb("+s(this._r)+", "+s(this._g)+", "+s(this._b)+")":"rgba("+s(this._r)+", "+s(this._g)+", "+s(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:s(100*O(this._r,255))+"%",g:s(100*O(this._g,255))+"%",b:s(100*O(this._b,255))+"%",a:this._a}},toPercentageRgbString:function(){return 1==this._a?"rgb("+s(100*O(this._r,255))+"%, "+s(100*O(this._g,255))+"%, "+s(100*O(this._b,255))+"%)":"rgba("+s(100*O(this._r,255))+"%, "+s(100*O(this._g,255))+"%, "+s(100*O(this._b,255))+"%, "+this._roundA+")"},toName:function(){return 0===this._a?"transparent":!(this._a<1)&&(D[A(this._r,this._g,this._b,!0)]||!1)},toFilter:function(e){var n="#"+b(this._r,this._g,this._b,this._a),t=n,o=this._gradientType?"GradientType = 1, ":"";if(e){var r=f(e);t="#"+b(r._r,r._g,r._b,r._a)}return"progid:DXImageTransform.Microsoft.gradient("+o+"startColorstr="+n+",endColorstr="+t+")"},toString:function(e){var n=!!e;e=e||this._format;var t=!1,o=this._a<1&&this._a>=0;return n||!o||"hex"!==e&&"hex6"!==e&&"hex3"!==e&&"hex4"!==e&&"hex8"!==e&&"name"!==e?("rgb"===e&&(t=this.toRgbString()),"prgb"===e&&(t=this.toPercentageRgbString()),"hex"!==e&&"hex6"!==e||(t=this.toHexString()),"hex3"===e&&(t=this.toHexString(!0)),"hex4"===e&&(t=this.toHex8String(!0)),"hex8"===e&&(t=this.toHex8String()),"name"===e&&(t=this.toName()),"hsl"===e&&(t=this.toHslString()),"hsv"===e&&(t=this.toHsvString()),t||this.toHexString()):"name"===e&&0===this._a?this.toName():this.toRgbString()},clone:function(){return f(this.toString())},_applyModification:function(e,n){var t=e.apply(null,[this].concat([].slice.call(n)));return this._r=t._r,this._g=t._g,this._b=t._b,this.setAlpha(t._a),this},lighten:function(){return this._applyModification(y,arguments)},brighten:function(){return this._applyModification(C,arguments)},darken:function(){return this._applyModification(x,arguments)},desaturate:function(){return this._applyModification(g,arguments)},saturate:function(){return this._applyModification(m,arguments)},greyscale:function(){return this._applyModification(v,arguments)},spin:function(){return this._applyModification(k,arguments)},_applyCombination:function(e,n){return e.apply(null,[this].concat([].slice.call(n)))},analogous:function(){return this._applyCombination(E,arguments)},complement:function(){return this._applyCombination(B,arguments)},monochromatic:function(){return this._applyCombination(S,arguments)},splitcomplement:function(){return this._applyCombination(_,arguments)},triad:function(){return this._applyCombination(w,arguments)},tetrad:function(){return this._applyCombination(I,arguments)}},f.fromRatio=function(e,n){if("object"==typeof e){var t={};for(var o in e)e.hasOwnProperty(o)&&(t[o]="a"===o?e[o]:T(e[o]));e=t}return f(e,n)},f.equals=function(e,n){return!(!e||!n)&&f(e).toRgbString()==f(n).toRgbString()},f.random=function(){return f.fromRatio({r:p(),g:p(),b:p()})},f.mix=function(e,n,t){t=0===t?0:t||50;var o=f(e).toRgb(),r=f(n).toRgb(),i=t/100;return f({r:(r.r-o.r)*i+o.r,g:(r.g-o.g)*i+o.g,b:(r.b-o.b)*i+o.b,a:(r.a-o.a)*i+o.a})},f.readability=function(e,n){var t=f(e),o=f(n);return(r.max(t.getLuminance(),o.getLuminance())+.05)/(r.min(t.getLuminance(),o.getLuminance())+.05)},f.isReadable=function(e,n,t){var o,r,i,a,c,s=f.readability(e,n);switch(r=!1,(i=t,"AA"!==(a=((i=i||{level:"AA",size:"small"}).level||"AA").toUpperCase())&&"AAA"!==a&&(a="AA"),"small"!==(c=(i.size||"small").toLowerCase())&&"large"!==c&&(c="small"),o={level:a,size:c}).level+o.size){case"AAsmall":case"AAAlarge":r=s>=4.5;break;case"AAlarge":r=s>=3;break;case"AAAsmall":r=s>=7}return r},f.mostReadable=function(e,n,t){var o,r,i,a,c=null,s=0;r=(t=t||{}).includeFallbackColors,i=t.level,a=t.size;for(var l=0;ls&&(s=o,c=f(n[l]));return f.isReadable(e,c,{level:i,size:a})||!r?c:(t.includeFallbackColors=!1,f.mostReadable(e,["#fff","#000"],t))};var z=f.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},D=f.hexNames=function(e){var n={};for(var t in e)e.hasOwnProperty(t)&&(n[e[t]]=t);return n}(z);function P(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function O(e,n){(function(e){return"string"==typeof e&&-1!=e.indexOf(".")&&1===parseFloat(e)})(e)&&(e="100%");var t=function(e){return"string"==typeof e&&-1!=e.indexOf("%")}(e);return e=l(n,u(0,parseFloat(e))),t&&(e=parseInt(e*n,10)/100),r.abs(e-n)<1e-6?1:e%n/parseFloat(n)}function j(e){return l(1,u(0,e))}function R(e){return parseInt(e,16)}function L(e){return 1==e.length?"0"+e:""+e}function T(e){return e<=1&&(e=100*e+"%"),e}function M(e){return r.round(255*parseFloat(e)).toString(16)}function H(e){return R(e)/255}var Z,F,V,q=(F="[\\s|\\(]+("+(Z="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)")+")[,|\\s]+("+Z+")[,|\\s]+("+Z+")\\s*\\)?",V="[\\s|\\(]+("+Z+")[,|\\s]+("+Z+")[,|\\s]+("+Z+")[,|\\s]+("+Z+")\\s*\\)?",{CSS_UNIT:new RegExp(Z),rgb:new RegExp("rgb"+F),rgba:new RegExp("rgba"+V),hsl:new RegExp("hsl"+F),hsla:new RegExp("hsla"+V),hsv:new RegExp("hsv"+F),hsva:new RegExp("hsva"+V),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/});function W(e){return!!q.CSS_UNIT.exec(e)}e.exports?e.exports=f:void 0===(o=function(){return f}.call(n,t,n,e))||(e.exports=o)}(Math)},189:(e,n,t)=>{var o=t(966);e.exports=function(e){return o(e).replace(/\s(\w)/g,(function(e,n){return n.toUpperCase()}))}},788:e=>{e.exports=function(e){return n.test(e)?e.toLowerCase():t.test(e)?(function(e){return e.replace(r,(function(e,n){return n?" "+n:""}))}(e)||e).toLowerCase():o.test(e)?function(e){return e.replace(i,(function(e,n,t){return n+" "+t.toLowerCase().split("").join(" ")}))}(e).toLowerCase():e.toLowerCase()};var n=/\s/,t=/(_|-|\.|:)/,o=/([a-z][A-Z]|[A-Z][a-z])/,r=/[\W_]+(.|$)/g,i=/(.)([A-Z]+)/g},966:(e,n,t)=>{var o=t(788);e.exports=function(e){return o(e).replace(/[\W_]+(.|$)/g,(function(e,n){return n?" "+n:""})).trim()}},877:(e,n,t)=>{var o=t(570),r=t(171),i=r;i.v1=o,i.v4=r,e.exports=i},327:e=>{for(var n=[],t=0;t<256;++t)n[t]=(t+256).toString(16).substr(1);e.exports=function(e,t){var o=t||0,r=n;return[r[e[o++]],r[e[o++]],r[e[o++]],r[e[o++]],"-",r[e[o++]],r[e[o++]],"-",r[e[o++]],r[e[o++]],"-",r[e[o++]],r[e[o++]],"-",r[e[o++]],r[e[o++]],r[e[o++]],r[e[o++]],r[e[o++]],r[e[o++]]].join("")}},217:e=>{var n="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof window.msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto);if(n){var t=new Uint8Array(16);e.exports=function(){return n(t),t}}else{var o=new Array(16);e.exports=function(){for(var e,n=0;n<16;n++)0==(3&n)&&(e=4294967296*Math.random()),o[n]=e>>>((3&n)<<3)&255;return o}}},570:(e,n,t)=>{var o,r,i=t(217),a=t(327),c=0,s=0;e.exports=function(e,n,t){var l=n&&t||0,u=n||[],p=(e=e||{}).node||o,f=void 0!==e.clockseq?e.clockseq:r;if(null==p||null==f){var d=i();null==p&&(p=o=[1|d[0],d[1],d[2],d[3],d[4],d[5]]),null==f&&(f=r=16383&(d[6]<<8|d[7]))}var h=void 0!==e.msecs?e.msecs:(new Date).getTime(),A=void 0!==e.nsecs?e.nsecs:s+1,b=h-c+(A-s)/1e4;if(b<0&&void 0===e.clockseq&&(f=f+1&16383),(b<0||h>c)&&void 0===e.nsecs&&(A=0),A>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");c=h,s=A,r=f;var g=(1e4*(268435455&(h+=122192928e5))+A)%4294967296;u[l++]=g>>>24&255,u[l++]=g>>>16&255,u[l++]=g>>>8&255,u[l++]=255&g;var m=h/4294967296*1e4&268435455;u[l++]=m>>>8&255,u[l++]=255&m,u[l++]=m>>>24&15|16,u[l++]=m>>>16&255,u[l++]=f>>>8|128,u[l++]=255&f;for(var v=0;v<6;++v)u[l+v]=p[v];return n||a(u)}},171:(e,n,t)=>{var o=t(217),r=t(327);e.exports=function(e,n,t){var i=n&&t||0;"string"==typeof e&&(n="binary"===e?new Array(16):null,e=null);var a=(e=e||{}).random||(e.rng||o)();if(a[6]=15&a[6]|64,a[8]=63&a[8]|128,n)for(var c=0;c<16;++c)n[i+c]=a[c];return n||r(a)}},75:function(e,n,t){var o;!function(n){"use strict";function r(){}var i=r.prototype,a=n.EventEmitter;function c(e,n){for(var t=e.length;t--;)if(e[t].listener===n)return t;return-1}function s(e){return function(){return this[e].apply(this,arguments)}}function l(e){return"function"==typeof e||e instanceof RegExp||!(!e||"object"!=typeof e)&&l(e.listener)}i.getListeners=function(e){var n,t,o=this._getEvents();if(e instanceof RegExp)for(t in n={},o)o.hasOwnProperty(t)&&e.test(t)&&(n[t]=o[t]);else n=o[e]||(o[e]=[]);return n},i.flattenListeners=function(e){var n,t=[];for(n=0;n{var n=e&&e.__esModule?()=>e.default:()=>e;return t.d(n,{a:n}),n},t.d=(e,n)=>{for(var o in n)t.o(n,o)&&!t.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:n[o]})},t.o=(e,n)=>Object.prototype.hasOwnProperty.call(e,n),t.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var o={};return(()=>{"use strict";t.r(o),t.d(o,{guify:()=>bt});var e=t(879),n=t.n(e),r=t(764),i=t.n(r);function a(e,n){for(var t=0;t3&&void 0!==arguments[3])||arguments[3];return z(this,a),(o=i.call(this)).root=e,o.opts=n,o.theme=t,o.uuid=(0,w.v4)(),r&&(o.container=E(e,n.label)),o.SetEnabled(n.enabled||!0),o}return n=a,(t=[{key:"SetEnabled",value:function(e){var n,t;this.enabled=e,e?null===(n=this.container)||void 0===n||n.classList.remove("disabled"):null===(t=this.container)||void 0===t||t.classList.add("disabled")}},{key:"Remove",value:function(){this.container&&this.container.parentNode.removeChild(this.container)}}])&&D(n.prototype,t),a}(B()),L=t(146),T={};function M(e){return M="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},M(e)}function H(e,n){return H=Object.setPrototypeOf||function(e,n){return e.__proto__=n,e},H(e,n)}function Z(e,n){if(n&&("object"===M(n)||"function"==typeof n))return n;if(void 0!==n)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function F(e){return F=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},F(e)}T.styleTagTransform=y(),T.setAttributes=b(),T.insert=h().bind(null,"head"),T.domAPI=f(),T.insertStyleElement=m(),u()(L.Z,T),L.Z&&L.Z.locals&&L.Z.locals;var V=function(e){!function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(n&&n.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),n&&H(e,n)}(r,e);var n,t,o=(n=r,t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,o=F(n);if(t){var r=F(this).constructor;e=Reflect.construct(o,arguments,r)}else e=o.apply(this,arguments);return Z(this,e)});function r(e,n,t){var i;!function(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}(this,r);var a=(i=o.call(this,e,n,t)).container.appendChild(document.createElement("div"));a.classList.add("guify-title");var c=a.appendChild(document.createElement("div"));return c.classList.add("guify-title-text"),c.innerHTML="■ ".concat(n.label," ■"),i}return r}(R),q=t(114),W=t.n(q),U=t(115),N={};N.styleTagTransform=y(),N.setAttributes=b(),N.insert=h().bind(null,"head"),N.domAPI=f(),N.insertStyleElement=m(),u()(U.Z,N),U.Z&&U.Z.locals&&U.Z.locals;var Y=t(142),$={};$.styleTagTransform=y(),$.setAttributes=b(),$.insert=h().bind(null,"head"),$.domAPI=f(),$.insertStyleElement=m(),u()(Y.Z,$),Y.Z&&Y.Z.locals&&Y.Z.locals;const G=function(e,n,t){var o=e.appendChild(document.createElement("div"));return o.classList.add("guify-component-label"),o.innerHTML=n,o};var X=t(643),Q={};Q.styleTagTransform=y(),Q.setAttributes=b(),Q.insert=h().bind(null,"head"),Q.domAPI=f(),Q.insertStyleElement=m(),u()(X.Z,Q),X.Z&&X.Z.locals&&X.Z.locals;const J=function(e,t,o,r,i){var a=e.appendChild(document.createElement("input"));return a.type="text",a.classList.add("guify-value-input"),a.value=t,i||a.classList.add("guify-value-input-right"),n()(a,{width:r}),a};function K(e){return K="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},K(e)}function ee(e,n){for(var t=0;t 0. Got initial value = ".concat(t.initial))}else if(r.minPos=W()(t.min)?t.min:0,r.maxPos=W()(t.max)?t.max:100,r.min=r.minPos,r.max=r.maxPos,r.precision=W()(t.precision)?t.precision:3,r.step=W()(t.step)?t.step:10/Math.pow(10,3),r.initial=W()(t.initial)?t.initial:r.min,0!=r.step){var i=Math.round((r.initial-r.min)/r.step);r.initial=r.min+r.step*i}return r.input.min=r.minPos,r.input.max=r.maxPos,W()(r.step)&&(r.input.step=r.step),r.input.value=r.initial,n()(r.input,{width:"calc(100% - ".concat(o.sizing.labelWidth," - 16% - 0.5em)")}),r.valueComponent=J(r.container,r._Position(r.initial),0,"16%"),t.label&&r.valueComponent.setAttribute("aria-label",t.label+" value"),setTimeout((function(){r.emit("initialized",parseFloat(r.input.value))})),r.userIsModifying=!1,r.input.addEventListener("focus",(function(){r.focused=!0})),r.input.addEventListener("blur",(function(){r.focused=!1})),r.input.addEventListener("mouseup",(function(){r.input.blur()})),r.input.oninput=function(e){var n=parseFloat(e.target.value),t=r._Value(n);r.valueComponent.value=r._FormatNumber(t,r.precision),r.emit("input",t)},r.valueComponent.onchange=function(){var e=r.valueComponent.value;if(Number(parseFloat(e))==e){var n=parseFloat(e);n=r._ValidatedInputValue(n),r.valueComponent.value=n,r.emit("input",n),r.lastValue=n}else r.valueComponent.value=r.lastValue},r}return t=c,o=[{key:"_Value",value:function(e){if("log"===this.scale){var n=(e-this.minPos)*this.logScale+this.min;return Math.exp(n)}return e}},{key:"_Position",value:function(e){return"log"===this.scale?this.minPos+(Math.log(e)-this.min)/this.logScale:e}},{key:"_ValidatedInputValue",value:function(e){var n;return"log"===this.scale?n=Math.min(Math.max(e,Math.exp(this.min)),Math.exp(this.max)):(n=Math.min(Math.max(e,this.min),this.max),n=Math.ceil((n-this.min)/this.step)*this.step+this.min),n}},{key:"SetValue",value:function(e){var n=this._ValidatedInputValue(e);!0!==this.focused&&(this.valueComponent.value=this._FormatNumber(n,this.precision),this.input.value=this._Position(n),this.lastValue=n)}},{key:"GetValue",value:function(){return this._Value(this.input.value)}},{key:"_FormatNumber",value:function(e,n){return e.toFixed(n).replace(/\.?0*$/,"")}}],o&&ee(t.prototype,o),c}(R),ie=t(351),ae={};function ce(e){return ce="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ce(e)}function se(e,n){return se=Object.setPrototypeOf||function(e,n){return e.__proto__=n,e},se(e,n)}function le(e,n){if(n&&("object"===ce(n)||"function"==typeof n))return n;if(void 0!==n)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function ue(e){return ue=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},ue(e)}ae.styleTagTransform=y(),ae.setAttributes=b(),ae.insert=h().bind(null,"head"),ae.domAPI=f(),ae.insertStyleElement=m(),u()(ie.Z,ae),ie.Z&&ie.Z.locals&&ie.Z.locals;var pe=function(e){!function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(n&&n.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),n&&se(e,n)}(r,e);var n,t,o=(n=r,t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,o=ue(n);if(t){var r=ue(this).constructor;e=Reflect.construct(o,arguments,r)}else e=o.apply(this,arguments);return le(this,e)});function r(e,n,t){var i;return function(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}(this,r),(i=o.call(this,e,n,t)).label=G(i.container,""),i.input=i.container.appendChild(document.createElement("button")),i.input.classList.add("guify-button"),i.input.textContent=n.label,i.button=i.input,i.input.addEventListener("click",n.action),i.input.addEventListener("mouseup",(function(){i.input.blur()})),i}return r}(R),fe=t(11),de={};function he(e){return he="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},he(e)}function Ae(e,n){for(var t=0;t>16&255)/255,g:(e>>8&255)/255,b:(255&e)/255}}(this._hexNumber),t=n.g,o=n.b;this._rgba.r=n.r,this._rgba.g=t,this._rgba.b=o;var r=function(e){var n,t=e.r,o=e.g,r=e.b,i=Math.max(t,o,r),a=Math.min(t,o,r),c=i-a,s=0===i?0:c/i,l=i;if(i==a)n=0;else{switch(i){case t:n=(o-r)/c+(o\n
\n
\n \n
\n
\n
\n ',this.$saturation=this.$el.querySelector(".Scp-saturation"),this.$hue=this.$el.querySelector(".Scp-hue"),this.$sbSelector=this.$el.querySelector(".Scp-sbSelector"),this.$hSelector=this.$el.querySelector(".Scp-hSelector"),this.$saturation.addEventListener("mousedown",this._onSaturationMouseDown),this.$saturation.addEventListener("touchstart",this._onSaturationMouseDown),this.$hue.addEventListener("mousedown",this._onHueMouseDown),this.$hue.addEventListener("touchstart",this._onHueMouseDown),e.el&&this.appendTo(e.el),e.background&&this.setBackgroundColor(e.background),e.widthUnits&&(this._widthUnits=e.widthUnits),e.heightUnits&&(this._heightUnits=e.heightUnits),this.setSize(e.width||175,e.height||150),this.setColor(e.color)}var n=e.prototype;return n.appendTo=function(e){return"string"==typeof e?document.querySelector(e).appendChild(this.$el):e.appendChild(this.$el),this},n.remove=function(){this._callbacks=[],this._onSaturationMouseUp(),this._onHueMouseUp(),this.$saturation.removeEventListener("mousedown",this._onSaturationMouseDown),this.$saturation.removeEventListener("touchstart",this._onSaturationMouseDown),this.$hue.removeEventListener("mousedown",this._onHueMouseDown),this.$hue.removeEventListener("touchstart",this._onHueMouseDown),this.$el.parentNode&&this.$el.parentNode.removeChild(this.$el)},n.setColor=function(e){this._inputIsNumber=Ze(e),this.color.fromHex(e);var n=this.color.hsv,t=n.h,o=n.s,r=n.v;return isNaN(t)||(this.hue=t),this._moveSelectorTo(this._saturationWidth*o,(1-r)*this._hueHeight),this._moveHueTo((1-this.hue)*this._hueHeight),this._updateHue(),this},n.setSize=function(e,n){return this.width=e,this.height=n,this.$el.style.width=this.width+this._widthUnits,this.$el.style.height=this.height+this._heightUnits,this._saturationWidth=this.width-25,this.$saturation.style.width=this._saturationWidth+"px",this._hueHeight=this.height,this._maxHue=this._hueHeight-2,this},n.setBackgroundColor=function(e){return this.backgroundColor.fromHex(e),this.$el.style.padding="5px",this.$el.style.background=this.backgroundColor.hexString,this},n.setNoBackground=function(){return this.$el.style.padding="0px",this.$el.style.background="none",this},n.onChange=function(e){return this._callbacks.indexOf(e)<0&&(this._callbacks.push(e),e(this.getHexString())),this},n.getColor=function(){return this._inputIsNumber?this.getHexNumber():this.getHexString()},n.getHexString=function(){return this.color.hexString.toUpperCase()},n.getHexNumber=function(){return this.color.hex},n.getRGB=function(){return this.color.rgb},n.getHSV=function(){return this.color.hsv},n.isDark=function(){return this.color.isDark},n.isLight=function(){return this.color.isLight},n._moveSelectorTo=function(e,n){this.position.x=Fe(e,0,this._saturationWidth),this.position.y=Fe(n,0,this._hueHeight),this.$sbSelector.style.transform="translate("+this.position.x+"px, "+this.position.y+"px)"},n._updateColorFromPosition=function(){this.color.fromHsv({h:this.hue,s:this.position.x/this._saturationWidth,v:1-this.position.y/this._hueHeight}),this._updateColor()},n._moveHueTo=function(e){this._huePosition=Fe(e,0,this._maxHue),this.$hSelector.style.transform="translateY("+this._huePosition+"px)"},n._updateHueFromPosition=function(){var e=this.getHSV();this.hue=1-this._huePosition/this._maxHue,this.color.fromHsv({h:this.hue,s:e.s,v:e.v}),this._updateHue()},n._updateHue=function(){this.hueColor.fromHsv({h:this.hue,s:1,v:1}),this.$saturation.style.background="linear-gradient(to right, #fff, "+this.hueColor.hexString+")",this._updateColor()},n._updateColor=function(){this.$sbSelector.style.background=this.getHexString(),this.$sbSelector.style.borderColor=this.isDark()?"#fff":"#000",this._triggerChange()},n._triggerChange=function(){var e=this;this._callbacks.forEach((function(n){return n(e.getHexString())}))},He(e,[{key:"isChoosing",get:function(){return this._isChoosing}}]),e}();(0,Te.insertCss)(".Scp{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative}.Scp-saturation{position:relative;height:100%;background:linear-gradient(90deg,#fff,red);float:left;margin-right:5px}.Scp-brightness{width:100%;height:100%;background:linear-gradient(hsla(0,0%,100%,0),#000)}.Scp-sbSelector{border:2px solid #fff;position:absolute;width:14px;height:14px;background:#fff;border-radius:10px;top:-7px;left:-7px;box-sizing:border-box;z-index:10}.Scp-hue{width:20px;height:100%;position:relative;float:left;background:linear-gradient(red,#f0f 17%,#00f 34%,#0ff 50%,#0f0 67%,#ff0 84%,red)}.Scp-hSelector{position:absolute;background:#fff;border-bottom:1px solid #000;right:-3px;width:10px;height:2px}");const Ye=Ne;var $e=t(621),Ge=t.n($e),Xe=t(442),Qe={};function Je(e){return Je="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Je(e)}function Ke(e,n){for(var t=0;t\n \n \n '}}])&&nt(o.prototype,r),s}(R),at=t(56),ct={};function st(e){return st="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},st(e)}function lt(e,n){for(var t=0;t1&&void 0!==arguments[1]?arguments[1]:5e3,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;console.log("[Toast] "+e);var r=this.element.appendChild(document.createElement("div"));r.classList.add("guify-toast-notification"),r.setAttribute("aria-live","polite"),r.innerHTML=e,n()(r,{});var i,a=r.appendChild(document.createElement("button"));a.innerHTML="✖",a.classList.add("guify-toast-close-button");var c=function(){r.blur(),n()(r,{opacity:"0"}),clearTimeout(i),i=setTimeout((function(){r&&r.parentNode.removeChild(r)}),o)};i=setTimeout(c,t),a.onclick=c}}],o&<(t.prototype,o),c}(R);function ht(e,n){for(var t=0;t1&&void 0!==arguments[1]?arguments[1]:{};if(!Array.isArray(e)){var o=Object.assign(e,t);return this._Register(o)}e.forEach((function(e){var o=Object.assign(e,t);n._Register(o)}))}},{key:"Remove",value:function(e){e.Remove(),this.loadedComponents=this.loadedComponents.filter((function(n){return n!==e}))}},{key:"_Register",value:function(e){if(e.object&&e.property&&void 0===e.object[e.property])throw new Error("Object ".concat(e.object," has no property '").concat(e.property,"'"));e.object&&e.property&&(e.initial=e.object[e.property]);var n=this.panel.panel;if(e.folder){var t=this.loadedComponents.find((function(n){return n===e.folder||"folder"===n.opts.type&&n.opts.label===e.folder}));if(!t)throw new Error("No folder exists with the name ".concat(e.folder));n=t.folderContainer}var o=this.componentManager.Create(n,e);return e.object&&e.property&&(o.binding={object:e.object,property:e.property}),o.on&&(o.on("initialized",(function(n){e.onInitialize&&e.onInitialize(n)})),o.on("input",(function(n){e.object&&e.property&&(e.object[e.property]=n),e.onChange&&e.onChange(n)}))),this.loadedComponents.push(o),o}},{key:"Toast",value:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:5e3,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;this.toaster.CreateToast(e,n,t)}},{key:"ToggleFullscreen",value:function(){qn().isFullscreen?qn().exit():(console.log("Request fullscreen"),qn().request(this.opts.root))}},{key:"_SetAllEnabled",value:function(e){this.loadedComponents.forEach((function(n){n.SetEnabled(e)}))}}],o&&ht(t.prototype,o),e}(),bt=At})(),o})()})); //# sourceMappingURL=guify.min.js.map \ No newline at end of file diff --git a/lib/guify.min.js.map b/lib/guify.min.js.map index d08e426..86c5c91 100644 --- a/lib/guify.min.js.map +++ b/lib/guify.min.js.map @@ -1 +1 @@ -{"version":3,"file":"guify.min.js","mappings":"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","sources":["webpack://guify/webpack/universalModuleDefinition","webpack://guify/./node_modules/add-px-to-style/index.js","webpack://guify/./src/components/partials/header.js","webpack://guify/./src/themes.js","webpack://guify/./src/components/internal/container.css","webpack://guify/./src/components/internal/menu-bar.css","webpack://guify/./src/components/internal/panel.css","webpack://guify/./src/components/internal/toast-area.css","webpack://guify/./src/components/partials/container.css","webpack://guify/./src/components/partials/label.css","webpack://guify/./src/components/partials/value.css","webpack://guify/./src/components/public/button.css","webpack://guify/./src/components/public/checkbox.css","webpack://guify/./src/components/public/color.css","webpack://guify/./src/components/public/display.css","webpack://guify/./src/components/public/file.css","webpack://guify/./src/components/public/folder.css","webpack://guify/./src/components/public/interval.css","webpack://guify/./src/components/public/range.css","webpack://guify/./src/components/public/select.css","webpack://guify/./src/components/public/text.css","webpack://guify/./src/components/public/title.css","webpack://guify/./src/components/variables.css","webpack://guify/./node_modules/css-loader/dist/runtime/api.js","webpack://guify/./node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://guify/./node_modules/dom-css/index.js","webpack://guify/./node_modules/insert-css/index.js","webpack://guify/./node_modules/is-numeric/is-numeric.js","webpack://guify/./node_modules/prefix-style/index.js","webpack://guify/./node_modules/screenfull/dist/screenfull.js","webpack://guify/./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://guify/./node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://guify/./node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://guify/./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://guify/./node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://guify/./node_modules/style-loader/dist/runtime/styleTagTransform.js","webpack://guify/./node_modules/tinycolor2/tinycolor.js","webpack://guify/./node_modules/to-camel-case/index.js","webpack://guify/./node_modules/to-no-case/index.js","webpack://guify/./node_modules/to-space-case/index.js","webpack://guify/./node_modules/uuid/index.js","webpack://guify/./node_modules/uuid/lib/bytesToUuid.js","webpack://guify/./node_modules/uuid/lib/rng-browser.js","webpack://guify/./node_modules/uuid/v1.js","webpack://guify/./node_modules/uuid/v4.js","webpack://guify/./node_modules/wolfy87-eventemitter/EventEmitter.js","webpack://guify/webpack/bootstrap","webpack://guify/webpack/runtime/compat get default export","webpack://guify/webpack/runtime/define property getters","webpack://guify/webpack/runtime/hasOwnProperty shorthand","webpack://guify/webpack/runtime/make namespace object","webpack://guify/./src/theme.js","webpack://guify/./src/components/internal/container.css?0113","webpack://guify/./src/components/partials/container.css?cfea","webpack://guify/./src/components/partials/container.js","webpack://guify/./src/components/component-base.js","webpack://guify/./src/components/public/title.css?d79d","webpack://guify/./src/components/public/title.js","webpack://guify/./src/components/public/range.css?3e15","webpack://guify/./src/components/partials/label.css?3e26","webpack://guify/./src/components/partials/label.js","webpack://guify/./src/components/partials/value.css?cf62","webpack://guify/./src/components/partials/value.js","webpack://guify/./src/components/public/range.js","webpack://guify/./src/components/public/button.css?2c6d","webpack://guify/./src/components/public/button.js","webpack://guify/./src/components/public/checkbox.css?8d5c","webpack://guify/./src/components/public/checkbox.js","webpack://guify/./src/components/public/select.css?80f1","webpack://guify/./src/components/public/select.js","webpack://guify/./src/components/public/text.css?0dfd","webpack://guify/./src/components/public/text.js","webpack://guify/./node_modules/simple-color-picker/dist/simple-color-picker.module.js","webpack://guify/./src/components/public/color.css?5c58","webpack://guify/./src/components/public/color.js","webpack://guify/./src/components/public/folder.css?b2a7","webpack://guify/./src/components/public/folder.js","webpack://guify/./src/components/public/file.css?9b4e","webpack://guify/./src/components/public/file.js","webpack://guify/./src/components/public/display.css?3c9a","webpack://guify/./src/components/public/display.js","webpack://guify/./src/components/public/interval.css?430e","webpack://guify/./src/components/public/interval.js","webpack://guify/./src/utils/math-utils.js","webpack://guify/./src/component-manager.js","webpack://guify/./src/components/internal/menu-bar.css?3bfe","webpack://guify/./src/components/internal/menu-bar.js","webpack://guify/./src/components/internal/panel.css?bbeb","webpack://guify/./src/components/internal/panel.js","webpack://guify/./src/components/internal/toast-area.css?3899","webpack://guify/./src/components/internal/toast-area.js","webpack://guify/./src/gui.js","webpack://guify/./src/guify.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(self, function() {\nreturn ","/* The following list is defined in React's core */\nvar IS_UNITLESS = {\n animationIterationCount: true,\n boxFlex: true,\n boxFlexGroup: true,\n boxOrdinalGroup: true,\n columnCount: true,\n flex: true,\n flexGrow: true,\n flexPositive: true,\n flexShrink: true,\n flexNegative: true,\n flexOrder: true,\n gridRow: true,\n gridColumn: true,\n fontWeight: true,\n lineClamp: true,\n lineHeight: true,\n opacity: true,\n order: true,\n orphans: true,\n tabSize: true,\n widows: true,\n zIndex: true,\n zoom: true,\n\n // SVG-related properties\n fillOpacity: true,\n stopOpacity: true,\n strokeDashoffset: true,\n strokeOpacity: true,\n strokeWidth: true\n};\n\nmodule.exports = function(name, value) {\n if(typeof value === 'number' && !IS_UNITLESS[ name ]) {\n return value + 'px';\n } else {\n return value;\n }\n};","import css from \"dom-css\";\n\nexport default function (root, text, theme) {\n var title = root.appendChild(document.createElement(\"div\"));\n title.innerHTML = text;\n\n css(title, {\n width: \"100%\",\n textAlign: \"center\",\n color: theme.colors.textSecondary,\n height: \"20px\",\n marginBottom: \"4px\"\n });\n\n return title;\n}\n","module.exports = {\n\n light: {\n name: \"Light\",\n\n colors: {\n menuBarBackground: \"rgb(227, 227, 227)\",\n menuBarText: \"rgb(36, 36, 36)\",\n panelBackground: \"rgb(227, 227, 227)\",\n\n componentBackground: \"rgb(204, 204, 204)\",\n componentBackgroundHover: \"rgb(190, 190, 190)\",\n componentBackgroundDisabled: \"rgb(200, 200, 200)\",\n componentForeground: \"rgb(105, 105, 105)\",\n componentActive: \"rgb(36, 36, 36)\",\n\n textPrimary: \"rgb(36, 36, 36)\",\n textSecondary: \"rgb(87, 87, 87)\",\n textHover: \"rgb(204, 204, 204)\",\n textActive: \"rgb(204, 204, 204)\",\n textDisabled: \"rgb(180, 180, 180)\",\n },\n\n },\n\n dark: {\n name: \"Dark\",\n\n colors: {\n menuBarBackground: \"rgb(35, 35, 35)\",\n menuBarText: \"rgb(235, 235, 235)\",\n panelBackground: \"rgb(35, 35, 35)\",\n\n componentBackground: \"rgb(54, 54, 54)\",\n componentBackgroundHover: \"rgb(76, 76, 76)\",\n componentBackgroundDisabled: \"rgb(24, 24, 24)\",\n componentForeground: \"rgb(112, 112, 112)\",\n componentActive: \"rgb(202, 202, 202)\",\n\n textPrimary: \"rgb(235, 235, 235)\",\n textSecondary: \"rgb(181, 181, 181)\",\n textHover: \"rgb(235, 235, 235)\",\n textActive: \"rgb(54, 54, 54)\",\n textDisabled: \"rgb(54, 54, 54)\",\n },\n\n },\n\n // Color scheme from https://metakirby5.github.io/yorha/\n yorha: {\n name: \"YoRHa\",\n\n colors: {\n menuBarBackground: \"#CCC8B1\",\n menuBarText: \"#454138\",\n panelBackground: \"#CCC8B1\",\n\n componentBackground: \"#BAB5A1\",\n componentBackgroundHover: \"#877F6E\",\n componentBackgroundDisabled: \"#DED8C7\",\n componentForeground: \"#454138\",\n componentActive: \"#978F7E\",\n\n textPrimary: \"#454138\",\n textSecondary: \"#454138\",\n textHover: \"#CCC8B1\",\n textActive: \"#CCC8B1\",\n textDisabled: \"#BAB5A6\",\n },\n\n //Optional\n font: {\n fontFamily: \"helvetica, sans-serif\",\n fontSize: \"14px\",\n fontWeight: \"100\"\n },\n },\n\n\n};\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".guify-container {\\n position: relative;\\n left: 0;\\n width: 100%;\\n font-size: 11px;\\n z-index: 9999;\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/internal/container.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,kBAAkB;IAClB,OAAO;IACP,WAAW;IACX,eAAe;IACf,aAAa;AACjB\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n.guify-container {\\n position: relative;\\n left: 0;\\n width: 100%;\\n font-size: 11px;\\n z-index: 9999;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".guify-bar {\\n background-color: var(--color-menu-bar-background);\\n height: var(--size-menu-bar-height);\\n width: 100%;\\n opacity: 1.0;\\n position: relative;\\n cursor: default;\\n}\\n\\n.guify-bar-title {\\n color: var(--color-menu-bar-text);\\n text-align: center;\\n width: 100%;\\n position: absolute;\\n top: 0;\\n line-height: var(--size-menu-bar-height);\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n}\\n\\n.guify-bar-button {\\n text-align: center;\\n border: none;\\n cursor: pointer;\\n font-family: inherit;\\n height: 100%;\\n position: absolute;\\n top: 0;\\n color: var(--color-text-primary);\\n background-color: var(--color-component-background);\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n margin: 0;\\n\\n}\\n\\n/* Hide default accessibility outlines since we're providing our own visual feedback */\\n.guify-bar-button:focus {\\n outline: none;\\n}\\n.guify-bar-button::-moz-focus-inner {\\n border: 0;\\n}\\n\\n.guify-bar-button:hover,\\n.guify-bar-button:focus {\\n color: var(--color-text-hover);\\n background-color: var(--color-component-foreground);\\n}\\n\\n.guify-bar-button:active {\\n color: var(--color-text-active) !important;\\n background-color: var(--color-component-active) !important;\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/internal/menu-bar.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,kDAAkD;IAClD,mCAAmC;IACnC,WAAW;IACX,YAAY;IACZ,kBAAkB;IAClB,eAAe;AACnB;;AAEA;IACI,iCAAiC;IACjC,kBAAkB;IAClB,WAAW;IACX,kBAAkB;IAClB,MAAM;IACN,wCAAwC;IACxC,yBAAyB;IACzB,sBAAsB;IACtB,qBAAqB;IACrB,iBAAiB;AACrB;;AAEA;IACI,kBAAkB;IAClB,YAAY;IACZ,eAAe;IACf,oBAAoB;IACpB,YAAY;IACZ,kBAAkB;IAClB,MAAM;IACN,gCAAgC;IAChC,mDAAmD;IACnD,yBAAyB;IACzB,sBAAsB;IACtB,qBAAqB;IACrB,iBAAiB;IACjB,SAAS;;AAEb;;AAEA,sFAAsF;AACtF;IACI,aAAa;AACjB;AACA;IACI,SAAS;AACb;;AAEA;;IAEI,8BAA8B;IAC9B,mDAAmD;AACvD;;AAEA;IACI,0CAA0C;IAC1C,0DAA0D;AAC9D\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n.guify-bar {\\n background-color: var(--color-menu-bar-background);\\n height: var(--size-menu-bar-height);\\n width: 100%;\\n opacity: 1.0;\\n position: relative;\\n cursor: default;\\n}\\n\\n.guify-bar-title {\\n color: var(--color-menu-bar-text);\\n text-align: center;\\n width: 100%;\\n position: absolute;\\n top: 0;\\n line-height: var(--size-menu-bar-height);\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n}\\n\\n.guify-bar-button {\\n text-align: center;\\n border: none;\\n cursor: pointer;\\n font-family: inherit;\\n height: 100%;\\n position: absolute;\\n top: 0;\\n color: var(--color-text-primary);\\n background-color: var(--color-component-background);\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n margin: 0;\\n\\n}\\n\\n/* Hide default accessibility outlines since we're providing our own visual feedback */\\n.guify-bar-button:focus {\\n outline: none;\\n}\\n.guify-bar-button::-moz-focus-inner {\\n border: 0;\\n}\\n\\n.guify-bar-button:hover,\\n.guify-bar-button:focus {\\n color: var(--color-text-hover);\\n background-color: var(--color-component-foreground);\\n}\\n\\n.guify-bar-button:active {\\n color: var(--color-text-active) !important;\\n background-color: var(--color-component-active) !important;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".guify-panel-container {\\n position: absolute;\\n background: var(--color-panel-background);\\n}\\n\\n.guify-panel {\\n padding: 14px;\\n /* Last component will have a margin, so reduce padding to account for this */\\n padding-bottom: calc(14px - var(--size-component-spacing));\\n\\n /* all: initial; */\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n cursor: default;\\n text-align: left;\\n box-sizing: border-box;\\n}\\n\\n.guify-panel.guify-panel-hidden {\\n height: 0px;\\n display: none;\\n}\\n\\n.guify-panel * {\\n box-sizing: content-box;\\n box-sizing: initial;\\n -webkit-box-sizing: initial;\\n -moz-box-sizing: initial;\\n}\\n\\n.guify-panel input {\\n font-family: 'Hack';\\n font-size: 11px;\\n display: inline;\\n}\\n\\n.guify-panel a {\\n color: inherit;\\n text-decoration: none;\\n}\\n\\n.guify-panel-toggle-button {\\n position: absolute;\\n top: 0;\\n margin: 0;\\n padding: 0;\\n width: 15px;\\n height: 15px;\\n line-height: 15px;\\n text-align: center;\\n border: none;\\n cursor: pointer;\\n font-family: inherit;\\n color: var(--color-text-primary);\\n background-color: var(--color-component-background);\\n\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n\\n}\\n\\n/* Open/Close button styling */\\n.guify-panel-toggle-button svg {\\n fill-opacity: 0;\\n stroke-width: 3;\\n stroke: var(--color-component-foreground);\\n}\\n\\n/* Remove browser default outlines since we're providing our own */\\n.guify-panel-toggle-button:focus {\\n outline:none;\\n}\\n.guify-panel-toggle-button::-moz-focus-inner {\\n border: 0;\\n}\\n\\n.guify-panel-toggle-button:hover,\\n.guify-panel-toggle-button:focus {\\n color: var(--color-text-hover);\\n background-color: var(--color-component-foreground);\\n}\\n\\n.guify-panel-toggle-button:active {\\n color: var(--color-text-active);\\n background-color:var(--color-component-active);\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/internal/panel.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,kBAAkB;IAClB,yCAAyC;AAC7C;;AAEA;IACI,aAAa;IACb,6EAA6E;IAC7E,0DAA0D;;IAE1D,mBAAmB;IACnB,yBAAyB;IACzB,sBAAsB;IACtB,qBAAqB;IACrB,iBAAiB;IACjB,eAAe;IACf,gBAAgB;IAChB,sBAAsB;AAC1B;;AAEA;IACI,WAAW;IACX,aAAa;AACjB;;AAEA;IACI,uBAAmB;IAAnB,mBAAmB;IACnB,2BAA2B;IAC3B,wBAAwB;AAC5B;;AAEA;IACI,mBAAmB;IACnB,eAAe;IACf,eAAe;AACnB;;AAEA;IACI,cAAc;IACd,qBAAqB;AACzB;;AAEA;IACI,kBAAkB;IAClB,MAAM;IACN,SAAS;IACT,UAAU;IACV,WAAW;IACX,YAAY;IACZ,iBAAiB;IACjB,kBAAkB;IAClB,YAAY;IACZ,eAAe;IACf,oBAAoB;IACpB,gCAAgC;IAChC,mDAAmD;;IAEnD,yBAAyB;IACzB,sBAAsB;IACtB,qBAAqB;IACrB,iBAAiB;;AAErB;;AAEA,8BAA8B;AAC9B;IACI,eAAe;IACf,eAAe;IACf,yCAAyC;AAC7C;;AAEA,kEAAkE;AAClE;IACI,YAAY;AAChB;AACA;IACI,SAAS;AACb;;AAEA;;IAEI,8BAA8B;IAC9B,mDAAmD;AACvD;;AAEA;IACI,+BAA+B;IAC/B,8CAA8C;AAClD\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n.guify-panel-container {\\n position: absolute;\\n background: var(--color-panel-background);\\n}\\n\\n.guify-panel {\\n padding: 14px;\\n /* Last component will have a margin, so reduce padding to account for this */\\n padding-bottom: calc(14px - var(--size-component-spacing));\\n\\n /* all: initial; */\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n cursor: default;\\n text-align: left;\\n box-sizing: border-box;\\n}\\n\\n.guify-panel.guify-panel-hidden {\\n height: 0px;\\n display: none;\\n}\\n\\n.guify-panel * {\\n box-sizing: initial;\\n -webkit-box-sizing: initial;\\n -moz-box-sizing: initial;\\n}\\n\\n.guify-panel input {\\n font-family: 'Hack';\\n font-size: 11px;\\n display: inline;\\n}\\n\\n.guify-panel a {\\n color: inherit;\\n text-decoration: none;\\n}\\n\\n.guify-panel-toggle-button {\\n position: absolute;\\n top: 0;\\n margin: 0;\\n padding: 0;\\n width: 15px;\\n height: 15px;\\n line-height: 15px;\\n text-align: center;\\n border: none;\\n cursor: pointer;\\n font-family: inherit;\\n color: var(--color-text-primary);\\n background-color: var(--color-component-background);\\n\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n\\n}\\n\\n/* Open/Close button styling */\\n.guify-panel-toggle-button svg {\\n fill-opacity: 0;\\n stroke-width: 3;\\n stroke: var(--color-component-foreground);\\n}\\n\\n/* Remove browser default outlines since we're providing our own */\\n.guify-panel-toggle-button:focus {\\n outline:none;\\n}\\n.guify-panel-toggle-button::-moz-focus-inner {\\n border: 0;\\n}\\n\\n.guify-panel-toggle-button:hover,\\n.guify-panel-toggle-button:focus {\\n color: var(--color-text-hover);\\n background-color: var(--color-component-foreground);\\n}\\n\\n.guify-panel-toggle-button:active {\\n color: var(--color-text-active);\\n background-color:var(--color-component-active);\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".guify-toast-notification {\\n box-sizing: border-box;\\n position: relative;\\n width: 100%;\\n /* height: 20px; */\\n padding: 8px;\\n padding-left: 20px;\\n padding-right: 20px;\\n text-align: center;\\n font-family: 'Hack', monospace;\\n font-size: 11px;\\n}\\n\\n.guify-toast-area .guify-toast-notification:nth-child(odd) {\\n color: var(--color-text-primary);\\n background-color:var(--color-panel-background);\\n}\\n\\n.guify-toast-area .guify-toast-notification:nth-child(even) {\\n color: var(--color-text-primary);\\n background-color: var(--color-menu-bar-background);\\n}\\n\\n.guify-toast-close-button {\\n color: var(--color-text-primary);\\n background: transparent;\\n position: absolute;\\n text-align: center;\\n margin-top: auto;\\n margin-bottom: auto;\\n border: none;\\n cursor: pointer;\\n top: 0;\\n bottom: 0;\\n right: 8px;\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/internal/toast-area.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,sBAAsB;IACtB,kBAAkB;IAClB,WAAW;IACX,kBAAkB;IAClB,YAAY;IACZ,kBAAkB;IAClB,mBAAmB;IACnB,kBAAkB;IAClB,8BAA8B;IAC9B,eAAe;AACnB;;AAEA;IACI,gCAAgC;IAChC,8CAA8C;AAClD;;AAEA;IACI,gCAAgC;IAChC,kDAAkD;AACtD;;AAEA;IACI,gCAAgC;IAChC,uBAAuB;IACvB,kBAAkB;IAClB,kBAAkB;IAClB,gBAAgB;IAChB,mBAAmB;IACnB,YAAY;IACZ,eAAe;IACf,MAAM;IACN,SAAS;IACT,UAAU;AACd\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n.guify-toast-notification {\\n box-sizing: border-box;\\n position: relative;\\n width: 100%;\\n /* height: 20px; */\\n padding: 8px;\\n padding-left: 20px;\\n padding-right: 20px;\\n text-align: center;\\n font-family: 'Hack', monospace;\\n font-size: 11px;\\n}\\n\\n.guify-toast-area .guify-toast-notification:nth-child(odd) {\\n color: var(--color-text-primary);\\n background-color:var(--color-panel-background);\\n}\\n\\n.guify-toast-area .guify-toast-notification:nth-child(even) {\\n color: var(--color-text-primary);\\n background-color: var(--color-menu-bar-background);\\n}\\n\\n.guify-toast-close-button {\\n color: var(--color-text-primary);\\n background: transparent;\\n position: absolute;\\n text-align: center;\\n margin-top: auto;\\n margin-bottom: auto;\\n border: none;\\n cursor: pointer;\\n top: 0;\\n bottom: 0;\\n right: 8px;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".guify-component-container {\\n position: relative;\\n min-height: var(--size-component-height);\\n line-height: var(--size-component-height);\\n margin-bottom: var(--size-component-spacing);\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/partials/container.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,kBAAkB;IAClB,wCAAwC;IACxC,yCAAyC;IACzC,4CAA4C;AAChD\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n.guify-component-container {\\n position: relative;\\n min-height: var(--size-component-height);\\n line-height: var(--size-component-height);\\n margin-bottom: var(--size-component-spacing);\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".guify-component-label {\\n left: 0;\\n width: calc(var(--size-label-width) - 2%);\\n display: inline-block;\\n margin-right: 2%;\\n vertical-align: top;\\n min-height: var(--size-component-height);\\n line-height: var(--size-component-height);\\n\\n color: var(--color-text-primary);\\n}\\n\\n/* Disabled styles */\\n.disabled .guify-component-label {\\n color: var(--color-text-disabled);\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/partials/label.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,OAAO;IACP,yCAAyC;IACzC,qBAAqB;IACrB,gBAAgB;IAChB,mBAAmB;IACnB,wCAAwC;IACxC,yCAAyC;;IAEzC,gCAAgC;AACpC;;AAEA,oBAAoB;AACpB;IACI,iCAAiC;AACrC\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n.guify-component-label {\\n left: 0;\\n width: calc(var(--size-label-width) - 2%);\\n display: inline-block;\\n margin-right: 2%;\\n vertical-align: top;\\n min-height: var(--size-component-height);\\n line-height: var(--size-component-height);\\n\\n color: var(--color-text-primary);\\n}\\n\\n/* Disabled styles */\\n.disabled .guify-component-label {\\n color: var(--color-text-disabled);\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".guify-value-input {\\n position: absolute;\\n background-color: var(--color-component-background);\\n padding-left: 1%;\\n height: var(--size-component-height);\\n display: inline-block;\\n overflow: hidden;\\n border: none;\\n\\n font-family: 'Hack', monospace;\\n font-size: 11px;\\n color: var(--color-text-secondary);\\n -webkit-user-select: text;\\n -moz-user-select: text;\\n -ms-user-select: text;\\n user-select: text;\\n cursor: text;\\n line-height: var(--size-component-height);\\n word-break: break-all;\\n\\n box-sizing: border-box !important;\\n -moz-box-sizing: border-box !important;\\n -webkit-box-sizing: border-box !important;\\n}\\n\\n.guify-value-input-right {\\n right: 0 !important;\\n}\\n\\n.disabled .guify-value-input {\\n pointer-events: none;\\n background-color: var(--color-component-background-disabled);\\n color: var(--color-text-disabled);\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/partials/value.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,kBAAkB;IAClB,mDAAmD;IACnD,gBAAgB;IAChB,oCAAoC;IACpC,qBAAqB;IACrB,gBAAgB;IAChB,YAAY;;IAEZ,8BAA8B;IAC9B,eAAe;IACf,kCAAkC;IAClC,yBAAiB;OAAjB,sBAAiB;QAAjB,qBAAiB;YAAjB,iBAAiB;IACjB,YAAY;IACZ,yCAAyC;IACzC,qBAAqB;;IAErB,iCAAiC;IACjC,sCAAsC;IACtC,yCAAyC;AAC7C;;AAEA;IACI,mBAAmB;AACvB;;AAEA;IACI,oBAAoB;IACpB,4DAA4D;IAC5D,iCAAiC;AACrC\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n.guify-value-input {\\n position: absolute;\\n background-color: var(--color-component-background);\\n padding-left: 1%;\\n height: var(--size-component-height);\\n display: inline-block;\\n overflow: hidden;\\n border: none;\\n\\n font-family: 'Hack', monospace;\\n font-size: 11px;\\n color: var(--color-text-secondary);\\n user-select: text;\\n cursor: text;\\n line-height: var(--size-component-height);\\n word-break: break-all;\\n\\n box-sizing: border-box !important;\\n -moz-box-sizing: border-box !important;\\n -webkit-box-sizing: border-box !important;\\n}\\n\\n.guify-value-input-right {\\n right: 0 !important;\\n}\\n\\n.disabled .guify-value-input {\\n pointer-events: none;\\n background-color: var(--color-component-background-disabled);\\n color: var(--color-text-disabled);\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".guify-button {\\n box-sizing: border-box !important;\\n color: var(--color-text-secondary);\\n background-color: var(--color-component-background);\\n\\n position: absolute;\\n text-align: center;\\n height: var(--size-component-height);\\n line-height: var(--size-component-height);\\n padding-top: 0px;\\n padding-bottom: 0px;\\n width: calc(100% - var(--size-label-width));\\n border: none;\\n cursor: pointer;\\n right: 0;\\n font-family: inherit;\\n}\\n\\n.guify-button:focus {\\n outline:none;\\n}\\n.guify-button::-moz-focus-inner {\\n border:0;\\n}\\n\\n.guify-button:hover,\\n.guify-button:focus {\\n color: var(--color-text-hover);\\n background-color: var(--color-component-foreground);\\n}\\n\\n.guify-button:active {\\n color: var(--color-text-active) !important;\\n background-color: var(--color-component-active) !important;\\n}\\n\\n*.disabled > .guify-button {\\n pointer-events: none;\\n background-color: var(--color-component-background-disabled);\\n color: var(--color-text-disabled);\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/public/button.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,iCAAiC;IACjC,kCAAkC;IAClC,mDAAmD;;IAEnD,kBAAkB;IAClB,kBAAkB;IAClB,oCAAoC;IACpC,yCAAyC;IACzC,gBAAgB;IAChB,mBAAmB;IACnB,2CAA2C;IAC3C,YAAY;IACZ,eAAe;IACf,QAAQ;IACR,oBAAoB;AACxB;;AAEA;IACI,YAAY;AAChB;AACA;IACI,QAAQ;AACZ;;AAEA;;IAEI,8BAA8B;IAC9B,mDAAmD;AACvD;;AAEA;IACI,0CAA0C;IAC1C,0DAA0D;AAC9D;;AAEA;IACI,oBAAoB;IACpB,4DAA4D;IAC5D,iCAAiC;AACrC\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n.guify-button {\\n box-sizing: border-box !important;\\n color: var(--color-text-secondary);\\n background-color: var(--color-component-background);\\n\\n position: absolute;\\n text-align: center;\\n height: var(--size-component-height);\\n line-height: var(--size-component-height);\\n padding-top: 0px;\\n padding-bottom: 0px;\\n width: calc(100% - var(--size-label-width));\\n border: none;\\n cursor: pointer;\\n right: 0;\\n font-family: inherit;\\n}\\n\\n.guify-button:focus {\\n outline:none;\\n}\\n.guify-button::-moz-focus-inner {\\n border:0;\\n}\\n\\n.guify-button:hover,\\n.guify-button:focus {\\n color: var(--color-text-hover);\\n background-color: var(--color-component-foreground);\\n}\\n\\n.guify-button:active {\\n color: var(--color-text-active) !important;\\n background-color: var(--color-component-active) !important;\\n}\\n\\n*.disabled > .guify-button {\\n pointer-events: none;\\n background-color: var(--color-component-background-disabled);\\n color: var(--color-text-disabled);\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root {\\n --checkbox-border-width: 4px;\\n}\\n\\ninput[type=checkbox].guify-checkbox {\\n opacity: 0;\\n appearance: none;\\n -moz-appearance: none;\\n -webkit-appearance: none;\\n margin: 0;\\n border-radius: 0;\\n cursor: pointer;\\n}\\n\\ninput[type=checkbox].guify-checkbox + label {\\n margin: 0;\\n}\\n\\ninput[type=checkbox].guify-checkbox + label:before {\\n content: \\\"\\\";\\n display: inline-block;\\n width: var(--size-component-height);\\n height: var(--size-component-height);\\n padding: 0;\\n margin: 0;\\n vertical-align: middle;\\n background-color: var(--color-component-background);\\n border-radius: 0px;\\n cursor: pointer;\\n box-sizing: content-box;\\n -moz-box-sizing: content-box;\\n -webkit-box-sizing: content-box;\\n\\n}\\n\\n/* Hover style */\\ninput[type=checkbox].guify-checkbox:hover:not(:disabled) + label:before {\\n width: calc(var(--size-component-height) - (4px * 2));\\n width: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\\n height: calc(var(--size-component-height) - (4px * 2));\\n height: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\\n background-color: var(--color-component-background-hover);\\n border: solid 4px var(--color-component-background);\\n}\\n\\n/* Checked style */\\ninput[type=checkbox]:checked.guify-checkbox + label:before {\\n width: calc(var(--size-component-height) - (4px * 2));\\n width: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\\n height: calc(var(--size-component-height) - (4px * 2));\\n height: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\\n background-color: var(--color-component-foreground);\\n border: solid 4px var(--color-component-background);\\n border: solid var(--checkbox-border-width) var(--color-component-background);\\n}\\n\\n/* Focused and checked */\\ninput[type=checkbox]:checked.guify-checkbox:focus + label:before {\\n width: calc(var(--size-component-height) - (4px * 2));\\n width: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\\n height: calc(var(--size-component-height) - (4px * 2));\\n height: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\\n background-color: var(--color-component-foreground);\\n border: solid 4px var(--color-component-background-hover);\\n border: solid var(--checkbox-border-width) var(--color-component-background-hover);\\n}\\n\\n/* Focus and unchecked */\\ninput[type=checkbox].guify-checkbox:focus + label:before {\\n background-color: var(--color-component-background-hover);\\n}\\n\\n/* Disabled styles */\\n.disabled input[type=checkbox].guify-checkbox + label {\\n pointer-events: none;\\n}\\n.disabled input[type=\\\"checkbox\\\"].guify-checkbox + label::before {\\n pointer-events: none;\\n background-color: var(--color-component-background-disabled);\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/public/checkbox.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,4BAA4B;AAChC;;AAEA;IACI,UAAU;IACV,gBAAgB;IAChB,qBAAqB;IACrB,wBAAwB;IACxB,SAAS;IACT,gBAAgB;IAChB,eAAe;AACnB;;AAEA;IACI,SAAS;AACb;;AAEA;IACI,WAAW;IACX,qBAAqB;IACrB,mCAAmC;IACnC,oCAAoC;IACpC,UAAU;IACV,SAAS;IACT,sBAAsB;IACtB,mDAAmD;IACnD,kBAAkB;IAClB,eAAe;IACf,uBAAuB;IACvB,4BAA4B;IAC5B,+BAA+B;;AAEnC;;AAEA,gBAAgB;AAChB;IACI,qDAA8E;IAA9E,8EAA8E;IAC9E,sDAA+E;IAA/E,+EAA+E;IAC/E,yDAAyD;IACzD,mDAAmD;AACvD;;AAEA,kBAAkB;AAClB;IACI,qDAA8E;IAA9E,8EAA8E;IAC9E,sDAA+E;IAA/E,+EAA+E;IAC/E,mDAAmD;IACnD,mDAA4E;IAA5E,4EAA4E;AAChF;;AAEA,wBAAwB;AACxB;IACI,qDAA8E;IAA9E,8EAA8E;IAC9E,sDAA+E;IAA/E,+EAA+E;IAC/E,mDAAmD;IACnD,yDAAkF;IAAlF,kFAAkF;AACtF;;AAEA,wBAAwB;AACxB;IACI,yDAAyD;AAC7D;;AAEA,oBAAoB;AACpB;IACI,oBAAoB;AACxB;AACA;IACI,oBAAoB;IACpB,4DAA4D;AAChE\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n:root {\\n --checkbox-border-width: 4px;\\n}\\n\\ninput[type=checkbox].guify-checkbox {\\n opacity: 0;\\n appearance: none;\\n -moz-appearance: none;\\n -webkit-appearance: none;\\n margin: 0;\\n border-radius: 0;\\n cursor: pointer;\\n}\\n\\ninput[type=checkbox].guify-checkbox + label {\\n margin: 0;\\n}\\n\\ninput[type=checkbox].guify-checkbox + label:before {\\n content: \\\"\\\";\\n display: inline-block;\\n width: var(--size-component-height);\\n height: var(--size-component-height);\\n padding: 0;\\n margin: 0;\\n vertical-align: middle;\\n background-color: var(--color-component-background);\\n border-radius: 0px;\\n cursor: pointer;\\n box-sizing: content-box;\\n -moz-box-sizing: content-box;\\n -webkit-box-sizing: content-box;\\n\\n}\\n\\n/* Hover style */\\ninput[type=checkbox].guify-checkbox:hover:not(:disabled) + label:before {\\n width: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\\n height: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\\n background-color: var(--color-component-background-hover);\\n border: solid 4px var(--color-component-background);\\n}\\n\\n/* Checked style */\\ninput[type=checkbox]:checked.guify-checkbox + label:before {\\n width: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\\n height: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\\n background-color: var(--color-component-foreground);\\n border: solid var(--checkbox-border-width) var(--color-component-background);\\n}\\n\\n/* Focused and checked */\\ninput[type=checkbox]:checked.guify-checkbox:focus + label:before {\\n width: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\\n height: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\\n background-color: var(--color-component-foreground);\\n border: solid var(--checkbox-border-width) var(--color-component-background-hover);\\n}\\n\\n/* Focus and unchecked */\\ninput[type=checkbox].guify-checkbox:focus + label:before {\\n background-color: var(--color-component-background-hover);\\n}\\n\\n/* Disabled styles */\\n.disabled input[type=checkbox].guify-checkbox + label {\\n pointer-events: none;\\n}\\n.disabled input[type=\\\"checkbox\\\"].guify-checkbox + label::before {\\n pointer-events: none;\\n background-color: var(--color-component-background-disabled);\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/* Styling for simple-color-picker */\\n\\n.guify-color .Scp {\\n width: 125px;\\n height: 100px;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n position: relative;\\n z-index: 1000;\\n cursor: pointer;\\n}\\n.guify-color .Scp-saturation {\\n position: relative;\\n width: calc(100% - 25px);\\n height: 100%;\\n background: linear-gradient(to right, #fff 0%, #f00 100%);\\n float: left;\\n margin-right: 5px;\\n}\\n.guify-color .Scp-brightness {\\n width: 100%;\\n height: 100%;\\n background: linear-gradient(to top, #000 0%, rgba(255,255,255,0) 100%);\\n}\\n.guify-color .Scp-sbSelector {\\n border: 1px solid;\\n position: absolute;\\n width: 14px;\\n height: 14px;\\n background: #fff;\\n border-radius: 10px;\\n top: -7px;\\n left: -7px;\\n box-sizing: border-box;\\n z-index: 10;\\n}\\n.guify-color .Scp-hue {\\n width: 20px;\\n height: 100%;\\n position: relative;\\n float: left;\\n background: linear-gradient(to bottom, #f00 0%, #f0f 17%, #00f 34%, #0ff 50%, #0f0 67%, #ff0 84%, #f00 100%);\\n}\\n.guify-color .Scp-hSelector {\\n position: absolute;\\n background: #fff;\\n border-bottom: 1px solid #000;\\n right: -3px;\\n width: 10px;\\n height: 2px;\\n}\\n\\n/* Disabled styles */\\n.disabled .guify-color {\\n pointer-events: none;\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/public/color.css\"],\"names\":[],\"mappings\":\"AAEA,oCAAoC;;AAEpC;IACI,YAAY;IACZ,aAAa;IACb,yBAAyB;QACrB,sBAAsB;YAClB,qBAAqB;gBACjB,iBAAiB;IAC7B,kBAAkB;IAClB,aAAa;IACb,eAAe;AACnB;AACA;IACI,kBAAkB;IAClB,wBAAwB;IACxB,YAAY;IACZ,yDAAyD;IACzD,WAAW;IACX,iBAAiB;AACrB;AACA;IACI,WAAW;IACX,YAAY;IACZ,sEAAsE;AAC1E;AACA;IACI,iBAAiB;IACjB,kBAAkB;IAClB,WAAW;IACX,YAAY;IACZ,gBAAgB;IAChB,mBAAmB;IACnB,SAAS;IACT,UAAU;IACV,sBAAsB;IACtB,WAAW;AACf;AACA;IACI,WAAW;IACX,YAAY;IACZ,kBAAkB;IAClB,WAAW;IACX,4GAA4G;AAChH;AACA;IACI,kBAAkB;IAClB,gBAAgB;IAChB,6BAA6B;IAC7B,WAAW;IACX,WAAW;IACX,WAAW;AACf;;AAEA,oBAAoB;AACpB;IACI,oBAAoB;AACxB\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n/* Styling for simple-color-picker */\\n\\n.guify-color .Scp {\\n width: 125px;\\n height: 100px;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n position: relative;\\n z-index: 1000;\\n cursor: pointer;\\n}\\n.guify-color .Scp-saturation {\\n position: relative;\\n width: calc(100% - 25px);\\n height: 100%;\\n background: linear-gradient(to right, #fff 0%, #f00 100%);\\n float: left;\\n margin-right: 5px;\\n}\\n.guify-color .Scp-brightness {\\n width: 100%;\\n height: 100%;\\n background: linear-gradient(to top, #000 0%, rgba(255,255,255,0) 100%);\\n}\\n.guify-color .Scp-sbSelector {\\n border: 1px solid;\\n position: absolute;\\n width: 14px;\\n height: 14px;\\n background: #fff;\\n border-radius: 10px;\\n top: -7px;\\n left: -7px;\\n box-sizing: border-box;\\n z-index: 10;\\n}\\n.guify-color .Scp-hue {\\n width: 20px;\\n height: 100%;\\n position: relative;\\n float: left;\\n background: linear-gradient(to bottom, #f00 0%, #f0f 17%, #00f 34%, #0ff 50%, #0f0 67%, #ff0 84%, #f00 100%);\\n}\\n.guify-color .Scp-hSelector {\\n position: absolute;\\n background: #fff;\\n border-bottom: 1px solid #000;\\n right: -3px;\\n width: 10px;\\n height: 2px;\\n}\\n\\n/* Disabled styles */\\n.disabled .guify-color {\\n pointer-events: none;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".guify-display {\\n display: inline-block;\\n height: unset;\\n min-height: var(--size-component-height);\\n width: calc(100% - var(--size-label-width));\\n border: none;\\n color: var(--color-text-secondary);\\n font-family: inherit;\\n box-sizing: border-box;\\n -moz-box-sizing: border-box;\\n -webkit-box-sizing: border-box;\\n vertical-align: sub;\\n line-height: 1rem;\\n -webkit-user-select: text;\\n -moz-user-select: text;\\n -ms-user-select: text;\\n user-select: text;\\n}\\n\\n.disabled .guify-display {\\n color: var(--color-text-disabled);\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/public/display.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,qBAAqB;IACrB,aAAa;IACb,wCAAwC;IACxC,2CAA2C;IAC3C,YAAY;IACZ,kCAAkC;IAClC,oBAAoB;IACpB,sBAAsB;IACtB,2BAA2B;IAC3B,8BAA8B;IAC9B,mBAAmB;IACnB,iBAAiB;IACjB,yBAAiB;OAAjB,sBAAiB;QAAjB,qBAAiB;YAAjB,iBAAiB;AACrB;;AAEA;IACI,iCAAiC;AACrC\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n.guify-display {\\n display: inline-block;\\n height: unset;\\n min-height: var(--size-component-height);\\n width: calc(100% - var(--size-label-width));\\n border: none;\\n color: var(--color-text-secondary);\\n font-family: inherit;\\n box-sizing: border-box;\\n -moz-box-sizing: border-box;\\n -webkit-box-sizing: border-box;\\n vertical-align: sub;\\n line-height: 1rem;\\n user-select: text;\\n}\\n\\n.disabled .guify-display {\\n color: var(--color-text-disabled);\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".guify-file-container {\\n display: inline-block;\\n outline: none;\\n padding-top: 8px;\\n padding-bottom: 8px;\\n color: var(--color-text-primary);\\n background-color: var(--color-component-background);\\n cursor: pointer;\\n}\\n\\n.guify-file-container:hover:not(:disabled),\\n.guify-file-container:focus:not(:disabled) {\\n color: var(--color-text-hover);\\n background-color: var(--color-component-foreground);\\n}\\n\\n.guify-file-container:active:not(:disabled) {\\n color: var(--color-text-active) !important;\\n background-color: var(--color-component-active) !important;\\n}\\n\\n.guify-dragover:not(:disabled) {\\n background-color: var(--color-component-background);\\n box-shadow: inset 0 0 0 3px var(--color-component-foreground);\\n}\\n\\n.disabled.guify-file-container {\\n pointer-events: none;\\n color: var(--color-text-disabled) !important;\\n background-color: var(--color-component-background-disabled) !important;\\n box-shadow: inset 0 0 0 3px var(--color-component-background-disabled) !important;\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/public/file.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,qBAAqB;IACrB,aAAa;IACb,gBAAgB;IAChB,mBAAmB;IACnB,gCAAgC;IAChC,mDAAmD;IACnD,eAAe;AACnB;;AAEA;;IAEI,8BAA8B;IAC9B,mDAAmD;AACvD;;AAEA;IACI,0CAA0C;IAC1C,0DAA0D;AAC9D;;AAEA;IACI,mDAAmD;IACnD,6DAA6D;AACjE;;AAEA;IACI,oBAAoB;IACpB,4CAA4C;IAC5C,uEAAuE;IACvE,iFAAiF;AACrF\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n.guify-file-container {\\n display: inline-block;\\n outline: none;\\n padding-top: 8px;\\n padding-bottom: 8px;\\n color: var(--color-text-primary);\\n background-color: var(--color-component-background);\\n cursor: pointer;\\n}\\n\\n.guify-file-container:hover:not(:disabled),\\n.guify-file-container:focus:not(:disabled) {\\n color: var(--color-text-hover);\\n background-color: var(--color-component-foreground);\\n}\\n\\n.guify-file-container:active:not(:disabled) {\\n color: var(--color-text-active) !important;\\n background-color: var(--color-component-active) !important;\\n}\\n\\n.guify-dragover:not(:disabled) {\\n background-color: var(--color-component-background);\\n box-shadow: inset 0 0 0 3px var(--color-component-foreground);\\n}\\n\\n.disabled.guify-file-container {\\n pointer-events: none;\\n color: var(--color-text-disabled) !important;\\n background-color: var(--color-component-background-disabled) !important;\\n box-shadow: inset 0 0 0 3px var(--color-component-background-disabled) !important;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".guify-folder {\\n cursor: pointer;\\n padding-left: 0.5em;\\n color: var(--color-text-primary);\\n}\\n\\n.guify-folder div {\\n display: inline-block;\\n vertical-align: sub;\\n line-height: calc(var(--size-component-height) + 5px);\\n}\\n\\n.guify-folder:hover,\\n.guify-folder:focus {\\n color: var(--color-text-hover);\\n background-color: var(--color-component-foreground);\\n outline: none;\\n}\\n\\n\\n.guify-folder-contents {\\n display: block;\\n box-sizing: border-box;\\n padding-left: 14px;\\n margin-bottom: 5px;\\n border-left: 2px solid var(--color-component-background);\\n}\\n\\n.guify-folder-contents.guify-folder-closed {\\n height: 0;\\n display: none;\\n}\\n\\n.guify-folder .guify-folder-arrow {\\n width: 1.5em;\\n}\\n\\n/* Disabled styles */\\n\\n.guify-folder.disabled {\\n pointer-events: none;\\n color: var(--color-text-disabled);\\n}\\n\\n.guify-folder.disabled + .guify-folder-contents {\\n pointer-events: none;\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/public/folder.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,eAAe;IACf,mBAAmB;IACnB,gCAAgC;AACpC;;AAEA;IACI,qBAAqB;IACrB,mBAAmB;IACnB,qDAAqD;AACzD;;AAEA;;IAEI,8BAA8B;IAC9B,mDAAmD;IACnD,aAAa;AACjB;;;AAGA;IACI,cAAc;IACd,sBAAsB;IACtB,kBAAkB;IAClB,kBAAkB;IAClB,wDAAwD;AAC5D;;AAEA;IACI,SAAS;IACT,aAAa;AACjB;;AAEA;IACI,YAAY;AAChB;;AAEA,oBAAoB;;AAEpB;IACI,oBAAoB;IACpB,iCAAiC;AACrC;;AAEA;IACI,oBAAoB;AACxB\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n.guify-folder {\\n cursor: pointer;\\n padding-left: 0.5em;\\n color: var(--color-text-primary);\\n}\\n\\n.guify-folder div {\\n display: inline-block;\\n vertical-align: sub;\\n line-height: calc(var(--size-component-height) + 5px);\\n}\\n\\n.guify-folder:hover,\\n.guify-folder:focus {\\n color: var(--color-text-hover);\\n background-color: var(--color-component-foreground);\\n outline: none;\\n}\\n\\n\\n.guify-folder-contents {\\n display: block;\\n box-sizing: border-box;\\n padding-left: 14px;\\n margin-bottom: 5px;\\n border-left: 2px solid var(--color-component-background);\\n}\\n\\n.guify-folder-contents.guify-folder-closed {\\n height: 0;\\n display: none;\\n}\\n\\n.guify-folder .guify-folder-arrow {\\n width: 1.5em;\\n}\\n\\n/* Disabled styles */\\n\\n.guify-folder.disabled {\\n pointer-events: none;\\n color: var(--color-text-disabled);\\n}\\n\\n.guify-folder.disabled + .guify-folder-contents {\\n pointer-events: none;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root {\\n --interval-track-color: var(--color-component-background);\\n --interval-thumb-color: var(--color-component-foreground);\\n --interval-thumb-highlight: var(--color-component-active);\\n\\n --interval-track-color-disabled: var(--color-component-background-disabled);\\n --interval-thumb-color-disabled: var(--color-text-disabled);\\n}\\n\\n.guify-interval {\\n -webkit-appearance: none;\\n position: absolute;\\n height: var(--size-component-height);\\n margin: 0px 0;\\n width: 33%;\\n left: 54.5%;\\n background-color: var(--color-component-background);\\n background-color: var(--interval-track-color);\\n cursor: ew-resize;\\n\\n -webkit-touch-callout: none;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n}\\n.guify-interval-handle {\\n background-color: var(--color-component-foreground);\\n background-color: var(--interval-thumb-color);\\n position: absolute;\\n height: var(--size-component-height);\\n min-width: 1px;\\n}\\n.guify-interval-handle:focus {\\n background: var(--color-component-active);\\n background: var(--interval-thumb-highlight);\\n}\\n\\n.disabled .guify-interval {\\n pointer-events: none;\\n background-color: var(--color-component-background-disabled);\\n background-color: var(--interval-track-color-disabled);\\n}\\n\\n.disabled .guify-interval .guify-interval-handle {\\n background: var(--color-text-disabled);\\n background: var(--interval-thumb-color-disabled);\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/public/interval.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,yDAAyD;IACzD,yDAAyD;IACzD,yDAAyD;;IAEzD,2EAA2E;IAC3E,2DAA2D;AAC/D;;AAEA;IACI,wBAAwB;IACxB,kBAAkB;IAClB,oCAAoC;IACpC,aAAa;IACb,UAAU;IACV,WAAW;IACX,mDAA6C;IAA7C,6CAA6C;IAC7C,iBAAiB;;IAEjB,2BAA2B;IAC3B,yBAAyB;IAEzB,sBAAsB;IACtB,qBAAqB;IACrB,iBAAiB;AACrB;AACA;IACI,mDAA6C;IAA7C,6CAA6C;IAC7C,kBAAkB;IAClB,oCAAoC;IACpC,cAAc;AAClB;AACA;IACI,yCAA2C;IAA3C,2CAA2C;AAC/C;;AAEA;IACI,oBAAoB;IACpB,4DAAsD;IAAtD,sDAAsD;AAC1D;;AAEA;IACI,sCAAgD;IAAhD,gDAAgD;AACpD\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n:root {\\n --interval-track-color: var(--color-component-background);\\n --interval-thumb-color: var(--color-component-foreground);\\n --interval-thumb-highlight: var(--color-component-active);\\n\\n --interval-track-color-disabled: var(--color-component-background-disabled);\\n --interval-thumb-color-disabled: var(--color-text-disabled);\\n}\\n\\n.guify-interval {\\n -webkit-appearance: none;\\n position: absolute;\\n height: var(--size-component-height);\\n margin: 0px 0;\\n width: 33%;\\n left: 54.5%;\\n background-color: var(--interval-track-color);\\n cursor: ew-resize;\\n\\n -webkit-touch-callout: none;\\n -webkit-user-select: none;\\n -khtml-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n}\\n.guify-interval-handle {\\n background-color: var(--interval-thumb-color);\\n position: absolute;\\n height: var(--size-component-height);\\n min-width: 1px;\\n}\\n.guify-interval-handle:focus {\\n background: var(--interval-thumb-highlight);\\n}\\n\\n.disabled .guify-interval {\\n pointer-events: none;\\n background-color: var(--interval-track-color-disabled);\\n}\\n\\n.disabled .guify-interval .guify-interval-handle {\\n background: var(--interval-thumb-color-disabled);\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root {\\n --range-track-color: var(--color-component-background);\\n --range-thumb-color: var(--color-component-foreground);\\n --range-thumb-highlight: var(--color-component-active);\\n\\n --range-track-color-disabled: var(--color-component-background-disabled);\\n --range-thumb-color-disabled: var(--color-text-disabled);\\n}\\n\\ninput[type=range].guify-range {\\n -webkit-appearance: none;\\n width: 100%;\\n height: var(--size-component-height);\\n margin: 0px 0;\\n padding: 0;\\n display: inline-block;\\n}\\n\\n.disabled input[type=range].guify-range {\\n pointer-events: none;\\n}\\n\\n/* Remove outlines since we'll be adding our own */\\ninput[type=range].guify-range:focus {\\n outline: none;\\n}\\ninput[type=range].guify-range::-moz-focus-outer {\\n border: 0;\\n}\\n\\n/* Webkit */\\ninput[type=range].guify-range::-webkit-slider-runnable-track {\\n width: 100%;\\n height: var(--size-component-height);\\n cursor: ew-resize;\\n background: var(--color-component-background);\\n background: var(--range-track-color);\\n}\\ninput[type=range].guify-range::-webkit-slider-thumb {\\n height: var(--size-component-height);\\n width: 10px;\\n background: var(--color-component-foreground);\\n background: var(--range-thumb-color);\\n cursor: ew-resize;\\n -webkit-appearance: none;\\n margin-top: 0px;\\n}\\ninput[type=range].guify-range:focus::-webkit-slider-runnable-track {\\n background: var(--color-component-active);\\n background: var(--range-thumb-highlight);\\n outline: none;\\n}\\n\\n.disabled input[type=range].guify-range::-webkit-slider-runnable-track { /* Disabled track */\\n pointer-events: none;\\n background: var(--color-component-background-disabled);\\n background: var(--range-track-color-disabled);\\n}\\n\\n.disabled input[type=range].guify-range::-webkit-slider-thumb { /* Disabled thumb */\\n pointer-events: none;\\n background: var(--color-text-disabled);\\n}\\n\\n/* Gecko */\\ninput[type=range].guify-range::-moz-range-track {\\n width: 100%;\\n height: var(--size-component-height);\\n cursor: ew-resize;\\n background: var(--color-component-background);\\n background: var(--range-track-color);\\n}\\ninput[type=range].guify-range:focus::-moz-range-track {\\n background: var(--color-component-active);\\n background: var(--range-thumb-highlight);\\n}\\ninput[type=range].guify-range::-moz-range-thumb {\\n height: var(--size-component-height);\\n width: 10px;\\n background: var(--color-component-foreground);\\n background: var(--range-thumb-color);\\n cursor: ew-resize;\\n border: none;\\n border-radius: 0;\\n}\\n\\n.disabled input[type=range].guify-range::-moz-range-track { /* Disabled track */\\n pointer-events: none;\\n background: var(--color-component-background-disabled);\\n background: var(--range-track-color-disabled);\\n}\\n\\n.disabled input[type=range].guify-range::-moz-range-thumb { /* Disabled thumb */\\n pointer-events: none;\\n background: var(--color-text-disabled);\\n background: var(--range-thumb-color-disabled);\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/public/range.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,sDAAsD;IACtD,sDAAsD;IACtD,sDAAsD;;IAEtD,wEAAwE;IACxE,wDAAwD;AAC5D;;AAEA;IACI,wBAAwB;IACxB,WAAW;IACX,oCAAoC;IACpC,aAAa;IACb,UAAU;IACV,qBAAqB;AACzB;;AAEA;IACI,oBAAoB;AACxB;;AAEA,kDAAkD;AAClD;IACI,aAAa;AACjB;AACA;IACI,SAAS;AACb;;AAEA,WAAW;AACX;IACI,WAAW;IACX,oCAAoC;IACpC,iBAAiB;IACjB,6CAAoC;IAApC,oCAAoC;AACxC;AACA;IACI,oCAAoC;IACpC,WAAW;IACX,6CAAoC;IAApC,oCAAoC;IACpC,iBAAiB;IACjB,wBAAwB;IACxB,eAAe;AACnB;AACA;IACI,yCAAwC;IAAxC,wCAAwC;IACxC,aAAa;AACjB;;AAEA,yEAAyE,mBAAmB;IACxF,oBAAoB;IACpB,sDAA6C;IAA7C,6CAA6C;AACjD;;AAEA,gEAAgE,mBAAmB;IAC/E,oBAAoB;IACpB,sCAAsC;AAC1C;;AAEA,UAAU;AACV;IACI,WAAW;IACX,oCAAoC;IACpC,iBAAiB;IACjB,6CAAoC;IAApC,oCAAoC;AACxC;AACA;IACI,yCAAwC;IAAxC,wCAAwC;AAC5C;AACA;IACI,oCAAoC;IACpC,WAAW;IACX,6CAAoC;IAApC,oCAAoC;IACpC,iBAAiB;IACjB,YAAY;IACZ,gBAAgB;AACpB;;AAEA,4DAA4D,mBAAmB;IAC3E,oBAAoB;IACpB,sDAA6C;IAA7C,6CAA6C;AACjD;;AAEA,4DAA4D,mBAAmB;IAC3E,oBAAoB;IACpB,sCAA6C;IAA7C,6CAA6C;AACjD\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n:root {\\n --range-track-color: var(--color-component-background);\\n --range-thumb-color: var(--color-component-foreground);\\n --range-thumb-highlight: var(--color-component-active);\\n\\n --range-track-color-disabled: var(--color-component-background-disabled);\\n --range-thumb-color-disabled: var(--color-text-disabled);\\n}\\n\\ninput[type=range].guify-range {\\n -webkit-appearance: none;\\n width: 100%;\\n height: var(--size-component-height);\\n margin: 0px 0;\\n padding: 0;\\n display: inline-block;\\n}\\n\\n.disabled input[type=range].guify-range {\\n pointer-events: none;\\n}\\n\\n/* Remove outlines since we'll be adding our own */\\ninput[type=range].guify-range:focus {\\n outline: none;\\n}\\ninput[type=range].guify-range::-moz-focus-outer {\\n border: 0;\\n}\\n\\n/* Webkit */\\ninput[type=range].guify-range::-webkit-slider-runnable-track {\\n width: 100%;\\n height: var(--size-component-height);\\n cursor: ew-resize;\\n background: var(--range-track-color);\\n}\\ninput[type=range].guify-range::-webkit-slider-thumb {\\n height: var(--size-component-height);\\n width: 10px;\\n background: var(--range-thumb-color);\\n cursor: ew-resize;\\n -webkit-appearance: none;\\n margin-top: 0px;\\n}\\ninput[type=range].guify-range:focus::-webkit-slider-runnable-track {\\n background: var(--range-thumb-highlight);\\n outline: none;\\n}\\n\\n.disabled input[type=range].guify-range::-webkit-slider-runnable-track { /* Disabled track */\\n pointer-events: none;\\n background: var(--range-track-color-disabled);\\n}\\n\\n.disabled input[type=range].guify-range::-webkit-slider-thumb { /* Disabled thumb */\\n pointer-events: none;\\n background: var(--color-text-disabled);\\n}\\n\\n/* Gecko */\\ninput[type=range].guify-range::-moz-range-track {\\n width: 100%;\\n height: var(--size-component-height);\\n cursor: ew-resize;\\n background: var(--range-track-color);\\n}\\ninput[type=range].guify-range:focus::-moz-range-track {\\n background: var(--range-thumb-highlight);\\n}\\ninput[type=range].guify-range::-moz-range-thumb {\\n height: var(--size-component-height);\\n width: 10px;\\n background: var(--range-thumb-color);\\n cursor: ew-resize;\\n border: none;\\n border-radius: 0;\\n}\\n\\n.disabled input[type=range].guify-range::-moz-range-track { /* Disabled track */\\n pointer-events: none;\\n background: var(--range-track-color-disabled);\\n}\\n\\n.disabled input[type=range].guify-range::-moz-range-thumb { /* Disabled thumb */\\n pointer-events: none;\\n background: var(--range-thumb-color-disabled);\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".guify-select-dropdown {\\n display: inline-block;\\n position: absolute;\\n width: calc(100% - var(--size-label-width));\\n padding-left: 1.5%;\\n height: var(--size-component-height);\\n border: none;\\n border-radius: 0;\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n -o-appearance:none;\\n appearance: none;\\n font-family: inherit;\\n background-color: var(--color-component-background);\\n color: var(--color-text-secondary);\\n box-sizing: border-box !important;\\n -moz-box-sizing: border-box !important;\\n -webkit-box-sizing: border-box !important;\\n}\\n\\n/* Disable default outline since we're providing our own */\\n.guify-select-dropdown:focus {\\n outline: none;\\n}\\n.guify-select-dropdown::-moz-focus-inner {\\n border: 0;\\n}\\n\\n\\n.guify-select-dropdown:focus,\\n.guify-select-dropdown:hover {\\n color: var(--color-text-hover);\\n background-color: var(--color-component-foreground);\\n}\\n\\n.guify-select-dropdown::-ms-expand {\\n display:none;\\n}\\n.guify-select-triangle {\\n content: ' ';\\n border-right: 3px solid transparent;\\n border-left: 3px solid transparent;\\n line-height: var(--size-component-height);\\n position: absolute;\\n right: 2.5%;\\n z-index: 1;\\n pointer-events: none;\\n}\\n\\n.guify-select-triangle--up {\\n bottom: 55%;\\n border-bottom: 5px solid var(--color-text-secondary);\\n border-top: 0px transparent;\\n}\\n\\n.guify-select-triangle--down {\\n top: 55%;\\n border-top: 5px solid var(--color-text-secondary);\\n border-bottom: 0px transparent;\\n}\\n\\n.guify-select-triangle--up-highlight {\\n border-bottom-color: var(--color-text-hover);\\n}\\n\\n.guify-select-triangle--down-highlight {\\n border-top-color: var(--color-text-hover);\\n}\\n\\n/* Disabled styles */\\n\\n.disabled .guify-select-dropdown {\\n pointer-events: none;\\n color: var(--color-text-disabled);\\n background-color: var(--color-component-background-disabled);\\n}\\n\\n.disabled *[class^=\\\"guify-select-triangle\\\"] {\\n border-color: var(--color-text-disabled);\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/public/select.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,qBAAqB;IACrB,kBAAkB;IAClB,2CAA2C;IAC3C,kBAAkB;IAClB,oCAAoC;IACpC,YAAY;IACZ,gBAAgB;IAChB,wBAAwB;IACxB,qBAAqB;IACrB,kBAAkB;IAClB,gBAAgB;IAChB,oBAAoB;IACpB,mDAAmD;IACnD,kCAAkC;IAClC,iCAAiC;IACjC,sCAAsC;IACtC,yCAAyC;AAC7C;;AAEA,0DAA0D;AAC1D;IACI,aAAa;AACjB;AACA;IACI,SAAS;AACb;;;AAGA;;IAEI,8BAA8B;IAC9B,mDAAmD;AACvD;;AAEA;IACI,YAAY;AAChB;AACA;IACI,YAAY;IACZ,mCAAmC;IACnC,kCAAkC;IAClC,yCAAyC;IACzC,kBAAkB;IAClB,WAAW;IACX,UAAU;IACV,oBAAoB;AACxB;;AAEA;IACI,WAAW;IACX,oDAAoD;IACpD,2BAA2B;AAC/B;;AAEA;IACI,QAAQ;IACR,iDAAiD;IACjD,8BAA8B;AAClC;;AAEA;IACI,4CAA4C;AAChD;;AAEA;IACI,yCAAyC;AAC7C;;AAEA,oBAAoB;;AAEpB;IACI,oBAAoB;IACpB,iCAAiC;IACjC,4DAA4D;AAChE;;AAEA;IACI,wCAAwC;AAC5C\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n.guify-select-dropdown {\\n display: inline-block;\\n position: absolute;\\n width: calc(100% - var(--size-label-width));\\n padding-left: 1.5%;\\n height: var(--size-component-height);\\n border: none;\\n border-radius: 0;\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n -o-appearance:none;\\n appearance: none;\\n font-family: inherit;\\n background-color: var(--color-component-background);\\n color: var(--color-text-secondary);\\n box-sizing: border-box !important;\\n -moz-box-sizing: border-box !important;\\n -webkit-box-sizing: border-box !important;\\n}\\n\\n/* Disable default outline since we're providing our own */\\n.guify-select-dropdown:focus {\\n outline: none;\\n}\\n.guify-select-dropdown::-moz-focus-inner {\\n border: 0;\\n}\\n\\n\\n.guify-select-dropdown:focus,\\n.guify-select-dropdown:hover {\\n color: var(--color-text-hover);\\n background-color: var(--color-component-foreground);\\n}\\n\\n.guify-select-dropdown::-ms-expand {\\n display:none;\\n}\\n.guify-select-triangle {\\n content: ' ';\\n border-right: 3px solid transparent;\\n border-left: 3px solid transparent;\\n line-height: var(--size-component-height);\\n position: absolute;\\n right: 2.5%;\\n z-index: 1;\\n pointer-events: none;\\n}\\n\\n.guify-select-triangle--up {\\n bottom: 55%;\\n border-bottom: 5px solid var(--color-text-secondary);\\n border-top: 0px transparent;\\n}\\n\\n.guify-select-triangle--down {\\n top: 55%;\\n border-top: 5px solid var(--color-text-secondary);\\n border-bottom: 0px transparent;\\n}\\n\\n.guify-select-triangle--up-highlight {\\n border-bottom-color: var(--color-text-hover);\\n}\\n\\n.guify-select-triangle--down-highlight {\\n border-top-color: var(--color-text-hover);\\n}\\n\\n/* Disabled styles */\\n\\n.disabled .guify-select-dropdown {\\n pointer-events: none;\\n color: var(--color-text-disabled);\\n background-color: var(--color-component-background-disabled);\\n}\\n\\n.disabled *[class^=\\\"guify-select-triangle\\\"] {\\n border-color: var(--color-text-disabled);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".guify-text-input {\\n position: absolute;\\n padding-left: 6px;\\n height: var(--size-component-height);\\n width: calc(100% - var(--size-label-width));\\n border: none;\\n background: var(--color-component-background);\\n color: var(--color-text-secondary);\\n font-family: inherit;\\n box-sizing: border-box !important;\\n resize: vertical;\\n}\\n\\n.guify-text-input:focus {\\n outline: none;\\n}\\n\\n.disabled .guify-text-input {\\n pointer-events: none;\\n color: var(--color-text-disabled);\\n background-color: var(--color-component-background-disabled);\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/public/text.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,kBAAkB;IAClB,iBAAiB;IACjB,oCAAoC;IACpC,2CAA2C;IAC3C,YAAY;IACZ,6CAA6C;IAC7C,kCAAkC;IAClC,oBAAoB;IACpB,iCAAiC;IACjC,gBAAgB;AACpB;;AAEA;IACI,aAAa;AACjB;;AAEA;IACI,oBAAoB;IACpB,iCAAiC;IACjC,4DAA4D;AAChE\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n.guify-text-input {\\n position: absolute;\\n padding-left: 6px;\\n height: var(--size-component-height);\\n width: calc(100% - var(--size-label-width));\\n border: none;\\n background: var(--color-component-background);\\n color: var(--color-text-secondary);\\n font-family: inherit;\\n box-sizing: border-box !important;\\n resize: vertical;\\n}\\n\\n.guify-text-input:focus {\\n outline: none;\\n}\\n\\n.disabled .guify-text-input {\\n pointer-events: none;\\n color: var(--color-text-disabled);\\n background-color: var(--color-component-background-disabled);\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".guify-title {\\n box-sizing: border-box;\\n width: 100%;\\n display: inline-block;\\n height: var(--size-component-height);\\n vertical-align: top;\\n}\\n\\n.guify-title-text {\\n display: inline-block;\\n vertical-align: sub;\\n height: var(--size-component-height);\\n line-height: var(--size-component-height);\\n padding-left: 5px;\\n padding-right: 5px;\\n background-color: var(--color-text-primary);\\n color: var(--color-panel-background);\\n}\\n\\n/* Disabled style */\\n\\n.disabled .guify-title-text {\\n background-color: var(--color-text-disabled);\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/public/title.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,sBAAsB;IACtB,WAAW;IACX,qBAAqB;IACrB,oCAAoC;IACpC,mBAAmB;AACvB;;AAEA;IACI,qBAAqB;IACrB,mBAAmB;IACnB,oCAAoC;IACpC,yCAAyC;IACzC,iBAAiB;IACjB,kBAAkB;IAClB,2CAA2C;IAC3C,oCAAoC;AACxC;;AAEA,mBAAmB;;AAEnB;IACI,4CAA4C;AAChD\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n.guify-title {\\n box-sizing: border-box;\\n width: 100%;\\n display: inline-block;\\n height: var(--size-component-height);\\n vertical-align: top;\\n}\\n\\n.guify-title-text {\\n display: inline-block;\\n vertical-align: sub;\\n height: var(--size-component-height);\\n line-height: var(--size-component-height);\\n padding-left: 5px;\\n padding-right: 5px;\\n background-color: var(--color-text-primary);\\n color: var(--color-panel-background);\\n}\\n\\n/* Disabled style */\\n\\n.disabled .guify-title-text {\\n background-color: var(--color-text-disabled);\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root {\\n --color-menu-bar-background: \\\"black\\\";\\n --color-menu-bar-text: \\\"black\\\";\\n --color-panel-background: \\\"black\\\";\\n\\n --color-component-background: \\\"black\\\";\\n --color-component-background-hover: \\\"black\\\";\\n --color-component-background-disabled: \\\"black\\\";\\n --color-component-foreground: \\\"black\\\";\\n --color-component-active: \\\"black\\\";\\n\\n --color-text-primary: \\\"black\\\";\\n --color-text-secondary: \\\"black\\\";\\n --color-text-hover: \\\"black\\\";\\n --color-text-active: \\\"black\\\";\\n --color-text-disabled: \\\"black\\\";\\n\\n --size-menu-bar-height: 25px;\\n --size-component-height: 2rem;\\n --size-component-spacing: 5px;\\n --size-label-width: 42%;\\n\\n /* --font-family: \\\"Hack\\\";\\n --font-size: initial;\\n --font-weight: initial; */\\n\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/variables.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,oCAAoC;IACpC,8BAA8B;IAC9B,iCAAiC;;IAEjC,qCAAqC;IACrC,2CAA2C;IAC3C,8CAA8C;IAC9C,qCAAqC;IACrC,iCAAiC;;IAEjC,6BAA6B;IAC7B,+BAA+B;IAC/B,2BAA2B;IAC3B,4BAA4B;IAC5B,8BAA8B;;IAE9B,4BAA4B;IAC5B,6BAA6B;IAC7B,6BAA6B;IAC7B,uBAAuB;;IAEvB;;6BAEyB;;AAE7B\",\"sourcesContent\":[\":root {\\n --color-menu-bar-background: \\\"black\\\";\\n --color-menu-bar-text: \\\"black\\\";\\n --color-panel-background: \\\"black\\\";\\n\\n --color-component-background: \\\"black\\\";\\n --color-component-background-hover: \\\"black\\\";\\n --color-component-background-disabled: \\\"black\\\";\\n --color-component-foreground: \\\"black\\\";\\n --color-component-active: \\\"black\\\";\\n\\n --color-text-primary: \\\"black\\\";\\n --color-text-secondary: \\\"black\\\";\\n --color-text-hover: \\\"black\\\";\\n --color-text-active: \\\"black\\\";\\n --color-text-disabled: \\\"black\\\";\\n\\n --size-menu-bar-height: 25px;\\n --size-component-height: 2rem;\\n --size-component-spacing: 5px;\\n --size-label-width: 42%;\\n\\n /* --font-family: \\\"Hack\\\";\\n --font-size: initial;\\n --font-weight: initial; */\\n\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n\n content += cssWithMappingToString(item);\n\n if (needLayer) {\n content += \"}\";\n }\n\n if (item[2]) {\n content += \"}\";\n }\n\n if (item[4]) {\n content += \"}\";\n }\n\n return content;\n }).join(\"\");\n }; // import a list of modules into the list\n\n\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n\n return [content].join(\"\\n\");\n};","var prefix = require('prefix-style')\nvar toCamelCase = require('to-camel-case')\nvar cache = { 'float': 'cssFloat' }\nvar addPxToStyle = require('add-px-to-style')\n\nfunction style (element, property, value) {\n var camel = cache[property]\n if (typeof camel === 'undefined') {\n camel = detect(property)\n }\n\n // may be false if CSS prop is unsupported\n if (camel) {\n if (value === undefined) {\n return element.style[camel]\n }\n\n element.style[camel] = addPxToStyle(camel, value)\n }\n}\n\nfunction each (element, properties) {\n for (var k in properties) {\n if (properties.hasOwnProperty(k)) {\n style(element, k, properties[k])\n }\n }\n}\n\nfunction detect (cssProp) {\n var camel = toCamelCase(cssProp)\n var result = prefix(camel)\n cache[camel] = cache[cssProp] = cache[result] = result\n return result\n}\n\nfunction set () {\n if (arguments.length === 2) {\n if (typeof arguments[1] === 'string') {\n arguments[0].style.cssText = arguments[1]\n } else {\n each(arguments[0], arguments[1])\n }\n } else {\n style(arguments[0], arguments[1], arguments[2])\n }\n}\n\nmodule.exports = set\nmodule.exports.set = set\n\nmodule.exports.get = function (element, properties) {\n if (Array.isArray(properties)) {\n return properties.reduce(function (obj, prop) {\n obj[prop] = style(element, prop || '')\n return obj\n }, {})\n } else {\n return style(element, properties || '')\n }\n}\n","var containers = []; // will store container HTMLElement references\nvar styleElements = []; // will store {prepend: HTMLElement, append: HTMLElement}\n\nvar usage = 'insert-css: You need to provide a CSS string. Usage: insertCss(cssString[, options]).';\n\nfunction insertCss(css, options) {\n options = options || {};\n\n if (css === undefined) {\n throw new Error(usage);\n }\n\n var position = options.prepend === true ? 'prepend' : 'append';\n var container = options.container !== undefined ? options.container : document.querySelector('head');\n var containerId = containers.indexOf(container);\n\n // first time we see this container, create the necessary entries\n if (containerId === -1) {\n containerId = containers.push(container) - 1;\n styleElements[containerId] = {};\n }\n\n // try to get the correponding container + position styleElement, create it otherwise\n var styleElement;\n\n if (styleElements[containerId] !== undefined && styleElements[containerId][position] !== undefined) {\n styleElement = styleElements[containerId][position];\n } else {\n styleElement = styleElements[containerId][position] = createStyleElement();\n\n if (position === 'prepend') {\n container.insertBefore(styleElement, container.childNodes[0]);\n } else {\n container.appendChild(styleElement);\n }\n }\n\n // strip potential UTF-8 BOM if css was read from a file\n if (css.charCodeAt(0) === 0xFEFF) { css = css.substr(1, css.length); }\n\n // actually add the stylesheet\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText += css\n } else {\n styleElement.textContent += css;\n }\n\n return styleElement;\n};\n\nfunction createStyleElement() {\n var styleElement = document.createElement('style');\n styleElement.setAttribute('type', 'text/css');\n return styleElement;\n}\n\nmodule.exports = insertCss;\nmodule.exports.insertCss = insertCss;\n","(function(root) {\n 'use strict';\n\n function isNumeric(v) {\n if (typeof v === 'number' && !isNaN(v)) return true;\n v = (v||'').toString().trim();\n if (!v) return false;\n return !isNaN(v);\n }\n\n if (typeof exports !== 'undefined') {\n if (typeof module !== 'undefined' && module.exports) {\n exports = module.exports = isNumeric;\n }\n exports.isNumeric = isNumeric;\n } else if (typeof define === 'function' && define.amd) {\n define([], function() {\n return isNumeric;\n });\n } else {\n root.isNumeric = isNumeric;\n }\n\n})(this);\n","var div = null\nvar prefixes = [ 'Webkit', 'Moz', 'O', 'ms' ]\n\nmodule.exports = function prefixStyle (prop) {\n // re-use a dummy div\n if (!div) {\n div = document.createElement('div')\n }\n\n var style = div.style\n\n // prop exists without prefix\n if (prop in style) {\n return prop\n }\n\n // borderRadius -> BorderRadius\n var titleCase = prop.charAt(0).toUpperCase() + prop.slice(1)\n\n // find the vendor-prefixed prop\n for (var i = prefixes.length; i >= 0; i--) {\n var name = prefixes[i] + titleCase\n // e.g. WebkitBorderRadius or webkitBorderRadius\n if (name in style) {\n return name\n }\n }\n\n return false\n}\n","/*!\n* screenfull\n* v5.0.0 - 2019-09-09\n* (c) Sindre Sorhus; MIT License\n*/\n(function () {\n\t'use strict';\n\n\tvar document = typeof window !== 'undefined' && typeof window.document !== 'undefined' ? window.document : {};\n\tvar isCommonjs = typeof module !== 'undefined' && module.exports;\n\n\tvar fn = (function () {\n\t\tvar val;\n\n\t\tvar fnMap = [\n\t\t\t[\n\t\t\t\t'requestFullscreen',\n\t\t\t\t'exitFullscreen',\n\t\t\t\t'fullscreenElement',\n\t\t\t\t'fullscreenEnabled',\n\t\t\t\t'fullscreenchange',\n\t\t\t\t'fullscreenerror'\n\t\t\t],\n\t\t\t// New WebKit\n\t\t\t[\n\t\t\t\t'webkitRequestFullscreen',\n\t\t\t\t'webkitExitFullscreen',\n\t\t\t\t'webkitFullscreenElement',\n\t\t\t\t'webkitFullscreenEnabled',\n\t\t\t\t'webkitfullscreenchange',\n\t\t\t\t'webkitfullscreenerror'\n\n\t\t\t],\n\t\t\t// Old WebKit\n\t\t\t[\n\t\t\t\t'webkitRequestFullScreen',\n\t\t\t\t'webkitCancelFullScreen',\n\t\t\t\t'webkitCurrentFullScreenElement',\n\t\t\t\t'webkitCancelFullScreen',\n\t\t\t\t'webkitfullscreenchange',\n\t\t\t\t'webkitfullscreenerror'\n\n\t\t\t],\n\t\t\t[\n\t\t\t\t'mozRequestFullScreen',\n\t\t\t\t'mozCancelFullScreen',\n\t\t\t\t'mozFullScreenElement',\n\t\t\t\t'mozFullScreenEnabled',\n\t\t\t\t'mozfullscreenchange',\n\t\t\t\t'mozfullscreenerror'\n\t\t\t],\n\t\t\t[\n\t\t\t\t'msRequestFullscreen',\n\t\t\t\t'msExitFullscreen',\n\t\t\t\t'msFullscreenElement',\n\t\t\t\t'msFullscreenEnabled',\n\t\t\t\t'MSFullscreenChange',\n\t\t\t\t'MSFullscreenError'\n\t\t\t]\n\t\t];\n\n\t\tvar i = 0;\n\t\tvar l = fnMap.length;\n\t\tvar ret = {};\n\n\t\tfor (; i < l; i++) {\n\t\t\tval = fnMap[i];\n\t\t\tif (val && val[1] in document) {\n\t\t\t\tfor (i = 0; i < val.length; i++) {\n\t\t\t\t\tret[fnMap[0][i]] = val[i];\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t})();\n\n\tvar eventNameMap = {\n\t\tchange: fn.fullscreenchange,\n\t\terror: fn.fullscreenerror\n\t};\n\n\tvar screenfull = {\n\t\trequest: function (element) {\n\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\tvar onFullScreenEntered = function () {\n\t\t\t\t\tthis.off('change', onFullScreenEntered);\n\t\t\t\t\tresolve();\n\t\t\t\t}.bind(this);\n\n\t\t\t\tthis.on('change', onFullScreenEntered);\n\n\t\t\t\telement = element || document.documentElement;\n\n\t\t\t\tPromise.resolve(element[fn.requestFullscreen]()).catch(reject);\n\t\t\t}.bind(this));\n\t\t},\n\t\texit: function () {\n\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\tif (!this.isFullscreen) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar onFullScreenExit = function () {\n\t\t\t\t\tthis.off('change', onFullScreenExit);\n\t\t\t\t\tresolve();\n\t\t\t\t}.bind(this);\n\n\t\t\t\tthis.on('change', onFullScreenExit);\n\n\t\t\t\tPromise.resolve(document[fn.exitFullscreen]()).catch(reject);\n\t\t\t}.bind(this));\n\t\t},\n\t\ttoggle: function (element) {\n\t\t\treturn this.isFullscreen ? this.exit() : this.request(element);\n\t\t},\n\t\tonchange: function (callback) {\n\t\t\tthis.on('change', callback);\n\t\t},\n\t\tonerror: function (callback) {\n\t\t\tthis.on('error', callback);\n\t\t},\n\t\ton: function (event, callback) {\n\t\t\tvar eventName = eventNameMap[event];\n\t\t\tif (eventName) {\n\t\t\t\tdocument.addEventListener(eventName, callback, false);\n\t\t\t}\n\t\t},\n\t\toff: function (event, callback) {\n\t\t\tvar eventName = eventNameMap[event];\n\t\t\tif (eventName) {\n\t\t\t\tdocument.removeEventListener(eventName, callback, false);\n\t\t\t}\n\t\t},\n\t\traw: fn\n\t};\n\n\tif (!fn) {\n\t\tif (isCommonjs) {\n\t\t\tmodule.exports = {isEnabled: false};\n\t\t} else {\n\t\t\twindow.screenfull = {isEnabled: false};\n\t\t}\n\n\t\treturn;\n\t}\n\n\tObject.defineProperties(screenfull, {\n\t\tisFullscreen: {\n\t\t\tget: function () {\n\t\t\t\treturn Boolean(document[fn.fullscreenElement]);\n\t\t\t}\n\t\t},\n\t\telement: {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\treturn document[fn.fullscreenElement];\n\t\t\t}\n\t\t},\n\t\tisEnabled: {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\t// Coerce to boolean in case of old WebKit\n\t\t\t\treturn Boolean(document[fn.fullscreenEnabled]);\n\t\t\t}\n\t\t}\n\t});\n\n\tif (isCommonjs) {\n\t\tmodule.exports = screenfull;\n\t} else {\n\t\twindow.screenfull = screenfull;\n\t}\n})();\n","\"use strict\";\n\nvar stylesInDOM = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n\n return updater;\n}\n\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n\n stylesInDOM.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n/* istanbul ignore next */\n\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n}\n/* istanbul ignore next */\n\n\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n}\n\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\n\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\n\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n\n var needLayer = typeof obj.layer !== \"undefined\";\n\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n\n css += obj.css;\n\n if (needLayer) {\n css += \"}\";\n }\n\n if (obj.media) {\n css += \"}\";\n }\n\n if (obj.supports) {\n css += \"}\";\n }\n\n var sourceMap = obj.sourceMap;\n\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n options.styleTagTransform(css, styleElement, options.options);\n}\n\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n\n styleElement.parentNode.removeChild(styleElement);\n}\n/* istanbul ignore next */\n\n\nfunction domAPI(options) {\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\n\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n\n styleElement.appendChild(document.createTextNode(css));\n }\n}\n\nmodule.exports = styleTagTransform;","// TinyColor v1.4.1\n// https://github.com/bgrins/TinyColor\n// Brian Grinstead, MIT License\n\n(function(Math) {\n\nvar trimLeft = /^\\s+/,\n trimRight = /\\s+$/,\n tinyCounter = 0,\n mathRound = Math.round,\n mathMin = Math.min,\n mathMax = Math.max,\n mathRandom = Math.random;\n\nfunction tinycolor (color, opts) {\n\n color = (color) ? color : '';\n opts = opts || { };\n\n // If input is already a tinycolor, return itself\n if (color instanceof tinycolor) {\n return color;\n }\n // If we are called as a function, call using new instead\n if (!(this instanceof tinycolor)) {\n return new tinycolor(color, opts);\n }\n\n var rgb = inputToRGB(color);\n this._originalInput = color,\n this._r = rgb.r,\n this._g = rgb.g,\n this._b = rgb.b,\n this._a = rgb.a,\n this._roundA = mathRound(100*this._a) / 100,\n this._format = opts.format || rgb.format;\n this._gradientType = opts.gradientType;\n\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this._r < 1) { this._r = mathRound(this._r); }\n if (this._g < 1) { this._g = mathRound(this._g); }\n if (this._b < 1) { this._b = mathRound(this._b); }\n\n this._ok = rgb.ok;\n this._tc_id = tinyCounter++;\n}\n\ntinycolor.prototype = {\n isDark: function() {\n return this.getBrightness() < 128;\n },\n isLight: function() {\n return !this.isDark();\n },\n isValid: function() {\n return this._ok;\n },\n getOriginalInput: function() {\n return this._originalInput;\n },\n getFormat: function() {\n return this._format;\n },\n getAlpha: function() {\n return this._a;\n },\n getBrightness: function() {\n //http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n },\n getLuminance: function() {\n //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var RsRGB, GsRGB, BsRGB, R, G, B;\n RsRGB = rgb.r/255;\n GsRGB = rgb.g/255;\n BsRGB = rgb.b/255;\n\n if (RsRGB <= 0.03928) {R = RsRGB / 12.92;} else {R = Math.pow(((RsRGB + 0.055) / 1.055), 2.4);}\n if (GsRGB <= 0.03928) {G = GsRGB / 12.92;} else {G = Math.pow(((GsRGB + 0.055) / 1.055), 2.4);}\n if (BsRGB <= 0.03928) {B = BsRGB / 12.92;} else {B = Math.pow(((BsRGB + 0.055) / 1.055), 2.4);}\n return (0.2126 * R) + (0.7152 * G) + (0.0722 * B);\n },\n setAlpha: function(value) {\n this._a = boundAlpha(value);\n this._roundA = mathRound(100*this._a) / 100;\n return this;\n },\n toHsv: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a };\n },\n toHsvString: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n var h = mathRound(hsv.h * 360), s = mathRound(hsv.s * 100), v = mathRound(hsv.v * 100);\n return (this._a == 1) ?\n \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\" :\n \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \"+ this._roundA + \")\";\n },\n toHsl: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a };\n },\n toHslString: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n var h = mathRound(hsl.h * 360), s = mathRound(hsl.s * 100), l = mathRound(hsl.l * 100);\n return (this._a == 1) ?\n \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\" :\n \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \"+ this._roundA + \")\";\n },\n toHex: function(allow3Char) {\n return rgbToHex(this._r, this._g, this._b, allow3Char);\n },\n toHexString: function(allow3Char) {\n return '#' + this.toHex(allow3Char);\n },\n toHex8: function(allow4Char) {\n return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n },\n toHex8String: function(allow4Char) {\n return '#' + this.toHex8(allow4Char);\n },\n toRgb: function() {\n return { r: mathRound(this._r), g: mathRound(this._g), b: mathRound(this._b), a: this._a };\n },\n toRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \")\" :\n \"rgba(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \", \" + this._roundA + \")\";\n },\n toPercentageRgb: function() {\n return { r: mathRound(bound01(this._r, 255) * 100) + \"%\", g: mathRound(bound01(this._g, 255) * 100) + \"%\", b: mathRound(bound01(this._b, 255) * 100) + \"%\", a: this._a };\n },\n toPercentageRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%)\" :\n \"rgba(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n },\n toName: function() {\n if (this._a === 0) {\n return \"transparent\";\n }\n\n if (this._a < 1) {\n return false;\n }\n\n return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n },\n toFilter: function(secondColor) {\n var hex8String = '#' + rgbaToArgbHex(this._r, this._g, this._b, this._a);\n var secondHex8String = hex8String;\n var gradientType = this._gradientType ? \"GradientType = 1, \" : \"\";\n\n if (secondColor) {\n var s = tinycolor(secondColor);\n secondHex8String = '#' + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n }\n\n return \"progid:DXImageTransform.Microsoft.gradient(\"+gradientType+\"startColorstr=\"+hex8String+\",endColorstr=\"+secondHex8String+\")\";\n },\n toString: function(format) {\n var formatSet = !!format;\n format = format || this._format;\n\n var formattedString = false;\n var hasAlpha = this._a < 1 && this._a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format === \"hex\" || format === \"hex6\" || format === \"hex3\" || format === \"hex4\" || format === \"hex8\" || format === \"name\");\n\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === \"name\" && this._a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === \"rgb\") {\n formattedString = this.toRgbString();\n }\n if (format === \"prgb\") {\n formattedString = this.toPercentageRgbString();\n }\n if (format === \"hex\" || format === \"hex6\") {\n formattedString = this.toHexString();\n }\n if (format === \"hex3\") {\n formattedString = this.toHexString(true);\n }\n if (format === \"hex4\") {\n formattedString = this.toHex8String(true);\n }\n if (format === \"hex8\") {\n formattedString = this.toHex8String();\n }\n if (format === \"name\") {\n formattedString = this.toName();\n }\n if (format === \"hsl\") {\n formattedString = this.toHslString();\n }\n if (format === \"hsv\") {\n formattedString = this.toHsvString();\n }\n\n return formattedString || this.toHexString();\n },\n clone: function() {\n return tinycolor(this.toString());\n },\n\n _applyModification: function(fn, args) {\n var color = fn.apply(null, [this].concat([].slice.call(args)));\n this._r = color._r;\n this._g = color._g;\n this._b = color._b;\n this.setAlpha(color._a);\n return this;\n },\n lighten: function() {\n return this._applyModification(lighten, arguments);\n },\n brighten: function() {\n return this._applyModification(brighten, arguments);\n },\n darken: function() {\n return this._applyModification(darken, arguments);\n },\n desaturate: function() {\n return this._applyModification(desaturate, arguments);\n },\n saturate: function() {\n return this._applyModification(saturate, arguments);\n },\n greyscale: function() {\n return this._applyModification(greyscale, arguments);\n },\n spin: function() {\n return this._applyModification(spin, arguments);\n },\n\n _applyCombination: function(fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function() {\n return this._applyCombination(analogous, arguments);\n },\n complement: function() {\n return this._applyCombination(complement, arguments);\n },\n monochromatic: function() {\n return this._applyCombination(monochromatic, arguments);\n },\n splitcomplement: function() {\n return this._applyCombination(splitcomplement, arguments);\n },\n triad: function() {\n return this._applyCombination(triad, arguments);\n },\n tetrad: function() {\n return this._applyCombination(tetrad, arguments);\n }\n};\n\n// If input is an object, force 1 into \"1.0\" to handle ratios properly\n// String input requires \"1.0\" as input, so 1 will be treated as 1\ntinycolor.fromRatio = function(color, opts) {\n if (typeof color == \"object\") {\n var newColor = {};\n for (var i in color) {\n if (color.hasOwnProperty(i)) {\n if (i === \"a\") {\n newColor[i] = color[i];\n }\n else {\n newColor[i] = convertToPercentage(color[i]);\n }\n }\n }\n color = newColor;\n }\n\n return tinycolor(color, opts);\n};\n\n// Given a string or object, convert that input to RGB\n// Possible string inputs:\n//\n// \"red\"\n// \"#f00\" or \"f00\"\n// \"#ff0000\" or \"ff0000\"\n// \"#ff000000\" or \"ff000000\"\n// \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n// \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n// \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n// \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n// \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n// \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n// \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n//\nfunction inputToRGB(color) {\n\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n\n if (typeof color == \"string\") {\n color = stringInputToObject(color);\n }\n\n if (typeof color == \"object\") {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === \"%\" ? \"prgb\" : \"rgb\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = \"hsv\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = \"hsl\";\n }\n\n if (color.hasOwnProperty(\"a\")) {\n a = color.a;\n }\n }\n\n a = boundAlpha(a);\n\n return {\n ok: ok,\n format: color.format || format,\n r: mathMin(255, mathMax(rgb.r, 0)),\n g: mathMin(255, mathMax(rgb.g, 0)),\n b: mathMin(255, mathMax(rgb.b, 0)),\n a: a\n };\n}\n\n\n// Conversion Functions\n// --------------------\n\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// \n\n// `rgbToRgb`\n// Handle bounds / percentage checking to conform to CSS color spec\n// \n// *Assumes:* r, g, b in [0, 255] or [0, 1]\n// *Returns:* { r, g, b } in [0, 255]\nfunction rgbToRgb(r, g, b){\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255\n };\n}\n\n// `rgbToHsl`\n// Converts an RGB color value to HSL.\n// *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n// *Returns:* { h, s, l } in [0,1]\nfunction rgbToHsl(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, l = (max + min) / 2;\n\n if(max == min) {\n h = s = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n\n h /= 6;\n }\n\n return { h: h, s: s, l: l };\n}\n\n// `hslToRgb`\n// Converts an HSL color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hslToRgb(h, s, l) {\n var r, g, b;\n\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n\n function hue2rgb(p, q, t) {\n if(t < 0) t += 1;\n if(t > 1) t -= 1;\n if(t < 1/6) return p + (q - p) * 6 * t;\n if(t < 1/2) return q;\n if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;\n return p;\n }\n\n if(s === 0) {\n r = g = b = l; // achromatic\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1/3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1/3);\n }\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHsv`\n// Converts an RGB color value to HSV\n// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n// *Returns:* { h, s, v } in [0,1]\nfunction rgbToHsv(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, v = max;\n\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n\n if(max == min) {\n h = 0; // achromatic\n }\n else {\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n\n// `hsvToRgb`\n// Converts an HSV color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\n function hsvToRgb(h, s, v) {\n\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n\n var i = Math.floor(h),\n f = h - i,\n p = v * (1 - s),\n q = v * (1 - f * s),\n t = v * (1 - (1 - f) * s),\n mod = i % 6,\n r = [v, q, p, p, t, v][mod],\n g = [t, v, v, q, p, p][mod],\n b = [p, p, t, v, v, q][mod];\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHex`\n// Converts an RGB color to hex\n// Assumes r, g, and b are contained in the set [0, 255]\n// Returns a 3 or 6 character hex\nfunction rgbToHex(r, g, b, allow3Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n // Return a 3 character hex if possible\n if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToHex`\n// Converts an RGBA color plus alpha transparency to hex\n// Assumes r, g, b are contained in the set [0, 255] and\n// a in [0, 1]. Returns a 4 or 8 character rgba hex\nfunction rgbaToHex(r, g, b, a, allow4Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16)),\n pad2(convertDecimalToHex(a))\n ];\n\n // Return a 4 character hex if possible\n if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToArgbHex`\n// Converts an RGBA color to an ARGB Hex8 string\n// Rarely used, but required for \"toFilter()\"\nfunction rgbaToArgbHex(r, g, b, a) {\n\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n return hex.join(\"\");\n}\n\n// `equals`\n// Can be called with any tinycolor input\ntinycolor.equals = function (color1, color2) {\n if (!color1 || !color2) { return false; }\n return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n};\n\ntinycolor.random = function() {\n return tinycolor.fromRatio({\n r: mathRandom(),\n g: mathRandom(),\n b: mathRandom()\n });\n};\n\n\n// Modification Functions\n// ----------------------\n// Thanks to less.js for some of the basics here\n// \n\nfunction desaturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction saturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction greyscale(color) {\n return tinycolor(color).desaturate(100);\n}\n\nfunction lighten (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\nfunction brighten(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var rgb = tinycolor(color).toRgb();\n rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * - (amount / 100))));\n rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * - (amount / 100))));\n rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * - (amount / 100))));\n return tinycolor(rgb);\n}\n\nfunction darken (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\n// Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n// Values outside of this range will be wrapped into this range.\nfunction spin(color, amount) {\n var hsl = tinycolor(color).toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return tinycolor(hsl);\n}\n\n// Combination Functions\n// ---------------------\n// Thanks to jQuery xColor for some of the ideas behind these\n// \n\nfunction complement(color) {\n var hsl = tinycolor(color).toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return tinycolor(hsl);\n}\n\nfunction triad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction tetrad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction splitcomplement(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l}),\n tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l})\n ];\n}\n\nfunction analogous(color, results, slices) {\n results = results || 6;\n slices = slices || 30;\n\n var hsl = tinycolor(color).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color)];\n\n for (hsl.h = ((hsl.h - (part * results >> 1)) + 720) % 360; --results; ) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(tinycolor(hsl));\n }\n return ret;\n}\n\nfunction monochromatic(color, results) {\n results = results || 6;\n var hsv = tinycolor(color).toHsv();\n var h = hsv.h, s = hsv.s, v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n\n while (results--) {\n ret.push(tinycolor({ h: h, s: s, v: v}));\n v = (v + modification) % 1;\n }\n\n return ret;\n}\n\n// Utility Functions\n// ---------------------\n\ntinycolor.mix = function(color1, color2, amount) {\n amount = (amount === 0) ? 0 : (amount || 50);\n\n var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n\n var p = amount / 100;\n\n var rgba = {\n r: ((rgb2.r - rgb1.r) * p) + rgb1.r,\n g: ((rgb2.g - rgb1.g) * p) + rgb1.g,\n b: ((rgb2.b - rgb1.b) * p) + rgb1.b,\n a: ((rgb2.a - rgb1.a) * p) + rgb1.a\n };\n\n return tinycolor(rgba);\n};\n\n\n// Readability Functions\n// ---------------------\n// false\n// tinycolor.isReadable(\"#000\", \"#111\",{level:\"AA\",size:\"large\"}) => false\ntinycolor.isReadable = function(color1, color2, wcag2) {\n var readability = tinycolor.readability(color1, color2);\n var wcag2Parms, out;\n\n out = false;\n\n wcag2Parms = validateWCAG2Parms(wcag2);\n switch (wcag2Parms.level + wcag2Parms.size) {\n case \"AAsmall\":\n case \"AAAlarge\":\n out = readability >= 4.5;\n break;\n case \"AAlarge\":\n out = readability >= 3;\n break;\n case \"AAAsmall\":\n out = readability >= 7;\n break;\n }\n return out;\n\n};\n\n// `mostReadable`\n// Given a base color and a list of possible foreground or background\n// colors for that base, returns the most readable color.\n// Optionally returns Black or White if the most readable color is unreadable.\n// *Example*\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:false}).toHexString(); // \"#112255\"\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:true}).toHexString(); // \"#ffffff\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"large\"}).toHexString(); // \"#faf3f3\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"small\"}).toHexString(); // \"#ffffff\"\ntinycolor.mostReadable = function(baseColor, colorList, args) {\n var bestColor = null;\n var bestScore = 0;\n var readability;\n var includeFallbackColors, level, size ;\n args = args || {};\n includeFallbackColors = args.includeFallbackColors ;\n level = args.level;\n size = args.size;\n\n for (var i= 0; i < colorList.length ; i++) {\n readability = tinycolor.readability(baseColor, colorList[i]);\n if (readability > bestScore) {\n bestScore = readability;\n bestColor = tinycolor(colorList[i]);\n }\n }\n\n if (tinycolor.isReadable(baseColor, bestColor, {\"level\":level,\"size\":size}) || !includeFallbackColors) {\n return bestColor;\n }\n else {\n args.includeFallbackColors=false;\n return tinycolor.mostReadable(baseColor,[\"#fff\", \"#000\"],args);\n }\n};\n\n\n// Big List of Colors\n// ------------------\n// \nvar names = tinycolor.names = {\n aliceblue: \"f0f8ff\",\n antiquewhite: \"faebd7\",\n aqua: \"0ff\",\n aquamarine: \"7fffd4\",\n azure: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"000\",\n blanchedalmond: \"ffebcd\",\n blue: \"00f\",\n blueviolet: \"8a2be2\",\n brown: \"a52a2a\",\n burlywood: \"deb887\",\n burntsienna: \"ea7e5d\",\n cadetblue: \"5f9ea0\",\n chartreuse: \"7fff00\",\n chocolate: \"d2691e\",\n coral: \"ff7f50\",\n cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"0ff\",\n darkblue: \"00008b\",\n darkcyan: \"008b8b\",\n darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\",\n darkgreen: \"006400\",\n darkgrey: \"a9a9a9\",\n darkkhaki: \"bdb76b\",\n darkmagenta: \"8b008b\",\n darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\",\n darkorchid: \"9932cc\",\n darkred: \"8b0000\",\n darksalmon: \"e9967a\",\n darkseagreen: \"8fbc8f\",\n darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\",\n darkslategrey: \"2f4f4f\",\n darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\",\n deeppink: \"ff1493\",\n deepskyblue: \"00bfff\",\n dimgray: \"696969\",\n dimgrey: \"696969\",\n dodgerblue: \"1e90ff\",\n firebrick: \"b22222\",\n floralwhite: \"fffaf0\",\n forestgreen: \"228b22\",\n fuchsia: \"f0f\",\n gainsboro: \"dcdcdc\",\n ghostwhite: \"f8f8ff\",\n gold: \"ffd700\",\n goldenrod: \"daa520\",\n gray: \"808080\",\n green: \"008000\",\n greenyellow: \"adff2f\",\n grey: \"808080\",\n honeydew: \"f0fff0\",\n hotpink: \"ff69b4\",\n indianred: \"cd5c5c\",\n indigo: \"4b0082\",\n ivory: \"fffff0\",\n khaki: \"f0e68c\",\n lavender: \"e6e6fa\",\n lavenderblush: \"fff0f5\",\n lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\",\n lightblue: \"add8e6\",\n lightcoral: \"f08080\",\n lightcyan: \"e0ffff\",\n lightgoldenrodyellow: \"fafad2\",\n lightgray: \"d3d3d3\",\n lightgreen: \"90ee90\",\n lightgrey: \"d3d3d3\",\n lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\",\n lightseagreen: \"20b2aa\",\n lightskyblue: \"87cefa\",\n lightslategray: \"789\",\n lightslategrey: \"789\",\n lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\",\n lime: \"0f0\",\n limegreen: \"32cd32\",\n linen: \"faf0e6\",\n magenta: \"f0f\",\n maroon: \"800000\",\n mediumaquamarine: \"66cdaa\",\n mediumblue: \"0000cd\",\n mediumorchid: \"ba55d3\",\n mediumpurple: \"9370db\",\n mediumseagreen: \"3cb371\",\n mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\",\n mediumturquoise: \"48d1cc\",\n mediumvioletred: \"c71585\",\n midnightblue: \"191970\",\n mintcream: \"f5fffa\",\n mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\",\n navajowhite: \"ffdead\",\n navy: \"000080\",\n oldlace: \"fdf5e6\",\n olive: \"808000\",\n olivedrab: \"6b8e23\",\n orange: \"ffa500\",\n orangered: \"ff4500\",\n orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\",\n palegreen: \"98fb98\",\n paleturquoise: \"afeeee\",\n palevioletred: \"db7093\",\n papayawhip: \"ffefd5\",\n peachpuff: \"ffdab9\",\n peru: \"cd853f\",\n pink: \"ffc0cb\",\n plum: \"dda0dd\",\n powderblue: \"b0e0e6\",\n purple: \"800080\",\n rebeccapurple: \"663399\",\n red: \"f00\",\n rosybrown: \"bc8f8f\",\n royalblue: \"4169e1\",\n saddlebrown: \"8b4513\",\n salmon: \"fa8072\",\n sandybrown: \"f4a460\",\n seagreen: \"2e8b57\",\n seashell: \"fff5ee\",\n sienna: \"a0522d\",\n silver: \"c0c0c0\",\n skyblue: \"87ceeb\",\n slateblue: \"6a5acd\",\n slategray: \"708090\",\n slategrey: \"708090\",\n snow: \"fffafa\",\n springgreen: \"00ff7f\",\n steelblue: \"4682b4\",\n tan: \"d2b48c\",\n teal: \"008080\",\n thistle: \"d8bfd8\",\n tomato: \"ff6347\",\n turquoise: \"40e0d0\",\n violet: \"ee82ee\",\n wheat: \"f5deb3\",\n white: \"fff\",\n whitesmoke: \"f5f5f5\",\n yellow: \"ff0\",\n yellowgreen: \"9acd32\"\n};\n\n// Make it easy to access colors via `hexNames[hex]`\nvar hexNames = tinycolor.hexNames = flip(names);\n\n\n// Utilities\n// ---------\n\n// `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\nfunction flip(o) {\n var flipped = { };\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n flipped[o[i]] = i;\n }\n }\n return flipped;\n}\n\n// Return a valid alpha value [0,1] with all invalid values being set to 1\nfunction boundAlpha(a) {\n a = parseFloat(a);\n\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n\n return a;\n}\n\n// Take input from [0, n] and return it as [0, 1]\nfunction bound01(n, max) {\n if (isOnePointZero(n)) { n = \"100%\"; }\n\n var processPercent = isPercentage(n);\n n = mathMin(max, mathMax(0, parseFloat(n)));\n\n // Automatically convert percentage into number\n if (processPercent) {\n n = parseInt(n * max, 10) / 100;\n }\n\n // Handle floating point rounding errors\n if ((Math.abs(n - max) < 0.000001)) {\n return 1;\n }\n\n // Convert into [0, 1] range if it isn't already\n return (n % max) / parseFloat(max);\n}\n\n// Force a number between 0 and 1\nfunction clamp01(val) {\n return mathMin(1, mathMax(0, val));\n}\n\n// Parse a base-16 hex value into a base-10 integer\nfunction parseIntFromHex(val) {\n return parseInt(val, 16);\n}\n\n// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n// \nfunction isOnePointZero(n) {\n return typeof n == \"string\" && n.indexOf('.') != -1 && parseFloat(n) === 1;\n}\n\n// Check to see if string passed in is a percentage\nfunction isPercentage(n) {\n return typeof n === \"string\" && n.indexOf('%') != -1;\n}\n\n// Force a hex value to have 2 characters\nfunction pad2(c) {\n return c.length == 1 ? '0' + c : '' + c;\n}\n\n// Replace a decimal with it's percentage value\nfunction convertToPercentage(n) {\n if (n <= 1) {\n n = (n * 100) + \"%\";\n }\n\n return n;\n}\n\n// Converts a decimal to a hex value\nfunction convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n// Converts a hex value to a decimal\nfunction convertHexToDecimal(h) {\n return (parseIntFromHex(h) / 255);\n}\n\nvar matchers = (function() {\n\n // \n var CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\";\n\n // \n var CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\n\n // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\n var CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n\n // Actual matching.\n // Parentheses and commas are optional, but not required.\n // Whitespace can take the place of commas or opening paren\n var PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n var PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n\n return {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp(\"rgb\" + PERMISSIVE_MATCH3),\n rgba: new RegExp(\"rgba\" + PERMISSIVE_MATCH4),\n hsl: new RegExp(\"hsl\" + PERMISSIVE_MATCH3),\n hsla: new RegExp(\"hsla\" + PERMISSIVE_MATCH4),\n hsv: new RegExp(\"hsv\" + PERMISSIVE_MATCH3),\n hsva: new RegExp(\"hsva\" + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n };\n})();\n\n// `isValidCSSUnit`\n// Take in a single string / number and check to see if it looks like a CSS unit\n// (see `matchers` above for definition).\nfunction isValidCSSUnit(color) {\n return !!matchers.CSS_UNIT.exec(color);\n}\n\n// `stringInputToObject`\n// Permissive string parsing. Take in a number of formats, and output an object\n// based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\nfunction stringInputToObject(color) {\n\n color = color.replace(trimLeft,'').replace(trimRight, '').toLowerCase();\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color == 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: \"name\" };\n }\n\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match;\n if ((match = matchers.rgb.exec(color))) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n if ((match = matchers.rgba.exec(color))) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n if ((match = matchers.hsl.exec(color))) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n if ((match = matchers.hsla.exec(color))) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n if ((match = matchers.hsv.exec(color))) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n if ((match = matchers.hsva.exec(color))) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n if ((match = matchers.hex8.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex6.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n if ((match = matchers.hex4.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n a: convertHexToDecimal(match[4] + '' + match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex3.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n\n return false;\n}\n\nfunction validateWCAG2Parms(parms) {\n // return valid WCAG2 parms for isReadable.\n // If input parms are invalid, return {\"level\":\"AA\", \"size\":\"small\"}\n var level, size;\n parms = parms || {\"level\":\"AA\", \"size\":\"small\"};\n level = (parms.level || \"AA\").toUpperCase();\n size = (parms.size || \"small\").toLowerCase();\n if (level !== \"AA\" && level !== \"AAA\") {\n level = \"AA\";\n }\n if (size !== \"small\" && size !== \"large\") {\n size = \"small\";\n }\n return {\"level\":level, \"size\":size};\n}\n\n// Node: Export function\nif (typeof module !== \"undefined\" && module.exports) {\n module.exports = tinycolor;\n}\n// AMD/requirejs: Define the module\nelse if (typeof define === 'function' && define.amd) {\n define(function () {return tinycolor;});\n}\n// Browser: Expose to window\nelse {\n window.tinycolor = tinycolor;\n}\n\n})(Math);\n","\nvar space = require('to-space-case')\n\n/**\n * Export.\n */\n\nmodule.exports = toCamelCase\n\n/**\n * Convert a `string` to camel case.\n *\n * @param {String} string\n * @return {String}\n */\n\nfunction toCamelCase(string) {\n return space(string).replace(/\\s(\\w)/g, function (matches, letter) {\n return letter.toUpperCase()\n })\n}\n","\n/**\n * Export.\n */\n\nmodule.exports = toNoCase\n\n/**\n * Test whether a string is camel-case.\n */\n\nvar hasSpace = /\\s/\nvar hasSeparator = /(_|-|\\.|:)/\nvar hasCamel = /([a-z][A-Z]|[A-Z][a-z])/\n\n/**\n * Remove any starting case from a `string`, like camel or snake, but keep\n * spaces and punctuation that may be important otherwise.\n *\n * @param {String} string\n * @return {String}\n */\n\nfunction toNoCase(string) {\n if (hasSpace.test(string)) return string.toLowerCase()\n if (hasSeparator.test(string)) return (unseparate(string) || string).toLowerCase()\n if (hasCamel.test(string)) return uncamelize(string).toLowerCase()\n return string.toLowerCase()\n}\n\n/**\n * Separator splitter.\n */\n\nvar separatorSplitter = /[\\W_]+(.|$)/g\n\n/**\n * Un-separate a `string`.\n *\n * @param {String} string\n * @return {String}\n */\n\nfunction unseparate(string) {\n return string.replace(separatorSplitter, function (m, next) {\n return next ? ' ' + next : ''\n })\n}\n\n/**\n * Camelcase splitter.\n */\n\nvar camelSplitter = /(.)([A-Z]+)/g\n\n/**\n * Un-camelcase a `string`.\n *\n * @param {String} string\n * @return {String}\n */\n\nfunction uncamelize(string) {\n return string.replace(camelSplitter, function (m, previous, uppers) {\n return previous + ' ' + uppers.toLowerCase().split('').join(' ')\n })\n}\n","\nvar clean = require('to-no-case')\n\n/**\n * Export.\n */\n\nmodule.exports = toSpaceCase\n\n/**\n * Convert a `string` to space case.\n *\n * @param {String} string\n * @return {String}\n */\n\nfunction toSpaceCase(string) {\n return clean(string).replace(/[\\W_]+(.|$)/g, function (matches, match) {\n return match ? ' ' + match : ''\n }).trim()\n}\n","var v1 = require('./v1');\nvar v4 = require('./v4');\n\nvar uuid = v4;\nuuid.v1 = v1;\nuuid.v4 = v4;\n\nmodule.exports = uuid;\n","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return ([\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]]\n ]).join('');\n}\n\nmodule.exports = bytesToUuid;\n","// Unique ID creation requires a high quality random # generator. In the\n// browser this is a little complicated due to unknown quality of Math.random()\n// and inconsistent support for the `crypto` API. We do the best we can via\n// feature-detection\n\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto\n// implementation. Also, find the complete implementation of crypto on IE11.\nvar getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) ||\n (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto));\n\nif (getRandomValues) {\n // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto\n var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\n module.exports = function whatwgRNG() {\n getRandomValues(rnds8);\n return rnds8;\n };\n} else {\n // Math.random()-based (RNG)\n //\n // If all else fails, use Math.random(). It's fast, but is of unspecified\n // quality.\n var rnds = new Array(16);\n\n module.exports = function mathRNG() {\n for (var i = 0, r; i < 16; i++) {\n if ((i & 0x03) === 0) r = Math.random() * 0x100000000;\n rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;\n }\n\n return rnds;\n };\n}\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\n\nvar _nodeId;\nvar _clockseq;\n\n// Previous uuid creation time\nvar _lastMSecs = 0;\nvar _lastNSecs = 0;\n\n// See https://github.com/uuidjs/uuid for API details\nfunction v1(options, buf, offset) {\n var i = buf && offset || 0;\n var b = buf || [];\n\n options = options || {};\n var node = options.node || _nodeId;\n var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq;\n\n // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n if (node == null || clockseq == null) {\n var seedBytes = rng();\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [\n seedBytes[0] | 0x01,\n seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]\n ];\n }\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n }\n\n // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime();\n\n // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1;\n\n // Time since last uuid creation (in msecs)\n var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000;\n\n // Per 4.2.1.2, Bump clockseq on clock regression\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n }\n\n // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n }\n\n // Per 4.2.1.2 Throw error if too many uuids are requested\n if (nsecs >= 10000) {\n throw new Error('uuid.v1(): Can\\'t create more than 10M uuids/sec');\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq;\n\n // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n msecs += 12219292800000;\n\n // `time_low`\n var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff;\n\n // `time_mid`\n var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff;\n\n // `time_high_and_version`\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n b[i++] = tmh >>> 16 & 0xff;\n\n // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n b[i++] = clockseq >>> 8 | 0x80;\n\n // `clock_seq_low`\n b[i++] = clockseq & 0xff;\n\n // `node`\n for (var n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf ? buf : bytesToUuid(b);\n}\n\nmodule.exports = v1;\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof(options) == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nmodule.exports = v4;\n","/*!\n * EventEmitter v5.2.8 - git.io/ee\n * Unlicense - http://unlicense.org/\n * Oliver Caldwell - https://oli.me.uk/\n * @preserve\n */\n\n;(function (exports) {\n 'use strict';\n\n /**\n * Class for managing events.\n * Can be extended to provide event functionality in other classes.\n *\n * @class EventEmitter Manages event registering and emitting.\n */\n function EventEmitter() {}\n\n // Shortcuts to improve speed and size\n var proto = EventEmitter.prototype;\n var originalGlobalValue = exports.EventEmitter;\n\n /**\n * Finds the index of the listener for the event in its storage array.\n *\n * @param {Function[]} listeners Array of listeners to search through.\n * @param {Function} listener Method to look for.\n * @return {Number} Index of the specified listener, -1 if not found\n * @api private\n */\n function indexOfListener(listeners, listener) {\n var i = listeners.length;\n while (i--) {\n if (listeners[i].listener === listener) {\n return i;\n }\n }\n\n return -1;\n }\n\n /**\n * Alias a method while keeping the context correct, to allow for overwriting of target method.\n *\n * @param {String} name The name of the target method.\n * @return {Function} The aliased method\n * @api private\n */\n function alias(name) {\n return function aliasClosure() {\n return this[name].apply(this, arguments);\n };\n }\n\n /**\n * Returns the listener array for the specified event.\n * Will initialise the event object and listener arrays if required.\n * Will return an object if you use a regex search. The object contains keys for each matched event. So /ba[rz]/ might return an object containing bar and baz. But only if you have either defined them with defineEvent or added some listeners to them.\n * Each property in the object response is an array of listener functions.\n *\n * @param {String|RegExp} evt Name of the event to return the listeners from.\n * @return {Function[]|Object} All listener functions for the event.\n */\n proto.getListeners = function getListeners(evt) {\n var events = this._getEvents();\n var response;\n var key;\n\n // Return a concatenated array of all matching events if\n // the selector is a regular expression.\n if (evt instanceof RegExp) {\n response = {};\n for (key in events) {\n if (events.hasOwnProperty(key) && evt.test(key)) {\n response[key] = events[key];\n }\n }\n }\n else {\n response = events[evt] || (events[evt] = []);\n }\n\n return response;\n };\n\n /**\n * Takes a list of listener objects and flattens it into a list of listener functions.\n *\n * @param {Object[]} listeners Raw listener objects.\n * @return {Function[]} Just the listener functions.\n */\n proto.flattenListeners = function flattenListeners(listeners) {\n var flatListeners = [];\n var i;\n\n for (i = 0; i < listeners.length; i += 1) {\n flatListeners.push(listeners[i].listener);\n }\n\n return flatListeners;\n };\n\n /**\n * Fetches the requested listeners via getListeners but will always return the results inside an object. This is mainly for internal use but others may find it useful.\n *\n * @param {String|RegExp} evt Name of the event to return the listeners from.\n * @return {Object} All listener functions for an event in an object.\n */\n proto.getListenersAsObject = function getListenersAsObject(evt) {\n var listeners = this.getListeners(evt);\n var response;\n\n if (listeners instanceof Array) {\n response = {};\n response[evt] = listeners;\n }\n\n return response || listeners;\n };\n\n function isValidListener (listener) {\n if (typeof listener === 'function' || listener instanceof RegExp) {\n return true\n } else if (listener && typeof listener === 'object') {\n return isValidListener(listener.listener)\n } else {\n return false\n }\n }\n\n /**\n * Adds a listener function to the specified event.\n * The listener will not be added if it is a duplicate.\n * If the listener returns true then it will be removed after it is called.\n * If you pass a regular expression as the event name then the listener will be added to all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to attach the listener to.\n * @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.addListener = function addListener(evt, listener) {\n if (!isValidListener(listener)) {\n throw new TypeError('listener must be a function');\n }\n\n var listeners = this.getListenersAsObject(evt);\n var listenerIsWrapped = typeof listener === 'object';\n var key;\n\n for (key in listeners) {\n if (listeners.hasOwnProperty(key) && indexOfListener(listeners[key], listener) === -1) {\n listeners[key].push(listenerIsWrapped ? listener : {\n listener: listener,\n once: false\n });\n }\n }\n\n return this;\n };\n\n /**\n * Alias of addListener\n */\n proto.on = alias('addListener');\n\n /**\n * Semi-alias of addListener. It will add a listener that will be\n * automatically removed after its first execution.\n *\n * @param {String|RegExp} evt Name of the event to attach the listener to.\n * @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.addOnceListener = function addOnceListener(evt, listener) {\n return this.addListener(evt, {\n listener: listener,\n once: true\n });\n };\n\n /**\n * Alias of addOnceListener.\n */\n proto.once = alias('addOnceListener');\n\n /**\n * Defines an event name. This is required if you want to use a regex to add a listener to multiple events at once. If you don't do this then how do you expect it to know what event to add to? Should it just add to every possible match for a regex? No. That is scary and bad.\n * You need to tell it what event names should be matched by a regex.\n *\n * @param {String} evt Name of the event to create.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.defineEvent = function defineEvent(evt) {\n this.getListeners(evt);\n return this;\n };\n\n /**\n * Uses defineEvent to define multiple events.\n *\n * @param {String[]} evts An array of event names to define.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.defineEvents = function defineEvents(evts) {\n for (var i = 0; i < evts.length; i += 1) {\n this.defineEvent(evts[i]);\n }\n return this;\n };\n\n /**\n * Removes a listener function from the specified event.\n * When passed a regular expression as the event name, it will remove the listener from all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to remove the listener from.\n * @param {Function} listener Method to remove from the event.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.removeListener = function removeListener(evt, listener) {\n var listeners = this.getListenersAsObject(evt);\n var index;\n var key;\n\n for (key in listeners) {\n if (listeners.hasOwnProperty(key)) {\n index = indexOfListener(listeners[key], listener);\n\n if (index !== -1) {\n listeners[key].splice(index, 1);\n }\n }\n }\n\n return this;\n };\n\n /**\n * Alias of removeListener\n */\n proto.off = alias('removeListener');\n\n /**\n * Adds listeners in bulk using the manipulateListeners method.\n * If you pass an object as the first argument you can add to multiple events at once. The object should contain key value pairs of events and listeners or listener arrays. You can also pass it an event name and an array of listeners to be added.\n * You can also pass it a regular expression to add the array of listeners to all events that match it.\n * Yeah, this function does quite a bit. That's probably a bad thing.\n *\n * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add to multiple events at once.\n * @param {Function[]} [listeners] An optional array of listener functions to add.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.addListeners = function addListeners(evt, listeners) {\n // Pass through to manipulateListeners\n return this.manipulateListeners(false, evt, listeners);\n };\n\n /**\n * Removes listeners in bulk using the manipulateListeners method.\n * If you pass an object as the first argument you can remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays.\n * You can also pass it an event name and an array of listeners to be removed.\n * You can also pass it a regular expression to remove the listeners from all events that match it.\n *\n * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to remove from multiple events at once.\n * @param {Function[]} [listeners] An optional array of listener functions to remove.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.removeListeners = function removeListeners(evt, listeners) {\n // Pass through to manipulateListeners\n return this.manipulateListeners(true, evt, listeners);\n };\n\n /**\n * Edits listeners in bulk. The addListeners and removeListeners methods both use this to do their job. You should really use those instead, this is a little lower level.\n * The first argument will determine if the listeners are removed (true) or added (false).\n * If you pass an object as the second argument you can add/remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays.\n * You can also pass it an event name and an array of listeners to be added/removed.\n * You can also pass it a regular expression to manipulate the listeners of all events that match it.\n *\n * @param {Boolean} remove True if you want to remove listeners, false if you want to add.\n * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add/remove from multiple events at once.\n * @param {Function[]} [listeners] An optional array of listener functions to add/remove.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.manipulateListeners = function manipulateListeners(remove, evt, listeners) {\n var i;\n var value;\n var single = remove ? this.removeListener : this.addListener;\n var multiple = remove ? this.removeListeners : this.addListeners;\n\n // If evt is an object then pass each of its properties to this method\n if (typeof evt === 'object' && !(evt instanceof RegExp)) {\n for (i in evt) {\n if (evt.hasOwnProperty(i) && (value = evt[i])) {\n // Pass the single listener straight through to the singular method\n if (typeof value === 'function') {\n single.call(this, i, value);\n }\n else {\n // Otherwise pass back to the multiple function\n multiple.call(this, i, value);\n }\n }\n }\n }\n else {\n // So evt must be a string\n // And listeners must be an array of listeners\n // Loop over it and pass each one to the multiple method\n i = listeners.length;\n while (i--) {\n single.call(this, evt, listeners[i]);\n }\n }\n\n return this;\n };\n\n /**\n * Removes all listeners from a specified event.\n * If you do not specify an event then all listeners will be removed.\n * That means every event will be emptied.\n * You can also pass a regex to remove all events that match it.\n *\n * @param {String|RegExp} [evt] Optional name of the event to remove all listeners for. Will remove from every event if not passed.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.removeEvent = function removeEvent(evt) {\n var type = typeof evt;\n var events = this._getEvents();\n var key;\n\n // Remove different things depending on the state of evt\n if (type === 'string') {\n // Remove all listeners for the specified event\n delete events[evt];\n }\n else if (evt instanceof RegExp) {\n // Remove all events matching the regex.\n for (key in events) {\n if (events.hasOwnProperty(key) && evt.test(key)) {\n delete events[key];\n }\n }\n }\n else {\n // Remove all listeners in all events\n delete this._events;\n }\n\n return this;\n };\n\n /**\n * Alias of removeEvent.\n *\n * Added to mirror the node API.\n */\n proto.removeAllListeners = alias('removeEvent');\n\n /**\n * Emits an event of your choice.\n * When emitted, every listener attached to that event will be executed.\n * If you pass the optional argument array then those arguments will be passed to every listener upon execution.\n * Because it uses `apply`, your array of arguments will be passed as if you wrote them out separately.\n * So they will not arrive within the array on the other side, they will be separate.\n * You can also pass a regular expression to emit to all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to emit and execute listeners for.\n * @param {Array} [args] Optional array of arguments to be passed to each listener.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.emitEvent = function emitEvent(evt, args) {\n var listenersMap = this.getListenersAsObject(evt);\n var listeners;\n var listener;\n var i;\n var key;\n var response;\n\n for (key in listenersMap) {\n if (listenersMap.hasOwnProperty(key)) {\n listeners = listenersMap[key].slice(0);\n\n for (i = 0; i < listeners.length; i++) {\n // If the listener returns true then it shall be removed from the event\n // The function is executed either with a basic call or an apply if there is an args array\n listener = listeners[i];\n\n if (listener.once === true) {\n this.removeListener(evt, listener.listener);\n }\n\n response = listener.listener.apply(this, args || []);\n\n if (response === this._getOnceReturnValue()) {\n this.removeListener(evt, listener.listener);\n }\n }\n }\n }\n\n return this;\n };\n\n /**\n * Alias of emitEvent\n */\n proto.trigger = alias('emitEvent');\n\n /**\n * Subtly different from emitEvent in that it will pass its arguments on to the listeners, as opposed to taking a single array of arguments to pass on.\n * As with emitEvent, you can pass a regex in place of the event name to emit to all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to emit and execute listeners for.\n * @param {...*} Optional additional arguments to be passed to each listener.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.emit = function emit(evt) {\n var args = Array.prototype.slice.call(arguments, 1);\n return this.emitEvent(evt, args);\n };\n\n /**\n * Sets the current value to check against when executing listeners. If a\n * listeners return value matches the one set here then it will be removed\n * after execution. This value defaults to true.\n *\n * @param {*} value The new value to check for when executing listeners.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.setOnceReturnValue = function setOnceReturnValue(value) {\n this._onceReturnValue = value;\n return this;\n };\n\n /**\n * Fetches the current value to check against when executing listeners. If\n * the listeners return value matches this one then it should be removed\n * automatically. It will return true by default.\n *\n * @return {*|Boolean} The current value to check for or the default, true.\n * @api private\n */\n proto._getOnceReturnValue = function _getOnceReturnValue() {\n if (this.hasOwnProperty('_onceReturnValue')) {\n return this._onceReturnValue;\n }\n else {\n return true;\n }\n };\n\n /**\n * Fetches the events object and creates one if required.\n *\n * @return {Object} The events storage object.\n * @api private\n */\n proto._getEvents = function _getEvents() {\n return this._events || (this._events = {});\n };\n\n /**\n * Reverts the global {@link EventEmitter} to its previous value and returns a reference to this version.\n *\n * @return {Function} Non conflicting EventEmitter class.\n */\n EventEmitter.noConflict = function noConflict() {\n exports.EventEmitter = originalGlobalValue;\n return EventEmitter;\n };\n\n // Expose the class either via AMD, CommonJS or the global object\n if (typeof define === 'function' && define.amd) {\n define(function () {\n return EventEmitter;\n });\n }\n else if (typeof module === 'object' && module.exports){\n module.exports = EventEmitter;\n }\n else {\n exports.EventEmitter = EventEmitter;\n }\n}(typeof window !== 'undefined' ? window : this || {}));\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import themes from \"./themes\";\n\nexport default class Theme {\n constructor(themeName) {\n\n var theme = themes[themeName];\n if(theme === undefined) {\n console.error(`There is no theme preset with the name '${themeName}'! Defaulting to dark theme.`);\n theme = themes.dark;\n }\n\n // Merge the base theme with the theme parameters and make\n // the result properties of this object\n Object.assign(this, baseTheme, theme);\n }\n\n /**\n * Applies the CSS to the global scope.\n */\n Apply() {\n console.log(this);\n\n let root = document.documentElement;\n root.style.setProperty(\"--color-menu-bar-background\", this.colors.menuBarBackground);\n root.style.setProperty(\"--color-menu-bar-text\", this.colors.menuBarText);\n root.style.setProperty(\"--color-panel-background\", this.colors.panelBackground);\n\n root.style.setProperty(\"--color-component-background\", this.colors.componentBackground);\n root.style.setProperty(\"--color-component-background-hover\", this.colors.componentBackgroundHover);\n root.style.setProperty(\"--color-component-background-disabled\", this.colors.componentBackgroundDisabled);\n root.style.setProperty(\"--color-component-foreground\", this.colors.componentForeground);\n root.style.setProperty(\"--color-component-active\", this.colors.componentActive);\n\n root.style.setProperty(\"--color-text-primary\", this.colors.textPrimary);\n root.style.setProperty(\"--color-text-secondary\", this.colors.textSecondary);\n root.style.setProperty(\"--color-text-hover\", this.colors.textHover);\n root.style.setProperty(\"--color-text-active\", this.colors.textActive);\n root.style.setProperty(\"--color-text-disabled\", this.colors.textDisabled);\n\n root.style.setProperty(\"--size-menu-bar-height\", this.sizing.menuBarHeight);\n root.style.setProperty(\"--size-component-height\", this.sizing.componentHeight);\n root.style.setProperty(\"--size-component-spacing\", this.sizing.componentSpacing);\n root.style.setProperty(\"--size-label-width\", this.sizing.labelWidth);\n }\n}\n\nconst baseTheme = {\n name: \"BaseTheme\",\n\n colors: {\n menuBarBackground: \"black\",\n menuBarText: \"black\",\n panelBackground: \"black\",\n\n componentBackground: \"black\",\n componentBackgroundHover: \"black\",\n componentBackgroundDisabled: \"black\",\n componentForeground: \"black\",\n componentActive: \"black\",\n\n textPrimary: \"black\",\n textSecondary: \"black\",\n textHover: \"black\",\n textActive: \"black\",\n textDisabled: \"black\",\n },\n\n sizing: {\n menuBarHeight: \"25px\",\n componentHeight: \"20px\",\n componentSpacing: \"5px\",\n labelWidth: \"42%\",\n },\n};\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./container.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./container.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./container.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./container.css\";\n export default content && content.locals ? content.locals : undefined;\n","import \"./container.css\";\n\n// eslint-disable-next-line no-unused-vars\nlet Container = (root, label, theme) => {\n let container = root.appendChild(document.createElement(\"div\"));\n container.classList.add(\"guify-component-container\");\n return container;\n};\n\nexport default Container;\n","import EventEmitter from \"wolfy87-eventemitter\";\nimport { v4 as uuidv4 } from \"uuid\";\n\nimport { default as ContainerPartial } from \"./partials/container\";\n\nexport default class ComponentBase extends EventEmitter {\n SetEnabled(enabled) {\n this.enabled = enabled;\n if (enabled) {\n this.container?.classList.remove(\"disabled\");\n } else {\n this.container?.classList.add(\"disabled\");\n }\n }\n\n Remove() {\n if (this.container) {\n this.container.parentNode.removeChild(this.container);\n }\n }\n\n constructor(root, opts, theme, makeContainer=true) {\n super();\n\n this.root = root;\n this.opts = opts;\n this.theme = theme;\n\n this.uuid = uuidv4();\n\n if (makeContainer) {\n this.container = ContainerPartial(root, opts.label, theme);\n }\n\n this.SetEnabled(opts.enabled || true);\n }\n}","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./title.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./title.css\";\n export default content && content.locals ? content.locals : undefined;\n","import ComponentBase from \"../component-base.js\";\n\nimport \"./title.css\";\n\nexport default class Title extends ComponentBase {\n constructor (root, opts, theme) {\n super(root, opts, theme);\n\n var background = this.container.appendChild(document.createElement(\"div\"));\n background.classList.add(\"guify-title\");\n\n var label = background.appendChild(document.createElement(\"div\"));\n label.classList.add(\"guify-title-text\");\n label.innerHTML = `■ ${opts.label} ■`;\n }\n}\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./range.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./range.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./label.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./label.css\";\n export default content && content.locals ? content.locals : undefined;\n","import \"./label.css\";\n\n// eslint-disable-next-line no-unused-vars\nexport default (root, text, theme) => {\n var label = root.appendChild(document.createElement(\"div\"));\n label.classList.add(\"guify-component-label\");\n label.innerHTML = text;\n return label;\n};\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./value.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./value.css\";\n export default content && content.locals ? content.locals : undefined;\n","import css from \"dom-css\";\n\nimport \"./value.css\";\n\nexport default (root, text, theme, width, left) => {\n\n let input = root.appendChild(document.createElement(\"input\"));\n input.type = \"text\";\n input.classList.add(\"guify-value-input\");\n\n input.value = text;\n\n if (!left) {\n input.classList.add(\"guify-value-input-right\");\n }\n\n css(input, {\n \"width\": width,\n });\n\n return input;\n};\n","import ComponentBase from \"../component-base.js\";\n\nimport css from \"dom-css\";\nimport isnumeric from \"is-numeric\";\n\nimport \"./range.css\";\n\nimport { default as LabelPartial } from \"../partials/label\";\nimport { default as ValuePartial } from \"../partials/value\";\n\nexport default class Range extends ComponentBase {\n constructor (root, opts, theme) {\n super(root, opts, theme);\n\n this.scale = opts.scale;\n\n this.label = LabelPartial(this.container, opts.label, theme);\n\n this.input = this.container.appendChild(document.createElement(\"input\"));\n this.input.type = \"range\";\n this.input.classList.add(\"guify-range\");\n // Add ARIA attribute to input based on label text\n if(opts.label) this.input.setAttribute(\"aria-label\", opts.label + \" input\");\n\n // Get initial value:\n if (opts.scale === \"log\") {\n // If logarithmic, we're going to set the slider to a known linear range. Then we'll\n // map that linear range to the user-set range using a log scale.\n\n // Check if all signs are valid\n if (opts.min * opts.max <= 0) {\n throw new Error(\"Log range min/max must have the same sign and not equal zero. Got min = \" + opts.min + \", max = \" + opts.max);\n }\n\n // Step is invalid for log scale slider\n if (isnumeric(opts.step)) {\n console.warn(\"Step is unused for log scale sliders.\");\n }\n\n // Warn that `steps` was removed\n if (isnumeric(opts.steps)) {\n console.warn(\"\\\"steps\\\" option for log scale sliders has been removed.\");\n }\n\n // Min/max are forced to a known range, and log value will be derived from slider position within.\n this.minPos = 0;\n this.maxPos = 1000000;\n\n this.min = Math.log( (isnumeric(opts.min)) ? opts.min : 0.000001 ); // This cannot be 0\n this.max = Math.log( (isnumeric(opts.max)) ? opts.max : 100 );\n\n this.precision = (isnumeric(opts.precision)) ? opts.precision : 3;\n this.logScale = (this.max - this.min) / (this.maxPos - this.minPos);\n\n this.initial = isnumeric(opts.initial) ? opts.initial : this.min;\n\n if (opts.initial < 0) {\n throw new Error(`Log range initial value must be > 0. Got initial value = ${opts.initial}`);\n }\n } else {\n // If linear, this is much simpler. Pos and value can directly match.\n this.minPos = (isnumeric(opts.min)) ? opts.min : 0;\n this.maxPos = (isnumeric(opts.max)) ? opts.max : 100;\n this.min = this.minPos;\n this.max = this.maxPos;\n\n this.precision = (isnumeric(opts.precision)) ? opts.precision : 3;\n this.step = (isnumeric(opts.step)) ? opts.step : (10 / Math.pow(10, 3)); // Default is the lowest possible number given the precision. When precision = 3, step = 0.01.\n\n this.initial = isnumeric(opts.initial) ? opts.initial : this.min;\n\n // Quantize the initial value to the nearest step:\n if (this.step != 0) {\n var initialStep = Math.round((this.initial - this.min) / this.step);\n this.initial = this.min + this.step * initialStep;\n }\n }\n\n // Set value on the this.input itself:\n this.input.min = this.minPos;\n this.input.max = this.maxPos;\n if (isnumeric(this.step)) {\n this.input.step = this.step;\n }\n this.input.value = this.initial;\n\n css(this.input, {\n width: `calc(100% - ${theme.sizing.labelWidth} - 16% - 0.5em)`\n });\n\n this.valueComponent = ValuePartial(this.container, this._Position(this.initial), theme, \"16%\");\n // Add ARIA attribute to input based on label text\n if(opts.label) this.valueComponent.setAttribute(\"aria-label\", opts.label + \" value\");\n\n setTimeout(() => {\n this.emit(\"initialized\", parseFloat(this.input.value));\n });\n\n this.userIsModifying = false;\n\n // Gain focus\n this.input.addEventListener(\"focus\", () => {\n this.focused = true;\n });\n\n // Lose focus\n this.input.addEventListener(\"blur\", () => {\n this.focused = false;\n });\n\n // Defocus on mouse up (for non-accessibility users)\n this.input.addEventListener(\"mouseup\", () => {\n this.input.blur();\n });\n\n this.input.oninput = (data) => {\n let position = parseFloat(data.target.value);\n var scaledValue = this._Value(position);\n this.valueComponent.value = this._FormatNumber(scaledValue, this.precision);\n this.emit(\"input\", scaledValue);\n };\n\n this.valueComponent.onchange = () => {\n let rawValue = this.valueComponent.value;\n if(Number(parseFloat(rawValue)) == rawValue){\n // Input number is valid\n var value = parseFloat(rawValue);\n\n // Ensure number fits slider properties\n value = this._ValidatedInputValue(value);\n\n this.valueComponent.value = value;\n this.emit(\"input\", value);\n this.lastValue = value;\n } else {\n // Input number is invalid\n // Go back to before input change\n this.valueComponent.value = this.lastValue;\n }\n };\n }\n\n /**\n * Calculate value from slider position\n */\n _Value(position) {\n if (this.scale === \"log\") {\n // Map from slider position range to log value range\n\n // Map from slider range to min-max value range\n let rangePos = (position - this.minPos) * this.logScale + this.min;\n // Now convert to log space\n return Math.exp(rangePos);\n } else {\n // Position and value are equivalent\n return position;\n }\n }\n\n /**\n * Calculate slider position from value\n */\n _Position(value) {\n if (this.scale === \"log\") {\n // Map from log value range to the slider's position range\n return this.minPos + (Math.log(value) - this.min) / this.logScale;\n } else {\n // Value and position are equivalent\n return value;\n }\n }\n\n _ValidatedInputValue(value) {\n var newValue;\n if (this.scale === \"log\") {\n // Clamp to input range, turning logmin and logmax back into min/max in linear space\n newValue = Math.min(Math.max(value, Math.exp(this.min)), Math.exp(this.max));\n } else {\n // Clamp to input range\n newValue = Math.min(Math.max(value, this.min), this.max);\n // Quantize to step\n newValue = Math.ceil((newValue - this.min) / this.step) * this.step + this.min;\n }\n return newValue;\n }\n\n SetValue(value) {\n let validated = this._ValidatedInputValue(value);\n if(this.focused !== true) {\n this.valueComponent.value = this._FormatNumber(validated, this.precision);\n this.input.value = this._Position(validated);\n this.lastValue = validated;\n }\n }\n\n GetValue() {\n return this._Value(this.input.value);\n }\n\n // Formats the number for display.\n // `opts.precision` lets you customize how many decimal places you want here.\n // The default is 3.\n _FormatNumber(value, precision) {\n // https://stackoverflow.com/a/29249277\n return value.toFixed(precision).replace(/\\.?0*$/,\"\");\n }\n}\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./button.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./button.css\";\n export default content && content.locals ? content.locals : undefined;\n","import ComponentBase from \"../component-base.js\";\n\nimport { default as LabelPartial } from \"../partials/label\";\n\nimport \"./button.css\";\n\nexport default class Button extends ComponentBase {\n constructor(root, opts, theme) {\n super(root, opts, theme);\n\n this.label = LabelPartial(this.container, \"\", theme);\n\n this.input = this.container.appendChild(document.createElement(\"button\"));\n this.input.classList.add(\"guify-button\");\n\n this.input.textContent = opts.label;\n this.button = this.input;\n\n this.input.addEventListener(\"click\", opts.action);\n\n // Defocus on mouse up (for non-accessibility users)\n this.input.addEventListener(\"mouseup\", () => {\n this.input.blur();\n });\n }\n}\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./checkbox.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./checkbox.css\";\n export default content && content.locals ? content.locals : undefined;\n","import ComponentBase from \"../component-base.js\";\n\nimport { default as LabelPartial } from \"../partials/label\";\n\nimport \"./checkbox.css\";\n\nexport default class Checkbox extends ComponentBase {\n constructor (root, opts, theme) {\n super(root, opts, theme);\n\n this.label = LabelPartial(this.container, opts.label, theme);\n\n this.input = this.container.appendChild(document.createElement(\"input\"));\n this.input.id = \"checkbox-\" + opts.label + this.uuid;\n this.input.type = \"checkbox\";\n this.input.checked = opts.initial;\n this.input.classList.add(\"guify-checkbox\");\n // Add ARIA attribute to input based on label text\n if(opts.label) this.input.setAttribute(\"aria-label\", opts.label);\n\n var label = this.container.appendChild(document.createElement(\"label\"));\n label.htmlFor = this.input.id;\n\n setTimeout(() => {\n this.emit(\"initialized\", this.input.checked);\n });\n\n this.input.onchange = (data) => {\n this.emit(\"input\", data.target.checked);\n };\n\n }\n\n SetValue(value) {\n this.input.checked = value;\n }\n\n GetValue() {\n return this.input.checked;\n }\n}\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./select.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./select.css\";\n export default content && content.locals ? content.locals : undefined;\n","import ComponentBase from \"../component-base.js\";\n\nimport \"./select.css\";\n\nimport { default as LabelPartial } from \"../partials/label\";\n\nexport default class Select extends ComponentBase {\n constructor (root, opts, theme) {\n super(root, opts, theme);\n\n var i, downTriangle, upTriangle, key, option, el, keys;\n\n this.label = LabelPartial(this.container, opts.label, theme);\n\n this.input = document.createElement(\"select\");\n this.input.classList.add(\"guify-select-dropdown\");\n // Add ARIA attribute to input based on label text\n if(opts.label) this.input.setAttribute(\"aria-label\", opts.label);\n\n downTriangle = document.createElement(\"span\");\n downTriangle.classList.add(\"guify-select-triangle\", \"guify-select-triangle--down\");\n\n upTriangle = document.createElement(\"span\");\n upTriangle.classList.add(\"guify-select-triangle\", \"guify-select-triangle--up\");\n\n this.container.appendChild(downTriangle);\n this.container.appendChild(upTriangle);\n\n if (Array.isArray(opts.options)) {\n for (i = 0; i < opts.options.length; i++) {\n option = opts.options[i];\n el = document.createElement(\"option\");\n el.value = el.textContent = option;\n if (opts.initial === option) {\n el.selected = \"selected\";\n }\n this.input.appendChild(el);\n }\n } else {\n keys = Object.keys(opts.options);\n for (i = 0; i < keys.length; i++) {\n key = keys[i];\n el = document.createElement(\"option\");\n el.value = key;\n if (opts.initial === key) {\n el.selected = \"selected\";\n }\n el.textContent = opts.options[key];\n this.input.appendChild(el);\n }\n }\n\n this.container.appendChild(this.input);\n\n this.input.onchange = (data) => {\n this.emit(\"input\", data.target.value);\n };\n\n // Style the arrows based on mouse / focus behavior (and unfocus on mouse leave).\n // I'd like to do this through CSS :focus/:hover selectors but I just couldn't figure it out.\n // It could be done easily if CSS had a \"general previous sibling\" selector.\n let StyleFocus = () => {\n downTriangle.classList.add(\"guify-select-triangle--down-highlight\");\n upTriangle.classList.add(\"guify-select-triangle--up-highlight\");\n };\n\n let StyleUnfocus = () => {\n downTriangle.classList.remove(\"guify-select-triangle--down-highlight\");\n upTriangle.classList.remove(\"guify-select-triangle--up-highlight\");\n };\n let focused = false;\n\n this.input.addEventListener(\"mouseover\", StyleFocus);\n this.input.addEventListener(\"focus\", () => { focused = true; StyleFocus(); });\n this.input.addEventListener(\"blur\", () => { focused = false; StyleUnfocus(); });\n this.input.addEventListener(\"mouseleave\", () => { if (!focused) StyleUnfocus(); });\n\n }\n\n SetValue(value) {\n this.input.value = value;\n }\n\n GetValue() {\n return this.input.value;\n }\n}\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./text.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./text.css\";\n export default content && content.locals ? content.locals : undefined;\n","import ComponentBase from \"../component-base.js\";\n\nimport \"./text.css\";\n\nimport { default as LabelPartial } from \"../partials/label\";\n\nexport default class Text extends ComponentBase {\n static #supportedInputListenModes = [\"input\", \"change\"];\n\n constructor (root, opts, theme) {\n super(root, opts, theme);\n\n this.listenMode = opts.listenMode || \"input\";\n if (!Text.#supportedInputListenModes.includes(this.listenMode)) {\n console.error(`listenMode \"${this.listenMode}\" is not supported for text component \"${opts.label}\"! Falling back on \"input\".`);\n }\n\n this.label = LabelPartial(this.container, opts.label, theme);\n\n this.input = this.container.appendChild(document.createElement(\"input\"));\n this.input.type = \"text\";\n this.input.classList.add(\"guify-text-input\");\n if (opts.initial) this.input.value = opts.initial;\n // Add ARIA attribute to input based on label text\n if(opts.label) this.input.setAttribute(\"aria-label\", opts.label);\n\n setTimeout(() => {\n this.emit(\"initialized\", this.input.value);\n });\n\n this.input.addEventListener(this.listenMode, (data) => {\n console.log(data);\n this.emit(\"input\", data.target.value);\n });\n\n // Gain focus\n this.input.addEventListener(\"focus\", () => {\n this.focused = true;\n });\n\n // Lose focus\n this.input.addEventListener(\"blur\", () => {\n this.focused = false;\n });\n }\n\n SetValue(value) {\n if(this.focused !== true)\n this.input.value = value;\n }\n\n GetValue() {\n return this.input.value;\n }\n}\n","import{insertCss as t}from\"insert-css\";function e(t,e){for(var i=0;i>16&255)/255,g:(t>>8&255)/255,b:(255&t)/255}}(this._hexNumber),i=e.g,s=e.b;this._rgba.r=e.r,this._rgba.g=i,this._rgba.b=s;var n=function(t){var e,i=t.r,o=t.g,s=t.b,n=Math.max(i,o,s),r=Math.min(i,o,s),h=n-r,u=0===n?0:h/n,a=n;if(n==r)e=0;else{switch(n){case i:e=(o-s)/h+(o\\n
\\n
\\n \\n
\\n
\\n
\\n ',this.$saturation=this.$el.querySelector(\".Scp-saturation\"),this.$hue=this.$el.querySelector(\".Scp-hue\"),this.$sbSelector=this.$el.querySelector(\".Scp-sbSelector\"),this.$hSelector=this.$el.querySelector(\".Scp-hSelector\"),this.$saturation.addEventListener(\"mousedown\",this._onSaturationMouseDown),this.$saturation.addEventListener(\"touchstart\",this._onSaturationMouseDown),this.$hue.addEventListener(\"mousedown\",this._onHueMouseDown),this.$hue.addEventListener(\"touchstart\",this._onHueMouseDown),t.el&&this.appendTo(t.el),t.background&&this.setBackgroundColor(t.background),t.widthUnits&&(this._widthUnits=t.widthUnits),t.heightUnits&&(this._heightUnits=t.heightUnits),this.setSize(t.width||175,t.height||150),this.setColor(t.color)}var e=t.prototype;return e.appendTo=function(t){return\"string\"==typeof t?document.querySelector(t).appendChild(this.$el):t.appendChild(this.$el),this},e.remove=function(){this._callbacks=[],this._onSaturationMouseUp(),this._onHueMouseUp(),this.$saturation.removeEventListener(\"mousedown\",this._onSaturationMouseDown),this.$saturation.removeEventListener(\"touchstart\",this._onSaturationMouseDown),this.$hue.removeEventListener(\"mousedown\",this._onHueMouseDown),this.$hue.removeEventListener(\"touchstart\",this._onHueMouseDown),this.$el.parentNode&&this.$el.parentNode.removeChild(this.$el)},e.setColor=function(t){this._inputIsNumber=o(t),this.color.fromHex(t);var e=this.color.hsv,i=e.h,s=e.s,n=e.v;return isNaN(i)||(this.hue=i),this._moveSelectorTo(this._saturationWidth*s,(1-n)*this._hueHeight),this._moveHueTo((1-this.hue)*this._hueHeight),this._updateHue(),this},e.setSize=function(t,e){return this.width=t,this.height=e,this.$el.style.width=this.width+this._widthUnits,this.$el.style.height=this.height+this._heightUnits,this._saturationWidth=this.width-25,this.$saturation.style.width=this._saturationWidth+\"px\",this._hueHeight=this.height,this._maxHue=this._hueHeight-2,this},e.setBackgroundColor=function(t){return this.backgroundColor.fromHex(t),this.$el.style.padding=\"5px\",this.$el.style.background=this.backgroundColor.hexString,this},e.setNoBackground=function(){return this.$el.style.padding=\"0px\",this.$el.style.background=\"none\",this},e.onChange=function(t){return this._callbacks.indexOf(t)<0&&(this._callbacks.push(t),t(this.getHexString())),this},e.getColor=function(){return this._inputIsNumber?this.getHexNumber():this.getHexString()},e.getHexString=function(){return this.color.hexString.toUpperCase()},e.getHexNumber=function(){return this.color.hex},e.getRGB=function(){return this.color.rgb},e.getHSV=function(){return this.color.hsv},e.isDark=function(){return this.color.isDark},e.isLight=function(){return this.color.isLight},e._moveSelectorTo=function(t,e){this.position.x=s(t,0,this._saturationWidth),this.position.y=s(e,0,this._hueHeight),this.$sbSelector.style.transform=\"translate(\"+this.position.x+\"px, \"+this.position.y+\"px)\"},e._updateColorFromPosition=function(){this.color.fromHsv({h:this.hue,s:this.position.x/this._saturationWidth,v:1-this.position.y/this._hueHeight}),this._updateColor()},e._moveHueTo=function(t){this._huePosition=s(t,0,this._maxHue),this.$hSelector.style.transform=\"translateY(\"+this._huePosition+\"px)\"},e._updateHueFromPosition=function(){var t=this.getHSV();this.hue=1-this._huePosition/this._maxHue,this.color.fromHsv({h:this.hue,s:t.s,v:t.v}),this._updateHue()},e._updateHue=function(){this.hueColor.fromHsv({h:this.hue,s:1,v:1}),this.$saturation.style.background=\"linear-gradient(to right, #fff, \"+this.hueColor.hexString+\")\",this._updateColor()},e._updateColor=function(){this.$sbSelector.style.background=this.getHexString(),this.$sbSelector.style.borderColor=this.isDark()?\"#fff\":\"#000\",this._triggerChange()},e._triggerChange=function(){var t=this;this._callbacks.forEach(function(e){return e(t.getHexString())})},i(t,[{key:\"isChoosing\",get:function(){return this._isChoosing}}]),t}();t(\".Scp{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative}.Scp-saturation{position:relative;height:100%;background:linear-gradient(90deg,#fff,red);float:left;margin-right:5px}.Scp-brightness{width:100%;height:100%;background:linear-gradient(hsla(0,0%,100%,0),#000)}.Scp-sbSelector{border:2px solid #fff;position:absolute;width:14px;height:14px;background:#fff;border-radius:10px;top:-7px;left:-7px;box-sizing:border-box;z-index:10}.Scp-hue{width:20px;height:100%;position:relative;float:left;background:linear-gradient(red,#f0f 17%,#00f 34%,#0ff 50%,#0f0 67%,#ff0 84%,red)}.Scp-hSelector{position:absolute;background:#fff;border-bottom:1px solid #000;right:-3px;width:10px;height:2px}\");export default a;\n//# sourceMappingURL=simple-color-picker.module.js.map\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./color.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./color.css\";\n export default content && content.locals ? content.locals : undefined;\n","import ComponentBase from \"../component-base.js\";\n\nimport ColorPicker from \"simple-color-picker\";\nimport tinycolor from \"tinycolor2\";\n\nimport css from \"dom-css\";\nimport \"./color.css\";\n\nimport { default as LabelPartial } from \"../partials/label\";\nimport { default as ValuePartial } from \"../partials/value\";\n\nexport default class Color extends ComponentBase {\n constructor (root, opts, theme) {\n super(root, opts, theme);\n\n opts.format = opts.format || \"rgb\";\n opts.initial = opts.initial || \"#123456\";\n\n this.label = LabelPartial(this.container, opts.label, theme);\n\n var icon = this.container.appendChild(document.createElement(\"span\"));\n icon.classList.add(\"guify-color\");\n\n var value = ValuePartial(this.container, \"\", theme, `calc(100% - ${theme.sizing.labelWidth} - 12% - 0.5em)`);\n value.setAttribute(\"readonly\", \"true\");\n\n icon.onmouseover = () => {\n this.picker.$el.style.display = \"\";\n };\n\n var initial = opts.initial;\n switch (opts.format) {\n case \"rgb\":\n initial = tinycolor(initial).toHexString();\n break;\n case \"hex\":\n initial = tinycolor(initial).toHexString();\n break;\n case \"array\":\n initial = tinycolor.fromRatio({r: initial[0], g: initial[1], b: initial[2]}).toHexString();\n break;\n default:\n break;\n }\n\n this.picker = new ColorPicker({\n el: icon,\n color: initial,\n background: theme.colors.componentBackground,\n width: 125,\n height: 100\n });\n\n css(this.picker.$el, {\n marginTop: theme.sizing.componentHeight,\n display: \"none\",\n position: \"absolute\"\n });\n\n css(icon, {\n position: \"relative\",\n display: \"inline-block\",\n width: \"12.5%\",\n height: theme.sizing.componentHeight,\n backgroundColor: this.picker.getHexString()\n });\n\n icon.onmouseout = () => {\n this.picker.$el.style.display = \"none\";\n };\n\n setTimeout(() => {\n this.emit(\"initialized\", initial);\n });\n\n this.picker.onChange((hex) => {\n value.value = this.Format(hex);\n css(icon, {backgroundColor: hex});\n this.emit(\"input\", this.Format(hex));\n });\n }\n\n Format(hex) {\n switch (this.opts.format) {\n case \"rgb\":\n return tinycolor(hex).toRgbString();\n case \"hex\":\n return tinycolor(hex).toHexString();\n case \"array\":\n var rgb = tinycolor(hex).toRgb();\n return [rgb.r / 255, rgb.g / 255, rgb.b / 255].map((x) => {\n return x.toFixed(2);\n });\n default:\n return hex;\n }\n }\n\n SetValue(value) {\n if (!this.picker.isChoosing) {\n this.picker.setColor(value);\n }\n }\n\n GetValue() {\n return this.Format(this.picker.getColor());\n }\n}\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./folder.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./folder.css\";\n export default content && content.locals ? content.locals : undefined;\n","import ComponentBase from \"../component-base.js\";\n\nimport \"./folder.css\";\n\nexport default class Folder extends ComponentBase {\n constructor (root, opts, theme) {\n super(root, opts, theme);\n\n this.container.classList.add(\"guify-folder\");\n this.container.setAttribute(\"role\", \"button\");\n this.container.setAttribute(\"tabIndex\", \"0\"); // Make tabbable\n // css(container, {\n // color: theme.colors.text1,\n // })\n\n this.arrow = this.container.appendChild(document.createElement(\"div\"));\n this.arrow.classList.add(\"guify-folder-arrow\");\n this.arrow.innerHTML = \"▾\";\n\n this.label = this.container.appendChild(document.createElement(\"div\"));\n this.label.classList.add(\"guify-folder-text\");\n this.label.innerHTML = opts.label;\n\n this.container.onclick = () => {\n this.Toggle();\n };\n\n // Defocus on mouse up (for non-accessibility users)\n this.container.addEventListener(\"mouseup\", () => {\n this.container.blur();\n });\n\n this.container.addEventListener(\"keydown\", (e) => {\n // Listen for Space or Enter\n if(e.which === 13 || e.which === 32) {\n this.Toggle();\n }\n });\n\n this.folderContainer = root.appendChild(document.createElement(\"div\"));\n this.folderContainer.classList.add(\"guify-folder-contents\");\n\n this.open = this.opts.open || false;\n this.SetOpen(this.open);\n\n }\n\n SetEnabled(enabled) {\n super.SetEnabled(enabled);\n // Disable everything in the folder\n if (enabled) {\n this.folderContainer?.classList.remove(\"disabled\");\n } else {\n this.folderContainer?.classList.add(\"disabled\");\n }\n }\n\n // Toggle visibility\n Toggle() {\n this.open = !this.open;\n this.SetOpen(this.open);\n }\n\n // Show or hide the contents\n SetOpen(show) {\n this.open = show;\n if(show) {\n this.folderContainer.classList.remove(\"guify-folder-closed\");\n this.arrow.innerHTML = \"▾\"; // Down triangle\n\n }\n else {\n this.folderContainer.classList.add(\"guify-folder-closed\");\n this.arrow.innerHTML = \"▸\"; // Right triangle\n }\n\n }\n}\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./file.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./file.css\";\n export default content && content.locals ? content.locals : undefined;\n","import ComponentBase from \"../component-base.js\";\nimport css from \"dom-css\";\n\nimport \"./file.css\";\n\n/**\n * File component. Drag and drop a file or click to choose a file.\n */\nexport default class File extends ComponentBase {\n constructor (root, opts, theme) {\n super(root, opts, theme);\n\n this.opts.fileReadFunc = this.opts.fileReadFunc || \"readAsDataURL\";\n\n this.file = null;\n this.fileName = null;\n\n this.container.classList.add(\"guify-file-container\");\n this.container.setAttribute(\"role\", \"button\");\n this.container.setAttribute(\"tabIndex\", \"0\"); // Make tabbable\n css(this.container, {\n width: \"100%\",\n \"box-sizing\": \"border-box\",\n \"-moz-box-sizing\": \"border-box\",\n \"-webkit-box-sizing\": \"border-box\",\n height: \"unset\", // Grow with content\n padding: \"8px\"\n });\n\n let label = this.container.appendChild(document.createElement(\"div\"));\n label.innerHTML = opts.label;\n css(label, \"padding-bottom\", \"5px\");\n\n this.input = this.container.appendChild(document.createElement(\"input\"));\n this.input.setAttribute(\"type\", \"file\");\n this.input.setAttribute(\"multiple\", false);\n this.input.style.display = \"none\";\n // Add ARIA attribute to input based on label text\n if(opts.label) this.input.setAttribute(\"aria-label\", opts.label);\n\n this.fileLabel = this.container.appendChild(document.createElement(\"div\"));\n this.fileLabel.innerHTML = \"Choose a file...\";\n //css(this.fileLabel, 'color', theme.colors.textSecondary);\n\n let FileDropped = (event) => {\n var files;\n if(event.dataTransfer) {\n files = event.dataTransfer.files;\n } else if(event.target) {\n files = event.target.files;\n }\n\n var reader = new FileReader();\n reader.onload = () => {\n this.file = reader.result;\n this.fileLabel.innerHTML = files[0].name;\n this.emit(\"input\", this.file);\n };\n\n reader[this.opts.fileReadFunc](files[0]);\n };\n\n this.input.addEventListener(\"change\", FileDropped);\n\n this.container.addEventListener(\"dragover\", (event) => {\n event.preventDefault();\n event.stopPropagation();\n this.container.classList.add(\"guify-dragover\");\n });\n\n this.container.addEventListener(\"dragleave\", (event) => {\n event.preventDefault();\n event.stopPropagation();\n this.container.classList.remove(\"guify-dragover\");\n });\n\n this.container.addEventListener(\"drop\", (event) => {\n event.preventDefault();\n event.stopPropagation();\n this.container.classList.remove(\"guify-dragover\");\n FileDropped(event);\n });\n\n this.container.onclick = () => {\n this.input.click();\n };\n\n this.container.addEventListener(\"keydown\", (e) => {\n // Listen for Space or Enter\n if(e.which === 13 || e.which === 32) {\n this.input.click();\n }\n });\n\n // Defocus on mouse up (for non-accessibility users)\n this.container.addEventListener(\"mouseup\", () => {\n this.container.blur();\n });\n\n }\n\n // eslint-disable-next-line no-unused-vars\n SetValue(value) {\n return;\n }\n\n GetValue() {\n return this.file;\n }\n\n}\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./display.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./display.css\";\n export default content && content.locals ? content.locals : undefined;\n","import ComponentBase from \"../component-base.js\";\n\nimport \"./display.css\";\n\nimport { default as LabelPartial } from \"../partials/label\";\n\n/**\n * Display component. Shows the state of a variable.\n */\nexport default class Display extends ComponentBase {\n constructor (root, opts, theme) {\n super(root, opts, theme);\n\n this.label = LabelPartial(this.container, opts.label, theme);\n\n this.text = this.container.appendChild(document.createElement(\"div\"));\n this.text.classList.add(\"guify-display\");\n\n // Add ARIA attribute to text based on label text\n if(opts.label) this.text.setAttribute(\"aria-label\", opts.label);\n }\n\n SetValue(value) {\n this.text.innerHTML = value.toString();\n }\n\n GetValue() {\n return this.text.innerHTML.toString();\n }\n}\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./interval.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./interval.css\";\n export default content && content.locals ? content.locals : undefined;\n","import ComponentBase from \"../component-base.js\";\n\nimport css from \"dom-css\";\nimport isnumeric from \"is-numeric\";\n\nimport \"./interval.css\";\n\nimport { default as LabelPartial } from \"../partials/label\";\nimport { default as ValuePartial } from \"../partials/value\";\n\nimport { lerp } from \"../../utils/math-utils\";\n\nfunction clamp(x, min, max)\n{\n return Math.min(Math.max(x, min), max);\n}\n\nexport default class Interval extends ComponentBase {\n constructor (root, opts, theme) {\n super(root, opts, theme);\n\n this.label = LabelPartial(this.container, opts.label, theme);\n\n if (!!opts.step && !!opts.steps) {\n throw new Error(\"Cannot specify both step and steps. Got step = \" + opts.step + \", steps = \", opts.steps);\n }\n\n this.input = this.container.appendChild(document.createElement(\"span\"));\n this.input.classList.add(\"guify-interval\");\n\n this.handle = document.createElement(\"span\");\n this.handle.classList.add(\"guify-interval-handle\");\n this.input.appendChild(this.handle);\n\n\n if (!Array.isArray(opts.initial))\n {\n opts.initial = [];\n }\n\n this.scale = opts.scale;\n\n // Get initial value:\n if( opts.scale === \"log\" )\n {\n // If logarithmic, we're going to set the slider to a known linear range. Then we'll\n // map that linear range to the user-set range using a log scale.\n\n // Check if all signs are valid\n if (opts.min * opts.max <= 0) {\n throw new Error(\"Log range min/max must have the same sign and not equal zero. Got min = \" + opts.min + \", max = \" + opts.max);\n }\n\n // Step is invalid for log scale slider\n if (isnumeric(opts.step)) {\n console.warn(\"Step is unused for log scale sliders.\");\n }\n\n // Warn that `steps` was removed\n if (isnumeric(opts.steps)) {\n console.warn(\"\\\"steps\\\" option for log scale sliders has been removed.\");\n }\n\n // Min/max are forced to a known range, and log value will be derived from slider position within.\n this.minPos = 0;\n this.maxPos = 1000000;\n\n this.min = Math.log( (isnumeric(opts.min)) ? opts.min : 0.000001 ); // This cannot be 0\n this.max = Math.log( (isnumeric(opts.max)) ? opts.max : 100 );\n\n this.precision = (isnumeric(opts.precision)) ? opts.precision : 3;\n this.logScale = (this.max - this.min) / (this.maxPos - this.minPos);\n\n this.initial = [\n isnumeric(opts.initial[0]) ? opts.initial[0] : this.min,\n isnumeric(opts.initial[1]) ? opts.initial[1] : this.max,\n ];\n }\n else\n {\n // If linear, this is much simpler. Pos and value can directly match.\n this.minPos = (isnumeric(opts.min)) ? opts.min : 0;\n this.maxPos = (isnumeric(opts.max)) ? opts.max : 100;\n this.min = this.minPos;\n this.max = this.maxPos;\n\n this.precision = (isnumeric(opts.precision)) ? opts.precision : 3;\n this.step = (isnumeric(opts.step)) ? opts.step : (10 / Math.pow(10, 3)); // Default is the lowest possible number given the precision. When precision = 3, step = 0.01.\n\n this.initial = [\n isnumeric(opts.initial[0]) ? opts.initial[0] : this.min,\n isnumeric(opts.initial[1]) ? opts.initial[1] : this.max,\n ];\n\n // Quantize the initial value to the nearest step:\n if (this.step != 0) {\n this.initial = this.initial.map((value) => {\n return this.min + this.step * Math.round((value - this.min) / this.step);\n });\n }\n }\n\n this.value = opts.initial;\n\n // Set handle positions from value\n this._RefreshHandles();\n\n // Display the values:\n this.lValue = ValuePartial(this.container, this.value[0], theme, \"11%\", true);\n this.rValue = ValuePartial(this.container, this.value[1], theme, \"11%\", false);\n\n // Add ARIA attribute to input based on label text\n if(opts.label) this.lValue.setAttribute(\"aria-label\", opts.label + \" lower value\");\n if(opts.label) this.lValue.setAttribute(\"aria-label\", opts.label + \" upper value\");\n\n // An index to track what's being dragged:\n this.activeIndex = -1;\n\n setTimeout(() => {\n this.emit(\"initialized\", this.value);\n });\n\n // // Gain focus\n // this.input.addEventListener(\"focus\", () => {\n // this.focused = true;\n // });\n\n // // Lose focus\n // this.input.addEventListener(\"blur\", () => {\n // this.focused = false;\n // });\n\n let mouseX = (ev) =>\n {\n // Get mouse position in page coords relative to the container:\n return ev.pageX - this.input.getBoundingClientRect().left;\n };\n\n let mouseMoveListener = ( ev ) =>\n {\n let fraction = clamp(mouseX(ev) / this.input.offsetWidth, 0, 1);\n\n this._SetFromMousePosition(fraction);\n };\n\n let mouseUpListener = ( ev ) =>\n {\n let fraction = clamp(mouseX(ev) / this.input.offsetWidth, 0, 1);\n\n this._SetFromMousePosition(fraction);\n\n document.removeEventListener(\"mousemove\", mouseMoveListener);\n document.removeEventListener(\"mouseup\", mouseUpListener);\n\n this.activeIndex = -1;\n };\n\n this.input.addEventListener(\"mousedown\", (ev) =>\n {\n // Get mouse position fraction:\n let fraction = clamp(mouseX(ev) / this.input.offsetWidth, 0, 1);\n\n let posForLeftValue = this._Position(this.value[0]);\n let posForRightValue = this._Position(this.value[1]);\n\n // Get the current fraction of position --> [0, 1]:\n let lofrac = (posForLeftValue - this.minPos) / (this.maxPos - this.minPos);\n let hifrac = (posForRightValue - this.minPos) / (this.maxPos - this.minPos);\n\n // This is just for making decisions, so perturb it ever\n // so slightly just in case the bounds are numerically equal:\n lofrac -= Math.abs(this.maxPos - this.minPos) * 1e-15;\n hifrac += Math.abs(this.maxPos - this.minPos) * 1e-15;\n\n // Figure out which is closer:\n let lodiff = Math.abs(lofrac - fraction);\n let hidiff = Math.abs(hifrac - fraction);\n\n this.activeIndex = lodiff < hidiff ? 0 : 1;\n\n console.log(this.activeIndex);\n\n // Attach this to *document* so that we can still drag if the mouse\n // passes outside the container:\n document.addEventListener(\"mousemove\", mouseMoveListener);\n document.addEventListener(\"mouseup\", mouseUpListener);\n });\n\n // Defocus on mouse up (for non-accessibility users)\n this.input.addEventListener(\"mouseup\", () => {\n this.input.blur();\n });\n\n this.input.oninput = () => {\n // let position = parseFloat(data.target.value);\n // var scaledValue = this._Value(position);\n // this.valueComponent.value = this._FormatNumber(scaledValue, this.precision);\n this.lValue.value = this.value[0];\n this.rValue.value = this.value[1];\n this.emit(\"input\", this.value);\n };\n\n // Handle lower bound input box changes\n this.lValue.onchange = () => {\n let rawValue = this.lValue.value;\n let otherValue = parseFloat(this.rValue.value);\n if (Number(parseFloat(rawValue)) == rawValue) {\n // Input number is valid\n var value = parseFloat(rawValue);\n // Clamp to input range\n value = Math.min(Math.max(value, this.min), this.max);\n // Map to nearest step\n if (this.step) {\n value = Math.ceil((value - this.min) / this.step ) * this.step + this.min;\n }\n // Prevent value from going beyond interval upper value\n value = Math.min(value, otherValue);\n\n this.lValue.value = value;\n this.value = [value, otherValue];\n this.emit(\"input\", [value, otherValue]);\n this._RefreshHandles([value, otherValue]);\n } else {\n // Input number is invalid\n // Go back to before input change\n this.lValue.value = this.lastValue[0];\n }\n };\n\n // Handle upper bound input box changes\n this.rValue.onchange = () => {\n let rawValue = this.rValue.value;\n let otherValue = parseFloat(this.lValue.value);\n if (Number(parseFloat(rawValue)) == rawValue) {\n // Input number is valid\n var value = parseFloat(rawValue);\n // Clamp to input range\n value = Math.min(Math.max(value, this.min), this.max);\n // Map to nearest step\n if (this.step) {\n value = Math.ceil((value - this.min) / this.step ) * this.step + this.min;\n }\n // Prevent value from going below interval lower value\n value = Math.max(value, otherValue);\n\n this.rValue.value = value;\n this.value = [otherValue, value];\n this.emit(\"input\", [otherValue, value]);\n this._RefreshHandles();\n } else {\n // Input number is invalid\n // Go back to before input change\n this.rValue.value = this.lastValue[1];\n }\n };\n }\n\n /**\n * Calculate value from slider position\n */\n _Value(position) {\n if (this.scale === \"log\") {\n // Map from slider position range to log value range\n\n // Map from slider range to min-max value range\n let rangePos = (position - this.minPos) * this.logScale + this.min;\n // Now convert to log space\n return Math.exp(rangePos);\n } else {\n // Position and value are equivalent\n return position;\n }\n }\n\n /**\n * Calculate slider position from value\n */\n _Position(value) {\n if (this.scale === \"log\") {\n // Map from log value range to the slider's position range\n return this.minPos + (Math.log(value) - this.min) / this.logScale;\n } else {\n // Value and position are equivalent\n return value;\n }\n }\n\n /**\n * Updates the current value given a mouse X position normalized from 0 to 1.\n */\n _SetFromMousePosition( fraction )\n {\n if (this.activeIndex === -1) {\n return;\n }\n\n // Clip against the other bound:\n if (this.activeIndex === 0) {\n // Get the right side in position-space [0, 1]:\n let hifrac = (this._Position(this.value[1]) - this.minPos) / (this.maxPos - this.minPos);\n // Prevent fraction from exceeding right-side position\n fraction = Math.min(hifrac, fraction);\n } else {\n // Get the right side in position-space [0, 1]:\n let lofrac = (this._Position(this.value[0]) - this.minPos) / (this.maxPos - this.minPos);\n // Prevent fraction from going below left-side position\n fraction = Math.max(lofrac, fraction);\n }\n\n // Map from 0-1 scale to position-scale\n let position = lerp(this.minPos, this.maxPos, fraction);\n // Map from position-scale to value-scale and assign to values\n var newValue = this._Value(position);\n\n // Quantize the value\n if (this.step) {\n newValue = this.min + this.step * Math.round((newValue - this.min) / this.step);\n }\n\n this.value[this.activeIndex] = newValue;\n\n // Update and send the event:\n this._RefreshHandles();\n this.input.oninput();\n }\n\n SetValue( value )\n {\n if(this.focused !== true)\n {\n this.lValue.value = this._FormatNumber(value[0], this.precision);\n this.rValue.value = this._FormatNumber(value[1], this.precision);\n\n this.lastValue = [ this.lValue.value, this.rValue.value ];\n }\n }\n\n // Formats the number for display.\n // `opts.precision` lets you customize how many decimal places you want here.\n // The default is 3.\n _FormatNumber(value, precision) {\n // https://stackoverflow.com/a/29249277\n return value.toFixed(precision).replace(/\\.?0*$/,\"\");\n }\n\n GetValue() {\n return [ this.lValue.value, this.rValue.value ];\n }\n\n _RefreshHandles() {\n let leftPercent = ((this._Position(this.value[0]) - this.minPos) / (this.maxPos - this.minPos)) * 100;\n let rightPercent = 100 - (((this._Position(this.value[1]) - this.minPos) / (this.maxPos - this.minPos)) * 100);\n css(this.handle, {\n left: `${leftPercent}%`,\n right: `${rightPercent}%`,\n });\n }\n}\n","\n/**\n * Linearly interpolates `t` between `v0` and `v1`.\n * https://en.wikipedia.org/wiki/Linear_interpolation\n * @param {*} v0 Lower bound\n * @param {*} v1 Upper bound\n * @param {*} t Progress (value between 0 and 1)\n * @returns Mapped number\n */\nfunction lerp(v0, v1, t) {\n return (1 - t) * v0 + t * v1;\n}\n\nexport { lerp };","import { default as TitleComponent } from \"./components/public/title\";\nimport { default as RangeComponent } from \"./components/public/range\";\nimport { default as ButtonComponent } from \"./components/public/button\";\nimport { default as CheckboxComponent } from \"./components/public/checkbox\";\nimport { default as SelectComponent } from \"./components/public/select\";\nimport { default as TextComponent } from \"./components/public/text\";\nimport { default as ColorComponent } from \"./components/public/color\";\nimport { default as FolderComponent } from \"./components/public/folder\";\nimport { default as FileComponent } from \"./components/public/file\";\nimport { default as DisplayComponent } from \"./components/public/display\";\nimport { default as IntervalComponent } from \"./components/public/interval\";\n\n/**\n * Manages the loading and instantiation of Components.\n */\nexport class ComponentManager {\n constructor(theme) {\n this.theme = theme;\n this.components = {\n \"title\": TitleComponent,\n \"range\": RangeComponent,\n \"button\": ButtonComponent,\n \"checkbox\": CheckboxComponent,\n \"select\": SelectComponent,\n \"text\": TextComponent,\n \"color\": ColorComponent,\n \"folder\": FolderComponent,\n \"file\": FileComponent,\n \"display\": DisplayComponent,\n \"interval\": IntervalComponent,\n };\n\n }\n\n /**\n * Creates the component specified by `opts` and appends it to the\n * document as a child of `root`.\n *\n * @param {HTMLElement} [root] Parent of the created component\n * @param {Object} [opts] Options used to create the component\n */\n Create(root, opts) {\n let initializer = this.components[opts.type];\n if(initializer === undefined) {\n throw new Error(`No component type named '${opts.type}' exists.`);\n }\n\n let newComponent = new initializer(root, opts, this.theme);\n\n return newComponent;\n }\n\n\n\n}\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./menu-bar.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./menu-bar.css\";\n export default content && content.locals ? content.locals : undefined;\n","import ComponentBase from \"../component-base.js\";\n\nimport css from \"dom-css\";\nimport screenfull from \"screenfull\";\n\nimport \"./menu-bar.css\";\n\nexport class MenuBar extends ComponentBase {\n constructor(root, opts, theme) {\n super(root, opts, theme, false);\n\n // Create menu bar\n this.element = document.createElement(\"div\");\n this.element.classList.add(\"guify-bar\");\n root.appendChild(this.element);\n\n if (opts.title) {\n // Create a text label inside of the bar\n let text = this.element.appendChild(document.createElement(\"div\"));\n text.classList.add(\"guify-bar-title\");\n text.innerHTML = opts.title;\n this.label = text;\n }\n\n // Make the menu collapse button\n let menuButton = this.element.appendChild(document.createElement(\"button\"));\n menuButton.classList.add(\"guify-bar-button\");\n menuButton.innerHTML = \"Controls\";\n css(menuButton, {\n left: opts.align == \"left\" ? \"0\" : \"unset\",\n right: opts.align == \"left\" ? \"unset\" : \"0\",\n });\n menuButton.onclick = () => {\n this.emit(\"ontogglepanel\");\n };\n\n // Make the fullscreen button\n if (screenfull.isEnabled) {\n let fullscreenButton = this.element.appendChild(document.createElement(\"button\"));\n fullscreenButton.classList.add(\"guify-bar-button\");\n fullscreenButton.innerHTML = \"「 」\";\n fullscreenButton.setAttribute(\"aria-label\", \"Toggle Fullscreen\");\n css(fullscreenButton, {\n left: opts.align == \"left\" ? \"unset\" : \"0\", // Place on opposite side from menuButton\n right: opts.align == \"left\" ? \"0\" : \"unset\",\n });\n fullscreenButton.onclick = () => {\n this.emit(\"onfullscreenrequested\");\n };\n }\n\n }\n\n SetVisible(show) {\n this.element.style.display = show ? \"block\" : \"none\";\n }\n\n}\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./panel.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./panel.css\";\n export default content && content.locals ? content.locals : undefined;\n","import ComponentBase from \"../component-base.js\";\n\nimport css from \"dom-css\";\n\nimport \"./panel.css\";\n\nexport class Panel extends ComponentBase {\n constructor(root, opts, theme) {\n super(root, opts, theme, false);\n\n // Container the panel will sit in\n this.container = root.appendChild(document.createElement(\"div\"));\n this.container.classList.add(\"guify-panel-container\");\n css(this.container, {\n width: opts.width,\n opacity: opts.opacity || 1.0,\n left: opts.align == \"left\" ? \"0\" : \"unset\",\n right: opts.align == \"left\" ? \"unset\" : \"0\",\n });\n\n if(opts.panelMode == \"outer\") {\n css(this.container, {\n left: opts.align == \"left\" ? \"unset\" : \"100%\",\n right: opts.align == \"left\" ? \"100%\" : \"unset\",\n });\n }\n\n if(opts.barMode === \"none\") {\n this._MakeToggleButton();\n }\n\n // Create panel inside container\n this.panel = this.container.appendChild(document.createElement(\"div\"));\n this.panel.classList.add(\"guify-panel\");\n\n // Add a title to the panel\n if(opts.barMode === \"none\" && opts.title)\n require(\"../partials/header\")(this.panel, opts.title, theme);\n\n }\n\n /**\n * Makes the panel visible based on the truthiness of `show`.\n * @param {Bool} [show]\n */\n SetVisible(show) {\n if(show){\n // this.panel.style.height = Array.prototype.reduce.call(this.panel.childNodes, function(p, c) {return p + (c.offsetHeight || 0) + 5 + 1;}, 0) + 'px';\n // this.panel.style.paddingTop = '14px';\n // this.panel.style.paddingBottom = '8px';\n this.panel.classList.remove(\"guify-panel-hidden\");\n\n if(this.menuButton) this.menuButton.setAttribute(\"alt\", \"Close GUI\");\n\n }\n else {\n // this.panel.style.height = '0px';\n // this.panel.style.paddingTop = '0px';\n // this.panel.style.paddingBottom = '0px';\n this.panel.classList.add(\"guify-panel-hidden\");\n\n if(this.menuButton) this.menuButton.setAttribute(\"alt\", \"Open GUI\");\n\n }\n }\n\n /**\n * Toggles the visibility of the panel.\n */\n ToggleVisible() {\n if (this.panel.classList.contains(\"guify-panel-hidden\"))\n this.SetVisible(true);\n else\n this.SetVisible(false);\n }\n\n /**\n * Makes a show/hide button that sits at the bottom of the panel.\n */\n _MakeToggleButton() {\n // Make the menu collapse button\n this.menuButton = this.container.appendChild(document.createElement(\"button\"));\n this.menuButton.className = \"guify-panel-toggle-button\";\n css(this.menuButton, {\n left: this.opts.align == \"left\" ? \"0px\" : \"unset\",\n right: this.opts.align == \"left\" ? \"unset\" : \"0px\",\n });\n\n this.menuButton.onclick = () => {\n this.ToggleVisible();\n };\n\n // Defocus on mouse up (for non-accessibility users)\n this.menuButton.addEventListener(\"mouseup\", () => {\n this.menuButton.blur();\n });\n\n this.menuButton.innerHTML = `\n \n \n \n `;\n }\n\n}\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./toast-area.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./toast-area.css\";\n export default content && content.locals ? content.locals : undefined;\n","import ComponentBase from \"../component-base.js\";\n\nimport css from \"dom-css\";\n\nimport \"./toast-area.css\";\n\n/**\n * Represents a container div that creates and holds toast notifications.\n */\nexport class ToastArea extends ComponentBase {\n constructor(root, opts, theme) {\n super(root, opts, theme, false);\n\n // Make toast area\n this.element = root.appendChild(document.createElement(\"div\"));\n this.element.classList.add(\"guify-toast-area\");\n css(this.element, {\n position: \"absolute\",\n \"width\": \"100%\",\n });\n }\n\n /**\n * Makes a message that appears under the menu bar. Transitions out\n * over `transitionMS` milliseconds after `stayMS` milliseconds have passed.\n */\n CreateToast(message, stayMS = 5000, transitionMS = 0) {\n console.log(\"[Toast] \" + message);\n\n let toast = this.element.appendChild(document.createElement(\"div\"));\n toast.classList.add(\"guify-toast-notification\");\n toast.setAttribute(\"aria-live\", \"polite\");\n\n toast.innerHTML = message;\n\n css(toast, {\n // Animation stuff\n // '-webkit-transition': 'opacity ' + transitionMS + 'ms linear',\n // 'transition': 'opacity ' + transitionMS + 'ms linear',\n });\n\n // Make close button in toast\n let closeButton = toast.appendChild(document.createElement(\"button\"));\n closeButton.innerHTML = \"✖\";\n closeButton.classList.add(\"guify-toast-close-button\");\n\n let timeout;\n\n let TransitionOut = () => {\n toast.blur();\n css(toast, {\n //'transform-style': 'flat',\n //'transform-style': 'preserve-3d',\n\n // Slide up\n // '-webkit-transition': '-webkit-transform ' + transitionMS + 'ms linear',\n // 'transition': 'transform ' + transitionMS + 'ms linear',\n // '-webkit-transform': 'translate3d(0, -100%, 0)',\n // 'transform:': 'translate3d(0, -100%, 0)',\n\n // Fade out\n //'-webkit-transition': '-webkit-opacity ' + transitionMS + 'ms linear',\n //'transition': 'opacity ' + transitionMS + 'ms linear',\n \"opacity\": \"0\",\n });\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n if(toast)\n toast.parentNode.removeChild(toast);\n }, transitionMS);\n };\n\n timeout = setTimeout(TransitionOut, stayMS);\n\n closeButton.onclick = TransitionOut;\n }\n\n}\n","import css from \"dom-css\";\n\nimport { default as Theme } from \"./theme\";\n\nimport \"./components/internal/container.css\";\n\nimport { ComponentManager } from \"./component-manager\";\n\nimport { MenuBar } from \"./components/internal/menu-bar\";\nimport { Panel } from \"./components/internal/panel\";\nimport { ToastArea } from \"./components/internal/toast-area\";\nimport screenfull from \"screenfull\";\n\nexport default class GUI {\n constructor(opts) {\n this.opts = opts;\n\n this.hasRoot = opts.root !== undefined;\n\n opts.width = opts.width || 300;\n opts.root = opts.root || document.body;\n opts.align = opts.align || \"left\"; // Can be 'left' or 'right'\n opts.opacity = opts.opacity || 1.0;\n opts.barMode = opts.barMode || \"offset\"; // Can be 'none', 'above', 'offset', or 'overlay'\n opts.panelMode = opts.panelMode || \"inner\";\n opts.pollRateMS = opts.pollRateMS || 100;\n opts.open = opts.open || false;\n\n // Set theme from opts\n let themeName = opts.theme || \"dark\";\n this.theme = new Theme(themeName);\n this.theme.Apply();\n\n this._ConstructElements();\n this._LoadStyles();\n\n this.componentManager = new ComponentManager(this.theme);\n\n this.loadedComponents = [];\n\n // Begin component update loop\n this._UpdateComponents();\n\n }\n\n /**\n * Load any runtime styling information needed here.\n */\n _LoadStyles() {\n // Loads a font and appends it to the head\n let AppendFont = (href) => {\n var elem = document.createElement(\"style\");\n elem.setAttribute(\"type\", \"text/css\");\n elem.setAttribute(\"rel\", \"stylesheet\");\n elem.setAttribute(\"href\", href);\n document.getElementsByTagName(\"head\")[0].appendChild(elem);\n };\n // Load the fonts we'll be using\n // Mono font\n AppendFont(\"//cdn.jsdelivr.net/font-hack/2.019/css/hack.min.css\");\n // Theme font\n if(this.theme.font) {\n // Set default font to theme font\n if(this.theme.font.fontURL) AppendFont(this.theme.font.fontURL);\n if(this.theme.font.fontFamily) css(this.container, \"font-family\", this.theme.font.fontFamily);\n if(this.theme.font.fontSize) css(this.container, \"font-size\", this.theme.font.fontSize);\n if(this.theme.font.fontWeight) css(this.container, \"font-weight\", this.theme.font.fontWeight);\n } else {\n css(this.container, \"font-family\", \"'Hack', monospace\");\n }\n }\n\n /**\n * Create container, MenuBar, Panel, and ToastArea\n */\n _ConstructElements() {\n // Create the container that all the other elements will be contained within\n this.container = document.createElement(\"div\");\n this.container.classList.add(\"guify-container\");\n\n let containerCSS = {};\n\n // Position the container relative to the root based on `opts`\n if(this.opts.barMode == \"overlay\" || this.opts.barMode == \"above\" || this.opts.barMode == \"none\"){\n containerCSS.position = \"absolute\";\n }\n if(this.hasRoot && this.opts.barMode == \"above\"){\n containerCSS.top = `-${this.theme.sizing.menuBarHeight}`;\n }\n css(this.container, containerCSS);\n\n // Insert the container into the root as the first element\n this.opts.root.insertBefore(this.container, this.opts.root.childNodes[0]);\n\n // Create a menu bar if specified in `opts`\n if(this.opts.barMode !== \"none\") {\n this.bar = new MenuBar(this.container, this.opts, this.theme);\n this.bar.addListener(\"ontogglepanel\", () => {\n this.panel.ToggleVisible();\n });\n this.bar.addListener(\"onfullscreenrequested\", () => {\n this.ToggleFullscreen();\n });\n }\n\n // Create panel\n this.panel = new Panel(this.container, this.opts, this.theme);\n\n // Show the panel by default if there's no menu bar or it's requested\n if(this.opts.barMode === \"none\" || this.opts.open === true) {\n this.panel.SetVisible(true);\n } else {\n // Otherwise hide it by default\n this.panel.SetVisible(false);\n }\n\n // Create toast area\n this.toaster = new ToastArea(this.container, this.opts, this.theme);\n\n }\n\n /**\n * Polling loop that allows our components to update themselves.\n * You can set the frequency of this using `this.opts.pollRateMS`.\n */\n _UpdateComponents() {\n this.loadedComponents.forEach((component) => {\n if(component.binding) {\n // Update the component from its bound value if the value has changed\n if(component.binding.object[component.binding.property] != component.oldValue) {\n component.SetValue(component.binding.object[component.binding.property]);\n component.oldValue = component.binding.object[component.binding.property];\n }\n }\n });\n\n setTimeout(() => {\n window.requestAnimationFrame(() => {\n this._UpdateComponents();\n });\n }, this.opts.pollRateMS);\n\n }\n\n\n /**\n * Creates a new component in the panel based on the provided options.\n * @param {*} [obj] Either an opts object or an array of opts objects\n * @param {Object} [applyToAll] Each property of this object will be applied to all opts objects\n */\n Register(obj, applyToAll = {}) {\n if (Array.isArray(obj)) {\n obj.forEach((item) => {\n let merged = Object.assign(item, applyToAll);\n this._Register(merged);\n });\n }\n else {\n let merged = Object.assign(obj, applyToAll);\n return this._Register(merged);\n }\n }\n\n Remove(obj) {\n obj.Remove();\n this.loadedComponents = this.loadedComponents.filter((item) => {\n return item !== obj;\n });\n }\n\n /**\n * Creates new component in the panel based on the options provided.\n *\n * @param {Object} [opts] Options for the component\n */\n _Register(opts) {\n\n if (opts.object && opts.property)\n if (opts.object[opts.property] === undefined)\n throw new Error(`Object ${opts.object} has no property '${opts.property}'`);\n\n // Set opts properties from the input\n if(opts.object && opts.property) {\n opts.initial = opts.object[opts.property];\n // If no label is specified, generate it from property name\n //opts.label = opts.label || property;\n }\n\n let root = this.panel.panel;\n\n // If a folder was specified, try to find a folder component with that name\n // and get its folderContainer.\n if(opts.folder) {\n let folderComp = this.loadedComponents.find((cmp) => {\n return cmp === opts.folder || (cmp.opts.type === \"folder\" && cmp.opts.label === opts.folder);\n });\n\n if(folderComp) root = folderComp.folderContainer;\n else throw new Error(`No folder exists with the name ${opts.folder}`);\n }\n\n let component = this.componentManager.Create(root, opts);\n\n // Add binding properties if specified\n if(opts.object && opts.property) {\n component[\"binding\"] = { object: opts.object, property: opts.property };\n }\n\n // If the component has events, add listeners for those events.\n if(component.on) {\n component.on(\"initialized\", function (data) {\n if(opts.onInitialize)\n opts.onInitialize(data);\n });\n\n component.on(\"input\", (data) => {\n if(opts.object && opts.property)\n opts.object[opts.property] = data;\n\n if(opts.onChange) {\n opts.onChange(data);\n }\n });\n }\n\n this.loadedComponents.push(component);\n\n return component;\n\n\n }\n\n /**\n * Displays a toast notification under the MenuBar at the top of the root.\n *\n * @param {String} [message] The string you want displayed in the notification.\n * @param {Integer} [stayMS] The number of milliseconds to display the notification for\n * @param {Integer} [transitionMS] The number of milliseconds it takes for the notification to transition into disappearing\n */\n Toast(message, stayMS = 5000, transitionMS = 0) {\n this.toaster.CreateToast(message, stayMS, transitionMS);\n }\n\n\n ToggleFullscreen() {\n let isFullscreen = screenfull.isFullscreen;\n if (isFullscreen) {\n screenfull.exit();\n } else {\n console.log(\"Request fullscreen\");\n screenfull.request(this.opts.root);\n }\n }\n\n // Just for debugging.\n _SetAllEnabled(enabled) {\n this.loadedComponents.forEach((item) => {\n item.SetEnabled(enabled);\n });\n }\n\n}\n","// Export GUI class as 'guify'.\n// Make sure Webpack is assigning the export to the global scope (don't set library.name)\nimport { default as gui } from \"./gui.js\";\nlet guify = gui;\nexport { guify };"],"names":["root","factory","exports","module","define","amd","a","i","self","IS_UNITLESS","animationIterationCount","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridColumn","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","stopOpacity","strokeDashoffset","strokeOpacity","strokeWidth","name","value","text","theme","title","appendChild","document","createElement","innerHTML","css","width","textAlign","color","colors","textSecondary","height","marginBottom","light","menuBarBackground","menuBarText","panelBackground","componentBackground","componentBackgroundHover","componentBackgroundDisabled","componentForeground","componentActive","textPrimary","textHover","textActive","textDisabled","dark","yorha","font","fontFamily","fontSize","___CSS_LOADER_EXPORT___","push","id","cssWithMappingToString","list","toString","this","map","item","content","needLayer","concat","length","join","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","_k","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","data","sourceMapping","sourceURLs","sources","source","sourceRoot","prefix","toCamelCase","cache","addPxToStyle","style","element","property","camel","cssProp","result","detect","each","properties","hasOwnProperty","set","arguments","cssText","get","Array","isArray","reduce","obj","prop","containers","styleElements","insertCss","options","Error","styleElement","position","prepend","container","querySelector","containerId","indexOf","setAttribute","createStyleElement","insertBefore","childNodes","charCodeAt","substr","styleSheet","textContent","isNumeric","v","isNaN","trim","div","prefixes","titleCase","charAt","toUpperCase","slice","window","isCommonjs","fn","val","fnMap","l","ret","eventNameMap","change","fullscreenchange","error","fullscreenerror","screenfull","request","Promise","resolve","reject","onFullScreenEntered","off","bind","on","documentElement","requestFullscreen","catch","exit","isFullscreen","onFullScreenExit","exitFullscreen","toggle","onchange","callback","onerror","event","eventName","addEventListener","removeEventListener","raw","Object","defineProperties","Boolean","fullscreenElement","enumerable","isEnabled","fullscreenEnabled","stylesInDOM","getIndexByIdentifier","identifier","modulesToDom","idCountMap","identifiers","base","count","indexByIdentifier","sourceMap","references","updater","addElementStyle","byIndex","splice","api","domAPI","update","newObj","remove","lastIdentifiers","newList","index","newLastIdentifiers","_i","_index","memo","insert","target","styleTarget","HTMLIFrameElement","contentDocument","head","e","getTarget","setAttributes","attributes","nonce","insertStyleElement","styleTagTransform","apply","parentNode","removeChild","removeStyleElement","firstChild","createTextNode","Math","trimLeft","trimRight","tinyCounter","mathRound","round","mathMin","min","mathMax","max","mathRandom","random","tinycolor","opts","rgb","r","g","b","s","ok","format","replace","toLowerCase","match","named","names","matchers","exec","rgba","hsl","h","hsla","hsv","hsva","hex8","parseIntFromHex","convertHexToDecimal","hex6","hex4","hex3","stringInputToObject","isValidCSSUnit","bound01","String","convertToPercentage","floor","f","p","q","t","mod","hsvToRgb","hue2rgb","hslToRgb","boundAlpha","inputToRGB","_originalInput","_r","_g","_b","_a","_roundA","_format","_gradientType","gradientType","_ok","_tc_id","rgbToHsl","d","rgbToHsv","rgbToHex","allow3Char","hex","pad2","rgbaToArgbHex","convertDecimalToHex","desaturate","amount","toHsl","clamp01","saturate","greyscale","lighten","brighten","toRgb","darken","spin","hue","complement","triad","tetrad","splitcomplement","analogous","results","slices","part","monochromatic","toHsv","modification","prototype","isDark","getBrightness","isLight","isValid","getOriginalInput","getFormat","getAlpha","getLuminance","RsRGB","GsRGB","BsRGB","pow","setAlpha","toHsvString","toHslString","toHex","toHexString","toHex8","allow4Char","rgbaToHex","toHex8String","toRgbString","toPercentageRgb","toPercentageRgbString","toName","hexNames","toFilter","secondColor","hex8String","secondHex8String","formatSet","formattedString","hasAlpha","clone","_applyModification","args","call","_applyCombination","fromRatio","newColor","equals","color1","color2","mix","rgb1","rgb2","readability","c1","c2","isReadable","wcag2","wcag2Parms","out","parms","level","size","mostReadable","baseColor","colorList","includeFallbackColors","bestColor","bestScore","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","o","flipped","flip","parseFloat","n","isOnePointZero","processPercent","isPercentage","parseInt","abs","c","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","RegExp","space","string","matches","letter","hasSpace","test","hasSeparator","separatorSplitter","m","next","unseparate","hasCamel","camelSplitter","previous","uppers","split","uncamelize","clean","v1","v4","uuid","byteToHex","buf","offset","bth","getRandomValues","crypto","msCrypto","rnds8","Uint8Array","rnds","_nodeId","_clockseq","rng","bytesToUuid","_lastMSecs","_lastNSecs","node","clockseq","seedBytes","msecs","Date","getTime","nsecs","dt","tl","tmh","ii","EventEmitter","proto","originalGlobalValue","indexOfListener","listeners","listener","alias","isValidListener","getListeners","evt","response","key","events","_getEvents","flattenListeners","flatListeners","getListenersAsObject","addListener","TypeError","listenerIsWrapped","once","addOnceListener","defineEvent","defineEvents","evts","removeListener","addListeners","manipulateListeners","removeListeners","single","multiple","removeEvent","type","_events","removeAllListeners","emitEvent","listenersMap","_getOnceReturnValue","trigger","emit","setOnceReturnValue","_onceReturnValue","noConflict","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","__esModule","definition","defineProperty","Symbol","toStringTag","Theme","themeName","themes","console","assign","baseTheme","log","setProperty","sizing","menuBarHeight","componentHeight","componentSpacing","labelWidth","label","classList","add","ComponentBase","makeContainer","uuidv4","ContainerPartial","SetEnabled","enabled","Title","background","left","input","Range","scale","LabelPartial","isnumeric","step","warn","steps","minPos","maxPos","precision","logScale","initial","initialStep","valueComponent","ValuePartial","_Position","setTimeout","userIsModifying","focused","blur","oninput","scaledValue","_Value","_FormatNumber","rawValue","Number","_ValidatedInputValue","lastValue","rangePos","exp","newValue","ceil","validated","toFixed","Button","button","action","Checkbox","checked","htmlFor","Select","downTriangle","upTriangle","option","el","keys","selected","StyleFocus","StyleUnfocus","Text","listenMode","includes","configurable","writable","touches","x","clientX","y","clientY","_rgba","_hsva","fromHex","_hexNumber","_hexString","u","_updateBrightness","fromHsv","_brightness","_isDark","_isLight","_widthUnits","_heightUnits","_huePosition","_hueHeight","_maxHue","_inputIsNumber","_saturationWidth","_isChoosing","_callbacks","backgroundColor","hueColor","_onSaturationMouseDown","$saturation","getBoundingClientRect","_moveSelectorTo","top","_updateColorFromPosition","_window","_onSaturationMouseUp","_onSaturationMouseMove","preventDefault","_onHueMouseDown","$hue","_moveHueTo","_updateHueFromPosition","_onHueMouseUp","_onHueMouseMove","_document","$el","className","$sbSelector","$hSelector","appendTo","setBackgroundColor","widthUnits","heightUnits","setSize","setColor","_updateHue","padding","hexString","setNoBackground","onChange","getHexString","getColor","getHexNumber","getRGB","getHSV","transform","_updateColor","borderColor","_triggerChange","forEach","Color","icon","onmouseover","picker","display","ColorPicker","marginTop","onmouseout","Format","isChoosing","Folder","arrow","onclick","Toggle","which","folderContainer","open","SetOpen","show","File","fileReadFunc","file","fileName","fileLabel","FileDropped","files","dataTransfer","reader","FileReader","onload","stopPropagation","click","Display","clamp","Interval","handle","_RefreshHandles","lValue","rValue","activeIndex","mouseX","ev","pageX","mouseMoveListener","fraction","offsetWidth","_SetFromMousePosition","mouseUpListener","posForLeftValue","posForRightValue","lofrac","hifrac","lodiff","hidiff","otherValue","leftPercent","rightPercent","right","ComponentManager","components","TitleComponent","RangeComponent","ButtonComponent","CheckboxComponent","SelectComponent","TextComponent","ColorComponent","FolderComponent","FileComponent","DisplayComponent","IntervalComponent","initializer","MenuBar","menuButton","align","fullscreenButton","Panel","panelMode","barMode","_MakeToggleButton","panel","require","contains","SetVisible","ToggleVisible","ToastArea","message","stayMS","transitionMS","toast","timeout","closeButton","TransitionOut","clearTimeout","GUI","hasRoot","body","pollRateMS","Apply","_ConstructElements","_LoadStyles","componentManager","loadedComponents","_UpdateComponents","AppendFont","href","elem","getElementsByTagName","fontURL","containerCSS","bar","ToggleFullscreen","toaster","component","binding","object","oldValue","SetValue","requestAnimationFrame","applyToAll","merged","_Register","Remove","filter","folder","folderComp","find","cmp","Create","onInitialize","CreateToast","guify","gui"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"guify.min.js","mappings":"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","sources":["webpack://guify/webpack/universalModuleDefinition","webpack://guify/./node_modules/add-px-to-style/index.js","webpack://guify/./src/components/partials/header.js","webpack://guify/./src/themes.js","webpack://guify/./src/components/internal/container.css","webpack://guify/./src/components/internal/menu-bar.css","webpack://guify/./src/components/internal/panel.css","webpack://guify/./src/components/internal/toast-area.css","webpack://guify/./src/components/partials/container.css","webpack://guify/./src/components/partials/label.css","webpack://guify/./src/components/partials/value.css","webpack://guify/./src/components/public/button.css","webpack://guify/./src/components/public/checkbox.css","webpack://guify/./src/components/public/color.css","webpack://guify/./src/components/public/display.css","webpack://guify/./src/components/public/file.css","webpack://guify/./src/components/public/folder.css","webpack://guify/./src/components/public/interval.css","webpack://guify/./src/components/public/range.css","webpack://guify/./src/components/public/select.css","webpack://guify/./src/components/public/text.css","webpack://guify/./src/components/public/title.css","webpack://guify/./src/components/variables.css","webpack://guify/./node_modules/css-loader/dist/runtime/api.js","webpack://guify/./node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://guify/./node_modules/dom-css/index.js","webpack://guify/./node_modules/insert-css/index.js","webpack://guify/./node_modules/is-numeric/is-numeric.js","webpack://guify/./node_modules/prefix-style/index.js","webpack://guify/./node_modules/screenfull/dist/screenfull.js","webpack://guify/./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://guify/./node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://guify/./node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://guify/./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://guify/./node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://guify/./node_modules/style-loader/dist/runtime/styleTagTransform.js","webpack://guify/./node_modules/tinycolor2/tinycolor.js","webpack://guify/./node_modules/to-camel-case/index.js","webpack://guify/./node_modules/to-no-case/index.js","webpack://guify/./node_modules/to-space-case/index.js","webpack://guify/./node_modules/uuid/index.js","webpack://guify/./node_modules/uuid/lib/bytesToUuid.js","webpack://guify/./node_modules/uuid/lib/rng-browser.js","webpack://guify/./node_modules/uuid/v1.js","webpack://guify/./node_modules/uuid/v4.js","webpack://guify/./node_modules/wolfy87-eventemitter/EventEmitter.js","webpack://guify/webpack/bootstrap","webpack://guify/webpack/runtime/compat get default export","webpack://guify/webpack/runtime/define property getters","webpack://guify/webpack/runtime/hasOwnProperty shorthand","webpack://guify/webpack/runtime/make namespace object","webpack://guify/./src/theme.js","webpack://guify/./src/components/internal/container.css?0113","webpack://guify/./src/components/partials/container.css?cfea","webpack://guify/./src/components/partials/container.js","webpack://guify/./src/components/component-base.js","webpack://guify/./src/components/public/title.css?d79d","webpack://guify/./src/components/public/title.js","webpack://guify/./src/components/public/range.css?3e15","webpack://guify/./src/components/partials/label.css?3e26","webpack://guify/./src/components/partials/label.js","webpack://guify/./src/components/partials/value.css?cf62","webpack://guify/./src/components/partials/value.js","webpack://guify/./src/components/public/range.js","webpack://guify/./src/components/public/button.css?2c6d","webpack://guify/./src/components/public/button.js","webpack://guify/./src/components/public/checkbox.css?8d5c","webpack://guify/./src/components/public/checkbox.js","webpack://guify/./src/components/public/select.css?80f1","webpack://guify/./src/components/public/select.js","webpack://guify/./src/components/public/text.css?0dfd","webpack://guify/./src/components/public/text.js","webpack://guify/./node_modules/simple-color-picker/dist/simple-color-picker.module.js","webpack://guify/./src/components/public/color.css?5c58","webpack://guify/./src/components/public/color.js","webpack://guify/./src/components/public/folder.css?b2a7","webpack://guify/./src/components/public/folder.js","webpack://guify/./src/components/public/file.css?9b4e","webpack://guify/./src/components/public/file.js","webpack://guify/./src/components/public/display.css?3c9a","webpack://guify/./src/components/public/display.js","webpack://guify/./src/components/public/interval.css?430e","webpack://guify/./src/components/public/interval.js","webpack://guify/./src/utils/math-utils.js","webpack://guify/./src/component-manager.js","webpack://guify/./src/components/internal/menu-bar.css?3bfe","webpack://guify/./src/components/internal/menu-bar.js","webpack://guify/./src/components/internal/panel.css?bbeb","webpack://guify/./src/components/internal/panel.js","webpack://guify/./src/components/internal/toast-area.css?3899","webpack://guify/./src/components/internal/toast-area.js","webpack://guify/./src/gui.js","webpack://guify/./src/guify.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(self, function() {\nreturn ","/* The following list is defined in React's core */\nvar IS_UNITLESS = {\n animationIterationCount: true,\n boxFlex: true,\n boxFlexGroup: true,\n boxOrdinalGroup: true,\n columnCount: true,\n flex: true,\n flexGrow: true,\n flexPositive: true,\n flexShrink: true,\n flexNegative: true,\n flexOrder: true,\n gridRow: true,\n gridColumn: true,\n fontWeight: true,\n lineClamp: true,\n lineHeight: true,\n opacity: true,\n order: true,\n orphans: true,\n tabSize: true,\n widows: true,\n zIndex: true,\n zoom: true,\n\n // SVG-related properties\n fillOpacity: true,\n stopOpacity: true,\n strokeDashoffset: true,\n strokeOpacity: true,\n strokeWidth: true\n};\n\nmodule.exports = function(name, value) {\n if(typeof value === 'number' && !IS_UNITLESS[ name ]) {\n return value + 'px';\n } else {\n return value;\n }\n};","import css from \"dom-css\";\n\nexport default function (root, text, theme) {\n var title = root.appendChild(document.createElement(\"div\"));\n title.innerHTML = text;\n\n css(title, {\n width: \"100%\",\n textAlign: \"center\",\n color: theme.colors.textSecondary,\n height: \"20px\",\n marginBottom: \"4px\"\n });\n\n return title;\n}\n","module.exports = {\n\n light: {\n name: \"Light\",\n\n colors: {\n menuBarBackground: \"rgb(227, 227, 227)\",\n menuBarText: \"rgb(36, 36, 36)\",\n panelBackground: \"rgb(227, 227, 227)\",\n\n componentBackground: \"rgb(204, 204, 204)\",\n componentBackgroundHover: \"rgb(190, 190, 190)\",\n componentBackgroundDisabled: \"rgb(200, 200, 200)\",\n componentForeground: \"rgb(105, 105, 105)\",\n componentActive: \"rgb(36, 36, 36)\",\n\n textPrimary: \"rgb(36, 36, 36)\",\n textSecondary: \"rgb(87, 87, 87)\",\n textHover: \"rgb(204, 204, 204)\",\n textActive: \"rgb(204, 204, 204)\",\n textDisabled: \"rgb(180, 180, 180)\",\n },\n\n },\n\n dark: {\n name: \"Dark\",\n\n colors: {\n menuBarBackground: \"rgb(35, 35, 35)\",\n menuBarText: \"rgb(235, 235, 235)\",\n panelBackground: \"rgb(35, 35, 35)\",\n\n componentBackground: \"rgb(54, 54, 54)\",\n componentBackgroundHover: \"rgb(76, 76, 76)\",\n componentBackgroundDisabled: \"rgb(24, 24, 24)\",\n componentForeground: \"rgb(112, 112, 112)\",\n componentActive: \"rgb(202, 202, 202)\",\n\n textPrimary: \"rgb(235, 235, 235)\",\n textSecondary: \"rgb(181, 181, 181)\",\n textHover: \"rgb(235, 235, 235)\",\n textActive: \"rgb(54, 54, 54)\",\n textDisabled: \"rgb(54, 54, 54)\",\n },\n\n },\n\n // Color scheme from https://metakirby5.github.io/yorha/\n yorha: {\n name: \"YoRHa\",\n\n colors: {\n menuBarBackground: \"#CCC8B1\",\n menuBarText: \"#454138\",\n panelBackground: \"#CCC8B1\",\n\n componentBackground: \"#BAB5A1\",\n componentBackgroundHover: \"#877F6E\",\n componentBackgroundDisabled: \"#DED8C7\",\n componentForeground: \"#454138\",\n componentActive: \"#978F7E\",\n\n textPrimary: \"#454138\",\n textSecondary: \"#454138\",\n textHover: \"#CCC8B1\",\n textActive: \"#CCC8B1\",\n textDisabled: \"#BAB5A6\",\n },\n\n //Optional\n font: {\n fontFamily: \"helvetica, sans-serif\",\n fontSize: \"14px\",\n fontWeight: \"100\"\n },\n },\n\n\n};\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".guify-container {\\n position: relative;\\n left: 0;\\n width: 100%;\\n font-size: 11px;\\n z-index: 9999;\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/internal/container.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,kBAAkB;IAClB,OAAO;IACP,WAAW;IACX,eAAe;IACf,aAAa;AACjB\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n.guify-container {\\n position: relative;\\n left: 0;\\n width: 100%;\\n font-size: 11px;\\n z-index: 9999;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".guify-bar {\\n background-color: var(--color-menu-bar-background);\\n height: var(--size-menu-bar-height);\\n width: 100%;\\n opacity: 1.0;\\n position: relative;\\n cursor: default;\\n}\\n\\n.guify-bar-title {\\n color: var(--color-menu-bar-text);\\n text-align: center;\\n width: 100%;\\n position: absolute;\\n top: 0;\\n line-height: var(--size-menu-bar-height);\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n}\\n\\n.guify-bar-button {\\n text-align: center;\\n border: none;\\n cursor: pointer;\\n font-family: inherit;\\n height: 100%;\\n position: absolute;\\n top: 0;\\n color: var(--color-text-primary);\\n background-color: var(--color-component-background);\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n margin: 0;\\n\\n}\\n\\n/* Hide default accessibility outlines since we're providing our own visual feedback */\\n.guify-bar-button:focus {\\n outline: none;\\n}\\n.guify-bar-button::-moz-focus-inner {\\n border: 0;\\n}\\n\\n.guify-bar-button:hover,\\n.guify-bar-button:focus {\\n color: var(--color-text-hover);\\n background-color: var(--color-component-foreground);\\n}\\n\\n.guify-bar-button:active {\\n color: var(--color-text-active) !important;\\n background-color: var(--color-component-active) !important;\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/internal/menu-bar.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,kDAAkD;IAClD,mCAAmC;IACnC,WAAW;IACX,YAAY;IACZ,kBAAkB;IAClB,eAAe;AACnB;;AAEA;IACI,iCAAiC;IACjC,kBAAkB;IAClB,WAAW;IACX,kBAAkB;IAClB,MAAM;IACN,wCAAwC;IACxC,yBAAyB;IACzB,sBAAsB;IACtB,qBAAqB;IACrB,iBAAiB;AACrB;;AAEA;IACI,kBAAkB;IAClB,YAAY;IACZ,eAAe;IACf,oBAAoB;IACpB,YAAY;IACZ,kBAAkB;IAClB,MAAM;IACN,gCAAgC;IAChC,mDAAmD;IACnD,yBAAyB;IACzB,sBAAsB;IACtB,qBAAqB;IACrB,iBAAiB;IACjB,SAAS;;AAEb;;AAEA,sFAAsF;AACtF;IACI,aAAa;AACjB;AACA;IACI,SAAS;AACb;;AAEA;;IAEI,8BAA8B;IAC9B,mDAAmD;AACvD;;AAEA;IACI,0CAA0C;IAC1C,0DAA0D;AAC9D\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n.guify-bar {\\n background-color: var(--color-menu-bar-background);\\n height: var(--size-menu-bar-height);\\n width: 100%;\\n opacity: 1.0;\\n position: relative;\\n cursor: default;\\n}\\n\\n.guify-bar-title {\\n color: var(--color-menu-bar-text);\\n text-align: center;\\n width: 100%;\\n position: absolute;\\n top: 0;\\n line-height: var(--size-menu-bar-height);\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n}\\n\\n.guify-bar-button {\\n text-align: center;\\n border: none;\\n cursor: pointer;\\n font-family: inherit;\\n height: 100%;\\n position: absolute;\\n top: 0;\\n color: var(--color-text-primary);\\n background-color: var(--color-component-background);\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n margin: 0;\\n\\n}\\n\\n/* Hide default accessibility outlines since we're providing our own visual feedback */\\n.guify-bar-button:focus {\\n outline: none;\\n}\\n.guify-bar-button::-moz-focus-inner {\\n border: 0;\\n}\\n\\n.guify-bar-button:hover,\\n.guify-bar-button:focus {\\n color: var(--color-text-hover);\\n background-color: var(--color-component-foreground);\\n}\\n\\n.guify-bar-button:active {\\n color: var(--color-text-active) !important;\\n background-color: var(--color-component-active) !important;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".guify-panel-container {\\n position: absolute;\\n background: var(--color-panel-background);\\n}\\n\\n.guify-panel {\\n padding: 14px;\\n /* Last component will have a margin, so reduce padding to account for this */\\n padding-bottom: calc(14px - var(--size-component-spacing));\\n\\n /* all: initial; */\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n cursor: default;\\n text-align: left;\\n box-sizing: border-box;\\n}\\n\\n.guify-panel.guify-panel-hidden {\\n height: 0px;\\n display: none;\\n}\\n\\n.guify-panel * {\\n box-sizing: content-box;\\n box-sizing: initial;\\n -webkit-box-sizing: initial;\\n -moz-box-sizing: initial;\\n}\\n\\n.guify-panel input {\\n font-family: 'Hack';\\n font-size: 11px;\\n display: inline;\\n}\\n\\n.guify-panel a {\\n color: inherit;\\n text-decoration: none;\\n}\\n\\n.guify-panel-toggle-button {\\n position: absolute;\\n top: 0;\\n margin: 0;\\n padding: 0;\\n width: 15px;\\n height: 15px;\\n line-height: 15px;\\n text-align: center;\\n border: none;\\n cursor: pointer;\\n font-family: inherit;\\n color: var(--color-text-primary);\\n background-color: var(--color-component-background);\\n\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n\\n}\\n\\n/* Open/Close button styling */\\n.guify-panel-toggle-button svg {\\n fill-opacity: 0;\\n stroke-width: 3;\\n stroke: var(--color-component-foreground);\\n}\\n\\n/* Remove browser default outlines since we're providing our own */\\n.guify-panel-toggle-button:focus {\\n outline:none;\\n}\\n.guify-panel-toggle-button::-moz-focus-inner {\\n border: 0;\\n}\\n\\n.guify-panel-toggle-button:hover,\\n.guify-panel-toggle-button:focus {\\n color: var(--color-text-hover);\\n background-color: var(--color-component-foreground);\\n}\\n\\n.guify-panel-toggle-button:active {\\n color: var(--color-text-active);\\n background-color:var(--color-component-active);\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/internal/panel.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,kBAAkB;IAClB,yCAAyC;AAC7C;;AAEA;IACI,aAAa;IACb,6EAA6E;IAC7E,0DAA0D;;IAE1D,mBAAmB;IACnB,yBAAyB;IACzB,sBAAsB;IACtB,qBAAqB;IACrB,iBAAiB;IACjB,eAAe;IACf,gBAAgB;IAChB,sBAAsB;AAC1B;;AAEA;IACI,WAAW;IACX,aAAa;AACjB;;AAEA;IACI,uBAAmB;IAAnB,mBAAmB;IACnB,2BAA2B;IAC3B,wBAAwB;AAC5B;;AAEA;IACI,mBAAmB;IACnB,eAAe;IACf,eAAe;AACnB;;AAEA;IACI,cAAc;IACd,qBAAqB;AACzB;;AAEA;IACI,kBAAkB;IAClB,MAAM;IACN,SAAS;IACT,UAAU;IACV,WAAW;IACX,YAAY;IACZ,iBAAiB;IACjB,kBAAkB;IAClB,YAAY;IACZ,eAAe;IACf,oBAAoB;IACpB,gCAAgC;IAChC,mDAAmD;;IAEnD,yBAAyB;IACzB,sBAAsB;IACtB,qBAAqB;IACrB,iBAAiB;;AAErB;;AAEA,8BAA8B;AAC9B;IACI,eAAe;IACf,eAAe;IACf,yCAAyC;AAC7C;;AAEA,kEAAkE;AAClE;IACI,YAAY;AAChB;AACA;IACI,SAAS;AACb;;AAEA;;IAEI,8BAA8B;IAC9B,mDAAmD;AACvD;;AAEA;IACI,+BAA+B;IAC/B,8CAA8C;AAClD\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n.guify-panel-container {\\n position: absolute;\\n background: var(--color-panel-background);\\n}\\n\\n.guify-panel {\\n padding: 14px;\\n /* Last component will have a margin, so reduce padding to account for this */\\n padding-bottom: calc(14px - var(--size-component-spacing));\\n\\n /* all: initial; */\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n cursor: default;\\n text-align: left;\\n box-sizing: border-box;\\n}\\n\\n.guify-panel.guify-panel-hidden {\\n height: 0px;\\n display: none;\\n}\\n\\n.guify-panel * {\\n box-sizing: initial;\\n -webkit-box-sizing: initial;\\n -moz-box-sizing: initial;\\n}\\n\\n.guify-panel input {\\n font-family: 'Hack';\\n font-size: 11px;\\n display: inline;\\n}\\n\\n.guify-panel a {\\n color: inherit;\\n text-decoration: none;\\n}\\n\\n.guify-panel-toggle-button {\\n position: absolute;\\n top: 0;\\n margin: 0;\\n padding: 0;\\n width: 15px;\\n height: 15px;\\n line-height: 15px;\\n text-align: center;\\n border: none;\\n cursor: pointer;\\n font-family: inherit;\\n color: var(--color-text-primary);\\n background-color: var(--color-component-background);\\n\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n\\n}\\n\\n/* Open/Close button styling */\\n.guify-panel-toggle-button svg {\\n fill-opacity: 0;\\n stroke-width: 3;\\n stroke: var(--color-component-foreground);\\n}\\n\\n/* Remove browser default outlines since we're providing our own */\\n.guify-panel-toggle-button:focus {\\n outline:none;\\n}\\n.guify-panel-toggle-button::-moz-focus-inner {\\n border: 0;\\n}\\n\\n.guify-panel-toggle-button:hover,\\n.guify-panel-toggle-button:focus {\\n color: var(--color-text-hover);\\n background-color: var(--color-component-foreground);\\n}\\n\\n.guify-panel-toggle-button:active {\\n color: var(--color-text-active);\\n background-color:var(--color-component-active);\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".guify-toast-notification {\\n box-sizing: border-box;\\n position: relative;\\n width: 100%;\\n /* height: 20px; */\\n padding: 8px;\\n padding-left: 20px;\\n padding-right: 20px;\\n text-align: center;\\n font-family: 'Hack', monospace;\\n font-size: 11px;\\n}\\n\\n.guify-toast-area .guify-toast-notification:nth-child(odd) {\\n color: var(--color-text-primary);\\n background-color:var(--color-panel-background);\\n}\\n\\n.guify-toast-area .guify-toast-notification:nth-child(even) {\\n color: var(--color-text-primary);\\n background-color: var(--color-menu-bar-background);\\n}\\n\\n.guify-toast-close-button {\\n color: var(--color-text-primary);\\n background: transparent;\\n position: absolute;\\n text-align: center;\\n margin-top: auto;\\n margin-bottom: auto;\\n border: none;\\n cursor: pointer;\\n top: 0;\\n bottom: 0;\\n right: 8px;\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/internal/toast-area.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,sBAAsB;IACtB,kBAAkB;IAClB,WAAW;IACX,kBAAkB;IAClB,YAAY;IACZ,kBAAkB;IAClB,mBAAmB;IACnB,kBAAkB;IAClB,8BAA8B;IAC9B,eAAe;AACnB;;AAEA;IACI,gCAAgC;IAChC,8CAA8C;AAClD;;AAEA;IACI,gCAAgC;IAChC,kDAAkD;AACtD;;AAEA;IACI,gCAAgC;IAChC,uBAAuB;IACvB,kBAAkB;IAClB,kBAAkB;IAClB,gBAAgB;IAChB,mBAAmB;IACnB,YAAY;IACZ,eAAe;IACf,MAAM;IACN,SAAS;IACT,UAAU;AACd\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n.guify-toast-notification {\\n box-sizing: border-box;\\n position: relative;\\n width: 100%;\\n /* height: 20px; */\\n padding: 8px;\\n padding-left: 20px;\\n padding-right: 20px;\\n text-align: center;\\n font-family: 'Hack', monospace;\\n font-size: 11px;\\n}\\n\\n.guify-toast-area .guify-toast-notification:nth-child(odd) {\\n color: var(--color-text-primary);\\n background-color:var(--color-panel-background);\\n}\\n\\n.guify-toast-area .guify-toast-notification:nth-child(even) {\\n color: var(--color-text-primary);\\n background-color: var(--color-menu-bar-background);\\n}\\n\\n.guify-toast-close-button {\\n color: var(--color-text-primary);\\n background: transparent;\\n position: absolute;\\n text-align: center;\\n margin-top: auto;\\n margin-bottom: auto;\\n border: none;\\n cursor: pointer;\\n top: 0;\\n bottom: 0;\\n right: 8px;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".guify-component-container {\\n position: relative;\\n min-height: var(--size-component-height);\\n line-height: var(--size-component-height);\\n margin-bottom: var(--size-component-spacing);\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/partials/container.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,kBAAkB;IAClB,wCAAwC;IACxC,yCAAyC;IACzC,4CAA4C;AAChD\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n.guify-component-container {\\n position: relative;\\n min-height: var(--size-component-height);\\n line-height: var(--size-component-height);\\n margin-bottom: var(--size-component-spacing);\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".guify-component-label {\\n left: 0;\\n width: calc(var(--size-label-width) - 2%);\\n display: inline-block;\\n margin-right: 2%;\\n vertical-align: top;\\n min-height: var(--size-component-height);\\n line-height: var(--size-component-height);\\n\\n color: var(--color-text-primary);\\n}\\n\\n/* Disabled styles */\\n.disabled .guify-component-label {\\n color: var(--color-text-disabled);\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/partials/label.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,OAAO;IACP,yCAAyC;IACzC,qBAAqB;IACrB,gBAAgB;IAChB,mBAAmB;IACnB,wCAAwC;IACxC,yCAAyC;;IAEzC,gCAAgC;AACpC;;AAEA,oBAAoB;AACpB;IACI,iCAAiC;AACrC\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n.guify-component-label {\\n left: 0;\\n width: calc(var(--size-label-width) - 2%);\\n display: inline-block;\\n margin-right: 2%;\\n vertical-align: top;\\n min-height: var(--size-component-height);\\n line-height: var(--size-component-height);\\n\\n color: var(--color-text-primary);\\n}\\n\\n/* Disabled styles */\\n.disabled .guify-component-label {\\n color: var(--color-text-disabled);\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".guify-value-input {\\n position: absolute;\\n background-color: var(--color-component-background);\\n padding-left: 1%;\\n height: var(--size-component-height);\\n display: inline-block;\\n overflow: hidden;\\n border: none;\\n\\n font-family: 'Hack', monospace;\\n font-size: 11px;\\n color: var(--color-text-secondary);\\n -webkit-user-select: text;\\n -moz-user-select: text;\\n -ms-user-select: text;\\n user-select: text;\\n cursor: text;\\n line-height: var(--size-component-height);\\n word-break: break-all;\\n\\n box-sizing: border-box !important;\\n -moz-box-sizing: border-box !important;\\n -webkit-box-sizing: border-box !important;\\n}\\n\\n.guify-value-input-right {\\n right: 0 !important;\\n}\\n\\n.disabled .guify-value-input {\\n pointer-events: none;\\n background-color: var(--color-component-background-disabled);\\n color: var(--color-text-disabled);\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/partials/value.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,kBAAkB;IAClB,mDAAmD;IACnD,gBAAgB;IAChB,oCAAoC;IACpC,qBAAqB;IACrB,gBAAgB;IAChB,YAAY;;IAEZ,8BAA8B;IAC9B,eAAe;IACf,kCAAkC;IAClC,yBAAiB;OAAjB,sBAAiB;QAAjB,qBAAiB;YAAjB,iBAAiB;IACjB,YAAY;IACZ,yCAAyC;IACzC,qBAAqB;;IAErB,iCAAiC;IACjC,sCAAsC;IACtC,yCAAyC;AAC7C;;AAEA;IACI,mBAAmB;AACvB;;AAEA;IACI,oBAAoB;IACpB,4DAA4D;IAC5D,iCAAiC;AACrC\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n.guify-value-input {\\n position: absolute;\\n background-color: var(--color-component-background);\\n padding-left: 1%;\\n height: var(--size-component-height);\\n display: inline-block;\\n overflow: hidden;\\n border: none;\\n\\n font-family: 'Hack', monospace;\\n font-size: 11px;\\n color: var(--color-text-secondary);\\n user-select: text;\\n cursor: text;\\n line-height: var(--size-component-height);\\n word-break: break-all;\\n\\n box-sizing: border-box !important;\\n -moz-box-sizing: border-box !important;\\n -webkit-box-sizing: border-box !important;\\n}\\n\\n.guify-value-input-right {\\n right: 0 !important;\\n}\\n\\n.disabled .guify-value-input {\\n pointer-events: none;\\n background-color: var(--color-component-background-disabled);\\n color: var(--color-text-disabled);\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".guify-button {\\n box-sizing: border-box !important;\\n color: var(--color-text-secondary);\\n background-color: var(--color-component-background);\\n\\n position: absolute;\\n text-align: center;\\n height: var(--size-component-height);\\n line-height: var(--size-component-height);\\n padding-top: 0px;\\n padding-bottom: 0px;\\n width: calc(100% - var(--size-label-width));\\n border: none;\\n cursor: pointer;\\n right: 0;\\n font-family: inherit;\\n}\\n\\n.guify-button:focus {\\n outline:none;\\n}\\n.guify-button::-moz-focus-inner {\\n border:0;\\n}\\n\\n.guify-button:hover,\\n.guify-button:focus {\\n color: var(--color-text-hover);\\n background-color: var(--color-component-foreground);\\n}\\n\\n.guify-button:active {\\n color: var(--color-text-active) !important;\\n background-color: var(--color-component-active) !important;\\n}\\n\\n*.disabled > .guify-button {\\n pointer-events: none;\\n background-color: var(--color-component-background-disabled);\\n color: var(--color-text-disabled);\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/public/button.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,iCAAiC;IACjC,kCAAkC;IAClC,mDAAmD;;IAEnD,kBAAkB;IAClB,kBAAkB;IAClB,oCAAoC;IACpC,yCAAyC;IACzC,gBAAgB;IAChB,mBAAmB;IACnB,2CAA2C;IAC3C,YAAY;IACZ,eAAe;IACf,QAAQ;IACR,oBAAoB;AACxB;;AAEA;IACI,YAAY;AAChB;AACA;IACI,QAAQ;AACZ;;AAEA;;IAEI,8BAA8B;IAC9B,mDAAmD;AACvD;;AAEA;IACI,0CAA0C;IAC1C,0DAA0D;AAC9D;;AAEA;IACI,oBAAoB;IACpB,4DAA4D;IAC5D,iCAAiC;AACrC\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n.guify-button {\\n box-sizing: border-box !important;\\n color: var(--color-text-secondary);\\n background-color: var(--color-component-background);\\n\\n position: absolute;\\n text-align: center;\\n height: var(--size-component-height);\\n line-height: var(--size-component-height);\\n padding-top: 0px;\\n padding-bottom: 0px;\\n width: calc(100% - var(--size-label-width));\\n border: none;\\n cursor: pointer;\\n right: 0;\\n font-family: inherit;\\n}\\n\\n.guify-button:focus {\\n outline:none;\\n}\\n.guify-button::-moz-focus-inner {\\n border:0;\\n}\\n\\n.guify-button:hover,\\n.guify-button:focus {\\n color: var(--color-text-hover);\\n background-color: var(--color-component-foreground);\\n}\\n\\n.guify-button:active {\\n color: var(--color-text-active) !important;\\n background-color: var(--color-component-active) !important;\\n}\\n\\n*.disabled > .guify-button {\\n pointer-events: none;\\n background-color: var(--color-component-background-disabled);\\n color: var(--color-text-disabled);\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root {\\n --checkbox-border-width: 4px;\\n}\\n\\ninput[type=checkbox].guify-checkbox {\\n opacity: 0;\\n appearance: none;\\n -moz-appearance: none;\\n -webkit-appearance: none;\\n margin: 0;\\n border-radius: 0;\\n cursor: pointer;\\n}\\n\\ninput[type=checkbox].guify-checkbox + label {\\n margin: 0;\\n}\\n\\ninput[type=checkbox].guify-checkbox + label:before {\\n content: \\\"\\\";\\n display: inline-block;\\n width: var(--size-component-height);\\n height: var(--size-component-height);\\n padding: 0;\\n margin: 0;\\n vertical-align: middle;\\n background-color: var(--color-component-background);\\n border-radius: 0px;\\n cursor: pointer;\\n box-sizing: content-box;\\n -moz-box-sizing: content-box;\\n -webkit-box-sizing: content-box;\\n\\n}\\n\\n/* Hover style */\\ninput[type=checkbox].guify-checkbox:hover:not(:disabled) + label:before {\\n width: calc(var(--size-component-height) - (4px * 2));\\n width: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\\n height: calc(var(--size-component-height) - (4px * 2));\\n height: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\\n background-color: var(--color-component-background-hover);\\n border: solid 4px var(--color-component-background);\\n}\\n\\n/* Checked style */\\ninput[type=checkbox]:checked.guify-checkbox + label:before {\\n width: calc(var(--size-component-height) - (4px * 2));\\n width: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\\n height: calc(var(--size-component-height) - (4px * 2));\\n height: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\\n background-color: var(--color-component-foreground);\\n border: solid 4px var(--color-component-background);\\n border: solid var(--checkbox-border-width) var(--color-component-background);\\n}\\n\\n/* Focused and checked */\\ninput[type=checkbox]:checked.guify-checkbox:focus + label:before {\\n width: calc(var(--size-component-height) - (4px * 2));\\n width: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\\n height: calc(var(--size-component-height) - (4px * 2));\\n height: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\\n background-color: var(--color-component-foreground);\\n border: solid 4px var(--color-component-background-hover);\\n border: solid var(--checkbox-border-width) var(--color-component-background-hover);\\n}\\n\\n/* Focus and unchecked */\\ninput[type=checkbox].guify-checkbox:focus + label:before {\\n background-color: var(--color-component-background-hover);\\n}\\n\\n/* Disabled styles */\\n.disabled input[type=checkbox].guify-checkbox + label {\\n pointer-events: none;\\n}\\n.disabled input[type=\\\"checkbox\\\"].guify-checkbox + label::before {\\n pointer-events: none;\\n background-color: var(--color-component-background-disabled);\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/public/checkbox.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,4BAA4B;AAChC;;AAEA;IACI,UAAU;IACV,gBAAgB;IAChB,qBAAqB;IACrB,wBAAwB;IACxB,SAAS;IACT,gBAAgB;IAChB,eAAe;AACnB;;AAEA;IACI,SAAS;AACb;;AAEA;IACI,WAAW;IACX,qBAAqB;IACrB,mCAAmC;IACnC,oCAAoC;IACpC,UAAU;IACV,SAAS;IACT,sBAAsB;IACtB,mDAAmD;IACnD,kBAAkB;IAClB,eAAe;IACf,uBAAuB;IACvB,4BAA4B;IAC5B,+BAA+B;;AAEnC;;AAEA,gBAAgB;AAChB;IACI,qDAA8E;IAA9E,8EAA8E;IAC9E,sDAA+E;IAA/E,+EAA+E;IAC/E,yDAAyD;IACzD,mDAAmD;AACvD;;AAEA,kBAAkB;AAClB;IACI,qDAA8E;IAA9E,8EAA8E;IAC9E,sDAA+E;IAA/E,+EAA+E;IAC/E,mDAAmD;IACnD,mDAA4E;IAA5E,4EAA4E;AAChF;;AAEA,wBAAwB;AACxB;IACI,qDAA8E;IAA9E,8EAA8E;IAC9E,sDAA+E;IAA/E,+EAA+E;IAC/E,mDAAmD;IACnD,yDAAkF;IAAlF,kFAAkF;AACtF;;AAEA,wBAAwB;AACxB;IACI,yDAAyD;AAC7D;;AAEA,oBAAoB;AACpB;IACI,oBAAoB;AACxB;AACA;IACI,oBAAoB;IACpB,4DAA4D;AAChE\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n:root {\\n --checkbox-border-width: 4px;\\n}\\n\\ninput[type=checkbox].guify-checkbox {\\n opacity: 0;\\n appearance: none;\\n -moz-appearance: none;\\n -webkit-appearance: none;\\n margin: 0;\\n border-radius: 0;\\n cursor: pointer;\\n}\\n\\ninput[type=checkbox].guify-checkbox + label {\\n margin: 0;\\n}\\n\\ninput[type=checkbox].guify-checkbox + label:before {\\n content: \\\"\\\";\\n display: inline-block;\\n width: var(--size-component-height);\\n height: var(--size-component-height);\\n padding: 0;\\n margin: 0;\\n vertical-align: middle;\\n background-color: var(--color-component-background);\\n border-radius: 0px;\\n cursor: pointer;\\n box-sizing: content-box;\\n -moz-box-sizing: content-box;\\n -webkit-box-sizing: content-box;\\n\\n}\\n\\n/* Hover style */\\ninput[type=checkbox].guify-checkbox:hover:not(:disabled) + label:before {\\n width: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\\n height: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\\n background-color: var(--color-component-background-hover);\\n border: solid 4px var(--color-component-background);\\n}\\n\\n/* Checked style */\\ninput[type=checkbox]:checked.guify-checkbox + label:before {\\n width: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\\n height: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\\n background-color: var(--color-component-foreground);\\n border: solid var(--checkbox-border-width) var(--color-component-background);\\n}\\n\\n/* Focused and checked */\\ninput[type=checkbox]:checked.guify-checkbox:focus + label:before {\\n width: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\\n height: calc(var(--size-component-height) - (var(--checkbox-border-width) * 2));\\n background-color: var(--color-component-foreground);\\n border: solid var(--checkbox-border-width) var(--color-component-background-hover);\\n}\\n\\n/* Focus and unchecked */\\ninput[type=checkbox].guify-checkbox:focus + label:before {\\n background-color: var(--color-component-background-hover);\\n}\\n\\n/* Disabled styles */\\n.disabled input[type=checkbox].guify-checkbox + label {\\n pointer-events: none;\\n}\\n.disabled input[type=\\\"checkbox\\\"].guify-checkbox + label::before {\\n pointer-events: none;\\n background-color: var(--color-component-background-disabled);\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/* Styling for simple-color-picker */\\n\\n.guify-color .Scp {\\n width: 125px;\\n height: 100px;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n position: relative;\\n z-index: 1000;\\n cursor: pointer;\\n}\\n.guify-color .Scp-saturation {\\n position: relative;\\n width: calc(100% - 25px);\\n height: 100%;\\n background: linear-gradient(to right, #fff 0%, #f00 100%);\\n float: left;\\n margin-right: 5px;\\n}\\n.guify-color .Scp-brightness {\\n width: 100%;\\n height: 100%;\\n background: linear-gradient(to top, #000 0%, rgba(255,255,255,0) 100%);\\n}\\n.guify-color .Scp-sbSelector {\\n border: 1px solid;\\n position: absolute;\\n width: 14px;\\n height: 14px;\\n background: #fff;\\n border-radius: 10px;\\n top: -7px;\\n left: -7px;\\n box-sizing: border-box;\\n z-index: 10;\\n}\\n.guify-color .Scp-hue {\\n width: 20px;\\n height: 100%;\\n position: relative;\\n float: left;\\n background: linear-gradient(to bottom, #f00 0%, #f0f 17%, #00f 34%, #0ff 50%, #0f0 67%, #ff0 84%, #f00 100%);\\n}\\n.guify-color .Scp-hSelector {\\n position: absolute;\\n background: #fff;\\n border-bottom: 1px solid #000;\\n right: -3px;\\n width: 10px;\\n height: 2px;\\n}\\n\\n/* Disabled styles */\\n.disabled .guify-color {\\n pointer-events: none;\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/public/color.css\"],\"names\":[],\"mappings\":\"AAEA,oCAAoC;;AAEpC;IACI,YAAY;IACZ,aAAa;IACb,yBAAyB;QACrB,sBAAsB;YAClB,qBAAqB;gBACjB,iBAAiB;IAC7B,kBAAkB;IAClB,aAAa;IACb,eAAe;AACnB;AACA;IACI,kBAAkB;IAClB,wBAAwB;IACxB,YAAY;IACZ,yDAAyD;IACzD,WAAW;IACX,iBAAiB;AACrB;AACA;IACI,WAAW;IACX,YAAY;IACZ,sEAAsE;AAC1E;AACA;IACI,iBAAiB;IACjB,kBAAkB;IAClB,WAAW;IACX,YAAY;IACZ,gBAAgB;IAChB,mBAAmB;IACnB,SAAS;IACT,UAAU;IACV,sBAAsB;IACtB,WAAW;AACf;AACA;IACI,WAAW;IACX,YAAY;IACZ,kBAAkB;IAClB,WAAW;IACX,4GAA4G;AAChH;AACA;IACI,kBAAkB;IAClB,gBAAgB;IAChB,6BAA6B;IAC7B,WAAW;IACX,WAAW;IACX,WAAW;AACf;;AAEA,oBAAoB;AACpB;IACI,oBAAoB;AACxB\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n/* Styling for simple-color-picker */\\n\\n.guify-color .Scp {\\n width: 125px;\\n height: 100px;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n position: relative;\\n z-index: 1000;\\n cursor: pointer;\\n}\\n.guify-color .Scp-saturation {\\n position: relative;\\n width: calc(100% - 25px);\\n height: 100%;\\n background: linear-gradient(to right, #fff 0%, #f00 100%);\\n float: left;\\n margin-right: 5px;\\n}\\n.guify-color .Scp-brightness {\\n width: 100%;\\n height: 100%;\\n background: linear-gradient(to top, #000 0%, rgba(255,255,255,0) 100%);\\n}\\n.guify-color .Scp-sbSelector {\\n border: 1px solid;\\n position: absolute;\\n width: 14px;\\n height: 14px;\\n background: #fff;\\n border-radius: 10px;\\n top: -7px;\\n left: -7px;\\n box-sizing: border-box;\\n z-index: 10;\\n}\\n.guify-color .Scp-hue {\\n width: 20px;\\n height: 100%;\\n position: relative;\\n float: left;\\n background: linear-gradient(to bottom, #f00 0%, #f0f 17%, #00f 34%, #0ff 50%, #0f0 67%, #ff0 84%, #f00 100%);\\n}\\n.guify-color .Scp-hSelector {\\n position: absolute;\\n background: #fff;\\n border-bottom: 1px solid #000;\\n right: -3px;\\n width: 10px;\\n height: 2px;\\n}\\n\\n/* Disabled styles */\\n.disabled .guify-color {\\n pointer-events: none;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".guify-display {\\n display: inline-block;\\n height: unset;\\n min-height: var(--size-component-height);\\n width: calc(100% - var(--size-label-width));\\n border: none;\\n color: var(--color-text-secondary);\\n font-family: inherit;\\n box-sizing: border-box;\\n -moz-box-sizing: border-box;\\n -webkit-box-sizing: border-box;\\n vertical-align: sub;\\n line-height: 1rem;\\n -webkit-user-select: text;\\n -moz-user-select: text;\\n -ms-user-select: text;\\n user-select: text;\\n}\\n\\n.disabled .guify-display {\\n color: var(--color-text-disabled);\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/public/display.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,qBAAqB;IACrB,aAAa;IACb,wCAAwC;IACxC,2CAA2C;IAC3C,YAAY;IACZ,kCAAkC;IAClC,oBAAoB;IACpB,sBAAsB;IACtB,2BAA2B;IAC3B,8BAA8B;IAC9B,mBAAmB;IACnB,iBAAiB;IACjB,yBAAiB;OAAjB,sBAAiB;QAAjB,qBAAiB;YAAjB,iBAAiB;AACrB;;AAEA;IACI,iCAAiC;AACrC\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n.guify-display {\\n display: inline-block;\\n height: unset;\\n min-height: var(--size-component-height);\\n width: calc(100% - var(--size-label-width));\\n border: none;\\n color: var(--color-text-secondary);\\n font-family: inherit;\\n box-sizing: border-box;\\n -moz-box-sizing: border-box;\\n -webkit-box-sizing: border-box;\\n vertical-align: sub;\\n line-height: 1rem;\\n user-select: text;\\n}\\n\\n.disabled .guify-display {\\n color: var(--color-text-disabled);\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".guify-file-container {\\n display: inline-block;\\n outline: none;\\n padding-top: 8px;\\n padding-bottom: 8px;\\n color: var(--color-text-primary);\\n background-color: var(--color-component-background);\\n cursor: pointer;\\n}\\n\\n.guify-file-container:hover:not(:disabled),\\n.guify-file-container:focus:not(:disabled) {\\n color: var(--color-text-hover);\\n background-color: var(--color-component-foreground);\\n}\\n\\n.guify-file-container:active:not(:disabled) {\\n color: var(--color-text-active) !important;\\n background-color: var(--color-component-active) !important;\\n}\\n\\n.guify-dragover:not(:disabled) {\\n background-color: var(--color-component-background);\\n box-shadow: inset 0 0 0 3px var(--color-component-foreground);\\n}\\n\\n.disabled.guify-file-container {\\n pointer-events: none;\\n color: var(--color-text-disabled) !important;\\n background-color: var(--color-component-background-disabled) !important;\\n box-shadow: inset 0 0 0 3px var(--color-component-background-disabled) !important;\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/public/file.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,qBAAqB;IACrB,aAAa;IACb,gBAAgB;IAChB,mBAAmB;IACnB,gCAAgC;IAChC,mDAAmD;IACnD,eAAe;AACnB;;AAEA;;IAEI,8BAA8B;IAC9B,mDAAmD;AACvD;;AAEA;IACI,0CAA0C;IAC1C,0DAA0D;AAC9D;;AAEA;IACI,mDAAmD;IACnD,6DAA6D;AACjE;;AAEA;IACI,oBAAoB;IACpB,4CAA4C;IAC5C,uEAAuE;IACvE,iFAAiF;AACrF\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n.guify-file-container {\\n display: inline-block;\\n outline: none;\\n padding-top: 8px;\\n padding-bottom: 8px;\\n color: var(--color-text-primary);\\n background-color: var(--color-component-background);\\n cursor: pointer;\\n}\\n\\n.guify-file-container:hover:not(:disabled),\\n.guify-file-container:focus:not(:disabled) {\\n color: var(--color-text-hover);\\n background-color: var(--color-component-foreground);\\n}\\n\\n.guify-file-container:active:not(:disabled) {\\n color: var(--color-text-active) !important;\\n background-color: var(--color-component-active) !important;\\n}\\n\\n.guify-dragover:not(:disabled) {\\n background-color: var(--color-component-background);\\n box-shadow: inset 0 0 0 3px var(--color-component-foreground);\\n}\\n\\n.disabled.guify-file-container {\\n pointer-events: none;\\n color: var(--color-text-disabled) !important;\\n background-color: var(--color-component-background-disabled) !important;\\n box-shadow: inset 0 0 0 3px var(--color-component-background-disabled) !important;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".guify-folder {\\n cursor: pointer;\\n padding-left: 0.5em;\\n color: var(--color-text-primary);\\n}\\n\\n.guify-folder div {\\n display: inline-block;\\n vertical-align: sub;\\n line-height: calc(var(--size-component-height) + 5px);\\n}\\n\\n.guify-folder:hover,\\n.guify-folder:focus {\\n color: var(--color-text-hover);\\n background-color: var(--color-component-foreground);\\n outline: none;\\n}\\n\\n\\n.guify-folder-contents {\\n display: block;\\n box-sizing: border-box;\\n padding-left: 14px;\\n margin-bottom: 5px;\\n border-left: 2px solid var(--color-component-background);\\n}\\n\\n.guify-folder-contents.guify-folder-closed {\\n height: 0;\\n display: none;\\n}\\n\\n.guify-folder .guify-folder-arrow {\\n width: 1.5em;\\n}\\n\\n/* Disabled styles */\\n\\n.guify-folder.disabled {\\n pointer-events: none;\\n color: var(--color-text-disabled);\\n}\\n\\n.guify-folder.disabled + .guify-folder-contents {\\n pointer-events: none;\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/public/folder.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,eAAe;IACf,mBAAmB;IACnB,gCAAgC;AACpC;;AAEA;IACI,qBAAqB;IACrB,mBAAmB;IACnB,qDAAqD;AACzD;;AAEA;;IAEI,8BAA8B;IAC9B,mDAAmD;IACnD,aAAa;AACjB;;;AAGA;IACI,cAAc;IACd,sBAAsB;IACtB,kBAAkB;IAClB,kBAAkB;IAClB,wDAAwD;AAC5D;;AAEA;IACI,SAAS;IACT,aAAa;AACjB;;AAEA;IACI,YAAY;AAChB;;AAEA,oBAAoB;;AAEpB;IACI,oBAAoB;IACpB,iCAAiC;AACrC;;AAEA;IACI,oBAAoB;AACxB\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n.guify-folder {\\n cursor: pointer;\\n padding-left: 0.5em;\\n color: var(--color-text-primary);\\n}\\n\\n.guify-folder div {\\n display: inline-block;\\n vertical-align: sub;\\n line-height: calc(var(--size-component-height) + 5px);\\n}\\n\\n.guify-folder:hover,\\n.guify-folder:focus {\\n color: var(--color-text-hover);\\n background-color: var(--color-component-foreground);\\n outline: none;\\n}\\n\\n\\n.guify-folder-contents {\\n display: block;\\n box-sizing: border-box;\\n padding-left: 14px;\\n margin-bottom: 5px;\\n border-left: 2px solid var(--color-component-background);\\n}\\n\\n.guify-folder-contents.guify-folder-closed {\\n height: 0;\\n display: none;\\n}\\n\\n.guify-folder .guify-folder-arrow {\\n width: 1.5em;\\n}\\n\\n/* Disabled styles */\\n\\n.guify-folder.disabled {\\n pointer-events: none;\\n color: var(--color-text-disabled);\\n}\\n\\n.guify-folder.disabled + .guify-folder-contents {\\n pointer-events: none;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root {\\n --interval-track-color: var(--color-component-background);\\n --interval-thumb-color: var(--color-component-foreground);\\n --interval-thumb-highlight: var(--color-component-active);\\n\\n --interval-track-color-disabled: var(--color-component-background-disabled);\\n --interval-thumb-color-disabled: var(--color-text-disabled);\\n}\\n\\n.guify-interval {\\n -webkit-appearance: none;\\n position: absolute;\\n height: var(--size-component-height);\\n margin: 0px 0;\\n width: 33%;\\n left: 54.5%;\\n background-color: var(--color-component-background);\\n background-color: var(--interval-track-color);\\n cursor: ew-resize;\\n\\n -webkit-touch-callout: none;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n}\\n.guify-interval-handle {\\n background-color: var(--color-component-foreground);\\n background-color: var(--interval-thumb-color);\\n position: absolute;\\n height: var(--size-component-height);\\n min-width: 1px;\\n}\\n.guify-interval-handle:focus {\\n background: var(--color-component-active);\\n background: var(--interval-thumb-highlight);\\n}\\n\\n.disabled .guify-interval {\\n pointer-events: none;\\n background-color: var(--color-component-background-disabled);\\n background-color: var(--interval-track-color-disabled);\\n}\\n\\n.disabled .guify-interval .guify-interval-handle {\\n background: var(--color-text-disabled);\\n background: var(--interval-thumb-color-disabled);\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/public/interval.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,yDAAyD;IACzD,yDAAyD;IACzD,yDAAyD;;IAEzD,2EAA2E;IAC3E,2DAA2D;AAC/D;;AAEA;IACI,wBAAwB;IACxB,kBAAkB;IAClB,oCAAoC;IACpC,aAAa;IACb,UAAU;IACV,WAAW;IACX,mDAA6C;IAA7C,6CAA6C;IAC7C,iBAAiB;;IAEjB,2BAA2B;IAC3B,yBAAyB;IAEzB,sBAAsB;IACtB,qBAAqB;IACrB,iBAAiB;AACrB;AACA;IACI,mDAA6C;IAA7C,6CAA6C;IAC7C,kBAAkB;IAClB,oCAAoC;IACpC,cAAc;AAClB;AACA;IACI,yCAA2C;IAA3C,2CAA2C;AAC/C;;AAEA;IACI,oBAAoB;IACpB,4DAAsD;IAAtD,sDAAsD;AAC1D;;AAEA;IACI,sCAAgD;IAAhD,gDAAgD;AACpD\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n:root {\\n --interval-track-color: var(--color-component-background);\\n --interval-thumb-color: var(--color-component-foreground);\\n --interval-thumb-highlight: var(--color-component-active);\\n\\n --interval-track-color-disabled: var(--color-component-background-disabled);\\n --interval-thumb-color-disabled: var(--color-text-disabled);\\n}\\n\\n.guify-interval {\\n -webkit-appearance: none;\\n position: absolute;\\n height: var(--size-component-height);\\n margin: 0px 0;\\n width: 33%;\\n left: 54.5%;\\n background-color: var(--interval-track-color);\\n cursor: ew-resize;\\n\\n -webkit-touch-callout: none;\\n -webkit-user-select: none;\\n -khtml-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n}\\n.guify-interval-handle {\\n background-color: var(--interval-thumb-color);\\n position: absolute;\\n height: var(--size-component-height);\\n min-width: 1px;\\n}\\n.guify-interval-handle:focus {\\n background: var(--interval-thumb-highlight);\\n}\\n\\n.disabled .guify-interval {\\n pointer-events: none;\\n background-color: var(--interval-track-color-disabled);\\n}\\n\\n.disabled .guify-interval .guify-interval-handle {\\n background: var(--interval-thumb-color-disabled);\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root {\\n --range-track-color: var(--color-component-background);\\n --range-thumb-color: var(--color-component-foreground);\\n --range-thumb-highlight: var(--color-component-active);\\n\\n --range-track-color-disabled: var(--color-component-background-disabled);\\n --range-thumb-color-disabled: var(--color-text-disabled);\\n}\\n\\ninput[type=range].guify-range {\\n position: absolute; /* Gets rid of weird spacing below slider that I can't figure out the source of, seems internal */\\n -webkit-appearance: none;\\n width: 100%;\\n height: var(--size-component-height);\\n margin: 0px 0;\\n padding: 0;\\n display: inline-block;\\n}\\n\\n.disabled input[type=range].guify-range {\\n pointer-events: none;\\n}\\n\\n/* Remove outlines since we'll be adding our own */\\ninput[type=range].guify-range:focus {\\n outline: none;\\n}\\ninput[type=range].guify-range::-moz-focus-outer {\\n border: 0;\\n}\\n\\n/* Webkit */\\ninput[type=range].guify-range::-webkit-slider-runnable-track {\\n width: 100%;\\n height: var(--size-component-height);\\n cursor: ew-resize;\\n background: var(--color-component-background);\\n background: var(--range-track-color);\\n}\\ninput[type=range].guify-range::-webkit-slider-thumb {\\n height: var(--size-component-height);\\n width: 10px;\\n background: var(--color-component-foreground);\\n background: var(--range-thumb-color);\\n cursor: ew-resize;\\n -webkit-appearance: none;\\n margin-top: 0px;\\n}\\ninput[type=range].guify-range:focus::-webkit-slider-runnable-track {\\n background: var(--color-component-active);\\n background: var(--range-thumb-highlight);\\n outline: none;\\n}\\n\\n.disabled input[type=range].guify-range::-webkit-slider-runnable-track { /* Disabled track */\\n pointer-events: none;\\n background: var(--color-component-background-disabled);\\n background: var(--range-track-color-disabled);\\n}\\n\\n.disabled input[type=range].guify-range::-webkit-slider-thumb { /* Disabled thumb */\\n pointer-events: none;\\n background: var(--color-text-disabled);\\n}\\n\\n/* Gecko */\\ninput[type=range].guify-range::-moz-range-track {\\n width: 100%;\\n height: var(--size-component-height);\\n cursor: ew-resize;\\n background: var(--color-component-background);\\n background: var(--range-track-color);\\n}\\ninput[type=range].guify-range:focus::-moz-range-track {\\n background: var(--color-component-active);\\n background: var(--range-thumb-highlight);\\n}\\ninput[type=range].guify-range::-moz-range-thumb {\\n height: var(--size-component-height);\\n width: 10px;\\n background: var(--color-component-foreground);\\n background: var(--range-thumb-color);\\n cursor: ew-resize;\\n border: none;\\n border-radius: 0;\\n}\\n\\n.disabled input[type=range].guify-range::-moz-range-track { /* Disabled track */\\n pointer-events: none;\\n background: var(--color-component-background-disabled);\\n background: var(--range-track-color-disabled);\\n}\\n\\n.disabled input[type=range].guify-range::-moz-range-thumb { /* Disabled thumb */\\n pointer-events: none;\\n background: var(--color-text-disabled);\\n background: var(--range-thumb-color-disabled);\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/public/range.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,sDAAsD;IACtD,sDAAsD;IACtD,sDAAsD;;IAEtD,wEAAwE;IACxE,wDAAwD;AAC5D;;AAEA;IACI,kBAAkB,EAAE,iGAAiG;IACrH,wBAAwB;IACxB,WAAW;IACX,oCAAoC;IACpC,aAAa;IACb,UAAU;IACV,qBAAqB;AACzB;;AAEA;IACI,oBAAoB;AACxB;;AAEA,kDAAkD;AAClD;IACI,aAAa;AACjB;AACA;IACI,SAAS;AACb;;AAEA,WAAW;AACX;IACI,WAAW;IACX,oCAAoC;IACpC,iBAAiB;IACjB,6CAAoC;IAApC,oCAAoC;AACxC;AACA;IACI,oCAAoC;IACpC,WAAW;IACX,6CAAoC;IAApC,oCAAoC;IACpC,iBAAiB;IACjB,wBAAwB;IACxB,eAAe;AACnB;AACA;IACI,yCAAwC;IAAxC,wCAAwC;IACxC,aAAa;AACjB;;AAEA,yEAAyE,mBAAmB;IACxF,oBAAoB;IACpB,sDAA6C;IAA7C,6CAA6C;AACjD;;AAEA,gEAAgE,mBAAmB;IAC/E,oBAAoB;IACpB,sCAAsC;AAC1C;;AAEA,UAAU;AACV;IACI,WAAW;IACX,oCAAoC;IACpC,iBAAiB;IACjB,6CAAoC;IAApC,oCAAoC;AACxC;AACA;IACI,yCAAwC;IAAxC,wCAAwC;AAC5C;AACA;IACI,oCAAoC;IACpC,WAAW;IACX,6CAAoC;IAApC,oCAAoC;IACpC,iBAAiB;IACjB,YAAY;IACZ,gBAAgB;AACpB;;AAEA,4DAA4D,mBAAmB;IAC3E,oBAAoB;IACpB,sDAA6C;IAA7C,6CAA6C;AACjD;;AAEA,4DAA4D,mBAAmB;IAC3E,oBAAoB;IACpB,sCAA6C;IAA7C,6CAA6C;AACjD\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n:root {\\n --range-track-color: var(--color-component-background);\\n --range-thumb-color: var(--color-component-foreground);\\n --range-thumb-highlight: var(--color-component-active);\\n\\n --range-track-color-disabled: var(--color-component-background-disabled);\\n --range-thumb-color-disabled: var(--color-text-disabled);\\n}\\n\\ninput[type=range].guify-range {\\n position: absolute; /* Gets rid of weird spacing below slider that I can't figure out the source of, seems internal */\\n -webkit-appearance: none;\\n width: 100%;\\n height: var(--size-component-height);\\n margin: 0px 0;\\n padding: 0;\\n display: inline-block;\\n}\\n\\n.disabled input[type=range].guify-range {\\n pointer-events: none;\\n}\\n\\n/* Remove outlines since we'll be adding our own */\\ninput[type=range].guify-range:focus {\\n outline: none;\\n}\\ninput[type=range].guify-range::-moz-focus-outer {\\n border: 0;\\n}\\n\\n/* Webkit */\\ninput[type=range].guify-range::-webkit-slider-runnable-track {\\n width: 100%;\\n height: var(--size-component-height);\\n cursor: ew-resize;\\n background: var(--range-track-color);\\n}\\ninput[type=range].guify-range::-webkit-slider-thumb {\\n height: var(--size-component-height);\\n width: 10px;\\n background: var(--range-thumb-color);\\n cursor: ew-resize;\\n -webkit-appearance: none;\\n margin-top: 0px;\\n}\\ninput[type=range].guify-range:focus::-webkit-slider-runnable-track {\\n background: var(--range-thumb-highlight);\\n outline: none;\\n}\\n\\n.disabled input[type=range].guify-range::-webkit-slider-runnable-track { /* Disabled track */\\n pointer-events: none;\\n background: var(--range-track-color-disabled);\\n}\\n\\n.disabled input[type=range].guify-range::-webkit-slider-thumb { /* Disabled thumb */\\n pointer-events: none;\\n background: var(--color-text-disabled);\\n}\\n\\n/* Gecko */\\ninput[type=range].guify-range::-moz-range-track {\\n width: 100%;\\n height: var(--size-component-height);\\n cursor: ew-resize;\\n background: var(--range-track-color);\\n}\\ninput[type=range].guify-range:focus::-moz-range-track {\\n background: var(--range-thumb-highlight);\\n}\\ninput[type=range].guify-range::-moz-range-thumb {\\n height: var(--size-component-height);\\n width: 10px;\\n background: var(--range-thumb-color);\\n cursor: ew-resize;\\n border: none;\\n border-radius: 0;\\n}\\n\\n.disabled input[type=range].guify-range::-moz-range-track { /* Disabled track */\\n pointer-events: none;\\n background: var(--range-track-color-disabled);\\n}\\n\\n.disabled input[type=range].guify-range::-moz-range-thumb { /* Disabled thumb */\\n pointer-events: none;\\n background: var(--range-thumb-color-disabled);\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".guify-select-dropdown {\\n display: inline-block;\\n position: absolute;\\n width: calc(100% - var(--size-label-width));\\n padding-left: 1.5%;\\n height: var(--size-component-height);\\n border: none;\\n border-radius: 0;\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n -o-appearance:none;\\n appearance: none;\\n font-family: inherit;\\n background-color: var(--color-component-background);\\n color: var(--color-text-secondary);\\n box-sizing: border-box !important;\\n -moz-box-sizing: border-box !important;\\n -webkit-box-sizing: border-box !important;\\n}\\n\\n/* Disable default outline since we're providing our own */\\n.guify-select-dropdown:focus {\\n outline: none;\\n}\\n.guify-select-dropdown::-moz-focus-inner {\\n border: 0;\\n}\\n\\n\\n.guify-select-dropdown:focus,\\n.guify-select-dropdown:hover {\\n color: var(--color-text-hover);\\n background-color: var(--color-component-foreground);\\n}\\n\\n.guify-select-dropdown::-ms-expand {\\n display:none;\\n}\\n.guify-select-triangle {\\n content: ' ';\\n border-right: 3px solid transparent;\\n border-left: 3px solid transparent;\\n line-height: var(--size-component-height);\\n position: absolute;\\n right: 2.5%;\\n z-index: 1;\\n pointer-events: none;\\n}\\n\\n.guify-select-triangle--up {\\n bottom: 55%;\\n border-bottom: 5px solid var(--color-text-secondary);\\n border-top: 0px transparent;\\n}\\n\\n.guify-select-triangle--down {\\n top: 55%;\\n border-top: 5px solid var(--color-text-secondary);\\n border-bottom: 0px transparent;\\n}\\n\\n.guify-select-triangle--up-highlight {\\n border-bottom-color: var(--color-text-hover);\\n}\\n\\n.guify-select-triangle--down-highlight {\\n border-top-color: var(--color-text-hover);\\n}\\n\\n/* Disabled styles */\\n\\n.disabled .guify-select-dropdown {\\n pointer-events: none;\\n color: var(--color-text-disabled);\\n background-color: var(--color-component-background-disabled);\\n}\\n\\n.disabled *[class^=\\\"guify-select-triangle\\\"] {\\n border-color: var(--color-text-disabled);\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/public/select.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,qBAAqB;IACrB,kBAAkB;IAClB,2CAA2C;IAC3C,kBAAkB;IAClB,oCAAoC;IACpC,YAAY;IACZ,gBAAgB;IAChB,wBAAwB;IACxB,qBAAqB;IACrB,kBAAkB;IAClB,gBAAgB;IAChB,oBAAoB;IACpB,mDAAmD;IACnD,kCAAkC;IAClC,iCAAiC;IACjC,sCAAsC;IACtC,yCAAyC;AAC7C;;AAEA,0DAA0D;AAC1D;IACI,aAAa;AACjB;AACA;IACI,SAAS;AACb;;;AAGA;;IAEI,8BAA8B;IAC9B,mDAAmD;AACvD;;AAEA;IACI,YAAY;AAChB;AACA;IACI,YAAY;IACZ,mCAAmC;IACnC,kCAAkC;IAClC,yCAAyC;IACzC,kBAAkB;IAClB,WAAW;IACX,UAAU;IACV,oBAAoB;AACxB;;AAEA;IACI,WAAW;IACX,oDAAoD;IACpD,2BAA2B;AAC/B;;AAEA;IACI,QAAQ;IACR,iDAAiD;IACjD,8BAA8B;AAClC;;AAEA;IACI,4CAA4C;AAChD;;AAEA;IACI,yCAAyC;AAC7C;;AAEA,oBAAoB;;AAEpB;IACI,oBAAoB;IACpB,iCAAiC;IACjC,4DAA4D;AAChE;;AAEA;IACI,wCAAwC;AAC5C\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n.guify-select-dropdown {\\n display: inline-block;\\n position: absolute;\\n width: calc(100% - var(--size-label-width));\\n padding-left: 1.5%;\\n height: var(--size-component-height);\\n border: none;\\n border-radius: 0;\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n -o-appearance:none;\\n appearance: none;\\n font-family: inherit;\\n background-color: var(--color-component-background);\\n color: var(--color-text-secondary);\\n box-sizing: border-box !important;\\n -moz-box-sizing: border-box !important;\\n -webkit-box-sizing: border-box !important;\\n}\\n\\n/* Disable default outline since we're providing our own */\\n.guify-select-dropdown:focus {\\n outline: none;\\n}\\n.guify-select-dropdown::-moz-focus-inner {\\n border: 0;\\n}\\n\\n\\n.guify-select-dropdown:focus,\\n.guify-select-dropdown:hover {\\n color: var(--color-text-hover);\\n background-color: var(--color-component-foreground);\\n}\\n\\n.guify-select-dropdown::-ms-expand {\\n display:none;\\n}\\n.guify-select-triangle {\\n content: ' ';\\n border-right: 3px solid transparent;\\n border-left: 3px solid transparent;\\n line-height: var(--size-component-height);\\n position: absolute;\\n right: 2.5%;\\n z-index: 1;\\n pointer-events: none;\\n}\\n\\n.guify-select-triangle--up {\\n bottom: 55%;\\n border-bottom: 5px solid var(--color-text-secondary);\\n border-top: 0px transparent;\\n}\\n\\n.guify-select-triangle--down {\\n top: 55%;\\n border-top: 5px solid var(--color-text-secondary);\\n border-bottom: 0px transparent;\\n}\\n\\n.guify-select-triangle--up-highlight {\\n border-bottom-color: var(--color-text-hover);\\n}\\n\\n.guify-select-triangle--down-highlight {\\n border-top-color: var(--color-text-hover);\\n}\\n\\n/* Disabled styles */\\n\\n.disabled .guify-select-dropdown {\\n pointer-events: none;\\n color: var(--color-text-disabled);\\n background-color: var(--color-component-background-disabled);\\n}\\n\\n.disabled *[class^=\\\"guify-select-triangle\\\"] {\\n border-color: var(--color-text-disabled);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".guify-text-input {\\n position: absolute;\\n padding-left: 6px;\\n height: var(--size-component-height);\\n width: calc(100% - var(--size-label-width));\\n border: none;\\n background: var(--color-component-background);\\n color: var(--color-text-secondary);\\n font-family: inherit;\\n box-sizing: border-box !important;\\n resize: vertical;\\n}\\n\\n.guify-text-input:focus {\\n outline: none;\\n}\\n\\n.disabled .guify-text-input {\\n pointer-events: none;\\n color: var(--color-text-disabled);\\n background-color: var(--color-component-background-disabled);\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/public/text.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,kBAAkB;IAClB,iBAAiB;IACjB,oCAAoC;IACpC,2CAA2C;IAC3C,YAAY;IACZ,6CAA6C;IAC7C,kCAAkC;IAClC,oBAAoB;IACpB,iCAAiC;IACjC,gBAAgB;AACpB;;AAEA;IACI,aAAa;AACjB;;AAEA;IACI,oBAAoB;IACpB,iCAAiC;IACjC,4DAA4D;AAChE\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n.guify-text-input {\\n position: absolute;\\n padding-left: 6px;\\n height: var(--size-component-height);\\n width: calc(100% - var(--size-label-width));\\n border: none;\\n background: var(--color-component-background);\\n color: var(--color-text-secondary);\\n font-family: inherit;\\n box-sizing: border-box !important;\\n resize: vertical;\\n}\\n\\n.guify-text-input:focus {\\n outline: none;\\n}\\n\\n.disabled .guify-text-input {\\n pointer-events: none;\\n color: var(--color-text-disabled);\\n background-color: var(--color-component-background-disabled);\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js!../variables.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".guify-title {\\n box-sizing: border-box;\\n width: 100%;\\n display: inline-block;\\n height: var(--size-component-height);\\n vertical-align: top;\\n}\\n\\n.guify-title-text {\\n display: inline-block;\\n height: var(--size-component-height);\\n line-height: var(--size-component-height);\\n padding-left: 5px;\\n padding-right: 5px;\\n background-color: var(--color-text-primary);\\n color: var(--color-panel-background);\\n}\\n\\n/* Disabled style */\\n\\n.disabled .guify-title-text {\\n background-color: var(--color-text-disabled);\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/public/title.css\"],\"names\":[],\"mappings\":\"AAEA;IACI,sBAAsB;IACtB,WAAW;IACX,qBAAqB;IACrB,oCAAoC;IACpC,mBAAmB;AACvB;;AAEA;IACI,qBAAqB;IACrB,oCAAoC;IACpC,yCAAyC;IACzC,iBAAiB;IACjB,kBAAkB;IAClB,2CAA2C;IAC3C,oCAAoC;AACxC;;AAEA,mBAAmB;;AAEnB;IACI,4CAA4C;AAChD\",\"sourcesContent\":[\"@import \\\"../variables.css\\\";\\n\\n.guify-title {\\n box-sizing: border-box;\\n width: 100%;\\n display: inline-block;\\n height: var(--size-component-height);\\n vertical-align: top;\\n}\\n\\n.guify-title-text {\\n display: inline-block;\\n height: var(--size-component-height);\\n line-height: var(--size-component-height);\\n padding-left: 5px;\\n padding-right: 5px;\\n background-color: var(--color-text-primary);\\n color: var(--color-panel-background);\\n}\\n\\n/* Disabled style */\\n\\n.disabled .guify-title-text {\\n background-color: var(--color-text-disabled);\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root {\\n --color-menu-bar-background: \\\"black\\\";\\n --color-menu-bar-text: \\\"black\\\";\\n --color-panel-background: \\\"black\\\";\\n\\n --color-component-background: \\\"black\\\";\\n --color-component-background-hover: \\\"black\\\";\\n --color-component-background-disabled: \\\"black\\\";\\n --color-component-foreground: \\\"black\\\";\\n --color-component-active: \\\"black\\\";\\n\\n --color-text-primary: \\\"black\\\";\\n --color-text-secondary: \\\"black\\\";\\n --color-text-hover: \\\"black\\\";\\n --color-text-active: \\\"black\\\";\\n --color-text-disabled: \\\"black\\\";\\n\\n --size-menu-bar-height: 25px;\\n --size-component-height: 2rem;\\n --size-component-spacing: 5px;\\n --size-label-width: 42%;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/variables.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,oCAAoC;IACpC,8BAA8B;IAC9B,iCAAiC;;IAEjC,qCAAqC;IACrC,2CAA2C;IAC3C,8CAA8C;IAC9C,qCAAqC;IACrC,iCAAiC;;IAEjC,6BAA6B;IAC7B,+BAA+B;IAC/B,2BAA2B;IAC3B,4BAA4B;IAC5B,8BAA8B;;IAE9B,4BAA4B;IAC5B,6BAA6B;IAC7B,6BAA6B;IAC7B,uBAAuB;AAC3B\",\"sourcesContent\":[\":root {\\n --color-menu-bar-background: \\\"black\\\";\\n --color-menu-bar-text: \\\"black\\\";\\n --color-panel-background: \\\"black\\\";\\n\\n --color-component-background: \\\"black\\\";\\n --color-component-background-hover: \\\"black\\\";\\n --color-component-background-disabled: \\\"black\\\";\\n --color-component-foreground: \\\"black\\\";\\n --color-component-active: \\\"black\\\";\\n\\n --color-text-primary: \\\"black\\\";\\n --color-text-secondary: \\\"black\\\";\\n --color-text-hover: \\\"black\\\";\\n --color-text-active: \\\"black\\\";\\n --color-text-disabled: \\\"black\\\";\\n\\n --size-menu-bar-height: 25px;\\n --size-component-height: 2rem;\\n --size-component-spacing: 5px;\\n --size-label-width: 42%;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n\n content += cssWithMappingToString(item);\n\n if (needLayer) {\n content += \"}\";\n }\n\n if (item[2]) {\n content += \"}\";\n }\n\n if (item[4]) {\n content += \"}\";\n }\n\n return content;\n }).join(\"\");\n }; // import a list of modules into the list\n\n\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n\n return [content].join(\"\\n\");\n};","var prefix = require('prefix-style')\nvar toCamelCase = require('to-camel-case')\nvar cache = { 'float': 'cssFloat' }\nvar addPxToStyle = require('add-px-to-style')\n\nfunction style (element, property, value) {\n var camel = cache[property]\n if (typeof camel === 'undefined') {\n camel = detect(property)\n }\n\n // may be false if CSS prop is unsupported\n if (camel) {\n if (value === undefined) {\n return element.style[camel]\n }\n\n element.style[camel] = addPxToStyle(camel, value)\n }\n}\n\nfunction each (element, properties) {\n for (var k in properties) {\n if (properties.hasOwnProperty(k)) {\n style(element, k, properties[k])\n }\n }\n}\n\nfunction detect (cssProp) {\n var camel = toCamelCase(cssProp)\n var result = prefix(camel)\n cache[camel] = cache[cssProp] = cache[result] = result\n return result\n}\n\nfunction set () {\n if (arguments.length === 2) {\n if (typeof arguments[1] === 'string') {\n arguments[0].style.cssText = arguments[1]\n } else {\n each(arguments[0], arguments[1])\n }\n } else {\n style(arguments[0], arguments[1], arguments[2])\n }\n}\n\nmodule.exports = set\nmodule.exports.set = set\n\nmodule.exports.get = function (element, properties) {\n if (Array.isArray(properties)) {\n return properties.reduce(function (obj, prop) {\n obj[prop] = style(element, prop || '')\n return obj\n }, {})\n } else {\n return style(element, properties || '')\n }\n}\n","var containers = []; // will store container HTMLElement references\nvar styleElements = []; // will store {prepend: HTMLElement, append: HTMLElement}\n\nvar usage = 'insert-css: You need to provide a CSS string. Usage: insertCss(cssString[, options]).';\n\nfunction insertCss(css, options) {\n options = options || {};\n\n if (css === undefined) {\n throw new Error(usage);\n }\n\n var position = options.prepend === true ? 'prepend' : 'append';\n var container = options.container !== undefined ? options.container : document.querySelector('head');\n var containerId = containers.indexOf(container);\n\n // first time we see this container, create the necessary entries\n if (containerId === -1) {\n containerId = containers.push(container) - 1;\n styleElements[containerId] = {};\n }\n\n // try to get the correponding container + position styleElement, create it otherwise\n var styleElement;\n\n if (styleElements[containerId] !== undefined && styleElements[containerId][position] !== undefined) {\n styleElement = styleElements[containerId][position];\n } else {\n styleElement = styleElements[containerId][position] = createStyleElement();\n\n if (position === 'prepend') {\n container.insertBefore(styleElement, container.childNodes[0]);\n } else {\n container.appendChild(styleElement);\n }\n }\n\n // strip potential UTF-8 BOM if css was read from a file\n if (css.charCodeAt(0) === 0xFEFF) { css = css.substr(1, css.length); }\n\n // actually add the stylesheet\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText += css\n } else {\n styleElement.textContent += css;\n }\n\n return styleElement;\n};\n\nfunction createStyleElement() {\n var styleElement = document.createElement('style');\n styleElement.setAttribute('type', 'text/css');\n return styleElement;\n}\n\nmodule.exports = insertCss;\nmodule.exports.insertCss = insertCss;\n","(function(root) {\n 'use strict';\n\n function isNumeric(v) {\n if (typeof v === 'number' && !isNaN(v)) return true;\n v = (v||'').toString().trim();\n if (!v) return false;\n return !isNaN(v);\n }\n\n if (typeof exports !== 'undefined') {\n if (typeof module !== 'undefined' && module.exports) {\n exports = module.exports = isNumeric;\n }\n exports.isNumeric = isNumeric;\n } else if (typeof define === 'function' && define.amd) {\n define([], function() {\n return isNumeric;\n });\n } else {\n root.isNumeric = isNumeric;\n }\n\n})(this);\n","var div = null\nvar prefixes = [ 'Webkit', 'Moz', 'O', 'ms' ]\n\nmodule.exports = function prefixStyle (prop) {\n // re-use a dummy div\n if (!div) {\n div = document.createElement('div')\n }\n\n var style = div.style\n\n // prop exists without prefix\n if (prop in style) {\n return prop\n }\n\n // borderRadius -> BorderRadius\n var titleCase = prop.charAt(0).toUpperCase() + prop.slice(1)\n\n // find the vendor-prefixed prop\n for (var i = prefixes.length; i >= 0; i--) {\n var name = prefixes[i] + titleCase\n // e.g. WebkitBorderRadius or webkitBorderRadius\n if (name in style) {\n return name\n }\n }\n\n return false\n}\n","/*!\n* screenfull\n* v5.0.0 - 2019-09-09\n* (c) Sindre Sorhus; MIT License\n*/\n(function () {\n\t'use strict';\n\n\tvar document = typeof window !== 'undefined' && typeof window.document !== 'undefined' ? window.document : {};\n\tvar isCommonjs = typeof module !== 'undefined' && module.exports;\n\n\tvar fn = (function () {\n\t\tvar val;\n\n\t\tvar fnMap = [\n\t\t\t[\n\t\t\t\t'requestFullscreen',\n\t\t\t\t'exitFullscreen',\n\t\t\t\t'fullscreenElement',\n\t\t\t\t'fullscreenEnabled',\n\t\t\t\t'fullscreenchange',\n\t\t\t\t'fullscreenerror'\n\t\t\t],\n\t\t\t// New WebKit\n\t\t\t[\n\t\t\t\t'webkitRequestFullscreen',\n\t\t\t\t'webkitExitFullscreen',\n\t\t\t\t'webkitFullscreenElement',\n\t\t\t\t'webkitFullscreenEnabled',\n\t\t\t\t'webkitfullscreenchange',\n\t\t\t\t'webkitfullscreenerror'\n\n\t\t\t],\n\t\t\t// Old WebKit\n\t\t\t[\n\t\t\t\t'webkitRequestFullScreen',\n\t\t\t\t'webkitCancelFullScreen',\n\t\t\t\t'webkitCurrentFullScreenElement',\n\t\t\t\t'webkitCancelFullScreen',\n\t\t\t\t'webkitfullscreenchange',\n\t\t\t\t'webkitfullscreenerror'\n\n\t\t\t],\n\t\t\t[\n\t\t\t\t'mozRequestFullScreen',\n\t\t\t\t'mozCancelFullScreen',\n\t\t\t\t'mozFullScreenElement',\n\t\t\t\t'mozFullScreenEnabled',\n\t\t\t\t'mozfullscreenchange',\n\t\t\t\t'mozfullscreenerror'\n\t\t\t],\n\t\t\t[\n\t\t\t\t'msRequestFullscreen',\n\t\t\t\t'msExitFullscreen',\n\t\t\t\t'msFullscreenElement',\n\t\t\t\t'msFullscreenEnabled',\n\t\t\t\t'MSFullscreenChange',\n\t\t\t\t'MSFullscreenError'\n\t\t\t]\n\t\t];\n\n\t\tvar i = 0;\n\t\tvar l = fnMap.length;\n\t\tvar ret = {};\n\n\t\tfor (; i < l; i++) {\n\t\t\tval = fnMap[i];\n\t\t\tif (val && val[1] in document) {\n\t\t\t\tfor (i = 0; i < val.length; i++) {\n\t\t\t\t\tret[fnMap[0][i]] = val[i];\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t})();\n\n\tvar eventNameMap = {\n\t\tchange: fn.fullscreenchange,\n\t\terror: fn.fullscreenerror\n\t};\n\n\tvar screenfull = {\n\t\trequest: function (element) {\n\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\tvar onFullScreenEntered = function () {\n\t\t\t\t\tthis.off('change', onFullScreenEntered);\n\t\t\t\t\tresolve();\n\t\t\t\t}.bind(this);\n\n\t\t\t\tthis.on('change', onFullScreenEntered);\n\n\t\t\t\telement = element || document.documentElement;\n\n\t\t\t\tPromise.resolve(element[fn.requestFullscreen]()).catch(reject);\n\t\t\t}.bind(this));\n\t\t},\n\t\texit: function () {\n\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\tif (!this.isFullscreen) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar onFullScreenExit = function () {\n\t\t\t\t\tthis.off('change', onFullScreenExit);\n\t\t\t\t\tresolve();\n\t\t\t\t}.bind(this);\n\n\t\t\t\tthis.on('change', onFullScreenExit);\n\n\t\t\t\tPromise.resolve(document[fn.exitFullscreen]()).catch(reject);\n\t\t\t}.bind(this));\n\t\t},\n\t\ttoggle: function (element) {\n\t\t\treturn this.isFullscreen ? this.exit() : this.request(element);\n\t\t},\n\t\tonchange: function (callback) {\n\t\t\tthis.on('change', callback);\n\t\t},\n\t\tonerror: function (callback) {\n\t\t\tthis.on('error', callback);\n\t\t},\n\t\ton: function (event, callback) {\n\t\t\tvar eventName = eventNameMap[event];\n\t\t\tif (eventName) {\n\t\t\t\tdocument.addEventListener(eventName, callback, false);\n\t\t\t}\n\t\t},\n\t\toff: function (event, callback) {\n\t\t\tvar eventName = eventNameMap[event];\n\t\t\tif (eventName) {\n\t\t\t\tdocument.removeEventListener(eventName, callback, false);\n\t\t\t}\n\t\t},\n\t\traw: fn\n\t};\n\n\tif (!fn) {\n\t\tif (isCommonjs) {\n\t\t\tmodule.exports = {isEnabled: false};\n\t\t} else {\n\t\t\twindow.screenfull = {isEnabled: false};\n\t\t}\n\n\t\treturn;\n\t}\n\n\tObject.defineProperties(screenfull, {\n\t\tisFullscreen: {\n\t\t\tget: function () {\n\t\t\t\treturn Boolean(document[fn.fullscreenElement]);\n\t\t\t}\n\t\t},\n\t\telement: {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\treturn document[fn.fullscreenElement];\n\t\t\t}\n\t\t},\n\t\tisEnabled: {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\t// Coerce to boolean in case of old WebKit\n\t\t\t\treturn Boolean(document[fn.fullscreenEnabled]);\n\t\t\t}\n\t\t}\n\t});\n\n\tif (isCommonjs) {\n\t\tmodule.exports = screenfull;\n\t} else {\n\t\twindow.screenfull = screenfull;\n\t}\n})();\n","\"use strict\";\n\nvar stylesInDOM = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n\n return updater;\n}\n\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n\n stylesInDOM.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n/* istanbul ignore next */\n\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n}\n/* istanbul ignore next */\n\n\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n}\n\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\n\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\n\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n\n var needLayer = typeof obj.layer !== \"undefined\";\n\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n\n css += obj.css;\n\n if (needLayer) {\n css += \"}\";\n }\n\n if (obj.media) {\n css += \"}\";\n }\n\n if (obj.supports) {\n css += \"}\";\n }\n\n var sourceMap = obj.sourceMap;\n\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n options.styleTagTransform(css, styleElement, options.options);\n}\n\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n\n styleElement.parentNode.removeChild(styleElement);\n}\n/* istanbul ignore next */\n\n\nfunction domAPI(options) {\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\n\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n\n styleElement.appendChild(document.createTextNode(css));\n }\n}\n\nmodule.exports = styleTagTransform;","// TinyColor v1.4.1\n// https://github.com/bgrins/TinyColor\n// Brian Grinstead, MIT License\n\n(function(Math) {\n\nvar trimLeft = /^\\s+/,\n trimRight = /\\s+$/,\n tinyCounter = 0,\n mathRound = Math.round,\n mathMin = Math.min,\n mathMax = Math.max,\n mathRandom = Math.random;\n\nfunction tinycolor (color, opts) {\n\n color = (color) ? color : '';\n opts = opts || { };\n\n // If input is already a tinycolor, return itself\n if (color instanceof tinycolor) {\n return color;\n }\n // If we are called as a function, call using new instead\n if (!(this instanceof tinycolor)) {\n return new tinycolor(color, opts);\n }\n\n var rgb = inputToRGB(color);\n this._originalInput = color,\n this._r = rgb.r,\n this._g = rgb.g,\n this._b = rgb.b,\n this._a = rgb.a,\n this._roundA = mathRound(100*this._a) / 100,\n this._format = opts.format || rgb.format;\n this._gradientType = opts.gradientType;\n\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this._r < 1) { this._r = mathRound(this._r); }\n if (this._g < 1) { this._g = mathRound(this._g); }\n if (this._b < 1) { this._b = mathRound(this._b); }\n\n this._ok = rgb.ok;\n this._tc_id = tinyCounter++;\n}\n\ntinycolor.prototype = {\n isDark: function() {\n return this.getBrightness() < 128;\n },\n isLight: function() {\n return !this.isDark();\n },\n isValid: function() {\n return this._ok;\n },\n getOriginalInput: function() {\n return this._originalInput;\n },\n getFormat: function() {\n return this._format;\n },\n getAlpha: function() {\n return this._a;\n },\n getBrightness: function() {\n //http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n },\n getLuminance: function() {\n //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var RsRGB, GsRGB, BsRGB, R, G, B;\n RsRGB = rgb.r/255;\n GsRGB = rgb.g/255;\n BsRGB = rgb.b/255;\n\n if (RsRGB <= 0.03928) {R = RsRGB / 12.92;} else {R = Math.pow(((RsRGB + 0.055) / 1.055), 2.4);}\n if (GsRGB <= 0.03928) {G = GsRGB / 12.92;} else {G = Math.pow(((GsRGB + 0.055) / 1.055), 2.4);}\n if (BsRGB <= 0.03928) {B = BsRGB / 12.92;} else {B = Math.pow(((BsRGB + 0.055) / 1.055), 2.4);}\n return (0.2126 * R) + (0.7152 * G) + (0.0722 * B);\n },\n setAlpha: function(value) {\n this._a = boundAlpha(value);\n this._roundA = mathRound(100*this._a) / 100;\n return this;\n },\n toHsv: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a };\n },\n toHsvString: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n var h = mathRound(hsv.h * 360), s = mathRound(hsv.s * 100), v = mathRound(hsv.v * 100);\n return (this._a == 1) ?\n \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\" :\n \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \"+ this._roundA + \")\";\n },\n toHsl: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a };\n },\n toHslString: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n var h = mathRound(hsl.h * 360), s = mathRound(hsl.s * 100), l = mathRound(hsl.l * 100);\n return (this._a == 1) ?\n \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\" :\n \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \"+ this._roundA + \")\";\n },\n toHex: function(allow3Char) {\n return rgbToHex(this._r, this._g, this._b, allow3Char);\n },\n toHexString: function(allow3Char) {\n return '#' + this.toHex(allow3Char);\n },\n toHex8: function(allow4Char) {\n return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n },\n toHex8String: function(allow4Char) {\n return '#' + this.toHex8(allow4Char);\n },\n toRgb: function() {\n return { r: mathRound(this._r), g: mathRound(this._g), b: mathRound(this._b), a: this._a };\n },\n toRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \")\" :\n \"rgba(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \", \" + this._roundA + \")\";\n },\n toPercentageRgb: function() {\n return { r: mathRound(bound01(this._r, 255) * 100) + \"%\", g: mathRound(bound01(this._g, 255) * 100) + \"%\", b: mathRound(bound01(this._b, 255) * 100) + \"%\", a: this._a };\n },\n toPercentageRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%)\" :\n \"rgba(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n },\n toName: function() {\n if (this._a === 0) {\n return \"transparent\";\n }\n\n if (this._a < 1) {\n return false;\n }\n\n return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n },\n toFilter: function(secondColor) {\n var hex8String = '#' + rgbaToArgbHex(this._r, this._g, this._b, this._a);\n var secondHex8String = hex8String;\n var gradientType = this._gradientType ? \"GradientType = 1, \" : \"\";\n\n if (secondColor) {\n var s = tinycolor(secondColor);\n secondHex8String = '#' + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n }\n\n return \"progid:DXImageTransform.Microsoft.gradient(\"+gradientType+\"startColorstr=\"+hex8String+\",endColorstr=\"+secondHex8String+\")\";\n },\n toString: function(format) {\n var formatSet = !!format;\n format = format || this._format;\n\n var formattedString = false;\n var hasAlpha = this._a < 1 && this._a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format === \"hex\" || format === \"hex6\" || format === \"hex3\" || format === \"hex4\" || format === \"hex8\" || format === \"name\");\n\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === \"name\" && this._a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === \"rgb\") {\n formattedString = this.toRgbString();\n }\n if (format === \"prgb\") {\n formattedString = this.toPercentageRgbString();\n }\n if (format === \"hex\" || format === \"hex6\") {\n formattedString = this.toHexString();\n }\n if (format === \"hex3\") {\n formattedString = this.toHexString(true);\n }\n if (format === \"hex4\") {\n formattedString = this.toHex8String(true);\n }\n if (format === \"hex8\") {\n formattedString = this.toHex8String();\n }\n if (format === \"name\") {\n formattedString = this.toName();\n }\n if (format === \"hsl\") {\n formattedString = this.toHslString();\n }\n if (format === \"hsv\") {\n formattedString = this.toHsvString();\n }\n\n return formattedString || this.toHexString();\n },\n clone: function() {\n return tinycolor(this.toString());\n },\n\n _applyModification: function(fn, args) {\n var color = fn.apply(null, [this].concat([].slice.call(args)));\n this._r = color._r;\n this._g = color._g;\n this._b = color._b;\n this.setAlpha(color._a);\n return this;\n },\n lighten: function() {\n return this._applyModification(lighten, arguments);\n },\n brighten: function() {\n return this._applyModification(brighten, arguments);\n },\n darken: function() {\n return this._applyModification(darken, arguments);\n },\n desaturate: function() {\n return this._applyModification(desaturate, arguments);\n },\n saturate: function() {\n return this._applyModification(saturate, arguments);\n },\n greyscale: function() {\n return this._applyModification(greyscale, arguments);\n },\n spin: function() {\n return this._applyModification(spin, arguments);\n },\n\n _applyCombination: function(fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function() {\n return this._applyCombination(analogous, arguments);\n },\n complement: function() {\n return this._applyCombination(complement, arguments);\n },\n monochromatic: function() {\n return this._applyCombination(monochromatic, arguments);\n },\n splitcomplement: function() {\n return this._applyCombination(splitcomplement, arguments);\n },\n triad: function() {\n return this._applyCombination(triad, arguments);\n },\n tetrad: function() {\n return this._applyCombination(tetrad, arguments);\n }\n};\n\n// If input is an object, force 1 into \"1.0\" to handle ratios properly\n// String input requires \"1.0\" as input, so 1 will be treated as 1\ntinycolor.fromRatio = function(color, opts) {\n if (typeof color == \"object\") {\n var newColor = {};\n for (var i in color) {\n if (color.hasOwnProperty(i)) {\n if (i === \"a\") {\n newColor[i] = color[i];\n }\n else {\n newColor[i] = convertToPercentage(color[i]);\n }\n }\n }\n color = newColor;\n }\n\n return tinycolor(color, opts);\n};\n\n// Given a string or object, convert that input to RGB\n// Possible string inputs:\n//\n// \"red\"\n// \"#f00\" or \"f00\"\n// \"#ff0000\" or \"ff0000\"\n// \"#ff000000\" or \"ff000000\"\n// \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n// \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n// \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n// \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n// \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n// \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n// \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n//\nfunction inputToRGB(color) {\n\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n\n if (typeof color == \"string\") {\n color = stringInputToObject(color);\n }\n\n if (typeof color == \"object\") {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === \"%\" ? \"prgb\" : \"rgb\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = \"hsv\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = \"hsl\";\n }\n\n if (color.hasOwnProperty(\"a\")) {\n a = color.a;\n }\n }\n\n a = boundAlpha(a);\n\n return {\n ok: ok,\n format: color.format || format,\n r: mathMin(255, mathMax(rgb.r, 0)),\n g: mathMin(255, mathMax(rgb.g, 0)),\n b: mathMin(255, mathMax(rgb.b, 0)),\n a: a\n };\n}\n\n\n// Conversion Functions\n// --------------------\n\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// \n\n// `rgbToRgb`\n// Handle bounds / percentage checking to conform to CSS color spec\n// \n// *Assumes:* r, g, b in [0, 255] or [0, 1]\n// *Returns:* { r, g, b } in [0, 255]\nfunction rgbToRgb(r, g, b){\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255\n };\n}\n\n// `rgbToHsl`\n// Converts an RGB color value to HSL.\n// *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n// *Returns:* { h, s, l } in [0,1]\nfunction rgbToHsl(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, l = (max + min) / 2;\n\n if(max == min) {\n h = s = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n\n h /= 6;\n }\n\n return { h: h, s: s, l: l };\n}\n\n// `hslToRgb`\n// Converts an HSL color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hslToRgb(h, s, l) {\n var r, g, b;\n\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n\n function hue2rgb(p, q, t) {\n if(t < 0) t += 1;\n if(t > 1) t -= 1;\n if(t < 1/6) return p + (q - p) * 6 * t;\n if(t < 1/2) return q;\n if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;\n return p;\n }\n\n if(s === 0) {\n r = g = b = l; // achromatic\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1/3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1/3);\n }\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHsv`\n// Converts an RGB color value to HSV\n// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n// *Returns:* { h, s, v } in [0,1]\nfunction rgbToHsv(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, v = max;\n\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n\n if(max == min) {\n h = 0; // achromatic\n }\n else {\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n\n// `hsvToRgb`\n// Converts an HSV color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\n function hsvToRgb(h, s, v) {\n\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n\n var i = Math.floor(h),\n f = h - i,\n p = v * (1 - s),\n q = v * (1 - f * s),\n t = v * (1 - (1 - f) * s),\n mod = i % 6,\n r = [v, q, p, p, t, v][mod],\n g = [t, v, v, q, p, p][mod],\n b = [p, p, t, v, v, q][mod];\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHex`\n// Converts an RGB color to hex\n// Assumes r, g, and b are contained in the set [0, 255]\n// Returns a 3 or 6 character hex\nfunction rgbToHex(r, g, b, allow3Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n // Return a 3 character hex if possible\n if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToHex`\n// Converts an RGBA color plus alpha transparency to hex\n// Assumes r, g, b are contained in the set [0, 255] and\n// a in [0, 1]. Returns a 4 or 8 character rgba hex\nfunction rgbaToHex(r, g, b, a, allow4Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16)),\n pad2(convertDecimalToHex(a))\n ];\n\n // Return a 4 character hex if possible\n if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToArgbHex`\n// Converts an RGBA color to an ARGB Hex8 string\n// Rarely used, but required for \"toFilter()\"\nfunction rgbaToArgbHex(r, g, b, a) {\n\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n return hex.join(\"\");\n}\n\n// `equals`\n// Can be called with any tinycolor input\ntinycolor.equals = function (color1, color2) {\n if (!color1 || !color2) { return false; }\n return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n};\n\ntinycolor.random = function() {\n return tinycolor.fromRatio({\n r: mathRandom(),\n g: mathRandom(),\n b: mathRandom()\n });\n};\n\n\n// Modification Functions\n// ----------------------\n// Thanks to less.js for some of the basics here\n// \n\nfunction desaturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction saturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction greyscale(color) {\n return tinycolor(color).desaturate(100);\n}\n\nfunction lighten (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\nfunction brighten(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var rgb = tinycolor(color).toRgb();\n rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * - (amount / 100))));\n rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * - (amount / 100))));\n rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * - (amount / 100))));\n return tinycolor(rgb);\n}\n\nfunction darken (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\n// Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n// Values outside of this range will be wrapped into this range.\nfunction spin(color, amount) {\n var hsl = tinycolor(color).toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return tinycolor(hsl);\n}\n\n// Combination Functions\n// ---------------------\n// Thanks to jQuery xColor for some of the ideas behind these\n// \n\nfunction complement(color) {\n var hsl = tinycolor(color).toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return tinycolor(hsl);\n}\n\nfunction triad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction tetrad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction splitcomplement(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l}),\n tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l})\n ];\n}\n\nfunction analogous(color, results, slices) {\n results = results || 6;\n slices = slices || 30;\n\n var hsl = tinycolor(color).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color)];\n\n for (hsl.h = ((hsl.h - (part * results >> 1)) + 720) % 360; --results; ) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(tinycolor(hsl));\n }\n return ret;\n}\n\nfunction monochromatic(color, results) {\n results = results || 6;\n var hsv = tinycolor(color).toHsv();\n var h = hsv.h, s = hsv.s, v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n\n while (results--) {\n ret.push(tinycolor({ h: h, s: s, v: v}));\n v = (v + modification) % 1;\n }\n\n return ret;\n}\n\n// Utility Functions\n// ---------------------\n\ntinycolor.mix = function(color1, color2, amount) {\n amount = (amount === 0) ? 0 : (amount || 50);\n\n var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n\n var p = amount / 100;\n\n var rgba = {\n r: ((rgb2.r - rgb1.r) * p) + rgb1.r,\n g: ((rgb2.g - rgb1.g) * p) + rgb1.g,\n b: ((rgb2.b - rgb1.b) * p) + rgb1.b,\n a: ((rgb2.a - rgb1.a) * p) + rgb1.a\n };\n\n return tinycolor(rgba);\n};\n\n\n// Readability Functions\n// ---------------------\n// false\n// tinycolor.isReadable(\"#000\", \"#111\",{level:\"AA\",size:\"large\"}) => false\ntinycolor.isReadable = function(color1, color2, wcag2) {\n var readability = tinycolor.readability(color1, color2);\n var wcag2Parms, out;\n\n out = false;\n\n wcag2Parms = validateWCAG2Parms(wcag2);\n switch (wcag2Parms.level + wcag2Parms.size) {\n case \"AAsmall\":\n case \"AAAlarge\":\n out = readability >= 4.5;\n break;\n case \"AAlarge\":\n out = readability >= 3;\n break;\n case \"AAAsmall\":\n out = readability >= 7;\n break;\n }\n return out;\n\n};\n\n// `mostReadable`\n// Given a base color and a list of possible foreground or background\n// colors for that base, returns the most readable color.\n// Optionally returns Black or White if the most readable color is unreadable.\n// *Example*\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:false}).toHexString(); // \"#112255\"\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:true}).toHexString(); // \"#ffffff\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"large\"}).toHexString(); // \"#faf3f3\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"small\"}).toHexString(); // \"#ffffff\"\ntinycolor.mostReadable = function(baseColor, colorList, args) {\n var bestColor = null;\n var bestScore = 0;\n var readability;\n var includeFallbackColors, level, size ;\n args = args || {};\n includeFallbackColors = args.includeFallbackColors ;\n level = args.level;\n size = args.size;\n\n for (var i= 0; i < colorList.length ; i++) {\n readability = tinycolor.readability(baseColor, colorList[i]);\n if (readability > bestScore) {\n bestScore = readability;\n bestColor = tinycolor(colorList[i]);\n }\n }\n\n if (tinycolor.isReadable(baseColor, bestColor, {\"level\":level,\"size\":size}) || !includeFallbackColors) {\n return bestColor;\n }\n else {\n args.includeFallbackColors=false;\n return tinycolor.mostReadable(baseColor,[\"#fff\", \"#000\"],args);\n }\n};\n\n\n// Big List of Colors\n// ------------------\n// \nvar names = tinycolor.names = {\n aliceblue: \"f0f8ff\",\n antiquewhite: \"faebd7\",\n aqua: \"0ff\",\n aquamarine: \"7fffd4\",\n azure: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"000\",\n blanchedalmond: \"ffebcd\",\n blue: \"00f\",\n blueviolet: \"8a2be2\",\n brown: \"a52a2a\",\n burlywood: \"deb887\",\n burntsienna: \"ea7e5d\",\n cadetblue: \"5f9ea0\",\n chartreuse: \"7fff00\",\n chocolate: \"d2691e\",\n coral: \"ff7f50\",\n cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"0ff\",\n darkblue: \"00008b\",\n darkcyan: \"008b8b\",\n darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\",\n darkgreen: \"006400\",\n darkgrey: \"a9a9a9\",\n darkkhaki: \"bdb76b\",\n darkmagenta: \"8b008b\",\n darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\",\n darkorchid: \"9932cc\",\n darkred: \"8b0000\",\n darksalmon: \"e9967a\",\n darkseagreen: \"8fbc8f\",\n darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\",\n darkslategrey: \"2f4f4f\",\n darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\",\n deeppink: \"ff1493\",\n deepskyblue: \"00bfff\",\n dimgray: \"696969\",\n dimgrey: \"696969\",\n dodgerblue: \"1e90ff\",\n firebrick: \"b22222\",\n floralwhite: \"fffaf0\",\n forestgreen: \"228b22\",\n fuchsia: \"f0f\",\n gainsboro: \"dcdcdc\",\n ghostwhite: \"f8f8ff\",\n gold: \"ffd700\",\n goldenrod: \"daa520\",\n gray: \"808080\",\n green: \"008000\",\n greenyellow: \"adff2f\",\n grey: \"808080\",\n honeydew: \"f0fff0\",\n hotpink: \"ff69b4\",\n indianred: \"cd5c5c\",\n indigo: \"4b0082\",\n ivory: \"fffff0\",\n khaki: \"f0e68c\",\n lavender: \"e6e6fa\",\n lavenderblush: \"fff0f5\",\n lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\",\n lightblue: \"add8e6\",\n lightcoral: \"f08080\",\n lightcyan: \"e0ffff\",\n lightgoldenrodyellow: \"fafad2\",\n lightgray: \"d3d3d3\",\n lightgreen: \"90ee90\",\n lightgrey: \"d3d3d3\",\n lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\",\n lightseagreen: \"20b2aa\",\n lightskyblue: \"87cefa\",\n lightslategray: \"789\",\n lightslategrey: \"789\",\n lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\",\n lime: \"0f0\",\n limegreen: \"32cd32\",\n linen: \"faf0e6\",\n magenta: \"f0f\",\n maroon: \"800000\",\n mediumaquamarine: \"66cdaa\",\n mediumblue: \"0000cd\",\n mediumorchid: \"ba55d3\",\n mediumpurple: \"9370db\",\n mediumseagreen: \"3cb371\",\n mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\",\n mediumturquoise: \"48d1cc\",\n mediumvioletred: \"c71585\",\n midnightblue: \"191970\",\n mintcream: \"f5fffa\",\n mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\",\n navajowhite: \"ffdead\",\n navy: \"000080\",\n oldlace: \"fdf5e6\",\n olive: \"808000\",\n olivedrab: \"6b8e23\",\n orange: \"ffa500\",\n orangered: \"ff4500\",\n orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\",\n palegreen: \"98fb98\",\n paleturquoise: \"afeeee\",\n palevioletred: \"db7093\",\n papayawhip: \"ffefd5\",\n peachpuff: \"ffdab9\",\n peru: \"cd853f\",\n pink: \"ffc0cb\",\n plum: \"dda0dd\",\n powderblue: \"b0e0e6\",\n purple: \"800080\",\n rebeccapurple: \"663399\",\n red: \"f00\",\n rosybrown: \"bc8f8f\",\n royalblue: \"4169e1\",\n saddlebrown: \"8b4513\",\n salmon: \"fa8072\",\n sandybrown: \"f4a460\",\n seagreen: \"2e8b57\",\n seashell: \"fff5ee\",\n sienna: \"a0522d\",\n silver: \"c0c0c0\",\n skyblue: \"87ceeb\",\n slateblue: \"6a5acd\",\n slategray: \"708090\",\n slategrey: \"708090\",\n snow: \"fffafa\",\n springgreen: \"00ff7f\",\n steelblue: \"4682b4\",\n tan: \"d2b48c\",\n teal: \"008080\",\n thistle: \"d8bfd8\",\n tomato: \"ff6347\",\n turquoise: \"40e0d0\",\n violet: \"ee82ee\",\n wheat: \"f5deb3\",\n white: \"fff\",\n whitesmoke: \"f5f5f5\",\n yellow: \"ff0\",\n yellowgreen: \"9acd32\"\n};\n\n// Make it easy to access colors via `hexNames[hex]`\nvar hexNames = tinycolor.hexNames = flip(names);\n\n\n// Utilities\n// ---------\n\n// `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\nfunction flip(o) {\n var flipped = { };\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n flipped[o[i]] = i;\n }\n }\n return flipped;\n}\n\n// Return a valid alpha value [0,1] with all invalid values being set to 1\nfunction boundAlpha(a) {\n a = parseFloat(a);\n\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n\n return a;\n}\n\n// Take input from [0, n] and return it as [0, 1]\nfunction bound01(n, max) {\n if (isOnePointZero(n)) { n = \"100%\"; }\n\n var processPercent = isPercentage(n);\n n = mathMin(max, mathMax(0, parseFloat(n)));\n\n // Automatically convert percentage into number\n if (processPercent) {\n n = parseInt(n * max, 10) / 100;\n }\n\n // Handle floating point rounding errors\n if ((Math.abs(n - max) < 0.000001)) {\n return 1;\n }\n\n // Convert into [0, 1] range if it isn't already\n return (n % max) / parseFloat(max);\n}\n\n// Force a number between 0 and 1\nfunction clamp01(val) {\n return mathMin(1, mathMax(0, val));\n}\n\n// Parse a base-16 hex value into a base-10 integer\nfunction parseIntFromHex(val) {\n return parseInt(val, 16);\n}\n\n// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n// \nfunction isOnePointZero(n) {\n return typeof n == \"string\" && n.indexOf('.') != -1 && parseFloat(n) === 1;\n}\n\n// Check to see if string passed in is a percentage\nfunction isPercentage(n) {\n return typeof n === \"string\" && n.indexOf('%') != -1;\n}\n\n// Force a hex value to have 2 characters\nfunction pad2(c) {\n return c.length == 1 ? '0' + c : '' + c;\n}\n\n// Replace a decimal with it's percentage value\nfunction convertToPercentage(n) {\n if (n <= 1) {\n n = (n * 100) + \"%\";\n }\n\n return n;\n}\n\n// Converts a decimal to a hex value\nfunction convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n// Converts a hex value to a decimal\nfunction convertHexToDecimal(h) {\n return (parseIntFromHex(h) / 255);\n}\n\nvar matchers = (function() {\n\n // \n var CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\";\n\n // \n var CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\n\n // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\n var CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n\n // Actual matching.\n // Parentheses and commas are optional, but not required.\n // Whitespace can take the place of commas or opening paren\n var PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n var PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n\n return {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp(\"rgb\" + PERMISSIVE_MATCH3),\n rgba: new RegExp(\"rgba\" + PERMISSIVE_MATCH4),\n hsl: new RegExp(\"hsl\" + PERMISSIVE_MATCH3),\n hsla: new RegExp(\"hsla\" + PERMISSIVE_MATCH4),\n hsv: new RegExp(\"hsv\" + PERMISSIVE_MATCH3),\n hsva: new RegExp(\"hsva\" + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n };\n})();\n\n// `isValidCSSUnit`\n// Take in a single string / number and check to see if it looks like a CSS unit\n// (see `matchers` above for definition).\nfunction isValidCSSUnit(color) {\n return !!matchers.CSS_UNIT.exec(color);\n}\n\n// `stringInputToObject`\n// Permissive string parsing. Take in a number of formats, and output an object\n// based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\nfunction stringInputToObject(color) {\n\n color = color.replace(trimLeft,'').replace(trimRight, '').toLowerCase();\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color == 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: \"name\" };\n }\n\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match;\n if ((match = matchers.rgb.exec(color))) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n if ((match = matchers.rgba.exec(color))) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n if ((match = matchers.hsl.exec(color))) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n if ((match = matchers.hsla.exec(color))) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n if ((match = matchers.hsv.exec(color))) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n if ((match = matchers.hsva.exec(color))) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n if ((match = matchers.hex8.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex6.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n if ((match = matchers.hex4.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n a: convertHexToDecimal(match[4] + '' + match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex3.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n\n return false;\n}\n\nfunction validateWCAG2Parms(parms) {\n // return valid WCAG2 parms for isReadable.\n // If input parms are invalid, return {\"level\":\"AA\", \"size\":\"small\"}\n var level, size;\n parms = parms || {\"level\":\"AA\", \"size\":\"small\"};\n level = (parms.level || \"AA\").toUpperCase();\n size = (parms.size || \"small\").toLowerCase();\n if (level !== \"AA\" && level !== \"AAA\") {\n level = \"AA\";\n }\n if (size !== \"small\" && size !== \"large\") {\n size = \"small\";\n }\n return {\"level\":level, \"size\":size};\n}\n\n// Node: Export function\nif (typeof module !== \"undefined\" && module.exports) {\n module.exports = tinycolor;\n}\n// AMD/requirejs: Define the module\nelse if (typeof define === 'function' && define.amd) {\n define(function () {return tinycolor;});\n}\n// Browser: Expose to window\nelse {\n window.tinycolor = tinycolor;\n}\n\n})(Math);\n","\nvar space = require('to-space-case')\n\n/**\n * Export.\n */\n\nmodule.exports = toCamelCase\n\n/**\n * Convert a `string` to camel case.\n *\n * @param {String} string\n * @return {String}\n */\n\nfunction toCamelCase(string) {\n return space(string).replace(/\\s(\\w)/g, function (matches, letter) {\n return letter.toUpperCase()\n })\n}\n","\n/**\n * Export.\n */\n\nmodule.exports = toNoCase\n\n/**\n * Test whether a string is camel-case.\n */\n\nvar hasSpace = /\\s/\nvar hasSeparator = /(_|-|\\.|:)/\nvar hasCamel = /([a-z][A-Z]|[A-Z][a-z])/\n\n/**\n * Remove any starting case from a `string`, like camel or snake, but keep\n * spaces and punctuation that may be important otherwise.\n *\n * @param {String} string\n * @return {String}\n */\n\nfunction toNoCase(string) {\n if (hasSpace.test(string)) return string.toLowerCase()\n if (hasSeparator.test(string)) return (unseparate(string) || string).toLowerCase()\n if (hasCamel.test(string)) return uncamelize(string).toLowerCase()\n return string.toLowerCase()\n}\n\n/**\n * Separator splitter.\n */\n\nvar separatorSplitter = /[\\W_]+(.|$)/g\n\n/**\n * Un-separate a `string`.\n *\n * @param {String} string\n * @return {String}\n */\n\nfunction unseparate(string) {\n return string.replace(separatorSplitter, function (m, next) {\n return next ? ' ' + next : ''\n })\n}\n\n/**\n * Camelcase splitter.\n */\n\nvar camelSplitter = /(.)([A-Z]+)/g\n\n/**\n * Un-camelcase a `string`.\n *\n * @param {String} string\n * @return {String}\n */\n\nfunction uncamelize(string) {\n return string.replace(camelSplitter, function (m, previous, uppers) {\n return previous + ' ' + uppers.toLowerCase().split('').join(' ')\n })\n}\n","\nvar clean = require('to-no-case')\n\n/**\n * Export.\n */\n\nmodule.exports = toSpaceCase\n\n/**\n * Convert a `string` to space case.\n *\n * @param {String} string\n * @return {String}\n */\n\nfunction toSpaceCase(string) {\n return clean(string).replace(/[\\W_]+(.|$)/g, function (matches, match) {\n return match ? ' ' + match : ''\n }).trim()\n}\n","var v1 = require('./v1');\nvar v4 = require('./v4');\n\nvar uuid = v4;\nuuid.v1 = v1;\nuuid.v4 = v4;\n\nmodule.exports = uuid;\n","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return ([\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]]\n ]).join('');\n}\n\nmodule.exports = bytesToUuid;\n","// Unique ID creation requires a high quality random # generator. In the\n// browser this is a little complicated due to unknown quality of Math.random()\n// and inconsistent support for the `crypto` API. We do the best we can via\n// feature-detection\n\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto\n// implementation. Also, find the complete implementation of crypto on IE11.\nvar getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) ||\n (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto));\n\nif (getRandomValues) {\n // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto\n var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\n module.exports = function whatwgRNG() {\n getRandomValues(rnds8);\n return rnds8;\n };\n} else {\n // Math.random()-based (RNG)\n //\n // If all else fails, use Math.random(). It's fast, but is of unspecified\n // quality.\n var rnds = new Array(16);\n\n module.exports = function mathRNG() {\n for (var i = 0, r; i < 16; i++) {\n if ((i & 0x03) === 0) r = Math.random() * 0x100000000;\n rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;\n }\n\n return rnds;\n };\n}\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\n\nvar _nodeId;\nvar _clockseq;\n\n// Previous uuid creation time\nvar _lastMSecs = 0;\nvar _lastNSecs = 0;\n\n// See https://github.com/uuidjs/uuid for API details\nfunction v1(options, buf, offset) {\n var i = buf && offset || 0;\n var b = buf || [];\n\n options = options || {};\n var node = options.node || _nodeId;\n var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq;\n\n // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n if (node == null || clockseq == null) {\n var seedBytes = rng();\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [\n seedBytes[0] | 0x01,\n seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]\n ];\n }\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n }\n\n // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime();\n\n // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1;\n\n // Time since last uuid creation (in msecs)\n var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000;\n\n // Per 4.2.1.2, Bump clockseq on clock regression\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n }\n\n // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n }\n\n // Per 4.2.1.2 Throw error if too many uuids are requested\n if (nsecs >= 10000) {\n throw new Error('uuid.v1(): Can\\'t create more than 10M uuids/sec');\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq;\n\n // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n msecs += 12219292800000;\n\n // `time_low`\n var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff;\n\n // `time_mid`\n var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff;\n\n // `time_high_and_version`\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n b[i++] = tmh >>> 16 & 0xff;\n\n // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n b[i++] = clockseq >>> 8 | 0x80;\n\n // `clock_seq_low`\n b[i++] = clockseq & 0xff;\n\n // `node`\n for (var n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf ? buf : bytesToUuid(b);\n}\n\nmodule.exports = v1;\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof(options) == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nmodule.exports = v4;\n","/*!\n * EventEmitter v5.2.8 - git.io/ee\n * Unlicense - http://unlicense.org/\n * Oliver Caldwell - https://oli.me.uk/\n * @preserve\n */\n\n;(function (exports) {\n 'use strict';\n\n /**\n * Class for managing events.\n * Can be extended to provide event functionality in other classes.\n *\n * @class EventEmitter Manages event registering and emitting.\n */\n function EventEmitter() {}\n\n // Shortcuts to improve speed and size\n var proto = EventEmitter.prototype;\n var originalGlobalValue = exports.EventEmitter;\n\n /**\n * Finds the index of the listener for the event in its storage array.\n *\n * @param {Function[]} listeners Array of listeners to search through.\n * @param {Function} listener Method to look for.\n * @return {Number} Index of the specified listener, -1 if not found\n * @api private\n */\n function indexOfListener(listeners, listener) {\n var i = listeners.length;\n while (i--) {\n if (listeners[i].listener === listener) {\n return i;\n }\n }\n\n return -1;\n }\n\n /**\n * Alias a method while keeping the context correct, to allow for overwriting of target method.\n *\n * @param {String} name The name of the target method.\n * @return {Function} The aliased method\n * @api private\n */\n function alias(name) {\n return function aliasClosure() {\n return this[name].apply(this, arguments);\n };\n }\n\n /**\n * Returns the listener array for the specified event.\n * Will initialise the event object and listener arrays if required.\n * Will return an object if you use a regex search. The object contains keys for each matched event. So /ba[rz]/ might return an object containing bar and baz. But only if you have either defined them with defineEvent or added some listeners to them.\n * Each property in the object response is an array of listener functions.\n *\n * @param {String|RegExp} evt Name of the event to return the listeners from.\n * @return {Function[]|Object} All listener functions for the event.\n */\n proto.getListeners = function getListeners(evt) {\n var events = this._getEvents();\n var response;\n var key;\n\n // Return a concatenated array of all matching events if\n // the selector is a regular expression.\n if (evt instanceof RegExp) {\n response = {};\n for (key in events) {\n if (events.hasOwnProperty(key) && evt.test(key)) {\n response[key] = events[key];\n }\n }\n }\n else {\n response = events[evt] || (events[evt] = []);\n }\n\n return response;\n };\n\n /**\n * Takes a list of listener objects and flattens it into a list of listener functions.\n *\n * @param {Object[]} listeners Raw listener objects.\n * @return {Function[]} Just the listener functions.\n */\n proto.flattenListeners = function flattenListeners(listeners) {\n var flatListeners = [];\n var i;\n\n for (i = 0; i < listeners.length; i += 1) {\n flatListeners.push(listeners[i].listener);\n }\n\n return flatListeners;\n };\n\n /**\n * Fetches the requested listeners via getListeners but will always return the results inside an object. This is mainly for internal use but others may find it useful.\n *\n * @param {String|RegExp} evt Name of the event to return the listeners from.\n * @return {Object} All listener functions for an event in an object.\n */\n proto.getListenersAsObject = function getListenersAsObject(evt) {\n var listeners = this.getListeners(evt);\n var response;\n\n if (listeners instanceof Array) {\n response = {};\n response[evt] = listeners;\n }\n\n return response || listeners;\n };\n\n function isValidListener (listener) {\n if (typeof listener === 'function' || listener instanceof RegExp) {\n return true\n } else if (listener && typeof listener === 'object') {\n return isValidListener(listener.listener)\n } else {\n return false\n }\n }\n\n /**\n * Adds a listener function to the specified event.\n * The listener will not be added if it is a duplicate.\n * If the listener returns true then it will be removed after it is called.\n * If you pass a regular expression as the event name then the listener will be added to all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to attach the listener to.\n * @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.addListener = function addListener(evt, listener) {\n if (!isValidListener(listener)) {\n throw new TypeError('listener must be a function');\n }\n\n var listeners = this.getListenersAsObject(evt);\n var listenerIsWrapped = typeof listener === 'object';\n var key;\n\n for (key in listeners) {\n if (listeners.hasOwnProperty(key) && indexOfListener(listeners[key], listener) === -1) {\n listeners[key].push(listenerIsWrapped ? listener : {\n listener: listener,\n once: false\n });\n }\n }\n\n return this;\n };\n\n /**\n * Alias of addListener\n */\n proto.on = alias('addListener');\n\n /**\n * Semi-alias of addListener. It will add a listener that will be\n * automatically removed after its first execution.\n *\n * @param {String|RegExp} evt Name of the event to attach the listener to.\n * @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.addOnceListener = function addOnceListener(evt, listener) {\n return this.addListener(evt, {\n listener: listener,\n once: true\n });\n };\n\n /**\n * Alias of addOnceListener.\n */\n proto.once = alias('addOnceListener');\n\n /**\n * Defines an event name. This is required if you want to use a regex to add a listener to multiple events at once. If you don't do this then how do you expect it to know what event to add to? Should it just add to every possible match for a regex? No. That is scary and bad.\n * You need to tell it what event names should be matched by a regex.\n *\n * @param {String} evt Name of the event to create.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.defineEvent = function defineEvent(evt) {\n this.getListeners(evt);\n return this;\n };\n\n /**\n * Uses defineEvent to define multiple events.\n *\n * @param {String[]} evts An array of event names to define.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.defineEvents = function defineEvents(evts) {\n for (var i = 0; i < evts.length; i += 1) {\n this.defineEvent(evts[i]);\n }\n return this;\n };\n\n /**\n * Removes a listener function from the specified event.\n * When passed a regular expression as the event name, it will remove the listener from all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to remove the listener from.\n * @param {Function} listener Method to remove from the event.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.removeListener = function removeListener(evt, listener) {\n var listeners = this.getListenersAsObject(evt);\n var index;\n var key;\n\n for (key in listeners) {\n if (listeners.hasOwnProperty(key)) {\n index = indexOfListener(listeners[key], listener);\n\n if (index !== -1) {\n listeners[key].splice(index, 1);\n }\n }\n }\n\n return this;\n };\n\n /**\n * Alias of removeListener\n */\n proto.off = alias('removeListener');\n\n /**\n * Adds listeners in bulk using the manipulateListeners method.\n * If you pass an object as the first argument you can add to multiple events at once. The object should contain key value pairs of events and listeners or listener arrays. You can also pass it an event name and an array of listeners to be added.\n * You can also pass it a regular expression to add the array of listeners to all events that match it.\n * Yeah, this function does quite a bit. That's probably a bad thing.\n *\n * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add to multiple events at once.\n * @param {Function[]} [listeners] An optional array of listener functions to add.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.addListeners = function addListeners(evt, listeners) {\n // Pass through to manipulateListeners\n return this.manipulateListeners(false, evt, listeners);\n };\n\n /**\n * Removes listeners in bulk using the manipulateListeners method.\n * If you pass an object as the first argument you can remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays.\n * You can also pass it an event name and an array of listeners to be removed.\n * You can also pass it a regular expression to remove the listeners from all events that match it.\n *\n * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to remove from multiple events at once.\n * @param {Function[]} [listeners] An optional array of listener functions to remove.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.removeListeners = function removeListeners(evt, listeners) {\n // Pass through to manipulateListeners\n return this.manipulateListeners(true, evt, listeners);\n };\n\n /**\n * Edits listeners in bulk. The addListeners and removeListeners methods both use this to do their job. You should really use those instead, this is a little lower level.\n * The first argument will determine if the listeners are removed (true) or added (false).\n * If you pass an object as the second argument you can add/remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays.\n * You can also pass it an event name and an array of listeners to be added/removed.\n * You can also pass it a regular expression to manipulate the listeners of all events that match it.\n *\n * @param {Boolean} remove True if you want to remove listeners, false if you want to add.\n * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add/remove from multiple events at once.\n * @param {Function[]} [listeners] An optional array of listener functions to add/remove.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.manipulateListeners = function manipulateListeners(remove, evt, listeners) {\n var i;\n var value;\n var single = remove ? this.removeListener : this.addListener;\n var multiple = remove ? this.removeListeners : this.addListeners;\n\n // If evt is an object then pass each of its properties to this method\n if (typeof evt === 'object' && !(evt instanceof RegExp)) {\n for (i in evt) {\n if (evt.hasOwnProperty(i) && (value = evt[i])) {\n // Pass the single listener straight through to the singular method\n if (typeof value === 'function') {\n single.call(this, i, value);\n }\n else {\n // Otherwise pass back to the multiple function\n multiple.call(this, i, value);\n }\n }\n }\n }\n else {\n // So evt must be a string\n // And listeners must be an array of listeners\n // Loop over it and pass each one to the multiple method\n i = listeners.length;\n while (i--) {\n single.call(this, evt, listeners[i]);\n }\n }\n\n return this;\n };\n\n /**\n * Removes all listeners from a specified event.\n * If you do not specify an event then all listeners will be removed.\n * That means every event will be emptied.\n * You can also pass a regex to remove all events that match it.\n *\n * @param {String|RegExp} [evt] Optional name of the event to remove all listeners for. Will remove from every event if not passed.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.removeEvent = function removeEvent(evt) {\n var type = typeof evt;\n var events = this._getEvents();\n var key;\n\n // Remove different things depending on the state of evt\n if (type === 'string') {\n // Remove all listeners for the specified event\n delete events[evt];\n }\n else if (evt instanceof RegExp) {\n // Remove all events matching the regex.\n for (key in events) {\n if (events.hasOwnProperty(key) && evt.test(key)) {\n delete events[key];\n }\n }\n }\n else {\n // Remove all listeners in all events\n delete this._events;\n }\n\n return this;\n };\n\n /**\n * Alias of removeEvent.\n *\n * Added to mirror the node API.\n */\n proto.removeAllListeners = alias('removeEvent');\n\n /**\n * Emits an event of your choice.\n * When emitted, every listener attached to that event will be executed.\n * If you pass the optional argument array then those arguments will be passed to every listener upon execution.\n * Because it uses `apply`, your array of arguments will be passed as if you wrote them out separately.\n * So they will not arrive within the array on the other side, they will be separate.\n * You can also pass a regular expression to emit to all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to emit and execute listeners for.\n * @param {Array} [args] Optional array of arguments to be passed to each listener.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.emitEvent = function emitEvent(evt, args) {\n var listenersMap = this.getListenersAsObject(evt);\n var listeners;\n var listener;\n var i;\n var key;\n var response;\n\n for (key in listenersMap) {\n if (listenersMap.hasOwnProperty(key)) {\n listeners = listenersMap[key].slice(0);\n\n for (i = 0; i < listeners.length; i++) {\n // If the listener returns true then it shall be removed from the event\n // The function is executed either with a basic call or an apply if there is an args array\n listener = listeners[i];\n\n if (listener.once === true) {\n this.removeListener(evt, listener.listener);\n }\n\n response = listener.listener.apply(this, args || []);\n\n if (response === this._getOnceReturnValue()) {\n this.removeListener(evt, listener.listener);\n }\n }\n }\n }\n\n return this;\n };\n\n /**\n * Alias of emitEvent\n */\n proto.trigger = alias('emitEvent');\n\n /**\n * Subtly different from emitEvent in that it will pass its arguments on to the listeners, as opposed to taking a single array of arguments to pass on.\n * As with emitEvent, you can pass a regex in place of the event name to emit to all events that match it.\n *\n * @param {String|RegExp} evt Name of the event to emit and execute listeners for.\n * @param {...*} Optional additional arguments to be passed to each listener.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.emit = function emit(evt) {\n var args = Array.prototype.slice.call(arguments, 1);\n return this.emitEvent(evt, args);\n };\n\n /**\n * Sets the current value to check against when executing listeners. If a\n * listeners return value matches the one set here then it will be removed\n * after execution. This value defaults to true.\n *\n * @param {*} value The new value to check for when executing listeners.\n * @return {Object} Current instance of EventEmitter for chaining.\n */\n proto.setOnceReturnValue = function setOnceReturnValue(value) {\n this._onceReturnValue = value;\n return this;\n };\n\n /**\n * Fetches the current value to check against when executing listeners. If\n * the listeners return value matches this one then it should be removed\n * automatically. It will return true by default.\n *\n * @return {*|Boolean} The current value to check for or the default, true.\n * @api private\n */\n proto._getOnceReturnValue = function _getOnceReturnValue() {\n if (this.hasOwnProperty('_onceReturnValue')) {\n return this._onceReturnValue;\n }\n else {\n return true;\n }\n };\n\n /**\n * Fetches the events object and creates one if required.\n *\n * @return {Object} The events storage object.\n * @api private\n */\n proto._getEvents = function _getEvents() {\n return this._events || (this._events = {});\n };\n\n /**\n * Reverts the global {@link EventEmitter} to its previous value and returns a reference to this version.\n *\n * @return {Function} Non conflicting EventEmitter class.\n */\n EventEmitter.noConflict = function noConflict() {\n exports.EventEmitter = originalGlobalValue;\n return EventEmitter;\n };\n\n // Expose the class either via AMD, CommonJS or the global object\n if (typeof define === 'function' && define.amd) {\n define(function () {\n return EventEmitter;\n });\n }\n else if (typeof module === 'object' && module.exports){\n module.exports = EventEmitter;\n }\n else {\n exports.EventEmitter = EventEmitter;\n }\n}(typeof window !== 'undefined' ? window : this || {}));\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import themes from \"./themes\";\n\nexport default class Theme {\n constructor(themeName) {\n\n var theme = themes[themeName];\n if(theme === undefined) {\n console.error(`There is no theme preset with the name '${themeName}'! Defaulting to dark theme.`);\n theme = themes.dark;\n }\n\n // Merge the base theme with the theme parameters and make\n // the result properties of this object\n Object.assign(this, baseTheme, theme);\n }\n\n /**\n * Applies the CSS to the global scope.\n */\n Apply() {\n console.log(this);\n\n let root = document.documentElement;\n root.style.setProperty(\"--color-menu-bar-background\", this.colors.menuBarBackground);\n root.style.setProperty(\"--color-menu-bar-text\", this.colors.menuBarText);\n root.style.setProperty(\"--color-panel-background\", this.colors.panelBackground);\n\n root.style.setProperty(\"--color-component-background\", this.colors.componentBackground);\n root.style.setProperty(\"--color-component-background-hover\", this.colors.componentBackgroundHover);\n root.style.setProperty(\"--color-component-background-disabled\", this.colors.componentBackgroundDisabled);\n root.style.setProperty(\"--color-component-foreground\", this.colors.componentForeground);\n root.style.setProperty(\"--color-component-active\", this.colors.componentActive);\n\n root.style.setProperty(\"--color-text-primary\", this.colors.textPrimary);\n root.style.setProperty(\"--color-text-secondary\", this.colors.textSecondary);\n root.style.setProperty(\"--color-text-hover\", this.colors.textHover);\n root.style.setProperty(\"--color-text-active\", this.colors.textActive);\n root.style.setProperty(\"--color-text-disabled\", this.colors.textDisabled);\n\n root.style.setProperty(\"--size-menu-bar-height\", this.sizing.menuBarHeight);\n root.style.setProperty(\"--size-component-height\", this.sizing.componentHeight);\n root.style.setProperty(\"--size-component-spacing\", this.sizing.componentSpacing);\n root.style.setProperty(\"--size-label-width\", this.sizing.labelWidth);\n }\n}\n\nconst baseTheme = {\n name: \"BaseTheme\",\n\n colors: {\n menuBarBackground: \"black\",\n menuBarText: \"black\",\n panelBackground: \"black\",\n\n componentBackground: \"black\",\n componentBackgroundHover: \"black\",\n componentBackgroundDisabled: \"black\",\n componentForeground: \"black\",\n componentActive: \"black\",\n\n textPrimary: \"black\",\n textSecondary: \"black\",\n textHover: \"black\",\n textActive: \"black\",\n textDisabled: \"black\",\n },\n\n sizing: {\n menuBarHeight: \"25px\",\n componentHeight: \"20px\",\n componentSpacing: \"5px\",\n labelWidth: \"42%\",\n },\n};\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./container.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./container.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./container.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./container.css\";\n export default content && content.locals ? content.locals : undefined;\n","import \"./container.css\";\n\n// eslint-disable-next-line no-unused-vars\nlet Container = (root, label, theme) => {\n let container = root.appendChild(document.createElement(\"div\"));\n container.classList.add(\"guify-component-container\");\n return container;\n};\n\nexport default Container;\n","import EventEmitter from \"wolfy87-eventemitter\";\nimport { v4 as uuidv4 } from \"uuid\";\n\nimport { default as ContainerPartial } from \"./partials/container\";\n\nexport default class ComponentBase extends EventEmitter {\n SetEnabled(enabled) {\n this.enabled = enabled;\n if (enabled) {\n this.container?.classList.remove(\"disabled\");\n } else {\n this.container?.classList.add(\"disabled\");\n }\n }\n\n Remove() {\n if (this.container) {\n this.container.parentNode.removeChild(this.container);\n }\n }\n\n constructor(root, opts, theme, makeContainer=true) {\n super();\n\n this.root = root;\n this.opts = opts;\n this.theme = theme;\n\n this.uuid = uuidv4();\n\n if (makeContainer) {\n this.container = ContainerPartial(root, opts.label, theme);\n }\n\n this.SetEnabled(opts.enabled || true);\n }\n}","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./title.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./title.css\";\n export default content && content.locals ? content.locals : undefined;\n","import ComponentBase from \"../component-base.js\";\n\nimport \"./title.css\";\n\nexport default class Title extends ComponentBase {\n constructor (root, opts, theme) {\n super(root, opts, theme);\n\n var background = this.container.appendChild(document.createElement(\"div\"));\n background.classList.add(\"guify-title\");\n\n var label = background.appendChild(document.createElement(\"div\"));\n label.classList.add(\"guify-title-text\");\n label.innerHTML = `■ ${opts.label} ■`;\n }\n}\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./range.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./range.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./label.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./label.css\";\n export default content && content.locals ? content.locals : undefined;\n","import \"./label.css\";\n\n// eslint-disable-next-line no-unused-vars\nexport default (root, text, theme) => {\n var label = root.appendChild(document.createElement(\"div\"));\n label.classList.add(\"guify-component-label\");\n label.innerHTML = text;\n return label;\n};\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./value.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./value.css\";\n export default content && content.locals ? content.locals : undefined;\n","import css from \"dom-css\";\n\nimport \"./value.css\";\n\nexport default (root, text, theme, width, left) => {\n\n let input = root.appendChild(document.createElement(\"input\"));\n input.type = \"text\";\n input.classList.add(\"guify-value-input\");\n\n input.value = text;\n\n if (!left) {\n input.classList.add(\"guify-value-input-right\");\n }\n\n css(input, {\n \"width\": width,\n });\n\n return input;\n};\n","import ComponentBase from \"../component-base.js\";\n\nimport css from \"dom-css\";\nimport isnumeric from \"is-numeric\";\n\nimport \"./range.css\";\n\nimport { default as LabelPartial } from \"../partials/label\";\nimport { default as ValuePartial } from \"../partials/value\";\n\nexport default class Range extends ComponentBase {\n constructor (root, opts, theme) {\n super(root, opts, theme);\n\n this.scale = opts.scale;\n\n this.label = LabelPartial(this.container, opts.label, theme);\n\n this.input = this.container.appendChild(document.createElement(\"input\"));\n this.input.type = \"range\";\n this.input.classList.add(\"guify-range\");\n // Add ARIA attribute to input based on label text\n if(opts.label) this.input.setAttribute(\"aria-label\", opts.label + \" input\");\n\n // Get initial value:\n if (opts.scale === \"log\") {\n // If logarithmic, we're going to set the slider to a known linear range. Then we'll\n // map that linear range to the user-set range using a log scale.\n\n // Check if all signs are valid\n if (opts.min * opts.max <= 0) {\n throw new Error(\"Log range min/max must have the same sign and not equal zero. Got min = \" + opts.min + \", max = \" + opts.max);\n }\n\n // Step is invalid for log scale slider\n if (isnumeric(opts.step)) {\n console.warn(\"Step is unused for log scale sliders.\");\n }\n\n // Warn that `steps` was removed\n if (isnumeric(opts.steps)) {\n console.warn(\"\\\"steps\\\" option for log scale sliders has been removed.\");\n }\n\n // Min/max are forced to a known range, and log value will be derived from slider position within.\n this.minPos = 0;\n this.maxPos = 1000000;\n\n this.min = Math.log( (isnumeric(opts.min)) ? opts.min : 0.000001 ); // This cannot be 0\n this.max = Math.log( (isnumeric(opts.max)) ? opts.max : 100 );\n\n this.precision = (isnumeric(opts.precision)) ? opts.precision : 3;\n this.logScale = (this.max - this.min) / (this.maxPos - this.minPos);\n\n this.initial = isnumeric(opts.initial) ? opts.initial : this.min;\n\n if (opts.initial < 0) {\n throw new Error(`Log range initial value must be > 0. Got initial value = ${opts.initial}`);\n }\n } else {\n // If linear, this is much simpler. Pos and value can directly match.\n this.minPos = (isnumeric(opts.min)) ? opts.min : 0;\n this.maxPos = (isnumeric(opts.max)) ? opts.max : 100;\n this.min = this.minPos;\n this.max = this.maxPos;\n\n this.precision = (isnumeric(opts.precision)) ? opts.precision : 3;\n this.step = (isnumeric(opts.step)) ? opts.step : (10 / Math.pow(10, 3)); // Default is the lowest possible number given the precision. When precision = 3, step = 0.01.\n\n this.initial = isnumeric(opts.initial) ? opts.initial : this.min;\n\n // Quantize the initial value to the nearest step:\n if (this.step != 0) {\n var initialStep = Math.round((this.initial - this.min) / this.step);\n this.initial = this.min + this.step * initialStep;\n }\n }\n\n // Set value on the this.input itself:\n this.input.min = this.minPos;\n this.input.max = this.maxPos;\n if (isnumeric(this.step)) {\n this.input.step = this.step;\n }\n this.input.value = this.initial;\n\n css(this.input, {\n width: `calc(100% - ${theme.sizing.labelWidth} - 16% - 0.5em)`\n });\n\n this.valueComponent = ValuePartial(this.container, this._Position(this.initial), theme, \"16%\");\n // Add ARIA attribute to input based on label text\n if(opts.label) this.valueComponent.setAttribute(\"aria-label\", opts.label + \" value\");\n\n setTimeout(() => {\n this.emit(\"initialized\", parseFloat(this.input.value));\n });\n\n this.userIsModifying = false;\n\n // Gain focus\n this.input.addEventListener(\"focus\", () => {\n this.focused = true;\n });\n\n // Lose focus\n this.input.addEventListener(\"blur\", () => {\n this.focused = false;\n });\n\n // Defocus on mouse up (for non-accessibility users)\n this.input.addEventListener(\"mouseup\", () => {\n this.input.blur();\n });\n\n this.input.oninput = (data) => {\n let position = parseFloat(data.target.value);\n var scaledValue = this._Value(position);\n this.valueComponent.value = this._FormatNumber(scaledValue, this.precision);\n this.emit(\"input\", scaledValue);\n };\n\n this.valueComponent.onchange = () => {\n let rawValue = this.valueComponent.value;\n if(Number(parseFloat(rawValue)) == rawValue){\n // Input number is valid\n var value = parseFloat(rawValue);\n\n // Ensure number fits slider properties\n value = this._ValidatedInputValue(value);\n\n this.valueComponent.value = value;\n this.emit(\"input\", value);\n this.lastValue = value;\n } else {\n // Input number is invalid\n // Go back to before input change\n this.valueComponent.value = this.lastValue;\n }\n };\n }\n\n /**\n * Calculate value from slider position\n */\n _Value(position) {\n if (this.scale === \"log\") {\n // Map from slider position range to log value range\n\n // Map from slider range to min-max value range\n let rangePos = (position - this.minPos) * this.logScale + this.min;\n // Now convert to log space\n return Math.exp(rangePos);\n } else {\n // Position and value are equivalent\n return position;\n }\n }\n\n /**\n * Calculate slider position from value\n */\n _Position(value) {\n if (this.scale === \"log\") {\n // Map from log value range to the slider's position range\n return this.minPos + (Math.log(value) - this.min) / this.logScale;\n } else {\n // Value and position are equivalent\n return value;\n }\n }\n\n _ValidatedInputValue(value) {\n var newValue;\n if (this.scale === \"log\") {\n // Clamp to input range, turning logmin and logmax back into min/max in linear space\n newValue = Math.min(Math.max(value, Math.exp(this.min)), Math.exp(this.max));\n } else {\n // Clamp to input range\n newValue = Math.min(Math.max(value, this.min), this.max);\n // Quantize to step\n newValue = Math.ceil((newValue - this.min) / this.step) * this.step + this.min;\n }\n return newValue;\n }\n\n SetValue(value) {\n let validated = this._ValidatedInputValue(value);\n if(this.focused !== true) {\n this.valueComponent.value = this._FormatNumber(validated, this.precision);\n this.input.value = this._Position(validated);\n this.lastValue = validated;\n }\n }\n\n GetValue() {\n return this._Value(this.input.value);\n }\n\n // Formats the number for display.\n // `opts.precision` lets you customize how many decimal places you want here.\n // The default is 3.\n _FormatNumber(value, precision) {\n // https://stackoverflow.com/a/29249277\n return value.toFixed(precision).replace(/\\.?0*$/,\"\");\n }\n}\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./button.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./button.css\";\n export default content && content.locals ? content.locals : undefined;\n","import ComponentBase from \"../component-base.js\";\n\nimport { default as LabelPartial } from \"../partials/label\";\n\nimport \"./button.css\";\n\nexport default class Button extends ComponentBase {\n constructor(root, opts, theme) {\n super(root, opts, theme);\n\n this.label = LabelPartial(this.container, \"\", theme);\n\n this.input = this.container.appendChild(document.createElement(\"button\"));\n this.input.classList.add(\"guify-button\");\n\n this.input.textContent = opts.label;\n this.button = this.input;\n\n this.input.addEventListener(\"click\", opts.action);\n\n // Defocus on mouse up (for non-accessibility users)\n this.input.addEventListener(\"mouseup\", () => {\n this.input.blur();\n });\n }\n}\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./checkbox.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./checkbox.css\";\n export default content && content.locals ? content.locals : undefined;\n","import ComponentBase from \"../component-base.js\";\n\nimport { default as LabelPartial } from \"../partials/label\";\n\nimport \"./checkbox.css\";\n\nexport default class Checkbox extends ComponentBase {\n constructor (root, opts, theme) {\n super(root, opts, theme);\n\n this.label = LabelPartial(this.container, opts.label, theme);\n\n this.input = this.container.appendChild(document.createElement(\"input\"));\n this.input.id = \"checkbox-\" + opts.label + this.uuid;\n this.input.type = \"checkbox\";\n this.input.checked = opts.initial;\n this.input.classList.add(\"guify-checkbox\");\n // Add ARIA attribute to input based on label text\n if(opts.label) this.input.setAttribute(\"aria-label\", opts.label);\n\n var label = this.container.appendChild(document.createElement(\"label\"));\n label.htmlFor = this.input.id;\n\n setTimeout(() => {\n this.emit(\"initialized\", this.input.checked);\n });\n\n this.input.onchange = (data) => {\n this.emit(\"input\", data.target.checked);\n };\n\n }\n\n SetValue(value) {\n this.input.checked = value;\n }\n\n GetValue() {\n return this.input.checked;\n }\n}\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./select.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./select.css\";\n export default content && content.locals ? content.locals : undefined;\n","import ComponentBase from \"../component-base.js\";\n\nimport \"./select.css\";\n\nimport { default as LabelPartial } from \"../partials/label\";\n\nexport default class Select extends ComponentBase {\n constructor (root, opts, theme) {\n super(root, opts, theme);\n\n var i, downTriangle, upTriangle, key, option, el, keys;\n\n this.label = LabelPartial(this.container, opts.label, theme);\n\n this.input = document.createElement(\"select\");\n this.input.classList.add(\"guify-select-dropdown\");\n // Add ARIA attribute to input based on label text\n if(opts.label) this.input.setAttribute(\"aria-label\", opts.label);\n\n downTriangle = document.createElement(\"span\");\n downTriangle.classList.add(\"guify-select-triangle\", \"guify-select-triangle--down\");\n\n upTriangle = document.createElement(\"span\");\n upTriangle.classList.add(\"guify-select-triangle\", \"guify-select-triangle--up\");\n\n this.container.appendChild(downTriangle);\n this.container.appendChild(upTriangle);\n\n if (Array.isArray(opts.options)) {\n for (i = 0; i < opts.options.length; i++) {\n option = opts.options[i];\n el = document.createElement(\"option\");\n el.value = el.textContent = option;\n if (opts.initial === option) {\n el.selected = \"selected\";\n }\n this.input.appendChild(el);\n }\n } else {\n keys = Object.keys(opts.options);\n for (i = 0; i < keys.length; i++) {\n key = keys[i];\n el = document.createElement(\"option\");\n el.value = key;\n if (opts.initial === key) {\n el.selected = \"selected\";\n }\n el.textContent = opts.options[key];\n this.input.appendChild(el);\n }\n }\n\n this.container.appendChild(this.input);\n\n this.input.onchange = (data) => {\n this.emit(\"input\", data.target.value);\n };\n\n // Style the arrows based on mouse / focus behavior (and unfocus on mouse leave).\n // I'd like to do this through CSS :focus/:hover selectors but I just couldn't figure it out.\n // It could be done easily if CSS had a \"general previous sibling\" selector.\n let StyleFocus = () => {\n downTriangle.classList.add(\"guify-select-triangle--down-highlight\");\n upTriangle.classList.add(\"guify-select-triangle--up-highlight\");\n };\n\n let StyleUnfocus = () => {\n downTriangle.classList.remove(\"guify-select-triangle--down-highlight\");\n upTriangle.classList.remove(\"guify-select-triangle--up-highlight\");\n };\n let focused = false;\n\n this.input.addEventListener(\"mouseover\", StyleFocus);\n this.input.addEventListener(\"focus\", () => { focused = true; StyleFocus(); });\n this.input.addEventListener(\"blur\", () => { focused = false; StyleUnfocus(); });\n this.input.addEventListener(\"mouseleave\", () => { if (!focused) StyleUnfocus(); });\n\n }\n\n SetValue(value) {\n this.input.value = value;\n }\n\n GetValue() {\n return this.input.value;\n }\n}\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./text.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./text.css\";\n export default content && content.locals ? content.locals : undefined;\n","import ComponentBase from \"../component-base.js\";\n\nimport \"./text.css\";\n\nimport { default as LabelPartial } from \"../partials/label\";\n\nexport default class Text extends ComponentBase {\n static #supportedInputListenModes = [\"input\", \"change\"];\n\n constructor (root, opts, theme) {\n super(root, opts, theme);\n\n this.listenMode = opts.listenMode || \"input\";\n if (!Text.#supportedInputListenModes.includes(this.listenMode)) {\n console.error(`listenMode \"${this.listenMode}\" is not supported for text component \"${opts.label}\"! Falling back on \"input\".`);\n }\n\n this.label = LabelPartial(this.container, opts.label, theme);\n\n this.input = this.container.appendChild(document.createElement(\"input\"));\n this.input.type = \"text\";\n this.input.classList.add(\"guify-text-input\");\n if (opts.initial) this.input.value = opts.initial;\n // Add ARIA attribute to input based on label text\n if(opts.label) this.input.setAttribute(\"aria-label\", opts.label);\n\n setTimeout(() => {\n this.emit(\"initialized\", this.input.value);\n });\n\n this.input.addEventListener(this.listenMode, (data) => {\n console.log(data);\n this.emit(\"input\", data.target.value);\n });\n\n // Gain focus\n this.input.addEventListener(\"focus\", () => {\n this.focused = true;\n });\n\n // Lose focus\n this.input.addEventListener(\"blur\", () => {\n this.focused = false;\n });\n }\n\n SetValue(value) {\n if(this.focused !== true)\n this.input.value = value;\n }\n\n GetValue() {\n return this.input.value;\n }\n}\n","import{insertCss as t}from\"insert-css\";function e(t,e){for(var i=0;i>16&255)/255,g:(t>>8&255)/255,b:(255&t)/255}}(this._hexNumber),i=e.g,s=e.b;this._rgba.r=e.r,this._rgba.g=i,this._rgba.b=s;var n=function(t){var e,i=t.r,o=t.g,s=t.b,n=Math.max(i,o,s),r=Math.min(i,o,s),h=n-r,u=0===n?0:h/n,a=n;if(n==r)e=0;else{switch(n){case i:e=(o-s)/h+(o\\n
\\n
\\n \\n
\\n
\\n
\\n ',this.$saturation=this.$el.querySelector(\".Scp-saturation\"),this.$hue=this.$el.querySelector(\".Scp-hue\"),this.$sbSelector=this.$el.querySelector(\".Scp-sbSelector\"),this.$hSelector=this.$el.querySelector(\".Scp-hSelector\"),this.$saturation.addEventListener(\"mousedown\",this._onSaturationMouseDown),this.$saturation.addEventListener(\"touchstart\",this._onSaturationMouseDown),this.$hue.addEventListener(\"mousedown\",this._onHueMouseDown),this.$hue.addEventListener(\"touchstart\",this._onHueMouseDown),t.el&&this.appendTo(t.el),t.background&&this.setBackgroundColor(t.background),t.widthUnits&&(this._widthUnits=t.widthUnits),t.heightUnits&&(this._heightUnits=t.heightUnits),this.setSize(t.width||175,t.height||150),this.setColor(t.color)}var e=t.prototype;return e.appendTo=function(t){return\"string\"==typeof t?document.querySelector(t).appendChild(this.$el):t.appendChild(this.$el),this},e.remove=function(){this._callbacks=[],this._onSaturationMouseUp(),this._onHueMouseUp(),this.$saturation.removeEventListener(\"mousedown\",this._onSaturationMouseDown),this.$saturation.removeEventListener(\"touchstart\",this._onSaturationMouseDown),this.$hue.removeEventListener(\"mousedown\",this._onHueMouseDown),this.$hue.removeEventListener(\"touchstart\",this._onHueMouseDown),this.$el.parentNode&&this.$el.parentNode.removeChild(this.$el)},e.setColor=function(t){this._inputIsNumber=o(t),this.color.fromHex(t);var e=this.color.hsv,i=e.h,s=e.s,n=e.v;return isNaN(i)||(this.hue=i),this._moveSelectorTo(this._saturationWidth*s,(1-n)*this._hueHeight),this._moveHueTo((1-this.hue)*this._hueHeight),this._updateHue(),this},e.setSize=function(t,e){return this.width=t,this.height=e,this.$el.style.width=this.width+this._widthUnits,this.$el.style.height=this.height+this._heightUnits,this._saturationWidth=this.width-25,this.$saturation.style.width=this._saturationWidth+\"px\",this._hueHeight=this.height,this._maxHue=this._hueHeight-2,this},e.setBackgroundColor=function(t){return this.backgroundColor.fromHex(t),this.$el.style.padding=\"5px\",this.$el.style.background=this.backgroundColor.hexString,this},e.setNoBackground=function(){return this.$el.style.padding=\"0px\",this.$el.style.background=\"none\",this},e.onChange=function(t){return this._callbacks.indexOf(t)<0&&(this._callbacks.push(t),t(this.getHexString())),this},e.getColor=function(){return this._inputIsNumber?this.getHexNumber():this.getHexString()},e.getHexString=function(){return this.color.hexString.toUpperCase()},e.getHexNumber=function(){return this.color.hex},e.getRGB=function(){return this.color.rgb},e.getHSV=function(){return this.color.hsv},e.isDark=function(){return this.color.isDark},e.isLight=function(){return this.color.isLight},e._moveSelectorTo=function(t,e){this.position.x=s(t,0,this._saturationWidth),this.position.y=s(e,0,this._hueHeight),this.$sbSelector.style.transform=\"translate(\"+this.position.x+\"px, \"+this.position.y+\"px)\"},e._updateColorFromPosition=function(){this.color.fromHsv({h:this.hue,s:this.position.x/this._saturationWidth,v:1-this.position.y/this._hueHeight}),this._updateColor()},e._moveHueTo=function(t){this._huePosition=s(t,0,this._maxHue),this.$hSelector.style.transform=\"translateY(\"+this._huePosition+\"px)\"},e._updateHueFromPosition=function(){var t=this.getHSV();this.hue=1-this._huePosition/this._maxHue,this.color.fromHsv({h:this.hue,s:t.s,v:t.v}),this._updateHue()},e._updateHue=function(){this.hueColor.fromHsv({h:this.hue,s:1,v:1}),this.$saturation.style.background=\"linear-gradient(to right, #fff, \"+this.hueColor.hexString+\")\",this._updateColor()},e._updateColor=function(){this.$sbSelector.style.background=this.getHexString(),this.$sbSelector.style.borderColor=this.isDark()?\"#fff\":\"#000\",this._triggerChange()},e._triggerChange=function(){var t=this;this._callbacks.forEach(function(e){return e(t.getHexString())})},i(t,[{key:\"isChoosing\",get:function(){return this._isChoosing}}]),t}();t(\".Scp{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative}.Scp-saturation{position:relative;height:100%;background:linear-gradient(90deg,#fff,red);float:left;margin-right:5px}.Scp-brightness{width:100%;height:100%;background:linear-gradient(hsla(0,0%,100%,0),#000)}.Scp-sbSelector{border:2px solid #fff;position:absolute;width:14px;height:14px;background:#fff;border-radius:10px;top:-7px;left:-7px;box-sizing:border-box;z-index:10}.Scp-hue{width:20px;height:100%;position:relative;float:left;background:linear-gradient(red,#f0f 17%,#00f 34%,#0ff 50%,#0f0 67%,#ff0 84%,red)}.Scp-hSelector{position:absolute;background:#fff;border-bottom:1px solid #000;right:-3px;width:10px;height:2px}\");export default a;\n//# sourceMappingURL=simple-color-picker.module.js.map\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./color.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./color.css\";\n export default content && content.locals ? content.locals : undefined;\n","import ComponentBase from \"../component-base.js\";\n\nimport ColorPicker from \"simple-color-picker\";\nimport tinycolor from \"tinycolor2\";\n\nimport css from \"dom-css\";\nimport \"./color.css\";\n\nimport { default as LabelPartial } from \"../partials/label\";\nimport { default as ValuePartial } from \"../partials/value\";\n\nexport default class Color extends ComponentBase {\n constructor (root, opts, theme) {\n super(root, opts, theme);\n\n opts.format = opts.format || \"rgb\";\n opts.initial = opts.initial || \"#123456\";\n\n this.label = LabelPartial(this.container, opts.label, theme);\n\n var icon = this.container.appendChild(document.createElement(\"span\"));\n icon.classList.add(\"guify-color\");\n\n var value = ValuePartial(this.container, \"\", theme, `calc(100% - ${theme.sizing.labelWidth} - 12% - 0.5em)`);\n value.setAttribute(\"readonly\", \"true\");\n\n icon.onmouseover = () => {\n this.picker.$el.style.display = \"\";\n };\n\n var initial = opts.initial;\n switch (opts.format) {\n case \"rgb\":\n initial = tinycolor(initial).toHexString();\n break;\n case \"hex\":\n initial = tinycolor(initial).toHexString();\n break;\n case \"array\":\n initial = tinycolor.fromRatio({r: initial[0], g: initial[1], b: initial[2]}).toHexString();\n break;\n default:\n break;\n }\n\n this.picker = new ColorPicker({\n el: icon,\n color: initial,\n background: theme.colors.componentBackground,\n width: 125,\n height: 100\n });\n\n css(this.picker.$el, {\n marginTop: theme.sizing.componentHeight,\n display: \"none\",\n position: \"absolute\"\n });\n\n css(icon, {\n position: \"absolute\", // Fixes extra height being applied below for some reason\n display: \"inline-block\",\n width: \"12.5%\",\n height: theme.sizing.componentHeight,\n backgroundColor: this.picker.getHexString()\n });\n\n icon.onmouseout = () => {\n this.picker.$el.style.display = \"none\";\n };\n\n setTimeout(() => {\n this.emit(\"initialized\", initial);\n });\n\n this.picker.onChange((hex) => {\n value.value = this.Format(hex);\n css(icon, {backgroundColor: hex});\n this.emit(\"input\", this.Format(hex));\n });\n }\n\n Format(hex) {\n switch (this.opts.format) {\n case \"rgb\":\n return tinycolor(hex).toRgbString();\n case \"hex\":\n return tinycolor(hex).toHexString();\n case \"array\":\n var rgb = tinycolor(hex).toRgb();\n return [rgb.r / 255, rgb.g / 255, rgb.b / 255].map((x) => {\n return x.toFixed(2);\n });\n default:\n return hex;\n }\n }\n\n SetValue(value) {\n if (!this.picker.isChoosing) {\n this.picker.setColor(value);\n }\n }\n\n GetValue() {\n return this.Format(this.picker.getColor());\n }\n}\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./folder.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./folder.css\";\n export default content && content.locals ? content.locals : undefined;\n","import ComponentBase from \"../component-base.js\";\n\nimport \"./folder.css\";\n\nexport default class Folder extends ComponentBase {\n constructor (root, opts, theme) {\n super(root, opts, theme);\n\n this.container.classList.add(\"guify-folder\");\n this.container.setAttribute(\"role\", \"button\");\n this.container.setAttribute(\"tabIndex\", \"0\"); // Make tabbable\n // css(container, {\n // color: theme.colors.text1,\n // })\n\n this.arrow = this.container.appendChild(document.createElement(\"div\"));\n this.arrow.classList.add(\"guify-folder-arrow\");\n this.arrow.innerHTML = \"▾\";\n\n this.label = this.container.appendChild(document.createElement(\"div\"));\n this.label.classList.add(\"guify-folder-text\");\n this.label.innerHTML = opts.label;\n\n this.container.onclick = () => {\n this.Toggle();\n };\n\n // Defocus on mouse up (for non-accessibility users)\n this.container.addEventListener(\"mouseup\", () => {\n this.container.blur();\n });\n\n this.container.addEventListener(\"keydown\", (e) => {\n // Listen for Space or Enter\n if(e.which === 13 || e.which === 32) {\n this.Toggle();\n }\n });\n\n this.folderContainer = root.appendChild(document.createElement(\"div\"));\n this.folderContainer.classList.add(\"guify-folder-contents\");\n\n this.open = this.opts.open || false;\n this.SetOpen(this.open);\n\n }\n\n SetEnabled(enabled) {\n super.SetEnabled(enabled);\n // Disable everything in the folder\n if (enabled) {\n this.folderContainer?.classList.remove(\"disabled\");\n } else {\n this.folderContainer?.classList.add(\"disabled\");\n }\n }\n\n // Toggle visibility\n Toggle() {\n this.open = !this.open;\n this.SetOpen(this.open);\n }\n\n // Show or hide the contents\n SetOpen(show) {\n this.open = show;\n if(show) {\n this.folderContainer.classList.remove(\"guify-folder-closed\");\n this.arrow.innerHTML = \"▾\"; // Down triangle\n\n }\n else {\n this.folderContainer.classList.add(\"guify-folder-closed\");\n this.arrow.innerHTML = \"▸\"; // Right triangle\n }\n\n }\n}\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./file.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./file.css\";\n export default content && content.locals ? content.locals : undefined;\n","import ComponentBase from \"../component-base.js\";\nimport css from \"dom-css\";\n\nimport \"./file.css\";\n\n/**\n * File component. Drag and drop a file or click to choose a file.\n */\nexport default class File extends ComponentBase {\n constructor (root, opts, theme) {\n super(root, opts, theme);\n\n this.opts.fileReadFunc = this.opts.fileReadFunc || \"readAsDataURL\";\n\n this.file = null;\n this.fileName = null;\n\n this.container.classList.add(\"guify-file-container\");\n this.container.setAttribute(\"role\", \"button\");\n this.container.setAttribute(\"tabIndex\", \"0\"); // Make tabbable\n css(this.container, {\n width: \"100%\",\n \"box-sizing\": \"border-box\",\n \"-moz-box-sizing\": \"border-box\",\n \"-webkit-box-sizing\": \"border-box\",\n height: \"unset\", // Grow with content\n padding: \"8px\"\n });\n\n let label = this.container.appendChild(document.createElement(\"div\"));\n label.innerHTML = opts.label;\n css(label, \"padding-bottom\", \"5px\");\n\n this.input = this.container.appendChild(document.createElement(\"input\"));\n this.input.setAttribute(\"type\", \"file\");\n this.input.setAttribute(\"multiple\", false);\n this.input.style.display = \"none\";\n // Add ARIA attribute to input based on label text\n if(opts.label) this.input.setAttribute(\"aria-label\", opts.label);\n\n this.fileLabel = this.container.appendChild(document.createElement(\"div\"));\n this.fileLabel.innerHTML = \"Choose a file...\";\n //css(this.fileLabel, 'color', theme.colors.textSecondary);\n\n let FileDropped = (event) => {\n var files;\n if(event.dataTransfer) {\n files = event.dataTransfer.files;\n } else if(event.target) {\n files = event.target.files;\n }\n\n var reader = new FileReader();\n reader.onload = () => {\n this.file = reader.result;\n this.fileLabel.innerHTML = files[0].name;\n this.emit(\"input\", this.file);\n };\n\n reader[this.opts.fileReadFunc](files[0]);\n };\n\n this.input.addEventListener(\"change\", FileDropped);\n\n this.container.addEventListener(\"dragover\", (event) => {\n event.preventDefault();\n event.stopPropagation();\n this.container.classList.add(\"guify-dragover\");\n });\n\n this.container.addEventListener(\"dragleave\", (event) => {\n event.preventDefault();\n event.stopPropagation();\n this.container.classList.remove(\"guify-dragover\");\n });\n\n this.container.addEventListener(\"drop\", (event) => {\n event.preventDefault();\n event.stopPropagation();\n this.container.classList.remove(\"guify-dragover\");\n FileDropped(event);\n });\n\n this.container.onclick = () => {\n this.input.click();\n };\n\n this.container.addEventListener(\"keydown\", (e) => {\n // Listen for Space or Enter\n if(e.which === 13 || e.which === 32) {\n this.input.click();\n }\n });\n\n // Defocus on mouse up (for non-accessibility users)\n this.container.addEventListener(\"mouseup\", () => {\n this.container.blur();\n });\n\n }\n\n // eslint-disable-next-line no-unused-vars\n SetValue(value) {\n return;\n }\n\n GetValue() {\n return this.file;\n }\n\n}\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./display.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./display.css\";\n export default content && content.locals ? content.locals : undefined;\n","import ComponentBase from \"../component-base.js\";\n\nimport \"./display.css\";\n\nimport { default as LabelPartial } from \"../partials/label\";\n\n/**\n * Display component. Shows the state of a variable.\n */\nexport default class Display extends ComponentBase {\n constructor (root, opts, theme) {\n super(root, opts, theme);\n\n this.label = LabelPartial(this.container, opts.label, theme);\n\n this.text = this.container.appendChild(document.createElement(\"div\"));\n this.text.classList.add(\"guify-display\");\n\n // Add ARIA attribute to text based on label text\n if(opts.label) this.text.setAttribute(\"aria-label\", opts.label);\n }\n\n SetValue(value) {\n this.text.innerHTML = value.toString();\n }\n\n GetValue() {\n return this.text.innerHTML.toString();\n }\n}\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./interval.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./interval.css\";\n export default content && content.locals ? content.locals : undefined;\n","import ComponentBase from \"../component-base.js\";\n\nimport css from \"dom-css\";\nimport isnumeric from \"is-numeric\";\n\nimport \"./interval.css\";\n\nimport { default as LabelPartial } from \"../partials/label\";\nimport { default as ValuePartial } from \"../partials/value\";\n\nimport { lerp } from \"../../utils/math-utils\";\n\nfunction clamp(x, min, max)\n{\n return Math.min(Math.max(x, min), max);\n}\n\nexport default class Interval extends ComponentBase {\n constructor (root, opts, theme) {\n super(root, opts, theme);\n\n this.label = LabelPartial(this.container, opts.label, theme);\n\n if (!!opts.step && !!opts.steps) {\n throw new Error(\"Cannot specify both step and steps. Got step = \" + opts.step + \", steps = \", opts.steps);\n }\n\n this.input = this.container.appendChild(document.createElement(\"span\"));\n this.input.classList.add(\"guify-interval\");\n\n this.handle = document.createElement(\"span\");\n this.handle.classList.add(\"guify-interval-handle\");\n this.input.appendChild(this.handle);\n\n\n if (!Array.isArray(opts.initial))\n {\n opts.initial = [];\n }\n\n this.scale = opts.scale;\n\n // Get initial value:\n if( opts.scale === \"log\" )\n {\n // If logarithmic, we're going to set the slider to a known linear range. Then we'll\n // map that linear range to the user-set range using a log scale.\n\n // Check if all signs are valid\n if (opts.min * opts.max <= 0) {\n throw new Error(\"Log range min/max must have the same sign and not equal zero. Got min = \" + opts.min + \", max = \" + opts.max);\n }\n\n // Step is invalid for log scale slider\n if (isnumeric(opts.step)) {\n console.warn(\"Step is unused for log scale sliders.\");\n }\n\n // Warn that `steps` was removed\n if (isnumeric(opts.steps)) {\n console.warn(\"\\\"steps\\\" option for log scale sliders has been removed.\");\n }\n\n // Min/max are forced to a known range, and log value will be derived from slider position within.\n this.minPos = 0;\n this.maxPos = 1000000;\n\n this.min = Math.log( (isnumeric(opts.min)) ? opts.min : 0.000001 ); // This cannot be 0\n this.max = Math.log( (isnumeric(opts.max)) ? opts.max : 100 );\n\n this.precision = (isnumeric(opts.precision)) ? opts.precision : 3;\n this.logScale = (this.max - this.min) / (this.maxPos - this.minPos);\n\n this.initial = [\n isnumeric(opts.initial[0]) ? opts.initial[0] : this.min,\n isnumeric(opts.initial[1]) ? opts.initial[1] : this.max,\n ];\n }\n else\n {\n // If linear, this is much simpler. Pos and value can directly match.\n this.minPos = (isnumeric(opts.min)) ? opts.min : 0;\n this.maxPos = (isnumeric(opts.max)) ? opts.max : 100;\n this.min = this.minPos;\n this.max = this.maxPos;\n\n this.precision = (isnumeric(opts.precision)) ? opts.precision : 3;\n this.step = (isnumeric(opts.step)) ? opts.step : (10 / Math.pow(10, 3)); // Default is the lowest possible number given the precision. When precision = 3, step = 0.01.\n\n this.initial = [\n isnumeric(opts.initial[0]) ? opts.initial[0] : this.min,\n isnumeric(opts.initial[1]) ? opts.initial[1] : this.max,\n ];\n\n // Quantize the initial value to the nearest step:\n if (this.step != 0) {\n this.initial = this.initial.map((value) => {\n return this.min + this.step * Math.round((value - this.min) / this.step);\n });\n }\n }\n\n this.value = opts.initial;\n\n // Set handle positions from value\n this._RefreshHandles();\n\n // Display the values:\n this.lValue = ValuePartial(this.container, this.value[0], theme, \"11%\", true);\n this.rValue = ValuePartial(this.container, this.value[1], theme, \"11%\", false);\n\n // Add ARIA attribute to input based on label text\n if(opts.label) this.lValue.setAttribute(\"aria-label\", opts.label + \" lower value\");\n if(opts.label) this.lValue.setAttribute(\"aria-label\", opts.label + \" upper value\");\n\n // An index to track what's being dragged:\n this.activeIndex = -1;\n\n setTimeout(() => {\n this.emit(\"initialized\", this.value);\n });\n\n // // Gain focus\n // this.input.addEventListener(\"focus\", () => {\n // this.focused = true;\n // });\n\n // // Lose focus\n // this.input.addEventListener(\"blur\", () => {\n // this.focused = false;\n // });\n\n let mouseX = (ev) =>\n {\n // Get mouse position in page coords relative to the container:\n return ev.pageX - this.input.getBoundingClientRect().left;\n };\n\n let mouseMoveListener = ( ev ) =>\n {\n let fraction = clamp(mouseX(ev) / this.input.offsetWidth, 0, 1);\n\n this._SetFromMousePosition(fraction);\n };\n\n let mouseUpListener = ( ev ) =>\n {\n let fraction = clamp(mouseX(ev) / this.input.offsetWidth, 0, 1);\n\n this._SetFromMousePosition(fraction);\n\n document.removeEventListener(\"mousemove\", mouseMoveListener);\n document.removeEventListener(\"mouseup\", mouseUpListener);\n\n this.activeIndex = -1;\n };\n\n this.input.addEventListener(\"mousedown\", (ev) =>\n {\n // Get mouse position fraction:\n let fraction = clamp(mouseX(ev) / this.input.offsetWidth, 0, 1);\n\n let posForLeftValue = this._Position(this.value[0]);\n let posForRightValue = this._Position(this.value[1]);\n\n // Get the current fraction of position --> [0, 1]:\n let lofrac = (posForLeftValue - this.minPos) / (this.maxPos - this.minPos);\n let hifrac = (posForRightValue - this.minPos) / (this.maxPos - this.minPos);\n\n // This is just for making decisions, so perturb it ever\n // so slightly just in case the bounds are numerically equal:\n lofrac -= Math.abs(this.maxPos - this.minPos) * 1e-15;\n hifrac += Math.abs(this.maxPos - this.minPos) * 1e-15;\n\n // Figure out which is closer:\n let lodiff = Math.abs(lofrac - fraction);\n let hidiff = Math.abs(hifrac - fraction);\n\n this.activeIndex = lodiff < hidiff ? 0 : 1;\n\n console.log(this.activeIndex);\n\n // Attach this to *document* so that we can still drag if the mouse\n // passes outside the container:\n document.addEventListener(\"mousemove\", mouseMoveListener);\n document.addEventListener(\"mouseup\", mouseUpListener);\n });\n\n // Defocus on mouse up (for non-accessibility users)\n this.input.addEventListener(\"mouseup\", () => {\n this.input.blur();\n });\n\n this.input.oninput = () => {\n // let position = parseFloat(data.target.value);\n // var scaledValue = this._Value(position);\n // this.valueComponent.value = this._FormatNumber(scaledValue, this.precision);\n this.lValue.value = this.value[0];\n this.rValue.value = this.value[1];\n this.emit(\"input\", this.value);\n };\n\n // Handle lower bound input box changes\n this.lValue.onchange = () => {\n let rawValue = this.lValue.value;\n let otherValue = parseFloat(this.rValue.value);\n if (Number(parseFloat(rawValue)) == rawValue) {\n // Input number is valid\n var value = parseFloat(rawValue);\n // Clamp to input range\n value = Math.min(Math.max(value, this.min), this.max);\n // Map to nearest step\n if (this.step) {\n value = Math.ceil((value - this.min) / this.step ) * this.step + this.min;\n }\n // Prevent value from going beyond interval upper value\n value = Math.min(value, otherValue);\n\n this.lValue.value = value;\n this.value = [value, otherValue];\n this.emit(\"input\", [value, otherValue]);\n this._RefreshHandles([value, otherValue]);\n } else {\n // Input number is invalid\n // Go back to before input change\n this.lValue.value = this.lastValue[0];\n }\n };\n\n // Handle upper bound input box changes\n this.rValue.onchange = () => {\n let rawValue = this.rValue.value;\n let otherValue = parseFloat(this.lValue.value);\n if (Number(parseFloat(rawValue)) == rawValue) {\n // Input number is valid\n var value = parseFloat(rawValue);\n // Clamp to input range\n value = Math.min(Math.max(value, this.min), this.max);\n // Map to nearest step\n if (this.step) {\n value = Math.ceil((value - this.min) / this.step ) * this.step + this.min;\n }\n // Prevent value from going below interval lower value\n value = Math.max(value, otherValue);\n\n this.rValue.value = value;\n this.value = [otherValue, value];\n this.emit(\"input\", [otherValue, value]);\n this._RefreshHandles();\n } else {\n // Input number is invalid\n // Go back to before input change\n this.rValue.value = this.lastValue[1];\n }\n };\n }\n\n /**\n * Calculate value from slider position\n */\n _Value(position) {\n if (this.scale === \"log\") {\n // Map from slider position range to log value range\n\n // Map from slider range to min-max value range\n let rangePos = (position - this.minPos) * this.logScale + this.min;\n // Now convert to log space\n return Math.exp(rangePos);\n } else {\n // Position and value are equivalent\n return position;\n }\n }\n\n /**\n * Calculate slider position from value\n */\n _Position(value) {\n if (this.scale === \"log\") {\n // Map from log value range to the slider's position range\n return this.minPos + (Math.log(value) - this.min) / this.logScale;\n } else {\n // Value and position are equivalent\n return value;\n }\n }\n\n /**\n * Updates the current value given a mouse X position normalized from 0 to 1.\n */\n _SetFromMousePosition( fraction )\n {\n if (this.activeIndex === -1) {\n return;\n }\n\n // Clip against the other bound:\n if (this.activeIndex === 0) {\n // Get the right side in position-space [0, 1]:\n let hifrac = (this._Position(this.value[1]) - this.minPos) / (this.maxPos - this.minPos);\n // Prevent fraction from exceeding right-side position\n fraction = Math.min(hifrac, fraction);\n } else {\n // Get the right side in position-space [0, 1]:\n let lofrac = (this._Position(this.value[0]) - this.minPos) / (this.maxPos - this.minPos);\n // Prevent fraction from going below left-side position\n fraction = Math.max(lofrac, fraction);\n }\n\n // Map from 0-1 scale to position-scale\n let position = lerp(this.minPos, this.maxPos, fraction);\n // Map from position-scale to value-scale and assign to values\n var newValue = this._Value(position);\n\n // Quantize the value\n if (this.step) {\n newValue = this.min + this.step * Math.round((newValue - this.min) / this.step);\n }\n\n this.value[this.activeIndex] = newValue;\n\n // Update and send the event:\n this._RefreshHandles();\n this.input.oninput();\n }\n\n SetValue( value )\n {\n if(this.focused !== true)\n {\n this.lValue.value = this._FormatNumber(value[0], this.precision);\n this.rValue.value = this._FormatNumber(value[1], this.precision);\n\n this.lastValue = [ this.lValue.value, this.rValue.value ];\n }\n }\n\n // Formats the number for display.\n // `opts.precision` lets you customize how many decimal places you want here.\n // The default is 3.\n _FormatNumber(value, precision) {\n // https://stackoverflow.com/a/29249277\n return value.toFixed(precision).replace(/\\.?0*$/,\"\");\n }\n\n GetValue() {\n return [ this.lValue.value, this.rValue.value ];\n }\n\n _RefreshHandles() {\n let leftPercent = ((this._Position(this.value[0]) - this.minPos) / (this.maxPos - this.minPos)) * 100;\n let rightPercent = 100 - (((this._Position(this.value[1]) - this.minPos) / (this.maxPos - this.minPos)) * 100);\n css(this.handle, {\n left: `${leftPercent}%`,\n right: `${rightPercent}%`,\n });\n }\n}\n","\n/**\n * Linearly interpolates `t` between `v0` and `v1`.\n * https://en.wikipedia.org/wiki/Linear_interpolation\n * @param {*} v0 Lower bound\n * @param {*} v1 Upper bound\n * @param {*} t Progress (value between 0 and 1)\n * @returns Mapped number\n */\nfunction lerp(v0, v1, t) {\n return (1 - t) * v0 + t * v1;\n}\n\nexport { lerp };","import { default as TitleComponent } from \"./components/public/title\";\nimport { default as RangeComponent } from \"./components/public/range\";\nimport { default as ButtonComponent } from \"./components/public/button\";\nimport { default as CheckboxComponent } from \"./components/public/checkbox\";\nimport { default as SelectComponent } from \"./components/public/select\";\nimport { default as TextComponent } from \"./components/public/text\";\nimport { default as ColorComponent } from \"./components/public/color\";\nimport { default as FolderComponent } from \"./components/public/folder\";\nimport { default as FileComponent } from \"./components/public/file\";\nimport { default as DisplayComponent } from \"./components/public/display\";\nimport { default as IntervalComponent } from \"./components/public/interval\";\n\n/**\n * Manages the loading and instantiation of Components.\n */\nexport class ComponentManager {\n constructor(theme) {\n this.theme = theme;\n this.components = {\n \"title\": TitleComponent,\n \"range\": RangeComponent,\n \"button\": ButtonComponent,\n \"checkbox\": CheckboxComponent,\n \"select\": SelectComponent,\n \"text\": TextComponent,\n \"color\": ColorComponent,\n \"folder\": FolderComponent,\n \"file\": FileComponent,\n \"display\": DisplayComponent,\n \"interval\": IntervalComponent,\n };\n\n }\n\n /**\n * Creates the component specified by `opts` and appends it to the\n * document as a child of `root`.\n *\n * @param {HTMLElement} [root] Parent of the created component\n * @param {Object} [opts] Options used to create the component\n */\n Create(root, opts) {\n let initializer = this.components[opts.type];\n if(initializer === undefined) {\n throw new Error(`No component type named '${opts.type}' exists.`);\n }\n\n let newComponent = new initializer(root, opts, this.theme);\n\n return newComponent;\n }\n\n\n\n}\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./menu-bar.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./menu-bar.css\";\n export default content && content.locals ? content.locals : undefined;\n","import ComponentBase from \"../component-base.js\";\n\nimport css from \"dom-css\";\nimport screenfull from \"screenfull\";\n\nimport \"./menu-bar.css\";\n\nexport class MenuBar extends ComponentBase {\n constructor(root, opts, theme) {\n super(root, opts, theme, false);\n\n // Create menu bar\n this.element = document.createElement(\"div\");\n this.element.classList.add(\"guify-bar\");\n root.appendChild(this.element);\n\n if (opts.title) {\n // Create a text label inside of the bar\n let text = this.element.appendChild(document.createElement(\"div\"));\n text.classList.add(\"guify-bar-title\");\n text.innerHTML = opts.title;\n this.label = text;\n }\n\n // Make the menu collapse button\n let menuButton = this.element.appendChild(document.createElement(\"button\"));\n menuButton.classList.add(\"guify-bar-button\");\n menuButton.innerHTML = \"Controls\";\n css(menuButton, {\n left: opts.align == \"left\" ? \"0\" : \"unset\",\n right: opts.align == \"left\" ? \"unset\" : \"0\",\n });\n menuButton.onclick = () => {\n this.emit(\"ontogglepanel\");\n };\n\n // Make the fullscreen button\n if (screenfull.isEnabled) {\n let fullscreenButton = this.element.appendChild(document.createElement(\"button\"));\n fullscreenButton.classList.add(\"guify-bar-button\");\n fullscreenButton.innerHTML = \"「 」\";\n fullscreenButton.setAttribute(\"aria-label\", \"Toggle Fullscreen\");\n css(fullscreenButton, {\n left: opts.align == \"left\" ? \"unset\" : \"0\", // Place on opposite side from menuButton\n right: opts.align == \"left\" ? \"0\" : \"unset\",\n });\n fullscreenButton.onclick = () => {\n this.emit(\"onfullscreenrequested\");\n };\n }\n\n }\n\n SetVisible(show) {\n this.element.style.display = show ? \"block\" : \"none\";\n }\n\n}\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./panel.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./panel.css\";\n export default content && content.locals ? content.locals : undefined;\n","import ComponentBase from \"../component-base.js\";\n\nimport css from \"dom-css\";\n\nimport \"./panel.css\";\n\nexport class Panel extends ComponentBase {\n constructor(root, opts, theme) {\n super(root, opts, theme, false);\n\n // Container the panel will sit in\n this.container = root.appendChild(document.createElement(\"div\"));\n this.container.classList.add(\"guify-panel-container\");\n css(this.container, {\n width: opts.width,\n opacity: opts.opacity || 1.0,\n left: opts.align == \"left\" ? \"0\" : \"unset\",\n right: opts.align == \"left\" ? \"unset\" : \"0\",\n });\n\n if(opts.panelMode == \"outer\") {\n css(this.container, {\n left: opts.align == \"left\" ? \"unset\" : \"100%\",\n right: opts.align == \"left\" ? \"100%\" : \"unset\",\n });\n }\n\n if(opts.barMode === \"none\") {\n this._MakeToggleButton();\n }\n\n // Create panel inside container\n this.panel = this.container.appendChild(document.createElement(\"div\"));\n this.panel.classList.add(\"guify-panel\");\n\n // Add a title to the panel\n if(opts.barMode === \"none\" && opts.title)\n require(\"../partials/header\")(this.panel, opts.title, theme);\n\n }\n\n /**\n * Makes the panel visible based on the truthiness of `show`.\n * @param {Bool} [show]\n */\n SetVisible(show) {\n if(show){\n // this.panel.style.height = Array.prototype.reduce.call(this.panel.childNodes, function(p, c) {return p + (c.offsetHeight || 0) + 5 + 1;}, 0) + 'px';\n // this.panel.style.paddingTop = '14px';\n // this.panel.style.paddingBottom = '8px';\n this.panel.classList.remove(\"guify-panel-hidden\");\n\n if(this.menuButton) this.menuButton.setAttribute(\"alt\", \"Close GUI\");\n\n }\n else {\n // this.panel.style.height = '0px';\n // this.panel.style.paddingTop = '0px';\n // this.panel.style.paddingBottom = '0px';\n this.panel.classList.add(\"guify-panel-hidden\");\n\n if(this.menuButton) this.menuButton.setAttribute(\"alt\", \"Open GUI\");\n\n }\n }\n\n /**\n * Toggles the visibility of the panel.\n */\n ToggleVisible() {\n if (this.panel.classList.contains(\"guify-panel-hidden\"))\n this.SetVisible(true);\n else\n this.SetVisible(false);\n }\n\n /**\n * Makes a show/hide button that sits at the bottom of the panel.\n */\n _MakeToggleButton() {\n // Make the menu collapse button\n this.menuButton = this.container.appendChild(document.createElement(\"button\"));\n this.menuButton.className = \"guify-panel-toggle-button\";\n css(this.menuButton, {\n left: this.opts.align == \"left\" ? \"0px\" : \"unset\",\n right: this.opts.align == \"left\" ? \"unset\" : \"0px\",\n });\n\n this.menuButton.onclick = () => {\n this.ToggleVisible();\n };\n\n // Defocus on mouse up (for non-accessibility users)\n this.menuButton.addEventListener(\"mouseup\", () => {\n this.menuButton.blur();\n });\n\n this.menuButton.innerHTML = `\n \n \n \n `;\n }\n\n}\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./toast-area.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./toast-area.css\";\n export default content && content.locals ? content.locals : undefined;\n","import ComponentBase from \"../component-base.js\";\n\nimport css from \"dom-css\";\n\nimport \"./toast-area.css\";\n\n/**\n * Represents a container div that creates and holds toast notifications.\n */\nexport class ToastArea extends ComponentBase {\n constructor(root, opts, theme) {\n super(root, opts, theme, false);\n\n // Make toast area\n this.element = root.appendChild(document.createElement(\"div\"));\n this.element.classList.add(\"guify-toast-area\");\n css(this.element, {\n position: \"absolute\",\n \"width\": \"100%\",\n });\n }\n\n /**\n * Makes a message that appears under the menu bar. Transitions out\n * over `transitionMS` milliseconds after `stayMS` milliseconds have passed.\n */\n CreateToast(message, stayMS = 5000, transitionMS = 0) {\n console.log(\"[Toast] \" + message);\n\n let toast = this.element.appendChild(document.createElement(\"div\"));\n toast.classList.add(\"guify-toast-notification\");\n toast.setAttribute(\"aria-live\", \"polite\");\n\n toast.innerHTML = message;\n\n css(toast, {\n // Animation stuff\n // '-webkit-transition': 'opacity ' + transitionMS + 'ms linear',\n // 'transition': 'opacity ' + transitionMS + 'ms linear',\n });\n\n // Make close button in toast\n let closeButton = toast.appendChild(document.createElement(\"button\"));\n closeButton.innerHTML = \"✖\";\n closeButton.classList.add(\"guify-toast-close-button\");\n\n let timeout;\n\n let TransitionOut = () => {\n toast.blur();\n css(toast, {\n //'transform-style': 'flat',\n //'transform-style': 'preserve-3d',\n\n // Slide up\n // '-webkit-transition': '-webkit-transform ' + transitionMS + 'ms linear',\n // 'transition': 'transform ' + transitionMS + 'ms linear',\n // '-webkit-transform': 'translate3d(0, -100%, 0)',\n // 'transform:': 'translate3d(0, -100%, 0)',\n\n // Fade out\n //'-webkit-transition': '-webkit-opacity ' + transitionMS + 'ms linear',\n //'transition': 'opacity ' + transitionMS + 'ms linear',\n \"opacity\": \"0\",\n });\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n if(toast)\n toast.parentNode.removeChild(toast);\n }, transitionMS);\n };\n\n timeout = setTimeout(TransitionOut, stayMS);\n\n closeButton.onclick = TransitionOut;\n }\n\n}\n","import css from \"dom-css\";\n\nimport { default as Theme } from \"./theme\";\n\nimport \"./components/internal/container.css\";\n\nimport { ComponentManager } from \"./component-manager\";\n\nimport { MenuBar } from \"./components/internal/menu-bar\";\nimport { Panel } from \"./components/internal/panel\";\nimport { ToastArea } from \"./components/internal/toast-area\";\nimport screenfull from \"screenfull\";\n\nexport default class GUI {\n constructor(opts) {\n this.opts = opts;\n\n this.hasRoot = opts.root !== undefined;\n\n opts.width = opts.width || 300;\n opts.root = opts.root || document.body;\n opts.align = opts.align || \"left\"; // Can be 'left' or 'right'\n opts.opacity = opts.opacity || 1.0;\n opts.barMode = opts.barMode || \"offset\"; // Can be 'none', 'above', 'offset', or 'overlay'\n opts.panelMode = opts.panelMode || \"inner\";\n opts.pollRateMS = opts.pollRateMS || 100;\n opts.open = opts.open || false;\n\n // Set theme from opts\n let themeName = opts.theme || \"dark\";\n this.theme = new Theme(themeName);\n this.theme.Apply();\n\n this._ConstructElements();\n this._LoadStyles();\n\n this.componentManager = new ComponentManager(this.theme);\n\n this.loadedComponents = [];\n\n // Begin component update loop\n this._UpdateComponents();\n\n }\n\n /**\n * Load any runtime styling information needed here.\n */\n _LoadStyles() {\n // Loads a font and appends it to the head\n let AppendFont = (href) => {\n var elem = document.createElement(\"style\");\n elem.setAttribute(\"type\", \"text/css\");\n elem.setAttribute(\"rel\", \"stylesheet\");\n elem.setAttribute(\"href\", href);\n document.getElementsByTagName(\"head\")[0].appendChild(elem);\n };\n // Load the fonts we'll be using\n // Mono font\n AppendFont(\"//cdn.jsdelivr.net/font-hack/2.019/css/hack.min.css\");\n // Theme font\n if(this.theme.font) {\n // Set default font to theme font\n if(this.theme.font.fontURL) AppendFont(this.theme.font.fontURL);\n if(this.theme.font.fontFamily) css(this.container, \"font-family\", this.theme.font.fontFamily);\n if(this.theme.font.fontSize) css(this.container, \"font-size\", this.theme.font.fontSize);\n if(this.theme.font.fontWeight) css(this.container, \"font-weight\", this.theme.font.fontWeight);\n } else {\n css(this.container, \"font-family\", \"'Hack', monospace\");\n }\n }\n\n /**\n * Create container, MenuBar, Panel, and ToastArea\n */\n _ConstructElements() {\n // Create the container that all the other elements will be contained within\n this.container = document.createElement(\"div\");\n this.container.classList.add(\"guify-container\");\n\n let containerCSS = {};\n\n // Position the container relative to the root based on `opts`\n if(this.opts.barMode == \"overlay\" || this.opts.barMode == \"above\" || this.opts.barMode == \"none\"){\n containerCSS.position = \"absolute\";\n }\n if(this.hasRoot && this.opts.barMode == \"above\"){\n containerCSS.top = `-${this.theme.sizing.menuBarHeight}`;\n }\n css(this.container, containerCSS);\n\n // Insert the container into the root as the first element\n this.opts.root.insertBefore(this.container, this.opts.root.childNodes[0]);\n\n // Create a menu bar if specified in `opts`\n if(this.opts.barMode !== \"none\") {\n this.bar = new MenuBar(this.container, this.opts, this.theme);\n this.bar.addListener(\"ontogglepanel\", () => {\n this.panel.ToggleVisible();\n });\n this.bar.addListener(\"onfullscreenrequested\", () => {\n this.ToggleFullscreen();\n });\n }\n\n // Create panel\n this.panel = new Panel(this.container, this.opts, this.theme);\n\n // Show the panel by default if there's no menu bar or it's requested\n if(this.opts.barMode === \"none\" || this.opts.open === true) {\n this.panel.SetVisible(true);\n } else {\n // Otherwise hide it by default\n this.panel.SetVisible(false);\n }\n\n // Create toast area\n this.toaster = new ToastArea(this.container, this.opts, this.theme);\n\n }\n\n /**\n * Polling loop that allows our components to update themselves.\n * You can set the frequency of this using `this.opts.pollRateMS`.\n */\n _UpdateComponents() {\n this.loadedComponents.forEach((component) => {\n if(component.binding) {\n // Update the component from its bound value if the value has changed\n if(component.binding.object[component.binding.property] != component.oldValue) {\n component.SetValue(component.binding.object[component.binding.property]);\n component.oldValue = component.binding.object[component.binding.property];\n }\n }\n });\n\n setTimeout(() => {\n window.requestAnimationFrame(() => {\n this._UpdateComponents();\n });\n }, this.opts.pollRateMS);\n\n }\n\n\n /**\n * Creates a new component in the panel based on the provided options.\n * @param {*} [obj] Either an opts object or an array of opts objects\n * @param {Object} [applyToAll] Each property of this object will be applied to all opts objects\n */\n Register(obj, applyToAll = {}) {\n if (Array.isArray(obj)) {\n obj.forEach((item) => {\n let merged = Object.assign(item, applyToAll);\n this._Register(merged);\n });\n }\n else {\n let merged = Object.assign(obj, applyToAll);\n return this._Register(merged);\n }\n }\n\n Remove(obj) {\n obj.Remove();\n this.loadedComponents = this.loadedComponents.filter((item) => {\n return item !== obj;\n });\n }\n\n /**\n * Creates new component in the panel based on the options provided.\n *\n * @param {Object} [opts] Options for the component\n */\n _Register(opts) {\n\n if (opts.object && opts.property)\n if (opts.object[opts.property] === undefined)\n throw new Error(`Object ${opts.object} has no property '${opts.property}'`);\n\n // Set opts properties from the input\n if(opts.object && opts.property) {\n opts.initial = opts.object[opts.property];\n // If no label is specified, generate it from property name\n //opts.label = opts.label || property;\n }\n\n let root = this.panel.panel;\n\n // If a folder was specified, try to find a folder component with that name\n // and get its folderContainer.\n if(opts.folder) {\n let folderComp = this.loadedComponents.find((cmp) => {\n return cmp === opts.folder || (cmp.opts.type === \"folder\" && cmp.opts.label === opts.folder);\n });\n\n if(folderComp) root = folderComp.folderContainer;\n else throw new Error(`No folder exists with the name ${opts.folder}`);\n }\n\n let component = this.componentManager.Create(root, opts);\n\n // Add binding properties if specified\n if(opts.object && opts.property) {\n component[\"binding\"] = { object: opts.object, property: opts.property };\n }\n\n // If the component has events, add listeners for those events.\n if(component.on) {\n component.on(\"initialized\", function (data) {\n if(opts.onInitialize)\n opts.onInitialize(data);\n });\n\n component.on(\"input\", (data) => {\n if(opts.object && opts.property)\n opts.object[opts.property] = data;\n\n if(opts.onChange) {\n opts.onChange(data);\n }\n });\n }\n\n this.loadedComponents.push(component);\n\n return component;\n\n\n }\n\n /**\n * Displays a toast notification under the MenuBar at the top of the root.\n *\n * @param {String} [message] The string you want displayed in the notification.\n * @param {Integer} [stayMS] The number of milliseconds to display the notification for\n * @param {Integer} [transitionMS] The number of milliseconds it takes for the notification to transition into disappearing\n */\n Toast(message, stayMS = 5000, transitionMS = 0) {\n this.toaster.CreateToast(message, stayMS, transitionMS);\n }\n\n\n ToggleFullscreen() {\n let isFullscreen = screenfull.isFullscreen;\n if (isFullscreen) {\n screenfull.exit();\n } else {\n console.log(\"Request fullscreen\");\n screenfull.request(this.opts.root);\n }\n }\n\n // Just for debugging.\n _SetAllEnabled(enabled) {\n this.loadedComponents.forEach((item) => {\n item.SetEnabled(enabled);\n });\n }\n\n}\n","// Export GUI class as 'guify'.\n// Make sure Webpack is assigning the export to the global scope (don't set library.name)\nimport { default as gui } from \"./gui.js\";\nlet guify = gui;\nexport { guify };"],"names":["root","factory","exports","module","define","amd","a","i","self","IS_UNITLESS","animationIterationCount","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridColumn","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","stopOpacity","strokeDashoffset","strokeOpacity","strokeWidth","name","value","text","theme","title","appendChild","document","createElement","innerHTML","css","width","textAlign","color","colors","textSecondary","height","marginBottom","light","menuBarBackground","menuBarText","panelBackground","componentBackground","componentBackgroundHover","componentBackgroundDisabled","componentForeground","componentActive","textPrimary","textHover","textActive","textDisabled","dark","yorha","font","fontFamily","fontSize","___CSS_LOADER_EXPORT___","push","id","cssWithMappingToString","list","toString","this","map","item","content","needLayer","concat","length","join","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","_k","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","data","sourceMapping","sourceURLs","sources","source","sourceRoot","prefix","toCamelCase","cache","addPxToStyle","style","element","property","camel","cssProp","result","detect","each","properties","hasOwnProperty","set","arguments","cssText","get","Array","isArray","reduce","obj","prop","containers","styleElements","insertCss","options","Error","styleElement","position","prepend","container","querySelector","containerId","indexOf","setAttribute","createStyleElement","insertBefore","childNodes","charCodeAt","substr","styleSheet","textContent","isNumeric","v","isNaN","trim","div","prefixes","titleCase","charAt","toUpperCase","slice","window","isCommonjs","fn","val","fnMap","l","ret","eventNameMap","change","fullscreenchange","error","fullscreenerror","screenfull","request","Promise","resolve","reject","onFullScreenEntered","off","bind","on","documentElement","requestFullscreen","catch","exit","isFullscreen","onFullScreenExit","exitFullscreen","toggle","onchange","callback","onerror","event","eventName","addEventListener","removeEventListener","raw","Object","defineProperties","Boolean","fullscreenElement","enumerable","isEnabled","fullscreenEnabled","stylesInDOM","getIndexByIdentifier","identifier","modulesToDom","idCountMap","identifiers","base","count","indexByIdentifier","sourceMap","references","updater","addElementStyle","byIndex","splice","api","domAPI","update","newObj","remove","lastIdentifiers","newList","index","newLastIdentifiers","_i","_index","memo","insert","target","styleTarget","HTMLIFrameElement","contentDocument","head","e","getTarget","setAttributes","attributes","nonce","insertStyleElement","styleTagTransform","apply","parentNode","removeChild","removeStyleElement","firstChild","createTextNode","Math","trimLeft","trimRight","tinyCounter","mathRound","round","mathMin","min","mathMax","max","mathRandom","random","tinycolor","opts","rgb","r","g","b","s","ok","format","replace","toLowerCase","match","named","names","matchers","exec","rgba","hsl","h","hsla","hsv","hsva","hex8","parseIntFromHex","convertHexToDecimal","hex6","hex4","hex3","stringInputToObject","isValidCSSUnit","bound01","String","convertToPercentage","floor","f","p","q","t","mod","hsvToRgb","hue2rgb","hslToRgb","boundAlpha","inputToRGB","_originalInput","_r","_g","_b","_a","_roundA","_format","_gradientType","gradientType","_ok","_tc_id","rgbToHsl","d","rgbToHsv","rgbToHex","allow3Char","hex","pad2","rgbaToArgbHex","convertDecimalToHex","desaturate","amount","toHsl","clamp01","saturate","greyscale","lighten","brighten","toRgb","darken","spin","hue","complement","triad","tetrad","splitcomplement","analogous","results","slices","part","monochromatic","toHsv","modification","prototype","isDark","getBrightness","isLight","isValid","getOriginalInput","getFormat","getAlpha","getLuminance","RsRGB","GsRGB","BsRGB","pow","setAlpha","toHsvString","toHslString","toHex","toHexString","toHex8","allow4Char","rgbaToHex","toHex8String","toRgbString","toPercentageRgb","toPercentageRgbString","toName","hexNames","toFilter","secondColor","hex8String","secondHex8String","formatSet","formattedString","hasAlpha","clone","_applyModification","args","call","_applyCombination","fromRatio","newColor","equals","color1","color2","mix","rgb1","rgb2","readability","c1","c2","isReadable","wcag2","wcag2Parms","out","parms","level","size","mostReadable","baseColor","colorList","includeFallbackColors","bestColor","bestScore","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","o","flipped","flip","parseFloat","n","isOnePointZero","processPercent","isPercentage","parseInt","abs","c","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","RegExp","space","string","matches","letter","hasSpace","test","hasSeparator","separatorSplitter","m","next","unseparate","hasCamel","camelSplitter","previous","uppers","split","uncamelize","clean","v1","v4","uuid","byteToHex","buf","offset","bth","getRandomValues","crypto","msCrypto","rnds8","Uint8Array","rnds","_nodeId","_clockseq","rng","bytesToUuid","_lastMSecs","_lastNSecs","node","clockseq","seedBytes","msecs","Date","getTime","nsecs","dt","tl","tmh","ii","EventEmitter","proto","originalGlobalValue","indexOfListener","listeners","listener","alias","isValidListener","getListeners","evt","response","key","events","_getEvents","flattenListeners","flatListeners","getListenersAsObject","addListener","TypeError","listenerIsWrapped","once","addOnceListener","defineEvent","defineEvents","evts","removeListener","addListeners","manipulateListeners","removeListeners","single","multiple","removeEvent","type","_events","removeAllListeners","emitEvent","listenersMap","_getOnceReturnValue","trigger","emit","setOnceReturnValue","_onceReturnValue","noConflict","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","__esModule","definition","defineProperty","Symbol","toStringTag","Theme","themeName","themes","console","assign","baseTheme","log","setProperty","sizing","menuBarHeight","componentHeight","componentSpacing","labelWidth","label","classList","add","ComponentBase","makeContainer","uuidv4","ContainerPartial","SetEnabled","enabled","Title","background","left","input","Range","scale","LabelPartial","isnumeric","step","warn","steps","minPos","maxPos","precision","logScale","initial","initialStep","valueComponent","ValuePartial","_Position","setTimeout","userIsModifying","focused","blur","oninput","scaledValue","_Value","_FormatNumber","rawValue","Number","_ValidatedInputValue","lastValue","rangePos","exp","newValue","ceil","validated","toFixed","Button","button","action","Checkbox","checked","htmlFor","Select","downTriangle","upTriangle","option","el","keys","selected","StyleFocus","StyleUnfocus","Text","listenMode","includes","configurable","writable","touches","x","clientX","y","clientY","_rgba","_hsva","fromHex","_hexNumber","_hexString","u","_updateBrightness","fromHsv","_brightness","_isDark","_isLight","_widthUnits","_heightUnits","_huePosition","_hueHeight","_maxHue","_inputIsNumber","_saturationWidth","_isChoosing","_callbacks","backgroundColor","hueColor","_onSaturationMouseDown","$saturation","getBoundingClientRect","_moveSelectorTo","top","_updateColorFromPosition","_window","_onSaturationMouseUp","_onSaturationMouseMove","preventDefault","_onHueMouseDown","$hue","_moveHueTo","_updateHueFromPosition","_onHueMouseUp","_onHueMouseMove","_document","$el","className","$sbSelector","$hSelector","appendTo","setBackgroundColor","widthUnits","heightUnits","setSize","setColor","_updateHue","padding","hexString","setNoBackground","onChange","getHexString","getColor","getHexNumber","getRGB","getHSV","transform","_updateColor","borderColor","_triggerChange","forEach","Color","icon","onmouseover","picker","display","ColorPicker","marginTop","onmouseout","Format","isChoosing","Folder","arrow","onclick","Toggle","which","folderContainer","open","SetOpen","show","File","fileReadFunc","file","fileName","fileLabel","FileDropped","files","dataTransfer","reader","FileReader","onload","stopPropagation","click","Display","clamp","Interval","handle","_RefreshHandles","lValue","rValue","activeIndex","mouseX","ev","pageX","mouseMoveListener","fraction","offsetWidth","_SetFromMousePosition","mouseUpListener","posForLeftValue","posForRightValue","lofrac","hifrac","lodiff","hidiff","otherValue","leftPercent","rightPercent","right","ComponentManager","components","TitleComponent","RangeComponent","ButtonComponent","CheckboxComponent","SelectComponent","TextComponent","ColorComponent","FolderComponent","FileComponent","DisplayComponent","IntervalComponent","initializer","MenuBar","menuButton","align","fullscreenButton","Panel","panelMode","barMode","_MakeToggleButton","panel","require","contains","SetVisible","ToggleVisible","ToastArea","message","stayMS","transitionMS","toast","timeout","closeButton","TransitionOut","clearTimeout","GUI","hasRoot","body","pollRateMS","Apply","_ConstructElements","_LoadStyles","componentManager","loadedComponents","_UpdateComponents","AppendFont","href","elem","getElementsByTagName","fontURL","containerCSS","bar","ToggleFullscreen","toaster","component","binding","object","oldValue","SetValue","requestAnimationFrame","applyToAll","merged","_Register","Remove","filter","folder","folderComp","find","cmp","Create","onInitialize","CreateToast","guify","gui"],"sourceRoot":""} \ No newline at end of file diff --git a/package.json b/package.json index e325dc8..bc6d591 100755 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "//": "--------------- Script Info --------------- ", "name": "guify", "author": "Jonathan Cole ", - "version": "0.14.1", + "version": "0.14.2", "description": "A simple GUI for inspecting and changing JS variables", "keywords": [ "gui",