smartsell-ui-kit 0.1.16 → 0.1.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -20,15 +20,18 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
20
20
  // src/index.ts
21
21
  var src_exports = {};
22
22
  __export(src_exports, {
23
+ Alert: () => Alert,
23
24
  Button: () => Button,
24
25
  Card: () => Card,
25
26
  CardSmall: () => CardSmall,
26
27
  Checkbox: () => Checkbox,
27
28
  ComposableModal: () => ComposableModal,
28
29
  DatePicker: () => DatePicker,
30
+ IconButton: () => IconButton,
29
31
  Input: () => Input,
30
32
  Loading: () => Loading,
31
33
  Modal: () => Modal,
34
+ ResultState: () => ResultState,
32
35
  Select: () => Select,
33
36
  SelectAsync: () => SelectAsync,
34
37
  Separator: () => Separator,
@@ -63,7 +66,7 @@ function styleInject(css, { insertAt } = {}) {
63
66
  }
64
67
 
65
68
  // src/styles/ui-kit.css
66
- styleInject(':root {\n --ui-kit-font-family:\n "Lato",\n system-ui,\n sans-serif;\n}\n.ui-kit-root {\n border-width: 0;\n border-style: solid;\n box-shadow: none;\n font-family: var(--ui-kit-font-family);\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n -moz-tab-size: 4;\n -o-tab-size: 4;\n tab-size: 4;\n -webkit-tap-highlight-color: transparent;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n.ui-kit-root:where(button, input, textarea, select),\n.ui-kit-root :where(button, input, textarea, select, option) {\n border-width: 0;\n border-style: solid;\n box-shadow: none;\n font-family: var(--ui-kit-font-family);\n}\n.ui-kit-sr-only {\n position: absolute;\n height: 1px;\n width: 1px;\n overflow: hidden;\n white-space: nowrap;\n border-width: 0px;\n padding: 0px;\n clip: rect(0, 0, 0, 0);\n margin: -1px;\n}\n.ui-kit-floating-placeholder {\n color: var(--theme-textLight);\n font-size: var(--floating-label-font-size);\n font-weight: 400;\n line-height: var(--floating-label-line-height);\n top: var(--floating-label-resting-top);\n transform: var(--floating-label-resting-transform);\n}\n.group:has(input:not(:-moz-placeholder)) > .ui-kit-floating-placeholder,\n.group:has(textarea:not(:-moz-placeholder)) > .ui-kit-floating-placeholder {\n color: var(--theme-text);\n font-size: var(--floating-label-active-font-size);\n font-weight: 500;\n left: 12px !important;\n line-height: var(--floating-label-active-line-height);\n top: 0;\n transform: translateY(-50%) scale(0.85);\n}\n.group:focus-within > .ui-kit-floating-placeholder,\n.group:has(input:not(:placeholder-shown)) > .ui-kit-floating-placeholder,\n.group:has(textarea:not(:placeholder-shown)) > .ui-kit-floating-placeholder,\n.group:has([data-has-value=true]) > .ui-kit-floating-placeholder,\n.ui-kit-floating-placeholder--active {\n color: var(--theme-text);\n font-size: var(--floating-label-active-font-size);\n font-weight: 500;\n left: 12px !important;\n line-height: var(--floating-label-active-line-height);\n top: 0;\n transform: translateY(-50%) scale(0.85);\n}\n:where(.ui-kit-root),\n:where(.ui-kit-root) :where(*),\n:where(.ui-kit-root) :where(*)::before,\n:where(.ui-kit-root) :where(*)::after {\n box-sizing: border-box;\n border-width: 0;\n border-style: solid;\n border-color: #e5e7eb;\n}\n:where(.ui-kit-root) :where(*)::before,\n:where(.ui-kit-root) :where(*)::after {\n --tw-content: "";\n}\n:where(.ui-kit-root) :where(hr) {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n}\n:where(.ui-kit-root) :where(abbr:where([title])) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n}\n:where(.ui-kit-root) :where(h1, h2, h3, h4, h5, h6) {\n font-size: inherit;\n font-weight: inherit;\n}\n:where(.ui-kit-root) :where(a) {\n color: inherit;\n text-decoration: inherit;\n}\n:where(.ui-kit-root) :where(b, strong) {\n font-weight: bolder;\n}\n:where(.ui-kit-root) :where(code, kbd, samp, pre) {\n font-family:\n ui-monospace,\n SFMono-Regular,\n Menlo,\n Monaco,\n Consolas,\n "Liberation Mono",\n "Courier New",\n monospace;\n font-size: 1em;\n}\n:where(.ui-kit-root) :where(small) {\n font-size: 80%;\n}\n:where(.ui-kit-root) :where(sub, sup) {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n:where(.ui-kit-root) :where(sub) {\n bottom: -0.25em;\n}\n:where(.ui-kit-root) :where(sup) {\n top: -0.5em;\n}\n:where(.ui-kit-root) :where(table) {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n}\n:where(.ui-kit-root):where(button, input, optgroup, select, textarea),\n:where(.ui-kit-root) :where(button, input, optgroup, select, textarea) {\n font-family: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n font-size: 100%;\n font-weight: inherit;\n line-height: inherit;\n letter-spacing: inherit;\n color: inherit;\n margin: 0;\n padding: 0;\n}\n:where(.ui-kit-root):where(button, select),\n:where(.ui-kit-root) :where(button, select) {\n text-transform: none;\n}\n:where(.ui-kit-root):where(button),\n:where(.ui-kit-root) :where(button),\n:where(.ui-kit-root) :where(input:where([type=button], [type=reset], [type=submit])) {\n -webkit-appearance: button;\n background-color: transparent;\n background-image: none;\n}\n:where(.ui-kit-root) :where(progress) {\n vertical-align: baseline;\n}\n:where(.ui-kit-root) :where(input)::-webkit-inner-spin-button,\n:where(.ui-kit-root) :where(input)::-webkit-outer-spin-button {\n height: auto;\n}\n:where(.ui-kit-root) :where([type=search]) {\n -webkit-appearance: textfield;\n outline-offset: -2px;\n}\n:where(.ui-kit-root) :where(input)::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n:where(.ui-kit-root) :where(summary) {\n display: list-item;\n}\n:where(.ui-kit-root) :where(blockquote, dl, dd, h1, h2, h3, h4, h5, h6, hr, figure, p, pre) {\n margin: 0;\n}\n:where(.ui-kit-root) :where(fieldset) {\n margin: 0;\n padding: 0;\n}\n:where(.ui-kit-root) :where(legend) {\n padding: 0;\n}\n:where(.ui-kit-root) :where(ol, ul, menu) {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n:where(.ui-kit-root) :where(dialog) {\n padding: 0;\n}\n:where(.ui-kit-root) :where(option) {\n margin: 0;\n padding: 0;\n}\n:where(.ui-kit-root) :where(textarea) {\n resize: vertical;\n}\n:where(.ui-kit-root):where(input)::-moz-placeholder,\n:where(.ui-kit-root):where(textarea)::-moz-placeholder,\n:where(.ui-kit-root) :where(input)::-moz-placeholder,\n:where(.ui-kit-root) :where(textarea)::-moz-placeholder {\n opacity: 1;\n color: #9ca3af;\n}\n:where(.ui-kit-root):where(input)::placeholder,\n:where(.ui-kit-root):where(textarea)::placeholder,\n:where(.ui-kit-root) :where(input)::placeholder,\n:where(.ui-kit-root) :where(textarea)::placeholder {\n opacity: 1;\n color: #9ca3af;\n}\n:where(.ui-kit-root):where(button, [role=button]),\n:where(.ui-kit-root) :where(button, [role=button]) {\n cursor: pointer;\n}\n:where(.ui-kit-root):where(:disabled),\n:where(.ui-kit-root) :where(:disabled) {\n cursor: default;\n}\n:where(.ui-kit-root) :where(img, svg, video, canvas, audio, iframe, embed, object) {\n display: block;\n vertical-align: middle;\n}\n:where(.ui-kit-root) :where(img, video) {\n max-width: 100%;\n height: auto;\n}\n:where(.ui-kit-root) :where([hidden]) {\n display: none;\n}\n.pointer-events-none {\n pointer-events: none;\n}\n.pointer-events-auto {\n pointer-events: auto;\n}\n.visible {\n visibility: visible;\n}\n.fixed {\n position: fixed;\n}\n.absolute {\n position: absolute;\n}\n.relative {\n position: relative;\n}\n.sticky {\n position: sticky;\n}\n.inset-0 {\n inset: 0px;\n}\n.inset-y-0 {\n top: 0px;\n bottom: 0px;\n}\n.left-0 {\n left: 0px;\n}\n.left-\\[var\\(--label-left-base\\,12px\\)\\] {\n left: var(--label-left-base,12px);\n}\n.top-1\\/2 {\n top: 50%;\n}\n.z-50 {\n z-index: 50;\n}\n.z-\\[70\\] {\n z-index: 70;\n}\n.z-\\[99999\\] {\n z-index: 99999;\n}\n.col-span-1 {\n grid-column: span 1 / span 1;\n}\n.col-span-2 {\n grid-column: span 2 / span 2;\n}\n.m-0 {\n margin: 0px;\n}\n.-mt-2 {\n margin-top: -0.5rem;\n}\n.mb-\\[18px\\] {\n margin-bottom: 18px;\n}\n.ml-1 {\n margin-left: 0.25rem;\n}\n.ml-4 {\n margin-left: 1rem;\n}\n.ml-auto {\n margin-left: auto;\n}\n.mt-0 {\n margin-top: 0px;\n}\n.mt-1 {\n margin-top: 0.25rem;\n}\n.mt-px {\n margin-top: 1px;\n}\n.box-border {\n box-sizing: border-box;\n}\n.block {\n display: block;\n}\n.inline {\n display: inline;\n}\n.flex {\n display: flex;\n}\n.inline-flex {\n display: inline-flex;\n}\n.table {\n display: table;\n}\n.grid {\n display: grid;\n}\n.hidden {\n display: none;\n}\n.h-14 {\n height: 3.5rem;\n}\n.h-2 {\n height: 0.5rem;\n}\n.h-5 {\n height: 1.25rem;\n}\n.h-\\[30px\\] {\n height: 30px;\n}\n.h-\\[34px\\] {\n height: 34px;\n}\n.h-\\[52px\\] {\n height: 52px;\n}\n.h-full {\n height: 100%;\n}\n.max-h-\\[280px\\] {\n max-height: 280px;\n}\n.min-h-0 {\n min-height: 0px;\n}\n.min-h-20 {\n min-height: 5rem;\n}\n.min-h-\\[220px\\] {\n min-height: 220px;\n}\n.w-14 {\n width: 3.5rem;\n}\n.w-2 {\n width: 0.5rem;\n}\n.w-5 {\n width: 1.25rem;\n}\n.w-\\[25px\\] {\n width: 25px;\n}\n.w-\\[30px\\] {\n width: 30px;\n}\n.w-\\[52px\\] {\n width: 52px;\n}\n.w-\\[72px\\] {\n width: 72px;\n}\n.w-auto {\n width: auto;\n}\n.w-fit {\n width: -moz-fit-content;\n width: fit-content;\n}\n.w-full {\n width: 100%;\n}\n.w-max {\n width: -moz-max-content;\n width: max-content;\n}\n.min-w-0 {\n min-width: 0px;\n}\n.min-w-full {\n min-width: 100%;\n}\n.min-w-max {\n min-width: -moz-max-content;\n min-width: max-content;\n}\n.max-w-\\[360px\\] {\n max-width: 360px;\n}\n.max-w-\\[calc\\(100\\%-24px\\)\\] {\n max-width: calc(100% - 24px);\n}\n.max-w-fit {\n max-width: -moz-fit-content;\n max-width: fit-content;\n}\n.max-w-full {\n max-width: 100%;\n}\n.max-w-none {\n max-width: none;\n}\n.flex-1 {\n flex: 1 1 0%;\n}\n.flex-\\[0_1_45\\%\\] {\n flex: 0 1 45%;\n}\n.flex-\\[1_1_260px\\] {\n flex: 1 1 260px;\n}\n.flex-none {\n flex: none;\n}\n.shrink-0 {\n flex-shrink: 0;\n}\n.border-separate {\n border-collapse: separate;\n}\n.border-spacing-0 {\n --tw-border-spacing-x: 0px;\n --tw-border-spacing-y: 0px;\n border-spacing: var(--tw-border-spacing-x) var(--tw-border-spacing-y);\n}\n.origin-\\[left_center\\] {\n transform-origin: left center;\n}\n.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.cursor-not-allowed {\n cursor: not-allowed;\n}\n.cursor-pointer {\n cursor: pointer;\n}\n.cursor-text {\n cursor: text;\n}\n.select-none {\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n}\n.resize-y {\n resize: vertical;\n}\n.resize {\n resize: both;\n}\n.appearance-none {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n.grid-cols-4 {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n}\n.grid-cols-\\[7rem_minmax\\(0\\,1fr\\)\\] {\n grid-template-columns: 7rem minmax(0, 1fr);\n}\n.grid-cols-\\[minmax\\(0\\,1fr\\)\\] {\n grid-template-columns: minmax(0, 1fr);\n}\n.grid-cols-\\[repeat\\(2\\,minmax\\(0\\,1fr\\)\\)\\] {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n.flex-col {\n flex-direction: column;\n}\n.flex-wrap {\n flex-wrap: wrap;\n}\n.flex-nowrap {\n flex-wrap: nowrap;\n}\n.items-start {\n align-items: flex-start;\n}\n.items-center {\n align-items: center;\n}\n.justify-start {\n justify-content: flex-start;\n}\n.justify-end {\n justify-content: flex-end;\n}\n.justify-center {\n justify-content: center;\n}\n.justify-between {\n justify-content: space-between;\n}\n.gap-0 {\n gap: 0px;\n}\n.gap-1 {\n gap: 0.25rem;\n}\n.gap-1\\.5 {\n gap: 0.375rem;\n}\n.gap-2 {\n gap: 0.5rem;\n}\n.gap-2\\.5 {\n gap: 0.625rem;\n}\n.gap-3 {\n gap: 0.75rem;\n}\n.gap-3\\.5 {\n gap: 0.875rem;\n}\n.gap-4 {\n gap: 1rem;\n}\n.self-stretch {\n align-self: stretch;\n}\n.overflow-auto {\n overflow: auto;\n}\n.overflow-hidden {\n overflow: hidden;\n}\n.overflow-x-auto {\n overflow-x: auto;\n}\n.overflow-y-auto {\n overflow-y: auto;\n}\n.overflow-x-hidden {\n overflow-x: hidden;\n}\n.overflow-y-hidden {\n overflow-y: hidden;\n}\n.truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.text-ellipsis {\n text-overflow: ellipsis;\n}\n.whitespace-nowrap {\n white-space: nowrap;\n}\n.break-words {\n overflow-wrap: break-word;\n}\n.rounded-2xl {\n border-radius: 1rem;\n}\n.rounded-\\[20px\\] {\n border-radius: 20px;\n}\n.rounded-\\[24px\\] {\n border-radius: 24px;\n}\n.rounded-\\[28px\\] {\n border-radius: 28px;\n}\n.rounded-\\[30px\\] {\n border-radius: 30px;\n}\n.rounded-\\[var\\(--ui-radius\\,12px\\)\\] {\n border-radius: var(--ui-radius,12px);\n}\n.rounded-full {\n border-radius: 9999px;\n}\n.rounded-none {\n border-radius: 0px;\n}\n.rounded-xl {\n border-radius: 0.75rem;\n}\n.rounded-tl-\\[16px\\] {\n border-top-left-radius: 16px;\n}\n.rounded-tr-\\[16px\\] {\n border-top-right-radius: 16px;\n}\n.border {\n border-width: 1px;\n}\n.border-0 {\n border-width: 0px;\n}\n.border-2 {\n border-width: 2px;\n}\n.border-\\[3px\\] {\n border-width: 3px;\n}\n.border-b {\n border-bottom-width: 1px;\n}\n.border-solid {\n border-style: solid;\n}\n.border-dashed {\n border-style: dashed;\n}\n.border-\\[var\\(--theme-background\\)\\] {\n border-color: var(--theme-background);\n}\n.border-\\[var\\(--theme-negative\\)\\] {\n border-color: var(--theme-negative);\n}\n.border-\\[var\\(--theme-primary\\)\\] {\n border-color: var(--theme-primary);\n}\n.border-\\[var\\(--theme-textLight\\)\\] {\n border-color: var(--theme-textLight);\n}\n.border-transparent {\n border-color: transparent;\n}\n.bg-\\[color-mix\\(in_srgb\\,var\\(--ui-kit-accent\\)_24\\%\\,transparent\\)\\] {\n background-color: color-mix(in srgb, var(--ui-kit-accent) 24%, transparent);\n}\n.bg-\\[var\\(--theme-background\\)\\] {\n background-color: var(--theme-background);\n}\n.bg-\\[var\\(--theme-primary\\)\\] {\n background-color: var(--theme-primary);\n}\n.bg-\\[var\\(--theme-surface\\)\\] {\n background-color: var(--theme-surface);\n}\n.bg-\\[var\\(--ui-kit-accent\\)\\] {\n background-color: var(--ui-kit-accent);\n}\n.bg-transparent {\n background-color: transparent;\n}\n.p-0 {\n padding: 0px;\n}\n.p-0\\.5 {\n padding: 0.125rem;\n}\n.p-2 {\n padding: 0.5rem;\n}\n.p-2\\.5 {\n padding: 0.625rem;\n}\n.p-4 {\n padding: 1rem;\n}\n.p-6 {\n padding: 1.5rem;\n}\n.px-1 {\n padding-left: 0.25rem;\n padding-right: 0.25rem;\n}\n.px-1\\.5 {\n padding-left: 0.375rem;\n padding-right: 0.375rem;\n}\n.px-2 {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n}\n.px-2\\.5 {\n padding-left: 0.625rem;\n padding-right: 0.625rem;\n}\n.px-3 {\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n}\n.px-3\\.5 {\n padding-left: 0.875rem;\n padding-right: 0.875rem;\n}\n.px-5 {\n padding-left: 1.25rem;\n padding-right: 1.25rem;\n}\n.px-\\[11px\\] {\n padding-left: 11px;\n padding-right: 11px;\n}\n.px-\\[13px\\] {\n padding-left: 13px;\n padding-right: 13px;\n}\n.py-0\\.5 {\n padding-top: 0.125rem;\n padding-bottom: 0.125rem;\n}\n.py-1 {\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n}\n.py-2 {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n.py-2\\.5 {\n padding-top: 0.625rem;\n padding-bottom: 0.625rem;\n}\n.py-3 {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n}\n.py-\\[10px\\] {\n padding-top: 10px;\n padding-bottom: 10px;\n}\n.py-\\[14px\\] {\n padding-top: 14px;\n padding-bottom: 14px;\n}\n.py-\\[18px\\] {\n padding-top: 18px;\n padding-bottom: 18px;\n}\n.py-\\[9px\\] {\n padding-top: 9px;\n padding-bottom: 9px;\n}\n.pb-0\\.5 {\n padding-bottom: 0.125rem;\n}\n.pb-1 {\n padding-bottom: 0.25rem;\n}\n.pb-3 {\n padding-bottom: 0.75rem;\n}\n.pb-4 {\n padding-bottom: 1rem;\n}\n.pb-\\[10px\\] {\n padding-bottom: 10px;\n}\n.pl-5 {\n padding-left: 1.25rem;\n}\n.pl-6 {\n padding-left: 1.5rem;\n}\n.pr-6 {\n padding-right: 1.5rem;\n}\n.pt-1 {\n padding-top: 0.25rem;\n}\n.pt-1\\.5 {\n padding-top: 0.375rem;\n}\n.pt-2\\.5 {\n padding-top: 0.625rem;\n}\n.pt-3 {\n padding-top: 0.75rem;\n}\n.pt-\\[18px\\] {\n padding-top: 18px;\n}\n.text-left {\n text-align: left;\n}\n.text-center {\n text-align: center;\n}\n.text-right {\n text-align: right;\n}\n.align-middle {\n vertical-align: middle;\n}\n.font-sans {\n font-family:\n ui-sans-serif,\n system-ui,\n sans-serif,\n "Apple Color Emoji",\n "Segoe UI Emoji",\n "Segoe UI Symbol",\n "Noto Color Emoji";\n}\n.text-2xl {\n font-size: 1.5rem;\n line-height: 2rem;\n}\n.text-\\[11px\\] {\n font-size: 11px;\n}\n.text-\\[12px\\] {\n font-size: 12px;\n}\n.text-\\[13px\\] {\n font-size: 13px;\n}\n.text-\\[15px\\] {\n font-size: 15px;\n}\n.text-\\[18px\\] {\n font-size: 18px;\n}\n.text-\\[20px\\] {\n font-size: 20px;\n}\n.text-\\[24px\\] {\n font-size: 24px;\n}\n.text-base {\n font-size: 1rem;\n line-height: 1.5rem;\n}\n.text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n.text-xs {\n font-size: 0.75rem;\n line-height: 1rem;\n}\n.font-bold {\n font-weight: 700;\n}\n.font-extrabold {\n font-weight: 800;\n}\n.font-medium {\n font-weight: 500;\n}\n.font-normal {\n font-weight: 400;\n}\n.font-semibold {\n font-weight: 600;\n}\n.uppercase {\n text-transform: uppercase;\n}\n.leading-4 {\n line-height: 1rem;\n}\n.leading-5 {\n line-height: 1.25rem;\n}\n.leading-\\[1\\.15\\] {\n line-height: 1.15;\n}\n.leading-\\[1\\.1\\] {\n line-height: 1.1;\n}\n.leading-\\[1\\.25\\] {\n line-height: 1.25;\n}\n.leading-\\[1\\.2\\] {\n line-height: 1.2;\n}\n.leading-\\[1\\.35\\] {\n line-height: 1.35;\n}\n.leading-\\[1\\.3\\] {\n line-height: 1.3;\n}\n.leading-\\[1\\.45\\] {\n line-height: 1.45;\n}\n.leading-\\[1\\.4\\] {\n line-height: 1.4;\n}\n.leading-\\[18px\\] {\n line-height: 18px;\n}\n.leading-none {\n line-height: 1;\n}\n.tracking-\\[0\\.01em\\] {\n letter-spacing: 0.01em;\n}\n.tracking-\\[0\\.08em\\] {\n letter-spacing: 0.08em;\n}\n.tracking-\\[0\\.16em\\] {\n letter-spacing: 0.16em;\n}\n.text-\\[var\\(--theme-negative\\)\\] {\n color: var(--theme-negative);\n}\n.text-\\[var\\(--theme-onPrimary\\)\\] {\n color: var(--theme-onPrimary);\n}\n.text-\\[var\\(--theme-primary\\)\\] {\n color: var(--theme-primary);\n}\n.text-\\[var\\(--theme-secondary\\)\\] {\n color: var(--theme-secondary);\n}\n.text-\\[var\\(--theme-text\\)\\] {\n color: var(--theme-text);\n}\n.text-\\[var\\(--theme-textLight\\)\\] {\n color: var(--theme-textLight);\n}\n.text-\\[var\\(--ui-kit-accent\\)\\] {\n color: var(--ui-kit-accent);\n}\n.text-transparent {\n color: transparent;\n}\n.placeholder-\\[var\\(--theme-textLight\\)\\]::-moz-placeholder {\n color: var(--theme-textLight);\n}\n.placeholder-\\[var\\(--theme-textLight\\)\\]::placeholder {\n color: var(--theme-textLight);\n}\n.placeholder-transparent::-moz-placeholder {\n color: transparent;\n}\n.placeholder-transparent::placeholder {\n color: transparent;\n}\n.opacity-0 {\n opacity: 0;\n}\n.opacity-100 {\n opacity: 1;\n}\n.opacity-45 {\n opacity: 0.45;\n}\n.opacity-70 {\n opacity: 0.7;\n}\n.opacity-80 {\n opacity: 0.8;\n}\n.opacity-\\[0\\.38\\] {\n opacity: 0.38;\n}\n.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:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.shadow-none {\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.outline-none {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n.outline {\n outline-style: solid;\n}\n.blur {\n --tw-blur: blur(8px);\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.saturate-100 {\n --tw-saturate: saturate(1);\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.saturate-\\[0\\.8\\] {\n --tw-saturate: saturate(0.8);\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.filter {\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.backdrop-blur-\\[2px\\] {\n --tw-backdrop-blur: blur(2px);\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.backdrop-blur-\\[8px\\] {\n --tw-backdrop-blur: blur(8px);\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.transition {\n transition-property:\n color,\n background-color,\n border-color,\n text-decoration-color,\n fill,\n stroke,\n opacity,\n box-shadow,\n transform,\n filter,\n backdrop-filter;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-\\[background-color\\,color\\] {\n transition-property: background-color, color;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-\\[border-color\\] {\n transition-property: border-color;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-\\[opacity\\,filter\\] {\n transition-property: opacity, filter;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-\\[transform\\,color\\] {\n transition-property: transform, color;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-all {\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-colors {\n transition-property:\n color,\n background-color,\n border-color,\n text-decoration-color,\n fill,\n stroke;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-opacity {\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.duration-150 {\n transition-duration: 150ms;\n}\n.duration-300 {\n transition-duration: 300ms;\n}\n.ease-in-out {\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n}\n.\\[overflow-wrap\\:anywhere\\] {\n overflow-wrap: anywhere;\n}\n.hover\\:border-\\[var\\(--theme-primaryDark\\)\\]:hover {\n border-color: var(--theme-primaryDark);\n}\n.hover\\:border-\\[var\\(--theme-primaryLight\\)\\]:hover {\n border-color: var(--theme-primaryLight);\n}\n.hover\\:bg-\\[var\\(--theme-primaryLight\\)\\]:hover {\n background-color: var(--theme-primaryLight);\n}\n.hover\\:text-\\[var\\(--theme-negative\\)\\]:hover {\n color: var(--theme-negative);\n}\n.hover\\:text-\\[var\\(--theme-onPrimary\\)\\]:hover {\n color: var(--theme-onPrimary);\n}\n.hover\\:text-\\[var\\(--theme-primary\\)\\]:hover {\n color: var(--theme-primary);\n}\n.hover\\:underline:hover {\n text-decoration-line: underline;\n}\n.hover\\:no-underline:hover {\n text-decoration-line: none;\n}\n.active\\:border-\\[var\\(--theme-negative\\)\\]:active {\n border-color: var(--theme-negative);\n}\n.active\\:border-\\[var\\(--theme-primary\\)\\]:active {\n border-color: var(--theme-primary);\n}\n.active\\:border-transparent:active {\n border-color: transparent;\n}\n.active\\:bg-\\[var\\(--theme-negative\\)\\]:active {\n background-color: var(--theme-negative);\n}\n.active\\:bg-\\[var\\(--theme-primaryDark\\)\\]:active {\n background-color: var(--theme-primaryDark);\n}\n.active\\:text-\\[var\\(--theme-onPrimary\\)\\]:active {\n color: var(--theme-onPrimary);\n}\n.disabled\\:translate-y-0:disabled {\n --tw-translate-y: 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.disabled\\:scale-100:disabled {\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.disabled\\:cursor-not-allowed:disabled {\n cursor: not-allowed;\n}\n.disabled\\:opacity-50:disabled {\n opacity: 0.5;\n}\n.group:has(:disabled) .group-has-\\[\\:disabled\\]\\:opacity-70 {\n opacity: 0.7;\n}\n.\\[\\&\\:\\:-webkit-calendar-picker-indicator\\]\\:absolute::-webkit-calendar-picker-indicator {\n position: absolute;\n}\n.\\[\\&\\:\\:-webkit-calendar-picker-indicator\\]\\:left-0::-webkit-calendar-picker-indicator {\n left: 0px;\n}\n.\\[\\&\\:\\:-webkit-calendar-picker-indicator\\]\\:top-0::-webkit-calendar-picker-indicator {\n top: 0px;\n}\n.\\[\\&\\:\\:-webkit-calendar-picker-indicator\\]\\:h-full::-webkit-calendar-picker-indicator {\n height: 100%;\n}\n.\\[\\&\\:\\:-webkit-calendar-picker-indicator\\]\\:w-full::-webkit-calendar-picker-indicator {\n width: 100%;\n}\n.\\[\\&\\:\\:-webkit-calendar-picker-indicator\\]\\:cursor-pointer::-webkit-calendar-picker-indicator {\n cursor: pointer;\n}\n.\\[\\&\\:\\:-webkit-calendar-picker-indicator\\]\\:opacity-0::-webkit-calendar-picker-indicator {\n opacity: 0;\n}\n.\\[\\&\\:\\:-webkit-datetime-edit\\]\\:flex::-webkit-datetime-edit {\n display: flex;\n}\n.\\[\\&\\:\\:-webkit-datetime-edit\\]\\:h-full::-webkit-datetime-edit {\n height: 100%;\n}\n.\\[\\&\\:\\:-webkit-datetime-edit\\]\\:items-center::-webkit-datetime-edit {\n align-items: center;\n}\n');
69
+ styleInject(':root {\n --ui-kit-font-family:\n "Lato",\n system-ui,\n sans-serif;\n}\n.ui-kit-root {\n border-width: 0;\n border-style: solid;\n box-shadow: none;\n font-family: var(--ui-kit-font-family);\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n -moz-tab-size: 4;\n -o-tab-size: 4;\n tab-size: 4;\n -webkit-tap-highlight-color: transparent;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n.ui-kit-root:where(button, input, textarea, select),\n.ui-kit-root :where(button, input, textarea, select, option) {\n border-width: 0;\n border-style: solid;\n box-shadow: none;\n font-family: var(--ui-kit-font-family);\n}\n.ui-kit-sr-only {\n position: absolute;\n height: 1px;\n width: 1px;\n overflow: hidden;\n white-space: nowrap;\n border-width: 0px;\n padding: 0px;\n clip: rect(0, 0, 0, 0);\n margin: -1px;\n}\n.ui-kit-floating-placeholder {\n color: var(--theme-textLight);\n font-size: var(--floating-label-font-size);\n font-weight: 400;\n line-height: var(--floating-label-line-height);\n top: var(--floating-label-resting-top);\n transform: var(--floating-label-resting-transform);\n}\n.group:has(input:not(:-moz-placeholder)) > .ui-kit-floating-placeholder,\n.group:has(textarea:not(:-moz-placeholder)) > .ui-kit-floating-placeholder {\n color: var(--theme-text);\n font-size: var(--floating-label-active-font-size);\n font-weight: 500;\n left: 12px !important;\n line-height: var(--floating-label-active-line-height);\n top: 0;\n transform: translateY(-50%) scale(0.85);\n}\n.group:focus-within > .ui-kit-floating-placeholder,\n.group:has(input:not(:placeholder-shown)) > .ui-kit-floating-placeholder,\n.group:has(textarea:not(:placeholder-shown)) > .ui-kit-floating-placeholder,\n.group:has([data-has-value=true]) > .ui-kit-floating-placeholder,\n.ui-kit-floating-placeholder--active {\n color: var(--theme-text);\n font-size: var(--floating-label-active-font-size);\n font-weight: 500;\n left: 12px !important;\n line-height: var(--floating-label-active-line-height);\n top: 0;\n transform: translateY(-50%) scale(0.85);\n}\n:where(.ui-kit-root),\n:where(.ui-kit-root) :where(*),\n:where(.ui-kit-root) :where(*)::before,\n:where(.ui-kit-root) :where(*)::after {\n box-sizing: border-box;\n border-width: 0;\n border-style: solid;\n border-color: #e5e7eb;\n}\n:where(.ui-kit-root) :where(*)::before,\n:where(.ui-kit-root) :where(*)::after {\n --tw-content: "";\n}\n:where(.ui-kit-root) :where(hr) {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n}\n:where(.ui-kit-root) :where(abbr:where([title])) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n}\n:where(.ui-kit-root) :where(h1, h2, h3, h4, h5, h6) {\n font-size: inherit;\n font-weight: inherit;\n}\n:where(.ui-kit-root) :where(a) {\n color: inherit;\n text-decoration: inherit;\n}\n:where(.ui-kit-root) :where(b, strong) {\n font-weight: bolder;\n}\n:where(.ui-kit-root) :where(code, kbd, samp, pre) {\n font-family:\n ui-monospace,\n SFMono-Regular,\n Menlo,\n Monaco,\n Consolas,\n "Liberation Mono",\n "Courier New",\n monospace;\n font-size: 1em;\n}\n:where(.ui-kit-root) :where(small) {\n font-size: 80%;\n}\n:where(.ui-kit-root) :where(sub, sup) {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n:where(.ui-kit-root) :where(sub) {\n bottom: -0.25em;\n}\n:where(.ui-kit-root) :where(sup) {\n top: -0.5em;\n}\n:where(.ui-kit-root) :where(table) {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n}\n:where(.ui-kit-root):where(button, input, optgroup, select, textarea),\n:where(.ui-kit-root) :where(button, input, optgroup, select, textarea) {\n font-family: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n font-size: 100%;\n font-weight: inherit;\n line-height: inherit;\n letter-spacing: inherit;\n color: inherit;\n margin: 0;\n padding: 0;\n}\n:where(.ui-kit-root):where(button, select),\n:where(.ui-kit-root) :where(button, select) {\n text-transform: none;\n}\n:where(.ui-kit-root):where(button),\n:where(.ui-kit-root) :where(button),\n:where(.ui-kit-root) :where(input:where([type=button], [type=reset], [type=submit])) {\n -webkit-appearance: button;\n background-color: transparent;\n background-image: none;\n}\n:where(.ui-kit-root) :where(progress) {\n vertical-align: baseline;\n}\n:where(.ui-kit-root) :where(input)::-webkit-inner-spin-button,\n:where(.ui-kit-root) :where(input)::-webkit-outer-spin-button {\n height: auto;\n}\n:where(.ui-kit-root) :where([type=search]) {\n -webkit-appearance: textfield;\n outline-offset: -2px;\n}\n:where(.ui-kit-root) :where(input)::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n:where(.ui-kit-root) :where(summary) {\n display: list-item;\n}\n:where(.ui-kit-root) :where(blockquote, dl, dd, h1, h2, h3, h4, h5, h6, hr, figure, p, pre) {\n margin: 0;\n}\n:where(.ui-kit-root) :where(fieldset) {\n margin: 0;\n padding: 0;\n}\n:where(.ui-kit-root) :where(legend) {\n padding: 0;\n}\n:where(.ui-kit-root) :where(ol, ul, menu) {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n:where(.ui-kit-root) :where(dialog) {\n padding: 0;\n}\n:where(.ui-kit-root) :where(option) {\n margin: 0;\n padding: 0;\n}\n:where(.ui-kit-root) :where(textarea) {\n resize: vertical;\n}\n:where(.ui-kit-root):where(input)::-moz-placeholder,\n:where(.ui-kit-root):where(textarea)::-moz-placeholder,\n:where(.ui-kit-root) :where(input)::-moz-placeholder,\n:where(.ui-kit-root) :where(textarea)::-moz-placeholder {\n opacity: 1;\n color: #9ca3af;\n}\n:where(.ui-kit-root):where(input)::placeholder,\n:where(.ui-kit-root):where(textarea)::placeholder,\n:where(.ui-kit-root) :where(input)::placeholder,\n:where(.ui-kit-root) :where(textarea)::placeholder {\n opacity: 1;\n color: #9ca3af;\n}\n:where(.ui-kit-root):where(button, [role=button]),\n:where(.ui-kit-root) :where(button, [role=button]) {\n cursor: pointer;\n}\n:where(.ui-kit-root):where(:disabled),\n:where(.ui-kit-root) :where(:disabled) {\n cursor: default;\n}\n:where(.ui-kit-root) :where(img, svg, video, canvas, audio, iframe, embed, object) {\n display: block;\n vertical-align: middle;\n}\n:where(.ui-kit-root) :where(img, video) {\n max-width: 100%;\n height: auto;\n}\n:where(.ui-kit-root) :where([hidden]) {\n display: none;\n}\n.pointer-events-none {\n pointer-events: none;\n}\n.pointer-events-auto {\n pointer-events: auto;\n}\n.visible {\n visibility: visible;\n}\n.fixed {\n position: fixed;\n}\n.absolute {\n position: absolute;\n}\n.relative {\n position: relative;\n}\n.sticky {\n position: sticky;\n}\n.inset-0 {\n inset: 0px;\n}\n.inset-y-0 {\n top: 0px;\n bottom: 0px;\n}\n.left-0 {\n left: 0px;\n}\n.left-\\[var\\(--label-left-base\\,12px\\)\\] {\n left: var(--label-left-base,12px);\n}\n.top-1\\/2 {\n top: 50%;\n}\n.z-50 {\n z-index: 50;\n}\n.z-\\[70\\] {\n z-index: 70;\n}\n.z-\\[99999\\] {\n z-index: 99999;\n}\n.col-span-1 {\n grid-column: span 1 / span 1;\n}\n.col-span-2 {\n grid-column: span 2 / span 2;\n}\n.m-0 {\n margin: 0px;\n}\n.-mt-2 {\n margin-top: -0.5rem;\n}\n.mb-\\[18px\\] {\n margin-bottom: 18px;\n}\n.ml-1 {\n margin-left: 0.25rem;\n}\n.ml-4 {\n margin-left: 1rem;\n}\n.ml-auto {\n margin-left: auto;\n}\n.mt-0 {\n margin-top: 0px;\n}\n.mt-1 {\n margin-top: 0.25rem;\n}\n.mt-px {\n margin-top: 1px;\n}\n.box-border {\n box-sizing: border-box;\n}\n.block {\n display: block;\n}\n.inline {\n display: inline;\n}\n.flex {\n display: flex;\n}\n.inline-flex {\n display: inline-flex;\n}\n.table {\n display: table;\n}\n.grid {\n display: grid;\n}\n.hidden {\n display: none;\n}\n.h-14 {\n height: 3.5rem;\n}\n.h-2 {\n height: 0.5rem;\n}\n.h-5 {\n height: 1.25rem;\n}\n.h-\\[30px\\] {\n height: 30px;\n}\n.h-\\[34px\\] {\n height: 34px;\n}\n.h-\\[52px\\] {\n height: 52px;\n}\n.h-full {\n height: 100%;\n}\n.max-h-\\[280px\\] {\n max-height: 280px;\n}\n.min-h-0 {\n min-height: 0px;\n}\n.min-h-20 {\n min-height: 5rem;\n}\n.min-h-\\[220px\\] {\n min-height: 220px;\n}\n.w-14 {\n width: 3.5rem;\n}\n.w-2 {\n width: 0.5rem;\n}\n.w-5 {\n width: 1.25rem;\n}\n.w-\\[25px\\] {\n width: 25px;\n}\n.w-\\[30px\\] {\n width: 30px;\n}\n.w-\\[52px\\] {\n width: 52px;\n}\n.w-\\[72px\\] {\n width: 72px;\n}\n.w-auto {\n width: auto;\n}\n.w-fit {\n width: -moz-fit-content;\n width: fit-content;\n}\n.w-full {\n width: 100%;\n}\n.w-max {\n width: -moz-max-content;\n width: max-content;\n}\n.min-w-0 {\n min-width: 0px;\n}\n.min-w-full {\n min-width: 100%;\n}\n.min-w-max {\n min-width: -moz-max-content;\n min-width: max-content;\n}\n.max-w-\\[360px\\] {\n max-width: 360px;\n}\n.max-w-\\[calc\\(100\\%-24px\\)\\] {\n max-width: calc(100% - 24px);\n}\n.max-w-fit {\n max-width: -moz-fit-content;\n max-width: fit-content;\n}\n.max-w-full {\n max-width: 100%;\n}\n.max-w-none {\n max-width: none;\n}\n.flex-1 {\n flex: 1 1 0%;\n}\n.flex-\\[0_1_45\\%\\] {\n flex: 0 1 45%;\n}\n.flex-\\[1_1_260px\\] {\n flex: 1 1 260px;\n}\n.flex-none {\n flex: none;\n}\n.shrink-0 {\n flex-shrink: 0;\n}\n.border-separate {\n border-collapse: separate;\n}\n.border-spacing-0 {\n --tw-border-spacing-x: 0px;\n --tw-border-spacing-y: 0px;\n border-spacing: var(--tw-border-spacing-x) var(--tw-border-spacing-y);\n}\n.origin-\\[left_center\\] {\n transform-origin: left center;\n}\n.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.cursor-not-allowed {\n cursor: not-allowed;\n}\n.cursor-pointer {\n cursor: pointer;\n}\n.cursor-text {\n cursor: text;\n}\n.select-none {\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n}\n.resize-y {\n resize: vertical;\n}\n.resize {\n resize: both;\n}\n.appearance-none {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n.grid-cols-4 {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n}\n.grid-cols-\\[7rem_minmax\\(0\\,1fr\\)\\] {\n grid-template-columns: 7rem minmax(0, 1fr);\n}\n.grid-cols-\\[minmax\\(0\\,1fr\\)\\] {\n grid-template-columns: minmax(0, 1fr);\n}\n.grid-cols-\\[repeat\\(2\\,minmax\\(0\\,1fr\\)\\)\\] {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n.flex-col {\n flex-direction: column;\n}\n.flex-wrap {\n flex-wrap: wrap;\n}\n.flex-nowrap {\n flex-wrap: nowrap;\n}\n.items-start {\n align-items: flex-start;\n}\n.items-center {\n align-items: center;\n}\n.justify-start {\n justify-content: flex-start;\n}\n.justify-end {\n justify-content: flex-end;\n}\n.justify-center {\n justify-content: center;\n}\n.justify-between {\n justify-content: space-between;\n}\n.gap-0 {\n gap: 0px;\n}\n.gap-1 {\n gap: 0.25rem;\n}\n.gap-1\\.5 {\n gap: 0.375rem;\n}\n.gap-2 {\n gap: 0.5rem;\n}\n.gap-2\\.5 {\n gap: 0.625rem;\n}\n.gap-3 {\n gap: 0.75rem;\n}\n.gap-3\\.5 {\n gap: 0.875rem;\n}\n.gap-4 {\n gap: 1rem;\n}\n.self-stretch {\n align-self: stretch;\n}\n.overflow-auto {\n overflow: auto;\n}\n.overflow-hidden {\n overflow: hidden;\n}\n.overflow-x-auto {\n overflow-x: auto;\n}\n.overflow-y-auto {\n overflow-y: auto;\n}\n.overflow-x-hidden {\n overflow-x: hidden;\n}\n.overflow-y-hidden {\n overflow-y: hidden;\n}\n.truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.text-ellipsis {\n text-overflow: ellipsis;\n}\n.whitespace-nowrap {\n white-space: nowrap;\n}\n.break-words {\n overflow-wrap: break-word;\n}\n.rounded-2xl {\n border-radius: 1rem;\n}\n.rounded-\\[20px\\] {\n border-radius: 20px;\n}\n.rounded-\\[24px\\] {\n border-radius: 24px;\n}\n.rounded-\\[28px\\] {\n border-radius: 28px;\n}\n.rounded-\\[30px\\] {\n border-radius: 30px;\n}\n.rounded-\\[var\\(--ui-radius\\,12px\\)\\] {\n border-radius: var(--ui-radius,12px);\n}\n.rounded-full {\n border-radius: 9999px;\n}\n.rounded-none {\n border-radius: 0px;\n}\n.rounded-xl {\n border-radius: 0.75rem;\n}\n.rounded-tl-\\[16px\\] {\n border-top-left-radius: 16px;\n}\n.rounded-tr-\\[16px\\] {\n border-top-right-radius: 16px;\n}\n.border {\n border-width: 1px;\n}\n.border-0 {\n border-width: 0px;\n}\n.border-2 {\n border-width: 2px;\n}\n.border-\\[3px\\] {\n border-width: 3px;\n}\n.border-b {\n border-bottom-width: 1px;\n}\n.border-solid {\n border-style: solid;\n}\n.border-dashed {\n border-style: dashed;\n}\n.border-\\[var\\(--theme-background\\)\\] {\n border-color: var(--theme-background);\n}\n.border-\\[var\\(--theme-negative\\)\\] {\n border-color: var(--theme-negative);\n}\n.border-\\[var\\(--theme-primary\\)\\] {\n border-color: var(--theme-primary);\n}\n.border-\\[var\\(--theme-textLight\\)\\] {\n border-color: var(--theme-textLight);\n}\n.border-transparent {\n border-color: transparent;\n}\n.bg-\\[color-mix\\(in_srgb\\,var\\(--ui-kit-accent\\)_24\\%\\,transparent\\)\\] {\n background-color: color-mix(in srgb, var(--ui-kit-accent) 24%, transparent);\n}\n.bg-\\[var\\(--theme-background\\)\\] {\n background-color: var(--theme-background);\n}\n.bg-\\[var\\(--theme-primary\\)\\] {\n background-color: var(--theme-primary);\n}\n.bg-\\[var\\(--theme-surface\\)\\] {\n background-color: var(--theme-surface);\n}\n.bg-\\[var\\(--ui-kit-accent\\)\\] {\n background-color: var(--ui-kit-accent);\n}\n.bg-transparent {\n background-color: transparent;\n}\n.p-0 {\n padding: 0px;\n}\n.p-0\\.5 {\n padding: 0.125rem;\n}\n.p-2 {\n padding: 0.5rem;\n}\n.p-2\\.5 {\n padding: 0.625rem;\n}\n.p-4 {\n padding: 1rem;\n}\n.p-6 {\n padding: 1.5rem;\n}\n.px-1 {\n padding-left: 0.25rem;\n padding-right: 0.25rem;\n}\n.px-1\\.5 {\n padding-left: 0.375rem;\n padding-right: 0.375rem;\n}\n.px-2 {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n}\n.px-2\\.5 {\n padding-left: 0.625rem;\n padding-right: 0.625rem;\n}\n.px-3 {\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n}\n.px-3\\.5 {\n padding-left: 0.875rem;\n padding-right: 0.875rem;\n}\n.px-5 {\n padding-left: 1.25rem;\n padding-right: 1.25rem;\n}\n.px-\\[11px\\] {\n padding-left: 11px;\n padding-right: 11px;\n}\n.px-\\[13px\\] {\n padding-left: 13px;\n padding-right: 13px;\n}\n.py-0\\.5 {\n padding-top: 0.125rem;\n padding-bottom: 0.125rem;\n}\n.py-1 {\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n}\n.py-2 {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n.py-2\\.5 {\n padding-top: 0.625rem;\n padding-bottom: 0.625rem;\n}\n.py-3 {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n}\n.py-\\[10px\\] {\n padding-top: 10px;\n padding-bottom: 10px;\n}\n.py-\\[14px\\] {\n padding-top: 14px;\n padding-bottom: 14px;\n}\n.py-\\[18px\\] {\n padding-top: 18px;\n padding-bottom: 18px;\n}\n.py-\\[9px\\] {\n padding-top: 9px;\n padding-bottom: 9px;\n}\n.pb-0\\.5 {\n padding-bottom: 0.125rem;\n}\n.pb-1 {\n padding-bottom: 0.25rem;\n}\n.pb-3 {\n padding-bottom: 0.75rem;\n}\n.pb-4 {\n padding-bottom: 1rem;\n}\n.pb-\\[10px\\] {\n padding-bottom: 10px;\n}\n.pl-5 {\n padding-left: 1.25rem;\n}\n.pl-6 {\n padding-left: 1.5rem;\n}\n.pr-6 {\n padding-right: 1.5rem;\n}\n.pt-1 {\n padding-top: 0.25rem;\n}\n.pt-1\\.5 {\n padding-top: 0.375rem;\n}\n.pt-2\\.5 {\n padding-top: 0.625rem;\n}\n.pt-3 {\n padding-top: 0.75rem;\n}\n.pt-\\[18px\\] {\n padding-top: 18px;\n}\n.text-left {\n text-align: left;\n}\n.text-center {\n text-align: center;\n}\n.text-right {\n text-align: right;\n}\n.align-middle {\n vertical-align: middle;\n}\n.font-sans {\n font-family:\n ui-sans-serif,\n system-ui,\n sans-serif,\n "Apple Color Emoji",\n "Segoe UI Emoji",\n "Segoe UI Symbol",\n "Noto Color Emoji";\n}\n.text-2xl {\n font-size: 1.5rem;\n line-height: 2rem;\n}\n.text-\\[11px\\] {\n font-size: 11px;\n}\n.text-\\[12px\\] {\n font-size: 12px;\n}\n.text-\\[13px\\] {\n font-size: 13px;\n}\n.text-\\[15px\\] {\n font-size: 15px;\n}\n.text-\\[18px\\] {\n font-size: 18px;\n}\n.text-\\[24px\\] {\n font-size: 24px;\n}\n.text-base {\n font-size: 1rem;\n line-height: 1.5rem;\n}\n.text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n.text-xs {\n font-size: 0.75rem;\n line-height: 1rem;\n}\n.font-bold {\n font-weight: 700;\n}\n.font-extrabold {\n font-weight: 800;\n}\n.font-medium {\n font-weight: 500;\n}\n.font-normal {\n font-weight: 400;\n}\n.font-semibold {\n font-weight: 600;\n}\n.uppercase {\n text-transform: uppercase;\n}\n.leading-4 {\n line-height: 1rem;\n}\n.leading-5 {\n line-height: 1.25rem;\n}\n.leading-\\[1\\.15\\] {\n line-height: 1.15;\n}\n.leading-\\[1\\.1\\] {\n line-height: 1.1;\n}\n.leading-\\[1\\.25\\] {\n line-height: 1.25;\n}\n.leading-\\[1\\.2\\] {\n line-height: 1.2;\n}\n.leading-\\[1\\.35\\] {\n line-height: 1.35;\n}\n.leading-\\[1\\.3\\] {\n line-height: 1.3;\n}\n.leading-\\[1\\.45\\] {\n line-height: 1.45;\n}\n.leading-\\[1\\.4\\] {\n line-height: 1.4;\n}\n.leading-\\[18px\\] {\n line-height: 18px;\n}\n.tracking-\\[0\\.01em\\] {\n letter-spacing: 0.01em;\n}\n.tracking-\\[0\\.08em\\] {\n letter-spacing: 0.08em;\n}\n.tracking-\\[0\\.16em\\] {\n letter-spacing: 0.16em;\n}\n.text-\\[var\\(--theme-negative\\)\\] {\n color: var(--theme-negative);\n}\n.text-\\[var\\(--theme-onPrimary\\)\\] {\n color: var(--theme-onPrimary);\n}\n.text-\\[var\\(--theme-primary\\)\\] {\n color: var(--theme-primary);\n}\n.text-\\[var\\(--theme-secondary\\)\\] {\n color: var(--theme-secondary);\n}\n.text-\\[var\\(--theme-text\\)\\] {\n color: var(--theme-text);\n}\n.text-\\[var\\(--theme-textLight\\)\\] {\n color: var(--theme-textLight);\n}\n.text-\\[var\\(--ui-kit-accent\\)\\] {\n color: var(--ui-kit-accent);\n}\n.text-transparent {\n color: transparent;\n}\n.placeholder-\\[var\\(--theme-textLight\\)\\]::-moz-placeholder {\n color: var(--theme-textLight);\n}\n.placeholder-\\[var\\(--theme-textLight\\)\\]::placeholder {\n color: var(--theme-textLight);\n}\n.placeholder-transparent::-moz-placeholder {\n color: transparent;\n}\n.placeholder-transparent::placeholder {\n color: transparent;\n}\n.opacity-0 {\n opacity: 0;\n}\n.opacity-100 {\n opacity: 1;\n}\n.opacity-45 {\n opacity: 0.45;\n}\n.opacity-70 {\n opacity: 0.7;\n}\n.opacity-80 {\n opacity: 0.8;\n}\n.opacity-\\[0\\.38\\] {\n opacity: 0.38;\n}\n.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:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.shadow-none {\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.outline-none {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n.outline {\n outline-style: solid;\n}\n.blur {\n --tw-blur: blur(8px);\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.saturate-100 {\n --tw-saturate: saturate(1);\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.saturate-\\[0\\.8\\] {\n --tw-saturate: saturate(0.8);\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.filter {\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.backdrop-blur-\\[2px\\] {\n --tw-backdrop-blur: blur(2px);\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.backdrop-blur-\\[8px\\] {\n --tw-backdrop-blur: blur(8px);\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.transition {\n transition-property:\n color,\n background-color,\n border-color,\n text-decoration-color,\n fill,\n stroke,\n opacity,\n box-shadow,\n transform,\n filter,\n backdrop-filter;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-\\[background-color\\,color\\] {\n transition-property: background-color, color;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-\\[border-color\\] {\n transition-property: border-color;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-\\[opacity\\,filter\\] {\n transition-property: opacity, filter;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-\\[transform\\,color\\] {\n transition-property: transform, color;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-all {\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-colors {\n transition-property:\n color,\n background-color,\n border-color,\n text-decoration-color,\n fill,\n stroke;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-opacity {\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.duration-150 {\n transition-duration: 150ms;\n}\n.duration-300 {\n transition-duration: 300ms;\n}\n.ease-in-out {\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n}\n.\\[overflow-wrap\\:anywhere\\] {\n overflow-wrap: anywhere;\n}\n.hover\\:border-\\[var\\(--theme-primaryDark\\)\\]:hover {\n border-color: var(--theme-primaryDark);\n}\n.hover\\:border-\\[var\\(--theme-primaryLight\\)\\]:hover {\n border-color: var(--theme-primaryLight);\n}\n.hover\\:bg-\\[var\\(--theme-background\\)\\]:hover {\n background-color: var(--theme-background);\n}\n.hover\\:bg-\\[var\\(--theme-primaryLight\\)\\]:hover {\n background-color: var(--theme-primaryLight);\n}\n.hover\\:text-\\[var\\(--theme-negative\\)\\]:hover {\n color: var(--theme-negative);\n}\n.hover\\:text-\\[var\\(--theme-onPrimary\\)\\]:hover {\n color: var(--theme-onPrimary);\n}\n.hover\\:text-\\[var\\(--theme-primary\\)\\]:hover {\n color: var(--theme-primary);\n}\n.hover\\:underline:hover {\n text-decoration-line: underline;\n}\n.hover\\:no-underline:hover {\n text-decoration-line: none;\n}\n.focus-visible\\:outline:focus-visible {\n outline-style: solid;\n}\n.focus-visible\\:outline-2:focus-visible {\n outline-width: 2px;\n}\n.focus-visible\\:outline-offset-2:focus-visible {\n outline-offset: 2px;\n}\n.focus-visible\\:outline-\\[var\\(--theme-primary\\)\\]:focus-visible {\n outline-color: var(--theme-primary);\n}\n.active\\:border-\\[var\\(--theme-negative\\)\\]:active {\n border-color: var(--theme-negative);\n}\n.active\\:border-\\[var\\(--theme-primary\\)\\]:active {\n border-color: var(--theme-primary);\n}\n.active\\:border-transparent:active {\n border-color: transparent;\n}\n.active\\:bg-\\[var\\(--theme-background\\)\\]:active {\n background-color: var(--theme-background);\n}\n.active\\:bg-\\[var\\(--theme-negative\\)\\]:active {\n background-color: var(--theme-negative);\n}\n.active\\:bg-\\[var\\(--theme-primaryDark\\)\\]:active {\n background-color: var(--theme-primaryDark);\n}\n.active\\:text-\\[var\\(--theme-onPrimary\\)\\]:active {\n color: var(--theme-onPrimary);\n}\n.disabled\\:translate-y-0:disabled {\n --tw-translate-y: 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.disabled\\:scale-100:disabled {\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.disabled\\:cursor-not-allowed:disabled {\n cursor: not-allowed;\n}\n.disabled\\:opacity-50:disabled {\n opacity: 0.5;\n}\n.group:has(:disabled) .group-has-\\[\\:disabled\\]\\:opacity-70 {\n opacity: 0.7;\n}\n.\\[\\&\\:\\:-webkit-calendar-picker-indicator\\]\\:absolute::-webkit-calendar-picker-indicator {\n position: absolute;\n}\n.\\[\\&\\:\\:-webkit-calendar-picker-indicator\\]\\:left-0::-webkit-calendar-picker-indicator {\n left: 0px;\n}\n.\\[\\&\\:\\:-webkit-calendar-picker-indicator\\]\\:top-0::-webkit-calendar-picker-indicator {\n top: 0px;\n}\n.\\[\\&\\:\\:-webkit-calendar-picker-indicator\\]\\:h-full::-webkit-calendar-picker-indicator {\n height: 100%;\n}\n.\\[\\&\\:\\:-webkit-calendar-picker-indicator\\]\\:w-full::-webkit-calendar-picker-indicator {\n width: 100%;\n}\n.\\[\\&\\:\\:-webkit-calendar-picker-indicator\\]\\:cursor-pointer::-webkit-calendar-picker-indicator {\n cursor: pointer;\n}\n.\\[\\&\\:\\:-webkit-calendar-picker-indicator\\]\\:opacity-0::-webkit-calendar-picker-indicator {\n opacity: 0;\n}\n.\\[\\&\\:\\:-webkit-datetime-edit\\]\\:flex::-webkit-datetime-edit {\n display: flex;\n}\n.\\[\\&\\:\\:-webkit-datetime-edit\\]\\:h-full::-webkit-datetime-edit {\n height: 100%;\n}\n.\\[\\&\\:\\:-webkit-datetime-edit\\]\\:items-center::-webkit-datetime-edit {\n align-items: center;\n}\n');
67
70
 
68
71
  // node_modules/@fontsource/lato/files/lato-latin-400-normal.woff
69
72
  var lato_latin_400_normal_default = "data:font/woff;base64,d09GRgABAAAAAEQsAA0AAAAAblAAAQABAAAAAAAAAAAAAAAAAAAAAAAAAABHUE9TAAABMAAACMoAABJ6cXSU0UdTVUIAAAn8AAAAVAAAAHCOPI56T1MvMgAAClAAAABaAAAAYHkkYXljbWFwAAAKrAAAAIoAAADErZmxjGdhc3AAAAs4AAAADAAAAAwAEgAYZ2x5ZgAAC0QAADHcAABOwGxr65BoZWFkAAA9IAAAADYAAAA2/JzyI2hoZWEAAD1YAAAAHwAAACQPtgd3aG10eAAAPXgAAAIQAAADdn2DTzdsb2NhAAA/iAAAAb0AAAHCeLxl9G1heHAAAEFIAAAAHAAAACAA7gDmbmFtZQAAQWQAAAEuAAACmDboUwRwb3N0AABClAAAAZUAAAJFV9sNeHjaVI8DbCUBFEXPoBrsIFjEa9u2bdu2bdu2N1i7thmUcYpYDX8HZZ79LgKg0JWRiCNHT5xJs43Ldm6mETJAIIDgUJ0P4oZV2526rwEBvA7Rs6EIlHj9G6wmVhPzvtXEqDBWGxV6jj5a26mN10erF9Xpyt2w4/ro0AJHLocMVKfrOcHtlbvyU6nMvK/tlF5K0x0KlV6K/x3fi8SLoiJUiv9Fxdu52litj7aaCL+F38Zq4bebcbbXkXOnjtTpPslP9dHOtjqaXkuO35DcCy4Co8LXTuxlENhAEAoqOgYmFjYtaElr2tCOTnSmC93pQU960Ye+9KM/AxjIIAYzhJGMYizjmMBkpjKN6cxgFvOYzwIWspiNbGILW9nOTnaxjwMc5BDHOcFJTnGaM5zjOje5xW3ucJcHPOQRj3nCU57zgpe84jVveMt7PvCRT3zhK9/4zg9+8psIYkggkSSSSSGVNNLJIIts8jAIC4zFrqq8TkDiSg84gH9AU4rEmrHlbtI2irS22RaRTWJTDGCjK2VJzCQbs24JZYGlKBbRZsWxFI9RoUABL9xsBO9zKcaLyUGJQxl1PBhhWEoppZRyQ7nvvv7INruhQGAJP/7f+953vfe9eb5QinUH/6z8e6Fa9qjrpY9+kgwwyKQ2XwlF0fMQI8sR3zHeJ2oTIUaxcinXon+FWupoIE6P+l766CfJAIMsOr/EMiusssY6G2yyxTYp0mTNd8Tpz2evif4SpphmhlnmmGeBlz2KrS8daqmjgTiLLLHMCqussc4Gm2yxTYo0xZ6SmlBAIUXRb0OMZuU22sP7oYMuEo732CerzYE85Eg5L78ZTkUzoYDT0d9Dobwc/T5UKVfLq7LRNb9rziZ5z3GzNm0k2GOfAw7JEzPidiigkEY97kb/1ltPx22000EXCfbY54BD8lwIZ6JUOO9fSfTnUEY5FVRyzV2tpY4G4tyO/mm2T0MTLfq20kk3Q/oMM8IoY4wzwaK+SyyzwiprrLPBJltsk2JHn7TMGHeXY3Kc8Ev7cs6T2RQKZCFF0Qeu5F6IyWL1Z6NkOMdnV/bHUKquTJZzIboUKmQlNdHvwjX9aqmjPoqH6/rdoMHxTRmXt+Rtbe/IxuiBez1jtxKhSbnZ/C3atNKm3O7d0cF9bTvVdSkn1Hcr91hHL330k2SAQYasZ5gRRhljnAmmzD3NDLPMMc8Ci8ZdYpkVVlnjkfnX5QabbLFNisfOPeEpz9gxR1p9hl32rHefrPt5IA85Uj52LscJeXU1duLHdmIqFMhCiox2xlMYk8Xq7UAolReiCXd7IVxzrpY66qOHoUHGuR3lQrP+LcqttCm300Gn4y6ZoFu5x3i99NFPkgEGmTLHNDPMMsc8Cyzqu8QyK6yyxjobbLLFNinSZNhlz9z7ZF3XgTzkSPnYuRwn5NXF3Y2Eu/DzcIYYxY7Pul/nKHHFpY7LZDkvnkVZSU30VXfnjVBLHfVRTbiuzw0aHN+UcXlL3o5+Ee7IRuPfjdo9i78OTcrvRYOhRbZy3/lO2U2POXvpo58kAwwyZO5hRhhljHEmmLKmaWaYZY55Fli0liWWWWGVNR6Zd11usMkW26R47NwTnvKMHXOk1WescZcsRxyT44RvuGu5UEY5FVRyMcqGS1E+DCkPM8IoY4wzwUfOP+BjHrKj7vv25zf252shRrFyKReievf/0P3/R6iljgbi9DjfSx/9JBlgkCl9pplhljnmWWBR3yWWWWGVNdbZYJMttkmRJmtNR/wsnPrP30IBhRSFNz1NVSEmzxvZGy2UUU4FlVz05rrsKqr8Sq9EPwzVyteiv4Za6mggTmM0HO5q3ySbjd1i3FbalNujN0MHnY67ZEJdt/Lr3kyT5lo07hLLrLDKGutssMkW26R48baRGWPvsmeefbKu70AecqR87FyOE/Lq3nAXnocS96mMciqo5NUrfSvKfn6170SfuOJnrjgTmmSL/q100s2QvsOMMMoY40zw5a/KHsqMcXc5JscJX/fUZUKRvYtRrFxKD7300U+SAQbJanfEj16+T155l6TDOc6Hc0ZJeHarXH8q1FLHdedu0KB8U8blLXmH+7zuXbCo7RLLrLDKGo/0W5cbbLLFNikeO/eEpzwjre7l77jAjv0qtNBKJ91k2OWYHCdUhlOe2AIKORNlPekZe50PZZRzIVSEClnJRWu95Pzl6ENP/IonvilUKzfa7yaajdFijFbalNt94XbQ6bhLJtR1Kw8Za5gRRhljnAk+Mv4DPuYhk+bYUZ/Rb5c9Y+xzwCHH6nKckHdc4opydi8fCuRp30uFsshIMYrVl3LRG/CyHj/x9Fzxu/ipu1ft+Kr292jWp40EPdr30kc/SQYYZFLfPW32yRr/QB5ypJyX7//vL/WHr/ylvuo+/yHEZLH6s/5CnuO8cyVWUKquTJZzwVulQlZS44v1GrXU8ZaV12t7Xd8bNKi7KePylrwdjYZ3rPCOcmN0HN41RpN8L7JP5mqxhlY++4tfFTq4r22nui7lhPpu5R5z9NJHP0kGGGTImMOMMMoY40wwZR3TzDDLHPMssMgSy6ywyhqPzL8uN9hki21SPHbuCU95xo450uoz1rjLF18KV7/4UlA+di7HCXl13/V8vG1HsqFAFlLkSmIUqyvlol/QZa39P8Hz8dzzcc/zkQvV6pq1byNBj7a99NFPkgEGmdRnT5t9ssY+kIccKeflD6ziW6GAQs6oLfHElFFOBZW8WAlVUdIqPgjVyo1+g3etqkk269uibyttyp0yIbvlkP7DjDDKGONMMGmsHZnRbpc9ffY54JBjdTlOyDv+ttV9Gsoop4JKXv2mbCDOkPphRhhljHEm+LLfgTv6pGWN3aq3S+6TOxeTxY5L7Eip/P8vlMv2uIor3tPVsib6k5XOhFrqaCBOi7Fa6aSbHmP10kc/SQYY5HVfO5PmmTLHNDPMMsc8Cyyaa4llVlhljXU22GSLbVLsGDMtM9a0S9b1HnGsnOMkevu/VleRdAAAeNpNygEGhGAUAOHvPVlrrQ7QKfYQWZZY6AKBRAIdtk5T/EEwMxiBl49Wtt+u18zDuqhVcBxC3Jqcp3FQX0RQjqr4KTTF6e1hl/42qRPC7wRouA3IeNotxbENQAAQQNF/dw6dRBRK0VhDLQrDKFAZQaKyggEU5qIVBa95WJDKgoMPnoHk33YyyBWbJq6qganNUAENv37sWmoo07B5JlmiQ/YCVgC7fQMK9AUtIw1sAAB42mNgYGACYmYgFgGSjGCahWEDkNZgUACyOIAsXoY6hv+MhozBTMeYbjHdURBRkFKQU1BSUFOwUnBRWKOopCT0/z8DCPAC9SwAqgyCqhRWkFCQAau0RFLJ+P/r/8f/D/2f+L/w7/+/b/6+frD1waYHGx+se7D6wcwHEx5o3t9y7yjQLUQCAJOzMV8AAAABAAIAEgAH//8AD3jalFoHeBNH2t7ZIsmSteqSJatYklVcJMuSLFkusiX33rtNccW4YLBJwPRgytHSSAJJMDVwTgjJQa6kXAFSrpe0K7meXq5fGljLP6O1wTjtv4fH7M7uaOar71d2MBJzYBhxlTqMWbAMLIDlYpgsSHjcelwhp0kRMNusQTLDazWbaNxsssm8PvYdGlmBUWL0w78r6kBhjTNvoCxJ7/C5zKRkMpbUOPyuhLJAUqZdK1DH9gRdSrtOItHZla4gc5z4+azbTfTMHiHXKq06iTm/I9Nfm51itagG15o8KXZnlt2TI1VKlbNX0/Il+iSVyq6X5JGnrgz4qFQMx3537V/gJUizEDNiGJBAarhmJ5EhIbxB/AZ9ThycIzgxnPXwj0iRGZ0ajdMkk5nQ1SijDkeedTS3dHi9HS3NDjznyivwrVwO38Y70CwH3OcQcRjfCvfhYwq0D5cGkOs0IDHeuAUeMaE1aHQcMXhn/o46zPzxgQSzOeEBYLpxB9fzYRhZB9cLYmG4HgFXyPD6/DIzQYMUIGOHecAjM/uDIBvI0H+ER+ZxKxVyLuHhollEdMQRAQucRigb61QJAJR8XMJz6Gqa7lJpAOD9NPSOkEq0TZdyUvS1jR831qiNoOxlIWWx7gldiIMzYiIPfhz6GJxh2kzxJJcC7cwRiwGcUWmpWE4AFJfrtKBfb2LawWl9HI9ijlTo4pmnVDpKwAlsB8UYga28JiUTOQNYJlaAVWMY5QQ2SDGSvEoG9QC1kAcQ8Vw9UHE5SBM2Qk8grYgAYgJ40ZMgAeToFzQB/r3+hdIMroaWuYqXF1qKdw2FAiPHVvBxjTJMDx7KSZFr6KSsynRj6b6xopzxM0OxeLwiDA5Z8pvTTaG+InPkFVNObZo+tDRXHytYXlEvoK3pTh4uU2Q0bVtetne4iLxDpn9eWJ8V1quNRi6jVXrrN3S2T6+r4Dwu0+E73KVeq5ihOY7iLvyXrhKfXQwuc+w5FRiFlV77B/UadQaTYTYsHSvC2qDm5swrY87cuJAd5CAKuR6Og3iUd5bRr5iJX/a2TOQVjje7XM3jhQVrm9L3atNDFkvIFR/vQtd0Lb5VqIvbevVdvlY2RWV4W8ZvTJ9odu1ZPJ3Ma9zR4XJ17Ghs3tnpcnXubA53Zms02Z3hUEdArQ50gFslsitTQjGob5xCE6cam3ehibuaw11ZGk1WVzjUjia2Q3utv/ZPah01g+VhFZBrSH9Um1abk5hnQgV5jRorDbisR9BgnmG/E6ALiPLq88M3+MGa25b6yVUUKVRRXEN6kdNdGzBITD4reNDq4OFy6SheHAapZ3WJyjuWfHh37f3ry9Ma1hTmZmX03s781FXd6x07X8i0rRyiZjyNq3KUgJZqMp36hECVw5wfKrIyXQV3l8uU439czvySVt7ZsdI3cLCreNPKRn3VXdVlW5f6r74e6ik01xeCRwJHIUvIw4EHeTgcLHbqxa6M5u9kXsMBR4RpkRVIVXoQ9UXW5v3RIZeDA+PoCg5JC2oqBkN6fWiwokZA8wdH8LWvMiPfFoh5tJTrGv/rG29Prn/n9b9OpHOltEj2LWYYrV/OvAaem1vfi9tYQGBdh2tzAgQXPilIHhnk37w8yVkxCtcHB78lE8Hl0yf++vo76yfffuOv4y64PE8s+Da4G62/jFiKP0P9FXPBAVoMEm/z+6Cm0oBfpVQ5QS7wQB6CIA96Lo0c2ADQxjalDoBuiis3nk09m2iRm6WPpj5qVsZwW2lBvAQ+kxilUqMEPpRqBWJi6XMyk1gt76noVRC4ILavoleeILXIn38uySBSCuBjQSyOCwR98EYpNtqeh5T1YudIE3kAEyBNGBVGiVlizDBK8L3gPmbwLmYI3EMeYJp2MfXg3C7wCOJlCfMvUIt9gOkxzL8A+LlIav4g4Ud2uERiSNXo0wxijavEoRfSfENCPEeoSTZINqiSDFKlzaN3LF/abtXFioW0wOLKMkqNDkQNHovX4ych1mEySEwv+DsjxU/eB9+0wthTB3eV3bwr2qx1cYwZXRxSMHDtv9dO4x9RF7EYDFNFIQJ5z3Har6vA24QuY4XCbKJ+m4CiRc61f5GV1AxCHmRteNSzAHQtaRRrgXQxmpCVdfu+PzL63X21tfu+Ozry/X11T/q7JsPhyU6/vxNdu/z4T59h/vZEa+sTQPbMM0D+zdbWbzIfPHPqT7uzs3f/6dSpP6LrHyGXP4aRykA9iEkxzGKUeP3UnGsAD9INNAovcQ3jy2NEcZxM8PCdQBPBdhO/SnW8xuMKY6rA6isf7IarrICrJEIOPJD+ee0ASLzRDc3JiOwPBImMOS7mvA8+wds6psfDrvqhHGaXvd4K/qwzzRaKJOAngSUFifbiJT5fZ0k6n5egoQTcLrp2w1FqBvr5ktrdm9bmMpsFQlP8cK7MLgE/yxoaXpWXtzRoSAhUp+k0AIi77+vPQLYzfO2fpBNSVr6AMj2YVyR0CRhmoTur9AQSbJTEjM8ldbjj/lVBc6gzsG9/xW2P9qw5MVaqrlQo5AYeTuK0vbCvomJ1hdVQd/tYx7Z6i62wCxHviuUlqG8Q7122u6FwqC5TYjm3vWd6VXag92u1CTESKRlD6cryU9Orl6VlLSu2bwPWcGdmsDMH4l2N8wY7OGaHcl4GUUyMKTEMOTAnBSD/YTVGIDkbiV2/lcnPH4nskOtIKf7k6SMEFfkYBzjVL1Yyu8B6laSDOMI8rclJiGTPSYhg4JpOZHscs5FgM7+FEmKtjhUKh2uTGYkXXQEmGB5bOvbIRHbt3mdG8iZ6m40+qV7mKV1eULGuyWmruaXGNxEcm8DPUBXWdGZ3XHhiumvNd7YXq5N9+kqNwWpwtW2sKhiuTJbKjfg0huFRXbkhJZooLQuIYA0IZCMfAvKF1NA4vqf5/onC0m3fGhl+bGNBYwcYot0J04zIs5F51V61qqR0osGRWjtWUDpRl0KMBkaO9vc8vLm0aMs3x5a8PAnelaoje802prJoTb3DWT8WLl5dk5zeMALlMgplnQOpgZ6BwJ8L5pzYD6WdC8gcES/ymNBp24K3C+MlEbkknjpca0oVXW3QWMhpdbIsXrIeosoyyJMV2p8B+kYJhlFz3LARkxU0Z84gbYirBZ4uWzTGC4bOby2+Y+fq8eCao93Lj60JToztvKNky/mh4lVVSekNw9nZww3pSVWriot7glpjaHl+/vKQURvsEQdW3rdkzwVr8pmJmj39WVn9e2omziRbL+xZct/KwAFbSU9O+WDYYAgPluf0lNjwx1NKOtPdrWGrNdzqTu8sSUG6OQil4ZvjAwOIiwWYeEM2NACLMx9L3Z2joeLN51YMfH1dSJWaa2NOCl2GU+AJpVXi3wPUKZWDeeGRqmRb2WCodFWlHa/0DR7uWXJqsrhw8uGB4KqVg5kMT6bCs3VeTaoTnCwYqUxKqVyZVzhUbk2r7oe0bYVIvZ74HYufi7Fasmi8dTF2fxWWEzGLHqAdGXZHPeb+kpi0uErZ+YUxirOYiC8JWvjsYnoA1M57xP1kC7JVWdRYqWhIV1F6oAPgIMERy5k8uUOtdsjBRbl49gr+PLhzi0TNf0Mg4lBi/ut8jXgruAtydi/4NvEvYj+0XC4bEVEYuJfomH0I/eHBXeDVXQg1/g53/A+7ox8ZtAUqH2YPFpRYAMXfxWifFLU6Be0rJqj3too1cBcxxREJ3uCrJVuYVeVwN9O1f+GfQKuyYzmfqUehgZGs+bMV6SJhmgwVbQM5Nbu6Mx1F9SUeUjoZ6yiqKXKYsmocuS05llg1fc9nSkG1zmtXORvXVVSONuT6fMbDpwXJoUCgqDUnpThdo0/Uq64e+6y2m69JOFqqBqvDlsMoCdPiG6kvih4Eh7X1hd4q1QOUCkPsNAAOaTYlWtF0EjJAIgYscLJfZmXnKsnbq7uFWburc1qzdaGt399U0OfokkkNSar01gJb2wMvTe5871zv0JOf3n7o3SZRrIKvHmL+8eijzKuvbfL37jv7/HDn40emlmbkDt3J4Ia87HRJpc1ZsandE36qorquOKmsN6vp0b2tCjlzX0V6Ylo8P7P/9pY9v9xb1P/ER3c+zFw71xr2xMSFS+tHfwFSvzfy48fuHAjYq8fv+fbQ8Ld3Vq6Tu5tDwBaT1z9VVNqCkIAPUawM1eSoVjaiKoEwElH/9wAjgYTDpcru1STwdkY27eSa1Pfiuc8xd+GqvygVAgVfI4dV6Gmpljo8uwEv8dUlFWmgrZ2D6HIMrimH+JKMYTD3WBSrAXyC5Gs1W+ZvjOfAj6a+vyHbWNBXeORYwban1zEvAF/DrVWJR44yPwFY/boa66FjzKfUYe+yvS0Z3Y1hheHUzo57h7Px/YzQWrQ0sGrbnsT8Dt/mW6A9t8MKKIaaYSOPAdxIwXyJSMfc6ANyIbD5feQxsbCy9eo3Hpg93z34PRBzbPrNtjyuVCLU2X3l3fnj399TVbXjW4P5/S0VVgmwCxv61wxdBPSJE4C+NNTd2MYXyrQJWlnNXS/etvPFOytFCekmEZQwkga1G0ojFlNH80FoQEbIP6lkE0FjVBbU7v6nmNnpyDt43DQgn+p/oXTqmXHmEdA0/sxUKf7T48wnzwxQhwe+y3xyfOqXd1RePV55+y8xEJW0Ea6Nsm/WuaN/pDFSizsiL+GPz+6nDk8ziYcY1TSctuAXMTd+YWbnV0aeuIwmC6Yjh9BcVor5UIpeDIuauMSMYqVRQhOsC7DinCsvF1SXhCNreXOl9Y8yFfiOb+2OQ20PMrPPDA58H4i+3nTXppVOvyReLFMH29Y3rH92T3nVvh/sFygNcpCjFI9GfmfLssmicj0F6Isr1WkFya3xAtpu0dTc/avbdr9ysHqOCyqT5dtoliAWPPB/D5V5eXb28mWCvIzvi0zAVtE2fAuc/SL8yUE4m4jO9oCDly7BEYCZ+j/xH8E71XxvwBatiqGFRN1f4sF/lD3+9ZHlgziHwBUKaY47PFBiuQj+se5724u1uoBWopDaG7e3E+cQTZcgTVlwNVhwwiXmUxwWuUE0+QJOIgUgWsH2MivE7j8okxIeivxRYVFok1V41tdlGpmYx0gEMrUxrvXiRcIC46RWrYjcp0rgxyTGR9o4fHEMHoiVxFKRsSgHcGPi9/COghpCqvSAMXx49sVLJ09e1zZnG7w1wwEkIwhYqiANKAeD6abJBp8r4Bi5BSBW0Qo+X0mDN4Vaze0P4zijUDu0DjXDJ4iHb9doheAfOCcuI17r0RCrVfwrA6RO4VLPbnU4iO0at+Lq69Rhvmr2wEINKeEALe0EUJ7IgK5vCKQatZiAufjD3SqDaPYyjj/cSx0Wyq/+UJOuIj6+MiCWkX61Sz5LIF5wrPPav6i/LKirOORCKySVn6mrqL9An7o6Pc3MPtXf/xQgp6cBxXrWxPgzO0pLdzwzPjHnXf+5NDR0CQiPHwfCy8PDl5n/HJ968c7q6jtfnJr61Z1VVXf+CsORfsktkBQa+XE0T5+PXzYPC2IQNLdfBGd2/2gqVLzrh9veeqthS3PqzCNv4XGRd6jDeROn+npPryu4P7VmNPy1+xFHzG84qM7SRuv6aOYVBWAafCVnSdVjxWDsWGKmajawoeCrWez71pGtacy4XA2kUvlXsDrH65uQ1zjMfDOvXCWyZWjJYBHX9+x+flvQ1bG9IVELTpzNUDP7JHb73T9p2taSOnPmZbw58jB12L/i7o7KqcFymcIeeSEJx+IU+5MqVuRtvQ3aSxasW16jZlAnm4XreYY5c11r1KpcULtwrsfrfTFyscRRtLwo1Ftgyl6+YduG5dn5Gy6s2ftmXSZPRSt8deMNRcMV9uxl8NWy7Oyxh4bWPV9OPikSmZJM5py6tJyazKRUf+Nk25KHJov7mjsFIofPYS1alh1qyLQl+Zq3La08MBquLIVUaqFcNkO5cCGVc70OcjOTfolJow6fvMonPzqJbP8Y7D0q4Cw1i5vI8Nk0h73V4/hrbfuWey7W3P3y1NTLB2suepbvvz9n+N52YmD28MaXH2htfeDljfD+/vZ7h3PhejzoSyVs7SJDLC90ZWDmPQCjM7iHVgliFDS4G8boByPfeYw6rJHPCk21KSm1JuI/Et2VAUQZjWHct+FK9s9ZCQ2VC9YF0eAPzPRxjYkD7Dwhh0vHgDqOWZ2pMXJBjZTm8HkgiTKr72NC55h7BDEw5DJ3n4vurI0Pmkx5GuINiQ6NvAXGHDiQaiFkFBmS5BbR1afn6CE/gvTEY1gMiBI0h5sxUU8A83XaVcZ2USHngVtg5F4eoxA9yVjA+z9QqnnMVq6A2ROjUjyB/xl/khZGLinUeCwtidRGVCoab1PIIr+gVawMyTdQTsLaM1jMPf7qxch/HtboBaBUHi8QaOSgJMagPotnRZ7Hs4ilGlnkJXNQbwiacIdYB9drhuuhmCKM1pNcANEXlgoA2sNBxewrhPvqL2VE6iyUdalJf3X/dKU+nrxlGv7uAPMnwFAR9DuZxMiW/JAWHTgAxuKVMzPKeOZPXH2xUv3pz9SqYtR5+gB2nv7Bdp6IKNVIMvJKo0uIt1XoMoXURVPCFZvJHI3YcPUfs6urvL5sMB+xje3s2mCMueM1uZbjiZcXf/JX9ItpQkb8AfIhQVGLhR+Y+HO40RwQJ8dB/zZJHO9ZoYxLqy7xVHKYyUQm5TRYpkpRpKYwx2g5WgVjXifk1zpQhKWgIAj57AcPrVuH3ljJveACNYOol7mVBnaHXxgT6Hv6FRr6PWpGofq3UARwFuH/SUySXCwJC7C5aBqgiett6fnPWegxCwUK4EbPaSKadEzWaBIoub2ycWlW9kClI3z338/29YTaQmkqaTwvofHSLU1T7U7GnVZdlKffcHY4XZOaI9YsSQzY5MZwX1HOqmY/WXPLemOSUUYH6mozew80Rd6Umd0JL5EGd2GyPcsiQTQeuvZvUgm1ocQsKLP1SFhS5kEKZkIANlUk0YIBFRCHLuSdHGw90OvLWX2yv/trnhieFdS1bPe71pYeOGQOL6MuRk6UtYW3X9w8dnF/XWVhp5W4tbaMUYZ9P36650BHcrS7fO3fxBaSwpIXYSMLhqgoWVTCFPHEIpHZV5VZvqbKllw5UhhqzEyUqgTu8POjS0+uK8pbf3585ak8IiSIVevVGb0HWjtvX+6BTRxJqK6ieMeljat/sBeKCfFbCvd+bp5foylt0VZQABaY60ic8CknqoYOK18cOjPcEmX5xEDXlPc8kwsZTl9bcuCQKbzMsqFmacFtlyC7B+ryArj7St5ttWXgvXAG5Hc/4heP8vsC5DcRc8x3jmAnS0/Mc3vDKFRQ1kYoZdzccf9YHuz+LMFdjROlBcuL0yTKWLexc3DMP/iNbaWhycfXbDsoxW2m8FKSyh2fGU7WLjuwNM2QCFm2Z1tlJV/78faV39lVtf2eqeBARRKSugaScpA6h+mRnm3RFjvLtSr6RQ9qQIe8XvLUmCL+WHrH1trCLBIk6AzOCp8OWJi/EF1CSiEv627Z1eWSt8l5cb7WUNe22WMY9BI3czfxR5ID7bwK62IzJIgFIqBk7QgC743It7DFNHcBXifJzmE/XLGBeE4D4O3weBqQJY+bAn17G0ryEoxZyya3TC7LgkJYterMqH9pQ4pHbHQlVDQF+veDO5JLl6wYTg+UmEtHykvX1CQzz/oaMrWrh4dW6zLrSY5OGzbGiEO15eubnRK5U5loEZMxSndrcWhyaSC1fHlGxaBBXpCpTHMmi5P3dpWvb3JevWx1qmMpDi++2mfKTlFrXGG8Wu+rcHSNjnY5Knx6KN27oBj+AO1KcZMXQWSO8sGV3HU+ND3QsKUp9fzgcM3XsqCbnC1q8PcdaI5swHeMb6kMRZTQUm6DsttKXYASVbG4Llv05Q60nv+dwgz7BQ6zXG52wL6BWUF8OCsgPgTB68/S0DUNqvvaD5mD0fXkmB2ttzDzUCKH/pz1E4pGKo2+eB5Oi3hSYXX4c7a7+oPcwWoHn79MyAVldWT+Z7cG2CEoj0+gPPRo388pH6wo54pWD6DCKdeIQb5Irz7B7KXjJVKdEOw7pjTQzAWRXu++QF2cPSKQgBaxnBmXaPixBjkTK5GCowoho4U7AOw03KMV3hGszKCMqItX8uADVi/UP1is8UiQs0V5VwWJhfqhb9LUSitfmLm3c2CLVlHUvNxdu6nFeX5FT2pNjvl895Lw6jTiQ8uKotY1y/213jhP9+2dSIO3bjDkdOSgu8l1JbkR4bxFwJ1VC3fWL96JDp8cumEWcOnRsvZFZsGiFknDtWSYeXHvOYjLEDJbr/dhU1dd2FRQsOnCqlUXNhcWbr6w6t6DB++tHKuwWCrGSKp898Vb1/1gd1nZ7h+su/Xi7vLZdT964ps/9nbf3t5+YLkX7XUXM0OKSC6LkLKFlM+Zj+TmiIC4EIXOjEQRcuxk/5IdHiCJAmTpfhQRmBmq0rKuZlnB9kvRmBAMMPnkz2+OCZBDZoZ4jt2V1eLNuAx7VeBmXH7ufP7JwXlU7v6aL5ZvZc6gQHQLi8vEh1eeAH8rb5/H5uL8GsvsfgTN+X4Wmlkd4VfQrqyOlPPmgRoAczrq1ynJWO/hgeRCnYobR2d5uzYlEx8q46dX3iqT7FDLhgciG+BKQRjrRVBDOZB6zv+Q7uOvxqpFVn+l11HqiXeUL+lZUu5wdx/oWnk2J5mnlErtgbpcb7VX7Shf2rO03IG+pPcezSKqlcp4lcqeYbB5rTqjPaclt/jWFneRr1BIa03aeGeOKdlv0yUkBTtCWUN1rjw/8oVU2B94igpiRtTpt2awyZRfFq2gEfLLlTfiL3hu3bZJsfJ0Eq6UtKPzI8F0bZJewaMFXudt4p2b8WGZvEQBAiIZc3Jb5Fh+UCQVSZpS0tE+k1AWzxEfshiGFvX5Ua18I9hKQOrKoeo9WeejDnBqJawrU4gPI5Pjm8vD+PuzAstIWZu/90AzvhMDqEog/gZX+/xqQXqXQssBgBZzeVIakJx4+V6m5zhUkCgykVhqNpcm4vvEilkBm51DLCA+xpxzK8nYlaICWDSEdEYTR4hXBExp6X1KLXWJR1M8ueBVSi2rkmuoXwkkPEoc8zylle1kvrNfw/8zj09RfN7rAv3Ouf0LTKaCRPwOkVwuioyZC43GUgNLjQl/TJWmUrlUkXoTxtZhxIuQx+t1g8znl92oG4i5/BVsYR55RCnnfRIj+R1fLjoFG2o9j8Cq4RqX/oCvkh/FueDvtJCZ0mpBPi1htJF/qGiwX6dizkRrBhr62D/hLqiHgZaTgc/I8+mYeO3Uk8yS+1UaDhDFCClUI3E5OskB5hV5HLiLeEpFR25TpqpUqSp8k1gBVy2GtDfBVUXRL3RzlYMPlQ5GookWRH6PJ0UoYSxui/wJ/ycxIzPTEevecqFZjP9pX9QqmT/hGMzx86FWIIxlIFRhHT8bROsJ1uHZfisBL/BWiRSmu44Q3ywuKCgWy8RJDRvqM7Sx8qo2Wkork/xGoz9JCW/bquSx2oz6DQ1JcBKYyasbqs13d3f3eosmGp01cmlfc+aKnm63NeSxxMRYvPkWd3fPisyWXqm8Nq1xosjb09ONKH2LmQFjkFIC2Y/E/NaePVTkk7PoTSvkIZXlAczRmgIyUMVygxs/ezwj2mGAjsdCKsuNRwEr0pOQtuT6L2egPhlOQsyCGUhiD6I/rVYu7W2J0m/J9yL6PSFrlP7mPqm8xono7+3udufXDtVBSifANCklMGRpCFA9c3EEYZ15LgfAPw6VgTssRf353v6lzYnsoC+EBnhfU3HBWG1qgs3YWAJvHEabEUMn4aBkXiap+ZNwiFsP1NVnT8Jxrp+Ee0VmcsRrHOhrhiP6NYOZwXWOppZOr7ezpckReZ38E3oancV+84D77LmmIHHyLejBENCoz5zxQvDCHumKYjkN2HNehFyJjnfh6Z0PrM4Lb/7OrdFzW+L6KZ+TJ6JjjY68ZG9eU7ZVLJBSrpwn2WNdb+9a760cr7YJ+DVT31qz6uk9dcQFue7d2Lz0oEAgiYvjRjikwaSN4eaVlnMfk+nwN0/8QIV/wgn07EYWAUMp2UF9HQsiq0aV65wkEJELzi5FS2Yz+o+LDiRE5WREn/glZm+Cbqdv9NRo9folRXGlfAWfVgvkSZ6wI29ZfgJ4Uq9kNgTcuoAePyWQa6WzOaagS3cZP6ZJBNSShzaU2ArbYZihBLQ6zaxIrh4tZD4tler/UzHioLiVdLyKHuebPEVOENXfFPZnkiSXwezCH6XXb/Or2EjoV0HJIvJUXBtLOdcGs3b/om9KfzLqDnfcl7oiK9CfcrjtPoPJqDvUcSh1RSDQlwrHetOUOViXltaQm5iY25CWVhc048fQq/ZDcKr+MJw6gH56X+chPfwpO3bWodl1zrT6oNkcrI9iBZRqA9uTlhk/i14QehTzZ3bgv7uAm1lxj8bAB3JazuXC+CDjGdX3MgPAw5wFjczZC+wFX03Y1fLIj81ZOl22CfdJtLO/6R8cYJ4D2QODGL7A77ms50tY70f+P/sW85fZN5EM11zbTuyizmClWPviHID9iv6FmcB8NRTlBwoWMpTBVkRE+lx24KrK0KbX9A/216RXN6YH3ctv74QZQhJPJZHas5ry3DU+rbt+xeiKendzlztvLkuIfLt4ZCroc+m9xTWN9rCP/BfKGtTJmQZrIC3F6S/pzK3bYrV0F93IHcxatSNodYQ9yame4q786k1m62BF1lCtK+iPnPKUBDIMmoq0xEyn1WyW68sg1zR5P95MbWC72IurCWrR+B/ShCSV0m6QSg12pSopQQoG0IdEVZJeKtWjq0FKxajsaGRXqZLRvGTVojHUQuG1f1OfQt9yYuUYAuaopS5uGnA/21kAN75xkvAdCY2YnNMCieaRHJ6AI+BxcgOnJ7qPj+cVTZ7pHj4UcFLiWNrgrsyGpy9S4Lf9oCvssszWe5fuPPFUX9/TJ3Yu9aL7p/v6nkL3van1a/adaJ16+5EeR/34vpOtU2893A1+QXE5nPxwWeHk13v7ZtYXFPpDnFioDQf83Fu1vj4lFkbXmL6nT+5Y5vUu23Hy6b7ep0+w93CTtlO3w3MivY++u7Pt9O23NDj7Hns/2l8i8vBG6mEsCUOHif5f/SUf215S4o05UikvNs7pzjRZ4blNa+udQ1kBq9uiE9NySuldX+ZrzNIzf/GUJxYvz9F4iVKBNF2RoIIIlJNkKsgw45a8HKlCIuInpztNOY0e5lWreRCXxEOsMSHa9mDbCECcwOSQOkyWIWMPJcJEJppnod7A5z7c82kWTfOP0rRIeJSitFlpi8Y4RwV2aLlKoUTMXI0T0krmKk/K0wq1YMcXvEDnD0A28U/8dYyClETB4SDReV8kG3+daQXGLzllR163tHjMg5WhHqnsK0yIQsu7lazDq2RsFmm2zUNlCij838zmrQdBwtnTQyslasEbB43iH8WoNbUT/qo0hSyl2DuF//R/sJg/M9PExk2TS6bUfL2cOa8GTiG9RmHPslpgLw1KQU7+Aq+nCuelIMeDkUtU4Vqoy2LChr8I7Yz18UUhfXEkKHa33lpUdGure/66Re8rS04u9en1vtLk5DKfnlxRcEuL291yS0F4bYvH07I2BJ8aDGhWud9g8Jcj++nFakkTeR4TYKKbT2ICeLvgNCYzRHxvNkyeZ3bvZu4AY7vBulnLLshNPTGF13H6MMeNelkUDRLzZ/5g2kCwTabrx+gAaPc25RjREbATqjTFZYWKAfzYP6hTE2Q5DmeA5skkZAxVItrD6dP7qtLsRcEs/UMcnlJelSLUxr6m9mZkxHv8rmRaDEDsypWQikZiI14Pqcidp2Lx6b6bT/aBRQQRoNtTn51wa7gouajDFWjMTRH5RbROwJHqUxIMaQliiS2U1lKS5XIFYnkSESSugJsaauT06TyF9q0OWXXQ3xjQqdNL0+I4KmGCViY32BX6FC3dAnK8bm+aXSyClGbUZMRDWp8l9+JNbGcbRKsNFKfwpnfpeMXKg7QxgZphGJHw3yoFqvCYmWiFp/vcCs9qg1xK4BUVesOD84Vewf6W8jHYUW6zJsFib3Rk3XyxV1rocSa3WJl37YkUivLJ1/yUEkZ5GRwozEjv8G8e2inla0eY94+sOL02L2/t6RXU4cNX/NSPrviJrtzBA3XN+/sy4QobwXfBGfwdTPZZe92oSvLpDZn2uDh7pkHvS1LhdQtH8C38/RRzHPwD4yP+VPC3c50Om9+zMIz7znLEygRFcooyKceaMhbXXpcQqHUllRsknI+5MVyjRqaRxlL7a+VFvgRPokxC+6WIu3XQMgs5SzFRNJfwczlIbH7YflAYH72bHIqlVTG2Pw7fxgwSvwXfSWmNoTO/F5lsivZIiBz8G9EvxoYv7gJxILqDzcWra1NTa1cXl6ypS02tW1PS2NDQ2NLQQM2k1I6XoMOGKXUTpSXjtSmRyGBv74oVvb2DaId7IWoLIWpLURfGHz0tBitRWIDCuzwgU1gUxOKHH2Rp+UeFdKzoKF+b9Smwf7pwvA0CsEQCqLhYgQZQEgkcMhtUKhWz4bMvMIi3/RhGbaTux8RYAmbFXNdPkSrMGXOnSC2LREbB7InwUNePMFOiEVpYP8L8XKrA+aB549V9N8mU5OLEvz6IiGWpukrCLXUmVAFBSCB6/HFxbAC8nL1A4JdlqSrmyVcNSqpTl4BhRJS2LkibA3pzyf+CKotJll0nluz//+HN7IM3MfH+/7VyFlBtLGscn1lLgAChRJAGAikJliJRPGihUEILdW9Tdwvccm/9lLrRd3rq5bq7u7uW+wy57l69RjZvZ3bZJiHUzsP3H85kZ2Yz3+T//b69dPbE51ezEpl8+uVx811C0Q0A+ib6FJCDetAEpgUZ7etbtAKnRO4/JX1l17OokZvwzCmCzxzxxjUveX1T/GeYAJnsMZKgaJCG1mta3EpRJdCkRgFfzFChfXrAskISibUT5g9O/Om5JK6EXRHI/H2MkL/MMe7auoV11uycpCN3yDKLc7MKGwoyKzHyJwuj5AHMn9fLU27MRUIPhgEAJKALLgIgiN7jp/eIei90++inRf1TP/2sqHf76hKjqH8CVwGUZ/gOAKYLZ/RjAEAROlr47ofv0C8J0Ut6PNGFRJbnqyJiZl9fjufjR8JS4g7CLvjRNJkmQkS74Db2NkUsoSDOpFUm8nngDsy/1QJA+67Hw4krQHC8mRkJfZdtYrPPuj1s5xcnx10Rj5NzKF3j9zfLgy/xbtmaFyA4fDlwLrxx5nLG5hsJvF6eXcOzlSrMog0E03v89B5R74VlPvpZUe/mde+7AMBncTuZnM6Arj8A0sERAIgdPnoPr3t/5fRWpkfUe0leP8vpLcxZUe8mAOAkRBfTH2HePwnHMgwBKgUiUJci0IBKngjMfY1QY5oHQ0ye71+j/oOwHs7CvIndDMcirIeUEbsxEojxQOJILkIDWflKluToQL6ftB1frTnC1dqF+4NJKtyfXGEcvwyq9/jpPaLeC3/x0U+L+qd++llR70Y6gGAd6KZIagKi9kIISQg0hEBbCCT/ZO+Es6azJ9ij06GLvWM6nAgnkBfZO9mTM+As9tgM6IITZ7C3wwkAkFzb7RwF1sWNoBHYRQ6Mc1mwQau/dHnbsMulGkIrMH2G32yY9Qao8kHDFj/rdKnyNfUvLG/F9NSqNxvHKLRa173zlv9dWltJtBceHI84KvKP0kLPitXHfHCxnOxtmjhIzYLaRzBJlW9dFq/+cRb7wz1tnTXk5vQMRFSte6u6b0sVYqq8Xp4KwqNrF0b9OAim9/jpPaLeC+/00c+KeregY8IFt1MotJMHgA+3JsceJjZjTEHJtZe+GUCuQTn7G32Y/SOQXYPgaa4Sws1lx6vFyI6Weyq4Z0P50t84oVdMEB3zDs3KynDUOjIsDVMbLHmuNufME4JFY6u1ZHIIt71pVpPdWF5fboy1TyypWObMeKRyw6P0/YVTl5oKx5XlZpu0BrMxq2puff3ascZL2RxHir3KlJ7fWGZxllgLR2RrS81J6U3rmvr05Gfz715b5vXyrAl9FzdaFXi0ykEvAEF0t59+WNRf89O3i/obfnqrqC/00z8R9dfBJ9xvEulMJIXOYzSYEoR6UPHYg95wGccC0VsQ2xV43BGigOkIas+Y3fMK5LGe3dTwUQtKK6cU6eURQ5ispPGzF5rXvGCLH7+wuaByZeMAZuaxFS0Hkqz3sY8jXsY1Om92TTp8tmhGZZoE9iUWjqdox9oHlqdpJrdNytQM04RIixBKsWJ18QR7rK5qYXXh6ikFVK57nS5dh5mauZMnzPN8Tuvs1enjG4aNXDoS/oo4xtJlDUZcQ9mBKZfqwJhFDmpRYXlgwIL7fAJWSuPuufkC8JIVlIsJi2JyC+6eGRU8WN0QxvnZK3ggxhHIy4RIS6tHSvMD4hTmV/A1VC1cW+dBMN3tpx8W9df89FZRX8jr3j8BgFtxOy/j+FLeycepQwAQqT66m9e9pzndSh8W9ddO8/rnnJ5Gt4r6wk4+TtV5z1E0vRWY8asbea0l3E8D/0cC5DxuFfKe+OSSr4fI/ZMkGu0jLrHgsIOi1fOMc/KGxNKKGY+OvkMnVc0snF1lKG59omXW3TdVF6++bb7roVLFmmlPTh+xavRwUm6unV1cu4Ire2hYQKVJwhlVZLUiOYKOV0dGFMsLs9fmhYcp5eU5Nx59auner06NK2t9ePm0O9aNHDd+2/OOtr5d1iW3LcsYXZKSO765YvT6cUY0MpgtwK/S0fyrFBIA6ZgTwCM2Rpipv4Pqbj/9sKi/5qdvF/U3/PRWUV+IdEACF3iOc2s2YG4lg/eP4BUqnVzIt4GzopN8s0BJ0YHHxJdt8PaADbCnMUAAJHB4H6WMVA1IAhnYDRVfP3wkFR12IZBChRrixYZnjbgwSu4rKkPURN1mq01VoCnfX1aF4Alnm72CC6GT+t4qgI/WLKtb7UyFttpVzlQz66wiV1e84EY0RbJ2pCb21cqXb0RIhV43OV7teejUTKLebnXtZ4dxVeOTDs3wPJHt9fK5cTwTE4QZugBAEN3tpx8W9df89FZRXyjoOMeL25kitPMVEKkODolRAB2mOqIuz3Q8XHLrgn6gY/qWQKBDEuPpGClCfpUlrMkf6BDPo1U8j4X4PARWh7zgw+rw+BLPS56VGnh+3K/+w+JfcqxSW8gAgFxqEAtEbm1iO/b8cOeUKXf+sKeDbVI7mu+aP/+ultLSFvS72SG+yfitZeuil/rB8bYbfvOYtnQedDoPdm7Z0tleX9/eCUh0vTNrKJo7HweoHZTdCyy5KoZC2leooLoUuM77Ba6iiQ7jEKXMhONW8ws260vbXbeucTia75i7+XlL7jOeO3ZuS66YXzlifmXydnIOF6jSBwYqEflb1bx8bT/Vc8PSBesQ2TNp7ywzYnsefYukxdCE+FZqP+ESaF/OmBDuhxFtIlzNyugNUfKNjErW+unt1P6IdVFR6+gQKEXzs5BaBP+mP8H+UxAfWGXqt6AWam3VqWk1dq3WXpOWWm3TuqxZRpvNmGWldekVufHxHICaVoHuFlGRlmm3ZxrtdoBID+p+YiK9HcQF5qbF1DTsGGaAi2OzSlN1RdZsdTWxjGPxDNzfWbQxPTPLaU/UJGsmZDvz0G8AwTEinHyW2NvvaR8jtX2fEXs38Y/Q7/s8Quf+xR1icp88Dw30nyCGe4S/1QGfpsAbERQpJCs18RMbbFI6VJ4QExGtlsST57NnZk+6rTKZljERoYrMHGuCtkIfJosJRe9dyU9hFf0Vag/yqVQceWzYKMJuGozUxE10+jZIf5U9I3tyf4PRRqHBsJgw/t3wT7AKnEEtplxti2cGbZBAPSbG4x7nDNpn9VUOxStXPzaZgw4aINCoEW48ajmDjttVdx4ev/oBzhx85Ak08oQbnOHPKuX/flZnrv2kIPgQfEY+Qb4ZzOv+sMDVVjdq25yCgjnbRtW1uQqIxv6jUdwR9ygg0Z0k6HHgJ5zdKRhYoZwSeHylu01QdKDi8Vypijn+CscAQJRRhP/FGUUQPHV4talCAJHPDb/GPjeAAy1t+LWfiU1oBvGrobcCAFLHVx8aRL/Tx6K0COYiRLXE1EqODhiBnJJi0m/7z0h4CoQjoIdCNf83CsXFlE9e26CzmPRm9BrUJbcrpu9+cvHW56uKpPKIqJTimbUHXtISuvgYloLcR+fQGHbh0BcPWMcUZmhjZVKZtLbqw72rn942Xr5nK4Swjdy87p29da4JFSHh+uH6N1+0DdEoUpXyhEh7lOb995XaFK1SIqmau8LZ3rl5bmSCXJGmQFe/g6yh07jeJgC9WH8XLdTf2UhcfUeqhdo7A07c6CzkK0wYRUuld4XI5QuXhjwRnjgkUfakdOnCqIiw84+ue5QaGxEbwX3BrHCp50G4pJZ9kKPXRlWz7USDNFy5gI2F3y5AOVxiCs7h8us1yuD23crtDXmunXyHfgEk+XPt4gijgKSBOH3Is+35q+9bpXdqGEIRHRYT+VAH4XqYbRLodvvUo8uLQ0OncmRz+0FTXyI5o++U8Bxn6UdB4oDnwJ3HVKoPPW+ef2x+4+Fq18PWJambdkEpywrNW5sOLS8L/2sinU4w/9hqxfQ89H7MhMJXmYt+NSUpx7VaRedOZUwU+1/mYrjiHYnsv8hp/Y1REW7m7NXxFu8iqkJpQPyEQYkoC3g3R1Ko0G3MojiiQsWRFcwmlQEdGVT9FEbAMYDgZiaUOMCdHwo+NJ8ZJE3EAbYrKk65ozM0aogqirn4H5n0nVCZlEQVPtz/tzA9QN5PJegNDL/DsJmIljbZ0JBNUkpKbQoZKmv75UEmVMJMpyiGmM5ITgMCuOn34BmJ8cq7DHeiqUJvqLQkJFgqDfoKU+LE/l0G02ooy+Jg9DKD3oEWHIc+Iy8vQ9hlxDFSYhxz+nIEHLxHlwJnqdKLU3WOAnNMcgp0qTNKDDpHvplZn5aSUW3RxCXGZQzLqDEncH+A/wEW9P1rAAEAAAABGqBlLXUDXw889QAZB9AAAAAAypNecAAAAADK3y6F/0T+kwi5By0AAAAJAAIAAAAAAAB42mNgZGBg3/YvjIGBk+m/y39njp1AEVRwGwCIgwZAAHjabZIDsN1QGIQ3B7m3tm3btm3btm3bttsMagxq2x3Utv3y9uQZmflmj39sVDbkQfBnTQSEgwcyJZar6ShKetqZUV2PRUPrEpaL5phKasr0aM+9ztZ2tBUHPG0u3rjfuFaaXCDdSW+S3WgwfUl7stj6hfEGMyZLyQeZGhnt3miq6yOmjgtHt0RL/QSOmkl6c36M81dwRFfckMNRWjfECaXg+PJzj+t2abRWZ3DCqPZzLzNKqtVIrfdhPd/0+34grrYRV72BXz1CU9YxV3xw31FbMv5amRjg21nlD77TFsvlVtSkVlfJUVNsREoZgIKqORYKYKL1zz3H9eUcb7V7YiHXCc/Wp/KOzIqFsjPKijfIzfWRCkio/yGu/ITUCtTVqMq4uckL0pzxB4f0nuOZpDCZTLwz8gMGMre4rK2y2I3Wcq13ZrHpvbfWFYnpWVXjiViOhqQx106Z2LokcoqMGM35ZK4PF39QnfeX6vno6rEQldn73Kbv0eGr6L4yXhgfwiO6upf45krqR/LFzomCIT5EhnmNNWq8CI/nBT1TJ3DE9D067PZU40XyiAi4vwWwjHqDPFYNUTvUh8iwL9TyZGQEgLieZ1TjpX8+451BddYF0pMk5LnV9Hg1//GSpKVB3ENJQvX+nWvaQXMxHDPJUvaiMtcy6vWMR4/UYKRUm5GS67fcT9jovsNQpAwEWKzTuXjaYmBgiILCPoZtjFKME5j4mOqZpjMBCoIHWLGhAACAy69t99WYbdvegtm2bdu2bdu2bQazgunuXMYvqDzUBJoEzYf2Q1dgCs4JD4JfIjRSB5mPHEJdtAu6Fv2ISViKVcWW4BFeE5+G3yEgwibyEsOIucRK4gIJkRJZmxxAHiBfUrmo9tQh6ir1k7boVvR8+jj9mP7BUEzEVGLqMx2Zw8xPNj/bld3BPuOac6O4Tdx73uGz8x34afwZIZNQTGgu7BTeioyYVxwm7hSfiH+kulIzabf0THomS3J7+ZgiKTWVFspjVVUXqu+1nFpJrZp2Qruq43pmvZN+Qr9noEZqVDL6GDONUyZk1jEPWmWtedYqa5t1yDpn3bKe2Zw90B5rz7SX2hvtvfZJ+6r9EIjAAVlBQVAW1AQNwWDwALwBX8Afh3AUp7Sz3Nns7HdOO9edx857t4N71X3ovnW/un890lO9wMvpzfNWedu8Q94575b3zPf83v5wf7I/31/tb/ff+9+DjKBasC+4GWaE2cLCYYWwSzg3PBrhUb1oSXQkFuJCcaO4e3wz4ROQ1EqGJrOTq8nbFEkLpM3/A4LJgRgAAAB42mNgZGBgeMDQxMDOkMTAAuYhABMDIwAtoAHVeNp1kQVKBFAQQJ/dEiYlg4TdUkra3UFjd/fuWTyGB/SBf9fm15se5gPlHFFEQXEFFNQXtCQuoLygMXEhtQXliYvY4C1xMc28Ji5hhYXEpeqHE9dKcMKD64YR+lz37HPHqfKD3Mu9fOF7rfZY+zJTLLh2tV/TwxqH6h/12dVjS+kOY7RdEQzQ6+m3zqjSttZ74/TR2sUK18adqjsh5BstV9xLj3rsK+XqxPc66jIpeteIAxa0nMv3ZJnwnHKo1tcsI8S/ebQxSD8Dru+WXMS458ZqzkSrsyJoN2tHLtLTk88R7Okbv/qLbx3Grx6DZ98HTlKH9547ntCDYAqnqTVYMsOl2qA116HUSyiZJ83vI+oRK2Me2cxSsM6snsFymnU+968M3cQ/v9n7DgZiZhEAAHjabMGDoUIBAADA6/Vt27Zt20acIY7bJrVAdwKgmJZXToFQIBBWoVKVajVq1anXoFGTZi1atWnXoVOXbj169ek3YNCQYSNGjRk3YdKUaTNmzZm3YNGSZStWrVm3YdOWbTt27dl34NCRYydOnTl34dKVazdu3bn34NGTZy9evXn34dOXbz9+/fkXERUTl5AMhUsEwcNWIAAAAMBZ/ejazn7Zrku2bdt8mefsOjejUpx4wwqcSJAhVbF6VS9eS7EvVq4799IVSjLp2K0SDR49eFKh2bxZLd56J8t7iz6Ys2DVkmUrTn20Yc26Vp/cyLZt05bPzl1K9tUX3/zw3U9lfvnjt7/+CfBfoCBngoUKESZCuD7lokSKFuPClQE72rTbdWRPh049ek3p0m1aokYjRg29eCPNtTHjL57HxsjOyMHIycjFyM3iF+rjw16al2lg4GgApV1YXEuL8rnSixLLUvWSE4tTeVMyU4tSizOLwTyuxOTSEogEf3JmUXJpblpOagWYz1mUmZcOUVSSmZMCUQQA7UuEPgAAAA==";
@@ -150,6 +153,16 @@ var cx = (...values) => {
150
153
  };
151
154
  var UI_KIT_ROOT_CLASSNAME = "ui-kit-root";
152
155
 
156
+ // src/foundation/color.ts
157
+ function withAlpha(hex, alpha) {
158
+ const normalized = hex.replace("#", "").trim();
159
+ const value = normalized.length === 3 ? normalized.split("").map((char) => char + char).join("") : normalized;
160
+ const red = Number.parseInt(value.slice(0, 2), 16);
161
+ const green = Number.parseInt(value.slice(2, 4), 16);
162
+ const blue = Number.parseInt(value.slice(4, 6), 16);
163
+ return `rgba(${red}, ${green}, ${blue}, ${alpha})`;
164
+ }
165
+
153
166
  // src/foundation/componentState.ts
154
167
  var DISABLED_COMPONENT_OPACITY = 0.5;
155
168
  var DISABLED_FIELD_OPACITY = 0.7;
@@ -458,8 +471,210 @@ function Button({
458
471
  );
459
472
  }
460
473
 
461
- // src/components/Card.tsx
474
+ // src/components/Alert.tsx
475
+ var import_react2 = require("react");
476
+
477
+ // src/components/feedbackPrimitives.tsx
462
478
  var import_jsx_runtime2 = require("react/jsx-runtime");
479
+ var FEEDBACK_TONE_COLOR_NAMES = {
480
+ info: "info",
481
+ positive: "positive",
482
+ warning: "warning",
483
+ negative: "negative"
484
+ };
485
+ var iconProps = ({ size = 20, style, ...rest }) => ({
486
+ ...rest,
487
+ width: size,
488
+ height: size,
489
+ viewBox: "0 0 24 24",
490
+ fill: "none",
491
+ xmlns: "http://www.w3.org/2000/svg",
492
+ "aria-hidden": true,
493
+ focusable: false,
494
+ style
495
+ });
496
+ function InfoIcon(props) {
497
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("svg", { ...iconProps(props), children: [
498
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("circle", { cx: "12", cy: "12", r: "9", stroke: "currentColor", strokeWidth: "2" }),
499
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M12 10V16", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round" }),
500
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("circle", { cx: "12", cy: "7.25", r: "1.25", fill: "currentColor" })
501
+ ] });
502
+ }
503
+ function PositiveIcon(props) {
504
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("svg", { ...iconProps(props), children: [
505
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("circle", { cx: "12", cy: "12", r: "9", stroke: "currentColor", strokeWidth: "2" }),
506
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
507
+ "path",
508
+ {
509
+ d: "M8.25 12.4L10.75 14.9L15.75 9.9",
510
+ stroke: "currentColor",
511
+ strokeWidth: "2",
512
+ strokeLinecap: "round",
513
+ strokeLinejoin: "round"
514
+ }
515
+ )
516
+ ] });
517
+ }
518
+ function WarningIcon(props) {
519
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("svg", { ...iconProps(props), children: [
520
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
521
+ "path",
522
+ {
523
+ d: "M12 3.75L20 18.5C20.35 19.15 19.88 20 19.14 20H4.86C4.12 20 3.65 19.15 4 18.5L12 3.75Z",
524
+ stroke: "currentColor",
525
+ strokeWidth: "2",
526
+ strokeLinejoin: "round"
527
+ }
528
+ ),
529
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M12 9V13", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round" }),
530
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("circle", { cx: "12", cy: "16.25", r: "1.15", fill: "currentColor" })
531
+ ] });
532
+ }
533
+ function NegativeIcon(props) {
534
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("svg", { ...iconProps(props), children: [
535
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("circle", { cx: "12", cy: "12", r: "9", stroke: "currentColor", strokeWidth: "2" }),
536
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
537
+ "path",
538
+ {
539
+ d: "M9 9L15 15M15 9L9 15",
540
+ stroke: "currentColor",
541
+ strokeWidth: "2",
542
+ strokeLinecap: "round"
543
+ }
544
+ )
545
+ ] });
546
+ }
547
+ var getFeedbackDefaultRole = (tone) => {
548
+ return tone === "warning" || tone === "negative" ? "alert" : "status";
549
+ };
550
+ var getFeedbackToneColor = (theme, tone) => {
551
+ return theme.colors[FEEDBACK_TONE_COLOR_NAMES[tone]];
552
+ };
553
+ var getFeedbackContainerStyle = (theme, tone, alpha) => {
554
+ const toneColor = getFeedbackToneColor(theme, tone);
555
+ return {
556
+ backgroundColor: withAlpha(toneColor, alpha),
557
+ borderColor: toneColor
558
+ };
559
+ };
560
+ var getFeedbackIconBadgeStyle = (theme, tone, alpha) => {
561
+ const toneColor = getFeedbackToneColor(theme, tone);
562
+ return {
563
+ backgroundColor: withAlpha(toneColor, alpha),
564
+ color: toneColor
565
+ };
566
+ };
567
+ var getDefaultFeedbackIcon = (tone, size = 20) => {
568
+ switch (tone) {
569
+ case "positive":
570
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(PositiveIcon, { size });
571
+ case "warning":
572
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(WarningIcon, { size });
573
+ case "negative":
574
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(NegativeIcon, { size });
575
+ case "info":
576
+ default:
577
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(InfoIcon, { size });
578
+ }
579
+ };
580
+
581
+ // src/components/Alert.tsx
582
+ var import_jsx_runtime3 = require("react/jsx-runtime");
583
+ function Alert({
584
+ tone = "info",
585
+ children,
586
+ title,
587
+ icon,
588
+ action,
589
+ role,
590
+ className,
591
+ style,
592
+ ...rest
593
+ }) {
594
+ const theme = useUiKitTheme();
595
+ const titleId = (0, import_react2.useId)();
596
+ const descriptionId = (0, import_react2.useId)();
597
+ const resolvedRole = role != null ? role : getFeedbackDefaultRole(tone);
598
+ const ariaLive = resolvedRole === "alert" ? "assertive" : resolvedRole === "status" ? "polite" : void 0;
599
+ const iconNode = icon === void 0 ? getDefaultFeedbackIcon(tone, 20) : icon;
600
+ const containerToneStyle = getFeedbackContainerStyle(theme, tone, 0.12);
601
+ const iconToneStyle = getFeedbackIconBadgeStyle(theme, tone, 0.18);
602
+ const contentStyle = {
603
+ display: "flex",
604
+ flexDirection: "column",
605
+ gap: title ? 4 : 0,
606
+ flex: "1 1 220px",
607
+ minWidth: 0
608
+ };
609
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
610
+ "div",
611
+ {
612
+ ...rest,
613
+ role: resolvedRole,
614
+ "aria-live": ariaLive,
615
+ "aria-atomic": ariaLive ? true : void 0,
616
+ "aria-labelledby": title ? titleId : void 0,
617
+ "aria-describedby": children ? descriptionId : void 0,
618
+ className: cx(
619
+ UI_KIT_ROOT_CLASSNAME,
620
+ "rounded-2xl border border-solid text-[var(--theme-text)]",
621
+ className
622
+ ),
623
+ style: {
624
+ ...containerToneStyle,
625
+ display: "flex",
626
+ alignItems: "flex-start",
627
+ flexWrap: "wrap",
628
+ gap: 12,
629
+ padding: "14px 16px",
630
+ ...style
631
+ },
632
+ children: [
633
+ iconNode ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
634
+ "div",
635
+ {
636
+ "aria-hidden": "true",
637
+ className: UI_KIT_ROOT_CLASSNAME,
638
+ style: {
639
+ ...iconToneStyle,
640
+ display: "inline-flex",
641
+ alignItems: "center",
642
+ justifyContent: "center",
643
+ width: 40,
644
+ height: 40,
645
+ borderRadius: 12,
646
+ flexShrink: 0
647
+ },
648
+ children: iconNode
649
+ }
650
+ ) : null,
651
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { style: contentStyle, children: [
652
+ title ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
653
+ "div",
654
+ {
655
+ id: titleId,
656
+ className: cx(UI_KIT_ROOT_CLASSNAME, "font-bold text-sm"),
657
+ style: { color: containerToneStyle.borderColor },
658
+ children: title
659
+ }
660
+ ) : null,
661
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { id: descriptionId, className: cx(UI_KIT_ROOT_CLASSNAME, "text-sm"), style: { lineHeight: "1.5" }, children })
662
+ ] }),
663
+ action ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
664
+ "div",
665
+ {
666
+ className: cx(UI_KIT_ROOT_CLASSNAME, "shrink-0"),
667
+ style: { alignSelf: "center", color: "var(--theme-text)" },
668
+ children: action
669
+ }
670
+ ) : null
671
+ ]
672
+ }
673
+ );
674
+ }
675
+
676
+ // src/components/Card.tsx
677
+ var import_jsx_runtime4 = require("react/jsx-runtime");
463
678
  function Card({
464
679
  children,
465
680
  eyebrow,
@@ -470,7 +685,7 @@ function Card({
470
685
  ...rest
471
686
  }) {
472
687
  useUiKitTheme();
473
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
688
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
474
689
  "div",
475
690
  {
476
691
  ...rest,
@@ -482,12 +697,12 @@ function Card({
482
697
  className
483
698
  ),
484
699
  children: [
485
- (eyebrow || title || action) && /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "mb-[18px] flex items-start justify-between gap-4", children: [
486
- /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "flex flex-col gap-1.5", children: [
487
- eyebrow ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { className: "text-xs font-extrabold uppercase tracking-[0.16em] text-[var(--theme-textLight)]", children: eyebrow }) : null,
488
- title ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: "text-2xl font-bold leading-[1.2] text-[var(--theme-text)]", children: title }) : null
700
+ (eyebrow || title || action) && /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "mb-[18px] flex items-start justify-between gap-4", children: [
701
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "flex flex-col gap-1.5", children: [
702
+ eyebrow ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "text-xs font-extrabold uppercase tracking-[0.16em] text-[var(--theme-textLight)]", children: eyebrow }) : null,
703
+ title ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "text-2xl font-bold leading-[1.2] text-[var(--theme-text)]", children: title }) : null
489
704
  ] }),
