utopia-ui 3.0.82 → 3.0.83

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.esm.js CHANGED
@@ -57,25 +57,25 @@ styleInject(css_248z$9);
57
57
  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}}";
58
58
  styleInject(css_248z$8);
59
59
 
60
- 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}";
60
+ 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}";
61
61
  styleInject(css_248z$7);
62
62
 
63
- 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}";
63
+ 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}";
64
64
  styleInject(css_248z$6);
65
65
 
66
- 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}";
66
+ 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}";
67
67
  styleInject(css_248z$5);
68
68
 
69
69
  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}";
70
70
  styleInject(css_248z$4);
71
71
 
72
- 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}";
72
+ 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}";
73
73
  styleInject(css_248z$3);
74
74
 
75
75
  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}";
76
76
  styleInject(css_248z$2);
77
77
 
78
- 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}";
78
+ 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}";
79
79
  styleInject(css_248z$1);
80
80
 
81
81
  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}";
@@ -1069,7 +1069,9 @@ const initialAppState = {
1069
1069
  assetsApi: {},
1070
1070
  sideBarOpen: false,
1071
1071
  sideBarSlim: false,
1072
+ showThemeControl: false,
1072
1073
  embedded: false,
1074
+ openCollectiveApiKey: '',
1073
1075
  };
1074
1076
  const AppContext = createContext({
1075
1077
  state: initialAppState,
@@ -1097,7 +1099,7 @@ const useSetAppState = () => {
1097
1099
 
1098
1100
  // Helper context to determine if the ContextWrapper is already present.
1099
1101
  const ContextCheckContext = createContext(false);
1100
- const CloseButton = ({ closeToast }) => (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" }));
1102
+ const CloseButton = ({ closeToast }) => (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" }));
1101
1103
  const ContextWrapper = ({ children }) => {
1102
1104
  const isWrapped = useContext(ContextCheckContext);
1103
1105
  const isInsideRouter = useInRouterContext();
@@ -1116,12 +1118,23 @@ const Wrappers = ({ children }) => {
1116
1118
  return (jsx(PermissionsProvider, { initialPermissions: [], children: jsx(TagsProvider, { initialTags: [], children: jsx(LayersProvider, { initialLayers: [], children: jsx(FilterProvider, { initialTags: [], children: jsx(ItemsProvider, { initialItems: [], children: jsx(SelectPositionProvider, { children: jsx(LeafletRefsProvider, { initialLeafletRefs: {}, children: jsx(QueryClientProvider, { client: queryClient, children: jsx(AppStateProvider, { children: jsx(ClusterRefProvider, { children: jsxs(QuestsProvider, { initialOpen: true, children: [jsx(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] }) }) }) }) }) }) }) }) }) }) }));
1117
1119
  };
1118
1120
 
1121
+ const useTheme = (defaultTheme = 'default') => {
1122
+ useEffect(() => {
1123
+ const savedTheme = localStorage.getItem('theme');
1124
+ const initialTheme = savedTheme ? JSON.parse(savedTheme) : defaultTheme;
1125
+ if (initialTheme !== 'default') {
1126
+ document.documentElement.setAttribute('data-theme', defaultTheme);
1127
+ localStorage.setItem('theme', JSON.stringify(initialTheme));
1128
+ }
1129
+ }, [defaultTheme]);
1130
+ };
1131
+
1119
1132
  function containsUUID(str) {
1120
1133
  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;
1121
1134
  return uuidRegex.test(str);
1122
1135
  }
1123
1136
 
1124
- var PlusSVG = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCAyNCAyNCIgc3Ryb2tlLXdpZHRoPSIzIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgY2xhc3M9InR3LXctNSB0dy1oLTUiPjxwYXRoIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgZD0iTTEyIDQuNXYxNW03LjUtNy41aC0xNSI+PC9wYXRoPjwvc3ZnPg==';
1137
+ var PlusSVG = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCAyNCAyNCIgc3Ryb2tlLXdpZHRoPSIzIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgY2xhc3M9InctNSBoLTUiPjxwYXRoIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgZD0iTTEyIDQuNXYxNW03LjUtNy41aC0xNSI+PC9wYXRoPjwvc3ZnPg==';
1125
1138
 
1126
1139
  function AddButton({ triggerAction, }) {
1127
1140
  const layers = useLayers();
@@ -1137,14 +1150,14 @@ function AddButton({ triggerAction, }) {
1137
1150
  });
1138
1151
  return canAdd;
1139
1152
  };
1140
- return (jsx(Fragment, { children: canAddItems() ? (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: [jsx("label", { tabIndex: 0, className: 'tw-z-500 tw-btn tw-btn-circle tw-shadow tw-bg-base-100', children: jsx(SVG, { src: PlusSVG, className: 'tw-h-5 tw-w-5' }) }), jsx("ul", { tabIndex: 0, className: 'tw-dropdown-content tw-pr-1 tw-list-none', children: layers.map((layer) => layer.api?.createItem &&
1153
+ return (jsx(Fragment, { children: canAddItems() ? (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: [jsx("label", { tabIndex: 0, className: 'tw:z-500 tw:btn tw:btn-circle tw:btn-lg tw:shadow tw:bg-base-100', children: jsx(SVG, { src: PlusSVG, className: 'tw:h-5 tw:w-5' }) }), jsx("ul", { tabIndex: 0, className: 'tw:dropdown-content tw:pr-1 tw:list-none', children: layers.map((layer) => layer.api?.createItem &&
1141
1154
  hasUserPermission(layer.api.collectionName, 'create', undefined, layer) &&
1142
- layer.listed && (jsx("li", { children: jsx("a", { children: jsx("div", { className: 'tw-tooltip tw-tooltip-left', "data-tip": layer.menuText, children: 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: () => {
1155
+ layer.listed && (jsx("li", { children: jsx("a", { children: jsx("div", { className: 'tw:tooltip tw:tooltip-left', "data-tip": layer.menuText, children: 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: () => {
1143
1156
  triggerAction(layer);
1144
1157
  }, onTouchEnd: (e) => {
1145
1158
  triggerAction(layer);
1146
1159
  e.preventDefault();
1147
- }, children: jsx("img", { src: layer.menuIcon, className: 'tw-h-6 tw-w-6 tw-text-white', style: { filter: 'invert(100%) brightness(200%)' } }) }) }) }) }, layer.name))) })] })) : ('') }));
1160
+ }, children: jsx("img", { src: layer.menuIcon, className: 'tw:h-6 tw:w-6 tw:text-white', style: { filter: 'invert(100%) brightness(200%)' } }) }) }) }) }, layer.name))) })] })) : ('') }));
1148
1161
  }
1149
1162
 
1150
1163
  const Control = ({ position, children, zIndex, absolute, }) => {
@@ -1155,7 +1168,7 @@ const Control = ({ position, children, zIndex, absolute, }) => {
1155
1168
  DomEvent.disableScrollPropagation(controlContainerRef.current);
1156
1169
  }
1157
1170
  }, [controlContainerRef]);
1158
- return (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 }));
1171
+ return (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 }));
1159
1172
  };
1160
1173
 
1161
1174
  function FunnelIcon({
@@ -1198,11 +1211,11 @@ function FilterControl() {
1198
1211
  const toggleVisibleGroupType = useToggleVisibleGroupType();
1199
1212
  const addVisibleGroupType = useAddVisibleGroupType();
1200
1213
  const visibleGroupTypes = useVisibleGroupType();
1201
- return (jsx("div", { className: 'tw-card tw-bg-base-100 tw-shadow-xl tw-mt-2 tw-w-fit', children: open ? (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: [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: () => {
1214
+ return (jsx("div", { className: 'tw:card tw:bg-base-100 tw:shadow-xl tw:mt-2 tw:w-fit', children: open ? (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: [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: () => {
1202
1215
  setOpen(false);
1203
- }, children: jsx("p", { className: 'tw-text-center ', children: "\u2715" }) }), jsx("ul", { className: 'tw-flex-row', children: groupTypes.map((groupType) => (jsx("li", { children: jsxs("label", { htmlFor: groupType.value, className: 'tw-label tw-justify-normal tw-pt-1 tw-pb-1', children: [jsx("input", { id: groupType.value, onChange: () => toggleVisibleGroupType(groupType.value), type: 'checkbox', className: 'tw-checkbox tw-checkbox-xs tw-checkbox-success', checked: isGroupTypeVisible(groupType.value) }), jsx("span", { className: 'tw-text-sm tw-label-text tw-mx-2 tw-cursor-pointer', children: groupType.text })] }) }, groupType.value))) })] })) : (jsxs("div", { className: 'tw-indicator', children: [visibleGroupTypes.length < groupTypes.length && (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' })), 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: () => {
1216
+ }, children: jsx("p", { className: 'tw:text-center ', children: "\u2715" }) }), jsx("ul", { className: 'tw:flex-row', children: groupTypes.map((groupType) => (jsx("li", { children: jsxs("label", { htmlFor: groupType.value, className: 'tw:label tw:justify-normal tw:pt-1 tw:pb-1', children: [jsx("input", { id: groupType.value, onChange: () => toggleVisibleGroupType(groupType.value), type: 'checkbox', className: 'tw:checkbox tw:checkbox-xs tw:checkbox-success', checked: isGroupTypeVisible(groupType.value) }), jsx("span", { className: 'tw:text-sm tw:label-text tw:mx-2 tw:cursor-pointer', children: groupType.text })] }) }, groupType.value))) })] })) : (jsxs("div", { className: 'tw:indicator', children: [visibleGroupTypes.length < groupTypes.length && (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' })), 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: () => {
1204
1217
  setOpen(true);
1205
- }, children: jsx(ForwardRef$e, { className: 'size-6 tw-stroke-[2.5]' }) })] })) }));
1218
+ }, children: jsx(ForwardRef$e, { className: 'size-6 tw:stroke-[2.5]' }) })] })) }));
1206
1219
  }
1207
1220
 
1208
1221
  function HeartIcon({
@@ -1234,9 +1247,9 @@ const GratitudeControl = () => {
1234
1247
  const navigate = useNavigate();
1235
1248
  const { isAuthenticated } = useAuth();
1236
1249
  if (isAuthenticated) {
1237
- return (jsx("div", { className: 'tw-card tw-bg-base-100 tw-shadow-xl tw-mt-2 tw-w-fit', children: 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: () => {
1250
+ return (jsx("div", { className: 'tw:card tw:bg-base-100 tw:shadow-xl tw:mt-2 tw:w-fit', children: 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: () => {
1238
1251
  navigate('/select-user');
1239
- }, children: jsx(ForwardRef$d, { className: 'tw-stroke-[2.5]' }) }) }));
1252
+ }, children: jsx(ForwardRef$d, { className: 'tw:stroke-[2.5]' }) }) }));
1240
1253
  }
1241
1254
  else
1242
1255
  return jsx(Fragment, {});
@@ -1249,9 +1262,9 @@ function LayerControl() {
1249
1262
  const layers = useLayers();
1250
1263
  const isLayerVisible = useIsLayerVisible();
1251
1264
  const toggleVisibleLayer = useToggleVisibleLayer();
1252
- return (jsx("div", { className: 'tw-card tw-bg-base-100 tw-shadow-xl tw-mt-2 tw-w-fit', children: open ? (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: [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: () => {
1265
+ return (jsx("div", { className: 'tw:card tw:bg-base-100 tw:shadow-xl tw:mt-2 tw:w-fit', children: open ? (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: [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: () => {
1253
1266
  setOpen(false);
1254
- }, children: jsx("p", { className: 'tw-text-center ', children: "\u2715" }) }), jsx("ul", { className: 'tw-flex-row', children: layers.map((layer) => layer.listed && (jsx("li", { children: jsxs("label", { htmlFor: layer.name, className: 'tw-label tw-justify-normal tw-pt-1 tw-pb-1', children: [jsx("input", { id: layer.name, onChange: () => toggleVisibleLayer(layer), type: 'checkbox', className: 'tw-checkbox tw-checkbox-xs tw-checkbox-success', checked: isLayerVisible(layer) }), jsx("span", { className: 'tw-text-sm tw-label-text tw-mx-2 tw-cursor-pointer', children: layer.name })] }) }, layer.name))) })] })) : (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: () => {
1267
+ }, children: jsx("p", { className: 'tw:text-center ', children: "\u2715" }) }), jsx("ul", { className: 'tw:flex-row', children: layers.map((layer) => layer.listed && (jsx("li", { children: jsxs("label", { htmlFor: layer.name, className: 'tw:label tw:justify-normal tw:pt-1 tw:pb-1 tw:text-base-content', children: [jsx("input", { id: layer.name, onChange: () => toggleVisibleLayer(layer), type: 'checkbox', className: 'tw:checkbox tw:checkbox-xs tw:checkbox-success', checked: isLayerVisible(layer) }), jsx("span", { className: 'tw:text-sm tw:label-text tw:mx-2 tw:cursor-pointer', children: layer.name })] }) }, layer.name))) })] })) : (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: () => {
1255
1268
  setOpen(true);
1256
1269
  }, children: jsx(SVG, { src: LayerSVG }) })) }));
1257
1270
  }
@@ -2402,7 +2415,7 @@ const LocateControl = () => {
2402
2415
  setActive(true);
2403
2416
  },
2404
2417
  });
2405
- return (jsx(Fragment, { children: 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: jsx("div", { className: 'tw-card-body tw-card tw-p-2 tw-h-10 tw-w-10 ', onClick: () => {
2418
+ return (jsx(Fragment, { children: 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: jsx("div", { className: 'tw:card-body tw:card tw:p-2 tw:h-10 tw:w-10 ', onClick: () => {
2406
2419
  if (active) {
2407
2420
  lc.stop();
2408
2421
  setActive(false);
@@ -2411,7 +2424,7 @@ const LocateControl = () => {
2411
2424
  lc.start();
2412
2425
  setLoading(true);
2413
2426
  }
2414
- }, children: loading ? (jsx("span", { className: 'tw-loading tw-loading-spinner tw-loading-md tw-mt-1' })) : (jsx(SVG, { src: TargetSVG, className: 'tw-mt-1 tw-p-[1px]', style: { fill: `${active ? '#fc8702' : 'currentColor'}` } })) }) }) }));
2427
+ }, children: loading ? (jsx("span", { className: 'tw:loading tw:loading-spinner tw:loading-md tw:mt-1' })) : (jsx(SVG, { src: TargetSVG, className: 'tw:mt-1 tw:p-[1px]', style: { fill: `${active ? '#fc8702' : 'currentColor'}` } })) }) }) }));
2415
2428
  };
2416
2429
 
2417
2430
  function Bars3Icon({
@@ -2439,7 +2452,12 @@ const ForwardRef$a = /*#__PURE__*/ React.forwardRef(Bars3Icon);
2439
2452
 
2440
2453
  // Converts leaflet.locatecontrol to a React Component
2441
2454
  const SidebarControl = () => {
2442
- return (jsx(Fragment, { children: 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: jsx("div", { className: 'tw-card-body tw-card tw-p-0', children: 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: jsx(ForwardRef$a, { className: 'tw-inline-block tw-w-5 tw-h-5' }) }) }) }) }));
2455
+ const appState = useAppState();
2456
+ const setAppState = useSetAppState();
2457
+ const toggleSidebar = () => {
2458
+ setAppState({ sideBarOpen: !appState.sideBarOpen });
2459
+ };
2460
+ return (jsx(Fragment, { children: 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: jsx(ForwardRef$a, { className: 'tw:inline-block tw:w-5 tw:h-5' }) }) }));
2443
2461
  };
2444
2462
 
2445
2463
  const SearchControl = () => {
@@ -2494,18 +2512,18 @@ const SearchControl = () => {
2494
2512
  }, 200);
2495
2513
  };
2496
2514
  const searchInput = useRef(null);
2497
- return (jsx(Fragment, { children: !(windowDimensions.height < 500 && popupOpen && hideSuggestions) && (jsxs("div", { className: 'tw-w-[calc(100vw-2rem)] tw-max-w-[22rem] ', children: [jsxs("div", { className: 'tw-flex tw-flex-row', children: [appState.embedded && jsx(SidebarControl, {}), jsxs("div", { className: 'tw-relative', children: [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: () => {
2515
+ return (jsx(Fragment, { children: !(windowDimensions.height < 500 && popupOpen && hideSuggestions) && (jsxs("div", { className: 'tw:w-[calc(100vw-2rem)] tw:max-w-[22rem] ', children: [jsxs("div", { className: 'tw:flex tw:flex-row', children: [appState.embedded && jsx(SidebarControl, {}), jsxs("div", { className: 'tw:relative tw:shrink tw:max-w-69 tw:w-full', children: [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: () => {
2498
2516
  setHideSuggestions(false);
2499
2517
  if (windowDimensions.width < 500)
2500
2518
  map.closePopup();
2501
- }, onBlur: () => hide() }), value.length > 0 && (jsx("button", { className: 'tw-btn tw-btn-sm tw-btn-circle tw-absolute tw-right-2 tw-top-2', onClick: () => setValue(''), children: "\u2715" }))] }), jsx(LocateControl, {})] }), hideSuggestions ||
2519
+ }, onBlur: () => hide() }), value.length > 0 && (jsx("button", { className: 'tw:btn tw:btn-sm tw:btn-circle tw:absolute tw:right-2 tw:top-2', onClick: () => setValue(''), children: "\u2715" }))] }), jsx(LocateControl, {})] }), hideSuggestions ||
2502
2520
  (Array.from(geoResults).length === 0 &&
2503
2521
  itemsResults.length === 0 &&
2504
2522
  tagsResults.length === 0 &&
2505
2523
  !isGeoCoordinate(value)) ||
2506
- value.length === 0 ? ('') : (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 && (jsx("div", { className: 'tw-flex tw-flex-wrap', children: tagsResults.slice(0, 3).map((tag) => (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: () => {
2524
+ value.length === 0 ? ('') : (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 && (jsx("div", { className: 'tw:flex tw:flex-wrap', children: tagsResults.slice(0, 3).map((tag) => (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: () => {
2507
2525
  addFilterTag(tag);
2508
- }, children: jsxs("b", { children: ["#", decodeTag(tag.name)] }) }, tag.name))) })), itemsResults.length > 0 && tagsResults.length > 0 && (jsx("hr", { className: 'tw-opacity-50' })), itemsResults.slice(0, 5).map((item) => (jsxs("div", { className: 'tw-cursor-pointer hover:tw-font-bold tw-flex tw-flex-row', onClick: () => {
2526
+ }, children: jsxs("b", { children: ["#", decodeTag(tag.name)] }) }, tag.name))) })), itemsResults.length > 0 && tagsResults.length > 0 && (jsx("hr", { className: 'tw:opacity-50' })), itemsResults.slice(0, 5).map((item) => (jsxs("div", { className: 'tw:cursor-pointer tw:hover:font-bold tw:flex tw:flex-row', onClick: () => {
2509
2527
  const marker = Object.entries(leafletRefs).find((r) => r[1].item === item)?.[1]
2510
2528
  .marker;
2511
2529
  if (marker) {
@@ -2514,18 +2532,18 @@ const SearchControl = () => {
2514
2532
  else {
2515
2533
  navigate('item/' + item.id + '?' + new URLSearchParams(window.location.search));
2516
2534
  }
2517
- }, children: [item.layer?.menuIcon ? (jsx(SVG, { src: item.layer.menuIcon, className: 'tw-text-current tw-mr-2 tw-mt-0 tw-w-5', preProcessor: (code) => {
2535
+ }, children: [item.layer?.menuIcon ? (jsx(SVG, { src: item.layer.menuIcon, className: 'tw:text-current tw:mr-2 tw:mt-0 tw:w-5', preProcessor: (code) => {
2518
2536
  code = code.replace(/fill=".*?"/g, 'fill="currentColor"');
2519
2537
  code = code.replace(/stroke=".*?"/g, 'stroke="currentColor"');
2520
2538
  return code;
2521
- } })) : (jsx("div", { className: 'tw-w-5' })), jsxs("div", { children: [jsx("div", { className: 'tw-text-sm tw-overflow-hidden tw-text-ellipsis tw-whitespace-nowrap tw-max-w-[17rem]', children: item.name }), 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 &&
2522
- (itemsResults.length > 0 || tagsResults.length > 0) && (jsx("hr", { className: 'tw-opacity-50' })), Array.from(geoResults).map((geo) => (jsxs("div", { className: 'tw-flex tw-flex-row hover:tw-font-bold tw-cursor-pointer', onClick: () => {
2539
+ } })) : (jsx("div", { className: 'tw:w-5' })), jsxs("div", { children: [jsx("div", { className: 'tw:text-sm tw:overflow-hidden tw:text-ellipsis tw:whitespace-nowrap tw:max-w-[17rem]', children: item.name }), 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 &&
2540
+ (itemsResults.length > 0 || tagsResults.length > 0) && (jsx("hr", { className: 'tw:opacity-50' })), Array.from(geoResults).map((geo) => (jsxs("div", { className: 'tw:flex tw:flex-row tw:hover:font-bold tw:cursor-pointer', onClick: () => {
2523
2541
  searchInput.current?.blur();
2524
2542
  marker(new LatLng(geo.geometry.coordinates[1], geo.geometry.coordinates[0]), {
2525
2543
  icon: MarkerIconFactory('circle', '#777', 'RGBA(35, 31, 32, 0.2)', 'point'),
2526
2544
  })
2527
2545
  .addTo(map)
2528
- .bindPopup(`<h3 class="tw-text-base tw-font-bold">${geo?.properties.name ? geo?.properties.name : value}<h3>${capitalizeFirstLetter(geo?.properties?.osm_value)}`)
2546
+ .bindPopup(`<h3 class="tw:text-base tw:font-bold">${geo?.properties.name ? geo?.properties.name : value}<h3>${capitalizeFirstLetter(geo?.properties?.osm_value)}`)
2529
2547
  .openPopup()
2530
2548
  .addEventListener('popupclose', (e) => {
2531
2549
  // eslint-disable-next-line no-console
@@ -2536,26 +2554,26 @@ const SearchControl = () => {
2536
2554
  else
2537
2555
  map.setView(new LatLng(geo.geometry.coordinates[1], geo.geometry.coordinates[0]), 15, { duration: 1 });
2538
2556
  hide();
2539
- }, children: [jsx(ForwardRef$b, { className: 'tw-text-current tw-mr-2 tw-mt-0 tw-w-5' }), jsxs("div", { children: [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 }), 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 &&
2557
+ }, children: [jsx(ForwardRef$b, { className: 'tw:text-current tw:mr-2 tw:mt-0 tw:w-5' }), jsxs("div", { children: [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 }), 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 &&
2540
2558
  geo?.properties?.osm_value !== 'yes' &&
2541
2559
  geo?.properties?.osm_value !== 'primary' &&
2542
2560
  geo?.properties?.osm_value !== 'path' &&
2543
2561
  geo?.properties?.osm_value !== 'secondary' &&
2544
2562
  geo?.properties?.osm_value !== 'residential' &&
2545
2563
  geo?.properties?.osm_value !== 'unclassified' &&
2546
- `${capitalizeFirstLetter(geo?.properties?.osm_value)}, `, ' ', geo.properties.state && `${geo.properties.state}, `, ' ', geo.properties.country && geo.properties.country] })] })] }, Math.random()))), isGeoCoordinate(value) && (jsxs("div", { className: 'tw-flex tw-flex-row hover:tw-font-bold tw-cursor-pointer', onClick: () => {
2564
+ `${capitalizeFirstLetter(geo?.properties?.osm_value)}, `, ' ', geo.properties.state && `${geo.properties.state}, `, ' ', geo.properties.country && geo.properties.country] })] })] }, Math.random()))), isGeoCoordinate(value) && (jsxs("div", { className: 'tw:flex tw:flex-row tw:hover:font-bold tw:cursor-pointer', onClick: () => {
2547
2565
  marker(new LatLng(extractCoordinates(value)[0], extractCoordinates(value)[1]), {
2548
2566
  icon: MarkerIconFactory('circle', '#777', 'RGBA(35, 31, 32, 0.2)', 'point'),
2549
2567
  })
2550
2568
  .addTo(map)
2551
- .bindPopup(`<h3 class="tw-text-base tw-font-bold">${extractCoordinates(value)[0]}, ${extractCoordinates(value)[1]}</h3>`)
2569
+ .bindPopup(`<h3 class="tw:text-base tw:font-bold">${extractCoordinates(value)[0]}, ${extractCoordinates(value)[1]}</h3>`)
2552
2570
  .openPopup()
2553
2571
  .addEventListener('popupclose', (e) => {
2554
2572
  // eslint-disable-next-line no-console
2555
2573
  console.log(e.target.remove());
2556
2574
  });
2557
2575
  map.setView(new LatLng(extractCoordinates(value)[0], extractCoordinates(value)[1]), 15, { duration: 1 });
2558
- }, children: [jsx(ForwardRef$c, { className: 'tw-text-current tw-mr-2 tw-mt-0 tw-w-4' }), jsxs("div", { children: [jsx("div", { className: 'tw-text-sm tw-overflow-hidden tw-text-ellipsis tw-whitespace-nowrap tw-max-w-[17rem]', children: value }), jsx("div", { className: 'tw-text-xs tw-overflow-hidden tw-text-ellipsis tw-whitespace-nowrap tw-max-w-[17rem]', children: 'Coordiante' })] })] }))] }))] })) }));
2576
+ }, children: [jsx(ForwardRef$c, { className: 'tw:text-current tw:mr-2 tw:mt-0 tw:w-4' }), jsxs("div", { children: [jsx("div", { className: 'tw:text-sm tw:overflow-hidden tw:text-ellipsis tw:whitespace-nowrap tw:max-w-[17rem]', children: value }), jsx("div", { className: 'tw:text-xs tw:overflow-hidden tw:text-ellipsis tw:whitespace-nowrap tw:max-w-[17rem]', children: 'Coordiante' })] })] }))] }))] })) }));
2559
2577
  };
