From 666becdb65b3caac48305a30483b55100cbd3238 Mon Sep 17 00:00:00 2001 From: Ilya Kreymer Date: Sun, 10 Oct 2021 12:22:36 -0700 Subject: [PATCH] initial pass on frontend: using tailwindcss + daisyui + litelement with webpack build + dev server --- frontend/dist/main.js | 258 +++ frontend/index.html | 11 + frontend/package.json | 29 + frontend/postcss.config.js | 6 + frontend/src/index.js | 345 +++++ frontend/src/utils.js | 62 + frontend/tailwind.config.js | 18 + frontend/webpack.config.js | 49 + frontend/yarn.lock | 2926 +++++++++++++++++++++++++++++++++++ 9 files changed, 3704 insertions(+) create mode 100644 frontend/dist/main.js create mode 100644 frontend/index.html create mode 100644 frontend/package.json create mode 100644 frontend/postcss.config.js create mode 100644 frontend/src/index.js create mode 100644 frontend/src/utils.js create mode 100644 frontend/tailwind.config.js create mode 100644 frontend/webpack.config.js create mode 100644 frontend/yarn.lock diff --git a/frontend/dist/main.js b/frontend/dist/main.js new file mode 100644 index 00000000..03105e87 --- /dev/null +++ b/frontend/dist/main.js @@ -0,0 +1,258 @@ +/* + * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development"). + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js!./node_modules/tailwindcss/tailwind.css": +/*!***********************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js!./node_modules/tailwindcss/tailwind.css ***! + \***********************************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../css-loader/dist/runtime/noSourceMaps.js */ \"./node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/*! tailwindcss v2.2.16 | MIT License | https://tailwindcss.com *//*! modern-normalize v1.1.0 | MIT License | https://github.com/sindresorhus/modern-normalize */\\n\\n/*\\nDocument\\n========\\n*/\\n\\n/**\\nUse a better box model (opinionated).\\n*/\\n\\n*,\\n::before,\\n::after {\\n\\tbox-sizing: border-box;\\n}\\n\\n/**\\nUse a more readable tab size (opinionated).\\n*/\\n\\nhtml {\\n\\t-moz-tab-size: 4;\\n\\ttab-size: 4;\\n}\\n\\n/**\\n1. Correct the line height in all browsers.\\n2. Prevent adjustments of font size after orientation changes in iOS.\\n*/\\n\\nhtml {\\n\\tline-height: 1.15; /* 1 */\\n\\t-webkit-text-size-adjust: 100%; /* 2 */\\n}\\n\\n/*\\nSections\\n========\\n*/\\n\\n/**\\nRemove the margin in all browsers.\\n*/\\n\\nbody {\\n\\tmargin: 0;\\n}\\n\\n/**\\nImprove consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3)\\n*/\\n\\nbody {\\n\\tfont-family:\\n\\t\\tsystem-ui,\\n\\t\\t-apple-system, /* Firefox supports this but not yet `system-ui` */\\n\\t\\t'Segoe UI',\\n\\t\\tRoboto,\\n\\t\\tHelvetica,\\n\\t\\tArial,\\n\\t\\tsans-serif,\\n\\t\\t'Apple Color Emoji',\\n\\t\\t'Segoe UI Emoji';\\n}\\n\\n/*\\nGrouping content\\n================\\n*/\\n\\n/**\\n1. Add the correct height in Firefox.\\n2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)\\n*/\\n\\nhr {\\n\\theight: 0; /* 1 */\\n\\tcolor: inherit; /* 2 */\\n}\\n\\n/*\\nText-level semantics\\n====================\\n*/\\n\\n/**\\nAdd the correct text decoration in Chrome, Edge, and Safari.\\n*/\\n\\nabbr[title] {\\n\\t-webkit-text-decoration: underline dotted;\\n\\t text-decoration: underline dotted;\\n}\\n\\n/**\\nAdd the correct font weight in Edge and Safari.\\n*/\\n\\nb,\\nstrong {\\n\\tfont-weight: bolder;\\n}\\n\\n/**\\n1. Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3)\\n2. Correct the odd 'em' font sizing in all browsers.\\n*/\\n\\ncode,\\nkbd,\\nsamp,\\npre {\\n\\tfont-family:\\n\\t\\tui-monospace,\\n\\t\\tSFMono-Regular,\\n\\t\\tConsolas,\\n\\t\\t'Liberation Mono',\\n\\t\\tMenlo,\\n\\t\\tmonospace; /* 1 */\\n\\tfont-size: 1em; /* 2 */\\n}\\n\\n/**\\nAdd the correct font size in all browsers.\\n*/\\n\\nsmall {\\n\\tfont-size: 80%;\\n}\\n\\n/**\\nPrevent 'sub' and 'sup' elements from affecting the line height in all browsers.\\n*/\\n\\nsub,\\nsup {\\n\\tfont-size: 75%;\\n\\tline-height: 0;\\n\\tposition: relative;\\n\\tvertical-align: baseline;\\n}\\n\\nsub {\\n\\tbottom: -0.25em;\\n}\\n\\nsup {\\n\\ttop: -0.5em;\\n}\\n\\n/*\\nTabular data\\n============\\n*/\\n\\n/**\\n1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)\\n2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)\\n*/\\n\\ntable {\\n\\ttext-indent: 0; /* 1 */\\n\\tborder-color: inherit; /* 2 */\\n}\\n\\n/*\\nForms\\n=====\\n*/\\n\\n/**\\n1. Change the font styles in all browsers.\\n2. Remove the margin in Firefox and Safari.\\n*/\\n\\nbutton,\\ninput,\\noptgroup,\\nselect,\\ntextarea {\\n\\tfont-family: inherit; /* 1 */\\n\\tfont-size: 100%; /* 1 */\\n\\tline-height: 1.15; /* 1 */\\n\\tmargin: 0; /* 2 */\\n}\\n\\n/**\\nRemove the inheritance of text transform in Edge and Firefox.\\n1. Remove the inheritance of text transform in Firefox.\\n*/\\n\\nbutton,\\nselect { /* 1 */\\n\\ttext-transform: none;\\n}\\n\\n/**\\nCorrect the inability to style clickable types in iOS and Safari.\\n*/\\n\\nbutton,\\n[type='button'],\\n[type='reset'],\\n[type='submit'] {\\n\\t-webkit-appearance: button;\\n}\\n\\n/**\\nRemove the inner border and padding in Firefox.\\n*/\\n\\n::-moz-focus-inner {\\n\\tborder-style: none;\\n\\tpadding: 0;\\n}\\n\\n/**\\nRestore the focus styles unset by the previous rule.\\n*/\\n\\n:-moz-focusring {\\n\\toutline: 1px dotted ButtonText;\\n}\\n\\n/**\\nRemove the additional ':invalid' styles in Firefox.\\nSee: https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737\\n*/\\n\\n:-moz-ui-invalid {\\n\\tbox-shadow: none;\\n}\\n\\n/**\\nRemove the padding so developers are not caught out when they zero out 'fieldset' elements in all browsers.\\n*/\\n\\nlegend {\\n\\tpadding: 0;\\n}\\n\\n/**\\nAdd the correct vertical alignment in Chrome and Firefox.\\n*/\\n\\nprogress {\\n\\tvertical-align: baseline;\\n}\\n\\n/**\\nCorrect the cursor style of increment and decrement buttons in Safari.\\n*/\\n\\n::-webkit-inner-spin-button,\\n::-webkit-outer-spin-button {\\n\\theight: auto;\\n}\\n\\n/**\\n1. Correct the odd appearance in Chrome and Safari.\\n2. Correct the outline style in Safari.\\n*/\\n\\n[type='search'] {\\n\\t-webkit-appearance: textfield; /* 1 */\\n\\toutline-offset: -2px; /* 2 */\\n}\\n\\n/**\\nRemove the inner padding in Chrome and Safari on macOS.\\n*/\\n\\n::-webkit-search-decoration {\\n\\t-webkit-appearance: none;\\n}\\n\\n/**\\n1. Correct the inability to style clickable types in iOS and Safari.\\n2. Change font properties to 'inherit' in Safari.\\n*/\\n\\n::-webkit-file-upload-button {\\n\\t-webkit-appearance: button; /* 1 */\\n\\tfont: inherit; /* 2 */\\n}\\n\\n/*\\nInteractive\\n===========\\n*/\\n\\n/*\\nAdd the correct display in Chrome and Safari.\\n*/\\n\\nsummary {\\n\\tdisplay: list-item;\\n}/**\\n * Manually forked from SUIT CSS Base: https://github.com/suitcss/base\\n * A thin layer on top of normalize.css that provides a starting point more\\n * suitable for web applications.\\n */\\n\\n/**\\n * Removes the default spacing and border for appropriate elements.\\n */\\n\\nblockquote,\\ndl,\\ndd,\\nh1,\\nh2,\\nh3,\\nh4,\\nh5,\\nh6,\\nhr,\\nfigure,\\np,\\npre {\\n margin: 0;\\n}\\n\\nbutton {\\n background-color: transparent;\\n background-image: none;\\n}\\n\\nfieldset {\\n margin: 0;\\n padding: 0;\\n}\\n\\nol,\\nul {\\n list-style: none;\\n margin: 0;\\n padding: 0;\\n}\\n\\n/**\\n * Tailwind custom reset styles\\n */\\n\\n/**\\n * 1. Use the user's configured `sans` font-family (with Tailwind's default\\n * sans-serif font stack as a fallback) as a sane default.\\n * 2. Use Tailwind's default \\\"normal\\\" line-height so the user isn't forced\\n * to override it to ensure consistency even when using the default theme.\\n */\\n\\nhtml {\\n font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto, \\\"Helvetica Neue\\\", Arial, \\\"Noto Sans\\\", sans-serif, \\\"Apple Color Emoji\\\", \\\"Segoe UI Emoji\\\", \\\"Segoe UI Symbol\\\", \\\"Noto Color Emoji\\\"; /* 1 */\\n line-height: 1.5; /* 2 */\\n}\\n\\n\\n/**\\n * Inherit font-family and line-height from `html` so users can set them as\\n * a class directly on the `html` element.\\n */\\n\\nbody {\\n font-family: inherit;\\n line-height: inherit;\\n}\\n\\n/**\\n * 1. Prevent padding and border from affecting element width.\\n *\\n * We used to set this in the html element and inherit from\\n * the parent element for everything else. This caused issues\\n * in shadow-dom-enhanced elements like
where the content\\n * is wrapped by a div with box-sizing set to `content-box`.\\n *\\n * https://github.com/mozdevs/cssremedy/issues/4\\n *\\n *\\n * 2. Allow adding a border to an element by just adding a border-width.\\n *\\n * By default, the way the browser specifies that an element should have no\\n * border is by setting it's border-style to `none` in the user-agent\\n * stylesheet.\\n *\\n * In order to easily add borders to elements by just setting the `border-width`\\n * property, we change the default border-style for all elements to `solid`, and\\n * use border-width to hide them instead. This way our `border` utilities only\\n * need to set the `border-width` property instead of the entire `border`\\n * shorthand, making our border utilities much more straightforward to compose.\\n *\\n * https://github.com/tailwindcss/tailwindcss/pull/116\\n */\\n\\n*,\\n::before,\\n::after {\\n box-sizing: border-box; /* 1 */\\n border-width: 0; /* 2 */\\n border-style: solid; /* 2 */\\n border-color: currentColor; /* 2 */\\n}\\n\\n/*\\n * Ensure horizontal rules are visible by default\\n */\\n\\nhr {\\n border-top-width: 1px;\\n}\\n\\n/**\\n * Undo the `border-style: none` reset that Normalize applies to images so that\\n * our `border-{width}` utilities have the expected effect.\\n *\\n * The Normalize reset is unnecessary for us since we default the border-width\\n * to 0 on all elements.\\n *\\n * https://github.com/tailwindcss/tailwindcss/issues/362\\n */\\n\\nimg {\\n border-style: solid;\\n}\\n\\ntextarea {\\n resize: vertical;\\n}\\n\\ninput::placeholder,\\ntextarea::placeholder {\\n opacity: 1;\\n color: #9ca3af;\\n}\\n\\nbutton,\\n[role=\\\"button\\\"] {\\n cursor: pointer;\\n}\\n\\n/**\\n * Override legacy focus reset from Normalize with modern Firefox focus styles.\\n *\\n * This is actually an improvement over the new defaults in Firefox in our testing,\\n * as it triggers the better focus styles even for links, which still use a dotted\\n * outline in Firefox by default.\\n */\\n \\n:-moz-focusring {\\n\\toutline: auto;\\n}\\n\\ntable {\\n border-collapse: collapse;\\n}\\n\\nh1,\\nh2,\\nh3,\\nh4,\\nh5,\\nh6 {\\n font-size: inherit;\\n font-weight: inherit;\\n}\\n\\n/**\\n * Reset links to optimize for opt-in styling instead of\\n * opt-out.\\n */\\n\\na {\\n color: inherit;\\n text-decoration: inherit;\\n}\\n\\n/**\\n * Reset form element properties that are easy to forget to\\n * style explicitly so you don't inadvertently introduce\\n * styles that deviate from your design system. These styles\\n * supplement a partial reset that is already applied by\\n * normalize.css.\\n */\\n\\nbutton,\\ninput,\\noptgroup,\\nselect,\\ntextarea {\\n padding: 0;\\n line-height: inherit;\\n color: inherit;\\n}\\n\\n/**\\n * Use the configured 'mono' font family for elements that\\n * are expected to be rendered with a monospace font, falling\\n * back to the system monospace stack if there is no configured\\n * 'mono' font family.\\n */\\n\\npre,\\ncode,\\nkbd,\\nsamp {\\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\\"Liberation Mono\\\", \\\"Courier New\\\", monospace;\\n}\\n\\n/**\\n * 1. Make replaced elements `display: block` by default as that's\\n * the behavior you want almost all of the time. Inspired by\\n * CSS Remedy, with `svg` added as well.\\n *\\n * https://github.com/mozdevs/cssremedy/issues/14\\n * \\n * 2. Add `vertical-align: middle` to align replaced elements more\\n * sensibly by default when overriding `display` by adding a\\n * utility like `inline`.\\n *\\n * This can trigger a poorly considered linting error in some\\n * tools but is included by design.\\n * \\n * https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210\\n */\\n\\nimg,\\nsvg,\\nvideo,\\ncanvas,\\naudio,\\niframe,\\nembed,\\nobject {\\n display: block; /* 1 */\\n vertical-align: middle; /* 2 */\\n}\\n\\n/**\\n * Constrain images and videos to the parent width and preserve\\n * their intrinsic aspect ratio.\\n *\\n * https://github.com/mozdevs/cssremedy/issues/14\\n */\\n\\nimg,\\nvideo {\\n max-width: 100%;\\n height: auto;\\n}\\n\\n/**\\n * Ensure the default browser behavior of the `hidden` attribute.\\n */\\n\\n[hidden] {\\n display: none;\\n}\\n\\n:root {\\n\\tbackground-color: hsla(var(--b1)/var(--tw-bg-opacity,1));\\n\\tcolor: hsla(var(--bc)/var(--tw-text-opacity,1));\\n}\\n\\nhtml {\\n\\t-webkit-tap-highlight-color: transparent;\\n}\\n\\n:root {\\n\\t--p: 259 94.4% 51.2%;\\n\\t--pf: 259 94.3% 41%;\\n\\t--pc: 0 0% 100%;\\n\\t--s: 314 100% 47.1%;\\n\\t--sf: 314 100% 37.1%;\\n\\t--sc: 0 0% 100%;\\n\\t--a: 174 60% 51%;\\n\\t--af: 174 59.8% 41%;\\n\\t--ac: 0 0% 100%;\\n\\t--n: 219 14.1% 27.8%;\\n\\t--nf: 222 13.4% 19%;\\n\\t--nc: 0 0% 100%;\\n\\t--b1: 0 0% 100%;\\n\\t--b2: 210 20% 98%;\\n\\t--b3: 216 12.2% 83.9%;\\n\\t--bc: 215 27.9% 16.9%;\\n\\t--in: 207 89.8% 53.9%;\\n\\t--su: 174 100% 29%;\\n\\t--wa: 36 100% 50%;\\n\\t--er: 14 100% 57.1%;\\n\\t--rounded-box: 1rem;\\n\\t--rounded-btn: 0.5rem;\\n\\t--rounded-badge: 1.9rem;\\n\\t--animation-btn: 0.25s;\\n\\t--animation-input: .2s;\\n\\t--padding-card: 2rem;\\n\\t--btn-text-case: uppercase;\\n\\t--btn-focus-scale: 0.95;\\n\\t--navbar-padding: .5rem;\\n\\t--border-btn: 1px;\\n\\t--tab-border: 1px;\\n\\t--tab-radius: 0.5rem;\\n\\t--tab-spacer: 0.5rem;\\n\\t--focus-ring: 2px;\\n\\t--focus-ring-offset: 2px;\\n\\t--glass-opacity: 30%;\\n\\t--glass-border-opacity: 10%;\\n\\t--glass-reflex-degree: 100deg;\\n\\t--glass-reflex-opacity: 10%;\\n\\t--glass-blur: 40px;\\n\\t--glass-text-shadow-opacity: 5%;\\n}\\n\\n@media (prefers-color-scheme: dark) {\\n\\n\\t:root {\\n\\t\\t--p: 259 94% 61%;\\n\\t\\t--pf: 259 94.4% 51.2%;\\n\\t\\t--pc: 0 0% 100%;\\n\\t\\t--s: 314 100% 47.1%;\\n\\t\\t--sf: 314 100% 37.1%;\\n\\t\\t--sc: 0 0% 100%;\\n\\t\\t--a: 174 60% 51%;\\n\\t\\t--af: 174 59.8% 41%;\\n\\t\\t--ac: 0 0% 100%;\\n\\t\\t--n: 222 13.4% 19%;\\n\\t\\t--nf: 223 13.7% 10%;\\n\\t\\t--nc: 0 0% 100%;\\n\\t\\t--b1: 219 14.1% 27.8%;\\n\\t\\t--b2: 222 13.4% 19%;\\n\\t\\t--b3: 223 13.7% 10%;\\n\\t\\t--bc: 228 14.3% 93.1%;\\n\\t\\t--in: 202 100% 70%;\\n\\t\\t--su: 89 61.6% 52%;\\n\\t\\t--wa: 54 68.8% 63.5%;\\n\\t\\t--er: 0 100% 71.8%;\\n\\t}\\n}\\n\\n[data-theme=light] {\\n\\t--p: 259 94.4% 51.2%;\\n\\t--pf: 259 94.3% 41%;\\n\\t--pc: 0 0% 100%;\\n\\t--s: 314 100% 47.1%;\\n\\t--sf: 314 100% 37.1%;\\n\\t--sc: 0 0% 100%;\\n\\t--a: 174 60% 51%;\\n\\t--af: 174 59.8% 41%;\\n\\t--ac: 0 0% 100%;\\n\\t--n: 219 14.1% 27.8%;\\n\\t--nf: 222 13.4% 19%;\\n\\t--nc: 0 0% 100%;\\n\\t--b1: 0 0% 100%;\\n\\t--b2: 210 20% 98%;\\n\\t--b3: 216 12.2% 83.9%;\\n\\t--bc: 215 27.9% 16.9%;\\n\\t--in: 207 89.8% 53.9%;\\n\\t--su: 174 100% 29%;\\n\\t--wa: 36 100% 50%;\\n\\t--er: 14 100% 57.1%;\\n\\t--rounded-box: 1rem;\\n\\t--rounded-btn: 0.5rem;\\n\\t--rounded-badge: 1.9rem;\\n\\t--animation-btn: 0.25s;\\n\\t--animation-input: .2s;\\n\\t--padding-card: 2rem;\\n\\t--btn-text-case: uppercase;\\n\\t--btn-focus-scale: 0.95;\\n\\t--navbar-padding: .5rem;\\n\\t--border-btn: 1px;\\n\\t--tab-border: 1px;\\n\\t--tab-radius: 0.5rem;\\n\\t--tab-spacer: 0.5rem;\\n\\t--focus-ring: 2px;\\n\\t--focus-ring-offset: 2px;\\n\\t--glass-opacity: 30%;\\n\\t--glass-border-opacity: 10%;\\n\\t--glass-reflex-degree: 100deg;\\n\\t--glass-reflex-opacity: 10%;\\n\\t--glass-blur: 40px;\\n\\t--glass-text-shadow-opacity: 5%;\\n}\\n\\n[data-theme=dark] {\\n\\t--p: 259 94% 61%;\\n\\t--pf: 259 94.4% 51.2%;\\n\\t--pc: 0 0% 100%;\\n\\t--s: 314 100% 47.1%;\\n\\t--sf: 314 100% 37.1%;\\n\\t--sc: 0 0% 100%;\\n\\t--a: 174 60% 51%;\\n\\t--af: 174 59.8% 41%;\\n\\t--ac: 0 0% 100%;\\n\\t--n: 222 13.4% 19%;\\n\\t--nf: 223 13.7% 10%;\\n\\t--nc: 0 0% 100%;\\n\\t--b1: 219 14.1% 27.8%;\\n\\t--b2: 222 13.4% 19%;\\n\\t--b3: 223 13.7% 10%;\\n\\t--bc: 228 14.3% 93.1%;\\n\\t--in: 202 100% 70%;\\n\\t--su: 89 61.6% 52%;\\n\\t--wa: 54 68.8% 63.5%;\\n\\t--er: 0 100% 71.8%;\\n}\\n\\n[data-theme=cupcake] {\\n\\t--p: 183 47.4% 59%;\\n\\t--pf: 183 47.2% 49%;\\n\\t--pc: 0 0% 100%;\\n\\t--s: 338 71.4% 78%;\\n\\t--sf: 338 71.8% 68%;\\n\\t--sc: 0 0% 100%;\\n\\t--a: 39 84.1% 58%;\\n\\t--af: 39 83.7% 48%;\\n\\t--ac: 0 0% 100%;\\n\\t--n: 280 46.5% 13.9%;\\n\\t--nf: 279 46.4% 11%;\\n\\t--nc: 0 0% 100%;\\n\\t--b1: 24 33.3% 97.1%;\\n\\t--b2: 27 22% 92%;\\n\\t--b3: 22 14.3% 89%;\\n\\t--bc: 280 46.5% 13.9%;\\n\\t--in: 207 89.8% 53.9%;\\n\\t--su: 174 100% 29%;\\n\\t--wa: 36 100% 50%;\\n\\t--er: 14 100% 57.1%;\\n\\t--rounded-box: 1rem;\\n\\t--rounded-btn: 1.9rem;\\n\\t--rounded-badge: 1.9rem;\\n\\t--tab-border: 2px;\\n}\\n\\n[data-theme=bumblebee] {\\n\\t--p: 50 94.4% 58%;\\n\\t--pf: 50 94.3% 47.8%;\\n\\t--pc: 240 33.3% 14.1%;\\n\\t--s: 41 74.2% 52.9%;\\n\\t--sf: 41 73.6% 43.1%;\\n\\t--sc: 0 0% 100%;\\n\\t--a: 240 33.3% 14.1%;\\n\\t--af: 240 33.3% 10%;\\n\\t--ac: 0 0% 100%;\\n\\t--n: 240 33.3% 14.1%;\\n\\t--nf: 240 33.3% 10%;\\n\\t--nc: 0 0% 100%;\\n\\t--b1: 0 0% 100%;\\n\\t--b2: 0 0% 96.1%;\\n\\t--b3: 0 0% 89%;\\n\\t--bc: 0 0% 0%;\\n\\t--in: 207 89.8% 53.9%;\\n\\t--su: 174 100% 29%;\\n\\t--wa: 36 100% 50%;\\n\\t--er: 14 100% 57.1%;\\n}\\n\\n[data-theme=emerald] {\\n\\t--p: 141 50% 60%;\\n\\t--pf: 141 49.8% 50%;\\n\\t--pc: 210 20% 98%;\\n\\t--s: 219 96.1% 60%;\\n\\t--sf: 219 96.1% 50%;\\n\\t--sc: 210 20% 98%;\\n\\t--a: 10 81.2% 56.1%;\\n\\t--af: 10 81.2% 45.9%;\\n\\t--ac: 210 20% 98%;\\n\\t--n: 219 20.3% 25.1%;\\n\\t--nf: 220 19.5% 15.1%;\\n\\t--nc: 210 20% 98%;\\n\\t--b1: 0 0% 100%;\\n\\t--b2: 210 20% 98%;\\n\\t--b3: 0 0% 94.9%;\\n\\t--bc: 219 20.3% 25.1%;\\n\\t--in: 207 89.8% 53.9%;\\n\\t--su: 174 100% 29%;\\n\\t--wa: 36 100% 50%;\\n\\t--er: 14 100% 57.1%;\\n\\t--animation-btn: 0;\\n\\t--animation-input: 0;\\n\\t--btn-focus-scale: 1;\\n}\\n\\n[data-theme=corporate] {\\n\\t--p: 229 95.7% 63.9%;\\n\\t--pf: 229 95.7% 53.9%;\\n\\t--pc: 233 27.3% 12.9%;\\n\\t--s: 215 26.3% 59%;\\n\\t--sf: 214 26.1% 48.8%;\\n\\t--sc: 233 27.3% 12.9%;\\n\\t--a: 154 49% 60%;\\n\\t--af: 154 49% 50%;\\n\\t--ac: 233 27.3% 12.9%;\\n\\t--n: 233 27.3% 12.9%;\\n\\t--nf: 240 25% 3.1%;\\n\\t--nc: 210 38.5% 94.9%;\\n\\t--b1: 0 0% 100%;\\n\\t--b2: 210 60% 98%;\\n\\t--b3: 210 38.5% 94.9%;\\n\\t--bc: 233 27.3% 12.9%;\\n\\t--in: 207 89.8% 53.9%;\\n\\t--su: 174 100% 29%;\\n\\t--wa: 36 100% 50%;\\n\\t--er: 14 100% 57.1%;\\n\\t--animation-btn: 0;\\n\\t--animation-input: 0;\\n\\t--btn-focus-scale: 1;\\n}\\n\\n[data-theme=synthwave] {\\n\\t--p: 321 69.6% 69%;\\n\\t--pf: 321 70.3% 59%;\\n\\t--pc: 257 63.2% 17.1%;\\n\\t--sf: 197 87.4% 75.1%;\\n\\t--s: 197 86.6% 64.9%;\\n\\t--sc: 257 63.2% 17.1%;\\n\\t--af: 48 89.3% 67.1%;\\n\\t--a: 48 89% 57.1%;\\n\\t--ac: 257 63.2% 17.1%;\\n\\t--n: 253 60.8% 19%;\\n\\t--nf: 257 64.3% 11%;\\n\\t--nc: 260 60% 98%;\\n\\t--b1: 254 59.1% 25.9%;\\n\\t--b2: 253 60.8% 19%;\\n\\t--b3: 257 64.3% 11%;\\n\\t--bc: 260 60% 98%;\\n\\t--in: 199 87% 63.9%;\\n\\t--su: 168 74.2% 68%;\\n\\t--wa: 48 89% 57.1%;\\n\\t--er: 352 73.6% 56.9%;\\n}\\n\\n[data-theme=retro] {\\n\\tfont-family: uisecondaryerif,Georgia,Cambria,Times New Roman,Times,serif;\\n\\t--p: 3 73.8% 76.1%;\\n\\t--pf: 3 73.6% 65.9%;\\n\\t--pc: 345 5.3% 14.9%;\\n\\t--s: 145 27.3% 72%;\\n\\t--sf: 145 26.8% 62%;\\n\\t--sc: 345 5.3% 14.9%;\\n\\t--a: 49 67.2% 76.1%;\\n\\t--af: 49 66.7% 65.9%;\\n\\t--ac: 345 5.3% 14.9%;\\n\\t--n: 42 16.8% 42%;\\n\\t--nf: 41 13.1% 23.9%;\\n\\t--nc: 45 47.1% 80%;\\n\\t--b1: 45 47.1% 80%;\\n\\t--b2: 45 37.1% 72%;\\n\\t--b3: 42 36% 65.1%;\\n\\t--bc: 345 5.3% 14.9%;\\n\\t--in: 207 89.8% 53.9%;\\n\\t--su: 174 100% 29%;\\n\\t--wa: 36 100% 50%;\\n\\t--er: 14 100% 57.1%;\\n\\t--rounded-box: 0.4rem;\\n\\t--rounded-btn: 0.4rem;\\n\\t--rounded-badge: 0.4rem;\\n}\\n\\n[data-theme=cyberpunk] {\\n\\tfont-family: ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;\\n\\t--p: 345 100% 72.9%;\\n\\t--pf: 344 100% 67.1%;\\n\\t--pc: 0 0% 0%;\\n\\t--s: 195 80.4% 70%;\\n\\t--sf: 194 65.8% 61%;\\n\\t--sc: 0 0% 0%;\\n\\t--a: 276 74.3% 71%;\\n\\t--af: 276 75.7% 62.9%;\\n\\t--ac: 0 0% 0%;\\n\\t--n: 57 100% 12.9%;\\n\\t--nf: 60 80% 2%;\\n\\t--nc: 56 100% 50%;\\n\\t--b1: 56 100% 50%;\\n\\t--b2: 56 100% 42.9%;\\n\\t--b3: 56 100% 36.1%;\\n\\t--bc: 0 0% 0%;\\n\\t--in: 207 89.8% 53.9%;\\n\\t--su: 174 100% 29%;\\n\\t--wa: 36 100% 50%;\\n\\t--er: 14 100% 57.1%;\\n\\t--rounded-box: 0;\\n\\t--rounded-btn: 0;\\n\\t--rounded-badge: 0;\\n\\t--tab-radius: 0;\\n}\\n\\n[data-theme=valentine] {\\n\\t--p: 353 73.8% 67.1%;\\n\\t--pf: 353 73.6% 56.9%;\\n\\t--pc: 0 0% 100%;\\n\\t--s: 254 86.4% 76.9%;\\n\\t--sf: 254 86.9% 67.1%;\\n\\t--sc: 0 0% 100%;\\n\\t--a: 181 55.6% 70%;\\n\\t--af: 181 54.9% 60%;\\n\\t--ac: 0 0% 100%;\\n\\t--n: 336 42.9% 48%;\\n\\t--nf: 340 40.2% 38%;\\n\\t--nc: 318 46.4% 89%;\\n\\t--b1: 318 46.4% 89%;\\n\\t--b2: 315 58.9% 79%;\\n\\t--b3: 316 62.3% 72.9%;\\n\\t--bc: 344 38.5% 28%;\\n\\t--in: 207 89.8% 53.9%;\\n\\t--su: 174 100% 29%;\\n\\t--wa: 36 100% 50%;\\n\\t--er: 14 100% 57.1%;\\n\\t--rounded-box: 1rem;\\n\\t--rounded-btn: 1.9rem;\\n\\t--rounded-badge: 1.9rem;\\n}\\n\\n[data-theme=halloween] {\\n\\t--p: 32 89.3% 52.2%;\\n\\t--pf: 32 88.8% 42%;\\n\\t--pc: 180 7.3% 8%;\\n\\t--s: 271 45.8% 42%;\\n\\t--sf: 271 46% 32%;\\n\\t--sc: 0 0% 100%;\\n\\t--a: 91 100% 32.9%;\\n\\t--af: 91 100% 22.9%;\\n\\t--ac: 0 0% 100%;\\n\\t--n: 180 3.6% 11%;\\n\\t--nf: 180 7.3% 8%;\\n\\t--nc: 0 0% 100%;\\n\\t--b1: 0 0% 12.9%;\\n\\t--b2: 180 3.6% 11%;\\n\\t--b3: 180 7.3% 8%;\\n\\t--bc: 0 0% 100%;\\n\\t--in: 202 100% 70%;\\n\\t--su: 89 61.6% 52%;\\n\\t--wa: 54 68.8% 63.5%;\\n\\t--er: 0 100% 71.8%;\\n}\\n\\n[data-theme=garden] {\\n\\t--p: 139 16% 42.9%;\\n\\t--pf: 137 14.8% 33.1%;\\n\\t--pc: 0 0% 100%;\\n\\t--s: 97 37.1% 93.1%;\\n\\t--sf: 98 36.3% 82.2%;\\n\\t--sc: 96 32.5% 15.1%;\\n\\t--a: 0 67.7% 93.9%;\\n\\t--af: 0 71.1% 85.1%;\\n\\t--ac: 0 22% 16.1%;\\n\\t--n: 0 3.9% 35.1%;\\n\\t--nf: 0 3.7% 15.9%;\\n\\t--nc: 0 4.3% 91%;\\n\\t--b1: 0 4.3% 91%;\\n\\t--b2: 0 5.2% 81%;\\n\\t--b3: 0 5.4% 71%;\\n\\t--bc: 0 3.2% 6.1%;\\n\\t--in: 207 89.8% 53.9%;\\n\\t--su: 174 100% 29%;\\n\\t--wa: 36 100% 50%;\\n\\t--er: 14 100% 57.1%;\\n\\t--rounded-box: 1rem;\\n\\t--rounded-btn: 0.5rem;\\n\\t--rounded-badge: 1.9rem;\\n}\\n\\n[data-theme=forest] {\\n\\t--p: 141 72% 42%;\\n\\t--pf: 141 71.8% 32%;\\n\\t--pc: 0 0% 100%;\\n\\t--s: 141 74.7% 48%;\\n\\t--sf: 141 75.3% 38%;\\n\\t--sc: 0 0% 100%;\\n\\t--a: 35 69% 52%;\\n\\t--af: 35 69.2% 42%;\\n\\t--ac: 0 0% 100%;\\n\\t--n: 0 9.7% 6.1%;\\n\\t--nf: 0 20% 2%;\\n\\t--nc: 0 0% 100%;\\n\\t--b1: 0 12.2% 8%;\\n\\t--b2: 0 9.7% 6.1%;\\n\\t--b3: 0 20% 2%;\\n\\t--bc: 0 0% 100%;\\n\\t--rounded-btn: 1.9rem;\\n\\t--in: 202 100% 70%;\\n\\t--su: 89 61.6% 52%;\\n\\t--wa: 54 68.8% 63.5%;\\n\\t--er: 0 100% 71.8%;\\n}\\n\\n[data-theme=aqua] {\\n\\t--p: 189 100% 62.9%;\\n\\t--pf: 189 100% 52.9%;\\n\\t--pc: 0 0% 0%;\\n\\t--s: 274 30.9% 56.9%;\\n\\t--sf: 274 30.8% 47.1%;\\n\\t--sc: 0 0% 100%;\\n\\t--a: 47 100% 80%;\\n\\t--af: 47 100% 70%;\\n\\t--ac: 0 0% 100%;\\n\\t--n: 231 77.4% 32.9%;\\n\\t--nf: 231 67.6% 29%;\\n\\t--nc: 0 0% 100%;\\n\\t--b1: 231 88.7% 38%;\\n\\t--b2: 231 77.4% 32.9%;\\n\\t--b3: 231 67.6% 29%;\\n\\t--bc: 0 0% 100%;\\n\\t--in: 207 89.8% 53.9%;\\n\\t--su: 174 100% 29%;\\n\\t--wa: 36 100% 50%;\\n\\t--er: 14 100% 57.1%;\\n}\\n\\n[data-theme=lofi] {\\n\\t--p: 0 0% 50.2%;\\n\\t--pf: 0 0% 45.1%;\\n\\t--pc: 240 4% 95.1%;\\n\\t--s: 0 0% 30.2%;\\n\\t--sf: 0 0% 25.1%;\\n\\t--sc: 240 4% 95.1%;\\n\\t--a: 0 0% 10.2%;\\n\\t--af: 0 0% 5.1%;\\n\\t--ac: 240 4% 95.1%;\\n\\t--n: 240 4% 95.1%;\\n\\t--nf: 240 5.9% 90%;\\n\\t--nc: 0 0% 30.2%;\\n\\t--b1: 0 0% 100%;\\n\\t--b2: 0 0% 100%;\\n\\t--b3: 0 0% 100%;\\n\\t--bc: 0 0% 49%;\\n\\t--in: 207 89.8% 53.9%;\\n\\t--su: 174 100% 29%;\\n\\t--wa: 36 100% 50%;\\n\\t--er: 14 100% 57.1%;\\n\\t--border-color: #e6e6e6;\\n\\t--animation-btn: 0;\\n\\t--animation-input: 0;\\n\\t--btn-focus-scale: 1;\\n\\t--rounded-box: 0rem;\\n\\t--rounded-btn: 0rem;\\n\\t--rounded-badge: 0rem;\\n\\t--tab-radius: 0rem;\\n}\\n\\n[data-theme=lofi] * {\\n\\tborder-color: var(--border-color) !important;\\n\\t--tw-border-opacity: 1 !important;\\n\\t--tw-text-opacity: 1 !important;\\n\\t--tw-shadow: 0 0 0 1px var(--border-color) !important;\\n}\\n\\n[data-theme=pastel] {\\n\\t--p: 284 21.6% 80%;\\n\\t--pf: 282 21.6% 70%;\\n\\t--pc: 0 0% 0%;\\n\\t--s: 352 70.5% 88%;\\n\\t--sf: 352 69.6% 78%;\\n\\t--sc: 0 0% 100%;\\n\\t--a: 158 54.6% 81%;\\n\\t--af: 158 55.4% 71%;\\n\\t--ac: 0 0% 100%;\\n\\t--n: 199 43.7% 61%;\\n\\t--nf: 199 44% 51%;\\n\\t--nc: 0 0% 100%;\\n\\t--b1: 0 0% 100%;\\n\\t--b2: 210 20% 98%;\\n\\t--b3: 216 12.2% 83.9%;\\n\\t--bc: 206 3.1% 55.1%;\\n\\t--in: 207 89.8% 53.9%;\\n\\t--su: 174 100% 29%;\\n\\t--wa: 36 100% 50%;\\n\\t--er: 14 100% 57.1%;\\n\\t--rounded-box: 1rem;\\n\\t--rounded-btn: 1.9rem;\\n\\t--rounded-badge: 1.9rem;\\n}\\n\\n[data-theme=fantasy] {\\n\\t--p: 296 82.8% 25.1%;\\n\\t--pf: 296 81.8% 15.1%;\\n\\t--pc: 0 0% 100%;\\n\\t--s: 200 100% 37.1%;\\n\\t--sf: 200 100% 27.1%;\\n\\t--sc: 0 0% 100%;\\n\\t--a: 31 94.4% 51.2%;\\n\\t--af: 31 94.3% 41%;\\n\\t--ac: 0 0% 100%;\\n\\t--n: 215 27.9% 16.9%;\\n\\t--nf: 221 39.3% 11%;\\n\\t--nc: 0 0% 100%;\\n\\t--b1: 0 0% 100%;\\n\\t--b2: 210 20% 98%;\\n\\t--b3: 216 12.2% 83.9%;\\n\\t--bc: 215 27.9% 16.9%;\\n\\t--in: 207 89.8% 53.9%;\\n\\t--su: 174 100% 29%;\\n\\t--wa: 36 100% 50%;\\n\\t--er: 14 100% 57.1%;\\n}\\n\\n[data-theme=wireframe] {\\n\\tfont-family: Chalkboard,comic sans ms,\\\"sanssecondaryerif\\\";\\n\\t--p: 0 0% 72.2%;\\n\\t--pf: 0 0% 72.2%;\\n\\t--pc: 0 0% 0%;\\n\\t--s: 0 0% 72.2%;\\n\\t--sf: 0 0% 72.2%;\\n\\t--sc: 0 0% 0%;\\n\\t--a: 0 0% 72.2%;\\n\\t--af: 0 0% 72.2%;\\n\\t--ac: 0 0% 0%;\\n\\t--b1: 0 0% 100%;\\n\\t--b2: 0 0% 100%;\\n\\t--b3: 0 0% 100%;\\n\\t--bc: 0 0% 0%;\\n\\t--n: 0 0% 92.2%;\\n\\t--nf: 0 0% 92.2%;\\n\\t--nc: 0 0% 0%;\\n\\t--in: 240 100% 50%;\\n\\t--su: 120 100% 25.1%;\\n\\t--wa: 60 30.2% 50%;\\n\\t--er: 0 100% 50%;\\n\\t--border-color: #000000;\\n\\t--rounded-box: 0.2rem;\\n\\t--rounded-btn: 0.2rem;\\n\\t--rounded-badge: 0.2rem;\\n\\t--tab-radius: 0.2rem;\\n}\\n\\n[data-theme=wireframe] * {\\n\\tborder-color: var(--border-color) !important;\\n\\t--tw-border-opacity: 1 !important;\\n\\t--tw-text-opacity: 1 !important;\\n\\t--tw-shadow: 0 0 0 1px var(--border-color) !important;\\n}\\n\\n[data-theme=black] {\\n\\t--p: 0 0% 100%;\\n\\t--pf: 0 0% 100%;\\n\\t--pc: 0 0% 0%;\\n\\t--s: 0 0% 100%;\\n\\t--sf: 0 0% 100%;\\n\\t--sc: 0 0% 0%;\\n\\t--a: 0 0% 100%;\\n\\t--af: 0 0% 100%;\\n\\t--ac: 0 0% 0%;\\n\\t--b1: 0 0% 0%;\\n\\t--b2: 0 0% 20%;\\n\\t--b3: 0 0% 30.2%;\\n\\t--bc: 0 0% 100%;\\n\\t--n: 0 0% 20%;\\n\\t--nf: 0 0% 30.2%;\\n\\t--nc: 0 0% 100%;\\n\\t--in: 240 100% 50%;\\n\\t--su: 120 100% 25.1%;\\n\\t--wa: 60 100% 50%;\\n\\t--er: 0 100% 50%;\\n\\t--rounded-box: 0;\\n\\t--rounded-btn: 0;\\n\\t--rounded-badge: 0;\\n\\t--tab-radius: 0;\\n\\t--animation-btn: 0;\\n\\t--animation-input: 0;\\n\\t--btn-focus-scale: 1;\\n\\t--btn-text-case: lowercase;\\n}\\n\\n[data-theme=luxury] {\\n\\t--p: 0 0% 100%;\\n\\t--pf: 0 0% 90.2%;\\n\\t--pc: 0 0% 0%;\\n\\t--s: 218 54.3% 18%;\\n\\t--sf: 219 56.1% 8%;\\n\\t--sc: 0 0% 100%;\\n\\t--a: 319 21.8% 26.1%;\\n\\t--af: 320 22% 16.1%;\\n\\t--ac: 0 0% 100%;\\n\\t--n: 270 4.3% 9%;\\n\\t--nf: 270 2.2% 18%;\\n\\t--nc: 37 67.3% 58%;\\n\\t--b1: 240 10% 3.9%;\\n\\t--b2: 270 4.3% 9%;\\n\\t--b3: 270 2.2% 18%;\\n\\t--bc: 37 67.3% 58%;\\n\\t--in: 202 100% 70%;\\n\\t--su: 89 61.6% 52%;\\n\\t--wa: 54 68.8% 63.5%;\\n\\t--er: 0 100% 71.8%;\\n}\\n\\n[data-theme=dracula] {\\n\\t--p: 330 100% 85.1%;\\n\\t--pf: 330 100% 75.1%;\\n\\t--pc: 233 12.1% 12.9%;\\n\\t--s: 115 100% 85.1%;\\n\\t--sf: 115 100% 75.1%;\\n\\t--sc: 233 12.1% 12.9%;\\n\\t--a: 60 100% 85.1%;\\n\\t--af: 60 100% 75.1%;\\n\\t--ac: 233 12.1% 12.9%;\\n\\t--n: 245 14.3% 15.1%;\\n\\t--nf: 233 12.1% 12.9%;\\n\\t--nc: 251 100% 90%;\\n\\t--b1: 244 13% 21.2%;\\n\\t--b2: 245 14.3% 15.1%;\\n\\t--b3: 233 12.1% 12.9%;\\n\\t--bc: 251 100% 90%;\\n\\t--in: 207 89.8% 53.9%;\\n\\t--su: 174 100% 29%;\\n\\t--wa: 36 100% 50%;\\n\\t--er: 14 100% 57.1%;\\n}\\n\\n.avatar.placeholder>div {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\\n@keyframes spin {\\n\\n\\t0% {\\n\\t\\ttransform: rotate(0deg);\\n\\t}\\n\\n\\tto {\\n\\t\\ttransform: rotate(1turn);\\n\\t}\\n}\\n\\n.form-control {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n}\\n\\n.label {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tjustify-content: space-between;\\n\\t-webkit-user-select: none;\\n\\tuser-select: none;\\n\\tpadding: .5rem .25rem;\\n}\\n\\n.hero {\\n\\tbackground-position: 50%;\\n\\tbackground-size: cover;\\n\\tdisplay: grid;\\n\\tplace-items: center;\\n\\twidth: 100%;\\n}\\n\\n.hero>* {\\n\\tgrid-column-start: 1;\\n\\tgrid-row-start: 1;\\n}\\n\\n.hero-content {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n\\tz-index: 0;\\n\\tmax-width: 80rem;\\n\\tpadding: 1rem;\\n\\tgap: 1rem;\\n}\\n\\n.input {\\n\\tflex-shrink: 1;\\n\\ttransition-property: background-color,border-color,color,fill,stroke,opacity,box-shadow,transform;\\n\\ttransition-duration: .15s;\\n\\ttransition-duration: .2s;\\n\\ttransition-timing-function: cubic-bezier(.4,0,.2,1);\\n\\theight: 3rem;\\n\\tfont-size: .875rem;\\n\\tline-height: 1.25rem;\\n\\tline-height: 2;\\n\\tpadding-left: 1rem;\\n\\tpadding-right: 1rem;\\n\\t--tw-bg-opacity: 1;\\n\\tbackground-color: hsla(var(--b1)/var(--tw-bg-opacity,1));\\n\\t--tw-border-opacity: 1;\\n\\t--tw-border-opacity: 0;\\n\\tborder-color: hsla(var(--bc)/var(--tw-border-opacity,1));\\n\\tborder-width: 1px;\\n\\tborder-radius: var(--rounded-btn,.5rem);\\n}\\n\\n.input:focus {\\n\\toutline: 2px solid transparent;\\n\\toutline-offset: 2px;\\n\\tbox-shadow: 0 0 0 2px hsl(var(--b1)),0 0 0 4px hsla(var(--bc)/.2);\\n}\\n\\n@keyframes button-pop {\\n\\n\\t0% {\\n\\t\\ttransform: scale(var(--btn-focus-scale,.95));\\n\\t}\\n\\n\\t40% {\\n\\t\\ttransform: scale(1.02);\\n\\t}\\n\\n\\tto {\\n\\t\\ttransform: scale(1);\\n\\t}\\n}\\n\\n@keyframes checkmark {\\n\\n\\t0% {\\n\\t\\tbackground-position-y: 5px;\\n\\t}\\n\\n\\t50% {\\n\\t\\tbackground-position-y: -2px;\\n\\t}\\n\\n\\tto {\\n\\t\\tbackground-position-y: 0;\\n\\t}\\n}\\n\\n.label-text {\\n\\tfont-size: .875rem;\\n\\tline-height: 1.25rem;\\n\\t--tw-text-opacity: 1;\\n\\tcolor: hsla(var(--bc)/var(--tw-text-opacity,1));\\n}\\n\\n.label a:hover {\\n\\t--tw-text-opacity: 1;\\n\\tcolor: hsla(var(--bc)/var(--tw-text-opacity,1));\\n}\\n\\n.input-bordered {\\n\\t--tw-border-opacity: 0.2;\\n}\\n\\n.input-disabled,.input[disabled] {\\n\\t--tw-bg-opacity: 1;\\n\\tbackground-color: hsla(var(--b2)/var(--tw-bg-opacity,1));\\n\\t--tw-border-opacity: 1;\\n\\tborder-color: hsla(var(--b2)/var(--tw-border-opacity,1));\\n\\tcursor: not-allowed;\\n\\t--tw-text-opacity: 0.2;\\n}\\n\\n.input-disabled::placeholder,.input[disabled]::placeholder {\\n\\t--tw-placeholder-opacity: 1;\\n\\t--tw-placeholder-opacity: 0.2;\\n\\tcolor: hsla(var(--bc)/var(--tw-placeholder-opacity,1));\\n}\\n\\n@keyframes radiomark {\\n\\n\\t0% {\\n\\t\\tbox-shadow: 0 0 0 12px hsl(var(--b1)) inset,0 0 0 12px hsl(var(--b1)) inset,var(--focus-shadow);\\n\\t}\\n\\n\\t50% {\\n\\t\\tbox-shadow: 0 0 0 3px hsl(var(--b1)) inset,0 0 0 3px hsl(var(--b1)) inset,var(--focus-shadow);\\n\\t}\\n\\n\\tto {\\n\\t\\tbox-shadow: 0 0 0 4px hsl(var(--b1)) inset,0 0 0 4px hsl(var(--b1)) inset,var(--focus-shadow);\\n\\t}\\n}\\n\\n.mb-5 {\\n\\tmargin-bottom: 1.25rem;\\n}\\n\\n.min-h-screen {\\n\\tmin-height: 100vh;\\n}\\n\\n.max-w-md {\\n\\tmax-width: 28rem;\\n}\\n\\n.bg-base-200 {\\n\\t--tw-bg-opacity: 1;\\n\\tbackground-color: hsla(var(--b2) / var(--tw-bg-opacity));\\n}\\n\\n.text-center {\\n\\ttext-align: center;\\n}\\n\\n.text-5xl {\\n\\tfont-size: 3rem;\\n\\tline-height: 1;\\n}\\n\", \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://frontend/./node_modules/tailwindcss/tailwind.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B0%5D.use%5B1%5D!./node_modules/postcss-loader/dist/cjs.js"); + +/***/ }), + +/***/ "./node_modules/css-loader/dist/runtime/api.js": +/*!*****************************************************!*\ + !*** ./node_modules/css-loader/dist/runtime/api.js ***! + \*****************************************************/ +/***/ ((module) => { + +eval("\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 _i = 0; _i < this.length; _i++) {\n var id = this[_i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _i2 = 0; _i2 < modules.length; _i2++) {\n var item = [].concat(modules[_i2]);\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};\n\n//# sourceURL=webpack://frontend/./node_modules/css-loader/dist/runtime/api.js?"); + +/***/ }), + +/***/ "./node_modules/css-loader/dist/runtime/noSourceMaps.js": +/*!**************************************************************!*\ + !*** ./node_modules/css-loader/dist/runtime/noSourceMaps.js ***! + \**************************************************************/ +/***/ ((module) => { + +eval("\n\nmodule.exports = function (i) {\n return i[1];\n};\n\n//# sourceURL=webpack://frontend/./node_modules/css-loader/dist/runtime/noSourceMaps.js?"); + +/***/ }), + +/***/ "./node_modules/tailwindcss/tailwind.css": +/*!***********************************************!*\ + !*** ./node_modules/tailwindcss/tailwind.css ***! + \***********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../style-loader/dist/runtime/injectStylesIntoStyleTag.js */ \"./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n/* harmony import */ var _style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../style-loader/dist/runtime/styleDomAPI.js */ \"./node_modules/style-loader/dist/runtime/styleDomAPI.js\");\n/* harmony import */ var _style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../style-loader/dist/runtime/insertBySelector.js */ \"./node_modules/style-loader/dist/runtime/insertBySelector.js\");\n/* harmony import */ var _style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../style-loader/dist/runtime/setAttributesWithoutAttributes.js */ \"./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\");\n/* harmony import */ var _style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../style-loader/dist/runtime/insertStyleElement.js */ \"./node_modules/style-loader/dist/runtime/insertStyleElement.js\");\n/* harmony import */ var _style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../style-loader/dist/runtime/styleTagTransform.js */ \"./node_modules/style-loader/dist/runtime/styleTagTransform.js\");\n/* harmony import */ var _style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _css_loader_dist_cjs_js_ruleSet_1_rules_0_use_1_postcss_loader_dist_cjs_js_tailwind_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../postcss-loader/dist/cjs.js!./tailwind.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js!./node_modules/tailwindcss/tailwind.css\");\n\n \n \n \n \n \n \n \n \n \n\nvar options = {};\n\noptions.styleTagTransform = (_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default());\noptions.setAttributes = (_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default());\n\n options.insert = _style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, \"head\");\n \noptions.domAPI = (_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default());\noptions.insertStyleElement = (_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default());\n\nvar update = _style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_css_loader_dist_cjs_js_ruleSet_1_rules_0_use_1_postcss_loader_dist_cjs_js_tailwind_css__WEBPACK_IMPORTED_MODULE_6__[\"default\"], options);\n\n\n\n\n /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_css_loader_dist_cjs_js_ruleSet_1_rules_0_use_1_postcss_loader_dist_cjs_js_tailwind_css__WEBPACK_IMPORTED_MODULE_6__[\"default\"] && _css_loader_dist_cjs_js_ruleSet_1_rules_0_use_1_postcss_loader_dist_cjs_js_tailwind_css__WEBPACK_IMPORTED_MODULE_6__[\"default\"].locals ? _css_loader_dist_cjs_js_ruleSet_1_rules_0_use_1_postcss_loader_dist_cjs_js_tailwind_css__WEBPACK_IMPORTED_MODULE_6__[\"default\"].locals : undefined);\n\n\n//# sourceURL=webpack://frontend/./node_modules/tailwindcss/tailwind.css?"); + +/***/ }), + +/***/ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js": +/*!****************************************************************************!*\ + !*** ./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js ***! + \****************************************************************************/ +/***/ ((module) => { + +eval("\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};\n\n//# sourceURL=webpack://frontend/./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js?"); + +/***/ }), + +/***/ "./node_modules/style-loader/dist/runtime/insertBySelector.js": +/*!********************************************************************!*\ + !*** ./node_modules/style-loader/dist/runtime/insertBySelector.js ***! + \********************************************************************/ +/***/ ((module) => { + +eval("\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;\n\n//# sourceURL=webpack://frontend/./node_modules/style-loader/dist/runtime/insertBySelector.js?"); + +/***/ }), + +/***/ "./node_modules/style-loader/dist/runtime/insertStyleElement.js": +/*!**********************************************************************!*\ + !*** ./node_modules/style-loader/dist/runtime/insertStyleElement.js ***! + \**********************************************************************/ +/***/ ((module) => { + +eval("\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;\n\n//# sourceURL=webpack://frontend/./node_modules/style-loader/dist/runtime/insertStyleElement.js?"); + +/***/ }), + +/***/ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js": +/*!**********************************************************************************!*\ + !*** ./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js ***! + \**********************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +eval("\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = true ? __webpack_require__.nc : 0;\n\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\n\nmodule.exports = setAttributesWithoutAttributes;\n\n//# sourceURL=webpack://frontend/./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js?"); + +/***/ }), + +/***/ "./node_modules/style-loader/dist/runtime/styleDomAPI.js": +/*!***************************************************************!*\ + !*** ./node_modules/style-loader/dist/runtime/styleDomAPI.js ***! + \***************************************************************/ +/***/ ((module) => { + +eval("\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;\n\n//# sourceURL=webpack://frontend/./node_modules/style-loader/dist/runtime/styleDomAPI.js?"); + +/***/ }), + +/***/ "./node_modules/style-loader/dist/runtime/styleTagTransform.js": +/*!*********************************************************************!*\ + !*** ./node_modules/style-loader/dist/runtime/styleTagTransform.js ***! + \*********************************************************************/ +/***/ ((module) => { + +eval("\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;\n\n//# sourceURL=webpack://frontend/./node_modules/style-loader/dist/runtime/styleTagTransform.js?"); + +/***/ }), + +/***/ "./src/index.js": +/*!**********************!*\ + !*** ./src/index.js ***! + \**********************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils */ \"./src/utils.js\");\n\n\n\nclass App extends _utils__WEBPACK_IMPORTED_MODULE_0__.LiteElement\n{\n constructor() {\n super();\n this.auth = null;\n }\n\n render() {\n return _utils__WEBPACK_IMPORTED_MODULE_0__.html`\n ${this.auth ? _utils__WEBPACK_IMPORTED_MODULE_0__.html`\n

