proto-daisy-ui 0.0.40 → 0.0.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/proto-daisy-ui.cjs.entry.js +1 -1
- package/dist/cjs/proto-hero.cjs.entry.js +1 -1
- package/dist/cjs/proto-home.cjs.entry.js +1 -1
- package/dist/cjs/proto-list.cjs.entry.js +1 -1
- package/dist/cjs/proto-shell.cjs.entry.js +1 -1
- package/dist/cjs/proto-stats.cjs.entry.js +1 -1
- package/dist/cjs/{store-2637fd27.js → store-8375ea96.js} +30 -90
- package/dist/collection/utils/asyncBag.js +17 -0
- package/dist/collection/utils/bag.js +24 -17
- package/dist/collection/utils/store.js +8 -7
- package/dist/components/store.js +30 -90
- package/dist/esm/proto-daisy-ui.entry.js +1 -1
- package/dist/esm/proto-hero.entry.js +1 -1
- package/dist/esm/proto-home.entry.js +1 -1
- package/dist/esm/proto-list.entry.js +1 -1
- package/dist/esm/proto-shell.entry.js +1 -1
- package/dist/esm/proto-stats.entry.js +1 -1
- package/dist/esm/{store-3f416dbd.js → store-afd160bc.js} +30 -90
- package/dist/proto-daisy-ui/p-4fc15cdc.js +1 -0
- package/dist/proto-daisy-ui/{p-58245812.entry.js → p-5b7a29ae.entry.js} +1 -1
- package/dist/proto-daisy-ui/{p-b14579a2.entry.js → p-6897c3bb.entry.js} +1 -1
- package/dist/proto-daisy-ui/{p-172be283.entry.js → p-69de3145.entry.js} +1 -1
- package/dist/proto-daisy-ui/{p-4ddd75c3.entry.js → p-8bae7ea0.entry.js} +1 -1
- package/dist/proto-daisy-ui/{p-6e26da59.entry.js → p-d49c34d9.entry.js} +1 -1
- package/dist/proto-daisy-ui/p-fd18c8be.entry.js +1 -0
- package/dist/proto-daisy-ui/proto-daisy-ui.esm.js +1 -1
- package/dist/types/utils/asyncBag.d.ts +7 -0
- package/dist/types/utils/bag.d.ts +2 -4
- package/package.json +1 -1
- package/dist/proto-daisy-ui/p-e092bf70.js +0 -1
- package/dist/proto-daisy-ui/p-f5731ac1.entry.js +0 -1
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
const index = require('./index-b50213e7.js');
|
|
6
|
-
const store = require('./store-
|
|
6
|
+
const store = require('./store-8375ea96.js');
|
|
7
7
|
|
|
8
8
|
const protoDaisyUiCss = ":root,[data-theme]{background-color:hsla(var(--b1) / var(--tw-bg-opacity, 1));color:hsla(var(--bc) / var(--tw-text-opacity, 1))}html{-webkit-tap-highlight-color:transparent}:root{--p:259 94% 51%;--pf:259 94% 41%;--sf:314 100% 38%;--af:174 60% 41%;--nf:219 14% 22%;--in:198 93% 60%;--su:158 64% 52%;--wa:43 96% 56%;--er:0 91% 71%;--inc:198 100% 12%;--suc:158 100% 10%;--wac:43 100% 11%;--erc:0 100% 14%;--rounded-box:1rem;--rounded-btn:0.5rem;--rounded-badge:1.9rem;--animation-btn:0.25s;--animation-input:0.2s;--btn-text-case:uppercase;--btn-focus-scale:0.95;--border-btn:1px;--tab-border:1px;--tab-radius:0.5rem;--pc:0 0% 100%;--s:314 100% 47%;--sc:0 0% 100%;--a:174 60% 51%;--ac:175 44% 15%;--n:219 14% 28%;--nc:0 0% 100%;--b1:0 0% 100%;--b2:0 0% 95%;--b3:180 2% 90%;--bc:215 28% 17%}@media (prefers-color-scheme: dark){:root{--p:262 80% 50%;--pf:262 80% 40%;--sf:316 70% 40%;--af:175 70% 33%;--in:198 93% 60%;--su:158 64% 52%;--wa:43 96% 56%;--er:0 91% 71%;--inc:198 100% 12%;--suc:158 100% 10%;--wac:43 100% 11%;--erc:0 100% 14%;--rounded-box:1rem;--rounded-btn:0.5rem;--rounded-badge:1.9rem;--animation-btn:0.25s;--animation-input:0.2s;--btn-text-case:uppercase;--btn-focus-scale:0.95;--border-btn:1px;--tab-border:1px;--tab-radius:0.5rem;--pc:0 0% 100%;--s:316 70% 50%;--sc:0 0% 100%;--a:175 70% 41%;--ac:0 0% 100%;--n:218 18% 12%;--nf:223 17% 8%;--nc:220 13% 69%;--b1:220 18% 20%;--b2:220 17% 17%;--b3:219 18% 15%;--bc:220 13% 69%}}[data-theme='light']{--p:259 94% 51%;--pf:259 94% 41%;--sf:314 100% 38%;--af:174 60% 41%;--nf:219 14% 22%;--in:198 93% 60%;--su:158 64% 52%;--wa:43 96% 56%;--er:0 91% 71%;--inc:198 100% 12%;--suc:158 100% 10%;--wac:43 100% 11%;--erc:0 100% 14%;--rounded-box:1rem;--rounded-btn:0.5rem;--rounded-badge:1.9rem;--animation-btn:0.25s;--animation-input:0.2s;--btn-text-case:uppercase;--btn-focus-scale:0.95;--border-btn:1px;--tab-border:1px;--tab-radius:0.5rem;--pc:0 0% 100%;--s:314 100% 47%;--sc:0 0% 100%;--a:174 60% 51%;--ac:175 44% 15%;--n:219 14% 28%;--nc:0 0% 100%;--b1:0 0% 100%;--b2:0 0% 95%;--b3:180 2% 90%;--bc:215 28% 17%}[data-theme='dark']{--p:262 80% 50%;--pf:262 80% 40%;--sf:316 70% 40%;--af:175 70% 33%;--in:198 93% 60%;--su:158 64% 52%;--wa:43 96% 56%;--er:0 91% 71%;--inc:198 100% 12%;--suc:158 100% 10%;--wac:43 100% 11%;--erc:0 100% 14%;--rounded-box:1rem;--rounded-btn:0.5rem;--rounded-badge:1.9rem;--animation-btn:0.25s;--animation-input:0.2s;--btn-text-case:uppercase;--btn-focus-scale:0.95;--border-btn:1px;--tab-border:1px;--tab-radius:0.5rem;--pc:0 0% 100%;--s:316 70% 50%;--sc:0 0% 100%;--a:175 70% 41%;--ac:0 0% 100%;--n:218 18% 12%;--nf:223 17% 8%;--nc:220 13% 69%;--b1:220 18% 20%;--b2:220 17% 17%;--b3:219 18% 15%;--bc:220 13% 69%}[data-theme='aqua']{--p:182 93% 49%;--pf:182 93% 40%;--sf:274 31% 45%;--af:47 100% 64%;--nf:205 54% 40%;--b2:219 53% 39%;--b3:219 53% 35%;--bc:219 100% 89%;--sc:274 100% 91%;--ac:47 100% 16%;--nc:205 100% 90%;--inc:221 100% 91%;--suc:142 100% 87%;--wac:32 100% 9%;--erc:0 100% 90%;--rounded-box:1rem;--rounded-btn:0.5rem;--rounded-badge:1.9rem;--animation-btn:0.25s;--animation-input:0.2s;--btn-text-case:uppercase;--btn-focus-scale:0.95;--border-btn:1px;--tab-border:1px;--tab-radius:0.5rem;--pc:181 100% 17%;--s:274 31% 57%;--a:47 100% 80%;--n:205 54% 50%;--b1:219 53% 43%;--in:221 83% 53%;--su:142 76% 36%;--wa:32 95% 44%;--er:0 72% 51%}[data-theme='business']{--p:210 64% 31%;--pf:210 64% 24%;--sf:200 13% 44%;--af:13 80% 48%;--nf:213 14% 13%;--b2:0 0% 11%;--b3:0 0% 10%;--bc:0 0% 83%;--pc:210 100% 86%;--sc:200 100% 11%;--ac:13 100% 12%;--nc:213 28% 83%;--inc:199 100% 88%;--suc:144 100% 11%;--wac:39 100% 12%;--erc:6 100% 89%;--animation-btn:0.25s;--animation-input:0.2s;--btn-text-case:uppercase;--btn-focus-scale:0.95;--border-btn:1px;--tab-border:1px;--tab-radius:0.5rem;--s:200 13% 55%;--a:13 80% 60%;--n:213 14% 16%;--b1:0 0% 13%;--in:199 100% 42%;--su:144 31% 56%;--wa:39 64% 60%;--er:6 56% 43%;--rounded-box:0.25rem;--rounded-btn:0.125rem;--rounded-badge:0.125rem}[data-theme='corporate']{--p:229 96% 64%;--pf:229 96% 51%;--sf:215 26% 47%;--af:154 49% 48%;--nf:233 27% 10%;--b2:0 0% 90%;--b3:0 0% 81%;--in:198 93% 60%;--su:158 64% 52%;--wa:43 96% 56%;--er:0 91% 71%;--pc:229 100% 93%;--sc:215 100% 12%;--ac:154 100% 12%;--inc:198 100% 12%;--suc:158 100% 10%;--wac:43 100% 11%;--erc:0 100% 14%;--btn-text-case:uppercase;--border-btn:1px;--tab-border:1px;--tab-radius:0.5rem;--s:215 26% 59%;--a:154 49% 60%;--n:233 27% 13%;--nc:210 38% 95%;--b1:0 0% 100%;--bc:233 27% 13%;--rounded-box:0.25rem;--rounded-btn:0.125rem;--rounded-badge:0.125rem;--animation-btn:0;--animation-input:0;--btn-focus-scale:1}[data-theme='fantasy']{--p:296 83% 25%;--pf:296 83% 20%;--sf:200 100% 30%;--af:31 94% 41%;--nf:215 28% 13%;--b2:0 0% 90%;--b3:0 0% 81%;--in:198 93% 60%;--su:158 64% 52%;--wa:43 96% 56%;--er:0 91% 71%;--pc:296 100% 85%;--sc:200 100% 87%;--ac:31 100% 10%;--nc:215 62% 83%;--inc:198 100% 12%;--suc:158 100% 10%;--wac:43 100% 11%;--erc:0 100% 14%;--rounded-box:1rem;--rounded-btn:0.5rem;--rounded-badge:1.9rem;--animation-btn:0.25s;--animation-input:0.2s;--btn-text-case:uppercase;--btn-focus-scale:0.95;--border-btn:1px;--tab-border:1px;--tab-radius:0.5rem;--s:200 100% 37%;--a:31 94% 51%;--n:215 28% 17%;--b1:0 0% 100%;--bc:215 28% 17%}[data-theme='night']{--p:198 93% 60%;--pf:198 93% 48%;--sf:234 89% 59%;--af:329 86% 56%;--b2:222 47% 10%;--b3:222 47% 9%;--bc:222 66% 82%;--pc:198 100% 12%;--sc:234 100% 15%;--ac:329 100% 14%;--nc:217 76% 83%;--inc:198 100% 10%;--suc:172 100% 10%;--wac:41 100% 13%;--erc:351 100% 14%;--rounded-box:1rem;--rounded-btn:0.5rem;--rounded-badge:1.9rem;--animation-btn:0.25s;--animation-input:0.2s;--btn-text-case:uppercase;--btn-focus-scale:0.95;--border-btn:1px;--tab-border:1px;--tab-radius:0.5rem;--s:234 89% 74%;--a:329 86% 70%;--n:217 33% 17%;--nf:217 30% 22%;--b1:222 47% 11%;--in:198 90% 48%;--su:172 66% 50%;--wa:41 88% 64%;--er:351 95% 71%}[data-theme='winter']{--p:212 100% 51%;--pf:212 100% 41%;--sf:247 47% 35%;--af:310 49% 42%;--nf:217 92% 8%;--pc:212 100% 90%;--sc:247 100% 89%;--ac:310 100% 90%;--nc:217 100% 82%;--inc:192 100% 16%;--suc:182 100% 13%;--wac:32 100% 17%;--erc:0 100% 14%;--rounded-box:1rem;--rounded-btn:0.5rem;--rounded-badge:1.9rem;--animation-btn:0.25s;--animation-input:0.2s;--btn-text-case:uppercase;--btn-focus-scale:0.95;--border-btn:1px;--tab-border:1px;--tab-radius:0.5rem;--s:247 47% 43%;--a:310 49% 52%;--n:217 92% 10%;--b1:0 0% 100%;--b2:217 100% 97%;--b3:219 44% 92%;--bc:214 30% 32%;--in:192 93% 78%;--su:182 47% 66%;--wa:32 62% 84%;--er:0 63% 72%}[data-theme='wireframe']{font-family:Chalkboard, comic sans ms, 'sanssecondaryerif';--pf:0 0% 58%;--sf:0 0% 58%;--af:0 0% 58%;--nf:0 0% 74%;--bc:0 0% 20%;--pc:0 0% 14%;--sc:0 0% 14%;--ac:0 0% 14%;--nc:0 0% 18%;--inc:240 100% 90%;--suc:120 100% 85%;--wac:60 100% 10%;--erc:0 100% 90%;--animation-btn:0.25s;--animation-input:0.2s;--btn-text-case:uppercase;--btn-focus-scale:0.95;--border-btn:1px;--tab-border:1px;--p:0 0% 72%;--s:0 0% 72%;--a:0 0% 72%;--n:0 0% 92%;--b1:0 0% 100%;--b2:0 0% 93%;--b3:0 0% 87%;--in:240 100% 50%;--su:120 100% 25%;--wa:60 30% 50%;--er:0 100% 50%;--rounded-box:0.2rem;--rounded-btn:0.2rem;--rounded-badge:0.2rem;--tab-radius:0.2rem}*,::before,::after{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scroll-snap-strictness:proximity;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;}::-webkit-backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scroll-snap-strictness:proximity;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;}::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scroll-snap-strictness:proximity;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;}.alert{display:flex;width:100%;flex-direction:column;align-items:center;justify-content:space-between;gap:1rem;--tw-bg-opacity:1;background-color:hsl(var(--b2, var(--b1)) / var(--tw-bg-opacity));padding:1rem;border-radius:var(--rounded-box, 1rem)}.alert>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0.5rem * var(--tw-space-y-reverse))}@media (min-width: 768px){.alert{flex-direction:row}.alert>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}}.alert>:where(*){display:flex;align-items:center;gap:0.5rem}.badge{display:inline-flex;align-items:center;justify-content:center;transition-property:color, background-color, border-color, fill, stroke,\n opacity, box-shadow, transform, filter, -webkit-text-decoration-color,\n -webkit-backdrop-filter;transition-property:color, background-color, border-color,\n text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter,\n backdrop-filter;transition-property:color, background-color, border-color,\n text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter,\n backdrop-filter, -webkit-text-decoration-color, -webkit-backdrop-filter;transition-duration:200ms;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);height:1.25rem;font-size:0.875rem;line-height:1.25rem;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;padding-left:0.563rem;padding-right:0.563rem;border-width:1px;--tw-border-opacity:1;border-color:hsl(var(--n) / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:hsl(var(--n) / var(--tw-bg-opacity));--tw-text-opacity:1;color:hsl(var(--nc) / var(--tw-text-opacity));border-radius:var(--rounded-badge, 1.9rem)}.btn{display:inline-flex;flex-shrink:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-wrap:wrap;align-items:center;justify-content:center;border-color:transparent;border-color:hsl(var(--n) / var(--tw-border-opacity));text-align:center;transition-property:color, background-color, border-color, fill, stroke,\n opacity, box-shadow, transform, filter, -webkit-text-decoration-color,\n -webkit-backdrop-filter;transition-property:color, background-color, border-color,\n text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter,\n backdrop-filter;transition-property:color, background-color, border-color,\n text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter,\n backdrop-filter, -webkit-text-decoration-color, -webkit-backdrop-filter;transition-duration:200ms;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);border-radius:var(--rounded-btn, 0.5rem);height:3rem;padding-left:1rem;padding-right:1rem;font-size:0.875rem;line-height:1.25rem;line-height:1em;min-height:3rem;font-weight:600;text-transform:uppercase;text-transform:var(--btn-text-case, uppercase);-webkit-text-decoration-line:none;text-decoration-line:none;border-width:var(--border-btn, 1px);-webkit-animation:button-pop var(--animation-btn, 0.25s) ease-out;animation:button-pop var(--animation-btn, 0.25s) ease-out;--tw-border-opacity:1;--tw-bg-opacity:1;background-color:hsl(var(--n) / var(--tw-bg-opacity));--tw-text-opacity:1;color:hsl(var(--nc) / var(--tw-text-opacity))}.btn-disabled,.btn[disabled]{pointer-events:none}.btn-square{height:3rem;width:3rem;padding:0px}.btn.loading,.btn.loading:hover{pointer-events:none}.btn.loading:before{margin-right:0.5rem;height:1rem;width:1rem;border-radius:9999px;border-width:2px;-webkit-animation:spin 2s linear infinite;animation:spin 2s linear infinite;content:'';border-top-color:transparent;border-left-color:transparent;border-bottom-color:currentColor;border-right-color:currentColor}@media (prefers-reduced-motion: reduce){.btn.loading:before{-webkit-animation:spin 10s linear infinite;animation:spin 10s linear infinite}}@-webkit-keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}.btn-group>input[type='radio'].btn{-webkit-appearance:none;-moz-appearance:none;appearance:none}.btn-group>input[type='radio'].btn:before{content:attr(data-title)}.divider{display:flex;flex-direction:row;align-items:center;align-self:stretch;margin-top:1rem;margin-bottom:1rem;height:1rem;white-space:nowrap}.divider:before,.divider:after{content:'';flex-grow:1;height:0.125rem;width:100%}.dropdown{position:relative;display:inline-block}.dropdown>*:focus{outline:2px solid transparent;outline-offset:2px}.dropdown .dropdown-content{visibility:hidden;position:absolute;z-index:50;opacity:0;transform-origin:top;--tw-scale-x:0.95;--tw-scale-y:0.95;transform:translate(var(--tw-translate-x), var(--tw-translate-y))\n rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y))\n scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-property:color, background-color, border-color, fill, stroke,\n opacity, box-shadow, transform, filter, -webkit-text-decoration-color,\n -webkit-backdrop-filter;transition-property:color, background-color, border-color,\n text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter,\n backdrop-filter;transition-property:color, background-color, border-color,\n text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter,\n backdrop-filter, -webkit-text-decoration-color, -webkit-backdrop-filter;transition-duration:200ms;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1)}.dropdown-end .dropdown-content{right:0px}.dropdown-left .dropdown-content{top:0px;right:100%;bottom:auto;transform-origin:right}.dropdown-right .dropdown-content{left:100%;top:0px;bottom:auto;transform-origin:left}.dropdown-top .dropdown-content{bottom:100%;top:auto;transform-origin:bottom}.dropdown-end.dropdown-right .dropdown-content{bottom:0px;top:auto}.dropdown-end.dropdown-left .dropdown-content{bottom:0px;top:auto}.dropdown.dropdown-open .dropdown-content,.dropdown.dropdown-hover:hover .dropdown-content,.dropdown:not(.dropdown-hover):focus .dropdown-content,.dropdown:not(.dropdown-hover):focus-within .dropdown-content{visibility:visible;opacity:1}.footer{display:grid;width:100%;grid-auto-flow:row;place-items:start;row-gap:2.5rem;-moz-column-gap:1rem;column-gap:1rem;font-size:0.875rem;line-height:1.25rem}.footer>*{display:grid;place-items:start;gap:0.5rem}@media (min-width: 48rem){.footer{grid-auto-flow:column}.footer-center{grid-auto-flow:row dense}}.label{display:flex;-webkit-user-select:none;-moz-user-select:none;user-select:none;align-items:center;justify-content:space-between;padding-left:0.25rem;padding-right:0.25rem;padding-top:0.5rem;padding-bottom:0.5rem}.hero{display:grid;width:100%;place-items:center;background-size:cover;background-position:center}.hero>*{grid-column-start:1;grid-row-start:1}.hero-content{z-index:0;display:flex;align-items:center;justify-content:center;max-width:80rem;gap:1rem;padding:1rem}.menu{display:flex;flex-direction:column}.menu.horizontal{display:inline-flex;flex-direction:row}.menu.horizontal :where(li){flex-direction:row}.menu :where(li){position:relative;display:flex;flex-direction:column;flex-wrap:wrap;align-items:stretch}.menu :where(li:not(.menu-title))>:where(*:not(ul)){display:flex}.menu :where(li:not(.disabled):not(.menu-title))>:where(*:not(ul)){cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;align-items:center;outline:2px solid transparent;outline-offset:2px}.menu>:where(li>*:not(ul):focus){outline:2px solid transparent;outline-offset:2px}.menu>:where(li.disabled>*:not(ul):focus){cursor:auto}.menu>:where(li) :where(ul){display:flex;flex-direction:column;align-items:stretch}.menu>:where(li)>:where(ul){position:absolute;display:none;top:initial;left:100%;border-top-left-radius:inherit;border-top-right-radius:inherit;border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.menu>:where(li:hover)>:where(ul){display:flex}.menu>:where(li:focus)>:where(ul){display:flex}.navbar{display:flex;align-items:center;padding:var(--navbar-padding, 0.5rem);min-height:4rem;width:100%}:where(.navbar>*){display:inline-flex;align-items:center}.progress{position:relative;width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;overflow:hidden;height:0.5rem;border-radius:var(--rounded-box, 1rem)}.radial-progress{position:relative;display:inline-grid;height:var(--size);width:var(--size);place-content:center;border-radius:9999px;background-color:transparent;vertical-align:middle;box-sizing:content-box;--value:0;--size:5rem;--thickness:calc(var(--size) / 10)}.radial-progress::-moz-progress-bar{-moz-appearance:none;appearance:none;background-color:transparent}.radial-progress::-webkit-progress-value{-webkit-appearance:none;appearance:none;background-color:transparent}.radial-progress::-webkit-progress-bar{-webkit-appearance:none;appearance:none;background-color:transparent}.radial-progress:before,.radial-progress:after{position:absolute;border-radius:9999px;content:''}.radial-progress:before{top:0px;right:0px;bottom:0px;left:0px;background:radial-gradient(farthest-side, currentColor 98%, #0000)\n top/var(--thickness) var(--thickness) no-repeat,\n conic-gradient(currentColor calc(var(--value) * 1%), #0000 0);-webkit-mask:radial-gradient(\n farthest-side,\n #0000 calc(99% - var(--thickness)),\n #000 calc(100% - var(--thickness))\n );mask:radial-gradient(\n farthest-side,\n #0000 calc(99% - var(--thickness)),\n #000 calc(100% - var(--thickness))\n )}.radial-progress:after{inset:calc(50% - var(--thickness) / 2);transform:rotate(calc(var(--value) * 3.6deg - 90deg))\n translate(calc(var(--size) / 2 - 50%));background-color:currentColor}.stats{display:inline-grid;--tw-bg-opacity:1;background-color:hsl(var(--b1) / var(--tw-bg-opacity));--tw-text-opacity:1;color:hsl(var(--bc) / var(--tw-text-opacity));border-radius:var(--rounded-box, 1rem)}:where(.stats){grid-auto-flow:column;overflow-x:auto}.stat{display:inline-grid;width:100%;grid-template-columns:repeat(1, 1fr);-moz-column-gap:1rem;column-gap:1rem;border-color:hsl(var(--bc) / var(--tw-border-opacity));--tw-border-opacity:0.1;padding-left:1.5rem;padding-right:1.5rem;padding-top:1rem;padding-bottom:1rem}.stat-title{grid-column-start:1;white-space:nowrap;opacity:0.6}.stat-value{grid-column-start:1;white-space:nowrap;font-size:2.25rem;line-height:2.5rem;font-weight:800}.stat-desc{grid-column-start:1;white-space:nowrap;font-size:0.75rem;line-height:1rem;opacity:0.6}.table{position:relative;text-align:left}.table th:first-child{position:sticky;position:-webkit-sticky;left:0px;z-index:11}.tooltip{position:relative;display:inline-block;--tooltip-offset:calc(100% + 1px + var(--tooltip-tail, 0px));text-align:center;--tooltip-tail:3px;--tooltip-color:hsl(var(--n));--tooltip-text-color:hsl(var(--nc));--tooltip-tail-offset:calc(100% + 1px - var(--tooltip-tail))}.tooltip:before{position:absolute;pointer-events:none;content:attr(data-tip);transform:translateX(-50%);top:auto;left:50%;right:auto;bottom:var(--tooltip-offset);max-width:20rem;border-radius:0.25rem;padding-left:0.5rem;padding-right:0.5rem;padding-top:0.25rem;padding-bottom:0.25rem;font-size:0.875rem;line-height:1.25rem;background-color:var(--tooltip-color);color:var(--tooltip-text-color);width:-webkit-max-content;width:-moz-max-content;width:max-content}.tooltip-left:before{transform:translateY(-50%);top:50%;left:auto;right:var(--tooltip-offset);bottom:auto}.tooltip-right:before{transform:translateY(-50%);top:50%;left:var(--tooltip-offset);right:auto;bottom:auto}.btn-outline .badge{--tw-border-opacity:1;border-color:hsl(var(--nf, var(--n)) / var(--tw-border-opacity));--tw-text-opacity:1;color:hsl(var(--nc) / var(--tw-text-opacity))}.btn-outline.btn-primary .badge{--tw-border-opacity:1;border-color:hsl(var(--p) / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:hsl(var(--p) / var(--tw-bg-opacity));--tw-text-opacity:1;color:hsl(var(--pc) / var(--tw-text-opacity))}.btn-outline.btn-secondary .badge{--tw-border-opacity:1;border-color:hsl(var(--s) / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:hsl(var(--s) / var(--tw-bg-opacity));--tw-text-opacity:1;color:hsl(var(--sc) / var(--tw-text-opacity))}.btn-outline.btn-accent .badge{--tw-border-opacity:1;border-color:hsl(var(--a) / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:hsl(var(--a) / var(--tw-bg-opacity));--tw-text-opacity:1;color:hsl(var(--ac) / var(--tw-text-opacity))}.btn-outline .badge.outline{--tw-border-opacity:1;border-color:hsl(var(--nf, var(--n)) / var(--tw-border-opacity));background-color:transparent}.btn-outline.btn-primary .badge-outline{--tw-border-opacity:1;border-color:hsl(var(--p) / var(--tw-border-opacity));background-color:transparent;--tw-text-opacity:1;color:hsl(var(--p) / var(--tw-text-opacity))}.btn-outline:hover .badge{--tw-border-opacity:1;border-color:hsl(var(--b2, var(--b1)) / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:hsl(var(--b2, var(--b1)) / var(--tw-bg-opacity));--tw-text-opacity:1;color:hsl(var(--bc) / var(--tw-text-opacity))}.btn-outline:hover .badge.outline{--tw-border-opacity:1;border-color:hsl(var(--b2, var(--b1)) / var(--tw-border-opacity));--tw-text-opacity:1;color:hsl(var(--nc) / var(--tw-text-opacity))}.btn-outline.btn-primary:hover .badge{--tw-border-opacity:1;border-color:hsl(var(--pc) / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:hsl(var(--pc) / var(--tw-bg-opacity));--tw-text-opacity:1;color:hsl(var(--p) / var(--tw-text-opacity))}.btn-outline.btn-primary:hover .badge.outline{--tw-border-opacity:1;border-color:hsl(var(--pc) / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:hsl(var(--pf, var(--p)) / var(--tw-bg-opacity));--tw-text-opacity:1;color:hsl(var(--pc) / var(--tw-text-opacity))}.btn-outline.btn-secondary:hover .badge{--tw-border-opacity:1;border-color:hsl(var(--sc) / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:hsl(var(--sc) / var(--tw-bg-opacity));--tw-text-opacity:1;color:hsl(var(--s) / var(--tw-text-opacity))}.btn-outline.btn-secondary:hover .badge.outline{--tw-border-opacity:1;border-color:hsl(var(--sc) / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:hsl(var(--sf, var(--s)) / var(--tw-bg-opacity));--tw-text-opacity:1;color:hsl(var(--sc) / var(--tw-text-opacity))}.btn-outline.btn-accent:hover .badge{--tw-border-opacity:1;border-color:hsl(var(--ac) / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:hsl(var(--ac) / var(--tw-bg-opacity));--tw-text-opacity:1;color:hsl(var(--a) / var(--tw-text-opacity))}.btn-outline.btn-accent:hover .badge.outline{--tw-border-opacity:1;border-color:hsl(var(--ac) / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:hsl(var(--af, var(--a)) / var(--tw-bg-opacity));--tw-text-opacity:1;color:hsl(var(--ac) / var(--tw-text-opacity))}.btm-nav>*:where(.active){border-top-width:2px;--tw-bg-opacity:1;background-color:hsl(var(--b1) / var(--tw-bg-opacity))}.btm-nav>* .label{font-size:1rem;line-height:1.5rem}.btn:active:hover,.btn:active:focus{-webkit-animation:none;animation:none;transform:scale(var(--btn-focus-scale, 0.95))}.btn:hover,.btn-active{--tw-border-opacity:1;border-color:hsl(var(--nf, var(--n)) / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:hsl(var(--nf, var(--n)) / var(--tw-bg-opacity))}.btn:focus-visible{outline:2px solid hsl(var(--nf));outline-offset:2px}.btn-primary{--tw-border-opacity:1;border-color:hsl(var(--p) / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:hsl(var(--p) / var(--tw-bg-opacity));--tw-text-opacity:1;color:hsl(var(--pc) / var(--tw-text-opacity))}.btn-primary:hover,.btn-primary.btn-active{--tw-border-opacity:1;border-color:hsl(var(--pf, var(--p)) / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:hsl(var(--pf, var(--p)) / var(--tw-bg-opacity))}.btn-primary:focus-visible{outline:2px solid hsl(var(--p))}.btn.glass:hover,.btn.glass.btn-active{--glass-opacity:25%;--glass-border-opacity:15%}.btn.glass:focus-visible{outline:2px solid 0 0 2px currentColor}.btn-ghost{border-width:1px;border-color:transparent;background-color:transparent;color:currentColor}.btn-ghost:hover,.btn-ghost.btn-active{--tw-border-opacity:0;background-color:hsl(var(--bc) / var(--tw-bg-opacity));--tw-bg-opacity:0.2}.btn-ghost:focus-visible{outline:2px solid 0 0 2px currentColor}.btn-outline.btn-primary{--tw-text-opacity:1;color:hsl(var(--p) / var(--tw-text-opacity))}.btn-outline.btn-primary:hover{--tw-border-opacity:1;border-color:hsl(var(--pf, var(--p)) / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:hsl(var(--pf, var(--p)) / var(--tw-bg-opacity));--tw-text-opacity:1;color:hsl(var(--pc) / var(--tw-text-opacity))}.btn-disabled,.btn-disabled:hover,.btn[disabled],.btn[disabled]:hover{--tw-border-opacity:0;background-color:hsl(var(--n) / var(--tw-bg-opacity));--tw-bg-opacity:0.2;color:hsl(var(--bc) / var(--tw-text-opacity));--tw-text-opacity:0.2}.btn.loading.btn-square:before,.btn.loading.btn-circle:before{margin-right:0px}.btn.loading.btn-xl:before,.btn.loading.btn-lg:before{height:1.25rem;width:1.25rem}.btn.loading.btn-sm:before,.btn.loading.btn-xs:before{height:0.75rem;width:0.75rem}.btn-group>input[type='radio']:checked.btn,.btn-group>.btn-active{--tw-border-opacity:1;border-color:hsl(var(--p) / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:hsl(var(--p) / var(--tw-bg-opacity));--tw-text-opacity:1;color:hsl(var(--pc) / var(--tw-text-opacity))}.btn-group>input[type='radio']:checked.btn:focus-visible,.btn-group>.btn-active:focus-visible{outline:2px solid hsl(var(--p))}.btn-group:not(.btn-group-vertical)>.btn:not(:first-of-type){margin-left:-1px;border-top-left-radius:0px;border-bottom-left-radius:0px}.btn-group:not(.btn-group-vertical)>.btn:not(:last-of-type){border-top-right-radius:0px;border-bottom-right-radius:0px}.btn-group-vertical>.btn:not(:first-of-type){margin-top:-1px;border-top-left-radius:0px;border-top-right-radius:0px}.btn-group-vertical>.btn:not(:last-of-type){border-bottom-right-radius:0px;border-bottom-left-radius:0px}@-webkit-keyframes button-pop{0%{transform:scale(var(--btn-focus-scale, 0.95))}40%{transform:scale(1.02)}100%{transform:scale(1)}}@keyframes button-pop{0%{transform:scale(var(--btn-focus-scale, 0.95))}40%{transform:scale(1.02)}100%{transform:scale(1)}}@-webkit-keyframes checkmark{0%{background-position-y:5px}50%{background-position-y:-2px}100%{background-position-y:0}}@keyframes checkmark{0%{background-position-y:5px}50%{background-position-y:-2px}100%{background-position-y:0}}.divider:before{background-color:hsl(var(--bc) / var(--tw-bg-opacity));--tw-bg-opacity:0.1}.divider:after{background-color:hsl(var(--bc) / var(--tw-bg-opacity));--tw-bg-opacity:0.1}.divider:not(:empty){gap:1rem}.drawer-toggle:focus-visible~.drawer-content .drawer-button{outline:2px solid hsl(var(--nf));outline-offset:2px}.drawer-toggle:focus-visible~.drawer-content .drawer-button.btn-primary{outline:2px solid hsl(var(--p))}.drawer-toggle:focus-visible~.drawer-content .drawer-button.btn-secondary{outline:2px solid hsl(var(--s))}.drawer-toggle:focus-visible~.drawer-content .drawer-button.btn-accent{outline:2px solid hsl(var(--a))}.drawer-toggle:focus-visible~.drawer-content .drawer-button.btn-info{outline:2px solid hsl(var(--in))}.drawer-toggle:focus-visible~.drawer-content .drawer-button.btn-success{outline:2px solid hsl(var(--su))}.drawer-toggle:focus-visible~.drawer-content .drawer-button.btn-warning{outline:2px solid hsl(var(--wa))}.drawer-toggle:focus-visible~.drawer-content .drawer-button.btn-error{outline:2px solid hsl(var(--er))}.drawer-toggle:focus-visible~.drawer-content .drawer-button.glass{outline:2px solid currentColor}.drawer-toggle:focus-visible~.drawer-content .drawer-button.btn-ghost{outline:2px solid currentColor}.drawer-toggle:focus-visible~.drawer-content .drawer-button.btn-link{outline:2px solid currentColor}.dropdown.dropdown-open .dropdown-content,.dropdown.dropdown-hover:hover .dropdown-content,.dropdown:focus .dropdown-content,.dropdown:focus-within .dropdown-content{--tw-scale-x:1;--tw-scale-y:1;transform:translate(var(--tw-translate-x), var(--tw-translate-y))\n rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y))\n scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.label a:hover{--tw-text-opacity:1;color:hsl(var(--bc) / var(--tw-text-opacity))}.menu.horizontal li.bordered>a,.menu.horizontal li.bordered>button,.menu.horizontal li.bordered>span{border-left-width:0px;border-bottom-width:4px;--tw-border-opacity:1;border-color:hsl(var(--p) / var(--tw-border-opacity))}.menu[class*=' p-'] li>*,.menu[class^='p-'] li>*{border-radius:var(--rounded-btn, 0.5rem)}.menu :where(li.bordered>*){border-left-width:4px;--tw-border-opacity:1;border-color:hsl(var(--p) / var(--tw-border-opacity))}.menu :where(li)>:where(*:not(ul)){gap:0.75rem;padding-left:1rem;padding-right:1rem;padding-top:0.75rem;padding-bottom:0.75rem;color:currentColor}.menu :where(li:not(.menu-title):not(:empty))>:where(*:not(ul):focus),.menu :where(li:not(.menu-title):not(:empty))>:where(*:not(ul):hover){background-color:hsl(var(--bc) / var(--tw-bg-opacity));--tw-bg-opacity:0.1}.menu :where(li:not(.menu-title):not(:empty))>:where(:not(ul).active),.menu :where(li:not(.menu-title):not(:empty))>:where(*:not(ul):active){--tw-bg-opacity:1;background-color:hsl(var(--p) / var(--tw-bg-opacity));--tw-text-opacity:1;color:hsl(var(--pc) / var(--tw-text-opacity))}.menu :where(li:empty){margin-left:1rem;margin-right:1rem;margin-top:0.5rem;margin-bottom:0.5rem;height:1px;background-color:hsl(var(--bc) / var(--tw-bg-opacity));--tw-bg-opacity:0.1}.menu li.disabled>*{-webkit-user-select:none;-moz-user-select:none;user-select:none;color:hsl(var(--bc) / var(--tw-text-opacity));--tw-text-opacity:0.2}.menu li.disabled>*:hover{background-color:transparent}.menu li.hover-bordered a{border-left-width:4px;border-color:transparent}.menu li.hover-bordered a:hover{--tw-border-opacity:1;border-color:hsl(var(--p) / var(--tw-border-opacity))}.menu.compact li>a,.menu.compact li>span{padding-top:0.5rem;padding-bottom:0.5rem;font-size:0.875rem;line-height:1.25rem}.menu .menu-title>*{padding-top:0.25rem;padding-bottom:0.25rem;font-size:0.75rem;line-height:1rem;font-weight:700;color:hsl(var(--bc) / var(--tw-text-opacity));--tw-text-opacity:0.4}.menu :where(li:not(.disabled))>:where(*:not(ul)){outline:2px solid transparent;outline-offset:2px;transition-property:color, background-color, border-color, fill, stroke,\n opacity, box-shadow, transform, filter, -webkit-text-decoration-color,\n -webkit-backdrop-filter;transition-property:color, background-color, border-color,\n text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter,\n backdrop-filter;transition-property:color, background-color, border-color,\n text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter,\n backdrop-filter, -webkit-text-decoration-color, -webkit-backdrop-filter;transition-duration:200ms;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1)}.menu>:where(li:first-child){border-top-left-radius:inherit;border-top-right-radius:inherit;border-bottom-right-radius:unset;border-bottom-left-radius:unset}.menu>:where(li:first-child)>:where(:not(ul)){border-top-left-radius:inherit;border-top-right-radius:inherit;border-bottom-right-radius:unset;border-bottom-left-radius:unset}.menu>:where(li:last-child){border-top-left-radius:unset;border-top-right-radius:unset;border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.menu>:where(li:last-child)>:where(:not(ul)){border-top-left-radius:unset;border-top-right-radius:unset;border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.menu>:where(li)>:where(ul) :where(li){width:100%;white-space:nowrap}.menu>:where(li)>:where(ul) :where(li) :where(ul){padding-left:1rem}.menu>:where(li)>:where(ul) :where(li)>:where(:not(ul)){width:100%;white-space:nowrap}.menu>:where(li)>:where(ul)>:where(li:first-child){border-top-left-radius:inherit;border-top-right-radius:inherit;border-bottom-right-radius:unset;border-bottom-left-radius:unset}.menu>:where(li)>:where(ul)>:where(li:first-child)>:where(:not(ul)){border-top-left-radius:inherit;border-top-right-radius:inherit;border-bottom-right-radius:unset;border-bottom-left-radius:unset}.menu>:where(li)>:where(ul)>:where(li:last-child){border-top-left-radius:unset;border-top-right-radius:unset;border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.menu>:where(li)>:where(ul)>:where(li:last-child)>:where(:not(ul)){border-top-left-radius:unset;border-top-right-radius:unset;border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.progress::-moz-progress-bar{--tw-bg-opacity:1;background-color:hsl(var(--n) / var(--tw-bg-opacity))}.progress:indeterminate::after{--tw-bg-opacity:1;background-color:hsl(var(--n) / var(--tw-bg-opacity));content:'';position:absolute;top:0px;bottom:0px;left:-40%;width:33.333333%;border-radius:var(--rounded-box, 1rem);-webkit-animation:progress-loading 5s infinite ease-in-out;animation:progress-loading 5s infinite ease-in-out}.progress::-webkit-progress-bar{background-color:hsl(var(--n) / var(--tw-bg-opacity));--tw-bg-opacity:0.2;border-radius:var(--rounded-box, 1rem)}.progress::-webkit-progress-value{--tw-bg-opacity:1;background-color:hsl(var(--nf, var(--n)) / var(--tw-bg-opacity));border-radius:var(--rounded-box, 1rem)}@-webkit-keyframes progress-loading{50%{left:107%}}@keyframes progress-loading{50%{left:107%}}@-webkit-keyframes radiomark{0%{box-shadow:0 0 0 12px hsl(var(--b1)) inset, 0 0 0 12px hsl(var(--b1)) inset}50%{box-shadow:0 0 0 3px hsl(var(--b1)) inset, 0 0 0 3px hsl(var(--b1)) inset}100%{box-shadow:0 0 0 4px hsl(var(--b1)) inset, 0 0 0 4px hsl(var(--b1)) inset}}@keyframes radiomark{0%{box-shadow:0 0 0 12px hsl(var(--b1)) inset, 0 0 0 12px hsl(var(--b1)) inset}50%{box-shadow:0 0 0 3px hsl(var(--b1)) inset, 0 0 0 3px hsl(var(--b1)) inset}100%{box-shadow:0 0 0 4px hsl(var(--b1)) inset, 0 0 0 4px hsl(var(--b1)) inset}}@-webkit-keyframes rating-pop{0%{transform:translateY(-0.125em)}40%{transform:translateY(-0.125em)}100%{transform:translateY(0)}}@keyframes rating-pop{0%{transform:translateY(-0.125em)}40%{transform:translateY(-0.125em)}100%{transform:translateY(0)}}:where(.stats)>:not([hidden])~:not([hidden]){--tw-divide-x-reverse:0;border-right-width:calc(1px * var(--tw-divide-x-reverse));border-left-width:calc(1px * calc(1 - var(--tw-divide-x-reverse)));--tw-divide-y-reverse:0;border-top-width:calc(0px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(0px * var(--tw-divide-y-reverse))}.table :where(th,td){white-space:nowrap;padding:1rem;vertical-align:middle}.table tr.active th,.table tr.active td,.table tr.active:nth-child(even) th,.table tr.active:nth-child(even) td{--tw-bg-opacity:1;background-color:hsl(var(--b3, var(--b2)) / var(--tw-bg-opacity))}.table tr.hover:hover th,.table tr.hover:hover td,.table tr.hover:nth-child(even):hover th,.table tr.hover:nth-child(even):hover td{--tw-bg-opacity:1;background-color:hsl(var(--b3, var(--b2)) / var(--tw-bg-opacity))}.table:where(:not(.table-zebra)) :where(thead,tbody,tfoot) :where(tr:not(:last-child) :where(th,td)){border-bottom-width:1px;--tw-border-opacity:1;border-color:hsl(var(--b2, var(--b1)) / var(--tw-border-opacity))}.table :where(thead,tfoot) :where(th,td){--tw-bg-opacity:1;background-color:hsl(var(--b2, var(--b1)) / var(--tw-bg-opacity));font-size:0.75rem;line-height:1rem;font-weight:700;text-transform:uppercase}.table :where(:first-child) :where(:first-child) :where(th,td):first-child{border-top-left-radius:0.5rem}.table :where(:first-child) :where(:first-child) :where(th,td):last-child{border-top-right-radius:0.5rem}.table :where(:last-child) :where(:last-child) :where(th,td):first-child{border-bottom-left-radius:0.5rem}.table :where(:last-child) :where(:last-child) :where(th,td):last-child{border-bottom-right-radius:0.5rem}.table :where(tbody th,tbody td){--tw-bg-opacity:1;background-color:hsl(var(--b1) / var(--tw-bg-opacity))}@-webkit-keyframes toast-pop{0%{transform:scale(0.9);opacity:0}100%{transform:scale(1);opacity:1}}@keyframes toast-pop{0%{transform:scale(0.9);opacity:0}100%{transform:scale(1);opacity:1}}.tooltip:before,.tooltip:after{opacity:0;transition-property:color, background-color, border-color, fill, stroke,\n opacity, box-shadow, transform, filter, -webkit-text-decoration-color,\n -webkit-backdrop-filter;transition-property:color, background-color, border-color,\n text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter,\n backdrop-filter;transition-property:color, background-color, border-color,\n text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter,\n backdrop-filter, -webkit-text-decoration-color, -webkit-backdrop-filter;transition-delay:100ms;transition-duration:200ms;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1)}.tooltip:after{position:absolute;content:'';border-style:solid;border-width:var(--tooltip-tail, 0);width:0;height:0;display:block;transform:translateX(-50%);border-color:var(--tooltip-color) transparent transparent transparent;top:auto;left:50%;right:auto;bottom:var(--tooltip-tail-offset)}.tooltip.tooltip-open:before,.tooltip.tooltip-open:after,.tooltip:hover:before,.tooltip:hover:after{opacity:1;transition-delay:75ms}.tooltip-left:after{transform:translateY(-50%);border-color:transparent transparent transparent var(--tooltip-color);top:50%;left:auto;right:calc(var(--tooltip-tail-offset) + 1px);bottom:auto}.tooltip-right:after{transform:translateY(-50%);border-color:transparent var(--tooltip-color) transparent transparent;top:50%;left:calc(var(--tooltip-tail-offset) + 1px);right:auto;bottom:auto}.tooltip-warning{--tooltip-color:hsla(var(--wa));--tooltip-text-color:hsl(var(--wac))}.btm-nav-xs>*:where(.active){border-top-width:1px}.btm-nav-sm>*:where(.active){border-top-width:2px}.btm-nav-md>*:where(.active){border-top-width:2px}.btm-nav-lg>*:where(.active){border-top-width:4px}.btn-square:where(.btn-xs){height:1.5rem;width:1.5rem;padding:0px}.btn-square:where(.btn-sm){height:2rem;width:2rem;padding:0px}.btn-square:where(.btn-md){height:3rem;width:3rem;padding:0px}.btn-square:where(.btn-lg){height:4rem;width:4rem;padding:0px}.divider-horizontal{flex-direction:column}.divider-horizontal:before{height:100%;width:0.125rem}.divider-horizontal:after{height:100%;width:0.125rem}.stats-vertical{grid-auto-flow:row}.alert-info{--tw-bg-opacity:1;background-color:hsl(var(--in) / var(--tw-bg-opacity));--tw-text-opacity:1;color:hsl(var(--inc, var(--nc)) / var(--tw-text-opacity))}.divider-horizontal{margin-top:0px;margin-bottom:0px;margin-left:1rem;margin-right:1rem;height:auto;width:1rem}.menu-compact :where(li>*){padding-top:0.5rem;padding-bottom:0.5rem;font-size:0.875rem;line-height:1.25rem}.stats-vertical>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse));--tw-divide-x-reverse:0;border-right-width:calc(0px * var(--tw-divide-x-reverse));border-left-width:calc(0px * calc(1 - var(--tw-divide-x-reverse)))}.stats-vertical{overflow-y:auto}.table-compact :where(th,td){padding:0.5rem;font-size:0.875rem;line-height:1.25rem}.m-1{margin:0.25rem}.mr-8{margin-right:2rem}.mb-4{margin-bottom:1rem}.mt-4{margin-top:1rem}.ml-auto{margin-left:auto}.mt-0{margin-top:0px}.mt-1{margin-top:0.25rem}.inline-block{display:inline-block}.flex{display:flex}.table{display:table}.hidden{display:none}.h-6{height:1.5rem}.h-8{height:2rem}.h-5{height:1.25rem}.min-h-screen{min-height:100vh}.w-6{width:1.5rem}.w-full{width:100%}.w-auto{width:auto}.w-8{width:2rem}.w-40{width:10rem}.w-5{width:1.25rem}.w-52{width:13rem}.max-w-md{max-width:28rem}.flex-1{flex:1 1 0%}.flex-none{flex:none}.flex-auto{flex:1 1 auto}.flex-shrink-0{flex-shrink:0}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-nowrap{flex-wrap:nowrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:0.5rem}.gap-4{gap:1rem}.gap-1{gap:0.25rem}.overflow-x-auto{overflow-x:auto}.rounded-md{border-radius:0.375rem}.bg-clrs-slate{background-color:var(--clrs-slate, #708090)}.bg-base-200{--tw-bg-opacity:1;background-color:hsl(var(--b2, var(--b1)) / var(--tw-bg-opacity))}.bg-neutral{--tw-bg-opacity:1;background-color:hsl(var(--n) / var(--tw-bg-opacity))}.bg-base-100{--tw-bg-opacity:1;background-color:hsl(var(--b1) / var(--tw-bg-opacity))}.bg-secondary{--tw-bg-opacity:1;background-color:hsl(var(--s) / var(--tw-bg-opacity))}.bg-accent{--tw-bg-opacity:1;background-color:hsl(var(--a) / var(--tw-bg-opacity))}.fill-current{fill:currentColor}.stroke-current{stroke:currentColor}.p-4{padding:1rem}.p-2{padding:0.5rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.pt-0{padding-top:0px}.text-center{text-align:center}.font-sans{font-family:ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont,\n 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif,\n 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'}.text-5xl{font-size:3rem;line-height:1}.text-xl{font-size:1.25rem;line-height:1.75rem}.font-bold{font-weight:700}.normal-case{text-transform:none}.text-secondary{--tw-text-opacity:1;color:hsl(var(--s) / var(--tw-text-opacity))}.text-neutral-content{--tw-text-opacity:1;color:hsl(var(--nc) / var(--tw-text-opacity))}.text-secondary-content{--tw-text-opacity:1;color:hsl(var(--sc) / var(--tw-text-opacity))}.text-accent-content{--tw-text-opacity:1;color:hsl(var(--ac) / var(--tw-text-opacity))}.shadow{--tw-shadow:0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),\n 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgb(0 0 0 / 0.1),\n 0 4px 6px -4px rgb(0 0 0 / 0.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),\n 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.blur{--tw-blur:blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast)\n var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate)\n var(--tw-sepia) var(--tw-drop-shadow)}.hover\\:bg-accent-focus:hover{--tw-bg-opacity:1;background-color:hsl(var(--af, var(--a)) / var(--tw-bg-opacity))}@media (min-width: 1024px){.lg\\:stats-horizontal{grid-auto-flow:column}.lg\\:stats-horizontal>:not([hidden])~:not([hidden]){--tw-divide-x-reverse:0;border-right-width:calc(1px * var(--tw-divide-x-reverse));border-left-width:calc(1px * calc(1 - var(--tw-divide-x-reverse)));--tw-divide-y-reverse:0;border-top-width:calc(0px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(0px * var(--tw-divide-y-reverse))}.lg\\:stats-horizontal{overflow-x:auto}.lg\\:inline-block{display:inline-block}.lg\\:flex{display:flex}}";
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
const index = require('./index-b50213e7.js');
|
|
6
|
-
const store = require('./store-
|
|
6
|
+
const store = require('./store-8375ea96.js');
|
|
7
7
|
|
|
8
8
|
const tw = (...classes) => {
|
|
9
9
|
return classes.filter(Boolean).join(' ');
|
|
@@ -2,95 +2,34 @@
|
|
|
2
2
|
|
|
3
3
|
const index = require('./index-b50213e7.js');
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
return new Promise(function (resolve, reject) {
|
|
7
|
-
// @ts-ignore - file size hacks
|
|
8
|
-
request.oncomplete = request.onsuccess = function () {
|
|
9
|
-
return resolve(request.result);
|
|
10
|
-
}; // @ts-ignore - file size hacks
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
request.onabort = request.onerror = function () {
|
|
14
|
-
return reject(request.error);
|
|
15
|
-
};
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
function createStore$1(dbName, storeName) {
|
|
20
|
-
var request = indexedDB.open(dbName);
|
|
21
|
-
|
|
22
|
-
request.onupgradeneeded = function () {
|
|
23
|
-
return request.result.createObjectStore(storeName);
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
var dbp = promisifyRequest(request);
|
|
27
|
-
return function (txMode, callback) {
|
|
28
|
-
return dbp.then(function (db) {
|
|
29
|
-
return callback(db.transaction(storeName, txMode).objectStore(storeName));
|
|
30
|
-
});
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
var defaultGetStoreFunc;
|
|
35
|
-
|
|
36
|
-
function defaultGetStore() {
|
|
37
|
-
if (!defaultGetStoreFunc) {
|
|
38
|
-
defaultGetStoreFunc = createStore$1('keyval-store', 'keyval');
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
return defaultGetStoreFunc;
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Get a value by its key.
|
|
45
|
-
*
|
|
46
|
-
* @param key
|
|
47
|
-
* @param customStore Method to get a custom store. Use with caution (see the docs).
|
|
48
|
-
*/
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
function get(key) {
|
|
52
|
-
var customStore = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultGetStore();
|
|
53
|
-
return customStore('readonly', function (store) {
|
|
54
|
-
return promisifyRequest(store.get(key));
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Set a value with a key.
|
|
59
|
-
*
|
|
60
|
-
* @param key
|
|
61
|
-
* @param value
|
|
62
|
-
* @param customStore Method to get a custom store. Use with caution (see the docs).
|
|
63
|
-
*/
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
function set(key, value) {
|
|
67
|
-
var customStore = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultGetStore();
|
|
68
|
-
return customStore('readwrite', function (store) {
|
|
69
|
-
store.put(value, key);
|
|
70
|
-
return promisifyRequest(store.transaction);
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
|
|
5
|
+
const APP = 'proto-daisy-ui';
|
|
74
6
|
const KEY = 'app-data';
|
|
75
|
-
const
|
|
7
|
+
const promisedParseJSON = (json) => {
|
|
8
|
+
return new Promise((resolve, reject) => {
|
|
9
|
+
try {
|
|
10
|
+
resolve(JSON.parse(json));
|
|
11
|
+
}
|
|
12
|
+
catch (e) {
|
|
13
|
+
reject(e);
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
};
|
|
17
|
+
// localStorage implementation...
|
|
76
18
|
const bag = {
|
|
77
|
-
get:
|
|
78
|
-
|
|
19
|
+
get: () => {
|
|
20
|
+
const key = `${APP}-${KEY}`;
|
|
21
|
+
const json = localStorage.getItem(key);
|
|
22
|
+
return promisedParseJSON(json);
|
|
79
23
|
},
|
|
80
|
-
store:
|
|
81
|
-
|
|
24
|
+
store: (state) => {
|
|
25
|
+
const { login, mfe, pick, theme, themes, dealers } = state;
|
|
26
|
+
const app = mfe === undefined ? null : mfe;
|
|
27
|
+
const data = { login, mfe: app, pick, theme, themes, dealers };
|
|
28
|
+
const key = `${APP}-${KEY}`;
|
|
29
|
+
const json = JSON.stringify(data);
|
|
30
|
+
localStorage.setItem(key, json);
|
|
82
31
|
},
|
|
83
32
|
};
|
|
84
|
-
const getApp = async () => {
|
|
85
|
-
const data = await bag.get();
|
|
86
|
-
return data;
|
|
87
|
-
};
|
|
88
|
-
const saveApp = (state) => {
|
|
89
|
-
// NOTE: state is a Proxy, so we can't just store it directly...
|
|
90
|
-
const { login, mfe, pick, theme, themes, dealers } = state;
|
|
91
|
-
const app = mfe === undefined ? null : mfe;
|
|
92
|
-
bag.store({ login, mfe: app, pick, theme, themes, dealers });
|
|
93
|
-
};
|
|
94
33
|
|
|
95
34
|
const appendToMap = (map, propName, value) => {
|
|
96
35
|
const items = map.get(propName);
|
|
@@ -283,6 +222,7 @@ const createStore = (defaultState, shouldUpdate) => {
|
|
|
283
222
|
return map;
|
|
284
223
|
};
|
|
285
224
|
|
|
225
|
+
const APP_DB = bag;
|
|
286
226
|
const themes = [
|
|
287
227
|
'light',
|
|
288
228
|
'dark',
|
|
@@ -323,17 +263,17 @@ const processApp = (next, save = false) => {
|
|
|
323
263
|
state.login = true;
|
|
324
264
|
}
|
|
325
265
|
if (save)
|
|
326
|
-
|
|
266
|
+
APP_DB.store(state);
|
|
327
267
|
};
|
|
328
268
|
const processPick = (next, save = false) => {
|
|
329
269
|
state.pick = next;
|
|
330
270
|
if (save)
|
|
331
|
-
|
|
271
|
+
APP_DB.store(state);
|
|
332
272
|
};
|
|
333
273
|
const processTheme = (next, save = false) => {
|
|
334
274
|
state.theme = next;
|
|
335
275
|
if (save)
|
|
336
|
-
|
|
276
|
+
APP_DB.store(state);
|
|
337
277
|
};
|
|
338
278
|
const initStore = (data) => {
|
|
339
279
|
const { dealers, login, mfe, pick, theme } = data;
|
|
@@ -349,13 +289,13 @@ const fetchData = async () => {
|
|
|
349
289
|
const json = await response.json();
|
|
350
290
|
state.dealers = json.dealers;
|
|
351
291
|
console.log('-- data:', state.dealers);
|
|
352
|
-
|
|
292
|
+
APP_DB.store(state);
|
|
353
293
|
};
|
|
354
294
|
const initApp = () => {
|
|
355
295
|
clearStore(true);
|
|
356
296
|
// this retrieves the last data we stored in the bag...
|
|
357
|
-
|
|
358
|
-
.then(value => {
|
|
297
|
+
APP_DB.get()
|
|
298
|
+
.then((value) => {
|
|
359
299
|
if (value) {
|
|
360
300
|
initStore(value);
|
|
361
301
|
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { get, set, createStore } from 'idb-keyval';
|
|
2
|
+
const KEY = 'app-data';
|
|
3
|
+
const STORE = createStore('proto-daisy-ui-db', 'proto-store');
|
|
4
|
+
// idb-keyval implementation...
|
|
5
|
+
const asyncBag = {
|
|
6
|
+
get: async () => {
|
|
7
|
+
return await get(KEY, STORE);
|
|
8
|
+
},
|
|
9
|
+
store: async (state) => {
|
|
10
|
+
const { login, mfe, pick, theme, themes, dealers } = state;
|
|
11
|
+
const app = mfe === undefined ? null : mfe;
|
|
12
|
+
const data = { login, mfe: app, pick, theme, themes, dealers };
|
|
13
|
+
await set(KEY, data, STORE);
|
|
14
|
+
},
|
|
15
|
+
};
|
|
16
|
+
export { asyncBag };
|
|
17
|
+
export default asyncBag;
|
|
@@ -1,23 +1,30 @@
|
|
|
1
|
-
|
|
1
|
+
const APP = 'proto-daisy-ui';
|
|
2
2
|
const KEY = 'app-data';
|
|
3
|
-
const
|
|
3
|
+
const promisedParseJSON = (json) => {
|
|
4
|
+
return new Promise((resolve, reject) => {
|
|
5
|
+
try {
|
|
6
|
+
resolve(JSON.parse(json));
|
|
7
|
+
}
|
|
8
|
+
catch (e) {
|
|
9
|
+
reject(e);
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
// localStorage implementation...
|
|
4
14
|
const bag = {
|
|
5
|
-
get:
|
|
6
|
-
|
|
15
|
+
get: () => {
|
|
16
|
+
const key = `${APP}-${KEY}`;
|
|
17
|
+
const json = localStorage.getItem(key);
|
|
18
|
+
return promisedParseJSON(json);
|
|
7
19
|
},
|
|
8
|
-
store:
|
|
9
|
-
|
|
20
|
+
store: (state) => {
|
|
21
|
+
const { login, mfe, pick, theme, themes, dealers } = state;
|
|
22
|
+
const app = mfe === undefined ? null : mfe;
|
|
23
|
+
const data = { login, mfe: app, pick, theme, themes, dealers };
|
|
24
|
+
const key = `${APP}-${KEY}`;
|
|
25
|
+
const json = JSON.stringify(data);
|
|
26
|
+
localStorage.setItem(key, json);
|
|
10
27
|
},
|
|
11
28
|
};
|
|
12
|
-
|
|
13
|
-
const data = await bag.get();
|
|
14
|
-
return data;
|
|
15
|
-
};
|
|
16
|
-
const saveApp = (state) => {
|
|
17
|
-
// NOTE: state is a Proxy, so we can't just store it directly...
|
|
18
|
-
const { login, mfe, pick, theme, themes, dealers } = state;
|
|
19
|
-
const app = mfe === undefined ? null : mfe;
|
|
20
|
-
bag.store({ login, mfe: app, pick, theme, themes, dealers });
|
|
21
|
-
};
|
|
22
|
-
export { getApp, saveApp };
|
|
29
|
+
export { bag };
|
|
23
30
|
export default bag;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { createStore } from '@stencil/store';
|
|
2
|
-
import {
|
|
2
|
+
import { bag } from './bag';
|
|
3
|
+
const APP_DB = bag;
|
|
3
4
|
const themes = [
|
|
4
5
|
'light',
|
|
5
6
|
'dark',
|
|
@@ -40,17 +41,17 @@ const processApp = (next, save = false) => {
|
|
|
40
41
|
state.login = true;
|
|
41
42
|
}
|
|
42
43
|
if (save)
|
|
43
|
-
|
|
44
|
+
APP_DB.store(state);
|
|
44
45
|
};
|
|
45
46
|
const processPick = (next, save = false) => {
|
|
46
47
|
state.pick = next;
|
|
47
48
|
if (save)
|
|
48
|
-
|
|
49
|
+
APP_DB.store(state);
|
|
49
50
|
};
|
|
50
51
|
const processTheme = (next, save = false) => {
|
|
51
52
|
state.theme = next;
|
|
52
53
|
if (save)
|
|
53
|
-
|
|
54
|
+
APP_DB.store(state);
|
|
54
55
|
};
|
|
55
56
|
const initStore = (data) => {
|
|
56
57
|
const { dealers, login, mfe, pick, theme } = data;
|
|
@@ -66,13 +67,13 @@ const fetchData = async () => {
|
|
|
66
67
|
const json = await response.json();
|
|
67
68
|
state.dealers = json.dealers;
|
|
68
69
|
console.log('-- data:', state.dealers);
|
|
69
|
-
|
|
70
|
+
APP_DB.store(state);
|
|
70
71
|
};
|
|
71
72
|
const initApp = () => {
|
|
72
73
|
clearStore(true);
|
|
73
74
|
// this retrieves the last data we stored in the bag...
|
|
74
|
-
|
|
75
|
-
.then(value => {
|
|
75
|
+
APP_DB.get()
|
|
76
|
+
.then((value) => {
|
|
76
77
|
if (value) {
|
|
77
78
|
initStore(value);
|
|
78
79
|
}
|
package/dist/components/store.js
CHANGED
|
@@ -1,94 +1,33 @@
|
|
|
1
1
|
import { getRenderingRef, forceUpdate } from '@stencil/core/internal/client';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
return new Promise(function (resolve, reject) {
|
|
5
|
-
// @ts-ignore - file size hacks
|
|
6
|
-
request.oncomplete = request.onsuccess = function () {
|
|
7
|
-
return resolve(request.result);
|
|
8
|
-
}; // @ts-ignore - file size hacks
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
request.onabort = request.onerror = function () {
|
|
12
|
-
return reject(request.error);
|
|
13
|
-
};
|
|
14
|
-
});
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
function createStore$1(dbName, storeName) {
|
|
18
|
-
var request = indexedDB.open(dbName);
|
|
19
|
-
|
|
20
|
-
request.onupgradeneeded = function () {
|
|
21
|
-
return request.result.createObjectStore(storeName);
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
var dbp = promisifyRequest(request);
|
|
25
|
-
return function (txMode, callback) {
|
|
26
|
-
return dbp.then(function (db) {
|
|
27
|
-
return callback(db.transaction(storeName, txMode).objectStore(storeName));
|
|
28
|
-
});
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
var defaultGetStoreFunc;
|
|
33
|
-
|
|
34
|
-
function defaultGetStore() {
|
|
35
|
-
if (!defaultGetStoreFunc) {
|
|
36
|
-
defaultGetStoreFunc = createStore$1('keyval-store', 'keyval');
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
return defaultGetStoreFunc;
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Get a value by its key.
|
|
43
|
-
*
|
|
44
|
-
* @param key
|
|
45
|
-
* @param customStore Method to get a custom store. Use with caution (see the docs).
|
|
46
|
-
*/
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
function get(key) {
|
|
50
|
-
var customStore = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultGetStore();
|
|
51
|
-
return customStore('readonly', function (store) {
|
|
52
|
-
return promisifyRequest(store.get(key));
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Set a value with a key.
|
|
57
|
-
*
|
|
58
|
-
* @param key
|
|
59
|
-
* @param value
|
|
60
|
-
* @param customStore Method to get a custom store. Use with caution (see the docs).
|
|
61
|
-
*/
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
function set(key, value) {
|
|
65
|
-
var customStore = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultGetStore();
|
|
66
|
-
return customStore('readwrite', function (store) {
|
|
67
|
-
store.put(value, key);
|
|
68
|
-
return promisifyRequest(store.transaction);
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
|
|
3
|
+
const APP = 'proto-daisy-ui';
|
|
72
4
|
const KEY = 'app-data';
|
|
73
|
-
const
|
|
5
|
+
const promisedParseJSON = (json) => {
|
|
6
|
+
return new Promise((resolve, reject) => {
|
|
7
|
+
try {
|
|
8
|
+
resolve(JSON.parse(json));
|
|
9
|
+
}
|
|
10
|
+
catch (e) {
|
|
11
|
+
reject(e);
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
};
|
|
15
|
+
// localStorage implementation...
|
|
74
16
|
const bag = {
|
|
75
|
-
get:
|
|
76
|
-
|
|
17
|
+
get: () => {
|
|
18
|
+
const key = `${APP}-${KEY}`;
|
|
19
|
+
const json = localStorage.getItem(key);
|
|
20
|
+
return promisedParseJSON(json);
|
|
77
21
|
},
|
|
78
|
-
store:
|
|
79
|
-
|
|
22
|
+
store: (state) => {
|
|
23
|
+
const { login, mfe, pick, theme, themes, dealers } = state;
|
|
24
|
+
const app = mfe === undefined ? null : mfe;
|
|
25
|
+
const data = { login, mfe: app, pick, theme, themes, dealers };
|
|
26
|
+
const key = `${APP}-${KEY}`;
|
|
27
|
+
const json = JSON.stringify(data);
|
|
28
|
+
localStorage.setItem(key, json);
|
|
80
29
|
},
|
|
81
30
|
};
|
|
82
|
-
const getApp = async () => {
|
|
83
|
-
const data = await bag.get();
|
|
84
|
-
return data;
|
|
85
|
-
};
|
|
86
|
-
const saveApp = (state) => {
|
|
87
|
-
// NOTE: state is a Proxy, so we can't just store it directly...
|
|
88
|
-
const { login, mfe, pick, theme, themes, dealers } = state;
|
|
89
|
-
const app = mfe === undefined ? null : mfe;
|
|
90
|
-
bag.store({ login, mfe: app, pick, theme, themes, dealers });
|
|
91
|
-
};
|
|
92
31
|
|
|
93
32
|
const appendToMap = (map, propName, value) => {
|
|
94
33
|
const items = map.get(propName);
|
|
@@ -281,6 +220,7 @@ const createStore = (defaultState, shouldUpdate) => {
|
|
|
281
220
|
return map;
|
|
282
221
|
};
|
|
283
222
|
|
|
223
|
+
const APP_DB = bag;
|
|
284
224
|
const themes = [
|
|
285
225
|
'light',
|
|
286
226
|
'dark',
|
|
@@ -321,17 +261,17 @@ const processApp = (next, save = false) => {
|
|
|
321
261
|
state.login = true;
|
|
322
262
|
}
|
|
323
263
|
if (save)
|
|
324
|
-
|
|
264
|
+
APP_DB.store(state);
|
|
325
265
|
};
|
|
326
266
|
const processPick = (next, save = false) => {
|
|
327
267
|
state.pick = next;
|
|
328
268
|
if (save)
|
|
329
|
-
|
|
269
|
+
APP_DB.store(state);
|
|
330
270
|
};
|
|
331
271
|
const processTheme = (next, save = false) => {
|
|
332
272
|
state.theme = next;
|
|
333
273
|
if (save)
|
|
334
|
-
|
|
274
|
+
APP_DB.store(state);
|
|
335
275
|
};
|
|
336
276
|
const initStore = (data) => {
|
|
337
277
|
const { dealers, login, mfe, pick, theme } = data;
|
|
@@ -347,13 +287,13 @@ const fetchData = async () => {
|
|
|
347
287
|
const json = await response.json();
|
|
348
288
|
state.dealers = json.dealers;
|
|
349
289
|
console.log('-- data:', state.dealers);
|
|
350
|
-
|
|
290
|
+
APP_DB.store(state);
|
|
351
291
|
};
|
|
352
292
|
const initApp = () => {
|
|
353
293
|
clearStore(true);
|
|
354
294
|
// this retrieves the last data we stored in the bag...
|
|
355
|
-
|
|
356
|
-
.then(value => {
|
|
295
|
+
APP_DB.get()
|
|
296
|
+
.then((value) => {
|
|
357
297
|
if (value) {
|
|
358
298
|
initStore(value);
|
|
359
299
|
}
|