490
- action ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: "text-[var(--theme-text)]", children: action }) : null
705
+ action ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "text-[var(--theme-text)]", children: action }) : null
491
706
  ] }),
492
707
  children
493
708
  ]
@@ -496,7 +711,7 @@ function Card({
496
711
  }
497
712
 
498
713
  // src/components/CardSmall.tsx
499
- var import_jsx_runtime3 = require("react/jsx-runtime");
714
+ var import_jsx_runtime5 = require("react/jsx-runtime");
500
715
  function CardSmall({
501
716
  title,
502
717
  value,
@@ -508,7 +723,7 @@ function CardSmall({
508
723
  }) {
509
724
  const theme = useUiKitTheme();
510
725
  const accentColor = color != null ? color : theme.colors.primary;
511
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
726
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
512
727
  "div",
513
728
  {
514
729
  ...rest,
@@ -525,14 +740,14 @@ function CardSmall({
525
740
  ...style
526
741
  },
527
742
  children: [
528
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
743
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
529
744
  "div",
530
745
  {
531
746
  "aria-hidden": "true",
532
747
  className: "absolute inset-y-0 left-0 w-[25px] bg-[var(--ui-kit-accent)]"
533
748
  }
534
749
  ),
535
- icon ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
750
+ icon ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
536
751
  "div",
537
752
  {
538
753
  "aria-hidden": "true",
@@ -544,9 +759,9 @@ function CardSmall({
544
759
  children: icon
545
760
  }
546
761
  ) : null,
547
- /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "flex min-w-0 flex-col gap-1.5", children: [
548
- title ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "truncate text-sm font-bold leading-[1.25] text-[var(--theme-text)]", children: title }) : null,
549
- value ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "truncate text-[18px] font-extrabold leading-[1.15] text-[var(--theme-text)]", children: value }) : null
762
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "flex min-w-0 flex-col gap-1.5", children: [
763
+ title ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className: "truncate text-sm font-bold leading-[1.25] text-[var(--theme-text)]", children: title }) : null,
764
+ value ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className: "truncate text-[18px] font-extrabold leading-[1.15] text-[var(--theme-text)]", children: value }) : null
550
765
  ] })
