proto-daisy-ui 0.0.25 → 0.0.28
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 +2 -1
- package/dist/cjs/proto-hero.cjs.entry.js +1 -1
- package/dist/cjs/proto-home.cjs.entry.js +7 -4
- package/dist/cjs/proto-list.cjs.entry.js +5 -3
- package/dist/cjs/proto-shell.cjs.entry.js +4 -5
- package/dist/cjs/proto-stats.cjs.entry.js +7 -4
- package/dist/cjs/store-56616808.js +320 -0
- package/dist/collection/components/proto-daisy-ui/proto-daisy-ui.js +1 -0
- package/dist/collection/components/proto-home/proto-home.js +6 -3
- package/dist/collection/components/proto-list/proto-list.js +5 -3
- package/dist/collection/components/proto-shell/proto-header.js +3 -3
- package/dist/collection/components/proto-shell/proto-shell.js +0 -1
- package/dist/collection/components/proto-stats/proto-stats.js +6 -3
- package/dist/collection/utils/index.js +0 -1
- package/dist/collection/utils/store.js +14 -10
- package/dist/components/proto-daisy-ui.js +1 -0
- package/dist/components/proto-home.js +6 -3
- package/dist/components/proto-list.js +5 -3
- package/dist/components/proto-shell.js +3 -4
- package/dist/components/proto-stats.js +6 -3
- package/dist/components/store.js +15 -7971
- package/dist/esm/proto-daisy-ui.entry.js +2 -1
- package/dist/esm/proto-hero.entry.js +1 -1
- package/dist/esm/proto-home.entry.js +6 -3
- package/dist/esm/proto-list.entry.js +5 -3
- package/dist/esm/proto-shell.entry.js +3 -4
- package/dist/esm/proto-stats.entry.js +6 -3
- package/dist/esm/store-5ed9cbd2.js +317 -0
- package/dist/proto-daisy-ui/p-10debd92.entry.js +1 -0
- package/dist/proto-daisy-ui/p-64a9f575.entry.js +1 -0
- package/dist/proto-daisy-ui/p-7f343261.entry.js +1 -0
- package/dist/proto-daisy-ui/p-9490721f.entry.js +1 -0
- package/dist/proto-daisy-ui/p-ca5f13ab.js +1 -0
- package/dist/proto-daisy-ui/p-cc7c202a.entry.js +1 -0
- package/dist/proto-daisy-ui/p-e29c7846.entry.js +1 -0
- package/dist/proto-daisy-ui/proto-daisy-ui.esm.js +1 -1
- package/dist/types/utils/index.d.ts +0 -1
- package/dist/types/utils/store.d.ts +0 -1
- package/dist/types/utils/types.d.ts +19 -14
- package/package.json +3 -6
- package/dist/cjs/store-77667af2.js +0 -8278
- package/dist/collection/utils/mocks.js +0 -36
- package/dist/esm/store-afba4232.js +0 -8273
- package/dist/proto-daisy-ui/p-12f92a05.entry.js +0 -1
- package/dist/proto-daisy-ui/p-29633ff1.js +0 -1
- package/dist/proto-daisy-ui/p-7446dd95.entry.js +0 -1
- package/dist/proto-daisy-ui/p-7badb190.entry.js +0 -1
- package/dist/proto-daisy-ui/p-91752548.entry.js +0 -1
- package/dist/proto-daisy-ui/p-a6145ab5.entry.js +0 -1
- package/dist/proto-daisy-ui/p-e089d77a.entry.js +0 -1
- package/dist/types/utils/mocks.d.ts +0 -5
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
const index = require('./index-68d57682.js');
|
|
6
|
-
const store = require('./store-
|
|
6
|
+
const store = require('./store-56616808.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))}.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))}.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))}.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-1{margin-top:0.25rem}.mt-0{margin-top:0px}.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-5{width:1.25rem}.w-52{width:13rem}.w-40{width:10rem}.max-w-md{max-width:28rem}.flex-none{flex:none}.flex-1{flex:1 1 0%}.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-accent{--tw-bg-opacity:1;background-color:hsl(var(--a) / var(--tw-bg-opacity))}.bg-secondary{--tw-bg-opacity:1;background-color:hsl(var(--s) / 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-accent-content{--tw-text-opacity:1;color:hsl(var(--ac) / var(--tw-text-opacity))}.text-secondary-content{--tw-text-opacity:1;color:hsl(var(--sc) / 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
|
|
|
@@ -17,6 +17,7 @@ const ProtoDaisyUi = class {
|
|
|
17
17
|
render() {
|
|
18
18
|
const { login, theme } = store.state;
|
|
19
19
|
const TAG = login ? 'proto-hero' : 'proto-shell';
|
|
20
|
+
console.log('-- TAG:', login, theme, TAG);
|
|
20
21
|
return index.h(TAG, { theme: theme });
|
|
21
22
|
}
|
|
22
23
|
};
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
const index = require('./index-68d57682.js');
|
|
6
|
-
const store = require('./store-
|
|
6
|
+
const store = require('./store-56616808.js');
|
|
7
7
|
|
|
8
8
|
const ProtoButton = (_props, children) => {
|
|
9
9
|
return index.h("button", { class: "btn btn-primary" }, children);
|
|
@@ -16,9 +16,12 @@ const ProtoHome = class {
|
|
|
16
16
|
index.registerInstance(this, hostRef);
|
|
17
17
|
}
|
|
18
18
|
render() {
|
|
19
|
-
const { pick } = store.state;
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
const { dealers, pick } = store.state;
|
|
20
|
+
if (dealers.length <= pick)
|
|
21
|
+
return '';
|
|
22
|
+
const dealer = dealers[pick];
|
|
23
|
+
const { name, stats } = dealer;
|
|
24
|
+
const { progress } = stats;
|
|
22
25
|
return (index.h("div", { class: "mr-8 flex flex-col flex-nowrap items-start gap-2" }, index.h("div", { class: "alert alert-info mb-4 items-start shadow-lg" }, index.h("div", null, index.h("svg", { fill: "none", viewBox: "0 0 24 24", class: "h-6 w-6 flex-shrink-0 stroke-current" }, index.h("path", { "stroke-linecap": "round", "stroke-linejoin": "round", "stroke-width": "2", d: "M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" })), index.h("span", null, "Welcome... [ ", name, " ]"))), index.h(ProtoButton, null, "Hello"), progress ? (index.h("proto-dial", { class: "mt-4", value: progress })) : ('')));
|
|
23
26
|
}
|
|
24
27
|
};
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
const index = require('./index-68d57682.js');
|
|
6
|
-
const store = require('./store-
|
|
6
|
+
const store = require('./store-56616808.js');
|
|
7
7
|
|
|
8
8
|
const protoListCss = "";
|
|
9
9
|
|
|
@@ -26,8 +26,10 @@ const ProtoList = class {
|
|
|
26
26
|
index.registerInstance(this, hostRef);
|
|
27
27
|
}
|
|
28
28
|
render() {
|
|
29
|
-
const { pick } = store.state;
|
|
30
|
-
|
|
29
|
+
const { dealers, pick } = store.state;
|
|
30
|
+
if (dealers.length <= pick)
|
|
31
|
+
return '';
|
|
32
|
+
const data = dealers[pick].people;
|
|
31
33
|
return (index.h("div", { class: "overflow-x-auto" }, index.h("table", { class: "table-compact table w-full" }, index.h("thead", null, index.h("tr", null, index.h("th", null), keys.map(({ label }) => {
|
|
32
34
|
return index.h("th", null, label);
|
|
33
35
|
}))), index.h("tbody", null, data.map((obj, indx) => {
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
const index = require('./index-68d57682.js');
|
|
6
|
-
const store = require('./store-
|
|
6
|
+
const store = require('./store-56616808.js');
|
|
7
7
|
|
|
8
8
|
const tw = (...classes) => {
|
|
9
9
|
return classes.filter(Boolean).join(' ');
|
|
@@ -31,8 +31,8 @@ const clickTheme = (theme) => {
|
|
|
31
31
|
};
|
|
32
32
|
};
|
|
33
33
|
const ProtoHeader = (_props, _children) => {
|
|
34
|
-
const { mfe, pick, themes } = store.state;
|
|
35
|
-
const dealer =
|
|
34
|
+
const { dealers, mfe, pick, themes } = store.state;
|
|
35
|
+
const dealer = dealers.length > pick ? dealers[pick] : { name: undefined };
|
|
36
36
|
return (index.h("div", { class: "navbar m-1 w-auto rounded-md bg-base-100" },
|
|
37
37
|
index.h("div", { class: "flex-none" },
|
|
38
38
|
index.h("div", { class: "dropdown" },
|
|
@@ -61,7 +61,7 @@ const ProtoHeader = (_props, _children) => {
|
|
|
61
61
|
index.h("label", { class: "btn btn-ghost normal-case", tabindex: "0", "aria-label": "Location" },
|
|
62
62
|
index.h("svg", { fill: "none", viewBox: "0 0 24 24", class: "inline-block h-5 w-5 fill-current" },
|
|
63
63
|
index.h("path", { d: "M15 9H17V11H15V9M17 5H15V7H17V5M11 15H13V13H11V15M13 5H11V7H13V5M11 11H13V9H11V11M9 5H7V7H9V5M9 9H7V11H9V9M14.55 21H13V17.5H11V21H5V3H19V11.03C19.71 11.09 20.39 11.31 21 11.63V1H3V23H15.91C15.5 22.44 15 21.76 14.55 21M7 19H9V17H7V19M9 13H7V15H9V13M22 16.5C22 19.1 18.5 23 18.5 23S15 19.1 15 16.5C15 14.6 16.6 13 18.5 13S22 14.6 22 16.5M19.7 16.6C19.7 16 19.1 15.4 18.5 15.4S17.3 15.9 17.3 16.6C17.3 17.2 17.8 17.8 18.5 17.8S19.8 17.2 19.7 16.6Z" })))),
|
|
64
|
-
index.h("ul", { tabindex: "0", class: "dropdown-content menu menu-compact mt-1 w-52 rounded-md bg-secondary p-2 text-secondary-content shadow " },
|
|
64
|
+
index.h("ul", { tabindex: "0", class: "dropdown-content menu menu-compact mt-1 w-52 rounded-md bg-secondary p-2 text-secondary-content shadow " }, dealers.map((obj, indx) => {
|
|
65
65
|
const active = indx === pick ? 'active' : undefined;
|
|
66
66
|
return (index.h("li", null,
|
|
67
67
|
index.h("a", { class: active, onClick: clickPick(indx) }, obj.name)));
|
|
@@ -124,7 +124,6 @@ const ProtoShell = class {
|
|
|
124
124
|
}
|
|
125
125
|
render() {
|
|
126
126
|
const TAG = store.state.mfe;
|
|
127
|
-
console.log('-- render:', TAG);
|
|
128
127
|
return (index.h("div", { class: "flex min-h-screen flex-col font-sans", "data-theme": this.theme }, index.h(ProtoHeader, null), index.h("div", { class: "flex-auto p-4 pt-0" }, index.h("div", { class: "divider mt-0" }), index.h("div", null, index.h(TAG, null))), index.h(ProtoFooter, null)));
|
|
129
128
|
}
|
|
130
129
|
};
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
const index = require('./index-68d57682.js');
|
|
6
|
-
const store = require('./store-
|
|
6
|
+
const store = require('./store-56616808.js');
|
|
7
7
|
|
|
8
8
|
const protoStatsCss = "";
|
|
9
9
|
|
|
@@ -15,9 +15,12 @@ const ProtoStats = class {
|
|
|
15
15
|
index.registerInstance(this, hostRef);
|
|
16
16
|
}
|
|
17
17
|
render() {
|
|
18
|
-
const { pick } = store.state;
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
const { dealers, pick } = store.state;
|
|
19
|
+
if (dealers.length <= pick)
|
|
20
|
+
return '';
|
|
21
|
+
const dealer = dealers[pick];
|
|
22
|
+
const { stats } = dealer;
|
|
23
|
+
const { downloads, users, registers } = stats;
|
|
21
24
|
const p1 = Math.ceil((400 / (users - 400)) * 100);
|
|
22
25
|
const p2 = Math.ceil((90 / (registers + 90)) * 100);
|
|
23
26
|
return (index.h("div", { class: "stats stats-vertical lg:stats-horizontal" }, index.h("div", { class: "stat w-40" }, index.h("div", { class: "stat-title" }, "Downloads"), index.h("div", { class: "stat-value" }, kFormatter(downloads)), index.h("div", { class: "stat-desc" }, "Jan 1st - Feb 1st")), index.h("div", { class: "stat w-40" }, index.h("div", { class: "stat-title" }, "New Users"), index.h("div", { class: "stat-value" }, kFormatter(users, 9999)), index.h("div", { class: "stat-desc" }, "\u2197\uFE0E 400 (", p1, "%)")), index.h("div", { class: "stat w-40" }, index.h("div", { class: "stat-title" }, "New Registers"), index.h("div", { class: "stat-value" }, kFormatter(registers, 9999)), index.h("div", { class: "stat-desc" }, "\u2198\uFE0E 90 (", p2, "%)"))));
|
|
@@ -0,0 +1,320 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const index = require('./index-68d57682.js');
|
|
4
|
+
|
|
5
|
+
const KEY = 'proto-daisy-ui';
|
|
6
|
+
const DATA = 'bag';
|
|
7
|
+
const bag = {
|
|
8
|
+
get: (tag) => {
|
|
9
|
+
const key = tag ? `${KEY}-${tag}` : KEY;
|
|
10
|
+
const json = localStorage.getItem(key);
|
|
11
|
+
return json ? JSON.parse(json) : undefined;
|
|
12
|
+
},
|
|
13
|
+
store: (tag, value) => {
|
|
14
|
+
const key = tag ? `${KEY}-${tag}` : KEY;
|
|
15
|
+
const json = JSON.stringify(value === undefined ? null : value);
|
|
16
|
+
localStorage.setItem(key, json);
|
|
17
|
+
},
|
|
18
|
+
};
|
|
19
|
+
const getApp = () => {
|
|
20
|
+
return bag.get(DATA) || {};
|
|
21
|
+
};
|
|
22
|
+
const saveApp = (state) => {
|
|
23
|
+
const { login, mfe, pick, theme, themes } = state;
|
|
24
|
+
const app = mfe === undefined ? null : mfe;
|
|
25
|
+
bag.store(DATA, { login, mfe: app, pick, theme, themes });
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
const appendToMap = (map, propName, value) => {
|
|
29
|
+
const items = map.get(propName);
|
|
30
|
+
if (!items) {
|
|
31
|
+
map.set(propName, [value]);
|
|
32
|
+
}
|
|
33
|
+
else if (!items.includes(value)) {
|
|
34
|
+
items.push(value);
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
const debounce = (fn, ms) => {
|
|
38
|
+
let timeoutId;
|
|
39
|
+
return (...args) => {
|
|
40
|
+
if (timeoutId) {
|
|
41
|
+
clearTimeout(timeoutId);
|
|
42
|
+
}
|
|
43
|
+
timeoutId = setTimeout(() => {
|
|
44
|
+
timeoutId = 0;
|
|
45
|
+
fn(...args);
|
|
46
|
+
}, ms);
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Check if a possible element isConnected.
|
|
52
|
+
* The property might not be there, so we check for it.
|
|
53
|
+
*
|
|
54
|
+
* We want it to return true if isConnected is not a property,
|
|
55
|
+
* otherwise we would remove these elements and would not update.
|
|
56
|
+
*
|
|
57
|
+
* Better leak in Edge than to be useless.
|
|
58
|
+
*/
|
|
59
|
+
const isConnected = (maybeElement) => !('isConnected' in maybeElement) || maybeElement.isConnected;
|
|
60
|
+
const cleanupElements = debounce((map) => {
|
|
61
|
+
for (let key of map.keys()) {
|
|
62
|
+
map.set(key, map.get(key).filter(isConnected));
|
|
63
|
+
}
|
|
64
|
+
}, 2000);
|
|
65
|
+
const stencilSubscription = () => {
|
|
66
|
+
if (typeof index.getRenderingRef !== 'function') {
|
|
67
|
+
// If we are not in a stencil project, we do nothing.
|
|
68
|
+
// This function is not really exported by @stencil/core.
|
|
69
|
+
return {};
|
|
70
|
+
}
|
|
71
|
+
const elmsToUpdate = new Map();
|
|
72
|
+
return {
|
|
73
|
+
dispose: () => elmsToUpdate.clear(),
|
|
74
|
+
get: (propName) => {
|
|
75
|
+
const elm = index.getRenderingRef();
|
|
76
|
+
if (elm) {
|
|
77
|
+
appendToMap(elmsToUpdate, propName, elm);
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
set: (propName) => {
|
|
81
|
+
const elements = elmsToUpdate.get(propName);
|
|
82
|
+
if (elements) {
|
|
83
|
+
elmsToUpdate.set(propName, elements.filter(index.forceUpdate));
|
|
84
|
+
}
|
|
85
|
+
cleanupElements(elmsToUpdate);
|
|
86
|
+
},
|
|
87
|
+
reset: () => {
|
|
88
|
+
elmsToUpdate.forEach((elms) => elms.forEach(index.forceUpdate));
|
|
89
|
+
cleanupElements(elmsToUpdate);
|
|
90
|
+
},
|
|
91
|
+
};
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
const unwrap = (val) => (typeof val === 'function' ? val() : val);
|
|
95
|
+
const createObservableMap = (defaultState, shouldUpdate = (a, b) => a !== b) => {
|
|
96
|
+
const unwrappedState = unwrap(defaultState);
|
|
97
|
+
let states = new Map(Object.entries(unwrappedState !== null && unwrappedState !== void 0 ? unwrappedState : {}));
|
|
98
|
+
const handlers = {
|
|
99
|
+
dispose: [],
|
|
100
|
+
get: [],
|
|
101
|
+
set: [],
|
|
102
|
+
reset: [],
|
|
103
|
+
};
|
|
104
|
+
const reset = () => {
|
|
105
|
+
var _a;
|
|
106
|
+
// When resetting the state, the default state may be a function - unwrap it to invoke it.
|
|
107
|
+
// otherwise, the state won't be properly reset
|
|
108
|
+
states = new Map(Object.entries((_a = unwrap(defaultState)) !== null && _a !== void 0 ? _a : {}));
|
|
109
|
+
handlers.reset.forEach((cb) => cb());
|
|
110
|
+
};
|
|
111
|
+
const dispose = () => {
|
|
112
|
+
// Call first dispose as resetting the state would
|
|
113
|
+
// cause less updates ;)
|
|
114
|
+
handlers.dispose.forEach((cb) => cb());
|
|
115
|
+
reset();
|
|
116
|
+
};
|
|
117
|
+
const get = (propName) => {
|
|
118
|
+
handlers.get.forEach((cb) => cb(propName));
|
|
119
|
+
return states.get(propName);
|
|
120
|
+
};
|
|
121
|
+
const set = (propName, value) => {
|
|
122
|
+
const oldValue = states.get(propName);
|
|
123
|
+
if (shouldUpdate(value, oldValue, propName)) {
|
|
124
|
+
states.set(propName, value);
|
|
125
|
+
handlers.set.forEach((cb) => cb(propName, value, oldValue));
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
const state = (typeof Proxy === 'undefined'
|
|
129
|
+
? {}
|
|
130
|
+
: new Proxy(unwrappedState, {
|
|
131
|
+
get(_, propName) {
|
|
132
|
+
return get(propName);
|
|
133
|
+
},
|
|
134
|
+
ownKeys(_) {
|
|
135
|
+
return Array.from(states.keys());
|
|
136
|
+
},
|
|
137
|
+
getOwnPropertyDescriptor() {
|
|
138
|
+
return {
|
|
139
|
+
enumerable: true,
|
|
140
|
+
configurable: true,
|
|
141
|
+
};
|
|
142
|
+
},
|
|
143
|
+
has(_, propName) {
|
|
144
|
+
return states.has(propName);
|
|
145
|
+
},
|
|
146
|
+
set(_, propName, value) {
|
|
147
|
+
set(propName, value);
|
|
148
|
+
return true;
|
|
149
|
+
},
|
|
150
|
+
}));
|
|
151
|
+
const on = (eventName, callback) => {
|
|
152
|
+
handlers[eventName].push(callback);
|
|
153
|
+
return () => {
|
|
154
|
+
removeFromArray(handlers[eventName], callback);
|
|
155
|
+
};
|
|
156
|
+
};
|
|
157
|
+
const onChange = (propName, cb) => {
|
|
158
|
+
const unSet = on('set', (key, newValue) => {
|
|
159
|
+
if (key === propName) {
|
|
160
|
+
cb(newValue);
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
// We need to unwrap the defaultState because it might be a function.
|
|
164
|
+
// Otherwise we might not be sending the right reset value.
|
|
165
|
+
const unReset = on('reset', () => cb(unwrap(defaultState)[propName]));
|
|
166
|
+
return () => {
|
|
167
|
+
unSet();
|
|
168
|
+
unReset();
|
|
169
|
+
};
|
|
170
|
+
};
|
|
171
|
+
const use = (...subscriptions) => {
|
|
172
|
+
const unsubs = subscriptions.reduce((unsubs, subscription) => {
|
|
173
|
+
if (subscription.set) {
|
|
174
|
+
unsubs.push(on('set', subscription.set));
|
|
175
|
+
}
|
|
176
|
+
if (subscription.get) {
|
|
177
|
+
unsubs.push(on('get', subscription.get));
|
|
178
|
+
}
|
|
179
|
+
if (subscription.reset) {
|
|
180
|
+
unsubs.push(on('reset', subscription.reset));
|
|
181
|
+
}
|
|
182
|
+
if (subscription.dispose) {
|
|
183
|
+
unsubs.push(on('dispose', subscription.dispose));
|
|
184
|
+
}
|
|
185
|
+
return unsubs;
|
|
186
|
+
}, []);
|
|
187
|
+
return () => unsubs.forEach((unsub) => unsub());
|
|
188
|
+
};
|
|
189
|
+
const forceUpdate = (key) => {
|
|
190
|
+
const oldValue = states.get(key);
|
|
191
|
+
handlers.set.forEach((cb) => cb(key, oldValue, oldValue));
|
|
192
|
+
};
|
|
193
|
+
return {
|
|
194
|
+
state,
|
|
195
|
+
get,
|
|
196
|
+
set,
|
|
197
|
+
on,
|
|
198
|
+
onChange,
|
|
199
|
+
use,
|
|
200
|
+
dispose,
|
|
201
|
+
reset,
|
|
202
|
+
forceUpdate,
|
|
203
|
+
};
|
|
204
|
+
};
|
|
205
|
+
const removeFromArray = (array, item) => {
|
|
206
|
+
const index = array.indexOf(item);
|
|
207
|
+
if (index >= 0) {
|
|
208
|
+
array[index] = array[array.length - 1];
|
|
209
|
+
array.length--;
|
|
210
|
+
}
|
|
211
|
+
};
|
|
212
|
+
|
|
213
|
+
const createStore = (defaultState, shouldUpdate) => {
|
|
214
|
+
const map = createObservableMap(defaultState, shouldUpdate);
|
|
215
|
+
map.use(stencilSubscription());
|
|
216
|
+
return map;
|
|
217
|
+
};
|
|
218
|
+
|
|
219
|
+
const themes = [
|
|
220
|
+
'light',
|
|
221
|
+
'dark',
|
|
222
|
+
'aqua',
|
|
223
|
+
'business',
|
|
224
|
+
'corporate',
|
|
225
|
+
'fantasy',
|
|
226
|
+
'night',
|
|
227
|
+
'winter',
|
|
228
|
+
'wireframe',
|
|
229
|
+
];
|
|
230
|
+
// --------------------------------------------------------[ mutable store ]
|
|
231
|
+
const storeDef = {
|
|
232
|
+
login: true,
|
|
233
|
+
mfe: undefined,
|
|
234
|
+
pick: 0,
|
|
235
|
+
theme: 'dark',
|
|
236
|
+
themes,
|
|
237
|
+
dealers: [],
|
|
238
|
+
};
|
|
239
|
+
const { state } = createStore(storeDef);
|
|
240
|
+
// --------------------------------------------------------[ utility ]
|
|
241
|
+
const clearStore = (login = false) => {
|
|
242
|
+
state.login = login;
|
|
243
|
+
state.pick = 0;
|
|
244
|
+
state.mfe = undefined;
|
|
245
|
+
state.theme = 'dark';
|
|
246
|
+
state.themes = themes;
|
|
247
|
+
state.dealers = [];
|
|
248
|
+
};
|
|
249
|
+
// --------------------------------------------------------[ processing ]
|
|
250
|
+
const processApp = (next) => {
|
|
251
|
+
state.mfe = next;
|
|
252
|
+
if (next) {
|
|
253
|
+
state.login = false;
|
|
254
|
+
}
|
|
255
|
+
else {
|
|
256
|
+
state.login = true;
|
|
257
|
+
}
|
|
258
|
+
saveApp(state);
|
|
259
|
+
};
|
|
260
|
+
const processLogin = (next) => {
|
|
261
|
+
state.login = next;
|
|
262
|
+
saveApp(state);
|
|
263
|
+
};
|
|
264
|
+
const processPick = (next) => {
|
|
265
|
+
state.pick = next;
|
|
266
|
+
saveApp(state);
|
|
267
|
+
};
|
|
268
|
+
const processTheme = (next) => {
|
|
269
|
+
state.theme = next;
|
|
270
|
+
saveApp(state);
|
|
271
|
+
};
|
|
272
|
+
// --------------------------------------------------------[ actions ]
|
|
273
|
+
const fetchData = async () => {
|
|
274
|
+
const response = await fetch('https://mock-x43.vercel.app/api/daisy');
|
|
275
|
+
const json = await response.json();
|
|
276
|
+
state.dealers = json.dealers;
|
|
277
|
+
console.log('-- data:', state.dealers);
|
|
278
|
+
};
|
|
279
|
+
const initApp = () => {
|
|
280
|
+
clearStore(true);
|
|
281
|
+
// this retrieves the last data we stored in the bag...
|
|
282
|
+
const data = getApp();
|
|
283
|
+
const { login, mfe, pick, theme } = data;
|
|
284
|
+
console.log('-- state:', state);
|
|
285
|
+
fetchData();
|
|
286
|
+
if (theme) {
|
|
287
|
+
processTheme(theme);
|
|
288
|
+
if (login !== undefined) {
|
|
289
|
+
processLogin(login);
|
|
290
|
+
}
|
|
291
|
+
if (login === false && mfe) {
|
|
292
|
+
console.log('-- app:', mfe);
|
|
293
|
+
processApp(mfe);
|
|
294
|
+
}
|
|
295
|
+
if (pick) {
|
|
296
|
+
processPick(pick);
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
else {
|
|
300
|
+
saveApp(state);
|
|
301
|
+
}
|
|
302
|
+
};
|
|
303
|
+
const updateApp = (mfe) => {
|
|
304
|
+
processApp(mfe);
|
|
305
|
+
};
|
|
306
|
+
const updatePick = (pick) => {
|
|
307
|
+
processPick(pick);
|
|
308
|
+
};
|
|
309
|
+
const updateTheme = (theme) => {
|
|
310
|
+
processTheme(theme);
|
|
311
|
+
};
|
|
312
|
+
const actions = {
|
|
313
|
+
initApp,
|
|
314
|
+
updateApp,
|
|
315
|
+
updatePick,
|
|
316
|
+
updateTheme,
|
|
317
|
+
};
|
|
318
|
+
|
|
319
|
+
exports.actions = actions;
|
|
320
|
+
exports.state = state;
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import { Component, h } from '@stencil/core';
|
|
2
|
-
import {
|
|
2
|
+
import { state } from '../../utils';
|
|
3
3
|
import { ProtoButton } from '../functional/';
|
|
4
4
|
export class ProtoHome {
|
|
5
5
|
render() {
|
|
6
|
-
const { pick } = state;
|
|
6
|
+
const { dealers, pick } = state;
|
|
7
|
+
if (dealers.length <= pick)
|
|
8
|
+
return '';
|
|
7
9
|
const dealer = dealers[pick];
|
|
8
|
-
const { name,
|
|
10
|
+
const { name, stats } = dealer;
|
|
11
|
+
const { progress } = stats;
|
|
9
12
|
return (h("div", { class: "mr-8 flex flex-col flex-nowrap items-start gap-2" },
|
|
10
13
|
h("div", { class: "alert alert-info mb-4 items-start shadow-lg" },
|
|
11
14
|
h("div", null,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Component, h } from '@stencil/core';
|
|
2
|
-
import { state
|
|
2
|
+
import { state } from '../../utils';
|
|
3
3
|
const keys = [
|
|
4
4
|
{
|
|
5
5
|
label: 'Name',
|
|
@@ -16,8 +16,10 @@ const keys = [
|
|
|
16
16
|
];
|
|
17
17
|
export class ProtoList {
|
|
18
18
|
render() {
|
|
19
|
-
const { pick } = state;
|
|
20
|
-
|
|
19
|
+
const { dealers, pick } = state;
|
|
20
|
+
if (dealers.length <= pick)
|
|
21
|
+
return '';
|
|
22
|
+
const data = dealers[pick].people;
|
|
21
23
|
return (h("div", { class: "overflow-x-auto" },
|
|
22
24
|
h("table", { class: "table-compact table w-full" },
|
|
23
25
|
h("thead", null,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { h } from '@stencil/core';
|
|
2
|
-
import { actions,
|
|
2
|
+
import { actions, state, tw } from '../../utils';
|
|
3
3
|
const clickHandler = (mfe = undefined) => {
|
|
4
4
|
return _event => {
|
|
5
5
|
console.log('-- mfe:', mfe);
|
|
@@ -22,8 +22,8 @@ const clickTheme = (theme) => {
|
|
|
22
22
|
};
|
|
23
23
|
};
|
|
24
24
|
const ProtoHeader = (_props, _children) => {
|
|
25
|
-
const { mfe, pick, themes } = state;
|
|
26
|
-
const dealer = dealers[pick];
|
|
25
|
+
const { dealers, mfe, pick, themes } = state;
|
|
26
|
+
const dealer = dealers.length > pick ? dealers[pick] : { name: undefined };
|
|
27
27
|
return (h("div", { class: "navbar m-1 w-auto rounded-md bg-base-100" },
|
|
28
28
|
h("div", { class: "flex-none" },
|
|
29
29
|
h("div", { class: "dropdown" },
|
|
@@ -8,7 +8,6 @@ export class ProtoShell {
|
|
|
8
8
|
}
|
|
9
9
|
render() {
|
|
10
10
|
const TAG = state.mfe;
|
|
11
|
-
console.log('-- render:', TAG);
|
|
12
11
|
return (h("div", { class: "flex min-h-screen flex-col font-sans", "data-theme": this.theme },
|
|
13
12
|
h(ProtoHeader, null),
|
|
14
13
|
h("div", { class: "flex-auto p-4 pt-0" },
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
import { Component, h } from '@stencil/core';
|
|
2
|
-
import {
|
|
2
|
+
import { state } from '../../utils';
|
|
3
3
|
const kFormatter = (num, limit = 999) => {
|
|
4
4
|
return num > limit ? (num / 1000).toFixed(1) + 'k' : num.toLocaleString();
|
|
5
5
|
};
|
|
6
6
|
export class ProtoStats {
|
|
7
7
|
render() {
|
|
8
|
-
const { pick } = state;
|
|
8
|
+
const { dealers, pick } = state;
|
|
9
|
+
if (dealers.length <= pick)
|
|
10
|
+
return '';
|
|
9
11
|
const dealer = dealers[pick];
|
|
10
|
-
const {
|
|
12
|
+
const { stats } = dealer;
|
|
13
|
+
const { downloads, users, registers } = stats;
|
|
11
14
|
const p1 = Math.ceil((400 / (users - 400)) * 100);
|
|
12
15
|
const p2 = Math.ceil((90 / (registers + 90)) * 100);
|
|
13
16
|
return (h("div", { class: "stats stats-vertical lg:stats-horizontal" },
|