2560
2578
  function isGeoCoordinate(input) {
2561
2579
  const geokoordinatenRegex =
@@ -2581,7 +2599,7 @@ function capitalizeFirstLetter(string) {
2581
2599
  const TagsControl = () => {
2582
2600
  const filterTags = useFilterTags();
2583
2601
  const removeFilterTag = useRemoveFilterTag();
2584
- return (jsx("div", { className: 'tw-flex tw-flex-wrap tw-mt-4 tw-w-[calc(100vw-2rem)] tw-max-w-xs', children: filterTags.map((tag) => (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: [jsx("div", { className: 'tw-card-actions tw-justify-end', children: 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" }) }), jsxs("b", { children: ["#", decodeTag(tag.name)] })] }, tag.id))) }));
2602
+ return (jsx("div", { className: 'tw:flex tw:flex-wrap tw:mt-4 tw:w-[calc(100vw-2rem)] tw:max-w-xs', children: filterTags.map((tag) => (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: [jsx("div", { className: 'tw:card-actions tw:justify-end', children: 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" }) }), jsxs("b", { children: ["#", decodeTag(tag.name)] })] }, tag.id))) }));
2585
2603
  };
2586
2604
 
2587
2605
  const urlRegex =
@@ -2643,19 +2661,19 @@ const TextView = ({ item, itemId, text, truncate = false, rawText, itemTextField
2643
2661
  return `[${match}](${match})`;
2644
2662
  });
2645
2663
  }
2646
- const CustomH1 = ({ children }) => jsx("h1", { className: 'tw-text-xl tw-font-bold', children: children });
2647
- const CustomH2 = ({ children }) => jsx("h2", { className: 'tw-text-lg tw-font-bold', children: children });
2648
- const CustomH3 = ({ children }) => jsx("h3", { className: 'tw-text-base tw-font-bold', children: children });
2649
- const CustomH4 = ({ children }) => jsx("h4", { className: 'tw-text-base tw-font-bold', children: children });
2650
- const CustomH5 = ({ children }) => jsx("h5", { className: 'tw-text-sm tw-font-bold', children: children });
2651
- const CustomH6 = ({ children }) => jsx("h6", { className: 'tw-text-sm tw-font-bold', children: children });
2652
- const CustomParagraph = ({ children }) => jsx("p", { className: '!tw-my-2', children: children });
2653
- const CustomUnorderdList = ({ children }) => (jsx("ul", { className: 'tw-list-disc tw-list-inside', children: children }));
2654
- const CustomOrderdList = ({ children }) => (jsx("ol", { className: 'tw-list-decimal tw-list-inside', children: children }));
2655
- const CustomHorizontalRow = ({ children }) => jsx("hr", { className: 'tw-border-current', children: children });
2664
+ const CustomH1 = ({ children }) => jsx("h1", { className: 'tw:text-xl tw:font-bold', children: children });
2665
+ const CustomH2 = ({ children }) => jsx("h2", { className: 'tw:text-lg tw:font-bold', children: children });
2666
+ const CustomH3 = ({ children }) => jsx("h3", { className: 'tw:text-base tw:font-bold', children: children });
2667
+ const CustomH4 = ({ children }) => jsx("h4", { className: 'tw:text-base tw:font-bold', children: children });
2668
+ const CustomH5 = ({ children }) => jsx("h5", { className: 'tw:text-sm tw:font-bold', children: children });
2669
+ const CustomH6 = ({ children }) => jsx("h6", { className: 'tw:text-sm tw:font-bold', children: children });
2670
+ const CustomParagraph = ({ children }) => jsx("p", { className: 'tw:my-2!', children: children });
2671
+ const CustomUnorderdList = ({ children }) => (jsx("ul", { className: 'tw:list-disc tw:list-inside', children: children }));
2672
+ const CustomOrderdList = ({ children }) => (jsx("ol", { className: 'tw:list-decimal tw:list-inside', children: children }));
2673
+ const CustomHorizontalRow = ({ children }) => jsx("hr", { className: 'tw:border-current', children: children });
2656
2674
  // eslint-disable-next-line react/prop-types
2657
- const CustomImage = ({ alt, src, title }) => (jsx("img", { className: 'tw-max-w-full tw-rounded tw-shadow', src: src, alt: alt, title: title }));
2658
- const CustomExternalLink = ({ href, children }) => (jsxs("a", { className: 'tw-font-bold tw-underline', href: href, target: '_blank', rel: 'noreferrer', children: [' ', children] }));
2675
+ const CustomImage = ({ alt, src, title }) => (jsx("img", { className: 'tw:max-w-full tw:rounded tw:shadow', src: src, alt: alt, title: title }));
2676
+ const CustomExternalLink = ({ href, children }) => (jsxs("a", { className: 'tw:font-bold tw:underline', href: href, target: '_blank', rel: 'noreferrer', children: [' ', children] }));
2659
2677
  const CustomHashTagLink = ({ children, tag, itemId, }) => {
2660
2678
  return (jsx("a", { style: { color: tag ? tag.color : '#faa', fontWeight: 'bold', cursor: 'pointer' }, onClick: (e) => {
2661
2679
  e.stopPropagation();
@@ -2663,8 +2681,8 @@ const TextView = ({ item, itemId, text, truncate = false, rawText, itemTextField
2663
2681
  }, children: decodeTag(children) }, tag ? tag.name + itemId : itemId));
2664
2682
  };
2665
2683
  // eslint-disable-next-line react/display-name
2666
- const MemoizedVideoEmbed = memo(({ url }) => (jsx("iframe", { className: 'tw-w-full', src: url, allow: 'fullscreen; picture-in-picture', allowFullScreen: true })));
2667
- return (jsx(Markdown, { className: 'tw-text-map tw-leading-map tw-text-sm', remarkPlugins: [remarkBreaks], components: {
2684
+ const MemoizedVideoEmbed = memo(({ url }) => (jsx("iframe", { className: 'tw:w-full', src: url, allow: 'fullscreen; picture-in-picture', allowFullScreen: true })));
2685
+ return (jsx(Markdown, { className: 'tw:text-map tw:leading-map tw:text-sm', remarkPlugins: [remarkBreaks], components: {
2668
2686
  p: CustomParagraph,
2669
2687
  a: ({ href, children }) => {
2670
2688
  const isYouTubeVideo = href?.startsWith('https://www.youtube.com/watch?v=');
@@ -2736,18 +2754,19 @@ function truncateText(text, limit) {
2736
2754
 
2737
2755
  /* eslint-disable @typescript-eslint/no-unsafe-call */
2738
2756
  const SelectPosition = ({ setSelectNewItemPosition }) => {
2739
- return (jsxs("div", { className: 'tw-animate-pulseGrow tw-button tw-z-1000 tw-absolute tw-right-5 tw-top-4 tw-drop-shadow-md', children: [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: () => {
2757
+ return (jsxs("div", { className: 'tw:animate-pulseGrow tw:button tw:z-1000 tw:absolute tw:right-5 tw:top-4 tw:drop-shadow-md', children: [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: () => {
2740
2758
  setSelectNewItemPosition(null);
2741
- }, children: jsx("p", { className: 'tw-text-center ', children: "\u2715" }) }), jsx("div", { className: 'tw-alert tw-bg-base-100 tw-text-base-content', children: jsx("div", { children: jsx("span", { className: 'tw-text-lg', children: "Select position on the map!" }) }) })] }));
2759
+ }, children: jsx("p", { className: 'tw:text-center ', children: "\u2715" }) }), jsx("div", { className: 'tw:alert tw:bg-base-100 tw:text-base-content', children: jsx("div", { children: jsx("span", { className: 'tw:text-lg', children: "Select position on the map!" }) }) })] }));
2742
2760
  };
2743
2761
 
2744
- function UtopiaMapInner({ children, geo, showFilterControl = false, showGratitudeControl = false, showLayerControl = true, donationWidget, }) {
2762
+ function UtopiaMapInner({ children, geo, showFilterControl = false, showGratitudeControl = false, showLayerControl = true, showThemeControl = false, defaultTheme = '', donationWidget, }) {
2745
2763
  const selectNewItemPosition = useSelectPosition();
2746
2764
  const setSelectNewItemPosition = useSetSelectPosition();
2747
2765
  const setClusterRef = useSetClusterRef();
2748
2766
  const clusterRef = useClusterRef();
2749
2767
  const setMapClicked = useSetMapClicked();
2750
2768
  const [itemFormPopup, setItemFormPopup] = useState(null);
2769
+ useTheme(defaultTheme);
2751
2770
  const layers = useLayers();
2752
2771
  const addVisibleLayer = useAddVisibleLayer();
2753
2772
  const leafletRefs = useLeafletRefs();
@@ -2757,12 +2776,16 @@ function UtopiaMapInner({ children, geo, showFilterControl = false, showGratitud
2757
2776
  layers.forEach((layer) => addVisibleLayer(layer));
2758
2777
  // eslint-disable-next-line react-hooks/exhaustive-deps
2759
2778
  }, [layers]);
2779
+ const setAppState = useSetAppState();
2780
+ useEffect(() => {
2781
+ setAppState({ showThemeControl });
2782
+ }, [setAppState, showThemeControl]);
2760
2783
  const init = useRef(false);
2761
2784
  useEffect(() => {
2762
2785
  if (!init.current) {
2763
2786
  donationWidget &&
2764
2787
  setTimeout(() => {
2765
- toast(jsxs(Fragment, { children: [jsx(TextView, { itemId: '', rawText: '## Do you like this Map?' }), jsxs("div", { children: [jsx(TextView, { itemId: '', rawText: 'Support us building free opensource maps for communities and help us grow 🌱☀️' }), jsx("a", { href: 'https://opencollective.com/utopia-project', children: jsx("div", { className: 'tw-btn tw-btn-sm tw-float-right tw-btn-primary', children: "Donate" }) })] })] }), { autoClose: false });
2788
+ toast(jsxs(Fragment, { children: [jsx(TextView, { itemId: '', rawText: '## Do you like this Map?' }), jsxs("div", { children: [jsx(TextView, { itemId: '', rawText: 'Support us building free opensource maps for communities and help us grow 🌱☀️' }), jsx("a", { href: 'https://opencollective.com/utopia-project', children: jsx("div", { className: 'tw:btn tw:btn-sm tw:float-right tw:btn-primary', children: "Donate" }) })] })] }), { autoClose: false });
2766
2789
  }, 600000);
2767
2790
  init.current = true;
2768
2791
  }
@@ -2846,7 +2869,7 @@ function UtopiaMapInner({ children, geo, showFilterControl = false, showGratitud
2846
2869
  layer.bindPopup(feature.properties.name);
2847
2870
  }
2848
2871
  };
2849
- return (jsxs("div", { className: `tw-h-full ${selectNewItemPosition != null ? 'crosshair-cursor-enabled' : ''}`, children: [jsx(Outlet, {}), jsxs(Control, { position: 'topLeft', zIndex: '1000', absolute: true, children: [jsx(SearchControl, {}), jsx(TagsControl, {})] }), jsxs(Control, { position: 'bottomLeft', zIndex: '999', absolute: true, children: [showFilterControl && jsx(FilterControl, {}), showLayerControl && jsx(LayerControl, {}), showGratitudeControl && jsx(GratitudeControl, {})] }), jsx(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' }), jsx(MarkerClusterGroup, { ref: (r) => setClusterRef(r), showCoverageOnHover: true, chunkedLoading: true, maxClusterRadius: 50, removeOutsideVisibleBounds: false, children: Children.toArray(children).map((child) => isValidElement(child)
2872
+ return (jsxs("div", { className: `tw:h-full ${selectNewItemPosition != null ? 'crosshair-cursor-enabled' : ''}`, children: [jsx(Outlet, {}), jsxs(Control, { position: 'topLeft', zIndex: '1000', absolute: true, children: [jsx(SearchControl, {}), jsx(TagsControl, {})] }), jsxs(Control, { position: 'bottomLeft', zIndex: '999', absolute: true, children: [showFilterControl && jsx(FilterControl, {}), showLayerControl && jsx(LayerControl, {}), showGratitudeControl && jsx(GratitudeControl, {})] }), jsx(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' }), jsx(MarkerClusterGroup, { ref: (r) => setClusterRef(r), showCoverageOnHover: true, chunkedLoading: true, maxClusterRadius: 50, removeOutsideVisibleBounds: false, children: Children.toArray(children).map((child) => isValidElement(child)
2850
2873
  ? cloneElement(child, { setItemFormPopup, itemFormPopup, clusterRef })
2851
2874
  : child) }), geo && (jsx(GeoJSON, { data: geo, onEachFeature: onEachFeature, eventHandlers: {
2852
2875
  click: (e) => {
@@ -2859,10 +2882,41 @@ function UtopiaMapInner({ children, geo, showFilterControl = false, showGratitud
2859
2882
  }
2860
2883
 
2861
2884
  /**
2885
+ * This component creates the map.
2886
+ * ```tsx
2887
+ * <UtopiaMap center={[50.6, 9.5]} zoom={5} height="100dvh" width="100dvw" />
2888
+ * ```
2889
+ * You can define its {@link Layer | `Layers`} as supcomponents.
2890
+ * ```tsx
2891
+ * <UtopiaMap center={[50.6, 15.5]} zoom={5} height="100dvh" width="100dvw">
2892
+ * <Layer
2893
+ * name="events"
2894
+ * markerIcon="calendar"
2895
+ * markerShape="square"
2896
+ * markerDefaultColor="#700"
2897
+ * data={events}
2898
+ * />
2899
+ * <Layer
2900
+ * name="places"
2901
+ * markerIcon="point"
2902
+ * markerShape="circle"
2903
+ * markerDefaultColor="#007"
2904
+ * data={places}
2905
+ * />
2906
+ * </UtopiaMap>
2907
+ * ```
2908
+ * You can also pass {@link Tags | `Tags`} or {@link Permissions | `Permissions`} as subcomponents.
2909
+ * ```tsx
2910
+ * <UtopiaMap center={[50.6, 15.5]} zoom={5} height="100dvh" width="100dvw">
2911
+ * ...
2912
+ * <Tags data={tags} />
2913
+ * <Permissions data={permissions} />
2914
+ * </UtopiaMap>
2915
+ * ```
2862
2916
  * @category Map
2863
2917
  */
2864
- function UtopiaMap({ height = '500px', width = '100%', center = [50.6, 9.5], zoom = 10, children, geo, showFilterControl = false, showGratitudeControl = false, showLayerControl = true, infoText, donationWidget, }) {
2865
- return (jsx(ContextWrapper, { children: jsx(MapContainer, { style: { height, width }, center: new LatLng(center[0], center[1]), zoom: zoom, zoomControl: false, maxZoom: 19, children: jsx(UtopiaMapInner, { geo: geo, showFilterControl: showFilterControl, showGratitudeControl: showGratitudeControl, showLayerControl: showLayerControl, infoText: infoText, donationWidget: donationWidget, children: children }) }) }));
2918
+ 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, }) {
2919
+ return (jsx(ContextWrapper, { children: jsx(MapContainer, { style: { height, width }, center: new LatLng(center[0], center[1]), zoom: zoom, zoomControl: false, maxZoom: 19, children: jsx(UtopiaMapInner, { geo: geo, showFilterControl: showFilterControl, showGratitudeControl: showGratitudeControl, showLayerControl: showLayerControl, donationWidget: donationWidget, showThemeControl: showThemeControl, defaultTheme: defaultTheme, children: children }) }) }));
2866
2920
  }
2867
2921
 
2868
2922
  const goldenRatioConjugate = 0.618033988749895;
@@ -2934,7 +2988,7 @@ function TextAreaInput({ labelTitle, dataField, labelStyle, containerStyle, inpu
2934
2988
  updateFormValue(newValue);
2935
2989
  }
2936
2990
  };
2937
- return (jsxs("div", { className: `tw-form-control tw-w-full ${containerStyle ?? ''}`, children: [labelTitle ? (jsx("label", { className: 'tw-label', children: jsx("span", { className: `tw-label-text tw-text-base-content ${labelStyle ?? ''}`, children: labelTitle }) })) : null, 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 })] }));
2991
+ return (jsxs("div", { className: `tw:form-control tw:w-full ${containerStyle ?? ''}`, children: [labelTitle ? (jsx("label", { className: 'tw:label', children: jsx("span", { className: `tw:label-text tw:text-base-content ${labelStyle ?? ''}`, children: labelTitle }) })) : null, 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 })] }));
2938
2992
  }
2939
2993
 
2940
2994
  /**
@@ -2952,7 +3006,7 @@ function TextInput({ labelTitle, labelStyle, type, dataField, containerStyle, in
2952
3006
  updateFormValue(newValue);
2953
3007
  }
2954
3008
  };
2955
- return (jsxs("div", { className: `tw-form-control ${containerStyle ?? ''}`, children: [labelTitle ? (jsx("label", { className: 'tw-label', children: jsx("span", { className: `tw-label-text tw-text-base-content ${labelStyle ?? ''}`, children: labelTitle }) })) : null, 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 ?? ''}` })] }));
3009
+ return (jsxs("div", { className: `tw:form-control ${containerStyle ?? ''}`, children: [labelTitle ? (jsx("label", { className: 'tw:label', children: jsx("span", { className: `tw:label-text tw:text-base-content ${labelStyle ?? ''}`, children: labelTitle }) })) : null, 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 ?? ''}` })] }));
2956
3010
  }
2957
3011
 
2958
3012
  function ItemFormPopup(props) {
@@ -3065,15 +3119,15 @@ function ItemFormPopup(props) {
3065
3119
  resetPopup();
3066
3120
  }, 100);
3067
3121
  },
3068
- }, position: props.position, children: jsxs("form", { ref: formRef, onReset: resetPopup, autoComplete: 'off', onSubmit: (e) => handleSubmit(e), children: [props.item ? (jsx("div", { className: 'tw-h-3' })) : (jsx("div", { className: 'tw-flex tw-justify-center', children: jsx("b", { className: 'tw-text-xl tw-text-center tw-font-bold', children: props.layer.menuText }) })), props.children ? (Children.toArray(props.children).map((child) => isValidElement(child)
3122
+ }, position: props.position, children: jsxs("form", { ref: formRef, onReset: resetPopup, autoComplete: 'off', onSubmit: (e) => handleSubmit(e), children: [props.item ? (jsx("div", { className: 'tw:h-3' })) : (jsx("div", { className: 'tw:flex tw:justify-center', children: jsx("b", { className: 'tw:text-xl tw:text-center tw:font-bold', children: props.layer.menuText }) })), props.children ? (Children.toArray(props.children).map((child) => isValidElement(child)
3069
3123
  ? cloneElement(child, {
3070
3124
  item: props.item,
3071
3125
  key: props.position.toString(),
3072
3126
  setPopupTitle,
3073
3127
  })
3074
- : '')) : (jsxs(Fragment, { children: [jsx(TextInput, { type: 'text', placeholder: 'Name', dataField: 'name', defaultValue: props.item ? props.item.name : '', inputStyle: '' }), jsx(TextAreaInput, { placeholder: 'Text', dataField: 'text', defaultValue: props.item?.text ?? '', inputStyle: 'tw-h-40 tw-mt-5' }, props.position.toString())] })), jsx("div", { className: 'tw-flex tw-justify-center', children: jsx("button", { className: spinner
3075
- ? 'tw-btn tw-btn-disabled tw-mt-5 tw-place-self-center'
3076
- : 'tw-btn tw-mt-5 tw-place-self-center', type: 'submit', children: spinner ? jsx("span", { className: 'tw-loading tw-loading-spinner' }) : 'Save' }) })] }) }));
3128
+ : '')) : (jsxs(Fragment, { children: [jsx(TextInput, { type: 'text', placeholder: 'Name', dataField: 'name', defaultValue: props.item ? props.item.name : '', inputStyle: '' }), jsx(TextAreaInput, { placeholder: 'Text', dataField: 'text', defaultValue: props.item?.text ?? '', inputStyle: 'tw:h-40 tw:mt-5' }, props.position.toString())] })), jsx("div", { className: 'tw:flex tw:justify-center', children: jsx("button", { className: spinner
3129
+ ? 'tw:btn tw:btn-disabled tw:mt-5 tw:place-self-center'
3130
+ : 'tw:btn tw:mt-5 tw:place-self-center', type: 'submit', children: spinner ? jsx("span", { className: 'tw:loading tw:loading-spinner' }) : 'Save' }) })] }) }));
3077
3131
  }
3078
3132
 
3079
3133
  // in miliseconds
@@ -3173,7 +3227,7 @@ function TrashIcon({
3173
3227
  }
3174
3228
  const ForwardRef$7 = /*#__PURE__*/ React.forwardRef(TrashIcon);
3175
3229
 
3176
- var TargetDotSVG = 'data:image/svg+xml;base64,PHN2ZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPSdjdXJyZW50Q29sb3InCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPSdjdXJyZW50Q29sb3InCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VXaWR0aD0nMCcKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9JzAgMCA1MTIgNTEyJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPSd0dy13LTUgdHctaC01JwogICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJwogICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9J00yNTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMlY0Mi40YzkzLjcgMTMuOSAxNjcuNyA4OCAxODEuNiAxODEuNkg0ODBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJINDY5LjZjLTEzLjkgOTMuNy04OCAxNjcuNy0xODEuNiAxODEuNlY0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWNDY5LjZDMTMwLjMgNDU1LjcgNTYuMyAzODEuNyA0Mi40IDI4OEgzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMkg0Mi40QzU2LjMgMTMwLjMgMTMwLjMgNTYuMyAyMjQgNDIuNFYzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMTA3LjQgMjg4YzEyLjUgNTguMyA1OC40IDEwNC4xIDExNi42IDExNi42VjM4NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMydjIwLjZjNTguMy0xMi41IDEwNC4xLTU4LjQgMTE2LjYtMTE2LjZIMzg0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyaDIwLjZDMzkyLjEgMTY1LjcgMzQ2LjMgMTE5LjkgMjg4IDEwNy40VjEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYxMDcuNEMxNjUuNyAxMTkuOSAxMTkuOSAxNjUuNyAxMDcuNCAyMjRIMTI4YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDEwNy40ek0yNTYgMjI0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHonPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4=';
3230
+ var TargetDotSVG = 'data:image/svg+xml;base64,PHN2ZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPSdjdXJyZW50Q29sb3InCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPSdjdXJyZW50Q29sb3InCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VXaWR0aD0nMCcKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9JzAgMCA1MTIgNTEyJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPSd3LTUgaC01JwogICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJwogICAgICAgICAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9J00yNTYgMGMxNy43IDAgMzIgMTQuMyAzMiAzMlY0Mi40YzkzLjcgMTMuOSAxNjcuNyA4OCAxODEuNiAxODEuNkg0ODBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzJINDY5LjZjLTEzLjkgOTMuNy04OCAxNjcuNy0xODEuNiAxODEuNlY0ODBjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJWNDY5LjZDMTMwLjMgNDU1LjcgNTYuMyAzODEuNyA0Mi40IDI4OEgzMmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMkg0Mi40QzU2LjMgMTMwLjMgMTMwLjMgNTYuMyAyMjQgNDIuNFYzMmMwLTE3LjcgMTQuMy0zMiAzMi0zMnpNMTA3LjQgMjg4YzEyLjUgNTguMyA1OC40IDEwNC4xIDExNi42IDExNi42VjM4NGMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMydjIwLjZjNTguMy0xMi41IDEwNC4xLTU4LjQgMTE2LjYtMTE2LjZIMzg0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyaDIwLjZDMzkyLjEgMTY1LjcgMzQ2LjMgMTE5LjkgMjg4IDEwNy40VjEyOGMwIDE3LjctMTQuMyAzMi0zMiAzMnMtMzItMTQuMy0zMi0zMlYxMDcuNEMxNjUuNyAxMTkuOSAxMTkuOSAxNjUuNyAxMDcuNCAyMjRIMTI4YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMySDEwNy40ek0yNTYgMjI0YTMyIDMyIDAgMSAxIDAgNjQgMzIgMzIgMCAxIDEgMC02NHonPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4=';
3177
3231
 
3178
3232
  const isClickInsideRectangle = (e, element) => {
3179
3233
  const r = element.getBoundingClientRect();
@@ -3184,17 +3238,17 @@ const DialogModal = ({ title, isOpened, onClose, children, showCloseButton = tru
3184
3238
  useEffect(() => {
3185
3239
  if (isOpened) {
3186
3240
  ref.current?.showModal();
3187
- ref.current?.classList.remove('tw-hidden');
3241
+ ref.current?.classList.remove('tw:hidden');
3188
3242
  document.body.classList.add('modal-open'); // prevent bg scroll
3189
3243
  }
3190
3244
  else {
3191
3245
  ref.current?.close();
3192
- ref.current?.classList.add('tw-hidden');
3246
+ ref.current?.classList.add('tw:hidden');
3193
3247
  document.body.classList.remove('modal-open');
3194
3248
  }
3195
3249
  }, [isOpened]);
3196
3250
  if (isOpened) {
3197
- return (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: jsxs("div", { className: 'tw-card-body tw-p-2', children: [jsx("h2", { className: 'tw-text-2xl tw-font-semibold tw-mb-2 tw-text-center', children: title }), children, showCloseButton && (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" }))] }) }));
3251
+ return (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: jsxs("div", { className: 'card-body tw:p-2', children: [jsx("h2", { className: 'tw:text-2xl tw:font-semibold tw:mb-2 tw:text-center', children: title }), children, showCloseButton && (jsx("button", { className: 'btn btn-sm btn-circle btn-ghost tw:absolute tw:right-2 tw:top-2', onClick: onClose, children: "\u2715" }))] }) }));
3198
3252
  }
3199
3253
  else
3200
3254
  return jsx(Fragment, {});
@@ -3206,8 +3260,7 @@ function HeaderView({ item, api, editCallback, deleteCallback, setPositionCallba
3206
3260
  const navigate = useNavigate();
3207
3261
  const appState = useAppState();
3208
3262
  const [imageLoaded, setImageLoaded] = useState(false);
3209
- const avatar = item.image &&
3210
- appState.assetsApi.url + item.image + `${big ? '?width=160&heigth=160' : '?width=80&heigth=80'}`;
3263
+ const avatar = item.image && appState.assetsApi.url + item.image + '?width=160&heigth=160';
3211
3264
  const title = item.name;
3212
3265
  const subtitle = item.subname;
3213
3266
  const [address] = useState('');
@@ -3216,21 +3269,21 @@ function HeaderView({ item, api, editCallback, deleteCallback, setPositionCallba
3216
3269
  setModalOpen(true);
3217
3270
  event.stopPropagation();
3218
3271
  };
3219
- return (jsxs(Fragment, { children: [jsxs("div", { className: 'tw-flex tw-flex-row', children: [jsx("div", { className: 'tw-grow tw-max-w-[calc(100%-60px)] }', children: jsxs("div", { className: 'flex items-center', children: [avatar && (jsx("div", { className: 'tw-avatar', children: jsxs("div", { className: `${big ? 'tw-w-20' : 'tw-w-10'} tw-inline tw-items-center tw-justify-center overflow-hidden`, children: [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 && (jsx("div", { className: 'tw-w-full tw-h-full tw-bg-gray-200 tw-rounded-full' }))] }) })), jsxs("div", { className: `${avatar ? 'tw-ml-2' : ''} tw-overflow-hidden`, children: [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 && (jsx("div", { className: `tw-text-xs tw-text-gray-500 ${truncateSubname && 'tw-truncate'}`, children: address })), subtitle && !hideSubname && (jsx("div", { className: `tw-text-xs tw-text-gray-500 ${truncateSubname && 'tw-truncate'}`, children: subtitle }))] })] }) }), jsx("div", { onClick: (e) => e.stopPropagation(), className: `${big ? 'tw-mt-5' : 'tw-mt-1'}`, children: (api?.deleteItem || item.layer?.api?.updateItem) &&
3272
+ return (jsxs(Fragment, { children: [jsxs("div", { className: 'tw:flex tw:flex-row', children: [jsx("div", { className: 'tw:grow tw:max-w-[calc(100%-60px)] }', children: jsxs("div", { className: 'flex items-center', children: [avatar && (jsx("div", { className: 'tw:avatar', children: jsxs("div", { className: `${big ? 'tw:w-20' : 'tw:w-10'} tw:inline tw:items-center tw:justify-center overflow-hidden`, children: [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 && (jsx("div", { className: 'tw:w-full tw:h-full tw:bg-gray-200 tw:rounded-full' }))] }) })), jsxs("div", { className: `${avatar ? 'tw:ml-2' : ''} tw:overflow-hidden`, children: [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 && (jsx("div", { className: `tw:text-xs tw:text-gray-500 ${truncateSubname && 'tw:truncate'}`, children: address })), subtitle && !hideSubname && (jsx("div", { className: `tw:text-xs tw:opacity-50 ${truncateSubname && 'tw:truncate'}`, children: subtitle }))] })] }) }), jsx("div", { onClick: (e) => e.stopPropagation(), className: `${big ? 'tw:mt-5' : 'tw:mt-1'}`, children: (api?.deleteItem || item.layer?.api?.updateItem) &&
3220
3273
  (hasUserPermission(api?.collectionName, 'delete', item) ||
3221
3274
  hasUserPermission(api?.collectionName, 'update', item)) &&
3222
- !hideMenu && (jsxs("div", { className: 'tw-dropdown tw-dropdown-bottom', children: [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: jsx(ForwardRef$9, { className: 'tw-h-5 tw-w-5' }) }), 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 &&
3275
+ !hideMenu && (jsxs("div", { className: 'tw:dropdown tw:dropdown-bottom', children: [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: jsx(ForwardRef$9, { className: 'tw:h-5 tw:w-5' }) }), 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 &&
3223
3276
  hasUserPermission(api.collectionName, 'update', item) &&
3224
- editCallback && (jsx("li", { children: jsx("a", { className: '!tw-text-base-content tw-cursor-pointer', onClick: (e) => item.layer?.customEditLink
3277
+ editCallback && (jsx("li", { children: jsx("a", { className: 'tw:text-base-content! tw:cursor-pointer', onClick: (e) => item.layer?.customEditLink
3225
3278
  ? navigate(`${item.layer.customEditLink}${item.layer.customEditParameter ? `/${item.id}${params && '?' + params}` : ''} `)
3226
- : editCallback(e), children: jsx(ForwardRef$8, { className: 'tw-h-5 tw-w-5' }) }) })), api?.updateItem &&
3279
+ : editCallback(e), children: jsx(ForwardRef$8, { className: 'tw:h-5 tw:w-5' }) }) })), api?.updateItem &&
3227
3280
  hasUserPermission(api.collectionName, 'update', item) &&
3228
- setPositionCallback && (jsx("li", { children: jsx("a", { className: '!tw-text-base-content tw-cursor-pointer', onClick: setPositionCallback, children: jsx(SVG, { src: TargetDotSVG, className: 'tw-w-5 tw-h-5' }) }) })), api?.deleteItem &&
3281
+ setPositionCallback && (jsx("li", { children: jsx("a", { className: 'tw:text-base-content! tw:cursor-pointer', onClick: setPositionCallback, children: jsx(SVG, { src: TargetDotSVG, className: 'tw:w-5 tw:h-5' }) }) })), api?.deleteItem &&
3229
3282
  hasUserPermission(api.collectionName, 'delete', item) &&
3230
- deleteCallback && (jsx("li", { children: jsx("a", { className: 'tw-cursor-pointer !tw-text-error', onClick: openDeleteModal, children: loading ? (jsx("span", { className: 'tw-loading tw-loading-spinner tw-loading-sm' })) : (jsx(ForwardRef$7, { className: 'tw-h-5 tw-w-5' })) }) }))] })] })) })] }), jsx(DialogModal, { isOpened: modalOpen, title: 'Are you sure?', showCloseButton: false, onClose: () => setModalOpen(false), children: jsxs("div", { onClick: (e) => e.stopPropagation(), children: [jsxs("span", { children: ["Do you want to delete ", jsx("b", { children: item.name }), "?"] }), jsx("div", { className: 'tw-grid', children: jsxs("div", { className: 'tw-flex tw-justify-between', children: [jsx("label", { className: 'tw-btn tw-mt-4 tw-btn-error', onClick: (e) => {
3283
+ deleteCallback && (jsx("li", { children: jsx("a", { className: 'tw:cursor-pointer tw:text-error!', onClick: openDeleteModal, children: loading ? (jsx("span", { className: 'tw:loading tw:loading-spinner tw:loading-sm' })) : (jsx(ForwardRef$7, { className: 'tw:h-5 tw:w-5' })) }) }))] })] })) })] }), jsx(DialogModal, { isOpened: modalOpen, title: 'Are you sure?', showCloseButton: false, onClose: () => setModalOpen(false), children: jsxs("div", { onClick: (e) => e.stopPropagation(), children: [jsxs("span", { children: ["Do you want to delete ", jsx("b", { children: item.name }), "?"] }), jsx("div", { className: 'tw:grid', children: jsxs("div", { className: 'tw:flex tw:justify-between', children: [jsx("label", { className: 'tw:btn tw:mt-4 tw:btn-error', onClick: (e) => {
3231
3284
  deleteCallback(e);
3232
3285
  setModalOpen(false);
3233
- }, children: "Yes" }), jsx("label", { className: 'tw-btn tw-mt-4', onClick: () => setModalOpen(false), children: "No" })] }) })] }) })] }));
3286
+ }, children: "Yes" }), jsx("label", { className: 'tw:btn tw:mt-4', onClick: () => setModalOpen(false), children: "No" })] }) })] }) })] }));
3234
3287
  }
3235
3288
 
3236
3289
  // eslint-disable-next-line react/display-name
@@ -3280,13 +3333,13 @@ const ItemViewPopup = forwardRef((props, ref) => {
3280
3333
  window.history.pushState({}, '', '/' + `${params ? `?${params}` : ''}`);
3281
3334
  navigate('/');
3282
3335
  };
3283
- return (jsx(Popup, { ref: ref, maxHeight: 377, minWidth: 275, maxWidth: 275, autoPanPadding: [20, 80], children: jsxs("div", { className: 'tw-bg-base-100 tw-text-base-content', children: [jsx(HeaderView, { api: props.item.layer?.api, item: props.item, editCallback: handleEdit, deleteCallback: handleDelete, setPositionCallback: () => {
3336
+ return (jsx(Popup, { ref: ref, maxHeight: 377, minWidth: 275, maxWidth: 275, autoPanPadding: [20, 80], children: jsxs("div", { className: 'tw:bg-base-100 tw:text-base-content', children: [jsx(HeaderView, { api: props.item.layer?.api, item: props.item, editCallback: handleEdit, deleteCallback: handleDelete, setPositionCallback: () => {
3284
3337
  map.closePopup();
3285
3338
  setSelectPosition(props.item);
3286
3339
  navigate('/');
3287
- }, loading: loading }), jsx("div", { className: 'tw-overflow-y-auto tw-overflow-x-hidden tw-max-h-64 fade', children: props.children ? (Children.toArray(props.children).map((child) => isValidElement(child)
3340
+ }, loading: loading }), jsx("div", { className: 'tw:overflow-y-auto tw:overflow-x-hidden tw:max-h-64 fade', children: props.children ? (Children.toArray(props.children).map((child) => isValidElement(child)
3288
3341
  ? cloneElement(child, { item: props.item })
3289
- : '')) : (jsx(TextView, { text: props.item.text, itemId: props.item.id })) }), jsxs("div", { className: 'tw-flex -tw-mb-1 tw-flex-row tw-mr-2 tw-mt-1', children: [infoExpanded ? (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)}` })) : (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" })), jsx("div", { className: 'tw-grow' })] })] }) }));
3342
+ : '')) : (jsx(TextView, { text: props.item.text, itemId: props.item.id })) }), jsxs("div", { className: 'tw:flex tw:-mb-1 tw:flex-row tw:mr-2 tw:mt-1', children: [infoExpanded ? (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)}` })) : (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" })), jsx("div", { className: 'tw:grow' })] })] }) }));
3290
3343
  });
3291
3344
 
3292
3345
  /**
@@ -3464,6 +3517,28 @@ function isComponentWithType(node) {
3464
3517
  }
3465
3518
 
3466
3519
  /**
3520
+ * This Components injects Tags comming from an {@link ItemsApi | `API`}
3521
+ * ```tsx
3522
+ * <Tags api={tagsApi} />
3523
+ * ```
3524
+ * or from on {@link Tag| `Array`}
3525
+ * ```tsx
3526
+ * <Tags data={tags} />
3527
+ * ```
3528
+ * Can be child of {@link AppShell | `AppShell`}
3529
+ * ```tsx
3530
+ * <AppShell>
3531
+ * ...
3532
+ * <Tags api={tagsApi} />
3533
+ * </AppShell>
3534
+ * ```
3535
+ * Or child of {@link UtopiaMap | `UtopiaMap`}
3536
+ * ```tsx
3537
+ * <UtopiaMap>
3538
+ * ...
3539
+ * <Tags api={tagsApi} />
3540
+ * </UtopiaMap>
3541
+ * ```
3467
3542
  * @category Map
3468
3543
  */
3469
3544
  function Tags({ data, api }) {
@@ -3499,9 +3574,31 @@ function Tags({ data, api }) {
3499
3574
  }
3500
3575
 
3501
3576
  /**
3577
+ * This Components injects Permissions comming from an {@link ItemsApi | `API`}
3578
+ * ```tsx
3579
+ * <Permissions api={itemsApiInstance} adminRole="8141dee8-8e10-48d0-baf1-680aea271298" />
3580
+ * ```
3581
+ * or from on {@link Permission| `Array`}
3582
+ * ```tsx
3583
+ * <Permissions data={permissions} adminRole="8141dee8-8e10-48d0-baf1-680aea271298" />
3584
+ * ```
3585
+ * Can be child of {@link AppShell | `AppShell`}
3586
+ * ```tsx
3587
+ * <AppShell>
3588
+ * ...
3589
+ * <Permissions api={itemsApiInstance} adminRole="8141dee8-8e10-48d0-baf1-680aea271298" />
3590
+ * </AppShell>
3591
+ * ```
3592
+ * Or child of {@link UtopiaMap | `UtopiaMap`}
3593
+ * ```tsx
3594
+ * <UtopiaMap>
3595
+ * ...
3596
+ * <Permissions api={itemsApiInstance} adminRole="8141dee8-8e10-48d0-baf1-680aea271298" />
3597
+ * </UtopiaMap>
3598
+ * ```
3502
3599
  * @category Map
3503
3600
  */
3504
- function Permissions({ data, api, adminRole }) {
3601
+ function Permissions({ data, api, adminRole, }) {
3505
3602
  const setPermissionData = useSetPermissionData();
3506
3603
  const setPermissionApi = useSetPermissionApi();
3507
3604
  const setAdminRole = useSetAdminRole();
@@ -3552,21 +3649,21 @@ const PopupTextAreaInput = ({ dataField, placeholder, style, item, }) => {
3552
3649
  * @category Map
3553
3650
  */
3554
3651
  const PopupStartEndInput = ({ item, showLabels = true, updateStartValue, updateEndValue, }) => {
3555
- return (jsxs("div", { className: 'tw-grid tw-grid-cols-2 tw-gap-2', children: [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 }), 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 })] }));
3652
+ return (jsxs("div", { className: 'tw:grid tw:grid-cols-2 tw:gap-2', children: [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 }), 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 })] }));
3556
3653
  };
3557
3654
 
3558
3655
  /**
3559
3656
  * @category Map
3560
3657
  */
3561
3658
  const PopupTextInput = ({ dataField, placeholder, style, item, }) => {
3562
- return (jsx(TextInput, { defaultValue: item?.name ? item.name : '', dataField: dataField, placeholder: placeholder, inputStyle: style, type: 'text', containerStyle: 'tw-mt-4' }));
3659
+ return (jsx(TextInput, { defaultValue: item?.name ? item.name : '', dataField: dataField, placeholder: placeholder, inputStyle: style, type: 'text', containerStyle: 'tw:mt-4' }));
3563
3660
  };
3564
3661
 
3565
3662
  /**
3566
3663
  * @category Map
3567
3664
  */
3568
3665
  const PopupCheckboxInput = ({ dataField, label, item, }) => {
3569
- return (jsxs("label", { htmlFor: item?.id, className: 'tw-label tw-justify-normal tw-pt-1 tw-pb-1', children: [jsx("input", { id: item?.id, type: 'checkbox', name: dataField, className: 'tw-checkbox tw-checkbox-xs tw-checkbox-success', checked: item?.public_edit }), jsx("span", { className: 'tw-text-sm tw-label-text tw-mx-2 tw-cursor-pointer', children: label })] }));
3666
+ return (jsxs("label", { htmlFor: item?.id, className: 'tw:label tw:justify-normal tw:pt-1 tw:pb-1', children: [jsx("input", { id: item?.id, type: 'checkbox', name: dataField, className: 'tw:checkbox tw:checkbox-xs tw:checkbox-success', checked: item?.public_edit }), jsx("span", { className: 'tw:text-sm tw:label-text tw:mx-2 tw:cursor-pointer', children: label })] }));
3570
3667
  };
3571
3668
 
3572
3669
  function CalendarDaysIcon({
@@ -3598,7 +3695,7 @@ const ForwardRef$6 = /*#__PURE__*/ React.forwardRef(CalendarDaysIcon);
3598
3695
  * @category Map
3599
3696
  */
3600
3697
  const StartEndView = ({ item }) => {
3601
- return (jsxs("div", { className: 'tw-flex tw-flex-row tw-mb-4 tw-mt-1', children: [jsxs("div", { className: 'tw-basis-2/5 tw-flex tw-flex-row', children: [jsx(ForwardRef$6, { className: 'tw-h-4 tw-w-4 tw-mr-2' }), jsx("time", { className: 'tw-align-middle', dateTime: item && item.start ? item.start.substring(0, 10) : '', children: item && item.start ? new Date(item.start).toLocaleDateString() : '' })] }), jsx("div", { className: 'tw-basis-1/5 tw-place-content-center', children: jsx("span", { children: "-" }) }), jsxs("div", { className: 'tw-basis-2/5 tw-flex tw-flex-row', children: [jsx(ForwardRef$6, { className: 'tw-h-4 tw-w-4 tw-mr-2' }), jsx("time", { className: 'tw-align-middle', dateTime: item && item.end ? item.end.substring(0, 10) : '', children: item && item.end ? new Date(item.end).toLocaleDateString() : '' })] })] }));
3698
+ return (jsxs("div", { className: 'tw:flex tw:flex-row tw:mb-4 tw:mt-1', children: [jsxs("div", { className: 'tw:basis-2/5 tw:flex tw:flex-row', children: [jsx(ForwardRef$6, { className: 'tw:h-4 tw:w-4 tw:mr-2' }), jsx("time", { className: 'tw:align-middle', dateTime: item && item.start ? item.start.substring(0, 10) : '', children: item && item.start ? new Date(item.start).toLocaleDateString() : '' })] }), jsx("div", { className: 'tw:basis-1/5 tw:place-content-center', children: jsx("span", { children: "-" }) }), jsxs("div", { className: 'tw:basis-2/5 tw:flex tw:flex-row', children: [jsx(ForwardRef$6, { className: 'tw:h-4 tw:w-4 tw:mr-2' }), jsx("time", { className: 'tw:align-middle', dateTime: item && item.end ? item.end.substring(0, 10) : '', children: item && item.end ? new Date(item.end).toLocaleDateString() : '' })] })] }));
3602
3699
  };
3603
3700
 
3604
3701
  /**
@@ -3609,29 +3706,48 @@ const PopupButton = ({ url, parameterField, text, item, }) => {
3609
3706
  const getItemTags = useGetItemTags();
3610
3707
  return (jsx(Link, { to: `${url}/${parameterField ? item?.id : ''}?${params}`, children: jsx("button", { style: {
3611
3708
  backgroundColor: `${item?.color ?? (item && (getItemTags(item) && getItemTags(item)[0] && getItemTags(item)[0].color ? getItemTags(item)[0].color : (item?.layer?.markerDefaultColor ?? '#000')))}`,
3612
- }, className: 'tw-btn tw-text-white tw-btn-sm tw-float-right tw-mt-1', children: text }) }));
3709
+ }, className: 'tw:btn tw:text-white tw:btn-sm tw:float-right tw:mt-1', children: text }) }));
3613
3710
  };
3614
3711
 
3615
- function NavBar({ appName }) {
3712
+ const themes = [
3713
+ 'default',
3714
+ 'light',
3715
+ 'dark',
3716
+ 'valentine',
3717
+ 'retro',
3718
+ 'aqua',
3719
+ 'cyberpunk',
3720
+ 'caramellatte',
3721
+ 'abyss',
3722
+ 'silk',
3723
+ ];
3724
+ const ThemeControl = () => {
3725
+ const [theme, setTheme] = useState(() => {
3726
+ const savedTheme = localStorage.getItem('theme');
3727
+ return savedTheme ? JSON.parse(savedTheme) : 'default';
3728
+ });
3729
+ useEffect(() => {
3730
+ if (theme !== 'default') {
3731
+ localStorage.setItem('theme', JSON.stringify(theme));
3732
+ }
3733
+ else
3734
+ localStorage.removeItem('theme');
3735
+ document.documentElement.setAttribute('data-theme', theme);
3736
+ }, [theme]);
3737
+ return (jsxs("div", { className: 'tw:dropdown tw:mr-2', children: [jsxs("div", { tabIndex: 0, role: 'button', className: 'tw:btn tw:m-1', children: ["Theme", 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: jsx("path", { d: 'M1799 349l242 241-1017 1017L7 590l242-241 775 775 775-775z' }) })] }), 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) => (jsx("li", { children: 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))) })] }));
3738
+ };
3739
+
3740
+ const UserControl = () => {
3616
3741
  const { isAuthenticated, user, logout } = useAuth();
3742
+ const appState = useAppState();
3617
3743
  const [userProfile, setUserProfile] = useState({});
3618
3744
  const items = useItems();
3619
- const appState = useAppState();
3620
- const setAppState = useSetAppState();
3621
- const toggleSidebar = () => {
3622
- setAppState({ sideBarOpen: !appState.sideBarOpen });
3623
- };
3624
3745
  useEffect(() => {
3625
3746
  const profile = user && items.find((i) => i.user_created?.id === user.id && i.layer?.userProfileLayer);
3626
3747
  profile
3627
3748
  ? setUserProfile(profile)
3628
3749
  : setUserProfile({ id: crypto.randomUUID(), name: user?.first_name ?? '', text: '' });
3629
3750
  }, [user, items]);
3630
- const nameRef = useRef(null);
3631
- const [nameWidth, setNameWidth] = useState(0);
3632
- useEffect(() => {
3633
- !appState.embedded && nameRef.current && setNameWidth(nameRef.current.scrollWidth);
3634
- }, [nameRef, appName, appState.embedded]);
3635
3751
  const onLogout = async () => {
3636
3752
  await toast.promise(logout(), {
3637
3753
  success: {
@@ -3649,16 +3765,30 @@ function NavBar({ appName }) {
3649
3765
  pending: 'logging out ..',
3650
3766
  });
3651
3767
  };
3768
+ return (jsx(Fragment, { children: isAuthenticated ? (jsxs("div", { className: 'tw:flex tw:mr-2', children: [jsxs(Link, { to: `${userProfile.id && '/item/' + userProfile.id}`, className: 'tw:flex tw:items-center', children: [userProfile.image && (jsx("div", { className: 'tw:avatar', children: jsx("div", { className: 'tw:w-10 tw:rounded-full', children: jsx("img", { src: appState.assetsApi.url + userProfile.image }) }) })), jsx("div", { className: 'tw:ml-2 tw:mr-2', children: userProfile.name || user?.first_name })] }), jsxs("div", { className: 'tw:dropdown tw:dropdown-end', children: [jsx("label", { tabIndex: 0, className: 'tw:btn tw:btn-ghost tw:btn-square', children: jsx(ForwardRef$9, { className: 'tw:h-5 tw:w-5' }) }), 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: [jsx("li", { children: jsx(Link, { to: `${userProfile.id && '/edit-item/' + userProfile.id}`, children: "Profile" }) }), jsx("li", { children: jsx(Link, { to: '/user-settings', children: "Settings" }) }), jsx("li", { children: jsx("a", { onClick: () => {
3769
+ void onLogout();
3770
+ }, children: "Logout" }) })] })] })] })) : (jsxs("div", { className: 'tw:mr-2 tw:flex tw:items-center', children: [jsxs("div", { className: 'tw:hidden tw:md:flex', children: [jsx(Link, { to: '/login', children: jsx("div", { className: 'tw:self-center tw:btn tw:btn-ghost tw:mr-2', children: "Login" }) }), jsx(Link, { to: '/signup', children: jsx("div", { className: 'tw:btn tw:btn-ghost tw:mr-2', children: "Sign Up" }) })] }), jsxs("div", { className: 'tw:dropdown tw:dropdown-end', children: [jsx("label", { tabIndex: 1, className: 'tw:btn tw:btn-ghost tw:md:hidden', children: jsx(ForwardRef$9, { className: 'tw:h-5 tw:w-5' }) }), 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: [jsx("li", { children: jsx(Link, { to: '/login', children: "Login" }) }), jsx("li", { children: jsx(Link, { to: '/signup', children: "Sign Up" }) })] })] })] })) }));
3771
+ };
3772
+
3773
+ function NavBar({ appName }) {
3774
+ const appState = useAppState();
3775
+ const setAppState = useSetAppState();
3776
+ const toggleSidebar = () => {
3777
+ setAppState({ sideBarOpen: !appState.sideBarOpen });
3778
+ };
3779
+ const nameRef = useRef(null);
3780
+ const [nameWidth, setNameWidth] = useState(0);
3781
+ useEffect(() => {
3782
+ !appState.embedded && nameRef.current && setNameWidth(nameRef.current.scrollWidth);
3783
+ }, [nameRef, appName, appState.embedded]);
3652
3784
  if (!appState.embedded) {
3653
- return (jsx(Fragment, { children: jsxs("div", { className: 'tw-navbar tw-bg-base-100 tw-z-[9998] tw-shadow-xl tw-relative', children: [jsx("button", { className: 'tw-btn tw-btn-square tw-btn-ghost', "aria-controls": '#sidenav', "aria-haspopup": 'true', onClick: () => toggleSidebar(), children: jsx(ForwardRef$a, { className: 'tw-inline-block tw-w-5 tw-h-5' }) }), jsx("div", { className: 'tw-flex-1 tw-mr-2', children: jsxs("div", { className: 'tw-flex-1 tw-truncate tw-grid tw-grid-flow-col', style: { maxWidth: nameWidth + 60 }, children: [jsx(Link, { className: 'tw-btn tw-btn-ghost tw-px-2 tw-normal-case tw-text-xl tw-flex-1 tw-truncate', to: '/', children: jsx("h1", { ref: nameRef, className: 'tw-truncate', children: appName }) }), jsx("button", { className: 'tw-btn tw-px-2 tw-btn-ghost', onClick: () => window.my_modal_3.showModal(), children: jsx(QuestionMarkIcon, { className: 'tw-h-5 tw-w-5' }) })] }) }), isAuthenticated ? (jsxs("div", { className: 'tw-flex-none', children: [jsxs(Link, { to: `${userProfile.id && '/item/' + userProfile.id}`, className: 'tw-flex tw-items-center', children: [userProfile.image && (jsx("div", { className: 'tw-avatar', children: jsx("div", { className: 'tw-w-10 tw-rounded-full', children: jsx("img", { src: appState.assetsApi.url + userProfile.image }) }) })), jsx("div", { className: 'tw-ml-2 tw-mr-2', children: userProfile.name || user?.first_name })] }), jsxs("div", { className: 'tw-dropdown tw-dropdown-end', children: [jsx("label", { tabIndex: 0, className: 'tw-btn tw-btn-ghost tw-btn-square', children: jsx(ForwardRef$9, { className: 'tw-h-5 tw-w-5' }) }), 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: [jsx("li", { children: jsx(Link, { to: `${userProfile.id && '/edit-item/' + userProfile.id}`, children: "Profile" }) }), jsx("li", { children: jsx(Link, { to: '/user-settings', children: "Settings" }) }), jsx("li", { children: jsx("a", { onClick: () => {
3654
- void onLogout();
3655
- }, children: "Logout" }) })] })] })] })) : (jsxs("div", { children: [jsxs("div", { className: 'tw-hidden md:tw-flex', children: [jsx(Link, { to: '/login', children: jsx("div", { className: 'tw-btn tw-btn-ghost tw-mr-2', children: "Login" }) }), jsx(Link, { to: '/signup', children: jsx("div", { className: 'tw-btn tw-btn-ghost tw-mr-2', children: "Sign Up" }) })] }), jsxs("div", { className: 'tw-dropdown tw-dropdown-end', children: [jsx("label", { tabIndex: 1, className: 'tw-btn tw-btn-ghost md:tw-hidden', children: jsx(ForwardRef$9, { className: 'tw-h-5 tw-w-5' }) }), 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: [jsx("li", { children: jsx(Link, { to: '/login', children: "Login" }) }), jsx("li", { children: jsx(Link, { to: '/signup', children: "Sign Up" }) })] })] })] }))] }) }));
3785
+ return (jsx(Fragment, { children: jsxs("div", { className: 'tw:navbar tw:bg-base-100 tw:z-9998 tw:shadow-xl tw:relative tw:p-0', children: [jsx("button", { className: 'tw:btn tw:btn-square tw:btn-ghost tw:ml-3', "aria-controls": '#sidenav', "aria-haspopup": 'true', onClick: () => toggleSidebar(), children: jsx(ForwardRef$a, { className: 'tw:inline-block tw:w-5 tw:h-5' }) }), jsx("div", { className: 'tw:flex-1 tw:mr-2', children: jsxs("div", { className: 'tw:flex-1 tw:truncate tw:grid tw:grid-flow-col', style: { maxWidth: nameWidth + 60 }, children: [jsx(Link, { className: 'tw:btn tw:btn-ghost tw:px-2 tw:normal-case tw:text-xl tw:flex-1 tw:truncate', to: '/', children: jsx("h1", { ref: nameRef, className: 'tw:truncate', children: appName }) }), jsx("button", { className: 'tw:btn tw:px-2 tw:btn-ghost', onClick: () => window.my_modal_3.showModal(), children: jsx(QuestionMarkIcon, { className: 'tw:h-5 tw:w-5' }) })] }) }), appState.showThemeControl && jsx(ThemeControl, {}), jsx(UserControl, {})] }) }));
3656
3786
  }
3657
3787
  else
3658
3788
  return jsx(Fragment, {});
3659
3789
  }
3660
3790
 
3661
- const SetAppState = ({ assetsApi, embedded, }) => {
3791
+ const SetAppState = ({ assetsApi, embedded, openCollectiveApiKey, }) => {
3662
3792
  const setAppState = useSetAppState();
3663
3793
  useEffect(() => {
3664
3794
  setAppState({ assetsApi });
@@ -3666,14 +3796,17 @@ const SetAppState = ({ assetsApi, embedded, }) => {
3666
3796
  useEffect(() => {
3667
3797
  setAppState({ embedded });
3668
3798
  }, [embedded, setAppState]);
3799
+ useEffect(() => {
3800
+ setAppState({ openCollectiveApiKey });
3801
+ }, [openCollectiveApiKey, setAppState]);
3669
3802
  return jsx(Fragment, {});
3670
3803
  };
3671
3804
 
3672
3805
  /**
3673
3806
  * @category AppShell
3674
3807
  */
3675
- function AppShell({ appName, children, assetsApi, embedded, }) {
3676
- return (jsx(ContextWrapper, { children: jsxs("div", { className: 'tw-flex tw-flex-col tw-h-full', children: [jsx(SetAppState, { assetsApi: assetsApi, embedded: embedded }), jsx(NavBar, { appName: appName }), jsx("div", { id: 'app-content', className: 'tw-flex', children: children })] }) }));
3808
+ function AppShell({ appName, children, assetsApi, embedded, openCollectiveApiKey, }) {
3809
+ return (jsx(ContextWrapper, { children: jsxs("div", { className: 'tw:flex tw:flex-col tw:h-full', children: [jsx(SetAppState, { assetsApi: assetsApi, embedded: embedded, openCollectiveApiKey: openCollectiveApiKey }), jsx(NavBar, { appName: appName }), jsx("div", { id: 'app-content', className: 'tw:flex', children: children })] }) }));
3677
3810
  }
3678
3811
 
3679
3812
  function SidebarSubmenu({ submenu, name, icon, }) {
@@ -3707,26 +3840,26 @@ function SideBar({ routes, bottomRoutes }) {
3707
3840
  const toggleSidebarSlim = () => {
3708
3841
  setAppState({ sideBarSlim: !appState.sideBarSlim });
3709
3842
  };
3710
- return (jsx("nav", { id: 'sidenav', className: `${appState.sideBarOpen ? 'tw-translate-x-0' : '-tw-translate-x-full'}
3711
- ${appState.sideBarSlim ? 'tw-w-14' : 'tw-w-48'}
3712
- ${appState.embedded ? 'tw-mt-0 tw-h-[100dvh]' : 'tw-mt-16 tw-h-[calc(100dvh-64px)]'}
3713
- tw-fixed tw-left-0 tw-transition-all tw-duration-300 tw-top-0 tw-z-[10035]
3714
- tw-overflow-hidden tw-shadow-xl dark:tw-bg-zinc-800`, children: jsxs("div", { className: `tw-flex tw-flex-col ${appState.embedded ? 'tw-h-full' : 'tw-h-[calc(100dvh-64px)]'}`, children: [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) => {
3843
+ return (jsx("nav", { id: 'sidenav', className: `${appState.sideBarOpen ? 'tw:translate-x-0' : 'tw:-translate-x-full'}
3844
+ ${appState.sideBarSlim ? 'tw:w-14' : 'tw:w-48'}
3845
+ ${appState.embedded ? 'tw:mt-5.5 tw:h-[calc(100dvh-22px)]' : 'tw:mt-16 tw:h-[calc(100dvh-64px)]'}
3846
+ tw:fixed tw:left-0 tw:transition-all tw:duration-300 tw:top-0 tw:z-10035
3847
+ tw:overflow-hidden tw:shadow-xl tw:dark:bg-zinc-800`, children: jsxs("div", { className: `tw:flex tw:flex-col ${appState.embedded ? 'tw:h-full' : 'tw:h-[calc(100dvh-64px)]'}`, children: [jsx("ul", { className: 'tw:menu tw:w-full tw:bg-base-100 tw:text-base-content tw:p-0', children: routes.map((route, k) => {
3715
3848
  return (jsx("li", { className: '', children: route.submenu ? (jsx(SidebarSubmenu, { ...route })) : (jsxs(NavLink, { end: true, target: route.blank ? '_blank' : '_self',
3716
3849
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
3717
- 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: () => {
3850
+ 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: () => {
3718
3851
  if (screen.width < 640 && !appState.sideBarSlim)
3719
3852
  toggleSidebarOpen();
3720
- }, children: [route.icon, jsx("span", { className: `${appState.sideBarSlim ? 'tw-hidden' : ''}`, "data-te-sidenav-slim": 'false', children: route.name }), (location.pathname.includes(route.path) && route.path.length > 1) ||
3721
- location.pathname === route.path ? (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));
3722
- }) }), 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: jsxs("div", { className: 'tw-w-full', children: [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) => {
3723
- return (jsx("li", { className: '', children: route.submenu ? (jsx(SidebarSubmenu, { ...route })) : (jsxs(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: () => {
3853
+ }, children: [route.icon, jsx("span", { className: `${appState.sideBarSlim ? 'tw:hidden' : ''}`, "data-te-sidenav-slim": 'false', children: route.name }), (location.pathname.includes(route.path) && route.path.length > 1) ||
3854
+ location.pathname === route.path ? (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));
3855
+ }) }), 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: jsxs("div", { className: 'tw:w-full', children: [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) => {
3856
+ return (jsx("li", { className: '', children: route.submenu ? (jsx(SidebarSubmenu, { ...route })) : (jsxs(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: () => {
3724
3857
  if (screen.width < 640 && !appState.sideBarSlim)
3725
3858
  toggleSidebarOpen();
3726
- }, children: [route.icon, jsx("span", { className: `${appState.sideBarSlim ? 'tw-hidden' : ''}`, "data-te-sidenav-slim": 'false', children: route.name }), (location.pathname.includes(route.path) && route.path.length > 1) ||
3727
- location.pathname === route.path ? (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));
3728
- }) }), 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 ' +
3729
- (!appState.sideBarSlim ? 'tw-rotate-180' : ''), onClick: () => toggleSidebarSlim() })] }) })] }) }));
3859
+ }, children: [route.icon, jsx("span", { className: `${appState.sideBarSlim ? 'tw:hidden' : ''}`, "data-te-sidenav-slim": 'false', children: route.name }), (location.pathname.includes(route.path) && route.path.length > 1) ||
3860
+ location.pathname === route.path ? (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));
3861
+ }) }), 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 ' +
3862
+ (!appState.sideBarSlim ? 'tw:rotate-180' : ''), onClick: () => toggleSidebarSlim() })] }) })] }) }));
3730
3863
  }
3731
3864
 
3732
3865
  /**
@@ -3734,7 +3867,7 @@ function SideBar({ routes, bottomRoutes }) {
3734
3867
  */
3735
3868
  function Content({ children }) {
3736
3869
  const appState = useAppState();
3737
- return (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 }));
3870
+ return (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 }));
3738
3871
  }
3739
3872
 
3740
3873
  /**
@@ -3758,7 +3891,7 @@ function MapOverlayPage({ children, className, backdrop, card = true, }) {
3758
3891
  }
3759
3892
  // eslint-disable-next-line react-hooks/exhaustive-deps
3760
3893
  }, [overlayRef, backdropRef]);
3761
- return (jsx("div", { className: `tw-absolute tw-h-full tw-w-full tw-m-auto ${backdrop ? 'tw-z-[2000]' : ''}`, children: 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: 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, 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" })] }) }) }));
3894
+ return (jsx("div", { className: `tw:absolute tw:h-full tw:w-full tw:m-auto ${backdrop ? 'tw:z-2000' : ''}`, children: 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: 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, 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" })] }) }) }));
3762
3895
  }
3763
3896
 
3764
3897
  /**
@@ -3802,11 +3935,11 @@ function LoginPage() {
3802
3935
  document.removeEventListener('keydown', keyDownHandler);
3803
3936
  };
3804
3937
  }, [onLogin]);
3805
- return (jsxs(MapOverlayPage, { backdrop: true, className: 'tw-max-w-xs tw-h-fit', children: [jsx("h2", { className: 'tw-text-2xl tw-font-semibold tw-mb-2 tw-text-center', children: "Login" }), 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' }), 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' }), jsx("div", { className: 'tw-text-right tw-text-primary', children: jsx(Link, { to: '/reset-password', children: 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?" }) }) }), jsx("div", { className: 'tw-card-actions', children: jsx("button", { className: loading
3806
- ? 'tw-btn tw-btn-disabled tw-btn-block tw-btn-primary'
3807
- : 'tw-btn tw-btn-primary tw-btn-block',
3938
+ return (jsxs(MapOverlayPage, { backdrop: true, className: 'tw:max-w-xs tw:h-fit', children: [jsx("h2", { className: 'tw:text-2xl tw:font-semibold tw:mb-2 tw:text-center', children: "Login" }), 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' }), 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' }), jsx("div", { className: 'tw:text-right tw:text-primary', children: jsx(Link, { to: '/reset-password', children: 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?" }) }) }), jsx("div", { className: 'tw:card-actions', children: jsx("button", { className: loading
3939
+ ? 'tw:btn tw:btn-disabled tw:btn-block tw:btn-primary'
3940
+ : 'tw:btn tw:btn-primary tw:btn-block',
3808
3941
  // eslint-disable-next-line @typescript-eslint/no-misused-promises
3809
- onClick: () => onLogin(), children: loading ? jsx("span", { className: 'tw-loading tw-loading-spinner' }) : 'Login' }) })] }));
3942
+ onClick: () => onLogin(), children: loading ? jsx("span", { className: 'tw:loading tw:loading-spinner' }) : 'Login' }) })] }));
3810
3943
  }
3811
3944
 
3812
3945
  /**
@@ -3851,11 +3984,11 @@ function SignupPage() {
3851
3984
  document.removeEventListener('keydown', keyDownHandler);
3852
3985
  };
3853
3986
  }, [onRegister]);
3854
- return (jsxs(MapOverlayPage, { backdrop: true, className: 'tw-max-w-xs tw-h-fit', children: [jsx("h2", { className: 'tw-text-2xl tw-font-semibold tw-mb-2 tw-text-center', children: "Sign Up" }), 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' }), 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' }), 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' }), jsx("div", { className: 'tw-card-actions tw-mt-4', children: jsx("button", { className: loading
3855
- ? 'tw-btn tw-btn-disabled tw-btn-block tw-btn-primary'
3856
- : 'tw-btn tw-btn-primary tw-btn-block',
3987
+ return (jsxs(MapOverlayPage, { backdrop: true, className: 'tw:max-w-xs tw:h-fit', children: [jsx("h2", { className: 'tw:text-2xl tw:font-semibold tw:mb-2 tw:text-center', children: "Sign Up" }), 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' }), 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' }), 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' }), jsx("div", { className: 'tw:card-actions tw:mt-4', children: jsx("button", { className: loading
3988
+ ? 'tw:btn tw:btn-disabled tw:btn-block tw:btn-primary'
3989
+ : 'tw:btn tw:btn-primary tw:btn-block',
3857
3990
  // eslint-disable-next-line @typescript-eslint/no-misused-promises
3858
- onClick: () => onRegister(), children: loading ? jsx("span", { className: 'tw-loading tw-loading-spinner' }) : 'Sign Up' }) })] }));
3991
+ onClick: () => onRegister(), children: loading ? jsx("span", { className: 'tw:loading tw:loading-spinner' }) : 'Sign Up' }) })] }));
3859
3992
  }
3860
3993
 
3861
3994
  /**
@@ -3883,11 +4016,11 @@ function RequestPasswordPage({ resetUrl }) {
3883
4016
  pending: 'sending email ...',
3884
4017
  });
3885
4018
  };
3886
- return (jsxs(MapOverlayPage, { backdrop: true, className: 'tw-max-w-xs tw-h-fit', children: [jsx("h2", { className: 'tw-text-2xl tw-font-semibold tw-mb-2 tw-text-center', children: "Reset Password" }), 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' }), jsx("div", { className: 'tw-card-actions tw-mt-4', children: jsx("button", { className: loading
3887
- ? 'tw-btn tw-btn-disabled tw-btn-block tw-btn-primary'
3888
- : 'tw-btn tw-btn-primary tw-btn-block',
4019
+ return (jsxs(MapOverlayPage, { backdrop: true, className: 'tw:max-w-xs tw:h-fit', children: [jsx("h2", { className: 'tw:text-2xl tw:font-semibold tw:mb-2 tw:text-center', children: "Reset Password" }), 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' }), jsx("div", { className: 'tw:card-actions tw:mt-4', children: jsx("button", { className: loading
4020
+ ? 'tw:btn tw:btn-disabled tw:btn-block tw:btn-primary'
4021
+ : 'tw:btn tw:btn-primary tw:btn-block',
3889
4022
  // eslint-disable-next-line @typescript-eslint/no-misused-promises
3890
- onClick: () => onReset(), children: loading ? jsx("span", { className: 'tw-loading tw-loading-spinner' }) : 'Send' }) })] }));
4023
+ onClick: () => onReset(), children: loading ? jsx("span", { className: 'tw:loading tw:loading-spinner' }) : 'Send' }) })] }));
3891
4024
  }
3892
4025
 
3893
4026
  /**
@@ -3914,32 +4047,32 @@ function SetNewPasswordPage() {
3914
4047
  pending: 'setting password ...',
3915
4048
  });
3916
4049
  };
3917
- return (jsxs(MapOverlayPage, { backdrop: true, className: 'tw-max-w-xs tw-h-fit', children: [jsx("h2", { className: 'tw-text-2xl tw-font-semibold tw-mb-2 tw-text-center', children: "Set new Password" }), 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' }), jsx("div", { className: 'tw-card-actions tw-mt-4', children: jsx("button", { className: loading
3918
- ? 'tw-btn tw-btn-disabled tw-btn-block tw-btn-primary'
3919
- : 'tw-btn tw-btn-primary tw-btn-block',
4050
+ return (jsxs(MapOverlayPage, { backdrop: true, className: 'tw:max-w-xs tw:h-fit', children: [jsx("h2", { className: 'tw:text-2xl tw:font-semibold tw:mb-2 tw:text-center', children: "Set new Password" }), 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' }), jsx("div", { className: 'tw:card-actions tw:mt-4', children: jsx("button", { className: loading
4051
+ ? 'tw:btn tw:btn-disabled tw:btn-block tw:btn-primary'
4052
+ : 'tw:btn tw:btn-primary tw:btn-block',
3920
4053
  // eslint-disable-next-line @typescript-eslint/no-misused-promises
3921
- onClick: () => onReset(), children: loading ? jsx("span", { className: 'tw-loading tw-loading-spinner' }) : 'Set' }) })] }));
4054
+ onClick: () => onReset(), children: loading ? jsx("span", { className: 'tw:loading tw:loading-spinner' }) : 'Set' }) })] }));
3922
4055
  }
3923
4056
 
3924
4057
  function Subtitle({ styleClass, children }) {
3925
- return jsx("div", { className: `tw-text-xl tw-font-semibold ${styleClass}`, children: children });
4058
+ return jsx("div", { className: `tw:text-xl tw:font-semibold ${styleClass}`, children: children });
3926
4059
  }
3927
4060
 
3928
4061
  /**
3929
4062
  * @category Templates
3930
4063
  */
3931
4064
  function TitleCard({ title, hideTitle, children, topMargin, TopSideButtons, className, }) {
3932
- return (jsxs("div", { className: 'tw-card tw-w-full tw-p-6 tw-bg-base-100 tw-shadow-xl tw-h-fit tw-mb-4 ' +
4065
+ return (jsxs("div", { className: 'card tw:w-full tw:p-6 tw:bg-base-100 tw:shadow-xl tw:h-fit tw:mb-4 ' +
3933
4066
  (className ?? '') +
3934
4067
  ' ' +
3935
- (topMargin ?? 'tw-mt-6'), children: [!hideTitle && (jsxs(Fragment, { children: [jsxs(Subtitle, { styleClass: TopSideButtons ? 'tw-inline-block' : '', children: [title, TopSideButtons && (jsx("div", { className: 'tw-inline-block tw-float-right', children: TopSideButtons }))] }), jsx("div", { className: 'tw-divider tw-mt-2' })] })), jsx("div", { className: 'tw-h-full tw-bg-transparent tw-w-full tw-pb-6 tw-bg-base-100', children: children })] }));
4068
+ (topMargin ?? 'tw:mt-6'), children: [!hideTitle && (jsxs(Fragment, { children: [jsxs(Subtitle, { styleClass: TopSideButtons ? 'tw:inline-block' : '', children: [title, TopSideButtons && (jsx("div", { className: 'tw:inline-block tw:float-right', children: TopSideButtons }))] }), jsx("div", { className: 'divider tw:mt-2' })] })), jsx("div", { className: 'tw:h-full tw:bg-transparent tw:w-full tw:pb-6 tw:bg-base-100', children: children })] }));
3936
4069
  }
3937
4070
 
3938
4071
  /**
3939
4072
  * @category Templates
3940
4073
  */
3941
4074
  function CardPage({ title, hideTitle, children, parents, }) {
3942
- return (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: jsxs("div", { className: 'tw-w-full xl:tw-max-w-6xl ', children: [jsx("div", { className: 'tw-text-sm tw-breadcrumbs', children: jsxs("ul", { children: [jsx("li", { children: jsx(Link, { to: '/', children: "Home" }) }), parents?.map((b, i) => (jsx("li", { children: jsx(Link, { to: b.path, children: b.name }) }, i))), jsx("li", { children: title })] }) }), jsx(TitleCard, { hideTitle: hideTitle, title: title, topMargin: 'tw-my-2', className: ' tw-mb-4', children: children })] }) }));
4075
+ return (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: jsxs("div", { className: 'tw:w-full tw:xl:max-w-6xl ', children: [jsx("div", { className: 'tw:text-sm breadcrumbs', children: jsxs("ul", { children: [jsx("li", { children: jsx(Link, { to: '/', children: "Home" }) }), parents?.map((b, i) => (jsx("li", { children: jsx(Link, { to: b.path, children: b.name }) }, i))), jsx("li", { children: title })] }) }), jsx(TitleCard, { hideTitle: hideTitle, title: title, topMargin: 'tw:my-2', className: ' tw:mb-4', children: children })] }) }));
3943
4076
  }
3944
4077
 
3945
4078
  /**
@@ -3950,9 +4083,9 @@ const SelectUser = () => {
3950
4083
  const items = useItems();
3951
4084
  const users = items.filter((i) => i.layer?.userProfileLayer);
3952
4085
  const [selectedUsers, setSelectedUsers] = useState([]);
3953
- return (jsxs(MapOverlayPage, { backdrop: true, className: 'tw-h-3/4 tw-w-80', children: [jsx("div", { className: 'tw-text-center tw-text-xl tw-font-bold tw-mb-4', children: "Gratitude to ..." }), jsx("div", { className: 'tw-overflow-x-auto tw-w-full fade', children: jsx("table", { className: 'tw-table tw-w-full', children: jsx("tbody", { children: users.map((u, k) => {
3954
- return (jsxs("tr", { children: [jsx("td", { children: jsx("input", { type: 'checkbox', onChange: () => setSelectedUsers((prev) => [...prev, u.id]), className: 'tw-checkbox tw-checkbox-sm' }) }), jsx("td", { children: jsxs("div", { className: 'tw-flex tw-items-center tw-space-x-3', children: [u.image ? (jsx("div", { className: 'tw-avatar', children: jsx("div", { className: 'tw-mask tw-mask-circle tw-w-8 tw-h-8', children: jsx("img", { src: appState.assetsApi.url + u.image + '?width=40&heigth=40', alt: 'Avatar' }) }) })) : (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' })), jsx("div", { children: jsx("div", { className: 'tw-font-bold', children: u.name }) })] }) })] }, k));
3955
- }) }) }) }), jsx("div", { className: 'tw-w-full tw-grid tw-mt-4', children: jsx(Link, { className: 'tw-place-self-center ', to: '/attestation-form' + '?to=' + selectedUsers.map((u) => u, ','), children: jsx("button", { className: 'tw-btn tw-px-8', children: "Next" }) }) })] }));
4086
+ return (jsxs(MapOverlayPage, { backdrop: true, className: 'tw:h-3/4 tw:w-80', children: [jsx("div", { className: 'tw:text-center tw:text-xl tw:font-bold tw:mb-4', children: "Gratitude to ..." }), jsx("div", { className: 'tw:overflow-x-auto tw:w-full fade', children: jsx("table", { className: 'tw:table tw:w-full', children: jsx("tbody", { children: users.map((u, k) => {
4087
+ return (jsxs("tr", { children: [jsx("td", { children: jsx("input", { type: 'checkbox', onChange: () => setSelectedUsers((prev) => [...prev, u.id]), className: 'checkbox checkbox-sm' }) }), jsx("td", { children: jsxs("div", { className: 'tw:flex tw:items-center tw:space-x-3', children: [u.image ? (jsx("div", { className: 'tw:avatar', children: jsx("div", { className: 'tw:mask tw:mask-circle tw:w-8 tw:h-8', children: jsx("img", { src: appState.assetsApi.url + u.image + '?width=40&heigth=40', alt: 'Avatar' }) }) })) : (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' })), jsx("div", { children: jsx("div", { className: 'tw:font-bold', children: u.name }) })] }) })] }, k));
4088
+ }) }) }) }), jsx("div", { className: 'tw:w-full tw:grid tw:mt-4', children: jsx(Link, { className: 'tw:place-self-center ', to: '/attestation-form' + '?to=' + selectedUsers.map((u) => u, ','), children: jsx("button", { className: 'tw:btn tw:px-8', children: "Next" }) }) })] }));
3956
4089
  };
3957
4090
 
3958
4091
  function PlusIcon({
@@ -3982,27 +4115,27 @@ const ForwardRef$5 = /*#__PURE__*/ React.forwardRef(PlusIcon);
3982
4115
 
3983
4116
  function PlusButton({ layer, triggerAction, color, collection = 'items', }) {
3984
4117
  const hasUserPermission = useHasUserPermission();
3985
- return (jsx(Fragment, { children: hasUserPermission(collection, 'create', undefined, layer) && (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: jsx("button", { tabIndex: 0, className: 'tw-z-500 tw-btn tw-btn-circle tw-shadow', onClick: () => {
4118
+ return (jsx(Fragment, { children: hasUserPermission(collection, 'create', undefined, layer) && (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: jsx("button", { tabIndex: 0, className: 'tw:z-500 tw:btn tw:btn-circle tw:shadow', onClick: () => {
3986
4119
  triggerAction();
3987
- }, style: { backgroundColor: color, color: '#fff' }, children: jsx(ForwardRef$5, { className: 'tw-w-5 tw-h-5 tw-stroke-[2.5]' }) }) })) }));
4120
+ }, style: { backgroundColor: color, color: '#fff' }, children: jsx(ForwardRef$5, { className: 'tw:w-5 tw:h-5 tw:stroke-[2.5]' }) }) })) }));
3988
4121
  }
3989
4122
 
3990
4123
  const DateUserInfo = ({ item }) => {
3991
4124
  const [infoExpanded, setInfoExpanded] = useState(false);
3992
- return (jsxs("div", { className: 'tw-flex -tw-mb-1 tw-flex-row tw-mr-2 -tw-mt-2', onClick: (e) => e.stopPropagation(), children: [infoExpanded ? (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)}` })) : (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" })), jsx("div", { className: 'tw-grow ' })] }));
4125
+ return (jsxs("div", { className: 'tw:flex tw:-mb-1 tw:flex-row tw:mr-2 tw:-mt-2', onClick: (e) => e.stopPropagation(), children: [infoExpanded ? (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)}` })) : (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" })), jsx("div", { className: 'tw:grow ' })] }));
3993
4126
  };
3994
4127
 
3995
4128
  const ItemCard = ({ i, loading, url, deleteCallback, }) => {
3996
4129
  const navigate = useNavigate();
3997
4130
  const windowDimensions = useWindowDimensions();
3998
- return (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: () => {
4131
+ return (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: () => {
3999
4132
  // We could have an onClick callback instead
4000
4133
  const params = new URLSearchParams(window.location.search);
4001
4134
  if (windowDimensions.width < 786 && i.position)
4002
4135
  navigate('/' + i.id + `${params.size > 0 ? `?${params.toString()}` : ''}`);
4003
4136
  else
4004
4137
  navigate(url + i.id + `${params.size > 0 ? `?${params.toString()}` : ''}`);
4005
- }, children: [jsx(HeaderView, { loading: loading, item: i, api: i.layer?.api, editCallback: () => navigate('/edit-item/' + i.id), deleteCallback: () => deleteCallback(i) }), jsxs("div", { className: 'tw-overflow-y-auto tw-overflow-x-hidden tw-max-h-64 fade', children: [i.layer?.itemType.show_start_end && jsx(StartEndView, { item: i }), i.layer?.itemType.show_text && jsx(TextView, { truncate: true, text: i.text, itemId: i.id })] }), jsx(DateUserInfo, { item: i })] }));
4138
+ }, children: [jsx(HeaderView, { loading: loading, item: i, api: i.layer?.api, editCallback: () => navigate('/edit-item/' + i.id), deleteCallback: () => deleteCallback(i) }), jsxs("div", { className: 'tw:overflow-y-auto tw:overflow-x-hidden tw:max-h-64 fade', children: [i.layer?.itemType.show_start_end && jsx(StartEndView, { item: i }), i.layer?.itemType.show_text && jsx(TextView, { truncate: true, text: i.text, itemId: i.id })] }), jsx(DateUserInfo, { item: i })] }));
4006
4139
  };
4007
4140
 
4008
4141
  /**
@@ -4085,7 +4218,7 @@ const OverlayItemsIndexPage = ({ url, layerName, parameterField, plusButton = tr
4085
4218
  removeItem(item);
4086
4219
  setLoading(false);
4087
4220
  };
4088
- return (jsxs(Fragment, { children: [jsx(MapOverlayPage, { className: 'tw-rounded-none tw-overflow-y-auto tw-bg-base-200 !tw-p-4', children: jsxs("div", { className: 'tw-flex tw-flex-col tw-h-full', children: [jsx("div", { className: 'tw-flex-none', children: jsxs(Control, { position: 'topLeft', zIndex: '1000', absolute: false, children: [jsx(SearchControl, {}), jsx(TagsControl, {})] }) }), jsx("div", { className: 'tw-overflow-scroll fade tw-flex-1', children: 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
4221
+ return (jsxs(Fragment, { children: [jsx(MapOverlayPage, { className: 'tw:rounded-none tw:overflow-y-auto tw:bg-base-200 tw:p-4!', children: jsxs("div", { className: 'tw:flex tw:flex-col tw:h-full', children: [jsx("div", { className: 'tw:flex-none', children: jsxs(Control, { position: 'topLeft', zIndex: '1000', absolute: false, children: [jsx(SearchControl, {}), jsx(TagsControl, {})] }) }), jsx("div", { className: 'tw:overflow-scroll fade tw:flex-1', children: 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
4089
4222
  .filter((i) => i.layer?.name === layerName)
4090
4223
  .filter((item) => filterTags.length === 0
4091
4224
  ? item
@@ -4104,9 +4237,9 @@ const OverlayItemsIndexPage = ({ url, layerName, parameterField, plusButton = tr
4104
4237
  : 0;
4105
4238
  return dateB - dateA; // Subtracts milliseconds which are numbers
4106
4239
  })
4107
- .map((i, k) => (jsx("div", { className: 'tw-break-inside-avoid tw-mb-6', children: jsx(ItemCard, { i: i, loading: loading, url: url, deleteCallback: () => deleteItem(i) }) }, k))), addItemPopupType === 'place' && (jsx("form", { ref: tabRef, autoComplete: 'off', onSubmit: (e) => submitNewItem(e), children: 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: [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: jsx("p", { className: 'tw-text-center', children: "\u2715" }) }), jsx(TextInput, { type: 'text', placeholder: 'Name', dataField: 'name', defaultValue: '', inputStyle: '' }), layer?.itemType.show_start_end_input && jsx(PopupStartEndInput, {}), jsx(TextAreaInput, { placeholder: 'Text', dataField: 'text', defaultValue: '', inputStyle: 'tw-h-40 tw-mt-5' }), jsx("div", { className: 'tw-flex tw-justify-center', children: jsx("button", { className: loading
4108
- ? 'tw-btn tw-btn-disabled tw-mt-5 tw-place-self-center'
4109
- : 'tw-btn tw-mt-5 tw-place-self-center', type: 'submit', children: loading ? jsx("span", { className: 'tw-loading tw-loading-spinner' }) : 'Save' }) })] }) }))] }) })] }) }), plusButton && (jsx(PlusButton, { layer: layer, triggerAction: () => {
4240
+ .map((i, k) => (jsx("div", { className: 'tw:break-inside-avoid tw:mb-6', children: jsx(ItemCard, { i: i, loading: loading, url: url, deleteCallback: () => deleteItem(i) }) }, k))), addItemPopupType === 'place' && (jsx("form", { ref: tabRef, autoComplete: 'off', onSubmit: (e) => submitNewItem(e), children: 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: [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: jsx("p", { className: 'tw:text-center', children: "\u2715" }) }), jsx(TextInput, { type: 'text', placeholder: 'Name', dataField: 'name', defaultValue: '', inputStyle: '' }), layer?.itemType.show_start_end_input && jsx(PopupStartEndInput, {}), jsx(TextAreaInput, { placeholder: 'Text', dataField: 'text', defaultValue: '', inputStyle: 'tw:h-40 tw:mt-5' }), jsx("div", { className: 'tw:flex tw:justify-center', children: jsx("button", { className: loading
4241
+ ? 'btn btn-disabled tw:mt-5 tw:place-self-center'
4242
+ : 'btn tw:mt-5 tw:place-self-center', type: 'submit', children: loading ? jsx("span", { className: 'loading loading-spinner' }) : 'Save' }) })] }) }))] }) })] }) }), plusButton && (jsx(PlusButton, { layer: layer, triggerAction: () => {
4110
4243
  setAddItemPopupType('place');
4111
4244
  scroll();
4112
4245
  }, color: '#777', collection: 'items' }))] }));
@@ -4182,7 +4315,7 @@ const EmojiPicker = ({ selectedEmoji, selectedColor, selectedShape, setSelectedE
4182
4315
  setSelectedColor(color);
4183
4316
  setIsOpen(false);
4184
4317
  };
4185
- return (jsxs(Fragment, { children: [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 && (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: [jsx("div", { className: 'tw-grid tw-grid-cols-6 tw-gap-2 tw-pb-2', children: emojis.map((emoji) => (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))) }), jsx("hr", {}), jsx("div", { className: 'tw-grid tw-grid-cols-3 tw-gap-2 tw-py-2', children: shapes.map((shape) => (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: jsx("div", { className: `tw-h-12 tw-mask tw-mask-${shape} tw-bg-neutral-content` }) }, shape))) }), jsx("hr", {}), jsx("div", { className: 'tw-grid tw-grid-cols-6 tw-gap-2 tw-py-2 tw-px-6', children: colors.map((color) => (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: jsx("div", { className: `tw-h-8 tw-w-8 tw-rounded-full tw-bg-[${color}]` }) }, color))) })] }))] }));
4318
+ return (jsxs(Fragment, { children: [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 && (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: [jsx("div", { className: 'tw:grid tw:grid-cols-6 tw:gap-2 tw:pb-2', children: emojis.map((emoji) => (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))) }), jsx("hr", {}), jsx("div", { className: 'tw:grid tw:grid-cols-3 tw:gap-2 tw:py-2', children: shapes.map((shape) => (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: 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))) }), jsx("hr", {}), jsx("div", { className: 'tw:grid tw:grid-cols-6 tw:gap-2 tw:py-2 tw:px-6', children: colors.map((color) => (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: jsx("div", { className: `tw:h-8 tw:w-8 tw:rounded-full`, style: { backgroundColor: color } }) }, color))) })] }))] }));
4186
4319
  };
4187
4320
 
4188
4321
  /**
@@ -4244,13 +4377,13 @@ const AttestationForm = ({ api }) => {
4244
4377
  const [selectedEmoji, setSelectedEmoji] = useState('select badge');
4245
4378
  const [selectedShape, setSelectedShape] = useState('circle');
4246
4379
  const [selectedColor, setSelectedColor] = useState('#fff0d6');
4247
- return (jsxs(MapOverlayPage, { backdrop: true, className: 'tw-h-fit tw-min-h-56 tw-w-96', children: [jsx("div", { className: 'tw-text-center tw-text-xl tw-font-bold', children: "Gratitude" }), jsx("div", { className: 'tw-text-center tw-text-base tw-text-gray-400', children: "to" }), jsx("div", { className: 'tw-flex tw-flex-row tw-justify-center tw-items-center tw-flex-wrap', children: users?.map((u, k) => (jsxs("div", { className: 'tw-flex tw-items-center tw-space-x-3 tw-mx-2 tw-my-1', children: [u.image ? (jsx("div", { className: 'tw-avatar', children: jsx("div", { className: 'tw-mask tw-mask-circle tw-w-8 tw-h-8', children: jsx("img", { src: appState.assetsApi.url + u.image + '?width=40&heigth=40', alt: 'Avatar' }) }) })) : (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' })), jsx("div", { children: jsx("div", { className: 'tw-font-bold', children: u.name }) })] }, k)), ', ') }), jsxs("div", { className: 'tw-w-full', children: [jsx("div", { className: 'tw-flex tw-justify-center tw-items-center', children: jsx("div", { className: ' tw-flex tw-justify-center tw-items-center tw-w-28 tw-h-28 tw-m-4', children: jsx(EmojiPicker, { selectedEmoji: selectedEmoji, selectedColor: selectedColor, selectedShape: selectedShape, setSelectedEmoji: setSelectedEmoji, setSelectedColor: setSelectedColor, setSelectedShape: setSelectedShape }) }) }), jsx("div", { className: 'tw-flex tw-justify-center tw-items-center', children: 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 ' }) })] }), jsx("div", { className: 'tw-w-full tw-grid tw-mt-4', children: jsx("button", { onClick: sendAttestation, className: 'tw-btn tw-place-self-center tw-px-8', children: "Next" }) })] }));
4380
+ return (jsxs(MapOverlayPage, { backdrop: true, className: 'tw:h-fit tw:min-h-56 tw:w-96', children: [jsx("div", { className: 'tw:text-center tw:text-xl tw:font-bold', children: "Gratitude" }), jsx("div", { className: 'tw:text-center tw:text-base tw:text-gray-400', children: "to" }), jsx("div", { className: 'tw:flex tw:flex-row tw:justify-center tw:items-center tw:flex-wrap', children: users?.map((u, k) => (jsxs("div", { className: 'tw:flex tw:items-center tw:space-x-3 tw:mx-2 tw:my-1', children: [u.image ? (jsx("div", { className: 'tw:avatar', children: jsx("div", { className: 'tw:mask tw:mask-circle tw:w-8 tw:h-8', children: jsx("img", { src: appState.assetsApi.url + u.image + '?width=40&heigth=40', alt: 'Avatar' }) }) })) : (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' })), jsx("div", { children: jsx("div", { className: 'tw:font-bold', children: u.name }) })] }, k)), ', ') }), jsxs("div", { className: 'tw:w-full', children: [jsx("div", { className: 'tw:flex tw:justify-center tw:items-center', children: jsx("div", { className: ' tw:flex tw:justify-center tw:items-center tw:w-28 tw:h-28 tw:m-4', children: jsx(EmojiPicker, { selectedEmoji: selectedEmoji, selectedColor: selectedColor, selectedShape: selectedShape, setSelectedEmoji: setSelectedEmoji, setSelectedColor: setSelectedColor, setSelectedShape: setSelectedShape }) }) }), jsx("div", { className: 'tw:flex tw:justify-center tw:items-center', children: 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 ' }) })] }), jsx("div", { className: 'tw:w-full tw:grid tw:mt-4', children: jsx("button", { onClick: sendAttestation, className: 'tw:btn tw:place-self-center tw:px-8', children: "Next" }) })] }));
4248
4381
  };
4249
4382
 
4250
4383
  const TagView = ({ tag, heighlight, onClick, count, }) => {
4251
4384
  return (
4252
4385
  // Use your imagination to render suggestions.
4253
- 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: [jsx("b", { children: decodeTag(tag.name) }), count && jsxs("span", { className: 'tw-ml-2', children: ["(", count, ")"] })] }, tag.name));
4386
+ 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: [jsx("b", { children: decodeTag(tag.name) }), count && jsxs("span", { className: 'tw:ml-2', children: ["(", count, ")"] })] }, tag.name));
4254
4387
  };
4255
4388
 
4256
4389
  function groupAndCount(arr) {
@@ -4292,7 +4425,7 @@ const MarketView = () => {
4292
4425
  console.log(offers);
4293
4426
  // eslint-disable-next-line react-hooks/exhaustive-deps
4294
4427
  }, [items]);
4295
- return (jsx(MapOverlayPage, { className: 'tw-rounded-none tw-overflow-y-auto tw-bg-base-200 !tw-p-4', children: jsxs("div", { className: 'tw-grid tw-grid-cols-1 md:tw-grid-cols-2', children: [jsxs("div", { children: [jsx("p", { className: 'tw-text-lg tw-font-bold', children: "Offers" }), jsx("div", { className: 'tw-flex tw-flex-wrap', children: groupAndCount(offers).map((o) => (jsx(TagView, { onClick: () => navigate(`/?tags=${o.object.name}`), tag: o.object, count: o.count }, o.object.id))) })] }), jsxs("div", { children: [jsx("p", { className: 'tw-text-lg tw-font-bold', children: "Needs" }), jsx("div", { className: 'tw-flex tw-flex-wrap', children: groupAndCount(needs).map((o) => (jsx(TagView, { onClick: () => navigate(`/?tags=${o.object.name}`), tag: o.object, count: o.count }, o.object.id))) })] })] }) }));
4428
+ return (jsx(MapOverlayPage, { className: 'tw:rounded-none tw:overflow-y-auto tw:bg-base-200 tw:p-4!', children: jsxs("div", { className: 'tw:grid tw:grid-cols-1 tw:md:grid-cols-2', children: [jsxs("div", { children: [jsx("p", { className: 'tw:text-lg tw:font-bold', children: "Offers" }), jsx("div", { className: 'tw:flex tw:flex-wrap', children: groupAndCount(offers).map((o) => (jsx(TagView, { onClick: () => navigate(`/?tags=${o.object.name}`), tag: o.object, count: o.count }, o.object.id))) })] }), jsxs("div", { children: [jsx("p", { className: 'tw:text-lg tw:font-bold', children: "Needs" }), jsx("div", { className: 'tw:flex tw:flex-wrap', children: groupAndCount(needs).map((o) => (jsx(TagView, { onClick: () => navigate(`/?tags=${o.object.name}`), tag: o.object, count: o.count }, o.object.id))) })] })] }) }));
4296
4429
  };
4297
4430
 
4298
4431
  /**
@@ -4328,12 +4461,12 @@ function UserSettings() {
4328
4461
  throw e;
4329
4462
  });
4330
4463
  };
4331
- return (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: [jsx("div", { className: 'tw-text-xl tw-font-semibold', children: "Settings" }), jsx("div", { className: 'tw-divider tw-mt-2' }), jsxs("div", { className: 'tw-grid tw-grid-cols-1 tw-gap-6', children: [jsx(TextInput, { type: 'email', placeholder: 'new E-Mail', defaultValue: user?.email ? user.email : '', updateFormValue: (v) => setEmail(v) }), jsx(TextInput, { type: 'password', placeholder: 'new Password', defaultValue: user?.password ? user.password : '', updateFormValue: (v) => {
4464
+ return (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: [jsx("div", { className: 'tw:text-xl tw:font-semibold', children: "Settings" }), jsx("div", { className: 'tw:divider tw:mt-2' }), jsxs("div", { className: 'tw:grid tw:grid-cols-1 tw:gap-6', children: [jsx(TextInput, { type: 'email', placeholder: 'new E-Mail', defaultValue: user?.email ? user.email : '', updateFormValue: (v) => setEmail(v) }), jsx(TextInput, { type: 'password', placeholder: 'new Password', defaultValue: user?.password ? user.password : '', updateFormValue: (v) => {
4332
4465
  setPassword(v);
4333
4466
  setPasswordChanged(true);
4334
- } })] }), jsx("div", { className: 'tw-mt-8', children: jsx("button", { className: loading
4335
- ? ' tw-loading tw-btn-disabled tw-btn tw-btn-primary tw-float-right'
4336
- : 'tw-btn tw-btn-primary tw-float-right', onClick: () => onUpdateUser(), children: "Update" }) })] }));
4467
+ } })] }), jsx("div", { className: 'tw:mt-8', children: jsx("button", { className: loading
4468
+ ? ' tw:loading tw:btn-disabled tw:btn tw:btn-primary tw:float-right'
4469
+ : 'tw:btn tw:btn-primary tw:float-right', onClick: () => onUpdateUser(), children: "Update" }) })] }));
4337
4470
  }
4338
4471
 
4339
4472
  /* eslint-disable @typescript-eslint/no-unnecessary-condition */
@@ -4445,6 +4578,7 @@ const onUpdateItem = async (state, item, tags, addTag, setLoading, navigate, upd
4445
4578
  ...(state.image.length > 10 && { image: state.image }),
4446
4579
  ...(state.offers.length > 0 && { offers: offerUpdates }),
4447
4580
  ...(state.needs.length > 0 && { needs: needsUpdates }),
4581
+ ...(state.openCollectiveSlug && { openCollectiveSlug: state.openCollectiveSlug }),
4448
4582
  };
4449
4583
  const offersState = [];
4450
4584
  const needsState = [];
@@ -4579,7 +4713,7 @@ const ContactInfoView = ({ item, heading }) => {
4579
4713
  useEffect(() => {
4580
4714
  setProfileOwner(items.find((i) => i.user_created?.id === item.user_created?.id && i.layer?.userProfileLayer));
4581
4715
  }, [item, items]);
4582
- return (jsxs("div", { className: 'tw-bg-base-200 tw-mb-6 tw-mt-6 tw-p-6', children: [jsx("h2", { className: 'tw-text-lg tw-font-semibold', children: heading }), jsxs("div", { className: 'tw-mt-4 tw-flex tw-items-center', children: [profileOwner?.image && (jsx(ConditionalLink, { url: '/item/' + profileOwner?.id, children: jsx("div", { className: 'tw-mr-5 tw-flex tw-items-center tw-justify-center', children: jsx("div", { className: 'tw-avatar', children: 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: jsx("img", { src: appState.assetsApi.url + profileOwner?.image, alt: profileOwner?.name, className: 'tw-w-full tw-h-full tw-object-cover' }) }) }) }) })), jsxs("div", { className: 'tw-text-sm tw-flex-grow', children: [jsx("p", { className: 'tw-font-semibold', children: profileOwner?.name }), item.contact && (jsx("p", { children: jsxs("a", { href: `mailto:${item.contact}`, className: 'tw-mt-2 tw-text-green-500 tw-inline-flex tw-items-center', children: [jsx(ForwardRef$4, { className: 'tw-w-4 tw-h-4 tw-mr-1' }), item.contact] }) })), item.telephone && (jsx("p", { children: jsxs("a", { href: `tel:${item.telephone}`, className: 'tw-mt-2 tw-text-green-500 tw-inline-flex tw-items-center tw-whitespace-nowrap', children: [jsx(ForwardRef$3, { className: 'tw-w-4 tw-h-4 tw-mr-1' }), item.telephone] }) }))] })] })] }));
4716
+ return (jsxs("div", { className: 'tw:bg-base-200 tw:mb-6 tw:mt-6 tw:p-6', children: [jsx("h2", { className: 'tw:text-lg tw:font-semibold', children: heading }), jsxs("div", { className: 'tw:mt-4 tw:flex tw:items-center', children: [profileOwner?.image && (jsx(ConditionalLink, { url: '/item/' + profileOwner?.id, children: jsx("div", { className: 'tw:mr-5 tw:flex tw:items-center tw:justify-center', children: jsx("div", { className: 'tw:avatar', children: 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: jsx("img", { src: appState.assetsApi.url + profileOwner?.image, alt: profileOwner?.name, className: 'tw:w-full tw:h-full tw:object-cover' }) }) }) }) })), jsxs("div", { className: 'tw:text-sm tw:grow', children: [jsx("p", { className: 'tw:font-semibold', children: profileOwner?.name }), item.contact && (jsx("p", { children: jsxs("a", { href: `mailto:${item.contact}`, className: 'tw:mt-2 tw:text-green-500 tw:inline-flex tw:items-center', children: [jsx(ForwardRef$4, { className: 'tw:w-4 tw:h-4 tw:mr-1' }), item.contact] }) })), item.telephone && (jsx("p", { children: jsxs("a", { href: `tel:${item.telephone}`, className: 'tw:mt-2 tw:text-green-500 tw:inline-flex tw:items-center tw:whitespace-nowrap', children: [jsx(ForwardRef$3, { className: 'tw:w-4 tw:h-4 tw:mr-1' }), item.telephone] }) }))] })] })] }));
4583
4717
  };
4584
4718
  // eslint-disable-next-line react/prop-types
4585
4719
  const ConditionalLink = ({ url, children }) => {
@@ -4590,6 +4724,102 @@ const ConditionalLink = ({ url, children }) => {
4590
4724
  return children;
4591
4725
  };
4592
4726
 
4727
+ const GET_TRANSACTIONS = `
4728
+ query GetAccountStats($slug: String!) {
4729
+ account(slug: $slug) {
4730
+ name
4731
+ type
4732
+ stats {
4733
+ balance {
4734
+ valueInCents
4735
+ currency
4736
+ }
4737
+ totalAmountReceived(net: true) {
4738
+ valueInCents
4739
+ currency
4740
+ }
4741
+ totalAmountSpent {
4742
+ valueInCents
4743
+ currency
4744
+ }
4745
+ contributionsCount
4746
+ contributorsCount
4747
+ }
4748
+ }
4749
+ }
4750
+ `;
4751
+ const formatCurrency = (valueInCents, currency) => {
4752
+ const value = valueInCents / 100;
4753
+ const options = {
4754
+ style: 'currency',
4755
+ currency,
4756
+ ...(Math.abs(value) >= 1000 ? { minimumFractionDigits: 0, maximumFractionDigits: 0 } : {}),
4757
+ };
4758
+ return new Intl.NumberFormat('de-DE', options).format(value);
4759
+ };
4760
+ const CrowdfundingView = ({ item }) => {
4761
+ // Hier wird slug aus dem Item extrahiert.
4762
+ const slug = item.openCollectiveSlug;
4763
+ const appState = useAppState();
4764
+ const token = appState.openCollectiveApiKey;
4765
+ const graphqlClient = axios.create({
4766
+ baseURL: 'https://api.opencollective.com/graphql/v2',
4767
+ headers: {
4768
+ Authorization: `Bearer ${token}`,
4769
+ 'Content-Type': 'application/json',
4770
+ },
4771
+ });
4772
+ const [data, setData] = useState(null);
4773
+ const [loading, setLoading] = useState(true);
4774
+ const [error, setError] = useState(null);
4775
+ useEffect(() => {
4776
+ const fetchData = async () => {
4777
+ setLoading(true);
4778
+ setError(null);
4779
+ try {
4780
+ const response = await graphqlClient.post('', {
4781
+ query: GET_TRANSACTIONS,
4782
+ variables: { slug },
4783
+ });
4784
+ if (response.data.errors?.length) {
4785
+ setError(response.data.errors[0].message);
4786
+ }
4787
+ else {
4788
+ setData(response.data.data ?? null);
4789
+ }
4790
+ }
4791
+ catch (err) {
4792
+ if (err instanceof Error) {
4793
+ setError(err.message);
4794
+ }
4795
+ else {
4796
+ throw err;
4797
+ }
4798
+ }
4799
+ setLoading(false);
4800
+ };
4801
+ if (slug) {
4802
+ void fetchData();
4803
+ }
4804
+ // eslint-disable-next-line react-hooks/exhaustive-deps
4805
+ }, [slug]);
4806
+ if (!slug)
4807
+ return null;
4808
+ if (loading)
4809
+ return (jsx("div", { className: 'tw:flex tw:justify-center', children: jsx("span", { className: 'tw:loading tw:loading-spinner tw:loading-lg tw:text-neutral-content' }) }));
4810
+ if (error) {
4811
+ return jsxs("p", { className: 'tw:text-center tw:text-lg tw:text-red-500', children: ["Error: ", error] });
4812
+ }
4813
+ if (!data?.account) {
4814
+ return (jsx("p", { className: 'tw:text-center tw:text-lg tw:text-red-500', children: "No data available for this account." }));
4815
+ }
4816
+ const { stats } = data.account;
4817
+ const balanceValueInCents = stats.balance?.valueInCents ?? 0;
4818
+ const currency = stats.balance?.currency ?? 'USD';
4819
+ const currentBalance = balanceValueInCents;
4820
+ return (jsx("div", { className: 'tw:mx-6 tw:mb-6', children: jsxs("div", { className: 'tw:card tw:bg-base-200 tw:w-fit tw:max-w-full tw:shadow', children: [jsxs("div", { className: 'tw:stats tw:bg-base-200 tw:stats-horizontal tw:rounded-b-none', children: [jsxs("div", { className: 'tw:stat tw:p-3', children: [jsx("div", { className: 'tw:stat-title', children: "Current Balance" }), jsx("div", { className: 'tw:stat-value tw:text-xl lg:tw:text-3xl', children: formatCurrency(currentBalance, currency) })] }), jsxs("div", { className: 'tw:stat tw:p-3', children: [jsx("div", { className: 'tw:stat-title', children: "Received" }), jsx("div", { className: 'tw:stat-value tw:text-green-500 tw:text-xl lg:tw:text-3xl', children: formatCurrency(stats.totalAmountReceived.valueInCents, currency) })] }), jsxs("div", { className: 'tw:stat tw:p-3', children: [jsx("div", { className: 'tw:stat-title', children: "Spent" }), jsx("div", { className: 'tw:stat-value tw:text-red-500 tw:text-xl lg:tw:text-3xl', children: formatCurrency(stats.totalAmountReceived.valueInCents - currentBalance, currency) })] })] }), jsx("hr", { className: 'tw:border-1 tw:border-current/10 tw:border-dashed' }), jsxs("div", { className: 'tw:m-4 tw:items-center', children: [jsx("a", { href: `https://opencollective.com/${slug}/donate`, target: '_blank', rel: 'noreferrer', children: jsx("button", { className: 'tw:btn tw:btn-sm tw:btn-primary tw:float-right tw:ml-4', children: "Donate" }) }), jsxs("div", { className: 'tw:flex-1 tw:mr-4', children: ["Support", ' ', jsx("a", { className: 'tw:font-bold', href: `https://opencollective.com/${slug}`, target: '_blank', rel: 'noreferrer', children: data.account.name }), ' ', "on ", jsx("span", { className: 'tw:font-bold', children: "Open\u00A0Collective" })] })] })] }) }));
4821
+ };
4822
+
4593
4823
  const GalleryView = ({ item }) => {
4594
4824
  const [index, setIndex] = useState(-1);
4595
4825
  const appState = useAppState();
@@ -4603,10 +4833,10 @@ const GalleryView = ({ item }) => {
4603
4833
  });
4604
4834
  if (!images)
4605
4835
  throw new Error('GalleryView: images is undefined');
4606
- return (jsxs("div", { className: 'tw-mx-6 tw-mb-6', children: [jsx(RowsPhotoAlbum, { photos: images, targetRowHeight: 150, onClick: ({ index: current }) => setIndex(current) }), jsx(ReactLightbox, { index: index, slides: images, open: index >= 0, close: () => setIndex(-1) })] }));
4836
+ return (jsxs("div", { className: 'tw:mx-6 tw:mb-6', children: [jsx(RowsPhotoAlbum, { photos: images, targetRowHeight: 150, onClick: ({ index: current }) => setIndex(current) }), jsx(ReactLightbox, { index: index, slides: images, open: index >= 0, close: () => setIndex(-1) })] }));
4607
4837
  };
4608
4838
 
4609
- var ChevronSVG = 'data:image/svg+xml;base64,PHN2ZwogICAgICAgICAgICB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnCiAgICAgICAgICAgIHZpZXdCb3g9JzAgMCAyNCAyNCcKICAgICAgICAgICAgZmlsbD0nd2hpdGUnCiAgICAgICAgICAgIGNsYXNzTmFtZT0ndHctaC00IHR3LXctNCcKICAgICAgICAgID4KICAgICAgICAgICAgPHBhdGggZD0nTTIwIDRINGMtMS4xIDAtMS45OS45LTEuOTkgMkwyIDE4YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnptMCA0bC04IDUtOC01VjZsOCA1IDgtNXYyeicgLz4KICAgICAgICAgIDwvc3ZnPg==';
4839
+ var ChevronSVG = 'data:image/svg+xml;base64,PHN2ZwogICAgICAgICAgICB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnCiAgICAgICAgICAgIHZpZXdCb3g9JzAgMCAyNCAyNCcKICAgICAgICAgICAgZmlsbD0nd2hpdGUnCiAgICAgICAgICAgIGNsYXNzTmFtZT0naC00IHctNCcKICAgICAgICAgID4KICAgICAgICAgICAgPHBhdGggZD0nTTIwIDRINGMtMS4xIDAtMS45OS45LTEuOTkgMkwyIDE4YzAgMS4xLjkgMiAyIDJoMTZjMS4xIDAgMi0uOSAyLTJWNmMwLTEuMS0uOS0yLTItMnptMCA0bC04IDUtOC01VjZsOCA1IDgtNXYyeicgLz4KICAgICAgICAgIDwvc3ZnPg==';
4610
4840
 
4611
4841
  var ClipboardSVG = 'data:image/svg+xml;base64,PHN2ZyBzdHJva2U9ImN1cnJlbnRDb2xvciIgZmlsbD0id2hpdGUiIHN0cm9rZS13aWR0aD0iMCIgdmlld0JveD0iMCAwIDI1NiAyNTYiIGhlaWdodD0iMS41ZW0iIHdpZHRoPSIxLjVlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTgwLDY0SDQwQTEyLDEyLDAsMCwwLDI4LDc2VjIxNmExMiwxMiwwLDAsMCwxMiwxMkgxODBhMTIsMTIsMCwwLDAsMTItMTJWNzZBMTIsMTIsMCwwLDAsMTgwLDY0Wk0xNjgsMjA0SDUyVjg4SDE2OFpNMjI4LDQwVjE4MGExMiwxMiwwLDAsMS0yNCwwVjUySDc2YTEyLDEyLDAsMCwxLDAtMjRIMjE2QTEyLDEyLDAsMCwxLDIyOCw0MFoiPjwvcGF0aD48L3N2Zz4=';
4612
4842
 
@@ -4664,10 +4894,10 @@ const SocialShareButton = ({ platform, url, title, }) => {
4664
4894
  const finalShareUrl = shareUrl
4665
4895
  .replace('{url}', encodeURIComponent(url))
4666
4896
  .replace('{title}', encodeURIComponent(title));
4667
- return (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: {
4897
+ return (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: {
4668
4898
  color: 'white',
4669
4899
  backgroundColor: bgColor,
4670
- }, title: `share link on ${platform}`, children: cloneElement(icon, { className: 'tw-w-4 tw-h-4 tw-fill-current' }) }));
4900
+ }, title: `share link on ${platform}`, children: cloneElement(icon, { className: 'tw:w-4 tw:h-4 tw:fill-current' }) }));
4671
4901
  };
4672
4902
 
4673
4903
  const SocialShareBar = ({ url, title, platforms = ['facebook', 'twitter', 'linkedin', 'xing', 'email'], }) => {
@@ -4683,21 +4913,21 @@ const SocialShareBar = ({ url, title, platforms = ['facebook', 'twitter', 'linke
4683
4913
  toast.error('Fehler beim Kopieren des Links: ', error);
4684
4914
  });
4685
4915
  };
4686
- return (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) => (jsx(SocialShareButton, { platform: platform, url: url, title: title }, platform))), platforms.includes('email') && (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: {
4916
+ return (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) => (jsx(SocialShareButton, { platform: platform, url: url, title: title }, platform))), platforms.includes('email') && (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: {
4687
4917
  color: 'white',
4688
4918
  backgroundColor: '#444',
4689
- }, onClick: () => copyLink(), title: 'share link via email', children: jsx("img", { src: ChevronSVG, alt: '\\/', className: 'tw-h-4 tw-w-4' }) })), platforms.includes('clipboard') && (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: {
4919
+ }, onClick: () => copyLink(), title: 'share link via email', children: jsx("img", { src: ChevronSVG, alt: '\\/', className: 'tw:h-4 tw:w-4' }) })), platforms.includes('clipboard') && (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: {
4690
4920
  color: 'white',
4691
4921
  backgroundColor: '#888',
4692
- }, onClick: () => copyLink(), title: 'copy Link', children: jsx("img", { src: ClipboardSVG, className: 'tw-w-5' }) }))] }));
4922
+ }, onClick: () => copyLink(), title: 'copy Link', children: jsx("img", { src: ClipboardSVG, className: 'tw:w-5' }) }))] }));
4693
4923
  };
4694
4924
 
4695
- const GroupSubHeaderView = ({ item, shareBaseUrl, platforms, }) => (jsxs("div", { className: 'tw-px-6', children: [jsxs("div", { className: 'tw-float-left tw-mt-2 tw-mb-4 tw-flex tw-items-center', children: [item.status && (jsx("div", { className: 'tw-mt-1.5', children: 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 && (jsx("div", { className: 'tw-mt-1.5', children: 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 }) }))] }), jsx("div", { children: jsx(SocialShareBar, { url: shareBaseUrl && item.slug
4925
+ const GroupSubHeaderView = ({ item, shareBaseUrl, platforms, }) => (jsxs("div", { className: 'tw:px-6', children: [jsxs("div", { className: 'tw:float-left tw:mt-2 tw:mb-4 tw:flex tw:items-center', children: [item.status && (jsx("div", { className: 'tw:mt-1.5', children: 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 && (jsx("div", { className: 'tw:mt-1.5', children: 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 }) }))] }), jsx("div", { children: jsx(SocialShareBar, { url: shareBaseUrl && item.slug
4696
4926
  ? shareBaseUrl + item.slug
4697
4927
  : window.location.protocol + '//' + window.location.host + '/item/' + item.id, title: item.name, platforms: platforms }) })] }));
4698
4928
 
4699
4929
  const ProfileStartEndView = ({ item }) => {
4700
- return (jsx("div", { className: 'tw-mt-2 tw-px-6 tw-max-w-xs', children: jsx(StartEndView, { item: item }) }));
4930
+ return (jsx("div", { className: 'tw:mt-2 tw:px-6 tw:max-w-xs', children: jsx(StartEndView, { item: item }) }));
4701
4931
  };
4702
4932
 
4703
4933
  const get = (value, path, defaultValue) => {
@@ -4721,7 +4951,7 @@ const get = (value, path, defaultValue) => {
4721
4951
  const ProfileTextView = ({ item, dataField = 'text', heading, hideWhenEmpty, }) => {
4722
4952
  const text = get(item, dataField);
4723
4953
  const parsedText = typeof text !== 'string' ? '' : text;
4724
- return (jsxs("div", { className: 'tw-my-10 tw-mt-2 tw-px-6', children: [!(text === '' && hideWhenEmpty) && (jsx("h2", { className: 'tw-text-lg tw-font-semibold', children: heading })), jsx("div", { className: 'tw-mt-2 tw-text-sm', children: jsx(TextView, { itemId: item.id, rawText: parsedText }) })] }));
4954
+ return (jsxs("div", { className: 'tw:my-10 tw:mt-2 tw:px-6', children: [!(text === '' && hideWhenEmpty) && (jsx("h2", { className: 'tw:text-lg tw:font-semibold', children: heading })), jsx("div", { className: 'tw:mt-2 tw:text-sm', children: jsx(TextView, { itemId: item.id, rawText: parsedText }) })] }));
4725
4955
  };
4726
4956
 
4727
4957
  const componentMap$1 = {
@@ -4730,25 +4960,24 @@ const componentMap$1 = {
4730
4960
  contactInfos: ContactInfoView,
4731
4961
  startEnd: ProfileStartEndView,
4732
4962
  gallery: GalleryView,
4963
+ crowdfundings: CrowdfundingView,
4733
4964
  // weitere Komponenten hier
4734
4965
  };
4735
4966
  const FlexView = ({ item }) => {
4736
- // eslint-disable-next-line no-console
4737
- console.log(item);
4738
- return (jsx("div", { className: 'tw-h-full tw-overflow-y-auto fade', children: item.layer?.itemType.profileTemplate.map(
4967
+ return (jsx("div", { className: 'tw:h-full tw:overflow-y-auto fade', children: item.layer?.itemType.profileTemplate.map(
4739
4968
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
4740
4969
  (templateItem) => {
4741
4970
  const TemplateComponent = componentMap$1[templateItem.collection];
4742
- return TemplateComponent ? (jsx(TemplateComponent, { item: item, ...templateItem.item }, templateItem.id)) : (jsx("div", { children: "Component not found" }, templateItem.id));
4971
+ return TemplateComponent ? (jsx(TemplateComponent, { item: item, ...templateItem.item }, templateItem.id)) : (jsxs("div", { className: 'tw:mx-6 tw:mb-6', children: [templateItem.collection, " view not found"] }, templateItem.id));
4743
4972
  }) }));
4744
4973
  };
4745
4974
 
4746
4975
  const OnepagerView = ({ item }) => {
4747
- return (jsxs("div", { className: 'tw-h-full tw-overflow-y-auto fade', children: [jsx(GroupSubHeaderView, { item: item, shareBaseUrl: `https://www.wuerdekompass.org/aktivitaeten/gruppensuche/#/gruppe/${item.slug}` }), item.user_created?.first_name && jsx(ContactInfoView, { heading: 'Du hast Fragen?', item: item }), jsx("div", { className: 'tw-my-10 tw-mt-2 tw-px-6 tw-text-sm ', children: jsx(TextView, { itemId: item.id, rawText: item.text ?? 'Keine Beschreibung vorhanden' }) }), item.next_appointment && (jsxs("div", { className: 'tw-my-10 tw-px-6', children: [jsx("h2", { className: 'tw-text-lg tw-font-semibold', children: "N\u00E4chste Termine" }), jsx("div", { className: 'tw-mt-2 tw-text-sm', children: jsx(TextView, { itemId: item.id, rawText: item.next_appointment }) })] })), ";"] }));
4976
+ return (jsxs("div", { className: 'tw:h-full tw:overflow-y-auto fade', children: [jsx(GroupSubHeaderView, { item: item, shareBaseUrl: `https://www.wuerdekompass.org/aktivitaeten/gruppensuche/#/gruppe/${item.slug}` }), item.user_created?.first_name && jsx(ContactInfoView, { heading: 'Du hast Fragen?', item: item }), jsx("div", { className: 'tw:my-10 tw:mt-2 tw:px-6 tw:text-sm ', children: jsx(TextView, { itemId: item.id, rawText: item.text ?? 'Keine Beschreibung vorhanden' }) }), item.next_appointment && (jsxs("div", { className: 'tw:my-10 tw:px-6', children: [jsx("h2", { className: 'tw:text-lg tw:font-semibold', children: "N\u00E4chste Termine" }), jsx("div", { className: 'tw:mt-2 tw:text-sm', children: jsx(TextView, { itemId: item.id, rawText: item.next_appointment }) })] })), ";"] }));
4748
4977
  };
4749
4978
 
4750
4979
  const SimpleView = ({ item }) => {
4751
- return (jsx("div", { className: 'tw-mt-8 tw-h-full tw-overflow-y-auto fade tw-px-6', children: jsx(TextView, { text: item.text, itemId: item.id }) }));
4980
+ return (jsx("div", { className: 'tw:mt-8 tw:h-full tw:overflow-y-auto fade tw:px-6', children: jsx(TextView, { text: item.text, itemId: item.id }) }));
4752
4981
  };
4753
4982
 
4754
4983
  function LinkIcon({
@@ -4790,25 +5019,25 @@ function ActionButton({ item, triggerAddButton, triggerItemSelected, existingRel
4790
5019
  (getItemTags(item) && getItemTags(item)[0] && getItemTags(item)[0].color
4791
5020
  ? getItemTags(item)[0].color
4792
5021
  : item.layer?.markerDefaultColor);
4793
- return (jsx(Fragment, { children: hasUserPermission(collection, 'update', item) && (jsxs(Fragment, { children: [jsxs("div", { className: `tw-absolute tw-right-4 tw-bottom-4 tw-flex tw-flex-col ${customStyle}`, children: [triggerItemSelected && (jsx("button", { tabIndex: 0, className: 'tw-z-500 tw-btn tw-btn-circle tw-shadow', onClick: () => {
5022
+ return (jsx(Fragment, { children: hasUserPermission(collection, 'update', item) && (jsxs(Fragment, { children: [jsxs("div", { className: `tw:absolute tw:right-6 tw:bottom-4 tw:flex tw:flex-col ${customStyle}`, children: [triggerItemSelected && (jsx("button", { tabIndex: 0, className: 'tw:z-500 tw:btn tw:btn-circle tw:shadow', onClick: () => {
4794
5023
  setModalOpen(true);
4795
5024
  }, style: {
4796
5025
  backgroundColor,
4797
5026
  color: '#fff',
4798
- }, children: jsx(ForwardRef$2, { className: 'tw-h-5 tw-w-5 tw-stroke-[2.5]' }) })), triggerAddButton && (jsx("button", { tabIndex: 0, className: 'tw-z-500 tw-btn tw-btn-circle tw-shadow tw-mt-2', onClick: () => {
5027
+ }, children: jsx(ForwardRef$2, { className: 'tw:h-5 tw:w-5 tw:stroke-[2.5]' }) })), triggerAddButton && (jsx("button", { tabIndex: 0, className: 'tw:z-500 tw:btn tw:btn-circle tw:shadow tw:mt-2', onClick: () => {
4799
5028
  triggerAddButton();
4800
5029
  }, style: {
4801
5030
  backgroundColor,
4802
5031
  color: '#fff',
4803
- }, children: jsx(ForwardRef$5, { className: 'tw-w-5 tw-h-5 tw-stroke-[2.5]' }) }))] }), 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: [jsx(TextInput, { defaultValue: '', placeholder: '\uD83D\uDD0D Search', containerStyle: 'lg:col-span-2 tw-m-4 ', updateFormValue: (val) => {
5032
+ }, children: jsx(ForwardRef$5, { className: 'tw:w-5 tw:h-5 tw:stroke-[2.5]' }) }))] }), 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: [jsx(TextInput, { defaultValue: '', placeholder: '\uD83D\uDD0D Search', containerStyle: 'lg:col-span-2 tw:m-4 ', updateFormValue: (val) => {
4804
5033
  setSearch(val);
4805
- } }), jsx("div", { className: 'tw-grid tw-grid-cols-1 sm:tw-grid-cols-2', children: filterdItems
5034
+ } }), jsx("div", { className: 'tw:grid tw:grid-cols-1 tw:sm:grid-cols-2', children: filterdItems
4806
5035
  .filter((item) => {
4807
5036
  return search === ''
4808
5037
  ? item
4809
5038
  : item.name.toLowerCase().includes(search.toLowerCase());
4810
5039
  })
4811
- .map((i) => (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: () => {
5040
+ .map((i) => (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: () => {
4812
5041
  triggerItemSelected(i.id);
4813
5042
  setModalOpen(false);
4814
5043
  }, children: jsx(HeaderView, { item: i, hideMenu: true }) }, i.id))) })] })] })) }));
@@ -4845,7 +5074,7 @@ function LinkedItemsHeaderView({ item, unlinkCallback, loading, unlinkPermission
4845
5074
  const title = item.name;
4846
5075
  const subtitle = item.subname;
4847
5076
  useEffect(() => { }, [item]);
4848
- return (jsx(Fragment, { children: jsxs("div", { className: 'tw-flex tw-flex-row', children: [jsx("div", { className: 'tw-grow tw-max-w-[calc(100%-60px)] }', children: jsxs("div", { className: 'flex items-center', children: [avatar && (jsx("img", { className: 'tw-w-10 tw-inline tw-rounded-full', src: avatar, alt: item.name + ' logo' })), jsxs("div", { className: `${avatar ? 'tw-ml-2' : ''} tw-overflow-hidden`, children: [jsx("div", { className: 'tw-text-xl tw-font-semibold tw-truncate', children: title }), subtitle && (jsx("div", { className: 'tw-text-xs tw-truncate tw-text-gray-500 ', children: subtitle }))] })] }) }), jsx("div", { className: 'tw-col-span-1', onClick: (e) => e.stopPropagation(), children: unlinkPermission && (jsxs("div", { className: 'tw-dropdown tw-dropdown-bottom', children: [jsx("label", { tabIndex: 0, className: ' tw-btn tw-m-1 tw-leading-3 tw-border-none tw-min-h-0 tw-h-6', children: jsx(ForwardRef$9, { className: 'tw-h-5 tw-w-5' }) }), 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: (jsx("li", { children: jsx("a", { className: 'tw-cursor-pointer !tw-text-error', onClick: () => unlinkCallback(item.id), children: loading ? (jsx("span", { className: 'tw-loading tw-loading-spinner tw-loading-sm' })) : (jsx(ForwardRef$1, { className: 'tw-h-5 tw-w-5 tw-stroke-[3]' })) }) })) })] })) })] }) }));
5077
+ return (jsx(Fragment, { children: jsxs("div", { className: 'tw:flex tw:flex-row', children: [jsx("div", { className: 'tw:grow tw:max-w-[calc(100%-60px)] }', children: jsxs("div", { className: 'flex items-center', children: [avatar && (jsx("img", { className: 'tw:w-10 tw:inline tw:rounded-full', src: avatar, alt: item.name + ' logo' })), jsxs("div", { className: `${avatar ? 'tw:ml-2' : ''} tw:overflow-hidden`, children: [jsx("div", { className: 'tw:text-xl tw:font-semibold tw:truncate', children: title }), subtitle && (jsx("div", { className: 'tw:text-xs tw:truncate tw:text-gray-500 ', children: subtitle }))] })] }) }), jsx("div", { className: 'tw:col-span-1', onClick: (e) => e.stopPropagation(), children: unlinkPermission && (jsxs("div", { className: 'tw:dropdown tw:dropdown-bottom', children: [jsx("label", { tabIndex: 0, className: ' tw:btn tw:m-1 tw:leading-3 tw:border-none tw:min-h-0 tw:h-6', children: jsx(ForwardRef$9, { className: 'tw:h-5 tw:w-5' }) }), 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: (jsx("li", { children: jsx("a", { className: 'tw:cursor-pointer tw:text-error!', onClick: () => unlinkCallback(item.id), children: loading ? (jsx("span", { className: 'tw:loading tw:loading-spinner tw:loading-sm' })) : (jsx(ForwardRef$1, { className: 'tw:h-5 tw:w-5 tw:stroke-3' })) }) })) })] })) })] }) }));
4849
5078
  }
4850
5079
 
4851
5080
  const TabsView = ({ attestations, item, offers, needs, relations, updatePermission, loading, linkItem, unlinkItem, }) => {
@@ -4880,15 +5109,17 @@ const TabsView = ({ attestations, item, offers, needs, relations, updatePermissi
4880
5109
  setActiveTab(urlTab ? Number(urlTab) : 1);
4881
5110
  // eslint-disable-next-line react-hooks/exhaustive-deps
4882
5111
  }, [location.search]);
4883
- return (jsxs("div", { role: 'tablist', className: 'tw-tabs tw-tabs-lifted tw-mt-2 tw-mb-2 tw-px-6', children: [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) }), 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 && (jsx("div", { className: 'tw-max-w-xs', children: jsx(StartEndView, { item: item }) })), jsx(TextView, { text: item.text, itemId: item.id }), jsx("div", { className: 'tw-h-4' }), jsx(TextView, { text: item.contact, itemId: item.id })] }), item.layer?.itemType.questlog && (jsxs(Fragment, { children: [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) }), 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: jsx("table", { className: 'sm:tw-table-sm md:tw-table-md', children: jsx("tbody", { children: attestations
5112
+ return (jsxs("div", { role: 'tablist', className: 'tw:tabs tw:tabs-lift tw:mt-2 tw:mb-2 tw:px-6', children: [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) }), 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 && (jsx("div", { className: 'tw:max-w-xs', children: jsx(StartEndView, { item: item }) })), jsx(TextView, { text: item.text, itemId: item.id }), jsx("div", { className: 'tw:h-4' }), jsx(TextView, { text: item.contact, itemId: item.id })] }), item.layer?.itemType.questlog && (jsxs(Fragment, { children: [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) }), 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: jsx("table", { className: 'sm:tw:table-sm md:tw:table-md tw:w-full', children: jsx("tbody", { children: attestations
4884
5113
  .filter((a) => a.to.some((t) => t.directus_users_id === item.user_created?.id))
4885
5114
  .sort((a, b) => new Date(b.date_created).getTime() - new Date(a.date_created).getTime())
4886
- .map((a, i) => (jsxs("tr", { children: [jsx("td", { children: 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 }) }), jsx("td", { children: jsx("div", { className: 'tw-mr-2', children: jsx("i", { children: a.text }) }) }), jsx("td", { children: getUserProfile(a.user_created.id) ? (jsx(Link, { to: '/item/' + getUserProfile(a.user_created.id)?.id, children: jsxs("div", { className: 'flex items-center gap-3', children: [jsx("div", { className: 'tw-avatar', children: jsx("div", { className: 'tw-mask tw-rounded-full tw-h-8 tw-w-8 tw-mr-2', children: getUserProfile(a.user_created.id)?.image && (jsx("img", { src: appState.assetsApi.url +
5115
+ .map((a, i) => (jsxs("tr", { children: [jsx("td", { children: 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`,
5116
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
5117
+ style: { backgroundColor: a.color }, children: a.emoji }) }), jsx("td", { children: jsx("div", { className: 'tw:mr-2', children: jsx("i", { children: a.text }) }) }), jsx("td", { children: getUserProfile(a.user_created.id) ? (jsx(Link, { to: '/item/' + getUserProfile(a.user_created.id)?.id, children: jsxs("div", { className: 'flex items-center gap-3', children: [jsx("div", { className: 'tw:avatar', children: jsx("div", { className: 'tw:mask tw:rounded-full tw:h-8 tw:w-8 tw:mr-2', children: getUserProfile(a.user_created.id)?.image && (jsx("img", { src: appState.assetsApi.url +
4887
5118
  getUserProfile(a.user_created.id)?.image, alt: 'Avatar' })) }) }), jsxs("div", { children: [jsxs("div", { className: 'font-bold', children: [getUserProfile(a.user_created.id)?.name ??
4888
- a.user_created.first_name, ' '] }), jsx("div", { className: 'tw-text-xs opacity-50 tw-text-zinc-500', children: timeAgo(a.date_created) })] })] }) })) : (jsxs("div", { children: [jsxs("div", { className: 'font-bold', children: [a.user_created.first_name, " "] }), jsx("div", { className: 'tw-text-xs opacity-50 tw-text-zinc-500', children: timeAgo(a.date_created) })] })) })] }, i))) }) }) })] })), item.layer?.itemType.offers_and_needs && (jsxs(Fragment, { children: [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) }), 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: jsx("div", { className: 'tw-h-full', children: jsxs("div", { className: 'tw-grid tw-grid-cols-1', children: [offers.length > 0 ? (jsxs("div", { className: 'tw-col-span-1', children: [jsx("h3", { className: '-tw-mb-2', children: "Offers" }), jsx("div", { className: 'tw-flex tw-flex-wrap tw-mb-4', children: offers.map((o) => (jsx(TagView, { tag: o, onClick: () => {
5119
+ a.user_created.first_name, ' '] }), jsx("div", { className: 'tw:text-xs opacity-50 tw:text-zinc-500', children: timeAgo(a.date_created) })] })] }) })) : (jsxs("div", { children: [jsxs("div", { className: 'font-bold', children: [a.user_created.first_name, " "] }), jsx("div", { className: 'tw:text-xs opacity-50 tw:text-zinc-500', children: timeAgo(a.date_created) })] })) })] }, i))) }) }) })] })), item.layer?.itemType.offers_and_needs && (jsxs(Fragment, { children: [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) }), 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: jsx("div", { className: 'tw:h-full', children: jsxs("div", { className: 'tw:grid tw:grid-cols-1', children: [offers.length > 0 ? (jsxs("div", { className: 'tw:col-span-1', children: [jsx("h3", { className: 'tw:-mb-2', children: "Offers" }), jsx("div", { className: 'tw:flex tw:flex-wrap tw:mb-4', children: offers.map((o) => (jsx(TagView, { tag: o, onClick: () => {
4889
5120
  addFilterTag(o);
4890
- } }, o.id))) })] })) : (''), needs.length > 0 ? (jsxs("div", { className: 'tw-col-span-1', children: [jsx("h3", { className: '-tw-mb-2 tw-col-span-1', children: "Needs" }), jsx("div", { className: 'tw-flex tw-flex-wrap tw-mb-4', children: needs.map((n) => (jsx(TagView, { tag: n, onClick: () => addFilterTag(n) }, n.id))) })] })) : ('')] }) }) })] })), item.layer?.itemType.relations && (jsxs(Fragment, { children: [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) }), 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: jsx("div", { className: 'tw-h-full', children: 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 &&
4891
- relations.map((i) => (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: [jsx(LinkedItemsHeaderView, { unlinkPermission: updatePermission, item: i, unlinkCallback: unlinkItem, loading: loading }), jsx("div", { className: 'tw-overflow-y-auto tw-overflow-x-hidden tw-max-h-64 fade', children: jsx(TextView, { truncate: true, text: i.text, itemId: item.id }) })] }, i.id))), updatePermission && (jsx(ActionButton, { collection: 'items', item: item, existingRelations: relations, triggerItemSelected: linkItem }))] }) }) })] }))] }));
5121
+ } }, o.id))) })] })) : (''), needs.length > 0 ? (jsxs("div", { className: 'tw:col-span-1', children: [jsx("h3", { className: 'tw:-mb-2 tw:col-span-1', children: "Needs" }), jsx("div", { className: 'tw:flex tw:flex-wrap tw:mb-4', children: needs.map((n) => (jsx(TagView, { tag: n, onClick: () => addFilterTag(n) }, n.id))) })] })) : ('')] }) }) })] })), item.layer?.itemType.relations && (jsxs(Fragment, { children: [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) }), 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: jsx("div", { className: 'tw:h-full', children: 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 &&
5122
+ relations.map((i) => (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: [jsx(LinkedItemsHeaderView, { unlinkPermission: updatePermission, item: i, unlinkCallback: unlinkItem, loading: loading }), jsx("div", { className: 'tw:overflow-y-auto tw:overflow-x-hidden tw:max-h-64 fade', children: jsx(TextView, { truncate: true, text: i.text, itemId: item.id }) })] }, i.id))), updatePermission && (jsx(ActionButton, { collection: 'items', item: item, existingRelations: relations, triggerItemSelected: linkItem }))] }) }) })] }))] }));
4892
5123
  };
4893
5124
 
4894
5125
  /**
@@ -5014,7 +5245,7 @@ function ProfileView({ attestationApi }) {
5014
5245
  setTemplate(userLayer.itemType.template);
5015
5246
  }
5016
5247
  }, [item, layers]);
5017
- return (jsx(Fragment, { children: item && (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: jsxs(Fragment, { children: [jsx("div", { className: 'tw-px-6 tw-pt-6', children: jsx(HeaderView, { api: item.layer?.api, item: item, deleteCallback: (e) => handleDelete(e, item, setLoading, removeItem, map, navigate), editCallback: () => navigate('/edit-item/' + item.id), setPositionCallback: () => {
5248
+ return (jsx(Fragment, { children: item && (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: jsxs(Fragment, { children: [jsx("div", { className: 'tw:px-6 tw:pt-6', children: jsx(HeaderView, { api: item.layer?.api, item: item, deleteCallback: (e) => handleDelete(e, item, setLoading, removeItem, map, navigate), editCallback: () => navigate('/edit-item/' + item.id), setPositionCallback: () => {
5018
5249
  map.closePopup();
5019
5250
  setSelectPosition(item);
5020
5251
  navigate('/');
@@ -5046,7 +5277,7 @@ function ArrowUpTrayIcon({
5046
5277
  }
5047
5278
  const ForwardRef = /*#__PURE__*/ React.forwardRef(ArrowUpTrayIcon);
5048
5279
 
5049
- var UserSVG = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMCIgdmlld0JveD0iMCAwIDE1MCAxNTAiIGNsYXNzPSJ0dy13LTIwIHR3LWgtMjAgdHctcm91bmRlZC1mdWxsIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogcmdiKDIzOCwgMjM4LCAyMzgpOyI+PHBhdGggZmlsbD0iI2NjYyIgZD0iTSAxMDQuNjg3MzEsNTYuNjg5MzUzIEMgMTAyLjE5NDM1LDgwLjY0MDQ5MyA5My4xMDQ5ODEsOTcuMjY4NzUgNzQuMzcyMTk2LDk3LjI2ODc1IDU1LjYzOTQwMiw5Ny4yNjg3NSA0Ni45ODg4MjMsODIuMzA4MDM0IDQ0LjA1NzAwNSw1Ny4yODk5NDEgNDEuNjIzMzE0LDM0LjkzODgzOCA1NS42Mzk0MDIsMTUuODAwMTUyIDc0LjM3MjE5NiwxNS44MDAxNTIgYyAxOC43MzI3ODUsMCAzMi40NTE5NDQsMTguNDkzOTcxIDMwLjMxNTExNCw0MC44ODkyMDEgeiI+PC9wYXRoPjxwYXRoIGZpbGw9IiNjY2MiIGQ9Ik0gOTIuNTY3NSA4OS42MDQ4IEMgOTAuNzk0ODQgOTMuNDc4OTMgODkuMzk4OTMgMTAyLjQ1MDQgOTQuODY0NzggMTA2LjkwMzkgQyAxMDMuOTM3NSAxMTQuMjk2MyAxMDYuNzA2NCAxMTYuNDcyMyAxMTguMzExNyAxMTguOTQ2MiBDIDE0NC4wNDMyIDEyNC40MzE0IDE0MS42NDkyIDEzOC4xNTQzIDE0Ni41MjQ0IDE0OS4yMjA2IEwgNC4yNjg0NDQgMTQ5LjEwMjMgQyA4LjQ3MjIyMyAxMzguNjUxOCA2LjUwNTc5OSAxMjQuNzgxMiAzMi40MDA1MSAxMTguMzg3IEMgNDEuODA5OTIgMTE2LjA2MzUgNDUuNjY1MTMgMTEzLjg4MjMgNTMuNTg2NTkgMTA3LjAxNTggQyA1OC41Mjc0NCAxMDIuNzMyOSA1Ny41MjU4MyA5My45OTI2NyA1Ni40MzA4NCA4OS4yNjkyNiBDIDUyLjQ5Mjc1IDg4LjgzMDExIDk0LjE3MzkgODguMTQwNTQgOTIuNTY3NSA4OS42MDQ4IHoiPjwvcGF0aD48L3N2Zz4=';
5280
+ var UserSVG = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMCIgdmlld0JveD0iMCAwIDE1MCAxNTAiIGNsYXNzPSJ3LTIwIGgtMjAgcm91bmRlZC1mdWxsIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogcmdiKDIzOCwgMjM4LCAyMzgpOyI+PHBhdGggZmlsbD0iI2NjYyIgZD0iTSAxMDQuNjg3MzEsNTYuNjg5MzUzIEMgMTAyLjE5NDM1LDgwLjY0MDQ5MyA5My4xMDQ5ODEsOTcuMjY4NzUgNzQuMzcyMTk2LDk3LjI2ODc1IDU1LjYzOTQwMiw5Ny4yNjg3NSA0Ni45ODg4MjMsODIuMzA4MDM0IDQ0LjA1NzAwNSw1Ny4yODk5NDEgNDEuNjIzMzE0LDM0LjkzODgzOCA1NS42Mzk0MDIsMTUuODAwMTUyIDc0LjM3MjE5NiwxNS44MDAxNTIgYyAxOC43MzI3ODUsMCAzMi40NTE5NDQsMTguNDkzOTcxIDMwLjMxNTExNCw0MC44ODkyMDEgeiI+PC9wYXRoPjxwYXRoIGZpbGw9IiNjY2MiIGQ9Ik0gOTIuNTY3NSA4OS42MDQ4IEMgOTAuNzk0ODQgOTMuNDc4OTMgODkuMzk4OTMgMTAyLjQ1MDQgOTQuODY0NzggMTA2LjkwMzkgQyAxMDMuOTM3NSAxMTQuMjk2MyAxMDYuNzA2NCAxMTYuNDcyMyAxMTguMzExNyAxMTguOTQ2MiBDIDE0NC4wNDMyIDEyNC40MzE0IDE0MS42NDkyIDEzOC4xNTQzIDE0Ni41MjQ0IDE0OS4yMjA2IEwgNC4yNjg0NDQgMTQ5LjEwMjMgQyA4LjQ3MjIyMyAxMzguNjUxOCA2LjUwNTc5OSAxMjQuNzgxMiAzMi40MDA1MSAxMTguMzg3IEMgNDEuODA5OTIgMTE2LjA2MzUgNDUuNjY1MTMgMTEzLjg4MjMgNTMuNTg2NTkgMTA3LjAxNTggQyA1OC41Mjc0NCAxMDIuNzMyOSA1Ny41MjU4MyA5My45OTI2NyA1Ni40MzA4NCA4OS4yNjkyNiBDIDUyLjQ5Mjc1IDg4LjgzMDExIDk0LjE3MzkgODguMTQwNTQgOTIuNTY3NSA4OS42MDQ4IHoiPjwvcGF0aD48L3N2Zz4=';
5050
5281
 
5051
5282
  const AvatarWidget = ({ avatar, setAvatar }) => {
5052
5283
  const [crop, setCrop] = useState();
@@ -5142,10 +5373,10 @@ const AvatarWidget = ({ avatar, setAvatar }) => {
5142
5373
  const asset = await appState.assetsApi.upload(resizedBlob, 'avatar');
5143
5374
  setAvatar(asset.id);
5144
5375
  }, [appState.assetsApi, setAvatar]);
5145
- return (jsxs(Fragment, { children: [!cropping ? (jsxs("label", { className: 'custom-file-upload', children: [jsx("input", { type: 'file', accept: 'image/*', className: 'tw-file-input tw-w-full tw-max-w-xs', onChange: onImageChange }), jsx("div", { className: 'button tw-btn tw-btn-lg tw-btn-circle tw-animate-none', children: jsx(ForwardRef, { className: 'tw-w-6 tw-h-6' }) }), avatar ? (jsx("div", { className: 'tw-h-20 tw-w-20', children: jsx("img", { src: appState.assetsApi.url + avatar, className: 'tw-h-20 tw-w-20 tw-rounded-full' }) })) : (jsx("div", { className: 'tw-h-20 tw-w-20', children: jsx("img", { src: UserSVG, className: 'tw-rounded-full' }) }))] })) : (jsx("div", { className: 'tw-w-20 tw-flex tw-items-center tw-justify-center', children: jsx("span", { className: 'tw-loading tw-loading-spinner' }) })), jsxs(DialogModal, { title: '', isOpened: cropModalOpen, onClose: () => {
5376
+ return (jsxs(Fragment, { children: [!cropping ? (jsxs("label", { className: 'custom-file-upload', children: [jsx("input", { type: 'file', accept: 'image/*', className: 'tw:file-input tw:w-full tw:max-w-xs', onChange: onImageChange }), jsx("div", { className: 'button tw:btn tw:btn-lg tw:btn-circle tw:animate-none', children: jsx(ForwardRef, { className: 'tw:w-6 tw:h-6' }) }), avatar ? (jsx("div", { className: 'tw:h-20 tw:w-20', children: jsx("img", { src: appState.assetsApi.url + avatar, className: 'tw:h-20 tw:w-20 tw:rounded-full' }) })) : (jsx("div", { className: 'tw:h-20 tw:w-20', children: jsx("img", { src: UserSVG, className: 'tw:rounded-full' }) }))] })) : (jsx("div", { className: 'tw:w-20 tw:flex tw:items-center tw:justify-center', children: jsx("span", { className: 'tw:loading tw:loading-spinner' }) })), jsxs(DialogModal, { title: '', isOpened: cropModalOpen, onClose: () => {
5146
5377
  setCropModalOpen(false);
5147
5378
  setImage('');
5148
- }, closeOnClickOutside: false, children: [jsx(ReactCrop, { crop: crop, onChange: (c) => setCrop(c), aspect: 1, children: jsx("img", { src: image, ref: imgRef, onLoad: onImageLoad }) }), jsx("button", { className: 'tw-btn tw-btn-primary', onClick: () => {
5379
+ }, closeOnClickOutside: false, children: [jsx(ReactCrop, { crop: crop, onChange: (c) => setCrop(c), aspect: 1, children: jsx("img", { src: image, ref: imgRef, onLoad: onImageLoad }) }), jsx("button", { className: 'tw:btn tw:btn-primary', onClick: () => {
5149
5380
  setCropping(true);
5150
5381
  setCropModalOpen(false);
5151
5382
  renderCrop();
@@ -5205,41 +5436,48 @@ const ColorPicker = ({ color, onChange, className }) => {
5205
5436
  });
5206
5437
  }
5207
5438
  }, []);
5208
- return (jsxs("div", { ref: colorPickerRef, className: `picker ${className}`, children: [jsx("div", { className: 'swatch', style: { backgroundColor: color }, onClick: () => toggle(true) }), isOpen && (jsx("div", { className: 'popover tw-z-[10000]', ref: popover, children: jsx(HexColorPicker, { color: color, onChange: onChange, onClick: () => toggle(false) }) }))] }));
5439
+ return (jsxs("div", { ref: colorPickerRef, className: `picker ${className}`, children: [jsx("div", { className: 'swatch', style: { backgroundColor: color }, onClick: () => toggle(true) }), isOpen && (jsx("div", { className: 'popover tw:z-10000', ref: popover, children: jsx(HexColorPicker, { color: color, onChange: onChange, onClick: () => toggle(false) }) }))] }));
5209
5440
  };
5210
5441
 
5211
5442
  const FormHeader = ({ item, state, setState }) => {
5212
- return (jsxs("div", { className: 'tw-flex', children: [jsx(AvatarWidget, { avatar: state.image, setAvatar: (i) => setState((prevState) => ({
5213
- ...prevState,
5214
- image: i,
5215
- })) }), jsx(ColorPicker, { color: state.color, onChange: (c) => setState((prevState) => ({
5216
- ...prevState,
5217
- color: c,
5218
- })), className: '-tw-left-6 tw-top-14 -tw-mr-6' }), jsxs("div", { className: 'tw-grow tw-mr-4', children: [jsx(TextInput, { placeholder: 'Name', defaultValue: item?.name ? item.name : '', updateFormValue: (v) => setState((prevState) => ({
5219
- ...prevState,
5220
- name: v,
5221
- })), containerStyle: 'tw-grow tw-input-md' }), jsx(TextInput, { placeholder: 'Subtitle', required: false, defaultValue: item?.subname ? item.subname : '', updateFormValue: (v) => setState((prevState) => ({
5222
- ...prevState,
5223
- subname: v,
5224
- })), containerStyle: 'tw-grow tw-input-sm tw-px-4 tw-mt-1' })] })] }));
5443
+ return (jsx("div", { className: 'tw:flex-none', children: jsxs("div", { className: 'tw:flex', children: [jsx(AvatarWidget, { avatar: state.image, setAvatar: (i) => setState((prevState) => ({
5444
+ ...prevState,
5445
+ image: i,
5446
+ })) }), jsx(ColorPicker, { color: state.color, onChange: (c) => setState((prevState) => ({
5447
+ ...prevState,
5448
+ color: c,
5449
+ })), className: 'tw:-left-6 tw:top-14 tw:-mr-6' }), jsxs("div", { className: 'tw:grow tw:mr-4 tw:pt-1', children: [jsx(TextInput, { placeholder: 'Name', defaultValue: item?.name ? item.name : '', updateFormValue: (v) => setState((prevState) => ({
5450
+ ...prevState,
5451
+ name: v,
5452
+ })), containerStyle: 'tw:grow tw:px-4', inputStyle: 'tw:input-md' }), jsx(TextInput, { placeholder: 'Subtitle', required: false, defaultValue: item?.subname ? item.subname : '', updateFormValue: (v) => setState((prevState) => ({
5453
+ ...prevState,
5454
+ subname: v,
5455
+ })), containerStyle: 'tw:grow tw:px-4 tw:mt-1', inputStyle: 'tw:input-sm' })] })] }) }));
5225
5456
  };
5226
5457
 
5227
5458
  const ContactInfoForm = ({ state, setState, }) => {
5228
- return (jsxs("div", { className: 'tw-mt-4 tw-space-y-4', children: [jsxs("div", { children: [jsx("label", { htmlFor: 'email', className: 'tw-block tw-text-sm tw-font-medium tw-text-gray-500 tw-mb-1', children: "Email-Adresse (Kontakt):" }), jsx(TextInput, { placeholder: 'Email', type: 'email', required: false, defaultValue: state.contact, updateFormValue: (v) => setState((prevState) => ({
5459
+ return (jsxs("div", { className: 'tw:mt-4 tw:space-y-4', children: [jsxs("div", { children: [jsx("label", { htmlFor: 'email', className: 'tw:block tw:text-sm tw:font-medium tw:text-gray-500 tw:mb-1', children: "Email-Adresse (Kontakt):" }), jsx(TextInput, { placeholder: 'Email', type: 'email', required: false, defaultValue: state.contact, updateFormValue: (v) => setState((prevState) => ({
5229
5460
  ...prevState,
5230
5461
  contact: v,
5231
- })) })] }), jsxs("div", { children: [jsx("label", { htmlFor: 'telephone', className: 'tw-block tw-text-sm tw-font-medium tw-text-gray-500 tw-mb-1', children: "Telefonnummer (Kontakt):" }), jsx(TextInput, { placeholder: 'Telefonnummer', type: 'tel', required: false, pattern: '^\\+?[0-9\\s\\-]{7,15}$', defaultValue: state.telephone, updateFormValue: (v) => setState((prevState) => ({
5462
+ })) })] }), jsxs("div", { children: [jsx("label", { htmlFor: 'telephone', className: 'tw:block tw:text-sm tw:font-medium tw:text-gray-500 tw:mb-1', children: "Telefonnummer (Kontakt):" }), jsx(TextInput, { placeholder: 'Telefonnummer', type: 'tel', required: false, pattern: '^\\+?[0-9\\s\\-]{7,15}$', defaultValue: state.telephone, updateFormValue: (v) => setState((prevState) => ({
5232
5463
  ...prevState,
5233
5464
  telephone: v,
5234
5465
  })) })] })] }));
5235
5466
  };
5236
5467
 
5468
+ const CrowdfundingForm = ({ state, setState, }) => {
5469
+ return (jsx("div", { className: 'tw:mt-4 tw:space-y-4', children: jsxs("div", { children: [jsx("label", { htmlFor: 'OpenCollectiveSlug', className: 'tw:block tw:text-sm tw:font-medium tw:text-gray-500 tw:mb-1', children: "Open Collective Slug:" }), jsx(TextInput, { placeholder: 'Open Collective Slug', type: 'text', required: false, defaultValue: state.openCollectiveSlug, updateFormValue: (v) => setState((prevState) => ({
5470
+ ...prevState,
5471
+ openCollectiveSlug: v,
5472
+ })) })] }) }));
5473
+ };
5474
+
5237
5475
  const ComboBoxInput = ({ id, options, value, onValueChange }) => {
5238
5476
  const handleChange = (e) => {
5239
5477
  const value = e.target.value;
5240
5478
  onValueChange(value);
5241
5479
  };
5242
- return (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) => (jsx("option", { value: o, children: o }, o))) }));
5480
+ return (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) => (jsx("option", { value: o, children: o }, o))) }));
5243
5481
  };
5244
5482
 
5245
5483
  const GroupSubheaderForm = ({ state, setState, groupStates, groupTypes, }) => {
@@ -5260,10 +5498,10 @@ const GroupSubheaderForm = ({ state, setState, groupStates, groupTypes, }) => {
5260
5498
  }
5261
5499
  // eslint-disable-next-line react-hooks/exhaustive-deps
5262
5500
  }, [state.group_type, groupTypes]);
5263
- return (jsxs("div", { className: 'tw-grid tw-grid-cols-1 md:tw-grid-cols-2 tw-gap-6', children: [jsxs("div", { children: [jsx("label", { htmlFor: 'status', className: 'tw-block tw-text-sm tw-font-medium tw-text-gray-500 tw-mb-1', children: "Gruppenstatus:" }), jsx(ComboBoxInput, { id: 'status', options: groupStates || [], value: state.status, onValueChange: (v) => setState((prevState) => ({
5501
+ return (jsxs("div", { className: 'tw:grid tw:grid-cols-1 tw:md:grid-cols-2 tw:gap-6', children: [jsxs("div", { children: [jsx("label", { htmlFor: 'status', className: 'tw:block tw:text-sm tw:font-medium tw:text-gray-500 tw:mb-1', children: "Gruppenstatus:" }), jsx(ComboBoxInput, { id: 'status', options: groupStates || [], value: state.status, onValueChange: (v) => setState((prevState) => ({
5264
5502
  ...prevState,
5265
5503
  status: v,
5266
- })) })] }), jsxs("div", { children: [jsx("label", { htmlFor: 'groupType', className: 'tw-block tw-text-sm tw-font-medium tw-text-gray-500 tw-mb-1', children: "Gruppenart:" }), jsx(ComboBoxInput, { id: 'groupType', options: groupTypes?.map((gt) => gt.groupTypes_id.name) || [], value: state.group_type, onValueChange: (v) => setState((prevState) => ({
5504
+ })) })] }), jsxs("div", { children: [jsx("label", { htmlFor: 'groupType', className: 'tw:block tw:text-sm tw:font-medium tw:text-gray-500 tw:mb-1', children: "Gruppenart:" }), jsx(ComboBoxInput, { id: 'groupType', options: groupTypes?.map((gt) => gt.groupTypes_id.name) || [], value: state.group_type, onValueChange: (v) => setState((prevState) => ({
5267
5505
  ...prevState,
5268
5506
  group_type: v,
5269
5507
  })) })] })] }));
@@ -5283,7 +5521,7 @@ var MarkdownSVG = 'data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9J2h0dHA6Ly93d3cudzM
5283
5521
 
5284
5522
  const MarkdownHint = () => {
5285
5523
  const [expended, setExpended] = useState(false);
5286
- return (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: [jsx("img", { src: MarkdownSVG, alt: 'Markdown', className: 'octicon octicon-markdown tw-gray-400' }), expended && (jsxs("a", { href: 'https://www.markdownguide.org/cheat-sheet/#basic-syntax', target: '_blank', rel: 'noreferrer', children: [jsx("span", { className: 'Button-label tw-ml-1', children: "Markdown is support" }), ' '] }))] }));
5524
+ return (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: [jsx("img", { src: MarkdownSVG, alt: 'Markdown', className: 'octicon octicon-markdown tw:gray-400' }), expended && (jsxs("a", { href: 'https://www.markdownguide.org/cheat-sheet/#basic-syntax', target: '_blank', rel: 'noreferrer', children: [jsx("span", { className: 'Button-label tw:ml-1', children: "Markdown is support" }), ' '] }))] }));
5287
5525
  };
5288
5526
 
5289
5527
  const ProfileTextForm = ({ state, setState,
@@ -5295,12 +5533,12 @@ dataField, heading, size, hideInputLabel, required, }) => {
5295
5533
  setField('text');
5296
5534
  }
5297
5535
  }, [dataField]);
5298
- return (jsxs("div", { className: 'tw-h-full tw-flex tw-flex-col tw-mt-4', children: [jsxs("div", { className: 'tw-flex tw-justify-between tw-items-center', children: [jsxs("label", { htmlFor: 'nextAppointment', className: 'tw-block tw-text-sm tw-font-medium tw-text-gray-500 tw-mb-1', children: [heading || 'Text', ":"] }), jsx(MarkdownHint, {})] }), jsx(TextAreaInput, { placeholder: '...',
5536
+ return (jsxs("div", { className: 'tw:h-full tw:flex tw:flex-col tw:mt-4', children: [jsxs("div", { className: 'tw:flex tw:justify-between tw:items-center', children: [jsxs("label", { htmlFor: 'nextAppointment', className: 'tw:block tw:text-sm tw:font-medium tw:text-gray-500 tw:mb-1', children: [heading || 'Text', ":"] }), jsx(MarkdownHint, {})] }), jsx(TextAreaInput, { placeholder: '...',
5299
5537
  // eslint-disable-next-line security/detect-object-injection
5300
5538
  defaultValue: state[field], updateFormValue: (v) => setState((prevState) => ({
5301
5539
  ...prevState,
5302
5540
  [field]: v,
5303
- })), labelStyle: hideInputLabel ? 'tw-hidden' : '', containerStyle: size === 'full' ? 'tw-grow tw-h-full' : '', inputStyle: size === 'full' ? 'tw-h-full' : 'tw-h-24', required: required })] }));
5541
+ })), labelStyle: hideInputLabel ? 'tw:hidden' : '', containerStyle: size === 'full' ? 'tw:grow tw:h-full' : '', inputStyle: size === 'full' ? 'tw:h-full' : 'tw:h-24', required: required })] }));
5304
5542
  };
5305
5543
 
5306
5544
  const componentMap = {
@@ -5308,20 +5546,21 @@ const componentMap = {
5308
5546
  texts: ProfileTextForm,
5309
5547
  contactInfos: ContactInfoForm,
5310
5548
  startEnd: ProfileStartEndForm,
5549
+ crowdfundings: CrowdfundingForm,
5311
5550
  // weitere Komponenten hier
5312
5551
  };
5313
5552
  const FlexForm = ({ item, state, setState, }) => {
5314
- return (jsx("div", { className: 'tw-mt-6 tw-flex tw-flex-col tw-h-full', children: item.layer?.itemType.profileTemplate.map((templateItem) => {
5553
+ return (jsx("div", { className: 'tw:mt-6 tw:flex tw:flex-col tw:h-full', children: item.layer?.itemType.profileTemplate.map((templateItem) => {
5315
5554
  const TemplateComponent = componentMap[templateItem.collection];
5316
- return TemplateComponent ? (jsx(TemplateComponent, { state: state, setState: setState, item: item, ...templateItem.item }, templateItem.id)) : (jsx("div", { children: "Component not found" }, templateItem.id));
5555
+ return TemplateComponent ? (jsx(TemplateComponent, { state: state, setState: setState, item: item, ...templateItem.item }, templateItem.id)) : (jsxs("div", { className: 'tw:mt-2', children: [templateItem.collection, " form not found"] }, templateItem.id));
5317
5556
  }) }));
5318
5557
  };
5319
5558
 
5320
5559
  const OnepagerForm = ({ item, state, setState, }) => {
5321
- return (jsxs("div", { className: 'tw-space-y-6 tw-mt-6', children: [jsx(GroupSubheaderForm, { state: state, setState: setState, item: item }), jsx(ContactInfoForm, { state: state, setState: setState }), jsxs("div", { children: [jsx("label", { htmlFor: 'description', className: 'tw-block tw-text-sm tw-font-medium tw-text-gray-500 tw-mb-1', children: "Gruppenbeschreibung:" }), jsx(TextAreaInput, { placeholder: 'Beschreibung', defaultValue: state.text || '', updateFormValue: (v) => setState((prevState) => ({
5560
+ return (jsxs("div", { className: 'tw:space-y-6 tw:mt-6', children: [jsx(GroupSubheaderForm, { state: state, setState: setState, item: item }), jsx(ContactInfoForm, { state: state, setState: setState }), jsxs("div", { children: [jsx("label", { htmlFor: 'description', className: 'tw:block tw:text-sm tw:font-medium tw:text-gray-500 tw:mb-1', children: "Gruppenbeschreibung:" }), jsx(TextAreaInput, { placeholder: 'Beschreibung', defaultValue: state.text || '', updateFormValue: (v) => setState((prevState) => ({
5322
5561
  ...prevState,
5323
5562
  text: v,
5324
- })), inputStyle: 'tw-h-48' })] })] }));
5563
+ })), inputStyle: 'tw:h-48' })] })] }));
5325
5564
  };
5326
5565
 
5327
5566
  // eslint-disable-next-line react/prop-types
@@ -5331,7 +5570,7 @@ const SimpleForm = ({ state, setState }) => {
5331
5570
  defaultValue: state?.text || '', updateFormValue: (v) => setState((prevState) => ({
5332
5571
  ...prevState,
5333
5572
  text: v,
5334
- })), containerStyle: 'tw-mt-8 tw-h-full', inputStyle: 'tw-h-full' }));
5573
+ })), containerStyle: 'tw:mt-8 tw:h-full', inputStyle: 'tw:h-full' }));
5335
5574
  };
5336
5575
 
5337
5576
  const Autocomplete = ({ inputProps, suggestions, onSelected, pushFilteredSuggestions, setFocus, }) => {
@@ -5383,7 +5622,7 @@ const Autocomplete = ({ inputProps, suggestions, onSelected, pushFilteredSuggest
5383
5622
  break;
5384
5623
  }
5385
5624
  };
5386
- return (jsxs("div", { children: [jsx("input", { ref: inputRef, ...inputProps, type: 'text', onChange: (e) => handleChange(e), tabIndex: '-1', onKeyDown: handleKeyDown }), 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) => (jsx("li", { onClick: () => handleSuggestionClick(suggestion), children: jsx(TagView, { heighlight: index === heighlightedSuggestion, tag: suggestion }) }, index))) })] }));
5625
+ return (jsxs("div", { children: [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' }), 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) => (jsx("li", { onClick: () => handleSuggestionClick(suggestion), children: jsx(TagView, { heighlight: index === heighlightedSuggestion, tag: suggestion }) }, index))) })] }));
5387
5626
  };
5388
5627
 
5389
5628
  // eslint-disable-next-line react/prop-types
@@ -5455,7 +5694,7 @@ const TagsWidget = ({ placeholder, containerStyle, defaultTags, onUpdate }) => {
5455
5694
  onKeyDown,
5456
5695
  onKeyUp,
5457
5696
  onChange,
5458
- className: 'tw-bg-transparent tw-w-fit tw-mt-5 tw-h-fit',
5697
+ className: 'tw:bg-transparent tw:w-fit tw:mt-5 tw:h-fit',
5459
5698
  };
5460
5699
  /* eslint-disable react/prop-types */
5461
5700
  return (jsx("div", { onClick: () => {
@@ -5463,7 +5702,7 @@ const TagsWidget = ({ placeholder, containerStyle, defaultTags, onUpdate }) => {
5463
5702
  setTimeout(() => {
5464
5703
  setFocusInput(false);
5465
5704
  }, 200);
5466
- }, className: `tw-input tw-input-bordered tw-cursor-text ${containerStyle}`, children: jsxs("div", { className: 'tw-flex tw-flex-wrap tw-h-fit', children: [defaultTags.map((tag) => (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: [jsx("div", { className: 'tw-card-actions tw-justify-end', children: 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" }) }), jsx("b", { children: decodeTag(tag.name) })] }, tag.name))), jsx(Autocomplete, { suggestions: tags, pushFilteredSuggestions: pushFilteredSuggestions, setFocus: focusInput, inputProps: inputProps, onSelected: (tag) => onSelected(tag) })] }) }));
5705
+ }, className: `tw:textarea tw:cursor-text ${containerStyle}`, children: jsxs("div", { className: 'tw:flex tw:flex-wrap tw:h-fit', children: [defaultTags.map((tag) => (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: [jsx("div", { className: 'tw:card-actions tw:justify-end', children: 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" }) }), jsx("b", { children: decodeTag(tag.name) })] }, tag.name))), jsx(Autocomplete, { suggestions: tags, pushFilteredSuggestions: pushFilteredSuggestions, setFocus: focusInput, inputProps: inputProps, onSelected: (tag) => onSelected(tag) })] }) }));
5467
5706
  /* eslint-enable react/prop-types */
5468
5707
  };
5469
5708
 
@@ -5487,26 +5726,26 @@ const TabsForm = ({ item, state, setState, updatePermission, linkItem, unlinkIte
5487
5726
  setActiveTab(urlTab ? Number(urlTab) : 1);
5488
5727
  // eslint-disable-next-line react-hooks/exhaustive-deps
5489
5728
  }, [location.search]);
5490
- return (jsxs("div", { role: 'tablist', className: 'tw-tabs tw-tabs-lifted tw-mt-3', children: [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) }), 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: 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 && (jsx(PopupStartEndInput, { item: item, showLabels: false, updateEndValue: (e) => setState((prevState) => ({
5491
- ...prevState,
5492
- end: e,
5493
- })), updateStartValue: (s) => setState((prevState) => ({
5494
- ...prevState,
5495
- start: s,
5496
- })) })), jsx(TextAreaInput, { placeholder: 'about ...', defaultValue: item?.text ? item.text : '', updateFormValue: (v) => setState((prevState) => ({
5497
- ...prevState,
5498
- text: v,
5499
- })), containerStyle: 'tw-grow', inputStyle: `tw-h-full ${!item.layer.itemType.show_start_end_input && 'tw-border-t-0 tw-rounded-tl-none'}` }), jsx("div", { children: jsx(TextAreaInput, { placeholder: 'contact info ...', defaultValue: state.contact || '', updateFormValue: (c) => setState((prevState) => ({
5729
+ return (jsx("div", { className: 'tw:grow', children: jsxs("div", { role: 'tablist', className: 'tw:tabs tw:h-full tw:tabs-lift tw:mt-3', children: [jsx("input", { type: 'radio', name: 'my_tabs_2', role: 'tab', className: 'tw:tab ', "aria-label": 'Info', checked: activeTab === 1 && true, onChange: () => updateActiveTab(1) }), 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: 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 && (jsx(PopupStartEndInput, { item: item, showLabels: false, updateEndValue: (e) => setState((prevState) => ({
5730
+ ...prevState,
5731
+ end: e,
5732
+ })), updateStartValue: (s) => setState((prevState) => ({
5733
+ ...prevState,
5734
+ start: s,
5735
+ })) })), jsx(TextAreaInput, { placeholder: 'about ...', defaultValue: item?.text ? item.text : '', updateFormValue: (v) => setState((prevState) => ({
5736
+ ...prevState,
5737
+ text: v,
5738
+ })), containerStyle: 'tw:grow', inputStyle: `tw:h-full ${!item.layer.itemType.show_start_end_input && 'tw:border-t-0 tw:rounded-tl-none'}` }), jsx(TextAreaInput, { placeholder: 'contact info ...', defaultValue: state.contact || '', updateFormValue: (c) => setState((prevState) => ({
5500
5739
  ...prevState,
5501
5740
  contact: c,
5502
- })), inputStyle: 'tw-h-24', containerStyle: 'tw-pt-4', required: false }) })] }) }), item.layer?.itemType.offers_and_needs && (jsxs(Fragment, { children: [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) }), 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: jsxs("div", { className: 'tw-h-full', children: [jsx("div", { className: 'tw-w-full tw-h-[calc(50%-0.75em)] tw-mb-4', children: jsx(TagsWidget, { defaultTags: state.offers, onUpdate: (v) => setState((prevState) => ({
5503
- ...prevState,
5504
- offers: v,
5505
- })), 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' }) }), jsx("div", { className: 'tw-w-full tw-h-[calc(50%-1.5em)]', children: jsx(TagsWidget, { defaultTags: state.needs, onUpdate: (v) => setState((prevState) => ({
5506
- ...prevState,
5507
- needs: v,
5508
- })), 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 && (jsxs(Fragment, { children: [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) }), 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: jsx("div", { className: 'tw-h-full', children: 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 &&
5509
- state.relations.map((i) => (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: [jsx(LinkedItemsHeaderView, { unlinkPermission: updatePermission, item: i, unlinkCallback: (id) => unlinkItem(id, item, updateItem), loading: loading }), jsx("div", { className: 'tw-overflow-y-auto tw-overflow-x-hidden tw-max-h-64 fade', children: jsx(TextView, { truncate: true, itemId: item.id }) })] }, i.id))), updatePermission && (jsx(ActionButton, { customStyle: '!tw-bottom-24', collection: 'items', item: item, existingRelations: state.relations, triggerItemSelected: (id) => linkItem(id, item, updateItem) }))] }) }) })] }))] }));
5741
+ })), inputStyle: '', containerStyle: 'tw:pt-4 tw:h-24 tw:flex-none', required: false })] }) }), item.layer?.itemType.offers_and_needs && (jsxs(Fragment, { children: [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) }), 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: jsxs("div", { className: 'tw:h-full', children: [jsx("div", { className: 'tw:w-full tw:h-[calc(50%-0.75em)] tw:mb-4', children: jsx(TagsWidget, { defaultTags: state.offers, onUpdate: (v) => setState((prevState) => ({
5742
+ ...prevState,
5743
+ offers: v,
5744
+ })), 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' }) }), jsx("div", { className: 'tw:w-full tw:h-[calc(50%-1.5em)]', children: jsx(TagsWidget, { defaultTags: state.needs, onUpdate: (v) => setState((prevState) => ({
5745
+ ...prevState,
5746
+ needs: v,
5747
+ })), 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 && (jsxs(Fragment, { children: [jsx("input", { type: 'radio', name: 'my_tabs_2', role: 'tab', className: 'tw:tab ', "aria-label": 'Links', checked: activeTab === 7 && true, onChange: () => updateActiveTab(7) }), 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: jsx("div", { className: 'tw:h-full', children: 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 &&
5748
+ state.relations.map((i) => (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: [jsx(LinkedItemsHeaderView, { unlinkPermission: updatePermission, item: i, unlinkCallback: (id) => unlinkItem(id, item, updateItem), loading: loading }), jsx("div", { className: 'tw:overflow-y-auto tw:overflow-x-hidden tw:max-h-64 fade', children: jsx(TextView, { truncate: true, itemId: item.id }) })] }, i.id))), updatePermission && (jsx(ActionButton, { customStyle: 'tw:bottom-24!', collection: 'items', item: item, existingRelations: state.relations, triggerItemSelected: (id) => linkItem(id, item, updateItem) }))] }) }) })] }))] }) }));
5510
5749
  };
5511
5750
 
5512
5751
  /**
@@ -5531,6 +5770,7 @@ function ProfileForm() {
5531
5770
  relations: [],
5532
5771
  start: '',
5533
5772
  end: '',
5773
+ openCollectiveSlug: '',
5534
5774
  });
5535
5775
  const [updatePermission, setUpdatePermission] = useState(false);
5536
5776
  const [loading, setLoading] = useState(false);
@@ -5614,6 +5854,7 @@ function ProfileForm() {
5614
5854
  relations,
5615
5855
  start: item.start ?? '',
5616
5856
  end: item.end ?? '',
5857
+ openCollectiveSlug: item.openCollectiveSlug ?? '',
5617
5858
  });
5618
5859
  // eslint-disable-next-line react-hooks/exhaustive-deps
5619
5860
  }, [item, tags, items]);
@@ -5627,10 +5868,10 @@ function ProfileForm() {
5627
5868
  setTemplate(userLayer.itemType.template);
5628
5869
  }
5629
5870
  }, [item, layers]);
5630
- return (jsx(Fragment, { children: 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: jsx("form", { className: 'tw-h-full', onSubmit: (e) => {
5871
+ return (jsx(Fragment, { children: 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: jsx("form", { className: 'tw:h-full', onSubmit: (e) => {
5631
5872
  e.preventDefault();
5632
5873
  void onUpdateItem(state, item, tags, addTag, setLoading, navigate, updateItem, addItem, user, urlParams);
5633
- }, children: jsxs("div", { className: 'tw-flex tw-flex-col tw-h-full', children: [jsx(FormHeader, { item: item, state: state, setState: setState }), template === 'onepager' && (jsx(OnepagerForm, { item: item, state: state, setState: setState })), template === 'simple' && jsx(SimpleForm, { state: state, setState: setState }), template === 'flex' && (jsx(FlexForm, { item: item, state: state, setState: setState })), template === 'tabs' && (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 })), jsx("div", { className: 'tw-mt-4', children: jsx("button", { className: loading ? ' tw-loading tw-btn tw-float-right' : 'tw-btn tw-float-right', type: 'submit', style: {
5874
+ }, children: jsxs("div", { className: 'tw:flex tw:flex-col tw:h-full', children: [jsx(FormHeader, { item: item, state: state, setState: setState }), template === 'onepager' && (jsx(OnepagerForm, { item: item, state: state, setState: setState })), template === 'simple' && jsx(SimpleForm, { state: state, setState: setState }), template === 'flex' && (jsx(FlexForm, { item: item, state: state, setState: setState })), template === 'tabs' && (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 })), jsx("div", { className: 'tw:mt-4 tw:flex-none', children: jsx("button", { className: `${loading ? ' tw:loading tw:btn tw:float-right' : 'tw:btn tw:float-right'}`, type: 'submit', style: {
5634
5875
  // We could refactor this, it is used several times at different locations
5635
5876
  backgroundColor: `${item.color ?? (getItemTags(item) && getItemTags(item)[0] && getItemTags(item)[0].color ? getItemTags(item)[0].color : item?.layer?.markerDefaultColor)}`,
5636
5877
  color: '#fff',
@@ -5647,7 +5888,7 @@ function Modal({ children, showOnStartup, }) {
5647
5888
  }
5648
5889
  // eslint-disable-next-line react-hooks/exhaustive-deps
5649
5890
  }, []);
5650
- return (jsx(Fragment, { children: jsxs("dialog", { id: 'my_modal_3', className: 'tw-modal tw-transition-all tw-duration-300', children: [jsxs("form", { method: 'dialog', className: 'tw-modal-box tw-transition-none', children: [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] }), jsx("form", { method: 'dialog', className: 'tw-modal-backdrop', children: jsx("button", { children: "close" }) })] }) }));
5891
+ return (jsx(Fragment, { children: jsxs("dialog", { id: 'my_modal_3', className: 'tw:modal tw:transition-all tw:duration-300', children: [jsxs("form", { method: 'dialog', className: 'tw:modal-box tw:transition-none', children: [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] }), jsx("form", { method: 'dialog', className: 'tw:modal-backdrop', children: jsx("button", { children: "close" }) })] }) }));
5651
5892
  }
5652
5893
 
5653
5894
  /**
@@ -5668,7 +5909,7 @@ function Quests() {
5668
5909
  i.layer?.userProfileLayer &&
5669
5910
  i.user_created?.id != null));
5670
5911
  }, [items, user]);
5671
- return (jsx(Fragment, { children: questsOpen ? (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: jsxs("div", { className: 'tw-card-body tw-p-4 tw-pt-0', children: [jsx("div", { className: 'tw-card-actions tw-justify-end', children: 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" }) }), jsxs("h2", { className: 'tw-card-title tw-m-auto ', children: ["Level 1", jsx(QuestionMarkIcon, {})] }), jsxs("ul", { className: 'tw-flex-row', children: [jsx("li", { children: jsxs("label", { className: 'tw-label tw-justify-normal tw-pt-1 tw-pb-0', children: [jsx("input", { type: 'checkbox', readOnly: true, className: 'tw-checkbox tw-checkbox-xs tw-checkbox-success', checked: isAuthenticated || false }), jsx("span", { className: 'tw-text-sm tw-label-text tw-mx-2', children: "Sign Up" })] }) }), jsx("li", { children: jsxs("label", { className: 'tw-label tw-justify-normal tw-pt-1 tw-pb-0', children: [jsx("input", { type: 'checkbox', readOnly: true, className: 'tw-checkbox tw-checkbox-xs tw-checkbox-success', checked: !!profile?.text }), jsx("span", { className: 'tw-text-sm tw-label-text tw-mx-2', children: "Fill Profile" })] }) }), jsx("li", { children: jsxs("label", { className: 'tw-label tw-justify-normal tw-pt-1 tw-pb-0', children: [jsx("input", { type: 'checkbox', readOnly: true, className: 'tw-checkbox tw-checkbox-xs tw-checkbox-success', checked: !!profile?.image }), jsx("span", { className: 'tw-text-sm tw-label-text tw-mx-2', children: "Upload Avatar" })] }) })] }), ' '] }) })) : ('') }));
5912
+ return (jsx(Fragment, { children: questsOpen ? (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: jsxs("div", { className: 'tw:card-body tw:p-4 tw:pt-0', children: [jsx("div", { className: 'tw:card-actions tw:justify-end', children: 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" }) }), jsxs("h2", { className: 'tw:card-title tw:m-auto ', children: ["Level 1", jsx(QuestionMarkIcon, {})] }), jsxs("ul", { className: 'tw:flex-row', children: [jsx("li", { children: jsxs("label", { className: 'tw:label tw:justify-normal tw:pt-1 tw:pb-0', children: [jsx("input", { type: 'checkbox', readOnly: true, className: 'tw:checkbox tw:checkbox-xs tw:checkbox-success', checked: isAuthenticated || false }), jsx("span", { className: 'tw:text-sm tw:label-text tw:mx-2', children: "Sign Up" })] }) }), jsx("li", { children: jsxs("label", { className: 'tw:label tw:justify-normal tw:pt-1 tw:pb-0', children: [jsx("input", { type: 'checkbox', readOnly: true, className: 'tw:checkbox tw:checkbox-xs tw:checkbox-success', checked: !!profile?.text }), jsx("span", { className: 'tw:text-sm tw:label-text tw:mx-2', children: "Fill Profile" })] }) }), jsx("li", { children: jsxs("label", { className: 'tw:label tw:justify-normal tw:pt-1 tw:pb-0', children: [jsx("input", { type: 'checkbox', readOnly: true, className: 'tw:checkbox tw:checkbox-xs tw:checkbox-success', checked: !!profile?.image }), jsx("span", { className: 'tw:text-sm tw:label-text tw:mx-2', children: "Upload Avatar" })] }) })] }), ' '] }) })) : ('') }));
5672
5913
  }
5673
5914
 
5674
5915
  export { AppShell, AttestationForm, AuthProvider, CardPage, Content, ItemForm, ItemView, Layer, LoginPage, MapOverlayPage, MarketView, Modal, OverlayItemsIndexPage, Permissions, PopupButton, PopupCheckboxInput, PopupStartEndInput, PopupTextAreaInput, PopupTextInput, ProfileForm, ProfileView, Quests, RequestPasswordPage, SelectUser, SetNewPasswordPage, SideBar, SignupPage, StartEndView, Tags, TextAreaInput, TextInput, TextView, TitleCard, UserSettings, UtopiaMap };