Signed In

\n ` : _utils__WEBPACK_IMPORTED_MODULE_0__.html`\n \n `}`;\n }\n}\n\n\nclass SignIn extends _utils__WEBPACK_IMPORTED_MODULE_0__.LiteElement\n{\n render() {\n return _utils__WEBPACK_IMPORTED_MODULE_0__.html`\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n `;\n }\n}\n\n\ncustomElements.define(\"browsertrix-app\", App);\ncustomElements.define(\"sign-in\", SignIn);\n\n\n//# sourceURL=webpack://frontend/./src/index.js?"); + +/***/ }), + +/***/ "./src/utils.js": +/*!**********************!*\ + !*** ./src/utils.js ***! + \**********************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"LiteElement\": () => (/* binding */ LiteElement),\n/* harmony export */ \"html\": () => (/* reexport safe */ lit__WEBPACK_IMPORTED_MODULE_1__.html)\n/* harmony export */ });\n/* harmony import */ var tailwindcss_tailwind_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tailwindcss/tailwind.css */ \"./node_modules/tailwindcss/tailwind.css\");\n/* harmony import */ var lit__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lit */ \"./node_modules/lit/index.js\");\n\n\n\n\nclass LiteElement extends lit__WEBPACK_IMPORTED_MODULE_1__.LitElement\n{\n createRenderRoot() {\n return this;\n }\n}\n\n\n\n\n//# sourceURL=webpack://frontend/./src/utils.js?"); + +/***/ }), + +/***/ "./node_modules/@lit/reactive-element/development/css-tag.js": +/*!*******************************************************************!*\ + !*** ./node_modules/@lit/reactive-element/development/css-tag.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"supportsAdoptingStyleSheets\": () => (/* binding */ supportsAdoptingStyleSheets),\n/* harmony export */ \"CSSResult\": () => (/* binding */ CSSResult),\n/* harmony export */ \"unsafeCSS\": () => (/* binding */ unsafeCSS),\n/* harmony export */ \"css\": () => (/* binding */ css),\n/* harmony export */ \"adoptStyles\": () => (/* binding */ adoptStyles),\n/* harmony export */ \"getCompatibleStyle\": () => (/* binding */ getCompatibleStyle)\n/* harmony export */ });\n/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n/**\n * Whether the current browser supports `adoptedStyleSheets`.\n */\nconst supportsAdoptingStyleSheets = window.ShadowRoot &&\n (window.ShadyCSS === undefined || window.ShadyCSS.nativeShadow) &&\n 'adoptedStyleSheets' in Document.prototype &&\n 'replace' in CSSStyleSheet.prototype;\nconst constructionToken = Symbol();\nconst styleSheetCache = new Map();\n/**\n * A container for a string of CSS text, that may be used to create a CSSStyleSheet.\n *\n * CSSResult is the return value of `css`-tagged template literals and\n * `unsafeCSS()`. In order to ensure that CSSResults are only created via the\n * `css` tag and `unsafeCSS()`, CSSResult cannot be constructed directly.\n */\nclass CSSResult {\n constructor(cssText, safeToken) {\n // This property needs to remain unminified.\n this['_$cssResult$'] = true;\n if (safeToken !== constructionToken) {\n throw new Error('CSSResult is not constructable. Use `unsafeCSS` or `css` instead.');\n }\n this.cssText = cssText;\n }\n // Note, this is a getter so that it's lazy. In practice, this means\n // stylesheets are not created until the first element instance is made.\n get styleSheet() {\n // Note, if `supportsAdoptingStyleSheets` is true then we assume\n // CSSStyleSheet is constructable.\n let styleSheet = styleSheetCache.get(this.cssText);\n if (supportsAdoptingStyleSheets && styleSheet === undefined) {\n styleSheetCache.set(this.cssText, (styleSheet = new CSSStyleSheet()));\n styleSheet.replaceSync(this.cssText);\n }\n return styleSheet;\n }\n toString() {\n return this.cssText;\n }\n}\nconst textFromCSSResult = (value) => {\n // This property needs to remain unminified.\n if (value['_$cssResult$'] === true) {\n return value.cssText;\n }\n else if (typeof value === 'number') {\n return value;\n }\n else {\n throw new Error(`Value passed to 'css' function must be a 'css' function result: ` +\n `${value}. Use 'unsafeCSS' to pass non-literal values, but take care ` +\n `to ensure page security.`);\n }\n};\n/**\n * Wrap a value for interpolation in a [[`css`]] tagged template literal.\n *\n * This is unsafe because untrusted CSS text can be used to phone home\n * or exfiltrate data to an attacker controlled site. Take care to only use\n * this with trusted input.\n */\nconst unsafeCSS = (value) => new CSSResult(typeof value === 'string' ? value : String(value), constructionToken);\n/**\n * A template literal tag which can be used with LitElement's\n * [[LitElement.styles | `styles`]] property to set element styles.\n *\n * For security reasons, only literal string values and number may be used in\n * embedded expressions. To incorporate non-literal values [[`unsafeCSS`]] may\n * be used inside an expression.\n */\nconst css = (strings, ...values) => {\n const cssText = strings.length === 1\n ? strings[0]\n : values.reduce((acc, v, idx) => acc + textFromCSSResult(v) + strings[idx + 1], strings[0]);\n return new CSSResult(cssText, constructionToken);\n};\n/**\n * Applies the given styles to a `shadowRoot`. When Shadow DOM is\n * available but `adoptedStyleSheets` is not, styles are appended to the\n * `shadowRoot` to [mimic spec behavior](https://wicg.github.io/construct-stylesheets/#using-constructed-stylesheets).\n * Note, when shimming is used, any styles that are subsequently placed into\n * the shadowRoot should be placed *before* any shimmed adopted styles. This\n * will match spec behavior that gives adopted sheets precedence over styles in\n * shadowRoot.\n */\nconst adoptStyles = (renderRoot, styles) => {\n if (supportsAdoptingStyleSheets) {\n renderRoot.adoptedStyleSheets = styles.map((s) => s instanceof CSSStyleSheet ? s : s.styleSheet);\n }\n else {\n styles.forEach((s) => {\n const style = document.createElement('style');\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const nonce = window['litNonce'];\n if (nonce !== undefined) {\n style.setAttribute('nonce', nonce);\n }\n style.textContent = s.cssText;\n renderRoot.appendChild(style);\n });\n }\n};\nconst cssResultFromStyleSheet = (sheet) => {\n let cssText = '';\n for (const rule of sheet.cssRules) {\n cssText += rule.cssText;\n }\n return unsafeCSS(cssText);\n};\nconst getCompatibleStyle = supportsAdoptingStyleSheets\n ? (s) => s\n : (s) => s instanceof CSSStyleSheet ? cssResultFromStyleSheet(s) : s;\n//# sourceMappingURL=css-tag.js.map\n\n//# sourceURL=webpack://frontend/./node_modules/@lit/reactive-element/development/css-tag.js?"); + +/***/ }), + +/***/ "./node_modules/@lit/reactive-element/development/reactive-element.js": +/*!****************************************************************************!*\ + !*** ./node_modules/@lit/reactive-element/development/reactive-element.js ***! + \****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"CSSResult\": () => (/* reexport safe */ _css_tag_js__WEBPACK_IMPORTED_MODULE_0__.CSSResult),\n/* harmony export */ \"adoptStyles\": () => (/* reexport safe */ _css_tag_js__WEBPACK_IMPORTED_MODULE_0__.adoptStyles),\n/* harmony export */ \"css\": () => (/* reexport safe */ _css_tag_js__WEBPACK_IMPORTED_MODULE_0__.css),\n/* harmony export */ \"getCompatibleStyle\": () => (/* reexport safe */ _css_tag_js__WEBPACK_IMPORTED_MODULE_0__.getCompatibleStyle),\n/* harmony export */ \"supportsAdoptingStyleSheets\": () => (/* reexport safe */ _css_tag_js__WEBPACK_IMPORTED_MODULE_0__.supportsAdoptingStyleSheets),\n/* harmony export */ \"unsafeCSS\": () => (/* reexport safe */ _css_tag_js__WEBPACK_IMPORTED_MODULE_0__.unsafeCSS),\n/* harmony export */ \"defaultConverter\": () => (/* binding */ defaultConverter),\n/* harmony export */ \"notEqual\": () => (/* binding */ notEqual),\n/* harmony export */ \"ReactiveElement\": () => (/* binding */ ReactiveElement)\n/* harmony export */ });\n/* harmony import */ var _css_tag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./css-tag.js */ \"./node_modules/@lit/reactive-element/development/css-tag.js\");\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nvar _a, _b, _c, _d;\nvar _e;\n/**\n * Use this module if you want to create your own base class extending\n * [[ReactiveElement]].\n * @packageDocumentation\n */\n\n\nconst DEV_MODE = true;\nlet requestUpdateThenable;\nlet issueWarning;\nif (DEV_MODE) {\n // Ensure warnings are issued only 1x, even if multiple versions of Lit\n // are loaded.\n const issuedWarnings = ((_a = globalThis.litIssuedWarnings) !== null && _a !== void 0 ? _a : (globalThis.litIssuedWarnings = new Set()));\n // Issue a warning, if we haven't already.\n issueWarning = (code, warning) => {\n warning += ` See https://lit.dev/msg/${code} for more information.`;\n if (!issuedWarnings.has(warning)) {\n console.warn(warning);\n issuedWarnings.add(warning);\n }\n };\n issueWarning('dev-mode', `Lit is in dev mode. Not recommended for production!`);\n // Issue polyfill support warning.\n if (((_b = window.ShadyDOM) === null || _b === void 0 ? void 0 : _b.inUse) &&\n globalThis[`reactiveElementPolyfillSupport${DEV_MODE ? `DevMode` : ``}`] ===\n undefined) {\n issueWarning('polyfill-support-missing', `Shadow DOM is being polyfilled via \\`ShadyDOM\\` but ` +\n `the \\`polyfill-support\\` module has not been loaded.`);\n }\n requestUpdateThenable = (name) => ({\n then: (onfulfilled, _onrejected) => {\n issueWarning('request-update-promise', `The \\`requestUpdate\\` method should no longer return a Promise but ` +\n `does so on \\`${name}\\`. Use \\`updateComplete\\` instead.`);\n if (onfulfilled !== undefined) {\n onfulfilled(false);\n }\n },\n });\n}\n/*\n * When using Closure Compiler, JSCompiler_renameProperty(property, object) is\n * replaced at compile time by the munged name for object[property]. We cannot\n * alias this function, so we have to use a small shim that has the same\n * behavior when not compiling.\n */\n/*@__INLINE__*/\nconst JSCompiler_renameProperty = (prop, _obj) => prop;\nconst defaultConverter = {\n toAttribute(value, type) {\n switch (type) {\n case Boolean:\n value = value ? '' : null;\n break;\n case Object:\n case Array:\n // if the value is `null` or `undefined` pass this through\n // to allow removing/no change behavior.\n value = value == null ? value : JSON.stringify(value);\n break;\n }\n return value;\n },\n fromAttribute(value, type) {\n let fromValue = value;\n switch (type) {\n case Boolean:\n fromValue = value !== null;\n break;\n case Number:\n fromValue = value === null ? null : Number(value);\n break;\n case Object:\n case Array:\n // Do *not* generate exception when invalid JSON is set as elements\n // don't normally complain on being mis-configured.\n // TODO(sorvell): Do generate exception in *dev mode*.\n try {\n // Assert to adhere to Bazel's \"must type assert JSON parse\" rule.\n fromValue = JSON.parse(value);\n }\n catch (e) {\n fromValue = null;\n }\n break;\n }\n return fromValue;\n },\n};\n/**\n * Change function that returns true if `value` is different from `oldValue`.\n * This method is used as the default for a property's `hasChanged` function.\n */\nconst notEqual = (value, old) => {\n // This ensures (old==NaN, value==NaN) always returns false\n return old !== value && (old === old || value === value);\n};\nconst defaultPropertyDeclaration = {\n attribute: true,\n type: String,\n converter: defaultConverter,\n reflect: false,\n hasChanged: notEqual,\n};\n/**\n * The Closure JS Compiler doesn't currently have good support for static\n * property semantics where \"this\" is dynamic (e.g.\n * https://github.com/google/closure-compiler/issues/3177 and others) so we use\n * this hack to bypass any rewriting by the compiler.\n */\nconst finalized = 'finalized';\n/**\n * Base element class which manages element properties and attributes. When\n * properties change, the `update` method is asynchronously called. This method\n * should be supplied by subclassers to render updates as desired.\n * @noInheritDoc\n */\nclass ReactiveElement extends HTMLElement {\n constructor() {\n super();\n this.__instanceProperties = new Map();\n /**\n * True if there is a pending update as a result of calling `requestUpdate()`.\n * Should only be read.\n * @category updates\n */\n this.isUpdatePending = false;\n /**\n * Is set to `true` after the first update. The element code cannot assume\n * that `renderRoot` exists before the element `hasUpdated`.\n * @category updates\n */\n this.hasUpdated = false;\n /**\n * Name of currently reflecting property\n */\n this.__reflectingProperty = null;\n this._initialize();\n }\n /**\n * Adds an initializer function to the class that is called during instance\n * construction.\n *\n * This is useful for code that runs against a `ReactiveElement`\n * subclass, such as a decorator, that needs to do work for each\n * instance, such as setting up a `ReactiveController`.\n *\n * ```ts\n * const myDecorator = (target: typeof ReactiveElement, key: string) => {\n * target.addInitializer((instance: ReactiveElement) => {\n * // This is run during construction of the element\n * new MyController(instance);\n * });\n * }\n * ```\n *\n * Decorating a field will then cause each instance to run an initializer\n * that adds a controller:\n *\n * ```ts\n * class MyElement extends LitElement {\n * @myDecorator foo;\n * }\n * ```\n *\n * Initializers are stored per-constructor. Adding an initializer to a\n * subclass does not add it to a superclass. Since initializers are run in\n * constructors, initializers will run in order of the class hierarchy,\n * starting with superclasses and progressing to the instance's class.\n *\n * @nocollapse\n */\n static addInitializer(initializer) {\n var _a;\n (_a = this._initializers) !== null && _a !== void 0 ? _a : (this._initializers = []);\n this._initializers.push(initializer);\n }\n /**\n * Returns a list of attributes corresponding to the registered properties.\n * @nocollapse\n * @category attributes\n */\n static get observedAttributes() {\n // note: piggy backing on this to ensure we're finalized.\n this.finalize();\n const attributes = [];\n // Use forEach so this works even if for/of loops are compiled to for loops\n // expecting arrays\n this.elementProperties.forEach((v, p) => {\n const attr = this.__attributeNameForProperty(p, v);\n if (attr !== undefined) {\n this.__attributeToPropertyMap.set(attr, p);\n attributes.push(attr);\n }\n });\n return attributes;\n }\n /**\n * Creates a property accessor on the element prototype if one does not exist\n * and stores a `PropertyDeclaration` for the property with the given options.\n * The property setter calls the property's `hasChanged` property option\n * or uses a strict identity check to determine whether or not to request\n * an update.\n *\n * This method may be overridden to customize properties; however,\n * when doing so, it's important to call `super.createProperty` to ensure\n * the property is setup correctly. This method calls\n * `getPropertyDescriptor` internally to get a descriptor to install.\n * To customize what properties do when they are get or set, override\n * `getPropertyDescriptor`. To customize the options for a property,\n * implement `createProperty` like this:\n *\n * ```ts\n * static createProperty(name, options) {\n * options = Object.assign(options, {myOption: true});\n * super.createProperty(name, options);\n * }\n * ```\n *\n * @nocollapse\n * @category properties\n */\n static createProperty(name, options = defaultPropertyDeclaration) {\n // if this is a state property, force the attribute to false.\n if (options.state) {\n // Cast as any since this is readonly.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n options.attribute = false;\n }\n // Note, since this can be called by the `@property` decorator which\n // is called before `finalize`, we ensure finalization has been kicked off.\n this.finalize();\n this.elementProperties.set(name, options);\n // Do not generate an accessor if the prototype already has one, since\n // it would be lost otherwise and that would never be the user's intention;\n // Instead, we expect users to call `requestUpdate` themselves from\n // user-defined accessors. Note that if the super has an accessor we will\n // still overwrite it\n if (!options.noAccessor && !this.prototype.hasOwnProperty(name)) {\n const key = typeof name === 'symbol' ? Symbol() : `__${name}`;\n const descriptor = this.getPropertyDescriptor(name, key, options);\n if (descriptor !== undefined) {\n Object.defineProperty(this.prototype, name, descriptor);\n }\n }\n }\n /**\n * Returns a property descriptor to be defined on the given named property.\n * If no descriptor is returned, the property will not become an accessor.\n * For example,\n *\n * ```ts\n * class MyElement extends LitElement {\n * static getPropertyDescriptor(name, key, options) {\n * const defaultDescriptor =\n * super.getPropertyDescriptor(name, key, options);\n * const setter = defaultDescriptor.set;\n * return {\n * get: defaultDescriptor.get,\n * set(value) {\n * setter.call(this, value);\n * // custom action.\n * },\n * configurable: true,\n * enumerable: true\n * }\n * }\n * }\n * ```\n *\n * @nocollapse\n * @category properties\n */\n static getPropertyDescriptor(name, key, options) {\n return {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n get() {\n return this[key];\n },\n set(value) {\n const oldValue = this[name];\n this[key] = value;\n this.requestUpdate(name, oldValue, options);\n },\n configurable: true,\n enumerable: true,\n };\n }\n /**\n * Returns the property options associated with the given property.\n * These options are defined with a `PropertyDeclaration` via the `properties`\n * object or the `@property` decorator and are registered in\n * `createProperty(...)`.\n *\n * Note, this method should be considered \"final\" and not overridden. To\n * customize the options for a given property, override [[`createProperty`]].\n *\n * @nocollapse\n * @final\n * @category properties\n */\n static getPropertyOptions(name) {\n return this.elementProperties.get(name) || defaultPropertyDeclaration;\n }\n /**\n * Creates property accessors for registered properties, sets up element\n * styling, and ensures any superclasses are also finalized. Returns true if\n * the element was finalized.\n * @nocollapse\n */\n static finalize() {\n if (this.hasOwnProperty(finalized)) {\n return false;\n }\n this[finalized] = true;\n // finalize any superclasses\n const superCtor = Object.getPrototypeOf(this);\n superCtor.finalize();\n this.elementProperties = new Map(superCtor.elementProperties);\n // initialize Map populated in observedAttributes\n this.__attributeToPropertyMap = new Map();\n // make any properties\n // Note, only process \"own\" properties since this element will inherit\n // any properties defined on the superClass, and finalization ensures\n // the entire prototype chain is finalized.\n if (this.hasOwnProperty(JSCompiler_renameProperty('properties', this))) {\n const props = this.properties;\n // support symbols in properties (IE11 does not support this)\n const propKeys = [\n ...Object.getOwnPropertyNames(props),\n ...Object.getOwnPropertySymbols(props),\n ];\n // This for/of is ok because propKeys is an array\n for (const p of propKeys) {\n // note, use of `any` is due to TypeScript lack of support for symbol in\n // index types\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.createProperty(p, props[p]);\n }\n }\n this.elementStyles = this.finalizeStyles(this.styles);\n // DEV mode warnings\n if (DEV_MODE) {\n const warnRemovedOrRenamed = (name, renamed = false) => {\n if (this.prototype.hasOwnProperty(name)) {\n issueWarning(renamed ? 'renamed-api' : 'removed-api', `\\`${name}\\` is implemented on class ${this.name}. It ` +\n `has been ${renamed ? 'renamed' : 'removed'} ` +\n `in this version of LitElement.`);\n }\n };\n warnRemovedOrRenamed('initialize');\n warnRemovedOrRenamed('requestUpdateInternal');\n warnRemovedOrRenamed('_getUpdateComplete', true);\n }\n return true;\n }\n /**\n * Takes the styles the user supplied via the `static styles` property and\n * returns the array of styles to apply to the element.\n * Override this method to integrate into a style management system.\n *\n * Styles are deduplicated preserving the _last_ instance in the list. This\n * is a performance optimization to avoid duplicated styles that can occur\n * especially when composing via subclassing. The last item is kept to try\n * to preserve the cascade order with the assumption that it's most important\n * that last added styles override previous styles.\n *\n * @nocollapse\n * @category styles\n */\n static finalizeStyles(styles) {\n const elementStyles = [];\n if (Array.isArray(styles)) {\n // Dedupe the flattened array in reverse order to preserve the last items.\n // Casting to Array works around TS error that\n // appears to come from trying to flatten a type CSSResultArray.\n const set = new Set(styles.flat(Infinity).reverse());\n // Then preserve original order by adding the set items in reverse order.\n for (const s of set) {\n elementStyles.unshift((0,_css_tag_js__WEBPACK_IMPORTED_MODULE_0__.getCompatibleStyle)(s));\n }\n }\n else if (styles !== undefined) {\n elementStyles.push((0,_css_tag_js__WEBPACK_IMPORTED_MODULE_0__.getCompatibleStyle)(styles));\n }\n return elementStyles;\n }\n /**\n * Returns the property name for the given attribute `name`.\n * @nocollapse\n */\n static __attributeNameForProperty(name, options) {\n const attribute = options.attribute;\n return attribute === false\n ? undefined\n : typeof attribute === 'string'\n ? attribute\n : typeof name === 'string'\n ? name.toLowerCase()\n : undefined;\n }\n /**\n * Internal only override point for customizing work done when elements\n * are constructed.\n *\n * @internal\n */\n _initialize() {\n var _a;\n this.__updatePromise = new Promise((res) => (this.enableUpdating = res));\n this._$changedProperties = new Map();\n this.__saveInstanceProperties();\n // ensures first update will be caught by an early access of\n // `updateComplete`\n this.requestUpdate();\n (_a = this.constructor._initializers) === null || _a === void 0 ? void 0 : _a.forEach((i) => i(this));\n }\n /**\n * Registers a `ReactiveController` to participate in the element's reactive\n * update cycle. The element automatically calls into any registered\n * controllers during its lifecycle callbacks.\n *\n * If the element is connected when `addController()` is called, the\n * controller's `hostConnected()` callback will be immediately called.\n * @category controllers\n */\n addController(controller) {\n var _a, _b;\n ((_a = this.__controllers) !== null && _a !== void 0 ? _a : (this.__controllers = [])).push(controller);\n // If a controller is added after the element has been connected,\n // call hostConnected. Note, re-using existence of `renderRoot` here\n // (which is set in connectedCallback) to avoid the need to track a\n // first connected state.\n if (this.renderRoot !== undefined && this.isConnected) {\n (_b = controller.hostConnected) === null || _b === void 0 ? void 0 : _b.call(controller);\n }\n }\n /**\n * Removes a `ReactiveController` from the element.\n * @category controllers\n */\n removeController(controller) {\n var _a;\n // Note, if the indexOf is -1, the >>> will flip the sign which makes the\n // splice do nothing.\n (_a = this.__controllers) === null || _a === void 0 ? void 0 : _a.splice(this.__controllers.indexOf(controller) >>> 0, 1);\n }\n /**\n * Fixes any properties set on the instance before upgrade time.\n * Otherwise these would shadow the accessor and break these properties.\n * The properties are stored in a Map which is played back after the\n * constructor runs. Note, on very old versions of Safari (<=9) or Chrome\n * (<=41), properties created for native platform properties like (`id` or\n * `name`) may not have default values set in the element constructor. On\n * these browsers native properties appear on instances and therefore their\n * default value will overwrite any element default (e.g. if the element sets\n * this.id = 'id' in the constructor, the 'id' will become '' since this is\n * the native platform default).\n */\n __saveInstanceProperties() {\n // Use forEach so this works even if for/of loops are compiled to for loops\n // expecting arrays\n this.constructor.elementProperties.forEach((_v, p) => {\n if (this.hasOwnProperty(p)) {\n this.__instanceProperties.set(p, this[p]);\n delete this[p];\n }\n });\n }\n /**\n * Returns the node into which the element should render and by default\n * creates and returns an open shadowRoot. Implement to customize where the\n * element's DOM is rendered. For example, to render into the element's\n * childNodes, return `this`.\n *\n * @return Returns a node into which to render.\n * @category rendering\n */\n createRenderRoot() {\n var _a;\n const renderRoot = (_a = this.shadowRoot) !== null && _a !== void 0 ? _a : this.attachShadow(this.constructor.shadowRootOptions);\n (0,_css_tag_js__WEBPACK_IMPORTED_MODULE_0__.adoptStyles)(renderRoot, this.constructor.elementStyles);\n return renderRoot;\n }\n /**\n * On first connection, creates the element's renderRoot, sets up\n * element styling, and enables updating.\n * @category lifecycle\n */\n connectedCallback() {\n var _a;\n // create renderRoot before first update.\n if (this.renderRoot === undefined) {\n this.renderRoot = this.createRenderRoot();\n }\n this.enableUpdating(true);\n (_a = this.__controllers) === null || _a === void 0 ? void 0 : _a.forEach((c) => { var _a; return (_a = c.hostConnected) === null || _a === void 0 ? void 0 : _a.call(c); });\n }\n /**\n * Note, this method should be considered final and not overridden. It is\n * overridden on the element instance with a function that triggers the first\n * update.\n * @category updates\n */\n enableUpdating(_requestedUpdate) { }\n /**\n * Allows for `super.disconnectedCallback()` in extensions while\n * reserving the possibility of making non-breaking feature additions\n * when disconnecting at some point in the future.\n * @category lifecycle\n */\n disconnectedCallback() {\n var _a;\n (_a = this.__controllers) === null || _a === void 0 ? void 0 : _a.forEach((c) => { var _a; return (_a = c.hostDisconnected) === null || _a === void 0 ? void 0 : _a.call(c); });\n }\n /**\n * Synchronizes property values when attributes change.\n * @category attributes\n */\n attributeChangedCallback(name, _old, value) {\n this._$attributeToProperty(name, value);\n }\n __propertyToAttribute(name, value, options = defaultPropertyDeclaration) {\n var _a, _b;\n const attr = this.constructor.__attributeNameForProperty(name, options);\n if (attr !== undefined && options.reflect === true) {\n const toAttribute = (_b = (_a = options.converter) === null || _a === void 0 ? void 0 : _a.toAttribute) !== null && _b !== void 0 ? _b : defaultConverter.toAttribute;\n const attrValue = toAttribute(value, options.type);\n if (DEV_MODE &&\n this.constructor.enabledWarnings.indexOf('migration') >= 0 &&\n attrValue === undefined) {\n issueWarning('undefined-attribute-value', `The attribute value for the ${name} property is ` +\n `undefined on element ${this.localName}. The attribute will be ` +\n `removed, but in the previous version of \\`ReactiveElement\\`, ` +\n `the attribute would not have changed.`);\n }\n // Track if the property is being reflected to avoid\n // setting the property again via `attributeChangedCallback`. Note:\n // 1. this takes advantage of the fact that the callback is synchronous.\n // 2. will behave incorrectly if multiple attributes are in the reaction\n // stack at time of calling. However, since we process attributes\n // in `update` this should not be possible (or an extreme corner case\n // that we'd like to discover).\n // mark state reflecting\n this.__reflectingProperty = name;\n if (attrValue == null) {\n this.removeAttribute(attr);\n }\n else {\n this.setAttribute(attr, attrValue);\n }\n // mark state not reflecting\n this.__reflectingProperty = null;\n }\n }\n /** @internal */\n _$attributeToProperty(name, value) {\n var _a, _b, _c;\n const ctor = this.constructor;\n // Note, hint this as an `AttributeMap` so closure clearly understands\n // the type; it has issues with tracking types through statics\n const propName = ctor.__attributeToPropertyMap.get(name);\n // Use tracking info to avoid reflecting a property value to an attribute\n // if it was just set because the attribute changed.\n if (propName !== undefined && this.__reflectingProperty !== propName) {\n const options = ctor.getPropertyOptions(propName);\n const converter = options.converter;\n const fromAttribute = (_c = (_b = (_a = converter) === null || _a === void 0 ? void 0 : _a.fromAttribute) !== null && _b !== void 0 ? _b : (typeof converter === 'function'\n ? converter\n : null)) !== null && _c !== void 0 ? _c : defaultConverter.fromAttribute;\n // mark state reflecting\n this.__reflectingProperty = propName;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this[propName] = fromAttribute(value, options.type);\n // mark state not reflecting\n this.__reflectingProperty = null;\n }\n }\n /**\n * Requests an update which is processed asynchronously. This should be called\n * when an element should update based on some state not triggered by setting\n * a reactive property. In this case, pass no arguments. It should also be\n * called when manually implementing a property setter. In this case, pass the\n * property `name` and `oldValue` to ensure that any configured property\n * options are honored.\n *\n * @param name name of requesting property\n * @param oldValue old value of requesting property\n * @param options property options to use instead of the previously\n * configured options\n * @category updates\n */\n requestUpdate(name, oldValue, options) {\n let shouldRequestUpdate = true;\n // If we have a property key, perform property update steps.\n if (name !== undefined) {\n options =\n options ||\n this.constructor.getPropertyOptions(name);\n const hasChanged = options.hasChanged || notEqual;\n if (hasChanged(this[name], oldValue)) {\n if (!this._$changedProperties.has(name)) {\n this._$changedProperties.set(name, oldValue);\n }\n // Add to reflecting properties set.\n // Note, it's important that every change has a chance to add the\n // property to `_reflectingProperties`. This ensures setting\n // attribute + property reflects correctly.\n if (options.reflect === true && this.__reflectingProperty !== name) {\n if (this.__reflectingProperties === undefined) {\n this.__reflectingProperties = new Map();\n }\n this.__reflectingProperties.set(name, options);\n }\n }\n else {\n // Abort the request if the property should not be considered changed.\n shouldRequestUpdate = false;\n }\n }\n if (!this.isUpdatePending && shouldRequestUpdate) {\n this.__updatePromise = this.__enqueueUpdate();\n }\n // Note, since this no longer returns a promise, in dev mode we return a\n // thenable which warns if it's called.\n return DEV_MODE\n ? requestUpdateThenable(this.localName)\n : undefined;\n }\n /**\n * Sets up the element to asynchronously update.\n */\n async __enqueueUpdate() {\n this.isUpdatePending = true;\n try {\n // Ensure any previous update has resolved before updating.\n // This `await` also ensures that property changes are batched.\n await this.__updatePromise;\n }\n catch (e) {\n // Refire any previous errors async so they do not disrupt the update\n // cycle. Errors are refired so developers have a chance to observe\n // them, and this can be done by implementing\n // `window.onunhandledrejection`.\n Promise.reject(e);\n }\n const result = this.scheduleUpdate();\n // If `scheduleUpdate` returns a Promise, we await it. This is done to\n // enable coordinating updates with a scheduler. Note, the result is\n // checked to avoid delaying an additional microtask unless we need to.\n if (result != null) {\n await result;\n }\n return !this.isUpdatePending;\n }\n /**\n * Schedules an element update. You can override this method to change the\n * timing of updates by returning a Promise. The update will await the\n * returned Promise, and you should resolve the Promise to allow the update\n * to proceed. If this method is overridden, `super.scheduleUpdate()`\n * must be called.\n *\n * For instance, to schedule updates to occur just before the next frame:\n *\n * ```ts\n * override protected async scheduleUpdate(): Promise {\n * await new Promise((resolve) => requestAnimationFrame(() => resolve()));\n * super.scheduleUpdate();\n * }\n * ```\n * @category updates\n */\n scheduleUpdate() {\n return this.performUpdate();\n }\n /**\n * Performs an element update. Note, if an exception is thrown during the\n * update, `firstUpdated` and `updated` will not be called.\n *\n * Call `performUpdate()` to immediately process a pending update. This should\n * generally not be needed, but it can be done in rare cases when you need to\n * update synchronously.\n *\n * Note: To ensure `performUpdate()` synchronously completes a pending update,\n * it should not be overridden. In LitElement 2.x it was suggested to override\n * `performUpdate()` to also customizing update scheduling. Instead, you should now\n * override `scheduleUpdate()`. For backwards compatibility with LitElement 2.x,\n * scheduling updates via `performUpdate()` continues to work, but will make\n * also calling `performUpdate()` to synchronously process updates difficult.\n *\n * @category updates\n */\n performUpdate() {\n var _a;\n // Abort any update if one is not pending when this is called.\n // This can happen if `performUpdate` is called early to \"flush\"\n // the update.\n if (!this.isUpdatePending) {\n return;\n }\n // create renderRoot before first update.\n if (!this.hasUpdated) {\n // Produce warning if any class properties are shadowed by class fields\n if (DEV_MODE) {\n const shadowedProperties = [];\n this.constructor.elementProperties.forEach((_v, p) => {\n var _a;\n if (this.hasOwnProperty(p) && !((_a = this.__instanceProperties) === null || _a === void 0 ? void 0 : _a.has(p))) {\n shadowedProperties.push(p);\n }\n });\n if (shadowedProperties.length) {\n throw new Error(`The following properties on element ${this.localName} will not ` +\n `trigger updates as expected because they are set using class ` +\n `fields: ${shadowedProperties.join(', ')}. ` +\n `Native class fields and some compiled output will overwrite ` +\n `accessors used for detecting changes. See ` +\n `https://lit.dev/msg/class-field-shadowing ` +\n `for more information.`);\n }\n }\n }\n // Mixin instance properties once, if they exist.\n if (this.__instanceProperties) {\n // Use forEach so this works even if for/of loops are compiled to for loops\n // expecting arrays\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.__instanceProperties.forEach((v, p) => (this[p] = v));\n this.__instanceProperties = undefined;\n }\n let shouldUpdate = false;\n const changedProperties = this._$changedProperties;\n try {\n shouldUpdate = this.shouldUpdate(changedProperties);\n if (shouldUpdate) {\n this.willUpdate(changedProperties);\n (_a = this.__controllers) === null || _a === void 0 ? void 0 : _a.forEach((c) => { var _a; return (_a = c.hostUpdate) === null || _a === void 0 ? void 0 : _a.call(c); });\n this.update(changedProperties);\n }\n else {\n this.__markUpdated();\n }\n }\n catch (e) {\n // Prevent `firstUpdated` and `updated` from running when there's an\n // update exception.\n shouldUpdate = false;\n // Ensure element can accept additional updates after an exception.\n this.__markUpdated();\n throw e;\n }\n // The update is no longer considered pending and further updates are now allowed.\n if (shouldUpdate) {\n this._$didUpdate(changedProperties);\n }\n }\n /**\n * @category updates\n */\n willUpdate(_changedProperties) { }\n // Note, this is an override point for polyfill-support.\n // @internal\n _$didUpdate(changedProperties) {\n var _a;\n (_a = this.__controllers) === null || _a === void 0 ? void 0 : _a.forEach((c) => { var _a; return (_a = c.hostUpdated) === null || _a === void 0 ? void 0 : _a.call(c); });\n if (!this.hasUpdated) {\n this.hasUpdated = true;\n this.firstUpdated(changedProperties);\n }\n this.updated(changedProperties);\n if (DEV_MODE &&\n this.isUpdatePending &&\n this.constructor.enabledWarnings.indexOf('change-in-update') >= 0) {\n issueWarning('change-in-update', `Element ${this.localName} scheduled an update ` +\n `(generally because a property was set) ` +\n `after an update completed, causing a new update to be scheduled. ` +\n `This is inefficient and should be avoided unless the next update ` +\n `can only be scheduled as a side effect of the previous update.`);\n }\n }\n __markUpdated() {\n this._$changedProperties = new Map();\n this.isUpdatePending = false;\n }\n /**\n * Returns a Promise that resolves when the element has completed updating.\n * The Promise value is a boolean that is `true` if the element completed the\n * update without triggering another update. The Promise result is `false` if\n * a property was set inside `updated()`. If the Promise is rejected, an\n * exception was thrown during the update.\n *\n * To await additional asynchronous work, override the `getUpdateComplete`\n * method. For example, it is sometimes useful to await a rendered element\n * before fulfilling this Promise. To do this, first await\n * `super.getUpdateComplete()`, then any subsequent state.\n *\n * @return A promise of a boolean that resolves to true if the update completed\n * without triggering another update.\n * @category updates\n */\n get updateComplete() {\n return this.getUpdateComplete();\n }\n /**\n * Override point for the `updateComplete` promise.\n *\n * It is not safe to override the `updateComplete` getter directly due to a\n * limitation in TypeScript which means it is not possible to call a\n * superclass getter (e.g. `super.updateComplete.then(...)`) when the target\n * language is ES5 (https://github.com/microsoft/TypeScript/issues/338).\n * This method should be overridden instead. For example:\n *\n * ```ts\n * class MyElement extends LitElement {\n * override async getUpdateComplete() {\n * const result = await super.getUpdateComplete();\n * await this._myChild.updateComplete;\n * return result;\n * }\n * }\n * ```\n *\n * @return A promise of a boolean that resolves to true if the update completed\n * without triggering another update.\n * @category updates\n */\n getUpdateComplete() {\n return this.__updatePromise;\n }\n /**\n * Controls whether or not `update()` should be called when the element requests\n * an update. By default, this method always returns `true`, but this can be\n * customized to control when to update.\n *\n * @param _changedProperties Map of changed properties with old values\n * @category updates\n */\n shouldUpdate(_changedProperties) {\n return true;\n }\n /**\n * Updates the element. This method reflects property values to attributes.\n * It can be overridden to render and keep updated element DOM.\n * Setting properties inside this method will *not* trigger\n * another update.\n *\n * @param _changedProperties Map of changed properties with old values\n * @category updates\n */\n update(_changedProperties) {\n if (this.__reflectingProperties !== undefined) {\n // Use forEach so this works even if for/of loops are compiled to for\n // loops expecting arrays\n this.__reflectingProperties.forEach((v, k) => this.__propertyToAttribute(k, this[k], v));\n this.__reflectingProperties = undefined;\n }\n this.__markUpdated();\n }\n /**\n * Invoked whenever the element is updated. Implement to perform\n * post-updating tasks via DOM APIs, for example, focusing an element.\n *\n * Setting properties inside this method will trigger the element to update\n * again after this update cycle completes.\n *\n * @param _changedProperties Map of changed properties with old values\n * @category updates\n */\n updated(_changedProperties) { }\n /**\n * Invoked when the element is first updated. Implement to perform one time\n * work on the element after update.\n *\n * Setting properties inside this method will trigger the element to update\n * again after this update cycle completes.\n *\n * @param _changedProperties Map of changed properties with old values\n * @category updates\n */\n firstUpdated(_changedProperties) { }\n}\n_e = finalized;\n/**\n * Marks class as having finished creating properties.\n */\nReactiveElement[_e] = true;\n/**\n * Memoized list of all element properties, including any superclass properties.\n * Created lazily on user subclasses when finalizing the class.\n * @nocollapse\n * @category properties\n */\nReactiveElement.elementProperties = new Map();\n/**\n * Memoized list of all element styles.\n * Created lazily on user subclasses when finalizing the class.\n * @nocollapse\n * @category styles\n */\nReactiveElement.elementStyles = [];\n/**\n * Options used when calling `attachShadow`. Set this property to customize\n * the options for the shadowRoot; for example, to create a closed\n * shadowRoot: `{mode: 'closed'}`.\n *\n * Note, these options are used in `createRenderRoot`. If this method\n * is customized, options should be respected if possible.\n * @nocollapse\n * @category rendering\n */\nReactiveElement.shadowRootOptions = { mode: 'open' };\n// Apply polyfills if available\n(_c = globalThis[`reactiveElementPolyfillSupport${DEV_MODE ? `DevMode` : ``}`]) === null || _c === void 0 ? void 0 : _c.call(globalThis, {\n ReactiveElement,\n});\n// Dev mode warnings...\nif (DEV_MODE) {\n // Default warning set.\n ReactiveElement.enabledWarnings = ['change-in-update'];\n const ensureOwnWarnings = function (ctor) {\n if (!ctor.hasOwnProperty(JSCompiler_renameProperty('enabledWarnings', ctor))) {\n ctor.enabledWarnings = ctor.enabledWarnings.slice();\n }\n };\n ReactiveElement.enableWarning = function (warning) {\n ensureOwnWarnings(this);\n if (this.enabledWarnings.indexOf(warning) < 0) {\n this.enabledWarnings.push(warning);\n }\n };\n ReactiveElement.disableWarning = function (warning) {\n ensureOwnWarnings(this);\n const i = this.enabledWarnings.indexOf(warning);\n if (i >= 0) {\n this.enabledWarnings.splice(i, 1);\n }\n };\n}\n// IMPORTANT: do not change the property name or the assignment expression.\n// This line will be used in regexes to search for ReactiveElement usage.\n// TODO(justinfagnani): inject version number at build time\n((_d = globalThis.reactiveElementVersions) !== null && _d !== void 0 ? _d : (globalThis.reactiveElementVersions = [])).push('1.0.0');\nif (DEV_MODE && globalThis.reactiveElementVersions.length > 1) {\n issueWarning('multiple-versions', `Multiple versions of Lit loaded. Loading multiple versions ` +\n `is not recommended.`);\n}\n//# sourceMappingURL=reactive-element.js.map\n\n//# sourceURL=webpack://frontend/./node_modules/@lit/reactive-element/development/reactive-element.js?"); + +/***/ }), + +/***/ "./node_modules/lit-element/development/lit-element.js": +/*!*************************************************************!*\ + !*** ./node_modules/lit-element/development/lit-element.js ***! + \*************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"CSSResult\": () => (/* reexport safe */ _lit_reactive_element__WEBPACK_IMPORTED_MODULE_0__.CSSResult),\n/* harmony export */ \"ReactiveElement\": () => (/* reexport safe */ _lit_reactive_element__WEBPACK_IMPORTED_MODULE_0__.ReactiveElement),\n/* harmony export */ \"adoptStyles\": () => (/* reexport safe */ _lit_reactive_element__WEBPACK_IMPORTED_MODULE_0__.adoptStyles),\n/* harmony export */ \"css\": () => (/* reexport safe */ _lit_reactive_element__WEBPACK_IMPORTED_MODULE_0__.css),\n/* harmony export */ \"defaultConverter\": () => (/* reexport safe */ _lit_reactive_element__WEBPACK_IMPORTED_MODULE_0__.defaultConverter),\n/* harmony export */ \"getCompatibleStyle\": () => (/* reexport safe */ _lit_reactive_element__WEBPACK_IMPORTED_MODULE_0__.getCompatibleStyle),\n/* harmony export */ \"notEqual\": () => (/* reexport safe */ _lit_reactive_element__WEBPACK_IMPORTED_MODULE_0__.notEqual),\n/* harmony export */ \"supportsAdoptingStyleSheets\": () => (/* reexport safe */ _lit_reactive_element__WEBPACK_IMPORTED_MODULE_0__.supportsAdoptingStyleSheets),\n/* harmony export */ \"unsafeCSS\": () => (/* reexport safe */ _lit_reactive_element__WEBPACK_IMPORTED_MODULE_0__.unsafeCSS),\n/* harmony export */ \"INTERNAL\": () => (/* reexport safe */ lit_html__WEBPACK_IMPORTED_MODULE_1__.INTERNAL),\n/* harmony export */ \"_$LH\": () => (/* reexport safe */ lit_html__WEBPACK_IMPORTED_MODULE_1__._$LH),\n/* harmony export */ \"html\": () => (/* reexport safe */ lit_html__WEBPACK_IMPORTED_MODULE_1__.html),\n/* harmony export */ \"noChange\": () => (/* reexport safe */ lit_html__WEBPACK_IMPORTED_MODULE_1__.noChange),\n/* harmony export */ \"nothing\": () => (/* reexport safe */ lit_html__WEBPACK_IMPORTED_MODULE_1__.nothing),\n/* harmony export */ \"render\": () => (/* reexport safe */ lit_html__WEBPACK_IMPORTED_MODULE_1__.render),\n/* harmony export */ \"svg\": () => (/* reexport safe */ lit_html__WEBPACK_IMPORTED_MODULE_1__.svg),\n/* harmony export */ \"UpdatingElement\": () => (/* binding */ UpdatingElement),\n/* harmony export */ \"LitElement\": () => (/* binding */ LitElement),\n/* harmony export */ \"_$LE\": () => (/* binding */ _$LE)\n/* harmony export */ });\n/* harmony import */ var _lit_reactive_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @lit/reactive-element */ \"./node_modules/@lit/reactive-element/development/reactive-element.js\");\n/* harmony import */ var lit_html__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lit-html */ \"./node_modules/lit-html/development/lit-html.js\");\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nvar _a, _b, _c, _d;\n/**\n * The main LitElement module, which defines the [[`LitElement`]] base class and\n * related APIs.\n *\n * LitElement components can define a template and a set of observed\n * properties. Changing an observed property triggers a re-render of the\n * element.\n *\n * Import [[`LitElement`]] and [[`html`]] from this module to create a\n * component:\n *\n * ```js\n * import {LitElement, html} from 'lit-element';\n *\n * class MyElement extends LitElement {\n *\n * // Declare observed properties\n * static get properties() {\n * return {\n * adjective: {}\n * }\n * }\n *\n * constructor() {\n * this.adjective = 'awesome';\n * }\n *\n * // Define the element's template\n * render() {\n * return html`

