utopia-ui 3.0.82 → 3.0.84

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/index.cjs CHANGED
@@ -76,25 +76,25 @@ styleInject(css_248z$9);
76
76
  var css_248z$8 = ".yarl__fullsize{height:100%;width:100%}.yarl__relative{position:relative}.yarl__portal{bottom:0;left:0;opacity:0;overflow:hidden;position:fixed;right:0;top:0;transition:opacity var(--yarl__fade_animation_duration,.25s) var(--yarl__fade_animation_timing_function,ease);z-index:var(--yarl__portal_zindex,9999)}.yarl__portal_open{opacity:1}.yarl__container{background-color:var(--yarl__container_background_color,var(--yarl__color_backdrop,#000));bottom:0;left:0;outline:none;overflow:hidden;overscroll-behavior:var(--yarl__controller_overscroll_behavior,contain);position:absolute;right:0;top:0;touch-action:var(--yarl__controller_touch_action,none);-webkit-user-select:none;-moz-user-select:none;user-select:none}.yarl__carousel{align-content:center;align-items:stretch;display:flex;flex:0 0 auto;height:100%;justify-content:center;opacity:var(--yarl__pull_opacity,1);transform:translate(var(--yarl__swipe_offset,0),var(--yarl__pull_offset,0));width:calc(100% + (var(--yarl__carousel_slides_count) - 1)*(100% + var(--yarl__carousel_spacing_px, 0)*1px + var(--yarl__carousel_spacing_percent, 0)*1%))}.yarl__carousel_with_slides{-moz-column-gap:calc(var(--yarl__carousel_spacing_px, 0)*1px + 100/(var(--yarl__carousel_slides_count)*100 + (var(--yarl__carousel_slides_count) - 1)*var(--yarl__carousel_spacing_percent, 0))*var(--yarl__carousel_spacing_percent, 0)*1%);column-gap:calc(var(--yarl__carousel_spacing_px, 0)*1px + 100/(var(--yarl__carousel_slides_count)*100 + (var(--yarl__carousel_slides_count) - 1)*var(--yarl__carousel_spacing_percent, 0))*var(--yarl__carousel_spacing_percent, 0)*1%)}.yarl__flex_center{align-content:center;align-items:center;display:flex;justify-content:center}.yarl__slide{flex:1;overflow:hidden;padding:calc(var(--yarl__carousel_padding_px, 0)*1px + 100/(var(--yarl__carousel_slides_count)*100 + (var(--yarl__carousel_slides_count) - 1)*var(--yarl__carousel_spacing_percent, 0))*var(--yarl__carousel_padding_percent, 0)*1%);position:relative}[dir=rtl] .yarl__slide{--yarl__direction:-1}.yarl__slide_image{max-height:100%;max-width:100%;-o-object-fit:contain;object-fit:contain;touch-action:var(--yarl__controller_touch_action,none);-moz-user-select:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.yarl__slide_image_cover{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.yarl__slide_image_loading{opacity:0}@media screen and (min-width:800px){.yarl__slide_wrapper:not(.yarl__slide_wrapper_interactive) .yarl__slide_image{-webkit-backface-visibility:hidden;-webkit-transform:translateZ(0);-webkit-transform-style:preserve-3d}}.yarl__slide_placeholder{left:50%;line-height:0;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%)}.yarl__slide_loading{animation:yarl__delayed_fadein 1s linear;color:var(--yarl__slide_icon_loading_color,var(--yarl__color_button,hsla(0,0%,100%,.8)))}.yarl__slide_loading line{animation:yarl__stroke_opacity 1s linear infinite}.yarl__slide_loading line:first-of-type{animation-delay:-1.875s}.yarl__slide_loading line:nth-of-type(2){animation-delay:-1.75s}.yarl__slide_loading line:nth-of-type(3){animation-delay:-1.625s}.yarl__slide_loading line:nth-of-type(4){animation-delay:-1.5s}.yarl__slide_loading line:nth-of-type(5){animation-delay:-1.375s}.yarl__slide_loading line:nth-of-type(6){animation-delay:-1.25s}.yarl__slide_loading line:nth-of-type(7){animation-delay:-1.125s}.yarl__slide_loading line:nth-of-type(8){animation-delay:-1s}.yarl__slide_error{color:var(--yarl__slide_icon_error_color,red);height:var(--yarl__slide_icon_error_size,48px);width:var(--yarl__slide_icon_error_size,48px)}@media (prefers-reduced-motion){.yarl__portal,.yarl__slide{transition:unset}.yarl__slide_loading,.yarl__slide_loading line{animation:unset}}.yarl__toolbar{bottom:auto;display:flex;justify-content:flex-end;left:auto;padding:var(--yarl__toolbar_padding,8px);position:absolute;right:0;top:0}[dir=rtl] .yarl__toolbar{bottom:auto;left:0;right:auto;top:0}.yarl__icon{height:var(--yarl__icon_size,32px);width:var(--yarl__icon_size,32px)}.yarl__button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--yarl__button_background_color,transparent);border:var(--yarl__button_border,0);color:var(--yarl__color_button,hsla(0,0%,100%,.8));cursor:pointer;filter:var(--yarl__button_filter,drop-shadow(2px 2px 2px rgba(0,0,0,.8)));line-height:0;margin:var(--yarl__button_margin,0);outline:none;padding:var(--yarl__button_padding,8px);-webkit-tap-highlight-color:transparent}.yarl__button:focus{color:var(--yarl__color_button_active,#fff)}.yarl__button:focus:not(:focus-visible){color:var(--yarl__color_button,hsla(0,0%,100%,.8))}.yarl__button:focus-visible{color:var(--yarl__color_button_active,#fff)}@media (hover:hover){.yarl__button:focus-visible:hover,.yarl__button:focus:hover,.yarl__button:hover{color:var(--yarl__color_button_active,#fff)}}.yarl__button:disabled{color:var(--yarl__color_button_disabled,hsla(0,0%,100%,.4));cursor:default}.yarl__navigation_next,.yarl__navigation_prev{padding:var(--yarl__navigation_button_padding,24px 16px);position:absolute;top:50%;transform:translateY(-50%)}.yarl__navigation_prev{left:0}[dir=rtl] .yarl__navigation_prev{left:unset;right:0;transform:translateY(-50%) rotate(180deg)}.yarl__navigation_next{right:0}[dir=rtl] .yarl__navigation_next{left:0;right:unset;transform:translateY(-50%) rotate(180deg)}.yarl__no_scroll{height:100%;overflow:hidden;overscroll-behavior:none}@keyframes yarl__delayed_fadein{0%{opacity:0}80%{opacity:0}to{opacity:1}}@keyframes yarl__stroke_opacity{0%{stroke-opacity:1}to{stroke-opacity:.125}}";
77
77
  styleInject(css_248z$8);
78
78
 
79
- var css_248z$7 = "*, ::before, ::after {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}\n\n::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}/*\n! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com\n*//*\n1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)\n2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)\n*/\n\n*,\n::before,\n::after {\n box-sizing: border-box; /* 1 */\n border-width: 0; /* 2 */\n border-style: solid; /* 2 */\n border-color: #e5e7eb; /* 2 */\n}\n\n::before,\n::after {\n --tw-content: '';\n}\n\n/*\n1. Use a consistent sensible line-height in all browsers.\n2. Prevent adjustments of font size after orientation changes in iOS.\n3. Use a more readable tab size.\n4. Use the user's configured `sans` font-family by default.\n5. Use the user's configured `sans` font-feature-settings by default.\n6. Use the user's configured `sans` font-variation-settings by default.\n7. Disable tap highlights on iOS\n*/\n\nhtml,\n:host {\n line-height: 1.5; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n -moz-tab-size: 4; /* 3 */\n -o-tab-size: 4;\n tab-size: 4; /* 3 */\n font-family: Helvetica, sans-serif, Roboto; /* 4 */\n font-feature-settings: normal; /* 5 */\n font-variation-settings: normal; /* 6 */\n -webkit-tap-highlight-color: transparent; /* 7 */\n}\n\n/*\n1. Remove the margin in all browsers.\n2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.\n*/\n\nbody {\n margin: 0; /* 1 */\n line-height: inherit; /* 2 */\n}\n\n/*\n1. Add the correct height in Firefox.\n2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)\n3. Ensure horizontal rules are visible by default.\n*/\n\nhr {\n height: 0; /* 1 */\n color: inherit; /* 2 */\n border-top-width: 1px; /* 3 */\n}\n\n/*\nAdd the correct text decoration in Chrome, Edge, and Safari.\n*/\n\nabbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n}\n\n/*\nRemove the default font size and weight for headings.\n*/\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-size: inherit;\n font-weight: inherit;\n}\n\n/*\nReset links to optimize for opt-in styling instead of opt-out.\n*/\n\na {\n color: inherit;\n text-decoration: inherit;\n}\n\n/*\nAdd the correct font weight in Edge and Safari.\n*/\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/*\n1. Use the user's configured `mono` font-family by default.\n2. Use the user's configured `mono` font-feature-settings by default.\n3. Use the user's configured `mono` font-variation-settings by default.\n4. Correct the odd `em` font sizing in all browsers.\n*/\n\ncode,\nkbd,\nsamp,\npre {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace; /* 1 */\n font-feature-settings: normal; /* 2 */\n font-variation-settings: normal; /* 3 */\n font-size: 1em; /* 4 */\n}\n\n/*\nAdd the correct font size in all browsers.\n*/\n\nsmall {\n font-size: 80%;\n}\n\n/*\nPrevent `sub` and `sup` elements from affecting the line height in all browsers.\n*/\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/*\n1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)\n2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)\n3. Remove gaps between table borders by default.\n*/\n\ntable {\n text-indent: 0; /* 1 */\n border-color: inherit; /* 2 */\n border-collapse: collapse; /* 3 */\n}\n\n/*\n1. Change the font styles in all browsers.\n2. Remove the margin in Firefox and Safari.\n3. Remove default padding in all browsers.\n*/\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-feature-settings: inherit; /* 1 */\n font-variation-settings: inherit; /* 1 */\n font-size: 100%; /* 1 */\n font-weight: inherit; /* 1 */\n line-height: inherit; /* 1 */\n letter-spacing: inherit; /* 1 */\n color: inherit; /* 1 */\n margin: 0; /* 2 */\n padding: 0; /* 3 */\n}\n\n/*\nRemove the inheritance of text transform in Edge and Firefox.\n*/\n\nbutton,\nselect {\n text-transform: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Remove default button styles.\n*/\n\nbutton,\ninput:where([type='button']),\ninput:where([type='reset']),\ninput:where([type='submit']) {\n -webkit-appearance: button; /* 1 */\n background-color: transparent; /* 2 */\n background-image: none; /* 2 */\n}\n\n/*\nUse the modern Firefox focus style for all focusable elements.\n*/\n\n:-moz-focusring {\n outline: auto;\n}\n\n/*\nRemove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)\n*/\n\n:-moz-ui-invalid {\n box-shadow: none;\n}\n\n/*\nAdd the correct vertical alignment in Chrome and Firefox.\n*/\n\nprogress {\n vertical-align: baseline;\n}\n\n/*\nCorrect the cursor style of increment and decrement buttons in Safari.\n*/\n\n::-webkit-inner-spin-button,\n::-webkit-outer-spin-button {\n height: auto;\n}\n\n/*\n1. Correct the odd appearance in Chrome and Safari.\n2. Correct the outline style in Safari.\n*/\n\n[type='search'] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/*\nRemove the inner padding in Chrome and Safari on macOS.\n*/\n\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Change font properties to `inherit` in Safari.\n*/\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/*\nAdd the correct display in Chrome and Safari.\n*/\n\nsummary {\n display: list-item;\n}\n\n/*\nRemoves the default spacing and border for appropriate elements.\n*/\n\nblockquote,\ndl,\ndd,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\nhr,\nfigure,\np,\npre {\n margin: 0;\n}\n\nfieldset {\n margin: 0;\n padding: 0;\n}\n\nlegend {\n padding: 0;\n}\n\nol,\nul,\nmenu {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n/*\nReset default styling for dialogs.\n*/\ndialog {\n padding: 0;\n}\n\n/*\nPrevent resizing textareas horizontally by default.\n*/\n\ntextarea {\n resize: vertical;\n}\n\n/*\n1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)\n2. Set the default placeholder color to the user's configured gray 400 color.\n*/\n\ninput::-moz-placeholder, textarea::-moz-placeholder {\n opacity: 1; /* 1 */\n color: #9ca3af; /* 2 */\n}\n\ninput::placeholder,\ntextarea::placeholder {\n opacity: 1; /* 1 */\n color: #9ca3af; /* 2 */\n}\n\n/*\nSet the default cursor for buttons.\n*/\n\nbutton,\n[role=\"button\"] {\n cursor: pointer;\n}\n\n/*\nMake sure disabled buttons don't get the pointer cursor.\n*/\n:disabled {\n cursor: default;\n}\n\n/*\n1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)\n2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)\n This can trigger a poorly considered lint error in some tools but is included by design.\n*/\n\nimg,\nsvg,\nvideo,\ncanvas,\naudio,\niframe,\nembed,\nobject {\n display: block; /* 1 */\n vertical-align: middle; /* 2 */\n}\n\n/*\nConstrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)\n*/\n\nimg,\nvideo {\n max-width: 100%;\n height: auto;\n}\n\n/* Make elements with the HTML hidden attribute stay hidden by default */\n[hidden]:where(:not([hidden=\"until-found\"])) {\n display: none;\n}\n\n:root,\n[data-theme] {\n background-color: var(--fallback-b1,oklch(var(--b1)/1));\n color: var(--fallback-bc,oklch(var(--bc)/1));\n}\n\n@supports not (color: oklch(0% 0 0)) {\n\n :root {\n color-scheme: light;\n --fallback-p: #491eff;\n --fallback-pc: #d4dbff;\n --fallback-s: #ff41c7;\n --fallback-sc: #fff9fc;\n --fallback-a: #00cfbd;\n --fallback-ac: #00100d;\n --fallback-n: #2b3440;\n --fallback-nc: #d7dde4;\n --fallback-b1: #ffffff;\n --fallback-b2: #e5e6e6;\n --fallback-b3: #e5e6e6;\n --fallback-bc: #1f2937;\n --fallback-in: #00b3f0;\n --fallback-inc: #000000;\n --fallback-su: #00ca92;\n --fallback-suc: #000000;\n --fallback-wa: #ffc22d;\n --fallback-wac: #000000;\n --fallback-er: #ff6f70;\n --fallback-erc: #000000;\n }\n\n @media (prefers-color-scheme: dark) {\n\n :root {\n color-scheme: dark;\n --fallback-p: #7582ff;\n --fallback-pc: #050617;\n --fallback-s: #ff71cf;\n --fallback-sc: #190211;\n --fallback-a: #00c7b5;\n --fallback-ac: #000e0c;\n --fallback-n: #2a323c;\n --fallback-nc: #a6adbb;\n --fallback-b1: #1d232a;\n --fallback-b2: #191e24;\n --fallback-b3: #15191e;\n --fallback-bc: #a6adbb;\n --fallback-in: #00b3f0;\n --fallback-inc: #000000;\n --fallback-su: #00ca92;\n --fallback-suc: #000000;\n --fallback-wa: #ffc22d;\n --fallback-wac: #000000;\n --fallback-er: #ff6f70;\n --fallback-erc: #000000;\n }\n }\n}\n\nhtml {\n -webkit-tap-highlight-color: transparent;\n}\n\n* {\n scrollbar-color: color-mix(in oklch, currentColor 35%, transparent) transparent;\n}\n\n*:hover {\n scrollbar-color: color-mix(in oklch, currentColor 60%, transparent) transparent;\n}\n\n:root {\n color-scheme: light;\n --in: 72.06% 0.191 231.6;\n --su: 64.8% 0.150 160;\n --wa: 84.71% 0.199 83.87;\n --er: 71.76% 0.221 22.18;\n --pc: 89.824% 0.06192 275.75;\n --ac: 15.352% 0.0368 183.61;\n --inc: 0% 0 0;\n --suc: 0% 0 0;\n --wac: 0% 0 0;\n --erc: 0% 0 0;\n --rounded-box: 1rem;\n --rounded-btn: 0.5rem;\n --rounded-badge: 1.9rem;\n --animation-btn: 0.25s;\n --animation-input: .2s;\n --btn-focus-scale: 0.95;\n --border-btn: 1px;\n --tab-border: 1px;\n --tab-radius: 0.5rem;\n --p: 49.12% 0.3096 275.75;\n --s: 69.71% 0.329 342.55;\n --sc: 98.71% 0.0106 342.55;\n --a: 76.76% 0.184 183.61;\n --n: 32.1785% 0.02476 255.701624;\n --nc: 89.4994% 0.011585 252.096176;\n --b1: 100% 0 0;\n --b2: 96.1151% 0 0;\n --b3: 92.4169% 0.00108 197.137559;\n --bc: 27.8078% 0.029596 256.847952;\n}\n\n@media (prefers-color-scheme: dark) {\n\n :root {\n color-scheme: dark;\n --in: 72.06% 0.191 231.6;\n --su: 64.8% 0.150 160;\n --wa: 84.71% 0.199 83.87;\n --er: 71.76% 0.221 22.18;\n --pc: 13.138% 0.0392 275.75;\n --sc: 14.96% 0.052 342.55;\n --ac: 14.902% 0.0334 183.61;\n --inc: 0% 0 0;\n --suc: 0% 0 0;\n --wac: 0% 0 0;\n --erc: 0% 0 0;\n --rounded-box: 1rem;\n --rounded-btn: 0.5rem;\n --rounded-badge: 1.9rem;\n --animation-btn: 0.25s;\n --animation-input: .2s;\n --btn-focus-scale: 0.95;\n --border-btn: 1px;\n --tab-border: 1px;\n --tab-radius: 0.5rem;\n --p: 65.69% 0.196 275.75;\n --s: 74.8% 0.26 342.55;\n --a: 74.51% 0.167 183.61;\n --n: 31.3815% 0.021108 254.139175;\n --nc: 74.6477% 0.0216 264.435964;\n --b1: 25.3267% 0.015896 252.417568;\n --b2: 23.2607% 0.013807 253.100675;\n --b3: 21.1484% 0.01165 254.087939;\n --bc: 74.6477% 0.0216 264.435964;\n }\n}\n\n[data-theme=light] {\n color-scheme: light;\n --in: 72.06% 0.191 231.6;\n --su: 64.8% 0.150 160;\n --wa: 84.71% 0.199 83.87;\n --er: 71.76% 0.221 22.18;\n --pc: 89.824% 0.06192 275.75;\n --ac: 15.352% 0.0368 183.61;\n --inc: 0% 0 0;\n --suc: 0% 0 0;\n --wac: 0% 0 0;\n --erc: 0% 0 0;\n --rounded-box: 1rem;\n --rounded-btn: 0.5rem;\n --rounded-badge: 1.9rem;\n --animation-btn: 0.25s;\n --animation-input: .2s;\n --btn-focus-scale: 0.95;\n --border-btn: 1px;\n --tab-border: 1px;\n --tab-radius: 0.5rem;\n --p: 49.12% 0.3096 275.75;\n --s: 69.71% 0.329 342.55;\n --sc: 98.71% 0.0106 342.55;\n --a: 76.76% 0.184 183.61;\n --n: 32.1785% 0.02476 255.701624;\n --nc: 89.4994% 0.011585 252.096176;\n --b1: 100% 0 0;\n --b2: 96.1151% 0 0;\n --b3: 92.4169% 0.00108 197.137559;\n --bc: 27.8078% 0.029596 256.847952;\n}\n\n[data-theme=dark] {\n color-scheme: dark;\n --in: 72.06% 0.191 231.6;\n --su: 64.8% 0.150 160;\n --wa: 84.71% 0.199 83.87;\n --er: 71.76% 0.221 22.18;\n --pc: 13.138% 0.0392 275.75;\n --sc: 14.96% 0.052 342.55;\n --ac: 14.902% 0.0334 183.61;\n --inc: 0% 0 0;\n --suc: 0% 0 0;\n --wac: 0% 0 0;\n --erc: 0% 0 0;\n --rounded-box: 1rem;\n --rounded-btn: 0.5rem;\n --rounded-badge: 1.9rem;\n --animation-btn: 0.25s;\n --animation-input: .2s;\n --btn-focus-scale: 0.95;\n --border-btn: 1px;\n --tab-border: 1px;\n --tab-radius: 0.5rem;\n --p: 65.69% 0.196 275.75;\n --s: 74.8% 0.26 342.55;\n --a: 74.51% 0.167 183.61;\n --n: 31.3815% 0.021108 254.139175;\n --nc: 74.6477% 0.0216 264.435964;\n --b1: 25.3267% 0.015896 252.417568;\n --b2: 23.2607% 0.013807 253.100675;\n --b3: 21.1484% 0.01165 254.087939;\n --bc: 74.6477% 0.0216 264.435964;\n}\n\n[data-theme=cupcake] {\n color-scheme: light;\n --in: 72.06% 0.191 231.6;\n --su: 64.8% 0.150 160;\n --wa: 84.71% 0.199 83.87;\n --er: 71.76% 0.221 22.18;\n --pc: 15.2344% 0.017892 200.026556;\n --sc: 15.787% 0.020249 356.29965;\n --ac: 15.8762% 0.029206 78.618794;\n --nc: 84.7148% 0.013247 313.189598;\n --inc: 0% 0 0;\n --suc: 0% 0 0;\n --wac: 0% 0 0;\n --erc: 0% 0 0;\n --rounded-box: 1rem;\n --rounded-badge: 1.9rem;\n --animation-btn: 0.25s;\n --animation-input: .2s;\n --btn-focus-scale: 0.95;\n --border-btn: 1px;\n --p: 76.172% 0.089459 200.026556;\n --s: 78.9351% 0.101246 356.29965;\n --a: 79.3811% 0.146032 78.618794;\n --n: 23.5742% 0.066235 313.189598;\n --b1: 97.7882% 0.00418 56.375637;\n --b2: 93.9822% 0.007638 61.449292;\n --b3: 91.5861% 0.006811 53.440502;\n --bc: 23.5742% 0.066235 313.189598;\n --rounded-btn: 1.9rem;\n --tab-border: 2px;\n --tab-radius: 0.7rem;\n}\n\n[data-theme=retro] {\n color-scheme: light;\n --inc: 90.923% 0.043042 262.880917;\n --suc: 12.541% 0.033982 149.213788;\n --wac: 13.3168% 0.031484 58.31834;\n --erc: 13.144% 0.0398 27.33;\n --animation-btn: 0.25s;\n --animation-input: .2s;\n --btn-focus-scale: 0.95;\n --border-btn: 1px;\n --tab-border: 1px;\n --p: 76.8664% 0.104092 22.664655;\n --pc: 26.5104% 0.006243 0.522862;\n --s: 80.7415% 0.052534 159.094608;\n --sc: 26.5104% 0.006243 0.522862;\n --a: 70.3919% 0.125455 52.953428;\n --ac: 26.5104% 0.006243 0.522862;\n --n: 28.4181% 0.009519 355.534017;\n --nc: 92.5604% 0.025113 89.217311;\n --b1: 91.6374% 0.034554 90.51575;\n --b2: 88.2722% 0.049418 91.774344;\n --b3: 84.133% 0.065952 90.856665;\n --bc: 26.5104% 0.006243 0.522862;\n --in: 54.615% 0.215208 262.880917;\n --su: 62.7052% 0.169912 149.213788;\n --wa: 66.584% 0.157422 58.31834;\n --er: 65.72% 0.199 27.33;\n --rounded-box: 0.4rem;\n --rounded-btn: 0.4rem;\n --rounded-badge: 0.4rem;\n --tab-radius: 0.4rem;\n}\n\n[data-theme=cyberpunk] {\n color-scheme: light;\n --b2: 87.8943% 0.16647 104.32;\n --b3: 81.2786% 0.15394 104.32;\n --in: 72.06% 0.191 231.6;\n --su: 64.8% 0.150 160;\n --wa: 84.71% 0.199 83.87;\n --er: 71.76% 0.221 22.18;\n --bc: 18.902% 0.0358 104.32;\n --pc: 14.844% 0.0418 6.35;\n --sc: 16.666% 0.0368 204.72;\n --ac: 14.372% 0.04352 310.43;\n --inc: 0% 0 0;\n --suc: 0% 0 0;\n --wac: 0% 0 0;\n --erc: 0% 0 0;\n --animation-btn: 0.25s;\n --animation-input: .2s;\n --btn-focus-scale: 0.95;\n --border-btn: 1px;\n --tab-border: 1px;\n font-family: ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;\n --p: 74.22% 0.209 6.35;\n --s: 83.33% 0.184 204.72;\n --a: 71.86% 0.2176 310.43;\n --n: 23.04% 0.065 269.31;\n --nc: 94.51% 0.179 104.32;\n --b1: 94.51% 0.179 104.32;\n --rounded-box: 0;\n --rounded-btn: 0;\n --rounded-badge: 0;\n --tab-radius: 0;\n}\n\n[data-theme=aqua] {\n color-scheme: dark;\n --b2: 45.3464% 0.118611 261.181672;\n --b3: 41.9333% 0.109683 261.181672;\n --bc: 89.7519% 0.025508 261.181672;\n --sc: 12.1365% 0.02175 309.782946;\n --ac: 18.6854% 0.020445 94.555431;\n --nc: 12.2124% 0.023402 243.760661;\n --inc: 90.923% 0.043042 262.880917;\n --suc: 12.541% 0.033982 149.213788;\n --wac: 13.3168% 0.031484 58.31834;\n --erc: 14.79% 0.038 27.33;\n --rounded-box: 1rem;\n --rounded-btn: 0.5rem;\n --rounded-badge: 1.9rem;\n --animation-btn: 0.25s;\n --animation-input: .2s;\n --btn-focus-scale: 0.95;\n --border-btn: 1px;\n --tab-border: 1px;\n --tab-radius: 0.5rem;\n --p: 85.6617% 0.14498 198.6458;\n --pc: 40.1249% 0.068266 197.603872;\n --s: 60.6827% 0.108752 309.782946;\n --a: 93.4269% 0.102225 94.555431;\n --n: 61.0622% 0.117009 243.760661;\n --b1: 48.7596% 0.127539 261.181672;\n --in: 54.615% 0.215208 262.880917;\n --su: 62.7052% 0.169912 149.213788;\n --wa: 66.584% 0.157422 58.31834;\n --er: 73.95% 0.19 27.33;\n}\n\n[data-theme=docutopia] {\n --p: 54.645% 0.29421 298.46034;\n --b2: 25.8897% 0.107132 328.136712;\n --b3: 23.941% 0.099069 328.136712;\n --in: 72.06% 0.191 231.6;\n --su: 64.8% 0.150 160;\n --wa: 84.71% 0.199 83.87;\n --er: 71.76% 0.221 22.18;\n --pc: 90.929% 0.058842 298.46034;\n --sc: 13.9726% 0.031813 159.602475;\n --ac: 91.4207% 0.047244 260.255903;\n --nc: 84.1911% 0.008064 74.211583;\n --inc: 0% 0 0;\n --suc: 0% 0 0;\n --wac: 0% 0 0;\n --erc: 0% 0 0;\n --rounded-box: 1rem;\n --rounded-btn: 0.5rem;\n --rounded-badge: 1.9rem;\n --animation-btn: 0.25s;\n --animation-input: .2s;\n --btn-focus-scale: 0.95;\n --border-btn: 1px;\n --tab-border: 1px;\n --tab-radius: 0.5rem;\n --s: 69.8629% 0.159065 159.602475;\n --a: 57.1034% 0.236222 260.255903;\n --n: 20.9553% 0.040319 74.211583;\n --bc: 81.3966% 0.126754 58.524936;\n --b1: 27.8384% 0.115196 328.136712;\n}\n.tw-alert {\n display: grid;\n width: 100%;\n grid-auto-flow: row;\n align-content: flex-start;\n align-items: center;\n justify-items: center;\n gap: 1rem;\n text-align: center;\n border-radius: var(--rounded-box, 1rem);\n border-width: 1px;\n --tw-border-opacity: 1;\n border-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-border-opacity)));\n padding: 1rem;\n --tw-text-opacity: 1;\n color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity)));\n --alert-bg: var(--fallback-b2,oklch(var(--b2)/1));\n --alert-bg-mix: var(--fallback-b1,oklch(var(--b1)/1));\n background-color: var(--alert-bg);\n}\n@media (min-width: 640px) {\n\n .tw-alert {\n grid-auto-flow: column;\n grid-template-columns: auto minmax(auto,1fr);\n justify-items: start;\n text-align: start;\n }\n}\n.tw-avatar {\n position: relative;\n display: inline-flex;\n}\n.tw-avatar > div {\n display: block;\n aspect-ratio: 1 / 1;\n overflow: hidden;\n}\n.tw-avatar img {\n height: 100%;\n width: 100%;\n -o-object-fit: cover;\n object-fit: cover;\n}\n.tw-avatar.tw-placeholder > div {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.tw-badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n transition-duration: 200ms;\n height: 1.25rem;\n font-size: 0.875rem;\n line-height: 1.25rem;\n width: -moz-fit-content;\n width: fit-content;\n padding-left: 0.563rem;\n padding-right: 0.563rem;\n border-radius: var(--rounded-badge, 1.9rem);\n border-width: 1px;\n --tw-border-opacity: 1;\n border-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-border-opacity)));\n --tw-bg-opacity: 1;\n background-color: var(--fallback-b1,oklch(var(--b1)/var(--tw-bg-opacity)));\n --tw-text-opacity: 1;\n color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity)));\n}\n.tw-breadcrumbs {\n max-width: 100%;\n overflow-x: auto;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n.tw-breadcrumbs > ul,\n .tw-breadcrumbs > ol {\n display: flex;\n align-items: center;\n white-space: nowrap;\n min-height: -moz-min-content;\n min-height: min-content;\n}\n.tw-breadcrumbs > ul > li, .tw-breadcrumbs > ol > li {\n display: flex;\n align-items: center;\n}\n.tw-breadcrumbs > ul > li > a, .tw-breadcrumbs > ol > li > a {\n display: flex;\n cursor: pointer;\n align-items: center;\n}\n@media (hover:hover) {\n\n .tw-breadcrumbs > ul > li > a:hover, .tw-breadcrumbs > ol > li > a:hover {\n text-decoration-line: underline;\n }\n\n .tw-checkbox-success:hover {\n --tw-border-opacity: 1;\n border-color: var(--fallback-su,oklch(var(--su)/var(--tw-border-opacity)));\n }\n\n .tw-label a:hover {\n --tw-text-opacity: 1;\n color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity)));\n }\n\n .tw-menu li > *:not(ul, .tw-menu-title, details, .tw-btn):active,\n.tw-menu li > *:not(ul, .tw-menu-title, details, .tw-btn).tw-active,\n.tw-menu li > details > summary:active {\n --tw-bg-opacity: 1;\n background-color: var(--fallback-n,oklch(var(--n)/var(--tw-bg-opacity)));\n --tw-text-opacity: 1;\n color: var(--fallback-nc,oklch(var(--nc)/var(--tw-text-opacity)));\n }\n\n .tw-tab:hover {\n --tw-text-opacity: 1;\n }\n\n .tw-table tr.tw-hover:hover,\n .tw-table tr.tw-hover:nth-child(even):hover {\n --tw-bg-opacity: 1;\n background-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-bg-opacity)));\n }\n}\n.tw-btn {\n display: inline-flex;\n height: 3rem;\n min-height: 3rem;\n flex-shrink: 0;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n flex-wrap: wrap;\n align-items: center;\n justify-content: center;\n border-radius: var(--rounded-btn, 0.5rem);\n border-color: transparent;\n border-color: oklch(var(--btn-color, var(--b2)) / var(--tw-border-opacity));\n padding-left: 1rem;\n padding-right: 1rem;\n text-align: center;\n font-size: 0.875rem;\n line-height: 1em;\n gap: 0.5rem;\n font-weight: 600;\n text-decoration-line: none;\n transition-duration: 200ms;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n border-width: var(--border-btn, 1px);\n transition-property: color, background-color, border-color, opacity, box-shadow, transform;\n --tw-text-opacity: 1;\n color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity)));\n --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n outline-color: var(--fallback-bc,oklch(var(--bc)/1));\n background-color: oklch(var(--btn-color, var(--b2)) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n --tw-border-opacity: 1;\n}\n.tw-btn-disabled,\n .tw-btn[disabled],\n .tw-btn:disabled {\n pointer-events: none;\n}\n.tw-btn-square {\n height: 3rem;\n width: 3rem;\n padding: 0px;\n}\n.tw-btn-circle {\n height: 3rem;\n width: 3rem;\n border-radius: 9999px;\n padding: 0px;\n}\n:where(.tw-btn:is(input[type=\"checkbox\"])),\n:where(.tw-btn:is(input[type=\"radio\"])) {\n width: auto;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n.tw-btn:is(input[type=\"checkbox\"]):after,\n.tw-btn:is(input[type=\"radio\"]):after {\n --tw-content: attr(aria-label);\n content: var(--tw-content);\n}\n.tw-card {\n position: relative;\n display: flex;\n flex-direction: column;\n border-radius: var(--rounded-box, 1rem);\n}\n.tw-card:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n.tw-card-body {\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n padding: var(--padding-card, 2rem);\n gap: 0.5rem;\n}\n.tw-card-body :where(p) {\n flex-grow: 1;\n}\n.tw-card-actions {\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n gap: 0.5rem;\n}\n.tw-card figure {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.tw-card.tw-image-full {\n display: grid;\n}\n.tw-card.tw-image-full:before {\n position: relative;\n content: \"\";\n z-index: 10;\n border-radius: var(--rounded-box, 1rem);\n --tw-bg-opacity: 1;\n background-color: var(--fallback-n,oklch(var(--n)/var(--tw-bg-opacity)));\n opacity: 0.75;\n}\n.tw-card.tw-image-full:before,\n .tw-card.tw-image-full > * {\n grid-column-start: 1;\n grid-row-start: 1;\n}\n.tw-card.tw-image-full > figure img {\n height: 100%;\n -o-object-fit: cover;\n object-fit: cover;\n}\n.tw-card.tw-image-full > .tw-card-body {\n position: relative;\n z-index: 20;\n --tw-text-opacity: 1;\n color: var(--fallback-nc,oklch(var(--nc)/var(--tw-text-opacity)));\n}\n.tw-checkbox {\n flex-shrink: 0;\n --chkbg: var(--fallback-bc,oklch(var(--bc)/1));\n --chkfg: var(--fallback-b1,oklch(var(--b1)/1));\n height: 1.5rem;\n width: 1.5rem;\n cursor: pointer;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n border-radius: var(--rounded-btn, 0.5rem);\n border-width: 1px;\n border-color: var(--fallback-bc,oklch(var(--bc)/var(--tw-border-opacity)));\n --tw-border-opacity: 0.2;\n}\n.tw-divider {\n display: flex;\n flex-direction: row;\n align-items: center;\n align-self: stretch;\n margin-top: 1rem;\n margin-bottom: 1rem;\n height: 1rem;\n white-space: nowrap;\n}\n.tw-divider:before,\n .tw-divider:after {\n height: 0.125rem;\n width: 100%;\n flex-grow: 1;\n --tw-content: '';\n content: var(--tw-content);\n background-color: var(--fallback-bc,oklch(var(--bc)/0.1));\n}\n.tw-dropdown {\n position: relative;\n display: inline-block;\n}\n.tw-dropdown > *:not(summary):focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n.tw-dropdown .tw-dropdown-content {\n position: absolute;\n}\n.tw-dropdown:is(:not(details)) .tw-dropdown-content {\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n visibility: hidden;\n opacity: 0;\n transform-origin: top;\n --tw-scale-x: .95;\n --tw-scale-y: .95;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n transition-duration: 200ms;\n}\n.tw-dropdown-end .tw-dropdown-content {\n inset-inline-end: 0px;\n}\n.tw-dropdown-left .tw-dropdown-content {\n bottom: auto;\n inset-inline-end: 100%;\n top: 0px;\n transform-origin: right;\n}\n.tw-dropdown-right .tw-dropdown-content {\n bottom: auto;\n inset-inline-start: 100%;\n top: 0px;\n transform-origin: left;\n}\n.tw-dropdown-bottom .tw-dropdown-content {\n bottom: auto;\n top: 100%;\n transform-origin: top;\n}\n.tw-dropdown-top .tw-dropdown-content {\n bottom: 100%;\n top: auto;\n transform-origin: bottom;\n}\n.tw-dropdown-end.tw-dropdown-right .tw-dropdown-content {\n bottom: 0px;\n top: auto;\n}\n.tw-dropdown-end.tw-dropdown-left .tw-dropdown-content {\n bottom: 0px;\n top: auto;\n}\n.tw-dropdown.tw-dropdown-open .tw-dropdown-content,\n.tw-dropdown:not(.tw-dropdown-hover):focus .tw-dropdown-content,\n.tw-dropdown:focus-within .tw-dropdown-content {\n visibility: visible;\n opacity: 1;\n}\n@media (hover: hover) {\n\n .tw-dropdown.tw-dropdown-hover:hover .tw-dropdown-content {\n visibility: visible;\n opacity: 1;\n }\n\n .tw-btn:hover {\n --tw-border-opacity: 1;\n border-color: var(--fallback-b3,oklch(var(--b3)/var(--tw-border-opacity)));\n --tw-bg-opacity: 1;\n background-color: var(--fallback-b3,oklch(var(--b3)/var(--tw-bg-opacity)));\n }\n\n @supports (color: color-mix(in oklab, black, black)) {\n\n .tw-btn:hover {\n background-color: color-mix(\n in oklab,\n oklch(var(--btn-color, var(--b2)) / var(--tw-bg-opacity, 1)) 90%,\n black\n );\n border-color: color-mix(\n in oklab,\n oklch(var(--btn-color, var(--b2)) / var(--tw-border-opacity, 1)) 90%,\n black\n );\n }\n }\n\n @supports not (color: oklch(0% 0 0)) {\n\n .tw-btn:hover {\n background-color: var(--btn-color, var(--fallback-b2));\n border-color: var(--btn-color, var(--fallback-b2));\n }\n }\n\n .tw-btn:hover {\n --tw-border-opacity: 1;\n border-color: var(--fallback-b3,oklch(var(--b3)/var(--tw-border-opacity)));\n --tw-bg-opacity: 1;\n background-color: var(--fallback-b3,oklch(var(--b3)/var(--tw-bg-opacity)));\n }\n\n @supports (color: color-mix(in oklab, black, black)) {\n\n .tw-btn:hover {\n background-color: color-mix(\n in oklab,\n oklch(var(--btn-color, var(--b2)) / var(--tw-bg-opacity, 1)) 90%,\n black\n );\n border-color: color-mix(\n in oklab,\n oklch(var(--btn-color, var(--b2)) / var(--tw-border-opacity, 1)) 90%,\n black\n );\n }\n }\n\n @supports not (color: oklch(0% 0 0)) {\n\n .tw-btn:hover {\n background-color: var(--btn-color, var(--fallback-b2));\n border-color: var(--btn-color, var(--fallback-b2));\n }\n }\n\n .tw-btn:hover {\n --tw-border-opacity: 1;\n border-color: var(--fallback-b3,oklch(var(--b3)/var(--tw-border-opacity)));\n --tw-bg-opacity: 1;\n background-color: var(--fallback-b3,oklch(var(--b3)/var(--tw-bg-opacity)));\n }\n\n @supports (color: color-mix(in oklab, black, black)) {\n\n .tw-btn:hover {\n background-color: color-mix(\n in oklab,\n oklch(var(--btn-color, var(--b2)) / var(--tw-bg-opacity, 1)) 90%,\n black\n );\n border-color: color-mix(\n in oklab,\n oklch(var(--btn-color, var(--b2)) / var(--tw-border-opacity, 1)) 90%,\n black\n );\n }\n }\n\n @supports not (color: oklch(0% 0 0)) {\n\n .tw-btn:hover {\n background-color: var(--btn-color, var(--fallback-b2));\n border-color: var(--btn-color, var(--fallback-b2));\n }\n }\n\n .tw-btn.tw-glass:hover {\n --glass-opacity: 25%;\n --glass-border-opacity: 15%;\n }\n\n .tw-btn-ghost:hover {\n border-color: transparent;\n }\n\n @supports (color: oklch(0% 0 0)) {\n\n .tw-btn-ghost:hover {\n background-color: var(--fallback-bc,oklch(var(--bc)/0.2));\n }\n }\n\n .tw-btn-ghost:hover {\n border-color: transparent;\n }\n\n @supports (color: oklch(0% 0 0)) {\n\n .tw-btn-ghost:hover {\n background-color: var(--fallback-bc,oklch(var(--bc)/0.2));\n }\n }\n\n .tw-btn-outline.tw-btn-primary:hover {\n --tw-text-opacity: 1;\n color: var(--fallback-pc,oklch(var(--pc)/var(--tw-text-opacity)));\n }\n\n @supports (color: color-mix(in oklab, black, black)) {\n\n .tw-btn-outline.tw-btn-primary:hover {\n background-color: color-mix(in oklab, var(--fallback-p,oklch(var(--p)/1)) 90%, black);\n border-color: color-mix(in oklab, var(--fallback-p,oklch(var(--p)/1)) 90%, black);\n }\n }\n\n .tw-btn-outline.tw-btn-primary:hover {\n --tw-text-opacity: 1;\n color: var(--fallback-pc,oklch(var(--pc)/var(--tw-text-opacity)));\n }\n\n @supports (color: color-mix(in oklab, black, black)) {\n\n .tw-btn-outline.tw-btn-primary:hover {\n background-color: color-mix(in oklab, var(--fallback-p,oklch(var(--p)/1)) 90%, black);\n border-color: color-mix(in oklab, var(--fallback-p,oklch(var(--p)/1)) 90%, black);\n }\n }\n\n .tw-btn-outline.tw-btn-error:hover {\n --tw-text-opacity: 1;\n color: var(--fallback-erc,oklch(var(--erc)/var(--tw-text-opacity)));\n }\n\n @supports (color: color-mix(in oklab, black, black)) {\n\n .tw-btn-outline.tw-btn-error:hover {\n background-color: color-mix(in oklab, var(--fallback-er,oklch(var(--er)/1)) 90%, black);\n border-color: color-mix(in oklab, var(--fallback-er,oklch(var(--er)/1)) 90%, black);\n }\n }\n\n .tw-btn-outline.tw-btn-error:hover {\n --tw-text-opacity: 1;\n color: var(--fallback-erc,oklch(var(--erc)/var(--tw-text-opacity)));\n }\n\n @supports (color: color-mix(in oklab, black, black)) {\n\n .tw-btn-outline.tw-btn-error:hover {\n background-color: color-mix(in oklab, var(--fallback-er,oklch(var(--er)/1)) 90%, black);\n border-color: color-mix(in oklab, var(--fallback-er,oklch(var(--er)/1)) 90%, black);\n }\n }\n\n .tw-btn-disabled:hover,\n .tw-btn[disabled]:hover,\n .tw-btn:disabled:hover {\n --tw-border-opacity: 0;\n background-color: var(--fallback-n,oklch(var(--n)/var(--tw-bg-opacity)));\n --tw-bg-opacity: 0.2;\n color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity)));\n --tw-text-opacity: 0.2;\n }\n\n @supports (color: color-mix(in oklab, black, black)) {\n\n .tw-btn:is(input[type=\"checkbox\"]:checked):hover, .tw-btn:is(input[type=\"radio\"]:checked):hover {\n background-color: color-mix(in oklab, var(--fallback-p,oklch(var(--p)/1)) 90%, black);\n border-color: color-mix(in oklab, var(--fallback-p,oklch(var(--p)/1)) 90%, black);\n }\n }\n\n .tw-dropdown.tw-dropdown-hover:hover .tw-dropdown-content {\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n }\n\n :where(.tw-menu li:not(.tw-menu-title, .tw-disabled) > *:not(ul, details, .tw-menu-title)):not(.tw-active, .tw-btn):hover, :where(.tw-menu li:not(.tw-menu-title, .tw-disabled) > details > summary:not(.tw-menu-title)):not(.tw-active, .tw-btn):hover {\n cursor: pointer;\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n\n @supports (color: oklch(0% 0 0)) {\n\n :where(.tw-menu li:not(.tw-menu-title, .tw-disabled) > *:not(ul, details, .tw-menu-title)):not(.tw-active, .tw-btn):hover, :where(.tw-menu li:not(.tw-menu-title, .tw-disabled) > details > summary:not(.tw-menu-title)):not(.tw-active, .tw-btn):hover {\n background-color: var(--fallback-bc,oklch(var(--bc)/0.1));\n }\n }\n\n :where(.tw-menu li:not(.tw-menu-title, .tw-disabled) > *:not(ul, details, .tw-menu-title)):not(.tw-active, .tw-btn):hover, :where(.tw-menu li:not(.tw-menu-title, .tw-disabled) > details > summary:not(.tw-menu-title)):not(.tw-active, .tw-btn):hover {\n cursor: pointer;\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n\n @supports (color: oklch(0% 0 0)) {\n\n :where(.tw-menu li:not(.tw-menu-title, .tw-disabled) > *:not(ul, details, .tw-menu-title)):not(.tw-active, .tw-btn):hover, :where(.tw-menu li:not(.tw-menu-title, .tw-disabled) > details > summary:not(.tw-menu-title)):not(.tw-active, .tw-btn):hover {\n background-color: var(--fallback-bc,oklch(var(--bc)/0.1));\n }\n }\n\n :where(.tw-menu li:not(.tw-menu-title, .tw-disabled) > *:not(ul, details, .tw-menu-title)):not(.tw-active, .tw-btn):hover, :where(.tw-menu li:not(.tw-menu-title, .tw-disabled) > details > summary:not(.tw-menu-title)):not(.tw-active, .tw-btn):hover {\n cursor: pointer;\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n\n @supports (color: oklch(0% 0 0)) {\n\n :where(.tw-menu li:not(.tw-menu-title, .tw-disabled) > *:not(ul, details, .tw-menu-title)):not(.tw-active, .tw-btn):hover, :where(.tw-menu li:not(.tw-menu-title, .tw-disabled) > details > summary:not(.tw-menu-title)):not(.tw-active, .tw-btn):hover {\n background-color: var(--fallback-bc,oklch(var(--bc)/0.1));\n }\n }\n\n :where(.tw-menu li:not(.tw-menu-title, .tw-disabled) > *:not(ul, details, .tw-menu-title)):not(.tw-active, .tw-btn):hover, :where(.tw-menu li:not(.tw-menu-title, .tw-disabled) > details > summary:not(.tw-menu-title)):not(.tw-active, .tw-btn):hover {\n cursor: pointer;\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n\n @supports (color: oklch(0% 0 0)) {\n\n :where(.tw-menu li:not(.tw-menu-title, .tw-disabled) > *:not(ul, details, .tw-menu-title)):not(.tw-active, .tw-btn):hover, :where(.tw-menu li:not(.tw-menu-title, .tw-disabled) > details > summary:not(.tw-menu-title)):not(.tw-active, .tw-btn):hover {\n background-color: var(--fallback-bc,oklch(var(--bc)/0.1));\n }\n }\n\n .tw-tab[disabled],\n .tw-tab[disabled]:hover {\n cursor: not-allowed;\n color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity)));\n --tw-text-opacity: 0.2;\n }\n}\n.tw-dropdown:is(details) summary::-webkit-details-marker {\n display: none;\n}\n.tw-file-input {\n height: 3rem;\n flex-shrink: 1;\n padding-inline-end: 1rem;\n font-size: 1rem;\n line-height: 2;\n line-height: 1.5rem;\n overflow: hidden;\n border-radius: var(--rounded-btn, 0.5rem);\n border-width: 1px;\n border-color: var(--fallback-bc,oklch(var(--bc)/var(--tw-border-opacity)));\n --tw-border-opacity: 0;\n --tw-bg-opacity: 1;\n background-color: var(--fallback-b1,oklch(var(--b1)/var(--tw-bg-opacity)));\n}\n.tw-file-input::file-selector-button {\n margin-inline-end: 1rem;\n display: inline-flex;\n height: 100%;\n flex-shrink: 0;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n flex-wrap: wrap;\n align-items: center;\n justify-content: center;\n padding-left: 1rem;\n padding-right: 1rem;\n text-align: center;\n font-size: 0.875rem;\n line-height: 1.25rem;\n line-height: 1em;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n transition-duration: 200ms;\n border-style: solid;\n --tw-border-opacity: 1;\n border-color: var(--fallback-n,oklch(var(--n)/var(--tw-border-opacity)));\n --tw-bg-opacity: 1;\n background-color: var(--fallback-n,oklch(var(--n)/var(--tw-bg-opacity)));\n font-weight: 600;\n text-transform: uppercase;\n --tw-text-opacity: 1;\n color: var(--fallback-nc,oklch(var(--nc)/var(--tw-text-opacity)));\n text-decoration-line: none;\n border-width: var(--border-btn, 1px);\n animation: button-pop var(--animation-btn, 0.25s) ease-out;\n}\n.tw-form-control {\n display: flex;\n flex-direction: column;\n}\n.tw-label {\n display: flex;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n align-items: center;\n justify-content: space-between;\n padding-left: 0.25rem;\n padding-right: 0.25rem;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n.tw-indicator {\n position: relative;\n display: inline-flex;\n width: -moz-max-content;\n width: max-content;\n}\n.tw-indicator :where(.tw-indicator-item) {\n z-index: 1;\n position: absolute;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n white-space: nowrap;\n}\n.tw-input {\n flex-shrink: 1;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n height: 3rem;\n padding-left: 1rem;\n padding-right: 1rem;\n font-size: 1rem;\n line-height: 2;\n line-height: 1.5rem;\n border-radius: var(--rounded-btn, 0.5rem);\n border-width: 1px;\n border-color: transparent;\n --tw-bg-opacity: 1;\n background-color: var(--fallback-b1,oklch(var(--b1)/var(--tw-bg-opacity)));\n}\n.tw-input[type=\"number\"]::-webkit-inner-spin-button,\n.tw-input-md[type=\"number\"]::-webkit-inner-spin-button {\n margin-top: -1rem;\n margin-bottom: -1rem;\n margin-inline-end: -1rem;\n}\n.tw-input-sm[type=\"number\"]::-webkit-inner-spin-button {\n margin-top: 0px;\n margin-bottom: 0px;\n margin-inline-end: -0px;\n}\n.tw-join .tw-dropdown .tw-join-item:first-child:not(:last-child),\n .tw-join *:first-child:not(:last-child) .tw-dropdown .tw-join-item {\n border-start-end-radius: inherit;\n border-end-end-radius: inherit;\n}\n.tw-mask {\n -webkit-mask-size: contain;\n mask-size: contain;\n -webkit-mask-repeat: no-repeat;\n mask-repeat: no-repeat;\n -webkit-mask-position: center;\n mask-position: center;\n}\n.tw-menu {\n display: flex;\n flex-direction: column;\n flex-wrap: wrap;\n font-size: 0.875rem;\n line-height: 1.25rem;\n padding: 0.5rem;\n}\n.tw-menu :where(li ul) {\n position: relative;\n white-space: nowrap;\n margin-inline-start: 1rem;\n padding-inline-start: 0.5rem;\n}\n.tw-menu :where(li:not(.tw-menu-title) > *:not(ul, details, .tw-menu-title, .tw-btn)), .tw-menu :where(li:not(.tw-menu-title) > details > summary:not(.tw-menu-title)) {\n display: grid;\n grid-auto-flow: column;\n align-content: flex-start;\n align-items: center;\n gap: 0.5rem;\n grid-auto-columns: minmax(auto, max-content) auto max-content;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n}\n.tw-menu li.tw-disabled {\n cursor: not-allowed;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n color: var(--fallback-bc,oklch(var(--bc)/0.3));\n}\n.tw-menu :where(li > .tw-menu-dropdown:not(.tw-menu-dropdown-show)) {\n display: none;\n}\n:where(.tw-menu li) {\n position: relative;\n display: flex;\n flex-shrink: 0;\n flex-direction: column;\n flex-wrap: wrap;\n align-items: stretch;\n}\n:where(.tw-menu li) .tw-badge {\n justify-self: end;\n}\n.tw-modal {\n pointer-events: none;\n position: fixed;\n inset: 0px;\n margin: 0px;\n display: grid;\n height: 100%;\n max-height: none;\n width: 100%;\n max-width: none;\n justify-items: center;\n padding: 0px;\n opacity: 0;\n overscroll-behavior: contain;\n z-index: 999;\n background-color: transparent;\n color: inherit;\n transition-duration: 200ms;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n transition-property: transform, opacity, visibility;\n overflow-y: hidden;\n}\n:where(.tw-modal) {\n align-items: center;\n}\n.tw-modal-box {\n max-height: calc(100vh - 5em);\n grid-column-start: 1;\n grid-row-start: 1;\n width: 91.666667%;\n max-width: 32rem;\n --tw-scale-x: .9;\n --tw-scale-y: .9;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n border-bottom-right-radius: var(--rounded-box, 1rem);\n border-bottom-left-radius: var(--rounded-box, 1rem);\n border-top-left-radius: var(--rounded-box, 1rem);\n border-top-right-radius: var(--rounded-box, 1rem);\n --tw-bg-opacity: 1;\n background-color: var(--fallback-b1,oklch(var(--b1)/var(--tw-bg-opacity)));\n padding: 1.5rem;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n transition-duration: 200ms;\n box-shadow: rgba(0, 0, 0, 0.25) 0px 25px 50px -12px;\n overflow-y: auto;\n overscroll-behavior: contain;\n}\n.tw-modal-open,\n.tw-modal:target,\n.tw-modal-toggle:checked + .tw-modal,\n.tw-modal[open] {\n pointer-events: auto;\n visibility: visible;\n opacity: 1;\n}\n:root:has(:is(.tw-modal-open, .tw-modal:target, .tw-modal-toggle:checked + .tw-modal, .tw-modal[open])) {\n overflow: hidden;\n scrollbar-gutter: stable;\n}\n.tw-navbar {\n display: flex;\n align-items: center;\n padding: var(--navbar-padding, 0.5rem);\n min-height: 4rem;\n width: 100%;\n}\n:where(.tw-navbar > *:not(script, style)) {\n display: inline-flex;\n align-items: center;\n}\n.tw-tabs {\n display: grid;\n align-items: flex-end;\n}\n.tw-tabs-lifted:has(.tw-tab-content[class^=\"rounded-\"])\n .tw-tab:first-child:not(:is(.tw-tab-active, [aria-selected=\"true\"])), .tw-tabs-lifted:has(.tw-tab-content[class*=\" rounded-\"])\n .tw-tab:first-child:not(:is(.tw-tab-active, [aria-selected=\"true\"])) {\n border-bottom-color: transparent;\n}\n.tw-tab {\n position: relative;\n grid-row-start: 1;\n display: inline-flex;\n height: 2rem;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n flex-wrap: wrap;\n align-items: center;\n justify-content: center;\n text-align: center;\n font-size: 0.875rem;\n line-height: 1.25rem;\n line-height: 2;\n --tab-padding: 1rem;\n --tw-text-opacity: 0.5;\n --tab-color: var(--fallback-bc,oklch(var(--bc)/1));\n --tab-bg: var(--fallback-b1,oklch(var(--b1)/1));\n --tab-border-color: var(--fallback-b3,oklch(var(--b3)/1));\n color: var(--tab-color);\n padding-inline-start: var(--tab-padding, 1rem);\n padding-inline-end: var(--tab-padding, 1rem);\n}\n.tw-tab:is(input[type=\"radio\"]) {\n width: auto;\n border-bottom-right-radius: 0px;\n border-bottom-left-radius: 0px;\n}\n.tw-tab:is(input[type=\"radio\"]):after {\n --tw-content: attr(aria-label);\n content: var(--tw-content);\n}\n.tw-tab:not(input):empty {\n cursor: default;\n grid-column-start: span 9999;\n}\n.tw-tab-content {\n grid-column-start: 1;\n grid-column-end: span 9999;\n grid-row-start: 2;\n margin-top: calc(var(--tab-border) * -1);\n display: none;\n border-color: transparent;\n border-width: var(--tab-border, 0);\n}\n:checked + .tw-tab-content:nth-child(2),\n :is(.tw-tab-active, [aria-selected=\"true\"]) + .tw-tab-content:nth-child(2) {\n border-start-start-radius: 0px;\n}\ninput.tw-tab:checked + .tw-tab-content,\n:is(.tw-tab-active, [aria-selected=\"true\"]) + .tw-tab-content {\n display: block;\n}\n.tw-table {\n position: relative;\n width: 100%;\n border-radius: var(--rounded-box, 1rem);\n text-align: left;\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n.tw-table :where(.tw-table-pin-rows thead tr) {\n position: sticky;\n top: 0px;\n z-index: 1;\n --tw-bg-opacity: 1;\n background-color: var(--fallback-b1,oklch(var(--b1)/var(--tw-bg-opacity)));\n}\n.tw-table :where(.tw-table-pin-rows tfoot tr) {\n position: sticky;\n bottom: 0px;\n z-index: 1;\n --tw-bg-opacity: 1;\n background-color: var(--fallback-b1,oklch(var(--b1)/var(--tw-bg-opacity)));\n}\n.tw-table :where(.tw-table-pin-cols tr th) {\n position: sticky;\n left: 0px;\n right: 0px;\n --tw-bg-opacity: 1;\n background-color: var(--fallback-b1,oklch(var(--b1)/var(--tw-bg-opacity)));\n}\n.tw-textarea {\n min-height: 3rem;\n flex-shrink: 1;\n padding-left: 1rem;\n padding-right: 1rem;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n font-size: 0.875rem;\n line-height: 1.25rem;\n line-height: 2;\n border-radius: var(--rounded-btn, 0.5rem);\n border-width: 1px;\n border-color: transparent;\n --tw-bg-opacity: 1;\n background-color: var(--fallback-b1,oklch(var(--b1)/var(--tw-bg-opacity)));\n}\n.tw-avatar-group :where(.tw-avatar) {\n overflow: hidden;\n border-radius: 9999px;\n border-width: 4px;\n --tw-border-opacity: 1;\n border-color: var(--fallback-b1,oklch(var(--b1)/var(--tw-border-opacity)));\n}\n.tw-badge-success {\n border-color: transparent;\n --tw-bg-opacity: 1;\n background-color: var(--fallback-su,oklch(var(--su)/var(--tw-bg-opacity)));\n --tw-text-opacity: 1;\n color: var(--fallback-suc,oklch(var(--suc)/var(--tw-text-opacity)));\n}\n.tw-badge-outline.tw-badge-success {\n --tw-text-opacity: 1;\n color: var(--fallback-su,oklch(var(--su)/var(--tw-text-opacity)));\n}\n.tw-btm-nav > * .tw-label {\n font-size: 1rem;\n line-height: 1.5rem;\n}\n.tw-breadcrumbs > ul > li > a:focus, .tw-breadcrumbs > ol > li > a:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n.tw-breadcrumbs > ul > li > a:focus-visible, .tw-breadcrumbs > ol > li > a:focus-visible {\n outline: 2px solid currentColor;\n outline-offset: 2px;\n}\n.tw-breadcrumbs > ul > li + *:before, .tw-breadcrumbs > ol > li + *:before {\n content: \"\";\n margin-left: 0.5rem;\n margin-right: 0.75rem;\n display: block;\n height: 0.375rem;\n width: 0.375rem;\n --tw-rotate: 45deg;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n opacity: 0.4;\n border-top: 1px solid;\n border-right: 1px solid;\n background-color: transparent;\n}\n[dir=\"rtl\"] .tw-breadcrumbs > ul > li + *:before,\n[dir=\"rtl\"] .tw-breadcrumbs > ol > li + *:before {\n --tw-rotate: -135deg;\n}\n@media (prefers-reduced-motion: no-preference) {\n\n .tw-btn {\n animation: button-pop var(--animation-btn, 0.25s) ease-out;\n }\n}\n.tw-btn:active:hover,\n .tw-btn:active:focus {\n animation: button-pop 0s ease-out;\n transform: scale(var(--btn-focus-scale, 0.97));\n}\n@supports not (color: oklch(0% 0 0)) {\n\n .tw-btn {\n background-color: var(--btn-color, var(--fallback-b2));\n border-color: var(--btn-color, var(--fallback-b2));\n }\n\n .tw-btn-primary {\n --btn-color: var(--fallback-p);\n }\n\n .tw-btn-neutral {\n --btn-color: var(--fallback-n);\n }\n\n .tw-btn-error {\n --btn-color: var(--fallback-er);\n }\n}\n@supports (color: color-mix(in oklab, black, black)) {\n\n .tw-btn-outline.tw-btn-primary.tw-btn-active {\n background-color: color-mix(in oklab, var(--fallback-p,oklch(var(--p)/1)) 90%, black);\n border-color: color-mix(in oklab, var(--fallback-p,oklch(var(--p)/1)) 90%, black);\n }\n\n .tw-btn-outline.tw-btn-error.tw-btn-active {\n background-color: color-mix(in oklab, var(--fallback-er,oklch(var(--er)/1)) 90%, black);\n border-color: color-mix(in oklab, var(--fallback-er,oklch(var(--er)/1)) 90%, black);\n }\n}\n.tw-btn:focus-visible {\n outline-style: solid;\n outline-width: 2px;\n outline-offset: 2px;\n}\n.tw-btn-primary {\n --tw-text-opacity: 1;\n color: var(--fallback-pc,oklch(var(--pc)/var(--tw-text-opacity)));\n outline-color: var(--fallback-p,oklch(var(--p)/1));\n}\n@supports (color: oklch(0% 0 0)) {\n\n .tw-btn-primary {\n --btn-color: var(--p);\n }\n\n .tw-btn-neutral {\n --btn-color: var(--n);\n }\n\n .tw-btn-error {\n --btn-color: var(--er);\n }\n}\n.tw-btn-neutral {\n --tw-text-opacity: 1;\n color: var(--fallback-nc,oklch(var(--nc)/var(--tw-text-opacity)));\n outline-color: var(--fallback-n,oklch(var(--n)/1));\n}\n.tw-btn-error {\n --tw-text-opacity: 1;\n color: var(--fallback-erc,oklch(var(--erc)/var(--tw-text-opacity)));\n outline-color: var(--fallback-er,oklch(var(--er)/1));\n}\n.tw-btn.tw-glass {\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n outline-color: currentColor;\n}\n.tw-btn.tw-glass.tw-btn-active {\n --glass-opacity: 25%;\n --glass-border-opacity: 15%;\n}\n.tw-btn-ghost {\n border-width: 1px;\n border-color: transparent;\n background-color: transparent;\n color: currentColor;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n outline-color: currentColor;\n}\n.tw-btn-ghost.tw-btn-active {\n border-color: transparent;\n background-color: var(--fallback-bc,oklch(var(--bc)/0.2));\n}\n.tw-btn-outline.tw-btn-primary {\n --tw-text-opacity: 1;\n color: var(--fallback-p,oklch(var(--p)/var(--tw-text-opacity)));\n}\n.tw-btn-outline.tw-btn-primary.tw-btn-active {\n --tw-text-opacity: 1;\n color: var(--fallback-pc,oklch(var(--pc)/var(--tw-text-opacity)));\n}\n.tw-btn-outline.tw-btn-error {\n --tw-text-opacity: 1;\n color: var(--fallback-er,oklch(var(--er)/var(--tw-text-opacity)));\n}\n.tw-btn-outline.tw-btn-error.tw-btn-active {\n --tw-text-opacity: 1;\n color: var(--fallback-erc,oklch(var(--erc)/var(--tw-text-opacity)));\n}\n.tw-btn.tw-btn-disabled,\n .tw-btn[disabled],\n .tw-btn:disabled {\n --tw-border-opacity: 0;\n background-color: var(--fallback-n,oklch(var(--n)/var(--tw-bg-opacity)));\n --tw-bg-opacity: 0.2;\n color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity)));\n --tw-text-opacity: 0.2;\n}\n.tw-btn:is(input[type=\"checkbox\"]:checked),\n.tw-btn:is(input[type=\"radio\"]:checked) {\n --tw-border-opacity: 1;\n border-color: var(--fallback-p,oklch(var(--p)/var(--tw-border-opacity)));\n --tw-bg-opacity: 1;\n background-color: var(--fallback-p,oklch(var(--p)/var(--tw-bg-opacity)));\n --tw-text-opacity: 1;\n color: var(--fallback-pc,oklch(var(--pc)/var(--tw-text-opacity)));\n}\n.tw-btn:is(input[type=\"checkbox\"]:checked):focus-visible, .tw-btn:is(input[type=\"radio\"]:checked):focus-visible {\n outline-color: var(--fallback-p,oklch(var(--p)/1));\n}\n@keyframes button-pop {\n\n 0% {\n transform: scale(var(--btn-focus-scale, 0.98));\n }\n\n 40% {\n transform: scale(1.02);\n }\n\n 100% {\n transform: scale(1);\n }\n}\n.tw-card :where(figure:first-child) {\n overflow: hidden;\n border-start-start-radius: inherit;\n border-start-end-radius: inherit;\n border-end-start-radius: unset;\n border-end-end-radius: unset;\n}\n.tw-card :where(figure:last-child) {\n overflow: hidden;\n border-start-start-radius: unset;\n border-start-end-radius: unset;\n border-end-start-radius: inherit;\n border-end-end-radius: inherit;\n}\n.tw-card:focus-visible {\n outline: 2px solid currentColor;\n outline-offset: 2px;\n}\n.tw-card.tw-bordered {\n border-width: 1px;\n --tw-border-opacity: 1;\n border-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-border-opacity)));\n}\n.tw-card.tw-compact .tw-card-body {\n padding: 1rem;\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n.tw-card-title {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n font-size: 1.25rem;\n line-height: 1.75rem;\n font-weight: 600;\n}\n.tw-card.tw-image-full :where(figure) {\n overflow: hidden;\n border-radius: inherit;\n}\n.tw-checkbox:focus {\n box-shadow: none;\n}\n.tw-checkbox:focus-visible {\n outline-style: solid;\n outline-width: 2px;\n outline-offset: 2px;\n outline-color: var(--fallback-bc,oklch(var(--bc)/1));\n}\n.tw-checkbox:disabled {\n border-width: 0px;\n cursor: not-allowed;\n border-color: transparent;\n --tw-bg-opacity: 1;\n background-color: var(--fallback-bc,oklch(var(--bc)/var(--tw-bg-opacity)));\n opacity: 0.2;\n}\n.tw-checkbox:checked,\n .tw-checkbox[aria-checked=\"true\"] {\n background-repeat: no-repeat;\n animation: checkmark var(--animation-input, 0.2s) ease-out;\n background-color: var(--chkbg);\n background-image: linear-gradient(-45deg, transparent 65%, var(--chkbg) 65.99%),\n linear-gradient(45deg, transparent 75%, var(--chkbg) 75.99%),\n linear-gradient(-45deg, var(--chkbg) 40%, transparent 40.99%),\n linear-gradient(\n 45deg,\n var(--chkbg) 30%,\n var(--chkfg) 30.99%,\n var(--chkfg) 40%,\n transparent 40.99%\n ),\n linear-gradient(-45deg, var(--chkfg) 50%, var(--chkbg) 50.99%);\n}\n.tw-checkbox:indeterminate {\n --tw-bg-opacity: 1;\n background-color: var(--fallback-bc,oklch(var(--bc)/var(--tw-bg-opacity)));\n background-repeat: no-repeat;\n animation: checkmark var(--animation-input, 0.2s) ease-out;\n background-image: linear-gradient(90deg, transparent 80%, var(--chkbg) 80%),\n linear-gradient(-90deg, transparent 80%, var(--chkbg) 80%),\n linear-gradient(0deg, var(--chkbg) 43%, var(--chkfg) 43%, var(--chkfg) 57%, var(--chkbg) 57%);\n}\n.tw-checkbox-success {\n --chkbg: var(--fallback-su,oklch(var(--su)/1));\n --chkfg: var(--fallback-suc,oklch(var(--suc)/1));\n --tw-border-opacity: 1;\n border-color: var(--fallback-su,oklch(var(--su)/var(--tw-border-opacity)));\n}\n.tw-checkbox-success:focus-visible {\n outline-color: var(--fallback-su,oklch(var(--su)/1));\n}\n.tw-checkbox-success:checked,\n .tw-checkbox-success[aria-checked=\"true\"] {\n --tw-border-opacity: 1;\n border-color: var(--fallback-su,oklch(var(--su)/var(--tw-border-opacity)));\n --tw-bg-opacity: 1;\n background-color: var(--fallback-su,oklch(var(--su)/var(--tw-bg-opacity)));\n --tw-text-opacity: 1;\n color: var(--fallback-suc,oklch(var(--suc)/var(--tw-text-opacity)));\n}\n@keyframes checkmark {\n\n 0% {\n background-position-y: 5px;\n }\n\n 50% {\n background-position-y: -2px;\n }\n\n 100% {\n background-position-y: 0;\n }\n}\n.tw-divider:not(:empty) {\n gap: 1rem;\n}\n.tw-dropdown.tw-dropdown-open .tw-dropdown-content,\n.tw-dropdown:focus .tw-dropdown-content,\n.tw-dropdown:focus-within .tw-dropdown-content {\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.tw-file-input:focus {\n outline-style: solid;\n outline-width: 2px;\n outline-offset: 2px;\n outline-color: var(--fallback-bc,oklch(var(--bc)/0.2));\n}\n.tw-file-input-disabled,\n .tw-file-input[disabled] {\n cursor: not-allowed;\n --tw-border-opacity: 1;\n border-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-border-opacity)));\n --tw-bg-opacity: 1;\n background-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-bg-opacity)));\n --tw-text-opacity: 0.2;\n}\n.tw-file-input-disabled::-moz-placeholder, .tw-file-input[disabled]::-moz-placeholder {\n color: var(--fallback-bc,oklch(var(--bc)/var(--tw-placeholder-opacity)));\n --tw-placeholder-opacity: 0.2;\n}\n.tw-file-input-disabled::placeholder,\n .tw-file-input[disabled]::placeholder {\n color: var(--fallback-bc,oklch(var(--bc)/var(--tw-placeholder-opacity)));\n --tw-placeholder-opacity: 0.2;\n}\n.tw-file-input-disabled::file-selector-button, .tw-file-input[disabled]::file-selector-button {\n --tw-border-opacity: 0;\n background-color: var(--fallback-n,oklch(var(--n)/var(--tw-bg-opacity)));\n --tw-bg-opacity: 0.2;\n color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity)));\n --tw-text-opacity: 0.2;\n}\n.tw-label-text {\n font-size: 0.875rem;\n line-height: 1.25rem;\n --tw-text-opacity: 1;\n color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity)));\n}\n.tw-input input {\n --tw-bg-opacity: 1;\n background-color: var(--fallback-p,oklch(var(--p)/var(--tw-bg-opacity)));\n background-color: transparent;\n}\n.tw-input input:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n.tw-input[list]::-webkit-calendar-picker-indicator {\n line-height: 1em;\n}\n.tw-input-bordered {\n border-color: var(--fallback-bc,oklch(var(--bc)/0.2));\n}\n.tw-input:focus,\n .tw-input:focus-within {\n box-shadow: none;\n border-color: var(--fallback-bc,oklch(var(--bc)/0.2));\n outline-style: solid;\n outline-width: 2px;\n outline-offset: 2px;\n outline-color: var(--fallback-bc,oklch(var(--bc)/0.2));\n}\n.tw-input:has(> input[disabled]),\n .tw-input-disabled,\n .tw-input:disabled,\n .tw-input[disabled] {\n cursor: not-allowed;\n --tw-border-opacity: 1;\n border-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-border-opacity)));\n --tw-bg-opacity: 1;\n background-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-bg-opacity)));\n color: var(--fallback-bc,oklch(var(--bc)/0.4));\n}\n.tw-input:has(> input[disabled])::-moz-placeholder, .tw-input-disabled::-moz-placeholder, .tw-input:disabled::-moz-placeholder, .tw-input[disabled]::-moz-placeholder {\n color: var(--fallback-bc,oklch(var(--bc)/var(--tw-placeholder-opacity)));\n --tw-placeholder-opacity: 0.2;\n}\n.tw-input:has(> input[disabled])::placeholder,\n .tw-input-disabled::placeholder,\n .tw-input:disabled::placeholder,\n .tw-input[disabled]::placeholder {\n color: var(--fallback-bc,oklch(var(--bc)/var(--tw-placeholder-opacity)));\n --tw-placeholder-opacity: 0.2;\n}\n.tw-input:has(> input[disabled]) > input[disabled] {\n cursor: not-allowed;\n}\n.tw-input::-webkit-date-and-time-value {\n text-align: inherit;\n}\n.tw-join > :where(*:not(:first-child)):is(.tw-btn) {\n margin-inline-start: calc(var(--border-btn) * -1);\n}\n.tw-loading {\n pointer-events: none;\n display: inline-block;\n aspect-ratio: 1 / 1;\n width: 1.5rem;\n background-color: currentColor;\n -webkit-mask-size: 100%;\n mask-size: 100%;\n -webkit-mask-repeat: no-repeat;\n mask-repeat: no-repeat;\n -webkit-mask-position: center;\n mask-position: center;\n -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E\");\n mask-image: url(\"data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E\");\n}\n.tw-loading-spinner {\n -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E\");\n mask-image: url(\"data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E\");\n}\n.tw-loading-sm {\n width: 1.25rem;\n}\n.tw-loading-md {\n width: 1.5rem;\n}\n.tw-mask-squircle {\n -webkit-mask-image: url(\"data:image/svg+xml,%3csvg width='200' height='200' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M100 0C20 0 0 20 0 100s20 100 100 100 100-20 100-100S180 0 100 0Z'/%3e%3c/svg%3e\");\n mask-image: url(\"data:image/svg+xml,%3csvg width='200' height='200' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M100 0C20 0 0 20 0 100s20 100 100 100 100-20 100-100S180 0 100 0Z'/%3e%3c/svg%3e\");\n}\n.tw-mask-decagon {\n -webkit-mask-image: url(\"data:image/svg+xml,%3csvg width='192' height='200' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m96 0 58.779 19.098 36.327 50v61.804l-36.327 50L96 200l-58.779-19.098-36.327-50V69.098l36.327-50z' fill-rule='evenodd'/%3e%3c/svg%3e\");\n mask-image: url(\"data:image/svg+xml,%3csvg width='192' height='200' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m96 0 58.779 19.098 36.327 50v61.804l-36.327 50L96 200l-58.779-19.098-36.327-50V69.098l36.327-50z' fill-rule='evenodd'/%3e%3c/svg%3e\");\n}\n.tw-mask-hexagon-2 {\n -webkit-mask-image: url(\"data:image/svg+xml,%3csvg width='200' height='182' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M64.786 181.4c-9.196 0-20.063-6.687-25.079-14.21L3.762 105.33c-5.016-8.36-5.016-20.9 0-29.259l35.945-61.86C44.723 5.851 55.59 0 64.786 0h71.055c9.196 0 20.063 6.688 25.079 14.211l35.945 61.86c4.18 8.36 4.18 20.899 0 29.258l-35.945 61.86c-4.18 8.36-15.883 14.211-25.079 14.211H64.786Z' fill='black' fill-rule='nonzero'/%3e%3c/svg%3e\");\n mask-image: url(\"data:image/svg+xml,%3csvg width='200' height='182' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M64.786 181.4c-9.196 0-20.063-6.687-25.079-14.21L3.762 105.33c-5.016-8.36-5.016-20.9 0-29.259l35.945-61.86C44.723 5.851 55.59 0 64.786 0h71.055c9.196 0 20.063 6.688 25.079 14.211l35.945 61.86c4.18 8.36 4.18 20.899 0 29.258l-35.945 61.86c-4.18 8.36-15.883 14.211-25.079 14.211H64.786Z' fill='black' fill-rule='nonzero'/%3e%3c/svg%3e\");\n}\n.tw-mask-circle {\n -webkit-mask-image: url(\"data:image/svg+xml,%3csvg width='200' height='200' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle fill='black' cx='100' cy='100' r='100' fill-rule='evenodd'/%3e%3c/svg%3e\");\n mask-image: url(\"data:image/svg+xml,%3csvg width='200' height='200' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle fill='black' cx='100' cy='100' r='100' fill-rule='evenodd'/%3e%3c/svg%3e\");\n}\n:where(.tw-menu li:empty) {\n --tw-bg-opacity: 1;\n background-color: var(--fallback-bc,oklch(var(--bc)/var(--tw-bg-opacity)));\n opacity: 0.1;\n margin: 0.5rem 1rem;\n height: 1px;\n}\n.tw-menu :where(li ul):before {\n position: absolute;\n bottom: 0.75rem;\n inset-inline-start: 0px;\n top: 0.75rem;\n width: 1px;\n --tw-bg-opacity: 1;\n background-color: var(--fallback-bc,oklch(var(--bc)/var(--tw-bg-opacity)));\n opacity: 0.1;\n content: \"\";\n}\n.tw-menu :where(li:not(.tw-menu-title) > *:not(ul, details, .tw-menu-title, .tw-btn)),\n.tw-menu :where(li:not(.tw-menu-title) > details > summary:not(.tw-menu-title)) {\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n border-radius: var(--rounded-btn, 0.5rem);\n padding-left: 1rem;\n padding-right: 1rem;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n text-align: start;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n transition-duration: 200ms;\n text-wrap: balance;\n}\n:where(.tw-menu li:not(.tw-menu-title, .tw-disabled) > *:not(ul, details, .tw-menu-title)):not(summary, .tw-active, .tw-btn).tw-focus, :where(.tw-menu li:not(.tw-menu-title, .tw-disabled) > *:not(ul, details, .tw-menu-title)):not(summary, .tw-active, .tw-btn):focus, :where(.tw-menu li:not(.tw-menu-title, .tw-disabled) > *:not(ul, details, .tw-menu-title)):is(summary):not(.tw-active, .tw-btn):focus-visible, :where(.tw-menu li:not(.tw-menu-title, .tw-disabled) > details > summary:not(.tw-menu-title)):not(summary, .tw-active, .tw-btn).tw-focus, :where(.tw-menu li:not(.tw-menu-title, .tw-disabled) > details > summary:not(.tw-menu-title)):not(summary, .tw-active, .tw-btn):focus, :where(.tw-menu li:not(.tw-menu-title, .tw-disabled) > details > summary:not(.tw-menu-title)):is(summary):not(.tw-active, .tw-btn):focus-visible {\n cursor: pointer;\n background-color: var(--fallback-bc,oklch(var(--bc)/0.1));\n --tw-text-opacity: 1;\n color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity)));\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n.tw-menu li > *:not(ul, .tw-menu-title, details, .tw-btn):active,\n.tw-menu li > *:not(ul, .tw-menu-title, details, .tw-btn).tw-active,\n.tw-menu li > details > summary:active {\n --tw-bg-opacity: 1;\n background-color: var(--fallback-n,oklch(var(--n)/var(--tw-bg-opacity)));\n --tw-text-opacity: 1;\n color: var(--fallback-nc,oklch(var(--nc)/var(--tw-text-opacity)));\n}\n.tw-menu :where(li > details > summary)::-webkit-details-marker {\n display: none;\n}\n.tw-menu :where(li > details > summary):after,\n.tw-menu :where(li > .tw-menu-dropdown-toggle):after {\n justify-self: end;\n display: block;\n margin-top: -0.5rem;\n height: 0.5rem;\n width: 0.5rem;\n transform: rotate(45deg);\n transition-property: transform, margin-top;\n transition-duration: 0.3s;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n content: \"\";\n transform-origin: 75% 75%;\n box-shadow: 2px 2px;\n pointer-events: none;\n}\n.tw-menu :where(li > details[open] > summary):after,\n.tw-menu :where(li > .tw-menu-dropdown-toggle.tw-menu-dropdown-show):after {\n transform: rotate(225deg);\n margin-top: 0;\n}\n.tw-mockup-browser .tw-mockup-browser-toolbar .tw-input {\n position: relative;\n margin-left: auto;\n margin-right: auto;\n display: block;\n height: 1.75rem;\n width: 24rem;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n --tw-bg-opacity: 1;\n background-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-bg-opacity)));\n padding-left: 2rem;\n direction: ltr;\n}\n.tw-mockup-browser .tw-mockup-browser-toolbar .tw-input:before {\n content: \"\";\n position: absolute;\n left: 0.5rem;\n top: 50%;\n aspect-ratio: 1 / 1;\n height: 0.75rem;\n --tw-translate-y: -50%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n border-radius: 9999px;\n border-width: 2px;\n border-color: currentColor;\n opacity: 0.6;\n}\n.tw-mockup-browser .tw-mockup-browser-toolbar .tw-input:after {\n content: \"\";\n position: absolute;\n left: 1.25rem;\n top: 50%;\n height: 0.5rem;\n --tw-translate-y: 25%;\n --tw-rotate: -45deg;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n border-radius: 9999px;\n border-width: 1px;\n border-color: currentColor;\n opacity: 0.6;\n}\n.tw-modal:not(dialog:not(.tw-modal-open)),\n .tw-modal::backdrop {\n background-color: #0006;\n animation: modal-pop 0.2s ease-out;\n}\n.tw-modal-backdrop {\n z-index: -1;\n grid-column-start: 1;\n grid-row-start: 1;\n display: grid;\n align-self: stretch;\n justify-self: stretch;\n color: transparent;\n}\n.tw-modal-open .tw-modal-box,\n.tw-modal-toggle:checked + .tw-modal .tw-modal-box,\n.tw-modal:target .tw-modal-box,\n.tw-modal[open] .tw-modal-box {\n --tw-translate-y: 0px;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n@keyframes modal-pop {\n\n 0% {\n opacity: 0;\n }\n}\n@keyframes progress-loading {\n\n 50% {\n background-position-x: -115%;\n }\n}\n@keyframes radiomark {\n\n 0% {\n box-shadow: 0 0 0 12px var(--fallback-b1,oklch(var(--b1)/1)) inset,\n 0 0 0 12px var(--fallback-b1,oklch(var(--b1)/1)) inset;\n }\n\n 50% {\n box-shadow: 0 0 0 3px var(--fallback-b1,oklch(var(--b1)/1)) inset,\n 0 0 0 3px var(--fallback-b1,oklch(var(--b1)/1)) inset;\n }\n\n 100% {\n box-shadow: 0 0 0 4px var(--fallback-b1,oklch(var(--b1)/1)) inset,\n 0 0 0 4px var(--fallback-b1,oklch(var(--b1)/1)) inset;\n }\n}\n@keyframes rating-pop {\n\n 0% {\n transform: translateY(-0.125em);\n }\n\n 40% {\n transform: translateY(-0.125em);\n }\n\n 100% {\n transform: translateY(0);\n }\n}\n@keyframes skeleton {\n\n from {\n background-position: 150%;\n }\n\n to {\n background-position: -50%;\n }\n}\n.tw-tabs-lifted > .tw-tab:focus-visible {\n border-end-end-radius: 0;\n border-end-start-radius: 0;\n}\n.tw-tab:is(.tw-tab-active, [aria-selected=\"true\"]):not(.tw-tab-disabled):not([disabled]), .tw-tab:is(input:checked) {\n border-color: var(--fallback-bc,oklch(var(--bc)/var(--tw-border-opacity)));\n --tw-border-opacity: 1;\n --tw-text-opacity: 1;\n}\n.tw-tab:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n.tw-tab:focus-visible {\n outline: 2px solid currentColor;\n outline-offset: -5px;\n}\n.tw-tab-disabled,\n .tw-tab[disabled] {\n cursor: not-allowed;\n color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity)));\n --tw-text-opacity: 0.2;\n}\n.tw-tabs-bordered > .tw-tab {\n border-color: var(--fallback-bc,oklch(var(--bc)/var(--tw-border-opacity)));\n --tw-border-opacity: 0.2;\n border-style: solid;\n border-bottom-width: calc(var(--tab-border, 1px) + 1px);\n}\n.tw-tabs-lifted > .tw-tab {\n border: var(--tab-border, 1px) solid transparent;\n border-width: 0 0 var(--tab-border, 1px) 0;\n border-start-start-radius: var(--tab-radius, 0.5rem);\n border-start-end-radius: var(--tab-radius, 0.5rem);\n border-bottom-color: var(--tab-border-color);\n padding-inline-start: var(--tab-padding, 1rem);\n padding-inline-end: var(--tab-padding, 1rem);\n padding-top: var(--tab-border, 1px);\n}\n.tw-tabs-lifted > .tw-tab:is(.tw-tab-active, [aria-selected=\"true\"]):not(.tw-tab-disabled):not([disabled]), .tw-tabs-lifted > .tw-tab:is(input:checked) {\n background-color: var(--tab-bg);\n border-width: var(--tab-border, 1px) var(--tab-border, 1px) 0 var(--tab-border, 1px);\n border-inline-start-color: var(--tab-border-color);\n border-inline-end-color: var(--tab-border-color);\n border-top-color: var(--tab-border-color);\n padding-inline-start: calc(var(--tab-padding, 1rem) - var(--tab-border, 1px));\n padding-inline-end: calc(var(--tab-padding, 1rem) - var(--tab-border, 1px));\n padding-bottom: var(--tab-border, 1px);\n padding-top: 0;\n}\n.tw-tabs-lifted > .tw-tab:is(.tw-tab-active, [aria-selected=\"true\"]):not(.tw-tab-disabled):not([disabled]):before, .tw-tabs-lifted > .tw-tab:is(input:checked):before {\n z-index: 1;\n content: \"\";\n display: block;\n position: absolute;\n width: calc(100% + var(--tab-radius, 0.5rem) * 2);\n height: var(--tab-radius, 0.5rem);\n bottom: 0;\n background-size: var(--tab-radius, 0.5rem);\n background-position: top left,\n top right;\n background-repeat: no-repeat;\n --tab-grad: calc(69% - var(--tab-border, 1px));\n --radius-start: radial-gradient(\n circle at top left,\n transparent var(--tab-grad),\n var(--tab-border-color) calc(var(--tab-grad) + 0.25px),\n var(--tab-border-color) calc(var(--tab-grad) + var(--tab-border, 1px)),\n var(--tab-bg) calc(var(--tab-grad) + var(--tab-border, 1px) + 0.25px)\n );\n --radius-end: radial-gradient(\n circle at top right,\n transparent var(--tab-grad),\n var(--tab-border-color) calc(var(--tab-grad) + 0.25px),\n var(--tab-border-color) calc(var(--tab-grad) + var(--tab-border, 1px)),\n var(--tab-bg) calc(var(--tab-grad) + var(--tab-border, 1px) + 0.25px)\n );\n background-image: var(--radius-start), var(--radius-end);\n}\n.tw-tabs-lifted > .tw-tab:is(.tw-tab-active, [aria-selected=\"true\"]):not(.tw-tab-disabled):not([disabled]):first-child:before, .tw-tabs-lifted > .tw-tab:is(input:checked):first-child:before {\n background-image: var(--radius-end);\n background-position: top right;\n}\n[dir=\"rtl\"] .tw-tabs-lifted > .tw-tab:is(.tw-tab-active, [aria-selected=\"true\"]):not(.tw-tab-disabled):not([disabled]):first-child:before, [dir=\"rtl\"] .tw-tabs-lifted > .tw-tab:is(input:checked):first-child:before {\n background-image: var(--radius-start);\n background-position: top left;\n}\n.tw-tabs-lifted > .tw-tab:is(.tw-tab-active, [aria-selected=\"true\"]):not(.tw-tab-disabled):not([disabled]):last-child:before, .tw-tabs-lifted > .tw-tab:is(input:checked):last-child:before {\n background-image: var(--radius-start);\n background-position: top left;\n}\n[dir=\"rtl\"] .tw-tabs-lifted > .tw-tab:is(.tw-tab-active, [aria-selected=\"true\"]):not(.tw-tab-disabled):not([disabled]):last-child:before, [dir=\"rtl\"] .tw-tabs-lifted > .tw-tab:is(input:checked):last-child:before {\n background-image: var(--radius-end);\n background-position: top right;\n}\n.tw-tabs-lifted\n > :is(.tw-tab-active, [aria-selected=\"true\"]):not(.tw-tab-disabled):not([disabled])\n + .tw-tabs-lifted\n :is(.tw-tab-active, [aria-selected=\"true\"]):not(.tw-tab-disabled):not([disabled]):before, .tw-tabs-lifted > .tw-tab:is(input:checked) + .tw-tabs-lifted .tw-tab:is(input:checked):before {\n background-image: var(--radius-end);\n background-position: top right;\n}\n.tw-tabs-boxed .tw-tab {\n border-radius: var(--rounded-btn, 0.5rem);\n}\n.tw-table:where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n text-align: right;\n}\n.tw-table :where(th, td) {\n padding-left: 1rem;\n padding-right: 1rem;\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n vertical-align: middle;\n}\n.tw-table tr.tw-active,\n .tw-table tr.tw-active:nth-child(even),\n .tw-table-zebra tbody tr:nth-child(even) {\n --tw-bg-opacity: 1;\n background-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-bg-opacity)));\n}\n.tw-table :where(thead tr, tbody tr:not(:last-child), tbody tr:first-child:last-child) {\n border-bottom-width: 1px;\n --tw-border-opacity: 1;\n border-bottom-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-border-opacity)));\n}\n.tw-table :where(thead, tfoot) {\n white-space: nowrap;\n font-size: 0.75rem;\n line-height: 1rem;\n font-weight: 700;\n color: var(--fallback-bc,oklch(var(--bc)/0.6));\n}\n.tw-table :where(tfoot) {\n border-top-width: 1px;\n --tw-border-opacity: 1;\n border-top-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-border-opacity)));\n}\n.tw-textarea-bordered {\n border-color: var(--fallback-bc,oklch(var(--bc)/0.2));\n}\n.tw-textarea:focus {\n box-shadow: none;\n border-color: var(--fallback-bc,oklch(var(--bc)/0.2));\n outline-style: solid;\n outline-width: 2px;\n outline-offset: 2px;\n outline-color: var(--fallback-bc,oklch(var(--bc)/0.2));\n}\n.tw-textarea-disabled,\n .tw-textarea:disabled,\n .tw-textarea[disabled] {\n cursor: not-allowed;\n --tw-border-opacity: 1;\n border-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-border-opacity)));\n --tw-bg-opacity: 1;\n background-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-bg-opacity)));\n color: var(--fallback-bc,oklch(var(--bc)/0.4));\n}\n.tw-textarea-disabled::-moz-placeholder, .tw-textarea:disabled::-moz-placeholder, .tw-textarea[disabled]::-moz-placeholder {\n color: var(--fallback-bc,oklch(var(--bc)/var(--tw-placeholder-opacity)));\n --tw-placeholder-opacity: 0.2;\n}\n.tw-textarea-disabled::placeholder,\n .tw-textarea:disabled::placeholder,\n .tw-textarea[disabled]::placeholder {\n color: var(--fallback-bc,oklch(var(--bc)/var(--tw-placeholder-opacity)));\n --tw-placeholder-opacity: 0.2;\n}\n@keyframes toast-pop {\n\n 0% {\n transform: scale(0.9);\n opacity: 0;\n }\n\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n.tw-btn-xs {\n height: 1.5rem;\n min-height: 1.5rem;\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n font-size: 0.75rem;\n}\n.tw-btn-sm {\n height: 2rem;\n min-height: 2rem;\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n font-size: 0.875rem;\n}\n.tw-btn-lg {\n height: 4rem;\n min-height: 4rem;\n padding-left: 1.5rem;\n padding-right: 1.5rem;\n font-size: 1.125rem;\n}\n.tw-btn-block {\n width: 100%;\n}\n.tw-btn-square:where(.tw-btn-xs) {\n height: 1.5rem;\n width: 1.5rem;\n padding: 0px;\n}\n.tw-btn-square:where(.tw-btn-sm) {\n height: 2rem;\n width: 2rem;\n padding: 0px;\n}\n.tw-btn-square:where(.tw-btn-md) {\n height: 3rem;\n width: 3rem;\n padding: 0px;\n}\n.tw-btn-square:where(.tw-btn-lg) {\n height: 4rem;\n width: 4rem;\n padding: 0px;\n}\n.tw-btn-circle:where(.tw-btn-xs) {\n height: 1.5rem;\n width: 1.5rem;\n border-radius: 9999px;\n padding: 0px;\n}\n.tw-btn-circle:where(.tw-btn-sm) {\n height: 2rem;\n width: 2rem;\n border-radius: 9999px;\n padding: 0px;\n}\n.tw-btn-circle:where(.tw-btn-md) {\n height: 3rem;\n width: 3rem;\n border-radius: 9999px;\n padding: 0px;\n}\n.tw-btn-circle:where(.tw-btn-lg) {\n height: 4rem;\n width: 4rem;\n border-radius: 9999px;\n padding: 0px;\n}\n[type=\"checkbox\"].tw-checkbox-xs {\n height: 1rem;\n width: 1rem;\n}\n[type=\"checkbox\"].tw-checkbox-sm {\n height: 1.25rem;\n width: 1.25rem;\n}\n.tw-indicator :where(.tw-indicator-item) {\n bottom: auto;\n inset-inline-end: 0px;\n inset-inline-start: auto;\n top: 0px;\n --tw-translate-y: -50%;\n --tw-translate-x: 50%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.tw-indicator :where(.tw-indicator-item):where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n --tw-translate-x: -50%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.tw-indicator :where(.tw-indicator-item.tw-indicator-start) {\n inset-inline-end: auto;\n inset-inline-start: 0px;\n --tw-translate-x: -50%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.tw-indicator :where(.tw-indicator-item.tw-indicator-start):where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n --tw-translate-x: 50%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.tw-indicator :where(.tw-indicator-item.tw-indicator-center) {\n inset-inline-end: 50%;\n inset-inline-start: 50%;\n --tw-translate-x: -50%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.tw-indicator :where(.tw-indicator-item.tw-indicator-center):where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n --tw-translate-x: 50%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.tw-indicator :where(.tw-indicator-item.tw-indicator-end) {\n inset-inline-end: 0px;\n inset-inline-start: auto;\n --tw-translate-x: 50%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.tw-indicator :where(.tw-indicator-item.tw-indicator-end):where([dir=\"rtl\"], [dir=\"rtl\"] *) {\n --tw-translate-x: -50%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.tw-indicator :where(.tw-indicator-item.tw-indicator-bottom) {\n bottom: 0px;\n top: auto;\n --tw-translate-y: 50%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.tw-indicator :where(.tw-indicator-item.tw-indicator-middle) {\n bottom: 50%;\n top: 50%;\n --tw-translate-y: -50%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.tw-indicator :where(.tw-indicator-item.tw-indicator-top) {\n bottom: auto;\n top: 0px;\n --tw-translate-y: -50%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.tw-input-md {\n height: 3rem;\n padding-left: 1rem;\n padding-right: 1rem;\n font-size: 0.875rem;\n line-height: 1.25rem;\n line-height: 2;\n}\n.tw-input-sm {\n height: 2rem;\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n font-size: 0.875rem;\n line-height: 2rem;\n}\n.tw-tabs-md :where(.tw-tab) {\n height: 2rem;\n font-size: 0.875rem;\n line-height: 1.25rem;\n line-height: 2;\n --tab-padding: 1rem;\n}\n.tw-tabs-lg :where(.tw-tab) {\n height: 3rem;\n font-size: 1.125rem;\n line-height: 1.75rem;\n line-height: 2;\n --tab-padding: 1.25rem;\n}\n.tw-tabs-sm :where(.tw-tab) {\n height: 1.5rem;\n font-size: 0.875rem;\n line-height: .75rem;\n --tab-padding: 0.75rem;\n}\n.tw-tabs-xs :where(.tw-tab) {\n height: 1.25rem;\n font-size: 0.75rem;\n line-height: .75rem;\n --tab-padding: 0.5rem;\n}\n.tw-tooltip {\n position: relative;\n display: inline-block;\n --tooltip-offset: calc(100% + 1px + var(--tooltip-tail, 0px));\n}\n.tw-tooltip:before {\n position: absolute;\n pointer-events: none;\n z-index: 1;\n content: var(--tw-content);\n --tw-content: attr(data-tip);\n}\n.tw-tooltip:before, .tw-tooltip-top:before {\n transform: translateX(-50%);\n top: auto;\n left: 50%;\n right: auto;\n bottom: var(--tooltip-offset);\n}\n.tw-tooltip-left:before {\n transform: translateY(-50%);\n top: 50%;\n left: auto;\n right: var(--tooltip-offset);\n bottom: auto;\n}\n.tw-avatar.tw-online:before {\n content: \"\";\n position: absolute;\n z-index: 10;\n display: block;\n border-radius: 9999px;\n --tw-bg-opacity: 1;\n background-color: var(--fallback-su,oklch(var(--su)/var(--tw-bg-opacity)));\n outline-style: solid;\n outline-width: 2px;\n outline-color: var(--fallback-b1,oklch(var(--b1)/1));\n width: 15%;\n height: 15%;\n top: 7%;\n right: 7%;\n}\n.tw-avatar.tw-offline:before {\n content: \"\";\n position: absolute;\n z-index: 10;\n display: block;\n border-radius: 9999px;\n --tw-bg-opacity: 1;\n background-color: var(--fallback-b3,oklch(var(--b3)/var(--tw-bg-opacity)));\n outline-style: solid;\n outline-width: 2px;\n outline-color: var(--fallback-b1,oklch(var(--b1)/1));\n width: 15%;\n height: 15%;\n top: 7%;\n right: 7%;\n}\n.tw-card-compact .tw-card-body {\n padding: 1rem;\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n.tw-card-compact .tw-card-title {\n margin-bottom: 0.25rem;\n}\n.tw-card-normal .tw-card-body {\n padding: var(--padding-card, 2rem);\n font-size: 1rem;\n line-height: 1.5rem;\n}\n.tw-card-normal .tw-card-title {\n margin-bottom: 0.75rem;\n}\n.tw-join.tw-join-vertical > :where(*:not(:first-child)):is(.tw-btn) {\n margin-top: calc(var(--border-btn) * -1);\n}\n.tw-join.tw-join-horizontal > :where(*:not(:first-child)):is(.tw-btn) {\n margin-inline-start: calc(var(--border-btn) * -1);\n margin-top: 0px;\n}\n.tw-modal-top :where(.tw-modal-box) {\n width: 100%;\n max-width: none;\n --tw-translate-y: -2.5rem;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n border-bottom-right-radius: var(--rounded-box, 1rem);\n border-bottom-left-radius: var(--rounded-box, 1rem);\n border-top-left-radius: 0px;\n border-top-right-radius: 0px;\n}\n.tw-modal-middle :where(.tw-modal-box) {\n width: 91.666667%;\n max-width: 32rem;\n --tw-translate-y: 0px;\n --tw-scale-x: .9;\n --tw-scale-y: .9;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n border-top-left-radius: var(--rounded-box, 1rem);\n border-top-right-radius: var(--rounded-box, 1rem);\n border-bottom-right-radius: var(--rounded-box, 1rem);\n border-bottom-left-radius: var(--rounded-box, 1rem);\n}\n.tw-modal-bottom :where(.tw-modal-box) {\n width: 100%;\n max-width: none;\n --tw-translate-y: 2.5rem;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n border-top-left-radius: var(--rounded-box, 1rem);\n border-top-right-radius: var(--rounded-box, 1rem);\n border-bottom-right-radius: 0px;\n border-bottom-left-radius: 0px;\n}\n.tw-tooltip {\n position: relative;\n display: inline-block;\n text-align: center;\n --tooltip-tail: 0.1875rem;\n --tooltip-color: var(--fallback-n,oklch(var(--n)/1));\n --tooltip-text-color: var(--fallback-nc,oklch(var(--nc)/1));\n --tooltip-tail-offset: calc(100% + 0.0625rem - var(--tooltip-tail));\n}\n.tw-tooltip:before,\n.tw-tooltip:after {\n opacity: 0;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;\n transition-delay: 100ms;\n transition-duration: 200ms;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n}\n.tw-tooltip:after {\n position: absolute;\n content: \"\";\n border-style: solid;\n border-width: var(--tooltip-tail, 0);\n width: 0;\n height: 0;\n display: block;\n}\n.tw-tooltip:before {\n max-width: 20rem;\n white-space: normal;\n border-radius: 0.25rem;\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n font-size: 0.875rem;\n line-height: 1.25rem;\n background-color: var(--tooltip-color);\n color: var(--tooltip-text-color);\n width: -moz-max-content;\n width: max-content;\n}\n.tw-tooltip.tw-tooltip-open:before {\n opacity: 1;\n transition-delay: 75ms;\n}\n.tw-tooltip.tw-tooltip-open:after {\n opacity: 1;\n transition-delay: 75ms;\n}\n.tw-tooltip:hover:before {\n opacity: 1;\n transition-delay: 75ms;\n}\n.tw-tooltip:hover:after {\n opacity: 1;\n transition-delay: 75ms;\n}\n.tw-tooltip:has(:focus-visible):after,\n.tw-tooltip:has(:focus-visible):before {\n opacity: 1;\n transition-delay: 75ms;\n}\n.tw-tooltip:not([data-tip]):hover:before,\n.tw-tooltip:not([data-tip]):hover:after {\n visibility: hidden;\n opacity: 0;\n}\n.tw-tooltip:after, .tw-tooltip-top:after {\n transform: translateX(-50%);\n border-color: var(--tooltip-color) transparent transparent transparent;\n top: auto;\n left: 50%;\n right: auto;\n bottom: var(--tooltip-tail-offset);\n}\n.tw-tooltip-left:after {\n transform: translateY(-50%);\n border-color: transparent transparent transparent var(--tooltip-color);\n top: 50%;\n left: auto;\n right: calc(var(--tooltip-tail-offset) + 0.0625rem);\n bottom: auto;\n}\n.tw-pointer-events-none {\n pointer-events: none;\n}\n.tw-pointer-events-auto {\n pointer-events: auto;\n}\n.tw-fixed {\n position: fixed;\n}\n.tw-absolute {\n position: absolute;\n}\n.tw-relative {\n position: relative;\n}\n.tw-inset-y-0 {\n top: 0px;\n bottom: 0px;\n}\n.\\!tw-bottom-24 {\n bottom: 6rem !important;\n}\n.\\!tw-left-0 {\n left: 0px !important;\n}\n.\\!tw-left-auto {\n left: auto !important;\n}\n.-tw-left-6 {\n left: -1.5rem;\n}\n.tw--right-2 {\n right: -0.5rem;\n}\n.tw--top-2 {\n top: -0.5rem;\n}\n.tw-bottom-0 {\n bottom: 0px;\n}\n.tw-bottom-4 {\n bottom: 1rem;\n}\n.tw-left-0 {\n left: 0px;\n}\n.tw-left-1\\/2 {\n left: 50%;\n}\n.tw-left-4 {\n left: 1rem;\n}\n.tw-right-0 {\n right: 0px;\n}\n.tw-right-1 {\n right: 0.25rem;\n}\n.tw-right-2 {\n right: 0.5rem;\n}\n.tw-right-4 {\n right: 1rem;\n}\n.tw-right-5 {\n right: 1.25rem;\n}\n.tw-top-0 {\n top: 0px;\n}\n.tw-top-1 {\n top: 0.25rem;\n}\n.tw-top-14 {\n top: 3.5rem;\n}\n.tw-top-2 {\n top: 0.5rem;\n}\n.tw-top-4 {\n top: 1rem;\n}\n.\\!tw-z-\\[10000\\] {\n z-index: 10000 !important;\n}\n.tw-z-1000 {\n z-index: 1000;\n}\n.tw-z-3000 {\n z-index: 3000;\n}\n.tw-z-500 {\n z-index: 500;\n}\n.tw-z-\\[10000\\] {\n z-index: 10000;\n}\n.tw-z-\\[10035\\] {\n z-index: 10035;\n}\n.tw-z-\\[2000\\] {\n z-index: 2000;\n}\n.tw-z-\\[4000\\] {\n z-index: 4000;\n}\n.tw-z-\\[9998\\] {\n z-index: 9998;\n}\n.tw-z-\\[999\\] {\n z-index: 999;\n}\n.tw-col-span-1 {\n grid-column: span 1 / span 1;\n}\n.tw-float-right {\n float: right;\n}\n.tw-float-left {\n float: left;\n}\n.tw-m-1 {\n margin: 0.25rem;\n}\n.tw-m-4 {\n margin: 1rem;\n}\n.tw-m-auto {\n margin: auto;\n}\n.\\!tw-my-0 {\n margin-top: 0px !important;\n margin-bottom: 0px !important;\n}\n.\\!tw-my-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n}\n.-tw-mx-4 {\n margin-left: -1rem;\n margin-right: -1rem;\n}\n.tw-mx-2 {\n margin-left: 0.5rem;\n margin-right: 0.5rem;\n}\n.tw-mx-4 {\n margin-left: 1rem;\n margin-right: 1rem;\n}\n.tw-mx-6 {\n margin-left: 1.5rem;\n margin-right: 1.5rem;\n}\n.tw-my-1 {\n margin-top: 0.25rem;\n margin-bottom: 0.25rem;\n}\n.tw-my-10 {\n margin-top: 2.5rem;\n margin-bottom: 2.5rem;\n}\n.tw-my-2 {\n margin-top: 0.5rem;\n margin-bottom: 0.5rem;\n}\n.-tw-mb-1 {\n margin-bottom: -0.25rem;\n}\n.-tw-mb-2 {\n margin-bottom: -0.5rem;\n}\n.-tw-mb-4 {\n margin-bottom: -1rem;\n}\n.-tw-mr-4 {\n margin-right: -1rem;\n}\n.-tw-mr-6 {\n margin-right: -1.5rem;\n}\n.-tw-mt-2 {\n margin-top: -0.5rem;\n}\n.tw-mb-0 {\n margin-bottom: 0px;\n}\n.tw-mb-1 {\n margin-bottom: 0.25rem;\n}\n.tw-mb-10 {\n margin-bottom: 2.5rem;\n}\n.tw-mb-2 {\n margin-bottom: 0.5rem;\n}\n.tw-mb-3 {\n margin-bottom: 0.75rem;\n}\n.tw-mb-4 {\n margin-bottom: 1rem;\n}\n.tw-mb-6 {\n margin-bottom: 1.5rem;\n}\n.tw-ml-1 {\n margin-left: 0.25rem;\n}\n.tw-ml-14 {\n margin-left: 3.5rem;\n}\n.tw-ml-2 {\n margin-left: 0.5rem;\n}\n.tw-ml-48 {\n margin-left: 12rem;\n}\n.tw-mr-1 {\n margin-right: 0.25rem;\n}\n.tw-mr-2 {\n margin-right: 0.5rem;\n}\n.tw-mr-4 {\n margin-right: 1rem;\n}\n.tw-mr-5 {\n margin-right: 1.25rem;\n}\n.tw-mt-0 {\n margin-top: 0px;\n}\n.tw-mt-1 {\n margin-top: 0.25rem;\n}\n.tw-mt-1\\.5 {\n margin-top: 0.375rem;\n}\n.tw-mt-12 {\n margin-top: 3rem;\n}\n.tw-mt-16 {\n margin-top: 4rem;\n}\n.tw-mt-2 {\n margin-top: 0.5rem;\n}\n.tw-mt-3 {\n margin-top: 0.75rem;\n}\n.tw-mt-4 {\n margin-top: 1rem;\n}\n.tw-mt-5 {\n margin-top: 1.25rem;\n}\n.tw-mt-6 {\n margin-top: 1.5rem;\n}\n.tw-mt-8 {\n margin-top: 2rem;\n}\n.tw-block {\n display: block;\n}\n.tw-inline-block {\n display: inline-block;\n}\n.tw-inline {\n display: inline;\n}\n.tw-flex {\n display: flex;\n}\n.tw-inline-flex {\n display: inline-flex;\n}\n.tw-table {\n display: table;\n}\n.tw-grid {\n display: grid;\n}\n.tw-hidden {\n display: none;\n}\n.tw-h-10 {\n height: 2.5rem;\n}\n.tw-h-12 {\n height: 3rem;\n}\n.tw-h-20 {\n height: 5rem;\n}\n.tw-h-24 {\n height: 6rem;\n}\n.tw-h-28 {\n height: 7rem;\n}\n.tw-h-3 {\n height: 0.75rem;\n}\n.tw-h-3\\/4 {\n height: 75%;\n}\n.tw-h-32 {\n height: 8rem;\n}\n.tw-h-4 {\n height: 1rem;\n}\n.tw-h-40 {\n height: 10rem;\n}\n.tw-h-48 {\n height: 12rem;\n}\n.tw-h-5 {\n height: 1.25rem;\n}\n.tw-h-6 {\n height: 1.5rem;\n}\n.tw-h-8 {\n height: 2rem;\n}\n.tw-h-\\[100dvh\\] {\n height: 100dvh;\n}\n.tw-h-\\[2em\\] {\n height: 2em;\n}\n.tw-h-\\[calc\\(100\\%-1rem\\)\\] {\n height: calc(100% - 1rem);\n}\n.tw-h-\\[calc\\(100dvh-268px\\)\\] {\n height: calc(100dvh - 268px);\n}\n.tw-h-\\[calc\\(100dvh-280px\\)\\] {\n height: calc(100dvh - 280px);\n}\n.tw-h-\\[calc\\(100dvh-332px\\)\\] {\n height: calc(100dvh - 332px);\n}\n.tw-h-\\[calc\\(100dvh-64px\\)\\] {\n height: calc(100dvh - 64px);\n}\n.tw-h-\\[calc\\(50\\%-0\\.75em\\)\\] {\n height: calc(50% - 0.75em);\n}\n.tw-h-\\[calc\\(50\\%-1\\.5em\\)\\] {\n height: calc(50% - 1.5em);\n}\n.tw-h-fit {\n height: -moz-fit-content;\n height: fit-content;\n}\n.tw-h-full {\n height: 100%;\n}\n.tw-max-h-64 {\n max-height: 16rem;\n}\n.tw-max-h-\\[calc\\(100dvh-152px\\)\\] {\n max-height: calc(100dvh - 152px);\n}\n.tw-max-h-\\[calc\\(100dvh-96px\\)\\] {\n max-height: calc(100dvh - 96px);\n}\n.tw-min-h-0 {\n min-height: 0px;\n}\n.tw-min-h-56 {\n min-height: 224px;\n}\n.tw-min-h-80 {\n min-height: 320px;\n}\n.tw-min-h-\\[21px\\] {\n min-height: 21px;\n}\n.tw-min-h-\\[5em\\] {\n min-height: 5em;\n}\n.tw-w-1 {\n width: 0.25rem;\n}\n.tw-w-10 {\n width: 2.5rem;\n}\n.tw-w-12 {\n width: 3rem;\n}\n.tw-w-14 {\n width: 3.5rem;\n}\n.tw-w-20 {\n width: 5rem;\n}\n.tw-w-28 {\n width: 7rem;\n}\n.tw-w-4 {\n width: 1rem;\n}\n.tw-w-48 {\n width: 12rem;\n}\n.tw-w-5 {\n width: 1.25rem;\n}\n.tw-w-52 {\n width: 13rem;\n}\n.tw-w-6 {\n width: 1.5rem;\n}\n.tw-w-8 {\n width: 2rem;\n}\n.tw-w-80 {\n width: 20rem;\n}\n.tw-w-96 {\n width: 24rem;\n}\n.tw-w-\\[calc\\(100\\%-32px\\)\\] {\n width: calc(100% - 32px);\n}\n.tw-w-\\[calc\\(100vw-2rem\\)\\] {\n width: calc(100vw - 2rem);\n}\n.tw-w-fit {\n width: -moz-fit-content;\n width: fit-content;\n}\n.tw-w-full {\n width: 100%;\n}\n.tw-min-w-0 {\n min-width: 0px;\n}\n.tw-min-w-80 {\n min-width: 320px;\n}\n.tw-min-w-\\[10\\.4em\\] {\n min-width: 10.4em;\n}\n.tw-min-w-\\[10em\\] {\n min-width: 10em;\n}\n.tw-min-w-\\[8rem\\] {\n min-width: 8rem;\n}\n.tw-min-w-fit {\n min-width: -moz-fit-content;\n min-width: fit-content;\n}\n.tw-max-w-3xl {\n max-width: 48rem;\n}\n.tw-max-w-\\[17rem\\] {\n max-width: 17rem;\n}\n.tw-max-w-\\[22rem\\] {\n max-width: 22rem;\n}\n.tw-max-w-\\[calc\\(100\\%-60px\\)\\] {\n max-width: calc(100% - 60px);\n}\n.tw-max-w-full {\n max-width: 100%;\n}\n.tw-max-w-xl {\n max-width: 36rem;\n}\n.tw-max-w-xs {\n max-width: 20rem;\n}\n.tw-flex-1 {\n flex: 1 1 0%;\n}\n.tw-flex-none {\n flex: none;\n}\n.tw-flex-grow {\n flex-grow: 1;\n}\n.tw-grow {\n flex-grow: 1;\n}\n.tw-basis-1\\/5 {\n flex-basis: 20%;\n}\n.tw-basis-2\\/5 {\n flex-basis: 40%;\n}\n.-tw-translate-x-full {\n --tw-translate-x: -100%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.-tw-translate-y-1\\/3 {\n --tw-translate-y: -33.333333%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.tw--translate-x-1\\/2 {\n --tw-translate-x: -50%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.tw-translate-x-0 {\n --tw-translate-x: 0px;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.tw-translate-x-1\\/3 {\n --tw-translate-x: 33.333333%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.tw-rotate-180 {\n --tw-rotate: 180deg;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.tw-transform {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n@keyframes tw-pulseGrow {\n\n 0%, 100% {\n transform: scale(1.00);\n }\n\n 80% {\n transform: scale(1.00);\n }\n\n 90% {\n transform: scale(0.95);\n }\n}\n.tw-animate-pulseGrow {\n animation: tw-pulseGrow 2s ease-in-out infinite;\n}\n.tw-cursor-pointer {\n cursor: pointer;\n}\n.tw-cursor-text {\n cursor: text;\n}\n.tw-resize-none {\n resize: none;\n}\n.tw-list-inside {\n list-style-position: inside;\n}\n.tw-list-decimal {\n list-style-type: decimal;\n}\n.tw-list-disc {\n list-style-type: disc;\n}\n.tw-list-none {\n list-style-type: none;\n}\n.tw-columns-1 {\n -moz-columns: 1;\n columns: 1;\n}\n.tw-break-inside-avoid {\n -moz-column-break-inside: avoid;\n break-inside: avoid;\n}\n.tw-grid-flow-col {\n grid-auto-flow: column;\n}\n.tw-grid-cols-1 {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n}\n.tw-grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n.tw-grid-cols-3 {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n}\n.tw-grid-cols-6 {\n grid-template-columns: repeat(6, minmax(0, 1fr));\n}\n.tw-flex-row {\n flex-direction: row;\n}\n.tw-flex-col {\n flex-direction: column;\n}\n.tw-flex-wrap {\n flex-wrap: wrap;\n}\n.tw-place-content-center {\n place-content: center;\n}\n.tw-place-content-end {\n place-content: end;\n}\n.tw-place-items-end {\n place-items: end;\n}\n.tw-place-items-center {\n place-items: center;\n}\n.tw-items-center {\n align-items: center;\n}\n.tw-justify-normal {\n justify-content: normal;\n}\n.tw-justify-end {\n justify-content: flex-end;\n}\n.tw-justify-center {\n justify-content: center;\n}\n.tw-justify-between {\n justify-content: space-between;\n}\n.tw-gap-2 {\n gap: 0.5rem;\n}\n.tw-gap-6 {\n gap: 1.5rem;\n}\n.tw-space-x-2 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(0.5rem * var(--tw-space-x-reverse));\n margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));\n}\n.tw-space-x-3 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(0.75rem * var(--tw-space-x-reverse));\n margin-left: calc(0.75rem * calc(1 - var(--tw-space-x-reverse)));\n}\n.tw-space-y-4 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(1rem * var(--tw-space-y-reverse));\n}\n.tw-space-y-6 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(1.5rem * var(--tw-space-y-reverse));\n}\n.tw-place-self-end {\n place-self: end;\n}\n.tw-place-self-center {\n place-self: center;\n}\n.tw-self-center {\n align-self: center;\n}\n.tw-overflow-auto {\n overflow: auto;\n}\n.tw-overflow-hidden {\n overflow: hidden;\n}\n.tw-overflow-scroll {\n overflow: scroll;\n}\n.tw-overflow-x-auto {\n overflow-x: auto;\n}\n.tw-overflow-y-auto {\n overflow-y: auto;\n}\n.tw-overflow-x-hidden {\n overflow-x: hidden;\n}\n.tw-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.tw-text-ellipsis {\n text-overflow: ellipsis;\n}\n.tw-whitespace-nowrap {\n white-space: nowrap;\n}\n.\\!tw-rounded-none {\n border-radius: 0px !important;\n}\n.tw-rounded {\n border-radius: 0.25rem;\n}\n.tw-rounded-2xl {\n border-radius: 1rem;\n}\n.tw-rounded-box {\n border-radius: var(--rounded-box, 1rem);\n}\n.tw-rounded-full {\n border-radius: 9999px;\n}\n.tw-rounded-lg {\n border-radius: 0.5rem;\n}\n.tw-rounded-md {\n border-radius: 0.375rem;\n}\n.tw-rounded-none {\n border-radius: 0px;\n}\n.tw-rounded-xl {\n border-radius: 0.75rem;\n}\n.tw-rounded-br-md {\n border-bottom-right-radius: 0.375rem;\n}\n.tw-rounded-tl-none {\n border-top-left-radius: 0px;\n}\n.tw-rounded-tr-md {\n border-top-right-radius: 0.375rem;\n}\n.tw-border {\n border-width: 1px;\n}\n.tw-border-0 {\n border-width: 0px;\n}\n.tw-border-4 {\n border-width: 4px;\n}\n.tw-border-\\[1px\\] {\n border-width: 1px;\n}\n.tw-border-t-0 {\n border-top-width: 0px;\n}\n.tw-border-none {\n border-style: none;\n}\n.tw-border-\\[var\\(--fallback-bc\\,oklch\\(var\\(--bc\\)\\/0\\.2\\)\\)\\] {\n border-color: var(--fallback-bc,oklch(var(--bc)/0.2));\n}\n.tw-border-base-200 {\n --tw-border-opacity: 1;\n border-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-border-opacity, 1)));\n}\n.tw-border-base-300 {\n --tw-border-opacity: 1;\n border-color: var(--fallback-b3,oklch(var(--b3)/var(--tw-border-opacity, 1)));\n}\n.tw-border-current {\n border-color: currentColor;\n}\n.tw-border-gray-300 {\n --tw-border-opacity: 1;\n border-color: rgb(209 213 219 / var(--tw-border-opacity, 1));\n}\n.tw-bg-\\[\\#369acc\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(54 154 204 / var(--tw-bg-opacity, 1));\n}\n.tw-bg-\\[\\#95cf92\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(149 207 146 / var(--tw-bg-opacity, 1));\n}\n.tw-bg-\\[\\#9656a2\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(150 86 162 / var(--tw-bg-opacity, 1));\n}\n.tw-bg-\\[\\#A9DEF9\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(169 222 249 / var(--tw-bg-opacity, 1));\n}\n.tw-bg-\\[\\#D0F4DE\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(208 244 222 / var(--tw-bg-opacity, 1));\n}\n.tw-bg-\\[\\#E4C1F9\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(228 193 249 / var(--tw-bg-opacity, 1));\n}\n.tw-bg-\\[\\#FCF6BD\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(252 246 189 / var(--tw-bg-opacity, 1));\n}\n.tw-bg-\\[\\#FF99C8\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(255 153 200 / var(--tw-bg-opacity, 1));\n}\n.tw-bg-\\[\\#de324c\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(222 50 76 / var(--tw-bg-opacity, 1));\n}\n.tw-bg-\\[\\#f4895f\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(244 137 95 / var(--tw-bg-opacity, 1));\n}\n.tw-bg-\\[\\#f8e16f\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(248 225 111 / var(--tw-bg-opacity, 1));\n}\n.tw-bg-\\[\\#fff0d6\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(255 240 214 / var(--tw-bg-opacity, 1));\n}\n.tw-bg-base-100 {\n --tw-bg-opacity: 1;\n background-color: var(--fallback-b1,oklch(var(--b1)/var(--tw-bg-opacity, 1)));\n}\n.tw-bg-base-200 {\n --tw-bg-opacity: 1;\n background-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-bg-opacity, 1)));\n}\n.tw-bg-base-300 {\n --tw-bg-opacity: 1;\n background-color: var(--fallback-b3,oklch(var(--b3)/var(--tw-bg-opacity, 1)));\n}\n.tw-bg-gray-200 {\n --tw-bg-opacity: 1;\n background-color: rgb(229 231 235 / var(--tw-bg-opacity, 1));\n}\n.tw-bg-neutral-content {\n --tw-bg-opacity: 1;\n background-color: var(--fallback-nc,oklch(var(--nc)/var(--tw-bg-opacity, 1)));\n}\n.tw-bg-primary {\n --tw-bg-opacity: 1;\n background-color: var(--fallback-p,oklch(var(--p)/var(--tw-bg-opacity, 1)));\n}\n.tw-bg-slate-200 {\n --tw-bg-opacity: 1;\n background-color: rgb(226 232 240 / var(--tw-bg-opacity, 1));\n}\n.tw-bg-transparent {\n background-color: transparent;\n}\n.tw-bg-white {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\n}\n.tw-fill-current {\n fill: currentColor;\n}\n.tw-stroke-\\[2\\.5\\] {\n stroke-width: 2.5;\n}\n.tw-stroke-\\[3\\] {\n stroke-width: 3;\n}\n.tw-object-cover {\n -o-object-fit: cover;\n object-fit: cover;\n}\n.\\!tw-p-0 {\n padding: 0px !important;\n}\n.\\!tw-p-4 {\n padding: 1rem !important;\n}\n.\\!tw-p-9 {\n padding: 2.25rem !important;\n}\n.tw-p-0 {\n padding: 0px;\n}\n.tw-p-1 {\n padding: 0.25rem;\n}\n.tw-p-2 {\n padding: 0.5rem;\n}\n.tw-p-3 {\n padding: 0.75rem;\n}\n.tw-p-4 {\n padding: 1rem;\n}\n.tw-p-6 {\n padding: 1.5rem;\n}\n.tw-p-\\[1px\\] {\n padding: 1px;\n}\n.tw-px-2 {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n}\n.tw-px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n.tw-px-6 {\n padding-left: 1.5rem;\n padding-right: 1.5rem;\n}\n.tw-px-8 {\n padding-left: 2rem;\n padding-right: 2rem;\n}\n.tw-py-0\\.5 {\n padding-top: 0.125rem;\n padding-bottom: 0.125rem;\n}\n.tw-py-1 {\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n}\n.tw-py-2 {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n.\\!tw-pe-2 {\n padding-inline-end: 0.5rem !important;\n}\n.\\!tw-ps-2 {\n padding-inline-start: 0.5rem !important;\n}\n.tw-pb-0 {\n padding-bottom: 0px;\n}\n.tw-pb-1 {\n padding-bottom: 0.25rem;\n}\n.tw-pb-2 {\n padding-bottom: 0.5rem;\n}\n.tw-pb-4 {\n padding-bottom: 1rem;\n}\n.tw-pb-6 {\n padding-bottom: 1.5rem;\n}\n.tw-pl-2 {\n padding-left: 0.5rem;\n}\n.tw-pr-1 {\n padding-right: 0.25rem;\n}\n.tw-pr-12 {\n padding-right: 3rem;\n}\n.tw-pr-4 {\n padding-right: 1rem;\n}\n.tw-pt-0 {\n padding-top: 0px;\n}\n.tw-pt-1 {\n padding-top: 0.25rem;\n}\n.tw-pt-2 {\n padding-top: 0.5rem;\n}\n.tw-pt-4 {\n padding-top: 1rem;\n}\n.tw-pt-6 {\n padding-top: 1.5rem;\n}\n.tw-text-center {\n text-align: center;\n}\n.tw-text-right {\n text-align: right;\n}\n.tw-align-middle {\n vertical-align: middle;\n}\n.tw-text-2xl {\n font-size: 1.5rem;\n line-height: 2rem;\n}\n.tw-text-3xl {\n font-size: 1.875rem;\n line-height: 2.25rem;\n}\n.tw-text-6xl {\n font-size: 3.75rem;\n line-height: 1;\n}\n.tw-text-base {\n font-size: 1rem;\n line-height: 1.5rem;\n}\n.tw-text-lg {\n font-size: 1.125rem;\n line-height: 1.75rem;\n}\n.tw-text-map {\n font-size: 13px;\n}\n.tw-text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n.tw-text-xl {\n font-size: 1.25rem;\n line-height: 1.75rem;\n}\n.tw-text-xs {\n font-size: 0.75rem;\n line-height: 1rem;\n}\n.tw-font-bold {\n font-weight: 700;\n}\n.tw-font-medium {\n font-weight: 500;\n}\n.tw-font-normal {\n font-weight: 400;\n}\n.tw-font-semibold {\n font-weight: 600;\n}\n.tw-normal-case {\n text-transform: none;\n}\n.tw-italic {\n font-style: italic;\n}\n.tw-leading-3 {\n line-height: .75rem;\n}\n.tw-leading-5 {\n line-height: 1.25rem;\n}\n.tw-leading-map {\n line-height: 1.4em;\n}\n.\\!tw-text-base-content {\n --tw-text-opacity: 1 !important;\n color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity, 1))) !important;\n}\n.\\!tw-text-error {\n --tw-text-opacity: 1 !important;\n color: var(--fallback-er,oklch(var(--er)/var(--tw-text-opacity, 1))) !important;\n}\n.tw-text-base-content {\n --tw-text-opacity: 1;\n color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity, 1)));\n}\n.tw-text-current {\n color: currentColor;\n}\n.tw-text-error {\n --tw-text-opacity: 1;\n color: var(--fallback-er,oklch(var(--er)/var(--tw-text-opacity, 1)));\n}\n.tw-text-gray-400 {\n --tw-text-opacity: 1;\n color: rgb(156 163 175 / var(--tw-text-opacity, 1));\n}\n.tw-text-gray-500 {\n --tw-text-opacity: 1;\n color: rgb(107 114 128 / var(--tw-text-opacity, 1));\n}\n.tw-text-gray-600 {\n --tw-text-opacity: 1;\n color: rgb(75 85 99 / var(--tw-text-opacity, 1));\n}\n.tw-text-green-500 {\n --tw-text-opacity: 1;\n color: rgb(34 197 94 / var(--tw-text-opacity, 1));\n}\n.tw-text-primary {\n --tw-text-opacity: 1;\n color: var(--fallback-p,oklch(var(--p)/var(--tw-text-opacity, 1)));\n}\n.tw-text-white {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\n}\n.tw-text-zinc-500 {\n --tw-text-opacity: 1;\n color: rgb(113 113 122 / var(--tw-text-opacity, 1));\n}\n.tw-underline {\n text-decoration-line: underline;\n}\n.tw-opacity-0 {\n opacity: 0;\n}\n.tw-opacity-100 {\n opacity: 1;\n}\n.tw-opacity-50 {\n opacity: 0.5;\n}\n.tw-shadow {\n --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.tw-shadow-lg {\n --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.tw-shadow-md {\n --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.tw-shadow-sm {\n --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.tw-shadow-xl {\n --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.tw-drop-shadow-md {\n --tw-drop-shadow: drop-shadow(0 4px 3px rgb(0 0 0 / 0.07)) drop-shadow(0 2px 2px rgb(0 0 0 / 0.06));\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n.tw-backdrop-brightness-75 {\n --tw-backdrop-brightness: brightness(.75);\n -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);\n backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);\n}\n.tw-transition {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.tw-transition-all {\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.tw-transition-none {\n transition-property: none;\n}\n.tw-transition-opacity {\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.tw-duration-200 {\n transition-duration: 200ms;\n}\n.tw-duration-300 {\n transition-duration: 300ms;\n}\n.tw-duration-500 {\n transition-duration: 500ms;\n}\n.tw-ease-in {\n transition-timing-function: cubic-bezier(0.4, 0, 1, 1);\n}\n.\\[--tab-border-color\\:var\\(--fallback-bc\\2c oklch\\(var\\(--bc\\)\\/0\\.2\\)\\)\\] {\n --tab-border-color: var(--fallback-bc,oklch(var(--bc)/0.2));\n}\n\n.tw-modal {\n z-index: 1200 !important;\n}\n\n.tw-menu li a {\n border-radius: 10px;\n}\n\n.tw-modal {\n z-index: 1200 !important;\n max-height: 100dvh;\n}\n\n.tw-modal-box {\n max-height: calc(100dvh - 2em);\n}\n\n.tw-tab-content .container {\n height: 100%;\n}\n\n@media (min-width: 640px) {\n\n .sm\\:tw-table-sm :not(thead):not(tfoot) tr {\n font-size: 0.875rem;\n line-height: 1.25rem;\n }\n\n .sm\\:tw-table-sm :where(th, td) {\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n }\n}\n\n@media (min-width: 768px) {\n\n .md\\:tw-table-md :not(thead):not(tfoot) tr {\n font-size: 0.875rem;\n line-height: 1.25rem;\n }\n\n .md\\:tw-table-md :where(th, td) {\n padding-left: 1rem;\n padding-right: 1rem;\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n }\n}\n\n.hover\\:tw-cursor-pointer:hover {\n cursor: pointer;\n}\n\n.hover\\:tw-bg-base-200:hover {\n --tw-bg-opacity: 1;\n background-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-bg-opacity, 1)));\n}\n\n.hover\\:tw-bg-slate-300:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(203 213 225 / var(--tw-bg-opacity, 1));\n}\n\n.hover\\:tw-bg-transparent:hover {\n background-color: transparent;\n}\n\n.hover\\:tw-font-bold:hover {\n font-weight: 700;\n}\n\n.hover\\:tw-text-primary:hover {\n --tw-text-opacity: 1;\n color: var(--fallback-p,oklch(var(--p)/var(--tw-text-opacity, 1)));\n}\n\n.hover\\:tw-underline:hover {\n text-decoration-line: underline;\n}\n\n.focus\\:tw-border-indigo-500:focus {\n --tw-border-opacity: 1;\n border-color: rgb(99 102 241 / var(--tw-border-opacity, 1));\n}\n\n.focus\\:tw-outline-none:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n\n.focus\\:tw-ring-indigo-500:focus {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(99 102 241 / var(--tw-ring-opacity, 1));\n}\n\n@media (min-width: 640px) {\n\n .sm\\:\\!tw-left-auto {\n left: auto !important;\n }\n\n .sm\\:tw-grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n\n .sm\\:tw-text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n }\n}\n\n@media (min-width: 768px) {\n\n .md\\:tw-mb-0 {\n margin-bottom: 0px;\n }\n\n .md\\:tw-flex {\n display: flex;\n }\n\n .md\\:tw-hidden {\n display: none;\n }\n\n .md\\:tw-w-1\\/2 {\n width: 50%;\n }\n\n .md\\:tw-w-\\[calc\\(50\\%-32px\\)\\] {\n width: calc(50% - 32px);\n }\n\n .md\\:tw-columns-2 {\n -moz-columns: 2;\n columns: 2;\n }\n\n .md\\:tw-grid-cols-1 {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n }\n\n .md\\:tw-grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n\n .md\\:tw-space-x-4 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(1rem * var(--tw-space-x-reverse));\n margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse)));\n }\n\n .md\\:tw-text-2xl {\n font-size: 1.5rem;\n line-height: 2rem;\n }\n}\n\n@media (min-width: 1024px) {\n\n .lg\\:tw-columns-3 {\n -moz-columns: 3;\n columns: 3;\n }\n\n .lg\\:tw-grid-cols-1 {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n }\n}\n\n@media (min-width: 1280px) {\n\n .xl\\:tw-max-w-6xl {\n max-width: 72rem;\n }\n\n .xl\\:tw-grid-cols-1 {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n }\n\n .xl\\:tw-text-3xl {\n font-size: 1.875rem;\n line-height: 2.25rem;\n }\n}\n\n@media (min-width: 1536px) {\n\n .\\32xl\\:tw-columns-4 {\n -moz-columns: 4;\n columns: 4;\n }\n\n .\\32xl\\:tw-grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n}\n\n@media (prefers-color-scheme: dark) {\n\n .dark\\:tw-bg-zinc-800 {\n --tw-bg-opacity: 1;\n background-color: rgb(39 39 42 / var(--tw-bg-opacity, 1));\n }\n}";
79
+ var css_248z$7 = "/*! tailwindcss v4.0.14 | MIT License | https://tailwindcss.com */\n@layer theme, base, components, utilities;\n@layer theme {\n :root, :host {\n --tw-color-red-500: oklch(0.637 0.237 25.331);\n --tw-color-green-500: oklch(0.723 0.219 149.579);\n --tw-color-indigo-500: oklch(0.585 0.233 277.117);\n --tw-color-slate-200: oklch(0.929 0.013 255.508);\n --tw-color-slate-300: oklch(0.869 0.022 252.894);\n --tw-color-gray-200: oklch(0.928 0.006 264.531);\n --tw-color-gray-300: oklch(0.872 0.01 258.338);\n --tw-color-gray-400: oklch(0.707 0.022 261.325);\n --tw-color-gray-500: oklch(0.551 0.027 264.364);\n --tw-color-gray-600: oklch(0.446 0.03 256.802);\n --tw-color-zinc-500: oklch(0.552 0.016 285.938);\n --tw-color-zinc-800: oklch(0.274 0.006 286.033);\n --tw-color-white: #fff;\n --tw-spacing: 0.25rem;\n --tw-container-xs: 20rem;\n --tw-container-xl: 36rem;\n --tw-container-2xl: 42rem;\n --tw-container-3xl: 48rem;\n --tw-container-6xl: 72rem;\n --tw-text-xs: 0.75rem;\n --tw-text-xs--line-height: calc(1 / 0.75);\n --tw-text-sm: 0.875rem;\n --tw-text-sm--line-height: calc(1.25 / 0.875);\n --tw-text-base: 1rem;\n --tw-text-base--line-height: calc(1.5 / 1);\n --tw-text-lg: 1.125rem;\n --tw-text-lg--line-height: calc(1.75 / 1.125);\n --tw-text-xl: 1.25rem;\n --tw-text-xl--line-height: calc(1.75 / 1.25);\n --tw-text-2xl: 1.5rem;\n --tw-text-2xl--line-height: calc(2 / 1.5);\n --tw-text-3xl: 1.875rem;\n --tw-text-3xl--line-height: calc(2.25 / 1.875);\n --tw-text-6xl: 3.75rem;\n --tw-text-6xl--line-height: 1;\n --tw-font-weight-normal: 400;\n --tw-font-weight-medium: 500;\n --tw-font-weight-semibold: 600;\n --tw-font-weight-bold: 700;\n --tw-radius-md: 0.375rem;\n --tw-radius-xl: 0.75rem;\n --tw-radius-2xl: 1rem;\n --tw-drop-shadow-md: 0 3px 3px rgb(0 0 0 / 0.12);\n --tw-ease-in: cubic-bezier(0.4, 0, 1, 1);\n --tw-default-transition-duration: 150ms;\n --tw-default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n --tw-z-index-500: 500;\n --tw-z-index-1000: 1000;\n --tw-z-index-2000: 2000;\n --tw-z-index-3000: 3000;\n --tw-min-width-80: 320px;\n --tw-container-52: 208px;\n --tw-min-height-56: 224px;\n --tw-min-height-80: 320px;\n --tw-text-map: 13px;\n --tw-leading-map: 1.4em;\n }\n}\n@layer base {\n *, ::after, ::before, ::backdrop, ::file-selector-button {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: 0 solid;\n }\n html, :host {\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n tab-size: 4;\n font-family: var( --default-font-family, ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\" );\n font-feature-settings: var(--default-font-feature-settings, normal);\n font-variation-settings: var( --default-font-variation-settings, normal );\n -webkit-tap-highlight-color: transparent;\n }\n body {\n line-height: inherit;\n }\n hr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n }\n abbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n }\n h1, h2, h3, h4, h5, h6 {\n font-size: inherit;\n font-weight: inherit;\n }\n a {\n color: inherit;\n -webkit-text-decoration: inherit;\n text-decoration: inherit;\n }\n b, strong {\n font-weight: bolder;\n }\n code, kbd, samp, pre {\n font-family: var( --default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace );\n font-feature-settings: var( --default-mono-font-feature-settings, normal );\n font-variation-settings: var( --default-mono-font-variation-settings, normal );\n font-size: 1em;\n }\n small {\n font-size: 80%;\n }\n sub, sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n }\n sub {\n bottom: -0.25em;\n }\n sup {\n top: -0.5em;\n }\n table {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n }\n :-moz-focusring {\n outline: auto;\n }\n progress {\n vertical-align: baseline;\n }\n summary {\n display: list-item;\n }\n ol, ul, menu {\n list-style: none;\n }\n img, svg, video, canvas, audio, iframe, embed, object {\n display: block;\n vertical-align: middle;\n }\n img, video {\n max-width: 100%;\n height: auto;\n }\n button, input, select, optgroup, textarea, ::file-selector-button {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n border-radius: 0;\n background-color: transparent;\n opacity: 1;\n }\n :where(select:is([multiple], [size])) optgroup {\n font-weight: bolder;\n }\n :where(select:is([multiple], [size])) optgroup option {\n padding-inline-start: 20px;\n }\n ::file-selector-button {\n margin-inline-end: 4px;\n }\n ::placeholder {\n opacity: 1;\n color: color-mix(in oklab, currentColor 50%, transparent);\n }\n textarea {\n resize: vertical;\n }\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n ::-webkit-date-and-time-value {\n min-height: 1lh;\n text-align: inherit;\n }\n ::-webkit-datetime-edit {\n display: inline-flex;\n }\n ::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n }\n ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {\n padding-block: 0;\n }\n :-moz-ui-invalid {\n box-shadow: none;\n }\n button, input:where([type=\"button\"], [type=\"reset\"], [type=\"submit\"]), ::file-selector-button {\n appearance: button;\n }\n ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {\n height: auto;\n }\n [hidden]:where(:not([hidden=\"until-found\"])) {\n display: none !important;\n }\n}\n@layer utilities {\n .tw\\:modal {\n pointer-events: none;\n visibility: hidden;\n position: fixed;\n inset: calc(0.25rem * 0);\n margin: calc(0.25rem * 0);\n display: grid;\n height: 100%;\n max-height: none;\n width: 100%;\n max-width: none;\n align-items: center;\n justify-items: center;\n background-color: transparent;\n padding: calc(0.25rem * 0);\n color: inherit;\n overflow-x: hidden;\n transition: transform 0.3s ease-out, visibility 0.3s allow-discrete, background-color 0.3s ease-out, opacity 0.1s ease-out;\n overflow-y: hidden;\n overscroll-behavior: contain;\n z-index: 999;\n &::backdrop {\n display: none;\n }\n &.tw\\:modal-open, &[open], &:target {\n background-color: oklch(0% 0 0/ 0.4);\n transition: transform 0.3s ease-out, background-color 0.3s ease-out, opacity 0.1s ease-out;\n pointer-events: auto;\n visibility: visible;\n opacity: 100%;\n .tw\\:modal-box {\n translate: 0 0;\n scale: 1;\n opacity: 1;\n }\n }\n @starting-style {\n &.tw\\:modal-open, &[open], &:target {\n visibility: hidden;\n opacity: 0%;\n }\n }\n }\n .tw\\:tooltip {\n position: relative;\n display: inline-block;\n --tt-bg: var(--color-neutral);\n --tt-off: calc(100% + 0.5rem);\n --tt-tail: calc(100% + 1px + 0.25rem);\n > :where(.tw\\:tooltip-content), &[data-tip]:before {\n position: absolute;\n max-width: 20rem;\n border-radius: var(--radius-field);\n padding-inline: calc(0.25rem * 2);\n padding-block: calc(0.25rem * 1);\n text-align: center;\n white-space: normal;\n color: var(--color-neutral-content);\n opacity: 0%;\n font-size: 0.875rem;\n line-height: 1.25em;\n transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1) 75ms, transform 0.2s cubic-bezier(0.4, 0, 0.2, 1) 75ms;\n background-color: var(--tt-bg);\n width: max-content;\n pointer-events: none;\n z-index: 1;\n --tw-content: attr(data-tip);\n content: var(--tw-content);\n }\n &:after {\n position: absolute;\n position: absolute;\n opacity: 0%;\n background-color: var(--tt-bg);\n transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1) 75ms, transform 0.2s cubic-bezier(0.4, 0, 0.2, 1) 75ms;\n content: \"\";\n pointer-events: none;\n width: 0.625rem;\n height: 0.25rem;\n display: block;\n mask-repeat: no-repeat;\n mask-position: -1px 0;\n --mask-tooltip: url(\"data:image/svg+xml,%3Csvg width='10' height='4' viewBox='0 0 8 4' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0.500009 1C3.5 1 3.00001 4 5.00001 4C7 4 6.5 1 9.5 1C10 1 10 0.499897 10 0H0C-1.99338e-08 0.5 0 1 0.500009 1Z' fill='black'/%3E%3C/svg%3E%0A\");\n mask-image: var(--mask-tooltip);\n }\n &.tw\\:tooltip-open, &[data-tip]:hover, &:hover, &:has(:focus-visible) {\n > .tw\\:tooltip-content, &[data-tip]:before, &:after {\n opacity: 100%;\n --tt-pos: 0rem;\n transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1) 0s, transform 0.2s cubic-bezier(0.4, 0, 0.2, 1) 0ms;\n }\n }\n > .tw\\:tooltip-content, &[data-tip]:before {\n transform: translateX(-50%) translateY(var(--tt-pos, 0.25rem));\n inset: auto auto var(--tt-off) 50%;\n }\n &:after {\n transform: translateX(-50%) translateY(var(--tt-pos, 0.25rem));\n inset: auto auto var(--tt-tail) 50%;\n }\n }\n .tw\\:tab {\n position: relative;\n display: inline-flex;\n cursor: pointer;\n appearance: none;\n flex-wrap: wrap;\n align-items: center;\n justify-content: center;\n text-align: center;\n webkit-user-select: none;\n user-select: none;\n &:hover {\n @media (hover: hover) {\n color: var(--color-base-content);\n }\n }\n --tab-p: 1rem;\n --tab-bg: var(--color-base-100);\n --tab-border-color: var(--color-base-300);\n --tab-radius-ss: 0;\n --tab-radius-se: 0;\n --tab-radius-es: 0;\n --tab-radius-ee: 0;\n --tab-order: 0;\n --tab-radius-min: calc(0.75rem - var(--border));\n border-color: #0000;\n order: var(--tab-order);\n height: calc(var(--size-field, 0.25rem) * 10);\n font-size: 0.875rem;\n padding-inline-start: var(--tab-p);\n padding-inline-end: var(--tab-p);\n &:is(input[type=\"radio\"]) {\n min-width: fit-content;\n &:after {\n content: attr(aria-label);\n }\n }\n &:is(label) {\n position: relative;\n input {\n position: absolute;\n inset: calc(0.25rem * 0);\n cursor: pointer;\n appearance: none;\n opacity: 0%;\n }\n }\n &:checked, &:is(label:has(:checked)), &:is(.tw\\:tab-active, [aria-selected=\"true\"]) {\n & + .tw\\:tab-content {\n display: block;\n height: 100%;\n }\n }\n &:not(:checked, label:has(:checked), :hover, .tw\\:tab-active, [aria-selected=\"true\"]) {\n color: color-mix(in oklab, var(--color-base-content) 50%, transparent);\n }\n &:not(input):empty {\n flex-grow: 1;\n cursor: default;\n }\n &:focus {\n --tw-outline-style: none;\n outline-style: none;\n @media (forced-colors: active) {\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n }\n &:focus-visible, &:is(label:has(:checked:focus-visible)) {\n outline: 2px solid currentColor;\n outline-offset: -5px;\n }\n &[disabled] {\n pointer-events: none;\n opacity: 40%;\n }\n }\n .tw\\:menu {\n display: flex;\n width: fit-content;\n flex-direction: column;\n flex-wrap: wrap;\n padding: calc(0.25rem * 2);\n --menu-active-fg: var(--color-neutral-content);\n --menu-active-bg: var(--color-neutral);\n font-size: 0.875rem;\n :where(li ul) {\n position: relative;\n margin-inline-start: calc(0.25rem * 4);\n padding-inline-start: calc(0.25rem * 2);\n white-space: nowrap;\n &:before {\n position: absolute;\n inset-inline-start: calc(0.25rem * 0);\n top: calc(0.25rem * 3);\n bottom: calc(0.25rem * 3);\n background-color: var(--color-base-content);\n opacity: 10%;\n width: var(--border);\n content: \"\";\n }\n }\n :where(li > .tw\\:menu-dropdown:not(.tw\\:menu-dropdown-show)) {\n display: none;\n }\n :where(li:not(.tw\\:menu-title) > *:not(ul, details, .tw\\:menu-title, .tw\\:btn)), :where(li:not(.tw\\:menu-title) > details > summary:not(.tw\\:menu-title)) {\n display: grid;\n grid-auto-flow: column;\n align-content: flex-start;\n align-items: center;\n gap: calc(0.25rem * 2);\n border-radius: var(--radius-field);\n padding-inline: calc(0.25rem * 3);\n padding-block: calc(0.25rem * 1.5);\n text-align: start;\n transition-property: color, background-color, box-shadow;\n transition-duration: 0.2s;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n grid-auto-columns: minmax(auto, max-content) auto max-content;\n text-wrap: balance;\n user-select: none;\n }\n :where(li > details > summary) {\n --tw-outline-style: none;\n outline-style: none;\n @media (forced-colors: active) {\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n &::-webkit-details-marker {\n display: none;\n }\n }\n :where(li > details > summary), :where(li > .tw\\:menu-dropdown-toggle) {\n &:after {\n justify-self: flex-end;\n display: block;\n height: 0.375rem;\n width: 0.375rem;\n rotate: -135deg;\n translate: 0 -1px;\n transition-property: rotate, translate;\n transition-duration: 0.2s;\n content: \"\";\n transform-origin: 50% 50%;\n box-shadow: 2px 2px inset;\n pointer-events: none;\n }\n }\n :where(li > details[open] > summary):after, :where(li > .tw\\:menu-dropdown-toggle.tw\\:menu-dropdown-show):after {\n rotate: 45deg;\n translate: 0 1px;\n }\n :where( li:not(.tw\\:menu-title, .tw\\:disabled) > *:not(ul, details, .tw\\:menu-title), li:not(.tw\\:menu-title, .tw\\:disabled) > details > summary:not(.tw\\:menu-title) ):not(.tw\\:menu-active, :active, .tw\\:btn) {\n &.tw\\:menu-focus, &:focus-visible {\n cursor: pointer;\n background-color: color-mix(in oklab, var(--color-base-content) 10%, transparent);\n color: var(--color-base-content);\n --tw-outline-style: none;\n outline-style: none;\n @media (forced-colors: active) {\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n }\n }\n :where( li:not(.tw\\:menu-title, .tw\\:disabled) > *:not(ul, details, .tw\\:menu-title):not(.tw\\:menu-active, :active, .tw\\:btn):hover, li:not(.tw\\:menu-title, .tw\\:disabled) > details > summary:not(.tw\\:menu-title):not(.tw\\:menu-active, :active, .tw\\:btn):hover ) {\n cursor: pointer;\n background-color: color-mix(in oklab, var(--color-base-content) 10%, transparent);\n --tw-outline-style: none;\n outline-style: none;\n @media (forced-colors: active) {\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n box-shadow: 0 1px oklch(0% 0 0 / 0.01) inset, 0 -1px oklch(100% 0 0 / 0.01) inset;\n }\n :where(li:empty) {\n background-color: var(--color-base-content);\n opacity: 10%;\n margin: 0.5rem 1rem;\n height: 1px;\n }\n :where(li) {\n position: relative;\n display: flex;\n flex-shrink: 0;\n flex-direction: column;\n flex-wrap: wrap;\n align-items: stretch;\n .tw\\:badge {\n justify-self: flex-end;\n }\n & > *:not(ul, .tw\\:menu-title, details, .tw\\:btn):active, & > *:not(ul, .tw\\:menu-title, details, .tw\\:btn).tw\\:menu-active, & > details > summary:active {\n --tw-outline-style: none;\n outline-style: none;\n @media (forced-colors: active) {\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n color: var(--menu-active-fg);\n background-color: var(--menu-active-bg);\n background-size: auto, calc(var(--noise) * 100%);\n background-image: none, var(--fx-noise);\n &:not(&:active) {\n box-shadow: 0 2px calc(var(--depth) * 3px) -2px var(--menu-active-bg);\n }\n }\n &.tw\\:menu-disabled {\n pointer-events: none;\n color: color-mix(in oklab, var(--color-base-content) 20%, transparent);\n }\n }\n .tw\\:dropdown:focus-within {\n .tw\\:menu-dropdown-toggle:after {\n rotate: 45deg;\n translate: 0 1px;\n }\n }\n .tw\\:dropdown-content {\n margin-top: calc(0.25rem * 2);\n padding: calc(0.25rem * 2);\n &:before {\n display: none;\n }\n }\n }\n .tw\\:dropdown {\n position: relative;\n display: inline-block;\n position-area: var(--anchor-v, bottom) var(--anchor-h, span-right);\n & > *:not(summary):focus {\n --tw-outline-style: none;\n outline-style: none;\n @media (forced-colors: active) {\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n }\n .tw\\:dropdown-content {\n position: absolute;\n }\n &:not(details, .tw\\:dropdown-open, .tw\\:dropdown-hover:hover, :focus-within) {\n .tw\\:dropdown-content {\n display: none;\n transform-origin: top;\n opacity: 0%;\n scale: 95%;\n }\n }\n &[popover], .tw\\:dropdown-content {\n z-index: 999;\n animation: dropdown 0.2s;\n transition-property: opacity, scale, display;\n transition-behavior: allow-discrete;\n transition-duration: 0.2s;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n }\n @starting-style {\n &[popover], .tw\\:dropdown-content {\n scale: 95%;\n opacity: 0;\n }\n }\n &.tw\\:dropdown-open, &:not(.tw\\:dropdown-hover):focus, &:focus-within {\n > [tabindex]:first-child {\n pointer-events: none;\n }\n .tw\\:dropdown-content {\n opacity: 100%;\n }\n }\n &.tw\\:dropdown-hover:hover {\n .tw\\:dropdown-content {\n opacity: 100%;\n scale: 100%;\n }\n }\n &:is(details) {\n summary {\n &::-webkit-details-marker {\n display: none;\n }\n }\n }\n &.tw\\:dropdown-open, &:focus, &:focus-within {\n .tw\\:dropdown-content {\n scale: 100%;\n }\n }\n &:where([popover]) {\n background: #0000;\n }\n &[popover] {\n position: fixed;\n color: inherit;\n @supports not (position-area: bottom) {\n margin: auto;\n &.tw\\:dropdown-open:not(:popover-open) {\n display: none;\n transform-origin: top;\n opacity: 0%;\n scale: 95%;\n }\n &::backdrop {\n background-color: color-mix(in oklab, #000 30%, #0000);\n }\n }\n &:not(.tw\\:dropdown-open, :popover-open) {\n display: none;\n transform-origin: top;\n opacity: 0%;\n scale: 95%;\n }\n }\n }\n .tw\\:btn {\n display: inline-flex;\n flex-shrink: 0;\n cursor: pointer;\n flex-wrap: nowrap;\n align-items: center;\n justify-content: center;\n gap: calc(0.25rem * 1.5);\n text-align: center;\n vertical-align: middle;\n outline-offset: 2px;\n webkit-user-select: none;\n user-select: none;\n padding-inline: var(--btn-p);\n color: var(--btn-fg);\n --tw-prose-links: var(--btn-fg);\n height: var(--size);\n font-size: var(--fontsize, 0.875rem);\n font-weight: 600;\n outline-color: var(--btn-color, var(--color-base-content));\n transition-property: color, background-color, border-color, box-shadow;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n transition-duration: 0.2s;\n border-start-start-radius: var(--join-ss, var(--radius-field));\n border-start-end-radius: var(--join-se, var(--radius-field));\n border-end-start-radius: var(--join-es, var(--radius-field));\n border-end-end-radius: var(--join-ee, var(--radius-field));\n background-color: var(--btn-bg);\n background-size: auto, calc(var(--noise) * 100%);\n background-image: none, var(--btn-noise);\n border-width: var(--border);\n border-style: solid;\n border-color: var(--btn-border);\n text-shadow: 0 0.5px oklch(100% 0 0 / calc(var(--depth) * 0.15));\n box-shadow: 0 0.5px 0 0.5px oklch(100% 0 0 / calc(var(--depth) * 6%)) inset, var(--btn-shadow);\n --size: calc(var(--size-field, 0.25rem) * 10);\n --btn-bg: var(--btn-color, var(--color-base-200));\n --btn-fg: var(--color-base-content);\n --btn-p: 1rem;\n --btn-border: color-mix(in oklab, var(--btn-bg), #000 calc(var(--depth) * 5%));\n --btn-shadow: 0 3px 2px -2px color-mix(in oklab, var(--btn-bg) calc(var(--depth) * 30%), #0000),\n 0 4px 3px -2px color-mix(in oklab, var(--btn-bg) calc(var(--depth) * 30%), #0000);\n --btn-noise: var(--fx-noise);\n .tw\\:prose & {\n text-decoration-line: none;\n }\n @media (hover: hover) {\n &:hover {\n --btn-bg: color-mix(in oklab, var(--btn-color, var(--color-base-200)), #000 7%);\n }\n }\n &:focus-visible {\n outline-width: 2px;\n outline-style: solid;\n }\n &:active:not(.tw\\:btn-active) {\n translate: 0 0.5px;\n --btn-bg: color-mix(in oklab, var(--btn-color, var(--color-base-200)), #000 5%);\n --btn-border: color-mix(in oklab, var(--btn-color, var(--color-base-200)), #000 7%);\n --btn-shadow: 0 0 0 0 oklch(0% 0 0/0), 0 0 0 0 oklch(0% 0 0/0);\n }\n &:is(:disabled, [disabled], .tw\\:btn-disabled) {\n &:not(.tw\\:btn-link, .tw\\:btn-ghost) {\n background-color: color-mix(in oklab, var(--color-base-content) 10%, transparent);\n box-shadow: none;\n }\n pointer-events: none;\n --btn-border: #0000;\n --btn-noise: none;\n --btn-fg: color-mix(in oklch, var(--color-base-content) 20%, #0000);\n @media (hover: hover) {\n &:hover {\n pointer-events: none;\n background-color: color-mix(in oklab, var(--color-neutral) 20%, transparent);\n --btn-border: #0000;\n --btn-fg: color-mix(in oklch, var(--color-base-content) 20%, #0000);\n }\n }\n }\n &:is(input[type=\"checkbox\"], input[type=\"radio\"]) {\n appearance: none;\n &::after {\n content: attr(aria-label);\n }\n }\n &:where(input:checked:not(.tw\\:filter .tw\\:btn)) {\n --btn-color: var(--color-primary);\n --btn-fg: var(--color-primary-content);\n isolation: isolate;\n }\n }\n .tw\\:loading {\n pointer-events: none;\n display: inline-block;\n aspect-ratio: 1 / 1;\n background-color: currentColor;\n vertical-align: middle;\n width: calc(var(--size-selector, 0.25rem) * 6);\n mask-size: 100%;\n mask-repeat: no-repeat;\n mask-position: center;\n mask-image: url(\"data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E\");\n }\n .tw\\:pointer-events-auto {\n pointer-events: auto;\n }\n .tw\\:pointer-events-none {\n pointer-events: none;\n }\n .tw\\:tabs-lift {\n --tabs-height: auto;\n --tabs-direction: row;\n > .tw\\:tab {\n --tab-border: 0 0 var(--border) 0;\n --tab-radius-ss: min(var(--radius-field), var(--tab-radius-min));\n --tab-radius-se: min(var(--radius-field), var(--tab-radius-min));\n --tab-radius-es: 0;\n --tab-radius-ee: 0;\n --tab-paddings: var(--border) var(--tab-p) 0 var(--tab-p);\n --tab-border-colors: #0000 #0000 var(--tab-border-color) #0000;\n --tab-corner-width: calc(100% + min(var(--radius-field), var(--tab-radius-min)) * 2);\n --tab-corner-height: min(var(--radius-field), var(--tab-radius-min));\n --tab-corner-position: top left, top right;\n border-width: var(--tab-border);\n border-start-start-radius: var(--tab-radius-ss);\n border-start-end-radius: var(--tab-radius-se);\n border-end-start-radius: var(--tab-radius-es);\n border-end-end-radius: var(--tab-radius-ee);\n padding: var(--tab-paddings);\n border-color: var(--tab-border-colors);\n &:is(.tw\\:tab-active, [aria-selected=\"true\"]):not(.tw\\:tab-disabled, [disabled]), &:is(input:checked, label:has(:checked)) {\n --tab-border: var(--border) var(--border) 0 var(--border);\n --tab-border-colors: var(--tab-border-color) var(--tab-border-color) #0000\n var(--tab-border-color);\n --tab-paddings: 0 calc(var(--tab-p) - var(--border)) var(--border)\n calc(var(--tab-p) - var(--border));\n --tab-inset: auto auto 0 auto;\n --tab-grad: calc(69% - var(--border));\n --radius-start: radial-gradient(\n circle at top left,\n #0000 var(--tab-grad),\n var(--tab-border-color) calc(var(--tab-grad) + 0.25px),\n var(--tab-border-color) calc(var(--tab-grad) + var(--border)),\n var(--tab-bg) calc(var(--tab-grad) + var(--border) + 0.25px)\n );\n --radius-end: radial-gradient(\n circle at top right,\n #0000 var(--tab-grad),\n var(--tab-border-color) calc(var(--tab-grad) + 0.25px),\n var(--tab-border-color) calc(var(--tab-grad) + var(--border)),\n var(--tab-bg) calc(var(--tab-grad) + var(--border) + 0.25px)\n );\n background-color: var(--tab-bg);\n &:before {\n z-index: 1;\n content: \"\";\n display: block;\n position: absolute;\n width: var(--tab-corner-width);\n height: var(--tab-corner-height);\n background-position: var(--tab-corner-position);\n background-image: var(--radius-start), var(--radius-end);\n background-size: min(var(--radius-field), var(--tab-radius-min)) min(var(--radius-field), var(--tab-radius-min));\n background-repeat: no-repeat;\n inset: var(--tab-inset);\n }\n &:first-child:before {\n --radius-start: none;\n }\n [dir=\"rtl\"] &:first-child:before {\n transform: rotateY(180deg);\n }\n &:last-child:before {\n --radius-end: none;\n }\n [dir=\"rtl\"] &:last-child:before {\n transform: rotateY(180deg);\n }\n }\n }\n &:has(.tw\\:tab-content) {\n > .tw\\:tab:first-child {\n &:not(.tw\\:tab-active, [aria-selected=\"true\"]) {\n --tab-border-colors: var(--tab-border-color) var(--tab-border-color) #0000\n var(--tab-border-color);\n }\n }\n }\n .tw\\:tab-content {\n --tabcontent-margin: calc(-1 * var(--border)) 0 0 0;\n --tabcontent-radius-ss: 0;\n --tabcontent-radius-se: var(--radius-box);\n --tabcontent-radius-es: var(--radius-box);\n --tabcontent-radius-ee: var(--radius-box);\n }\n :checked, label:has(:checked), :is(.tw\\:tab-active, [aria-selected=\"true\"]) {\n & + .tw\\:tab-content {\n &:nth-child(1), &:nth-child(n + 3) {\n --tabcontent-radius-ss: var(--radius-box);\n }\n }\n }\n }\n .tw\\:input {\n cursor: text;\n border: var(--border) solid #0000;\n position: relative;\n display: inline-flex;\n flex-shrink: 1;\n appearance: none;\n align-items: center;\n gap: calc(0.25rem * 2);\n background-color: var(--color-base-100);\n padding-inline: calc(0.25rem * 3);\n vertical-align: middle;\n white-space: nowrap;\n width: clamp(3rem, 20rem, 100%);\n height: var(--size);\n font-size: 0.875rem;\n border-start-start-radius: var(--join-ss, var(--radius-field));\n border-start-end-radius: var(--join-se, var(--radius-field));\n border-end-start-radius: var(--join-es, var(--radius-field));\n border-end-end-radius: var(--join-ee, var(--radius-field));\n border-color: var(--input-color);\n box-shadow: 0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000) inset, 0 -1px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset;\n --size: calc(var(--size-field, 0.25rem) * 10);\n --input-color: color-mix(in oklab, var(--color-base-content) 20%, #0000);\n &:where(input) {\n display: inline-flex;\n }\n :where(input) {\n display: inline-flex;\n height: 100%;\n width: 100%;\n appearance: none;\n background-color: transparent;\n border: none;\n &:focus, &:focus-within {\n --tw-outline-style: none;\n outline-style: none;\n @media (forced-colors: active) {\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n }\n }\n &:focus, &:focus-within {\n --input-color: var(--color-base-content);\n box-shadow: 0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000);\n outline: 2px solid var(--input-color);\n outline-offset: 2px;\n isolation: isolate;\n }\n &:has(> input[disabled]), &:is(:disabled, [disabled]) {\n cursor: not-allowed;\n border-color: var(--color-base-200);\n background-color: var(--color-base-200);\n color: color-mix(in oklab, var(--color-base-content) 40%, transparent);\n &::placeholder {\n color: color-mix(in oklab, var(--color-base-content) 20%, transparent);\n }\n box-shadow: none;\n }\n &:has(> input[disabled]) > input[disabled] {\n cursor: not-allowed;\n }\n &::-webkit-date-and-time-value {\n text-align: inherit;\n }\n &[type=\"number\"] {\n &::-webkit-inner-spin-button {\n margin-block: calc(0.25rem * -3);\n margin-inline-end: calc(0.25rem * -3);\n }\n }\n &::-webkit-calendar-picker-indicator {\n position: absolute;\n inset-inline-end: 0.75em;\n }\n }\n .tw\\:indicator {\n position: relative;\n display: inline-flex;\n width: max-content;\n :where(.tw\\:indicator-item) {\n z-index: 1;\n position: absolute;\n white-space: nowrap;\n top: var(--inidicator-t, 0);\n bottom: var(--inidicator-b, auto);\n left: var(--inidicator-s, auto);\n right: var(--inidicator-e, 0);\n translate: var(--inidicator-x, 50%) var(--indicator-y, -50%);\n }\n }\n .tw\\:table {\n font-size: 0.875rem;\n position: relative;\n width: 100%;\n border-radius: var(--radius-box);\n text-align: left;\n &:where(:dir(rtl), [dir=\"rtl\"], [dir=\"rtl\"] *) {\n text-align: right;\n }\n tr.tw\\:row-hover {\n &, &:nth-child(even) {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-base-200);\n }\n }\n }\n }\n :where(th, td) {\n padding-inline: calc(0.25rem * 4);\n padding-block: calc(0.25rem * 3);\n vertical-align: middle;\n }\n :where(thead, tfoot) {\n white-space: nowrap;\n color: color-mix(in oklab, var(--color-base-content) 60%, transparent);\n font-size: 0.875rem;\n font-weight: 600;\n }\n :where(tfoot) {\n border-top: var(--border) solid color-mix(in oklch, var(--color-base-content) 5%, #0000);\n }\n :where(.tw\\:table-pin-rows thead tr) {\n position: sticky;\n top: calc(0.25rem * 0);\n z-index: 1;\n background-color: var(--color-base-100);\n }\n :where(.tw\\:table-pin-rows tfoot tr) {\n position: sticky;\n bottom: calc(0.25rem * 0);\n z-index: 1;\n background-color: var(--color-base-100);\n }\n :where(.tw\\:table-pin-cols tr th) {\n position: sticky;\n right: calc(0.25rem * 0);\n left: calc(0.25rem * 0);\n background-color: var(--color-base-100);\n }\n :where(thead tr, tbody tr:not(:last-child)) {\n border-bottom: var(--border) solid color-mix(in oklch, var(--color-base-content) 5%, #0000);\n }\n }\n .tw\\:card {\n position: relative;\n display: flex;\n flex-direction: column;\n border-radius: var(--radius-box);\n outline-width: 2px;\n transition: outline 0.2s ease-in-out;\n outline: 0 solid #0000;\n outline-offset: 2px;\n &:focus {\n --tw-outline-style: none;\n outline-style: none;\n @media (forced-colors: active) {\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n }\n &:focus-visible {\n outline-color: currentColor;\n }\n :where(figure:first-child) {\n overflow: hidden;\n border-start-start-radius: inherit;\n border-start-end-radius: inherit;\n border-end-start-radius: unset;\n border-end-end-radius: unset;\n }\n :where(figure:last-child) {\n overflow: hidden;\n border-start-start-radius: unset;\n border-start-end-radius: unset;\n border-end-start-radius: inherit;\n border-end-end-radius: inherit;\n }\n &:where(.tw\\:card-border) {\n border: var(--border) solid var(--color-base-200);\n }\n &:where(.tw\\:card-dash) {\n border: var(--border) dashed var(--color-base-200);\n }\n &.tw\\:image-full {\n display: grid;\n &:before {\n position: relative;\n grid-column-start: 1;\n grid-row-start: 1;\n border-radius: var(--radius-box);\n background-color: var(--color-neutral);\n opacity: 75%;\n content: \"\";\n }\n > * {\n grid-column-start: 1;\n grid-row-start: 1;\n }\n > .tw\\:card-body {\n position: relative;\n color: var(--color-neutral-content);\n }\n :where(figure) {\n overflow: hidden;\n border-radius: inherit;\n }\n > figure img {\n height: 100%;\n object-fit: cover;\n }\n }\n figure {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n &:has(> input:is(input[type=\"checkbox\"], input[type=\"radio\"])) {\n cursor: pointer;\n user-select: none;\n }\n &:has(> :checked) {\n outline: 2px solid currentColor;\n }\n }\n .tw\\:avatar {\n position: relative;\n display: inline-flex;\n vertical-align: middle;\n & > div {\n display: block;\n aspect-ratio: 1 / 1;\n overflow: hidden;\n }\n img {\n height: 100%;\n width: 100%;\n object-fit: cover;\n }\n }\n .tw\\:checkbox {\n border: var(--border) solid var(--input-color, color-mix(in oklab, var(--color-base-content) 20%, #0000));\n position: relative;\n flex-shrink: 0;\n cursor: pointer;\n appearance: none;\n border-radius: var(--radius-selector);\n padding: calc(0.25rem * 1);\n vertical-align: middle;\n color: var(--color-base-content);\n box-shadow: 0 1px oklch(0% 0 0 / calc(var(--depth) * 0.1)) inset, 0 0 #0000 inset, 0 0 #0000;\n transition: background-color 0.2s, box-shadow 0.2s;\n --size: calc(var(--size-selector, 0.25rem) * 6);\n width: var(--size);\n height: var(--size);\n background-size: auto, calc(var(--noise) * 100%);\n background-image: none, var(--fx-noise);\n &:before {\n --tw-content: \"\";\n content: var(--tw-content);\n display: block;\n width: 100%;\n height: 100%;\n rotate: 45deg;\n background-color: currentColor;\n opacity: 0%;\n transition: clip-path 0.3s, opacity 0.1s, rotate 0.3s, translate 0.3s;\n transition-delay: 0.1s;\n clip-path: polygon(20% 100%, 20% 80%, 50% 80%, 50% 80%, 70% 80%, 70% 100%);\n box-shadow: 0px 3px 0 0px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset;\n font-size: 1rem;\n line-height: 0.75;\n }\n &:focus-visible {\n outline: 2px solid var(--input-color, currentColor);\n outline-offset: 2px;\n }\n &:checked, &[aria-checked=\"true\"] {\n background-color: var(--input-color, #0000);\n box-shadow: 0 0 #0000 inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset, 0 1px oklch(0% 0 0 / calc(var(--depth) * 0.1));\n &:before {\n clip-path: polygon(20% 100%, 20% 80%, 50% 80%, 50% 0%, 70% 0%, 70% 100%);\n opacity: 100%;\n }\n @media (forced-colors: active) {\n &:before {\n rotate: 0deg;\n background-color: transparent;\n --tw-content: \"✔︎\";\n clip-path: none;\n }\n }\n @media print {\n &:before {\n rotate: 0deg;\n background-color: transparent;\n --tw-content: \"✔︎\";\n clip-path: none;\n }\n }\n }\n &:indeterminate {\n &:before {\n rotate: 0deg;\n opacity: 100%;\n translate: 0 -35%;\n clip-path: polygon(20% 100%, 20% 80%, 50% 80%, 50% 80%, 80% 80%, 80% 100%);\n }\n }\n &:disabled {\n cursor: not-allowed;\n opacity: 20%;\n }\n }\n .tw\\:stats {\n position: relative;\n display: inline-grid;\n grid-auto-flow: column;\n overflow-x: auto;\n border-radius: var(--radius-box);\n }\n .tw\\:absolute {\n position: absolute;\n }\n .tw\\:fixed {\n position: fixed;\n }\n .tw\\:relative {\n position: relative;\n }\n .tw\\:tooltip-left {\n > .tw\\:tooltip-content, &[data-tip]:before {\n transform: translateX(calc(var(--tt-pos, 0.25rem) - 0.25rem)) translateY(-50%);\n inset: 50% var(--tt-off) auto auto;\n }\n &:after {\n transform: translateX(var(--tt-pos, 0.25rem)) translateY(-50%) rotate(-90deg);\n inset: 50% calc(var(--tt-tail) + 1px) auto auto;\n }\n }\n .tw\\:inset-y-0 {\n inset-block: calc(var(--tw-spacing) * 0);\n }\n .tw\\:dropdown-end {\n --anchor-h: span-left;\n :where(.tw\\:dropdown-content) {\n inset-inline-end: calc(0.25rem * 0);\n translate: 0 0;\n }\n &.tw\\:dropdown-left {\n --anchor-h: left;\n --anchor-v: span-top;\n .tw\\:dropdown-content {\n top: auto;\n bottom: calc(0.25rem * 0);\n }\n }\n &.tw\\:dropdown-right {\n --anchor-h: right;\n --anchor-v: span-top;\n .tw\\:dropdown-content {\n top: auto;\n bottom: calc(0.25rem * 0);\n }\n }\n }\n .tw\\:dropdown-bottom {\n --anchor-v: bottom;\n .tw\\:dropdown-content {\n top: 100%;\n bottom: auto;\n transform-origin: top;\n }\n }\n .tw\\:dropdown-top {\n --anchor-v: top;\n .tw\\:dropdown-content {\n top: auto;\n bottom: 100%;\n transform-origin: bottom;\n }\n }\n .tw\\:-top-2 {\n top: calc(var(--tw-spacing) * -2);\n }\n .tw\\:top-0 {\n top: calc(var(--tw-spacing) * 0);\n }\n .tw\\:top-1 {\n top: calc(var(--tw-spacing) * 1);\n }\n .tw\\:top-2 {\n top: calc(var(--tw-spacing) * 2);\n }\n .tw\\:top-4 {\n top: calc(var(--tw-spacing) * 4);\n }\n .tw\\:top-14 {\n top: calc(var(--tw-spacing) * 14);\n }\n .tw\\:-right-2 {\n right: calc(var(--tw-spacing) * -2);\n }\n .tw\\:right-0 {\n right: calc(var(--tw-spacing) * 0);\n }\n .tw\\:right-1 {\n right: calc(var(--tw-spacing) * 1);\n }\n .tw\\:right-2 {\n right: calc(var(--tw-spacing) * 2);\n }\n .tw\\:right-4 {\n right: calc(var(--tw-spacing) * 4);\n }\n .tw\\:right-5 {\n right: calc(var(--tw-spacing) * 5);\n }\n .tw\\:right-6 {\n right: calc(var(--tw-spacing) * 6);\n }\n .tw\\:bottom-0 {\n bottom: calc(var(--tw-spacing) * 0);\n }\n .tw\\:bottom-4 {\n bottom: calc(var(--tw-spacing) * 4);\n }\n .tw\\:bottom-24\\! {\n bottom: calc(var(--tw-spacing) * 24) !important;\n }\n .tw\\:-left-6 {\n left: calc(var(--tw-spacing) * -6);\n }\n .tw\\:left-0 {\n left: calc(var(--tw-spacing) * 0);\n }\n .tw\\:left-0\\! {\n left: calc(var(--tw-spacing) * 0) !important;\n }\n .tw\\:left-1\\/2 {\n left: calc(1/2 * 100%);\n }\n .tw\\:left-4 {\n left: calc(var(--tw-spacing) * 4);\n }\n .tw\\:left-auto\\! {\n left: auto !important;\n }\n .tw\\:file-input {\n cursor: pointer;\n cursor: pointer;\n border: var(--border) solid #0000;\n display: inline-flex;\n appearance: none;\n align-items: center;\n background-color: var(--color-base-100);\n vertical-align: middle;\n webkit-user-select: none;\n user-select: none;\n width: clamp(3rem, 20rem, 100%);\n height: var(--size);\n padding-inline-end: 0.75rem;\n font-size: 0.875rem;\n line-height: 2;\n border-start-start-radius: var(--join-ss, var(--radius-field));\n border-start-end-radius: var(--join-se, var(--radius-field));\n border-end-start-radius: var(--join-es, var(--radius-field));\n border-end-end-radius: var(--join-ee, var(--radius-field));\n border-color: var(--input-color);\n box-shadow: 0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000) inset, 0 -1px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset;\n --size: calc(var(--size-field, 0.25rem) * 10);\n --input-color: color-mix(in oklab, var(--color-base-content) 20%, #0000);\n &::file-selector-button {\n margin-inline-end: calc(0.25rem * 4);\n cursor: pointer;\n padding-inline: calc(0.25rem * 4);\n webkit-user-select: none;\n user-select: none;\n height: calc(100% + var(--border) * 2);\n margin-block: calc(var(--border) * -1);\n margin-inline-start: calc(var(--border) * -1);\n font-size: 0.875rem;\n color: var(--btn-fg);\n border-width: var(--border);\n border-style: solid;\n border-color: var(--btn-border);\n border-start-start-radius: calc(var(--join-ss, var(--radius-field) - var(--border)));\n border-end-start-radius: calc(var(--join-es, var(--radius-field) - var(--border)));\n font-weight: 600;\n background-color: var(--btn-bg);\n background-size: calc(var(--noise) * 100%);\n background-image: var(--btn-noise);\n text-shadow: 0 0.5px oklch(1 0 0 / calc(var(--depth) * 0.15));\n box-shadow: 0 0.5px 0 0.5px color-mix( in oklab, color-mix(in oklab, white 30%, var(--btn-bg)) calc(var(--depth) * 20%), #0000 ) inset, var(--btn-shadow);\n --size: calc(var(--size-field, 0.25rem) * 10);\n --btn-bg: var(--btn-color, var(--color-base-200));\n --btn-fg: var(--color-base-content);\n --btn-border: color-mix(in oklab, var(--btn-bg), #000 5%);\n --btn-shadow: 0 3px 2px -2px color-mix(in oklab, var(--btn-bg) 30%, #0000),\n 0 4px 3px -2px color-mix(in oklab, var(--btn-bg) 30%, #0000);\n --btn-noise: var(--fx-noise);\n }\n &:focus {\n --input-color: var(--color-base-content);\n box-shadow: 0 1px color-mix(in oklab, var(--input-color) 10%, #0000);\n outline: 2px solid var(--input-color);\n outline-offset: 2px;\n isolation: isolate;\n }\n &:has(> input[disabled]), &:is(:disabled, [disabled]) {\n cursor: not-allowed;\n border-color: var(--color-base-200);\n background-color: var(--color-base-200);\n &::placeholder {\n color: color-mix(in oklab, var(--color-base-content) 20%, transparent);\n }\n box-shadow: none;\n color: color-mix(in oklch, var(--color-base-content) 20%, #0000);\n &::file-selector-button {\n cursor: not-allowed;\n border-color: var(--color-base-200);\n background-color: var(--color-base-200);\n --btn-border: #0000;\n --btn-noise: none;\n --btn-fg: color-mix(in oklch, var(--color-base-content) 20%, #0000);\n }\n }\n }\n .tw\\:textarea {\n border: var(--border) solid #0000;\n min-height: calc(0.25rem * 20);\n flex-shrink: 1;\n appearance: none;\n border-radius: var(--radius-field);\n background-color: var(--color-base-100);\n padding-block: calc(0.25rem * 2);\n vertical-align: middle;\n width: clamp(3rem, 20rem, 100%);\n padding-inline-start: 0.75rem;\n padding-inline-end: 0.75rem;\n font-size: 0.875rem;\n border-color: var(--input-color);\n box-shadow: 0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000) inset, 0 -1px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset;\n --input-color: color-mix(in oklab, var(--color-base-content) 20%, #0000);\n textarea {\n appearance: none;\n background-color: transparent;\n border: none;\n &:focus, &:focus-within {\n --tw-outline-style: none;\n outline-style: none;\n @media (forced-colors: active) {\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n }\n }\n &:focus, &:focus-within {\n --input-color: var(--color-base-content);\n box-shadow: 0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000);\n outline: 2px solid var(--input-color);\n outline-offset: 2px;\n isolation: isolate;\n }\n &:has(> textarea[disabled]), &:is(:disabled, [disabled]) {\n cursor: not-allowed;\n border-color: var(--color-base-200);\n background-color: var(--color-base-200);\n color: color-mix(in oklab, var(--color-base-content) 40%, transparent);\n &::placeholder {\n color: color-mix(in oklab, var(--color-base-content) 20%, transparent);\n }\n box-shadow: none;\n }\n &:has(> textarea[disabled]) > textarea[disabled] {\n cursor: not-allowed;\n }\n }\n .tw\\:modal-backdrop {\n grid-column-start: 1;\n grid-row-start: 1;\n display: grid;\n align-self: stretch;\n justify-self: stretch;\n color: transparent;\n z-index: -1;\n button {\n cursor: pointer;\n }\n }\n .tw\\:z-1 {\n z-index: 1;\n }\n .tw\\:z-500 {\n z-index: var(--tw-z-index-500);\n }\n .tw\\:z-999 {\n z-index: 999;\n }\n .tw\\:z-1000 {\n z-index: var(--tw-z-index-1000);\n }\n .tw\\:z-2000 {\n z-index: var(--tw-z-index-2000);\n }\n .tw\\:z-3000 {\n z-index: var(--tw-z-index-3000);\n }\n .tw\\:z-4000 {\n z-index: 4000;\n }\n .tw\\:z-9998 {\n z-index: 9998;\n }\n .tw\\:z-10000 {\n z-index: 10000;\n }\n .tw\\:z-10000\\! {\n z-index: 10000 !important;\n }\n .tw\\:z-10035 {\n z-index: 10035;\n }\n .tw\\:tab-content {\n order: var(--tabcontent-order);\n display: none;\n border-color: transparent;\n --tabcontent-radius-ss: 0;\n --tabcontent-radius-se: 0;\n --tabcontent-radius-es: 0;\n --tabcontent-radius-ee: 0;\n --tabcontent-order: 1;\n width: 100%;\n margin: var(--tabcontent-margin);\n border-width: var(--border);\n border-start-start-radius: var(--tabcontent-radius-ss);\n border-start-end-radius: var(--tabcontent-radius-se);\n border-end-start-radius: var(--tabcontent-radius-es);\n border-end-end-radius: var(--tabcontent-radius-ee);\n }\n .tw\\:col-span-1 {\n grid-column: span 1 / span 1;\n }\n .tw\\:modal-box {\n grid-column-start: 1;\n grid-row-start: 1;\n max-height: 100vh;\n width: calc(11/12 * 100%);\n max-width: 32rem;\n background-color: var(--color-base-100);\n padding: calc(0.25rem * 6);\n transition: translate 0.3s ease-out, scale 0.3s ease-out, opacity 0.2s ease-out 0.05s, box-shadow 0.3s ease-out;\n border-top-left-radius: var(--modal-tl, var(--radius-box));\n border-top-right-radius: var(--modal-tr, var(--radius-box));\n border-bottom-left-radius: var(--modal-bl, var(--radius-box));\n border-bottom-right-radius: var(--modal-br, var(--radius-box));\n scale: 95%;\n opacity: 0;\n box-shadow: oklch(0% 0 0/ 0.25) 0px 25px 50px -12px;\n overflow-y: auto;\n overscroll-behavior: contain;\n }\n .tw\\:stat-value {\n grid-column-start: 1;\n white-space: nowrap;\n font-size: 2rem;\n font-weight: 800;\n }\n .tw\\:stat-title {\n grid-column-start: 1;\n white-space: nowrap;\n color: color-mix(in oklab, var(--color-base-content) 60%, transparent);\n font-size: 0.75rem;\n }\n .tw\\:float-left {\n float: left;\n }\n .tw\\:float-right {\n float: right;\n }\n .tw\\:divider {\n display: flex;\n height: calc(0.25rem * 4);\n flex-direction: row;\n align-items: center;\n align-self: stretch;\n white-space: nowrap;\n margin: var(--divider-m, 1rem 0);\n &:before, &:after {\n content: \"\";\n height: calc(0.25rem * 0.5);\n width: 100%;\n flex-grow: 1;\n background-color: color-mix(in oklab, var(--color-base-content) 10%, transparent);\n }\n @media print {\n &:before, &:after {\n border: 0.5px solid;\n }\n }\n &:not(:empty) {\n gap: calc(0.25rem * 4);\n }\n }\n .tw\\:m-1 {\n margin: calc(var(--tw-spacing) * 1);\n }\n .tw\\:m-4 {\n margin: calc(var(--tw-spacing) * 4);\n }\n .tw\\:m-4\\! {\n margin: calc(var(--tw-spacing) * 4) !important;\n }\n .tw\\:m-auto {\n margin: auto;\n }\n .tw\\:mx-2 {\n margin-inline: calc(var(--tw-spacing) * 2);\n }\n .tw\\:mx-4 {\n margin-inline: calc(var(--tw-spacing) * 4);\n }\n .tw\\:mx-6 {\n margin-inline: calc(var(--tw-spacing) * 6);\n }\n .tw\\:input-md {\n --size: calc(var(--size-field, 0.25rem) * 10);\n font-size: 0.875rem;\n &[type=\"number\"] {\n &::-webkit-inner-spin-button {\n margin-block: calc(0.25rem * -3);\n margin-inline-end: calc(0.25rem * -3);\n }\n }\n }\n .tw\\:input-sm {\n --size: calc(var(--size-field, 0.25rem) * 8);\n font-size: 0.75rem;\n &[type=\"number\"] {\n &::-webkit-inner-spin-button {\n margin-block: calc(0.25rem * -2);\n margin-inline-end: calc(0.25rem * -3);\n }\n }\n }\n .tw\\:my-0\\! {\n margin-block: calc(var(--tw-spacing) * 0) !important;\n }\n .tw\\:my-1 {\n margin-block: calc(var(--tw-spacing) * 1);\n }\n .tw\\:my-2 {\n margin-block: calc(var(--tw-spacing) * 2);\n }\n .tw\\:my-2\\! {\n margin-block: calc(var(--tw-spacing) * 2) !important;\n }\n .tw\\:my-10 {\n margin-block: calc(var(--tw-spacing) * 10);\n }\n .tw\\:label {\n display: inline-flex;\n align-items: center;\n gap: calc(0.25rem * 1.5);\n white-space: nowrap;\n color: color-mix(in oklab, currentColor 60%, transparent);\n &:has(input) {\n cursor: pointer;\n }\n &:is(.tw\\:input > *, .tw\\:select > *) {\n display: flex;\n height: calc(100% - 0.5rem);\n align-items: center;\n padding-inline: calc(0.25rem * 3);\n white-space: nowrap;\n font-size: inherit;\n &:first-child {\n margin-inline-start: calc(0.25rem * -3);\n margin-inline-end: calc(0.25rem * 3);\n border-inline-end: var(--border) solid color-mix(in oklab, currentColor 10%, #0000);\n }\n &:last-child {\n margin-inline-start: calc(0.25rem * 3);\n margin-inline-end: calc(0.25rem * -3);\n border-inline-start: var(--border) solid color-mix(in oklab, currentColor 10%, #0000);\n }\n }\n }\n .tw\\:-mt-2 {\n margin-top: calc(var(--tw-spacing) * -2);\n }\n .tw\\:mt-0 {\n margin-top: calc(var(--tw-spacing) * 0);\n }\n .tw\\:mt-1 {\n margin-top: calc(var(--tw-spacing) * 1);\n }\n .tw\\:mt-1\\.5 {\n margin-top: calc(var(--tw-spacing) * 1.5);\n }\n .tw\\:mt-2 {\n margin-top: calc(var(--tw-spacing) * 2);\n }\n .tw\\:mt-3 {\n margin-top: calc(var(--tw-spacing) * 3);\n }\n .tw\\:mt-4 {\n margin-top: calc(var(--tw-spacing) * 4);\n }\n .tw\\:mt-5 {\n margin-top: calc(var(--tw-spacing) * 5);\n }\n .tw\\:mt-5\\.5 {\n margin-top: calc(var(--tw-spacing) * 5.5);\n }\n .tw\\:mt-6 {\n margin-top: calc(var(--tw-spacing) * 6);\n }\n .tw\\:mt-8 {\n margin-top: calc(var(--tw-spacing) * 8);\n }\n .tw\\:mt-12 {\n margin-top: calc(var(--tw-spacing) * 12);\n }\n .tw\\:mt-16 {\n margin-top: calc(var(--tw-spacing) * 16);\n }\n .tw\\:-mr-4 {\n margin-right: calc(var(--tw-spacing) * -4);\n }\n .tw\\:-mr-6 {\n margin-right: calc(var(--tw-spacing) * -6);\n }\n .tw\\:mr-1 {\n margin-right: calc(var(--tw-spacing) * 1);\n }\n .tw\\:mr-2 {\n margin-right: calc(var(--tw-spacing) * 2);\n }\n .tw\\:mr-4 {\n margin-right: calc(var(--tw-spacing) * 4);\n }\n .tw\\:mr-5 {\n margin-right: calc(var(--tw-spacing) * 5);\n }\n .tw\\:-mb-1 {\n margin-bottom: calc(var(--tw-spacing) * -1);\n }\n .tw\\:-mb-2 {\n margin-bottom: calc(var(--tw-spacing) * -2);\n }\n .tw\\:-mb-4 {\n margin-bottom: calc(var(--tw-spacing) * -4);\n }\n .tw\\:mb-0 {\n margin-bottom: calc(var(--tw-spacing) * 0);\n }\n .tw\\:mb-1 {\n margin-bottom: calc(var(--tw-spacing) * 1);\n }\n .tw\\:mb-2 {\n margin-bottom: calc(var(--tw-spacing) * 2);\n }\n .tw\\:mb-3 {\n margin-bottom: calc(var(--tw-spacing) * 3);\n }\n .tw\\:mb-4 {\n margin-bottom: calc(var(--tw-spacing) * 4);\n }\n .tw\\:mb-6 {\n margin-bottom: calc(var(--tw-spacing) * 6);\n }\n .tw\\:mb-10 {\n margin-bottom: calc(var(--tw-spacing) * 10);\n }\n .tw\\:ml-1 {\n margin-left: calc(var(--tw-spacing) * 1);\n }\n .tw\\:ml-2 {\n margin-left: calc(var(--tw-spacing) * 2);\n }\n .tw\\:ml-3 {\n margin-left: calc(var(--tw-spacing) * 3);\n }\n .tw\\:ml-4 {\n margin-left: calc(var(--tw-spacing) * 4);\n }\n .tw\\:ml-14 {\n margin-left: calc(var(--tw-spacing) * 14);\n }\n .tw\\:ml-48 {\n margin-left: calc(var(--tw-spacing) * 48);\n }\n .tw\\:badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: calc(0.25rem * 2);\n border-radius: var(--radius-selector);\n vertical-align: middle;\n color: var(--badge-fg);\n border: var(--border) solid var(--badge-color, var(--color-base-200));\n font-size: 0.875rem;\n width: fit-content;\n padding-inline: calc(0.25rem * 3 - var(--border));\n background-size: auto, calc(var(--noise) * 100%);\n background-image: none, var(--fx-noise);\n background-color: var(--badge-bg);\n --badge-bg: var(--badge-color, var(--color-base-100));\n --badge-fg: var(--color-base-content);\n --size: calc(var(--size-selector, 0.25rem) * 6);\n height: var(--size);\n &.tw\\:badge-outline {\n --badge-fg: var(--badge-color);\n --badge-bg: #0000;\n background-image: none;\n }\n &.tw\\:badge-dash {\n --badge-fg: var(--badge-color);\n --badge-bg: #0000;\n border-style: dashed;\n background-image: none;\n }\n &.tw\\:badge-soft {\n color: var(--badge-color, var(--color-base-content));\n background-color: color-mix( in oklab, var(--badge-color, var(--color-base-content)) 8%, var(--color-base-100) );\n border-color: color-mix( in oklab, var(--badge-color, var(--color-base-content)) 10%, var(--color-base-100) );\n background-image: none;\n }\n }\n .tw\\:tabs {\n display: flex;\n flex-wrap: wrap;\n --tabs-height: auto;\n --tabs-direction: row;\n height: var(--tabs-height);\n flex-direction: var(--tabs-direction);\n }\n .tw\\:navbar {\n display: flex;\n width: 100%;\n align-items: center;\n padding: 0.5rem;\n min-height: 4rem;\n }\n .tw\\:stat {\n display: inline-grid;\n width: 100%;\n column-gap: calc(0.25rem * 4);\n padding-inline: calc(0.25rem * 6);\n padding-block: calc(0.25rem * 4);\n grid-template-columns: repeat(1, 1fr);\n &:not(:last-child) {\n border-inline-end: var(--border) dashed color-mix(in oklab, currentColor 10%, #0000);\n border-block-end: none;\n }\n }\n .tw\\:card-body {\n display: flex;\n flex: auto;\n flex-direction: column;\n gap: calc(0.25rem * 2);\n padding: var(--card-p, 1.5rem);\n font-size: var(--card-fs, 0.875rem);\n :where(p) {\n flex-grow: 1;\n }\n }\n .tw\\:alert {\n display: grid;\n align-items: center;\n gap: calc(0.25rem * 4);\n border-radius: var(--radius-box);\n padding-inline: calc(0.25rem * 4);\n padding-block: calc(0.25rem * 3);\n color: var(--color-base-content);\n background-color: var(--alert-color, var(--color-base-200));\n justify-content: start;\n justify-items: start;\n grid-auto-flow: column;\n grid-template-columns: auto minmax(auto, 1fr);\n text-align: start;\n border: var(--border) solid var(--color-base-200);\n font-size: 0.875rem;\n line-height: 1.25rem;\n background-size: auto, calc(var(--noise) * 100%);\n background-image: none, var(--fx-noise);\n box-shadow: 0 3px 0 -2px oklch(100% 0 0 / calc(var(--depth) * 0.08)) inset, 0 1px color-mix( in oklab, color-mix(in oklab, #000 20%, var(--alert-color, var(--color-base-200))) calc(var(--depth) * 20%), #0000 ), 0 4px 3px -2px oklch(0% 0 0 / calc(var(--depth) * 0.08));\n &.tw\\:alert-outline {\n background-color: transparent;\n color: var(--alert-color);\n box-shadow: none;\n background-image: none;\n }\n &.tw\\:alert-dash {\n background-color: transparent;\n color: var(--alert-color);\n border-style: dashed;\n box-shadow: none;\n background-image: none;\n }\n &.tw\\:alert-soft {\n color: var(--alert-color, var(--color-base-content));\n background: color-mix( in oklab, var(--alert-color, var(--color-base-content)) 8%, var(--color-base-100) );\n border-color: color-mix( in oklab, var(--alert-color, var(--color-base-content)) 10%, var(--color-base-100) );\n box-shadow: none;\n background-image: none;\n }\n }\n .tw\\:card-actions {\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n gap: calc(0.25rem * 2);\n }\n .tw\\:card-title {\n display: flex;\n align-items: center;\n gap: calc(0.25rem * 2);\n font-size: var(--cardtitle-fs, 1.125rem);\n font-weight: 600;\n }\n .tw\\:mask {\n display: inline-block;\n vertical-align: middle;\n mask-size: contain;\n mask-repeat: no-repeat;\n mask-position: center;\n }\n .tw\\:block {\n display: block;\n }\n .tw\\:flex {\n display: flex;\n }\n .tw\\:grid {\n display: grid;\n }\n .tw\\:hidden {\n display: none;\n }\n .tw\\:inline {\n display: inline;\n }\n .tw\\:inline-block {\n display: inline-block;\n }\n .tw\\:inline-flex {\n display: inline-flex;\n }\n .tw\\:table {\n display: table;\n }\n .tw\\:btn-circle {\n border-radius: calc(infinity * 1px);\n padding-inline: calc(0.25rem * 0);\n width: var(--size);\n height: var(--size);\n }\n .tw\\:btn-square {\n padding-inline: calc(0.25rem * 0);\n width: var(--size);\n height: var(--size);\n }\n .tw\\:\\!h-\\[calc\\(100\\%-48px\\)\\] {\n height: calc(100% - 48px) !important;\n }\n .tw\\:\\!h-\\[calc\\(100dvh-280px\\)\\] {\n height: calc(100dvh - 280px) !important;\n }\n .tw\\:h-2 {\n height: calc(var(--tw-spacing) * 2);\n }\n .tw\\:h-3 {\n height: calc(var(--tw-spacing) * 3);\n }\n .tw\\:h-3\\/4 {\n height: calc(3/4 * 100%);\n }\n .tw\\:h-4 {\n height: calc(var(--tw-spacing) * 4);\n }\n .tw\\:h-5 {\n height: calc(var(--tw-spacing) * 5);\n }\n .tw\\:h-6 {\n height: calc(var(--tw-spacing) * 6);\n }\n .tw\\:h-8 {\n height: calc(var(--tw-spacing) * 8);\n }\n .tw\\:h-10 {\n height: calc(var(--tw-spacing) * 10);\n }\n .tw\\:h-12 {\n height: calc(var(--tw-spacing) * 12);\n }\n .tw\\:h-20 {\n height: calc(var(--tw-spacing) * 20);\n }\n .tw\\:h-24 {\n height: calc(var(--tw-spacing) * 24);\n }\n .tw\\:h-28 {\n height: calc(var(--tw-spacing) * 28);\n }\n .tw\\:h-32 {\n height: calc(var(--tw-spacing) * 32);\n }\n .tw\\:h-40 {\n height: calc(var(--tw-spacing) * 40);\n }\n .tw\\:h-48 {\n height: calc(var(--tw-spacing) * 48);\n }\n .tw\\:h-\\[2em\\] {\n height: 2em;\n }\n .tw\\:h-\\[calc\\(50\\%-0\\.75em\\)\\] {\n height: calc(50% - 0.75em);\n }\n .tw\\:h-\\[calc\\(50\\%-1\\.5em\\)\\] {\n height: calc(50% - 1.5em);\n }\n .tw\\:h-\\[calc\\(100\\%-1rem\\)\\] {\n height: calc(100% - 1rem);\n }\n .tw\\:h-\\[calc\\(100dvh-22px\\)\\] {\n height: calc(100dvh - 22px);\n }\n .tw\\:h-\\[calc\\(100dvh-64px\\)\\] {\n height: calc(100dvh - 64px);\n }\n .tw\\:h-\\[calc\\(100dvh-268px\\)\\] {\n height: calc(100dvh - 268px);\n }\n .tw\\:h-fit {\n height: fit-content;\n }\n .tw\\:h-full {\n height: 100%;\n }\n .tw\\:max-h-64 {\n max-height: calc(var(--tw-spacing) * 64);\n }\n .tw\\:max-h-\\[calc\\(100dvh-96px\\)\\] {\n max-height: calc(100dvh - 96px);\n }\n .tw\\:max-h-\\[calc\\(100dvh-152px\\)\\] {\n max-height: calc(100dvh - 152px);\n }\n .tw\\:min-h-0 {\n min-height: calc(var(--tw-spacing) * 0);\n }\n .tw\\:min-h-56 {\n min-height: var(--tw-min-height-56);\n }\n .tw\\:min-h-80 {\n min-height: var(--tw-min-height-80);\n }\n .tw\\:min-h-\\[5em\\] {\n min-height: 5em;\n }\n .tw\\:min-h-\\[21px\\] {\n min-height: 21px;\n }\n .tw\\:btn-block {\n width: 100%;\n }\n .tw\\:loading-lg {\n width: calc(var(--size-selector, 0.25rem) * 7);\n }\n .tw\\:loading-md {\n width: calc(var(--size-selector, 0.25rem) * 6);\n }\n .tw\\:loading-sm {\n width: calc(var(--size-selector, 0.25rem) * 5);\n }\n .tw\\:w-1 {\n width: calc(var(--tw-spacing) * 1);\n }\n .tw\\:w-2 {\n width: calc(var(--tw-spacing) * 2);\n }\n .tw\\:w-4 {\n width: calc(var(--tw-spacing) * 4);\n }\n .tw\\:w-5 {\n width: calc(var(--tw-spacing) * 5);\n }\n .tw\\:w-6 {\n width: calc(var(--tw-spacing) * 6);\n }\n .tw\\:w-8 {\n width: calc(var(--tw-spacing) * 8);\n }\n .tw\\:w-10 {\n width: calc(var(--tw-spacing) * 10);\n }\n .tw\\:w-12 {\n width: calc(var(--tw-spacing) * 12);\n }\n .tw\\:w-14 {\n width: calc(var(--tw-spacing) * 14);\n }\n .tw\\:w-20 {\n width: calc(var(--tw-spacing) * 20);\n }\n .tw\\:w-28 {\n width: calc(var(--tw-spacing) * 28);\n }\n .tw\\:w-36 {\n width: calc(var(--tw-spacing) * 36);\n }\n .tw\\:w-48 {\n width: calc(var(--tw-spacing) * 48);\n }\n .tw\\:w-52 {\n width: var(--tw-container-52);\n }\n .tw\\:w-80 {\n width: calc(var(--tw-spacing) * 80);\n }\n .tw\\:w-83 {\n width: calc(var(--tw-spacing) * 83);\n }\n .tw\\:w-96 {\n width: calc(var(--tw-spacing) * 96);\n }\n .tw\\:w-\\[calc\\(100\\%-32px\\)\\] {\n width: calc(100% - 32px);\n }\n .tw\\:w-\\[calc\\(100vw-2rem\\)\\] {\n width: calc(100vw - 2rem);\n }\n .tw\\:w-fit {\n width: fit-content;\n }\n .tw\\:w-full {\n width: 100%;\n }\n .tw\\:w-xl {\n width: var(--tw-container-xl);\n }\n .tw\\:max-w-3xl {\n max-width: var(--tw-container-3xl);\n }\n .tw\\:max-w-69 {\n max-width: calc(var(--tw-spacing) * 69);\n }\n .tw\\:max-w-\\[17rem\\] {\n max-width: 17rem;\n }\n .tw\\:max-w-\\[22rem\\] {\n max-width: 22rem;\n }\n .tw\\:max-w-\\[calc\\(100\\%-60px\\)\\] {\n max-width: calc(100% - 60px);\n }\n .tw\\:max-w-full {\n max-width: 100%;\n }\n .tw\\:max-w-xl {\n max-width: var(--tw-container-xl);\n }\n .tw\\:max-w-xs {\n max-width: var(--tw-container-xs);\n }\n .tw\\:min-w-0 {\n min-width: calc(var(--tw-spacing) * 0);\n }\n .tw\\:min-w-80 {\n min-width: var(--tw-min-width-80);\n }\n .tw\\:min-w-\\[8rem\\] {\n min-width: 8rem;\n }\n .tw\\:min-w-\\[10\\.4em\\] {\n min-width: 10.4em;\n }\n .tw\\:min-w-\\[10em\\] {\n min-width: 10em;\n }\n .tw\\:min-w-fit {\n min-width: fit-content;\n }\n .tw\\:flex-1 {\n flex: 1;\n }\n .tw\\:flex-none {\n flex: none;\n }\n .tw\\:shrink {\n flex-shrink: 1;\n }\n .tw\\:grow {\n flex-grow: 1;\n }\n .tw\\:basis-1\\/5 {\n flex-basis: calc(1/5 * 100%);\n }\n .tw\\:basis-2\\/5 {\n flex-basis: calc(2/5 * 100%);\n }\n .tw\\:-translate-x-1\\/2 {\n --tw-translate-x: calc(calc(1/2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .tw\\:-translate-x-full {\n --tw-translate-x: -100%;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .tw\\:translate-x-0 {\n --tw-translate-x: calc(var(--tw-spacing) * 0);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .tw\\:translate-x-1\\/3 {\n --tw-translate-x: calc(1/3 * 100%);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .tw\\:-translate-y-1\\/3 {\n --tw-translate-y: calc(calc(1/3 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .tw\\:rotate-180 {\n rotate: 180deg;\n }\n .tw\\:transform {\n transform: var(--tw-rotate-x) var(--tw-rotate-y) var(--tw-rotate-z) var(--tw-skew-x) var(--tw-skew-y);\n }\n .tw\\:animate-none {\n animation: none;\n }\n .tw\\:cursor-pointer {\n cursor: pointer;\n }\n .tw\\:cursor-text {\n cursor: text;\n }\n .tw\\:resize-none {\n resize: none;\n }\n .tw\\:list-inside {\n list-style-position: inside;\n }\n .tw\\:list-decimal {\n list-style-type: decimal;\n }\n .tw\\:list-disc {\n list-style-type: disc;\n }\n .tw\\:list-none {\n list-style-type: none;\n }\n .tw\\:columns-1 {\n columns: 1;\n }\n .tw\\:break-inside-avoid {\n break-inside: avoid;\n }\n .tw\\:stats-horizontal {\n grid-auto-flow: column;\n overflow-x: auto;\n .tw\\:stat:not(:last-child) {\n border-inline-end: var(--border) dashed color-mix(in oklab, currentColor 10%, #0000);\n border-block-end: none;\n }\n }\n .tw\\:grid-flow-col {\n grid-auto-flow: column;\n }\n .tw\\:grid-cols-1 {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n }\n .tw\\:grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n .tw\\:grid-cols-3 {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n .tw\\:grid-cols-6 {\n grid-template-columns: repeat(6, minmax(0, 1fr));\n }\n .tw\\:flex-col {\n flex-direction: column;\n }\n .tw\\:flex-row {\n flex-direction: row;\n }\n .tw\\:flex-wrap {\n flex-wrap: wrap;\n }\n .tw\\:place-content-center {\n place-content: center;\n }\n .tw\\:place-content-end {\n place-content: end;\n }\n .tw\\:place-items-center {\n place-items: center;\n }\n .tw\\:place-items-end {\n place-items: end;\n }\n .tw\\:items-center {\n align-items: center;\n }\n .tw\\:justify-between {\n justify-content: space-between;\n }\n .tw\\:justify-center {\n justify-content: center;\n }\n .tw\\:justify-end {\n justify-content: flex-end;\n }\n .tw\\:justify-normal {\n justify-content: normal;\n }\n .tw\\:justify-start {\n justify-content: flex-start;\n }\n .tw\\:gap-2 {\n gap: calc(var(--tw-spacing) * 2);\n }\n .tw\\:gap-6 {\n gap: calc(var(--tw-spacing) * 6);\n }\n .tw\\:space-y-4 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--tw-spacing) * 4) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--tw-spacing) * 4) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .tw\\:space-y-6 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--tw-spacing) * 6) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--tw-spacing) * 6) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .tw\\:space-x-2 {\n :where(& > :not(:last-child)) {\n --tw-space-x-reverse: 0;\n margin-inline-start: calc(calc(var(--tw-spacing) * 2) * var(--tw-space-x-reverse));\n margin-inline-end: calc(calc(var(--tw-spacing) * 2) * calc(1 - var(--tw-space-x-reverse)));\n }\n }\n .tw\\:space-x-3 {\n :where(& > :not(:last-child)) {\n --tw-space-x-reverse: 0;\n margin-inline-start: calc(calc(var(--tw-spacing) * 3) * var(--tw-space-x-reverse));\n margin-inline-end: calc(calc(var(--tw-spacing) * 3) * calc(1 - var(--tw-space-x-reverse)));\n }\n }\n .tw\\:place-self-center {\n place-self: center;\n }\n .tw\\:place-self-end {\n place-self: end;\n }\n .tw\\:self-center {\n align-self: center;\n }\n .tw\\:truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .tw\\:overflow-auto {\n overflow: auto;\n }\n .tw\\:overflow-hidden {\n overflow: hidden;\n }\n .tw\\:overflow-scroll {\n overflow: scroll;\n }\n .tw\\:overflow-x-auto {\n overflow-x: auto;\n }\n .tw\\:overflow-x-hidden {\n overflow-x: hidden;\n }\n .tw\\:overflow-y-auto {\n overflow-y: auto;\n }\n .tw\\:rounded {\n border-radius: 0.25rem;\n }\n .tw\\:rounded-2xl {\n border-radius: var(--tw-radius-2xl);\n }\n .tw\\:rounded-box {\n border-radius: var(--radius-box);\n }\n .tw\\:rounded-box {\n border-radius: var(--radius-box);\n }\n .tw\\:rounded-full {\n border-radius: calc(infinity * 1px);\n }\n .tw\\:rounded-md {\n border-radius: var(--tw-radius-md);\n }\n .tw\\:rounded-none {\n border-radius: 0;\n }\n .tw\\:rounded-none\\! {\n border-radius: 0 !important;\n }\n .tw\\:rounded-xl {\n border-radius: var(--tw-radius-xl);\n }\n .tw\\:rounded-tl-none {\n border-top-left-radius: 0;\n }\n .tw\\:rounded-tr-md {\n border-top-right-radius: var(--tw-radius-md);\n }\n .tw\\:rounded-b-none {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n }\n .tw\\:rounded-br-md {\n border-bottom-right-radius: var(--tw-radius-md);\n }\n .tw\\:border {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n .tw\\:border-0 {\n border-style: var(--tw-border-style);\n border-width: 0px;\n }\n .tw\\:border-1 {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n .tw\\:border-4 {\n border-style: var(--tw-border-style);\n border-width: 4px;\n }\n .tw\\:border-\\[1px\\] {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n .tw\\:border-t-0 {\n border-top-style: var(--tw-border-style);\n border-top-width: 0px;\n }\n .tw\\:border-dashed {\n --tw-border-style: dashed;\n border-style: dashed;\n }\n .tw\\:border-none {\n --tw-border-style: none;\n border-style: none;\n }\n .tw\\:border-\\(--fallback-bc\\,oklch\\(var\\(--bc\\)\\/0\\.2\\)\\) {\n border-color: var(--fallback-bc,oklch(var(--bc)/0.2));\n }\n .tw\\:border-base-200 {\n border-color: var(--color-base-200);\n }\n .tw\\:border-base-300 {\n border-color: var(--color-base-300);\n }\n .tw\\:border-current {\n border-color: currentColor;\n }\n .tw\\:border-current\\/10 {\n border-color: color-mix(in oklab, currentColor 10%, transparent);\n }\n .tw\\:border-gray-300 {\n border-color: var(--tw-color-gray-300);\n }\n .tw\\:bg-base-100 {\n background-color: var(--color-base-100);\n }\n .tw\\:bg-base-200 {\n background-color: var(--color-base-200);\n }\n .tw\\:bg-base-300 {\n background-color: var(--color-base-300);\n }\n .tw\\:bg-gray-200 {\n background-color: var(--tw-color-gray-200);\n }\n .tw\\:bg-neutral-content {\n background-color: var(--color-neutral-content);\n }\n .tw\\:bg-primary {\n background-color: var(--color-primary);\n }\n .tw\\:bg-slate-200 {\n background-color: var(--tw-color-slate-200);\n }\n .tw\\:bg-transparent {\n background-color: transparent;\n }\n .tw\\:bg-white {\n background-color: var(--tw-color-white);\n }\n .tw\\:fill-current {\n fill: currentColor;\n }\n .tw\\:stroke-3 {\n stroke-width: 3;\n }\n .tw\\:stroke-\\[2\\.5\\] {\n stroke-width: 2.5;\n }\n .tw\\:object-cover {\n object-fit: cover;\n }\n .tw\\:checkbox-xs {\n padding: 0.125rem;\n --size: calc(var(--size-selector, 0.25rem) * 4);\n }\n .tw\\:p-0 {\n padding: calc(var(--tw-spacing) * 0);\n }\n .tw\\:p-0\\! {\n padding: calc(var(--tw-spacing) * 0) !important;\n }\n .tw\\:p-1 {\n padding: calc(var(--tw-spacing) * 1);\n }\n .tw\\:p-2 {\n padding: calc(var(--tw-spacing) * 2);\n }\n .tw\\:p-3 {\n padding: calc(var(--tw-spacing) * 3);\n }\n .tw\\:p-4 {\n padding: calc(var(--tw-spacing) * 4);\n }\n .tw\\:p-4\\! {\n padding: calc(var(--tw-spacing) * 4) !important;\n }\n .tw\\:p-6 {\n padding: calc(var(--tw-spacing) * 6);\n }\n .tw\\:p-9\\! {\n padding: calc(var(--tw-spacing) * 9) !important;\n }\n .tw\\:p-\\[1px\\] {\n padding: 1px;\n }\n .tw\\:px-0 {\n padding-inline: calc(var(--tw-spacing) * 0);\n }\n .tw\\:px-2 {\n padding-inline: calc(var(--tw-spacing) * 2);\n }\n .tw\\:px-4 {\n padding-inline: calc(var(--tw-spacing) * 4);\n }\n .tw\\:px-6 {\n padding-inline: calc(var(--tw-spacing) * 6);\n }\n .tw\\:px-8 {\n padding-inline: calc(var(--tw-spacing) * 8);\n }\n .tw\\:py-0\\.5 {\n padding-block: calc(var(--tw-spacing) * 0.5);\n }\n .tw\\:py-1 {\n padding-block: calc(var(--tw-spacing) * 1);\n }\n .tw\\:py-2 {\n padding-block: calc(var(--tw-spacing) * 2);\n }\n .tw\\:ps-2\\! {\n padding-inline-start: calc(var(--tw-spacing) * 2) !important;\n }\n .tw\\:pe-2\\! {\n padding-inline-end: calc(var(--tw-spacing) * 2) !important;\n }\n .tw\\:pt-0 {\n padding-top: calc(var(--tw-spacing) * 0);\n }\n .tw\\:pt-1 {\n padding-top: calc(var(--tw-spacing) * 1);\n }\n .tw\\:pt-2 {\n padding-top: calc(var(--tw-spacing) * 2);\n }\n .tw\\:pt-4 {\n padding-top: calc(var(--tw-spacing) * 4);\n }\n .tw\\:pt-6 {\n padding-top: calc(var(--tw-spacing) * 6);\n }\n .tw\\:pr-1 {\n padding-right: calc(var(--tw-spacing) * 1);\n }\n .tw\\:pr-4 {\n padding-right: calc(var(--tw-spacing) * 4);\n }\n .tw\\:pr-12 {\n padding-right: calc(var(--tw-spacing) * 12);\n }\n .tw\\:pb-0 {\n padding-bottom: calc(var(--tw-spacing) * 0);\n }\n .tw\\:pb-1 {\n padding-bottom: calc(var(--tw-spacing) * 1);\n }\n .tw\\:pb-2 {\n padding-bottom: calc(var(--tw-spacing) * 2);\n }\n .tw\\:pb-4 {\n padding-bottom: calc(var(--tw-spacing) * 4);\n }\n .tw\\:pb-6 {\n padding-bottom: calc(var(--tw-spacing) * 6);\n }\n .tw\\:pl-2 {\n padding-left: calc(var(--tw-spacing) * 2);\n }\n .tw\\:text-center {\n text-align: center;\n }\n .tw\\:text-right {\n text-align: right;\n }\n .tw\\:align-middle {\n vertical-align: middle;\n }\n .tw\\:text-2xl {\n font-size: var(--tw-text-2xl);\n line-height: var(--tw-leading, var(--tw-text-2xl--line-height));\n }\n .tw\\:text-3xl {\n font-size: var(--tw-text-3xl);\n line-height: var(--tw-leading, var(--tw-text-3xl--line-height));\n }\n .tw\\:text-6xl {\n font-size: var(--tw-text-6xl);\n line-height: var(--tw-leading, var(--tw-text-6xl--line-height));\n }\n .tw\\:text-base {\n font-size: var(--tw-text-base);\n line-height: var(--tw-leading, var(--tw-text-base--line-height));\n }\n .tw\\:text-lg {\n font-size: var(--tw-text-lg);\n line-height: var(--tw-leading, var(--tw-text-lg--line-height));\n }\n .tw\\:text-sm {\n font-size: var(--tw-text-sm);\n line-height: var(--tw-leading, var(--tw-text-sm--line-height));\n }\n .tw\\:text-xl {\n font-size: var(--tw-text-xl);\n line-height: var(--tw-leading, var(--tw-text-xl--line-height));\n }\n .tw\\:text-xs {\n font-size: var(--tw-text-xs);\n line-height: var(--tw-leading, var(--tw-text-xs--line-height));\n }\n .tw\\:text-map {\n font-size: var(--tw-text-map);\n }\n .tw\\:leading-3 {\n --tw-leading: calc(var(--tw-spacing) * 3);\n line-height: calc(var(--tw-spacing) * 3);\n }\n .tw\\:leading-5 {\n --tw-leading: calc(var(--tw-spacing) * 5);\n line-height: calc(var(--tw-spacing) * 5);\n }\n .tw\\:leading-map {\n --tw-leading: var(--tw-leading-map);\n line-height: var(--tw-leading-map);\n }\n .tw\\:font-bold {\n --tw-font-weight: var(--tw-font-weight-bold);\n font-weight: var(--tw-font-weight-bold);\n }\n .tw\\:font-medium {\n --tw-font-weight: var(--tw-font-weight-medium);\n font-weight: var(--tw-font-weight-medium);\n }\n .tw\\:font-normal {\n --tw-font-weight: var(--tw-font-weight-normal);\n font-weight: var(--tw-font-weight-normal);\n }\n .tw\\:font-semibold {\n --tw-font-weight: var(--tw-font-weight-semibold);\n font-weight: var(--tw-font-weight-semibold);\n }\n .tw\\:text-ellipsis {\n text-overflow: ellipsis;\n }\n .tw\\:whitespace-nowrap {\n white-space: nowrap;\n }\n .tw\\:checkbox-success {\n color: var(--color-success-content);\n --input-color: var(--color-success);\n }\n .tw\\:text-base-content {\n color: var(--color-base-content);\n }\n .tw\\:text-base-content\\! {\n color: var(--color-base-content) !important;\n }\n .tw\\:text-current {\n color: currentColor;\n }\n .tw\\:text-error {\n color: var(--color-error);\n }\n .tw\\:text-error\\! {\n color: var(--color-error) !important;\n }\n .tw\\:text-gray-400 {\n color: var(--tw-color-gray-400);\n }\n .tw\\:text-gray-500 {\n color: var(--tw-color-gray-500);\n }\n .tw\\:text-gray-600 {\n color: var(--tw-color-gray-600);\n }\n .tw\\:text-green-500 {\n color: var(--tw-color-green-500);\n }\n .tw\\:text-neutral-content {\n color: var(--color-neutral-content);\n }\n .tw\\:text-primary {\n color: var(--color-primary);\n }\n .tw\\:text-red-500 {\n color: var(--tw-color-red-500);\n }\n .tw\\:text-white {\n color: var(--tw-color-white);\n }\n .tw\\:text-zinc-500 {\n color: var(--tw-color-zinc-500);\n }\n .tw\\:normal-case {\n text-transform: none;\n }\n .tw\\:italic {\n font-style: italic;\n }\n .tw\\:underline {\n text-decoration-line: underline;\n }\n .tw\\:opacity-0 {\n opacity: 0%;\n }\n .tw\\:opacity-50 {\n opacity: 50%;\n }\n .tw\\:opacity-60 {\n opacity: 60%;\n }\n .tw\\:opacity-100 {\n opacity: 100%;\n }\n .tw\\:shadow {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .tw\\:shadow-2xl {\n --tw-shadow: 0 25px 50px -12px var(--tw-shadow-color, rgb(0 0 0 / 0.25));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .tw\\:shadow-lg {\n --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .tw\\:shadow-md {\n --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .tw\\:shadow-sm {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .tw\\:shadow-xl {\n --tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 8px 10px -6px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .tw\\:btn-ghost {\n &:not(.tw\\:btn-active, :hover, :active:focus, :focus-visible) {\n --btn-shadow: \"\";\n --btn-bg: #0000;\n --btn-border: #0000;\n --btn-noise: none;\n &:not(:disabled, [disabled], .tw\\:btn-disabled) {\n outline-color: currentColor;\n --btn-fg: currentColor;\n }\n }\n }\n .tw\\:drop-shadow-md {\n --tw-drop-shadow: drop-shadow(var(--tw-drop-shadow-md));\n filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);\n }\n .tw\\:backdrop-brightness-75 {\n --tw-backdrop-brightness: brightness(75%);\n -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);\n backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);\n }\n .tw\\:transition {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter;\n transition-timing-function: var(--tw-ease, var(--tw-default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--tw-default-transition-duration));\n }\n .tw\\:transition-all {\n transition-property: all;\n transition-timing-function: var(--tw-ease, var(--tw-default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--tw-default-transition-duration));\n }\n .tw\\:transition-opacity {\n transition-property: opacity;\n transition-timing-function: var(--tw-ease, var(--tw-default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--tw-default-transition-duration));\n }\n .tw\\:transition-none {\n transition-property: none;\n }\n .tw\\:delay-400 {\n transition-delay: 400ms;\n }\n .tw\\:duration-200 {\n --tw-duration: 200ms;\n transition-duration: 200ms;\n }\n .tw\\:duration-300 {\n --tw-duration: 300ms;\n transition-duration: 300ms;\n }\n .tw\\:duration-500 {\n --tw-duration: 500ms;\n transition-duration: 500ms;\n }\n .tw\\:ease-in {\n --tw-ease: var(--tw-ease-in);\n transition-timing-function: var(--tw-ease-in);\n }\n .tw\\:btn-lg {\n --fontsize: 1.125rem;\n --btn-p: 1.25rem;\n --size: calc(var(--size-field, 0.25rem) * 12);\n }\n .tw\\:btn-sm {\n --fontsize: 0.75rem;\n --btn-p: 0.75rem;\n --size: calc(var(--size-field, 0.25rem) * 8);\n }\n .tw\\:btn-xs {\n --fontsize: 0.6875rem;\n --btn-p: 0.5rem;\n --size: calc(var(--size-field, 0.25rem) * 6);\n }\n .tw\\:badge-success {\n --badge-color: var(--color-success);\n --badge-fg: var(--color-success-content);\n }\n .tw\\:btn-error {\n --btn-color: var(--color-error);\n --btn-fg: var(--color-error-content);\n }\n .tw\\:btn-neutral {\n --btn-color: var(--color-neutral);\n --btn-fg: var(--color-neutral-content);\n }\n .tw\\:btn-primary {\n --btn-color: var(--color-primary);\n --btn-fg: var(--color-primary-content);\n }\n .tw\\:loading-spinner {\n mask-image: url(\"data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E\");\n }\n .tw\\:mask-circle {\n mask-image: url(\"data:image/svg+xml,%3csvg width='200' height='200' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle fill='black' cx='100' cy='100' r='100' fill-rule='evenodd'/%3e%3c/svg%3e\");\n }\n .tw\\:mask-hexagon-2 {\n mask-image: url(\"data:image/svg+xml,%3csvg width='200' height='182' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M64.786 181.4c-9.196 0-20.063-6.687-25.079-14.21L3.762 105.33c-5.016-8.36-5.016-20.9 0-29.259l35.945-61.86C44.723 5.851 55.59 0 64.786 0h71.055c9.196 0 20.063 6.688 25.079 14.211l35.945 61.86c4.18 8.36 4.18 20.899 0 29.258l-35.945 61.86c-4.18 8.36-15.883 14.211-25.079 14.211H64.786Z' fill='black' fill-rule='nonzero'/%3e%3c/svg%3e\");\n }\n .tw\\:mask-squircle {\n mask-image: url(\"data:image/svg+xml,%3csvg width='200' height='200' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M100 0C20 0 0 20 0 100s20 100 100 100 100-20 100-100S180 0 100 0Z'/%3e%3c/svg%3e\");\n }\n .tw\\:hover\\:cursor-pointer {\n &:hover {\n @media (hover: hover) {\n cursor: pointer;\n }\n }\n }\n .tw\\:hover\\:bg-base-200 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-base-200);\n }\n }\n }\n .tw\\:hover\\:bg-slate-300 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--tw-color-slate-300);\n }\n }\n }\n .tw\\:hover\\:bg-transparent {\n &:hover {\n @media (hover: hover) {\n background-color: transparent;\n }\n }\n }\n .tw\\:hover\\:font-bold {\n &:hover {\n @media (hover: hover) {\n --tw-font-weight: var(--tw-font-weight-bold);\n font-weight: var(--tw-font-weight-bold);\n }\n }\n }\n .tw\\:hover\\:text-primary {\n &:hover {\n @media (hover: hover) {\n color: var(--color-primary);\n }\n }\n }\n .tw\\:hover\\:underline {\n &:hover {\n @media (hover: hover) {\n text-decoration-line: underline;\n }\n }\n }\n .tw\\:focus\\:border-indigo-500 {\n &:focus {\n border-color: var(--tw-color-indigo-500);\n }\n }\n .tw\\:focus\\:ring-0 {\n &:focus {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentColor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .tw\\:focus\\:ring-indigo-500 {\n &:focus {\n --tw-ring-color: var(--tw-color-indigo-500);\n }\n }\n .tw\\:focus\\:outline-hidden {\n &:focus {\n --tw-outline-style: none;\n outline-style: none;\n @media (forced-colors: active) {\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n }\n }\n .tw\\:focus\\:outline-none {\n &:focus {\n --tw-outline-style: none;\n outline-style: none;\n }\n }\n .tw\\:sm\\:left-auto\\! {\n @media (width >= 40rem) {\n left: auto !important;\n }\n }\n .tw\\:sm\\:w-2xl {\n @media (width >= 40rem) {\n width: var(--tw-container-2xl);\n }\n }\n .tw\\:sm\\:grid-cols-2 {\n @media (width >= 40rem) {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n }\n .tw\\:sm\\:text-sm {\n @media (width >= 40rem) {\n font-size: var(--tw-text-sm);\n line-height: var(--tw-leading, var(--tw-text-sm--line-height));\n }\n }\n .tw\\:md\\:mb-0 {\n @media (width >= 48rem) {\n margin-bottom: calc(var(--tw-spacing) * 0);\n }\n }\n .tw\\:md\\:flex {\n @media (width >= 48rem) {\n display: flex;\n }\n }\n .tw\\:md\\:hidden {\n @media (width >= 48rem) {\n display: none;\n }\n }\n .tw\\:md\\:w-1\\/2 {\n @media (width >= 48rem) {\n width: calc(1/2 * 100%);\n }\n }\n .tw\\:md\\:w-\\[calc\\(50\\%-32px\\)\\] {\n @media (width >= 48rem) {\n width: calc(50% - 32px);\n }\n }\n .tw\\:md\\:columns-2 {\n @media (width >= 48rem) {\n columns: 2;\n }\n }\n .tw\\:md\\:grid-cols-1 {\n @media (width >= 48rem) {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n }\n }\n .tw\\:md\\:grid-cols-2 {\n @media (width >= 48rem) {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n }\n .tw\\:md\\:space-x-4 {\n @media (width >= 48rem) {\n :where(& > :not(:last-child)) {\n --tw-space-x-reverse: 0;\n margin-inline-start: calc(calc(var(--tw-spacing) * 4) * var(--tw-space-x-reverse));\n margin-inline-end: calc(calc(var(--tw-spacing) * 4) * calc(1 - var(--tw-space-x-reverse)));\n }\n }\n }\n .tw\\:md\\:text-2xl {\n @media (width >= 48rem) {\n font-size: var(--tw-text-2xl);\n line-height: var(--tw-leading, var(--tw-text-2xl--line-height));\n }\n }\n .tw\\:lg\\:columns-3 {\n @media (width >= 64rem) {\n columns: 3;\n }\n }\n .tw\\:lg\\:grid-cols-1 {\n @media (width >= 64rem) {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n }\n }\n .tw\\:xl\\:max-w-6xl {\n @media (width >= 80rem) {\n max-width: var(--tw-container-6xl);\n }\n }\n .tw\\:xl\\:grid-cols-1 {\n @media (width >= 80rem) {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n }\n }\n .tw\\:xl\\:text-3xl {\n @media (width >= 80rem) {\n font-size: var(--tw-text-3xl);\n line-height: var(--tw-leading, var(--tw-text-3xl--line-height));\n }\n }\n .tw\\:2xl\\:columns-4 {\n @media (width >= 96rem) {\n columns: 4;\n }\n }\n .tw\\:2xl\\:grid-cols-2 {\n @media (width >= 96rem) {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n }\n .tw\\:dark\\:bg-zinc-800 {\n @media (prefers-color-scheme: dark) {\n background-color: var(--tw-color-zinc-800);\n }\n }\n}\n@layer base {\n *,\n ::after,\n ::before,\n ::backdrop,\n ::file-selector-button {\n border-color: var(--color-gray-200, currentColor);\n }\n}\n.modal {\n z-index: 1200 !important;\n}\n.menu li a {\n border-radius: 10px;\n}\n.modal {\n z-index: 1200 !important;\n max-height: 100dvh;\n}\n.modal-box {\n max-height: calc(100dvh - 2em);\n}\n@layer base {\n :where(:root),:root:has(input.theme-controller[value=light]:checked),[data-theme=light] {\n color-scheme: light;\n --color-base-100: oklch(100% 0 0);\n --color-base-200: oklch(98% 0 0);\n --color-base-300: oklch(95% 0 0);\n --color-base-content: oklch(21% 0.006 285.885);\n --color-primary: oklch(45% 0.24 277.023);\n --color-primary-content: oklch(93% 0.034 272.788);\n --color-secondary: oklch(65% 0.241 354.308);\n --color-secondary-content: oklch(94% 0.028 342.258);\n --color-accent: oklch(77% 0.152 181.912);\n --color-accent-content: oklch(38% 0.063 188.416);\n --color-neutral: oklch(14% 0.005 285.823);\n --color-neutral-content: oklch(92% 0.004 286.32);\n --color-info: oklch(74% 0.16 232.661);\n --color-info-content: oklch(29% 0.066 243.157);\n --color-success: oklch(76% 0.177 163.223);\n --color-success-content: oklch(37% 0.077 168.94);\n --color-warning: oklch(82% 0.189 84.429);\n --color-warning-content: oklch(41% 0.112 45.904);\n --color-error: oklch(71% 0.194 13.428);\n --color-error-content: oklch(27% 0.105 12.094);\n --radius-selector: 0.5rem;\n --radius-field: 0.25rem;\n --radius-box: 0.5rem;\n --size-selector: 0.25rem;\n --size-field: 0.25rem;\n --border: 1px;\n --depth: 1;\n --noise: 0;\n }\n}\n@layer base {\n @media (prefers-color-scheme: dark) {\n :root {\n color-scheme: dark;\n --color-base-100: oklch(25.33% 0.016 252.42);\n --color-base-200: oklch(23.26% 0.014 253.1);\n --color-base-300: oklch(21.15% 0.012 254.09);\n --color-base-content: oklch(97.807% 0.029 256.847);\n --color-primary: oklch(58% 0.233 277.117);\n --color-primary-content: oklch(96% 0.018 272.314);\n --color-secondary: oklch(65% 0.241 354.308);\n --color-secondary-content: oklch(94% 0.028 342.258);\n --color-accent: oklch(77% 0.152 181.912);\n --color-accent-content: oklch(38% 0.063 188.416);\n --color-neutral: oklch(14% 0.005 285.823);\n --color-neutral-content: oklch(92% 0.004 286.32);\n --color-info: oklch(74% 0.16 232.661);\n --color-info-content: oklch(29% 0.066 243.157);\n --color-success: oklch(76% 0.177 163.223);\n --color-success-content: oklch(37% 0.077 168.94);\n --color-warning: oklch(82% 0.189 84.429);\n --color-warning-content: oklch(41% 0.112 45.904);\n --color-error: oklch(71% 0.194 13.428);\n --color-error-content: oklch(27% 0.105 12.094);\n --radius-selector: 0.5rem;\n --radius-field: 0.25rem;\n --radius-box: 0.5rem;\n --size-selector: 0.25rem;\n --size-field: 0.25rem;\n --border: 1px;\n --depth: 1;\n --noise: 0;\n }\n }\n}\n@layer base {\n :root:has(input.theme-controller[value=light]:checked),[data-theme=light] {\n color-scheme: light;\n --color-base-100: oklch(100% 0 0);\n --color-base-200: oklch(98% 0 0);\n --color-base-300: oklch(95% 0 0);\n --color-base-content: oklch(21% 0.006 285.885);\n --color-primary: oklch(45% 0.24 277.023);\n --color-primary-content: oklch(93% 0.034 272.788);\n --color-secondary: oklch(65% 0.241 354.308);\n --color-secondary-content: oklch(94% 0.028 342.258);\n --color-accent: oklch(77% 0.152 181.912);\n --color-accent-content: oklch(38% 0.063 188.416);\n --color-neutral: oklch(14% 0.005 285.823);\n --color-neutral-content: oklch(92% 0.004 286.32);\n --color-info: oklch(74% 0.16 232.661);\n --color-info-content: oklch(29% 0.066 243.157);\n --color-success: oklch(76% 0.177 163.223);\n --color-success-content: oklch(37% 0.077 168.94);\n --color-warning: oklch(82% 0.189 84.429);\n --color-warning-content: oklch(41% 0.112 45.904);\n --color-error: oklch(71% 0.194 13.428);\n --color-error-content: oklch(27% 0.105 12.094);\n --radius-selector: 0.5rem;\n --radius-field: 0.25rem;\n --radius-box: 0.5rem;\n --size-selector: 0.25rem;\n --size-field: 0.25rem;\n --border: 1px;\n --depth: 1;\n --noise: 0;\n }\n}\n@layer base {\n :root:has(input.theme-controller[value=dark]:checked),[data-theme=dark] {\n color-scheme: dark;\n --color-base-100: oklch(25.33% 0.016 252.42);\n --color-base-200: oklch(23.26% 0.014 253.1);\n --color-base-300: oklch(21.15% 0.012 254.09);\n --color-base-content: oklch(97.807% 0.029 256.847);\n --color-primary: oklch(58% 0.233 277.117);\n --color-primary-content: oklch(96% 0.018 272.314);\n --color-secondary: oklch(65% 0.241 354.308);\n --color-secondary-content: oklch(94% 0.028 342.258);\n --color-accent: oklch(77% 0.152 181.912);\n --color-accent-content: oklch(38% 0.063 188.416);\n --color-neutral: oklch(14% 0.005 285.823);\n --color-neutral-content: oklch(92% 0.004 286.32);\n --color-info: oklch(74% 0.16 232.661);\n --color-info-content: oklch(29% 0.066 243.157);\n --color-success: oklch(76% 0.177 163.223);\n --color-success-content: oklch(37% 0.077 168.94);\n --color-warning: oklch(82% 0.189 84.429);\n --color-warning-content: oklch(41% 0.112 45.904);\n --color-error: oklch(71% 0.194 13.428);\n --color-error-content: oklch(27% 0.105 12.094);\n --radius-selector: 0.5rem;\n --radius-field: 0.25rem;\n --radius-box: 0.5rem;\n --size-selector: 0.25rem;\n --size-field: 0.25rem;\n --border: 1px;\n --depth: 1;\n --noise: 0;\n }\n}\n@layer base {\n :root:has(input.theme-controller[value=valentine]:checked),[data-theme=valentine] {\n color-scheme: light;\n --color-base-100: oklch(97% 0.014 343.198);\n --color-base-200: oklch(94% 0.028 342.258);\n --color-base-300: oklch(89% 0.061 343.231);\n --color-base-content: oklch(52% 0.223 3.958);\n --color-primary: oklch(65% 0.241 354.308);\n --color-primary-content: oklch(100% 0 0);\n --color-secondary: oklch(62% 0.265 303.9);\n --color-secondary-content: oklch(97% 0.014 308.299);\n --color-accent: oklch(82% 0.111 230.318);\n --color-accent-content: oklch(39% 0.09 240.876);\n --color-neutral: oklch(40% 0.153 2.432);\n --color-neutral-content: oklch(89% 0.061 343.231);\n --color-info: oklch(86% 0.127 207.078);\n --color-info-content: oklch(44% 0.11 240.79);\n --color-success: oklch(84% 0.143 164.978);\n --color-success-content: oklch(43% 0.095 166.913);\n --color-warning: oklch(75% 0.183 55.934);\n --color-warning-content: oklch(26% 0.079 36.259);\n --color-error: oklch(63% 0.237 25.331);\n --color-error-content: oklch(97% 0.013 17.38);\n --radius-selector: 1rem;\n --radius-field: 2rem;\n --radius-box: 1rem;\n --size-selector: 0.25rem;\n --size-field: 0.25rem;\n --border: 1px;\n --depth: 0;\n --noise: 0;\n }\n}\n@layer base {\n :root:has(input.theme-controller[value=retro]:checked),[data-theme=retro] {\n color-scheme: light;\n --color-base-100: oklch(91.637% 0.034 90.515);\n --color-base-200: oklch(88.272% 0.049 91.774);\n --color-base-300: oklch(84.133% 0.065 90.856);\n --color-base-content: oklch(41% 0.112 45.904);\n --color-primary: oklch(80% 0.114 19.571);\n --color-primary-content: oklch(39% 0.141 25.723);\n --color-secondary: oklch(92% 0.084 155.995);\n --color-secondary-content: oklch(44% 0.119 151.328);\n --color-accent: oklch(68% 0.162 75.834);\n --color-accent-content: oklch(41% 0.112 45.904);\n --color-neutral: oklch(44% 0.011 73.639);\n --color-neutral-content: oklch(86% 0.005 56.366);\n --color-info: oklch(58% 0.158 241.966);\n --color-info-content: oklch(96% 0.059 95.617);\n --color-success: oklch(51% 0.096 186.391);\n --color-success-content: oklch(96% 0.059 95.617);\n --color-warning: oklch(64% 0.222 41.116);\n --color-warning-content: oklch(96% 0.059 95.617);\n --color-error: oklch(70% 0.191 22.216);\n --color-error-content: oklch(40% 0.123 38.172);\n --radius-selector: 0.25rem;\n --radius-field: 0.25rem;\n --radius-box: 0.5rem;\n --size-selector: 0.25rem;\n --size-field: 0.25rem;\n --border: 1px;\n --depth: 0;\n --noise: 0;\n }\n}\n@layer base {\n :root:has(input.theme-controller[value=aqua]:checked),[data-theme=aqua] {\n color-scheme: dark;\n --color-base-100: oklch(37% 0.146 265.522);\n --color-base-200: oklch(28% 0.091 267.935);\n --color-base-300: oklch(22% 0.091 267.935);\n --color-base-content: oklch(90% 0.058 230.902);\n --color-primary: oklch(85.661% 0.144 198.645);\n --color-primary-content: oklch(40.124% 0.068 197.603);\n --color-secondary: oklch(60.682% 0.108 309.782);\n --color-secondary-content: oklch(96% 0.016 293.756);\n --color-accent: oklch(93.426% 0.102 94.555);\n --color-accent-content: oklch(18.685% 0.02 94.555);\n --color-neutral: oklch(27% 0.146 265.522);\n --color-neutral-content: oklch(80% 0.146 265.522);\n --color-info: oklch(54.615% 0.215 262.88);\n --color-info-content: oklch(90.923% 0.043 262.88);\n --color-success: oklch(62.705% 0.169 149.213);\n --color-success-content: oklch(12.541% 0.033 149.213);\n --color-warning: oklch(66.584% 0.157 58.318);\n --color-warning-content: oklch(27% 0.077 45.635);\n --color-error: oklch(73.95% 0.19 27.33);\n --color-error-content: oklch(14.79% 0.038 27.33);\n --radius-selector: 1rem;\n --radius-field: 0.5rem;\n --radius-box: 1rem;\n --size-selector: 0.25rem;\n --size-field: 0.25rem;\n --border: 1px;\n --depth: 1;\n --noise: 0;\n }\n}\n@layer base {\n :root:has(input.theme-controller[value=cyberpunk]:checked),[data-theme=cyberpunk] {\n color-scheme: light;\n --color-base-100: oklch(94.51% 0.179 104.32);\n --color-base-200: oklch(91.51% 0.179 104.32);\n --color-base-300: oklch(85.51% 0.179 104.32);\n --color-base-content: oklch(0% 0 0);\n --color-primary: oklch(74.22% 0.209 6.35);\n --color-primary-content: oklch(14.844% 0.041 6.35);\n --color-secondary: oklch(83.33% 0.184 204.72);\n --color-secondary-content: oklch(16.666% 0.036 204.72);\n --color-accent: oklch(71.86% 0.217 310.43);\n --color-accent-content: oklch(14.372% 0.043 310.43);\n --color-neutral: oklch(23.04% 0.065 269.31);\n --color-neutral-content: oklch(94.51% 0.179 104.32);\n --color-info: oklch(72.06% 0.191 231.6);\n --color-info-content: oklch(0% 0 0);\n --color-success: oklch(64.8% 0.15 160);\n --color-success-content: oklch(0% 0 0);\n --color-warning: oklch(84.71% 0.199 83.87);\n --color-warning-content: oklch(0% 0 0);\n --color-error: oklch(71.76% 0.221 22.18);\n --color-error-content: oklch(0% 0 0);\n --radius-selector: 0rem;\n --radius-field: 0rem;\n --radius-box: 0rem;\n --size-selector: 0.25rem;\n --size-field: 0.25rem;\n --border: 1px;\n --depth: 0;\n --noise: 0;\n }\n}\n@layer base {\n :root:has(input.theme-controller[value=caramellatte]:checked),[data-theme=caramellatte] {\n color-scheme: light;\n --color-base-100: oklch(98% 0.016 73.684);\n --color-base-200: oklch(95% 0.038 75.164);\n --color-base-300: oklch(90% 0.076 70.697);\n --color-base-content: oklch(40% 0.123 38.172);\n --color-primary: oklch(0% 0 0);\n --color-primary-content: oklch(100% 0 0);\n --color-secondary: oklch(22.45% 0.075 37.85);\n --color-secondary-content: oklch(90% 0.076 70.697);\n --color-accent: oklch(46.44% 0.111 37.85);\n --color-accent-content: oklch(90% 0.076 70.697);\n --color-neutral: oklch(55% 0.195 38.402);\n --color-neutral-content: oklch(98% 0.016 73.684);\n --color-info: oklch(42% 0.199 265.638);\n --color-info-content: oklch(90% 0.076 70.697);\n --color-success: oklch(43% 0.095 166.913);\n --color-success-content: oklch(90% 0.076 70.697);\n --color-warning: oklch(82% 0.189 84.429);\n --color-warning-content: oklch(41% 0.112 45.904);\n --color-error: oklch(70% 0.191 22.216);\n --color-error-content: oklch(39% 0.141 25.723);\n --radius-selector: 2rem;\n --radius-field: 0.5rem;\n --radius-box: 1rem;\n --size-selector: 0.25rem;\n --size-field: 0.25rem;\n --border: 2px;\n --depth: 1;\n --noise: 1;\n }\n}\n@layer base {\n :root:has(input.theme-controller[value=abyss]:checked),[data-theme=abyss] {\n color-scheme: dark;\n --color-base-100: oklch(20% 0.08 209);\n --color-base-200: oklch(15% 0.08 209);\n --color-base-300: oklch(10% 0.08 209);\n --color-base-content: oklch(90% 0.076 70.697);\n --color-primary: oklch(92% 0.2653 125);\n --color-primary-content: oklch(50% 0.2653 125);\n --color-secondary: oklch(83.27% 0.0764 298.3);\n --color-secondary-content: oklch(43.27% 0.0764 298.3);\n --color-accent: oklch(43% 0 0);\n --color-accent-content: oklch(98% 0 0);\n --color-neutral: oklch(30% 0.08 209);\n --color-neutral-content: oklch(90% 0.076 70.697);\n --color-info: oklch(74% 0.16 232.661);\n --color-info-content: oklch(29% 0.066 243.157);\n --color-success: oklch(79% 0.209 151.711);\n --color-success-content: oklch(26% 0.065 152.934);\n --color-warning: oklch(84.8% 0.1962 84.62);\n --color-warning-content: oklch(44.8% 0.1962 84.62);\n --color-error: oklch(65% 0.1985 24.22);\n --color-error-content: oklch(27% 0.1985 24.22);\n --radius-selector: 2rem;\n --radius-field: 0.25rem;\n --radius-box: 0.5rem;\n --size-selector: 0.25rem;\n --size-field: 0.25rem;\n --border: 1px;\n --depth: 1;\n --noise: 0;\n }\n}\n@layer base {\n :root:has(input.theme-controller[value=silk]:checked),[data-theme=silk] {\n color-scheme: light;\n --color-base-100: oklch(97% 0.0035 67.78);\n --color-base-200: oklch(95% 0.0081 61.42);\n --color-base-300: oklch(90% 0.0081 61.42);\n --color-base-content: oklch(40% 0.0081 61.42);\n --color-primary: oklch(23.27% 0.0249 284.3);\n --color-primary-content: oklch(94.22% 0.2505 117.44);\n --color-secondary: oklch(23.27% 0.0249 284.3);\n --color-secondary-content: oklch(73.92% 0.2135 50.94);\n --color-accent: oklch(23.27% 0.0249 284.3);\n --color-accent-content: oklch(88.92% 0.2061 189.9);\n --color-neutral: oklch(20% 0 0);\n --color-neutral-content: oklch(80% 0.0081 61.42);\n --color-info: oklch(80.39% 0.1148 241.68);\n --color-info-content: oklch(30.39% 0.1148 241.68);\n --color-success: oklch(83.92% 0.0901 136.87);\n --color-success-content: oklch(23.92% 0.0901 136.87);\n --color-warning: oklch(83.92% 0.1085 80);\n --color-warning-content: oklch(43.92% 0.1085 80);\n --color-error: oklch(75.1% 0.1814 22.37);\n --color-error-content: oklch(35.1% 0.1814 22.37);\n --radius-selector: 2rem;\n --radius-field: 0.5rem;\n --radius-box: 1rem;\n --size-selector: 0.25rem;\n --size-field: 0.25rem;\n --border: 2px;\n --depth: 1;\n --noise: 0;\n }\n}\n@layer base {\n @property --radialprogress {\n syntax: \"<percentage>\";\n inherits: true;\n initial-value: 0%;\n }\n}\n@layer base {\n :root {\n scrollbar-color: color-mix(in oklch, currentColor 35%, #0000) #0000;\n }\n}\n@layer base {\n :root:has( .modal-open, .modal[open], .modal:target, .modal-toggle:checked, .drawer:not([class*=\"drawer-open\"]) > .drawer-toggle:checked ) {\n overflow: hidden;\n }\n}\n@layer base {\n :root,\n[data-theme] {\n background-color: var(--root-bg, var(--color-base-100));\n color: var(--color-base-content);\n }\n}\n@layer base {\n :root {\n --fx-noise: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='a'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.34' numOctaves='4' stitchTiles='stitch'%3E%3C/feTurbulence%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23a)' opacity='0.2'%3E%3C/rect%3E%3C/svg%3E\");\n }\n .chat {\n --mask-chat: url(\"data:image/svg+xml,%3csvg width='13' height='13' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='M0 11.5004C0 13.0004 2 13.0004 2 13.0004H12H13V0.00036329L12.5 0C12.5 0 11.977 2.09572 11.8581 2.50033C11.6075 3.35237 10.9149 4.22374 9 5.50036C6 7.50036 0 10.0004 0 11.5004Z'/%3e%3c/svg%3e\");\n }\n}\n@layer base {\n :where(\n :root:has(\n .modal-open,\n .modal[open],\n .modal:target,\n .modal-toggle:checked,\n .drawer:not(.drawer-open) > .drawer-toggle:checked\n )\n) {\n scrollbar-gutter: stable;\n background-image: linear-gradient(var(--color-base-100), var(--color-base-100));\n --root-bg: color-mix(in srgb, var(--color-base-100), oklch(0% 0 0) 40%);\n }\n}\n@keyframes skeleton {\n 0% {\n background-position: 150%;\n }\n 100% {\n background-position: -50%;\n }\n}\n@keyframes progress {\n 50% {\n background-position-x: -115%;\n }\n}\n@keyframes radio {\n 0% {\n padding: 5px;\n }\n 50% {\n padding: 3px;\n }\n}\n@keyframes dropdown {\n 0% {\n opacity: 0;\n }\n}\n@keyframes rating {\n 0%, 40% {\n scale: 1.1;\n filter: brightness(1.05) contrast(1.05);\n }\n}\n@keyframes toast {\n 0% {\n scale: 0.9;\n opacity: 0;\n }\n 100% {\n scale: 1;\n opacity: 1;\n }\n}\n@property --tw-translate-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-rotate-x {\n syntax: \"*\";\n inherits: false;\n initial-value: rotateX(0);\n}\n@property --tw-rotate-y {\n syntax: \"*\";\n inherits: false;\n initial-value: rotateY(0);\n}\n@property --tw-rotate-z {\n syntax: \"*\";\n inherits: false;\n initial-value: rotateZ(0);\n}\n@property --tw-skew-x {\n syntax: \"*\";\n inherits: false;\n initial-value: skewX(0);\n}\n@property --tw-skew-y {\n syntax: \"*\";\n inherits: false;\n initial-value: skewY(0);\n}\n@property --tw-space-y-reverse {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-space-x-reverse {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-border-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-leading {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-font-weight {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-ring-inset {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-offset-width {\n syntax: \"<length>\";\n inherits: false;\n initial-value: 0px;\n}\n@property --tw-ring-offset-color {\n syntax: \"*\";\n inherits: false;\n initial-value: #fff;\n}\n@property --tw-ring-offset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-blur {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-brightness {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-contrast {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-grayscale {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-hue-rotate {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-invert {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-opacity {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-saturate {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-sepia {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-drop-shadow {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-blur {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-brightness {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-contrast {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-grayscale {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-hue-rotate {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-invert {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-opacity {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-saturate {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-sepia {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-duration {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ease {\n syntax: \"*\";\n inherits: false;\n}";
80
80
  styleInject(css_248z$7);
81
81
 
82
- var css_248z$6 = ".masonry {\n -moz-column-count: 1;\n column-count: 1;\n -moz-column-gap: 1.5rem;\n column-gap: 1.5rem;\n}\n\n.masonry-item {\n -moz-column-break-inside: avoid;\n break-inside: avoid;\n margin-bottom: 1.5rem;\n}\n\n@media (min-width: 640px) {\n .masonry {\n -moz-column-count: 2;\n column-count: 2;\n }\n}\n\n@media (min-width: 1024px) {\n .masonry {\n -moz-column-count: 3;\n column-count: 3;\n }\n}\n\n@media (min-width: 1536px) {\n .masonry {\n -moz-column-count: 4;\n column-count: 4;\n }\n}";
82
+ var css_248z$6 = ".masonry {\n column-count: 1;\n column-gap: 1.5rem;\n}\n\n.masonry-item {\n break-inside: avoid;\n margin-bottom: 1.5rem;\n}\n\n@media (min-width: 640px) {\n .masonry {\n column-count: 2;\n }\n}\n\n@media (min-width: 1024px) {\n .masonry {\n column-count: 3;\n }\n}\n\n@media (min-width: 1536px) {\n .masonry {\n column-count: 4;\n }\n}";
83
83
  styleInject(css_248z$6);
84
84
 
85
- var css_248z$5 = ":root {\n --toastify-color-info: var(--fallback-in,oklch(var(--in)/1));\n --toastify-color-success: var(--fallback-su,oklch(var(--su)/1));\n --toastify-color-warning: var(--fallback-wa,oklch(var(--wa)/1));\n --toastify-color-error: var(--fallback-er,oklch(var(--er)/1));\n}\n\n.Toastify__toast {\n border-radius: 1rem;\n --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n margin-left: 1rem;\n margin-right: 1rem;\n margin-bottom: 1rem;\n background-color: var(--fallback-b1,oklch(var(--b1)/1));\n color: var(--fallback-bc,oklch(var(--bc)/1));\n}\n\n.Toastify__toast-container {\n z-index: 2001 !important;\n}\n\n.Toastify__toast-container--top-right {\n top: 4.75em !important;\n}";
85
+ var css_248z$5 = ":root {\n --toastify-color-info: var(--color-info);\n --toastify-color-success: var(--color-success);\n --toastify-color-warning: var(--color-warning);\n --toastify-color-error: var(--color-error);\n}\n\n.Toastify__toast {\n border-radius: var(--radius-box);\n --shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);\n --shadow-colored: 0 20px 25px -5px var(--shadow-color), 0 8px 10px -6px var(--shadow-color);\n box-shadow: var(--ring-offset-shadow, 0 0 #0000), var(--ring-shadow, 0 0 #0000), var(--shadow);\n margin-left: 1rem;\n margin-right: 1rem;\n margin-bottom: 1rem;\n background-color: var(--color-base-100);\n color: var(--color-base-content);\n}\n\n.Toastify__toast-container {\n z-index: 2001 !important;\n}\n\n.Toastify__toast-container--top-right {\n top: 4.75em !important;\n}";
86
86
  styleInject(css_248z$5);
87
87
 
88
88
  var css_248z$4 = ".custom-file-upload {\n cursor: pointer;\n}\n\ninput[type=\"file\"] {\n display: none;\n}\n\n.custom-file-upload:hover .button {\n opacity: 0.8;\n}\n\n.custom-file-upload .button {\n transition: .5s ease;\n opacity: 0;\n position: absolute;\n transform: translate(8px, 8px);\n}";
89
89
  styleInject(css_248z$4);
90
90
 
91
- var css_248z$3 = ".fade {\n -webkit-mask-image: linear-gradient(180deg, transparent, #000 1%, #000 99%, transparent);\n mask-image: linear-gradient(180deg, transparent, #000 1%, #000 99%, transparent);\n}\n\n.placeholder-center::-moz-placeholder {\n text-align: center;\n}\n\n.placeholder-center::placeholder {\n text-align: center;\n}\n\ninput {\n box-sizing: border-box;\n}\n\ntextarea {\n box-sizing: border-box;\n}\n\n.crosshair-cursor-enabled {\n cursor: crosshair;\n}\n\n.marker-cluster span {\n color: #000;\n}";
91
+ var css_248z$3 = ".fade {\n mask-image: linear-gradient(180deg, transparent, #000 1%, #000 99%, transparent);\n}\n\n.placeholder-center::placeholder {\n text-align: center;\n}\n\ninput {\n box-sizing: border-box;\n}\n\ntextarea {\n box-sizing: border-box;\n}\n\n.crosshair-cursor-enabled {\n cursor: crosshair;\n}\n\n.marker-cluster span {\n color: #000;\n}";
92
92
  styleInject(css_248z$3);
93
93
 
94
- var css_248z$2 = ".calendar-icon {\n position: relative;\n top: -35px;\n left: 10px;\n width: 13px;\n}\n\n.user-icon {\n position: relative;\n top: -36px;\n left: 10px;\n width: 13px;\n}\n\n.circle-icon {\n position: relative;\n top: -33px;\n left: 10px;\n width: 13px;\n}\n\n.fire-icon {\n position: relative;\n top: -36px;\n left: 10px;\n width: 13px;\n}\n\n.tree-icon {\n position: relative;\n top: -38px;\n left: 4px;\n width: 24px;\n}\n\n.music-icon {\n position: relative;\n top: -35px;\n left: 4px;\n width: 24px;\n}\n\n.quest-icon {\n position: relative;\n top: -34px;\n left: 4px;\n width: 24px;\n}\n\n.drum-icon {\n position: relative;\n top: -38px;\n left: 4px;\n width: 24px;\n}\n\n.compass-icon {\n position: relative;\n top: -36.5px;\n left: 4px;\n width: 24px;\n}\n\n.group-icon {\n position: relative;\n top: -37px;\n left: 4px;\n width: 24px;\n}\n\n.liebevoll-jetzt-icon{\n position: relative;\n top: -35px;\n left: 4px;\n width: 24px;\n}\n\n.staff-snake-icon {\n position: relative;\n top: -35px;\n left: 4px;\n width: 24px;\n}\n\n.flower-icon {\n position: relative;\n top: -35px;\n left: 4px;\n width: 24px;\n}\n\n.network-icon {\n position: relative;\n top: -35px;\n left: 4px;\n width: 24px;\n}\n\n.shop-icon {\n position: relative;\n top: -34px;\n left: 4px;\n width: 24px;\n}\n\n.plant-icon {\n position: relative;\n top: -34px;\n left: 4px;\n width: 24px;\n}\n\n.circle-dot-icon {\n position: relative;\n top: -36px;\n left: 4px;\n width: 24px;\n}";
94
+ var css_248z$2 = ".calendar-icon {\n position: relative;\n top: -35px;\n left: 10px;\n width: 13px;\n}\n\n.user-icon {\n position: relative;\n top: -36px;\n left: 10px;\n width: 13px;\n}\n\n.circle-icon {\n position: relative;\n top: -33px;\n left: 10px;\n width: 13px;\n}\n\n.fire-icon {\n position: relative;\n top: -36px;\n left: 10px;\n width: 13px;\n}\n\n.tree-icon {\n position: relative;\n top: -38px;\n left: 4px;\n width: 24px;\n}\n\n.music-icon {\n position: relative;\n top: -35px;\n left: 4px;\n width: 24px;\n}\n\n.quest-icon {\n position: relative;\n top: -34px;\n left: 4px;\n width: 24px;\n}\n\n.drum-icon {\n position: relative;\n top: -38px;\n left: 4px;\n width: 24px;\n}\n\n.compass-icon {\n position: relative;\n top: -36.5px;\n left: 4px;\n width: 24px;\n}\n\n.group-icon {\n position: relative;\n top: -37px;\n left: 4px;\n width: 24px;\n}\n\n.liebevoll-jetzt-icon{\n position: relative;\n top: -35px;\n left: 4px;\n width: 24px;\n}\n\n.staff-snake-icon {\n position: relative;\n top: -35px;\n left: 4px;\n width: 24px;\n}\n\n.flower-icon {\n position: relative;\n top: -35px;\n left: 4px;\n width: 24px;\n}\n\n.network-icon {\n position: relative;\n top: -35px;\n left: 4px;\n width: 24px;\n}\n\n.shop-icon {\n position: relative;\n top: -34px;\n left: 4px;\n width: 24px;\n}\n\n.plant-icon {\n position: relative;\n top: -34px;\n left: 4px;\n width: 24px;\n}\n\n.circle-dot-icon {\n position: relative;\n top: -36px;\n left: 4px;\n width: 24px;\n}\n\n.steps-icon {\n position: relative;\n top: -34px;\n left: 4px;\n width: 24px;\n}";
95
95
  styleInject(css_248z$2);
96
96
 
97
- var css_248z$1 = ".leaflet-control-attribution {\n display: none;\n}\n\n.leaflet-control-locate {\n display: none;\n}\n\n.leaflet-data-marker {\n background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAQCAYAAACcN8ZaAAAB3klEQVR42s3U4UdDURzG8czMXJnJ1Vwzc6VJZjaZJdlMlpQsKdmUFNOUspRSSqUolfQfr+fF98Vx5mwv9qbDx7LdznnO7/7Omej3+/+Ga0QMUYkhbvBgmhzCQxwxibIGrGEF8CQhU+LLtKQkQNqScUgjxRxTBIxbgfgD/BgnhM8kM5KTeclLQYqGkkMRBckzR8ic/mAgd5BAZplsUaqyIg2sDtHg2brUZJk5SmwopErJUWE8SpmTMhNvya60Zd/SNrR4bkeaskG4uiwRZk6yrJEYFibGAxn+scECHTmTnuVCzvmty3PHciB7bGKN6lQkzysPqIrHmpFhYbKUtckC1/Ioz4ZHuZdbuSLYiRxRpSZVWXZVxAzC0R4Ik5SQsu6w8yd5l2/5kg95I9SdXMoZQfYIUjeqEUrgOkXGPeN4TYRhxy8E+ZUf+eS7B7miIoeybVSjKDnm8u3+gH3pDTYwu1igATvs/pXqvBKiR4i2bNJfi1ZfUAnjgrOG8wY2quNzBKuU/ZS+uSFEl5O0xRGuUIlZCcw7xG5QPkeHYUSNV5WXGou2sC3rBC0LjenqCXGO0WEiTJa0Lr4KixdHBrDGuGGiRqCUpFk8pGIpQtCU7p4YPwxYxEMCk1aAMQZh8Ac8PfbIzYPJOwAAAABJRU5ErkJggg==') no-repeat;\n background-position: 6px 32px;\n}\n\n.leaflet-container {\n cursor: inherit;\n}\n\n.leaflet-popup-scrolled {\n overflow-x: hidden;\n}\n\n.leaflet-popup-content-wrapper, .leaflet-popup-tip{\n background-color: var(--fallback-b1,oklch(var(--b1)/1));\n color: var(--fallback-bc,oklch(var(--bc)/1));\n\n}\n\n.leaflet-tooltip {\n background-color: var(--fallback-b1,oklch(var(--b1)/1));\n color: var(--fallback-bc,oklch(var(--bc)/1));\n border-width: 0px;\n border-radius: 1em;\n transition: opacity 500ms;\n transition-delay: 50ms;\n}\n\n.leaflet-tooltip-top::before {\n border-top-color: var(--fallback-b1,oklch(var(--b1)/1));\n}\n\n.leaflet-container {\n text-align: left;\n background-image: url(\"data:image/svg+xml,%3Csvg width='40' height='40' stroke='%23000' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cstyle%3E.spinner_V8m1%7Btransform-origin:center;animation:spinner_zKoa 2s linear infinite%7D.spinner_V8m1 circle%7Bstroke-linecap:round;animation:spinner_YpZS 1.5s ease-out infinite%7D%40keyframes spinner_zKoa%7B100%25%7Btransform:rotate(360deg)%7D%7D%40keyframes spinner_YpZS%7B0%25%7Bstroke-dasharray:0 150;stroke-dashoffset:0%7D47.5%25%7Bstroke-dasharray:42 150;stroke-dashoffset:-16%7D95%25%2C100%25%7Bstroke-dasharray:42 150;stroke-dashoffset:-59%7D%7D%3C%2Fstyle%3E%3Cg class='spinner_V8m1'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3'%3E%3C%2Fcircle%3E%3C%2Fg%3E%3C%2Fsvg%3E\");\n background-repeat: no-repeat;\n background-attachment: fixed;\n background-position: 50% 80%;\n}";
97
+ var css_248z$1 = ".leaflet-control-attribution {\n display: none;\n}\n\n.leaflet-control-locate {\n display: none;\n}\n\n.leaflet-data-marker {\n background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAQCAYAAACcN8ZaAAAB3klEQVR42s3U4UdDURzG8czMXJnJ1Vwzc6VJZjaZJdlMlpQsKdmUFNOUspRSSqUolfQfr+fF98Vx5mwv9qbDx7LdznnO7/7Omej3+/+Ga0QMUYkhbvBgmhzCQxwxibIGrGEF8CQhU+LLtKQkQNqScUgjxRxTBIxbgfgD/BgnhM8kM5KTeclLQYqGkkMRBckzR8ic/mAgd5BAZplsUaqyIg2sDtHg2brUZJk5SmwopErJUWE8SpmTMhNvya60Zd/SNrR4bkeaskG4uiwRZk6yrJEYFibGAxn+scECHTmTnuVCzvmty3PHciB7bGKN6lQkzysPqIrHmpFhYbKUtckC1/Ioz4ZHuZdbuSLYiRxRpSZVWXZVxAzC0R4Ik5SQsu6w8yd5l2/5kg95I9SdXMoZQfYIUjeqEUrgOkXGPeN4TYRhxy8E+ZUf+eS7B7miIoeybVSjKDnm8u3+gH3pDTYwu1igATvs/pXqvBKiR4i2bNJfi1ZfUAnjgrOG8wY2quNzBKuU/ZS+uSFEl5O0xRGuUIlZCcw7xG5QPkeHYUSNV5WXGou2sC3rBC0LjenqCXGO0WEiTJa0Lr4KixdHBrDGuGGiRqCUpFk8pGIpQtCU7p4YPwxYxEMCk1aAMQZh8Ac8PfbIzYPJOwAAAABJRU5ErkJggg==') no-repeat;\n background-position: 6px 32px;\n}\n\n.leaflet-container {\n cursor: inherit;\n}\n\n.leaflet-popup-scrolled {\n overflow-x: hidden;\n}\n\n.leaflet-popup-content-wrapper, .leaflet-popup-tip{\n background-color: var(--color-base-100);\n color: var(--color-base-content);\n border-radius: var(--radius-box);\n}\n\n.leaflet-tooltip {\n background-color: var(--color-base-100);\n color: var(--color-base-content);\n border-width: 0px;\n}\n\n.leaflet-tooltip {\n border-radius: var(--radius-box);\n transition: opacity 500ms;\n transition-delay: 50ms;\n}\n\n.leaflet-tooltip::before {\n border-top-color: var(--color-base-100);\n}\n\n.leaflet-container {\n text-align: left;\n background-image: url(\"data:image/svg+xml,%3Csvg width='40' height='40' stroke='%23000' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cstyle%3E.spinner_V8m1%7Btransform-origin:center;animation:spinner_zKoa 2s linear infinite%7D.spinner_V8m1 circle%7Bstroke-linecap:round;animation:spinner_YpZS 1.5s ease-out infinite%7D%40keyframes spinner_zKoa%7B100%25%7Btransform:rotate(360deg)%7D%7D%40keyframes spinner_YpZS%7B0%25%7Bstroke-dasharray:0 150;stroke-dashoffset:0%7D47.5%25%7Bstroke-dasharray:42 150;stroke-dashoffset:-16%7D95%25%2C100%25%7Bstroke-dasharray:42 150;stroke-dashoffset:-59%7D%7D%3C%2Fstyle%3E%3Cg class='spinner_V8m1'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3'%3E%3C%2Fcircle%3E%3C%2Fg%3E%3C%2Fsvg%3E\");\n background-repeat: no-repeat;\n background-attachment: fixed;\n background-position: 50% 80%;\n}\n\n.leaflet-popup-close-button span {\n color: var(--color-base-content);\n opacity: 50%;\n}";
98
98
  styleInject(css_248z$1);
99
99
 
100
100
  var css_248z = ".picker {\n position: relative;\n}\n\n.swatch {\n width: 28px;\n height: 28px;\n border-radius: 8px;\n border: 3px solid #fff;\n box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1), inset 0 0 0 1px rgba(0, 0, 0, 0.1);\n cursor: pointer;\n}\n\n.popover {\n position: absolute;\n top: 0;\n left: 36px;\n border-radius: 9px;\n box-shadow: 0 6px 12px rgba(0, 0, 0, 0.15);\n}";
@@ -1088,7 +1088,9 @@ const initialAppState = {
1088
1088
  assetsApi: {},
1089
1089
  sideBarOpen: false,
1090
1090
  sideBarSlim: false,
1091
+ showThemeControl: false,
1091
1092
  embedded: false,
1093
+ openCollectiveApiKey: '',
1092
1094
  };
1093
1095
  const AppContext = React.createContext({
1094
1096
  state: initialAppState,
@@ -1116,7 +1118,7 @@ const useSetAppState = () => {
1116
1118
 
1117
1119
  // Helper context to determine if the ContextWrapper is already present.
1118
1120
  const ContextCheckContext = React.createContext(false);
1119
- const CloseButton = ({ closeToast }) => (jsxRuntime.jsx("button", { className: 'tw-btn tw-btn-sm tw-btn-circle tw-btn-ghost tw-absolute tw-right-2 tw-top-2 focus:tw-outline-none', onClick: closeToast, children: "\u2715" }));
1121
+ const CloseButton = ({ closeToast }) => (jsxRuntime.jsx("button", { className: 'tw:btn tw:btn-sm tw:btn-circle tw:btn-ghost tw:absolute tw:right-2 tw:top-2 tw:focus:outline-hidden', onClick: closeToast, children: "\u2715" }));
1120
1122
  const ContextWrapper = ({ children }) => {
1121
1123
  const isWrapped = React.useContext(ContextCheckContext);
1122
1124
  const isInsideRouter = reactRouterDom.useInRouterContext();
@@ -1135,12 +1137,23 @@ const Wrappers = ({ children }) => {
1135
1137
  return (jsxRuntime.jsx(PermissionsProvider, { initialPermissions: [], children: jsxRuntime.jsx(TagsProvider, { initialTags: [], children: jsxRuntime.jsx(LayersProvider, { initialLayers: [], children: jsxRuntime.jsx(FilterProvider, { initialTags: [], children: jsxRuntime.jsx(ItemsProvider, { initialItems: [], children: jsxRuntime.jsx(SelectPositionProvider, { children: jsxRuntime.jsx(LeafletRefsProvider, { initialLeafletRefs: {}, children: jsxRuntime.jsx(reactQuery.QueryClientProvider, { client: queryClient, children: jsxRuntime.jsx(AppStateProvider, { children: jsxRuntime.jsx(ClusterRefProvider, { children: jsxRuntime.jsxs(QuestsProvider, { initialOpen: true, children: [jsxRuntime.jsx(reactToastify.ToastContainer, { position: 'top-right', autoClose: 2000, hideProgressBar: true, newestOnTop: false, closeOnClick: true, rtl: false, pauseOnFocusLoss: true, draggable: true, pauseOnHover: true, theme: 'light', closeButton: CloseButton }), children] }) }) }) }) }) }) }) }) }) }) }));
1136
1138
  };
1137
1139
 
1140
+ const useTheme = (defaultTheme = 'default') => {
1141
+ React.useEffect(() => {
1142
+ const savedTheme = localStorage.getItem('theme');
1143
+ const initialTheme = savedTheme ? JSON.parse(savedTheme) : defaultTheme;
1144
+ if (initialTheme !== 'default') {
1145
+ document.documentElement.setAttribute('data-theme', defaultTheme);
1146
+ localStorage.setItem('theme', JSON.stringify(initialTheme));
1147
+ }
1148
+ }, [defaultTheme]);
1149
+ };
1150
+
1138
1151
  function containsUUID(str) {
1139
1152
  const uuidRegex = /[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}/i;
1140
1153
  return uuidRegex.test(str);
1141
1154
  }
1142
1155
 
1143
- var PlusSVG = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCAyNCAyNCIgc3Ryb2tlLXdpZHRoPSIzIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgY2xhc3M9InR3LXctNSB0dy1oLTUiPjxwYXRoIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgZD0iTTEyIDQuNXYxNW03LjUtNy41aC0xNSI+PC9wYXRoPjwvc3ZnPg==';
1156
+ var PlusSVG = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCAyNCAyNCIgc3Ryb2tlLXdpZHRoPSIzIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgY2xhc3M9InctNSBoLTUiPjxwYXRoIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgZD0iTTEyIDQuNXYxNW03LjUtNy41aC0xNSI+PC9wYXRoPjwvc3ZnPg==';
1144
1157
 
1145
1158
  function AddButton({ triggerAction, }) {
1146
1159
  const layers = useLayers();
@@ -1156,14 +1169,14 @@ function AddButton({ triggerAction, }) {
1156
1169
  });
1157
1170
  return canAdd;
1158
1171
  };
1159
- return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: canAddItems() ? (jsxRuntime.jsxs("div", { className: 'tw-dropdown tw-dropdown-top tw-dropdown-end tw-dropdown-hover tw-z-500 tw-absolute tw-right-4 tw-bottom-4', children: [jsxRuntime.jsx("label", { tabIndex: 0, className: 'tw-z-500 tw-btn tw-btn-circle tw-shadow tw-bg-base-100', children: jsxRuntime.jsx(SVG, { src: PlusSVG, className: 'tw-h-5 tw-w-5' }) }), jsxRuntime.jsx("ul", { tabIndex: 0, className: 'tw-dropdown-content tw-pr-1 tw-list-none', children: layers.map((layer) => layer.api?.createItem &&
1172
+ return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: canAddItems() ? (jsxRuntime.jsxs("div", { className: 'tw:dropdown tw:dropdown-top tw:dropdown-end tw:dropdown-hover tw:z-500 tw:absolute tw:right-4 tw:bottom-4', children: [jsxRuntime.jsx("label", { tabIndex: 0, className: 'tw:z-500 tw:btn tw:btn-circle tw:btn-lg tw:shadow tw:bg-base-100', children: jsxRuntime.jsx(SVG, { src: PlusSVG, className: 'tw:h-5 tw:w-5' }) }), jsxRuntime.jsx("ul", { tabIndex: 0, className: 'tw:dropdown-content tw:pr-1 tw:list-none', children: layers.map((layer) => layer.api?.createItem &&
1160
1173
  hasUserPermission(layer.api.collectionName, 'create', undefined, layer) &&
1161
- layer.listed && (jsxRuntime.jsx("li", { children: jsxRuntime.jsx("a", { children: jsxRuntime.jsx("div", { className: 'tw-tooltip tw-tooltip-left', "data-tip": layer.menuText, children: jsxRuntime.jsx("button", { tabIndex: 0, className: 'tw-z-500 tw-border-0 tw-pl-2 tw-p-0 tw-mb-3 tw-w-10 tw-h-10 tw-cursor-pointer tw-rounded-full tw-mouse tw-drop-shadow-md tw-transition tw-ease-in tw-duration-200 focus:tw-outline-none', style: { backgroundColor: layer.menuColor || '#777' }, onClick: () => {
1174
+ layer.listed && (jsxRuntime.jsx("li", { children: jsxRuntime.jsx("a", { children: jsxRuntime.jsx("div", { className: 'tw:tooltip tw:tooltip-left', "data-tip": layer.menuText, children: jsxRuntime.jsx("button", { tabIndex: 0, className: 'tw:z-500 tw:border-0 tw:pl-2 tw:p-0 tw:mb-3 tw:w-10 tw:h-10 tw:cursor-pointer tw:rounded-full tw:mouse tw:drop-shadow-md tw:transition tw:ease-in tw:duration-200 tw:focus:outline-hidden', style: { backgroundColor: layer.menuColor || '#777' }, onClick: () => {
1162
1175
  triggerAction(layer);
1163
1176
  }, onTouchEnd: (e) => {
1164
1177
  triggerAction(layer);
1165
1178
  e.preventDefault();
1166
- }, children: jsxRuntime.jsx("img", { src: layer.menuIcon, className: 'tw-h-6 tw-w-6 tw-text-white', style: { filter: 'invert(100%) brightness(200%)' } }) }) }) }) }, layer.name))) })] })) : ('') }));
1179
+ }, children: jsxRuntime.jsx("img", { src: layer.menuIcon, className: 'tw:h-6 tw:w-6 tw:text-white', style: { filter: 'invert(100%) brightness(200%)' } }) }) }) }) }, layer.name))) })] })) : ('') }));
1167
1180
  }
1168
1181
 
1169
1182
  const Control = ({ position, children, zIndex, absolute, }) => {
@@ -1174,7 +1187,7 @@ const Control = ({ position, children, zIndex, absolute, }) => {
1174
1187
  leaflet.DomEvent.disableScrollPropagation(controlContainerRef.current);
1175
1188
  }
1176
1189
  }, [controlContainerRef]);
1177
- return (jsxRuntime.jsx("div", { ref: controlContainerRef, style: { zIndex }, className: `${absolute && 'tw-absolute'} tw-z-[999] tw-flex-col ${position === 'topLeft' && 'tw-top-4 tw-left-4'} ${position === 'bottomLeft' && 'tw-bottom-4 tw-left-4'} ${position === 'topRight' && 'tw-bottom-4 tw-right-4'} ${position === 'bottomRight' && 'tw-bottom-4 tw-right-4'}`, children: children }));
1190
+ return (jsxRuntime.jsx("div", { ref: controlContainerRef, style: { zIndex }, className: `${absolute && 'tw:absolute'} tw:z-999 tw:flex-col ${position === 'topLeft' && 'tw:top-4 tw:left-4'} ${position === 'bottomLeft' && 'tw:bottom-4 tw:left-4'} ${position === 'topRight' && 'tw:bottom-4 tw:right-4'} ${position === 'bottomRight' && 'tw:bottom-4 tw:right-4'}`, children: children }));
1178
1191
  };
1179
1192
 
1180
1193
  function FunnelIcon({
@@ -1217,11 +1230,11 @@ function FilterControl() {
1217
1230
  const toggleVisibleGroupType = useToggleVisibleGroupType();
1218
1231
  const addVisibleGroupType = useAddVisibleGroupType();
1219
1232
  const visibleGroupTypes = useVisibleGroupType();
1220
- return (jsxRuntime.jsx("div", { className: 'tw-card tw-bg-base-100 tw-shadow-xl tw-mt-2 tw-w-fit', children: open ? (jsxRuntime.jsxs("div", { className: 'tw-card-body tw-pr-4 tw-min-w-[8rem] tw-p-2 tw-w-fit tw-transition-all tw-duration-300', children: [jsxRuntime.jsx("label", { className: 'tw-btn tw-btn-sm tw-rounded-2xl tw-btn-circle tw-btn-ghost hover:tw-bg-transparent tw-absolute tw-right-0 tw-top-0 tw-text-gray-600', onClick: () => {
1233
+ return (jsxRuntime.jsx("div", { className: 'tw:card tw:bg-base-100 tw:shadow-xl tw:mt-2 tw:w-fit', children: open ? (jsxRuntime.jsxs("div", { className: 'tw:card-body tw:pr-4 tw:min-w-[8rem] tw:p-2 tw:w-fit tw:transition-all tw:duration-300', children: [jsxRuntime.jsx("label", { className: 'tw:btn tw:btn-sm tw:rounded-2xl tw:btn-circle tw:btn-ghost tw:hover:bg-transparent tw:absolute tw:right-0 tw:top-0 tw:text-gray-600', onClick: () => {
1221
1234
  setOpen(false);
1222
- }, children: jsxRuntime.jsx("p", { className: 'tw-text-center ', children: "\u2715" }) }), jsxRuntime.jsx("ul", { className: 'tw-flex-row', children: groupTypes.map((groupType) => (jsxRuntime.jsx("li", { children: jsxRuntime.jsxs("label", { htmlFor: groupType.value, className: 'tw-label tw-justify-normal tw-pt-1 tw-pb-1', children: [jsxRuntime.jsx("input", { id: groupType.value, onChange: () => toggleVisibleGroupType(groupType.value), type: 'checkbox', className: 'tw-checkbox tw-checkbox-xs tw-checkbox-success', checked: isGroupTypeVisible(groupType.value) }), jsxRuntime.jsx("span", { className: 'tw-text-sm tw-label-text tw-mx-2 tw-cursor-pointer', children: groupType.text })] }) }, groupType.value))) })] })) : (jsxRuntime.jsxs("div", { className: 'tw-indicator', children: [visibleGroupTypes.length < groupTypes.length && (jsxRuntime.jsx("span", { className: 'tw-indicator-item tw-badge tw-badge-success tw-h-4 tw-p-2 tw-translate-x-1/3 -tw-translate-y-1/3 tw-border-0' })), jsxRuntime.jsx("div", { className: 'tw-card-body hover:tw-bg-slate-300 tw-card tw-p-2 tw-h-10 tw-w-10 tw-transition-all tw-duration-300 hover:tw-cursor-pointer', onClick: () => {
1235
+ }, children: jsxRuntime.jsx("p", { className: 'tw:text-center ', children: "\u2715" }) }), jsxRuntime.jsx("ul", { className: 'tw:flex-row', children: groupTypes.map((groupType) => (jsxRuntime.jsx("li", { children: jsxRuntime.jsxs("label", { htmlFor: groupType.value, className: 'tw:label tw:justify-normal tw:pt-1 tw:pb-1', children: [jsxRuntime.jsx("input", { id: groupType.value, onChange: () => toggleVisibleGroupType(groupType.value), type: 'checkbox', className: 'tw:checkbox tw:checkbox-xs tw:checkbox-success', checked: isGroupTypeVisible(groupType.value) }), jsxRuntime.jsx("span", { className: 'tw:text-sm tw:label-text tw:mx-2 tw:cursor-pointer', children: groupType.text })] }) }, groupType.value))) })] })) : (jsxRuntime.jsxs("div", { className: 'tw:indicator', children: [visibleGroupTypes.length < groupTypes.length && (jsxRuntime.jsx("span", { className: 'tw:indicator-item tw:badge tw:badge-success tw:h-4 tw:p-2 tw:translate-x-1/3 tw:-translate-y-1/3 tw:border-0' })), jsxRuntime.jsx("div", { className: 'tw:card-body tw:hover:bg-slate-300 tw:card tw:p-2 tw:h-10 tw:w-10 tw:transition-all tw:duration-300 tw:hover:cursor-pointer', onClick: () => {
1223
1236
  setOpen(true);
1224
- }, children: jsxRuntime.jsx(ForwardRef$e, { className: 'size-6 tw-stroke-[2.5]' }) })] })) }));
1237
+ }, children: jsxRuntime.jsx(ForwardRef$e, { className: 'size-6 tw:stroke-[2.5]' }) })] })) }));
1225
1238
  }
1226
1239
 
1227
1240
  function HeartIcon({
@@ -1253,9 +1266,9 @@ const GratitudeControl = () => {
1253
1266
  const navigate = reactRouterDom.useNavigate();
1254
1267
  const { isAuthenticated } = useAuth();
1255
1268
  if (isAuthenticated) {
1256
- return (jsxRuntime.jsx("div", { className: 'tw-card tw-bg-base-100 tw-shadow-xl tw-mt-2 tw-w-fit', children: jsxRuntime.jsx("div", { className: 'tw-card-body hover:tw-bg-slate-300 tw-card tw-p-2 tw-h-10 tw-w-10 tw-transition-all tw-duration-300 hover:tw-cursor-pointer', onClick: () => {
1269
+ return (jsxRuntime.jsx("div", { className: 'tw:card tw:bg-base-100 tw:shadow-xl tw:mt-2 tw:w-fit', children: jsxRuntime.jsx("div", { className: 'tw:card-body tw:hover:bg-slate-300 tw:card tw:p-2 tw:h-10 tw:w-10 tw:transition-all tw:duration-300 tw:hover:cursor-pointer', onClick: () => {
1257
1270
  navigate('/select-user');
1258
- }, children: jsxRuntime.jsx(ForwardRef$d, { className: 'tw-stroke-[2.5]' }) }) }));
1271
+ }, children: jsxRuntime.jsx(ForwardRef$d, { className: 'tw:stroke-[2.5]' }) }) }));
1259
1272
  }
1260
1273
  else
1261
1274
  return jsxRuntime.jsx(jsxRuntime.Fragment, {});
@@ -1268,9 +1281,9 @@ function LayerControl() {
1268
1281
  const layers = useLayers();
1269
1282
  const isLayerVisible = useIsLayerVisible();
1270
1283
  const toggleVisibleLayer = useToggleVisibleLayer();
1271
- return (jsxRuntime.jsx("div", { className: 'tw-card tw-bg-base-100 tw-shadow-xl tw-mt-2 tw-w-fit', children: open ? (jsxRuntime.jsxs("div", { className: 'tw-card-body tw-pr-4 tw-min-w-[8rem] tw-p-2 tw-transition-all tw-w-fit tw-duration-300', children: [jsxRuntime.jsx("label", { className: 'tw-btn tw-btn-sm tw-rounded-2xl tw-btn-circle tw-btn-ghost hover:tw-bg-transparent tw-absolute tw-right-0 tw-top-0 tw-text-gray-600', onClick: () => {
1284
+ return (jsxRuntime.jsx("div", { className: 'tw:card tw:bg-base-100 tw:shadow-xl tw:mt-2 tw:w-fit', children: open ? (jsxRuntime.jsxs("div", { className: 'tw:card-body tw:pr-4 tw:min-w-[8rem] tw:p-2 tw:transition-all tw:w-fit tw:duration-300', children: [jsxRuntime.jsx("label", { className: 'tw:btn tw:btn-sm tw:rounded-2xl tw:btn-circle tw:btn-ghost tw:hover:bg-transparent tw:absolute tw:right-0 tw:top-0 tw:text-gray-600', onClick: () => {
1272
1285
  setOpen(false);
1273
- }, children: jsxRuntime.jsx("p", { className: 'tw-text-center ', children: "\u2715" }) }), jsxRuntime.jsx("ul", { className: 'tw-flex-row', children: layers.map((layer) => layer.listed && (jsxRuntime.jsx("li", { children: jsxRuntime.jsxs("label", { htmlFor: layer.name, className: 'tw-label tw-justify-normal tw-pt-1 tw-pb-1', children: [jsxRuntime.jsx("input", { id: layer.name, onChange: () => toggleVisibleLayer(layer), type: 'checkbox', className: 'tw-checkbox tw-checkbox-xs tw-checkbox-success', checked: isLayerVisible(layer) }), jsxRuntime.jsx("span", { className: 'tw-text-sm tw-label-text tw-mx-2 tw-cursor-pointer', children: layer.name })] }) }, layer.name))) })] })) : (jsxRuntime.jsx("div", { className: 'tw-card-body hover:tw-bg-slate-300 tw-card tw-p-2 tw-h-10 tw-w-10 tw-transition-all tw-duration-300 hover:tw-cursor-pointer', onClick: () => {
1286
+ }, children: jsxRuntime.jsx("p", { className: 'tw:text-center ', children: "\u2715" }) }), jsxRuntime.jsx("ul", { className: 'tw:flex-row', children: layers.map((layer) => layer.listed && (jsxRuntime.jsx("li", { children: jsxRuntime.jsxs("label", { htmlFor: layer.name, className: 'tw:label tw:justify-normal tw:pt-1 tw:pb-1 tw:text-base-content', children: [jsxRuntime.jsx("input", { id: layer.name, onChange: () => toggleVisibleLayer(layer), type: 'checkbox', className: 'tw:checkbox tw:checkbox-xs tw:checkbox-success', checked: isLayerVisible(layer) }), jsxRuntime.jsx("span", { className: 'tw:text-sm tw:label-text tw:mx-2 tw:cursor-pointer', children: layer.name })] }) }, layer.name))) })] })) : (jsxRuntime.jsx("div", { className: 'tw:card-body tw:hover:bg-slate-300 tw:card tw:p-2 tw:h-10 tw:w-10 tw:transition-all tw:duration-300 tw:hover:cursor-pointer', onClick: () => {
1274
1287
  setOpen(true);
1275
1288
  }, children: jsxRuntime.jsx(SVG, { src: LayerSVG }) })) }));
1276
1289
  }
@@ -1434,6 +1447,8 @@ const addIcon = (icon) => {
1434
1447
  return '<svg class="circle-dot-icon" stroke="#fff" fill="transparent" stroke-width="2.5" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" height="1.55em" width="1.55em" xmlns="http://www.w3.org/2000/svg"><circle cx="12" cy="12" r="10"></circle><circle cx="12" cy="12" r="1"></circle></svg>';
1435
1448
  case 'cannabis':
1436
1449
  return '<svg class="network-icon" stroke="currentColor" fill="#fff" stroke-width="0" viewBox="0 0 512 512" height="1.5em" width="1.5em" xmlns="http://www.w3.org/2000/svg"><path d="M256 0c5.3 0 10.3 2.7 13.3 7.1c15.8 23.5 36.7 63.7 49.2 109c7.2 26.4 11.8 55.2 10.4 84c11.5-8.8 23.7-16.7 35.8-23.6c41-23.3 84.4-36.9 112.2-42.5c5.2-1 10.7 .6 14.4 4.4s5.4 9.2 4.4 14.5c-5.6 27.7-19.3 70.9-42.7 111.7c-9.1 15.9-19.9 31.7-32.4 46.3c27.8 6.6 52.4 17.3 67.2 25.5c5.1 2.8 8.2 8.2 8.2 14s-3.2 11.2-8.2 14c-15.2 8.4-40.9 19.5-69.8 26.1c-20.2 4.6-42.9 7.2-65.2 4.6l8.3 33.1c1.5 6.1-.6 12.4-5.5 16.4s-11.6 4.6-17.2 1.9L280 417.2l0 70.8c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-70.8-58.5 29.1c-5.6 2.8-12.3 2.1-17.2-1.9s-7-10.3-5.5-16.4l8.3-33.1c-22.2 2.6-45 0-65.2-4.6c-28.9-6.6-54.6-17.6-69.8-26.1c-5.1-2.8-8.2-8.2-8.2-14s3.2-11.2 8.2-14c14.8-8.2 39.4-18.8 67.2-25.5C78.9 296.3 68.1 280.5 59 264.6c-23.4-40.8-37.1-84-42.7-111.7c-1.1-5.2 .6-10.7 4.4-14.5s9.2-5.4 14.4-4.4c27.9 5.5 71.2 19.2 112.2 42.5c12.1 6.9 24.3 14.7 35.8 23.6c-1.4-28.7 3.1-57.6 10.4-84c12.5-45.3 33.4-85.5 49.2-109c3-4.4 8-7.1 13.3-7.1z"></path></svg>';
1450
+ case 'steps':
1451
+ return '<svg class="steps-icon" stroke="currentColor" fill="#fff" stroke-width="0" viewBox="0 0 512 512" height="1.4em" width="1.4em" xmlns="http://www.w3.org/2000/svg"><path d="M133.83 361.27c-22.61 0-41-8.17-54.79-24.39s-22.84-40.29-28.11-75.31c-7.76-51.61-.06-95.11 21.68-122.48 12.8-16.12 29.6-25.44 48.58-26.94 16.25-1.3 40.54 5.29 64 44 14.69 24.24 25.86 56.44 30.65 88.34 5.79 38.51 1.48 66.86-13.18 86.65-11.64 15.72-29.54 25.46-53.21 29a106.46 106.46 0 0 1-15.62 1.13zM173 496c-13.21 0-26.6-4.23-38.66-12.36a79.79 79.79 0 0 1-33.52-50.6c-2.85-14.66-1.14-26.31 5.22-35.64 10.33-15.15 28.87-18.56 48.49-22.18 2.07-.38 4.17-.76 6.3-1.17 4.52-.86 9.14-2 13.62-3.11 16.78-4.14 34.14-8.43 48.47 1.75 9.59 6.8 15 18.36 16.62 35.32 1.84 19.57-2.36 39.1-11.83 55-10.19 17.11-25.47 28.42-43 31.86A61 61 0 0 1 173 496zm205.17-230.73a106.69 106.69 0 0 1-15.6-1.2c-23.66-3.5-41.56-13.25-53.2-29-14.66-19.79-19-48.13-13.18-86.65 4.79-31.93 15.93-64.1 30.55-88.25 23.34-38.57 47.66-45.26 64-44.08 18.92 1.38 35.69 10.57 48.51 26.6 21.89 27.37 29.65 71 21.86 122.84-5.27 35-14.2 58.95-28.11 75.31s-32.22 24.43-54.83 24.43zM339 400a61 61 0 0 1-11.68-1.13c-17.56-3.44-32.84-14.75-43-31.86-9.47-15.9-13.67-35.43-11.83-55 1.6-17 7-28.52 16.62-35.33 14.33-10.17 31.69-5.89 48.47-1.74 4.48 1.1 9.1 2.24 13.62 3.11l6.29 1.17c19.63 3.61 38.17 7 48.5 22.17 6.36 9.33 8.07 21 5.22 35.64a79.78 79.78 0 0 1-33.52 50.61C365.56 395.78 352.17 400 339 400z"></path></svg>';
1437
1452
  default:
1438
1453
  return '';
1439
1454
  }
@@ -2421,7 +2436,7 @@ const LocateControl = () => {
2421
2436
  setActive(true);
2422
2437
  },
2423
2438
  });
2424
- return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsx("div", { className: 'tw-card tw-h-12 tw-w-12 tw-bg-base-100 tw-shadow-xl tw-items-center tw-justify-center hover:tw-bg-slate-300 hover:tw-cursor-pointer tw-transition-all tw-duration-300 tw-ml-2', children: jsxRuntime.jsx("div", { className: 'tw-card-body tw-card tw-p-2 tw-h-10 tw-w-10 ', onClick: () => {
2439
+ return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsx("div", { className: 'tw:card tw:flex-none tw:h-12 tw:w-12 tw:bg-base-100 tw:shadow-xl tw:items-center tw:justify-center tw:hover:bg-slate-300 tw:hover:cursor-pointer tw:transition-all tw:duration-300 tw:ml-2', children: jsxRuntime.jsx("div", { className: 'tw:card-body tw:card tw:p-2 tw:h-10 tw:w-10 ', onClick: () => {
2425
2440
  if (active) {
2426
2441
  lc.stop();
2427
2442
  setActive(false);
@@ -2430,7 +2445,7 @@ const LocateControl = () => {
2430
2445
  lc.start();
2431
2446
  setLoading(true);
2432
2447
  }
2433
- }, children: loading ? (jsxRuntime.jsx("span", { className: 'tw-loading tw-loading-spinner tw-loading-md tw-mt-1' })) : (jsxRuntime.jsx(SVG, { src: TargetSVG, className: 'tw-mt-1 tw-p-[1px]', style: { fill: `${active ? '#fc8702' : 'currentColor'}` } })) }) }) }));
2448
+ }, children: loading ? (jsxRuntime.jsx("span", { className: 'tw:loading tw:loading-spinner tw:loading-md tw:mt-1' })) : (jsxRuntime.jsx(SVG, { src: TargetSVG, className: 'tw:mt-1 tw:p-[1px]', style: { fill: `${active ? '#fc8702' : 'currentColor'}` } })) }) }) }));
2434
2449
  };
2435
2450
 
2436
2451
  function Bars3Icon({
@@ -2458,7 +2473,12 @@ const ForwardRef$a = /*#__PURE__*/ React__namespace.forwardRef(Bars3Icon);
2458
2473
 
2459
2474
  // Converts leaflet.locatecontrol to a React Component
2460
2475
  const SidebarControl = () => {
2461
- return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsx("div", { className: 'tw-card tw-bg-base-100 tw-shadow-xl tw-items-center tw-justify-center hover:tw-bg-slate-300 hover:tw-cursor-pointer tw-transition-all tw-duration-300 tw-mr-2 tw-h-12 tw-w-12 ', children: jsxRuntime.jsx("div", { className: 'tw-card-body tw-card tw-p-0', children: jsxRuntime.jsx("button", { className: 'tw-btn tw-btn-square tw-btn-ghost tw-rounded-2xl', "data-te-sidenav-toggle-ref": true, "data-te-target": '#sidenav', "aria-controls": '#sidenav', "aria-haspopup": 'true', children: jsxRuntime.jsx(ForwardRef$a, { className: 'tw-inline-block tw-w-5 tw-h-5' }) }) }) }) }));
2476
+ const appState = useAppState();
2477
+ const setAppState = useSetAppState();
2478
+ const toggleSidebar = () => {
2479
+ setAppState({ sideBarOpen: !appState.sideBarOpen });
2480
+ };
2481
+ return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsx("div", { className: 'tw:card tw:justify-center tw:items-center tw:bg-base-100 tw:flex-none tw:shadow-xl tw:px-0 tw:hover:bg-slate-300 tw:hover:cursor-pointer tw:transition-all tw:duration-300 tw:mr-2 tw:h-12 tw:w-12 ', onClick: () => toggleSidebar(), children: jsxRuntime.jsx(ForwardRef$a, { className: 'tw:inline-block tw:w-5 tw:h-5' }) }) }));
2462
2482
  };
2463
2483
 
2464
2484
  const SearchControl = () => {
@@ -2513,18 +2533,18 @@ const SearchControl = () => {
2513
2533
  }, 200);
2514
2534
  };
2515
2535
  const searchInput = React.useRef(null);
2516
- return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: !(windowDimensions.height < 500 && popupOpen && hideSuggestions) && (jsxRuntime.jsxs("div", { className: 'tw-w-[calc(100vw-2rem)] tw-max-w-[22rem] ', children: [jsxRuntime.jsxs("div", { className: 'tw-flex tw-flex-row', children: [appState.embedded && jsxRuntime.jsx(SidebarControl, {}), jsxRuntime.jsxs("div", { className: 'tw-relative', children: [jsxRuntime.jsx("input", { type: 'text', placeholder: 'search ...', autoComplete: 'off', value: value, className: 'tw-input tw-input-bordered tw-grow tw-shadow-xl tw-rounded-lg tw-pr-12', ref: searchInput, onChange: (e) => setValue(e.target.value), onFocus: () => {
2536
+ return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: !(windowDimensions.height < 500 && popupOpen && hideSuggestions) && (jsxRuntime.jsxs("div", { className: 'tw:w-[calc(100vw-2rem)] tw:max-w-[22rem] ', children: [jsxRuntime.jsxs("div", { className: 'tw:flex tw:flex-row', children: [appState.embedded && jsxRuntime.jsx(SidebarControl, {}), jsxRuntime.jsxs("div", { className: 'tw:relative tw:shrink tw:max-w-69 tw:w-full', children: [jsxRuntime.jsx("input", { type: 'text', placeholder: 'search ...', autoComplete: 'off', value: value, className: 'tw:input tw:input-bordered tw:h-12 tw:grow tw:shadow-xl tw:rounded-box tw:pr-12 tw:w-full', ref: searchInput, onChange: (e) => setValue(e.target.value), onFocus: () => {
2517
2537
  setHideSuggestions(false);
2518
2538
  if (windowDimensions.width < 500)
2519
2539
  map.closePopup();
2520
- }, onBlur: () => hide() }), value.length > 0 && (jsxRuntime.jsx("button", { className: 'tw-btn tw-btn-sm tw-btn-circle tw-absolute tw-right-2 tw-top-2', onClick: () => setValue(''), children: "\u2715" }))] }), jsxRuntime.jsx(LocateControl, {})] }), hideSuggestions ||
2540
+ }, onBlur: () => hide() }), value.length > 0 && (jsxRuntime.jsx("button", { className: 'tw:btn tw:btn-sm tw:btn-circle tw:absolute tw:right-2 tw:top-2', onClick: () => setValue(''), children: "\u2715" }))] }), jsxRuntime.jsx(LocateControl, {})] }), hideSuggestions ||
2521
2541
  (Array.from(geoResults).length === 0 &&
2522
2542
  itemsResults.length === 0 &&
2523
2543
  tagsResults.length === 0 &&
2524
2544
  !isGeoCoordinate(value)) ||
2525
- value.length === 0 ? ('') : (jsxRuntime.jsxs("div", { className: 'tw-card tw-card-body tw-bg-base-100 tw-p-4 tw-mt-2 tw-shadow-xl tw-overflow-y-auto tw-max-h-[calc(100dvh-152px)] tw-absolute tw-z-3000', children: [tagsResults.length > 0 && (jsxRuntime.jsx("div", { className: 'tw-flex tw-flex-wrap', children: tagsResults.slice(0, 3).map((tag) => (jsxRuntime.jsx("div", { className: 'tw-rounded-2xl tw-text-white tw-p-1 tw-px-4 tw-shadow-md tw-card tw-mr-2 tw-mb-2 tw-cursor-pointer', style: { backgroundColor: tag.color }, onClick: () => {
2545
+ value.length === 0 ? ('') : (jsxRuntime.jsxs("div", { className: 'tw:card tw:card-body tw:bg-base-100 tw:p-4 tw:mt-2 tw:shadow-xl tw:overflow-y-auto tw:max-h-[calc(100dvh-152px)] tw:absolute tw:z-3000 tw:w-83', children: [tagsResults.length > 0 && (jsxRuntime.jsx("div", { className: 'tw:flex tw:flex-wrap', children: tagsResults.slice(0, 3).map((tag) => (jsxRuntime.jsx("div", { className: 'tw:rounded-2xl tw:text-white tw:p-1 tw:px-4 tw:shadow-md tw:card tw:mr-2 tw:mb-2 tw:cursor-pointer', style: { backgroundColor: tag.color }, onClick: () => {
2526
2546
  addFilterTag(tag);
2527
- }, children: jsxRuntime.jsxs("b", { children: ["#", decodeTag(tag.name)] }) }, tag.name))) })), itemsResults.length > 0 && tagsResults.length > 0 && (jsxRuntime.jsx("hr", { className: 'tw-opacity-50' })), itemsResults.slice(0, 5).map((item) => (jsxRuntime.jsxs("div", { className: 'tw-cursor-pointer hover:tw-font-bold tw-flex tw-flex-row', onClick: () => {
2547
+ }, children: jsxRuntime.jsxs("b", { children: ["#", decodeTag(tag.name)] }) }, tag.name))) })), itemsResults.length > 0 && tagsResults.length > 0 && (jsxRuntime.jsx("hr", { className: 'tw:opacity-50' })), itemsResults.slice(0, 5).map((item) => (jsxRuntime.jsxs("div", { className: 'tw:cursor-pointer tw:hover:font-bold tw:flex tw:flex-row', onClick: () => {
2528
2548
  const marker = Object.entries(leafletRefs).find((r) => r[1].item === item)?.[1]
2529
2549
  .marker;
2530
2550
  if (marker) {
@@ -2533,18 +2553,18 @@ const SearchControl = () => {
2533
2553
  else {
2534
2554
  navigate('item/' + item.id + '?' + new URLSearchParams(window.location.search));
2535
2555
  }
2536
- }, children: [item.layer?.menuIcon ? (jsxRuntime.jsx(SVG, { src: item.layer.menuIcon, className: 'tw-text-current tw-mr-2 tw-mt-0 tw-w-5', preProcessor: (code) => {
2556
+ }, children: [item.layer?.menuIcon ? (jsxRuntime.jsx(SVG, { src: item.layer.menuIcon, className: 'tw:text-current tw:mr-2 tw:mt-0 tw:w-5', preProcessor: (code) => {
2537
2557
  code = code.replace(/fill=".*?"/g, 'fill="currentColor"');
2538
2558
  code = code.replace(/stroke=".*?"/g, 'stroke="currentColor"');
2539
2559
  return code;
2540
- } })) : (jsxRuntime.jsx("div", { className: 'tw-w-5' })), jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("div", { className: 'tw-text-sm tw-overflow-hidden tw-text-ellipsis tw-whitespace-nowrap tw-max-w-[17rem]', children: item.name }), jsxRuntime.jsx("div", { className: 'tw-text-xs tw-overflow-hidden tw-text-ellipsis tw-whitespace-nowrap tw-max-w-[17rem]', children: item.text })] })] }, item.id))), Array.from(geoResults).length > 0 &&
2541
- (itemsResults.length > 0 || tagsResults.length > 0) && (jsxRuntime.jsx("hr", { className: 'tw-opacity-50' })), Array.from(geoResults).map((geo) => (jsxRuntime.jsxs("div", { className: 'tw-flex tw-flex-row hover:tw-font-bold tw-cursor-pointer', onClick: () => {
2560
+ } })) : (jsxRuntime.jsx("div", { className: 'tw:w-5' })), jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("div", { className: 'tw:text-sm tw:overflow-hidden tw:text-ellipsis tw:whitespace-nowrap tw:max-w-[17rem]', children: item.name }), jsxRuntime.jsx("div", { className: 'tw:text-xs tw:overflow-hidden tw:text-ellipsis tw:whitespace-nowrap tw:max-w-[17rem]', children: item.text })] })] }, item.id))), Array.from(geoResults).length > 0 &&
2561
+ (itemsResults.length > 0 || tagsResults.length > 0) && (jsxRuntime.jsx("hr", { className: 'tw:opacity-50' })), Array.from(geoResults).map((geo) => (jsxRuntime.jsxs("div", { className: 'tw:flex tw:flex-row tw:hover:font-bold tw:cursor-pointer', onClick: () => {
2542
2562
  searchInput.current?.blur();
2543
2563
  leaflet.marker(new leaflet.LatLng(geo.geometry.coordinates[1], geo.geometry.coordinates[0]), {
2544
2564
  icon: MarkerIconFactory('circle', '#777', 'RGBA(35, 31, 32, 0.2)', 'point'),
2545
2565
  })
2546
2566
  .addTo(map)
2547
- .bindPopup(`<h3 class="tw-text-base tw-font-bold">${geo?.properties.name ? geo?.properties.name : value}<h3>${capitalizeFirstLetter(geo?.properties?.osm_value)}`)
2567
+ .bindPopup(`<h3 class="tw:text-base tw:font-bold">${geo?.properties.name ? geo?.properties.name : value}<h3>${capitalizeFirstLetter(geo?.properties?.osm_value)}`)
2548
2568
  .openPopup()
2549
2569
  .addEventListener('popupclose', (e) => {
2550
2570
  // eslint-disable-next-line no-console
@@ -2555,26 +2575,26 @@ const SearchControl = () => {
2555
2575
  else
2556
2576
  map.setView(new leaflet.LatLng(geo.geometry.coordinates[1], geo.geometry.coordinates[0]), 15, { duration: 1 });
2557
2577
  hide();
2558
- }, children: [jsxRuntime.jsx(ForwardRef$b, { className: 'tw-text-current tw-mr-2 tw-mt-0 tw-w-5' }), jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("div", { className: 'tw-text-sm tw-overflow-hidden tw-text-ellipsis tw-whitespace-nowrap tw-max-w-[17rem]', children: geo?.properties.name ? geo?.properties.name : value }), jsxRuntime.jsxs("div", { className: 'tw-text-xs tw-overflow-hidden tw-text-ellipsis tw-whitespace-nowrap tw-max-w-[17rem]', children: [geo?.properties?.city && `${capitalizeFirstLetter(geo?.properties?.city)}, `, ' ', geo?.properties?.osm_value &&
2578
+ }, children: [jsxRuntime.jsx(ForwardRef$b, { className: 'tw:text-current tw:mr-2 tw:mt-0 tw:w-5' }), jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("div", { className: 'tw:text-sm tw:overflow-hidden tw:text-ellipsis tw:whitespace-nowrap tw:max-w-[17rem]', children: geo?.properties.name ? geo?.properties.name : value }), jsxRuntime.jsxs("div", { className: 'tw:text-xs tw:overflow-hidden tw:text-ellipsis tw:whitespace-nowrap tw:max-w-[17rem]', children: [geo?.properties?.city && `${capitalizeFirstLetter(geo?.properties?.city)}, `, ' ', geo?.properties?.osm_value &&
2559
2579
  geo?.properties?.osm_value !== 'yes' &&
2560
2580
  geo?.properties?.osm_value !== 'primary' &&
2561
2581
  geo?.properties?.osm_value !== 'path' &&
2562
2582
  geo?.properties?.osm_value !== 'secondary' &&
2563
2583
  geo?.properties?.osm_value !== 'residential' &&
2564
2584
  geo?.properties?.osm_value !== 'unclassified' &&
2565
- `${capitalizeFirstLetter(geo?.properties?.osm_value)}, `, ' ', geo.properties.state && `${geo.properties.state}, `, ' ', geo.properties.country && geo.properties.country] })] })] }, Math.random()))), isGeoCoordinate(value) && (jsxRuntime.jsxs("div", { className: 'tw-flex tw-flex-row hover:tw-font-bold tw-cursor-pointer', onClick: () => {
2585
+ `${capitalizeFirstLetter(geo?.properties?.osm_value)}, `, ' ', geo.properties.state && `${geo.properties.state}, `, ' ', geo.properties.country && geo.properties.country] })] })] }, Math.random()))), isGeoCoordinate(value) && (jsxRuntime.jsxs("div", { className: 'tw:flex tw:flex-row tw:hover:font-bold tw:cursor-pointer', onClick: () => {
2566
2586
  leaflet.marker(new leaflet.LatLng(extractCoordinates(value)[0], extractCoordinates(value)[1]), {
2567
2587
  icon: MarkerIconFactory('circle', '#777', 'RGBA(35, 31, 32, 0.2)', 'point'),
2568
2588
  })
2569
2589
  .addTo(map)
2570
- .bindPopup(`<h3 class="tw-text-base tw-font-bold">${extractCoordinates(value)[0]}, ${extractCoordinates(value)[1]}</h3>`)
2590
+ .bindPopup(`<h3 class="tw:text-base tw:font-bold">${extractCoordinates(value)[0]}, ${extractCoordinates(value)[1]}</h3>`)
2571
2591
  .openPopup()
2572
2592
  .addEventListener('popupclose', (e) => {
2573
2593
  // eslint-disable-next-line no-console
2574
2594
  console.log(e.target.remove());
2575
2595
  });
2576
2596
  map.setView(new leaflet.LatLng(extractCoordinates(value)[0], extractCoordinates(value)[1]), 15, { duration: 1 });
2577
- }, children: [jsxRuntime.jsx(ForwardRef$c, { className: 'tw-text-current tw-mr-2 tw-mt-0 tw-w-4' }), jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("div", { className: 'tw-text-sm tw-overflow-hidden tw-text-ellipsis tw-whitespace-nowrap tw-max-w-[17rem]', children: value }), jsxRuntime.jsx("div", { className: 'tw-text-xs tw-overflow-hidden tw-text-ellipsis tw-whitespace-nowrap tw-max-w-[17rem]', children: 'Coordiante' })] })] }))] }))] })) }));
2597
+ }, children: [jsxRuntime.jsx(ForwardRef$c, { className: 'tw:text-current tw:mr-2 tw:mt-0 tw:w-4' }), jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("div", { className: 'tw:text-sm tw:overflow-hidden tw:text-ellipsis tw:whitespace-nowrap tw:max-w-[17rem]', children: value }), jsxRuntime.jsx("div", { className: 'tw:text-xs tw:overflow-hidden tw:text-ellipsis tw:whitespace-nowrap tw:max-w-[17rem]', children: 'Coordiante' })] })] }))] }))] })) }));
2578
2598
  };
2579
2599
  function isGeoCoordinate(input) {
2580
2600
  const geokoordinatenRegex =
@@ -2600,7 +2620,7 @@ function capitalizeFirstLetter(string) {
2600
2620
  const TagsControl = () => {
2601
2621
  const filterTags = useFilterTags();
2602
2622
  const removeFilterTag = useRemoveFilterTag();
2603
- return (jsxRuntime.jsx("div", { className: 'tw-flex tw-flex-wrap tw-mt-4 tw-w-[calc(100vw-2rem)] tw-max-w-xs', children: filterTags.map((tag) => (jsxRuntime.jsxs("div", { className: 'tw-rounded-2xl tw-text-white tw-p-2 tw-px-4 tw-shadow-xl tw-card tw-mr-2 tw-mb-2', style: { backgroundColor: tag.color }, children: [jsxRuntime.jsx("div", { className: 'tw-card-actions tw-justify-end', children: jsxRuntime.jsx("label", { className: 'tw-btn tw-btn-xs tw-btn-circle tw-absolute tw--right-2 tw--top-2 tw-bg-white tw-text-gray-600', onClick: () => removeFilterTag(tag.name), children: "\u2715" }) }), jsxRuntime.jsxs("b", { children: ["#", decodeTag(tag.name)] })] }, tag.id))) }));
2623
+ return (jsxRuntime.jsx("div", { className: 'tw:flex tw:flex-wrap tw:mt-4 tw:w-[calc(100vw-2rem)] tw:max-w-xs', children: filterTags.map((tag) => (jsxRuntime.jsxs("div", { className: 'tw:rounded-2xl tw:text-white tw:p-2 tw:px-4 tw:shadow-xl tw:card tw:mr-2 tw:mb-2', style: { backgroundColor: tag.color }, children: [jsxRuntime.jsx("div", { className: 'tw:card-actions tw:justify-end', children: jsxRuntime.jsx("label", { className: 'tw:btn tw:btn-xs tw:btn-circle tw:absolute tw:-right-2 tw:-top-2 tw:bg-white tw:text-gray-600', onClick: () => removeFilterTag(tag.name), children: "\u2715" }) }), jsxRuntime.jsxs("b", { children: ["#", decodeTag(tag.name)] })] }, tag.id))) }));
2604
2624
  };
2605
2625
 
2606
2626
  const urlRegex =
@@ -2662,19 +2682,19 @@ const TextView = ({ item, itemId, text, truncate = false, rawText, itemTextField
2662
2682
  return `[${match}](${match})`;
2663
2683
  });
2664
2684
  }
2665
- const CustomH1 = ({ children }) => jsxRuntime.jsx("h1", { className: 'tw-text-xl tw-font-bold', children: children });
2666
- const CustomH2 = ({ children }) => jsxRuntime.jsx("h2", { className: 'tw-text-lg tw-font-bold', children: children });
2667
- const CustomH3 = ({ children }) => jsxRuntime.jsx("h3", { className: 'tw-text-base tw-font-bold', children: children });
2668
- const CustomH4 = ({ children }) => jsxRuntime.jsx("h4", { className: 'tw-text-base tw-font-bold', children: children });
2669
- const CustomH5 = ({ children }) => jsxRuntime.jsx("h5", { className: 'tw-text-sm tw-font-bold', children: children });
2670
- const CustomH6 = ({ children }) => jsxRuntime.jsx("h6", { className: 'tw-text-sm tw-font-bold', children: children });
2671
- const CustomParagraph = ({ children }) => jsxRuntime.jsx("p", { className: '!tw-my-2', children: children });
2672
- const CustomUnorderdList = ({ children }) => (jsxRuntime.jsx("ul", { className: 'tw-list-disc tw-list-inside', children: children }));
2673
- const CustomOrderdList = ({ children }) => (jsxRuntime.jsx("ol", { className: 'tw-list-decimal tw-list-inside', children: children }));
2674
- const CustomHorizontalRow = ({ children }) => jsxRuntime.jsx("hr", { className: 'tw-border-current', children: children });
2685
+ const CustomH1 = ({ children }) => jsxRuntime.jsx("h1", { className: 'tw:text-xl tw:font-bold', children: children });
2686
+ const CustomH2 = ({ children }) => jsxRuntime.jsx("h2", { className: 'tw:text-lg tw:font-bold', children: children });
2687
+ const CustomH3 = ({ children }) => jsxRuntime.jsx("h3", { className: 'tw:text-base tw:font-bold', children: children });
2688
+ const CustomH4 = ({ children }) => jsxRuntime.jsx("h4", { className: 'tw:text-base tw:font-bold', children: children });
2689
+ const CustomH5 = ({ children }) => jsxRuntime.jsx("h5", { className: 'tw:text-sm tw:font-bold', children: children });
2690
+ const CustomH6 = ({ children }) => jsxRuntime.jsx("h6", { className: 'tw:text-sm tw:font-bold', children: children });
2691
+ const CustomParagraph = ({ children }) => jsxRuntime.jsx("p", { className: 'tw:my-2!', children: children });
2692
+ const CustomUnorderdList = ({ children }) => (jsxRuntime.jsx("ul", { className: 'tw:list-disc tw:list-inside', children: children }));
2693
+ const CustomOrderdList = ({ children }) => (jsxRuntime.jsx("ol", { className: 'tw:list-decimal tw:list-inside', children: children }));
2694
+ const CustomHorizontalRow = ({ children }) => jsxRuntime.jsx("hr", { className: 'tw:border-current', children: children });
2675
2695
  // eslint-disable-next-line react/prop-types
2676
- const CustomImage = ({ alt, src, title }) => (jsxRuntime.jsx("img", { className: 'tw-max-w-full tw-rounded tw-shadow', src: src, alt: alt, title: title }));
2677
- const CustomExternalLink = ({ href, children }) => (jsxRuntime.jsxs("a", { className: 'tw-font-bold tw-underline', href: href, target: '_blank', rel: 'noreferrer', children: [' ', children] }));
2696
+ const CustomImage = ({ alt, src, title }) => (jsxRuntime.jsx("img", { className: 'tw:max-w-full tw:rounded tw:shadow', src: src, alt: alt, title: title }));
2697
+ const CustomExternalLink = ({ href, children }) => (jsxRuntime.jsxs("a", { className: 'tw:font-bold tw:underline', href: href, target: '_blank', rel: 'noreferrer', children: [' ', children] }));
2678
2698
  const CustomHashTagLink = ({ children, tag, itemId, }) => {
2679
2699
  return (jsxRuntime.jsx("a", { style: { color: tag ? tag.color : '#faa', fontWeight: 'bold', cursor: 'pointer' }, onClick: (e) => {
2680
2700
  e.stopPropagation();
@@ -2682,8 +2702,8 @@ const TextView = ({ item, itemId, text, truncate = false, rawText, itemTextField
2682
2702
  }, children: decodeTag(children) }, tag ? tag.name + itemId : itemId));
2683
2703
  };
2684
2704
  // eslint-disable-next-line react/display-name
2685
- const MemoizedVideoEmbed = React.memo(({ url }) => (jsxRuntime.jsx("iframe", { className: 'tw-w-full', src: url, allow: 'fullscreen; picture-in-picture', allowFullScreen: true })));
2686
- return (jsxRuntime.jsx(Markdown, { className: 'tw-text-map tw-leading-map tw-text-sm', remarkPlugins: [remarkBreaks], components: {
2705
+ const MemoizedVideoEmbed = React.memo(({ url }) => (jsxRuntime.jsx("iframe", { className: 'tw:w-full', src: url, allow: 'fullscreen; picture-in-picture', allowFullScreen: true })));
2706
+ return (jsxRuntime.jsx(Markdown, { className: 'tw:text-map tw:leading-map tw:text-sm', remarkPlugins: [remarkBreaks], components: {
2687
2707
  p: CustomParagraph,
2688
2708
  a: ({ href, children }) => {
2689
2709
  const isYouTubeVideo = href?.startsWith('https://www.youtube.com/watch?v=');
@@ -2755,18 +2775,19 @@ function truncateText(text, limit) {
2755
2775
 
2756
2776
  /* eslint-disable @typescript-eslint/no-unsafe-call */
2757
2777
  const SelectPosition = ({ setSelectNewItemPosition }) => {
2758
- return (jsxRuntime.jsxs("div", { className: 'tw-animate-pulseGrow tw-button tw-z-1000 tw-absolute tw-right-5 tw-top-4 tw-drop-shadow-md', children: [jsxRuntime.jsx("label", { className: 'tw-btn tw-btn-sm tw-rounded-2xl tw-btn-circle tw-btn-ghost hover:tw-bg-transparent tw-absolute tw-right-0 tw-top-0 tw-text-gray-600', onClick: () => {
2778
+ return (jsxRuntime.jsxs("div", { className: 'tw:animate-pulseGrow tw:button tw:z-1000 tw:absolute tw:right-5 tw:top-4 tw:drop-shadow-md', children: [jsxRuntime.jsx("label", { className: 'tw:btn tw:btn-sm tw:rounded-2xl tw:btn-circle tw:btn-ghost tw:hover:bg-transparent tw:absolute tw:right-0 tw:top-0 tw:text-gray-600', onClick: () => {
2759
2779
  setSelectNewItemPosition(null);
2760
- }, children: jsxRuntime.jsx("p", { className: 'tw-text-center ', children: "\u2715" }) }), jsxRuntime.jsx("div", { className: 'tw-alert tw-bg-base-100 tw-text-base-content', children: jsxRuntime.jsx("div", { children: jsxRuntime.jsx("span", { className: 'tw-text-lg', children: "Select position on the map!" }) }) })] }));
2780
+ }, children: jsxRuntime.jsx("p", { className: 'tw:text-center ', children: "\u2715" }) }), jsxRuntime.jsx("div", { className: 'tw:alert tw:bg-base-100 tw:text-base-content', children: jsxRuntime.jsx("div", { children: jsxRuntime.jsx("span", { className: 'tw:text-lg', children: "Select position on the map!" }) }) })] }));
2761
2781
  };
2762
2782
 
2763
- function UtopiaMapInner({ children, geo, showFilterControl = false, showGratitudeControl = false, showLayerControl = true, donationWidget, }) {
2783
+ function UtopiaMapInner({ children, geo, showFilterControl = false, showGratitudeControl = false, showLayerControl = true, showThemeControl = false, defaultTheme = '', donationWidget, }) {
2764
2784
  const selectNewItemPosition = useSelectPosition();
2765
2785
  const setSelectNewItemPosition = useSetSelectPosition();
2766
2786
  const setClusterRef = useSetClusterRef();
2767
2787
  const clusterRef = useClusterRef();
2768
2788
  const setMapClicked = useSetMapClicked();
2769
2789
  const [itemFormPopup, setItemFormPopup] = React.useState(null);
2790
+ useTheme(defaultTheme);
2770
2791
  const layers = useLayers();
2771
2792
  const addVisibleLayer = useAddVisibleLayer();
2772
2793
  const leafletRefs = useLeafletRefs();
@@ -2776,12 +2797,16 @@ function UtopiaMapInner({ children, geo, showFilterControl = false, showGratitud
2776
2797
  layers.forEach((layer) => addVisibleLayer(layer));
2777
2798
  // eslint-disable-next-line react-hooks/exhaustive-deps
2778
2799
  }, [layers]);
2800
+ const setAppState = useSetAppState();
2801
+ React.useEffect(() => {
2802
+ setAppState({ showThemeControl });
2803
+ }, [setAppState, showThemeControl]);
2779
2804
  const init = React.useRef(false);
2780
2805
  React.useEffect(() => {
2781
2806
  if (!init.current) {
2782
2807
  donationWidget &&
2783
2808
  setTimeout(() => {
2784
- reactToastify.toast(jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(TextView, { itemId: '', rawText: '## Do you like this Map?' }), jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx(TextView, { itemId: '', rawText: 'Support us building free opensource maps for communities and help us grow 🌱☀️' }), jsxRuntime.jsx("a", { href: 'https://opencollective.com/utopia-project', children: jsxRuntime.jsx("div", { className: 'tw-btn tw-btn-sm tw-float-right tw-btn-primary', children: "Donate" }) })] })] }), { autoClose: false });
2809
+ reactToastify.toast(jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(TextView, { itemId: '', rawText: '## Do you like this Map?' }), jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx(TextView, { itemId: '', rawText: 'Support us building free opensource maps for communities and help us grow 🌱☀️' }), jsxRuntime.jsx("a", { href: 'https://opencollective.com/utopia-project', children: jsxRuntime.jsx("div", { className: 'tw:btn tw:btn-sm tw:float-right tw:btn-primary', children: "Donate" }) })] })] }), { autoClose: false });
2785
2810
  }, 600000);
2786
2811
  init.current = true;
2787
2812
  }
@@ -2865,7 +2890,7 @@ function UtopiaMapInner({ children, geo, showFilterControl = false, showGratitud
2865
2890
  layer.bindPopup(feature.properties.name);
2866
2891
  }
2867
2892
  };
2868
- return (jsxRuntime.jsxs("div", { className: `tw-h-full ${selectNewItemPosition != null ? 'crosshair-cursor-enabled' : ''}`, children: [jsxRuntime.jsx(reactRouterDom.Outlet, {}), jsxRuntime.jsxs(Control, { position: 'topLeft', zIndex: '1000', absolute: true, children: [jsxRuntime.jsx(SearchControl, {}), jsxRuntime.jsx(TagsControl, {})] }), jsxRuntime.jsxs(Control, { position: 'bottomLeft', zIndex: '999', absolute: true, children: [showFilterControl && jsxRuntime.jsx(FilterControl, {}), showLayerControl && jsxRuntime.jsx(LayerControl, {}), showGratitudeControl && jsxRuntime.jsx(GratitudeControl, {})] }), jsxRuntime.jsx(reactLeaflet.TileLayer, { maxZoom: 19, attribution: '\u00A9 <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors', url: 'https://tile.osmand.net/hd/{z}/{x}/{y}.png' }), jsxRuntime.jsx(MarkerClusterGroup, { ref: (r) => setClusterRef(r), showCoverageOnHover: true, chunkedLoading: true, maxClusterRadius: 50, removeOutsideVisibleBounds: false, children: React.Children.toArray(children).map((child) => React.isValidElement(child)
2893
+ return (jsxRuntime.jsxs("div", { className: `tw:h-full ${selectNewItemPosition != null ? 'crosshair-cursor-enabled' : ''}`, children: [jsxRuntime.jsx(reactRouterDom.Outlet, {}), jsxRuntime.jsxs(Control, { position: 'topLeft', zIndex: '1000', absolute: true, children: [jsxRuntime.jsx(SearchControl, {}), jsxRuntime.jsx(TagsControl, {})] }), jsxRuntime.jsxs(Control, { position: 'bottomLeft', zIndex: '999', absolute: true, children: [showFilterControl && jsxRuntime.jsx(FilterControl, {}), showLayerControl && jsxRuntime.jsx(LayerControl, {}), showGratitudeControl && jsxRuntime.jsx(GratitudeControl, {})] }), jsxRuntime.jsx(reactLeaflet.TileLayer, { maxZoom: 19, attribution: '\u00A9 <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors', url: 'https://tile.osmand.net/hd/{z}/{x}/{y}.png' }), jsxRuntime.jsx(MarkerClusterGroup, { ref: (r) => setClusterRef(r), showCoverageOnHover: true, chunkedLoading: true, maxClusterRadius: 50, removeOutsideVisibleBounds: false, children: React.Children.toArray(children).map((child) => React.isValidElement(child)
2869
2894
  ? React.cloneElement(child, { setItemFormPopup, itemFormPopup, clusterRef })
2870
2895
  : child) }), geo && (jsxRuntime.jsx(reactLeaflet.GeoJSON, { data: geo, onEachFeature: onEachFeature, eventHandlers: {
2871
2896
  click: (e) => {
@@ -2878,10 +2903,41 @@ function UtopiaMapInner({ children, geo, showFilterControl = false, showGratitud
2878
2903
  }
2879
2904
 
2880
2905
  /**
2906
+ * This component creates the map.
2907
+ * ```tsx
2908
+ * <UtopiaMap center={[50.6, 9.5]} zoom={5} height="100dvh" width="100dvw" />
2909
+ * ```
2910
+ * You can define its {@link Layer | `Layers`} as supcomponents.
2911
+ * ```tsx
2912
+ * <UtopiaMap center={[50.6, 15.5]} zoom={5} height="100dvh" width="100dvw">
2913
+ * <Layer
2914
+ * name="events"
2915
+ * markerIcon="calendar"
2916
+ * markerShape="square"
2917
+ * markerDefaultColor="#700"
2918
+ * data={events}
2919
+ * />
2920
+ * <Layer
2921
+ * name="places"
2922
+ * markerIcon="point"
2923
+ * markerShape="circle"
2924
+ * markerDefaultColor="#007"
2925
+ * data={places}
2926
+ * />
2927
+ * </UtopiaMap>
2928
+ * ```
2929
+ * You can also pass {@link Tags | `Tags`} or {@link Permissions | `Permissions`} as subcomponents.
2930
+ * ```tsx
2931
+ * <UtopiaMap center={[50.6, 15.5]} zoom={5} height="100dvh" width="100dvw">
2932
+ * ...
2933
+ * <Tags data={tags} />
2934
+ * <Permissions data={permissions} />
2935
+ * </UtopiaMap>
2936
+ * ```
2881
2937
  * @category Map
2882
2938
  */
2883
- function UtopiaMap({ height = '500px', width = '100%', center = [50.6, 9.5], zoom = 10, children, geo, showFilterControl = false, showGratitudeControl = false, showLayerControl = true, infoText, donationWidget, }) {
2884
- return (jsxRuntime.jsx(ContextWrapper, { children: jsxRuntime.jsx(reactLeaflet.MapContainer, { style: { height, width }, center: new leaflet.LatLng(center[0], center[1]), zoom: zoom, zoomControl: false, maxZoom: 19, children: jsxRuntime.jsx(UtopiaMapInner, { geo: geo, showFilterControl: showFilterControl, showGratitudeControl: showGratitudeControl, showLayerControl: showLayerControl, infoText: infoText, donationWidget: donationWidget, children: children }) }) }));
2939
+ function UtopiaMap({ height = '500px', width = '100%', center = [50.6, 9.5], zoom = 10, children, geo, showFilterControl = false, showGratitudeControl = false, showLayerControl = true, showThemeControl = false, defaultTheme, donationWidget, }) {
2940
+ return (jsxRuntime.jsx(ContextWrapper, { children: jsxRuntime.jsx(reactLeaflet.MapContainer, { style: { height, width }, center: new leaflet.LatLng(center[0], center[1]), zoom: zoom, zoomControl: false, maxZoom: 19, children: jsxRuntime.jsx(UtopiaMapInner, { geo: geo, showFilterControl: showFilterControl, showGratitudeControl: showGratitudeControl, showLayerControl: showLayerControl, donationWidget: donationWidget, showThemeControl: showThemeControl, defaultTheme: defaultTheme, children: children }) }) }));
2885
2941
  }
2886
2942
 
2887
2943
  const goldenRatioConjugate = 0.618033988749895;
@@ -2953,7 +3009,7 @@ function TextAreaInput({ labelTitle, dataField, labelStyle, containerStyle, inpu
2953
3009
  updateFormValue(newValue);
2954
3010
  }
2955
3011
  };
2956
- return (jsxRuntime.jsxs("div", { className: `tw-form-control tw-w-full ${containerStyle ?? ''}`, children: [labelTitle ? (jsxRuntime.jsx("label", { className: 'tw-label', children: jsxRuntime.jsx("span", { className: `tw-label-text tw-text-base-content ${labelStyle ?? ''}`, children: labelTitle }) })) : null, jsxRuntime.jsx("textarea", { required: required, ref: ref, value: inputValue, name: dataField, className: `tw-textarea tw-textarea-bordered tw-w-full tw-leading-5 ${inputStyle ?? ''}`, placeholder: placeholder ?? '', onChange: handleChange })] }));
3012
+ return (jsxRuntime.jsxs("div", { className: `tw:form-control tw:w-full ${containerStyle ?? ''}`, children: [labelTitle ? (jsxRuntime.jsx("label", { className: 'tw:label', children: jsxRuntime.jsx("span", { className: `tw:label-text tw:text-base-content ${labelStyle ?? ''}`, children: labelTitle }) })) : null, jsxRuntime.jsx("textarea", { required: required, ref: ref, value: inputValue, name: dataField, className: `tw:textarea tw:textarea-bordered tw:w-full tw:leading-5 ${inputStyle ?? ''}`, placeholder: placeholder ?? '', onChange: handleChange })] }));
2957
3013
  }
2958
3014
 
2959
3015
  /**
@@ -2971,7 +3027,7 @@ function TextInput({ labelTitle, labelStyle, type, dataField, containerStyle, in
2971
3027
  updateFormValue(newValue);
2972
3028
  }
2973
3029
  };
2974
- return (jsxRuntime.jsxs("div", { className: `tw-form-control ${containerStyle ?? ''}`, children: [labelTitle ? (jsxRuntime.jsx("label", { className: 'tw-label', children: jsxRuntime.jsx("span", { className: `tw-label-text tw-text-base-content ${labelStyle ?? ''}`, children: labelTitle }) })) : null, jsxRuntime.jsx("input", { required: required, pattern: pattern, type: type ?? 'text', name: dataField, value: inputValue, placeholder: placeholder ?? '', autoComplete: autocomplete, onChange: handleChange, className: `tw-input tw-input-bordered tw-w-full ${inputStyle ?? ''}` })] }));
3030
+ return (jsxRuntime.jsxs("div", { className: `tw:form-control ${containerStyle ?? ''}`, children: [labelTitle ? (jsxRuntime.jsx("label", { className: 'tw:label', children: jsxRuntime.jsx("span", { className: `tw:label-text tw:text-base-content ${labelStyle ?? ''}`, children: labelTitle }) })) : null, jsxRuntime.jsx("input", { required: required, pattern: pattern, type: type ?? 'text', name: dataField, value: inputValue, placeholder: placeholder ?? '', autoComplete: autocomplete, onChange: handleChange, className: `tw:input tw:input-bordered tw:w-full ${inputStyle ?? ''}` })] }));
2975
3031
  }
2976
3032
 
2977
3033
  function ItemFormPopup(props) {
@@ -3084,15 +3140,15 @@ function ItemFormPopup(props) {
3084
3140
  resetPopup();
3085
3141
  }, 100);
3086
3142
  },
3087
- }, position: props.position, children: jsxRuntime.jsxs("form", { ref: formRef, onReset: resetPopup, autoComplete: 'off', onSubmit: (e) => handleSubmit(e), children: [props.item ? (jsxRuntime.jsx("div", { className: 'tw-h-3' })) : (jsxRuntime.jsx("div", { className: 'tw-flex tw-justify-center', children: jsxRuntime.jsx("b", { className: 'tw-text-xl tw-text-center tw-font-bold', children: props.layer.menuText }) })), props.children ? (React.Children.toArray(props.children).map((child) => React.isValidElement(child)
3143
+ }, position: props.position, children: jsxRuntime.jsxs("form", { ref: formRef, onReset: resetPopup, autoComplete: 'off', onSubmit: (e) => handleSubmit(e), children: [props.item ? (jsxRuntime.jsx("div", { className: 'tw:h-3' })) : (jsxRuntime.jsx("div", { className: 'tw:flex tw:justify-center', children: jsxRuntime.jsx("b", { className: 'tw:text-xl tw:text-center tw:font-bold', children: props.layer.menuText }) })), props.children ? (React.Children.toArray(props.children).map((child) => React.isValidElement(child)
3088
3144
  ? React.cloneElement(child, {
3089
3145
  item: props.item,
3090
3146
  key: props.position.toString(),
3091
3147
  setPopupTitle,
3092
3148
  })
3093
- : '')) : (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(TextInput, { type: 'text', placeholder: 'Name', dataField: 'name', defaultValue: props.item ? props.item.name : '', inputStyle: '' }), jsxRuntime.jsx(TextAreaInput, { placeholder: 'Text', dataField: 'text', defaultValue: props.item?.text ?? '', inputStyle: 'tw-h-40 tw-mt-5' }, props.position.toString())] })), jsxRuntime.jsx("div", { className: 'tw-flex tw-justify-center', children: jsxRuntime.jsx("button", { className: spinner
3094
- ? 'tw-btn tw-btn-disabled tw-mt-5 tw-place-self-center'
3095
- : 'tw-btn tw-mt-5 tw-place-self-center', type: 'submit', children: spinner ? jsxRuntime.jsx("span", { className: 'tw-loading tw-loading-spinner' }) : 'Save' }) })] }) }));
3149
+ : '')) : (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(TextInput, { type: 'text', placeholder: 'Name', dataField: 'name', defaultValue: props.item ? props.item.name : '', inputStyle: '' }), jsxRuntime.jsx(TextAreaInput, { placeholder: 'Text', dataField: 'text', defaultValue: props.item?.text ?? '', inputStyle: 'tw:h-40 tw:mt-5' }, props.position.toString())] })), jsxRuntime.jsx("div", { className: 'tw:flex tw:justify-center', children: jsxRuntime.jsx("button", { className: spinner
3150
+ ? 'tw:btn tw:btn-disabled tw:mt-5 tw:place-self-center'
3151
+ : 'tw:btn tw:mt-5 tw:place-self-center', type: 'submit', children: spinner ? jsxRuntime.jsx("span", { className: 'tw:loading tw:loading-spinner' }) : 'Save' }) })] }) }));
3096
3152
  }
3097
3153
 
3098
3154
  // in miliseconds
@@ -3192,7 +3248,7 @@ function TrashIcon({
3192
3248
  }
3193
3249
  const ForwardRef$7 = /*#__PURE__*/ React__namespace.forwardRef(TrashIcon);
3194
3250
 
3195
- var TargetDotSVG = 'data:image/svg+xml;base64,PHN2ZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPSdjdXJyZW50Q29sb3InCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPSdjdXJyZW50Q29sb3InCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VXaWR0aD0nMCcKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9JzAgMCA1MTIgNTEyJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPSd0dy13LTUgdHctaC01JwogICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJwogICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9J00yNTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMlY0Mi40YzkzLjcgMTMuOSAxNjcuNyA4OCAxODEuNiAxODEuNkg0ODBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJINDY5LjZjLTEzLjkgOTMuNy04OCAxNjcuNy0xODEuNiAxODEuNlY0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWNDY5LjZDMTMwLjMgNDU1LjcgNTYuMyAzODEuNyA0Mi40IDI4OEgzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMkg0Mi40QzU2LjMgMTMwLjMgMTMwLjMgNTYuMyAyMjQgNDIuNFYzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMTA3LjQgMjg4YzEyLjUgNTguMyA1OC40IDEwNC4xIDExNi42IDExNi42VjM4NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMydjIwLjZjNTguMy0xMi41IDEwNC4xLTU4LjQgMTE2LjYtMTE2LjZIMzg0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyaDIwLjZDMzkyLjEgMTY1LjcgMzQ2LjMgMTE5LjkgMjg4IDEwNy40VjEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYxMDcuNEMxNjUuNyAxMTkuOSAxMTkuOSAxNjUuNyAxMDcuNCAyMjRIMTI4YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDEwNy40ek0yNTYgMjI0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHonPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4=';
3251
+ var TargetDotSVG = 'data:image/svg+xml;base64,PHN2ZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPSdjdXJyZW50Q29sb3InCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPSdjdXJyZW50Q29sb3InCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VXaWR0aD0nMCcKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9JzAgMCA1MTIgNTEyJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPSd3LTUgaC01JwogICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJwogICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9J00yNTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMlY0Mi40YzkzLjcgMTMuOSAxNjcuNyA4OCAxODEuNiAxODEuNkg0ODBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJINDY5LjZjLTEzLjkgOTMuNy04OCAxNjcuNy0xODEuNiAxODEuNlY0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWNDY5LjZDMTMwLjMgNDU1LjcgNTYuMyAzODEuNyA0Mi40IDI4OEgzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMkg0Mi40QzU2LjMgMTMwLjMgMTMwLjMgNTYuMyAyMjQgNDIuNFYzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMTA3LjQgMjg4YzEyLjUgNTguMyA1OC40IDEwNC4xIDExNi42IDExNi42VjM4NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMydjIwLjZjNTguMy0xMi41IDEwNC4xLTU4LjQgMTE2LjYtMTE2LjZIMzg0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyaDIwLjZDMzkyLjEgMTY1LjcgMzQ2LjMgMTE5LjkgMjg4IDEwNy40VjEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYxMDcuNEMxNjUuNyAxMTkuOSAxMTkuOSAxNjUuNyAxMDcuNCAyMjRIMTI4YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDEwNy40ek0yNTYgMjI0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHonPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4=';
3196
3252
 
3197
3253
  const isClickInsideRectangle = (e, element) => {
3198
3254
  const r = element.getBoundingClientRect();
@@ -3203,17 +3259,17 @@ const DialogModal = ({ title, isOpened, onClose, children, showCloseButton = tru
3203
3259
  React.useEffect(() => {
3204
3260
  if (isOpened) {
3205
3261
  ref.current?.showModal();
3206
- ref.current?.classList.remove('tw-hidden');
3262
+ ref.current?.classList.remove('tw:hidden');
3207
3263
  document.body.classList.add('modal-open'); // prevent bg scroll
3208
3264
  }
3209
3265
  else {
3210
3266
  ref.current?.close();
3211
- ref.current?.classList.add('tw-hidden');
3267
+ ref.current?.classList.add('tw:hidden');
3212
3268
  document.body.classList.remove('modal-open');
3213
3269
  }
3214
3270
  }, [isOpened]);
3215
3271
  if (isOpened) {
3216
- return (jsxRuntime.jsx("dialog", { className: `${className ?? ''} tw-card tw-shadow-xl tw-absolute tw-right-0 tw-top-0 tw-bottom-0 tw-left-0 tw-m-auto tw-transition-opacity tw-duration-300 tw-p-4 tw-max-w-xl tw-bg-base-100`, ref: ref, onCancel: onClose, onClick: (e) => ref.current && !isClickInsideRectangle(e, ref.current) && closeOnClickOutside && onClose(), children: jsxRuntime.jsxs("div", { className: 'tw-card-body tw-p-2', children: [jsxRuntime.jsx("h2", { className: 'tw-text-2xl tw-font-semibold tw-mb-2 tw-text-center', children: title }), children, showCloseButton && (jsxRuntime.jsx("button", { className: 'tw-btn tw-btn-sm tw-btn-circle tw-btn-ghost tw-absolute tw-right-2 tw-top-2', onClick: onClose, children: "\u2715" }))] }) }));
3272
+ return (jsxRuntime.jsx("dialog", { className: `${className ?? ''} card tw:shadow-xl tw:absolute tw:right-0 tw:top-0 tw:bottom-0 tw:left-0 tw:m-auto tw:transition-opacity tw:duration-300 tw:p-4 tw:max-w-xl tw:bg-base-100`, ref: ref, onCancel: onClose, onClick: (e) => ref.current && !isClickInsideRectangle(e, ref.current) && closeOnClickOutside && onClose(), children: jsxRuntime.jsxs("div", { className: 'card-body tw:p-2', children: [jsxRuntime.jsx("h2", { className: 'tw:text-2xl tw:font-semibold tw:mb-2 tw:text-center', children: title }), children, showCloseButton && (jsxRuntime.jsx("button", { className: 'btn btn-sm btn-circle btn-ghost tw:absolute tw:right-2 tw:top-2', onClick: onClose, children: "\u2715" }))] }) }));
3217
3273
  }
3218
3274
  else
3219
3275
  return jsxRuntime.jsx(jsxRuntime.Fragment, {});
@@ -3225,8 +3281,7 @@ function HeaderView({ item, api, editCallback, deleteCallback, setPositionCallba
3225
3281
  const navigate = reactRouterDom.useNavigate();
3226
3282
  const appState = useAppState();
3227
3283
  const [imageLoaded, setImageLoaded] = React.useState(false);
3228
- const avatar = item.image &&
3229
- appState.assetsApi.url + item.image + `${big ? '?width=160&heigth=160' : '?width=80&heigth=80'}`;
3284
+ const avatar = item.image && appState.assetsApi.url + item.image + '?width=160&heigth=160';
3230
3285
  const title = item.name;
3231
3286
  const subtitle = item.subname;
3232
3287
  const [address] = React.useState('');
@@ -3235,21 +3290,21 @@ function HeaderView({ item, api, editCallback, deleteCallback, setPositionCallba
3235
3290
  setModalOpen(true);
3236
3291
  event.stopPropagation();
3237
3292
  };
3238
- return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs("div", { className: 'tw-flex tw-flex-row', children: [jsxRuntime.jsx("div", { className: 'tw-grow tw-max-w-[calc(100%-60px)] }', children: jsxRuntime.jsxs("div", { className: 'flex items-center', children: [avatar && (jsxRuntime.jsx("div", { className: 'tw-avatar', children: jsxRuntime.jsxs("div", { className: `${big ? 'tw-w-20' : 'tw-w-10'} tw-inline tw-items-center tw-justify-center overflow-hidden`, children: [jsxRuntime.jsx("img", { className: 'tw-w-full tw-h-full tw-object-cover tw-rounded-full', src: avatar, alt: item.name + ' logo', onLoad: () => setImageLoaded(true), onError: () => setImageLoaded(false), style: { display: imageLoaded ? 'block' : 'none' } }), !imageLoaded && (jsxRuntime.jsx("div", { className: 'tw-w-full tw-h-full tw-bg-gray-200 tw-rounded-full' }))] }) })), jsxRuntime.jsxs("div", { className: `${avatar ? 'tw-ml-2' : ''} tw-overflow-hidden`, children: [jsxRuntime.jsx("div", { className: `${big ? 'xl:tw-text-3xl tw-text-2xl' : 'tw-text-xl'} tw-font-semibold tw-truncate`, title: title, children: title }), showAddress && address && !hideSubname && (jsxRuntime.jsx("div", { className: `tw-text-xs tw-text-gray-500 ${truncateSubname && 'tw-truncate'}`, children: address })), subtitle && !hideSubname && (jsxRuntime.jsx("div", { className: `tw-text-xs tw-text-gray-500 ${truncateSubname && 'tw-truncate'}`, children: subtitle }))] })] }) }), jsxRuntime.jsx("div", { onClick: (e) => e.stopPropagation(), className: `${big ? 'tw-mt-5' : 'tw-mt-1'}`, children: (api?.deleteItem || item.layer?.api?.updateItem) &&
3293
+ return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs("div", { className: 'tw:flex tw:flex-row', children: [jsxRuntime.jsx("div", { className: 'tw:grow tw:max-w-[calc(100%-60px)] }', children: jsxRuntime.jsxs("div", { className: 'flex items-center', children: [avatar && (jsxRuntime.jsx("div", { className: 'tw:avatar', children: jsxRuntime.jsxs("div", { className: `${big ? 'tw:w-20' : 'tw:w-10'} tw:inline tw:items-center tw:justify-center overflow-hidden`, children: [jsxRuntime.jsx("img", { className: 'tw:w-full tw:h-full tw:object-cover tw:rounded-full', src: avatar, alt: item.name + ' logo', onLoad: () => setImageLoaded(true), onError: () => setImageLoaded(false), style: { display: imageLoaded ? 'block' : 'none' } }), !imageLoaded && (jsxRuntime.jsx("div", { className: 'tw:w-full tw:h-full tw:bg-gray-200 tw:rounded-full' }))] }) })), jsxRuntime.jsxs("div", { className: `${avatar ? 'tw:ml-2' : ''} tw:overflow-hidden`, children: [jsxRuntime.jsx("div", { className: `${big ? 'tw:xl:text-3xl tw:text-2xl' : 'tw:text-xl'} tw:font-semibold tw:truncate`, title: title, children: title }), showAddress && address && !hideSubname && (jsxRuntime.jsx("div", { className: `tw:text-xs tw:text-gray-500 ${truncateSubname && 'tw:truncate'}`, children: address })), subtitle && !hideSubname && (jsxRuntime.jsx("div", { className: `tw:text-xs tw:opacity-50 ${truncateSubname && 'tw:truncate'}`, children: subtitle }))] })] }) }), jsxRuntime.jsx("div", { onClick: (e) => e.stopPropagation(), className: `${big ? 'tw:mt-5' : 'tw:mt-1'}`, children: (api?.deleteItem || item.layer?.api?.updateItem) &&
3239
3294
  (hasUserPermission(api?.collectionName, 'delete', item) ||
3240
3295
  hasUserPermission(api?.collectionName, 'update', item)) &&
3241
- !hideMenu && (jsxRuntime.jsxs("div", { className: 'tw-dropdown tw-dropdown-bottom', children: [jsxRuntime.jsx("label", { tabIndex: 0, className: 'tw-bg-base-100 tw-btn tw-m-1 tw-leading-3 tw-border-none tw-min-h-0 tw-h-6', children: jsxRuntime.jsx(ForwardRef$9, { className: 'tw-h-5 tw-w-5' }) }), jsxRuntime.jsxs("ul", { tabIndex: 0, className: 'tw-dropdown-content tw-menu tw-p-2 tw-shadow tw-bg-base-100 tw-rounded-box tw-z-1000', children: [api?.updateItem &&
3296
+ !hideMenu && (jsxRuntime.jsxs("div", { className: 'tw:dropdown tw:dropdown-bottom', children: [jsxRuntime.jsx("label", { tabIndex: 0, className: 'tw:bg-base-100 tw:btn tw:m-1 tw:leading-3 tw:border-none tw:min-h-0 tw:h-6', children: jsxRuntime.jsx(ForwardRef$9, { className: 'tw:h-5 tw:w-5' }) }), jsxRuntime.jsxs("ul", { tabIndex: 0, className: 'tw:dropdown-content tw:menu tw:p-2 tw:shadow tw:bg-base-100 tw:rounded-box tw:z-1000', children: [api?.updateItem &&
3242
3297
  hasUserPermission(api.collectionName, 'update', item) &&
3243
- editCallback && (jsxRuntime.jsx("li", { children: jsxRuntime.jsx("a", { className: '!tw-text-base-content tw-cursor-pointer', onClick: (e) => item.layer?.customEditLink
3298
+ editCallback && (jsxRuntime.jsx("li", { children: jsxRuntime.jsx("a", { className: 'tw:text-base-content! tw:cursor-pointer', onClick: (e) => item.layer?.customEditLink
3244
3299
  ? navigate(`${item.layer.customEditLink}${item.layer.customEditParameter ? `/${item.id}${params && '?' + params}` : ''} `)
3245
- : editCallback(e), children: jsxRuntime.jsx(ForwardRef$8, { className: 'tw-h-5 tw-w-5' }) }) })), api?.updateItem &&
3300
+ : editCallback(e), children: jsxRuntime.jsx(ForwardRef$8, { className: 'tw:h-5 tw:w-5' }) }) })), api?.updateItem &&
3246
3301
  hasUserPermission(api.collectionName, 'update', item) &&
3247
- setPositionCallback && (jsxRuntime.jsx("li", { children: jsxRuntime.jsx("a", { className: '!tw-text-base-content tw-cursor-pointer', onClick: setPositionCallback, children: jsxRuntime.jsx(SVG, { src: TargetDotSVG, className: 'tw-w-5 tw-h-5' }) }) })), api?.deleteItem &&
3302
+ setPositionCallback && (jsxRuntime.jsx("li", { children: jsxRuntime.jsx("a", { className: 'tw:text-base-content! tw:cursor-pointer', onClick: setPositionCallback, children: jsxRuntime.jsx(SVG, { src: TargetDotSVG, className: 'tw:w-5 tw:h-5' }) }) })), api?.deleteItem &&
3248
3303
  hasUserPermission(api.collectionName, 'delete', item) &&
3249
- deleteCallback && (jsxRuntime.jsx("li", { children: jsxRuntime.jsx("a", { className: 'tw-cursor-pointer !tw-text-error', onClick: openDeleteModal, children: loading ? (jsxRuntime.jsx("span", { className: 'tw-loading tw-loading-spinner tw-loading-sm' })) : (jsxRuntime.jsx(ForwardRef$7, { className: 'tw-h-5 tw-w-5' })) }) }))] })] })) })] }), jsxRuntime.jsx(DialogModal, { isOpened: modalOpen, title: 'Are you sure?', showCloseButton: false, onClose: () => setModalOpen(false), children: jsxRuntime.jsxs("div", { onClick: (e) => e.stopPropagation(), children: [jsxRuntime.jsxs("span", { children: ["Do you want to delete ", jsxRuntime.jsx("b", { children: item.name }), "?"] }), jsxRuntime.jsx("div", { className: 'tw-grid', children: jsxRuntime.jsxs("div", { className: 'tw-flex tw-justify-between', children: [jsxRuntime.jsx("label", { className: 'tw-btn tw-mt-4 tw-btn-error', onClick: (e) => {
3304
+ deleteCallback && (jsxRuntime.jsx("li", { children: jsxRuntime.jsx("a", { className: 'tw:cursor-pointer tw:text-error!', onClick: openDeleteModal, children: loading ? (jsxRuntime.jsx("span", { className: 'tw:loading tw:loading-spinner tw:loading-sm' })) : (jsxRuntime.jsx(ForwardRef$7, { className: 'tw:h-5 tw:w-5' })) }) }))] })] })) })] }), jsxRuntime.jsx(DialogModal, { isOpened: modalOpen, title: 'Are you sure?', showCloseButton: false, onClose: () => setModalOpen(false), children: jsxRuntime.jsxs("div", { onClick: (e) => e.stopPropagation(), children: [jsxRuntime.jsxs("span", { children: ["Do you want to delete ", jsxRuntime.jsx("b", { children: item.name }), "?"] }), jsxRuntime.jsx("div", { className: 'tw:grid', children: jsxRuntime.jsxs("div", { className: 'tw:flex tw:justify-between', children: [jsxRuntime.jsx("label", { className: 'tw:btn tw:mt-4 tw:btn-error', onClick: (e) => {
3250
3305
  deleteCallback(e);
3251
3306
  setModalOpen(false);
3252
- }, children: "Yes" }), jsxRuntime.jsx("label", { className: 'tw-btn tw-mt-4', onClick: () => setModalOpen(false), children: "No" })] }) })] }) })] }));
3307
+ }, children: "Yes" }), jsxRuntime.jsx("label", { className: 'tw:btn tw:mt-4', onClick: () => setModalOpen(false), children: "No" })] }) })] }) })] }));
3253
3308
  }
3254
3309
 
3255
3310
  // eslint-disable-next-line react/display-name
@@ -3299,13 +3354,13 @@ const ItemViewPopup = React.forwardRef((props, ref) => {
3299
3354
  window.history.pushState({}, '', '/' + `${params ? `?${params}` : ''}`);
3300
3355
  navigate('/');
3301
3356
  };
3302
- return (jsxRuntime.jsx(reactLeaflet.Popup, { ref: ref, maxHeight: 377, minWidth: 275, maxWidth: 275, autoPanPadding: [20, 80], children: jsxRuntime.jsxs("div", { className: 'tw-bg-base-100 tw-text-base-content', children: [jsxRuntime.jsx(HeaderView, { api: props.item.layer?.api, item: props.item, editCallback: handleEdit, deleteCallback: handleDelete, setPositionCallback: () => {
3357
+ return (jsxRuntime.jsx(reactLeaflet.Popup, { ref: ref, maxHeight: 377, minWidth: 275, maxWidth: 275, autoPanPadding: [20, 80], children: jsxRuntime.jsxs("div", { className: 'tw:bg-base-100 tw:text-base-content', children: [jsxRuntime.jsx(HeaderView, { api: props.item.layer?.api, item: props.item, editCallback: handleEdit, deleteCallback: handleDelete, setPositionCallback: () => {
3303
3358
  map.closePopup();
3304
3359
  setSelectPosition(props.item);
3305
3360
  navigate('/');
3306
- }, loading: loading }), jsxRuntime.jsx("div", { className: 'tw-overflow-y-auto tw-overflow-x-hidden tw-max-h-64 fade', children: props.children ? (React.Children.toArray(props.children).map((child) => React.isValidElement(child)
3361
+ }, loading: loading }), jsxRuntime.jsx("div", { className: 'tw:overflow-y-auto tw:overflow-x-hidden tw:max-h-64 fade', children: props.children ? (React.Children.toArray(props.children).map((child) => React.isValidElement(child)
3307
3362
  ? React.cloneElement(child, { item: props.item })
3308
- : '')) : (jsxRuntime.jsx(TextView, { text: props.item.text, itemId: props.item.id })) }), jsxRuntime.jsxs("div", { className: 'tw-flex -tw-mb-1 tw-flex-row tw-mr-2 tw-mt-1', children: [infoExpanded ? (jsxRuntime.jsx("p", { className: 'tw-italic tw-min-h-[21px] !tw-my-0 tw-text-gray-500', children: `${props.item.date_updated && props.item.date_updated !== props.item.date_created ? 'updated' : 'posted'} ${props.item && props.item.user_created && props.item.user_created.first_name ? `by ${props.item.user_created.first_name}` : ''} ${props.item.date_updated ? timeAgo(props.item.date_updated) : timeAgo(props.item.date_created)}` })) : (jsxRuntime.jsx("p", { className: '!tw-my-0 tw-min-h-[21px] tw-font-bold tw-cursor-pointer tw-text-gray-500', onClick: () => setInfoExpanded(true), children: "\u24D8" })), jsxRuntime.jsx("div", { className: 'tw-grow' })] })] }) }));
3363
+ : '')) : (jsxRuntime.jsx(TextView, { text: props.item.text, itemId: props.item.id })) }), jsxRuntime.jsxs("div", { className: 'tw:flex tw:-mb-1 tw:flex-row tw:mr-2 tw:mt-1', children: [infoExpanded ? (jsxRuntime.jsx("p", { className: 'tw:italic tw:min-h-[21px] tw:my-0! tw:opacity-50', children: `${props.item.date_updated && props.item.date_updated !== props.item.date_created ? 'updated' : 'posted'} ${props.item && props.item.user_created && props.item.user_created.first_name ? `by ${props.item.user_created.first_name}` : ''} ${props.item.date_updated ? timeAgo(props.item.date_updated) : timeAgo(props.item.date_created)}` })) : (jsxRuntime.jsx("p", { className: 'tw:my-0! tw:min-h-[21px] tw:font-bold tw:cursor-pointer tw:text-gray-500', onClick: () => setInfoExpanded(true), children: "\u24D8" })), jsxRuntime.jsx("div", { className: 'tw:grow' })] })] }) }));
3309
3364
  });
3310
3365
 
3311
3366
  /**
@@ -3483,6 +3538,28 @@ function isComponentWithType(node) {
3483
3538
  }
3484
3539
 
3485
3540
  /**
3541
+ * This Components injects Tags comming from an {@link ItemsApi | `API`}
3542
+ * ```tsx
3543
+ * <Tags api={tagsApi} />
3544
+ * ```
3545
+ * or from on {@link Tag| `Array`}
3546
+ * ```tsx
3547
+ * <Tags data={tags} />
3548
+ * ```
3549
+ * Can be child of {@link AppShell | `AppShell`}
3550
+ * ```tsx
3551
+ * <AppShell>
3552
+ * ...
3553
+ * <Tags api={tagsApi} />
3554
+ * </AppShell>
3555
+ * ```
3556
+ * Or child of {@link UtopiaMap | `UtopiaMap`}
3557
+ * ```tsx
3558
+ * <UtopiaMap>
3559
+ * ...
3560
+ * <Tags api={tagsApi} />
3561
+ * </UtopiaMap>
3562
+ * ```
3486
3563
  * @category Map
3487
3564
  */
3488
3565
  function Tags({ data, api }) {
@@ -3518,9 +3595,31 @@ function Tags({ data, api }) {
3518
3595
  }
3519
3596
 
3520
3597
  /**
3598
+ * This Components injects Permissions comming from an {@link ItemsApi | `API`}
3599
+ * ```tsx
3600
+ * <Permissions api={itemsApiInstance} adminRole="8141dee8-8e10-48d0-baf1-680aea271298" />
3601
+ * ```
3602
+ * or from on {@link Permission| `Array`}
3603
+ * ```tsx
3604
+ * <Permissions data={permissions} adminRole="8141dee8-8e10-48d0-baf1-680aea271298" />
3605
+ * ```
3606
+ * Can be child of {@link AppShell | `AppShell`}
3607
+ * ```tsx
3608
+ * <AppShell>
3609
+ * ...
3610
+ * <Permissions api={itemsApiInstance} adminRole="8141dee8-8e10-48d0-baf1-680aea271298" />
3611
+ * </AppShell>
3612
+ * ```
3613
+ * Or child of {@link UtopiaMap | `UtopiaMap`}
3614
+ * ```tsx
3615
+ * <UtopiaMap>
3616
+ * ...
3617
+ * <Permissions api={itemsApiInstance} adminRole="8141dee8-8e10-48d0-baf1-680aea271298" />
3618
+ * </UtopiaMap>
3619
+ * ```
3521
3620
  * @category Map
3522
3621
  */
3523
- function Permissions({ data, api, adminRole }) {
3622
+ function Permissions({ data, api, adminRole, }) {
3524
3623
  const setPermissionData = useSetPermissionData();
3525
3624
  const setPermissionApi = useSetPermissionApi();
3526
3625
  const setAdminRole = useSetAdminRole();
@@ -3571,21 +3670,21 @@ const PopupTextAreaInput = ({ dataField, placeholder, style, item, }) => {
3571
3670
  * @category Map
3572
3671
  */
3573
3672
  const PopupStartEndInput = ({ item, showLabels = true, updateStartValue, updateEndValue, }) => {
3574
- return (jsxRuntime.jsxs("div", { className: 'tw-grid tw-grid-cols-2 tw-gap-2', children: [jsxRuntime.jsx(TextInput, { type: 'date', placeholder: 'start', dataField: 'start', inputStyle: 'tw-text-sm tw-px-2', labelTitle: showLabels ? 'start' : '', defaultValue: item && item.start ? item.start.substring(0, 10) : '', autocomplete: 'one-time-code', updateFormValue: updateStartValue }), jsxRuntime.jsx(TextInput, { type: 'date', placeholder: 'end', dataField: 'end', inputStyle: 'tw-text-sm tw-px-2', labelTitle: showLabels ? 'end' : '', defaultValue: item && item.end ? item.end.substring(0, 10) : '', autocomplete: 'one-time-code', updateFormValue: updateEndValue })] }));
3673
+ return (jsxRuntime.jsxs("div", { className: 'tw:grid tw:grid-cols-2 tw:gap-2', children: [jsxRuntime.jsx(TextInput, { type: 'date', placeholder: 'start', dataField: 'start', inputStyle: 'tw:text-sm tw:px-2', labelTitle: showLabels ? 'start' : '', defaultValue: item && item.start ? item.start.substring(0, 10) : '', autocomplete: 'one-time-code', updateFormValue: updateStartValue }), jsxRuntime.jsx(TextInput, { type: 'date', placeholder: 'end', dataField: 'end', inputStyle: 'tw:text-sm tw:px-2', labelTitle: showLabels ? 'end' : '', defaultValue: item && item.end ? item.end.substring(0, 10) : '', autocomplete: 'one-time-code', updateFormValue: updateEndValue })] }));
3575
3674
  };
3576
3675
 
3577
3676
  /**
3578
3677
  * @category Map
3579
3678
  */
3580
3679
  const PopupTextInput = ({ dataField, placeholder, style, item, }) => {
3581
- return (jsxRuntime.jsx(TextInput, { defaultValue: item?.name ? item.name : '', dataField: dataField, placeholder: placeholder, inputStyle: style, type: 'text', containerStyle: 'tw-mt-4' }));
3680
+ return (jsxRuntime.jsx(TextInput, { defaultValue: item?.name ? item.name : '', dataField: dataField, placeholder: placeholder, inputStyle: style, type: 'text', containerStyle: 'tw:mt-4' }));
3582
3681
  };
3583
3682
 
3584
3683
  /**
3585
3684
  * @category Map
3586
3685
  */
3587
3686
  const PopupCheckboxInput = ({ dataField, label, item, }) => {
3588
- return (jsxRuntime.jsxs("label", { htmlFor: item?.id, className: 'tw-label tw-justify-normal tw-pt-1 tw-pb-1', children: [jsxRuntime.jsx("input", { id: item?.id, type: 'checkbox', name: dataField, className: 'tw-checkbox tw-checkbox-xs tw-checkbox-success', checked: item?.public_edit }), jsxRuntime.jsx("span", { className: 'tw-text-sm tw-label-text tw-mx-2 tw-cursor-pointer', children: label })] }));
3687
+ return (jsxRuntime.jsxs("label", { htmlFor: item?.id, className: 'tw:label tw:justify-normal tw:pt-1 tw:pb-1', children: [jsxRuntime.jsx("input", { id: item?.id, type: 'checkbox', name: dataField, className: 'tw:checkbox tw:checkbox-xs tw:checkbox-success', checked: item?.public_edit }), jsxRuntime.jsx("span", { className: 'tw:text-sm tw:label-text tw:mx-2 tw:cursor-pointer', children: label })] }));
3589
3688
  };
3590
3689
 
3591
3690
  function CalendarDaysIcon({
@@ -3617,7 +3716,7 @@ const ForwardRef$6 = /*#__PURE__*/ React__namespace.forwardRef(CalendarDaysIcon)
3617
3716
  * @category Map
3618
3717
  */
3619
3718
  const StartEndView = ({ item }) => {
3620
- return (jsxRuntime.jsxs("div", { className: 'tw-flex tw-flex-row tw-mb-4 tw-mt-1', children: [jsxRuntime.jsxs("div", { className: 'tw-basis-2/5 tw-flex tw-flex-row', children: [jsxRuntime.jsx(ForwardRef$6, { className: 'tw-h-4 tw-w-4 tw-mr-2' }), jsxRuntime.jsx("time", { className: 'tw-align-middle', dateTime: item && item.start ? item.start.substring(0, 10) : '', children: item && item.start ? new Date(item.start).toLocaleDateString() : '' })] }), jsxRuntime.jsx("div", { className: 'tw-basis-1/5 tw-place-content-center', children: jsxRuntime.jsx("span", { children: "-" }) }), jsxRuntime.jsxs("div", { className: 'tw-basis-2/5 tw-flex tw-flex-row', children: [jsxRuntime.jsx(ForwardRef$6, { className: 'tw-h-4 tw-w-4 tw-mr-2' }), jsxRuntime.jsx("time", { className: 'tw-align-middle', dateTime: item && item.end ? item.end.substring(0, 10) : '', children: item && item.end ? new Date(item.end).toLocaleDateString() : '' })] })] }));
3719
+ return (jsxRuntime.jsxs("div", { className: 'tw:flex tw:flex-row tw:mb-4 tw:mt-1', children: [jsxRuntime.jsxs("div", { className: 'tw:basis-2/5 tw:flex tw:flex-row', children: [jsxRuntime.jsx(ForwardRef$6, { className: 'tw:h-4 tw:w-4 tw:mr-2' }), jsxRuntime.jsx("time", { className: 'tw:align-middle', dateTime: item && item.start ? item.start.substring(0, 10) : '', children: item && item.start ? new Date(item.start).toLocaleDateString() : '' })] }), jsxRuntime.jsx("div", { className: 'tw:basis-1/5 tw:place-content-center', children: jsxRuntime.jsx("span", { children: "-" }) }), jsxRuntime.jsxs("div", { className: 'tw:basis-2/5 tw:flex tw:flex-row', children: [jsxRuntime.jsx(ForwardRef$6, { className: 'tw:h-4 tw:w-4 tw:mr-2' }), jsxRuntime.jsx("time", { className: 'tw:align-middle', dateTime: item && item.end ? item.end.substring(0, 10) : '', children: item && item.end ? new Date(item.end).toLocaleDateString() : '' })] })] }));
3621
3720
  };
3622
3721
 
3623
3722
  /**
@@ -3628,29 +3727,48 @@ const PopupButton = ({ url, parameterField, text, item, }) => {
3628
3727
  const getItemTags = useGetItemTags();
3629
3728
  return (jsxRuntime.jsx(reactRouterDom.Link, { to: `${url}/${parameterField ? item?.id : ''}?${params}`, children: jsxRuntime.jsx("button", { style: {
3630
3729
  backgroundColor: `${item?.color ?? (item && (getItemTags(item) && getItemTags(item)[0] && getItemTags(item)[0].color ? getItemTags(item)[0].color : (item?.layer?.markerDefaultColor ?? '#000')))}`,
3631
- }, className: 'tw-btn tw-text-white tw-btn-sm tw-float-right tw-mt-1', children: text }) }));
3730
+ }, className: 'tw:btn tw:text-white tw:btn-sm tw:float-right tw:mt-1', children: text }) }));
3632
3731
  };
3633
3732
 
3634
- function NavBar({ appName }) {
3733
+ const themes = [
3734
+ 'default',
3735
+ 'light',
3736
+ 'dark',
3737
+ 'valentine',
3738
+ 'retro',
3739
+ 'aqua',
3740
+ 'cyberpunk',
3741
+ 'caramellatte',
3742
+ 'abyss',
3743
+ 'silk',
3744
+ ];
3745
+ const ThemeControl = () => {
3746
+ const [theme, setTheme] = React.useState(() => {
3747
+ const savedTheme = localStorage.getItem('theme');
3748
+ return savedTheme ? JSON.parse(savedTheme) : 'default';
3749
+ });
3750
+ React.useEffect(() => {
3751
+ if (theme !== 'default') {
3752
+ localStorage.setItem('theme', JSON.stringify(theme));
3753
+ }
3754
+ else
3755
+ localStorage.removeItem('theme');
3756
+ document.documentElement.setAttribute('data-theme', theme);
3757
+ }, [theme]);
3758
+ return (jsxRuntime.jsxs("div", { className: 'tw:dropdown tw:mr-2', children: [jsxRuntime.jsxs("div", { tabIndex: 0, role: 'button', className: 'tw:btn tw:m-1', children: ["Theme", jsxRuntime.jsx("svg", { width: '12px', height: '12px', className: 'tw:inline-block tw:h-2 tw:w-2 tw:fill-current tw:opacity-60', xmlns: 'http://www.w3.org/2000/svg', viewBox: '0 0 2048 2048', children: jsxRuntime.jsx("path", { d: 'M1799 349l242 241-1017 1017L7 590l242-241 775 775 775-775z' }) })] }), jsxRuntime.jsx("ul", { tabIndex: 0, className: 'tw:dropdown-content tw:bg-base-200 tw:rounded-box tw:z-1 tw:w-36 tw:p-2 tw:shadow-2xl', children: themes.map((t) => (jsxRuntime.jsx("li", { children: jsxRuntime.jsx("input", { className: `tw:btn ${theme === t ? 'tw:bg-base-300' : ''} tw:btn-sm tw:btn-block tw:btn-ghost tw:justify-start`, type: 'radio', name: 'theme', value: t, checked: theme === t, onChange: () => setTheme(t), "aria-label": t.toLowerCase() }) }, t))) })] }));
3759
+ };
3760
+
3761
+ const UserControl = () => {
3635
3762
  const { isAuthenticated, user, logout } = useAuth();
3763
+ const appState = useAppState();
3636
3764
  const [userProfile, setUserProfile] = React.useState({});
3637
3765
  const items = useItems();
3638
- const appState = useAppState();
3639
- const setAppState = useSetAppState();
3640
- const toggleSidebar = () => {
3641
- setAppState({ sideBarOpen: !appState.sideBarOpen });
3642
- };
3643
3766
  React.useEffect(() => {
3644
3767
  const profile = user && items.find((i) => i.user_created?.id === user.id && i.layer?.userProfileLayer);
3645
3768
  profile
3646
3769
  ? setUserProfile(profile)
3647
3770
  : setUserProfile({ id: crypto.randomUUID(), name: user?.first_name ?? '', text: '' });
3648
3771
  }, [user, items]);
3649
- const nameRef = React.useRef(null);
3650
- const [nameWidth, setNameWidth] = React.useState(0);
3651
- React.useEffect(() => {
3652
- !appState.embedded && nameRef.current && setNameWidth(nameRef.current.scrollWidth);
3653
- }, [nameRef, appName, appState.embedded]);
3654
3772
  const onLogout = async () => {
3655
3773
  await reactToastify.toast.promise(logout(), {
3656
3774
  success: {
@@ -3668,16 +3786,30 @@ function NavBar({ appName }) {
3668
3786
  pending: 'logging out ..',
3669
3787
  });
3670
3788
  };
3789
+ return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: isAuthenticated ? (jsxRuntime.jsxs("div", { className: 'tw:flex tw:mr-2', children: [jsxRuntime.jsxs(reactRouterDom.Link, { to: `${userProfile.id && '/item/' + userProfile.id}`, className: 'tw:flex tw:items-center', children: [userProfile.image && (jsxRuntime.jsx("div", { className: 'tw:avatar', children: jsxRuntime.jsx("div", { className: 'tw:w-10 tw:rounded-full', children: jsxRuntime.jsx("img", { src: appState.assetsApi.url + userProfile.image }) }) })), jsxRuntime.jsx("div", { className: 'tw:ml-2 tw:mr-2', children: userProfile.name || user?.first_name })] }), jsxRuntime.jsxs("div", { className: 'tw:dropdown tw:dropdown-end', children: [jsxRuntime.jsx("label", { tabIndex: 0, className: 'tw:btn tw:btn-ghost tw:btn-square', children: jsxRuntime.jsx(ForwardRef$9, { className: 'tw:h-5 tw:w-5' }) }), jsxRuntime.jsxs("ul", { tabIndex: 0, className: 'tw:menu tw:menu-compact tw:dropdown-content tw:mt-4 tw:p-2 tw:shadow tw:bg-base-100 tw:rounded-box tw:w-52 tw:z-10000!', children: [jsxRuntime.jsx("li", { children: jsxRuntime.jsx(reactRouterDom.Link, { to: `${userProfile.id && '/edit-item/' + userProfile.id}`, children: "Profile" }) }), jsxRuntime.jsx("li", { children: jsxRuntime.jsx(reactRouterDom.Link, { to: '/user-settings', children: "Settings" }) }), jsxRuntime.jsx("li", { children: jsxRuntime.jsx("a", { onClick: () => {
3790
+ void onLogout();
3791
+ }, children: "Logout" }) })] })] })] })) : (jsxRuntime.jsxs("div", { className: 'tw:mr-2 tw:flex tw:items-center', children: [jsxRuntime.jsxs("div", { className: 'tw:hidden tw:md:flex', children: [jsxRuntime.jsx(reactRouterDom.Link, { to: '/login', children: jsxRuntime.jsx("div", { className: 'tw:self-center tw:btn tw:btn-ghost tw:mr-2', children: "Login" }) }), jsxRuntime.jsx(reactRouterDom.Link, { to: '/signup', children: jsxRuntime.jsx("div", { className: 'tw:btn tw:btn-ghost tw:mr-2', children: "Sign Up" }) })] }), jsxRuntime.jsxs("div", { className: 'tw:dropdown tw:dropdown-end', children: [jsxRuntime.jsx("label", { tabIndex: 1, className: 'tw:btn tw:btn-ghost tw:md:hidden', children: jsxRuntime.jsx(ForwardRef$9, { className: 'tw:h-5 tw:w-5' }) }), jsxRuntime.jsxs("ul", { tabIndex: 1, className: 'tw:menu tw:dropdown-content tw:mt-4 tw:p-2 tw:shadow tw:bg-base-100 tw:rounded-box tw:w-52 tw:z-10000!', children: [jsxRuntime.jsx("li", { children: jsxRuntime.jsx(reactRouterDom.Link, { to: '/login', children: "Login" }) }), jsxRuntime.jsx("li", { children: jsxRuntime.jsx(reactRouterDom.Link, { to: '/signup', children: "Sign Up" }) })] })] })] })) }));
3792
+ };
3793
+
3794
+ function NavBar({ appName }) {
3795
+ const appState = useAppState();
3796
+ const setAppState = useSetAppState();
3797
+ const toggleSidebar = () => {
3798
+ setAppState({ sideBarOpen: !appState.sideBarOpen });
3799
+ };
3800
+ const nameRef = React.useRef(null);
3801
+ const [nameWidth, setNameWidth] = React.useState(0);
3802
+ React.useEffect(() => {
3803
+ !appState.embedded && nameRef.current && setNameWidth(nameRef.current.scrollWidth);
3804
+ }, [nameRef, appName, appState.embedded]);
3671
3805
  if (!appState.embedded) {
3672
- return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsxs("div", { className: 'tw-navbar tw-bg-base-100 tw-z-[9998] tw-shadow-xl tw-relative', children: [jsxRuntime.jsx("button", { className: 'tw-btn tw-btn-square tw-btn-ghost', "aria-controls": '#sidenav', "aria-haspopup": 'true', onClick: () => toggleSidebar(), children: jsxRuntime.jsx(ForwardRef$a, { className: 'tw-inline-block tw-w-5 tw-h-5' }) }), jsxRuntime.jsx("div", { className: 'tw-flex-1 tw-mr-2', children: jsxRuntime.jsxs("div", { className: 'tw-flex-1 tw-truncate tw-grid tw-grid-flow-col', style: { maxWidth: nameWidth + 60 }, children: [jsxRuntime.jsx(reactRouterDom.Link, { className: 'tw-btn tw-btn-ghost tw-px-2 tw-normal-case tw-text-xl tw-flex-1 tw-truncate', to: '/', children: jsxRuntime.jsx("h1", { ref: nameRef, className: 'tw-truncate', children: appName }) }), jsxRuntime.jsx("button", { className: 'tw-btn tw-px-2 tw-btn-ghost', onClick: () => window.my_modal_3.showModal(), children: jsxRuntime.jsx(QuestionMarkIcon, { className: 'tw-h-5 tw-w-5' }) })] }) }), isAuthenticated ? (jsxRuntime.jsxs("div", { className: 'tw-flex-none', children: [jsxRuntime.jsxs(reactRouterDom.Link, { to: `${userProfile.id && '/item/' + userProfile.id}`, className: 'tw-flex tw-items-center', children: [userProfile.image && (jsxRuntime.jsx("div", { className: 'tw-avatar', children: jsxRuntime.jsx("div", { className: 'tw-w-10 tw-rounded-full', children: jsxRuntime.jsx("img", { src: appState.assetsApi.url + userProfile.image }) }) })), jsxRuntime.jsx("div", { className: 'tw-ml-2 tw-mr-2', children: userProfile.name || user?.first_name })] }), jsxRuntime.jsxs("div", { className: 'tw-dropdown tw-dropdown-end', children: [jsxRuntime.jsx("label", { tabIndex: 0, className: 'tw-btn tw-btn-ghost tw-btn-square', children: jsxRuntime.jsx(ForwardRef$9, { className: 'tw-h-5 tw-w-5' }) }), jsxRuntime.jsxs("ul", { tabIndex: 0, className: 'tw-menu tw-menu-compact tw-dropdown-content tw-mt-3 tw-p-2 tw-shadow tw-bg-base-100 tw-rounded-box tw-w-52 !tw-z-[10000]', children: [jsxRuntime.jsx("li", { children: jsxRuntime.jsx(reactRouterDom.Link, { to: `${userProfile.id && '/edit-item/' + userProfile.id}`, children: "Profile" }) }), jsxRuntime.jsx("li", { children: jsxRuntime.jsx(reactRouterDom.Link, { to: '/user-settings', children: "Settings" }) }), jsxRuntime.jsx("li", { children: jsxRuntime.jsx("a", { onClick: () => {
3673
- void onLogout();
3674
- }, children: "Logout" }) })] })] })] })) : (jsxRuntime.jsxs("div", { children: [jsxRuntime.jsxs("div", { className: 'tw-hidden md:tw-flex', children: [jsxRuntime.jsx(reactRouterDom.Link, { to: '/login', children: jsxRuntime.jsx("div", { className: 'tw-btn tw-btn-ghost tw-mr-2', children: "Login" }) }), jsxRuntime.jsx(reactRouterDom.Link, { to: '/signup', children: jsxRuntime.jsx("div", { className: 'tw-btn tw-btn-ghost tw-mr-2', children: "Sign Up" }) })] }), jsxRuntime.jsxs("div", { className: 'tw-dropdown tw-dropdown-end', children: [jsxRuntime.jsx("label", { tabIndex: 1, className: 'tw-btn tw-btn-ghost md:tw-hidden', children: jsxRuntime.jsx(ForwardRef$9, { className: 'tw-h-5 tw-w-5' }) }), jsxRuntime.jsxs("ul", { tabIndex: 1, className: 'tw-menu tw-dropdown-content tw-mt-3 tw-p-2 tw-shadow tw-bg-base-100 tw-rounded-box tw-w-52 !tw-z-[10000]', children: [jsxRuntime.jsx("li", { children: jsxRuntime.jsx(reactRouterDom.Link, { to: '/login', children: "Login" }) }), jsxRuntime.jsx("li", { children: jsxRuntime.jsx(reactRouterDom.Link, { to: '/signup', children: "Sign Up" }) })] })] })] }))] }) }));
3806
+ return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsxs("div", { className: 'tw:navbar tw:bg-base-100 tw:z-9998 tw:shadow-xl tw:relative tw:p-0', children: [jsxRuntime.jsx("button", { className: 'tw:btn tw:btn-square tw:btn-ghost tw:ml-3', "aria-controls": '#sidenav', "aria-haspopup": 'true', onClick: () => toggleSidebar(), children: jsxRuntime.jsx(ForwardRef$a, { className: 'tw:inline-block tw:w-5 tw:h-5' }) }), jsxRuntime.jsx("div", { className: 'tw:flex-1 tw:mr-2', children: jsxRuntime.jsxs("div", { className: 'tw:flex-1 tw:truncate tw:grid tw:grid-flow-col', style: { maxWidth: nameWidth + 60 }, children: [jsxRuntime.jsx(reactRouterDom.Link, { className: 'tw:btn tw:btn-ghost tw:px-2 tw:normal-case tw:text-xl tw:flex-1 tw:truncate', to: '/', children: jsxRuntime.jsx("h1", { ref: nameRef, className: 'tw:truncate', children: appName }) }), jsxRuntime.jsx("button", { className: 'tw:btn tw:px-2 tw:btn-ghost', onClick: () => window.my_modal_3.showModal(), children: jsxRuntime.jsx(QuestionMarkIcon, { className: 'tw:h-5 tw:w-5' }) })] }) }), appState.showThemeControl && jsxRuntime.jsx(ThemeControl, {}), jsxRuntime.jsx(UserControl, {})] }) }));
3675
3807
  }
3676
3808
  else
3677
3809
  return jsxRuntime.jsx(jsxRuntime.Fragment, {});
3678
3810
  }
3679
3811
 
3680
- const SetAppState = ({ assetsApi, embedded, }) => {
3812
+ const SetAppState = ({ assetsApi, embedded, openCollectiveApiKey, }) => {
3681
3813
  const setAppState = useSetAppState();
3682
3814
  React.useEffect(() => {
3683
3815
  setAppState({ assetsApi });
@@ -3685,14 +3817,17 @@ const SetAppState = ({ assetsApi, embedded, }) => {
3685
3817
  React.useEffect(() => {
3686
3818
  setAppState({ embedded });
3687
3819
  }, [embedded, setAppState]);
3820
+ React.useEffect(() => {
3821
+ setAppState({ openCollectiveApiKey });
3822
+ }, [openCollectiveApiKey, setAppState]);
3688
3823
  return jsxRuntime.jsx(jsxRuntime.Fragment, {});
3689
3824
  };
3690
3825
 
3691
3826
  /**
3692
3827
  * @category AppShell
3693
3828
  */
3694
- function AppShell({ appName, children, assetsApi, embedded, }) {
3695
- return (jsxRuntime.jsx(ContextWrapper, { children: jsxRuntime.jsxs("div", { className: 'tw-flex tw-flex-col tw-h-full', children: [jsxRuntime.jsx(SetAppState, { assetsApi: assetsApi, embedded: embedded }), jsxRuntime.jsx(NavBar, { appName: appName }), jsxRuntime.jsx("div", { id: 'app-content', className: 'tw-flex', children: children })] }) }));
3829
+ function AppShell({ appName, children, assetsApi, embedded, openCollectiveApiKey, }) {
3830
+ return (jsxRuntime.jsx(ContextWrapper, { children: jsxRuntime.jsxs("div", { className: 'tw:flex tw:flex-col tw:h-full', children: [jsxRuntime.jsx(SetAppState, { assetsApi: assetsApi, embedded: embedded, openCollectiveApiKey: openCollectiveApiKey }), jsxRuntime.jsx(NavBar, { appName: appName }), jsxRuntime.jsx("div", { id: 'app-content', className: 'tw:flex', children: children })] }) }));
3696
3831
  }
3697
3832
 
3698
3833
  function SidebarSubmenu({ submenu, name, icon, }) {
@@ -3726,26 +3861,26 @@ function SideBar({ routes, bottomRoutes }) {
3726
3861
  const toggleSidebarSlim = () => {
3727
3862
  setAppState({ sideBarSlim: !appState.sideBarSlim });
3728
3863
  };
3729
- return (jsxRuntime.jsx("nav", { id: 'sidenav', className: `${appState.sideBarOpen ? 'tw-translate-x-0' : '-tw-translate-x-full'}
3730
- ${appState.sideBarSlim ? 'tw-w-14' : 'tw-w-48'}
3731
- ${appState.embedded ? 'tw-mt-0 tw-h-[100dvh]' : 'tw-mt-16 tw-h-[calc(100dvh-64px)]'}
3732
- tw-fixed tw-left-0 tw-transition-all tw-duration-300 tw-top-0 tw-z-[10035]
3733
- tw-overflow-hidden tw-shadow-xl dark:tw-bg-zinc-800`, children: jsxRuntime.jsxs("div", { className: `tw-flex tw-flex-col ${appState.embedded ? 'tw-h-full' : 'tw-h-[calc(100dvh-64px)]'}`, children: [jsxRuntime.jsx("ul", { className: 'tw-menu tw-w-full tw-bg-base-100 tw-text-base-content tw-p-0', "data-te-sidenav-menu-ref": true, children: routes.map((route, k) => {
3864
+ return (jsxRuntime.jsx("nav", { id: 'sidenav', className: `${appState.sideBarOpen ? 'tw:translate-x-0' : 'tw:-translate-x-full'}
3865
+ ${appState.sideBarSlim ? 'tw:w-14' : 'tw:w-48'}
3866
+ ${appState.embedded ? 'tw:mt-5.5 tw:h-[calc(100dvh-22px)]' : 'tw:mt-16 tw:h-[calc(100dvh-64px)]'}
3867
+ tw:fixed tw:left-0 tw:transition-all tw:duration-300 tw:top-0 tw:z-10035
3868
+ tw:overflow-hidden tw:shadow-xl tw:dark:bg-zinc-800`, children: jsxRuntime.jsxs("div", { className: `tw:flex tw:flex-col ${appState.embedded ? 'tw:h-full' : 'tw:h-[calc(100dvh-64px)]'}`, children: [jsxRuntime.jsx("ul", { className: 'tw:menu tw:w-full tw:bg-base-100 tw:text-base-content tw:p-0', children: routes.map((route, k) => {
3734
3869
  return (jsxRuntime.jsx("li", { className: '', children: route.submenu ? (jsxRuntime.jsx(SidebarSubmenu, { ...route })) : (jsxRuntime.jsxs(reactRouterDom.NavLink, { end: true, target: route.blank ? '_blank' : '_self',
3735
3870
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
3736
- to: `${route.path}${params && '?' + params.toString()}`, className: ({ isActive }) => `${isActive ? 'tw-font-semibold tw-bg-base-200 !tw-rounded-none' : 'tw-font-normal !tw-rounded-none'}`, onClick: () => {
3871
+ to: `${route.path}${params && '?' + params.toString()}`, className: ({ isActive }) => `${isActive ? 'tw:font-semibold tw:bg-base-200 tw:rounded-none!' : 'tw:font-normal tw:rounded-none!'}`, onClick: () => {
3737
3872
  if (screen.width < 640 && !appState.sideBarSlim)
3738
3873
  toggleSidebarOpen();
3739
- }, children: [route.icon, jsxRuntime.jsx("span", { className: `${appState.sideBarSlim ? 'tw-hidden' : ''}`, "data-te-sidenav-slim": 'false', children: route.name }), (location.pathname.includes(route.path) && route.path.length > 1) ||
3740
- location.pathname === route.path ? (jsxRuntime.jsx("span", { className: 'tw-absolute tw-inset-y-0 tw-left-0 tw-w-1 tw-rounded-tr-md tw-rounded-br-md tw-bg-primary ', "aria-hidden": 'true' })) : null] })) }, k));
3741
- }) }), jsxRuntime.jsx("div", { id: 'slim-toggler', className: 'tw-w-full tw-bg-base-100 tw-flex-1 tw-grid tw-place-items-end', "aria-haspopup": 'true', children: jsxRuntime.jsxs("div", { className: 'tw-w-full', children: [jsxRuntime.jsx("ul", { className: 'tw-menu tw-w-full tw-bg-base-100 tw-text-base-content tw-p-0 tw-mb-0', "data-te-sidenav-menu-ref": true, children: bottomRoutes?.map((route, k) => {
3742
- return (jsxRuntime.jsx("li", { className: '', children: route.submenu ? (jsxRuntime.jsx(SidebarSubmenu, { ...route })) : (jsxRuntime.jsxs(reactRouterDom.NavLink, { end: true, target: route.blank ? '_blank' : '_self', to: route.path, className: ({ isActive }) => `${isActive ? 'tw-font-semibold tw-bg-base-200 !tw-rounded-none' : 'tw-font-normal !tw-rounded-none'}`, onClick: () => {
3874
+ }, children: [route.icon, jsxRuntime.jsx("span", { className: `${appState.sideBarSlim ? 'tw:hidden' : ''}`, "data-te-sidenav-slim": 'false', children: route.name }), (location.pathname.includes(route.path) && route.path.length > 1) ||
3875
+ location.pathname === route.path ? (jsxRuntime.jsx("span", { className: 'tw:absolute tw:inset-y-0 tw:left-0 tw:w-1 tw:rounded-tr-md tw:rounded-br-md tw:bg-primary ', "aria-hidden": 'true' })) : null] })) }, k));
3876
+ }) }), jsxRuntime.jsx("div", { id: 'slim-toggler', className: 'tw:w-full tw:bg-base-100 tw:flex-1 tw:grid tw:place-items-end', "aria-haspopup": 'true', children: jsxRuntime.jsxs("div", { className: 'tw:w-full', children: [jsxRuntime.jsx("ul", { className: 'tw:menu tw:w-full tw:bg-base-100 tw:text-base-content tw:p-0 tw:mb-0', "data-te-sidenav-menu-ref": true, children: bottomRoutes?.map((route, k) => {
3877
+ return (jsxRuntime.jsx("li", { className: '', children: route.submenu ? (jsxRuntime.jsx(SidebarSubmenu, { ...route })) : (jsxRuntime.jsxs(reactRouterDom.NavLink, { end: true, target: route.blank ? '_blank' : '_self', to: route.path, className: ({ isActive }) => `${isActive ? 'tw:font-semibold tw:bg-base-200 tw:rounded-none!' : 'tw:font-normal tw:rounded-none!'}`, onClick: () => {
3743
3878
  if (screen.width < 640 && !appState.sideBarSlim)
3744
3879
  toggleSidebarOpen();
3745
- }, children: [route.icon, jsxRuntime.jsx("span", { className: `${appState.sideBarSlim ? 'tw-hidden' : ''}`, "data-te-sidenav-slim": 'false', children: route.name }), (location.pathname.includes(route.path) && route.path.length > 1) ||
3746
- location.pathname === route.path ? (jsxRuntime.jsx("span", { className: 'tw-absolute tw-inset-y-0 tw-left-0 tw-w-1 tw-rounded-tr-md tw-rounded-br-md tw-bg-primary ', "aria-hidden": 'true' })) : null] })) }, k));
3747
- }) }), jsxRuntime.jsx(ChevronRightIcon, { className: 'tw-w-5 tw-h-5 tw-mb-4 tw-mr-4 tw-cursor-pointer tw-float-right tw-delay-400 tw-duration-500 tw-transition-all ' +
3748
- (!appState.sideBarSlim ? 'tw-rotate-180' : ''), onClick: () => toggleSidebarSlim() })] }) })] }) }));
3880
+ }, children: [route.icon, jsxRuntime.jsx("span", { className: `${appState.sideBarSlim ? 'tw:hidden' : ''}`, "data-te-sidenav-slim": 'false', children: route.name }), (location.pathname.includes(route.path) && route.path.length > 1) ||
3881
+ location.pathname === route.path ? (jsxRuntime.jsx("span", { className: 'tw:absolute tw:inset-y-0 tw:left-0 tw:w-1 tw:rounded-tr-md tw:rounded-br-md tw:bg-primary ', "aria-hidden": 'true' })) : null] })) }, k));
3882
+ }) }), jsxRuntime.jsx(ChevronRightIcon, { className: 'tw:w-5 tw:h-5 tw:mb-4 tw:mr-5 tw:mt-2 tw:cursor-pointer tw:float-right tw:delay-400 tw:duration-500 tw:transition-all ' +
3883
+ (!appState.sideBarSlim ? 'tw:rotate-180' : ''), onClick: () => toggleSidebarSlim() })] }) })] }) }));
3749
3884
  }
3750
3885
 
3751
3886
  /**
@@ -3753,7 +3888,7 @@ function SideBar({ routes, bottomRoutes }) {
3753
3888
  */
3754
3889
  function Content({ children }) {
3755
3890
  const appState = useAppState();
3756
- return (jsxRuntime.jsx("div", { className: `${appState.sideBarOpen && !appState.sideBarSlim ? 'tw-ml-48' : appState.sideBarOpen && appState.sideBarSlim ? 'tw-ml-14' : ''} tw-w-full tw-h-full tw-bg-base-100 tw-relative tw-transition-all tw-duration-300`, children: children }));
3891
+ return (jsxRuntime.jsx("div", { className: `${appState.sideBarOpen && !appState.sideBarSlim ? 'tw:ml-48' : appState.sideBarOpen && appState.sideBarSlim ? 'tw:ml-14' : ''} tw:w-full tw:h-full tw:bg-base-200 tw:relative tw:transition-all tw:duration-300`, children: children }));
3757
3892
  }
3758
3893
 
3759
3894
  /**
@@ -3777,7 +3912,7 @@ function MapOverlayPage({ children, className, backdrop, card = true, }) {
3777
3912
  }
3778
3913
  // eslint-disable-next-line react-hooks/exhaustive-deps
3779
3914
  }, [overlayRef, backdropRef]);
3780
- return (jsxRuntime.jsx("div", { className: `tw-absolute tw-h-full tw-w-full tw-m-auto ${backdrop ? 'tw-z-[2000]' : ''}`, children: jsxRuntime.jsx("div", { ref: backdropRef, className: `${backdrop ? 'tw-backdrop-brightness-75' : ''} tw-h-full tw-w-full tw-grid tw-place-items-center tw-m-auto`, children: jsxRuntime.jsxs("div", { ref: overlayRef, className: `${card ? 'tw-card tw-card-body' : ''} tw-shadow-xl tw-bg-base-100 tw-p-6 ${className ?? ''} ${backdrop ? '' : 'tw-z-[2000]'} tw-absolute tw-top-0 tw-bottom-0 tw-right-0 tw-left-0 tw-m-auto`, children: [children, jsxRuntime.jsx("button", { className: 'tw-btn tw-btn-sm tw-btn-circle tw-btn-ghost tw-absolute tw-right-2 tw-top-2', onClick: () => closeScreen(), children: "\u2715" })] }) }) }));
3915
+ return (jsxRuntime.jsx("div", { className: `tw:absolute tw:h-full tw:w-full tw:m-auto ${backdrop ? 'tw:z-2000' : ''}`, children: jsxRuntime.jsx("div", { ref: backdropRef, className: `${backdrop ? 'tw:backdrop-brightness-75' : ''} tw:h-full tw:w-full tw:grid tw:place-items-center tw:m-auto`, children: jsxRuntime.jsxs("div", { ref: overlayRef, className: `${card ? 'tw:card tw:card-body' : ''} tw:shadow-xl tw:bg-base-100 tw:p-6 ${className ?? ''} ${backdrop ? '' : 'tw:z-2000'} tw:absolute tw:top-0 tw:bottom-0 tw:right-0 tw:left-0 tw:m-auto`, children: [children, jsxRuntime.jsx("button", { className: 'tw:btn tw:btn-sm tw:btn-circle tw:btn-ghost tw:absolute tw:right-2 tw:top-2', onClick: () => closeScreen(), children: "\u2715" })] }) }) }));
3781
3916
  }
3782
3917
 
3783
3918
  /**
@@ -3821,11 +3956,11 @@ function LoginPage() {
3821
3956
  document.removeEventListener('keydown', keyDownHandler);
3822
3957
  };
3823
3958
  }, [onLogin]);
3824
- return (jsxRuntime.jsxs(MapOverlayPage, { backdrop: true, className: 'tw-max-w-xs tw-h-fit', children: [jsxRuntime.jsx("h2", { className: 'tw-text-2xl tw-font-semibold tw-mb-2 tw-text-center', children: "Login" }), jsxRuntime.jsx("input", { type: 'email', placeholder: 'E-Mail', value: email, onChange: (e) => setEmail(e.target.value), className: 'tw-input tw-input-bordered tw-w-full tw-max-w-xs' }), jsxRuntime.jsx("input", { type: 'password', placeholder: 'Password', onChange: (e) => setPassword(e.target.value), className: 'tw-input tw-input-bordered tw-w-full tw-max-w-xs' }), jsxRuntime.jsx("div", { className: 'tw-text-right tw-text-primary', children: jsxRuntime.jsx(reactRouterDom.Link, { to: '/reset-password', children: jsxRuntime.jsx("span", { className: 'tw-text-sm tw-inline-block hover:tw-text-primary hover:tw-underline hover:tw-cursor-pointer tw-transition tw-duration-200', children: "Forgot Password?" }) }) }), jsxRuntime.jsx("div", { className: 'tw-card-actions', children: jsxRuntime.jsx("button", { className: loading
3825
- ? 'tw-btn tw-btn-disabled tw-btn-block tw-btn-primary'
3826
- : 'tw-btn tw-btn-primary tw-btn-block',
3959
+ return (jsxRuntime.jsxs(MapOverlayPage, { backdrop: true, className: 'tw:max-w-xs tw:h-fit', children: [jsxRuntime.jsx("h2", { className: 'tw:text-2xl tw:font-semibold tw:mb-2 tw:text-center', children: "Login" }), jsxRuntime.jsx("input", { type: 'email', placeholder: 'E-Mail', value: email, onChange: (e) => setEmail(e.target.value), className: 'tw:input tw:input-bordered tw:w-full tw:max-w-xs' }), jsxRuntime.jsx("input", { type: 'password', placeholder: 'Password', onChange: (e) => setPassword(e.target.value), className: 'tw:input tw:input-bordered tw:w-full tw:max-w-xs' }), jsxRuntime.jsx("div", { className: 'tw:text-right tw:text-primary', children: jsxRuntime.jsx(reactRouterDom.Link, { to: '/reset-password', children: jsxRuntime.jsx("span", { className: 'tw:text-sm tw:inline-block tw:hover:text-primary tw:hover:underline tw:hover:cursor-pointer tw:transition tw:duration-200', children: "Forgot Password?" }) }) }), jsxRuntime.jsx("div", { className: 'tw:card-actions', children: jsxRuntime.jsx("button", { className: loading
3960
+ ? 'tw:btn tw:btn-disabled tw:btn-block tw:btn-primary'
3961
+ : 'tw:btn tw:btn-primary tw:btn-block',
3827
3962
  // eslint-disable-next-line @typescript-eslint/no-misused-promises
3828
- onClick: () => onLogin(), children: loading ? jsxRuntime.jsx("span", { className: 'tw-loading tw-loading-spinner' }) : 'Login' }) })] }));
3963
+ onClick: () => onLogin(), children: loading ? jsxRuntime.jsx("span", { className: 'tw:loading tw:loading-spinner' }) : 'Login' }) })] }));
3829
3964
  }
3830
3965
 
3831
3966
  /**
@@ -3870,11 +4005,11 @@ function SignupPage() {
3870
4005
  document.removeEventListener('keydown', keyDownHandler);
3871
4006
  };
3872
4007
  }, [onRegister]);
3873
- return (jsxRuntime.jsxs(MapOverlayPage, { backdrop: true, className: 'tw-max-w-xs tw-h-fit', children: [jsxRuntime.jsx("h2", { className: 'tw-text-2xl tw-font-semibold tw-mb-2 tw-text-center', children: "Sign Up" }), jsxRuntime.jsx("input", { type: 'text', placeholder: 'Name', value: userName, onChange: (e) => setUserName(e.target.value), className: 'tw-input tw-input-bordered tw-w-full tw-max-w-xs' }), jsxRuntime.jsx("input", { type: 'email', placeholder: 'E-Mail', value: email, onChange: (e) => setEmail(e.target.value), className: 'tw-input tw-input-bordered tw-w-full tw-max-w-xs' }), jsxRuntime.jsx("input", { type: 'password', placeholder: 'Password', onChange: (e) => setPassword(e.target.value), className: 'tw-input tw-input-bordered tw-w-full tw-max-w-xs' }), jsxRuntime.jsx("div", { className: 'tw-card-actions tw-mt-4', children: jsxRuntime.jsx("button", { className: loading
3874
- ? 'tw-btn tw-btn-disabled tw-btn-block tw-btn-primary'
3875
- : 'tw-btn tw-btn-primary tw-btn-block',
4008
+ return (jsxRuntime.jsxs(MapOverlayPage, { backdrop: true, className: 'tw:max-w-xs tw:h-fit', children: [jsxRuntime.jsx("h2", { className: 'tw:text-2xl tw:font-semibold tw:mb-2 tw:text-center', children: "Sign Up" }), jsxRuntime.jsx("input", { type: 'text', placeholder: 'Name', value: userName, onChange: (e) => setUserName(e.target.value), className: 'tw:input tw:input-bordered tw:w-full tw:max-w-xs' }), jsxRuntime.jsx("input", { type: 'email', placeholder: 'E-Mail', value: email, onChange: (e) => setEmail(e.target.value), className: 'tw:input tw:input-bordered tw:w-full tw:max-w-xs' }), jsxRuntime.jsx("input", { type: 'password', placeholder: 'Password', onChange: (e) => setPassword(e.target.value), className: 'tw:input tw:input-bordered tw:w-full tw:max-w-xs' }), jsxRuntime.jsx("div", { className: 'tw:card-actions tw:mt-4', children: jsxRuntime.jsx("button", { className: loading
4009
+ ? 'tw:btn tw:btn-disabled tw:btn-block tw:btn-primary'
4010
+ : 'tw:btn tw:btn-primary tw:btn-block',
3876
4011
  // eslint-disable-next-line @typescript-eslint/no-misused-promises
3877
- onClick: () => onRegister(), children: loading ? jsxRuntime.jsx("span", { className: 'tw-loading tw-loading-spinner' }) : 'Sign Up' }) })] }));
4012
+ onClick: () => onRegister(), children: loading ? jsxRuntime.jsx("span", { className: 'tw:loading tw:loading-spinner' }) : 'Sign Up' }) })] }));
3878
4013
  }
3879
4014
 
3880
4015
  /**
@@ -3902,11 +4037,11 @@ function RequestPasswordPage({ resetUrl }) {
3902
4037
  pending: 'sending email ...',
3903
4038
  });
3904
4039
  };
3905
- return (jsxRuntime.jsxs(MapOverlayPage, { backdrop: true, className: 'tw-max-w-xs tw-h-fit', children: [jsxRuntime.jsx("h2", { className: 'tw-text-2xl tw-font-semibold tw-mb-2 tw-text-center', children: "Reset Password" }), jsxRuntime.jsx("input", { type: 'email', placeholder: 'E-Mail', value: email, onChange: (e) => setEmail(e.target.value), className: 'tw-input tw-input-bordered tw-w-full tw-max-w-xs' }), jsxRuntime.jsx("div", { className: 'tw-card-actions tw-mt-4', children: jsxRuntime.jsx("button", { className: loading
3906
- ? 'tw-btn tw-btn-disabled tw-btn-block tw-btn-primary'
3907
- : 'tw-btn tw-btn-primary tw-btn-block',
4040
+ return (jsxRuntime.jsxs(MapOverlayPage, { backdrop: true, className: 'tw:max-w-xs tw:h-fit', children: [jsxRuntime.jsx("h2", { className: 'tw:text-2xl tw:font-semibold tw:mb-2 tw:text-center', children: "Reset Password" }), jsxRuntime.jsx("input", { type: 'email', placeholder: 'E-Mail', value: email, onChange: (e) => setEmail(e.target.value), className: 'tw:input tw:input-bordered tw:w-full tw:max-w-xs' }), jsxRuntime.jsx("div", { className: 'tw:card-actions tw:mt-4', children: jsxRuntime.jsx("button", { className: loading
4041
+ ? 'tw:btn tw:btn-disabled tw:btn-block tw:btn-primary'
4042
+ : 'tw:btn tw:btn-primary tw:btn-block',
3908
4043
  // eslint-disable-next-line @typescript-eslint/no-misused-promises
3909
- onClick: () => onReset(), children: loading ? jsxRuntime.jsx("span", { className: 'tw-loading tw-loading-spinner' }) : 'Send' }) })] }));
4044
+ onClick: () => onReset(), children: loading ? jsxRuntime.jsx("span", { className: 'tw:loading tw:loading-spinner' }) : 'Send' }) })] }));
3910
4045
  }
3911
4046
 
3912
4047
  /**
@@ -3933,32 +4068,32 @@ function SetNewPasswordPage() {
3933
4068
  pending: 'setting password ...',
3934
4069
  });
3935
4070
  };
3936
- return (jsxRuntime.jsxs(MapOverlayPage, { backdrop: true, className: 'tw-max-w-xs tw-h-fit', children: [jsxRuntime.jsx("h2", { className: 'tw-text-2xl tw-font-semibold tw-mb-2 tw-text-center', children: "Set new Password" }), jsxRuntime.jsx("input", { type: 'password', placeholder: 'Password', onChange: (e) => setPassword(e.target.value), className: 'tw-input tw-input-bordered tw-w-full tw-max-w-xs' }), jsxRuntime.jsx("div", { className: 'tw-card-actions tw-mt-4', children: jsxRuntime.jsx("button", { className: loading
3937
- ? 'tw-btn tw-btn-disabled tw-btn-block tw-btn-primary'
3938
- : 'tw-btn tw-btn-primary tw-btn-block',
4071
+ return (jsxRuntime.jsxs(MapOverlayPage, { backdrop: true, className: 'tw:max-w-xs tw:h-fit', children: [jsxRuntime.jsx("h2", { className: 'tw:text-2xl tw:font-semibold tw:mb-2 tw:text-center', children: "Set new Password" }), jsxRuntime.jsx("input", { type: 'password', placeholder: 'Password', onChange: (e) => setPassword(e.target.value), className: 'tw:input tw:input-bordered tw:w-full tw:max-w-xs' }), jsxRuntime.jsx("div", { className: 'tw:card-actions tw:mt-4', children: jsxRuntime.jsx("button", { className: loading
4072
+ ? 'tw:btn tw:btn-disabled tw:btn-block tw:btn-primary'
4073
+ : 'tw:btn tw:btn-primary tw:btn-block',
3939
4074
  // eslint-disable-next-line @typescript-eslint/no-misused-promises
3940
- onClick: () => onReset(), children: loading ? jsxRuntime.jsx("span", { className: 'tw-loading tw-loading-spinner' }) : 'Set' }) })] }));
4075
+ onClick: () => onReset(), children: loading ? jsxRuntime.jsx("span", { className: 'tw:loading tw:loading-spinner' }) : 'Set' }) })] }));
3941
4076
  }
3942
4077
 
3943
4078
  function Subtitle({ styleClass, children }) {
3944
- return jsxRuntime.jsx("div", { className: `tw-text-xl tw-font-semibold ${styleClass}`, children: children });
4079
+ return jsxRuntime.jsx("div", { className: `tw:text-xl tw:font-semibold ${styleClass}`, children: children });
3945
4080
  }
3946
4081
 
3947
4082
  /**
3948
4083
  * @category Templates
3949
4084
  */
3950
4085
  function TitleCard({ title, hideTitle, children, topMargin, TopSideButtons, className, }) {
3951
- return (jsxRuntime.jsxs("div", { className: 'tw-card tw-w-full tw-p-6 tw-bg-base-100 tw-shadow-xl tw-h-fit tw-mb-4 ' +
4086
+ return (jsxRuntime.jsxs("div", { className: 'card tw:w-full tw:p-6 tw:bg-base-100 tw:shadow-xl tw:h-fit tw:mb-4 ' +
3952
4087
  (className ?? '') +
3953
4088
  ' ' +
3954
- (topMargin ?? 'tw-mt-6'), children: [!hideTitle && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs(Subtitle, { styleClass: TopSideButtons ? 'tw-inline-block' : '', children: [title, TopSideButtons && (jsxRuntime.jsx("div", { className: 'tw-inline-block tw-float-right', children: TopSideButtons }))] }), jsxRuntime.jsx("div", { className: 'tw-divider tw-mt-2' })] })), jsxRuntime.jsx("div", { className: 'tw-h-full tw-bg-transparent tw-w-full tw-pb-6 tw-bg-base-100', children: children })] }));
4089
+ (topMargin ?? 'tw:mt-6'), children: [!hideTitle && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs(Subtitle, { styleClass: TopSideButtons ? 'tw:inline-block' : '', children: [title, TopSideButtons && (jsxRuntime.jsx("div", { className: 'tw:inline-block tw:float-right', children: TopSideButtons }))] }), jsxRuntime.jsx("div", { className: 'divider tw:mt-2' })] })), jsxRuntime.jsx("div", { className: 'tw:h-full tw:bg-transparent tw:w-full tw:pb-6 tw:bg-base-100', children: children })] }));
3955
4090
  }
3956
4091
 
3957
4092
  /**
3958
4093
  * @category Templates
3959
4094
  */
3960
4095
  function CardPage({ title, hideTitle, children, parents, }) {
3961
- return (jsxRuntime.jsx("main", { className: 'tw-flex-1 tw-overflow-y-auto tw-overflow-x-hidden tw-pt-2 tw-px-6 tw-min-w-80 tw-flex tw-justify-center', children: jsxRuntime.jsxs("div", { className: 'tw-w-full xl:tw-max-w-6xl ', children: [jsxRuntime.jsx("div", { className: 'tw-text-sm tw-breadcrumbs', children: jsxRuntime.jsxs("ul", { children: [jsxRuntime.jsx("li", { children: jsxRuntime.jsx(reactRouterDom.Link, { to: '/', children: "Home" }) }), parents?.map((b, i) => (jsxRuntime.jsx("li", { children: jsxRuntime.jsx(reactRouterDom.Link, { to: b.path, children: b.name }) }, i))), jsxRuntime.jsx("li", { children: title })] }) }), jsxRuntime.jsx(TitleCard, { hideTitle: hideTitle, title: title, topMargin: 'tw-my-2', className: ' tw-mb-4', children: children })] }) }));
4096
+ return (jsxRuntime.jsx("main", { className: 'tw:flex-1 tw:overflow-y-auto tw:overflow-x-hidden tw:pt-2 tw:px-6 tw:min-w-80 tw:flex tw:justify-center', children: jsxRuntime.jsxs("div", { className: 'tw:w-full tw:xl:max-w-6xl ', children: [jsxRuntime.jsx("div", { className: 'tw:text-sm breadcrumbs', children: jsxRuntime.jsxs("ul", { children: [jsxRuntime.jsx("li", { children: jsxRuntime.jsx(reactRouterDom.Link, { to: '/', children: "Home" }) }), parents?.map((b, i) => (jsxRuntime.jsx("li", { children: jsxRuntime.jsx(reactRouterDom.Link, { to: b.path, children: b.name }) }, i))), jsxRuntime.jsx("li", { children: title })] }) }), jsxRuntime.jsx(TitleCard, { hideTitle: hideTitle, title: title, topMargin: 'tw:my-2', className: ' tw:mb-4', children: children })] }) }));
3962
4097
  }
3963
4098
 
3964
4099
  /**
@@ -3969,9 +4104,9 @@ const SelectUser = () => {
3969
4104
  const items = useItems();
3970
4105
  const users = items.filter((i) => i.layer?.userProfileLayer);
3971
4106
  const [selectedUsers, setSelectedUsers] = React.useState([]);
3972
- return (jsxRuntime.jsxs(MapOverlayPage, { backdrop: true, className: 'tw-h-3/4 tw-w-80', children: [jsxRuntime.jsx("div", { className: 'tw-text-center tw-text-xl tw-font-bold tw-mb-4', children: "Gratitude to ..." }), jsxRuntime.jsx("div", { className: 'tw-overflow-x-auto tw-w-full fade', children: jsxRuntime.jsx("table", { className: 'tw-table tw-w-full', children: jsxRuntime.jsx("tbody", { children: users.map((u, k) => {
3973
- return (jsxRuntime.jsxs("tr", { children: [jsxRuntime.jsx("td", { children: jsxRuntime.jsx("input", { type: 'checkbox', onChange: () => setSelectedUsers((prev) => [...prev, u.id]), className: 'tw-checkbox tw-checkbox-sm' }) }), jsxRuntime.jsx("td", { children: jsxRuntime.jsxs("div", { className: 'tw-flex tw-items-center tw-space-x-3', children: [u.image ? (jsxRuntime.jsx("div", { className: 'tw-avatar', children: jsxRuntime.jsx("div", { className: 'tw-mask tw-mask-circle tw-w-8 tw-h-8', children: jsxRuntime.jsx("img", { src: appState.assetsApi.url + u.image + '?width=40&heigth=40', alt: 'Avatar' }) }) })) : (jsxRuntime.jsx("div", { className: 'tw-mask tw-mask-circle tw-text-xl md:tw-text-2xl tw-bg-slate-200 tw-rounded-full tw-w-8 tw-h-8' })), jsxRuntime.jsx("div", { children: jsxRuntime.jsx("div", { className: 'tw-font-bold', children: u.name }) })] }) })] }, k));
3974
- }) }) }) }), jsxRuntime.jsx("div", { className: 'tw-w-full tw-grid tw-mt-4', children: jsxRuntime.jsx(reactRouterDom.Link, { className: 'tw-place-self-center ', to: '/attestation-form' + '?to=' + selectedUsers.map((u) => u, ','), children: jsxRuntime.jsx("button", { className: 'tw-btn tw-px-8', children: "Next" }) }) })] }));
4107
+ return (jsxRuntime.jsxs(MapOverlayPage, { backdrop: true, className: 'tw:h-3/4 tw:w-80', children: [jsxRuntime.jsx("div", { className: 'tw:text-center tw:text-xl tw:font-bold tw:mb-4', children: "Gratitude to ..." }), jsxRuntime.jsx("div", { className: 'tw:overflow-x-auto tw:w-full fade', children: jsxRuntime.jsx("table", { className: 'tw:table tw:w-full', children: jsxRuntime.jsx("tbody", { children: users.map((u, k) => {
4108
+ return (jsxRuntime.jsxs("tr", { children: [jsxRuntime.jsx("td", { children: jsxRuntime.jsx("input", { type: 'checkbox', onChange: () => setSelectedUsers((prev) => [...prev, u.id]), className: 'checkbox checkbox-sm' }) }), jsxRuntime.jsx("td", { children: jsxRuntime.jsxs("div", { className: 'tw:flex tw:items-center tw:space-x-3', children: [u.image ? (jsxRuntime.jsx("div", { className: 'tw:avatar', children: jsxRuntime.jsx("div", { className: 'tw:mask tw:mask-circle tw:w-8 tw:h-8', children: jsxRuntime.jsx("img", { src: appState.assetsApi.url + u.image + '?width=40&heigth=40', alt: 'Avatar' }) }) })) : (jsxRuntime.jsx("div", { className: 'tw:mask tw:mask-circle tw:text-xl tw:md:text-2xl tw:bg-slate-200 tw:rounded-full tw:w-8 tw:h-8' })), jsxRuntime.jsx("div", { children: jsxRuntime.jsx("div", { className: 'tw:font-bold', children: u.name }) })] }) })] }, k));
4109
+ }) }) }) }), jsxRuntime.jsx("div", { className: 'tw:w-full tw:grid tw:mt-4', children: jsxRuntime.jsx(reactRouterDom.Link, { className: 'tw:place-self-center ', to: '/attestation-form' + '?to=' + selectedUsers.map((u) => u, ','), children: jsxRuntime.jsx("button", { className: 'tw:btn tw:px-8', children: "Next" }) }) })] }));
3975
4110
  };
3976
4111
 
3977
4112
  function PlusIcon({
@@ -4001,27 +4136,27 @@ const ForwardRef$5 = /*#__PURE__*/ React__namespace.forwardRef(PlusIcon);
4001
4136
 
4002
4137
  function PlusButton({ layer, triggerAction, color, collection = 'items', }) {
4003
4138
  const hasUserPermission = useHasUserPermission();
4004
- return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: hasUserPermission(collection, 'create', undefined, layer) && (jsxRuntime.jsx("div", { className: 'tw-dropdown tw-dropdown-top tw-dropdown-end tw-dropdown-hover tw-z-3000 tw-absolute tw-right-4 tw-bottom-4', children: jsxRuntime.jsx("button", { tabIndex: 0, className: 'tw-z-500 tw-btn tw-btn-circle tw-shadow', onClick: () => {
4139
+ return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: hasUserPermission(collection, 'create', undefined, layer) && (jsxRuntime.jsx("div", { className: 'tw:dropdown tw:dropdown-top tw:dropdown-end tw:dropdown-hover tw:z-3000 tw:absolute tw:right-4 tw:bottom-4', children: jsxRuntime.jsx("button", { tabIndex: 0, className: 'tw:z-500 tw:btn tw:btn-circle tw:shadow', onClick: () => {
4005
4140
  triggerAction();
4006
- }, style: { backgroundColor: color, color: '#fff' }, children: jsxRuntime.jsx(ForwardRef$5, { className: 'tw-w-5 tw-h-5 tw-stroke-[2.5]' }) }) })) }));
4141
+ }, style: { backgroundColor: color, color: '#fff' }, children: jsxRuntime.jsx(ForwardRef$5, { className: 'tw:w-5 tw:h-5 tw:stroke-[2.5]' }) }) })) }));
4007
4142
  }
4008
4143
 
4009
4144
  const DateUserInfo = ({ item }) => {
4010
4145
  const [infoExpanded, setInfoExpanded] = React.useState(false);
4011
- return (jsxRuntime.jsxs("div", { className: 'tw-flex -tw-mb-1 tw-flex-row tw-mr-2 -tw-mt-2', onClick: (e) => e.stopPropagation(), children: [infoExpanded ? (jsxRuntime.jsx("p", { className: 'tw-italic tw-min-h-[21px] !tw-my-0 tw-text-gray-500', onClick: () => setInfoExpanded(false), children: `${item.date_updated && item.date_updated !== item.date_created ? 'updated' : 'posted'} ${item.user_created?.first_name ? `by ${item.user_created.first_name}` : ''} ${item.date_updated ? timeAgo(item.date_updated) : timeAgo(item.date_created)}` })) : (jsxRuntime.jsx("p", { className: '!tw-my-0 tw-min-h-[21px] tw-font-bold tw-cursor-pointer tw-text-gray-500', onClick: () => setInfoExpanded(true), children: "\u24D8" })), jsxRuntime.jsx("div", { className: 'tw-grow ' })] }));
4146
+ return (jsxRuntime.jsxs("div", { className: 'tw:flex tw:-mb-1 tw:flex-row tw:mr-2 tw:-mt-2', onClick: (e) => e.stopPropagation(), children: [infoExpanded ? (jsxRuntime.jsx("p", { className: 'tw:italic tw:min-h-[21px] tw:my-0! tw:text-gray-500', onClick: () => setInfoExpanded(false), children: `${item.date_updated && item.date_updated !== item.date_created ? 'updated' : 'posted'} ${item.user_created?.first_name ? `by ${item.user_created.first_name}` : ''} ${item.date_updated ? timeAgo(item.date_updated) : timeAgo(item.date_created)}` })) : (jsxRuntime.jsx("p", { className: 'tw:my-0! tw:min-h-[21px] tw:font-bold tw:cursor-pointer tw:text-gray-500', onClick: () => setInfoExpanded(true), children: "\u24D8" })), jsxRuntime.jsx("div", { className: 'tw:grow ' })] }));
4012
4147
  };
4013
4148
 
4014
4149
  const ItemCard = ({ i, loading, url, deleteCallback, }) => {
4015
4150
  const navigate = reactRouterDom.useNavigate();
4016
4151
  const windowDimensions = useWindowDimensions();
4017
- return (jsxRuntime.jsxs("div", { className: 'tw-cursor-pointer tw-card tw-border-[1px] tw-border-base-300 tw-card-body tw-shadow-xl tw-bg-base-100 tw-text-base-content tw-p-4 tw-mb-4 tw-h-fit', onClick: () => {
4152
+ return (jsxRuntime.jsxs("div", { className: 'tw:cursor-pointer tw:card tw:border-[1px] tw:border-base-300 tw:card-body tw:shadow-xl tw:bg-base-100 tw:text-base-content tw:p-4 tw:mb-4 tw:h-fit', onClick: () => {
4018
4153
  // We could have an onClick callback instead
4019
4154
  const params = new URLSearchParams(window.location.search);
4020
4155
  if (windowDimensions.width < 786 && i.position)
4021
4156
  navigate('/' + i.id + `${params.size > 0 ? `?${params.toString()}` : ''}`);
4022
4157
  else
4023
4158
  navigate(url + i.id + `${params.size > 0 ? `?${params.toString()}` : ''}`);
4024
- }, children: [jsxRuntime.jsx(HeaderView, { loading: loading, item: i, api: i.layer?.api, editCallback: () => navigate('/edit-item/' + i.id), deleteCallback: () => deleteCallback(i) }), jsxRuntime.jsxs("div", { className: 'tw-overflow-y-auto tw-overflow-x-hidden tw-max-h-64 fade', children: [i.layer?.itemType.show_start_end && jsxRuntime.jsx(StartEndView, { item: i }), i.layer?.itemType.show_text && jsxRuntime.jsx(TextView, { truncate: true, text: i.text, itemId: i.id })] }), jsxRuntime.jsx(DateUserInfo, { item: i })] }));
4159
+ }, children: [jsxRuntime.jsx(HeaderView, { loading: loading, item: i, api: i.layer?.api, editCallback: () => navigate('/edit-item/' + i.id), deleteCallback: () => deleteCallback(i) }), jsxRuntime.jsxs("div", { className: 'tw:overflow-y-auto tw:overflow-x-hidden tw:max-h-64 fade', children: [i.layer?.itemType.show_start_end && jsxRuntime.jsx(StartEndView, { item: i }), i.layer?.itemType.show_text && jsxRuntime.jsx(TextView, { truncate: true, text: i.text, itemId: i.id })] }), jsxRuntime.jsx(DateUserInfo, { item: i })] }));
4025
4160
  };
4026
4161
 
4027
4162
  /**
@@ -4104,7 +4239,7 @@ const OverlayItemsIndexPage = ({ url, layerName, parameterField, plusButton = tr
4104
4239
  removeItem(item);
4105
4240
  setLoading(false);
4106
4241
  };
4107
- return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(MapOverlayPage, { className: 'tw-rounded-none tw-overflow-y-auto tw-bg-base-200 !tw-p-4', children: jsxRuntime.jsxs("div", { className: 'tw-flex tw-flex-col tw-h-full', children: [jsxRuntime.jsx("div", { className: 'tw-flex-none', children: jsxRuntime.jsxs(Control, { position: 'topLeft', zIndex: '1000', absolute: false, children: [jsxRuntime.jsx(SearchControl, {}), jsxRuntime.jsx(TagsControl, {})] }) }), jsxRuntime.jsx("div", { className: 'tw-overflow-scroll fade tw-flex-1', children: jsxRuntime.jsxs("div", { className: 'tw-columns-1 md:tw-columns-2 lg:tw-columns-3 2xl:tw-columns-4 tw-gap-6 tw-pt-4', children: [items
4242
+ return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(MapOverlayPage, { className: 'tw:rounded-none tw:overflow-y-auto tw:bg-base-200 tw:p-4!', children: jsxRuntime.jsxs("div", { className: 'tw:flex tw:flex-col tw:h-full', children: [jsxRuntime.jsx("div", { className: 'tw:flex-none', children: jsxRuntime.jsxs(Control, { position: 'topLeft', zIndex: '1000', absolute: false, children: [jsxRuntime.jsx(SearchControl, {}), jsxRuntime.jsx(TagsControl, {})] }) }), jsxRuntime.jsx("div", { className: 'tw:overflow-scroll fade tw:flex-1', children: jsxRuntime.jsxs("div", { className: 'tw:columns-1 tw:md:columns-2 tw:lg:columns-3 tw:2xl:columns-4 tw:gap-6 tw:pt-4', children: [items
4108
4243
  .filter((i) => i.layer?.name === layerName)
4109
4244
  .filter((item) => filterTags.length === 0
4110
4245
  ? item
@@ -4123,9 +4258,9 @@ const OverlayItemsIndexPage = ({ url, layerName, parameterField, plusButton = tr
4123
4258
  : 0;
4124
4259
  return dateB - dateA; // Subtracts milliseconds which are numbers
4125
4260
  })
4126
- .map((i, k) => (jsxRuntime.jsx("div", { className: 'tw-break-inside-avoid tw-mb-6', children: jsxRuntime.jsx(ItemCard, { i: i, loading: loading, url: url, deleteCallback: () => deleteItem(i) }) }, k))), addItemPopupType === 'place' && (jsxRuntime.jsx("form", { ref: tabRef, autoComplete: 'off', onSubmit: (e) => submitNewItem(e), children: jsxRuntime.jsxs("div", { className: 'tw-cursor-pointer tw-break-inside-avoid tw-card tw-border-[1px] tw-border-base-300 tw-card-body tw-shadow-xl tw-bg-base-100 tw-text-base-content tw-p-6 tw-mb-10', children: [jsxRuntime.jsx("label", { className: 'tw-btn tw-btn-sm tw-rounded-2xl tw-btn-circle tw-btn-ghost hover:tw-bg-transparent tw-absolute tw-right-0 tw-top-0 tw-text-gray-600', onClick: () => setAddItemPopupType(''), children: jsxRuntime.jsx("p", { className: 'tw-text-center', children: "\u2715" }) }), jsxRuntime.jsx(TextInput, { type: 'text', placeholder: 'Name', dataField: 'name', defaultValue: '', inputStyle: '' }), layer?.itemType.show_start_end_input && jsxRuntime.jsx(PopupStartEndInput, {}), jsxRuntime.jsx(TextAreaInput, { placeholder: 'Text', dataField: 'text', defaultValue: '', inputStyle: 'tw-h-40 tw-mt-5' }), jsxRuntime.jsx("div", { className: 'tw-flex tw-justify-center', children: jsxRuntime.jsx("button", { className: loading
4127
- ? 'tw-btn tw-btn-disabled tw-mt-5 tw-place-self-center'
4128
- : 'tw-btn tw-mt-5 tw-place-self-center', type: 'submit', children: loading ? jsxRuntime.jsx("span", { className: 'tw-loading tw-loading-spinner' }) : 'Save' }) })] }) }))] }) })] }) }), plusButton && (jsxRuntime.jsx(PlusButton, { layer: layer, triggerAction: () => {
4261
+ .map((i, k) => (jsxRuntime.jsx("div", { className: 'tw:break-inside-avoid tw:mb-6', children: jsxRuntime.jsx(ItemCard, { i: i, loading: loading, url: url, deleteCallback: () => deleteItem(i) }) }, k))), addItemPopupType === 'place' && (jsxRuntime.jsx("form", { ref: tabRef, autoComplete: 'off', onSubmit: (e) => submitNewItem(e), children: jsxRuntime.jsxs("div", { className: 'tw:cursor-pointer tw:break-inside-avoid card tw:border-[1px] tw:border-base-300 card-body tw:shadow-xl tw:bg-base-100 tw:text-base-content tw:p-6 tw:mb-10', children: [jsxRuntime.jsx("label", { className: 'btn btn-sm tw:rounded-2xl btn-circle btn-ghost tw:hover:bg-transparent tw:absolute tw:right-0 tw:top-0 tw:text-gray-600', onClick: () => setAddItemPopupType(''), children: jsxRuntime.jsx("p", { className: 'tw:text-center', children: "\u2715" }) }), jsxRuntime.jsx(TextInput, { type: 'text', placeholder: 'Name', dataField: 'name', defaultValue: '', inputStyle: '' }), layer?.itemType.show_start_end_input && jsxRuntime.jsx(PopupStartEndInput, {}), jsxRuntime.jsx(TextAreaInput, { placeholder: 'Text', dataField: 'text', defaultValue: '', inputStyle: 'tw:h-40 tw:mt-5' }), jsxRuntime.jsx("div", { className: 'tw:flex tw:justify-center', children: jsxRuntime.jsx("button", { className: loading
4262
+ ? 'btn btn-disabled tw:mt-5 tw:place-self-center'
4263
+ : 'btn tw:mt-5 tw:place-self-center', type: 'submit', children: loading ? jsxRuntime.jsx("span", { className: 'loading loading-spinner' }) : 'Save' }) })] }) }))] }) })] }) }), plusButton && (jsxRuntime.jsx(PlusButton, { layer: layer, triggerAction: () => {
4129
4264
  setAddItemPopupType('place');
4130
4265
  scroll();
4131
4266
  }, color: '#777', collection: 'items' }))] }));
@@ -4201,7 +4336,7 @@ const EmojiPicker = ({ selectedEmoji, selectedColor, selectedShape, setSelectedE
4201
4336
  setSelectedColor(color);
4202
4337
  setIsOpen(false);
4203
4338
  };
4204
- return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("div", { onClick: toggleDropdown, className: `tw-cursor-pointer ${selectedEmoji === 'select badge' ? 'tw-text-sm !tw-p-9 tw-text-center ' : 'tw-text-6xl'} tw-mask tw-mask-${selectedShape} tw-p-6 tw-bg-[${selectedColor}]`, children: selectedEmoji }), isOpen && (jsxRuntime.jsxs("div", { className: 'tw-absolute tw-z-3000 tw-top-0 tw-left-1/2 tw-transform tw--translate-x-1/2 tw-mt-12 tw-bg-base-100 tw-rounded-2xl tw-shadow-lg tw-p-2 tw-w-full', children: [jsxRuntime.jsx("div", { className: 'tw-grid tw-grid-cols-6 tw-gap-2 tw-pb-2', children: emojis.map((emoji) => (jsxRuntime.jsx("button", { onClick: () => selectEmoji(emoji), className: `tw-cursor-pointer tw-text-2xl tw-p-2 hover:tw-bg-base-200 tw-rounded-md ${emoji === selectedEmoji ? 'tw-bg-base-300' : ''}`, children: emoji }, emoji))) }), jsxRuntime.jsx("hr", {}), jsxRuntime.jsx("div", { className: 'tw-grid tw-grid-cols-3 tw-gap-2 tw-py-2', children: shapes.map((shape) => (jsxRuntime.jsx("div", { className: `tw-cursor-pointer hover:tw-bg-base-200 tw-rounded-md tw-p-2 ${shape === selectedShape ? 'tw-bg-base-300' : ''}`, onClick: () => selectShape(shape), children: jsxRuntime.jsx("div", { className: `tw-h-12 tw-mask tw-mask-${shape} tw-bg-neutral-content` }) }, shape))) }), jsxRuntime.jsx("hr", {}), jsxRuntime.jsx("div", { className: 'tw-grid tw-grid-cols-6 tw-gap-2 tw-py-2 tw-px-6', children: colors.map((color) => (jsxRuntime.jsx("div", { className: `tw-cursor-pointer hover:tw-bg-base-200 tw-rounded-md tw-p-2 tw-flex tw-justify-center tw-items-center ${color === selectedColor ? 'tw-bg-base-300' : ''}`, onClick: () => selectColor(color), children: jsxRuntime.jsx("div", { className: `tw-h-8 tw-w-8 tw-rounded-full tw-bg-[${color}]` }) }, color))) })] }))] }));
4339
+ return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("div", { onClick: toggleDropdown, className: `tw:cursor-pointer ${selectedEmoji === 'select badge' ? 'tw:text-sm tw:p-9! tw:text-center ' : 'tw:text-6xl'} tw:mask tw:mask-${selectedShape} tw:p-6`, style: { backgroundColor: selectedColor }, children: selectedEmoji }), isOpen && (jsxRuntime.jsxs("div", { className: 'tw:absolute tw:z-3000 tw:top-0 tw:left-1/2 tw:transform tw:-translate-x-1/2 tw:mt-12 tw:bg-base-100 tw:rounded-2xl tw:shadow-lg tw:p-2 tw:w-full', children: [jsxRuntime.jsx("div", { className: 'tw:grid tw:grid-cols-6 tw:gap-2 tw:pb-2', children: emojis.map((emoji) => (jsxRuntime.jsx("button", { onClick: () => selectEmoji(emoji), className: `tw:cursor-pointer tw:text-2xl tw:p-2 tw:hover:bg-base-200 tw:rounded-md ${emoji === selectedEmoji ? 'tw:bg-base-300' : ''}`, children: emoji }, emoji))) }), jsxRuntime.jsx("hr", {}), jsxRuntime.jsx("div", { className: 'tw:grid tw:grid-cols-3 tw:gap-2 tw:py-2', children: shapes.map((shape) => (jsxRuntime.jsx("div", { className: `tw:cursor-pointer tw:hover:bg-base-200 tw:rounded-md tw:p-2 ${shape === selectedShape ? 'tw:bg-base-300' : ''}`, onClick: () => selectShape(shape), children: jsxRuntime.jsx("div", { className: `tw:h-12 tw:w-full tw:mask ${shape === 'squircle' ? 'tw:mask-squircle' : shape === 'circle' ? 'tw:mask-circle' : 'tw:mask-hexagon-2'} tw:bg-neutral-content` }) }, shape))) }), jsxRuntime.jsx("hr", {}), jsxRuntime.jsx("div", { className: 'tw:grid tw:grid-cols-6 tw:gap-2 tw:py-2 tw:px-6', children: colors.map((color) => (jsxRuntime.jsx("div", { className: `tw:cursor-pointer tw:hover:bg-base-200 tw:rounded-md tw:p-2 tw:flex tw:justify-center tw:items-center ${color === selectedColor ? 'tw:bg-base-300' : ''}`, onClick: () => selectColor(color), children: jsxRuntime.jsx("div", { className: `tw:h-8 tw:w-8 tw:rounded-full`, style: { backgroundColor: color } }) }, color))) })] }))] }));
4205
4340
  };
4206
4341
 
4207
4342
  /**
@@ -4263,13 +4398,13 @@ const AttestationForm = ({ api }) => {
4263
4398
  const [selectedEmoji, setSelectedEmoji] = React.useState('select badge');
4264
4399
  const [selectedShape, setSelectedShape] = React.useState('circle');
4265
4400
  const [selectedColor, setSelectedColor] = React.useState('#fff0d6');
4266
- return (jsxRuntime.jsxs(MapOverlayPage, { backdrop: true, className: 'tw-h-fit tw-min-h-56 tw-w-96', children: [jsxRuntime.jsx("div", { className: 'tw-text-center tw-text-xl tw-font-bold', children: "Gratitude" }), jsxRuntime.jsx("div", { className: 'tw-text-center tw-text-base tw-text-gray-400', children: "to" }), jsxRuntime.jsx("div", { className: 'tw-flex tw-flex-row tw-justify-center tw-items-center tw-flex-wrap', children: users?.map((u, k) => (jsxRuntime.jsxs("div", { className: 'tw-flex tw-items-center tw-space-x-3 tw-mx-2 tw-my-1', children: [u.image ? (jsxRuntime.jsx("div", { className: 'tw-avatar', children: jsxRuntime.jsx("div", { className: 'tw-mask tw-mask-circle tw-w-8 tw-h-8', children: jsxRuntime.jsx("img", { src: appState.assetsApi.url + u.image + '?width=40&heigth=40', alt: 'Avatar' }) }) })) : (jsxRuntime.jsx("div", { className: 'tw-mask tw-mask-circle tw-text-xl md:tw-text-2xl tw-bg-slate-200 tw-rounded-full tw-w-8 tw-h-8' })), jsxRuntime.jsx("div", { children: jsxRuntime.jsx("div", { className: 'tw-font-bold', children: u.name }) })] }, k)), ', ') }), jsxRuntime.jsxs("div", { className: 'tw-w-full', children: [jsxRuntime.jsx("div", { className: 'tw-flex tw-justify-center tw-items-center', children: jsxRuntime.jsx("div", { className: ' tw-flex tw-justify-center tw-items-center tw-w-28 tw-h-28 tw-m-4', children: jsxRuntime.jsx(EmojiPicker, { selectedEmoji: selectedEmoji, selectedColor: selectedColor, selectedShape: selectedShape, setSelectedEmoji: setSelectedEmoji, setSelectedColor: setSelectedColor, setSelectedShape: setSelectedShape }) }) }), jsxRuntime.jsx("div", { className: 'tw-flex tw-justify-center tw-items-center', children: jsxRuntime.jsx("input", { ref: inputRef, value: inputValue, onChange: handleChange, type: 'text', placeholder: '... and say some words', className: 'tw-input tw-min-w-0 tw-w-fit tw-resize-none tw-overflow-hidden tw-text-center ' }) })] }), jsxRuntime.jsx("div", { className: 'tw-w-full tw-grid tw-mt-4', children: jsxRuntime.jsx("button", { onClick: sendAttestation, className: 'tw-btn tw-place-self-center tw-px-8', children: "Next" }) })] }));
4401
+ return (jsxRuntime.jsxs(MapOverlayPage, { backdrop: true, className: 'tw:h-fit tw:min-h-56 tw:w-96', children: [jsxRuntime.jsx("div", { className: 'tw:text-center tw:text-xl tw:font-bold', children: "Gratitude" }), jsxRuntime.jsx("div", { className: 'tw:text-center tw:text-base tw:text-gray-400', children: "to" }), jsxRuntime.jsx("div", { className: 'tw:flex tw:flex-row tw:justify-center tw:items-center tw:flex-wrap', children: users?.map((u, k) => (jsxRuntime.jsxs("div", { className: 'tw:flex tw:items-center tw:space-x-3 tw:mx-2 tw:my-1', children: [u.image ? (jsxRuntime.jsx("div", { className: 'tw:avatar', children: jsxRuntime.jsx("div", { className: 'tw:mask tw:mask-circle tw:w-8 tw:h-8', children: jsxRuntime.jsx("img", { src: appState.assetsApi.url + u.image + '?width=40&heigth=40', alt: 'Avatar' }) }) })) : (jsxRuntime.jsx("div", { className: 'tw:mask tw:mask-circle tw:text-xl tw:md:text-2xl tw:bg-slate-200 tw:rounded-full tw:w-8 tw:h-8' })), jsxRuntime.jsx("div", { children: jsxRuntime.jsx("div", { className: 'tw:font-bold', children: u.name }) })] }, k)), ', ') }), jsxRuntime.jsxs("div", { className: 'tw:w-full', children: [jsxRuntime.jsx("div", { className: 'tw:flex tw:justify-center tw:items-center', children: jsxRuntime.jsx("div", { className: ' tw:flex tw:justify-center tw:items-center tw:w-28 tw:h-28 tw:m-4', children: jsxRuntime.jsx(EmojiPicker, { selectedEmoji: selectedEmoji, selectedColor: selectedColor, selectedShape: selectedShape, setSelectedEmoji: setSelectedEmoji, setSelectedColor: setSelectedColor, setSelectedShape: setSelectedShape }) }) }), jsxRuntime.jsx("div", { className: 'tw:flex tw:justify-center tw:items-center', children: jsxRuntime.jsx("input", { ref: inputRef, value: inputValue, onChange: handleChange, type: 'text', placeholder: '... and say some words', className: 'input tw:min-w-0 tw:w-fit tw:resize-none tw:overflow-hidden tw:text-center ' }) })] }), jsxRuntime.jsx("div", { className: 'tw:w-full tw:grid tw:mt-4', children: jsxRuntime.jsx("button", { onClick: sendAttestation, className: 'tw:btn tw:place-self-center tw:px-8', children: "Next" }) })] }));
4267
4402
  };
4268
4403
 
4269
4404
  const TagView = ({ tag, heighlight, onClick, count, }) => {
4270
4405
  return (
4271
4406
  // Use your imagination to render suggestions.
4272
- jsxRuntime.jsxs("div", { onClick: onClick, className: `tw-flex tw-items-center tw-flex-row tw-rounded-2xl tw-text-white tw-p-2 tw-px-4 tw-shadow-xl tw-card tw-mt-3 tw-mr-4 tw-cursor-pointer tw-w-fit ${heighlight ? 'tw-border-4 tw-border-base-200 tw-shadow-lg' : ''}`, style: { backgroundColor: tag.color ? tag.color : '#666' }, children: [jsxRuntime.jsx("b", { children: decodeTag(tag.name) }), count && jsxRuntime.jsxs("span", { className: 'tw-ml-2', children: ["(", count, ")"] })] }, tag.name));
4407
+ jsxRuntime.jsxs("div", { onClick: onClick, className: `tw:flex tw:items-center tw:flex-row tw:rounded-2xl tw:text-white tw:p-2 tw:px-4 tw:shadow-xl card tw:mt-3 tw:mr-4 tw:cursor-pointer tw:w-fit ${heighlight ? 'tw:border-4 tw:border-base-200 tw:shadow-lg' : ''}`, style: { backgroundColor: tag.color ? tag.color : '#666' }, children: [jsxRuntime.jsx("b", { children: decodeTag(tag.name) }), count && jsxRuntime.jsxs("span", { className: 'tw:ml-2', children: ["(", count, ")"] })] }, tag.name));
4273
4408
  };
4274
4409
 
4275
4410
  function groupAndCount(arr) {
@@ -4311,7 +4446,7 @@ const MarketView = () => {
4311
4446
  console.log(offers);
4312
4447
  // eslint-disable-next-line react-hooks/exhaustive-deps
4313
4448
  }, [items]);
4314
- return (jsxRuntime.jsx(MapOverlayPage, { className: 'tw-rounded-none tw-overflow-y-auto tw-bg-base-200 !tw-p-4', children: jsxRuntime.jsxs("div", { className: 'tw-grid tw-grid-cols-1 md:tw-grid-cols-2', children: [jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("p", { className: 'tw-text-lg tw-font-bold', children: "Offers" }), jsxRuntime.jsx("div", { className: 'tw-flex tw-flex-wrap', children: groupAndCount(offers).map((o) => (jsxRuntime.jsx(TagView, { onClick: () => navigate(`/?tags=${o.object.name}`), tag: o.object, count: o.count }, o.object.id))) })] }), jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("p", { className: 'tw-text-lg tw-font-bold', children: "Needs" }), jsxRuntime.jsx("div", { className: 'tw-flex tw-flex-wrap', children: groupAndCount(needs).map((o) => (jsxRuntime.jsx(TagView, { onClick: () => navigate(`/?tags=${o.object.name}`), tag: o.object, count: o.count }, o.object.id))) })] })] }) }));
4449
+ return (jsxRuntime.jsx(MapOverlayPage, { className: 'tw:rounded-none tw:overflow-y-auto tw:bg-base-200 tw:p-4!', children: jsxRuntime.jsxs("div", { className: 'tw:grid tw:grid-cols-1 tw:md:grid-cols-2', children: [jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("p", { className: 'tw:text-lg tw:font-bold', children: "Offers" }), jsxRuntime.jsx("div", { className: 'tw:flex tw:flex-wrap', children: groupAndCount(offers).map((o) => (jsxRuntime.jsx(TagView, { onClick: () => navigate(`/?tags=${o.object.name}`), tag: o.object, count: o.count }, o.object.id))) })] }), jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("p", { className: 'tw:text-lg tw:font-bold', children: "Needs" }), jsxRuntime.jsx("div", { className: 'tw:flex tw:flex-wrap', children: groupAndCount(needs).map((o) => (jsxRuntime.jsx(TagView, { onClick: () => navigate(`/?tags=${o.object.name}`), tag: o.object, count: o.count }, o.object.id))) })] })] }) }));
4315
4450
  };
4316
4451
 
4317
4452
  /**
@@ -4347,12 +4482,12 @@ function UserSettings() {
4347
4482
  throw e;
4348
4483
  });
4349
4484
  };
4350
- return (jsxRuntime.jsxs(MapOverlayPage, { backdrop: true, className: 'tw-mx-4 tw-mt-4 tw-max-h-[calc(100dvh-96px)] tw-h-fit md:tw-w-[calc(50%-32px)] tw-w-[calc(100%-32px)] tw-max-w-xl !tw-left-auto tw-top-0 tw-bottom-0', children: [jsxRuntime.jsx("div", { className: 'tw-text-xl tw-font-semibold', children: "Settings" }), jsxRuntime.jsx("div", { className: 'tw-divider tw-mt-2' }), jsxRuntime.jsxs("div", { className: 'tw-grid tw-grid-cols-1 tw-gap-6', children: [jsxRuntime.jsx(TextInput, { type: 'email', placeholder: 'new E-Mail', defaultValue: user?.email ? user.email : '', updateFormValue: (v) => setEmail(v) }), jsxRuntime.jsx(TextInput, { type: 'password', placeholder: 'new Password', defaultValue: user?.password ? user.password : '', updateFormValue: (v) => {
4485
+ return (jsxRuntime.jsxs(MapOverlayPage, { backdrop: true, className: 'tw:mx-4 tw:mt-4 tw:max-h-[calc(100dvh-96px)] tw:h-fit tw:md:w-[calc(50%-32px)] tw:w-[calc(100%-32px)] tw:max-w-xl tw:left-auto! tw:top-0 tw:bottom-0', children: [jsxRuntime.jsx("div", { className: 'tw:text-xl tw:font-semibold', children: "Settings" }), jsxRuntime.jsx("div", { className: 'tw:divider tw:mt-2' }), jsxRuntime.jsxs("div", { className: 'tw:grid tw:grid-cols-1 tw:gap-6', children: [jsxRuntime.jsx(TextInput, { type: 'email', placeholder: 'new E-Mail', defaultValue: user?.email ? user.email : '', updateFormValue: (v) => setEmail(v) }), jsxRuntime.jsx(TextInput, { type: 'password', placeholder: 'new Password', defaultValue: user?.password ? user.password : '', updateFormValue: (v) => {
4351
4486
  setPassword(v);
4352
4487
  setPasswordChanged(true);
4353
- } })] }), jsxRuntime.jsx("div", { className: 'tw-mt-8', children: jsxRuntime.jsx("button", { className: loading
4354
- ? ' tw-loading tw-btn-disabled tw-btn tw-btn-primary tw-float-right'
4355
- : 'tw-btn tw-btn-primary tw-float-right', onClick: () => onUpdateUser(), children: "Update" }) })] }));
4488
+ } })] }), jsxRuntime.jsx("div", { className: 'tw:mt-8', children: jsxRuntime.jsx("button", { className: loading
4489
+ ? ' tw:loading tw:btn-disabled tw:btn tw:btn-primary tw:float-right'
4490
+ : 'tw:btn tw:btn-primary tw:float-right', onClick: () => onUpdateUser(), children: "Update" }) })] }));
4356
4491
  }
4357
4492
 
4358
4493
  /* eslint-disable @typescript-eslint/no-unnecessary-condition */
@@ -4464,6 +4599,7 @@ const onUpdateItem = async (state, item, tags, addTag, setLoading, navigate, upd
4464
4599
  ...(state.image.length > 10 && { image: state.image }),
4465
4600
  ...(state.offers.length > 0 && { offers: offerUpdates }),
4466
4601
  ...(state.needs.length > 0 && { needs: needsUpdates }),
4602
+ ...(state.openCollectiveSlug && { openCollectiveSlug: state.openCollectiveSlug }),
4467
4603
  };
4468
4604
  const offersState = [];
4469
4605
  const needsState = [];
@@ -4598,7 +4734,7 @@ const ContactInfoView = ({ item, heading }) => {
4598
4734
  React.useEffect(() => {
4599
4735
  setProfileOwner(items.find((i) => i.user_created?.id === item.user_created?.id && i.layer?.userProfileLayer));
4600
4736
  }, [item, items]);
4601
- return (jsxRuntime.jsxs("div", { className: 'tw-bg-base-200 tw-mb-6 tw-mt-6 tw-p-6', children: [jsxRuntime.jsx("h2", { className: 'tw-text-lg tw-font-semibold', children: heading }), jsxRuntime.jsxs("div", { className: 'tw-mt-4 tw-flex tw-items-center', children: [profileOwner?.image && (jsxRuntime.jsx(ConditionalLink, { url: '/item/' + profileOwner?.id, children: jsxRuntime.jsx("div", { className: 'tw-mr-5 tw-flex tw-items-center tw-justify-center', children: jsxRuntime.jsx("div", { className: 'tw-avatar', children: jsxRuntime.jsx("div", { className: 'tw-w-20 tw-h-20 tw-bg-gray-200 rounded-full tw-flex tw-items-center tw-justify-center overflow-hidden', children: jsxRuntime.jsx("img", { src: appState.assetsApi.url + profileOwner?.image, alt: profileOwner?.name, className: 'tw-w-full tw-h-full tw-object-cover' }) }) }) }) })), jsxRuntime.jsxs("div", { className: 'tw-text-sm tw-flex-grow', children: [jsxRuntime.jsx("p", { className: 'tw-font-semibold', children: profileOwner?.name }), item.contact && (jsxRuntime.jsx("p", { children: jsxRuntime.jsxs("a", { href: `mailto:${item.contact}`, className: 'tw-mt-2 tw-text-green-500 tw-inline-flex tw-items-center', children: [jsxRuntime.jsx(ForwardRef$4, { className: 'tw-w-4 tw-h-4 tw-mr-1' }), item.contact] }) })), item.telephone && (jsxRuntime.jsx("p", { children: jsxRuntime.jsxs("a", { href: `tel:${item.telephone}`, className: 'tw-mt-2 tw-text-green-500 tw-inline-flex tw-items-center tw-whitespace-nowrap', children: [jsxRuntime.jsx(ForwardRef$3, { className: 'tw-w-4 tw-h-4 tw-mr-1' }), item.telephone] }) }))] })] })] }));
4737
+ return (jsxRuntime.jsxs("div", { className: 'tw:bg-base-200 tw:mb-6 tw:mt-6 tw:p-6', children: [jsxRuntime.jsx("h2", { className: 'tw:text-lg tw:font-semibold', children: heading }), jsxRuntime.jsxs("div", { className: 'tw:mt-4 tw:flex tw:items-center', children: [profileOwner?.image && (jsxRuntime.jsx(ConditionalLink, { url: '/item/' + profileOwner?.id, children: jsxRuntime.jsx("div", { className: 'tw:mr-5 tw:flex tw:items-center tw:justify-center', children: jsxRuntime.jsx("div", { className: 'tw:avatar', children: jsxRuntime.jsx("div", { className: 'tw:w-20 tw:h-20 tw:bg-gray-200 rounded-full tw:flex tw:items-center tw:justify-center overflow-hidden', children: jsxRuntime.jsx("img", { src: appState.assetsApi.url + profileOwner?.image, alt: profileOwner?.name, className: 'tw:w-full tw:h-full tw:object-cover' }) }) }) }) })), jsxRuntime.jsxs("div", { className: 'tw:text-sm tw:grow', children: [jsxRuntime.jsx("p", { className: 'tw:font-semibold', children: profileOwner?.name }), item.contact && (jsxRuntime.jsx("p", { children: jsxRuntime.jsxs("a", { href: `mailto:${item.contact}`, className: 'tw:mt-2 tw:text-green-500 tw:inline-flex tw:items-center', children: [jsxRuntime.jsx(ForwardRef$4, { className: 'tw:w-4 tw:h-4 tw:mr-1' }), item.contact] }) })), item.telephone && (jsxRuntime.jsx("p", { children: jsxRuntime.jsxs("a", { href: `tel:${item.telephone}`, className: 'tw:mt-2 tw:text-green-500 tw:inline-flex tw:items-center tw:whitespace-nowrap', children: [jsxRuntime.jsx(ForwardRef$3, { className: 'tw:w-4 tw:h-4 tw:mr-1' }), item.telephone] }) }))] })] })] }));
4602
4738
  };
4603
4739
  // eslint-disable-next-line react/prop-types
4604
4740
  const ConditionalLink = ({ url, children }) => {
@@ -4609,6 +4745,102 @@ const ConditionalLink = ({ url, children }) => {
4609
4745
  return children;
4610
4746
  };
4611
4747
 
4748
+ const GET_TRANSACTIONS = `
4749
+ query GetAccountStats($slug: String!) {
4750
+ account(slug: $slug) {
4751
+ name
4752
+ type
4753
+ stats {
4754
+ balance {
4755
+ valueInCents
4756
+ currency
4757
+ }
4758
+ totalAmountReceived(net: true) {
4759
+ valueInCents
4760
+ currency
4761
+ }
4762
+ totalAmountSpent {
4763
+ valueInCents
4764
+ currency
4765
+ }
4766
+ contributionsCount
4767
+ contributorsCount
4768
+ }
4769
+ }
4770
+ }
4771
+ `;
4772
+ const formatCurrency = (valueInCents, currency) => {
4773
+ const value = valueInCents / 100;
4774
+ const options = {
4775
+ style: 'currency',
4776
+ currency,
4777
+ ...(Math.abs(value) >= 1000 ? { minimumFractionDigits: 0, maximumFractionDigits: 0 } : {}),
4778
+ };
4779
+ return new Intl.NumberFormat('de-DE', options).format(value);
4780
+ };
4781
+ const CrowdfundingView = ({ item }) => {
4782
+ // Hier wird slug aus dem Item extrahiert.
4783
+ const slug = item.openCollectiveSlug;
4784
+ const appState = useAppState();
4785
+ const token = appState.openCollectiveApiKey;
4786
+ const graphqlClient = axios.create({
4787
+ baseURL: 'https://api.opencollective.com/graphql/v2',
4788
+ headers: {
4789
+ Authorization: `Bearer ${token}`,
4790
+ 'Content-Type': 'application/json',
4791
+ },
4792
+ });
4793
+ const [data, setData] = React.useState(null);
4794
+ const [loading, setLoading] = React.useState(true);
4795
+ const [error, setError] = React.useState(null);
4796
+ React.useEffect(() => {
4797
+ const fetchData = async () => {
4798
+ setLoading(true);
4799
+ setError(null);
4800
+ try {
4801
+ const response = await graphqlClient.post('', {
4802
+ query: GET_TRANSACTIONS,
4803
+ variables: { slug },
4804
+ });
4805
+ if (response.data.errors?.length) {
4806
+ setError(response.data.errors[0].message);
4807
+ }
4808
+ else {
4809
+ setData(response.data.data ?? null);
4810
+ }
4811
+ }
4812
+ catch (err) {
4813
+ if (err instanceof Error) {
4814
+ setError(err.message);
4815
+ }
4816
+ else {
4817
+ throw err;
4818
+ }
4819
+ }
4820
+ setLoading(false);
4821
+ };
4822
+ if (slug) {
4823
+ void fetchData();
4824
+ }
4825
+ // eslint-disable-next-line react-hooks/exhaustive-deps
4826
+ }, [slug]);
4827
+ if (!slug)
4828
+ return null;
4829
+ if (loading)
4830
+ return (jsxRuntime.jsx("div", { className: 'tw:flex tw:justify-center', children: jsxRuntime.jsx("span", { className: 'tw:loading tw:loading-spinner tw:loading-lg tw:text-neutral-content' }) }));
4831
+ if (error) {
4832
+ return jsxRuntime.jsxs("p", { className: 'tw:text-center tw:text-lg tw:text-red-500', children: ["Error: ", error] });
4833
+ }
4834
+ if (!data?.account) {
4835
+ return (jsxRuntime.jsx("p", { className: 'tw:text-center tw:text-lg tw:text-red-500', children: "No data available for this account." }));
4836
+ }
4837
+ const { stats } = data.account;
4838
+ const balanceValueInCents = stats.balance?.valueInCents ?? 0;
4839
+ const currency = stats.balance?.currency ?? 'USD';
4840
+ const currentBalance = balanceValueInCents;
4841
+ return (jsxRuntime.jsx("div", { className: 'tw:mx-6 tw:mb-6', children: jsxRuntime.jsxs("div", { className: 'tw:card tw:bg-base-200 tw:w-fit tw:max-w-full tw:shadow', children: [jsxRuntime.jsxs("div", { className: 'tw:stats tw:bg-base-200 tw:stats-horizontal tw:rounded-b-none', children: [jsxRuntime.jsxs("div", { className: 'tw:stat tw:p-3', children: [jsxRuntime.jsx("div", { className: 'tw:stat-title', children: "Current Balance" }), jsxRuntime.jsx("div", { className: 'tw:stat-value tw:text-xl lg:tw:text-3xl', children: formatCurrency(currentBalance, currency) })] }), jsxRuntime.jsxs("div", { className: 'tw:stat tw:p-3', children: [jsxRuntime.jsx("div", { className: 'tw:stat-title', children: "Received" }), jsxRuntime.jsx("div", { className: 'tw:stat-value tw:text-green-500 tw:text-xl lg:tw:text-3xl', children: formatCurrency(stats.totalAmountReceived.valueInCents, currency) })] }), jsxRuntime.jsxs("div", { className: 'tw:stat tw:p-3', children: [jsxRuntime.jsx("div", { className: 'tw:stat-title', children: "Spent" }), jsxRuntime.jsx("div", { className: 'tw:stat-value tw:text-red-500 tw:text-xl lg:tw:text-3xl', children: formatCurrency(stats.totalAmountReceived.valueInCents - currentBalance, currency) })] })] }), jsxRuntime.jsx("hr", { className: 'tw:border-1 tw:border-current/10 tw:border-dashed' }), jsxRuntime.jsxs("div", { className: 'tw:m-4 tw:items-center', children: [jsxRuntime.jsx("a", { href: `https://opencollective.com/${slug}/donate`, target: '_blank', rel: 'noreferrer', children: jsxRuntime.jsx("button", { className: 'tw:btn tw:btn-sm tw:btn-primary tw:float-right tw:ml-4', children: "Donate" }) }), jsxRuntime.jsxs("div", { className: 'tw:flex-1 tw:mr-4', children: ["Support", ' ', jsxRuntime.jsx("a", { className: 'tw:font-bold', href: `https://opencollective.com/${slug}`, target: '_blank', rel: 'noreferrer', children: data.account.name }), ' ', "on ", jsxRuntime.jsx("span", { className: 'tw:font-bold', children: "Open\u00A0Collective" })] })] })] }) }));
4842
+ };
4843
+
4612
4844
  const GalleryView = ({ item }) => {
4613
4845
  const [index, setIndex] = React.useState(-1);
4614
4846
  const appState = useAppState();
@@ -4622,10 +4854,10 @@ const GalleryView = ({ item }) => {
4622
4854
  });
4623
4855
  if (!images)
4624
4856
  throw new Error('GalleryView: images is undefined');
4625
- return (jsxRuntime.jsxs("div", { className: 'tw-mx-6 tw-mb-6', children: [jsxRuntime.jsx(reactPhotoAlbum.RowsPhotoAlbum, { photos: images, targetRowHeight: 150, onClick: ({ index: current }) => setIndex(current) }), jsxRuntime.jsx(ReactLightbox, { index: index, slides: images, open: index >= 0, close: () => setIndex(-1) })] }));
4857
+ return (jsxRuntime.jsxs("div", { className: 'tw:mx-6 tw:mb-6', children: [jsxRuntime.jsx(reactPhotoAlbum.RowsPhotoAlbum, { photos: images, targetRowHeight: 150, onClick: ({ index: current }) => setIndex(current) }), jsxRuntime.jsx(ReactLightbox, { index: index, slides: images, open: index >= 0, close: () => setIndex(-1) })] }));
4626
4858
  };
4627
4859
 
4628
- var ChevronSVG = 'data:image/svg+xml;base64,PHN2ZwogICAgICAgICAgICB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnCiAgICAgICAgICAgIHZpZXdCb3g9JzAgMCAyNCAyNCcKICAgICAgICAgICAgZmlsbD0nd2hpdGUnCiAgICAgICAgICAgIGNsYXNzTmFtZT0ndHctaC00IHR3LXctNCcKICAgICAgICAgID4KICAgICAgICAgICAgPHBhdGggZD0nTTIwIDRINGMtMS4xIDAtMS45OS45LTEuOTkgMkwyIDE4YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnptMCA0bC04IDUtOC01VjZsOCA1IDgtNXYyeicgLz4KICAgICAgICAgIDwvc3ZnPg==';
4860
+ var ChevronSVG = 'data:image/svg+xml;base64,PHN2ZwogICAgICAgICAgICB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnCiAgICAgICAgICAgIHZpZXdCb3g9JzAgMCAyNCAyNCcKICAgICAgICAgICAgZmlsbD0nd2hpdGUnCiAgICAgICAgICAgIGNsYXNzTmFtZT0naC00IHctNCcKICAgICAgICAgID4KICAgICAgICAgICAgPHBhdGggZD0nTTIwIDRINGMtMS4xIDAtMS45OS45LTEuOTkgMkwyIDE4YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnptMCA0bC04IDUtOC01VjZsOCA1IDgtNXYyeicgLz4KICAgICAgICAgIDwvc3ZnPg==';
4629
4861
 
4630
4862
  var ClipboardSVG = 'data:image/svg+xml;base64,PHN2ZyBzdHJva2U9ImN1cnJlbnRDb2xvciIgZmlsbD0id2hpdGUiIHN0cm9rZS13aWR0aD0iMCIgdmlld0JveD0iMCAwIDI1NiAyNTYiIGhlaWdodD0iMS41ZW0iIHdpZHRoPSIxLjVlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTgwLDY0SDQwQTEyLDEyLDAsMCwwLDI4LDc2VjIxNmExMiwxMiwwLDAsMCwxMiwxMkgxODBhMTIsMTIsMCwwLDAsMTItMTJWNzZBMTIsMTIsMCwwLDAsMTgwLDY0Wk0xNjgsMjA0SDUyVjg4SDE2OFpNMjI4LDQwVjE4MGExMiwxMiwwLDAsMS0yNCwwVjUySDc2YTEyLDEyLDAsMCwxLDAtMjRIMjE2QTEyLDEyLDAsMCwxLDIyOCw0MFoiPjwvcGF0aD48L3N2Zz4=';
4631
4863
 
@@ -4683,10 +4915,10 @@ const SocialShareButton = ({ platform, url, title, }) => {
4683
4915
  const finalShareUrl = shareUrl
4684
4916
  .replace('{url}', encodeURIComponent(url))
4685
4917
  .replace('{title}', encodeURIComponent(title));
4686
- return (jsxRuntime.jsx("a", { href: finalShareUrl, target: '_blank', rel: 'noopener noreferrer', className: 'tw-w-8 tw-h-8 tw-mt-2 tw-rounded-full tw-flex tw-items-center tw-justify-center tw-text-white', style: {
4918
+ return (jsxRuntime.jsx("a", { href: finalShareUrl, target: '_blank', rel: 'noopener noreferrer', className: 'tw:w-8 tw:h-8 tw:mt-2 tw:rounded-full tw:flex tw:items-center tw:justify-center tw:text-white', style: {
4687
4919
  color: 'white',
4688
4920
  backgroundColor: bgColor,
4689
- }, title: `share link on ${platform}`, children: React.cloneElement(icon, { className: 'tw-w-4 tw-h-4 tw-fill-current' }) }));
4921
+ }, title: `share link on ${platform}`, children: React.cloneElement(icon, { className: 'tw:w-4 tw:h-4 tw:fill-current' }) }));
4690
4922
  };
4691
4923
 
4692
4924
  const SocialShareBar = ({ url, title, platforms = ['facebook', 'twitter', 'linkedin', 'xing', 'email'], }) => {
@@ -4702,21 +4934,21 @@ const SocialShareBar = ({ url, title, platforms = ['facebook', 'twitter', 'linke
4702
4934
  reactToastify.toast.error('Fehler beim Kopieren des Links: ', error);
4703
4935
  });
4704
4936
  };
4705
- return (jsxRuntime.jsxs("div", { className: 'tw-flex tw-place-content-end tw-justify-end tw-space-x-2 tw-grow tw-min-w-fit tw-pl-2', children: [platforms.map((platform) => (jsxRuntime.jsx(SocialShareButton, { platform: platform, url: url, title: title }, platform))), platforms.includes('email') && (jsxRuntime.jsx("a", { href: `mailto:?subject=${title}&body=${url}`, target: '_blank', rel: 'noopener noreferrer', className: 'tw-w-8 tw-h-8 tw-mt-2 tw-rounded-full tw-flex tw-items-center tw-justify-center tw-text-white hover:tw-cursor-pointer', style: {
4937
+ return (jsxRuntime.jsxs("div", { className: 'tw:flex tw:place-content-end tw:justify-end tw:space-x-2 tw:grow tw:min-w-fit tw:pl-2', children: [platforms.map((platform) => (jsxRuntime.jsx(SocialShareButton, { platform: platform, url: url, title: title }, platform))), platforms.includes('email') && (jsxRuntime.jsx("a", { href: `mailto:?subject=${title}&body=${url}`, target: '_blank', rel: 'noopener noreferrer', className: 'tw:w-8 tw:h-8 tw:mt-2 tw:rounded-full tw:flex tw:items-center tw:justify-center tw:text-white tw:hover:cursor-pointer', style: {
4706
4938
  color: 'white',
4707
4939
  backgroundColor: '#444',
4708
- }, onClick: () => copyLink(), title: 'share link via email', children: jsxRuntime.jsx("img", { src: ChevronSVG, alt: '\\/', className: 'tw-h-4 tw-w-4' }) })), platforms.includes('clipboard') && (jsxRuntime.jsx("div", { rel: 'noopener noreferrer', className: 'tw-w-8 tw-h-8 tw-mt-2 tw-rounded-full tw-flex tw-items-center tw-justify-center tw-text-white hover:tw-cursor-pointer', style: {
4940
+ }, onClick: () => copyLink(), title: 'share link via email', children: jsxRuntime.jsx("img", { src: ChevronSVG, alt: '\\/', className: 'tw:h-4 tw:w-4' }) })), platforms.includes('clipboard') && (jsxRuntime.jsx("div", { rel: 'noopener noreferrer', className: 'tw:w-8 tw:h-8 tw:mt-2 tw:rounded-full tw:flex tw:items-center tw:justify-center tw:text-white tw:hover:cursor-pointer', style: {
4709
4941
  color: 'white',
4710
4942
  backgroundColor: '#888',
4711
- }, onClick: () => copyLink(), title: 'copy Link', children: jsxRuntime.jsx("img", { src: ClipboardSVG, className: 'tw-w-5' }) }))] }));
4943
+ }, onClick: () => copyLink(), title: 'copy Link', children: jsxRuntime.jsx("img", { src: ClipboardSVG, className: 'tw:w-5' }) }))] }));
4712
4944
  };
4713
4945
 
4714
- const GroupSubHeaderView = ({ item, shareBaseUrl, platforms, }) => (jsxRuntime.jsxs("div", { className: 'tw-px-6', children: [jsxRuntime.jsxs("div", { className: 'tw-float-left tw-mt-2 tw-mb-4 tw-flex tw-items-center', children: [item.status && (jsxRuntime.jsx("div", { className: 'tw-mt-1.5', children: jsxRuntime.jsx("span", { className: 'tw-text-sm tw-text-current tw-bg-base-300 tw-rounded tw-py-0.5 tw-px-2 tw-inline-flex tw-items-center tw-mr-2', children: item.status }) })), item.group_type && (jsxRuntime.jsx("div", { className: 'tw-mt-1.5', children: jsxRuntime.jsx("span", { className: 'tw-text-sm tw-text-current tw-bg-base-300 tw-rounded tw-py-1 tw-px-2', children: item.group_type }) }))] }), jsxRuntime.jsx("div", { children: jsxRuntime.jsx(SocialShareBar, { url: shareBaseUrl && item.slug
4946
+ const GroupSubHeaderView = ({ item, shareBaseUrl, platforms, }) => (jsxRuntime.jsxs("div", { className: 'tw:px-6', children: [jsxRuntime.jsxs("div", { className: 'tw:float-left tw:mt-2 tw:mb-4 tw:flex tw:items-center', children: [item.status && (jsxRuntime.jsx("div", { className: 'tw:mt-1.5', children: jsxRuntime.jsx("span", { className: 'tw:text-sm tw:text-current tw:bg-base-300 tw:rounded tw:py-0.5 tw:px-2 tw:inline-flex tw:items-center tw:mr-2', children: item.status }) })), item.group_type && (jsxRuntime.jsx("div", { className: 'tw:mt-1.5', children: jsxRuntime.jsx("span", { className: 'tw:text-sm tw:text-current tw:bg-base-300 tw:rounded tw:py-1 tw:px-2', children: item.group_type }) }))] }), jsxRuntime.jsx("div", { children: jsxRuntime.jsx(SocialShareBar, { url: shareBaseUrl && item.slug
4715
4947
  ? shareBaseUrl + item.slug
4716
4948
  : window.location.protocol + '//' + window.location.host + '/item/' + item.id, title: item.name, platforms: platforms }) })] }));
4717
4949
 
4718
4950
  const ProfileStartEndView = ({ item }) => {
4719
- return (jsxRuntime.jsx("div", { className: 'tw-mt-2 tw-px-6 tw-max-w-xs', children: jsxRuntime.jsx(StartEndView, { item: item }) }));
4951
+ return (jsxRuntime.jsx("div", { className: 'tw:mt-2 tw:px-6 tw:max-w-xs', children: jsxRuntime.jsx(StartEndView, { item: item }) }));
4720
4952
  };
4721
4953
 
4722
4954
  const get = (value, path, defaultValue) => {
@@ -4740,7 +4972,7 @@ const get = (value, path, defaultValue) => {
4740
4972
  const ProfileTextView = ({ item, dataField = 'text', heading, hideWhenEmpty, }) => {
4741
4973
  const text = get(item, dataField);
4742
4974
  const parsedText = typeof text !== 'string' ? '' : text;
4743
- return (jsxRuntime.jsxs("div", { className: 'tw-my-10 tw-mt-2 tw-px-6', children: [!(text === '' && hideWhenEmpty) && (jsxRuntime.jsx("h2", { className: 'tw-text-lg tw-font-semibold', children: heading })), jsxRuntime.jsx("div", { className: 'tw-mt-2 tw-text-sm', children: jsxRuntime.jsx(TextView, { itemId: item.id, rawText: parsedText }) })] }));
4975
+ return (jsxRuntime.jsxs("div", { className: 'tw:my-10 tw:mt-2 tw:px-6', children: [!(text === '' && hideWhenEmpty) && (jsxRuntime.jsx("h2", { className: 'tw:text-lg tw:font-semibold', children: heading })), jsxRuntime.jsx("div", { className: 'tw:mt-2 tw:text-sm', children: jsxRuntime.jsx(TextView, { itemId: item.id, rawText: parsedText }) })] }));
4744
4976
  };
4745
4977
 
4746
4978
  const componentMap$1 = {
@@ -4749,25 +4981,24 @@ const componentMap$1 = {
4749
4981
  contactInfos: ContactInfoView,
4750
4982
  startEnd: ProfileStartEndView,
4751
4983
  gallery: GalleryView,
4984
+ crowdfundings: CrowdfundingView,
4752
4985
  // weitere Komponenten hier
4753
4986
  };
4754
4987
  const FlexView = ({ item }) => {
4755
- // eslint-disable-next-line no-console
4756
- console.log(item);
4757
- return (jsxRuntime.jsx("div", { className: 'tw-h-full tw-overflow-y-auto fade', children: item.layer?.itemType.profileTemplate.map(
4988
+ return (jsxRuntime.jsx("div", { className: 'tw:h-full tw:overflow-y-auto fade', children: item.layer?.itemType.profileTemplate.map(
4758
4989
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
4759
4990
  (templateItem) => {
4760
4991
  const TemplateComponent = componentMap$1[templateItem.collection];
4761
- return TemplateComponent ? (jsxRuntime.jsx(TemplateComponent, { item: item, ...templateItem.item }, templateItem.id)) : (jsxRuntime.jsx("div", { children: "Component not found" }, templateItem.id));
4992
+ return TemplateComponent ? (jsxRuntime.jsx(TemplateComponent, { item: item, ...templateItem.item }, templateItem.id)) : (jsxRuntime.jsxs("div", { className: 'tw:mx-6 tw:mb-6', children: [templateItem.collection, " view not found"] }, templateItem.id));
4762
4993
  }) }));
4763
4994
  };
4764
4995
 
4765
4996
  const OnepagerView = ({ item }) => {
4766
- return (jsxRuntime.jsxs("div", { className: 'tw-h-full tw-overflow-y-auto fade', children: [jsxRuntime.jsx(GroupSubHeaderView, { item: item, shareBaseUrl: `https://www.wuerdekompass.org/aktivitaeten/gruppensuche/#/gruppe/${item.slug}` }), item.user_created?.first_name && jsxRuntime.jsx(ContactInfoView, { heading: 'Du hast Fragen?', item: item }), jsxRuntime.jsx("div", { className: 'tw-my-10 tw-mt-2 tw-px-6 tw-text-sm ', children: jsxRuntime.jsx(TextView, { itemId: item.id, rawText: item.text ?? 'Keine Beschreibung vorhanden' }) }), item.next_appointment && (jsxRuntime.jsxs("div", { className: 'tw-my-10 tw-px-6', children: [jsxRuntime.jsx("h2", { className: 'tw-text-lg tw-font-semibold', children: "N\u00E4chste Termine" }), jsxRuntime.jsx("div", { className: 'tw-mt-2 tw-text-sm', children: jsxRuntime.jsx(TextView, { itemId: item.id, rawText: item.next_appointment }) })] })), ";"] }));
4997
+ return (jsxRuntime.jsxs("div", { className: 'tw:h-full tw:overflow-y-auto fade', children: [jsxRuntime.jsx(GroupSubHeaderView, { item: item, shareBaseUrl: `https://www.wuerdekompass.org/aktivitaeten/gruppensuche/#/gruppe/${item.slug}` }), item.user_created?.first_name && jsxRuntime.jsx(ContactInfoView, { heading: 'Du hast Fragen?', item: item }), jsxRuntime.jsx("div", { className: 'tw:my-10 tw:mt-2 tw:px-6 tw:text-sm ', children: jsxRuntime.jsx(TextView, { itemId: item.id, rawText: item.text ?? 'Keine Beschreibung vorhanden' }) }), item.next_appointment && (jsxRuntime.jsxs("div", { className: 'tw:my-10 tw:px-6', children: [jsxRuntime.jsx("h2", { className: 'tw:text-lg tw:font-semibold', children: "N\u00E4chste Termine" }), jsxRuntime.jsx("div", { className: 'tw:mt-2 tw:text-sm', children: jsxRuntime.jsx(TextView, { itemId: item.id, rawText: item.next_appointment }) })] })), ";"] }));
4767
4998
  };
4768
4999
 
4769
5000
  const SimpleView = ({ item }) => {
4770
- return (jsxRuntime.jsx("div", { className: 'tw-mt-8 tw-h-full tw-overflow-y-auto fade tw-px-6', children: jsxRuntime.jsx(TextView, { text: item.text, itemId: item.id }) }));
5001
+ return (jsxRuntime.jsx("div", { className: 'tw:mt-8 tw:h-full tw:overflow-y-auto fade tw:px-6', children: jsxRuntime.jsx(TextView, { text: item.text, itemId: item.id }) }));
4771
5002
  };
4772
5003
 
4773
5004
  function LinkIcon({
@@ -4809,25 +5040,25 @@ function ActionButton({ item, triggerAddButton, triggerItemSelected, existingRel
4809
5040
  (getItemTags(item) && getItemTags(item)[0] && getItemTags(item)[0].color
4810
5041
  ? getItemTags(item)[0].color
4811
5042
  : item.layer?.markerDefaultColor);
4812
- return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: hasUserPermission(collection, 'update', item) && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs("div", { className: `tw-absolute tw-right-4 tw-bottom-4 tw-flex tw-flex-col ${customStyle}`, children: [triggerItemSelected && (jsxRuntime.jsx("button", { tabIndex: 0, className: 'tw-z-500 tw-btn tw-btn-circle tw-shadow', onClick: () => {
5043
+ return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: hasUserPermission(collection, 'update', item) && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs("div", { className: `tw:absolute tw:right-6 tw:bottom-4 tw:flex tw:flex-col ${customStyle}`, children: [triggerItemSelected && (jsxRuntime.jsx("button", { tabIndex: 0, className: 'tw:z-500 tw:btn tw:btn-circle tw:shadow', onClick: () => {
4813
5044
  setModalOpen(true);
4814
5045
  }, style: {
4815
5046
  backgroundColor,
4816
5047
  color: '#fff',
4817
- }, children: jsxRuntime.jsx(ForwardRef$2, { className: 'tw-h-5 tw-w-5 tw-stroke-[2.5]' }) })), triggerAddButton && (jsxRuntime.jsx("button", { tabIndex: 0, className: 'tw-z-500 tw-btn tw-btn-circle tw-shadow tw-mt-2', onClick: () => {
5048
+ }, children: jsxRuntime.jsx(ForwardRef$2, { className: 'tw:h-5 tw:w-5 tw:stroke-[2.5]' }) })), triggerAddButton && (jsxRuntime.jsx("button", { tabIndex: 0, className: 'tw:z-500 tw:btn tw:btn-circle tw:shadow tw:mt-2', onClick: () => {
4818
5049
  triggerAddButton();
4819
5050
  }, style: {
4820
5051
  backgroundColor,
4821
5052
  color: '#fff',
4822
- }, children: jsxRuntime.jsx(ForwardRef$5, { className: 'tw-w-5 tw-h-5 tw-stroke-[2.5]' }) }))] }), jsxRuntime.jsxs(DialogModal, { title: 'Select', isOpened: modalOpen, onClose: () => setModalOpen(false), className: 'tw-w-xl sm:tw-w-2xl tw-min-h-80 tw-bg-base-200', children: [jsxRuntime.jsx(TextInput, { defaultValue: '', placeholder: '\uD83D\uDD0D Search', containerStyle: 'lg:col-span-2 tw-m-4 ', updateFormValue: (val) => {
5053
+ }, children: jsxRuntime.jsx(ForwardRef$5, { className: 'tw:w-5 tw:h-5 tw:stroke-[2.5]' }) }))] }), jsxRuntime.jsxs(DialogModal, { title: 'Select', isOpened: modalOpen, onClose: () => setModalOpen(false), className: 'tw:w-xl tw:sm:w-2xl tw:min-h-80 tw:bg-base-200', children: [jsxRuntime.jsx(TextInput, { defaultValue: '', placeholder: '\uD83D\uDD0D Search', containerStyle: 'lg:col-span-2 tw:m-4 ', updateFormValue: (val) => {
4823
5054
  setSearch(val);
4824
- } }), jsxRuntime.jsx("div", { className: 'tw-grid tw-grid-cols-1 sm:tw-grid-cols-2', children: filterdItems
5055
+ } }), jsxRuntime.jsx("div", { className: 'tw:grid tw:grid-cols-1 tw:sm:grid-cols-2', children: filterdItems
4825
5056
  .filter((item) => {
4826
5057
  return search === ''
4827
5058
  ? item
4828
5059
  : item.name.toLowerCase().includes(search.toLowerCase());
4829
5060
  })
4830
- .map((i) => (jsxRuntime.jsx("div", { className: 'tw-cursor-pointer tw-card tw-border-[1px] tw-border-base-300 tw-card-body tw-shadow-xl tw-bg-base-100 tw-text-base-content tw-mx-4 tw-p-4 tw-mb-4 tw-h-fit', onClick: () => {
5061
+ .map((i) => (jsxRuntime.jsx("div", { className: 'tw:cursor-pointer tw:card tw:border-[1px] tw:border-base-300 tw:card-body tw:shadow-xl tw:bg-base-100 tw:text-base-content tw:mx-4 tw:p-4 tw:mb-4 tw:h-fit', onClick: () => {
4831
5062
  triggerItemSelected(i.id);
4832
5063
  setModalOpen(false);
4833
5064
  }, children: jsxRuntime.jsx(HeaderView, { item: i, hideMenu: true }) }, i.id))) })] })] })) }));
@@ -4864,7 +5095,7 @@ function LinkedItemsHeaderView({ item, unlinkCallback, loading, unlinkPermission
4864
5095
  const title = item.name;
4865
5096
  const subtitle = item.subname;
4866
5097
  React.useEffect(() => { }, [item]);
4867
- return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsxs("div", { className: 'tw-flex tw-flex-row', children: [jsxRuntime.jsx("div", { className: 'tw-grow tw-max-w-[calc(100%-60px)] }', children: jsxRuntime.jsxs("div", { className: 'flex items-center', children: [avatar && (jsxRuntime.jsx("img", { className: 'tw-w-10 tw-inline tw-rounded-full', src: avatar, alt: item.name + ' logo' })), jsxRuntime.jsxs("div", { className: `${avatar ? 'tw-ml-2' : ''} tw-overflow-hidden`, children: [jsxRuntime.jsx("div", { className: 'tw-text-xl tw-font-semibold tw-truncate', children: title }), subtitle && (jsxRuntime.jsx("div", { className: 'tw-text-xs tw-truncate tw-text-gray-500 ', children: subtitle }))] })] }) }), jsxRuntime.jsx("div", { className: 'tw-col-span-1', onClick: (e) => e.stopPropagation(), children: unlinkPermission && (jsxRuntime.jsxs("div", { className: 'tw-dropdown tw-dropdown-bottom', children: [jsxRuntime.jsx("label", { tabIndex: 0, className: ' tw-btn tw-m-1 tw-leading-3 tw-border-none tw-min-h-0 tw-h-6', children: jsxRuntime.jsx(ForwardRef$9, { className: 'tw-h-5 tw-w-5' }) }), jsxRuntime.jsx("ul", { tabIndex: 0, className: 'tw-dropdown-content tw-menu tw-p-2 tw-shadow tw-bg-base-100 tw-rounded-box tw-z-1000', children: (jsxRuntime.jsx("li", { children: jsxRuntime.jsx("a", { className: 'tw-cursor-pointer !tw-text-error', onClick: () => unlinkCallback(item.id), children: loading ? (jsxRuntime.jsx("span", { className: 'tw-loading tw-loading-spinner tw-loading-sm' })) : (jsxRuntime.jsx(ForwardRef$1, { className: 'tw-h-5 tw-w-5 tw-stroke-[3]' })) }) })) })] })) })] }) }));
5098
+ return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsxs("div", { className: 'tw:flex tw:flex-row', children: [jsxRuntime.jsx("div", { className: 'tw:grow tw:max-w-[calc(100%-60px)] }', children: jsxRuntime.jsxs("div", { className: 'flex items-center', children: [avatar && (jsxRuntime.jsx("img", { className: 'tw:w-10 tw:inline tw:rounded-full', src: avatar, alt: item.name + ' logo' })), jsxRuntime.jsxs("div", { className: `${avatar ? 'tw:ml-2' : ''} tw:overflow-hidden`, children: [jsxRuntime.jsx("div", { className: 'tw:text-xl tw:font-semibold tw:truncate', children: title }), subtitle && (jsxRuntime.jsx("div", { className: 'tw:text-xs tw:truncate tw:text-gray-500 ', children: subtitle }))] })] }) }), jsxRuntime.jsx("div", { className: 'tw:col-span-1', onClick: (e) => e.stopPropagation(), children: unlinkPermission && (jsxRuntime.jsxs("div", { className: 'tw:dropdown tw:dropdown-bottom', children: [jsxRuntime.jsx("label", { tabIndex: 0, className: ' tw:btn tw:m-1 tw:leading-3 tw:border-none tw:min-h-0 tw:h-6', children: jsxRuntime.jsx(ForwardRef$9, { className: 'tw:h-5 tw:w-5' }) }), jsxRuntime.jsx("ul", { tabIndex: 0, className: 'tw:dropdown-content tw:menu tw:p-2 tw:shadow tw:bg-base-100 tw:rounded-box tw:z-1000', children: (jsxRuntime.jsx("li", { children: jsxRuntime.jsx("a", { className: 'tw:cursor-pointer tw:text-error!', onClick: () => unlinkCallback(item.id), children: loading ? (jsxRuntime.jsx("span", { className: 'tw:loading tw:loading-spinner tw:loading-sm' })) : (jsxRuntime.jsx(ForwardRef$1, { className: 'tw:h-5 tw:w-5 tw:stroke-3' })) }) })) })] })) })] }) }));
4868
5099
  }
4869
5100
 
4870
5101
  const TabsView = ({ attestations, item, offers, needs, relations, updatePermission, loading, linkItem, unlinkItem, }) => {
@@ -4899,15 +5130,17 @@ const TabsView = ({ attestations, item, offers, needs, relations, updatePermissi
4899
5130
  setActiveTab(urlTab ? Number(urlTab) : 1);
4900
5131
  // eslint-disable-next-line react-hooks/exhaustive-deps
4901
5132
  }, [location.search]);
4902
- return (jsxRuntime.jsxs("div", { role: 'tablist', className: 'tw-tabs tw-tabs-lifted tw-mt-2 tw-mb-2 tw-px-6', children: [jsxRuntime.jsx("input", { type: 'radio', name: 'my_tabs_2', role: 'tab', className: 'tw-tab tw-font-bold !tw-ps-2 !tw-pe-2 [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]', "aria-label": `${item.layer?.itemType.icon_as_labels && activeTab !== 1 ? '📝' : '📝\u00A0Info'}`, checked: activeTab === 1 && true, onChange: () => updateActiveTab(1) }), jsxRuntime.jsxs("div", { role: 'tabpanel', className: 'tw-tab-content tw-bg-base-100 tw-rounded-box tw-h-[calc(100dvh-280px)] tw-overflow-y-auto fade tw-pt-2 tw-pb-4 tw-mb-4 tw-overflow-x-hidden', children: [item.layer?.itemType.show_start_end && (jsxRuntime.jsx("div", { className: 'tw-max-w-xs', children: jsxRuntime.jsx(StartEndView, { item: item }) })), jsxRuntime.jsx(TextView, { text: item.text, itemId: item.id }), jsxRuntime.jsx("div", { className: 'tw-h-4' }), jsxRuntime.jsx(TextView, { text: item.contact, itemId: item.id })] }), item.layer?.itemType.questlog && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("input", { type: 'radio', name: 'my_tabs_2', role: 'tab', className: 'tw-tab tw-font-bold !tw-ps-2 !tw-pe-2 [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]', "aria-label": `${item.layer.itemType.icon_as_labels && activeTab !== 2 ? '❤️' : '❤️\u00A0Trust'}`, checked: activeTab === 2 && true, onChange: () => updateActiveTab(2) }), jsxRuntime.jsx("div", { role: 'tabpanel', className: 'tw-tab-content tw-bg-base-100 tw-rounded-box tw-h-[calc(100dvh-280px)] tw-overflow-y-auto fade tw-pt-2 tw-pb-4 tw-mb-4 tw-overflow-x-hidden', children: jsxRuntime.jsx("table", { className: 'sm:tw-table-sm md:tw-table-md', children: jsxRuntime.jsx("tbody", { children: attestations
5133
+ return (jsxRuntime.jsxs("div", { role: 'tablist', className: 'tw:tabs tw:tabs-lift tw:mt-2 tw:mb-2 tw:px-6', children: [jsxRuntime.jsx("input", { type: 'radio', name: 'my_tabs_2', role: 'tab', className: 'tw:tab tw:font-bold tw:ps-2! tw:pe-2! ', "aria-label": `${item.layer?.itemType.icon_as_labels && activeTab !== 1 ? '📝' : '📝\u00A0Info'}`, checked: activeTab === 1 && true, onChange: () => updateActiveTab(1) }), jsxRuntime.jsxs("div", { role: 'tabpanel', className: 'tw:tab-content tw:bg-base-100 tw:rounded-box tw:!h-[calc(100dvh-280px)] tw:overflow-y-auto fade tw:pt-2 tw:pb-4 tw:mb-4 tw:overflow-x-hidden', children: [item.layer?.itemType.show_start_end && (jsxRuntime.jsx("div", { className: 'tw:max-w-xs', children: jsxRuntime.jsx(StartEndView, { item: item }) })), jsxRuntime.jsx(TextView, { text: item.text, itemId: item.id }), jsxRuntime.jsx("div", { className: 'tw:h-4' }), jsxRuntime.jsx(TextView, { text: item.contact, itemId: item.id })] }), item.layer?.itemType.questlog && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("input", { type: 'radio', name: 'my_tabs_2', role: 'tab', className: 'tw:tab tw:font-bold tw:ps-2! tw:pe-2!', "aria-label": `${item.layer.itemType.icon_as_labels && activeTab !== 2 ? '❤️' : '❤️\u00A0Trust'}`, checked: activeTab === 2 && true, onChange: () => updateActiveTab(2) }), jsxRuntime.jsx("div", { role: 'tabpanel', className: 'tw:tab-content tw:bg-base-100 tw:rounded-box tw:!h-[calc(100dvh-280px)] tw:overflow-y-auto fade tw:pt-2 tw:pb-4 tw:mb-4 tw:overflow-x-hidden', children: jsxRuntime.jsx("table", { className: 'sm:tw:table-sm md:tw:table-md tw:w-full', children: jsxRuntime.jsx("tbody", { children: attestations
4903
5134
  .filter((a) => a.to.some((t) => t.directus_users_id === item.user_created?.id))
4904
5135
  .sort((a, b) => new Date(b.date_created).getTime() - new Date(a.date_created).getTime())
4905
- .map((a, i) => (jsxRuntime.jsxs("tr", { children: [jsxRuntime.jsx("td", { children: jsxRuntime.jsx("div", { className: `tw-cursor-pointer tw-text-3xl tw-mask tw-mask-${a.shape} tw-p-3 tw-mr-2 tw-shadow-xl tw-bg-[${a.color}]`, children: a.emoji }) }), jsxRuntime.jsx("td", { children: jsxRuntime.jsx("div", { className: 'tw-mr-2', children: jsxRuntime.jsx("i", { children: a.text }) }) }), jsxRuntime.jsx("td", { children: getUserProfile(a.user_created.id) ? (jsxRuntime.jsx(reactRouterDom.Link, { to: '/item/' + getUserProfile(a.user_created.id)?.id, children: jsxRuntime.jsxs("div", { className: 'flex items-center gap-3', children: [jsxRuntime.jsx("div", { className: 'tw-avatar', children: jsxRuntime.jsx("div", { className: 'tw-mask tw-rounded-full tw-h-8 tw-w-8 tw-mr-2', children: getUserProfile(a.user_created.id)?.image && (jsxRuntime.jsx("img", { src: appState.assetsApi.url +
5136
+ .map((a, i) => (jsxRuntime.jsxs("tr", { children: [jsxRuntime.jsx("td", { children: jsxRuntime.jsx("div", { className: `tw:cursor-pointer tw:text-3xl tw:mask ${a.shape === 'squircle' ? 'tw:mask-squircle' : a.shape === 'circle' ? 'tw:mask-circle' : 'tw:mask-hexagon-2'} tw:p-2 tw:my-2 tw:mr-2 tw:shadow-xl`,
5137
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
5138
+ style: { backgroundColor: a.color }, children: a.emoji }) }), jsxRuntime.jsx("td", { children: jsxRuntime.jsx("div", { className: 'tw:mr-2', children: jsxRuntime.jsx("i", { children: a.text }) }) }), jsxRuntime.jsx("td", { children: getUserProfile(a.user_created.id) ? (jsxRuntime.jsx(reactRouterDom.Link, { to: '/item/' + getUserProfile(a.user_created.id)?.id, children: jsxRuntime.jsxs("div", { className: 'flex items-center gap-3', children: [jsxRuntime.jsx("div", { className: 'tw:avatar', children: jsxRuntime.jsx("div", { className: 'tw:mask tw:rounded-full tw:h-8 tw:w-8 tw:mr-2', children: getUserProfile(a.user_created.id)?.image && (jsxRuntime.jsx("img", { src: appState.assetsApi.url +
4906
5139
  getUserProfile(a.user_created.id)?.image, alt: 'Avatar' })) }) }), jsxRuntime.jsxs("div", { children: [jsxRuntime.jsxs("div", { className: 'font-bold', children: [getUserProfile(a.user_created.id)?.name ??
4907
- a.user_created.first_name, ' '] }), jsxRuntime.jsx("div", { className: 'tw-text-xs opacity-50 tw-text-zinc-500', children: timeAgo(a.date_created) })] })] }) })) : (jsxRuntime.jsxs("div", { children: [jsxRuntime.jsxs("div", { className: 'font-bold', children: [a.user_created.first_name, " "] }), jsxRuntime.jsx("div", { className: 'tw-text-xs opacity-50 tw-text-zinc-500', children: timeAgo(a.date_created) })] })) })] }, i))) }) }) })] })), item.layer?.itemType.offers_and_needs && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("input", { type: 'radio', name: 'my_tabs_2', role: 'tab', className: `tw-tab tw-font-bold !tw-ps-2 !tw-pe-2 ${!(item.layer.itemType.icon_as_labels && activeTab !== 3) && 'tw-min-w-[10.4em]'} [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]`, "aria-label": `${item.layer.itemType.icon_as_labels && activeTab !== 3 ? '♻️' : '♻️\u00A0Offers & Needs'}`, checked: activeTab === 3 && true, onChange: () => updateActiveTab(3) }), jsxRuntime.jsx("div", { role: 'tabpanel', className: 'tw-tab-content tw-bg-base-100 tw-rounded-box tw-h-[calc(100dvh-268px)] tw-overflow-y-auto fade tw-pt-4 tw-pb-1', children: jsxRuntime.jsx("div", { className: 'tw-h-full', children: jsxRuntime.jsxs("div", { className: 'tw-grid tw-grid-cols-1', children: [offers.length > 0 ? (jsxRuntime.jsxs("div", { className: 'tw-col-span-1', children: [jsxRuntime.jsx("h3", { className: '-tw-mb-2', children: "Offers" }), jsxRuntime.jsx("div", { className: 'tw-flex tw-flex-wrap tw-mb-4', children: offers.map((o) => (jsxRuntime.jsx(TagView, { tag: o, onClick: () => {
5140
+ a.user_created.first_name, ' '] }), jsxRuntime.jsx("div", { className: 'tw:text-xs opacity-50 tw:text-zinc-500', children: timeAgo(a.date_created) })] })] }) })) : (jsxRuntime.jsxs("div", { children: [jsxRuntime.jsxs("div", { className: 'font-bold', children: [a.user_created.first_name, " "] }), jsxRuntime.jsx("div", { className: 'tw:text-xs opacity-50 tw:text-zinc-500', children: timeAgo(a.date_created) })] })) })] }, i))) }) }) })] })), item.layer?.itemType.offers_and_needs && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("input", { type: 'radio', name: 'my_tabs_2', role: 'tab', className: `tw:tab tw:font-bold tw:ps-2! tw:pe-2! ${!(item.layer.itemType.icon_as_labels && activeTab !== 3) && 'tw:min-w-[10.4em]'} `, "aria-label": `${item.layer.itemType.icon_as_labels && activeTab !== 3 ? '♻️' : '♻️\u00A0Offers & Needs'}`, checked: activeTab === 3 && true, onChange: () => updateActiveTab(3) }), jsxRuntime.jsx("div", { role: 'tabpanel', className: 'tw:tab-content tw:bg-base-100 tw:rounded-box tw:h-[calc(100dvh-268px)] tw:overflow-y-auto fade tw:pt-4 tw:pb-1', children: jsxRuntime.jsx("div", { className: 'tw:h-full', children: jsxRuntime.jsxs("div", { className: 'tw:grid tw:grid-cols-1', children: [offers.length > 0 ? (jsxRuntime.jsxs("div", { className: 'tw:col-span-1', children: [jsxRuntime.jsx("h3", { className: 'tw:-mb-2', children: "Offers" }), jsxRuntime.jsx("div", { className: 'tw:flex tw:flex-wrap tw:mb-4', children: offers.map((o) => (jsxRuntime.jsx(TagView, { tag: o, onClick: () => {
4908
5141
  addFilterTag(o);
4909
- } }, o.id))) })] })) : (''), needs.length > 0 ? (jsxRuntime.jsxs("div", { className: 'tw-col-span-1', children: [jsxRuntime.jsx("h3", { className: '-tw-mb-2 tw-col-span-1', children: "Needs" }), jsxRuntime.jsx("div", { className: 'tw-flex tw-flex-wrap tw-mb-4', children: needs.map((n) => (jsxRuntime.jsx(TagView, { tag: n, onClick: () => addFilterTag(n) }, n.id))) })] })) : ('')] }) }) })] })), item.layer?.itemType.relations && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("input", { type: 'radio', name: 'my_tabs_2', role: 'tab', className: 'tw-tab tw-font-bold !tw-ps-2 !tw-pe-2 [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]', "aria-label": `${item.layer.itemType.icon_as_labels && activeTab !== 7 ? '🔗' : '🔗\u00A0Links'}`, checked: activeTab === 7 && true, onChange: () => updateActiveTab(7) }), jsxRuntime.jsx("div", { role: 'tabpanel', className: 'tw-tab-content tw-bg-base-100 tw-rounded-box tw-h-[calc(100dvh-280px)] tw-overflow-y-auto tw-pt-4 tw-pb-1 -tw-mr-4 -tw-mb-4 tw-overflow-x-hidden', children: jsxRuntime.jsx("div", { className: 'tw-h-full', children: jsxRuntime.jsxs("div", { className: 'tw-grid tw-grid-cols-1 sm:tw-grid-cols-2 md:tw-grid-cols-1 lg:tw-grid-cols-1 xl:tw-grid-cols-1 2xl:tw-grid-cols-2 tw-pb-4', children: [relations &&
4910
- relations.map((i) => (jsxRuntime.jsxs("div", { className: 'tw-cursor-pointer tw-card tw-bg-base-200 tw-border-[1px] tw-border-base-300 tw-card-body tw-shadow-xl tw-text-base-content tw-p-6 tw-mr-4 tw-mb-4', onClick: () => navigate('/item/' + i.id), children: [jsxRuntime.jsx(LinkedItemsHeaderView, { unlinkPermission: updatePermission, item: i, unlinkCallback: unlinkItem, loading: loading }), jsxRuntime.jsx("div", { className: 'tw-overflow-y-auto tw-overflow-x-hidden tw-max-h-64 fade', children: jsxRuntime.jsx(TextView, { truncate: true, text: i.text, itemId: item.id }) })] }, i.id))), updatePermission && (jsxRuntime.jsx(ActionButton, { collection: 'items', item: item, existingRelations: relations, triggerItemSelected: linkItem }))] }) }) })] }))] }));
5142
+ } }, o.id))) })] })) : (''), needs.length > 0 ? (jsxRuntime.jsxs("div", { className: 'tw:col-span-1', children: [jsxRuntime.jsx("h3", { className: 'tw:-mb-2 tw:col-span-1', children: "Needs" }), jsxRuntime.jsx("div", { className: 'tw:flex tw:flex-wrap tw:mb-4', children: needs.map((n) => (jsxRuntime.jsx(TagView, { tag: n, onClick: () => addFilterTag(n) }, n.id))) })] })) : ('')] }) }) })] })), item.layer?.itemType.relations && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("input", { type: 'radio', name: 'my_tabs_2', role: 'tab', className: 'tw:tab tw:font-bold tw:ps-2! tw:pe-2! ', "aria-label": `${item.layer.itemType.icon_as_labels && activeTab !== 7 ? '🔗' : '🔗\u00A0Links'}`, checked: activeTab === 7 && true, onChange: () => updateActiveTab(7) }), jsxRuntime.jsx("div", { role: 'tabpanel', className: 'tw:tab-content tw:bg-base-100 tw:rounded-box tw:!h-[calc(100dvh-280px)] tw:overflow-y-auto tw:pt-4 tw:pb-1 tw:-mr-4 tw:-mb-4 tw:overflow-x-hidden', children: jsxRuntime.jsx("div", { className: 'tw:h-full', children: jsxRuntime.jsxs("div", { className: 'tw:grid tw:grid-cols-1 tw:sm:grid-cols-2 tw:md:grid-cols-1 tw:lg:grid-cols-1 tw:xl:grid-cols-1 tw:2xl:grid-cols-2 tw:pb-4', children: [relations &&
5143
+ relations.map((i) => (jsxRuntime.jsxs("div", { className: 'tw:cursor-pointer tw:card tw:bg-base-200 tw:border-[1px] tw:border-base-300 tw:card-body tw:shadow-xl tw:text-base-content tw:p-6 tw:mr-4 tw:mb-4', onClick: () => navigate('/item/' + i.id), children: [jsxRuntime.jsx(LinkedItemsHeaderView, { unlinkPermission: updatePermission, item: i, unlinkCallback: unlinkItem, loading: loading }), jsxRuntime.jsx("div", { className: 'tw:overflow-y-auto tw:overflow-x-hidden tw:max-h-64 fade', children: jsxRuntime.jsx(TextView, { truncate: true, text: i.text, itemId: item.id }) })] }, i.id))), updatePermission && (jsxRuntime.jsx(ActionButton, { collection: 'items', item: item, existingRelations: relations, triggerItemSelected: linkItem }))] }) }) })] }))] }));
4911
5144
  };
4912
5145
 
4913
5146
  /**
@@ -5033,7 +5266,7 @@ function ProfileView({ attestationApi }) {
5033
5266
  setTemplate(userLayer.itemType.template);
5034
5267
  }
5035
5268
  }, [item, layers]);
5036
- return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: item && (jsxRuntime.jsx(MapOverlayPage, { className: `!tw-p-0 tw-mx-4 tw-mt-4 tw-mb-4 md:tw-w-[calc(50%-32px)] tw-w-[calc(100%-32px)] tw-min-w-80 tw-max-w-3xl !tw-left-0 sm:!tw-left-auto tw-top-0 tw-bottom-0 tw-transition-opacity tw-duration-500 ${!selectPosition ? 'tw-opacity-100 tw-pointer-events-auto' : 'tw-opacity-0 tw-pointer-events-none'}`, children: jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("div", { className: 'tw-px-6 tw-pt-6', children: jsxRuntime.jsx(HeaderView, { api: item.layer?.api, item: item, deleteCallback: (e) => handleDelete(e, item, setLoading, removeItem, map, navigate), editCallback: () => navigate('/edit-item/' + item.id), setPositionCallback: () => {
5269
+ return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: item && (jsxRuntime.jsx(MapOverlayPage, { className: `tw:p-0! tw:overflow-scroll tw:m-4! tw:md:w-[calc(50%-32px)] tw:w-[calc(100%-32px)] tw:min-w-80 tw:max-w-3xl tw:left-0! tw:sm:left-auto! tw:top-0 tw:bottom-0 tw:transition-opacity tw:duration-500 ${!selectPosition ? 'tw:opacity-100 tw:pointer-events-auto' : 'tw:opacity-0 tw:pointer-events-none'}`, children: jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("div", { className: 'tw:px-6 tw:pt-6', children: jsxRuntime.jsx(HeaderView, { api: item.layer?.api, item: item, deleteCallback: (e) => handleDelete(e, item, setLoading, removeItem, map, navigate), editCallback: () => navigate('/edit-item/' + item.id), setPositionCallback: () => {
5037
5270
  map.closePopup();
5038
5271
  setSelectPosition(item);
5039
5272
  navigate('/');
@@ -5065,7 +5298,7 @@ function ArrowUpTrayIcon({
5065
5298
  }
5066
5299
  const ForwardRef = /*#__PURE__*/ React__namespace.forwardRef(ArrowUpTrayIcon);
5067
5300
 
5068
- var UserSVG = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMCIgdmlld0JveD0iMCAwIDE1MCAxNTAiIGNsYXNzPSJ0dy13LTIwIHR3LWgtMjAgdHctcm91bmRlZC1mdWxsIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogcmdiKDIzOCwgMjM4LCAyMzgpOyI+PHBhdGggZmlsbD0iI2NjYyIgZD0iTSAxMDQuNjg3MzEsNTYuNjg5MzUzIEMgMTAyLjE5NDM1LDgwLjY0MDQ5MyA5My4xMDQ5ODEsOTcuMjY4NzUgNzQuMzcyMTk2LDk3LjI2ODc1IDU1LjYzOTQwMiw5Ny4yNjg3NSA0Ni45ODg4MjMsODIuMzA4MDM0IDQ0LjA1NzAwNSw1Ny4yODk5NDEgNDEuNjIzMzE0LDM0LjkzODgzOCA1NS42Mzk0MDIsMTUuODAwMTUyIDc0LjM3MjE5NiwxNS44MDAxNTIgYyAxOC43MzI3ODUsMCAzMi40NTE5NDQsMTguNDkzOTcxIDMwLjMxNTExNCw0MC44ODkyMDEgeiI+PC9wYXRoPjxwYXRoIGZpbGw9IiNjY2MiIGQ9Ik0gOTIuNTY3NSA4OS42MDQ4IEMgOTAuNzk0ODQgOTMuNDc4OTMgODkuMzk4OTMgMTAyLjQ1MDQgOTQuODY0NzggMTA2LjkwMzkgQyAxMDMuOTM3NSAxMTQuMjk2MyAxMDYuNzA2NCAxMTYuNDcyMyAxMTguMzExNyAxMTguOTQ2MiBDIDE0NC4wNDMyIDEyNC40MzE0IDE0MS42NDkyIDEzOC4xNTQzIDE0Ni41MjQ0IDE0OS4yMjA2IEwgNC4yNjg0NDQgMTQ5LjEwMjMgQyA4LjQ3MjIyMyAxMzguNjUxOCA2LjUwNTc5OSAxMjQuNzgxMiAzMi40MDA1MSAxMTguMzg3IEMgNDEuODA5OTIgMTE2LjA2MzUgNDUuNjY1MTMgMTEzLjg4MjMgNTMuNTg2NTkgMTA3LjAxNTggQyA1OC41Mjc0NCAxMDIuNzMyOSA1Ny41MjU4MyA5My45OTI2NyA1Ni40MzA4NCA4OS4yNjkyNiBDIDUyLjQ5Mjc1IDg4LjgzMDExIDk0LjE3MzkgODguMTQwNTQgOTIuNTY3NSA4OS42MDQ4IHoiPjwvcGF0aD48L3N2Zz4=';
5301
+ var UserSVG = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMCIgdmlld0JveD0iMCAwIDE1MCAxNTAiIGNsYXNzPSJ3LTIwIGgtMjAgcm91bmRlZC1mdWxsIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogcmdiKDIzOCwgMjM4LCAyMzgpOyI+PHBhdGggZmlsbD0iI2NjYyIgZD0iTSAxMDQuNjg3MzEsNTYuNjg5MzUzIEMgMTAyLjE5NDM1LDgwLjY0MDQ5MyA5My4xMDQ5ODEsOTcuMjY4NzUgNzQuMzcyMTk2LDk3LjI2ODc1IDU1LjYzOTQwMiw5Ny4yNjg3NSA0Ni45ODg4MjMsODIuMzA4MDM0IDQ0LjA1NzAwNSw1Ny4yODk5NDEgNDEuNjIzMzE0LDM0LjkzODgzOCA1NS42Mzk0MDIsMTUuODAwMTUyIDc0LjM3MjE5NiwxNS44MDAxNTIgYyAxOC43MzI3ODUsMCAzMi40NTE5NDQsMTguNDkzOTcxIDMwLjMxNTExNCw0MC44ODkyMDEgeiI+PC9wYXRoPjxwYXRoIGZpbGw9IiNjY2MiIGQ9Ik0gOTIuNTY3NSA4OS42MDQ4IEMgOTAuNzk0ODQgOTMuNDc4OTMgODkuMzk4OTMgMTAyLjQ1MDQgOTQuODY0NzggMTA2LjkwMzkgQyAxMDMuOTM3NSAxMTQuMjk2MyAxMDYuNzA2NCAxMTYuNDcyMyAxMTguMzExNyAxMTguOTQ2MiBDIDE0NC4wNDMyIDEyNC40MzE0IDE0MS42NDkyIDEzOC4xNTQzIDE0Ni41MjQ0IDE0OS4yMjA2IEwgNC4yNjg0NDQgMTQ5LjEwMjMgQyA4LjQ3MjIyMyAxMzguNjUxOCA2LjUwNTc5OSAxMjQuNzgxMiAzMi40MDA1MSAxMTguMzg3IEMgNDEuODA5OTIgMTE2LjA2MzUgNDUuNjY1MTMgMTEzLjg4MjMgNTMuNTg2NTkgMTA3LjAxNTggQyA1OC41Mjc0NCAxMDIuNzMyOSA1Ny41MjU4MyA5My45OTI2NyA1Ni40MzA4NCA4OS4yNjkyNiBDIDUyLjQ5Mjc1IDg4LjgzMDExIDk0LjE3MzkgODguMTQwNTQgOTIuNTY3NSA4OS42MDQ4IHoiPjwvcGF0aD48L3N2Zz4=';
5069
5302
 
5070
5303
  const AvatarWidget = ({ avatar, setAvatar }) => {
5071
5304
  const [crop, setCrop] = React.useState();
@@ -5161,10 +5394,10 @@ const AvatarWidget = ({ avatar, setAvatar }) => {
5161
5394
  const asset = await appState.assetsApi.upload(resizedBlob, 'avatar');
5162
5395
  setAvatar(asset.id);
5163
5396
  }, [appState.assetsApi, setAvatar]);
5164
- return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [!cropping ? (jsxRuntime.jsxs("label", { className: 'custom-file-upload', children: [jsxRuntime.jsx("input", { type: 'file', accept: 'image/*', className: 'tw-file-input tw-w-full tw-max-w-xs', onChange: onImageChange }), jsxRuntime.jsx("div", { className: 'button tw-btn tw-btn-lg tw-btn-circle tw-animate-none', children: jsxRuntime.jsx(ForwardRef, { className: 'tw-w-6 tw-h-6' }) }), avatar ? (jsxRuntime.jsx("div", { className: 'tw-h-20 tw-w-20', children: jsxRuntime.jsx("img", { src: appState.assetsApi.url + avatar, className: 'tw-h-20 tw-w-20 tw-rounded-full' }) })) : (jsxRuntime.jsx("div", { className: 'tw-h-20 tw-w-20', children: jsxRuntime.jsx("img", { src: UserSVG, className: 'tw-rounded-full' }) }))] })) : (jsxRuntime.jsx("div", { className: 'tw-w-20 tw-flex tw-items-center tw-justify-center', children: jsxRuntime.jsx("span", { className: 'tw-loading tw-loading-spinner' }) })), jsxRuntime.jsxs(DialogModal, { title: '', isOpened: cropModalOpen, onClose: () => {
5397
+ return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [!cropping ? (jsxRuntime.jsxs("label", { className: 'custom-file-upload', children: [jsxRuntime.jsx("input", { type: 'file', accept: 'image/*', className: 'tw:file-input tw:w-full tw:max-w-xs', onChange: onImageChange }), jsxRuntime.jsx("div", { className: 'button tw:btn tw:btn-lg tw:btn-circle tw:animate-none', children: jsxRuntime.jsx(ForwardRef, { className: 'tw:w-6 tw:h-6' }) }), avatar ? (jsxRuntime.jsx("div", { className: 'tw:h-20 tw:w-20', children: jsxRuntime.jsx("img", { src: appState.assetsApi.url + avatar, className: 'tw:h-20 tw:w-20 tw:rounded-full' }) })) : (jsxRuntime.jsx("div", { className: 'tw:h-20 tw:w-20', children: jsxRuntime.jsx("img", { src: UserSVG, className: 'tw:rounded-full' }) }))] })) : (jsxRuntime.jsx("div", { className: 'tw:w-20 tw:flex tw:items-center tw:justify-center', children: jsxRuntime.jsx("span", { className: 'tw:loading tw:loading-spinner' }) })), jsxRuntime.jsxs(DialogModal, { title: '', isOpened: cropModalOpen, onClose: () => {
5165
5398
  setCropModalOpen(false);
5166
5399
  setImage('');
5167
- }, closeOnClickOutside: false, children: [jsxRuntime.jsx(reactImageCrop.ReactCrop, { crop: crop, onChange: (c) => setCrop(c), aspect: 1, children: jsxRuntime.jsx("img", { src: image, ref: imgRef, onLoad: onImageLoad }) }), jsxRuntime.jsx("button", { className: 'tw-btn tw-btn-primary', onClick: () => {
5400
+ }, closeOnClickOutside: false, children: [jsxRuntime.jsx(reactImageCrop.ReactCrop, { crop: crop, onChange: (c) => setCrop(c), aspect: 1, children: jsxRuntime.jsx("img", { src: image, ref: imgRef, onLoad: onImageLoad }) }), jsxRuntime.jsx("button", { className: 'tw:btn tw:btn-primary', onClick: () => {
5168
5401
  setCropping(true);
5169
5402
  setCropModalOpen(false);
5170
5403
  renderCrop();
@@ -5224,41 +5457,48 @@ const ColorPicker = ({ color, onChange, className }) => {
5224
5457
  });
5225
5458
  }
5226
5459
  }, []);
5227
- return (jsxRuntime.jsxs("div", { ref: colorPickerRef, className: `picker ${className}`, children: [jsxRuntime.jsx("div", { className: 'swatch', style: { backgroundColor: color }, onClick: () => toggle(true) }), isOpen && (jsxRuntime.jsx("div", { className: 'popover tw-z-[10000]', ref: popover, children: jsxRuntime.jsx(reactColorful.HexColorPicker, { color: color, onChange: onChange, onClick: () => toggle(false) }) }))] }));
5460
+ return (jsxRuntime.jsxs("div", { ref: colorPickerRef, className: `picker ${className}`, children: [jsxRuntime.jsx("div", { className: 'swatch', style: { backgroundColor: color }, onClick: () => toggle(true) }), isOpen && (jsxRuntime.jsx("div", { className: 'popover tw:z-10000', ref: popover, children: jsxRuntime.jsx(reactColorful.HexColorPicker, { color: color, onChange: onChange, onClick: () => toggle(false) }) }))] }));
5228
5461
  };
5229
5462
 
5230
5463
  const FormHeader = ({ item, state, setState }) => {
5231
- return (jsxRuntime.jsxs("div", { className: 'tw-flex', children: [jsxRuntime.jsx(AvatarWidget, { avatar: state.image, setAvatar: (i) => setState((prevState) => ({
5232
- ...prevState,
5233
- image: i,
5234
- })) }), jsxRuntime.jsx(ColorPicker, { color: state.color, onChange: (c) => setState((prevState) => ({
5235
- ...prevState,
5236
- color: c,
5237
- })), className: '-tw-left-6 tw-top-14 -tw-mr-6' }), jsxRuntime.jsxs("div", { className: 'tw-grow tw-mr-4', children: [jsxRuntime.jsx(TextInput, { placeholder: 'Name', defaultValue: item?.name ? item.name : '', updateFormValue: (v) => setState((prevState) => ({
5238
- ...prevState,
5239
- name: v,
5240
- })), containerStyle: 'tw-grow tw-input-md' }), jsxRuntime.jsx(TextInput, { placeholder: 'Subtitle', required: false, defaultValue: item?.subname ? item.subname : '', updateFormValue: (v) => setState((prevState) => ({
5241
- ...prevState,
5242
- subname: v,
5243
- })), containerStyle: 'tw-grow tw-input-sm tw-px-4 tw-mt-1' })] })] }));
5464
+ return (jsxRuntime.jsx("div", { className: 'tw:flex-none', children: jsxRuntime.jsxs("div", { className: 'tw:flex', children: [jsxRuntime.jsx(AvatarWidget, { avatar: state.image, setAvatar: (i) => setState((prevState) => ({
5465
+ ...prevState,
5466
+ image: i,
5467
+ })) }), jsxRuntime.jsx(ColorPicker, { color: state.color, onChange: (c) => setState((prevState) => ({
5468
+ ...prevState,
5469
+ color: c,
5470
+ })), className: 'tw:-left-6 tw:top-14 tw:-mr-6' }), jsxRuntime.jsxs("div", { className: 'tw:grow tw:mr-4 tw:pt-1', children: [jsxRuntime.jsx(TextInput, { placeholder: 'Name', defaultValue: item?.name ? item.name : '', updateFormValue: (v) => setState((prevState) => ({
5471
+ ...prevState,
5472
+ name: v,
5473
+ })), containerStyle: 'tw:grow tw:px-4', inputStyle: 'tw:input-md' }), jsxRuntime.jsx(TextInput, { placeholder: 'Subtitle', required: false, defaultValue: item?.subname ? item.subname : '', updateFormValue: (v) => setState((prevState) => ({
5474
+ ...prevState,
5475
+ subname: v,
5476
+ })), containerStyle: 'tw:grow tw:px-4 tw:mt-1', inputStyle: 'tw:input-sm' })] })] }) }));
5244
5477
  };
5245
5478
 
5246
5479
  const ContactInfoForm = ({ state, setState, }) => {
5247
- return (jsxRuntime.jsxs("div", { className: 'tw-mt-4 tw-space-y-4', children: [jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("label", { htmlFor: 'email', className: 'tw-block tw-text-sm tw-font-medium tw-text-gray-500 tw-mb-1', children: "Email-Adresse (Kontakt):" }), jsxRuntime.jsx(TextInput, { placeholder: 'Email', type: 'email', required: false, defaultValue: state.contact, updateFormValue: (v) => setState((prevState) => ({
5480
+ return (jsxRuntime.jsxs("div", { className: 'tw:mt-4 tw:space-y-4', children: [jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("label", { htmlFor: 'email', className: 'tw:block tw:text-sm tw:font-medium tw:text-gray-500 tw:mb-1', children: "Email-Adresse (Kontakt):" }), jsxRuntime.jsx(TextInput, { placeholder: 'Email', type: 'email', required: false, defaultValue: state.contact, updateFormValue: (v) => setState((prevState) => ({
5248
5481
  ...prevState,
5249
5482
  contact: v,
5250
- })) })] }), jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("label", { htmlFor: 'telephone', className: 'tw-block tw-text-sm tw-font-medium tw-text-gray-500 tw-mb-1', children: "Telefonnummer (Kontakt):" }), jsxRuntime.jsx(TextInput, { placeholder: 'Telefonnummer', type: 'tel', required: false, pattern: '^\\+?[0-9\\s\\-]{7,15}$', defaultValue: state.telephone, updateFormValue: (v) => setState((prevState) => ({
5483
+ })) })] }), jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("label", { htmlFor: 'telephone', className: 'tw:block tw:text-sm tw:font-medium tw:text-gray-500 tw:mb-1', children: "Telefonnummer (Kontakt):" }), jsxRuntime.jsx(TextInput, { placeholder: 'Telefonnummer', type: 'tel', required: false, pattern: '^\\+?[0-9\\s\\-]{7,15}$', defaultValue: state.telephone, updateFormValue: (v) => setState((prevState) => ({
5251
5484
  ...prevState,
5252
5485
  telephone: v,
5253
5486
  })) })] })] }));
5254
5487
  };
5255
5488
 
5489
+ const CrowdfundingForm = ({ state, setState, }) => {
5490
+ return (jsxRuntime.jsx("div", { className: 'tw:mt-4 tw:space-y-4', children: jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("label", { htmlFor: 'OpenCollectiveSlug', className: 'tw:block tw:text-sm tw:font-medium tw:text-gray-500 tw:mb-1', children: "Open Collective Slug:" }), jsxRuntime.jsx(TextInput, { placeholder: 'Open Collective Slug', type: 'text', required: false, defaultValue: state.openCollectiveSlug, updateFormValue: (v) => setState((prevState) => ({
5491
+ ...prevState,
5492
+ openCollectiveSlug: v,
5493
+ })) })] }) }));
5494
+ };
5495
+
5256
5496
  const ComboBoxInput = ({ id, options, value, onValueChange }) => {
5257
5497
  const handleChange = (e) => {
5258
5498
  const value = e.target.value;
5259
5499
  onValueChange(value);
5260
5500
  };
5261
- return (jsxRuntime.jsx("select", { id: id, className: 'tw-form-select tw-block tw-w-full tw-py-2 tw-px-4 tw-border tw-border-gray-300 rounded-md tw-shadow-sm tw-text-sm focus:tw-outline-none focus:tw-ring-indigo-500 focus:tw-border-indigo-500 sm:tw-text-sm', onChange: handleChange, defaultValue: value, children: options.map((o) => (jsxRuntime.jsx("option", { value: o, children: o }, o))) }));
5501
+ return (jsxRuntime.jsx("select", { id: id, className: 'tw:form-select tw:block tw:w-full tw:py-2 tw:px-4 tw:border tw:border-gray-300 rounded-md tw:shadow-sm tw:text-sm tw:focus:outline-hidden tw:focus:ring-indigo-500 tw:focus:border-indigo-500 tw:sm:text-sm', onChange: handleChange, defaultValue: value, children: options.map((o) => (jsxRuntime.jsx("option", { value: o, children: o }, o))) }));
5262
5502
  };
5263
5503
 
5264
5504
  const GroupSubheaderForm = ({ state, setState, groupStates, groupTypes, }) => {
@@ -5279,10 +5519,10 @@ const GroupSubheaderForm = ({ state, setState, groupStates, groupTypes, }) => {
5279
5519
  }
5280
5520
  // eslint-disable-next-line react-hooks/exhaustive-deps
5281
5521
  }, [state.group_type, groupTypes]);
5282
- return (jsxRuntime.jsxs("div", { className: 'tw-grid tw-grid-cols-1 md:tw-grid-cols-2 tw-gap-6', children: [jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("label", { htmlFor: 'status', className: 'tw-block tw-text-sm tw-font-medium tw-text-gray-500 tw-mb-1', children: "Gruppenstatus:" }), jsxRuntime.jsx(ComboBoxInput, { id: 'status', options: groupStates || [], value: state.status, onValueChange: (v) => setState((prevState) => ({
5522
+ return (jsxRuntime.jsxs("div", { className: 'tw:grid tw:grid-cols-1 tw:md:grid-cols-2 tw:gap-6', children: [jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("label", { htmlFor: 'status', className: 'tw:block tw:text-sm tw:font-medium tw:text-gray-500 tw:mb-1', children: "Gruppenstatus:" }), jsxRuntime.jsx(ComboBoxInput, { id: 'status', options: groupStates || [], value: state.status, onValueChange: (v) => setState((prevState) => ({
5283
5523
  ...prevState,
5284
5524
  status: v,
5285
- })) })] }), jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("label", { htmlFor: 'groupType', className: 'tw-block tw-text-sm tw-font-medium tw-text-gray-500 tw-mb-1', children: "Gruppenart:" }), jsxRuntime.jsx(ComboBoxInput, { id: 'groupType', options: groupTypes?.map((gt) => gt.groupTypes_id.name) || [], value: state.group_type, onValueChange: (v) => setState((prevState) => ({
5525
+ })) })] }), jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("label", { htmlFor: 'groupType', className: 'tw:block tw:text-sm tw:font-medium tw:text-gray-500 tw:mb-1', children: "Gruppenart:" }), jsxRuntime.jsx(ComboBoxInput, { id: 'groupType', options: groupTypes?.map((gt) => gt.groupTypes_id.name) || [], value: state.group_type, onValueChange: (v) => setState((prevState) => ({
5286
5526
  ...prevState,
5287
5527
  group_type: v,
5288
5528
  })) })] })] }));
@@ -5302,7 +5542,7 @@ var MarkdownSVG = 'data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9J2h0dHA6Ly93d3cudzM
5302
5542
 
5303
5543
  const MarkdownHint = () => {
5304
5544
  const [expended, setExpended] = React.useState(false);
5305
- return (jsxRuntime.jsxs("div", { onClick: () => setExpended(true), title: 'Markdown is supported', className: 'flex tw-flex-row tw-text-gray-400 tw-cursor-pointer tw-items-center', children: [jsxRuntime.jsx("img", { src: MarkdownSVG, alt: 'Markdown', className: 'octicon octicon-markdown tw-gray-400' }), expended && (jsxRuntime.jsxs("a", { href: 'https://www.markdownguide.org/cheat-sheet/#basic-syntax', target: '_blank', rel: 'noreferrer', children: [jsxRuntime.jsx("span", { className: 'Button-label tw-ml-1', children: "Markdown is support" }), ' '] }))] }));
5545
+ return (jsxRuntime.jsxs("div", { onClick: () => setExpended(true), title: 'Markdown is supported', className: 'flex tw:flex-row tw:text-gray-400 tw:cursor-pointer tw:items-center', children: [jsxRuntime.jsx("img", { src: MarkdownSVG, alt: 'Markdown', className: 'octicon octicon-markdown tw:gray-400' }), expended && (jsxRuntime.jsxs("a", { href: 'https://www.markdownguide.org/cheat-sheet/#basic-syntax', target: '_blank', rel: 'noreferrer', children: [jsxRuntime.jsx("span", { className: 'Button-label tw:ml-1', children: "Markdown is support" }), ' '] }))] }));
5306
5546
  };
5307
5547
 
5308
5548
  const ProfileTextForm = ({ state, setState,
@@ -5314,12 +5554,12 @@ dataField, heading, size, hideInputLabel, required, }) => {
5314
5554
  setField('text');
5315
5555
  }
5316
5556
  }, [dataField]);
5317
- return (jsxRuntime.jsxs("div", { className: 'tw-h-full tw-flex tw-flex-col tw-mt-4', children: [jsxRuntime.jsxs("div", { className: 'tw-flex tw-justify-between tw-items-center', children: [jsxRuntime.jsxs("label", { htmlFor: 'nextAppointment', className: 'tw-block tw-text-sm tw-font-medium tw-text-gray-500 tw-mb-1', children: [heading || 'Text', ":"] }), jsxRuntime.jsx(MarkdownHint, {})] }), jsxRuntime.jsx(TextAreaInput, { placeholder: '...',
5557
+ return (jsxRuntime.jsxs("div", { className: 'tw:h-full tw:flex tw:flex-col tw:mt-4', children: [jsxRuntime.jsxs("div", { className: 'tw:flex tw:justify-between tw:items-center', children: [jsxRuntime.jsxs("label", { htmlFor: 'nextAppointment', className: 'tw:block tw:text-sm tw:font-medium tw:text-gray-500 tw:mb-1', children: [heading || 'Text', ":"] }), jsxRuntime.jsx(MarkdownHint, {})] }), jsxRuntime.jsx(TextAreaInput, { placeholder: '...',
5318
5558
  // eslint-disable-next-line security/detect-object-injection
5319
5559
  defaultValue: state[field], updateFormValue: (v) => setState((prevState) => ({
5320
5560
  ...prevState,
5321
5561
  [field]: v,
5322
- })), labelStyle: hideInputLabel ? 'tw-hidden' : '', containerStyle: size === 'full' ? 'tw-grow tw-h-full' : '', inputStyle: size === 'full' ? 'tw-h-full' : 'tw-h-24', required: required })] }));
5562
+ })), labelStyle: hideInputLabel ? 'tw:hidden' : '', containerStyle: size === 'full' ? 'tw:grow tw:h-full' : '', inputStyle: size === 'full' ? 'tw:h-full' : 'tw:h-24', required: required })] }));
5323
5563
  };
5324
5564
 
5325
5565
  const componentMap = {
@@ -5327,20 +5567,21 @@ const componentMap = {
5327
5567
  texts: ProfileTextForm,
5328
5568
  contactInfos: ContactInfoForm,
5329
5569
  startEnd: ProfileStartEndForm,
5570
+ crowdfundings: CrowdfundingForm,
5330
5571
  // weitere Komponenten hier
5331
5572
  };
5332
5573
  const FlexForm = ({ item, state, setState, }) => {
5333
- return (jsxRuntime.jsx("div", { className: 'tw-mt-6 tw-flex tw-flex-col tw-h-full', children: item.layer?.itemType.profileTemplate.map((templateItem) => {
5574
+ return (jsxRuntime.jsx("div", { className: 'tw:mt-6 tw:flex tw:flex-col tw:h-full', children: item.layer?.itemType.profileTemplate.map((templateItem) => {
5334
5575
  const TemplateComponent = componentMap[templateItem.collection];
5335
- return TemplateComponent ? (jsxRuntime.jsx(TemplateComponent, { state: state, setState: setState, item: item, ...templateItem.item }, templateItem.id)) : (jsxRuntime.jsx("div", { children: "Component not found" }, templateItem.id));
5576
+ return TemplateComponent ? (jsxRuntime.jsx(TemplateComponent, { state: state, setState: setState, item: item, ...templateItem.item }, templateItem.id)) : (jsxRuntime.jsxs("div", { className: 'tw:mt-2', children: [templateItem.collection, " form not found"] }, templateItem.id));
5336
5577
  }) }));
5337
5578
  };
5338
5579
 
5339
5580
  const OnepagerForm = ({ item, state, setState, }) => {
5340
- return (jsxRuntime.jsxs("div", { className: 'tw-space-y-6 tw-mt-6', children: [jsxRuntime.jsx(GroupSubheaderForm, { state: state, setState: setState, item: item }), jsxRuntime.jsx(ContactInfoForm, { state: state, setState: setState }), jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("label", { htmlFor: 'description', className: 'tw-block tw-text-sm tw-font-medium tw-text-gray-500 tw-mb-1', children: "Gruppenbeschreibung:" }), jsxRuntime.jsx(TextAreaInput, { placeholder: 'Beschreibung', defaultValue: state.text || '', updateFormValue: (v) => setState((prevState) => ({
5581
+ return (jsxRuntime.jsxs("div", { className: 'tw:space-y-6 tw:mt-6', children: [jsxRuntime.jsx(GroupSubheaderForm, { state: state, setState: setState, item: item }), jsxRuntime.jsx(ContactInfoForm, { state: state, setState: setState }), jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("label", { htmlFor: 'description', className: 'tw:block tw:text-sm tw:font-medium tw:text-gray-500 tw:mb-1', children: "Gruppenbeschreibung:" }), jsxRuntime.jsx(TextAreaInput, { placeholder: 'Beschreibung', defaultValue: state.text || '', updateFormValue: (v) => setState((prevState) => ({
5341
5582
  ...prevState,
5342
5583
  text: v,
5343
- })), inputStyle: 'tw-h-48' })] })] }));
5584
+ })), inputStyle: 'tw:h-48' })] })] }));
5344
5585
  };
5345
5586
 
5346
5587
  // eslint-disable-next-line react/prop-types
@@ -5350,7 +5591,7 @@ const SimpleForm = ({ state, setState }) => {
5350
5591
  defaultValue: state?.text || '', updateFormValue: (v) => setState((prevState) => ({
5351
5592
  ...prevState,
5352
5593
  text: v,
5353
- })), containerStyle: 'tw-mt-8 tw-h-full', inputStyle: 'tw-h-full' }));
5594
+ })), containerStyle: 'tw:mt-8 tw:h-full', inputStyle: 'tw:h-full' }));
5354
5595
  };
5355
5596
 
5356
5597
  const Autocomplete = ({ inputProps, suggestions, onSelected, pushFilteredSuggestions, setFocus, }) => {
@@ -5402,7 +5643,7 @@ const Autocomplete = ({ inputProps, suggestions, onSelected, pushFilteredSuggest
5402
5643
  break;
5403
5644
  }
5404
5645
  };
5405
- return (jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("input", { ref: inputRef, ...inputProps, type: 'text', onChange: (e) => handleChange(e), tabIndex: '-1', onKeyDown: handleKeyDown }), jsxRuntime.jsx("ul", { className: `tw-absolute tw-z-[4000] ${filteredSuggestions.length > 0 && 'tw-bg-base-100 tw-rounded-xl tw-p-2'}`, children: filteredSuggestions.map((suggestion, index) => (jsxRuntime.jsx("li", { onClick: () => handleSuggestionClick(suggestion), children: jsxRuntime.jsx(TagView, { heighlight: index === heighlightedSuggestion, tag: suggestion }) }, index))) })] }));
5646
+ return (jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("input", { ref: inputRef, ...inputProps, type: 'text', onChange: (e) => handleChange(e), tabIndex: '-1', onKeyDown: handleKeyDown, className: 'tw:border-none tw:focus:outline-none tw:focus:ring-0 tw:mt-5' }), jsxRuntime.jsx("ul", { className: `tw:absolute tw:z-4000 ${filteredSuggestions.length > 0 && 'tw:bg-base-100 tw:rounded-xl tw:p-2'}`, children: filteredSuggestions.map((suggestion, index) => (jsxRuntime.jsx("li", { onClick: () => handleSuggestionClick(suggestion), children: jsxRuntime.jsx(TagView, { heighlight: index === heighlightedSuggestion, tag: suggestion }) }, index))) })] }));
5406
5647
  };
5407
5648
 
5408
5649
  // eslint-disable-next-line react/prop-types
@@ -5474,7 +5715,7 @@ const TagsWidget = ({ placeholder, containerStyle, defaultTags, onUpdate }) => {
5474
5715
  onKeyDown,
5475
5716
  onKeyUp,
5476
5717
  onChange,
5477
- className: 'tw-bg-transparent tw-w-fit tw-mt-5 tw-h-fit',
5718
+ className: 'tw:bg-transparent tw:w-fit tw:mt-5 tw:h-fit',
5478
5719
  };
5479
5720
  /* eslint-disable react/prop-types */
5480
5721
  return (jsxRuntime.jsx("div", { onClick: () => {
@@ -5482,7 +5723,7 @@ const TagsWidget = ({ placeholder, containerStyle, defaultTags, onUpdate }) => {
5482
5723
  setTimeout(() => {
5483
5724
  setFocusInput(false);
5484
5725
  }, 200);
5485
- }, className: `tw-input tw-input-bordered tw-cursor-text ${containerStyle}`, children: jsxRuntime.jsxs("div", { className: 'tw-flex tw-flex-wrap tw-h-fit', children: [defaultTags.map((tag) => (jsxRuntime.jsxs("div", { className: 'tw-rounded-2xl tw-text-white tw-p-2 tw-px-4 tw-shadow-xl tw-card tw-mt-3 tw-mr-4', style: { backgroundColor: tag.color ? tag.color : '#666' }, children: [jsxRuntime.jsx("div", { className: 'tw-card-actions tw-justify-end', children: jsxRuntime.jsx("label", { className: 'tw-btn tw-btn-xs tw-btn-circle tw-absolute tw--right-2 tw--top-2 tw-bg-white tw-text-gray-600', onClick: () => deleteTag(tag), children: "\u2715" }) }), jsxRuntime.jsx("b", { children: decodeTag(tag.name) })] }, tag.name))), jsxRuntime.jsx(Autocomplete, { suggestions: tags, pushFilteredSuggestions: pushFilteredSuggestions, setFocus: focusInput, inputProps: inputProps, onSelected: (tag) => onSelected(tag) })] }) }));
5726
+ }, className: `tw:textarea tw:cursor-text ${containerStyle}`, children: jsxRuntime.jsxs("div", { className: 'tw:flex tw:flex-wrap tw:h-fit', children: [defaultTags.map((tag) => (jsxRuntime.jsxs("div", { className: 'tw:rounded-2xl tw:text-white tw:p-2 tw:px-4 tw:shadow-xl tw:card tw:mt-3 tw:mr-4', style: { backgroundColor: tag.color ? tag.color : '#666' }, children: [jsxRuntime.jsx("div", { className: 'tw:card-actions tw:justify-end', children: jsxRuntime.jsx("label", { className: 'tw:btn tw:btn-xs tw:btn-circle tw:absolute tw:-right-2 tw:-top-2 tw:bg-white tw:text-gray-600', onClick: () => deleteTag(tag), children: "\u2715" }) }), jsxRuntime.jsx("b", { children: decodeTag(tag.name) })] }, tag.name))), jsxRuntime.jsx(Autocomplete, { suggestions: tags, pushFilteredSuggestions: pushFilteredSuggestions, setFocus: focusInput, inputProps: inputProps, onSelected: (tag) => onSelected(tag) })] }) }));
5486
5727
  /* eslint-enable react/prop-types */
5487
5728
  };
5488
5729
 
@@ -5506,26 +5747,26 @@ const TabsForm = ({ item, state, setState, updatePermission, linkItem, unlinkIte
5506
5747
  setActiveTab(urlTab ? Number(urlTab) : 1);
5507
5748
  // eslint-disable-next-line react-hooks/exhaustive-deps
5508
5749
  }, [location.search]);
5509
- return (jsxRuntime.jsxs("div", { role: 'tablist', className: 'tw-tabs tw-tabs-lifted tw-mt-3', children: [jsxRuntime.jsx("input", { type: 'radio', name: 'my_tabs_2', role: 'tab', className: 'tw-tab [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]', "aria-label": 'Info', checked: activeTab === 1 && true, onChange: () => updateActiveTab(1) }), jsxRuntime.jsx("div", { role: 'tabpanel', className: 'tw-tab-content tw-bg-base-100 tw-border-[var(--fallback-bc,oklch(var(--bc)/0.2))] tw-rounded-box tw-h-[calc(100dvh-332px)] tw-min-h-56 tw-border-none', children: jsxRuntime.jsxs("div", { className: `tw-flex tw-flex-col tw-h-full ${item.layer.itemType.show_start_end_input && 'tw-pt-4'}`, children: [item.layer.itemType.show_start_end_input && (jsxRuntime.jsx(PopupStartEndInput, { item: item, showLabels: false, updateEndValue: (e) => setState((prevState) => ({
5510
- ...prevState,
5511
- end: e,
5512
- })), updateStartValue: (s) => setState((prevState) => ({
5513
- ...prevState,
5514
- start: s,
5515
- })) })), jsxRuntime.jsx(TextAreaInput, { placeholder: 'about ...', defaultValue: item?.text ? item.text : '', updateFormValue: (v) => setState((prevState) => ({
5516
- ...prevState,
5517
- text: v,
5518
- })), containerStyle: 'tw-grow', inputStyle: `tw-h-full ${!item.layer.itemType.show_start_end_input && 'tw-border-t-0 tw-rounded-tl-none'}` }), jsxRuntime.jsx("div", { children: jsxRuntime.jsx(TextAreaInput, { placeholder: 'contact info ...', defaultValue: state.contact || '', updateFormValue: (c) => setState((prevState) => ({
5750
+ return (jsxRuntime.jsx("div", { className: 'tw:grow', children: jsxRuntime.jsxs("div", { role: 'tablist', className: 'tw:tabs tw:h-full tw:tabs-lift tw:mt-3', children: [jsxRuntime.jsx("input", { type: 'radio', name: 'my_tabs_2', role: 'tab', className: 'tw:tab ', "aria-label": 'Info', checked: activeTab === 1 && true, onChange: () => updateActiveTab(1) }), jsxRuntime.jsx("div", { role: 'tabpanel', className: 'tw:tab-content tw:bg-base-100 tw:border-(--fallback-bc,oklch(var(--bc)/0.2)) tw:rounded-box tw:!h-[calc(100%-48px)] tw:min-h-56 tw:border-none', children: jsxRuntime.jsxs("div", { className: `tw:flex tw:flex-col tw:h-full ${item.layer.itemType.show_start_end_input && 'tw:pt-4'}`, children: [item.layer.itemType.show_start_end_input && (jsxRuntime.jsx(PopupStartEndInput, { item: item, showLabels: false, updateEndValue: (e) => setState((prevState) => ({
5751
+ ...prevState,
5752
+ end: e,
5753
+ })), updateStartValue: (s) => setState((prevState) => ({
5754
+ ...prevState,
5755
+ start: s,
5756
+ })) })), jsxRuntime.jsx(TextAreaInput, { placeholder: 'about ...', defaultValue: item?.text ? item.text : '', updateFormValue: (v) => setState((prevState) => ({
5757
+ ...prevState,
5758
+ text: v,
5759
+ })), containerStyle: 'tw:grow', inputStyle: `tw:h-full ${!item.layer.itemType.show_start_end_input && 'tw:border-t-0 tw:rounded-tl-none'}` }), jsxRuntime.jsx(TextAreaInput, { placeholder: 'contact info ...', defaultValue: state.contact || '', updateFormValue: (c) => setState((prevState) => ({
5519
5760
  ...prevState,
5520
5761
  contact: c,
5521
- })), inputStyle: 'tw-h-24', containerStyle: 'tw-pt-4', required: false }) })] }) }), item.layer?.itemType.offers_and_needs && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("input", { type: 'radio', name: 'my_tabs_2', role: 'tab', className: 'tw-tab tw-min-w-[10em] [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]', "aria-label": 'Offers & Needs', checked: activeTab === 3 && true, onChange: () => updateActiveTab(3) }), jsxRuntime.jsx("div", { role: 'tabpanel', className: 'tw-tab-content tw-bg-base-100 tw-border-[var(--fallback-bc,oklch(var(--bc)/0.2))] tw-rounded-box tw-h-[calc(100dvh-332px)] tw-min-h-56 tw-border-none', children: jsxRuntime.jsxs("div", { className: 'tw-h-full', children: [jsxRuntime.jsx("div", { className: 'tw-w-full tw-h-[calc(50%-0.75em)] tw-mb-4', children: jsxRuntime.jsx(TagsWidget, { defaultTags: state.offers, onUpdate: (v) => setState((prevState) => ({
5522
- ...prevState,
5523
- offers: v,
5524
- })), placeholder: 'enter your offers', containerStyle: 'tw-bg-transparent tw-w-full tw-h-full tw-mt-3 tw-text-xs tw-h-[calc(100%-1rem)] tw-min-h-[5em] tw-pb-2 tw-overflow-auto' }) }), jsxRuntime.jsx("div", { className: 'tw-w-full tw-h-[calc(50%-1.5em)]', children: jsxRuntime.jsx(TagsWidget, { defaultTags: state.needs, onUpdate: (v) => setState((prevState) => ({
5525
- ...prevState,
5526
- needs: v,
5527
- })), placeholder: 'enter your needs', containerStyle: 'tw-bg-transparent tw-w-full tw-h-full tw-mt-3 tw-text-xs tw-h-[calc(100%-1rem)] tw-min-h-[5em] tw-pb-2 tw-overflow-auto' }) })] }) })] })), item.layer?.itemType.relations && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("input", { type: 'radio', name: 'my_tabs_2', role: 'tab', className: 'tw-tab [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]', "aria-label": 'Links', checked: activeTab === 7 && true, onChange: () => updateActiveTab(7) }), jsxRuntime.jsx("div", { role: 'tabpanel', className: 'tw-tab-content tw-bg-base-100 tw-rounded-box tw-h-[calc(100dvh-332px)] tw-overflow-y-auto tw-pt-4 tw-pb-1 -tw-mx-4 tw-overflow-x-hidden fade', children: jsxRuntime.jsx("div", { className: 'tw-h-full', children: jsxRuntime.jsxs("div", { className: 'tw-grid tw-grid-cols-1 sm:tw-grid-cols-2 md:tw-grid-cols-1 lg:tw-grid-cols-1 xl:tw-grid-cols-1 2xl:tw-grid-cols-2 tw-mb-4', children: [state.relations &&
5528
- state.relations.map((i) => (jsxRuntime.jsxs("div", { className: 'tw-cursor-pointer tw-card tw-bg-base-200 tw-border-[1px] tw-border-base-300 tw-card-body tw-shadow-xl tw-text-base-content tw-mx-4 tw-p-6 tw-mb-4', onClick: () => navigate('/item/' + i.id), children: [jsxRuntime.jsx(LinkedItemsHeaderView, { unlinkPermission: updatePermission, item: i, unlinkCallback: (id) => unlinkItem(id, item, updateItem), loading: loading }), jsxRuntime.jsx("div", { className: 'tw-overflow-y-auto tw-overflow-x-hidden tw-max-h-64 fade', children: jsxRuntime.jsx(TextView, { truncate: true, itemId: item.id }) })] }, i.id))), updatePermission && (jsxRuntime.jsx(ActionButton, { customStyle: '!tw-bottom-24', collection: 'items', item: item, existingRelations: state.relations, triggerItemSelected: (id) => linkItem(id, item, updateItem) }))] }) }) })] }))] }));
5762
+ })), inputStyle: '', containerStyle: 'tw:pt-4 tw:h-24 tw:flex-none', required: false })] }) }), item.layer?.itemType.offers_and_needs && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("input", { type: 'radio', name: 'my_tabs_2', role: 'tab', className: 'tw:tab tw:min-w-[10em] ', "aria-label": 'Offers & Needs', checked: activeTab === 3 && true, onChange: () => updateActiveTab(3) }), jsxRuntime.jsx("div", { role: 'tabpanel', className: 'tw:tab-content tw:bg-base-100 tw:border-(--fallback-bc,oklch(var(--bc)/0.2)) tw:rounded-box tw:!h-[calc(100%-48px)] tw:min-h-56 tw:border-none', children: jsxRuntime.jsxs("div", { className: 'tw:h-full', children: [jsxRuntime.jsx("div", { className: 'tw:w-full tw:h-[calc(50%-0.75em)] tw:mb-4', children: jsxRuntime.jsx(TagsWidget, { defaultTags: state.offers, onUpdate: (v) => setState((prevState) => ({
5763
+ ...prevState,
5764
+ offers: v,
5765
+ })), placeholder: 'enter your offers', containerStyle: 'tw:bg-transparent tw:w-full tw:h-full tw:mt-3 tw:text-xs tw:h-[calc(100%-1rem)] tw:min-h-[5em] tw:pb-2 tw:overflow-auto' }) }), jsxRuntime.jsx("div", { className: 'tw:w-full tw:h-[calc(50%-1.5em)]', children: jsxRuntime.jsx(TagsWidget, { defaultTags: state.needs, onUpdate: (v) => setState((prevState) => ({
5766
+ ...prevState,
5767
+ needs: v,
5768
+ })), placeholder: 'enter your needs', containerStyle: 'tw:bg-transparent tw:w-full tw:h-full tw:mt-3 tw:text-xs tw:h-[calc(100%-1rem)] tw:min-h-[5em] tw:pb-2 tw:overflow-auto' }) })] }) })] })), item.layer?.itemType.relations && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("input", { type: 'radio', name: 'my_tabs_2', role: 'tab', className: 'tw:tab ', "aria-label": 'Links', checked: activeTab === 7 && true, onChange: () => updateActiveTab(7) }), jsxRuntime.jsx("div", { role: 'tabpanel', className: 'tw:tab-content tw:rounded-box tw:!h-[calc(100%-48px)] tw:overflow-y-auto tw:pt-4 tw:overflow-x-hidden fade', children: jsxRuntime.jsx("div", { className: 'tw:h-full', children: jsxRuntime.jsxs("div", { className: 'tw:grid tw:grid-cols-1 tw:sm:grid-cols-2 tw:md:grid-cols-1 tw:lg:grid-cols-1 tw:xl:grid-cols-1 tw:2xl:grid-cols-2 tw:mb-4', children: [state.relations &&
5769
+ state.relations.map((i) => (jsxRuntime.jsxs("div", { className: 'tw:cursor-pointer tw:card tw:bg-base-200 tw:border-[1px] tw:border-base-300 tw:card-body tw:shadow-xl tw:text-base-content tw:mx-4 tw:p-6 tw:mb-4', onClick: () => navigate('/item/' + i.id), children: [jsxRuntime.jsx(LinkedItemsHeaderView, { unlinkPermission: updatePermission, item: i, unlinkCallback: (id) => unlinkItem(id, item, updateItem), loading: loading }), jsxRuntime.jsx("div", { className: 'tw:overflow-y-auto tw:overflow-x-hidden tw:max-h-64 fade', children: jsxRuntime.jsx(TextView, { truncate: true, itemId: item.id }) })] }, i.id))), updatePermission && (jsxRuntime.jsx(ActionButton, { customStyle: 'tw:bottom-24!', collection: 'items', item: item, existingRelations: state.relations, triggerItemSelected: (id) => linkItem(id, item, updateItem) }))] }) }) })] }))] }) }));
5529
5770
  };
5530
5771
 
5531
5772
  /**
@@ -5550,6 +5791,7 @@ function ProfileForm() {
5550
5791
  relations: [],
5551
5792
  start: '',
5552
5793
  end: '',
5794
+ openCollectiveSlug: '',
5553
5795
  });
5554
5796
  const [updatePermission, setUpdatePermission] = React.useState(false);
5555
5797
  const [loading, setLoading] = React.useState(false);
@@ -5633,6 +5875,7 @@ function ProfileForm() {
5633
5875
  relations,
5634
5876
  start: item.start ?? '',
5635
5877
  end: item.end ?? '',
5878
+ openCollectiveSlug: item.openCollectiveSlug ?? '',
5636
5879
  });
5637
5880
  // eslint-disable-next-line react-hooks/exhaustive-deps
5638
5881
  }, [item, tags, items]);
@@ -5646,10 +5889,10 @@ function ProfileForm() {
5646
5889
  setTemplate(userLayer.itemType.template);
5647
5890
  }
5648
5891
  }, [item, layers]);
5649
- return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsx(MapOverlayPage, { backdrop: true, className: 'tw-mx-4 tw-mt-4 tw-mb-4 tw-overflow-x-hidden tw-w-[calc(100%-32px)] md:tw-w-[calc(50%-32px)] tw-max-w-3xl !tw-left-auto tw-top-0 tw-bottom-0', children: jsxRuntime.jsx("form", { className: 'tw-h-full', onSubmit: (e) => {
5892
+ return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsx(MapOverlayPage, { backdrop: true, className: 'tw:mx-4 tw:mt-4 tw:mb-4 tw:overflow-x-hidden tw:w-[calc(100%-32px)] tw:md:w-[calc(50%-32px)] tw:max-w-3xl tw:left-auto! tw:top-0 tw:bottom-0', children: jsxRuntime.jsx("form", { className: 'tw:h-full', onSubmit: (e) => {
5650
5893
  e.preventDefault();
5651
5894
  void onUpdateItem(state, item, tags, addTag, setLoading, navigate, updateItem, addItem, user, urlParams);
5652
- }, children: jsxRuntime.jsxs("div", { className: 'tw-flex tw-flex-col tw-h-full', children: [jsxRuntime.jsx(FormHeader, { item: item, state: state, setState: setState }), template === 'onepager' && (jsxRuntime.jsx(OnepagerForm, { item: item, state: state, setState: setState })), template === 'simple' && jsxRuntime.jsx(SimpleForm, { state: state, setState: setState }), template === 'flex' && (jsxRuntime.jsx(FlexForm, { item: item, state: state, setState: setState })), template === 'tabs' && (jsxRuntime.jsx(TabsForm, { loading: loading, item: item, state: state, setState: setState, updatePermission: updatePermission, linkItem: (id) => linkItem(id, item, updateItem), unlinkItem: (id) => unlinkItem(id, item, updateItem), setUrlParams: setUrlParams })), jsxRuntime.jsx("div", { className: 'tw-mt-4', children: jsxRuntime.jsx("button", { className: loading ? ' tw-loading tw-btn tw-float-right' : 'tw-btn tw-float-right', type: 'submit', style: {
5895
+ }, children: jsxRuntime.jsxs("div", { className: 'tw:flex tw:flex-col tw:h-full', children: [jsxRuntime.jsx(FormHeader, { item: item, state: state, setState: setState }), template === 'onepager' && (jsxRuntime.jsx(OnepagerForm, { item: item, state: state, setState: setState })), template === 'simple' && jsxRuntime.jsx(SimpleForm, { state: state, setState: setState }), template === 'flex' && (jsxRuntime.jsx(FlexForm, { item: item, state: state, setState: setState })), template === 'tabs' && (jsxRuntime.jsx(TabsForm, { loading: loading, item: item, state: state, setState: setState, updatePermission: updatePermission, linkItem: (id) => linkItem(id, item, updateItem), unlinkItem: (id) => unlinkItem(id, item, updateItem), setUrlParams: setUrlParams })), jsxRuntime.jsx("div", { className: 'tw:mt-4 tw:flex-none', children: jsxRuntime.jsx("button", { className: `${loading ? ' tw:loading tw:btn tw:float-right' : 'tw:btn tw:float-right'}`, type: 'submit', style: {
5653
5896
  // We could refactor this, it is used several times at different locations
5654
5897
  backgroundColor: `${item.color ?? (getItemTags(item) && getItemTags(item)[0] && getItemTags(item)[0].color ? getItemTags(item)[0].color : item?.layer?.markerDefaultColor)}`,
5655
5898
  color: '#fff',
@@ -5666,7 +5909,7 @@ function Modal({ children, showOnStartup, }) {
5666
5909
  }
5667
5910
  // eslint-disable-next-line react-hooks/exhaustive-deps
5668
5911
  }, []);
5669
- return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsxs("dialog", { id: 'my_modal_3', className: 'tw-modal tw-transition-all tw-duration-300', children: [jsxRuntime.jsxs("form", { method: 'dialog', className: 'tw-modal-box tw-transition-none', children: [jsxRuntime.jsx("button", { className: 'tw-btn tw-btn-sm tw-btn-circle tw-btn-ghost tw-absolute tw-right-2 tw-top-2 focus:tw-outline-none', children: "\u2715" }), children] }), jsxRuntime.jsx("form", { method: 'dialog', className: 'tw-modal-backdrop', children: jsxRuntime.jsx("button", { children: "close" }) })] }) }));
5912
+ return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsxs("dialog", { id: 'my_modal_3', className: 'tw:modal tw:transition-all tw:duration-300', children: [jsxRuntime.jsxs("form", { method: 'dialog', className: 'tw:modal-box tw:transition-none', children: [jsxRuntime.jsx("button", { className: 'tw:btn tw:btn-sm tw:btn-circle tw:btn-ghost tw:absolute tw:right-2 tw:top-2 tw:focus:outline-hidden', children: "\u2715" }), children] }), jsxRuntime.jsx("form", { method: 'dialog', className: 'tw:modal-backdrop', children: jsxRuntime.jsx("button", { children: "close" }) })] }) }));
5670
5913
  }
5671
5914
 
5672
5915
  /**
@@ -5687,7 +5930,7 @@ function Quests() {
5687
5930
  i.layer?.userProfileLayer &&
5688
5931
  i.user_created?.id != null));
5689
5932
  }, [items, user]);
5690
- return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: questsOpen ? (jsxRuntime.jsx("div", { className: 'tw-card tw-w-48 tw-bg-base-100 tw-shadow-xl tw-absolute tw-bottom-4 tw-left-4 tw-z-[2000]', children: jsxRuntime.jsxs("div", { className: 'tw-card-body tw-p-4 tw-pt-0', children: [jsxRuntime.jsx("div", { className: 'tw-card-actions tw-justify-end', children: jsxRuntime.jsx("label", { className: 'tw-btn tw-btn-sm tw-btn-circle tw-btn-ghost tw-absolute tw-right-1 tw-top-1', onClick: () => setQuestsOpen(false), children: "\u2715" }) }), jsxRuntime.jsxs("h2", { className: 'tw-card-title tw-m-auto ', children: ["Level 1", jsxRuntime.jsx(QuestionMarkIcon, {})] }), jsxRuntime.jsxs("ul", { className: 'tw-flex-row', children: [jsxRuntime.jsx("li", { children: jsxRuntime.jsxs("label", { className: 'tw-label tw-justify-normal tw-pt-1 tw-pb-0', children: [jsxRuntime.jsx("input", { type: 'checkbox', readOnly: true, className: 'tw-checkbox tw-checkbox-xs tw-checkbox-success', checked: isAuthenticated || false }), jsxRuntime.jsx("span", { className: 'tw-text-sm tw-label-text tw-mx-2', children: "Sign Up" })] }) }), jsxRuntime.jsx("li", { children: jsxRuntime.jsxs("label", { className: 'tw-label tw-justify-normal tw-pt-1 tw-pb-0', children: [jsxRuntime.jsx("input", { type: 'checkbox', readOnly: true, className: 'tw-checkbox tw-checkbox-xs tw-checkbox-success', checked: !!profile?.text }), jsxRuntime.jsx("span", { className: 'tw-text-sm tw-label-text tw-mx-2', children: "Fill Profile" })] }) }), jsxRuntime.jsx("li", { children: jsxRuntime.jsxs("label", { className: 'tw-label tw-justify-normal tw-pt-1 tw-pb-0', children: [jsxRuntime.jsx("input", { type: 'checkbox', readOnly: true, className: 'tw-checkbox tw-checkbox-xs tw-checkbox-success', checked: !!profile?.image }), jsxRuntime.jsx("span", { className: 'tw-text-sm tw-label-text tw-mx-2', children: "Upload Avatar" })] }) })] }), ' '] }) })) : ('') }));
5933
+ return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: questsOpen ? (jsxRuntime.jsx("div", { className: 'tw:card tw:w-48 tw:bg-base-100 tw:shadow-xl tw:absolute tw:bottom-4 tw:left-4 tw:z-2000', children: jsxRuntime.jsxs("div", { className: 'tw:card-body tw:p-4 tw:pt-0', children: [jsxRuntime.jsx("div", { className: 'tw:card-actions tw:justify-end', children: jsxRuntime.jsx("label", { className: 'tw:btn tw:btn-sm tw:btn-circle tw:btn-ghost tw:absolute tw:right-1 tw:top-1', onClick: () => setQuestsOpen(false), children: "\u2715" }) }), jsxRuntime.jsxs("h2", { className: 'tw:card-title tw:m-auto ', children: ["Level 1", jsxRuntime.jsx(QuestionMarkIcon, {})] }), jsxRuntime.jsxs("ul", { className: 'tw:flex-row', children: [jsxRuntime.jsx("li", { children: jsxRuntime.jsxs("label", { className: 'tw:label tw:justify-normal tw:pt-1 tw:pb-0', children: [jsxRuntime.jsx("input", { type: 'checkbox', readOnly: true, className: 'tw:checkbox tw:checkbox-xs tw:checkbox-success', checked: isAuthenticated || false }), jsxRuntime.jsx("span", { className: 'tw:text-sm tw:label-text tw:mx-2', children: "Sign Up" })] }) }), jsxRuntime.jsx("li", { children: jsxRuntime.jsxs("label", { className: 'tw:label tw:justify-normal tw:pt-1 tw:pb-0', children: [jsxRuntime.jsx("input", { type: 'checkbox', readOnly: true, className: 'tw:checkbox tw:checkbox-xs tw:checkbox-success', checked: !!profile?.text }), jsxRuntime.jsx("span", { className: 'tw:text-sm tw:label-text tw:mx-2', children: "Fill Profile" })] }) }), jsxRuntime.jsx("li", { children: jsxRuntime.jsxs("label", { className: 'tw:label tw:justify-normal tw:pt-1 tw:pb-0', children: [jsxRuntime.jsx("input", { type: 'checkbox', readOnly: true, className: 'tw:checkbox tw:checkbox-xs tw:checkbox-success', checked: !!profile?.image }), jsxRuntime.jsx("span", { className: 'tw:text-sm tw:label-text tw:mx-2', children: "Upload Avatar" })] }) })] }), ' '] }) })) : ('') }));
5691
5934
  }
5692
5935
 
5693
5936
  exports.SVG = SVG;