551
766
  ]
552
767
  }
@@ -554,8 +769,8 @@ function CardSmall({
554
769
  }
555
770
 
556
771
  // src/components/Checkbox.tsx
557
- var import_react2 = require("react");
558
- var import_jsx_runtime4 = require("react/jsx-runtime");
772
+ var import_react3 = require("react");
773
+ var import_jsx_runtime6 = require("react/jsx-runtime");
559
774
  var CHECKBOX_SIZE_BY_SIZE = {
560
775
  sm: 14,
561
776
  md: 16,
@@ -577,7 +792,7 @@ var hasNodeContent = (value) => {
577
792
  return value !== null && value !== void 0 && value !== false;
578
793
  };
579
794
  function CheckIcon({ size, color }) {
580
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("svg", { width: size, height: size, viewBox: "0 0 20 20", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
795
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("svg", { width: size, height: size, viewBox: "0 0 20 20", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
581
796
  "path",
582
797
  {
583
798
  d: "M5.75 10.25L8.5 13l5.75-6",
@@ -589,7 +804,7 @@ function CheckIcon({ size, color }) {
589
804
  ) });
590
805
  }
591
806
  function MixedIcon({ size, color }) {
592
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("svg", { width: size, height: size, viewBox: "0 0 20 20", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("path", { d: "M5.5 10H14.5", stroke: color, strokeWidth: "1.8", strokeLinecap: "round" }) });
807
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("svg", { width: size, height: size, viewBox: "0 0 20 20", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M5.5 10H14.5", stroke: color, strokeWidth: "1.8", strokeLinecap: "round" }) });
593
808
  }
594
809
  function CheckboxIndicator({
595
810
  checked,
@@ -606,7 +821,7 @@ function CheckboxIndicator({
606
821
  const resolvedCheckedColor = checkedColor != null ? checkedColor : theme.colors.textLight;
607
822
  const resolvedIconColor = iconColor != null ? iconColor : theme.colors.surface;
608
823
  const resolvedUncheckedBackgroundColor = uncheckedBackgroundColor != null ? uncheckedBackgroundColor : theme.colors.surface;
609
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
824
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
610
825
  "span",
611
826
  {
612
827
  "aria-hidden": "true",
@@ -626,8 +841,8 @@ function CheckboxIndicator({
626
841
  ...style
627
842
  },
628
843
  children: [
629
- indeterminate ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(MixedIcon, { size: Math.max(10, size - 6), color: resolvedIconColor }) : null,
630
- !indeterminate && checked ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(CheckIcon, { size: Math.max(10, size - 6), color: resolvedIconColor }) : null
844
+ indeterminate ? /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(MixedIcon, { size: Math.max(10, size - 6), color: resolvedIconColor }) : null,
845
+ !indeterminate && checked ? /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(CheckIcon, { size: Math.max(10, size - 6), color: resolvedIconColor }) : null
631
846
  ]
632
847
  }
633
848
  );
@@ -657,23 +872,23 @@ function Checkbox({
657
872
  const hasHint = hasNodeContent(hint);
658
873
  const hasError = hasNodeContent(error);
659
874
  const hasSecondaryContent = hasLabel && hasHint;
660
- const resolvedId = id != null ? id : `ss-checkbox-${(0, import_react2.useId)().replace(/:/g, "")}`;
661
- const inputRef = (0, import_react2.useRef)(null);
662
- const [internalChecked, setInternalChecked] = (0, import_react2.useState)(Boolean(defaultChecked));
875
+ const resolvedId = id != null ? id : `ss-checkbox-${(0, import_react3.useId)().replace(/:/g, "")}`;
876
+ const inputRef = (0, import_react3.useRef)(null);
877
+ const [internalChecked, setInternalChecked] = (0, import_react3.useState)(Boolean(defaultChecked));
663
878
  const isControlled = checked !== void 0;
664
879
  const resolvedChecked = isControlled ? Boolean(checked) : internalChecked;
665
- (0, import_react2.useEffect)(() => {
880
+ (0, import_react3.useEffect)(() => {
666
881
  if (!inputRef.current) {
667
882
  return;
668
883
  }
669
884
  inputRef.current.indeterminate = indeterminate;
670
885
  }, [indeterminate, resolvedChecked]);
671
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
886
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
672
887
  "div",
673
888
  {
674
889
  className: cx(UI_KIT_ROOT_CLASSNAME, "flex w-full flex-col gap-1.5", className),
675
890
  style,
676
- children: /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
891
+ children: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
677
892
  "label",
678
893
  {
679
894
  htmlFor: resolvedId,
@@ -685,7 +900,7 @@ function Checkbox({
685
900
  ),
686
901
  style: disabled ? { opacity: DISABLED_FIELD_OPACITY } : void 0,
687
902
  children: [
688
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
903
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
689
904
  "span",
690
905
  {
691
906
  className: cx(
@@ -693,7 +908,7 @@ function Checkbox({
693
908
  hasSecondaryContent ? "mt-px" : "mt-0"
694
909
  ),
695
910
  children: [
696
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
911
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
697
912
  "input",
698
913
  {
699
914
  ...rest,
@@ -721,7 +936,7 @@ function Checkbox({
721
936
  )
722
937
  }
723
938
  ),
724
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
939
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
725
940
  CheckboxIndicator,
726
941
  {
727
942
  checked: resolvedChecked,
@@ -737,7 +952,7 @@ function Checkbox({
737
952
  ]
738
953
  }
739
954
  ),
740
- hasLabel || hasHint || hasError ? /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
955
+ hasLabel || hasHint || hasError ? /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
741
956
  "span",
742
957
  {
743
958
  className: cx(
@@ -745,12 +960,12 @@ function Checkbox({
745
960
  hasSecondaryContent ? "justify-start" : "justify-center"
746
961
  ),
747
962
  children: [
748
- label ? /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("span", { className: cx("font-semibold text-[var(--theme-text)]", CHECKBOX_LABEL_CLASSNAMES[size]), children: [
963
+ label ? /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("span", { className: cx("font-semibold text-[var(--theme-text)]", CHECKBOX_LABEL_CLASSNAMES[size]), children: [
749
964
  label,
750
- required ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "ml-1 text-[var(--theme-negative)]", children: "*" }) : null
965
+ required ? /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "ml-1 text-[var(--theme-negative)]", children: "*" }) : null
751
966
  ] }) : null,
752
- hint ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "text-[13px] leading-[1.45] text-[var(--theme-textLight)]", children: hint }) : null,
753
- error ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "text-[13px] font-semibold leading-[1.45] text-[var(--theme-negative)]", children: error }) : null
967
+ hint ? /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "text-[13px] leading-[1.45] text-[var(--theme-textLight)]", children: hint }) : null,
968
+ error ? /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "text-[13px] font-semibold leading-[1.45] text-[var(--theme-negative)]", children: error }) : null
754
969
  ]
755
970
  }
756
971
  ) : null
@@ -762,11 +977,11 @@ function Checkbox({
762
977
  }
763
978
 
764
979
  // src/components/ComposableModal.tsx
765
- var import_react4 = require("react");
980
+ var import_react5 = require("react");
766
981
 
767
982
  // src/components/Modal.tsx
768
- var import_react3 = require("react");
769
- var import_jsx_runtime5 = require("react/jsx-runtime");
983
+ var import_react4 = require("react");
984
+ var import_jsx_runtime7 = require("react/jsx-runtime");
770
985
  var isUiKitTheme = (theme) => {
771
986
  return Boolean(theme && typeof theme === "object" && "title" in theme && "color" in theme);
772
987
  };
@@ -808,6 +1023,9 @@ var createTitleId = (title) => {
808
1023
  }
809
1024
  return "smartsell-modal-dialog";
810
1025
  };
1026
+ var MODAL_HEADER_CONTROL_METRICS = getControlMetrics("sm");
1027
+ var MODAL_HEADER_CONTROL_SIZE = MODAL_HEADER_CONTROL_METRICS.height;
1028
+ var MODAL_HEADER_ICON_SIZE = 18;
811
1029
  function ModalActionButton({
812
1030
  action
813
1031
  }) {
@@ -820,7 +1038,7 @@ function ModalActionButton({
820
1038
  style
821
1039
  } = action;
822
1040
  const variant = appearance === "contained" ? "solid" : appearance === "outlined" ? "outline" : "ghost";
823
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
1041
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
824
1042
  "div",
825
1043
  {
826
1044
  className: "m-0 flex items-center justify-center",
@@ -829,7 +1047,7 @@ function ModalActionButton({
829
1047
  marginBottom: (_b = style == null ? void 0 : style.marginBottom) != null ? _b : 0,
830
1048
  ...style
831
1049
  },
832
- children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
1050
+ children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
833
1051
  Button,
834
1052
  {
835
1053
  variant,
@@ -844,7 +1062,7 @@ function ModalActionButton({
844
1062
  function ModalBusyIndicator({
845
1063
  theme
846
1064
  }) {
847
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
1065
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
848
1066
  "div",
849
1067
  {
850
1068
  "aria-live": "polite",
@@ -854,9 +1072,9 @@ function ModalBusyIndicator({
854
1072
  backgroundColor: theme.colors.surface
855
1073
  },
856
1074
  children: [
857
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: "ui-kit-sr-only", children: "Loading" }),
858
- /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("svg", { "aria-hidden": "true", width: "32", height: "32", viewBox: "0 0 40 40", fill: "none", children: [
859
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
1075
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "ui-kit-sr-only", children: "Loading" }),
1076
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("svg", { "aria-hidden": "true", width: "32", height: "32", viewBox: "0 0 40 40", fill: "none", children: [
1077
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
860
1078
  "circle",
861
1079
  {
862
1080
  cx: "20",
@@ -866,14 +1084,14 @@ function ModalBusyIndicator({
866
1084
  strokeWidth: "4"
867
1085
  }
868
1086
  ),
869
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
1087
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
870
1088
  "path",
871
1089
  {
872
1090
  d: "M20 4C28.837 4 36 11.163 36 20",
873
1091
  stroke: theme.colors.primary,
874
1092
  strokeWidth: "4",
875
1093
  strokeLinecap: "round",
876
- children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
1094
+ children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
877
1095
  "animateTransform",
878
1096
  {
879
1097
  attributeName: "transform",
@@ -892,32 +1110,107 @@ function ModalBusyIndicator({
892
1110
  );
893
1111
  }
894
1112
  function MaximizeIcon() {
895
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("svg", { "aria-hidden": "true", width: "15", height: "15", viewBox: "0 0 20 20", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("rect", { x: "4.25", y: "4.25", width: "11.5", height: "11.5", rx: "2.2", stroke: "currentColor", strokeWidth: "1.7" }) });
1113
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("svg", { "aria-hidden": "true", width: MODAL_HEADER_ICON_SIZE, height: MODAL_HEADER_ICON_SIZE, viewBox: "0 0 20 20", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("rect", { x: "4.25", y: "4.25", width: "11.5", height: "11.5", rx: "2.2", stroke: "currentColor", strokeWidth: "1.8" }) });
896
1114
  }
897
1115
  function MinimizeIcon() {
898
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("svg", { "aria-hidden": "true", width: "15", height: "15", viewBox: "0 0 20 20", fill: "none", children: [
899
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
1116
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("svg", { "aria-hidden": "true", width: MODAL_HEADER_ICON_SIZE, height: MODAL_HEADER_ICON_SIZE, viewBox: "0 0 20 20", fill: "none", children: [
1117
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
900
1118
  "path",
901
1119
  {
902
1120
  d: "M6.25 4.75H13a2.25 2.25 0 0 1 2.25 2.25v6.75",
903
1121
  stroke: "currentColor",
904
- strokeWidth: "1.7",
1122
+ strokeWidth: "1.8",
905
1123
  strokeLinecap: "round",
906
1124
  strokeLinejoin: "round"
907
1125
  }
908
1126
  ),
909
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
1127
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
910
1128
  "path",
911
1129
  {
912
1130
  d: "M13.75 9.5v4.25a1.5 1.5 0 0 1-1.5 1.5H6a1.75 1.75 0 0 1-1.75-1.75V7.75A1.5 1.5 0 0 1 5.75 6.25H10",
913
1131
  stroke: "currentColor",
914
- strokeWidth: "1.7",
1132
+ strokeWidth: "1.8",
915
1133
  strokeLinecap: "round",
916
1134
  strokeLinejoin: "round"
917
1135
  }
918
1136
  )
919
1137
  ] });
920
1138
  }
1139
+ function CloseIcon() {
1140
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("svg", { "aria-hidden": "true", width: MODAL_HEADER_ICON_SIZE, height: MODAL_HEADER_ICON_SIZE, viewBox: "0 0 20 20", fill: "none", children: [
1141
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1142
+ "path",
1143
+ {
1144
+ d: "M4.5 4.5 15.5 15.5",
1145
+ stroke: "currentColor",
1146
+ strokeWidth: "1.8",
1147
+ strokeLinecap: "round"
1148
+ }
1149
+ ),
1150
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1151
+ "path",
1152
+ {
1153
+ d: "M15.5 4.5 4.5 15.5",
1154
+ stroke: "currentColor",
1155
+ strokeWidth: "1.8",
1156
+ strokeLinecap: "round"
1157
+ }
1158
+ )
1159
+ ] });
1160
+ }
1161
+ function ModalHeaderControl({
1162
+ ariaLabel,
1163
+ title,
1164
+ onClick,
1165
+ disabled = false,
1166
+ children
1167
+ }) {
1168
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1169
+ Button,
1170
+ {
1171
+ variant: "ghost",
1172
+ size: "sm",
1173
+ "aria-label": ariaLabel,
1174
+ title,
1175
+ onClick,
1176
+ disabled,
1177
+ className: cx(
1178
+ "m-0 gap-0 rounded-xl text-[var(--theme-text)] transition-colors",
1179
+ "hover:bg-[var(--theme-background)] hover:no-underline",
1180
+ "active:bg-[var(--theme-background)]",
1181
+ "focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--theme-primary)]"
1182
+ ),
1183
+ style: {
1184
+ width: MODAL_HEADER_CONTROL_SIZE,
1185
+ minWidth: MODAL_HEADER_CONTROL_SIZE,
1186
+ maxWidth: MODAL_HEADER_CONTROL_SIZE,
1187
+ height: MODAL_HEADER_CONTROL_SIZE,
1188
+ minHeight: MODAL_HEADER_CONTROL_SIZE,
1189
+ maxHeight: MODAL_HEADER_CONTROL_SIZE,
1190
+ padding: 0,
1191
+ aspectRatio: "1 / 1"
1192
+ },
1193
+ children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1194
+ "span",
1195
+ {
1196
+ "aria-hidden": "true",
1197
+ style: {
1198
+ display: "inline-flex",
1199
+ width: MODAL_HEADER_ICON_SIZE,
1200
+ height: MODAL_HEADER_ICON_SIZE,
1201
+ minWidth: MODAL_HEADER_ICON_SIZE,
1202
+ minHeight: MODAL_HEADER_ICON_SIZE,
1203
+ alignItems: "center",
1204
+ justifyContent: "center",
1205
+ lineHeight: 0,
1206
+ flexShrink: 0
1207
+ },
1208
+ children
1209
+ }
1210
+ )
1211
+ }
1212
+ );
1213
+ }
921
1214
  function UnifiedModal({
922
1215
  isOpen,
923
1216
  onClose,
@@ -943,8 +1236,8 @@ function UnifiedModal({
943
1236
  }) {
944
1237
  var _a, _b;
945
1238
  const inheritedTheme = useUiKitTheme();
946
- const modalTheme = (0, import_react3.useMemo)(() => resolveTheme(inheritedTheme, theme), [inheritedTheme, theme]);
947
- const modalThemeVariables = (0, import_react3.useMemo)(() => ({
1239
+ const modalTheme = (0, import_react4.useMemo)(() => resolveTheme(inheritedTheme, theme), [inheritedTheme, theme]);
1240
+ const modalThemeVariables = (0, import_react4.useMemo)(() => ({
948
1241
  "--theme-background": modalTheme.colors.background,
949
1242
  "--theme-surface": modalTheme.colors.surface,
950
1243
  "--theme-text": modalTheme.colors.text,
@@ -957,10 +1250,10 @@ function UnifiedModal({
957
1250
  "--theme-warning": modalTheme.colors.warning,
958
1251
  "--theme-shadow": modalTheme.colors.shadow
959
1252
  }), [modalTheme]);
960
- const [isMaximized, setIsMaximized] = (0, import_react3.useState)(maximized != null ? maximized : false);
961
- const titleId = (0, import_react3.useMemo)(() => createTitleId(title), [title]);
1253
+ const [isMaximized, setIsMaximized] = (0, import_react4.useState)(maximized != null ? maximized : false);
1254
+ const titleId = (0, import_react4.useMemo)(() => createTitleId(title), [title]);
962
1255
  const shouldDisableDismiss = disableDismiss || isBusy;
963
- (0, import_react3.useEffect)(() => {
1256
+ (0, import_react4.useEffect)(() => {
964
1257
  if (typeof maximized === "boolean") {
965
1258
  setIsMaximized(maximized);
966
1259
  return;
@@ -969,7 +1262,7 @@ function UnifiedModal({
969
1262
  setIsMaximized(true);
970
1263
  }
971
1264
  }, [maximized]);
972
- (0, import_react3.useEffect)(() => {
1265
+ (0, import_react4.useEffect)(() => {
973
1266
  if (!isOpen || typeof window === "undefined" || typeof document === "undefined") {
974
1267
  return;
975
1268
  }
@@ -989,7 +1282,7 @@ function UnifiedModal({
989
1282
  if (!isOpen) {
990
1283
  return null;
991
1284
  }
992
- const resolvedHeader = headerContent != null ? headerContent : title ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
1285
+ const resolvedHeader = headerContent != null ? headerContent : title ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
993
1286
  "h2",
994
1287
  {
995
1288
  id: titleId,
@@ -1000,7 +1293,7 @@ function UnifiedModal({
1000
1293
  let footerContent = footer;
1001
1294
  if (footerContent === void 0) {
1002
1295
  if (closeAction && !closeAction.hidden) {
1003
- footerContent = /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
1296
+ footerContent = /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1004
1297
  ModalActionButton,
1005
1298
  {
1006
1299
  action: { ...closeAction, disabled: closeAction.disabled || isBusy }
@@ -1033,7 +1326,7 @@ function UnifiedModal({
1033
1326
  items.push(action);
1034
1327
  return items;
1035
1328
  }, []);
1036
- footerContent = resolvedActions.length > 0 ? resolvedActions.map((action, index) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
1329
+ footerContent = resolvedActions.length > 0 ? resolvedActions.map((action, index) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1037
1330
  ModalActionButton,
1038
1331
  {
1039
1332
  action
@@ -1043,7 +1336,7 @@ function UnifiedModal({
1043
1336
  }
1044
1337
  }
1045
1338
  const shouldRenderFooter = footerContent !== void 0 && footerContent !== null && footerContent !== false;
1046
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
1339
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1047
1340
  "div",
1048
1341
  {
1049
1342
  "aria-label": headerContent ? typeof title === "string" ? title : "Dialog" : void 0,
@@ -1062,7 +1355,7 @@ function UnifiedModal({
1062
1355
  padding: isMaximized ? 0 : 16,
1063
1356
  backgroundColor: modalTheme.colors.shadow
1064
1357
  },
1065
- children: /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
1358
+ children: /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
1066
1359
  "div",
1067
1360
  {
1068
1361
  className: cx(
@@ -1080,12 +1373,12 @@ function UnifiedModal({
1080
1373
  ...contentStyle
1081
1374
  },
1082
1375
  children: [
1083
- /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
1376
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
1084
1377
  "div",
1085
1378
  {
1086
1379
  className: "flex items-start justify-between gap-3 px-5 pb-3 pt-[18px]",
1087
1380
  children: [
1088
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
1381
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1089
1382
  "div",
1090
1383
  {
1091
1384
  className: cx(
@@ -1095,44 +1388,37 @@ function UnifiedModal({
1095
1388
  children: resolvedHeader
1096
1389
  }
1097
1390
  ),
1098
- /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "flex items-center gap-2", children: [
1099
- !hideExpandButton ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
1100
- Button,
1391
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "flex items-center gap-2", children: [
1392
+ !hideExpandButton ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1393
+ ModalHeaderControl,
1101
1394
  {
1102
- variant: "ghost",
1103
- size: "sm",
1104
- "aria-label": isMaximized ? "Minimize modal" : "Maximize modal",
1395
+ ariaLabel: isMaximized ? "Minimize modal" : "Maximize modal",
1105
1396
  title: isMaximized ? "Minimize" : "Maximize",
1106
1397
  onClick: () => setIsMaximized((current) => !current),
1107
- className: "m-0 text-[var(--theme-text)] hover:no-underline",
1108
- style: { height: 30, maxWidth: 30, padding: 0, width: 30 },
1109
- children: isMaximized ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(MinimizeIcon, {}) : /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(MaximizeIcon, {})
1398
+ children: isMaximized ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(MinimizeIcon, {}) : /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(MaximizeIcon, {})
1110
1399
  }
1111
1400
  ) : null,
1112
- !hideCloseButton ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
1113
- Button,
1401
+ !hideCloseButton ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1402
+ ModalHeaderControl,
1114
1403
  {
1115
- variant: "ghost",
1116
- size: "sm",
1117
- "aria-label": "Close modal",
1404
+ ariaLabel: "Close modal",
1405
+ title: "Close",
1118
1406
  onClick: onClose,
1119
1407
  disabled: shouldDisableDismiss,
1120
- className: "m-0 text-[20px] leading-none text-[var(--theme-text)] hover:no-underline",
1121
- style: { height: 30, maxWidth: 30, padding: 0, width: 30 },
1122
- children: "\xD7"
1408
+ children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(CloseIcon, {})
1123
1409
  }
1124
1410
  ) : null
1125
1411
  ] })
1126
1412
  ]
1127
1413
  }
1128
1414
  ),
1129
- /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
1415
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
1130
1416
  "div",
1131
1417
  {
1132
1418
  className: "relative min-h-0 flex-1 overflow-auto p-6",
1133
1419
  style: bodyStyle,
1134
1420
  children: [
1135
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
1421
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1136
1422
  "div",
1137
1423
  {
1138
1424
  className: cx(
@@ -1142,18 +1428,18 @@ function UnifiedModal({
1142
1428
  children
1143
1429
  }
1144
1430
  ),
1145
- isBusy ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
1431
+ isBusy ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1146
1432
  "div",
1147
1433
  {
1148
1434
  className: "absolute inset-0 flex items-center justify-center backdrop-blur-[2px]",
1149
1435
  style: { backgroundColor: modalTheme.colors.background },
1150
- children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(ModalBusyIndicator, { theme: modalTheme })
1436
+ children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(ModalBusyIndicator, { theme: modalTheme })
1151
1437
  }
1152
1438
  ) : null
1153
1439
  ]
1154
1440
  }
1155
1441
  ),
1156
- shouldRenderFooter ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
1442
+ shouldRenderFooter ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1157
1443
  "div",
1158
1444
  {
1159
1445
  className: "flex justify-end gap-2.5 px-5 pb-4 pt-3",
@@ -1167,11 +1453,11 @@ function UnifiedModal({
1167
1453
  );
1168
1454
  }
1169
1455
  function Modal(props) {
1170
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(UnifiedModal, { ...props });
1456
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(UnifiedModal, { ...props });
1171
1457
  }
1172
1458
 
1173
1459
  // src/components/ComposableModal.tsx
1174
- var import_jsx_runtime6 = require("react/jsx-runtime");
1460
+ var import_jsx_runtime8 = require("react/jsx-runtime");
1175
1461
  var createModalSlotIds = (slotBaseId) => ({
1176
1462
  header: `${slotBaseId}:modal-header`,
1177
1463
  body: `${slotBaseId}:modal-body`,
@@ -1199,7 +1485,7 @@ function ComposableModal({
1199
1485
  children
1200
1486
  }) {
1201
1487
  const slotIds = createModalSlotIds(slotBaseId);
1202
- const context = (0, import_react4.useMemo)(
1488
+ const context = (0, import_react5.useMemo)(
1203
1489
  () => ({
1204
1490
  title,
1205
1491
  payload,
@@ -1212,11 +1498,11 @@ function ComposableModal({
1212
1498
  }),
1213
1499
  [cancelLabel, confirmLabel, isBusy, isOpen, onClose, onConfirm, payload, title]
1214
1500
  );
1215
- const defaultFooter = hideDefaultFooter ? void 0 : footerFallback != null ? footerFallback : /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
1216
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(Button, { variant: "outline", onClick: onClose, disabled: isBusy, children: cancelLabel }),
1217
- onConfirm ? /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(Button, { onClick: onConfirm, disabled: isBusy, children: confirmLabel }) : null
1501
+ const defaultFooter = hideDefaultFooter ? void 0 : footerFallback != null ? footerFallback : /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_jsx_runtime8.Fragment, { children: [
1502
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(Button, { variant: "outline", onClick: onClose, disabled: isBusy, children: cancelLabel }),
1503
+ onConfirm ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(Button, { onClick: onConfirm, disabled: isBusy, children: confirmLabel }) : null
1218
1504
  ] });
1219
- const defaultHeader = headerFallback != null ? headerFallback : /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
1505
+ const defaultHeader = headerFallback != null ? headerFallback : /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
1220
1506
  "h2",
1221
1507
  {
1222
1508
  className: "m-0 text-[24px] font-extrabold leading-[1.1]",
@@ -1236,7 +1522,7 @@ function ComposableModal({
1236
1522
  const headerContent = renderSlotContent(slotIds.header, defaultHeader);
1237
1523
  const bodyContent = renderSlotContent(slotIds.body, children);
1238
1524
  const footerContent = renderSlotContent(slotIds.footer, defaultFooter);
1239
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
1525
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
1240
1526
  Modal,
1241
1527
  {
1242
1528
  isOpen,
@@ -1256,8 +1542,8 @@ function ComposableModal({
1256
1542
  }
1257
1543
 
1258
1544
  // src/components/Input.tsx
1259
- var import_react5 = require("react");
1260
- var import_jsx_runtime7 = require("react/jsx-runtime");
1545
+ var import_react6 = require("react");
1546
+ var import_jsx_runtime9 = require("react/jsx-runtime");
1261
1547
  var PASSWORD_TOGGLE_METRICS_BY_SIZE = {
1262
1548
  sm: {
1263
1549
  buttonSize: 18,
@@ -1302,7 +1588,7 @@ var getInputValidationError = (type, value) => {
1302
1588
  return void 0;
1303
1589
  };
1304
1590
  function EmailIcon({ size }) {
1305
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
1591
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
1306
1592
  "svg",
1307
1593
  {
1308
1594
  width: size,
@@ -1311,7 +1597,7 @@ function EmailIcon({ size }) {
1311
1597
  fill: "none",
1312
1598
  "aria-hidden": "true",
1313
1599
  children: [
1314
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1600
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1315
1601
  "path",
1316
1602
  {
1317
1603
  d: "M3.75 6.25A1.875 1.875 0 0 1 5.625 4.375h8.75A1.875 1.875 0 0 1 16.25 6.25v7.5a1.875 1.875 0 0 1-1.875 1.875h-8.75A1.875 1.875 0 0 1 3.75 13.75v-7.5Z",
@@ -1321,7 +1607,7 @@ function EmailIcon({ size }) {
1321
1607
  strokeLinejoin: "round"
1322
1608
  }
1323
1609
  ),
1324
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1610
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1325
1611
  "path",
1326
1612
  {
1327
1613
  d: "M4.375 6.25 10 10.625l5.625-4.375",
@@ -1336,7 +1622,7 @@ function EmailIcon({ size }) {
1336
1622
  );
1337
1623
  }
1338
1624
  function LoginIcon({ size }) {
1339
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
1625
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
1340
1626
  "svg",
1341
1627
  {
1342
1628
  width: size,
@@ -1345,8 +1631,8 @@ function LoginIcon({ size }) {
1345
1631
  fill: "none",
1346
1632
  "aria-hidden": "true",
1347
1633
  children: [
1348
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("circle", { cx: "10", cy: "6.25", r: "3", stroke: "currentColor", strokeWidth: "1.6" }),
1349
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1634
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("circle", { cx: "10", cy: "6.25", r: "3", stroke: "currentColor", strokeWidth: "1.6" }),
1635
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1350
1636
  "path",
1351
1637
  {
1352
1638
  d: "M4.75 16a5.25 5.25 0 0 1 10.5 0",
@@ -1360,7 +1646,7 @@ function LoginIcon({ size }) {
1360
1646
  );
1361
1647
  }
1362
1648
  function UsernameIcon({ size }) {
1363
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
1649
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
1364
1650
  "svg",
1365
1651
  {
1366
1652
  width: size,
@@ -1369,7 +1655,7 @@ function UsernameIcon({ size }) {
1369
1655
  fill: "none",
1370
1656
  "aria-hidden": "true",
1371
1657
  children: [
1372
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1658
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1373
1659
  "circle",
1374
1660
  {
1375
1661
  cx: "12",
@@ -1381,7 +1667,7 @@ function UsernameIcon({ size }) {
1381
1667
  strokeLinejoin: "round"
1382
1668
  }
1383
1669
  ),
1384
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1670
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1385
1671
  "path",
1386
1672
  {
1387
1673
  d: "M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-4 8",
@@ -1396,7 +1682,7 @@ function UsernameIcon({ size }) {
1396
1682
  );
1397
1683
  }
1398
1684
  function FullNameIcon({ size }) {
1399
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1685
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1400
1686
  "svg",
1401
1687
  {
1402
1688
  width: size,
@@ -1404,7 +1690,7 @@ function FullNameIcon({ size }) {
1404
1690
  viewBox: "0 0 24 24",
1405
1691
  fill: "none",
1406
1692
  "aria-hidden": "true",
1407
- children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1693
+ children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1408
1694
  "path",
1409
1695
  {
1410
1696
  d: "M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z",
@@ -1418,7 +1704,7 @@ function FullNameIcon({ size }) {
1418
1704
  );
1419
1705
  }
1420
1706
  function CalendarIcon({ size }) {
1421
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
1707
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
1422
1708
  "svg",
1423
1709
  {
1424
1710
  width: size,
@@ -1427,7 +1713,7 @@ function CalendarIcon({ size }) {
1427
1713
  fill: "none",
1428
1714
  "aria-hidden": "true",
1429
1715
  children: [
1430
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1716
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1431
1717
  "rect",
1432
1718
  {
1433
1719
  width: "18",
@@ -1442,7 +1728,7 @@ function CalendarIcon({ size }) {
1442
1728
  strokeLinejoin: "round"
1443
1729
  }
1444
1730
  ),
1445
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1731
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1446
1732
  "line",
1447
1733
  {
1448
1734
  x1: "16",
@@ -1455,7 +1741,7 @@ function CalendarIcon({ size }) {
1455
1741
  strokeLinejoin: "round"
1456
1742
  }
1457
1743
  ),
1458
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1744
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1459
1745
  "line",
1460
1746
  {
1461
1747
  x1: "8",
@@ -1468,7 +1754,7 @@ function CalendarIcon({ size }) {
1468
1754
  strokeLinejoin: "round"
1469
1755
  }
1470
1756
  ),
1471
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1757
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1472
1758
  "line",
1473
1759
  {
1474
1760
  x1: "3",
@@ -1486,7 +1772,7 @@ function CalendarIcon({ size }) {
1486
1772
  );
1487
1773
  }
1488
1774
  function FileIcon({ size, selected }) {
1489
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1775
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1490
1776
  "svg",
1491
1777
  {
1492
1778
  width: size,
@@ -1494,8 +1780,8 @@ function FileIcon({ size, selected }) {
1494
1780
  viewBox: "0 0 20 20",
1495
1781
  fill: "none",
1496
1782
  "aria-hidden": "true",
1497
- children: selected ? /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_jsx_runtime7.Fragment, { children: [
1498
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1783
+ children: selected ? /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_jsx_runtime9.Fragment, { children: [
1784
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1499
1785
  "path",
1500
1786
  {
1501
1787
  d: "M5.5 6.25h9",
@@ -1504,7 +1790,7 @@ function FileIcon({ size, selected }) {
1504
1790
  strokeLinecap: "round"
1505
1791
  }
1506
1792
  ),
1507
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1793
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1508
1794
  "path",
1509
1795
  {
1510
1796
  d: "M7.25 6.25V5.25A1.5 1.5 0 0 1 8.75 3.75h2.5a1.5 1.5 0 0 1 1.5 1.5v1",
@@ -1514,7 +1800,7 @@ function FileIcon({ size, selected }) {
1514
1800
  strokeLinejoin: "round"
1515
1801
  }
1516
1802
  ),
1517
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1803
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1518
1804
  "path",
1519
1805
  {
1520
1806
  d: "M7.75 8.25v5.5",
@@ -1523,7 +1809,7 @@ function FileIcon({ size, selected }) {
1523
1809
  strokeLinecap: "round"
1524
1810
  }
1525
1811
  ),
1526
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1812
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1527
1813
  "path",
1528
1814
  {
1529
1815
  d: "M10 8.25v5.5",
@@ -1532,7 +1818,7 @@ function FileIcon({ size, selected }) {
1532
1818
  strokeLinecap: "round"
1533
1819
  }
1534
1820
  ),
1535
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1821
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1536
1822
  "path",
1537
1823
  {
1538
1824
  d: "M12.25 8.25v5.5",
@@ -1541,7 +1827,7 @@ function FileIcon({ size, selected }) {
1541
1827
  strokeLinecap: "round"
1542
1828
  }
1543
1829
  ),
1544
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1830
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1545
1831
  "path",
1546
1832
  {
1547
1833
  d: "M6.75 6.25l.5 8a1.5 1.5 0 0 0 1.497 1.406h2.506A1.5 1.5 0 0 0 12.75 14.25l.5-8",
@@ -1551,8 +1837,8 @@ function FileIcon({ size, selected }) {
1551
1837
  strokeLinejoin: "round"
1552
1838
  }
1553
1839
  )
1554
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_jsx_runtime7.Fragment, { children: [
1555
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1840
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_jsx_runtime9.Fragment, { children: [
1841
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1556
1842
  "path",
1557
1843
  {
1558
1844
  d: "M6.25 2.5h5.652l4.348 4.348V15A2.5 2.5 0 0 1 13.75 17.5h-7.5A2.5 2.5 0 0 1 3.75 15V5A2.5 2.5 0 0 1 6.25 2.5Z",
@@ -1562,7 +1848,7 @@ function FileIcon({ size, selected }) {
1562
1848
  strokeLinejoin: "round"
1563
1849
  }
1564
1850
  ),
1565
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1851
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1566
1852
  "path",
1567
1853
  {
1568
1854
  d: "M11.875 2.75V6.25H15.375",
@@ -1572,7 +1858,7 @@ function FileIcon({ size, selected }) {
1572
1858
  strokeLinejoin: "round"
1573
1859
  }
1574
1860
  ),
1575
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1861
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1576
1862
  "path",
1577
1863
  {
1578
1864
  d: "M7.5 10h5",
@@ -1581,7 +1867,7 @@ function FileIcon({ size, selected }) {
1581
1867
  strokeLinecap: "round"
1582
1868
  }
1583
1869
  ),
1584
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1870
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1585
1871
  "path",
1586
1872
  {
1587
1873
  d: "M7.5 13h5",
@@ -1598,7 +1884,7 @@ function PasswordVisibleIcon({
1598
1884
  size,
1599
1885
  playing = false
1600
1886
  }) {
1601
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
1887
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
1602
1888
  "svg",
1603
1889
  {
1604
1890
  width: size,
@@ -1610,8 +1896,8 @@ function PasswordVisibleIcon({
1610
1896
  animation: `lf-lock-hint-blink ${LOCK_HINT_DURATION_MS}ms ease-in-out`
1611
1897
  } : void 0,
1612
1898
  children: [
1613
- playing ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("style", { children: LOCK_HINT_STYLE }) : null,
1614
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1899
+ playing ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("style", { children: LOCK_HINT_STYLE }) : null,
1900
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1615
1901
  "path",
1616
1902
  {
1617
1903
  d: "M6.75 8V6.75A3.25 3.25 0 0 1 12.262 4.415",
@@ -1621,7 +1907,7 @@ function PasswordVisibleIcon({
1621
1907
  strokeLinejoin: "round"
1622
1908
  }
1623
1909
  ),
1624
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1910
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1625
1911
  "path",
1626
1912
  {
1627
1913
  d: "M6 8.25h8a1.75 1.75 0 0 1 1.75 1.75V14A1.75 1.75 0 0 1 14 15.75H6A1.75 1.75 0 0 1 4.25 14V10A1.75 1.75 0 0 1 6 8.25Z",
@@ -1631,7 +1917,7 @@ function PasswordVisibleIcon({
1631
1917
  strokeLinejoin: "round"
1632
1918
  }
1633
1919
  ),
1634
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1920
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1635
1921
  "path",
1636
1922
  {
1637
1923
  d: "M10 11.25v1.5",
@@ -1661,7 +1947,7 @@ function PasswordHiddenIcon({
1661
1947
  size,
1662
1948
  playing = false
1663
1949
  }) {
1664
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
1950
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
1665
1951
  "svg",
1666
1952
  {
1667
1953
  width: size,
@@ -1673,8 +1959,8 @@ function PasswordHiddenIcon({
1673
1959
  animation: `lf-lock-hint-blink ${LOCK_HINT_DURATION_MS}ms ease-in-out`
1674
1960
  } : void 0,
1675
1961
  children: [
1676
- playing ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("style", { children: LOCK_HINT_STYLE }) : null,
1677
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1962
+ playing ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("style", { children: LOCK_HINT_STYLE }) : null,
1963
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1678
1964
  "path",
1679
1965
  {
1680
1966
  d: "M6.75 8V6.75A3.25 3.25 0 1 1 13.25 6.75V8",
@@ -1689,7 +1975,7 @@ function PasswordHiddenIcon({
1689
1975
  } : void 0
1690
1976
  }
1691
1977
  ),
1692
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1978
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1693
1979
  "path",
1694
1980
  {
1695
1981
  d: "M6 8.25h8a1.75 1.75 0 0 1 1.75 1.75V14A1.75 1.75 0 0 1 14 15.75H6A1.75 1.75 0 0 1 4.25 14V10A1.75 1.75 0 0 1 6 8.25Z",
@@ -1699,7 +1985,7 @@ function PasswordHiddenIcon({
1699
1985
  strokeLinejoin: "round"
1700
1986
  }
1701
1987
  ),
1702
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1988
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1703
1989
  "path",
1704
1990
  {
1705
1991
  d: "M10 11.25v1.5",
@@ -1731,7 +2017,7 @@ function ControlFrame({
1731
2017
  useUiKitTheme();
1732
2018
  const isTextarea = alignLabel === "top";
1733
2019
  const controlMetrics = getControlMetrics(size);
1734
- const floatingElement = floatingPlaceholder ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
2020
+ const floatingElement = floatingPlaceholder ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1735
2021
  "span",
1736
2022
  {
1737
2023
  className: cx(
@@ -1757,16 +2043,16 @@ function ControlFrame({
1757
2043
  children: floatingPlaceholder
1758
2044
  }
1759
2045
  ) : null;
1760
- const innerContent = /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "relative w-full flex group", children: [
2046
+ const innerContent = /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { className: "relative w-full flex group", children: [
1761
2047
  children,
1762
2048
  floatingElement
1763
2049
  ] });
1764
- const hintsContent = hint || error ? /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "flex flex-col gap-1 mt-0", style: { paddingLeft: controlMetrics.paddingX }, children: [
1765
- hint && !error ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "text-[13px] leading-[1.45] text-[var(--theme-textLight)]", children: hint }) : null,
1766
- error ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "text-[13px] font-semibold leading-[1.45] text-[var(--theme-negative)]", children: error }) : null
2050
+ const hintsContent = hint || error ? /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { className: "flex flex-col gap-1 mt-0", style: { paddingLeft: controlMetrics.paddingX }, children: [
2051
+ hint && !error ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "text-[13px] leading-[1.45] text-[var(--theme-textLight)]", children: hint }) : null,
2052
+ error ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "text-[13px] font-semibold leading-[1.45] text-[var(--theme-negative)]", children: error }) : null
1767
2053
  ] }) : null;
1768
2054
  if (label && useLabelWrapper) {
1769
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
2055
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
1770
2056
  "label",
1771
2057
  {
1772
2058
  htmlFor,
@@ -1776,9 +2062,9 @@ function ControlFrame({
1776
2062
  ),
1777
2063
  style,
1778
2064
  children: [
1779
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("span", { className: "text-[13px] font-semibold leading-[1.45] text-[var(--theme-text)]", children: [
2065
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("span", { className: "text-[13px] font-semibold leading-[1.45] text-[var(--theme-text)]", children: [
1780
2066
  label,
1781
- required ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "ml-1 text-[var(--theme-negative)]", children: "*" }) : null
2067
+ required ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "ml-1 text-[var(--theme-negative)]", children: "*" }) : null
1782
2068
  ] }),
1783
2069
  innerContent,
1784
2070
  hintsContent
@@ -1786,20 +2072,20 @@ function ControlFrame({
1786
2072
  }
1787
2073
  );
1788
2074
  }
1789
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
2075
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
1790
2076
  "div",
1791
2077
  {
1792
2078
  className: cx(UI_KIT_ROOT_CLASSNAME, "flex w-full flex-col gap-1"),
1793
2079
  style,
1794
2080
  children: [
1795
- label && !useLabelWrapper ? /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
2081
+ label && !useLabelWrapper ? /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
1796
2082
  "label",
1797
2083
  {
1798
2084
  htmlFor,
1799
2085
  className: "text-[13px] font-semibold leading-[1.45] text-[var(--theme-text)]",
1800
2086
  children: [
1801
2087
  label,
1802
- required ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "ml-1 text-[var(--theme-negative)]", children: "*" }) : null
2088
+ required ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "ml-1 text-[var(--theme-negative)]", children: "*" }) : null
1803
2089
  ]
1804
2090
  }
1805
2091
  ) : null,
@@ -1829,16 +2115,16 @@ function Input({
1829
2115
  }) {
1830
2116
  const controlMetrics = getControlMetrics(size);
1831
2117
  const passwordToggleMetrics = getPasswordToggleMetrics(size);
1832
- const generatedId = (0, import_react5.useId)();
2118
+ const generatedId = (0, import_react6.useId)();
1833
2119
  const inputId = id != null ? id : generatedId;
1834
- const fileInputRef = (0, import_react5.useRef)(null);
1835
- const [isPasswordVisible, setIsPasswordVisible] = (0, import_react5.useState)(false);
1836
- const [isLockHinting, setIsLockHinting] = (0, import_react5.useState)(false);
1837
- const [isLockHintOpen, setIsLockHintOpen] = (0, import_react5.useState)(false);
1838
- const lockHintTimerRef = (0, import_react5.useRef)(null);
1839
- const lockHintIntervalRef = (0, import_react5.useRef)(null);
1840
- const [selectedFileNames, setSelectedFileNames] = (0, import_react5.useState)([]);
1841
- const [validationError, setValidationError] = (0, import_react5.useState)();
2120
+ const fileInputRef = (0, import_react6.useRef)(null);
2121
+ const [isPasswordVisible, setIsPasswordVisible] = (0, import_react6.useState)(false);
2122
+ const [isLockHinting, setIsLockHinting] = (0, import_react6.useState)(false);
2123
+ const [isLockHintOpen, setIsLockHintOpen] = (0, import_react6.useState)(false);
2124
+ const lockHintTimerRef = (0, import_react6.useRef)(null);
2125
+ const lockHintIntervalRef = (0, import_react6.useRef)(null);
2126
+ const [selectedFileNames, setSelectedFileNames] = (0, import_react6.useState)([]);
2127
+ const [validationError, setValidationError] = (0, import_react6.useState)();
1842
2128
  const isPasswordField = type === "password";
1843
2129
  const isEmailField = type === "email";
1844
2130
  const isLoginField = type === "login";
@@ -1853,7 +2139,7 @@ function Input({
1853
2139
  }
1854
2140
  const isValidatableField = isEmailField || isLoginField || isUsernameField || isFullNameField;
1855
2141
  const validationKey = isValidatableField && typeof rest.value === "string" ? `${type}\0${rest.value}` : null;
1856
- const [prevValidationKey, setPrevValidationKey] = (0, import_react5.useState)(
2142
+ const [prevValidationKey, setPrevValidationKey] = (0, import_react6.useState)(
1857
2143
  null
1858
2144
  );
1859
2145
  if (validationKey !== prevValidationKey) {
@@ -1877,7 +2163,7 @@ function Input({
1877
2163
  setIsLockHinting(false);
1878
2164
  setIsLockHintOpen(false);
1879
2165
  };
1880
- (0, import_react5.useEffect)(() => clearLockHintTimers, []);
2166
+ (0, import_react6.useEffect)(() => clearLockHintTimers, []);
1881
2167
  const triggerLockHint = () => {
1882
2168
  var _a;
1883
2169
  if (disabled || isPasswordVisible || lockHintTimerRef.current !== null) {
@@ -1922,12 +2208,12 @@ function Input({
1922
2208
  const floatingPlaceholder = !disableFloatingLabel && placeholder !== void 0 && placeholder !== "" ? placeholder : void 0;
1923
2209
  const resolvedPlaceholder = placeholder != null ? placeholder : " ";
1924
2210
  const isStaticPlaceholderVisible = disableFloatingLabel && (rest.value === "" || rest.value == null && rest.defaultValue == null);
1925
- const defaultLeadingIcon = isEmailField ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(EmailIcon, { size: fileIconSize }) : isUsernameField ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(UsernameIcon, { size: fileIconSize }) : isFullNameField ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(FullNameIcon, { size: fileIconSize }) : isLoginField ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(LoginIcon, { size: fileIconSize }) : isDateField ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(CalendarIcon, { size: fileIconSize }) : null;
2211
+ const defaultLeadingIcon = isEmailField ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(EmailIcon, { size: fileIconSize }) : isUsernameField ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(UsernameIcon, { size: fileIconSize }) : isFullNameField ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(FullNameIcon, { size: fileIconSize }) : isLoginField ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(LoginIcon, { size: fileIconSize }) : isDateField ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(CalendarIcon, { size: fileIconSize }) : null;
1926
2212
  const resolvedLeadingIcon = icon != null ? icon : defaultLeadingIcon;
1927
2213
  const hasLeadingIcon = isRenderableNode(resolvedLeadingIcon);
1928
2214
  const hasCustomLeadingIcon = isRenderableNode(icon) && hasLeadingIcon;
1929
- const resolvedFileIcon = icon != null ? icon : /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(FileIcon, { size: fileIconSize, selected: hasSelectedFiles });
1930
- const resolvedPasswordIcon = icon != null ? icon : isPasswordVisible || isLockHinting && isLockHintOpen ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(PasswordVisibleIcon, { size: passwordLockIconSize, playing: isLockHinting }) : /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(PasswordHiddenIcon, { size: passwordLockIconSize, playing: isLockHinting });
2215
+ const resolvedFileIcon = icon != null ? icon : /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(FileIcon, { size: fileIconSize, selected: hasSelectedFiles });
2216
+ const resolvedPasswordIcon = icon != null ? icon : isPasswordVisible || isLockHinting && isLockHintOpen ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(PasswordVisibleIcon, { size: passwordLockIconSize, playing: isLockHinting }) : /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(PasswordHiddenIcon, { size: passwordLockIconSize, playing: isLockHinting });
1931
2217
  const placeholderClass = floatingPlaceholder ? "placeholder-transparent" : "placeholder-[var(--theme-textLight)]";
1932
2218
  let resolvedLabelOffset = void 0;
1933
2219
  if (isFileField) {
@@ -2010,8 +2296,8 @@ function Input({
2010
2296
  fileInputRef.current.value = "";
2011
2297
  fileInputRef.current.dispatchEvent(new Event("change", { bubbles: true }));
2012
2298
  };
2013
- const input = isFileField ? /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_jsx_runtime7.Fragment, { children: [
2014
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
2299
+ const input = isFileField ? /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_jsx_runtime9.Fragment, { children: [
2300
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
2015
2301
  "input",
2016
2302
  {
2017
2303
  ...rest,
@@ -2031,7 +2317,7 @@ function Input({
2031
2317
  className: "hidden"
2032
2318
  }
2033
2319
  ),
2034
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
2320
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
2035
2321
  "div",
2036
2322
  {
2037
2323
  className: cx(
@@ -2041,7 +2327,7 @@ function Input({
2041
2327
  ),
2042
2328
  style: { ...style, ...getFieldSizeStyles(size) },
2043
2329
  children: [
2044
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
2330
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
2045
2331
  "button",
2046
2332
  {
2047
2333
  type: "button",
@@ -2066,7 +2352,7 @@ function Input({
2066
2352
  paddingLeft: leadingIconInset
2067
2353
  },
2068
2354
  children: [
2069
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
2355
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
2070
2356
  "span",
2071
2357
  {
2072
2358
  className: cx(
@@ -2077,11 +2363,11 @@ function Input({
2077
2363
  children: resolvedFileIcon
2078
2364
  }
2079
2365
  ),
2080
- showUploadLabel ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { children: fileButtonLabel }) : null
2366
+ showUploadLabel ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { children: fileButtonLabel }) : null
2081
2367
  ]
2082
2368
  }
2083
2369
  ),
2084
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
2370
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
2085
2371
  "button",
2086
2372
  {
2087
2373
  type: "button",
@@ -2094,7 +2380,7 @@ function Input({
2094
2380
  "text-left appearance-none",
2095
2381
  disabled ? "cursor-not-allowed" : "cursor-pointer"
2096
2382
  ),
2097
- children: fileSelectionText ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
2383
+ children: fileSelectionText ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
2098
2384
  "span",
2099
2385
  {
2100
2386
  className: cx(
@@ -2114,13 +2400,13 @@ function Input({
2114
2400
  ]
2115
2401
  }
2116
2402
  )
2117
- ] }) : canTogglePasswordVisibility ? /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
2403
+ ] }) : canTogglePasswordVisibility ? /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
2118
2404
  "div",
2119
2405
  {
2120
2406
  className: cx(adornedFieldClassName, className),
2121
2407
  style: { ...style, ...getFieldSizeStyles(size) },
2122
2408
  children: [
2123
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
2409
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
2124
2410
  "button",
2125
2411
  {
2126
2412
  type: "button",
@@ -2150,7 +2436,7 @@ function Input({
2150
2436
  children: resolvedPasswordIcon
2151
2437
  }
2152
2438
  ),
2153
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
2439
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
2154
2440
  "input",
2155
2441
  {
2156
2442
  ...rest,
@@ -2180,13 +2466,13 @@ function Input({
2180
2466
  )
2181
2467
  ]
2182
2468
  }
2183
- ) : hasLeadingIcon ? /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
2469
+ ) : hasLeadingIcon ? /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
2184
2470
  "div",
2185
2471
  {
2186
2472
  className: cx(adornedFieldClassName, className),
2187
2473
  style: { ...style, ...getFieldSizeStyles(size) },
2188
2474
  children: [
2189
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
2475
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
2190
2476
  "span",
2191
2477
  {
2192
2478
  className: cx(
@@ -2203,7 +2489,7 @@ function Input({
2203
2489
  children: resolvedLeadingIcon
2204
2490
  }
2205
2491
  ),
2206
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
2492
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
2207
2493
  "input",
2208
2494
  {
2209
2495
  ...rest,
@@ -2235,7 +2521,7 @@ function Input({
2235
2521
  )
2236
2522
  ]
2237
2523
  }
2238
- ) : /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
2524
+ ) : /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
2239
2525
  "input",
2240
2526
  {
2241
2527
  ...rest,
@@ -2254,7 +2540,7 @@ function Input({
2254
2540
  }
2255
2541
  }
2256
2542
  );
2257
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
2543
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
2258
2544
  ControlFrame,
2259
2545
  {
2260
2546
  label,
@@ -2274,7 +2560,7 @@ function Input({
2274
2560
  }
2275
2561
 
2276
2562
  // src/components/DatePicker.tsx
2277
- var import_jsx_runtime8 = require("react/jsx-runtime");
2563
+ var import_jsx_runtime10 = require("react/jsx-runtime");
2278
2564
  var pad = (value) => String(value).padStart(2, "0");
2279
2565
  function normalizeDateValue(value, mode) {
2280
2566
  if (value == null || value === "") {
@@ -2310,7 +2596,7 @@ function DatePicker({
2310
2596
  const nativeType = mode === "datetime" ? "datetime-local" : "date";
2311
2597
  const normalizedValue = normalizeDateValue(value, mode);
2312
2598
  const normalizedDefaultValue = normalizeDateValue(defaultValue, mode);
2313
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
2599
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
2314
2600
  Input,
2315
2601
  {
2316
2602
  ...props,
@@ -2334,8 +2620,77 @@ function DatePicker({
2334
2620
  );
2335
2621
  }
2336
2622
 
2623
+ // src/components/IconButton.tsx
2624
+ var import_react7 = require("react");
2625
+ var import_jsx_runtime11 = require("react/jsx-runtime");
2626
+ var ICON_SIZE_BY_CONTROL_SIZE = {
2627
+ sm: 16,
2628
+ md: 18,
2629
+ lg: 20
2630
+ };
2631
+ var resolveIcon = (icon) => {
2632
+ var _a;
2633
+ if (!(0, import_react7.isValidElement)(icon)) {
2634
+ return icon;
2635
+ }
2636
+ const iconElement = icon;
2637
+ return (0, import_react7.cloneElement)(iconElement, {
2638
+ style: {
2639
+ width: "100%",
2640
+ height: "100%",
2641
+ ...(_a = iconElement.props.style) != null ? _a : {}
2642
+ }
2643
+ });
2644
+ };
2645
+ function IconButton({
2646
+ icon,
2647
+ ariaLabel,
2648
+ size = "md",
2649
+ variant = "solid",
2650
+ className,
2651
+ style,
2652
+ ...rest
2653
+ }) {
2654
+ const controlMetrics = getControlMetrics(size);
2655
+ const iconSize = ICON_SIZE_BY_CONTROL_SIZE[size];
2656
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
2657
+ Button,
2658
+ {
2659
+ ...rest,
2660
+ "aria-label": ariaLabel,
2661
+ size,
2662
+ variant,
2663
+ className: className ? `gap-0 ${className}` : "gap-0",
2664
+ style: {
2665
+ width: controlMetrics.height,
2666
+ minWidth: controlMetrics.height,
2667
+ maxWidth: controlMetrics.height,
2668
+ padding: 0,
2669
+ aspectRatio: "1 / 1",
2670
+ ...style
2671
+ },
2672
+ children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
2673
+ "span",
2674
+ {
2675
+ "aria-hidden": "true",
2676
+ style: {
2677
+ display: "inline-flex",
2678
+ alignItems: "center",
2679
+ justifyContent: "center",
2680
+ width: iconSize,
2681
+ height: iconSize,
2682
+ lineHeight: 0,
2683
+ flexShrink: 0
2684
+ },
2685
+ children: resolveIcon(icon)
2686
+ }
2687
+ )
2688
+ }
2689
+ );
2690
+ }
2691
+
2337
2692
  // src/components/Loading.tsx
2338
- var import_jsx_runtime9 = require("react/jsx-runtime");
2693
+ var import_jsx_runtime12 = require("react/jsx-runtime");
2339
2694
  var SIZE_BY_CONTROL_SIZE = {
2340
2695
  sm: 28,
2341
2696
  md: 40,
@@ -2409,7 +2764,7 @@ function Loading({
2409
2764
  animation: `ss-loading-drop ${dropDuration}ms cubic-bezier(0.45, 0, 0.35, 1) infinite`,
2410
2765
  animationDelay: `${ITEM_DELAY_RATIOS[index] * dropDuration}ms`
2411
2766
  });
2412
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
2767
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
2413
2768
  "div",
2414
2769
  {
2415
2770
  ...rest,
@@ -2423,7 +2778,7 @@ function Loading({
2423
2778
  ...style
2424
2779
  },
2425
2780
  children: [
2426
- /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
2781
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
2427
2782
  "svg",
2428
2783
  {
2429
2784
  className: "ss-loading-svg",
@@ -2434,8 +2789,8 @@ function Loading({
2434
2789
  "aria-hidden": "true",
2435
2790
  style: { color: strokeColor, overflow: "hidden" },
2436
2791
  children: [
2437
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("style", { children: LOADING_KEYFRAMES }),
2438
- /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
2792
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("style", { children: LOADING_KEYFRAMES }),
2793
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
2439
2794
  "g",
2440
2795
  {
2441
2796
  className: "ss-loading-cart",
@@ -2445,7 +2800,7 @@ function Loading({
2445
2800
  animation: `ss-loading-bob ${BASE_BOB_MS / safeSpeed}ms ease-in-out infinite`
2446
2801
  },
2447
2802
  children: [
2448
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
2803
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
2449
2804
  "rect",
2450
2805
  {
2451
2806
  className: "ss-loading-item",
@@ -2459,7 +2814,7 @@ function Loading({
2459
2814
  style: itemAnimation(0)
2460
2815
  }
2461
2816
  ),
2462
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
2817
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
2463
2818
  "circle",
2464
2819
  {
2465
2820
  className: "ss-loading-item",
@@ -2471,7 +2826,7 @@ function Loading({
2471
2826
  style: itemAnimation(1)
2472
2827
  }
2473
2828
  ),
2474
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
2829
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
2475
2830
  "rect",
2476
2831
  {
2477
2832
  className: "ss-loading-item",
@@ -2485,13 +2840,13 @@ function Loading({
2485
2840
  style: itemAnimation(2)
2486
2841
  }
2487
2842
  ),
2488
- /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("g", { stroke: "currentColor", strokeWidth: 2.6, strokeLinecap: "round", strokeLinejoin: "round", children: [
2489
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("path", { d: "M3.5 7.5h4.6l1.6 5" }),
2490
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("path", { d: "M9.7 12.5H43l-4.4 13.5H14.1z" }),
2491
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("path", { d: "M18 26v3.4" }),
2492
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("path", { d: "M35 26v3.4" })
2843
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("g", { stroke: "currentColor", strokeWidth: 2.6, strokeLinecap: "round", strokeLinejoin: "round", children: [
2844
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("path", { d: "M3.5 7.5h4.6l1.6 5" }),
2845
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("path", { d: "M9.7 12.5H43l-4.4 13.5H14.1z" }),
2846
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("path", { d: "M18 26v3.4" }),
2847
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("path", { d: "M35 26v3.4" })
2493
2848
  ] }),
2494
- WHEELS.map((wheel) => /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
2849
+ WHEELS.map((wheel) => /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
2495
2850
  "g",
2496
2851
  {
2497
2852
  className: "ss-loading-wheel",
@@ -2501,7 +2856,7 @@ function Loading({
2501
2856
  animation: `ss-loading-wheel ${BASE_WHEEL_MS / safeSpeed}ms linear infinite`
2502
2857
  },
2503
2858
  children: [
2504
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
2859
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
2505
2860
  "circle",
2506
2861
  {
2507
2862
  cx: wheel.cx,
@@ -2512,7 +2867,7 @@ function Loading({
2512
2867
  fill: "none"
2513
2868
  }
2514
2869
  ),
2515
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
2870
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
2516
2871
  "path",
2517
2872
  {
2518
2873
  d: `M${wheel.cx} ${wheel.cy}V${wheel.cy - 3.2}`,
@@ -2531,7 +2886,7 @@ function Loading({
2531
2886
  ]
2532
2887
  }
2533
2888
  ),
2534
- label ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
2889
+ label ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
2535
2890
  "span",
2536
2891
  {
2537
2892
  style: {
@@ -2541,14 +2896,14 @@ function Loading({
2541
2896
  },
2542
2897
  children: label
2543
2898
  }
2544
- ) : /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "ui-kit-sr-only", children: accessibleLabel })
2899
+ ) : /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "ui-kit-sr-only", children: accessibleLabel })
2545
2900
  ]
2546
2901
  }
2547
2902
  );
2548
2903
  }
2549
2904
 
2550
2905
  // src/components/Separator.tsx
2551
- var import_jsx_runtime10 = require("react/jsx-runtime");
2906
+ var import_jsx_runtime13 = require("react/jsx-runtime");
2552
2907
  function Separator({
2553
2908
  orientation = "vertical",
2554
2909
  color,
@@ -2565,7 +2920,7 @@ function Separator({
2565
2920
  height: orientation === "vertical" ? usesVerticalStretch ? "auto" : size : 3,
2566
2921
  ...style
2567
2922
  };
2568
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
2923
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
2569
2924
  "div",
2570
2925
  {
2571
2926
  ...rest,
@@ -2582,11 +2937,11 @@ function Separator({
2582
2937
  }
2583
2938
 
2584
2939
  // src/componentsBase/select/SelectBase.tsx
2585
- var import_react7 = require("react");
2940
+ var import_react9 = require("react");
2586
2941
  var import_react_dom = require("react-dom");
2587
2942
 
2588
2943
  // src/componentsBase/select/utils.ts
2589
- var import_react6 = require("react");
2944
+ var import_react8 = require("react");
2590
2945
  function getTextContent(node) {
2591
2946
  if (node == null || typeof node === "boolean") {
2592
2947
  return "";
@@ -2597,7 +2952,7 @@ function getTextContent(node) {
2597
2952
  if (Array.isArray(node)) {
2598
2953
  return node.map(getTextContent).join("");
2599
2954
  }
2600
- if ((0, import_react6.isValidElement)(node)) {
2955
+ if ((0, import_react8.isValidElement)(node)) {
2601
2956
  return getTextContent(node.props.children);
2602
2957
  }
2603
2958
  return "";
@@ -2632,13 +2987,13 @@ function filterSelectGroups(groups, query) {
2632
2987
  }
2633
2988
 
2634
2989
  // src/componentsBase/select/SelectBase.tsx
2635
- var import_jsx_runtime11 = require("react/jsx-runtime");
2990
+ var import_jsx_runtime14 = require("react/jsx-runtime");
2636
2991
  var MENU_OFFSET = 8;
2637
2992
  var MENU_MAX_HEIGHT = 280;
2638
2993
  var emptySubscribe = () => () => {
2639
2994
  };
2640
2995
  function SearchIcon({ size }) {
2641
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
2996
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
2642
2997
  "path",
2643
2998
  {
2644
2999
  d: "m21 21-4.35-4.35M10.5 18a7.5 7.5 0 1 1 0-15 7.5 7.5 0 0 1 0 15Z",
@@ -2692,7 +3047,7 @@ function SelectBase({
2692
3047
  ...rest
2693
3048
  }) {
2694
3049
  var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m;
2695
- const generatedId = (0, import_react7.useId)().replace(/:/g, "");
3050
+ const generatedId = (0, import_react9.useId)().replace(/:/g, "");
2696
3051
  const resolvedId = id != null ? id : `ss-select-${generatedId}`;
2697
3052
  const isMultiSelect = Boolean(isMulti || multiple);
2698
3053
  const hasFilter = Boolean(isFilterable);
@@ -2700,31 +3055,31 @@ function SelectBase({
2700
3055
  const enabledOptions = flatOptions.filter((option) => !option.disabled);
2701
3056
  const isControlled = value !== void 0;
2702
3057
  const fallbackValues = defaultValue !== void 0 ? normalizeSelectValues(defaultValue) : isMultiSelect ? [] : placeholder != null ? [] : ((_a = enabledOptions[0]) == null ? void 0 : _a.value) ? [enabledOptions[0].value] : [];
2703
- const [uncontrolledValues, setUncontrolledValues] = (0, import_react7.useState)(fallbackValues);
2704
- const [isOpen, setIsOpen] = (0, import_react7.useState)(false);
2705
- const [uncontrolledSearchQuery, setUncontrolledSearchQuery] = (0, import_react7.useState)("");
2706
- const [menuPlacement, setMenuPlacement] = (0, import_react7.useState)("bottom");
2707
- const [isPlacementResolved, setIsPlacementResolved] = (0, import_react7.useState)(false);
2708
- const [highlightedValue, setHighlightedValue] = (0, import_react7.useState)(
3058
+ const [uncontrolledValues, setUncontrolledValues] = (0, import_react9.useState)(fallbackValues);
3059
+ const [isOpen, setIsOpen] = (0, import_react9.useState)(false);
3060
+ const [uncontrolledSearchQuery, setUncontrolledSearchQuery] = (0, import_react9.useState)("");
3061
+ const [menuPlacement, setMenuPlacement] = (0, import_react9.useState)("bottom");
3062
+ const [isPlacementResolved, setIsPlacementResolved] = (0, import_react9.useState)(false);
3063
+ const [highlightedValue, setHighlightedValue] = (0, import_react9.useState)(
2709
3064
  (_d = (_c = fallbackValues[0]) != null ? _c : (_b = enabledOptions[0]) == null ? void 0 : _b.value) != null ? _d : ""
2710
3065
  );
2711
- const isMounted = (0, import_react7.useSyncExternalStore)(
3066
+ const isMounted = (0, import_react9.useSyncExternalStore)(
2712
3067
  emptySubscribe,
2713
3068
  () => true,
2714
3069
  () => false
2715
3070
  );
2716
- const [menuRect, setMenuRect] = (0, import_react7.useState)({
3071
+ const [menuRect, setMenuRect] = (0, import_react9.useState)({
2717
3072
  top: 0,
2718
3073
  bottom: 0,
2719
3074
  left: 0,
2720
3075
  width: 0
2721
3076
  });
2722
- const shellRef = (0, import_react7.useRef)(null);
2723
- const buttonRef = (0, import_react7.useRef)(null);
2724
- const menuRef = (0, import_react7.useRef)(null);
2725
- const searchInputRef = (0, import_react7.useRef)(null);
2726
- const hiddenSelectRef = (0, import_react7.useRef)(null);
2727
- const highlightSyncKeyRef = (0, import_react7.useRef)("");
3077
+ const shellRef = (0, import_react9.useRef)(null);
3078
+ const buttonRef = (0, import_react9.useRef)(null);
3079
+ const menuRef = (0, import_react9.useRef)(null);
3080
+ const searchInputRef = (0, import_react9.useRef)(null);
3081
+ const hiddenSelectRef = (0, import_react9.useRef)(null);
3082
+ const highlightSyncKeyRef = (0, import_react9.useRef)("");
2728
3083
  const currentSearchQuery = searchQuery !== void 0 ? searchQuery : uncontrolledSearchQuery;
2729
3084
  const selectedValues = isControlled ? normalizeSelectValues(value) : uncontrolledValues;
2730
3085
  const selectedValue = (_e = selectedValues[0]) != null ? _e : "";
@@ -2785,7 +3140,7 @@ function SelectBase({
2785
3140
  setHighlightedValue((_m = (_l = nextValues[0]) != null ? _l : (_k = enabledOptions[0]) == null ? void 0 : _k.value) != null ? _m : "");
2786
3141
  }
2787
3142
  }
2788
- const [wasOpenForPlacement, setWasOpenForPlacement] = (0, import_react7.useState)(isOpen);
3143
+ const [wasOpenForPlacement, setWasOpenForPlacement] = (0, import_react9.useState)(isOpen);
2789
3144
  if (isOpen !== wasOpenForPlacement) {
2790
3145
  setWasOpenForPlacement(isOpen);
2791
3146
  if (isOpen) {
@@ -2793,7 +3148,7 @@ function SelectBase({
2793
3148
  setIsPlacementResolved(false);
2794
3149
  }
2795
3150
  }
2796
- (0, import_react7.useEffect)(() => {
3151
+ (0, import_react9.useEffect)(() => {
2797
3152
  var _a2, _b2, _c2;
2798
3153
  if (!isOpen) {
2799
3154
  highlightSyncKeyRef.current = "";
@@ -2814,14 +3169,14 @@ function SelectBase({
2814
3169
  visibleEnabledOptions,
2815
3170
  visibleEnabledValues
2816
3171
  ]);
2817
- (0, import_react7.useEffect)(() => {
3172
+ (0, import_react9.useEffect)(() => {
2818
3173
  var _a2;
2819
3174
  if (!isOpen || !hasFilter) {
2820
3175
  return;
2821
3176
  }
2822
3177
  (_a2 = searchInputRef.current) == null ? void 0 : _a2.focus();
2823
3178
  }, [hasFilter, isOpen]);
2824
- (0, import_react7.useEffect)(() => {
3179
+ (0, import_react9.useEffect)(() => {
2825
3180
  if (!isOpen) {
2826
3181
  return;
2827
3182
  }
@@ -2855,7 +3210,7 @@ function SelectBase({
2855
3210
  window.cancelAnimationFrame(frameId);
2856
3211
  };
2857
3212
  }, [isOpen, visibleOptions.length]);
2858
- (0, import_react7.useEffect)(() => {
3213
+ (0, import_react9.useEffect)(() => {
2859
3214
  if (!isOpen) {
2860
3215
  return;
2861
3216
  }
@@ -2881,13 +3236,13 @@ function SelectBase({
2881
3236
  if (!isOpen && clearSearchOnClose && searchQuery === void 0 && uncontrolledSearchQuery !== "") {
2882
3237
  setUncontrolledSearchQuery("");
2883
3238
  }
2884
- (0, import_react7.useEffect)(() => {
3239
+ (0, import_react9.useEffect)(() => {
2885
3240
  if (isOpen || !clearSearchOnClose || currentSearchQuery === "") {
2886
3241
  return;
2887
3242
  }
2888
3243
  onSearchQueryChange == null ? void 0 : onSearchQueryChange("");
2889
3244
  }, [clearSearchOnClose, currentSearchQuery, isOpen, onSearchQueryChange]);
2890
- (0, import_react7.useEffect)(() => {
3245
+ (0, import_react9.useEffect)(() => {
2891
3246
  if (!isOpen) {
2892
3247
  return;
2893
3248
  }
@@ -2906,7 +3261,7 @@ function SelectBase({
2906
3261
  document.removeEventListener("pointerdown", handlePointerDown);
2907
3262
  };
2908
3263
  }, [isOpen]);
2909
- (0, import_react7.useEffect)(() => {
3264
+ (0, import_react9.useEffect)(() => {
2910
3265
  var _a2;
2911
3266
  if (isControlled) {
2912
3267
  return;
@@ -3019,7 +3374,7 @@ function SelectBase({
3019
3374
  const hasSomeVisibleSelected = visibleSelectedCount > 0 && visibleSelectedCount < visibleEnabledValues.length;
3020
3375
  const hasAllVisibleSelected = visibleEnabledValues.length > 0 && visibleSelectedCount === visibleEnabledValues.length;
3021
3376
  const canToggleVisibleSelection = !disabled && visibleEnabledValues.length > 0;
3022
- const bulkToggleControl = isMultiSelect ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
3377
+ const bulkToggleControl = isMultiSelect ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
3023
3378
  "button",
3024
3379
  {
3025
3380
  type: "button",
@@ -3039,7 +3394,7 @@ function SelectBase({
3039
3394
  "m-0 inline-flex h-5 w-5 shrink-0 items-center justify-center border-0 bg-transparent p-0",
3040
3395
  canToggleVisibleSelection ? "cursor-pointer opacity-100" : "cursor-not-allowed opacity-45"
3041
3396
  ),
3042
- children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
3397
+ children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
3043
3398
  CheckboxIndicator,
3044
3399
  {
3045
3400
  checked: hasAllVisibleSelected,
@@ -3196,7 +3551,7 @@ function SelectBase({
3196
3551
  }
3197
3552
  };
3198
3553
  const emptyState = isLoading ? loadingMessage : emptyMessage;
3199
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
3554
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
3200
3555
  ControlFrame,
3201
3556
  {
3202
3557
  label,
@@ -3207,8 +3562,8 @@ function SelectBase({
3207
3562
  size,
3208
3563
  hasValue: hasSelection || isOpen,
3209
3564
  floatingPlaceholder,
3210
- children: /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { ref: shellRef, className: "relative w-full", children: [
3211
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
3565
+ children: /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { ref: shellRef, className: "relative w-full", children: [
3566
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
3212
3567
  "button",
3213
3568
  {
3214
3569
  ...buttonPassthroughProps,
@@ -3237,12 +3592,12 @@ function SelectBase({
3237
3592
  ...isTriggerDisabled ? { opacity: DISABLED_FIELD_OPACITY } : {}
3238
3593
  },
3239
3594
  children: [
3240
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
3595
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
3241
3596
  "span",
3242
3597
  {
3243
3598
  className: "block min-w-0 flex-1 overflow-hidden text-ellipsis whitespace-nowrap",
3244
3599
  style: controlTextNudgeStyle,
3245
- children: hasSelection ? displayContent : /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
3600
+ children: hasSelection ? displayContent : /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
3246
3601
  "span",
3247
3602
  {
3248
3603
  className: floatingPlaceholder ? "" : "text-[var(--theme-textLight)]",
@@ -3251,7 +3606,7 @@ function SelectBase({
3251
3606
  )
3252
3607
  }
3253
3608
  ),
3254
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
3609
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
3255
3610
  "span",
3256
3611
  {
3257
3612
  "aria-hidden": "true",
@@ -3264,7 +3619,7 @@ function SelectBase({
3264
3619
  right: indicatorOffset,
3265
3620
  transform: `translateY(-50%) rotate(${isOpen ? 180 : 0}deg)`
3266
3621
  },
3267
- children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("svg", { width: "18", height: "18", viewBox: "0 0 20 20", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
3622
+ children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("svg", { width: "18", height: "18", viewBox: "0 0 20 20", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
3268
3623
  "path",
3269
3624
  {
3270
3625
  d: "M5.75 7.75L10 12l4.25-4.25",
@@ -3279,7 +3634,7 @@ function SelectBase({
3279
3634
  ]
3280
3635
  }
3281
3636
  ),
3282
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
3637
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
3283
3638
  "select",
3284
3639
  {
3285
3640
  ...rest,
@@ -3297,8 +3652,8 @@ function SelectBase({
3297
3652
  }
3298
3653
  ),
3299
3654
  isMounted && isOpen ? (0, import_react_dom.createPortal)(
3300
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_jsx_runtime11.Fragment, { children: [
3301
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("style", { children: `
3655
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_jsx_runtime14.Fragment, { children: [
3656
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("style", { children: `
3302
3657
  #${listboxId} {
3303
3658
  scrollbar-width: thin;
3304
3659
  scrollbar-color: ${scrollbarThumbColor} transparent;
@@ -3329,7 +3684,7 @@ function SelectBase({
3329
3684
  opacity: 1;
3330
3685
  }
3331
3686
  ` }),
3332
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
3687
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
3333
3688
  "div",
3334
3689
  {
3335
3690
  ref: menuRef,
@@ -3352,7 +3707,7 @@ function SelectBase({
3352
3707
  visibility: isPlacementResolved ? "visible" : "hidden"
3353
3708
  },
3354
3709
  children: [
3355
- hasFilter ? /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
3710
+ hasFilter ? /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
3356
3711
  "div",
3357
3712
  {
3358
3713
  className: cx(
@@ -3360,20 +3715,20 @@ function SelectBase({
3360
3715
  ),
3361
3716
  children: [
3362
3717
  bulkToggleControl,
3363
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
3718
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
3364
3719
  "div",
3365
3720
  {
3366
3721
  className: "flex-1",
3367
3722
  onClick: (event) => event.stopPropagation(),
3368
3723
  onMouseDown: (event) => event.stopPropagation(),
3369
3724
  onPointerDown: (event) => event.stopPropagation(),
3370
- children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
3725
+ children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
3371
3726
  Input,
3372
3727
  {
3373
3728
  id: searchInputId,
3374
3729
  ref: searchInputRef,
3375
3730
  type: "text",
3376
- icon: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(SearchIcon, { size: 16 }),
3731
+ icon: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(SearchIcon, { size: 16 }),
3377
3732
  disableFloatingLabel: true,
3378
3733
  value: currentSearchQuery,
3379
3734
  onChange: (event) => {
@@ -3393,7 +3748,7 @@ function SelectBase({
3393
3748
  )
3394
3749
  ]
3395
3750
  }
3396
- ) : isMultiSelect ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
3751
+ ) : isMultiSelect ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
3397
3752
  "div",
3398
3753
  {
3399
3754
  className: cx(
@@ -3402,8 +3757,8 @@ function SelectBase({
3402
3757
  children: bulkToggleControl
3403
3758
  }
3404
3759
  ) : null,
3405
- hasFilter && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Separator, {}),
3406
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
3760
+ hasFilter && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Separator, {}),
3761
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
3407
3762
  "div",
3408
3763
  {
3409
3764
  id: listboxId,
@@ -3412,7 +3767,7 @@ function SelectBase({
3412
3767
  "aria-multiselectable": isMultiSelect || void 0,
3413
3768
  onScroll: onListboxScroll,
3414
3769
  className: "min-h-0 flex-1 overflow-y-auto overflow-x-hidden py-1",
3415
- children: visibleGroups.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "px-3 py-[14px] text-center text-[13px] text-[var(--theme-textLight)]", children: emptyState }) : visibleGroups.map((group) => /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
3770
+ children: visibleGroups.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "px-3 py-[14px] text-center text-[13px] text-[var(--theme-textLight)]", children: emptyState }) : visibleGroups.map((group) => /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
3416
3771
  "div",
3417
3772
  {
3418
3773
  className: cx(
@@ -3420,7 +3775,7 @@ function SelectBase({
3420
3775
  group.label ? "mt-1" : "mt-0"
3421
3776
  ),
3422
3777
  children: [
3423
- group.label ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
3778
+ group.label ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
3424
3779
  "span",
3425
3780
  {
3426
3781
  className: cx(
@@ -3438,7 +3793,7 @@ function SelectBase({
3438
3793
  );
3439
3794
  const isHighlighted = option.value === highlightedValue;
3440
3795
  const isActive = isSelected || isHighlighted;
3441
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
3796
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
3442
3797
  "div",
3443
3798
  {
3444
3799
  role: "option",
@@ -3468,7 +3823,7 @@ function SelectBase({
3468
3823
  !option.disabled && isActive ? "text-[var(--theme-onPrimary)]" : null,
3469
3824
  !option.disabled && !isActive ? "text-[var(--theme-text)]" : null
3470
3825
  ),
3471
- children: /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
3826
+ children: /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
3472
3827
  "div",
3473
3828
  {
3474
3829
  className: cx(
@@ -3481,8 +3836,8 @@ function SelectBase({
3481
3836
  !isSelected && !isHighlighted ? "bg-[var(--theme-surface)] font-medium" : null
3482
3837
  ),
3483
3838
  children: [
3484
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("span", { className: "flex min-w-0 flex-1 items-center gap-2.5", children: [
3485
- isMultiSelect ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
3839
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("span", { className: "flex min-w-0 flex-1 items-center gap-2.5", children: [
3840
+ isMultiSelect ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
3486
3841
  CheckboxIndicator,
3487
3842
  {
3488
3843
  checked: isSelected,
@@ -3494,21 +3849,21 @@ function SelectBase({
3494
3849
  uncheckedBackgroundColor: "transparent"
3495
3850
  }
3496
3851
  ) : null,
3497
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: "block min-w-0 flex-1 overflow-hidden text-ellipsis whitespace-nowrap", children: option.label })
3852
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "block min-w-0 flex-1 overflow-hidden text-ellipsis whitespace-nowrap", children: option.label })
3498
3853
  ] }),
3499
- !isMultiSelect && isSelected ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
3854
+ !isMultiSelect && isSelected ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
3500
3855
  "span",
3501
3856
  {
3502
3857
  "aria-hidden": "true",
3503
3858
  className: "flex shrink-0 items-center justify-center text-[var(--theme-onPrimary)]",
3504
- children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
3859
+ children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
3505
3860
  "svg",
3506
3861
  {
3507
3862
  width: "16",
3508
3863
  height: "16",
3509
3864
  viewBox: "0 0 20 20",
3510
3865
  fill: "none",
3511
- children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
3866
+ children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
3512
3867
  "path",
3513
3868
  {
3514
3869
  d: "M5.75 10.25L8.5 13l5.75-6",
@@ -3535,9 +3890,9 @@ function SelectBase({
3535
3890
  ))
3536
3891
  }
3537
3892
  ),
3538
- menuFooter ? /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_jsx_runtime11.Fragment, { children: [
3539
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Separator, {}),
3540
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "shrink-0 px-2 pb-1 pt-2.5", children: menuFooter })
3893
+ menuFooter ? /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_jsx_runtime14.Fragment, { children: [
3894
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Separator, {}),
3895
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "shrink-0 px-2 pb-1 pt-2.5", children: menuFooter })
3541
3896
  ] }) : null
3542
3897
  ]
3543
3898
  }
@@ -3551,7 +3906,7 @@ function SelectBase({
3551
3906
  }
3552
3907
 
3553
3908
  // src/componentsBase/select/childrenAdapter.ts
3554
- var import_react8 = require("react");
3909
+ var import_react10 = require("react");
3555
3910
  function buildOption(keyPrefix, index, props, groupDisabled = false) {
3556
3911
  var _a;
3557
3912
  const rawValue = props.value !== void 0 ? props.value : getTextContent(props.children).trim();
@@ -3578,8 +3933,8 @@ function parseSelectChildren(children) {
3578
3933
  });
3579
3934
  standaloneOptions.length = 0;
3580
3935
  };
3581
- import_react8.Children.forEach(children, (child) => {
3582
- if (!(0, import_react8.isValidElement)(child)) {
3936
+ import_react10.Children.forEach(children, (child) => {
3937
+ if (!(0, import_react10.isValidElement)(child)) {
3583
3938
  return;
3584
3939
  }
3585
3940
  if (child.type === "option") {
@@ -3593,8 +3948,8 @@ function parseSelectChildren(children) {
3593
3948
  flushStandaloneOptions();
3594
3949
  const groupOptions = [];
3595
3950
  let groupOptionIndex = 0;
3596
- import_react8.Children.forEach(child.props.children, (optionChild) => {
3597
- if (!(0, import_react8.isValidElement)(optionChild) || optionChild.type !== "option") {
3951
+ import_react10.Children.forEach(child.props.children, (optionChild) => {
3952
+ if (!(0, import_react10.isValidElement)(optionChild) || optionChild.type !== "option") {
3598
3953
  return;
3599
3954
  }
3600
3955
  groupOptions.push(
@@ -3621,17 +3976,17 @@ function parseSelectChildren(children) {
3621
3976
  }
3622
3977
 
3623
3978
  // src/components/Select.tsx
3624
- var import_jsx_runtime12 = require("react/jsx-runtime");
3979
+ var import_jsx_runtime15 = require("react/jsx-runtime");
3625
3980
  function Select({ children, options, ...props }) {
3626
- const actualChildren = options ? options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("option", { value: option.value, children: option.label }, option.value)) : children;
3627
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(SelectBase, { ...props, groups: parseSelectChildren(actualChildren), nativeOptions: actualChildren });
3981
+ const actualChildren = options ? options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("option", { value: option.value, children: option.label }, option.value)) : children;
3982
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(SelectBase, { ...props, groups: parseSelectChildren(actualChildren), nativeOptions: actualChildren });
3628
3983
  }
3629
3984
 
3630
3985
  // src/components/SelectAsync.tsx
3631
- var import_react9 = require("react");
3986
+ var import_react11 = require("react");
3632
3987
 
3633
3988
  // src/componentsBase/select/objectOptionsAdapter.tsx
3634
- var import_jsx_runtime13 = require("react/jsx-runtime");
3989
+ var import_jsx_runtime16 = require("react/jsx-runtime");
3635
3990
  var getOptionKey = (option) => {
3636
3991
  return String(option.value);
3637
3992
  };
@@ -3687,13 +4042,13 @@ var buildNativeOptionsFromObjectOptions = (options) => {
3687
4042
  return options.map((option) => {
3688
4043
  const optionValue = getOptionKey(option);
3689
4044
  const optionText = getTextContent(option.label).trim() || optionValue;
3690
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("option", { value: optionValue, disabled: option.disabled, children: optionText }, `native-${optionValue}`);
4045
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("option", { value: optionValue, disabled: option.disabled, children: optionText }, `native-${optionValue}`);
3691
4046
  });
3692
4047
  };
3693
4048
  var getSelectObjectOptionKey = getOptionKey;
3694
4049
 
3695
4050
  // src/components/SelectAsync.tsx
3696
- var import_jsx_runtime14 = require("react/jsx-runtime");
4051
+ var import_jsx_runtime17 = require("react/jsx-runtime");
3697
4052
  var DEFAULT_LOAD_MORE_THRESHOLD = 24;
3698
4053
  var normalizeAsyncValue = (value, isMulti) => {
3699
4054
  if (value == null) {
@@ -3734,26 +4089,26 @@ function SelectAsync({
3734
4089
  useUiKitTheme();
3735
4090
  const isMultiSelect = Boolean(isMulti);
3736
4091
  const isControlled = value !== void 0;
3737
- const [internalSelectedOptions, setInternalSelectedOptions] = (0, import_react9.useState)(() => {
4092
+ const [internalSelectedOptions, setInternalSelectedOptions] = (0, import_react11.useState)(() => {
3738
4093
  return normalizeAsyncValue(defaultValue, isMultiSelect);
3739
4094
  });
3740
- const [remoteOptions, setRemoteOptions] = (0, import_react9.useState)(defaultOptions);
3741
- const [searchQuery, setSearchQuery] = (0, import_react9.useState)("");
3742
- const [nextPage, setNextPage] = (0, import_react9.useState)(1);
3743
- const [hasMore, setHasMore] = (0, import_react9.useState)(true);
3744
- const [isInitialLoading, setIsInitialLoading] = (0, import_react9.useState)(false);
3745
- const [isLoadingMore, setIsLoadingMore] = (0, import_react9.useState)(false);
3746
- const [loadError, setLoadError] = (0, import_react9.useState)(null);
4095
+ const [remoteOptions, setRemoteOptions] = (0, import_react11.useState)(defaultOptions);
4096
+ const [searchQuery, setSearchQuery] = (0, import_react11.useState)("");
4097
+ const [nextPage, setNextPage] = (0, import_react11.useState)(1);
4098
+ const [hasMore, setHasMore] = (0, import_react11.useState)(true);
4099
+ const [isInitialLoading, setIsInitialLoading] = (0, import_react11.useState)(false);
4100
+ const [isLoadingMore, setIsLoadingMore] = (0, import_react11.useState)(false);
4101
+ const [loadError, setLoadError] = (0, import_react11.useState)(null);
3747
4102
  const selectedOptions = isControlled ? normalizeAsyncValue(value, isMultiSelect) : internalSelectedOptions;
3748
- const optionLookupRef = (0, import_react9.useRef)(/* @__PURE__ */ new Map());
3749
- const loadOptionsRef = (0, import_react9.useRef)(loadOptions);
3750
- const remoteOptionsRef = (0, import_react9.useRef)(remoteOptions);
3751
- const cacheUniqsRef = (0, import_react9.useRef)(cacheUniqs);
3752
- const requestVersionRef = (0, import_react9.useRef)(0);
3753
- const activeControllerRef = (0, import_react9.useRef)(null);
4103
+ const optionLookupRef = (0, import_react11.useRef)(/* @__PURE__ */ new Map());
4104
+ const loadOptionsRef = (0, import_react11.useRef)(loadOptions);
4105
+ const remoteOptionsRef = (0, import_react11.useRef)(remoteOptions);
4106
+ const cacheUniqsRef = (0, import_react11.useRef)(cacheUniqs);
4107
+ const requestVersionRef = (0, import_react11.useRef)(0);
4108
+ const activeControllerRef = (0, import_react11.useRef)(null);
3754
4109
  loadOptionsRef.current = loadOptions;
3755
4110
  remoteOptionsRef.current = remoteOptions;
3756
- const mergedOptions = (0, import_react9.useMemo)(() => {
4111
+ const mergedOptions = (0, import_react11.useMemo)(() => {
3757
4112
  const baseOptions = dedupeSelectObjectOptions([
3758
4113
  ...fixedOptions,
3759
4114
  ...remoteOptions
@@ -3764,20 +4119,20 @@ function SelectAsync({
3764
4119
  });
3765
4120
  return [...baseOptions, ...missingSelectedOptions];
3766
4121
  }, [fixedOptions, remoteOptions, selectedOptions]);
3767
- (0, import_react9.useEffect)(() => {
4122
+ (0, import_react11.useEffect)(() => {
3768
4123
  const nextLookup = /* @__PURE__ */ new Map();
3769
4124
  mergedOptions.forEach((option) => {
3770
4125
  nextLookup.set(getSelectObjectOptionKey(option), option);
3771
4126
  });
3772
4127
  optionLookupRef.current = nextLookup;
3773
4128
  }, [mergedOptions]);
3774
- (0, import_react9.useEffect)(() => {
4129
+ (0, import_react11.useEffect)(() => {
3775
4130
  if (isControlled) {
3776
4131
  return;
3777
4132
  }
3778
4133
  setInternalSelectedOptions(normalizeAsyncValue(defaultValue, isMultiSelect));
3779
4134
  }, [defaultValue, isControlled, isMultiSelect]);
3780
- (0, import_react9.useEffect)(() => {
4135
+ (0, import_react11.useEffect)(() => {
3781
4136
  if (areUnknownArraysEqual(cacheUniqsRef.current, cacheUniqs)) {
3782
4137
  return;
3783
4138
  }
@@ -3788,7 +4143,7 @@ function SelectAsync({
3788
4143
  setHasMore(true);
3789
4144
  setLoadError(null);
3790
4145
  }, [cacheUniqs, defaultOptions]);
3791
- (0, import_react9.useEffect)(() => {
4146
+ (0, import_react11.useEffect)(() => {
3792
4147
  const timeoutId = window.setTimeout(() => {
3793
4148
  var _a2;
3794
4149
  requestVersionRef.current += 1;
@@ -3829,7 +4184,7 @@ function SelectAsync({
3829
4184
  window.clearTimeout(timeoutId);
3830
4185
  };
3831
4186
  }, [loadErrorMessage, searchDebounceMs, searchQuery, ...cacheUniqs]);
3832
- (0, import_react9.useEffect)(() => {
4187
+ (0, import_react11.useEffect)(() => {
3833
4188
  return () => {
3834
4189
  var _a2;
3835
4190
  (_a2 = activeControllerRef.current) == null ? void 0 : _a2.abort();
@@ -3886,15 +4241,15 @@ function SelectAsync({
3886
4241
  }
3887
4242
  onChange == null ? void 0 : onChange(nextValue);
3888
4243
  };
3889
- const menuFooter = isLoadingMore || hasMore ? /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
4244
+ const menuFooter = isLoadingMore || hasMore ? /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
3890
4245
  "div",
3891
4246
  {
3892
4247
  "aria-live": "polite",
3893
4248
  className: "flex items-center gap-3 text-xs leading-[1.4] text-[var(--theme-textLight)]",
3894
4249
  style: { justifyContent: hasMore ? "space-between" : "center" },
3895
4250
  children: [
3896
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { children: isLoadingMore ? loadingMoreMessage : hasMore ? loadMoreHintMessage : null }),
3897
- isLoadingMore ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
4251
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { children: isLoadingMore ? loadingMoreMessage : hasMore ? loadMoreHintMessage : null }),
4252
+ isLoadingMore ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
3898
4253
  "span",
3899
4254
  {
3900
4255
  "aria-hidden": "true",
@@ -3906,7 +4261,7 @@ function SelectAsync({
3906
4261
  ) : null;
3907
4262
  const resolvedEmptyMessage = loadError && remoteOptions.length === 0 ? loadError : emptyMessage;
3908
4263
  const resolvedValue = selectedOptions.map((option) => getSelectObjectOptionKey(option));
3909
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
4264
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
3910
4265
  SelectBase,
3911
4266
  {
3912
4267
  ...props,
@@ -3931,15 +4286,110 @@ function SelectAsync({
3931
4286
  );
3932
4287
  }
3933
4288
 
3934
- // src/components/Table.tsx
4289
+ // src/components/ResultState.tsx
3935
4290
  var import_react12 = require("react");
4291
+ var import_jsx_runtime18 = require("react/jsx-runtime");
4292
+ function ResultState({
4293
+ tone = "info",
4294
+ icon,
4295
+ title,
4296
+ description,
4297
+ action,
4298
+ className,
4299
+ style,
4300
+ ...rest
4301
+ }) {
4302
+ const theme = useUiKitTheme();
4303
+ const titleId = (0, import_react12.useId)();
4304
+ const descriptionId = (0, import_react12.useId)();
4305
+ const iconNode = icon === void 0 ? getDefaultFeedbackIcon(tone, 28) : icon;
4306
+ const containerToneStyle = getFeedbackContainerStyle(theme, tone, 0.08);
4307
+ const iconToneStyle = getFeedbackIconBadgeStyle(theme, tone, 0.14);
4308
+ const descriptionStyle = {
4309
+ maxWidth: "44ch",
4310
+ lineHeight: "1.6",
4311
+ color: "var(--theme-textLight)"
4312
+ };
4313
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
4314
+ "div",
4315
+ {
4316
+ ...rest,
4317
+ "aria-labelledby": titleId,
4318
+ "aria-describedby": description ? descriptionId : void 0,
4319
+ className: cx(
4320
+ UI_KIT_ROOT_CLASSNAME,
4321
+ "rounded-2xl border border-dashed text-[var(--theme-text)] text-center",
4322
+ className
4323
+ ),
4324
+ style: {
4325
+ ...containerToneStyle,
4326
+ width: "100%",
4327
+ display: "flex",
4328
+ flexDirection: "column",
4329
+ alignItems: "center",
4330
+ justifyContent: "center",
4331
+ gap: 16,
4332
+ padding: "32px 24px",
4333
+ ...style
4334
+ },
4335
+ children: [
4336
+ iconNode ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
4337
+ "div",
4338
+ {
4339
+ "aria-hidden": "true",
4340
+ className: UI_KIT_ROOT_CLASSNAME,
4341
+ style: {
4342
+ ...iconToneStyle,
4343
+ display: "inline-flex",
4344
+ alignItems: "center",
4345
+ justifyContent: "center",
4346
+ width: 64,
4347
+ height: 64,
4348
+ borderRadius: 20,
4349
+ flexShrink: 0
4350
+ },
4351
+ children: iconNode
4352
+ }
4353
+ ) : null,
4354
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
4355
+ "div",
4356
+ {
4357
+ className: UI_KIT_ROOT_CLASSNAME,
4358
+ style: {
4359
+ display: "flex",
4360
+ flexDirection: "column",
4361
+ alignItems: "center",
4362
+ gap: description ? 8 : 0
4363
+ },
4364
+ children: [
4365
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
4366
+ "h2",
4367
+ {
4368
+ id: titleId,
4369
+ className: cx(UI_KIT_ROOT_CLASSNAME, "font-bold text-2xl"),
4370
+ style: { color: containerToneStyle.borderColor, lineHeight: 1.2 },
4371
+ children: title
4372
+ }
4373
+ ),
4374
+ description ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { id: descriptionId, className: cx(UI_KIT_ROOT_CLASSNAME, "text-sm"), style: descriptionStyle, children: description }) : null
4375
+ ]
4376
+ }
4377
+ ),
4378
+ action ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: UI_KIT_ROOT_CLASSNAME, children: action }) : null
4379
+ ]
4380
+ }
4381
+ );
4382
+ }
4383
+
4384
+ // src/components/Table.tsx
4385
+ var import_react15 = require("react");
3936
4386
 
3937
4387
  // src/componentsBase/table/TableBase.tsx
3938
- var import_react11 = require("react");
4388
+ var import_react14 = require("react");
3939
4389
  var import_react_dom2 = require("react-dom");
3940
4390
 
3941
4391
  // src/componentsBase/table/utils.ts
3942
- var import_react10 = require("react");
4392
+ var import_react13 = require("react");
3943
4393
  var DEFAULT_COLLAPSE_BELOW = 768;
3944
4394
  var DEFAULT_MAX_INLINE_ACTIONS = 2;
3945
4395
  var DEFAULT_PAGE_SIZE = 10;
@@ -3982,7 +4432,7 @@ var getNodeText = (node) => {
3982
4432
  if (Array.isArray(node)) {
3983
4433
  return node.map((entry) => getNodeText(entry)).join(" ");
3984
4434
  }
3985
- if ((0, import_react10.isValidElement)(node)) {
4435
+ if ((0, import_react13.isValidElement)(node)) {
3986
4436
  const element = node;
3987
4437
  return getNodeText(element.props.children);
3988
4438
  }
@@ -3998,7 +4448,7 @@ var normalizeTableText = (value) => {
3998
4448
  if (Array.isArray(value)) {
3999
4449
  return value.map((entry) => normalizeTableText(entry)).join(" ");
4000
4450
  }
4001
- if ((0, import_react10.isValidElement)(value)) {
4451
+ if ((0, import_react13.isValidElement)(value)) {
4002
4452
  return getNodeText(value);
4003
4453
  }
4004
4454
  return "";
@@ -4319,10 +4769,10 @@ var downloadTableAsPdf = (matrix, fileBaseName, title, page, totalPages) => {
4319
4769
  };
4320
4770
 
4321
4771
  // src/componentsBase/table/TableBase.tsx
4322
- var import_jsx_runtime15 = require("react/jsx-runtime");
4772
+ var import_jsx_runtime19 = require("react/jsx-runtime");
4323
4773
  var OVERFLOW_MENU_WIDTH = 220;
4324
4774
  function SettingsIcon() {
4325
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
4775
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
4326
4776
  "svg",
4327
4777
  {
4328
4778
  width: "16",
@@ -4331,7 +4781,7 @@ function SettingsIcon() {
4331
4781
  fill: "none",
4332
4782
  "aria-hidden": "true",
4333
4783
  children: [
4334
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
4784
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
4335
4785
  "path",
4336
4786
  {
4337
4787
  d: "M12 15.2a3.2 3.2 0 1 0 0-6.4 3.2 3.2 0 0 0 0 6.4Z",
@@ -4339,7 +4789,7 @@ function SettingsIcon() {
4339
4789
  strokeWidth: "2"
4340
4790
  }
4341
4791
  ),
4342
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
4792
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
4343
4793
  "path",
4344
4794
  {
4345
4795
  d: `
@@ -4363,7 +4813,7 @@ function SettingsIcon() {
4363
4813
  );
4364
4814
  }
4365
4815
  function MoreActionsIcon() {
4366
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
4816
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
4367
4817
  "svg",
4368
4818
  {
4369
4819
  width: "16",
@@ -4372,16 +4822,16 @@ function MoreActionsIcon() {
4372
4822
  fill: "currentColor",
4373
4823
  "aria-hidden": "true",
4374
4824
  children: [
4375
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("circle", { cx: "5", cy: "12", r: "1.8" }),
4376
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("circle", { cx: "12", cy: "12", r: "1.8" }),
4377
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("circle", { cx: "19", cy: "12", r: "1.8" })
4825
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("circle", { cx: "5", cy: "12", r: "1.8" }),
4826
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("circle", { cx: "12", cy: "12", r: "1.8" }),
4827
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("circle", { cx: "19", cy: "12", r: "1.8" })
4378
4828
  ]
4379
4829
  }
4380
4830
  );
4381
4831
  }
4382
4832
  function ChevronIcon({ direction }) {
4383
4833
  const isLeft = direction === "left";
4384
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
4834
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
4385
4835
  "svg",
4386
4836
  {
4387
4837
  width: "14",
@@ -4389,7 +4839,7 @@ function ChevronIcon({ direction }) {
4389
4839
  viewBox: "0 0 24 24",
4390
4840
  fill: "none",
4391
4841
  "aria-hidden": "true",
4392
- children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
4842
+ children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
4393
4843
  "path",
4394
4844
  {
4395
4845
  d: isLeft ? "M15 6 9 12l6 6" : "m9 6 6 6-6 6",
@@ -4403,11 +4853,11 @@ function ChevronIcon({ direction }) {
4403
4853
  );
4404
4854
  }
4405
4855
  function OverflowMenu({ label, children }) {
4406
- const [isOpen, setIsOpen] = (0, import_react11.useState)(false);
4407
- const [menuPosition, setMenuPosition] = (0, import_react11.useState)(null);
4408
- const containerRef = (0, import_react11.useRef)(null);
4409
- const buttonRef = (0, import_react11.useRef)(null);
4410
- const menuRef = (0, import_react11.useRef)(null);
4856
+ const [isOpen, setIsOpen] = (0, import_react14.useState)(false);
4857
+ const [menuPosition, setMenuPosition] = (0, import_react14.useState)(null);
4858
+ const containerRef = (0, import_react14.useRef)(null);
4859
+ const buttonRef = (0, import_react14.useRef)(null);
4860
+ const menuRef = (0, import_react14.useRef)(null);
4411
4861
  const updateMenuPosition = () => {
4412
4862
  var _a;
4413
4863
  const triggerRect = (_a = buttonRef.current) == null ? void 0 : _a.getBoundingClientRect();
@@ -4427,7 +4877,7 @@ function OverflowMenu({ label, children }) {
4427
4877
  top: triggerRect.bottom - 20
4428
4878
  });
4429
4879
  };
4430
- (0, import_react11.useEffect)(() => {
4880
+ (0, import_react14.useEffect)(() => {
4431
4881
  if (!isOpen) {
4432
4882
  return;
4433
4883
  }
@@ -4449,8 +4899,8 @@ function OverflowMenu({ label, children }) {
4449
4899
  window.removeEventListener("scroll", updateMenuPosition, true);
4450
4900
  };
4451
4901
  }, [isOpen]);
4452
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { ref: containerRef, className: "relative", children: [
4453
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
4902
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { ref: containerRef, className: "relative", children: [
4903
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
4454
4904
  "button",
4455
4905
  {
4456
4906
  type: "button",
@@ -4458,7 +4908,8 @@ function OverflowMenu({ label, children }) {
4458
4908
  "aria-label": label,
4459
4909
  "aria-haspopup": "menu",
4460
4910
  "aria-expanded": isOpen,
4461
- onClick: () => {
4911
+ onClick: (event) => {
4912
+ event.stopPropagation();
4462
4913
  if (!isOpen) {
4463
4914
  updateMenuPosition();
4464
4915
  }
@@ -4469,11 +4920,11 @@ function OverflowMenu({ label, children }) {
4469
4920
  "cursor-pointer border-0 bg-transparent text-[var(--theme-text)]",
4470
4921
  "transition-colors hover:text-[var(--theme-primary)]"
4471
4922
  ].join(" "),
4472
- children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(MoreActionsIcon, {})
4923
+ children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(MoreActionsIcon, {})
4473
4924
  }
4474
4925
  ),
4475
4926
  isOpen && menuPosition && typeof document !== "undefined" ? (0, import_react_dom2.createPortal)(
4476
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
4927
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
4477
4928
  "div",
4478
4929
  {
4479
4930
  ref: menuRef,
@@ -4513,6 +4964,7 @@ function TableBase({
4513
4964
  desktopColumns,
4514
4965
  mobileColumns,
4515
4966
  getRowId: getCustomRowId,
4967
+ onRowClick,
4516
4968
  actions,
4517
4969
  stickyActionsColumn = true,
4518
4970
  maxInlineActions = DEFAULT_MAX_INLINE_ACTIONS,
@@ -4539,10 +4991,10 @@ function TableBase({
4539
4991
  onInternalPageSizeChange
4540
4992
  }) {
4541
4993
  useUiKitTheme();
4542
- const scrollRegionId = (0, import_react11.useId)().replace(/:/g, "");
4543
- const containerRef = (0, import_react11.useRef)(null);
4544
- const [containerWidth, setContainerWidth] = (0, import_react11.useState)(null);
4545
- const [isSettingsModalOpen, setIsSettingsModalOpen] = (0, import_react11.useState)(false);
4994
+ const scrollRegionId = (0, import_react14.useId)().replace(/:/g, "");
4995
+ const containerRef = (0, import_react14.useRef)(null);
4996
+ const [containerWidth, setContainerWidth] = (0, import_react14.useState)(null);
4997
+ const [isSettingsModalOpen, setIsSettingsModalOpen] = (0, import_react14.useState)(false);
4546
4998
  const resolvedLabels = mergeTableLabels({
4547
4999
  ...labels != null ? labels : {},
4548
5000
  ...translations != null ? translations : {}
@@ -4602,6 +5054,7 @@ function TableBase({
4602
5054
  ariaLabel,
4603
5055
  normalizedPage
4604
5056
  );
5057
+ const hasRowClick = Boolean(onRowClick);
4605
5058
  const shouldStickActionsColumn = Boolean(actions) && stickyActionsColumn;
4606
5059
  const getStickyActionsCellStyle = (backgroundColor, backgroundImage, isHeader = false) => ({
4607
5060
  position: "sticky",
@@ -4613,7 +5066,7 @@ function TableBase({
4613
5066
  boxShadow: "-10px 0 16px -14px var(--theme-shadow)",
4614
5067
  borderLeft: "1px solid var(--theme-secondary)"
4615
5068
  });
4616
- (0, import_react11.useEffect)(() => {
5069
+ (0, import_react14.useEffect)(() => {
4617
5070
  const element = containerRef.current;
4618
5071
  if (!element) {
4619
5072
  return;
@@ -4662,7 +5115,7 @@ function TableBase({
4662
5115
  const tone = (_a = action.tone) != null ? _a : "default";
4663
5116
  const iconOnly = appearance === "inline" && action.icon != null;
4664
5117
  const isMenuAction = appearance === "menu";
4665
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
5118
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
4666
5119
  "button",
4667
5120
  {
4668
5121
  type: "button",
@@ -4670,7 +5123,8 @@ function TableBase({
4670
5123
  disabled,
4671
5124
  title: action.label,
4672
5125
  "aria-label": action.label,
4673
- onClick: () => {
5126
+ onClick: (event) => {
5127
+ event.stopPropagation();
4674
5128
  if (disabled) {
4675
5129
  return;
4676
5130
  }
@@ -4687,7 +5141,7 @@ function TableBase({
4687
5141
  ),
4688
5142
  children: [
4689
5143
  action.icon,
4690
- appearance === "menu" || !iconOnly ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { children: action.label }) : null
5144
+ appearance === "menu" || !iconOnly ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { children: action.label }) : null
4691
5145
  ]
4692
5146
  },
4693
5147
  (_b = action.id) != null ? _b : `${action.label}-${rowIndex}`
@@ -4700,7 +5154,7 @@ function TableBase({
4700
5154
  }
4701
5155
  const inlineActions = resolvedActions.slice(0, visibleInlineActions);
4702
5156
  const overflowActions = resolvedActions.slice(visibleInlineActions);
4703
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
5157
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
4704
5158
  "div",
4705
5159
  {
4706
5160
  className: cx(
@@ -4713,7 +5167,7 @@ function TableBase({
4713
5167
  inlineActions.map(
4714
5168
  (action) => renderActionButton(action, item, rowIndex, "inline")
4715
5169
  ),
4716
- overflowActions.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(OverflowMenu, { label: resolvedLabels.actionsMenuLabel, children: overflowActions.map(
5170
+ overflowActions.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(OverflowMenu, { label: resolvedLabels.actionsMenuLabel, children: overflowActions.map(
4717
5171
  (action) => renderActionButton(action, item, rowIndex, "menu")
4718
5172
  ) }) : null
4719
5173
  ]
@@ -4724,7 +5178,7 @@ function TableBase({
4724
5178
  var _a;
4725
5179
  const content = resolveColumnContent(column, item, rowIndex);
4726
5180
  const align = (_a = column.align) != null ? _a : column.type === "actions" ? "right" : "left";
4727
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
5181
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
4728
5182
  "td",
4729
5183
  {
4730
5184
  colSpan: column.colSpan,
@@ -4737,14 +5191,14 @@ function TableBase({
4737
5191
  width: column.width,
4738
5192
  minWidth: column.minWidth
4739
5193
  },
4740
- children: hasRenderableContent(content) ? content : /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "text-[var(--theme-textLight)]", children: "-" })
5194
+ children: hasRenderableContent(content) ? content : /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "text-[var(--theme-textLight)]", children: "-" })
4741
5195
  },
4742
5196
  `${getColumnKey(column, columnIndex)}-${rowIndex}`
4743
5197
  );
4744
5198
  };
4745
5199
  const renderEmptyState = () => {
4746
5200
  const message = error ? error : loading ? resolvedLabels.loadingMessage : hasSearchValue ? resolvedLabels.noResultsMessage : resolvedLabels.emptyMessage;
4747
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
5201
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
4748
5202
  "div",
4749
5203
  {
4750
5204
  className: [
@@ -4753,13 +5207,13 @@ function TableBase({
4753
5207
  "p-6 text-center text-[var(--theme-text)] shadow-none"
4754
5208
  ].join(" "),
4755
5209
  children: [
4756
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("strong", { className: "text-base", children: message }),
4757
- error && onRetry ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Button, { variant: "secondary", onClick: onRetry, children: resolvedLabels.retryLabel }) : null
5210
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("strong", { className: "text-base", children: message }),
5211
+ error && onRetry ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Button, { variant: "secondary", onClick: onRetry, children: resolvedLabels.retryLabel }) : null
4758
5212
  ]
4759
5213
  }
4760
5214
  );
4761
5215
  };
4762
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
5216
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
4763
5217
  "div",
4764
5218
  {
4765
5219
  ref: containerRef,
@@ -4771,8 +5225,8 @@ function TableBase({
4771
5225
  ),
4772
5226
  style,
4773
5227
  children: [
4774
- shouldRenderToolbar ? /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "flex min-w-0 flex-wrap items-center justify-between gap-3", children: [
4775
- shouldRenderToolbarPrimaryGroup ? /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
5228
+ shouldRenderToolbar ? /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "flex min-w-0 flex-wrap items-center justify-between gap-3", children: [
5229
+ shouldRenderToolbarPrimaryGroup ? /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
4776
5230
  "div",
4777
5231
  {
4778
5232
  className: cx(
@@ -4785,7 +5239,7 @@ function TableBase({
4785
5239
  // to the Input would land on the inner <input>, which lives inside a
4786
5240
  // flex-column ControlFrame — there flex-basis becomes height and the
4787
5241
  // field grows absurdly tall.
4788
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "min-w-0 max-w-[360px] flex-[1_1_260px]", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
5242
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "min-w-0 max-w-[360px] flex-[1_1_260px]", children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
4789
5243
  Input,
4790
5244
  {
4791
5245
  type: "search",
@@ -4796,7 +5250,7 @@ function TableBase({
4796
5250
  }
4797
5251
  ) })
4798
5252
  ) : null,
4799
- showSettingsButton && !loading ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
5253
+ showSettingsButton && !loading ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
4800
5254
  Button,
4801
5255
  {
4802
5256
  variant: "secondary",
@@ -4804,13 +5258,13 @@ function TableBase({
4804
5258
  title: resolvedLabels.settingsButtonLabel,
4805
5259
  onClick: () => setIsSettingsModalOpen(true),
4806
5260
  className: "shrink-0",
4807
- children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(SettingsIcon, {})
5261
+ children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(SettingsIcon, {})
4808
5262
  }
4809
5263
  ) : null
4810
5264
  ]
4811
5265
  }
4812
5266
  ) : null,
4813
- shouldShowToolbarStatus ? /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
5267
+ shouldShowToolbarStatus ? /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
4814
5268
  "div",
4815
5269
  {
4816
5270
  className: cx(
@@ -4818,17 +5272,17 @@ function TableBase({
4818
5272
  shouldRenderToolbarPrimaryGroup ? "ml-auto" : ""
4819
5273
  ),
4820
5274
  children: [
4821
- loading ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "text-[13px] font-semibold text-[var(--theme-textLight)]", children: resolvedLabels.loadingMessage }) : null,
4822
- !loading && error && hasRows ? /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "inline-flex items-center gap-2.5", children: [
4823
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "text-[13px] font-semibold text-[var(--theme-negative)]", children: resolvedLabels.errorMessage }),
4824
- onRetry ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Button, { variant: "ghost", onClick: onRetry, children: resolvedLabels.retryLabel }) : null
5275
+ loading ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "text-[13px] font-semibold text-[var(--theme-textLight)]", children: resolvedLabels.loadingMessage }) : null,
5276
+ !loading && error && hasRows ? /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "inline-flex items-center gap-2.5", children: [
5277
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "text-[13px] font-semibold text-[var(--theme-negative)]", children: resolvedLabels.errorMessage }),
5278
+ onRetry ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Button, { variant: "ghost", onClick: onRetry, children: resolvedLabels.retryLabel }) : null
4825
5279
  ] }) : null
4826
5280
  ]
4827
5281
  }
4828
5282
  ) : null
4829
5283
  ] }) : null,
4830
5284
  !hasRows && (!loading || error) ? renderEmptyState() : null,
4831
- hasRows ? isCollapsed ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
5285
+ hasRows ? isCollapsed ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
4832
5286
  "div",
4833
5287
  {
4834
5288
  role: "list",
@@ -4836,7 +5290,7 @@ function TableBase({
4836
5290
  className: "flex min-w-0 flex-col gap-3.5",
4837
5291
  children: items.map((item, rowIndex) => {
4838
5292
  const rowActions = renderActions(item, rowIndex);
4839
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
5293
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
4840
5294
  "article",
4841
5295
  {
4842
5296
  role: "listitem",
@@ -4844,10 +5298,12 @@ function TableBase({
4844
5298
  "flex min-w-0 flex-col rounded-[20px]",
4845
5299
  rowActions ? "gap-1" : "gap-2.5",
4846
5300
  "border-[3px] border-solid border-[var(--theme-background)] bg-[var(--theme-surface)]",
4847
- "px-3.5 py-3 shadow-none"
5301
+ "px-3.5 py-3 shadow-none",
5302
+ hasRowClick ? "cursor-pointer" : ""
4848
5303
  ].join(" "),
5304
+ onClick: onRowClick ? () => onRowClick(item, rowIndex) : void 0,
4849
5305
  children: [
4850
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
5306
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
4851
5307
  "div",
4852
5308
  {
4853
5309
  className: cx(
@@ -4866,7 +5322,7 @@ function TableBase({
4866
5322
  1,
4867
5323
  Math.min((_b = column.colSpan) != null ? _b : 1, mobileGridColumnCount)
4868
5324
  );
4869
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
5325
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
4870
5326
  "div",
4871
5327
  {
4872
5328
  className: cx(
@@ -4874,7 +5330,7 @@ function TableBase({
4874
5330
  span === 2 ? "col-span-2" : "col-span-1"
4875
5331
  ),
4876
5332
  children: [
4877
- !column.hideLabel && column.label ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
5333
+ !column.hideLabel && column.label ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
4878
5334
  "span",
4879
5335
  {
4880
5336
  className: [
@@ -4886,14 +5342,14 @@ function TableBase({
4886
5342
  children: column.label
4887
5343
  }
4888
5344
  ) : null,
4889
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
5345
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
4890
5346
  "div",
4891
5347
  {
4892
5348
  className: cx(
4893
5349
  "min-w-0 max-w-full",
4894
5350
  mobileGridColumnCount === 2 ? "" : "flex-1"
4895
5351
  ),
4896
- children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
5352
+ children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
4897
5353
  "div",
4898
5354
  {
4899
5355
  className: cx(
@@ -4901,7 +5357,7 @@ function TableBase({
4901
5357
  "text-[var(--theme-text)] [overflow-wrap:anywhere]",
4902
5358
  getAlignClassName(align)
4903
5359
  ),
4904
- children: hasRenderableContent(content) ? content : /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "text-[var(--theme-textLight)]", children: "-" })
5360
+ children: hasRenderableContent(content) ? content : /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "text-[var(--theme-textLight)]", children: "-" })
4905
5361
  }
4906
5362
  )
4907
5363
  }
@@ -4913,15 +5369,15 @@ function TableBase({
4913
5369
  })
4914
5370
  }
4915
5371
  ),
4916
- rowActions ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "flex justify-end pt-1", children: rowActions }) : null
5372
+ rowActions ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "flex justify-end pt-1", children: rowActions }) : null
4917
5373
  ]
4918
5374
  },
4919
5375
  getRowId(item, rowIndex, getCustomRowId)
4920
5376
  );
4921
5377
  })
4922
5378
  }
4923
- ) : /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_jsx_runtime15.Fragment, { children: [
4924
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("style", { children: `
5379
+ ) : /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_jsx_runtime19.Fragment, { children: [
5380
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("style", { children: `
4925
5381
  #${scrollRegionId} {
4926
5382
  scrollbar-width: thin;
4927
5383
  scrollbar-color: var(--theme-secondary) transparent;
@@ -4948,7 +5404,7 @@ function TableBase({
4948
5404
  background-clip: padding-box;
4949
5405
  }
4950
5406
  ` }),
4951
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
5407
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
4952
5408
  "div",
4953
5409
  {
4954
5410
  id: scrollRegionId,
@@ -4959,12 +5415,12 @@ function TableBase({
4959
5415
  "rounded-[20px] border-2 border-solid border-[var(--theme-background)]",
4960
5416
  "bg-[var(--theme-surface)] shadow-none"
4961
5417
  ),
4962
- children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("table", { className: "w-max min-w-full max-w-none border-separate border-spacing-0", children: [
4963
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("thead", { children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("tr", { children: [
5418
+ children: /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("table", { className: "w-max min-w-full max-w-none border-separate border-spacing-0", children: [
5419
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("thead", { children: /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("tr", { children: [
4964
5420
  desktopColumns.map((column, columnIndex) => {
4965
5421
  var _a, _b;
4966
5422
  const align = (_a = column.align) != null ? _a : column.type === "actions" ? "right" : "left";
4967
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
5423
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
4968
5424
  "th",
4969
5425
  {
4970
5426
  colSpan: (_b = column.headerColSpan) != null ? _b : column.colSpan,
@@ -4984,7 +5440,7 @@ function TableBase({
4984
5440
  getColumnKey(column, columnIndex)
4985
5441
  );
4986
5442
  }),
4987
- actions ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
5443
+ actions ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
4988
5444
  "th",
4989
5445
  {
4990
5446
  scope: "col",
@@ -5005,14 +5461,18 @@ function TableBase({
5005
5461
  }
5006
5462
  ) : null
5007
5463
  ] }) }),
5008
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("tbody", { children: items.map((item, rowIndex) => {
5464
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("tbody", { children: items.map((item, rowIndex) => {
5009
5465
  const rowActions = renderActions(item, rowIndex);
5010
5466
  const isAlternateRow = rowIndex % 2 !== 0;
5011
5467
  const stickyRowBackgroundImage = rowIndex % 2 === 0 ? void 0 : "linear-gradient(var(--theme-background), var(--theme-background))";
5012
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
5468
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
5013
5469
  "tr",
5014
5470
  {
5015
- className: isAlternateRow ? "bg-[var(--theme-background)]" : "bg-[var(--theme-surface)]",
5471
+ className: [
5472
+ isAlternateRow ? "bg-[var(--theme-background)]" : "bg-[var(--theme-surface)]",
5473
+ hasRowClick ? "cursor-pointer" : ""
5474
+ ].join(" "),
5475
+ onClick: onRowClick ? () => onRowClick(item, rowIndex) : void 0,
5016
5476
  children: [
5017
5477
  desktopColumns.map((column, columnIndex) => {
5018
5478
  return renderDesktopCell(
@@ -5022,7 +5482,7 @@ function TableBase({
5022
5482
  columnIndex
5023
5483
  );
5024
5484
  }),
5025
- actions ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
5485
+ actions ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
5026
5486
  "td",
5027
5487
  {
5028
5488
  className: cx(
@@ -5048,9 +5508,9 @@ function TableBase({
5048
5508
  }
5049
5509
  )
5050
5510
  ] }) : null,
5051
- hasRows && shouldRenderFooter ? /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "-mt-2 flex flex-wrap items-center justify-between gap-3", children: [
5052
- shouldShowPaginationControls ? /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "flex flex-wrap items-center gap-2", children: [
5053
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
5511
+ hasRows && shouldRenderFooter ? /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "-mt-2 flex flex-wrap items-center justify-between gap-3", children: [
5512
+ shouldShowPaginationControls ? /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "flex flex-wrap items-center gap-2", children: [
5513
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
5054
5514
  Button,
5055
5515
  {
5056
5516
  variant: "secondary",
@@ -5061,7 +5521,7 @@ function TableBase({
5061
5521
  children: 1
5062
5522
  }
5063
5523
  ),
5064
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
5524
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
5065
5525
  Button,
5066
5526
  {
5067
5527
  variant: "secondary",
@@ -5069,10 +5529,10 @@ function TableBase({
5069
5529
  disabled: !canGoToPreviousPage,
5070
5530
  "aria-label": resolvedLabels.previousPageLabel,
5071
5531
  style: paginationButtonStyle,
5072
- children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ChevronIcon, { direction: "left" })
5532
+ children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(ChevronIcon, { direction: "left" })
5073
5533
  }
5074
5534
  ),
5075
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
5535
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
5076
5536
  Button,
5077
5537
  {
5078
5538
  variant: "secondary",
@@ -5082,7 +5542,7 @@ function TableBase({
5082
5542
  children: normalizedPage
5083
5543
  }
5084
5544
  ),
5085
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
5545
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
5086
5546
  Button,
5087
5547
  {
5088
5548
  variant: "secondary",
@@ -5090,10 +5550,10 @@ function TableBase({
5090
5550
  disabled: !canGoToNextPage,
5091
5551
  "aria-label": resolvedLabels.nextPageLabel,
5092
5552
  style: paginationButtonStyle,
5093
- children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ChevronIcon, { direction: "right" })
5553
+ children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(ChevronIcon, { direction: "right" })
5094
5554
  }
5095
5555
  ),
5096
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
5556
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
5097
5557
  Button,
5098
5558
  {
5099
5559
  variant: "secondary",
@@ -5105,16 +5565,16 @@ function TableBase({
5105
5565
  }
5106
5566
  )
5107
5567
  ] }) : null,
5108
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
5568
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
5109
5569
  "div",
5110
5570
  {
5111
5571
  className: cx(
5112
5572
  "flex items-center gap-2.5 text-[13px] text-[var(--theme-textLight)]",
5113
5573
  shouldShowRowsPerPageControl ? "ml-auto" : ""
5114
5574
  ),
5115
- children: shouldShowRowsPerPageControl ? /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_jsx_runtime15.Fragment, { children: [
5116
- resolvedLabels.rowsPerPageLabel ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { children: resolvedLabels.rowsPerPageLabel }) : null,
5117
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "w-[72px]", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
5575
+ children: shouldShowRowsPerPageControl ? /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_jsx_runtime19.Fragment, { children: [
5576
+ resolvedLabels.rowsPerPageLabel ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { children: resolvedLabels.rowsPerPageLabel }) : null,
5577
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "w-[72px]", children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
5118
5578
  Select,
5119
5579
  {
5120
5580
  value: String(pageSize),
@@ -5133,7 +5593,7 @@ function TableBase({
5133
5593
  }
5134
5594
  )
5135
5595
  ] }) : null,
5136
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
5596
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
5137
5597
  Modal,
5138
5598
  {
5139
5599
  isOpen: isSettingsModalOpen,
@@ -5150,9 +5610,9 @@ function TableBase({
5150
5610
  paddingTop: 8
5151
5611
  },
5152
5612
  children: [
5153
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("section", { className: "grid gap-3", children: [
5154
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("strong", { className: "text-sm text-[var(--theme-text)]", children: resolvedLabels.tableInfoSectionTitle }),
5155
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
5613
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("section", { className: "grid gap-3", children: [
5614
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("strong", { className: "text-sm text-[var(--theme-text)]", children: resolvedLabels.tableInfoSectionTitle }),
5615
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
5156
5616
  "div",
5157
5617
  {
5158
5618
  className: cx(
@@ -5160,31 +5620,31 @@ function TableBase({
5160
5620
  "border-2 border-[var(--theme-background)] bg-[var(--theme-surface)]"
5161
5621
  ),
5162
5622
  children: [
5163
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "grid gap-1", children: [
5164
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "text-xs text-[var(--theme-textLight)]", children: resolvedLabels.totalItemsInfoLabel }),
5165
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("strong", { className: "font-medium text-[var(--theme-text)]", children: totalItemCount })
5623
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "grid gap-1", children: [
5624
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "text-xs text-[var(--theme-textLight)]", children: resolvedLabels.totalItemsInfoLabel }),
5625
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("strong", { className: "font-medium text-[var(--theme-text)]", children: totalItemCount })
5166
5626
  ] }),
5167
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "grid gap-1", children: [
5168
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "text-xs text-[var(--theme-textLight)]", children: resolvedLabels.totalPagesInfoLabel }),
5169
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("strong", { className: "font-medium text-[var(--theme-text)]", children: totalPages })
5627
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "grid gap-1", children: [
5628
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "text-xs text-[var(--theme-textLight)]", children: resolvedLabels.totalPagesInfoLabel }),
5629
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("strong", { className: "font-medium text-[var(--theme-text)]", children: totalPages })
5170
5630
  ] }),
5171
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "grid gap-1", children: [
5172
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "text-xs text-[var(--theme-textLight)]", children: resolvedLabels.currentPageItemsInfoLabel }),
5173
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("strong", { className: "font-medium text-[var(--theme-text)]", children: currentPageItemCount })
5631
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "grid gap-1", children: [
5632
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "text-xs text-[var(--theme-textLight)]", children: resolvedLabels.currentPageItemsInfoLabel }),
5633
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("strong", { className: "font-medium text-[var(--theme-text)]", children: currentPageItemCount })
5174
5634
  ] }),
5175
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "grid gap-1", children: [
5176
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "text-xs text-[var(--theme-textLight)]", children: resolvedLabels.currentPageInfoLabel }),
5177
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("strong", { className: "font-medium text-[var(--theme-text)]", children: normalizedPage })
5635
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "grid gap-1", children: [
5636
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "text-xs text-[var(--theme-textLight)]", children: resolvedLabels.currentPageInfoLabel }),
5637
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("strong", { className: "font-medium text-[var(--theme-text)]", children: normalizedPage })
5178
5638
  ] })
5179
5639
  ]
5180
5640
  }
5181
5641
  )
5182
5642
  ] }),
5183
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "py-[18px]", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Separator, {}) }),
5184
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("section", { className: "grid gap-3", children: [
5185
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("strong", { className: "text-sm text-[var(--theme-text)]", children: resolvedLabels.downloadSectionTitle }),
5186
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "flex flex-wrap gap-2.5", children: [
5187
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
5643
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "py-[18px]", children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Separator, {}) }),
5644
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("section", { className: "grid gap-3", children: [
5645
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("strong", { className: "text-sm text-[var(--theme-text)]", children: resolvedLabels.downloadSectionTitle }),
5646
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "flex flex-wrap gap-2.5", children: [
5647
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
5188
5648
  Button,
5189
5649
  {
5190
5650
  variant: "secondary",
@@ -5193,7 +5653,7 @@ function TableBase({
5193
5653
  children: resolvedLabels.downloadCsvLabel
5194
5654
  }
5195
5655
  ),
5196
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
5656
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
5197
5657
  Button,
5198
5658
  {
5199
5659
  variant: "secondary",
@@ -5202,7 +5662,7 @@ function TableBase({
5202
5662
  children: resolvedLabels.downloadXlsLabel
5203
5663
  }
5204
5664
  ),
5205
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
5665
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
5206
5666
  Button,
5207
5667
  {
5208
5668
  variant: "secondary",
@@ -5222,7 +5682,7 @@ function TableBase({
5222
5682
  }
5223
5683
 
5224
5684
  // src/components/Table.tsx
5225
- var import_jsx_runtime16 = require("react/jsx-runtime");
5685
+ var import_jsx_runtime20 = require("react/jsx-runtime");
5226
5686
  function Table({
5227
5687
  items,
5228
5688
  desktopColumns,
@@ -5238,13 +5698,13 @@ function Table({
5238
5698
  ...props
5239
5699
  }) {
5240
5700
  var _a;
5241
- const initialPageSizeOptions = (0, import_react12.useMemo)(() => {
5701
+ const initialPageSizeOptions = (0, import_react15.useMemo)(() => {
5242
5702
  return sanitizePageSizeOptions(pageSizeOptions, defaultPageSize);
5243
5703
  }, [defaultPageSize, pageSizeOptions]);
5244
- const [searchValue, setSearchValue] = (0, import_react12.useState)(defaultSearchValue);
5245
- const [page, setPage] = (0, import_react12.useState)(Math.max(1, Math.floor(defaultPage)));
5246
- const [pageSize, setPageSize] = (0, import_react12.useState)((_a = initialPageSizeOptions[0]) != null ? _a : DEFAULT_PAGE_SIZE);
5247
- (0, import_react12.useEffect)(() => {
5704
+ const [searchValue, setSearchValue] = (0, import_react15.useState)(defaultSearchValue);
5705
+ const [page, setPage] = (0, import_react15.useState)(Math.max(1, Math.floor(defaultPage)));
5706
+ const [pageSize, setPageSize] = (0, import_react15.useState)((_a = initialPageSizeOptions[0]) != null ? _a : DEFAULT_PAGE_SIZE);
5707
+ (0, import_react15.useEffect)(() => {
5248
5708
  var _a2;
5249
5709
  if (initialPageSizeOptions.includes(pageSize)) {
5250
5710
  return;
@@ -5252,7 +5712,7 @@ function Table({
5252
5712
  const nextPageSize = (_a2 = initialPageSizeOptions[0]) != null ? _a2 : DEFAULT_PAGE_SIZE;
5253
5713
  setPageSize(nextPageSize);
5254
5714
  }, [initialPageSizeOptions, pageSize]);
5255
- const filteredItems = (0, import_react12.useMemo)(() => {
5715
+ const filteredItems = (0, import_react15.useMemo)(() => {
5256
5716
  if (!searchable) {
5257
5717
  return items;
5258
5718
  }
@@ -5270,18 +5730,18 @@ function Table({
5270
5730
  const totalItems = filteredItems.length;
5271
5731
  const totalPages = Math.max(1, Math.ceil(totalItems / pageSize));
5272
5732
  const normalizedPage = clampPage(page, totalPages);
5273
- (0, import_react12.useEffect)(() => {
5733
+ (0, import_react15.useEffect)(() => {
5274
5734
  if (normalizedPage === page) {
5275
5735
  return;
5276
5736
  }
5277
5737
  setPage(normalizedPage);
5278
5738
  onPageChange == null ? void 0 : onPageChange(normalizedPage);
5279
5739
  }, [normalizedPage, onPageChange, page]);
5280
- const pageItems = (0, import_react12.useMemo)(() => {
5740
+ const pageItems = (0, import_react15.useMemo)(() => {
5281
5741
  const startIndex = (normalizedPage - 1) * pageSize;
5282
5742
  return filteredItems.slice(startIndex, startIndex + pageSize);
5283
5743
  }, [filteredItems, normalizedPage, pageSize]);
5284
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
5744
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
5285
5745
  TableBase,
5286
5746
  {
5287
5747
  ...props,
@@ -5317,8 +5777,8 @@ function Table({
5317
5777
  }
5318
5778
 
5319
5779
  // src/components/TableAsync.tsx
5320
- var import_react13 = require("react");
5321
- var import_jsx_runtime17 = require("react/jsx-runtime");
5780
+ var import_react16 = require("react");
5781
+ var import_jsx_runtime21 = require("react/jsx-runtime");
5322
5782
  var areUnknownArraysEqual2 = (left, right) => {
5323
5783
  if (left.length !== right.length) {
5324
5784
  return false;
@@ -5343,25 +5803,25 @@ function TableAsync({
5343
5803
  ...props
5344
5804
  }) {
5345
5805
  var _a;
5346
- const initialPageSizeOptions = (0, import_react13.useMemo)(() => {
5806
+ const initialPageSizeOptions = (0, import_react16.useMemo)(() => {
5347
5807
  return sanitizePageSizeOptions(pageSizeOptions, defaultPageSize);
5348
5808
  }, [defaultPageSize, pageSizeOptions]);
5349
- const [searchValue, setSearchValue] = (0, import_react13.useState)(defaultSearchValue);
5350
- const [debouncedSearchValue, setDebouncedSearchValue] = (0, import_react13.useState)(defaultSearchValue);
5351
- const [page, setPage] = (0, import_react13.useState)(Math.max(1, Math.floor(defaultPage)));
5352
- const [pageSize, setPageSize] = (0, import_react13.useState)((_a = initialPageSizeOptions[0]) != null ? _a : DEFAULT_PAGE_SIZE);
5353
- const [items, setItems] = (0, import_react13.useState)([]);
5354
- const [totalPages, setTotalPages] = (0, import_react13.useState)(1);
5355
- const [totalItems, setTotalItems] = (0, import_react13.useState)(void 0);
5356
- const [loading, setLoading] = (0, import_react13.useState)(false);
5357
- const [error, setError] = (0, import_react13.useState)(null);
5358
- const [reloadKey, setReloadKey] = (0, import_react13.useState)(0);
5359
- const loadItemsRef = (0, import_react13.useRef)(loadItems);
5360
- const cacheUniqsRef = (0, import_react13.useRef)(cacheUniqs);
5361
- const activeControllerRef = (0, import_react13.useRef)(null);
5362
- const requestVersionRef = (0, import_react13.useRef)(0);
5809
+ const [searchValue, setSearchValue] = (0, import_react16.useState)(defaultSearchValue);
5810
+ const [debouncedSearchValue, setDebouncedSearchValue] = (0, import_react16.useState)(defaultSearchValue);
5811
+ const [page, setPage] = (0, import_react16.useState)(Math.max(1, Math.floor(defaultPage)));
5812
+ const [pageSize, setPageSize] = (0, import_react16.useState)((_a = initialPageSizeOptions[0]) != null ? _a : DEFAULT_PAGE_SIZE);
5813
+ const [items, setItems] = (0, import_react16.useState)([]);
5814
+ const [totalPages, setTotalPages] = (0, import_react16.useState)(1);
5815
+ const [totalItems, setTotalItems] = (0, import_react16.useState)(void 0);
5816
+ const [loading, setLoading] = (0, import_react16.useState)(false);
5817
+ const [error, setError] = (0, import_react16.useState)(null);
5818
+ const [reloadKey, setReloadKey] = (0, import_react16.useState)(0);
5819
+ const loadItemsRef = (0, import_react16.useRef)(loadItems);
5820
+ const cacheUniqsRef = (0, import_react16.useRef)(cacheUniqs);
5821
+ const activeControllerRef = (0, import_react16.useRef)(null);
5822
+ const requestVersionRef = (0, import_react16.useRef)(0);
5363
5823
  loadItemsRef.current = loadItems;
5364
- (0, import_react13.useEffect)(() => {
5824
+ (0, import_react16.useEffect)(() => {
5365
5825
  var _a2;
5366
5826
  if (initialPageSizeOptions.includes(pageSize)) {
5367
5827
  return;
@@ -5369,7 +5829,7 @@ function TableAsync({
5369
5829
  const nextPageSize = (_a2 = initialPageSizeOptions[0]) != null ? _a2 : DEFAULT_PAGE_SIZE;
5370
5830
  setPageSize(nextPageSize);
5371
5831
  }, [initialPageSizeOptions, pageSize]);
5372
- (0, import_react13.useEffect)(() => {
5832
+ (0, import_react16.useEffect)(() => {
5373
5833
  const timeoutId = window.setTimeout(() => {
5374
5834
  setDebouncedSearchValue(searchValue);
5375
5835
  }, searchDebounceMs);
@@ -5377,7 +5837,7 @@ function TableAsync({
5377
5837
  window.clearTimeout(timeoutId);
5378
5838
  };
5379
5839
  }, [searchDebounceMs, searchValue]);
5380
- (0, import_react13.useEffect)(() => {
5840
+ (0, import_react16.useEffect)(() => {
5381
5841
  if (areUnknownArraysEqual2(cacheUniqsRef.current, cacheUniqs)) {
5382
5842
  return;
5383
5843
  }
@@ -5385,7 +5845,7 @@ function TableAsync({
5385
5845
  setPage(1);
5386
5846
  setReloadKey((currentValue) => currentValue + 1);
5387
5847
  }, [cacheUniqs]);
5388
- (0, import_react13.useEffect)(() => {
5848
+ (0, import_react16.useEffect)(() => {
5389
5849
  var _a2;
5390
5850
  requestVersionRef.current += 1;
5391
5851
  const currentRequestVersion = requestVersionRef.current;
@@ -5423,21 +5883,21 @@ function TableAsync({
5423
5883
  setLoading(false);
5424
5884
  });
5425
5885
  }, [debouncedSearchValue, keepPreviousData, page, pageSize, reloadKey, searchable, ...cacheUniqs]);
5426
- (0, import_react13.useEffect)(() => {
5886
+ (0, import_react16.useEffect)(() => {
5427
5887
  return () => {
5428
5888
  var _a2;
5429
5889
  (_a2 = activeControllerRef.current) == null ? void 0 : _a2.abort();
5430
5890
  };
5431
5891
  }, []);
5432
5892
  const normalizedPage = clampPage(page, totalPages);
5433
- (0, import_react13.useEffect)(() => {
5893
+ (0, import_react16.useEffect)(() => {
5434
5894
  if (normalizedPage === page) {
5435
5895
  return;
5436
5896
  }
5437
5897
  setPage(normalizedPage);
5438
5898
  onPageChange == null ? void 0 : onPageChange(normalizedPage);
5439
5899
  }, [normalizedPage, onPageChange, page]);
5440
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
5900
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
5441
5901
  TableBase,
5442
5902
  {
5443
5903
  ...props,
@@ -5476,7 +5936,7 @@ function TableAsync({
5476
5936
  }
5477
5937
 
5478
5938
  // src/components/Textarea.tsx
5479
- var import_jsx_runtime18 = require("react/jsx-runtime");
5939
+ var import_jsx_runtime22 = require("react/jsx-runtime");
5480
5940
  function Textarea({
5481
5941
  label,
5482
5942
  hint,
@@ -5493,7 +5953,7 @@ function Textarea({
5493
5953
  const resolvedPlaceholder = placeholder != null ? placeholder : " ";
5494
5954
  const placeholderClass = floatingPlaceholder ? "placeholder-transparent" : "placeholder-[var(--theme-textLight)]";
5495
5955
  const isPopulated = rest.value !== void 0 && rest.value !== "" && rest.value !== null;
5496
- const textarea = /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
5956
+ const textarea = /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
5497
5957
  "textarea",
5498
5958
  {
5499
5959
  ...rest,
@@ -5518,7 +5978,7 @@ function Textarea({
5518
5978
  }
5519
5979
  }
5520
5980
  );
5521
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
5981
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
5522
5982
  ControlFrame,
5523
5983
  {
5524
5984
  label,
@@ -5539,15 +5999,18 @@ function Textarea({
5539
5999
  injectUiKitFonts();
5540
6000
  // Annotate the CommonJS export names for ESM import in node:
5541
6001
  0 && (module.exports = {
6002
+ Alert,
5542
6003
  Button,
5543
6004
  Card,
5544
6005
  CardSmall,
5545
6006
  Checkbox,
5546
6007
  ComposableModal,
5547
6008
  DatePicker,
6009
+ IconButton,
5548
6010
  Input,
5549
6011
  Loading,
5550
6012
  Modal,
6013
+ ResultState,
5551
6014
  Select,
5552
6015
  SelectAsync,
5553
6016
  Separator,