your ${adjective} template here

`;\n * }\n * }\n *\n * customElements.define('my-element', MyElement);\n * ```\n *\n * `LitElement` extends [[`ReactiveElement`]] and adds lit-html templating.\n * The `ReactiveElement` class is provided for users that want to build\n * their own custom element base classes that don't use lit-html.\n *\n * @packageDocumentation\n */\n\n\n\n\n// For backwards compatibility export ReactiveElement as UpdatingElement. Note,\n// IE transpilation requires exporting like this.\nconst UpdatingElement = _lit_reactive_element__WEBPACK_IMPORTED_MODULE_0__.ReactiveElement;\nconst DEV_MODE = true;\nlet issueWarning;\nif (DEV_MODE) {\n // Ensure warnings are issued only 1x, even if multiple versions of Lit\n // are loaded.\n const issuedWarnings = ((_a = globalThis.litIssuedWarnings) !== null && _a !== void 0 ? _a : (globalThis.litIssuedWarnings = new Set()));\n // Issue a warning, if we haven't already.\n issueWarning = (code, warning) => {\n warning += ` See https://lit.dev/msg/${code} for more information.`;\n if (!issuedWarnings.has(warning)) {\n console.warn(warning);\n issuedWarnings.add(warning);\n }\n };\n}\n/**\n * Base element class that manages element properties and attributes, and\n * renders a lit-html template.\n *\n * To define a component, subclass `LitElement` and implement a\n * `render` method to provide the component's template. Define properties\n * using the [[`properties`]] property or the [[`property`]] decorator.\n */\nclass LitElement extends _lit_reactive_element__WEBPACK_IMPORTED_MODULE_0__.ReactiveElement {\n constructor() {\n super(...arguments);\n /**\n * @category rendering\n */\n this.renderOptions = { host: this };\n this.__childPart = undefined;\n }\n /**\n * @category rendering\n */\n createRenderRoot() {\n var _a;\n var _b;\n const renderRoot = super.createRenderRoot();\n // When adoptedStyleSheets are shimmed, they are inserted into the\n // shadowRoot by createRenderRoot. Adjust the renderBefore node so that\n // any styles in Lit content render before adoptedStyleSheets. This is\n // important so that adoptedStyleSheets have precedence over styles in\n // the shadowRoot.\n (_a = (_b = this.renderOptions).renderBefore) !== null && _a !== void 0 ? _a : (_b.renderBefore = renderRoot.firstChild);\n return renderRoot;\n }\n /**\n * Updates the element. This method reflects property values to attributes\n * and calls `render` to render DOM via lit-html. Setting properties inside\n * this method will *not* trigger another update.\n * @param changedProperties Map of changed properties with old values\n * @category updates\n */\n update(changedProperties) {\n // Setting properties in `render` should not trigger an update. Since\n // updates are allowed after super.update, it's important to call `render`\n // before that.\n const value = this.render();\n if (!this.hasUpdated) {\n this.renderOptions.isConnected = this.isConnected;\n }\n super.update(changedProperties);\n this.__childPart = (0,lit_html__WEBPACK_IMPORTED_MODULE_1__.render)(value, this.renderRoot, this.renderOptions);\n }\n /**\n * Invoked when the component is added to the document's DOM.\n *\n * In `connectedCallback()` you should setup tasks that should only occur when\n * the element is connected to the document. The most common of these is\n * adding event listeners to nodes external to the element, like a keydown\n * event handler added to the window.\n *\n * ```ts\n * connectedCallback() {\n * super.connectedCallback();\n * addEventListener('keydown', this._handleKeydown);\n * }\n * ```\n *\n * Typically, anything done in `connectedCallback()` should be undone when the\n * element is disconnected, in `disconnectedCallback()`.\n *\n * @category lifecycle\n */\n connectedCallback() {\n var _a;\n super.connectedCallback();\n (_a = this.__childPart) === null || _a === void 0 ? void 0 : _a.setConnected(true);\n }\n /**\n * Invoked when the component is removed from the document's DOM.\n *\n * This callback is the main signal to the element that it may no longer be\n * used. `disconnectedCallback()` should ensure that nothing is holding a\n * reference to the element (such as event listeners added to nodes external\n * to the element), so that it is free to be garbage collected.\n *\n * ```ts\n * disconnectedCallback() {\n * super.disconnectedCallback();\n * window.removeEventListener('keydown', this._handleKeydown);\n * }\n * ```\n *\n * An element may be re-connected after being disconnected.\n *\n * @category lifecycle\n */\n disconnectedCallback() {\n var _a;\n super.disconnectedCallback();\n (_a = this.__childPart) === null || _a === void 0 ? void 0 : _a.setConnected(false);\n }\n /**\n * Invoked on each update to perform rendering tasks. This method may return\n * any value renderable by lit-html's `ChildPart` - typically a\n * `TemplateResult`. Setting properties inside this method will *not* trigger\n * the element to update.\n * @category rendering\n */\n render() {\n return lit_html__WEBPACK_IMPORTED_MODULE_1__.noChange;\n }\n}\n/**\n * Ensure this class is marked as `finalized` as an optimization ensuring\n * it will not needlessly try to `finalize`.\n *\n * Note this property name is a string to prevent breaking Closure JS Compiler\n * optimizations. See @lit/reactive-element for more information.\n */\nLitElement['finalized'] = true;\n// This property needs to remain unminified.\nLitElement['_$litElement$'] = true;\n// Install hydration if available\n(_b = globalThis.litElementHydrateSupport) === null || _b === void 0 ? void 0 : _b.call(globalThis, { LitElement });\n// Apply polyfills if available\n(_c = globalThis[`litElementPolyfillSupport${DEV_MODE ? `DevMode` : ``}`]) === null || _c === void 0 ? void 0 : _c.call(globalThis, {\n LitElement,\n});\n// DEV mode warnings\nif (DEV_MODE) {\n /* eslint-disable @typescript-eslint/no-explicit-any */\n // Note, for compatibility with closure compilation, this access\n // needs to be as a string property index.\n LitElement['finalize'] = function () {\n const finalized = _lit_reactive_element__WEBPACK_IMPORTED_MODULE_0__.ReactiveElement.finalize.call(this);\n if (!finalized) {\n return false;\n }\n const warnRemovedOrRenamed = (obj, name, renamed = false) => {\n if (obj.hasOwnProperty(name)) {\n const ctorName = (typeof obj === 'function' ? obj : obj.constructor)\n .name;\n issueWarning(renamed ? 'renamed-api' : 'removed-api', `\\`${name}\\` is implemented on class ${ctorName}. It ` +\n `has been ${renamed ? 'renamed' : 'removed'} ` +\n `in this version of LitElement.`);\n }\n };\n warnRemovedOrRenamed(this, 'render');\n warnRemovedOrRenamed(this, 'getStyles', true);\n warnRemovedOrRenamed(this.prototype, 'adoptStyles');\n return true;\n };\n /* eslint-enable @typescript-eslint/no-explicit-any */\n}\n/**\n * END USERS SHOULD NOT RELY ON THIS OBJECT.\n *\n * Private exports for use by other Lit packages, not intended for use by\n * external users.\n *\n * We currently do not make a mangled rollup build of the lit-ssr code. In order\n * to keep a number of (otherwise private) top-level exports mangled in the\n * client side code, we export a _$LE object containing those members (or\n * helper methods for accessing private fields of those members), and then\n * re-export them for use in lit-ssr. This keeps lit-ssr agnostic to whether the\n * client-side code is being used in `dev` mode or `prod` mode.\n *\n * This has a unique name, to disambiguate it from private exports in\n * lit-html, since this module re-exports all of lit-html.\n *\n * @private\n */\nconst _$LE = {\n _$attributeToProperty: (el, name, value) => {\n // eslint-disable-next-line\n el._$attributeToProperty(name, value);\n },\n // eslint-disable-next-line\n _$changedProperties: (el) => el._$changedProperties,\n};\n// IMPORTANT: do not change the property name or the assignment expression.\n// This line will be used in regexes to search for LitElement usage.\n// TODO(justinfagnani): inject version number at build time\n((_d = globalThis.litElementVersions) !== null && _d !== void 0 ? _d : (globalThis.litElementVersions = [])).push('3.0.0');\nif (DEV_MODE && globalThis.litElementVersions.length > 1) {\n issueWarning('multiple-versions', `Multiple versions of Lit loaded. Loading multiple versions ` +\n `is not recommended.`);\n}\n//# sourceMappingURL=lit-element.js.map\n\n//# sourceURL=webpack://frontend/./node_modules/lit-element/development/lit-element.js?"); + +/***/ }), + +/***/ "./node_modules/lit-html/development/lit-html.js": +/*!*******************************************************!*\ + !*** ./node_modules/lit-html/development/lit-html.js ***! + \*******************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"INTERNAL\": () => (/* binding */ INTERNAL),\n/* harmony export */ \"html\": () => (/* binding */ html),\n/* harmony export */ \"svg\": () => (/* binding */ svg),\n/* harmony export */ \"noChange\": () => (/* binding */ noChange),\n/* harmony export */ \"nothing\": () => (/* binding */ nothing),\n/* harmony export */ \"render\": () => (/* binding */ render),\n/* harmony export */ \"_$LH\": () => (/* binding */ _$LH)\n/* harmony export */ });\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nvar _a, _b, _c, _d, _e;\nconst DEV_MODE = true;\nconst ENABLE_EXTRA_SECURITY_HOOKS = true;\nconst ENABLE_SHADYDOM_NOPATCH = true;\n/**\n * `true` if we're building for google3 with temporary back-compat helpers.\n * This export is not present in prod builds.\n * @internal\n */\nconst INTERNAL = true;\nlet issueWarning;\nif (DEV_MODE) {\n (_a = globalThis.litIssuedWarnings) !== null && _a !== void 0 ? _a : (globalThis.litIssuedWarnings = new Set());\n // Issue a warning, if we haven't already.\n issueWarning = (code, warning) => {\n warning += code\n ? ` See https://lit.dev/msg/${code} for more information.`\n : '';\n if (!globalThis.litIssuedWarnings.has(warning)) {\n console.warn(warning);\n globalThis.litIssuedWarnings.add(warning);\n }\n };\n issueWarning('dev-mode', `Lit is in dev mode. Not recommended for production!`);\n}\nconst wrap = ENABLE_SHADYDOM_NOPATCH &&\n ((_b = window.ShadyDOM) === null || _b === void 0 ? void 0 : _b.inUse) &&\n ((_c = window.ShadyDOM) === null || _c === void 0 ? void 0 : _c.noPatch) === true\n ? window.ShadyDOM.wrap\n : (node) => node;\nconst trustedTypes = globalThis.trustedTypes;\n/**\n * Our TrustedTypePolicy for HTML which is declared using the html template\n * tag function.\n *\n * That HTML is a developer-authored constant, and is parsed with innerHTML\n * before any untrusted expressions have been mixed in. Therefor it is\n * considered safe by construction.\n */\nconst policy = trustedTypes\n ? trustedTypes.createPolicy('lit-html', {\n createHTML: (s) => s,\n })\n : undefined;\nconst identityFunction = (value) => value;\nconst noopSanitizer = (_node, _name, _type) => identityFunction;\n/** Sets the global sanitizer factory. */\nconst setSanitizer = (newSanitizer) => {\n if (!ENABLE_EXTRA_SECURITY_HOOKS) {\n return;\n }\n if (sanitizerFactoryInternal !== noopSanitizer) {\n throw new Error(`Attempted to overwrite existing lit-html security policy.` +\n ` setSanitizeDOMValueFactory should be called at most once.`);\n }\n sanitizerFactoryInternal = newSanitizer;\n};\n/**\n * Only used in internal tests, not a part of the public API.\n */\nconst _testOnlyClearSanitizerFactoryDoNotCallOrElse = () => {\n sanitizerFactoryInternal = noopSanitizer;\n};\nconst createSanitizer = (node, name, type) => {\n return sanitizerFactoryInternal(node, name, type);\n};\n// Added to an attribute name to mark the attribute as bound so we can find\n// it easily.\nconst boundAttributeSuffix = '$lit$';\n// This marker is used in many syntactic positions in HTML, so it must be\n// a valid element name and attribute name. We don't support dynamic names (yet)\n// but this at least ensures that the parse tree is closer to the template\n// intention.\nconst marker = `lit$${String(Math.random()).slice(9)}$`;\n// String used to tell if a comment is a marker comment\nconst markerMatch = '?' + marker;\n// Text used to insert a comment marker node. We use processing instruction\n// syntax because it's slightly smaller, but parses as a comment node.\nconst nodeMarker = `<${markerMatch}>`;\nconst d = document;\n// Creates a dynamic marker. We never have to search for these in the DOM.\nconst createMarker = (v = '') => d.createComment(v);\nconst isPrimitive = (value) => value === null || (typeof value != 'object' && typeof value != 'function');\nconst isArray = Array.isArray;\nconst isIterable = (value) => {\n var _a;\n return isArray(value) ||\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n typeof ((_a = value) === null || _a === void 0 ? void 0 : _a[Symbol.iterator]) === 'function';\n};\nconst SPACE_CHAR = `[ \\t\\n\\f\\r]`;\nconst ATTR_VALUE_CHAR = `[^ \\t\\n\\f\\r\"'\\`<>=]`;\nconst NAME_CHAR = `[^\\\\s\"'>=/]`;\n// These regexes represent the five parsing states that we care about in the\n// Template's HTML scanner. They match the *end* of the state they're named\n// after.\n// Depending on the match, we transition to a new state. If there's no match,\n// we stay in the same state.\n// Note that the regexes are stateful. We utilize lastIndex and sync it\n// across the multiple regexes used. In addition to the five regexes below\n// we also dynamically create a regex to find the matching end tags for raw\n// text elements.\n/**\n * End of text is: `<` followed by:\n * (comment start) or (tag) or (dynamic tag binding)\n */\nconst textEndRegex = /<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g;\nconst COMMENT_START = 1;\nconst TAG_NAME = 2;\nconst DYNAMIC_TAG_NAME = 3;\nconst commentEndRegex = /-->/g;\n/**\n * Comments not started with