smartsell-ui-kit 0.1.1 → 0.1.3

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
@@ -39,12 +39,116 @@ __export(src_exports, {
39
39
  });
40
40
  module.exports = __toCommonJS(src_exports);
41
41
 
42
- // src/components/Button.tsx
43
- var import_react2 = require("react");
42
+ // #style-inject:#style-inject
43
+ function styleInject(css, { insertAt } = {}) {
44
+ if (!css || typeof document === "undefined") return;
45
+ const head = document.head || document.getElementsByTagName("head")[0];
46
+ const style = document.createElement("style");
47
+ style.type = "text/css";
48
+ if (insertAt === "top") {
49
+ if (head.firstChild) {
50
+ head.insertBefore(style, head.firstChild);
51
+ } else {
52
+ head.appendChild(style);
53
+ }
54
+ } else {
55
+ head.appendChild(style);
56
+ }
57
+ if (style.styleSheet) {
58
+ style.styleSheet.cssText = css;
59
+ } else {
60
+ style.appendChild(document.createTextNode(css));
61
+ }
62
+ }
63
+
64
+ // src/styles/ui-kit.css
65
+ styleInject('.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.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.right-0 {\n right: 0px;\n}\n.top-1\\/2 {\n top: 50%;\n}\n.z-30 {\n z-index: 30;\n}\n.z-\\[70\\] {\n z-index: 70;\n}\n.m-0 {\n margin: 0px;\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.mr-1 {\n margin-right: 0.25rem;\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-\\[38px\\] {\n height: 38px;\n}\n.h-\\[42px\\] {\n height: 42px;\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.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-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.min-w-0 {\n min-width: 0px;\n}\n.min-w-full {\n min-width: 100%;\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.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.-translate-y-1\\/2 {\n --tw-translate-y: -50%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.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-default {\n cursor: default;\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.flex-col {\n flex-direction: column;\n}\n.flex-wrap {\n flex-wrap: wrap;\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.rounded-2xl {\n border-radius: 1rem;\n}\n.rounded-\\[0\\.4rem\\] {\n border-radius: 0.4rem;\n}\n.rounded-\\[11px\\] {\n border-radius: 11px;\n}\n.rounded-\\[14px\\] {\n border-radius: 14px;\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-full {\n border-radius: 9999px;\n}\n.rounded-none {\n border-radius: 0px;\n}\n.rounded-xl {\n border-radius: 0.75rem;\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-b {\n border-bottom-width: 1px;\n}\n.border-t {\n border-top-width: 1px;\n}\n.border-solid {\n border-style: solid;\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-\\[var\\(--ui-kit-accent\\)\\] {\n border-color: var(--ui-kit-accent);\n}\n.border-\\[var\\(--ui-kit-modal-primary\\)\\] {\n border-color: var(--ui-kit-modal-primary);\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-primary\\)\\] {\n background-color: var(--theme-primary);\n}\n.bg-\\[var\\(--theme-surface\\)\\] {\n background-color: var(--theme-surface);\n}\n.bg-\\[var\\(--theme-text\\)\\] {\n background-color: var(--theme-text);\n}\n.bg-\\[var\\(--ui-kit-accent\\)\\] {\n background-color: var(--ui-kit-accent);\n}\n.bg-\\[var\\(--ui-kit-modal-busy-overlay\\)\\] {\n background-color: var(--ui-kit-modal-busy-overlay);\n}\n.bg-\\[var\\(--ui-kit-modal-primary\\)\\] {\n background-color: var(--ui-kit-modal-primary);\n}\n.bg-\\[var\\(--ui-kit-select-option-hover-bg\\)\\] {\n background-color: var(--ui-kit-select-option-hover-bg);\n}\n.bg-\\[var\\(--ui-kit-select-option-selected-bg\\)\\] {\n background-color: var(--ui-kit-select-option-selected-bg);\n}\n.bg-\\[var\\(--ui-kit-surface-raised\\)\\] {\n background-color: var(--ui-kit-surface-raised);\n}\n.bg-transparent {\n background-color: transparent;\n}\n.bg-\\[linear-gradient\\(180deg\\,var\\(--ui-kit-modal-surface-raised\\)\\,var\\(--ui-kit-modal-surface\\)\\)\\] {\n background-image:\n linear-gradient(\n 180deg,\n var(--ui-kit-modal-surface-raised),\n var(--ui-kit-modal-surface));\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-6 {\n padding: 1.5rem;\n}\n.p-\\[18px\\] {\n padding: 18px;\n}\n.px-1 {\n padding-left: 0.25rem;\n padding-right: 0.25rem;\n}\n.px-2 {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n}\n.px-3 {\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n}\n.px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n.px-5 {\n padding-left: 1.25rem;\n padding-right: 1.25rem;\n}\n.px-\\[1\\.15rem\\] {\n padding-left: 1.15rem;\n padding-right: 1.15rem;\n}\n.px-\\[10px\\] {\n padding-left: 10px;\n padding-right: 10px;\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.px-\\[14px\\] {\n padding-left: 14px;\n padding-right: 14px;\n}\n.px-\\[18px\\] {\n padding-left: 18px;\n padding-right: 18px;\n}\n.py-2 {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n.py-3 {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n}\n.py-\\[0\\.9rem\\] {\n padding-top: 0.9rem;\n padding-bottom: 0.9rem;\n}\n.py-\\[10px\\] {\n padding-top: 10px;\n padding-bottom: 10px;\n}\n.py-\\[11px\\] {\n padding-top: 11px;\n padding-bottom: 11px;\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-\\[7px\\] {\n padding-top: 7px;\n padding-bottom: 7px;\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-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-2xl {\n font-size: 1.5rem;\n line-height: 2rem;\n}\n.text-\\[1\\.05rem\\] {\n font-size: 1.05rem;\n}\n.text-\\[10px\\] {\n font-size: 10px;\n}\n.text-\\[11px\\] {\n font-size: 11px;\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-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-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-\\[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\\.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\\.06em\\] {\n letter-spacing: 0.06em;\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-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-\\[var\\(--ui-kit-modal-on-primary\\)\\] {\n color: var(--ui-kit-modal-on-primary);\n}\n.text-\\[var\\(--ui-kit-modal-primary\\)\\] {\n color: var(--ui-kit-modal-primary);\n}\n.text-\\[var\\(--ui-kit-modal-text\\)\\] {\n color: var(--ui-kit-modal-text);\n}\n.text-\\[var\\(--ui-kit-muted-text\\)\\] {\n color: var(--ui-kit-muted-text);\n}\n.text-\\[var\\(--ui-kit-placeholder\\)\\] {\n color: var(--ui-kit-placeholder);\n}\n.text-\\[var\\(--ui-kit-select-indicator-disabled\\)\\] {\n color: var(--ui-kit-select-indicator-disabled);\n}\n.text-\\[var\\(--ui-kit-select-muted\\)\\] {\n color: var(--ui-kit-select-muted);\n}\n.text-\\[var\\(--ui-kit-select-option-disabled\\)\\] {\n color: var(--ui-kit-select-option-disabled);\n}\n.text-\\[var\\(--ui-kit-select-placeholder\\)\\] {\n color: var(--ui-kit-select-placeholder);\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-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-\\[0_0_0_3px_var\\(--ui-kit-focus-ring\\)\\] {\n --tw-shadow: 0 0 0 3px var(--ui-kit-focus-ring);\n --tw-shadow-colored: 0 0 0 3px 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-\\[0px_4px_5px_var\\(--theme-shadow\\)\\] {\n --tw-shadow: 0px 4px 5px var(--theme-shadow);\n --tw-shadow-colored: 0px 4px 5px 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.shadow-\\[var\\(--ui-kit-modal-button-shadow-contained\\)\\] {\n --tw-shadow-color: var(--ui-kit-modal-button-shadow-contained);\n --tw-shadow: var(--tw-shadow-colored);\n}\n.shadow-\\[var\\(--ui-kit-modal-button-shadow-outlined\\)\\] {\n --tw-shadow-color: var(--ui-kit-modal-button-shadow-outlined);\n --tw-shadow: var(--tw-shadow-colored);\n}\n.shadow-\\[var\\(--ui-kit-modal-control-shadow\\)\\] {\n --tw-shadow-color: var(--ui-kit-modal-control-shadow);\n --tw-shadow: var(--tw-shadow-colored);\n}\n.outline-none {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n.outline {\n outline-style: solid;\n}\n.saturate-0 {\n --tw-saturate: saturate(0);\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\\,box-shadow\\,background-color\\] {\n transition-property:\n border-color,\n box-shadow,\n background-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-opacity {\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-shadow {\n transition-property: box-shadow;\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.\\[background\\:var\\(--ui-kit-card-bg\\)\\] {\n background: var(--ui-kit-card-bg);\n}\n.\\[border-color\\:var\\(--ui-kit-card-border\\)\\] {\n border-color: var(--ui-kit-card-border);\n}\n.\\[grid-template-columns\\:repeat\\(auto-fit\\,minmax\\(120px\\,1fr\\)\\)\\] {\n grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));\n}\n:root {\n --ui-kit-font-family:\n "Lato",\n system-ui,\n sans-serif;\n}\n.ui-kit-root {\n font-family: var(--ui-kit-font-family);\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n.ui-kit-root :is(button, input, textarea, select, option) {\n font-family: var(--ui-kit-font-family);\n}\n.placeholder\\:text-\\[var\\(--ui-kit-placeholder\\)\\]::-moz-placeholder {\n color: var(--ui-kit-placeholder);\n}\n.placeholder\\:text-\\[var\\(--ui-kit-placeholder\\)\\]::placeholder {\n color: var(--ui-kit-placeholder);\n}\n.hover\\:-translate-y-\\[0\\.5px\\]:hover {\n --tw-translate-y: -0.5px;\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.hover\\:border-\\[var\\(--theme-primaryDark\\)\\]:hover {\n border-color: var(--theme-primaryDark);\n}\n.hover\\:border-\\[var\\(--ui-kit-button-ghost-border\\)\\]:hover {\n border-color: var(--ui-kit-button-ghost-border);\n}\n.hover\\:bg-\\[var\\(--theme-primary\\)\\]:hover {\n background-color: var(--theme-primary);\n}\n.hover\\:bg-\\[var\\(--theme-primaryDark\\)\\]:hover {\n background-color: var(--theme-primaryDark);\n}\n.hover\\:bg-\\[var\\(--ui-kit-button-outline-hover\\)\\]:hover {\n background-color: var(--ui-kit-button-outline-hover);\n}\n.hover\\:text-\\[var\\(--theme-onPrimary\\)\\]:hover {\n color: var(--theme-onPrimary);\n}\n.hover\\:shadow-\\[0px_4px_5px_var\\(--theme-shadow\\)\\]:hover {\n --tw-shadow: 0px 4px 5px var(--theme-shadow);\n --tw-shadow-colored: 0px 4px 5px 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.active\\:translate-y-px:active {\n --tw-translate-y: 1px;\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.active\\:scale-\\[0\\.985\\]:active {\n --tw-scale-x: 0.985;\n --tw-scale-y: 0.985;\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.active\\:border-\\[var\\(--ui-kit-button-ghost-border\\)\\]:active {\n border-color: var(--ui-kit-button-ghost-border);\n}\n.active\\:bg-\\[var\\(--theme-primary\\)\\]:active {\n background-color: var(--theme-primary);\n}\n.active\\:bg-\\[var\\(--ui-kit-button-outline-active\\)\\]:active {\n background-color: var(--ui-kit-button-outline-active);\n}\n.active\\:text-\\[var\\(--theme-onPrimary\\)\\]:active {\n color: var(--theme-onPrimary);\n}\n.active\\:shadow-\\[0px_4px_5px_var\\(--theme-shadow\\)\\]:active {\n --tw-shadow: 0px 4px 5px var(--theme-shadow);\n --tw-shadow-colored: 0px 4px 5px 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.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');
66
+
67
+ // node_modules/@fontsource/lato/files/lato-latin-400-normal.woff
68
+ var lato_latin_400_normal_default = "data:font/woff;base64,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";
69
+
70
+ // node_modules/@fontsource/lato/files/lato-latin-400-normal.woff2
71
+ var lato_latin_400_normal_default2 = "data:font/woff2;base64,d09GMgABAAAAAFwcABAAAAAA7SwAAFu+AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG6R6HHAGYACBRAguCY1lEQwKg4wIgvBdC4NCAAE2AiQDhnYEIAWFGAeERQxLG6HcNWNbUsPuVgVWciHO2cjY4yQZqOrIQG4HkVDKLpj9/ycllTG2D9t/kCJBC4i5I0g6xFQRNoJKTMapNxZnko43/6h4iKWovk4i+pUsaBOdvcZSM5mBdedUrfZBxO9fT9TZZj1Ndbxl8vnMH8Ywt2PlMNpGVvZxs9Hg1m07OLCYSv50HC2zJZIi/Q6p7CqKgybmwDIOH8QhXLb5F5tu0g9dTHgK9TqLwLiFj5pTL0bsVphyZiXAfyO5VWt90JHK3ctYgTFutKNW5HzMT38HYUMgkyIfse+hI4bXPviIbh+IBRIgJDvKBIvTC3moNZr6fD7atL+zO0CNilHOpkTciBjJyxGzirlGVNoulnI9cP1MbGat+aRKpDOzk3ta4/IgdF1ScKZO4eVaup83IkL+nCxEFTBzE/WSIm+qgFY8qQLAI8tOyldakQKgba1cqtTtld4FoFBip9T6+iM6euKZDA9CwYGN5/sOfnfezOz/HErKQUJRqnU8sDhqB8BttdNyMqaKExQEQXHgZk5ZigMRUMSBimPsTCuz0tKm7eWq7nbfuG6213lW93cd8P/8v8ts7RPvC/CqEEgZ1O4ste0yohwidp6Zv/nypC6VUpZWm1sO07C2c//Hwu3t7UDD/kyWH5DCtkNTAsq2JxG59xha1DLiH2+31d8SnI8ptTQASHtDuiWmgT/CJV4OsYgjGkHlXaYOW9fhx87rXyavW34xkQhqjFDG9WCVh6n4sbn3PQjIEhLyAlsQRDdo/do15unYc6+nqpijkmQnBRqkrtMsEB++7oU/zuXnNs47FO6DAxZm+4ooTQpDVtgf09jVUgq3ca9j0B/R+r80hTYFa6dW/WgvBaQNyKSQ/BeREOdIB/4/dZ/MIW1xNa/bHTlAC6gwWUE5DE2jrjr+rnJlU9s76V/5sBSgCuhLF6UuXLqqU61e/DKc5EZ2mGx+J2wMEFWZVE4qtvkdwk9YdqiMXbkNYAVYMXeZNEXKdCVhl6KsMiH+Y5pSr92hmemfoIMCzBTqzvXdpeB0/CdIY6S0hjKBOIL5/0vVd/vucECBrlQqf+tSWt2yQLSXKX3VyionK8ydN3Mx780MwAEgEiAt0KAaoQ7SpkU3PMyQGhRDpEqORKeIrvpJdy2yf6l1m779bbFLslxl55PtPt3CKrG0FP43eXx7rqMB1sfWCchHgohkMTNnXQV0xCXweTwKq+zDxy9Uv7/sv3MpldGfPGRGlGTV+/5/P/0yiTGvZTKz5ZVqQ0BEaVdABfXs9w5jTf6HUr0t297533GVcVYuz0IFBQXE/fuGtLxy9MO9uVNINL75MWkMWr3zioLXtyFe2e85YTK9O73C8YodoGRolz2OPFv3FQD+pd6bVwWv1175Eo9bHmz3Snf+krgNuqWt2bS6/cfp+ofWddglyS3N49Yq3JpNTtsdX3pvdq903OmY9ra5htPhUho5mMOgwxr7zyvAYY0cyoc7iBb25+zPLfgIS3BjfTam0Q+KuaVRp+0pSFlJk2YlKwRxIfecV27AKhObln6CvPYfAKhJCwgMgRIQatehS49efTCDhgwbNWbchElTps2YhROT+dHPfrNk2YpV67bt2LXngJyC0mcqahoEHT0DIxMzCysbh/+5uHl4+Zw4debchUt+AUEhYRFRFBqDFZeQlJKWceMJJysnr6CopKyiqqauAcKrBepYKOQZVvNgIp1cTDAWkzGzsLKx52KevgNlQlBU6Q94FRuekaAZISXpl5TMirUyVmRiZmFlYw85hQKNwYpJSEpJy7jBVTGPyrPmlBvvkR8BQSFhEdFb6ylK0gEpZFasIVFoDFZMQlJKWsYNbhUFwIFaCsoHKTmcqtT+paErPVxeIcVZSTmV1Jh+DSgOVDf3roUab9REZsPccLtfux3Yy5975HNUTi+voKSssYoAWgdqGS/r3U7/Gyfro6hp6OjlFZSUNaY94KRP7xZ0pB0imKGS9EhKZsXacKNv293bK0WSEsFQjo64uHl4+RwX2SMKjcGKSUhKScu4yZdzXGeTcqiqqS/9DcDHywGMtDCHMsAJCEG7/r5+fF2X6nmZsKY9IrLuqQpGhhjiBUgSpGTDn7Jbqt9yVvasypr12ihga3m7VTvF7eaxly3Hp5ij9KEKnxpGk8OzELV1MHpjaGMOJmNmYWVjL0dlLm4eXj7H5S8gICgkLCJaZAKFxmDFOl6/hCSlpJPBTd3W7869h/5SGWeycp3HV2BYzFDCV04lU5WausaHOEA/XtHvnrRoDtUP7h0SQbuN+hFq3tMyvDRJH6mT9U8FrShrzDe6JNdPYZRRZdSiCbHT0cegNhZlEjMLKxt7+UsLCAoJi4gW2TsKjcGKSUhKScu4wcnKVV6/QhfrV0JZJdU+NamnUZfW8PKA0sFAhmge3yfwW1CQcE97RKTrw1BQkIVGo2kgCBpBI7gIum7tpdtvkD6SwwkRA2XMw8TMwsrGXo6CXNw8vHyOy59FQFBIWES0yDQUGoMVS9ySiCQlJS3jJrdy595DfymI6zqbLidFFVU19dWvCLrUTgQzNB9NGeuWAy5unnjhc1wn3Tp15jxfWOrCqxeUFULQjJDlnhi8U5I+SV9kVqyVsV4mZhZWNvbydyogKCQsIhryLhRoDFZMQlJKWsYNropZVVbFgMkBaplDRsBRSLz41Kk3u/Vkd17s/6PZjcdMZJjKZjZb0jOpk1mx1tvN2jnNXszlk0MRpVRU2eoqaAixR6foawz8tFeaX2RD9oxyNAYrJiEpJS3j5trTeEb36OnkjIycGlnHfVmjzoyg6B5d16VecCZBn9pFBDP0TSnf/pgq6b83K9pu205oL9YwR0cwxHEXF9w8vHyOf3OJjj6ZI6pq6kuteCGoU8ir0JCQkYmZhZWNvYqdqjzp8yXf+BEHjw58wp/3REmSpCKrpQ4sZyWtZi2sZ4sc8tN+IORZKEdjsGK7+K8kkiRJ8ly6zR3uPdxz9e4UnoLg2ihEiWCQlVNVU18dAsSAWsaLJeVTSNCtdoi6BwaLDNGjeYxNy+OBifKmcpjN3q5oT0N5jCJFGRWtroWGEHt0Kn2MoR3dcombh5fPcZ2ETp0574scvnTJ3iSnyscUlJRTlVrqpMFUAOgS7zhgVHP3WhoKIRbUdsJSPA8aP16a7NNUZdNJnitzn/zpJe+Sij5GYoKZhZWNPRd3yc8pqIuhUqRMKqnx5N9v6cugxqSaKfi+NL7yqW9BirCmPSKy7smAkSEKb5SElKx/7NNPZ1m6y7KyUrMa1qzPN5q32a0t5tud203ZY7u/i870m3wy+W1v4vmEw7MQNbq8/sY3CQAAAIy0I8Xl3Dy8fI7L36iAoJCwiCgShcZgxTpeWgLJpJCWcVO3pd2599BfUrius03K8dWvhMs1akyaPJicfgTE8S4DRlqsoACyRZVf06Ppxg83/xGWJzNNJUx3abZGfhqV08cIU8ywsLKxby9+yZ3Gz+J7cBo/ja9TY/oDIAKUliEcEITaiWCGrnNBn/abyjCr+XYeO5n2IvI7iig9KkNEbzuDeL1ACCGEG3tiQAAQBEEAAHPiPUH32h0RzNDX4eRdKBlHKS7NzcPL5/i3hoD50o57iOPFQDJ6ziFxi9r4miNU3w1Oely/CddT+GbVHG+XpDgpyKxYK0WcErEzaBLDMAzD/pwFOvMLfP52BZSgkLCIaJHFUWgMVkxCUkpaxs0mUAoX32XjcsB5SVT0geN/me86XfzVu4embv799nAi7JTXVYLukOC7fGC4b8oRQsVrIF7o09ahvdBp1Q84xXFn+BumVdPFk56UECLwhJ8HBoAgv3Nt0ltECDxB9SIJ+mfUunmlnVjARgD45toOYAjwN+Yb98Nzhvvhc4GG2IpludUDc4ic1qL6k/6jZy0wU7J/mYrpM2fmy0SDVao+YkDSMftYTTUQU7C/9Z3uGasW2yc+EhfFdWL5F9uXqi+v7p+8f+z+0fuH7u+/P3F/5D723gnKnMfA4XfgNSudcBFXDc5T9MbRDH+kdDx1e+OkYsO/Yxrf2VbeUvt7A97U71IAL9ss/kvfLD2Fjc9qb96VL2W8Was9d7aduPKmvXJNoeyxecvyCRAk9qm4r0T/pXqv8i/KcKw9J2JdLDpvqjM605x+Wjhg481sDSaaRkaImE4F63Yf0+7VjGytB4iXI9FzpQXpcnBfl4Q2vgHH1/liqmES2KA1qy7vXUsbesvWBTlvoCD432HmRteq/eI7ZLjRRUG2XS80LBSxIjpf8DvsgEA0ibdF08gHbe0dPtiBh9zFqK69UInYaso/ebWB0XkD48PX4Rqc8WvwhG1XcDBD5u9tGJ5tAfZxETTg1hdzvJ9jYMQ+cTA6d4nglj9ys9gELGZ6cF0XDHS6Bup4rzZtH6+GET5XnPcpYBOrx+oCDqUrYrOQ1qybysetHNE1WXeXfW8uOB14PhHwqLOgB8bfPoYWCGyU9V0Goj8AgB+7tt56I1pF/gTbukLYDdzvoF+kgNXh7QCvaAnam6pUsNUyqKrYaAhrqem18m+uvGLNaxCxx3NUS6uEw5bRm+mfsQIomf5d6SFtlyvQkwGqLh2FgSiAKP7R8obfWa87XYZq1+lpKEsxmrBMpa3ptsu5+w7UjL+3I0hxMD+Hbvmtwax5C+Mw0TgSGUaGJC3OyF6SJbvcrDvDssv6SAeTTjErFXZwcBBZXsIwBMQz3jjNJJTyVl3zRd6ZT9SqKUB9cSQpGukwZdvruT51PRZiOXMZSBslLKOBM93T5DILH+qqnzHvYGILo0FwE6ae5DVwHsLxjb0GgyVLAZMQ8Q0FZD+l51Lt740t71pCUzXoqcv36+ToVLV2Tmu5LemIu20yxPDqgzkBBYGgBzrfv1jhd6VUiuNLtoDHRQLNJo4IrD192PO0fE5kX2rZNorTlSunYzCswpZlZ0CCZAEt3ee2Zb11SrNTttbY4wi4Hl4xMuwejtyLt23deYUXfepEUBMKE1SbaIZt91Xrit7OFs80OK3KjTYP6nKxe5RZFLLUmC0NsZOsfStIxboJ3iBjm6xCZFtdsZ2uZH8CEpopWfiLqTpkmg6ZrkNmbCGYqRPM0gnW0omJ9qCmn5yjaYLgXuvS4EDQh1QUbXgayPPZcfeAkwIDfxFU7wC5AdwlmPIJAQNJoj8+DwoCLk4CIC5vS0vcbUyOTLQ+kpneuQjxyhw7IR8JAkIocNkRTpgQF5/wvp2IZsY/p8Dbnh13HcVRLFQ5KrHOqyafvH86+unLGfPJdW+zq65L5BDd8aAsD17FZo6WF8+FOeRPqSb6l6Pq+VfCmFzRO+5bynWH8dhzTh5LWnMWEwVuSal7y8rkqlC+7/ghc9Y8DjZx0NnVNeIRI0UV2yTUGN9vqJtNIoci5ndZc+HTYN+eUcvY05BoKJK1p5TJiiQaMyKP9becCdGEkyel4KbTc0fcMp01SfOFEF7jucJ9+iDw9ESMqHEcFbCSDtz1ycsZS0Ogd6Kk86SyWFM7RJ5YNy3cbzPXT+Jxoal8sqAqtpCpyhG8OptpnFgzkDUkQ10EiWCKi3mwJMWmopHi/tznr6XpxajSzOLMmqpoqAwvasdC34tEo3Ki1aB6k3I9/rNqIaM/F8UFWt1FE6TGc0E2swZej4sIvwIhs7mrsGbXogrWa6MGTutHQSsBqJW+Mg4y6xuTrjdQl8Z+v6uDf9+U+WHcauoXaf/3dxDyZYb9L5Mzi/pi6yRFUj7+nlH/FixtU5hIzeNKaO/L+a+jHy317avbaMuxT+5AStNiTsKShsBI6fTHKLZPUFX7V/XyI35H+u+ldwIIyILnTpUTh2shIUwfl0Eskxpzw71PzK7O/ii4V5+XX6bEPPaSe7aakEqO9X01SvJbubKuiWsEWCjS83TCrN8a9+fqVtzQELKdZYcJ6uG5zOz/W55hN5se0rtk5wdJfp4y5XQpdEGdnk358sJ8NFnOzq7k5uKHSxPClIF+VadsYLPu7JpIyPrNx7wU/2cNXfMgs34ikXmFZ8rx+Oec8poJ1OniKQIpdIasqwGylHsrMkhq39qn9pX+2X+ai/xqdALq7TC0H0pOlds9mVrrOX51TNdqQEVppf+3OAsJTBXJSCybGKreBnQ5dzTZotkYtEDiXSMdtEa4Z6j/yXxOoIggGNiJEIFyWBd+cbxAVhPldfsh4oMDbN0dkSVa++Zoe6EzpOYXYf3RREjn3+Nnqdr6Mo6qg5qWVcndJrGSnyFQ3+BwjRNTD9OMUWwSZ6fDn61PsOV4wVjPKHtwV+udxi/KpUZC9drpyc+VmEinT/UXf+aoWmY7YPd8nStWoNdeQtPcfy3LsH2hu1JYSPLzXYkN6oJonee6z1gRwas94UPU3oOQzm2FOqSNZjRqt0+0X/0DakzKYSG51yPvaB83XvnzQ+LeaNNkM7Yusyf25EOw0zgS1TKOhQh6fl2Sb5+gL+zu6WMlD3iOW9LUHnRZ1d1PosO3izPZtGIj8C+JJWxMymONBKMVi7rxD5pQod2NpXweUTrA0cRM/y6Wf+QcGPODwWqXO6c79w3E2H076R8x7DrPm0+O2VzPsZ+9OwbcnEIX3ScA1/SRX4yAzrNPPyaCVlkZXq/g9JwWZ1dqSxNYQiETM+SRUB6huTjqyqcIFKT4KCPyKIxTwWN2i9MbCLL+NvCC2VBrQd7k/8yGPhir6D3T+a1OMMzeKvx2cedCzr2tgcB3olXdWr4bfe7QuEH/sKpkvk18ujaIZb1vrUwQ1ROvZwZorFuTVcvRCCe/jcq9NUd5hHHWd0KMBReBn1D86LGWmWW1eO6ylE+SohcRK+UC7/Vyv4ifg11dyku/fEP4UjqoaXw1BC1ID0bisC/jdD6IhTBDkhtwIghvNfAD3WBwUx1yo/w9E6qL0yVcKFZ4kdN4zvc5RTIBJFxe400sxyWKyDiI5kqWgGa9HsaFeFW9ny9oBjkJxYsHekmB59MLZZZLsyksYcLy743p3Lm9lj4aM004U96gNhIIXDHJcpbEiB4FuOrKjw+EOwYk5bHegqjRcptZ+1+7Xlrxkv6crU2lqzVg1drjmeWrd0fQ5JdQX7wJ9xkiDHCh7VsJcTUhUCdiB98TGUCT/ftRWzmQrfbnELuk+3Uf0irgiGrTCcE5wx53o7FAvfwi6mZyg5kPn6C2jEfcLC243AQIYhTpTDv43KW4huoQt9xeFrrCws8GVvv7Ncw3JyIovc7jWpm6qRwW+8Gw7FhGZlckvtezbdMXhhBMjptuEcTUXigGvH7/kr05cHovjNXUC+uiolS7x6jQRjWu2eZ4hHbKjSr1b2hiq9OXszncb/lCHgoSf15UTySSceZL00mGZG1aWpEbtntZ6SgZVY7Szq133ueht4JgzRAVhkxTrp7lZwpy2GCmeU2dSi6sTQGmJ7xNX0EPot3hAb/rrVo7fYZCrHx38rItdAnSwbXECFd9lv1yLVox+o6ZrqniJOQVW9chejBwXuEW6y0HNV5QCQWXT+X1dEtoSAuQhsODHS4tHh0s7jo8sssB2kB+1gBJeQmHgs8sYQXQboGILc50or1Hx456qFNTSqYeiVhGjZkn8SQDCKBCsjg8Cc5r38uVsHA8nRum9U7fVgGyyR+kTamn5f3/ARSR3xwJ1HYtlbS7lyWHIoGTbcVrDzqvW6sfQ08az/dcWaEsVQbCVPH06ACacccnTp2zQN1lK2XKeZrpjwHZ7E+mCQE96UNmAHNsS2P2admr+z4qCoc5j6uV86+GnfW+nLJabB+rM0GAcU1AueXszPBXaG7R1rBvABXj2qmf/xyHnD4OUtPPXB7TBWVi8UzGOK/T15/ip5PY0Ei/sixBhNuOONw7MVZ+hEgcy+gc1qAEunTBueF1V9Li0HWVJe2dr0KrIebW7wN7Y8fOKCd9otrRYWbrUdxTT6mScnnt/U5nHxo5QXspdMcYpdd7nC04rkLsmsRnVyReS+cE3QvN/RgrB+n6dVNBhRbUnGC45pWoKt+XohvtbZEtVkcqBcuSjuHm1jvKjASCaZFRmqsRCzH2kUH1/bvkySJ11pWkUlhYkd2Q4+X1TBM8sWSnjnowI+1Qf7R/pKwCE7+1OiSOUDBlC47q/vLsiUxjIrSROQVIVodIxpa0zjYGg7g1IJNyv4fBIg2S06y+5n70E+xK/PskmQcMXFL29Il9zP6bsscJZNGIWE/QQ8gLTzR0hNZzcDXGDN8ptXSWEHOlH4Y2lhXhFlW4TgNwDEVXUbhNKWV3aIS0euL00LSL60sqlOXxj1IGS1Sb4PQAhLgTC3V/C36WkI3C317jjwdylduNlbxR9SCgV7yukDgOORW+pEzp1xkuiDpmPCjiMMHMjy/W00v6emh/H+vtD9RxsXZxOkTYWs/k2bqDnko+W7vH/WzuRYjcacYPxWUVCExavFNBMWRzhtGdoLIy5D0sB8SfFhHfsryzJwjr8azoTqCaId670gvvmjgjHeAcyw7HAief2VXTQlUGpT3KnXfmmSAvsDNtJiGQ2fs3T4awZhcwS37aEXYovU1TYkbsbWb3Ae6uhF4+dHwIowaqckFvjRsOcvmQ7gu64cw910qgHwjR7pjLzq1DXJe2gxtCvxjJbIdriRbiaiDPVeI9M6I1eYNSMjytzdNrCuICM1ucbocP7hpMcZcj32zZJi/G6lGn3G68giLYauOIAcmCBJzlUVgvy7pDjga+dQrYsx255ZSMJj0AtVk5kgcCZfzc2wDJRFTzQ9ZaFNlVd240MidDoX/ijx3bp7RQgwn7Odb38Bm7w7CLj9/zud6/Ws3lBl+Y5XHhbuGHA/CPzn2YsKgGrbK8VEkonybFOr3/h+wWMXettG9nDd+Mk4NdUyWax6tKFTxyQNEOXwCt1WaruYJaHRQa39sAdQJi00rcx1Cgk979U9aIzxVcinzHzXxXiOXqWJ6XqR/+AWvc/GztMQ4FUtWaKorDTLKOCuwDDXBVn59xENQHJeuzX5JVXV0MX7F3RGp+EDc1TEOJ85N8q1kJifU21btVRo5+W/Dl70UyNzEeW1511A1xchXZmXiPBC37wRUGc/mhDEq6C/lr5492dOJHiN6O4vU2e+STiSSCg9JZ5aqR18ldNc4qByUhyeFkOJJgfxOJvAkgIH3wgBtI5A17fDMoZiLIazPxmD9yURtHCnr+6WdzS6Ruj3y3DPbBx2mVEzvjEzuv8kc/iWL3KGyjr7Obc+33VNZzd54wMXSKY8yeRknluz7Jd0kQHnBXJ27eLXe+kI/pp7KOwzf6Oa9x7tW3f6KyPtmSPrjVrrmay+FHy8yTnqAVFimXwHAJAbLA3dFmBbVVx6P0FxdtYxY4rl4LnITSPa6Y3MdlZ3G0ZKRn74ggYFXAIw5kgGyRMeuzNImTFTW7+WZnt8PAAxD6eGdUCGdZifYK/EB1NuCZrKAs3DVSIPukJPSd3yLVOSf0Oz++LR0fnaogd6o0VmIqs4Ko1BA7FSpilzKzgshkVBIVmaSufiXdJ3MNFYFGUxH/R2bSaUjNZyrc7ALc1UfTUj2/CG+lVTVunQN1ymVpCnKHSlNBB3cw3dRK1LDb+1SxrNW6v5FZhTLe7DJsWixrVtIWlSOPLU0shVCdPEpohc88mH4RURL/XpSQEOwVSI1hKrfMoOn4URceMAZYal/BukPLDSce8EtWrh3J1vxVOCadiKnN541lsyMa0wrL5Qy/JGH8OjEvukWfMxwLYvrRiHkihj4ouuyojMHYva+QYp6yMbSuUBZQebtktOCUJtXV8/puMZFfYXpAfeT3tL7O7xn1oZLjW8Wk3dc9vUZNJ4vHXLBC8LC6Rr3QdCS+1fawhdbVt0K7QesqxESFrqmaglMloy7QYO0VEM1CcdyfF87fr4+mR+J8Dhi2lR3QB2vbDOCr6Vewdw/tWlMRbo0bALBmzfk1CHny8PvQq6awE8P7x3vGD40e2tCzYX9Vdj3M9e1RJOrJ0z9RBEQuMYedceWP77w97mx+bJuN8ECuu++u1c+8HX+LVpeYuzL5dvANnZ8AveHXax8CBQTm4vcXpMCB45fUJaUX1EEhkQAvXJCABk4kLS2poOSloDPnd8bezeqpS6DTnWb2mG3nXvxOJsr6Q7hTg+qJvo7H237bGrvaqzE9Tjhbts6OgpG9di/RG2YzJ2Mq8mljOVJij6zRXHmhtq1e5o657wfwKb6QDHpm9+L7vmwzvSi4NDU1NIeVnI2Kjc30Z1NIoqnGv5HO23OzvDx0ko31xqnoU5grs5kT5FJtco+cGWSmSjPjWgdCBg926PmTbaUHEvQV0xSLntMLlwj8uRDw/XIQBfxHKJeRaggXCMpIfBFaS0xAaaWs4dCyNo3dvDkZLSSTkoLJZCRm+aWoJYovkogfLps9pcL513xvNPhY3WRdA/gqCaAJH5vcvZWJDJe4Xrb/JhktwLyPX6TVWGDasn00qzVhMrtCcrq//TyrJNUK12OVMR4xAgQKFMFB56IYghqiIp3QIGJgisSCKqwk1gq4aQmwTu65H7ajVDVBsRYzpvL1nNnWppOckuJDzIZm+omyHPlNTZ35+XV4wNT7yqAGDPY4K7RcKCvFc7hWQpoMb6Gzw8skYguWwbWSpGm44m2MKxPSoFfNaPDBb26FtqB3Tn096/AasA9QZ6Z7FR2ltBSyNub0rz3WhS7DVuyulCT3lRun4vN02+IDTCKptO62YLvQk7L+HPbG5sKjFPMQuxQjZIflJfFJpjRaESoxsQglEOUnVbuwXxfWYXYeLpntkxkZFaCm0nLRVKrbaEajIs2ebK+ll0MEspGYEhN1kz6HtaOp7iDLVLCHUVNHnS1IgZaGFyaZCrI+LX7033k8IUu+uqiPAJ9h4IoFAlNYKr0YJxRgC1OZGDOXZ0LTuKURAlGocbJFErQHt/o4lpu67GV0zv80kt87doWkW9cC+Bw//yjhx67OazG7h/F/e7eSdKMuG5IzezJvu1DkNy9avf8u7HC4s+tQQtPrVPxnQAtJto7v4oBGvOaT00PzoUmSboJOHlcjEOJLmGmyJHYMmgTYVO+2yw2HpzIpYgqTiVcnhQeyRsQIQrLK77jIHXF7tSKXn79HV7nvz4l1fHdRvLSHJU5ShyVwffUJSuqBlv5L6iaGAbyUZQLyI0NQL/tgkeo4uhEzrO5Pv7a5/wazvvuF8eBx/cq6fWa7a7HP6rWbntMUUc/dIeNwmpnjLTt4EFvy24+N4ZdKYr/RHxoY2Z9/hVKcdTh0q6ijImd99Kmi4qRT5q4RwZca/0fTJKU3VYAxRQgaUzKMUR0sLk1lS1KM2G0R/rZ2ZXR0Zeh8EBuDf5q4An3UBbvPVoKle8HMiblDdnTim85L5HptQr86JkBHlxtoDPBW1LYd3Zn0Da1F5xJqKYPLsfJqtJAZnBNv2dq6LbrPTlMTLE5Fa2Kbx6u2u5zl24d5fy9IUxv/X350yz/mo/M6j5kZk8fFBVfz9qnHunR5SnqhL8BjsUHL89EBqdZL4r51wuvt3cLrnSMnBYVUo6fKn0+Sef6Q3v79tNHl7HnH/Cm4HZ2ATznmn71gdLm6vZNzrWPteYFVqVVazws6hjnXauiQiakjfxA2EV4cmbLa0Ynt30KsCKeEpiXOtwNR/xtKyF2jhAhQ8qS7IKN36RmMqjK+EzMOzNjqaD4/b/KY2ZnvcWnes3Cvch28MaKQ/museo2PN27o5/SQWoS8bkncN8r7X3uv8NbA2JzoibzV7uGg0yDdaEstTi1Lx9YvbvlyUfb129qEixXte1glOpOPb3q4NxMCPBpFzw9ly0PaNYcWDsLJaB5mMfYPn/TOgF2BJraEd2bMHL97L2gD1lb7lrI/YMAJnj6yYEcnFr61zBTviCCZvSH2z1U/MzdvSfsVJS+/eha5NrNu+/wg/nDU8dZBgi9h0F/fgQ2E+O0b1m8t8uxV1HLFPAA9gRxcJj+mYL1hn86p5cHePSTfioP7g798ljWM5gC/nza6n11wMk9NOZoj7OL0V+2iYxF1KlIAQczBr3eMnBdVWh3tHNltnZr7X6dbaK1UUALdqqYdBufzOcqe3q9TOqzUHUYDa1d3zVf0ticTT+XN4UpxeAm9b+/E/qcDOcDvjWEnRVstLawIy+D2EKvpH0BbPYjBtNI/7UrVB3lD75XY1oLk0UwhsUNjauelAaNPT1MOxPRabS6VYaOD3ylbw1T88ILU1r1te27do1w+O5ziDVhghuUGsmj6IHpioJSYlCDOjasPaw2vj82VJ9Rl5KTurK87xqoYeGyQKuMy60s9IVnSmAq8nFWE5jNDtYm0hDRtXD2mNaw+RqtMaNUKE4YsJTtpRbVXBDzOVc6TiR3XPi5+vL5j8reJjIHE3KKoDZqChYJG8c3RzTfVnZ2Ojm3WtsYrzdcUleYWDSZN2i22bkH+bUXIl69DJfv6wZLrCPJyri9iawgFP1xjVzwxjRy+usCOx/U/yHR3+yCgx1I8goJcrQcvPwZ50KVb6oBjj2nhiHGflYlD0BOsQ72MTjH0FuvQ2P/v/XJmAZLcWJVs+CXXbYjqdfa3wy+fz0O7m1rSDTNVpKF8yImZn+ITFhICbmr3IX+d4eCjDh48NBnJxq99jTjQwmNNcINEUSesUVMkIQoXdbkaMdU8FGAnRZWxoXuhs3YS8ix0L4xNsWctCAM/XENv+FXgV75IyPgNvP/Sah+YXYb6m0oOYE1YjV1tAGvTkvYqzvC7eUHbpAf3ZkZSd9WCa8PdV2YD/7q9/kM+ZOvdF/bkegnSxgNlWwUUOSYHlJCYHyCg4Q2sJFrpqPJN7H5HSbWhVk9LD6CG3YcBZ5o+y6ULkmplR1yGnjCk/AFJFAGZQQ/u3ax33I8qiiQxcGETJ47YYjbZ0YXjOSncmfTC9CGavj1mvrkscb5scEaan9criGK4ZlZhIKAadbsklvuSSKuM4Q6Pf3NeHzRE02ixtrxoOa3+Hy+vsGwhnMIvjxbqMUPpWdhhQW5xFJMmR1WlAGHbI6k06RV+qXaGVdPJXGgsT5mr7T8qspp3MN/anDMx673qqeLdOcXqIbq+LWah7ZUNTUsLsjtSKFHH7OjCYluKSEWjOUUDB3/6U4KinTMnkiwVKXuLcT6IGXstcUieY43gMnJRrOC3AOiRSKpLZoIJbQHGFR5ht/ZyvukwU0/XdR8Wlre3ja0HdISmBObT+DlhNtC5bIs7cyeYtz1PTerWZLUQpcwxx3THT37+EXyY0ldNy0a3+efawlCVq+gVvq9A9MBNFV6BVCmfUmtQ9hPknPvLHtCQ9VqvOsdm1zqINjJezaZR6+pyDlMslt3hJbzY3BhBjikNtSOKToH+5/G3jY9V9GfzKbVGxSAB4ZSMmeTAs90KnIqcXfrZotggHAdXDOdzyxFiIpaWKIpN86vy4ROyy0qKi8pKsgm+/CqZn00/akcXjimozMm0AnlzrMIQPqTqOtZlNTUXS3oF8dSXK5COlZX0yq/JSGHQTSRyKSgJiUwJWkIibwaJF8sXPjXZ38QUFeOFgRmzLlrf216u3h5iGldGRfawzQl8ckEfAd78PlX17iZipnLwf7OrfX5cGljeDr1/XTj1+A9U1OPjdnTBBoZ0LURBdR63jK6YMevdC+KY/eqsguZyn1w2U6Ik58KipI1RKh1hOKvrWFdNQb0eL0adD9IkndKq19Xk0MvYr5dtqIbz71FC485kFA1ObjnosrPlGK+xhz5fU0ufiy2OcS0WJ2nqYczV1jDmAeUcXLXcu3Hs6xMnx77ZKLSQ+bqQYY0mZIifayHvX6eyo0IzZr1nDVW8W1sCP6ZdtJh/bzmdyWHzAPCPvwTT1x86g7VJ8hW7FR57k8qbySg03vTyellaN/F6DGTMmkxsq4pNP8N1oyv5fsoEt0ly4abqAhwDOA/tNME9R6OzG4uw+V0PCHrxSYSX0iyARhM40NCd/qFLPHS2b15AdigvEa9KZkdW61RDkdnm/cyTWEZjNhDY0Cb1SY4WIZMHgnBXeZgc3zz/nDBeMl5DSyCaM6VdRJVhKmXj1cteta1dzcX13mlgzi5wGAWVBtBkB7UF5VLvRPoOXxe7em4nK35rI9nSgEsr3dbCpiJxHy+e9uqYIlCxbke6WavU4362uj/bB6+MQk7m2K288OLkVQA4Nx0HtDvBA4ibK9M1doUrg9CT4oUBqwedVg6i7/hprbgDJAKPif+3dsabUUb14gxfGZCcAHWDO1aGkOvuHaqeYrO3VT88OI3qPtm8SvFmPzS58VPDgNuvqZMkr52KR3ne+6HdTf8NFt9+lT6ZD9627xyuY49v55l1yOBzm2Ebsz2bur5j5//evapRexkw3BAjnwXdOBj8K3bgH77H4hzmbuDg+5oTe1NZUkYRgyWhRnnpgDovfTQrzJomryekxUjAR93BonSDiuJRAMjz0EVhINR2g6uroUOLjvLQXXOqgKJO14vA7kfB0pi0+og0eZiVFe2VB8zz0nE8jV/67aSK/qSZvVQBtjxosVYZimCkJfTqILS2I23XDqFiDqVV6QYsqUSQybFaPVDXKorKknCrQMr5aKBxFXZ+I4wQC1NiDKdGG/1zMMqAkEIZuZ2/1oCnqQKCc5xVfgQHhXe5Zm4t4cy8qyD4eSju+eABiz7IRUCSDzIZsIT0WQIQmkhrMldvFpd1pJyssNDONfWdllY7uB0DHYDQvZ7L3DpSpHfqX3q62z19tpH89yMFajrT2w3O/i+Rc4ZnXuV2CNhSQJ8+numeq4WSPwmcKyiiPEyPbavNNuSyX7dzTszOkvod7FJxLSabwcywcggbmGs8+w9ShoNoYEKqFpsq8i9hupzlAu9Au5YFlGLfy92onULPfbEXgZetiOt/+jIjApdsUXe3xQcYvtu0SZOxcfxSQWBCvDHg4IlL12hfBeYnE2D8dnyjJnN8/GK5eny8IeAC+n0tO+IjgqR/SIOJxLTg74OlEcRg2Q9pQfCkNOhOkGzDurIoREfYBuTzMVDMjfjiYuR1YEyZG2IjYiyMnK8oVBQoEo8nelhdNoh+M0H2+/f79CvI4A/WmUMkIZx32h/jKo4w4kwEY6yYTcpMloma5WinZB2LHVmdqxqOzBqnKIwrAeTEqMInNUoMz7qIIUTSZFEF2JLwgigZKzKLKlY2ZgVBUkyCEauWHKzkjdxMMotdTOmIvptB5BNDfk5mocVB8iArzS+GO+65shoG+9IGg5a/gcFgiLflUFjbf4h86O5+0wYj8U6OePfhkH2LsFB11yp3r3KrUl6j0HZxK/O2MyrqUvYYjMy9dbW76XnF44xuApX1j7vnE6QAmsguw4vluBqBCFcrkBXiUkg0t2VOwoPVRvK5nJmuzmntWbLReI7MYOEMqdNoKKmm8TnmrKJp8lm9ISN8h2y43DqQNo1P73yq33cg73l3Bn4XuIoqbobw1uSJYfaQ7qUtG83gJgGR5Ucq70HrgzBU0Of92CA0XR09EmS2R6duiccAmPPenim8DFItgRcrD9ziJyejsGQeOqqQZZ/rfW4Ugov8q88Z9rlzy+2fPADbppx+/uPNlSknDs3V98KWiM7HXlePPczaOx54JW0n6p1kfDc4pU/u5W1tDDiwq7E+x9xRCF89tOORaH3g568Jg0NISXnltwfBz3gYdOgOFiC607aOYzFTqlLQTgYTI7JKraqOZLGqI9WqyCoGPbLyjKNwlHxlMxXnx1VyUTgcB6X04+JYx1NxwNpU6z+7POzEsdrx3vGy0bINvRtqEfLfL/VcGoDsNkYr/E4GCIlhcOZkxp3pncZnkCWIESyyhXtsOf/Hb73H/wrxIZ8iRKz9tYkIcGqlst08C/sKW6EYI1nmO+PPCGutxtOATFFKHFbOpGh8SfFy+DyO87bgiaff7iz/32cC/B/994lGrSmiehDVKjv/xOioMRJp+HSLp5dTK5XuZggXU6PlyGNo5exz+7sHIOaxD7edAsjApZXRkqKawilnq+mcQYaab4kqKXRWYWAZmJ4QO2onOmTGiYnf7eg3kw5DCuRktmlXUqUpZUimShmsNOyKM800SP0LetQo/5qaGn9UVW21P0rVa0Tv/7jqY/pHCG47EpTRdl6BGyyDSTJAUmZswJ8dEiAJy/N+s0q2tObmr2NnEszqM56woYI7F4u725XjM7Ans+wynEQSXsHhhlsl0p3H5pTjpFIelxNeIZUkx3ZQpJkMhrQChRqGqMiU+6p1ywVfwMiU01e/n3sx5TQC8L2w5XMnLBQK41gKz/vV0g9uJTS3ux5pR0qORAElPpuUNxs51EQ+ruWpZUsgH8x79ut3P0Wc9BOS0Vm+9wJEtjP+eQ8UO+lYKpn+SC/7yE7mRaR9t96jxIdfmUMTSvDOIRGvUvuvgBRw6zWfrA4t2KGqEq6TxVV5KWQKZDFsYgCaWO1ud/wPzEhxBDMRL0nEBzLTRcp293Qzw//yPtwirhB+mvgy9Sbxd+Im36TnuiknUg/+mGYHF7n+V9D17PdnfJl3bYHtUDmRB1f1uz2onLqktE3s5Ije+0FJT8t9bpl2/gi4NP5rdwx2vzIEm3La3XFMb/kgpwiwzVdErVFbPb1WKt83VTR9UVZu98g8SB37qFbrcnO0Op1B7yvo9enpND0jHdBlU2Mzis+TxER9T9aEn/iSo0VX7398k2GnrV/Fp8XIShM+Bhj2v8zXWSCC9/t7+DeYXCy54+wYTr3nsIrU1s5m6teJnLDlRitr68ZDJxuk3cv7PFULrk93PRRsxUEOFWxM1GVFlJCTcMpUGj/SNsNCGRJ8siYJK9ooFlPq9IpuvEQ3OU9+bXR8nxg8C+mxDU2JY8mjdFh5fFwaPQYvpqeIYuiJeDYpAE61pgekMkuxYjmuSfHb8fsm5mxL3XHaB+5j57TB1Py6hENl2H8RVkcNoVuYYQqnsTJ9l7K8PeHq1y6qhDx0ITC66lJZrPWgSl0YVw1PZJUHpbHwhdwkmnU0803CfseoakOTnpYeRMU+XFs/Qk5IymvXGQM0MeoD+TxUvdP+oKI4Egen1ktk8XnBXB62hH/+bbI2jCkKs6xi/UtDlSZKVPgvjjNrQXQ4IbVpawbFxo74k+WR8dC8W1W73VzVJukJnFlerstq8Px/spmRYGyscBW0NJ+zZAgcAvfDvETJWq/jiVLi7rqwRjeINpd+JK+BtRlzpnRt8qP6baeUtXmztMZ6ztGynOTd1qadPJPhiJKqAvVUXsxOPd3tvFzJqYiRFhN2OpT+nyzlp+SFpAjKIgUqTDVTRmiWKE34Jv3DSz2XdLuQBPslH+QSIBnpkwRYRPos2uMP/uyTFu9YmcSgXapes61a2B6ojeVl7fVjjCzRmKyFxujNAxZJN7qCoUn4GKAhV0i2J+QeF3HjLEJrjFgfOhL7u6Aiejlrw5pxsvYIl0W0RaxT2Unhx7QpvB3pheodDZVlHrUdzIgf4jmftmh5goz2qr3TPZb1Xl7zpWt6+IV5z3ym+/R0pvuexRdFw9NfuuW176Hfd6beqB7bKzaZHK9mjHqjs5NXM7pXZDLR6tHyHPxHkTDBl0lyOmr5RyDkSBQ1ORg1lypiq2Ms83V9hh3cyp7Uudqa1Pnqnt28/I6LtdElkaZzTeix3oGer09oAocZugIyi6MoU7eH1Zzo/TpW7mxo+tg98p8Zw1xXAyG0NNnV0aRId2+467I7c9WuYJw/Q8dBhmG5yPK5Mg7rz2ipjA3jIC0e1Yfh1URCAZ5QQCCq5UgIIaTQrZgIFz+josKCv5f9C+Paqy0khPgzDRV6lry+uWU4oD0A7VvKA+wW8J7T6+C/riFzSZr0nRKmrlKwynNi+feyn1ABQIbR7A6fdfFeeXwNoSVl1lhxiT//WOBu8H0unu/T+JAe48Xwh6FZ3fIYbw0/+K3uVsI3lLuWJkro0Ru6E4SingSDYeeJRAndBj1PJOxO0OsHn/Tfn5OjSn0KRueATIdsMuSdvMtj3xBjRJfomfV7RXcI7hgDNeV8Ozh8WlDcfVHPUicxav/1BLDu5KIFo/Nf+c8FxwEPwP91dIF4ozxvUgAX4Bt9fpj7YTRWBp7baevs7nqqms9iGa+Vra08K+4ZVd3wah/O7/ZEeYNdHXtsI67Ryuy9yaLapr0Rg5+8zdLSElf+Kcl3/kD/86eFLpySUqkZ8POBZXDhiWfNz04UPht7mNWThd6XU0rJjt9stRxItmLEq79xzvKNBbmVeR3dPrqebHhwLPfA4F9WLy/FKsgbCyxbaCb5JneuwY7uOWZHcbJi57D2gfXdsa5tDrm2XV1ufwz4l3zj2wFItRvmFz/3q+1Q6J1WGCT3DhQKg9/RQWBtd+Cz0AyvDAoru7OK53qnHAYtV6rCYj6if3Ybh/Tf+HbCDZYG8AvtXtPjfqqrLcdKror0irpOufe8uX4k1SW/IRRFi2AgMKFMhNiPhqRBTe6zAZCmz6DmWrVr1Fo0DzOxseRtCq7MFcwJaTs7YFMWybQX3ypUQXzGzlEfrDY4rjn49hzRpwuQ4keNhJTM8p5dU8hc8mfpnJroa0hvQIdYaLLMGNAb7E9sOoMEP/5i/ayGsrvIz/ha5Ub9w9c6RXUhY20NTBiwBmQu+9PXUWDA3dBkmTHgMbA/fV2t1E5q3wl9ZIOcQj4mn5IjSj+Ro1Z799FETiEfsyPwgxkk8PmO9ac09PjLMWKdT2Ruihbx1aQ4YOccOYV8TD5lR6i13n00k1PIx+wI3wSrAYuAR8T81MrjNXfuVfSkpHUFaOBoGbJZ7AemIdo0cwaEwScxgM0K2RAF3K0O7aBkBYXzZ5s5cWngyDTBJhnqOD5IuPWb/4qJmCwr8Rvsu7XbPyYwWQY6ywChyHVudT2jjhO7nV3Ozmy0HEG3oZ/WcXZ7yJlpB26JKm8FYsjLByD2vOQDMeJsCMZn13JqcSOPiZjtVuLPNOPW9eOYwGw3UEX+57U6E94qzPxHlTvw5o3r165euXy+uLRezpqqlKHpc3/+v18s3dqeD4Nn3GSuKwpTPAHkSFSCNCJFZZoKFKqWC2M0KHSv/XHK//vl0q3tmEGGX3TkCRdPOEF6Ytt9P/K+wl/SPUDc8PnjXKf16++hv4MBrt5TCDumrhzw58QAICiBtFwwc1FwP/hFDMShygImDjoqZafNnvfiaYm7ibjhc2ENxkcDdwTD6XfoMZC+UlHMX4y8roA6G3xcnxbelbhxBcrWyjGf3/SoQYr9i+1M511CSprvDuSZEcvCpFQIarukbnbr61QFvo3bY/gzf/7t+XTcD+vlYt619STP0iTkwTxPrseu3lTyJ4uHnTmDf651onu5bKNlFihzs6r9xQAjNyk+R2goV99KEOkBRSX6jgjWZwsESO+Yw+rwslFJCuAbNpSFBh7f7Vp5f/XVqW9MNd3AlTa/LHvOYFnGdjl2Zsh5kc4XBI9FZb/Tnt8F64NmX3egEiBwlYg9gzLa3xXXFUwveOXXx0uzpsjiyCq6BPtSL0jE/ndZl8z0P7dWY8f+spoHL7CMPOOCzjNw4U/QYlnE4QKZ+qiXHvOiU9gnitYYJ+B4Th9TJKXYiD5C46LyvqfB3LSMMp7XckU03UK6uLZAPxb46XKzcu3O+TBs17MmS7jvoKC5TAUHjdN0YdNOPTQiQQjs2uMFponiTYvMNT9WvoH+DppGq7h4tT5NHkr4nTt4+QhXoSkCLgzgu+xCyBR2RchlHErN+B6+iVPrk/cp3sOUU01Z+Mb9vknEDZ+vW8cq1w8LR/llStkt500tgt581v/IoP3P5oVR9luZ/ueJ0OVGcT8jc5NfMYOUBuxewD1ESSLWC1WfZPQW0EOHjEcKeYTMQ0qty/EDYhck308khm/BKWXXg9mpWpElsqrjSShbabQULGcSAMfd7xnImrmkRSMr3gu5RmJeIRS/KyOdD9HMEpL2C076DU94eh1D7cMo7lbLWV3lkgfj6NgLanhGImVMaqeTUONyiAVP+GIxfDsAwMAwT+P/OyaaFejDrJgkShABJhkE1Y6EXYU9m1MMoVj+ETgtQMUTpjeK5G9MN5nlQNBr75gYuVWE+g4p1LbCnckxB5CNkjwUIif9Mt3Eqe5Ev11S6TXW8j37GMaAHaSxVgu0ExILZZnwObvDrhBYqkReKm23/T0BhLfCfYOO7cv8OMRp94G2oLEP7BF4xElrpyp5CK8WlL8EmIjyNYZc3lEqfOTBsptahDz1Jc9NJktgCEblzZeLAxxZYzYmbr9Qz/DyNphGFH0Djdlkfg4QtfEZ5+f2Ss0kvgD7BFa/hZSsr5xFmRFuT5KP5bmeKyD5GAZ0X2SyM+Hy0FUMbrqZggTGw7baxzqFNMgnrM35nuqz7d5k3k1EU4nZwMDn4lrz2SeG8n28f/WwH/r5LE+lgP+Fz+xF99dk5h/VrMhXMvMzXVmdVyw8zK8kbumQAH84zgbD9cdpBWQQq5qbfCSKDUTYyWm1+vhFyfQ0bZVLH4NYdBKjozFkpK3b8ITiOqePofnUVE8iOhcQSCcUKLoNlCdNoACBKsMRbZB3DW2ADNKz0wN0vwzvUv1utajKLAm55UPsw2fbN0j99FmzfCkNP+MZ6XFFJFdSpdUSXjVV7GALsq66zbcrwKKRED2x031XeXfxzAAuG/j4PLn2yHqH93+cVrFyO2c6TpLlRKIAYyzgQVObBXx9SWgXY+hWWzUwlh2kOhEhpJdMOcUbHbZ56njycFvLO9xcAEZmEaFrMo/uq2DBHUveOxtFE0cLzkQzPT5x+nQxrVE+/+nisfVYWNXH6VEEcq1ze32vcmKph86DwCw8dCMvXhgR4kAZNlGeiIG66ItGXAU9OERAd6RV9x8FEoETCEmRIrd58ov5LI2R64aDVwI/SF1UvXiPlpdIr4hmIAi1qGBYtle8SzU2GXpGKgIjszyw7x1rPgn2DYvugF6/v0zKEBLH7QxDrlaBp0Q44SRJ+dEWEJynP3T4edfmqeSDjnC+2JpIySKorMknlkCkTG0L7pW0FWUxkdMhfJQW7X9eJXP6hAl06AAm1WWc5djV3wy7RdfU+p/+0ozBA9Hc5MKbl6TXWRMhpyc6q5FFNR5REpxSaN3xHn6Q2YSIzggkrN594f3JD/9vn97Ob/Np/+rp2NgvVWQiqMlf8O14B9G7PeRwsP/qms+/UZSfR/yMxVcGbkOYzdO7zest126uxcjDqmp256W/K7O3djZ2tZB4NzxTn/RpjskZl62M9X045f2W6wQ0eOQv4IuAJUbt/9ShHzFVGqnGheguFBhVF4L+osXRgxD2efgNq6neJl6PuOnGw1Qj2Jb1Dd9oisto6j4cmcwDH59SwL0fmlpVapJEcOSFMz7F60UPjzUtsQxUAON1VhWtevOa+A6jhkLZgC23jqtrAxE7FSYi4ECvMkBRHvJJVD8rj3R3yJiot3AlyomFuPOs4B176uvjj8acqw/qVqdz7Fi06JqoPWTVgz5BUapBmrYqpfdDkYiOUth1JDN82ZFxXJaoI1cNFjWwGyQMQGYmNgowonFK5QD8sBaVhtCCLVrkbkSMJREOAtMIpEtl2Qo6MtZfI3nwVyQRa1bvIYzMXQPGLcnN1LykBm7+fN4ac4yKngz/wA8+dW2ZS+GNo3ihlyGxsulRlYK7GdguyyqN5KVilU4FVZk1QCtOEmsU8h8Q5IwiRo0JOxm6dx5dyRwQg3Mc28exepAl8cmW6ULURIglvA19bg9AeU+4Uy4FQRmHoxUMPYgUnhcLo89ctO0uQkfDdAJvqpmCZ3JPCii5tVEDQeadwgKwdEh0tEIQ3TARvxTBsj6FWn1wBN5ZfBcloO8BBtDIqAby5iWvWBXMID0kHg8yrpM31uj2zmXUDrVUrpTaSJTwqqprvqqrSSE2YgYE3wQYBbkWmPIZ8+QUwVAwFEOa+VaN3CZOIak/nQMZfzbHghyxghJC0NgW4AQSSHfhxppbvxVzMADZgMighcd/DrrxvWRPqIqarqzMNnX1uSwi2VMTkOygxjs/HbVrACJV0ezAn68SlJ2+gUavM51LArUAR8yOIoOwDRIOti1NfyRpUvE8dio6kfSGaZid5jJMdru8ZBMmL45hEeNB30Aa+0/IACIdf5Zre3gABnfkRpfMgLVThUH+79PAUZfwpzl9JQKZmXLCkz2TjkGNwoDi14JwNwQK7m6wEG1CvDxfNMsEmCGuuCl+kdTucztN42Aec6Bgi6tumEJDYyQhZeNaEVDxEmYUJLxxtgPVO/AFtpbjwKhrVCyNxoNIKGlAEKoXgCSHbze+ylN4zasXwnjxfIWRVT/W1ajnoNhCpEE5kTSfw3RltDSSmIJcdM8iuPESIcrDnsl3jzmmCK+MxO929cdc/91y3k6LbE3YkO4H3kTyLN8GurAhDzlNvzkJxSRFICJZJjtGmCnqjvbwo5ugboAB0NCd+wmDvNb1M2QkzdrWgBEtoANUQC2H0VSCzzWTEqJp932bCpgDfUIC2yIX6Gf+fkvIwQt/6uJURzfm6V3VJMhBijDl58IbnOwDAbOnjAXGNFIsSjk4eMOjRX72Rr85fOS+Sqtt3yuAUZUiOr5VvNA30GgX85897/nU1ZNGCsDOzyHgg+X33fk5wldQI9rIMuCaoM8HKm7C1bTvMl7oG2isPN6CQKdOEXbIhX0Gw8Oo+9XC/6z8jQjmxXVB3hflxHpnkyVS1N4n4T462EXfgENl5NTrBZcypaobUfqg28XoYLrJs7bbM2y6kNp+ipSUzfCGkto+BzCfJHECAS8gIADVRQ9YbWJal1cCFzJgBu8SEBNWhWKotvjeD3O/eDqiBkq98nbz6DSlX5HmnVxo6DaMCcCtE2mNM9U2SIhsOOA1whe4xXhd5s4w3RgNJjygA+nY8eaY2Fye2+MgchWe1ww8Ify4eT1mUhFzNEB8VssRaOL4dYaZ1t2pOWFVmTe3t0Ny0GnKgkzf5QED7G42SGrafJhwsz7s11c3V7t2UqQxSbcbHanbHqUtdP9lavXEFTNzlPfypqyL7j3A7uPFYoIJlB85AHozJHbgjckhZGaqY//tByQW6cTKmPVFmZPquKB80GQV5CDGyQtKBBevZqR4Yb2bJAauP8Rd0sFLTsYY1zRIYLNCnkkjcrcETJdG9hBHDQzYdJmJeKhe9dH1EyBVRZjC0iYSbKlHjkngtWpF8gKTUzLKBgVhbLGcCE9sRLZDgfSJhwiozM2nppgl2Og6IgEU390eW343KZJICjlEM1j//LdSZsONHRvcoWSAXoNMPwFT1EgZURNUYFaOX4owEF3eAlDtSmCgaDvHkfYB9J9Dlhj27q1uEZJn4rsKk8dGAEyr2DOYqO51CmE+sCYdPTV0/60q1SIjheVjK3fJKAvVmS4UsLAJGPrYCgy5CEDXPWz8cHxi5H8Pl9HfAznvUO7+0O3muyKj6b7DFN1MdWjOjFB1xkKVMXilLvPaO8i0LgptQqtMp+7b6KDU8ECW+Zd4NG9EPejHkfeXBgCuOH8o8kyFkqc5ZIHV9UKAzZsy7DyC5S4XWlk7X9zgALEGOp6b8NRrUSltZEjgsBojLwa6jWSIyjYI0DDDKb8unwlUaxAdGuLdCzwQ5IZdKSPpXFnz3btjX+/88DfZPe2fVgt7NLy9LffdeavPxZrqo57GsMf1UdP+61oL9/NMI2/WB0nlKa2JvVNzErpTQyBNaOYlYIC3XTBysHcPx5XhCngBxnFaLpxBy8ZUjF6yqz2PHzcB2qaNwo5FRUTGChWdJWm1/+RDTgc+njqHEOlqdV8V3OH5httUsvyDxPe6lcGUkOYOQnsEzLN2z9Ro4KOLCp5pDZ6OpHjwcPhwZKEWt7GwZ2Bg94fmHrWRurBFgIOD05Q2P0GMcgH/xx8vDGlvqmmD1NF3wFEZ0vVSEQQke8coviEKU7EnSkBMTDZCNhhgbG6ozHA+ex6OHB8tdcM7q7Z+mHT8eYPZbdIVsyOojo6Z0g6QKA0KbEw2El4jYoEp6qccdZ2u+FwaaasikR2EiW6MdBsek6aCU6TlGHNzD5RUXTK2YmL3efy90TmR3VTQFN0z3Y9XR2xueEYce05qcpdOc66GaxSE0joEURsM1qziOn8VnGGxaTYKoY9/Iq1J2k1AqEf0BUI84+QqdoeowxjrUgDr7/Hp+66Z2smj0/Eu17StopUblVw8l7wzYCyZL6Omz4oB/AqSIA0x+3SOdISQI3jYUMkgyqUUHrGN9HMNXKUPCiMRFLB2RNjIWpeyPcuuC/0L5KYB7iGHpq+u8zYGWhPQP5utKW3qj3l1DIMlR/prhosMsNN9IJadRSnN3tgImBK1zSWk8LZRnTKxI4POCgrTtFABzHaYHxgoQjl/Q61q3c6+doSRx94pBDtgNLMAinxePwErNOOZURNsNVvLKdZEPWFw0DlGh+YwJuaAyfsNyzhZlphQJTWq43CYc3/wVrEndYoRJ/ARugBRGSaGUpGiq4DoBILoNWD2FoVOHWUa/VthYNth+xzvYtOT1Gyo6bihR4oz4XVjxUNydcSkDKjxPXzyoTd1iuEncND7HQtHKZ9wKspxBUTGt8z35/iemOjUkZNXput12Og9jbXULIpk2S4GXdO4OKjmbCgSQrx+7+H+MADUnwN5GIelYdOvccys5R4QtsWNhYTTFiwgmgoljg+VClVxA46AbcbcyUJV2pyUDGEZu/ZbW7e0vcAqrsNTegPJD9KYFUnlSGSrBQj/RIBlOMrluySS1vy3mStYdTlGgT/RsJFfJOm9ud0opSqvgTQ257V3GtrwNrbXVLvRyCbwLl9+SyoR1PhSPwTtcC8PzExEjD/v/6rzbj8cGYGit5VXu5FaPuEUZ1eQN+96gwOfnF6TDl7rV4PT6aa0k5lfjZohGDfrLtjIJLKlhGQ1hfh20E+gRHMaJDYNOc0sU1LEXBYQkbkpVvcyeEbRDduzrHWK6CU7v0z1PzWmTQmuvYhHzpQWDrSEgAp41nwqJa0Yk0ZqNfKOTl8Zdtcg5pCibW5EkF/w3aizpNKiHvzSIfpBNjFW71CKjpYxAfhe3A+D2l7fieE0nzk3U7PKmgdidSZJwCPR3kTClRQnkfojQWegFPZnRgI8OwSQvG9//D5RITfcbeauzcacmEe+DQuZR7MiblOuWOAxLCPsgVmkxWT88i94+883bxyG7Ur44/QyVGIEZp6F5ZsOijZGtaxCp05ehv3x8zzCOVfi/dwlUOpGWDwX8jiklm1q+reLWt4O3ui6Dkda6t7yYFmfxzO0Fhsi92+3XMpHF8em6FLZfrtattNJmUTLxf1W1z7WaRLhl/eSM+XZd5rFJ6wyHrs0gTtXMgb5NIukmTiZxzReAQ7q5OQZjXF4ySBTwHFzbwUyWWwcaalq7zYMmHaRMN0xKwCf31EYunXzfMEH3wsodHvYFoA616X+m89aLbM3iYdxWvUM2VvVWuch0Z3axA2KmMqGSNkGBRovO+jWTBIL/AfKAt0vyJOwO2l5CKEisfGHIMPQGPuKzGlAdtwqa856CmyM5s+vI53w3ndhXHysYp13GDSVpl0vpHtmrYyMRHpTt3EXKBvuIpvpv6K8/X8qRHC1wB9uLy84rd4Bh146+UF9N91yqDoLVHcCXmmJRHQS8ZGIeEUlsqUdY561e6Y5pipBLEhYLYP6GUtoo1UCuw6kTEIp6BklNkiQnBgsYKKtqdQ4Jxfoz2VEni92Gxcj/Y8bep78g/cmyvGSu4HSA3PA4eM+eiBtlvNpNUIYaD/5jv/31TBhRkjDFXc3ZPT45kolVPFdO1QrV/nD7BWhW8tqgA3zihYsnWZonaMQamAQbqco/XSW1UDiQIqXw99P5+PUa58WAlaLTMnWQpvB/sk5gW7tNdAWiJ9JHxTMQD6uE9Mn/fBSACv9BExxul3RWU2hTNXkvh953/Gwws/o0tUn20Hjjz3069PmpO/Klj9/6u5OZP8oDQpeNozbjQycF2Nnm5gcJJq7RTTjgZ1P65r8hFpZIHwgkfhHbddGW2kwyS1bKP6IXa+lX3TZsnDY2pnoGa6Sx3+ZvrgIJ/JuzKfmk4nbvXw+7ftZIyf7y00cGN3COrTPM23tjvLybuS0YMzqGJs17ovfFL2kNk4gB/0EHHWwHbDEwnmpCTRoPKfhXc7ukfc1jymqjSiZAzml9pRqYe1fjfIKt8/uRHSu/m6rHr3vtEAZAuOTJouGYOLGfyXUBRtlVK9cStDR4XFry+V9VYj8WpSLq6+Y6xd8/0PdnrmwCS5AlezuQxGM+8aCC1/d9v16tfRDW8B9+ahfAMcBpwvdq6PvvwmhuPvwAUR/YgFNVv2mjjadBq3skbvCUZgNmvALLlmmb2l2zAhcVsETPkrRuUK7g4Y+98FHDM7xOmZTFKyznJrjAhKiblaeGGMYPhRwhDwYitgtsmC7RGQyyprS3KJTUPNHxDKKV1mJIDhDbLKiQ6Anc5LwFIlWgehmyISQjUZiAHe2z8H3zuOWSL2dqyN9MUAQpthiC99aQzBuzL0WlkO2llhuqwMKA/vXgj+N5gtPUFxlRkFmbA0prfASbdUWy4a7dPoqEM1xqVMAthjxsaJ3xbncgH6QG5e15Ej8DFBqU0A6nW4QvL+ckB8um4RnejJEQmFugFDxH4ZSPHhfOXcKhkPINlPXVFHsgBoCtfgC0sr3QsVcvb06z/dzK1UBNqIMhHkQbFZneo5X8jbdiYMti9l9v1nNu9ERalEago30Tz/Gpknqpb8JOuvPWAZ5FdeP2ZEm9N28Xsi+le5VOnILZtjaMuQh1wB1OCrp5samkYG+wSWV2dNGTBYgDvgzLkEP/mcrUq5Y6WuJXukvutbKblS7x1PeX96OHRk5PiHdq8WufLPAAeZg9u3dAS4rqcBqbhbzKL9Ou3ZAyk2n49D3iP27G6/bh71euqfLernZPZ55T30eWzs/d6m8yyR9Toy2C3bxJfejfzTy0je4XDNH6qKJp1QJ2FUqr7gOW0r0Qn/BpRbOKdmmOe/vbyNmKmPAZi0guwezXblCp1nOoAq+dDUUvx7vbi7P86kzruRvYd+vFtNKvAKvHlBtF6JP82Xl95bX6vO3av3/CDnOrMu8rPOVnla4G7wyF3pWOOfJtEUtu9q8dVnyyLZpkc+vvocZcLI/LrFn25bLdU7zgBAW4Fif22y55LY0u9xxDxgMay5mRVduvA7bYAZdo38LUY9y9NhqJdjSo3/XeqSwl2lv1xxg5+9EyFh72Nmzuuv3fRgTzX8coQmiA0pP2W5raUs1hTh6O2sWO5oJ7VIlKxtAjn9Lz1cxiYhOhn91QbRuvsUC1+atG09+7P3dQUshTGiw4VIfWDAafMTNugfptttuoj2DkAYooSwaydgGBdrxAU6pAESOP6Oxz/NIqx0Zkv9KWGxphgPFMMYKspdIM64H+oKLrp6ksen8CZ/vwD6sNYMWv1fUn/ez0/wPWrjOhhXNCDdbQcPW9NRfsBto/zQ3xsMwIZ28IrsxDy+xUgbBRz+NrqdqgkYNr3wrIG2pdezdHpRFS99xY6/q5nq3ZUmmNWJuMSQd3cm44bUgaUjNlY2KiBwoaOgqaKzjTsztNcWDZYX9bbJqPLAsbwy/7Xx3AagWeEbexftBpSE8xQWvKwksMWsR+F6vXhCzcJOk60b7MwY0NISYDtm5GtTbOH1ZLydFrMbjC7Q/8naKbtdfzbvKiNgPI/kZwWeX5WZlraFalYSTzrn5jT46AO6ARasIU8LtS87+PqJRAac9RcLjwlyn8S4e2HqU6yPLKtXrO8xnv3MJSQ3swYKJukXHXENWdWFg9vvE8HqHLeFh+A98Mqqsi5s54ms0cOdCKFovkiVuoAAZuTm12CBzDfKX6DYihagP3dKztqmhhtp1LmAczvcUyWk8tT9UEp9L9f3JD/+w0+P5cbueTsY3r5yPh37XtWW+NOjV3+F9fvOF09daX15pvlvbjK4eZXnfHNpRs3xuDmyTdS+cCBZzJgXXXs1YP7wkmrz0E5yvkcs4QFQ8G/hSq92bN3Ae6wpX5SKwAlO+M+xUM5q+SDbjPFGvvJK7gO/JfGLuLoupqkvE8jPxRyDWPSQpfP5SZptxsKPV07ij6L3m68ACl5S/d+3htVSZOKVp8xK5rKJuKA5gQam83c9F2G6Hds6ug92fUQXyLpIC3C76MWFeGnYCKTB9Z0ZQysxQ7/YbRf2hk/7t079whMQU2aj+HH28YDPQaTb50Iuu2m84paR/egADcqyAtKVJyF4vQVk0XOLfMhYhk/T4zEeRdILu8qYM4j9o+vCFsfPzndHpSeuJvJ01Jj/gdPPa3mn/W7gdUxkGpfV+d6ogWFP3JqI1RLEpaOUm8ug1PWhKJnCKuxDM8h4FxM5Ky3qw225Pu9P0Os7ufFfvBjtuUKDb7UsnTRu2PKHk50cMfZAVaJGrsodx0kCvHwJ3sEdPgprgpEcPJ4Rk9ibZQ1manozUd+jynWqjFo4cX26jp4luGS8WA6Q0jTj0xqnClxEQWBnoQ/+kXlEFEWMoCCmpBJovW2/tov89QQc+CNGXR422hwxJcivzhULIaAy9VIX3vA+/1DDYFwuE9oCRXzzIzcIFFgZuXeW5mtvDWpuvYMhG+IGux2SCLf4h2SBm02hTFjBgMu5rhgOZMYV4NftxWHRcsqswBuwVQMD4zePADZgmCBzuHS5asoeswA9RwkOqbMwvLFolDhdMkdPXTQA2HzEBGNbrJ1q+5+gHlF9nnLW77l053NHviOum9op/9RM97BeOehzG+WWfT4vbYdbmdKNry4TzNUp453vVZF3ok7jjoJ8AO7A+l2mC3QM7f6qgMFDbMQ3y0aQrtzPF3XCN0IzBpfc7NtYCfYWh+UGzMD2+ZDmDdZwhFqI3XjOGxvmYTlcsdy3wWqoUp1YC/ZsSlgD/oRg4RCy4oLIY4BUGaKt4GV9s/vlxPuM5DYhOZTAzOAnWvMEQIGTJkUpz3KbFAOX4JLijNIap1xpmB2kT3II+vo103cVfAM7Zih11kPzaon0h2DghhM9TKYKSJJ65XhM+BgW2UW2bKZWkc9hsr5pLzMoR5kMmXMK1IddFqjemaPcbpBco+kKUvgot5e5+/uoT2/p+Z7+11Omv3YCpIZ6bZl+s0vykfgIBZ11EPc8vhCFWBX8wweuSR4oc/KMESM9rx7tPhkZf0hI14CpLUVitZl/cYm4uzT+e2eNbN69evrTfrCypl+VppKTwp8fKn7k+9iaO5s9qkyVy3dSjp+FS3T890ZVa1FO1e/V3jTHvm+fDLPK6XPFTlPYonIkbO8EAXYPnYJ7dG4kr/gNbqDv8wTEJGySTNXbdytDr8vczL67gL9MBmeonMzeX7GZtM62LLE1IiC9/3i634ihYPC1bpBum0nRtFVtMAqOM4fIkxfWXrGY9OpiE5nmn2Q6SQMXOEx9SCo8a35Ac0yOzP71khcO9Ic9yK2Bq/cQg2eASae3UXk0iYQKH1cM1XCaBCWlB4LwkuKbjusjgMGx3rcxKF5MhAXGBAM/mU9xxIy2hQ44X9W20P55Oo4tnKmkANIalBpa5KqWWvidJnkMDZe9LTRnTpXFdfAkwc2Ump9c8NnQcBwFck881kqEI8tqMYCwbhqfJM4EJMJ8vq4LEkAbSIJRZNRxZDYUajcDvmANMeaDZyaDSqtfQ2BxdwbTc4M2YbVDwG6uJ5xExvtFmo3RcE9ta9hSLOQmVni5UMK+ajPtE6wCv+InrOL21V/uVB81t6K247pOq3GzlPDVIXlO70hNvL08jxdcN9OmqG6KpVr2Cb8tqSU9jjcYcNYcrlY7CF5KZb//nXBUfhJ8RKBsAAKd82OHkIgLXzzpovgPgxUfS542Hn/xP3yX6zsb2+jQDdAEBAHCA9MpPoQsZkvngkvp0+OcYMMO75BYAOeNHK22bZez/fCVGHF3qnUNTr2yL1pJoBTWTMstk1DFJuTKc16YiTdVxFbyAYTAKDBOjYAykvH5TtZlnAJtgy6dS039TnVFiNkJXKseZjRO3Bc7MCpxRO9xiZe8kQ3zoaVxX48EIr9zDEly37LhKmCceDJMr+5KNLufZ5e+9ZN9GkElbyKkEcqGCTMgTE601qUlVfOhxs8ye7gdkCP1ukTBJtvURQTGoHsWHlAOU/Yf1aG0IsKB+Be3Hbwtw5IywAV9L6okQS0q2/nGdwT0VTPWuZgzQZ3+R83X+HnDsLv7RMjUoOaydZSbpbqSzArB1FmGaP4KuMSFDyCWufHNKQu8ZiE1kLm8/RL9W8p/PyDYad6IRj9I9bp0ZR2XW7izqXnhaOqh7jy27zpDX+g18+2+mmoeiKvVO2W4wdwERIpdXJO0YSO3hhmPMGk1RnWXmDHE3KITA3VWdB25oHhokT4oZtFFgKBDbk9g6IH44nD8aIbugKVATQ46nRs4oA/LdhUPcjc/7XCfhPKHOEDAYsW2f0dp1RrysjnHW4obyjTOSedgc/27P0GaaFZrfkiHxreFUu4/nob2TKOcQZff9dOscuFWmUOIA5FlAijQCCFTMOAHWnWIEHAAZhuDBCV0Arl/7d4qDjBuAQM7J8Ih2iQCFXSgihIyPhCPbyD8NDDPpW+M4s5hOlG6C4Xsm5bm5iRkVGdtk6DQM5y9EiNTpWGY0Mp9MnpP6Tsy2m2A/H2sMxoq5tyVbLnr4v0wTTTL3GCYiVkadnU80bDrWOJnGWMZtx5psgnRKYxRmVG+6o5OqUoaQFkam77afwdcMw2XGsJTO+YkkgesfiDVLVqxispY+eZLT9ZBDdVrKGEpn5FSxZOZeYtLO2rO8tTJuy9hg61TDE8PkRH3kFOM0468kpjofJtXopsKocjetYi6NElw77iAnp4qBZKIYzEcJFCIvXGeSbe4MpqE7El/zBE+/ozjJNLfNSxQ0hDUbb46WrjFkzriyM3+mLzhy4iWveM0b3vKO93zgzIWPfMXPGkwmv2Xnh3XwE5/5qelkqDQ1n6zTr/kLveOGho6BiYWNg4uHT0BIREzSqDJHsY6oqKU3rszJXh+KVi5d7XXqctFGz+0/z7ABk2btbMxvOoz507Ih43otueuDKfus+MtHMw76xlcOyaM3wuA7Rl/71rV4/oV8N5//9647rMB769x2y09MXnmjj1mhIiWKldrOolyZClZVKlWr8VKtenUaNGl0xrQWzVq1ee2tc352xFG/uONXxxx3ymmXnXDSFT32u2TOhdZ5Z95ltzg4QgttdNBlrx7dvDla9f3TiRMHJ4bBxaF2Lmid6LJd8a4TcTdPGz69a79Tc+7ghO7Nv78rW2c7Ds++QAsmi/F62fFPvLLy09e3H/5/K4vxIRAXhY6f0Cix9PdNxWioHUQObVre2Qtd23Tu7n1AXI5LPdaMPLx/sZaHtA0A";
72
+
73
+ // node_modules/@fontsource/lato/files/lato-latin-700-normal.woff
74
+ var lato_latin_700_normal_default = "data:font/woff;base64,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";
75
+
76
+ // node_modules/@fontsource/lato/files/lato-latin-700-normal.woff2
77
+ var lato_latin_700_normal_default2 = "data:font/woff2;base64,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";
78
+
79
+ // node_modules/@fontsource/lato/files/lato-latin-ext-400-normal.woff
80
+ var lato_latin_ext_400_normal_default = "data:font/woff;base64,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";
81
+
82
+ // node_modules/@fontsource/lato/files/lato-latin-ext-400-normal.woff2
83
+ var lato_latin_ext_400_normal_default2 = "data:font/woff2;base64,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";
84
+
85
+ // node_modules/@fontsource/lato/files/lato-latin-ext-700-normal.woff
86
+ var lato_latin_ext_700_normal_default = "data:font/woff;base64,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";
87
+
88
+ // node_modules/@fontsource/lato/files/lato-latin-ext-700-normal.woff2
89
+ var lato_latin_ext_700_normal_default2 = "data:font/woff2;base64,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";
90
+
91
+ // src/styles/fonts.ts
92
+ var UI_KIT_FONT_STYLE_ID = "smartsell-ui-kit-fonts";
93
+ var uiKitFontFacesCss = `
94
+ @font-face {
95
+ font-family: "Lato";
96
+ font-style: normal;
97
+ font-display: swap;
98
+ font-weight: 400;
99
+ src: url(${JSON.stringify(lato_latin_ext_400_normal_default2)}) format("woff2"), url(${JSON.stringify(lato_latin_ext_400_normal_default)}) format("woff");
100
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
101
+ }
102
+
103
+ @font-face {
104
+ font-family: "Lato";
105
+ font-style: normal;
106
+ font-display: swap;
107
+ font-weight: 400;
108
+ src: url(${JSON.stringify(lato_latin_400_normal_default2)}) format("woff2"), url(${JSON.stringify(lato_latin_400_normal_default)}) format("woff");
109
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
110
+ }
111
+
112
+ @font-face {
113
+ font-family: "Lato";
114
+ font-style: normal;
115
+ font-display: swap;
116
+ font-weight: 700;
117
+ src: url(${JSON.stringify(lato_latin_ext_700_normal_default2)}) format("woff2"), url(${JSON.stringify(lato_latin_ext_700_normal_default)}) format("woff");
118
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
119
+ }
120
+
121
+ @font-face {
122
+ font-family: "Lato";
123
+ font-style: normal;
124
+ font-display: swap;
125
+ font-weight: 700;
126
+ src: url(${JSON.stringify(lato_latin_700_normal_default2)}) format("woff2"), url(${JSON.stringify(lato_latin_700_normal_default)}) format("woff");
127
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
128
+ }
129
+ `;
130
+ function injectUiKitFonts() {
131
+ if (typeof document === "undefined") {
132
+ return;
133
+ }
134
+ if (document.getElementById(UI_KIT_FONT_STYLE_ID)) {
135
+ return;
136
+ }
137
+ const styleElement = document.createElement("style");
138
+ styleElement.id = UI_KIT_FONT_STYLE_ID;
139
+ styleElement.textContent = uiKitFontFacesCss;
140
+ document.head.appendChild(styleElement);
141
+ }
44
142
 
45
143
  // src/foundation/async.ts
46
144
  var DEFAULT_ASYNC_SEARCH_DEBOUNCE_MS = 1500;
47
145
 
146
+ // src/foundation/className.ts
147
+ var cx = (...values) => {
148
+ return values.filter(Boolean).join(" ");
149
+ };
150
+ var UI_KIT_ROOT_CLASSNAME = "ui-kit-root";
151
+
48
152
  // src/foundation/color.ts
49
153
  function withAlpha(hex, alpha) {
50
154
  const normalized = hex.replace("#", "").trim();
@@ -72,52 +176,28 @@ var CONTROL_METRICS_BY_SIZE = {
72
176
  selectIndicatorOffset: 12
73
177
  },
74
178
  md: {
75
- height: 38,
179
+ height: 34,
76
180
  fontSize: 14,
77
181
  lineHeight: "18px",
78
- paddingX: 16,
79
- paddingY: 9,
80
- buttonPaddingX: 18,
81
- selectPaddingRight: 44,
82
- selectIndicatorOffset: 16
182
+ paddingX: 14,
183
+ paddingY: 7,
184
+ buttonPaddingX: 16,
185
+ selectPaddingRight: 42,
186
+ selectIndicatorOffset: 14
83
187
  },
84
188
  lg: {
85
- height: 46,
189
+ height: 38,
86
190
  fontSize: 15,
87
191
  lineHeight: "18px",
88
- paddingX: 18,
89
- paddingY: 13,
90
- buttonPaddingX: 20,
91
- selectPaddingRight: 48,
92
- selectIndicatorOffset: 18
192
+ paddingX: 16,
193
+ paddingY: 9,
194
+ buttonPaddingX: 18,
195
+ selectPaddingRight: 46,
196
+ selectIndicatorOffset: 16
93
197
  }
94
198
  };
95
199
  var getControlMetrics = (size) => CONTROL_METRICS_BY_SIZE[size];
96
- var getTextInputPadding = (size, options = {}) => {
97
- var _a, _b;
98
- const metrics = getControlMetrics(size);
99
- const leadingInset = (_a = options.leadingInset) != null ? _a : 0;
100
- const trailingInset = (_b = options.trailingInset) != null ? _b : 0;
101
- return `${metrics.paddingY}px ${metrics.paddingX + trailingInset}px ${metrics.paddingY}px ${metrics.paddingX + leadingInset}px`;
102
- };
103
- var getSelectControlPadding = (size) => {
104
- const metrics = getControlMetrics(size);
105
- return `${metrics.paddingY}px ${metrics.selectPaddingRight}px ${metrics.paddingY}px ${metrics.paddingX}px`;
106
- };
107
200
  var getSelectIndicatorOffset = (size) => getControlMetrics(size).selectIndicatorOffset;
108
- var getButtonSizeStyles = (size) => {
109
- const metrics = getControlMetrics(size);
110
- return {
111
- boxSizing: "border-box",
112
- height: metrics.height,
113
- padding: `0 ${metrics.buttonPaddingX}px`,
114
- fontSize: metrics.fontSize,
115
- lineHeight: metrics.lineHeight
116
- };
117
- };
118
-
119
- // src/foundation/motion.ts
120
- var FIELD_SURFACE_TRANSITION = "border-color 160ms ease, box-shadow 160ms ease, background-color 160ms ease";
121
201
 
122
202
  // src/foundation/shadow.ts
123
203
  var LIGHT_SHADOW = "#B8B8B8";
@@ -129,6 +209,18 @@ function getComponentShadow(theme) {
129
209
  const shadowColor = (_a = colors.shadow) != null ? _a : fallbackShadow;
130
210
  return `${shadowColor} 0px 4px 5px`;
131
211
  }
212
+ function getInsetBorderShadow(borderColor, options = {}) {
213
+ const {
214
+ outerShadow,
215
+ componentShadow = "var(--ui-kit-component-shadow)",
216
+ insetWidth = 1
217
+ } = options;
218
+ return [
219
+ outerShadow,
220
+ `inset 0 0 0 ${insetWidth}px ${borderColor}`,
221
+ componentShadow
222
+ ].filter(Boolean).join(", ");
223
+ }
132
224
 
133
225
  // src/foundation/shape.ts
134
226
  var STANDARD_COMPONENT_BORDER_RADIUS = 16;
@@ -188,6 +280,47 @@ var assertThemeColorSchema = (theme) => {
188
280
  };
189
281
  assertThemeColorSchema(import_smartsell_theme.lightTheme);
190
282
  assertThemeColorSchema(import_smartsell_theme.darkTheme);
283
+ var ROOT_THEME_VARIABLES = [
284
+ ["--theme-primary", "primary"],
285
+ ["--theme-primaryLight", "primaryLight"],
286
+ ["--theme-primaryDark", "primaryDark"],
287
+ ["--theme-shadow", "shadow"],
288
+ ["--theme-secondary", "secondary"],
289
+ ["--theme-background", "background"],
290
+ ["--theme-surface", "surface"],
291
+ ["--theme-text", "text"],
292
+ ["--theme-textLight", "textLight"],
293
+ ["--theme-positive", "positive"],
294
+ ["--theme-negative", "negative"],
295
+ ["--theme-warning", "warning"],
296
+ ["--theme-info", "info"],
297
+ ["--theme-onPrimary", "onPrimary"],
298
+ ["--theme-onSecondary", "onSecondary"]
299
+ ];
300
+ var syncUiKitThemeVariables = (tokens) => {
301
+ if (typeof document === "undefined") {
302
+ return;
303
+ }
304
+ const rootStyle = document.documentElement.style;
305
+ ROOT_THEME_VARIABLES.forEach(([variableName, colorName]) => {
306
+ rootStyle.setProperty(variableName, tokens.theme.colors[colorName]);
307
+ });
308
+ rootStyle.setProperty("--ui-kit-border-soft", tokens.borderSoft);
309
+ rootStyle.setProperty("--ui-kit-border-strong", tokens.borderStrong);
310
+ rootStyle.setProperty("--ui-kit-surface-muted", tokens.surfaceMuted);
311
+ rootStyle.setProperty("--ui-kit-surface-raised", tokens.surfaceRaised);
312
+ rootStyle.setProperty("--ui-kit-overlay", tokens.overlay);
313
+ rootStyle.setProperty("--ui-kit-focus-ring", tokens.focusRing);
314
+ rootStyle.setProperty("--ui-kit-muted-text", tokens.mutedText);
315
+ rootStyle.setProperty("--ui-kit-component-shadow", getComponentShadow(tokens.theme));
316
+ rootStyle.setProperty("--ui-kit-card-bg", withAlpha(tokens.theme.colors.background, 0.7));
317
+ rootStyle.setProperty("--ui-kit-card-border", withAlpha(tokens.theme.colors.text, 0.5));
318
+ rootStyle.setProperty("--ui-kit-button-outline-hover", withAlpha(tokens.theme.colors.text, 0.08));
319
+ rootStyle.setProperty("--ui-kit-button-outline-active", withAlpha(tokens.theme.colors.text, 0.14));
320
+ rootStyle.setProperty("--ui-kit-button-ghost-border", withAlpha(tokens.theme.colors.primary, 0.5));
321
+ rootStyle.setProperty("--ui-kit-placeholder", withAlpha(tokens.theme.colors.text, 0.5));
322
+ rootStyle.setProperty("--ui-kit-negative-soft", withAlpha(tokens.theme.colors.negative, 0.12));
323
+ };
191
324
  function normalizeUiKitTheme(theme) {
192
325
  var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o;
193
326
  const colors = theme.colors;
@@ -235,11 +368,61 @@ function createUiKitThemeTokens(themeSource) {
235
368
  }
236
369
  function useUiKitTheme() {
237
370
  const activeTheme = (0, import_smartsell_theme.useThemeValue)();
238
- return (0, import_react.useMemo)(() => createUiKitThemeTokens(activeTheme), [activeTheme]);
371
+ const tokens = (0, import_react.useMemo)(() => createUiKitThemeTokens(activeTheme), [activeTheme]);
372
+ (0, import_react.useEffect)(() => {
373
+ syncUiKitThemeVariables(tokens);
374
+ }, [tokens]);
375
+ return tokens;
239
376
  }
240
377
 
241
378
  // src/components/Button.tsx
242
379
  var import_jsx_runtime = require("react/jsx-runtime");
380
+ var BUTTON_SIZE_CLASSNAMES = {
381
+ sm: "h-[30px] px-[14px] text-[13px] leading-4",
382
+ md: "h-[34px] px-4 text-sm leading-[18px]",
383
+ lg: "h-[38px] px-[18px] text-[15px] leading-[18px]"
384
+ };
385
+ var BUTTON_VARIANT_CLASSNAMES = {
386
+ solid: [
387
+ "border-[var(--theme-primary)]",
388
+ "bg-[var(--theme-primary)]",
389
+ "text-[var(--theme-onPrimary)]",
390
+ "shadow-[0px_4px_5px_var(--theme-shadow)]",
391
+ "hover:border-[var(--theme-primaryDark)]",
392
+ "hover:bg-[var(--theme-primaryDark)]",
393
+ "hover:-translate-y-[0.5px]",
394
+ "active:translate-y-px",
395
+ "active:scale-[0.985]"
396
+ ].join(" "),
397
+ outline: [
398
+ "border-[var(--theme-textLight)]",
399
+ "bg-transparent",
400
+ "text-[var(--theme-text)]",
401
+ "shadow-[0px_4px_5px_var(--theme-shadow)]",
402
+ "hover:-translate-y-[0.5px]",
403
+ "hover:bg-[var(--ui-kit-button-outline-hover)]",
404
+ "active:translate-y-px",
405
+ "active:scale-[0.985]",
406
+ "active:bg-[var(--ui-kit-button-outline-active)]"
407
+ ].join(" "),
408
+ ghost: [
409
+ "border-transparent",
410
+ "bg-transparent",
411
+ "text-[var(--theme-text)]",
412
+ "shadow-none",
413
+ "hover:-translate-y-[0.5px]",
414
+ "hover:border-[var(--ui-kit-button-ghost-border)]",
415
+ "hover:bg-[var(--theme-primary)]",
416
+ "hover:text-[var(--theme-onPrimary)]",
417
+ "hover:shadow-[0px_4px_5px_var(--theme-shadow)]",
418
+ "active:translate-y-px",
419
+ "active:scale-[0.985]",
420
+ "active:border-[var(--ui-kit-button-ghost-border)]",
421
+ "active:bg-[var(--theme-primary)]",
422
+ "active:text-[var(--theme-onPrimary)]",
423
+ "active:shadow-[0px_4px_5px_var(--theme-shadow)]"
424
+ ].join(" ")
425
+ };
243
426
  function Button({
244
427
  variant = "solid",
245
428
  size = "sm",
@@ -247,137 +430,29 @@ function Button({
247
430
  trailingIcon,
248
431
  children,
249
432
  disabled,
433
+ className,
250
434
  style,
251
435
  type = "button",
252
- onMouseEnter,
253
- onMouseLeave,
254
- onMouseDown,
255
- onMouseUp,
256
- onBlur,
257
- onKeyDown,
258
- onKeyUp,
259
- onTouchStart,
260
- onTouchEnd,
261
- onTouchCancel,
262
436
  ...rest
263
437
  }) {
264
- var _a, _b;
265
- const { theme } = useUiKitTheme();
266
- const [isHovered, setIsHovered] = (0, import_react2.useState)(false);
267
- const [isPressed, setIsPressed] = (0, import_react2.useState)(false);
268
- const buttonShadow = getComponentShadow(theme);
269
- const variantStyles = {
270
- solid: {
271
- backgroundColor: theme.colors.primary,
272
- borderColor: theme.colors.primary,
273
- color: theme.colors.onPrimary
274
- },
275
- outline: {
276
- backgroundColor: "transparent",
277
- borderColor: theme.colors.textLight,
278
- color: theme.colors.text
279
- },
280
- ghost: {
281
- backgroundColor: "transparent",
282
- borderColor: "transparent"
283
- }
284
- };
285
- const interactiveColor = variant === "solid" ? theme.colors.primary : theme.colors.text;
286
- const isInteractive = !disabled;
287
- const buttonTransform = isPressed ? "translateY(1px) scale(0.985)" : isHovered ? "translateY(-0.5px)" : "translateY(0)";
288
- const interactionStyles = {
289
- solid: {
290
- transform: buttonTransform,
291
- filter: void 0
292
- },
293
- outline: {
294
- transform: buttonTransform,
295
- backgroundColor: isPressed ? withAlpha(interactiveColor, 0.14) : isHovered ? withAlpha(interactiveColor, 0.08) : "transparent"
296
- },
297
- ghost: {
298
- transform: buttonTransform,
299
- backgroundColor: isPressed || isHovered ? theme.colors.primary : "transparent",
300
- borderColor: isPressed || isHovered ? withAlpha(theme.colors.primary, 0.5) : "transparent",
301
- color: isPressed || isHovered ? theme.colors.onPrimary : theme.colors.text
302
- }
303
- };
304
438
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
305
439
  "button",
306
440
  {
307
441
  ...rest,
308
442
  type,
309
443
  disabled,
310
- onMouseEnter: (event) => {
311
- if (isInteractive) {
312
- setIsHovered(true);
313
- }
314
- onMouseEnter == null ? void 0 : onMouseEnter(event);
315
- },
316
- onMouseLeave: (event) => {
317
- setIsHovered(false);
318
- setIsPressed(false);
319
- onMouseLeave == null ? void 0 : onMouseLeave(event);
320
- },
321
- onMouseDown: (event) => {
322
- if (isInteractive) {
323
- setIsPressed(true);
324
- }
325
- onMouseDown == null ? void 0 : onMouseDown(event);
326
- },
327
- onMouseUp: (event) => {
328
- setIsPressed(false);
329
- onMouseUp == null ? void 0 : onMouseUp(event);
330
- },
331
- onBlur: (event) => {
332
- setIsHovered(false);
333
- setIsPressed(false);
334
- onBlur == null ? void 0 : onBlur(event);
335
- },
336
- onKeyDown: (event) => {
337
- if (isInteractive && (event.key === " " || event.key === "Enter")) {
338
- setIsPressed(true);
339
- }
340
- onKeyDown == null ? void 0 : onKeyDown(event);
341
- },
342
- onKeyUp: (event) => {
343
- setIsPressed(false);
344
- onKeyUp == null ? void 0 : onKeyUp(event);
345
- },
346
- onTouchStart: (event) => {
347
- if (isInteractive) {
348
- setIsPressed(true);
349
- }
350
- onTouchStart == null ? void 0 : onTouchStart(event);
351
- },
352
- onTouchEnd: (event) => {
353
- setIsPressed(false);
354
- onTouchEnd == null ? void 0 : onTouchEnd(event);
355
- },
356
- onTouchCancel: (event) => {
357
- setIsPressed(false);
358
- onTouchCancel == null ? void 0 : onTouchCancel(event);
359
- },
360
- style: {
361
- display: "inline-flex",
362
- alignItems: "center",
363
- justifyContent: "center",
364
- gap: 10,
365
- borderRadius: STANDARD_COMPONENT_BORDER_RADIUS,
366
- borderStyle: "solid",
367
- borderWidth: 1,
368
- cursor: disabled ? "not-allowed" : "pointer",
369
- fontWeight: 700,
370
- letterSpacing: "0.01em",
371
- opacity: disabled ? DISABLED_COMPONENT_OPACITY : 1,
372
- boxShadow: variant === "ghost" && !isHovered ? "none" : buttonShadow,
373
- transitionDuration: "0.3s",
374
- width: (_a = style == null ? void 0 : style.width) != null ? _a : "fit-content",
375
- maxWidth: (_b = style == null ? void 0 : style.maxWidth) != null ? _b : "fit-content",
376
- ...getButtonSizeStyles(size),
377
- ...variantStyles[variant],
378
- ...isInteractive ? interactionStyles[variant] : void 0,
379
- ...style
380
- },
444
+ className: cx(
445
+ UI_KIT_ROOT_CLASSNAME,
446
+ "box-border inline-flex w-fit max-w-fit items-center justify-center gap-2.5",
447
+ "rounded-2xl border border-solid font-bold tracking-[0.01em]",
448
+ "cursor-pointer transition-all duration-300",
449
+ "disabled:cursor-not-allowed",
450
+ "disabled:translate-y-0 disabled:scale-100",
451
+ BUTTON_SIZE_CLASSNAMES[size],
452
+ BUTTON_VARIANT_CLASSNAMES[variant],
453
+ className
454
+ ),
455
+ style: disabled ? { ...style, opacity: DISABLED_COMPONENT_OPACITY } : style,
381
456
  children: [
382
457
  leadingIcon,
383
458
  children,
@@ -395,67 +470,31 @@ function Card({
395
470
  title,
396
471
  action,
397
472
  padded = true,
398
- style,
473
+ className,
399
474
  ...rest
400
475
  }) {
401
- const { theme } = useUiKitTheme();
402
- const componentShadow = getComponentShadow(theme);
476
+ useUiKitTheme();
403
477
  return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
404
478
  "div",
405
479
  {
406
480
  ...rest,
407
- style: {
408
- borderRadius: 28,
409
- border: `1px solid ${withAlpha(theme.colors.text, 0.5)}`,
410
- background: `${withAlpha(theme.colors.background, 0.7)}`,
411
- boxShadow: componentShadow,
412
- color: theme.colors.text,
413
- padding: padded ? 24 : void 0,
414
- ...style
415
- },
481
+ className: cx(
482
+ UI_KIT_ROOT_CLASSNAME,
483
+ "rounded-[28px] border text-[var(--theme-text)]",
484
+ "shadow-[0px_4px_5px_var(--theme-shadow)]",
485
+ "[background:var(--ui-kit-card-bg)]",
486
+ "[border-color:var(--ui-kit-card-border)]",
487
+ padded && "p-6",
488
+ className
489
+ ),
416
490
  children: [
417
- (eyebrow || title || action) && /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
418
- "div",
419
- {
420
- style: {
421
- display: "flex",
422
- justifyContent: "space-between",
423
- alignItems: "flex-start",
424
- gap: 16,
425
- marginBottom: 18
426
- },
427
- children: [
428
- /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: 6 }, children: [
429
- eyebrow ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
430
- "span",
431
- {
432
- style: {
433
- color: theme.colors.textLight,
434
- fontSize: 12,
435
- fontWeight: 800,
436
- letterSpacing: "0.16em",
437
- textTransform: "uppercase"
438
- },
439
- children: eyebrow
440
- }
441
- ) : null,
442
- title ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
443
- "div",
444
- {
445
- style: {
446
- color: theme.colors.text,
447
- fontSize: 24,
448
- fontWeight: 700,
449
- lineHeight: 1.2
450
- },
451
- children: title
452
- }
453
- ) : null
454
- ] }),
455
- action ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { style: { color: theme.colors.text }, children: action }) : null
456
- ]
457
- }
458
- ),
491
+ (eyebrow || title || action) && /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "mb-[18px] flex items-start justify-between gap-4", children: [
492
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "flex flex-col gap-1.5", children: [
493
+ eyebrow ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { className: "text-xs font-extrabold uppercase tracking-[0.16em] text-[var(--theme-textLight)]", children: eyebrow }) : null,
494
+ title ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: "text-2xl font-bold leading-[1.2] text-[var(--theme-text)]", children: title }) : null
495
+ ] }),
496
+ action ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: "text-[var(--theme-text)]", children: action }) : null
497
+ ] }),
459
498
  children
460
499
  ]
461
500
  }
@@ -469,29 +508,26 @@ function CardSmall({
469
508
  value,
470
509
  icon,
471
510
  color,
511
+ className,
472
512
  style,
473
513
  ...rest
474
514
  }) {
475
- const { theme, surfaceRaised, borderSoft } = useUiKitTheme();
515
+ const { theme } = useUiKitTheme();
476
516
  const accentColor = color != null ? color : theme.colors.primary;
477
- const componentShadow = getComponentShadow(theme);
478
517
  return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
479
518
  "div",
480
519
  {
481
520
  ...rest,
521
+ className: cx(
522
+ UI_KIT_ROOT_CLASSNAME,
523
+ "relative flex min-h-20 items-center gap-4 overflow-hidden",
524
+ "rounded-2xl border border-solid border-[var(--ui-kit-accent)]",
525
+ "bg-[var(--ui-kit-surface-raised)] pl-6 pr-6 text-[var(--theme-text)]",
526
+ "shadow-[0px_4px_5px_var(--theme-shadow)]",
527
+ className
528
+ ),
482
529
  style: {
483
- position: "relative",
484
- display: "flex",
485
- alignItems: "center",
486
- gap: 16,
487
- minHeight: 80,
488
- padding: "0px 0px 0px 24px",
489
- borderRadius: STANDARD_COMPONENT_BORDER_RADIUS,
490
- overflow: "hidden",
491
- border: `1px solid ${theme.colors.textLight}`,
492
- backgroundColor: surfaceRaised,
493
- boxShadow: componentShadow,
494
- color: theme.colors.text,
530
+ "--ui-kit-accent": accentColor,
495
531
  ...style
496
532
  },
497
533
  children: [
@@ -499,66 +535,24 @@ function CardSmall({
499
535
  "div",
500
536
  {
501
537
  "aria-hidden": "true",
502
- style: {
503
- position: "absolute",
504
- left: 0,
505
- top: 0,
506
- bottom: 0,
507
- width: 25,
508
- backgroundColor: accentColor
509
- }
538
+ className: "absolute inset-y-0 left-0 w-[25px] bg-[var(--ui-kit-accent)]"
510
539
  }
511
540
  ),
512
541
  icon ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
513
542
  "div",
514
543
  {
515
544
  "aria-hidden": "true",
516
- style: {
517
- width: 52,
518
- height: 52,
519
- borderRadius: 12,
520
- backgroundColor: withAlpha(accentColor, 0.24),
521
- color: accentColor,
522
- display: "inline-flex",
523
- alignItems: "center",
524
- justifyContent: "center",
525
- flexShrink: 0,
526
- marginLeft: 16
527
- },
545
+ className: cx(
546
+ "ml-4 inline-flex h-[52px] w-[52px] shrink-0 items-center justify-center",
547
+ "rounded-xl bg-[color-mix(in_srgb,var(--ui-kit-accent)_24%,transparent)]",
548
+ "text-[var(--ui-kit-accent)]"
549
+ ),
528
550
  children: icon
529
551
  }
530
552
  ) : null,
531
- /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: 6, minWidth: 0 }, children: [
532
- title ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
533
- "div",
534
- {
535
- style: {
536
- color: theme.colors.text,
537
- fontSize: 14,
538
- fontWeight: 700,
539
- lineHeight: 1.25,
540
- overflow: "hidden",
541
- textOverflow: "ellipsis",
542
- whiteSpace: "nowrap"
543
- },
544
- children: title
545
- }
546
- ) : null,
547
- value ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
548
- "div",
549
- {
550
- style: {
551
- color: theme.colors.text,
552
- fontSize: 18,
553
- fontWeight: 800,
554
- lineHeight: 1.15,
555
- overflow: "hidden",
556
- textOverflow: "ellipsis",
557
- whiteSpace: "nowrap"
558
- },
559
- children: value
560
- }
561
- ) : null
553
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "flex min-w-0 flex-col gap-1.5", children: [
554
+ title ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "truncate text-sm font-bold leading-[1.25] text-[var(--theme-text)]", children: title }) : null,
555
+ value ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "truncate text-[18px] font-extrabold leading-[1.15] text-[var(--theme-text)]", children: value }) : null
562
556
  ] })
563
557
  ]
564
558
  }
@@ -566,12 +560,17 @@ function CardSmall({
566
560
  }
567
561
 
568
562
  // src/components/Checkbox.tsx
569
- var import_react3 = require("react");
563
+ var import_react2 = require("react");
570
564
  var import_jsx_runtime4 = require("react/jsx-runtime");
571
565
  var CHECKBOX_SIZE_BY_CONTROL_SIZE = {
572
- sm: 18,
573
- md: 20,
574
- lg: 22
566
+ sm: 14,
567
+ md: 16,
568
+ lg: 20
569
+ };
570
+ var CHECKBOX_LABEL_CLASSNAMES = {
571
+ sm: "text-[13px] leading-4",
572
+ md: "text-sm leading-[18px]",
573
+ lg: "text-[15px] leading-[18px]"
575
574
  };
576
575
  var getCheckboxSize = (controlSize) => CHECKBOX_SIZE_BY_CONTROL_SIZE[controlSize];
577
576
  var hasNodeContent = (value) => {
@@ -660,19 +659,18 @@ function Checkbox({
660
659
  ...rest
661
660
  }) {
662
661
  const { theme, mutedText } = useUiKitTheme();
663
- const controlMetrics = getControlMetrics(controlSize);
664
662
  const indicatorSize = getCheckboxSize(controlSize);
665
663
  const hasLabel = hasNodeContent(label);
666
664
  const hasHint = hasNodeContent(hint);
667
665
  const hasError = hasNodeContent(error);
668
666
  const hasSecondaryContent = hasLabel && hasHint;
669
- const resolvedId = id != null ? id : `ss-checkbox-${(0, import_react3.useId)().replace(/:/g, "")}`;
670
- const inputRef = (0, import_react3.useRef)(null);
671
- const [isFocused, setIsFocused] = (0, import_react3.useState)(false);
672
- const [internalChecked, setInternalChecked] = (0, import_react3.useState)(Boolean(defaultChecked));
667
+ const resolvedId = id != null ? id : `ss-checkbox-${(0, import_react2.useId)().replace(/:/g, "")}`;
668
+ const inputRef = (0, import_react2.useRef)(null);
669
+ const [isFocused, setIsFocused] = (0, import_react2.useState)(false);
670
+ const [internalChecked, setInternalChecked] = (0, import_react2.useState)(Boolean(defaultChecked));
673
671
  const isControlled = checked !== void 0;
674
672
  const resolvedChecked = isControlled ? Boolean(checked) : internalChecked;
675
- (0, import_react3.useEffect)(() => {
673
+ (0, import_react2.useEffect)(() => {
676
674
  if (!inputRef.current) {
677
675
  return;
678
676
  }
@@ -681,43 +679,29 @@ function Checkbox({
681
679
  return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
682
680
  "div",
683
681
  {
684
- className,
685
- style: {
686
- width: "100%",
687
- display: "flex",
688
- flexDirection: "column",
689
- gap: 6,
690
- ...style
691
- },
682
+ className: cx(UI_KIT_ROOT_CLASSNAME, "flex w-full flex-col gap-1.5", className),
683
+ style,
692
684
  children: /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
693
685
  "label",
694
686
  {
695
687
  htmlFor: resolvedId,
696
- style: {
697
- display: "inline-flex",
698
- alignItems: hasSecondaryContent ? "flex-start" : "center",
699
- gap: 10,
700
- width: hasLabel || hasHint || hasError ? "100%" : "auto",
701
- cursor: disabled ? "not-allowed" : "pointer",
702
- opacity: disabled ? DISABLED_FIELD_OPACITY : 1,
703
- userSelect: "none"
704
- },
688
+ className: cx(
689
+ "inline-flex select-none gap-2.5",
690
+ hasSecondaryContent ? "items-start" : "items-center",
691
+ hasLabel || hasHint || hasError ? "w-full" : "w-auto",
692
+ disabled ? "cursor-not-allowed" : "cursor-pointer"
693
+ ),
694
+ style: disabled ? { opacity: DISABLED_FIELD_OPACITY } : void 0,
705
695
  children: [
706
696
  /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
707
697
  "span",
708
698
  {
709
- style: {
710
- position: "relative",
711
- display: "inline-flex",
712
- alignItems: "center",
713
- justifyContent: "center",
714
- flexShrink: 0,
715
- padding: 2,
716
- marginTop: hasSecondaryContent ? 1 : 0,
717
- borderRadius: 999,
718
- boxShadow: isFocused ? `0 0 0 3px ${withAlpha(theme.colors.primary, 0.16)}` : "none",
719
- transition: "box-shadow 140ms ease"
720
- },
699
+ className: cx(
700
+ "relative inline-flex shrink-0 items-center justify-center rounded-full p-0.5",
701
+ hasSecondaryContent ? "mt-px" : "mt-0",
702
+ "transition-shadow duration-150",
703
+ isFocused ? "shadow-[0_0_0_3px_var(--ui-kit-focus-ring)]" : "shadow-none"
704
+ ),
721
705
  children: [
722
706
  /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
723
707
  "input",
@@ -743,15 +727,10 @@ function Checkbox({
743
727
  setIsFocused(false);
744
728
  onBlur == null ? void 0 : onBlur(event);
745
729
  },
746
- style: {
747
- position: "absolute",
748
- inset: 0,
749
- width: "100%",
750
- height: "100%",
751
- margin: 0,
752
- opacity: 0,
753
- cursor: disabled ? "not-allowed" : "pointer"
754
- }
730
+ className: cx(
731
+ "absolute inset-0 m-0 h-full w-full opacity-0",
732
+ disabled ? "cursor-not-allowed" : "cursor-pointer"
733
+ )
755
734
  }
756
735
  ),
757
736
  /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
@@ -764,7 +743,8 @@ function Checkbox({
764
743
  checkedColor: theme.colors.primary,
765
744
  iconColor: theme.colors.onPrimary,
766
745
  uncheckedBorderColor: withAlpha(theme.colors.text, 0.24),
767
- uncheckedBackgroundColor: theme.colors.surface
746
+ uncheckedBackgroundColor: theme.colors.surface,
747
+ style: disabled ? { opacity: 1 } : void 0
768
748
  }
769
749
  )
770
750
  ]
@@ -773,52 +753,17 @@ function Checkbox({
773
753
  hasLabel || hasHint || hasError ? /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
774
754
  "span",
775
755
  {
776
- style: {
777
- display: "flex",
778
- flexDirection: "column",
779
- gap: 4,
780
- justifyContent: hasSecondaryContent ? "flex-start" : "center",
781
- minWidth: 0
782
- },
756
+ className: cx(
757
+ "flex min-w-0 flex-col gap-1",
758
+ hasSecondaryContent ? "justify-start" : "justify-center"
759
+ ),
783
760
  children: [
784
- label ? /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
785
- "span",
786
- {
787
- style: {
788
- color: theme.colors.text,
789
- fontSize: controlMetrics.fontSize,
790
- lineHeight: controlMetrics.lineHeight,
791
- fontWeight: 600
792
- },
793
- children: [
794
- label,
795
- required ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { style: { color: theme.colors.negative, marginLeft: 4 }, children: "*" }) : null
796
- ]
797
- }
798
- ) : null,
799
- hint ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
800
- "span",
801
- {
802
- style: {
803
- color: mutedText,
804
- fontSize: 13,
805
- lineHeight: 1.45
806
- },
807
- children: hint
808
- }
809
- ) : null,
810
- error ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
811
- "span",
812
- {
813
- style: {
814
- color: theme.colors.negative,
815
- fontSize: 13,
816
- lineHeight: 1.45,
817
- fontWeight: 600
818
- },
819
- children: error
820
- }
821
- ) : null
761
+ label ? /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("span", { className: cx("font-semibold text-[var(--theme-text)]", CHECKBOX_LABEL_CLASSNAMES[controlSize]), children: [
762
+ label,
763
+ required ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "ml-1 text-[var(--theme-negative)]", children: "*" }) : null
764
+ ] }) : null,
765
+ hint ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "text-[13px] leading-[1.45] text-[var(--ui-kit-muted-text)]", children: hint }) : null,
766
+ error ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "text-[13px] font-semibold leading-[1.45] text-[var(--theme-negative)]", children: error }) : null
822
767
  ]
823
768
  }
824
769
  ) : null
@@ -830,22 +775,11 @@ function Checkbox({
830
775
  }
831
776
 
832
777
  // src/components/ComposableModal.tsx
833
- var import_react5 = require("react");
778
+ var import_react4 = require("react");
834
779
 
835
780
  // src/components/Modal.tsx
836
- var import_react4 = require("react");
781
+ var import_react3 = require("react");
837
782
  var import_jsx_runtime5 = require("react/jsx-runtime");
838
- var srOnlyStyle = {
839
- position: "absolute",
840
- width: 1,
841
- height: 1,
842
- padding: 0,
843
- margin: -1,
844
- overflow: "hidden",
845
- clip: "rect(0, 0, 0, 0)",
846
- whiteSpace: "nowrap",
847
- border: 0
848
- };
849
783
  var isUiKitThemeTokens = (theme) => {
850
784
  return Boolean(theme && typeof theme === "object" && "theme" in theme);
851
785
  };
@@ -896,7 +830,6 @@ function ModalActionButton({
896
830
  theme
897
831
  }) {
898
832
  var _a, _b;
899
- const { colors } = theme;
900
833
  const {
901
834
  label,
902
835
  onClick,
@@ -904,54 +837,24 @@ function ModalActionButton({
904
837
  disabled = false,
905
838
  style
906
839
  } = action;
907
- const buttonStyle = {
908
- width: "100%",
909
- display: "flex",
910
- alignItems: "center",
911
- justifyContent: "center",
912
- borderRadius: "0.4rem",
913
- padding: appearance === "link" ? 0 : "0.9rem 1.15rem",
914
- boxSizing: "border-box",
915
- cursor: disabled ? "not-allowed" : "pointer",
916
- fontWeight: 700,
917
- fontSize: "1.05rem",
918
- lineHeight: 1.2,
919
- margin: 0,
920
- textAlign: "center",
921
- transition: "0.5s",
922
- opacity: disabled ? DISABLED_COMPONENT_OPACITY : 1,
923
- filter: disabled ? "saturate(0)" : void 0
924
- };
925
- if (appearance === "text") {
926
- buttonStyle.background = "none";
927
- buttonStyle.border = "1px solid transparent";
928
- buttonStyle.color = colors.primary;
929
- buttonStyle.boxShadow = "none";
930
- } else if (appearance === "link") {
931
- buttonStyle.background = "none";
932
- buttonStyle.border = "none";
933
- buttonStyle.color = colors.primary;
934
- buttonStyle.boxShadow = "none";
935
- } else if (appearance === "outlined") {
936
- buttonStyle.background = "none";
937
- buttonStyle.border = `2px solid ${colors.primary}`;
938
- buttonStyle.color = colors.primary;
939
- buttonStyle.boxShadow = `0 14px 28px ${withAlpha(colors.text, 0.08)}`;
940
- } else {
941
- buttonStyle.background = colors.primary;
942
- buttonStyle.border = "1px solid transparent";
943
- buttonStyle.color = colors.onPrimary;
944
- buttonStyle.boxShadow = `0 14px 28px ${withAlpha(colors.primary, 0.22)}`;
945
- }
840
+ const buttonClassName = cx(
841
+ "flex w-full items-center justify-center rounded-[0.4rem] box-border",
842
+ "m-0 text-center font-bold leading-[1.2]",
843
+ appearance === "link" ? "p-0 text-[1.05rem]" : "px-[1.15rem] py-[0.9rem] text-[1.05rem]",
844
+ disabled ? "cursor-not-allowed saturate-0" : "cursor-pointer",
845
+ appearance === "text" && "border border-transparent bg-transparent text-[var(--ui-kit-modal-primary)] shadow-none",
846
+ appearance === "link" && "border-0 bg-transparent text-[var(--ui-kit-modal-primary)] shadow-none",
847
+ appearance === "outlined" && "border-2 border-[var(--ui-kit-modal-primary)] bg-transparent",
848
+ appearance === "outlined" && "text-[var(--ui-kit-modal-primary)] shadow-[var(--ui-kit-modal-button-shadow-outlined)]",
849
+ appearance === "contained" && "border border-transparent bg-[var(--ui-kit-modal-primary)]",
850
+ appearance === "contained" && "text-[var(--ui-kit-modal-on-primary)] shadow-[var(--ui-kit-modal-button-shadow-contained)]"
851
+ );
946
852
  return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
947
853
  "div",
948
854
  {
855
+ className: "m-0 flex items-center justify-center",
949
856
  style: {
950
857
  width: (_a = style == null ? void 0 : style.width) != null ? _a : (style == null ? void 0 : style.maxWidth) ? "100%" : "max-content",
951
- display: "flex",
952
- alignItems: "center",
953
- justifyContent: "center",
954
- margin: 0,
955
858
  marginBottom: (_b = style == null ? void 0 : style.marginBottom) != null ? _b : 0,
956
859
  ...style
957
860
  },
@@ -961,7 +864,8 @@ function ModalActionButton({
961
864
  type: "button",
962
865
  onClick: disabled ? void 0 : onClick,
963
866
  disabled,
964
- style: buttonStyle,
867
+ className: buttonClassName,
868
+ style: { opacity: disabled ? DISABLED_COMPONENT_OPACITY : 1 },
965
869
  children: label
966
870
  }
967
871
  )
@@ -976,19 +880,13 @@ function ModalBusyIndicator({
976
880
  {
977
881
  "aria-live": "polite",
978
882
  role: "status",
883
+ className: "relative inline-flex h-14 w-14 items-center justify-center rounded-full",
979
884
  style: {
980
- position: "relative",
981
- display: "inline-flex",
982
- alignItems: "center",
983
- justifyContent: "center",
984
- width: 56,
985
- height: 56,
986
- borderRadius: 999,
987
885
  backgroundColor: withAlpha(theme.colors.surface, 0.88),
988
886
  boxShadow: `0 18px 36px ${withAlpha(theme.colors.text, 0.08)}`
989
887
  },
990
888
  children: [
991
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { style: srOnlyStyle, children: "Loading" }),
889
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: "ui-kit-sr-only", children: "Loading" }),
992
890
  /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("svg", { "aria-hidden": "true", width: "32", height: "32", viewBox: "0 0 40 40", fill: "none", children: [
993
891
  /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
994
892
  "circle",
@@ -1025,6 +923,33 @@ function ModalBusyIndicator({
1025
923
  }
1026
924
  );
1027
925
  }
926
+ function MaximizeIcon() {
927
+ 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" }) });
928
+ }
929
+ function MinimizeIcon() {
930
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("svg", { "aria-hidden": "true", width: "15", height: "15", viewBox: "0 0 20 20", fill: "none", children: [
931
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
932
+ "path",
933
+ {
934
+ d: "M6.25 4.75H13a2.25 2.25 0 0 1 2.25 2.25v6.75",
935
+ stroke: "currentColor",
936
+ strokeWidth: "1.7",
937
+ strokeLinecap: "round",
938
+ strokeLinejoin: "round"
939
+ }
940
+ ),
941
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
942
+ "path",
943
+ {
944
+ 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",
945
+ stroke: "currentColor",
946
+ strokeWidth: "1.7",
947
+ strokeLinecap: "round",
948
+ strokeLinejoin: "round"
949
+ }
950
+ )
951
+ ] });
952
+ }
1028
953
  function UnifiedModal({
1029
954
  isOpen,
1030
955
  onClose,
@@ -1050,15 +975,30 @@ function UnifiedModal({
1050
975
  }) {
1051
976
  var _a, _b;
1052
977
  const inheritedTheme = useUiKitTheme();
1053
- const modalTheme = (0, import_react4.useMemo)(() => resolveTheme(inheritedTheme, theme), [inheritedTheme, theme]);
1054
- const modalShadow = (0, import_react4.useMemo)(() => {
978
+ const modalTheme = (0, import_react3.useMemo)(() => resolveTheme(inheritedTheme, theme), [inheritedTheme, theme]);
979
+ const modalShadow = (0, import_react3.useMemo)(() => {
1055
980
  return `0 34px 80px ${withAlpha(modalTheme.theme.colors.shadow, 0.28)}`;
1056
981
  }, [modalTheme.theme.colors.shadow]);
1057
- const controlShadow = (0, import_react4.useMemo)(() => getComponentShadow(modalTheme.theme), [modalTheme.theme]);
1058
- const [isMaximized, setIsMaximized] = (0, import_react4.useState)(maximized != null ? maximized : false);
1059
- const titleId = (0, import_react4.useMemo)(() => createTitleId(title), [title]);
982
+ const controlShadow = (0, import_react3.useMemo)(() => getComponentShadow(modalTheme.theme), [modalTheme.theme]);
983
+ const modalVariables = (0, import_react3.useMemo)(() => ({
984
+ "--ui-kit-modal-overlay": modalTheme.overlay,
985
+ "--ui-kit-modal-surface": modalTheme.colors.surface,
986
+ "--ui-kit-modal-surface-raised": modalTheme.surfaceRaised,
987
+ "--ui-kit-modal-text": modalTheme.colors.text,
988
+ "--ui-kit-modal-border-soft": modalTheme.borderSoft,
989
+ "--ui-kit-modal-divider": withAlpha(modalTheme.colors.text, 0.06),
990
+ "--ui-kit-modal-primary": modalTheme.colors.primary,
991
+ "--ui-kit-modal-on-primary": modalTheme.colors.onPrimary,
992
+ "--ui-kit-modal-shadow": modalShadow,
993
+ "--ui-kit-modal-control-shadow": controlShadow,
994
+ "--ui-kit-modal-busy-overlay": withAlpha(modalTheme.colors.surface, 0.58),
995
+ "--ui-kit-modal-button-shadow-outlined": `0 14px 28px ${withAlpha(modalTheme.colors.text, 0.08)}`,
996
+ "--ui-kit-modal-button-shadow-contained": `0 14px 28px ${withAlpha(modalTheme.colors.primary, 0.22)}`
997
+ }), [controlShadow, modalShadow, modalTheme]);
998
+ const [isMaximized, setIsMaximized] = (0, import_react3.useState)(maximized != null ? maximized : false);
999
+ const titleId = (0, import_react3.useMemo)(() => createTitleId(title), [title]);
1060
1000
  const shouldDisableDismiss = disableDismiss || isBusy;
1061
- (0, import_react4.useEffect)(() => {
1001
+ (0, import_react3.useEffect)(() => {
1062
1002
  if (typeof maximized === "boolean") {
1063
1003
  setIsMaximized(maximized);
1064
1004
  return;
@@ -1067,7 +1007,7 @@ function UnifiedModal({
1067
1007
  setIsMaximized(true);
1068
1008
  }
1069
1009
  }, [maximized]);
1070
- (0, import_react4.useEffect)(() => {
1010
+ (0, import_react3.useEffect)(() => {
1071
1011
  if (!isOpen || typeof window === "undefined" || typeof document === "undefined") {
1072
1012
  return;
1073
1013
  }
@@ -1091,13 +1031,7 @@ function UnifiedModal({
1091
1031
  "h2",
1092
1032
  {
1093
1033
  id: titleId,
1094
- style: {
1095
- margin: 0,
1096
- color: modalTheme.colors.text,
1097
- fontSize: 24,
1098
- fontWeight: 800,
1099
- lineHeight: 1.1
1100
- },
1034
+ className: "m-0 text-2xl font-extrabold leading-[1.1] text-[var(--ui-kit-modal-text)]",
1101
1035
  children: title
1102
1036
  }
1103
1037
  ) : null;
@@ -1162,62 +1096,49 @@ function UnifiedModal({
1162
1096
  onClose();
1163
1097
  }
1164
1098
  },
1099
+ className: cx(UI_KIT_ROOT_CLASSNAME, "fixed inset-0 z-[70] flex items-center justify-center backdrop-blur-[8px]"),
1165
1100
  style: {
1166
- position: "fixed",
1167
- inset: 0,
1168
- zIndex: 70,
1169
- display: "flex",
1170
- alignItems: "center",
1171
- justifyContent: "center",
1101
+ ...modalVariables,
1172
1102
  padding: isMaximized ? 0 : 16,
1173
- backgroundColor: modalTheme.overlay,
1174
- backdropFilter: "blur(8px)"
1103
+ backgroundColor: "var(--ui-kit-modal-overlay)"
1175
1104
  },
1176
1105
  children: /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
1177
1106
  "div",
1178
1107
  {
1108
+ className: cx(
1109
+ "relative flex flex-col overflow-hidden border",
1110
+ "bg-[linear-gradient(180deg,var(--ui-kit-modal-surface-raised),var(--ui-kit-modal-surface))]",
1111
+ "text-[var(--ui-kit-modal-text)]",
1112
+ isMaximized ? "rounded-none" : "rounded-[30px]"
1113
+ ),
1179
1114
  style: {
1180
- position: "relative",
1181
- display: "flex",
1182
- flexDirection: "column",
1183
1115
  width: isMaximized ? "100vw" : "min(100%, 100%)",
1184
1116
  maxWidth: isMaximized ? "100vw" : normalizeWidth(maxWidth),
1185
1117
  height: isMaximized ? "100vh" : void 0,
1186
1118
  maxHeight: isMaximized ? "100vh" : "calc(100vh - 32px)",
1187
1119
  minWidth: isMaximized ? "100vw" : 300,
1188
- borderRadius: isMaximized ? 0 : 30,
1189
- border: `1px solid ${modalTheme.borderSoft}`,
1190
- background: `linear-gradient(180deg, ${modalTheme.surfaceRaised}, ${modalTheme.colors.surface})`,
1191
- boxShadow: modalShadow,
1192
- color: modalTheme.colors.text,
1193
- overflow: "hidden",
1120
+ borderColor: "var(--ui-kit-modal-border-soft)",
1121
+ boxShadow: "var(--ui-kit-modal-shadow)",
1194
1122
  ...contentStyle
1195
1123
  },
1196
1124
  children: [
1197
1125
  /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
1198
1126
  "div",
1199
1127
  {
1200
- style: {
1201
- display: "flex",
1202
- alignItems: "flex-start",
1203
- justifyContent: "space-between",
1204
- gap: 12,
1205
- padding: "18px 20px 12px",
1206
- borderBottom: `1px solid ${withAlpha(modalTheme.colors.text, 0.06)}`
1207
- },
1128
+ className: "flex items-start justify-between gap-3 border-b px-5 pb-3 pt-[18px]",
1129
+ style: { borderColor: "var(--ui-kit-modal-divider)" },
1208
1130
  children: [
1209
1131
  /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
1210
1132
  "div",
1211
1133
  {
1212
- style: {
1213
- flex: 1,
1214
- opacity: isBusy ? 0.38 : 1,
1215
- transition: "opacity 180ms ease"
1216
- },
1134
+ className: cx(
1135
+ "flex-1 transition-opacity duration-150",
1136
+ isBusy ? "opacity-[0.38]" : "opacity-100"
1137
+ ),
1217
1138
  children: resolvedHeader
1218
1139
  }
1219
1140
  ),
1220
- /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: 8 }, children: [
1141
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "flex items-center gap-2", children: [
1221
1142
  !hideExpandButton ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
1222
1143
  "button",
1223
1144
  {
@@ -1225,19 +1146,9 @@ function UnifiedModal({
1225
1146
  title: isMaximized ? "Minimize" : "Maximize",
1226
1147
  type: "button",
1227
1148
  onClick: () => setIsMaximized((current) => !current),
1228
- style: {
1229
- height: 30,
1230
- width: 30,
1231
- borderRadius: 999,
1232
- border: `1px solid ${modalTheme.borderSoft}`,
1233
- backgroundColor: "transparent",
1234
- color: modalTheme.colors.text,
1235
- cursor: "pointer",
1236
- fontSize: 18,
1237
- fontWeight: 700,
1238
- boxShadow: controlShadow
1239
- },
1240
- children: isMaximized ? "\u25A2" : "\u25A1"
1149
+ className: "m-0 inline-flex h-[30px] w-[30px] shrink-0 cursor-pointer appearance-none items-center justify-center rounded-full border bg-transparent p-0 text-[var(--ui-kit-modal-text)] leading-none shadow-[var(--ui-kit-modal-control-shadow)]",
1150
+ style: { borderColor: "var(--ui-kit-modal-border-soft)" },
1151
+ children: isMaximized ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(MinimizeIcon, {}) : /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(MaximizeIcon, {})
1241
1152
  }
1242
1153
  ) : null,
1243
1154
  !hideCloseButton ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
@@ -1246,18 +1157,15 @@ function UnifiedModal({
1246
1157
  "aria-label": "Close modal",
1247
1158
  type: "button",
1248
1159
  onClick: shouldDisableDismiss ? void 0 : onClose,
1160
+ className: cx(
1161
+ "flex h-[30px] w-[30px] items-center justify-center rounded-full border",
1162
+ "bg-transparent text-[20px] font-bold text-[var(--ui-kit-modal-text)]",
1163
+ "shadow-[var(--ui-kit-modal-control-shadow)]",
1164
+ shouldDisableDismiss ? "cursor-not-allowed" : "cursor-pointer"
1165
+ ),
1249
1166
  style: {
1250
- height: 30,
1251
- width: 30,
1252
- borderRadius: 999,
1253
- border: `1px solid ${modalTheme.borderSoft}`,
1254
- backgroundColor: "transparent",
1255
- color: modalTheme.colors.text,
1256
- cursor: shouldDisableDismiss ? "not-allowed" : "pointer",
1257
- fontSize: 20,
1258
- fontWeight: 700,
1259
- opacity: shouldDisableDismiss ? DISABLED_COMPONENT_OPACITY : 1,
1260
- boxShadow: controlShadow
1167
+ borderColor: "var(--ui-kit-modal-border-soft)",
1168
+ opacity: shouldDisableDismiss ? DISABLED_COMPONENT_OPACITY : 1
1261
1169
  },
1262
1170
  children: "\xD7"
1263
1171
  }
@@ -1269,39 +1177,23 @@ function UnifiedModal({
1269
1177
  /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
1270
1178
  "div",
1271
1179
  {
1272
- style: {
1273
- flex: 1,
1274
- minHeight: 0,
1275
- position: "relative",
1276
- overflow: "auto",
1277
- padding: 24,
1278
- ...bodyStyle
1279
- },
1180
+ className: "relative min-h-0 flex-1 overflow-auto p-6",
1181
+ style: bodyStyle,
1280
1182
  children: [
1281
1183
  /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
1282
1184
  "div",
1283
1185
  {
1284
- style: {
1285
- opacity: isBusy ? 0.38 : 1,
1286
- filter: isBusy ? "saturate(0.8)" : "none",
1287
- pointerEvents: isBusy ? "none" : "auto",
1288
- transition: "opacity 180ms ease, filter 180ms ease"
1289
- },
1186
+ className: cx(
1187
+ "transition-[opacity,filter] duration-150",
1188
+ isBusy ? "pointer-events-none opacity-[0.38] saturate-[0.8]" : "pointer-events-auto opacity-100 saturate-100"
1189
+ ),
1290
1190
  children
1291
1191
  }
1292
1192
  ),
1293
1193
  isBusy ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
1294
1194
  "div",
1295
1195
  {
1296
- style: {
1297
- position: "absolute",
1298
- inset: 0,
1299
- display: "flex",
1300
- alignItems: "center",
1301
- justifyContent: "center",
1302
- backgroundColor: withAlpha(modalTheme.colors.surface, 0.58),
1303
- backdropFilter: "blur(2px)"
1304
- },
1196
+ className: "absolute inset-0 flex items-center justify-center bg-[var(--ui-kit-modal-busy-overlay)] backdrop-blur-[2px]",
1305
1197
  children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(ModalBusyIndicator, { theme: modalTheme })
1306
1198
  }
1307
1199
  ) : null
@@ -1311,13 +1203,8 @@ function UnifiedModal({
1311
1203
  shouldRenderFooter ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
1312
1204
  "div",
1313
1205
  {
1314
- style: {
1315
- display: "flex",
1316
- justifyContent: "flex-end",
1317
- gap: 10,
1318
- padding: "12px 20px 16px",
1319
- borderTop: `1px solid ${withAlpha(modalTheme.colors.text, 0.06)}`
1320
- },
1206
+ className: "flex justify-end gap-2.5 border-t px-5 pb-4 pt-3",
1207
+ style: { borderColor: "var(--ui-kit-modal-divider)" },
1321
1208
  children: footerContent
1322
1209
  }
1323
1210
  ) : null
@@ -1360,7 +1247,7 @@ function ComposableModal({
1360
1247
  children
1361
1248
  }) {
1362
1249
  const slotIds = createModalSlotIds(slotBaseId);
1363
- const context = (0, import_react5.useMemo)(
1250
+ const context = (0, import_react4.useMemo)(
1364
1251
  () => ({
1365
1252
  title,
1366
1253
  payload,
@@ -1380,12 +1267,7 @@ function ComposableModal({
1380
1267
  const defaultHeader = headerFallback != null ? headerFallback : /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
1381
1268
  "h2",
1382
1269
  {
1383
- style: {
1384
- margin: 0,
1385
- fontSize: 30,
1386
- fontWeight: 800,
1387
- lineHeight: 1.1
1388
- },
1270
+ className: "m-0 text-[24px] font-extrabold leading-[1.1]",
1389
1271
  children: title
1390
1272
  }
1391
1273
  );
@@ -1422,10 +1304,10 @@ function ComposableModal({
1422
1304
  }
1423
1305
 
1424
1306
  // src/components/DatePicker.tsx
1425
- var import_react7 = require("react");
1307
+ var import_react6 = require("react");
1426
1308
 
1427
1309
  // src/components/Input.tsx
1428
- var import_react6 = require("react");
1310
+ var import_react5 = require("react");
1429
1311
  var import_jsx_runtime7 = require("react/jsx-runtime");
1430
1312
  var PASSWORD_TOGGLE_METRICS_BY_SIZE = {
1431
1313
  sm: {
@@ -1435,18 +1317,33 @@ var PASSWORD_TOGGLE_METRICS_BY_SIZE = {
1435
1317
  iconSize: 14
1436
1318
  },
1437
1319
  md: {
1320
+ buttonSize: 19,
1321
+ leftOffset: 9,
1322
+ contentGap: 9,
1323
+ iconSize: 15
1324
+ },
1325
+ lg: {
1438
1326
  buttonSize: 20,
1439
1327
  leftOffset: 10,
1440
1328
  contentGap: 10,
1441
1329
  iconSize: 16
1442
- },
1443
- lg: {
1444
- buttonSize: 22,
1445
- leftOffset: 12,
1446
- contentGap: 12,
1447
- iconSize: 18
1448
1330
  }
1449
1331
  };
1332
+ var FIELD_HEIGHT_CLASSNAMES = {
1333
+ sm: "h-[30px]",
1334
+ md: "h-[34px]",
1335
+ lg: "h-[38px]"
1336
+ };
1337
+ var FIELD_TEXT_CLASSNAMES = {
1338
+ sm: "text-[13px] leading-4",
1339
+ md: "text-sm leading-[18px]",
1340
+ lg: "text-[15px] leading-[18px]"
1341
+ };
1342
+ var FIELD_PADDING_X_CLASSNAMES = {
1343
+ sm: "px-3",
1344
+ md: "px-[14px]",
1345
+ lg: "px-4"
1346
+ };
1450
1347
  var getPasswordToggleMetrics = (size) => PASSWORD_TOGGLE_METRICS_BY_SIZE[size];
1451
1348
  function ControlFrame({
1452
1349
  label,
@@ -1458,88 +1355,40 @@ function ControlFrame({
1458
1355
  children,
1459
1356
  style
1460
1357
  }) {
1461
- const { theme, mutedText } = useUiKitTheme();
1358
+ useUiKitTheme();
1462
1359
  if (!label && !hint && !error) {
1463
1360
  return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_jsx_runtime7.Fragment, { children });
1464
1361
  }
1465
- const labelStyle = {
1466
- color: theme.colors.text,
1467
- fontSize: 14,
1468
- fontWeight: 700,
1469
- letterSpacing: "0.01em"
1470
- };
1471
- const wrapperStyle = {
1472
- display: "flex",
1473
- flexDirection: "column",
1474
- gap: 8,
1475
- width: "100%",
1476
- ...style
1477
- };
1478
1362
  if (!useLabelWrapper) {
1479
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { style: wrapperStyle, children: [
1480
- label || hint ? /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: 4 }, children: [
1481
- label ? /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("label", { htmlFor, style: labelStyle, children: [
1482
- label,
1483
- required ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { style: { color: theme.colors.negative, marginLeft: 4 }, children: "*" }) : null
1484
- ] }) : null,
1485
- hint ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1486
- "span",
1363
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: cx(UI_KIT_ROOT_CLASSNAME, "flex w-full flex-col gap-2"), style, children: [
1364
+ label || hint ? /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "flex flex-col gap-1", children: [
1365
+ label ? /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
1366
+ "label",
1487
1367
  {
1488
- style: {
1489
- color: mutedText,
1490
- fontSize: 13,
1491
- lineHeight: 1.45
1492
- },
1493
- children: hint
1368
+ htmlFor,
1369
+ className: "text-sm font-bold tracking-[0.01em] text-[var(--theme-text)]",
1370
+ children: [
1371
+ label,
1372
+ required ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "ml-1 text-[var(--theme-negative)]", children: "*" }) : null
1373
+ ]
1494
1374
  }
1495
- ) : null
1375
+ ) : null,
1376
+ hint ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "text-[13px] leading-[1.45] text-[var(--ui-kit-muted-text)]", children: hint }) : null
1496
1377
  ] }) : null,
1497
1378
  children,
1498
- error ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1499
- "span",
1500
- {
1501
- style: {
1502
- color: theme.colors.negative,
1503
- fontSize: 13,
1504
- fontWeight: 600,
1505
- lineHeight: 1.45
1506
- },
1507
- children: error
1508
- }
1509
- ) : null
1379
+ error ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "text-[13px] font-semibold leading-[1.45] text-[var(--theme-negative)]", children: error }) : null
1510
1380
  ] });
1511
1381
  }
1512
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("label", { htmlFor, style: wrapperStyle, children: [
1513
- label || hint ? /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: 4 }, children: [
1514
- label ? /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("span", { style: labelStyle, children: [
1382
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("label", { htmlFor, className: cx(UI_KIT_ROOT_CLASSNAME, "flex w-full flex-col gap-2"), style, children: [
1383
+ label || hint ? /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "flex flex-col gap-1", children: [
1384
+ label ? /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("span", { className: "text-sm font-bold tracking-[0.01em] text-[var(--theme-text)]", children: [
1515
1385
  label,
1516
- required ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { style: { color: theme.colors.negative, marginLeft: 4 }, children: "*" }) : null
1386
+ required ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "ml-1 text-[var(--theme-negative)]", children: "*" }) : null
1517
1387
  ] }) : null,
1518
- hint ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1519
- "span",
1520
- {
1521
- style: {
1522
- color: mutedText,
1523
- fontSize: 13,
1524
- lineHeight: 1.45
1525
- },
1526
- children: hint
1527
- }
1528
- ) : null
1388
+ hint ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "text-[13px] leading-[1.45] text-[var(--ui-kit-muted-text)]", children: hint }) : null
1529
1389
  ] }) : null,
1530
1390
  children,
1531
- error ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1532
- "span",
1533
- {
1534
- style: {
1535
- color: theme.colors.negative,
1536
- fontSize: 13,
1537
- fontWeight: 600,
1538
- lineHeight: 1.45
1539
- },
1540
- children: error
1541
- }
1542
- ) : null
1391
+ error ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "text-[13px] font-semibold leading-[1.45] text-[var(--theme-negative)]", children: error }) : null
1543
1392
  ] });
1544
1393
  }
1545
1394
  function Input({
@@ -1547,6 +1396,7 @@ function Input({
1547
1396
  hint,
1548
1397
  error,
1549
1398
  controlSize = "sm",
1399
+ className,
1550
1400
  showPasswordToggle = true,
1551
1401
  fileButtonLabel,
1552
1402
  id,
@@ -1557,49 +1407,27 @@ function Input({
1557
1407
  type = "text",
1558
1408
  ...rest
1559
1409
  }) {
1560
- const { theme } = useUiKitTheme();
1410
+ useUiKitTheme();
1561
1411
  const controlMetrics = getControlMetrics(controlSize);
1562
- const componentShadow = getComponentShadow(theme);
1563
1412
  const passwordToggleMetrics = getPasswordToggleMetrics(controlSize);
1564
- const generatedId = (0, import_react6.useId)();
1413
+ const generatedId = (0, import_react5.useId)();
1565
1414
  const inputId = id != null ? id : generatedId;
1566
- const fileInputRef = (0, import_react6.useRef)(null);
1567
- const [isPasswordVisible, setIsPasswordVisible] = (0, import_react6.useState)(false);
1568
- const [selectedFileNames, setSelectedFileNames] = (0, import_react6.useState)([]);
1415
+ const fileInputRef = (0, import_react5.useRef)(null);
1416
+ const [isPasswordVisible, setIsPasswordVisible] = (0, import_react5.useState)(false);
1417
+ const [selectedFileNames, setSelectedFileNames] = (0, import_react5.useState)([]);
1569
1418
  const isPasswordField = type === "password";
1570
1419
  const isEmailField = type === "email";
1571
1420
  const isFileField = type === "file";
1572
1421
  const canTogglePasswordVisibility = isPasswordField && showPasswordToggle;
1573
1422
  const resolvedType = canTogglePasswordVisibility ? isPasswordVisible ? "text" : "password" : type;
1574
- (0, import_react6.useEffect)(() => {
1423
+ (0, import_react5.useEffect)(() => {
1575
1424
  if (!isFileField) {
1576
1425
  setSelectedFileNames([]);
1577
1426
  }
1578
1427
  }, [isFileField]);
1579
- const inputBorderColor = error ? theme.colors.negative : theme.colors.textLight;
1580
- const adornedFieldShadow = `0 0 0 1px ${inputBorderColor}, ${componentShadow}`;
1581
- const inputStyle = {
1582
- width: "100%",
1583
- boxSizing: "border-box",
1584
- height: controlMetrics.height,
1585
- borderRadius: STANDARD_COMPONENT_BORDER_RADIUS,
1586
- border: `1px solid ${inputBorderColor}`,
1587
- backgroundColor: theme.colors.surface,
1588
- color: theme.colors.text,
1589
- cursor: disabled ? "not-allowed" : "text",
1590
- opacity: disabled ? DISABLED_FIELD_OPACITY : 1,
1591
- padding: getTextInputPadding(controlSize),
1592
- outline: "none",
1593
- boxShadow: componentShadow,
1594
- fontSize: controlMetrics.fontSize,
1595
- lineHeight: controlMetrics.lineHeight,
1596
- transition: FIELD_SURFACE_TRANSITION,
1597
- ...style
1598
- };
1599
1428
  const hasFileButtonLabel = typeof fileButtonLabel === "string" ? fileButtonLabel.trim().length > 0 : fileButtonLabel != null;
1600
1429
  const hasSelectedFiles = selectedFileNames.length > 0;
1601
1430
  const showUploadLabel = hasFileButtonLabel && !hasSelectedFiles;
1602
- const inputPlaceholderColor = withAlpha(theme.colors.text, 0.5);
1603
1431
  const passwordLockIconSize = passwordToggleMetrics.iconSize + 2;
1604
1432
  const leadingContentGap = Math.max(0, Math.round(controlMetrics.paddingX / 3));
1605
1433
  const fileSelectionText = selectedFileNames.length === 0 ? placeholder != null ? placeholder : "" : selectedFileNames.length === 1 ? selectedFileNames[0] : `${selectedFileNames.length} files selected`;
@@ -1607,144 +1435,35 @@ function Input({
1607
1435
  const fileTriggerWidth = controlMetrics.paddingX + fileIconSize;
1608
1436
  const emailAdornmentWidth = controlMetrics.paddingX + fileIconSize;
1609
1437
  const passwordAdornmentWidth = controlMetrics.paddingX + passwordLockIconSize;
1610
- const hiddenFileInputStyle = {
1611
- display: "none"
1612
- };
1613
- const fileTriggerStyle = {
1614
- flexShrink: 0,
1615
- display: "inline-flex",
1616
- alignItems: "center",
1617
- justifyContent: showUploadLabel ? "flex-start" : "center",
1618
- alignSelf: "stretch",
1619
- gap: showUploadLabel ? leadingContentGap : 0,
1620
- width: showUploadLabel ? void 0 : fileTriggerWidth,
1621
- padding: showUploadLabel ? `0 ${controlMetrics.buttonPaddingX}px 0 ${Math.max(8, Math.round(controlMetrics.paddingX / 2))}px` : 0,
1622
- borderRadius: "15px 0 0 15px",
1623
- border: "none",
1624
- backgroundColor: "transparent",
1625
- color: theme.colors.text,
1626
- fontSize: controlMetrics.fontSize,
1627
- fontWeight: 700,
1628
- lineHeight: controlMetrics.lineHeight,
1629
- whiteSpace: "nowrap",
1630
- cursor: disabled ? "not-allowed" : "pointer",
1631
- appearance: "none"
1632
- };
1633
- const fileIconStyle = {
1634
- flexShrink: 0,
1635
- display: "inline-flex",
1636
- alignItems: "center",
1637
- justifyContent: "center",
1638
- color: inputBorderColor
1639
- };
1640
- const fileFieldStyle = {
1641
- width: "100%",
1642
- boxSizing: "border-box",
1643
- height: controlMetrics.height,
1644
- display: "flex",
1645
- alignItems: "center",
1646
- gap: 0,
1647
- overflow: "hidden",
1648
- borderRadius: STANDARD_COMPONENT_BORDER_RADIUS,
1649
- border: "none",
1650
- backgroundColor: theme.colors.surface,
1651
- color: theme.colors.text,
1652
- cursor: disabled ? "not-allowed" : "pointer",
1653
- opacity: disabled ? DISABLED_FIELD_OPACITY : 1,
1654
- padding: 0,
1655
- outline: "none",
1656
- boxShadow: adornedFieldShadow,
1657
- transition: "box-shadow 160ms ease, background-color 160ms ease",
1658
- textAlign: "left",
1659
- ...style
1660
- };
1661
- const fileSelectionStyle = {
1662
- flex: 1,
1663
- minWidth: 0,
1664
- height: "100%",
1665
- display: "flex",
1666
- alignItems: "center",
1667
- padding: 0,
1668
- border: "none",
1669
- backgroundColor: "transparent",
1670
- textAlign: "left",
1671
- cursor: disabled ? "not-allowed" : "pointer",
1672
- appearance: "none"
1673
- };
1674
- const fileSelectionTextStyle = {
1675
- flex: 1,
1676
- display: "flex",
1677
- alignItems: "center",
1678
- height: "100%",
1679
- minWidth: 0,
1680
- overflow: "hidden",
1681
- textOverflow: "ellipsis",
1682
- whiteSpace: "nowrap",
1683
- color: selectedFileNames.length === 0 ? inputPlaceholderColor : theme.colors.text,
1684
- fontSize: controlMetrics.fontSize,
1685
- lineHeight: controlMetrics.lineHeight,
1686
- padding: `0 ${controlMetrics.paddingX}px 0 ${leadingContentGap}px`
1687
- };
1688
- const emailFieldStyle = {
1689
- width: "100%",
1690
- boxSizing: "border-box",
1691
- height: controlMetrics.height,
1692
- display: "flex",
1693
- alignItems: "center",
1694
- gap: 0,
1695
- overflow: "hidden",
1696
- borderRadius: STANDARD_COMPONENT_BORDER_RADIUS,
1697
- border: "none",
1698
- backgroundColor: theme.colors.surface,
1699
- color: theme.colors.text,
1700
- cursor: disabled ? "not-allowed" : "text",
1701
- opacity: disabled ? DISABLED_FIELD_OPACITY : 1,
1702
- padding: 0,
1703
- outline: "none",
1704
- boxShadow: adornedFieldShadow,
1705
- transition: "box-shadow 160ms ease, background-color 160ms ease",
1706
- textAlign: "left",
1707
- ...style
1708
- };
1709
- const emailAdornmentStyle = {
1710
- flexShrink: 0,
1711
- display: "inline-flex",
1712
- alignItems: "center",
1713
- justifyContent: "center",
1714
- alignSelf: "stretch",
1715
- boxSizing: "border-box",
1716
- width: emailAdornmentWidth,
1717
- backgroundColor: "transparent",
1718
- color: inputBorderColor
1719
- };
1720
- const emailInputStyle = {
1721
- flex: 1,
1722
- minWidth: 0,
1723
- height: "100%",
1724
- boxSizing: "border-box",
1725
- border: "none",
1726
- backgroundColor: "transparent",
1727
- color: theme.colors.text,
1728
- cursor: disabled ? "not-allowed" : "text",
1729
- padding: `0 ${controlMetrics.paddingX}px 0 ${leadingContentGap}px`,
1730
- outline: "none",
1731
- fontSize: controlMetrics.fontSize,
1732
- lineHeight: controlMetrics.lineHeight
1733
- };
1734
- const passwordFieldStyle = {
1735
- ...emailFieldStyle
1736
- };
1737
- const passwordToggleStyle = {
1738
- border: "none",
1739
- ...emailAdornmentStyle,
1740
- width: passwordAdornmentWidth,
1741
- padding: 0,
1742
- cursor: disabled ? "not-allowed" : "pointer",
1743
- appearance: "none"
1744
- };
1745
- const passwordInputStyle = {
1746
- ...emailInputStyle
1747
- };
1438
+ const disabledFieldStyle = disabled ? { opacity: DISABLED_FIELD_OPACITY } : {};
1439
+ const fieldBaseClassName = cx(
1440
+ UI_KIT_ROOT_CLASSNAME,
1441
+ "w-full box-border rounded-2xl border border-solid bg-[var(--theme-surface)]",
1442
+ "text-[var(--theme-text)] outline-none transition-[border-color,box-shadow,background-color]",
1443
+ "duration-150 placeholder:text-[var(--ui-kit-placeholder)]",
1444
+ FIELD_HEIGHT_CLASSNAMES[controlSize],
1445
+ FIELD_TEXT_CLASSNAMES[controlSize],
1446
+ error ? "border-[var(--theme-negative)]" : "border-[var(--theme-textLight)]",
1447
+ disabled ? "cursor-not-allowed" : "cursor-text"
1448
+ );
1449
+ const adornedFieldClassName = cx(
1450
+ UI_KIT_ROOT_CLASSNAME,
1451
+ "box-border flex w-full items-center gap-0 overflow-hidden rounded-2xl",
1452
+ "border border-solid bg-[var(--theme-surface)] text-[var(--theme-text)] text-left",
1453
+ "transition-[border-color,box-shadow,background-color] duration-150",
1454
+ "shadow-[0px_4px_5px_var(--theme-shadow)]",
1455
+ FIELD_HEIGHT_CLASSNAMES[controlSize],
1456
+ FIELD_TEXT_CLASSNAMES[controlSize],
1457
+ error ? "border-[var(--theme-negative)]" : "border-[var(--theme-textLight)]",
1458
+ disabled ? "cursor-not-allowed" : null
1459
+ );
1460
+ const adornedInputClassName = cx(
1461
+ "h-full min-w-0 flex-1 border-0 bg-transparent text-[var(--theme-text)] outline-none",
1462
+ "placeholder:text-[var(--ui-kit-placeholder)]",
1463
+ FIELD_TEXT_CLASSNAMES[controlSize],
1464
+ disabled ? "cursor-not-allowed" : "cursor-text"
1465
+ );
1466
+ const adornmentColorClassName = error ? "text-[var(--theme-negative)]" : "text-[var(--theme-textLight)]";
1748
1467
  const openFilePicker = () => {
1749
1468
  var _a;
1750
1469
  if (disabled) {
@@ -1775,82 +1494,201 @@ function Input({
1775
1494
  setSelectedFileNames(Array.from((_a = event.target.files) != null ? _a : [], (file) => file.name));
1776
1495
  onChange == null ? void 0 : onChange(event);
1777
1496
  },
1778
- style: hiddenFileInputStyle
1497
+ className: "hidden"
1779
1498
  }
1780
1499
  ),
1781
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { style: fileFieldStyle, children: [
1782
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
1783
- "button",
1784
- {
1785
- type: "button",
1786
- disabled,
1787
- "aria-controls": inputId,
1788
- "aria-label": hasSelectedFiles ? rest.multiple ? "Remove selected files" : "Remove selected file" : rest.multiple ? "Select files" : "Select file",
1789
- onClick: hasSelectedFiles ? clearSelectedFiles : openFilePicker,
1790
- style: fileTriggerStyle,
1791
- children: [
1792
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { style: fileIconStyle, "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("svg", { width: fileIconSize, height: fileIconSize, viewBox: "0 0 20 20", fill: "none", children: hasSelectedFiles ? /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_jsx_runtime7.Fragment, { children: [
1793
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1794
- "path",
1795
- {
1796
- d: "M5.5 6.25h9",
1797
- stroke: "currentColor",
1798
- strokeWidth: "1.6",
1799
- strokeLinecap: "round"
1800
- }
1801
- ),
1802
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1803
- "path",
1804
- {
1805
- 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",
1806
- stroke: "currentColor",
1807
- strokeWidth: "1.6",
1808
- strokeLinecap: "round",
1809
- strokeLinejoin: "round"
1810
- }
1811
- ),
1812
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1813
- "path",
1814
- {
1815
- d: "M7.75 8.25v5.5",
1816
- stroke: "currentColor",
1817
- strokeWidth: "1.6",
1818
- strokeLinecap: "round"
1819
- }
1820
- ),
1821
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1822
- "path",
1823
- {
1824
- d: "M10 8.25v5.5",
1825
- stroke: "currentColor",
1826
- strokeWidth: "1.6",
1827
- strokeLinecap: "round"
1828
- }
1500
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
1501
+ "div",
1502
+ {
1503
+ className: cx(
1504
+ adornedFieldClassName,
1505
+ disabled ? "cursor-not-allowed" : "cursor-pointer",
1506
+ className
1507
+ ),
1508
+ style: { ...style, ...disabledFieldStyle },
1509
+ children: [
1510
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
1511
+ "button",
1512
+ {
1513
+ type: "button",
1514
+ disabled,
1515
+ "aria-controls": inputId,
1516
+ "aria-label": hasSelectedFiles ? rest.multiple ? "Remove selected files" : "Remove selected file" : rest.multiple ? "Select files" : "Select file",
1517
+ onClick: hasSelectedFiles ? clearSelectedFiles : openFilePicker,
1518
+ className: cx(
1519
+ "inline-flex shrink-0 self-stretch whitespace-nowrap border-0 bg-transparent",
1520
+ "items-center text-[var(--theme-text)] appearance-none",
1521
+ FIELD_TEXT_CLASSNAMES[controlSize],
1522
+ disabled ? "cursor-not-allowed" : "cursor-pointer",
1523
+ showUploadLabel ? "justify-start font-bold" : "justify-center"
1829
1524
  ),
1830
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1831
- "path",
1832
- {
1833
- d: "M12.25 8.25v5.5",
1834
- stroke: "currentColor",
1835
- strokeWidth: "1.6",
1836
- strokeLinecap: "round"
1837
- }
1525
+ style: {
1526
+ gap: showUploadLabel ? leadingContentGap : 0,
1527
+ width: showUploadLabel ? void 0 : fileTriggerWidth,
1528
+ padding: showUploadLabel ? `0 ${controlMetrics.buttonPaddingX}px 0 ${Math.max(8, Math.round(controlMetrics.paddingX / 2))}px` : 0
1529
+ },
1530
+ children: [
1531
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1532
+ "span",
1533
+ {
1534
+ className: cx(
1535
+ "inline-flex shrink-0 items-center justify-center",
1536
+ adornmentColorClassName
1537
+ ),
1538
+ "aria-hidden": "true",
1539
+ children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("svg", { width: fileIconSize, height: fileIconSize, viewBox: "0 0 20 20", fill: "none", children: hasSelectedFiles ? /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_jsx_runtime7.Fragment, { children: [
1540
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1541
+ "path",
1542
+ {
1543
+ d: "M5.5 6.25h9",
1544
+ stroke: "currentColor",
1545
+ strokeWidth: "1.6",
1546
+ strokeLinecap: "round"
1547
+ }
1548
+ ),
1549
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1550
+ "path",
1551
+ {
1552
+ 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",
1553
+ stroke: "currentColor",
1554
+ strokeWidth: "1.6",
1555
+ strokeLinecap: "round",
1556
+ strokeLinejoin: "round"
1557
+ }
1558
+ ),
1559
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1560
+ "path",
1561
+ {
1562
+ d: "M7.75 8.25v5.5",
1563
+ stroke: "currentColor",
1564
+ strokeWidth: "1.6",
1565
+ strokeLinecap: "round"
1566
+ }
1567
+ ),
1568
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1569
+ "path",
1570
+ {
1571
+ d: "M10 8.25v5.5",
1572
+ stroke: "currentColor",
1573
+ strokeWidth: "1.6",
1574
+ strokeLinecap: "round"
1575
+ }
1576
+ ),
1577
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1578
+ "path",
1579
+ {
1580
+ d: "M12.25 8.25v5.5",
1581
+ stroke: "currentColor",
1582
+ strokeWidth: "1.6",
1583
+ strokeLinecap: "round"
1584
+ }
1585
+ ),
1586
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1587
+ "path",
1588
+ {
1589
+ 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",
1590
+ stroke: "currentColor",
1591
+ strokeWidth: "1.6",
1592
+ strokeLinecap: "round",
1593
+ strokeLinejoin: "round"
1594
+ }
1595
+ )
1596
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_jsx_runtime7.Fragment, { children: [
1597
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1598
+ "path",
1599
+ {
1600
+ 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",
1601
+ stroke: "currentColor",
1602
+ strokeWidth: "1.6",
1603
+ strokeLinecap: "round",
1604
+ strokeLinejoin: "round"
1605
+ }
1606
+ ),
1607
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1608
+ "path",
1609
+ {
1610
+ d: "M11.875 2.75V6.25H15.375",
1611
+ stroke: "currentColor",
1612
+ strokeWidth: "1.6",
1613
+ strokeLinecap: "round",
1614
+ strokeLinejoin: "round"
1615
+ }
1616
+ ),
1617
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1618
+ "path",
1619
+ {
1620
+ d: "M7.5 10h5",
1621
+ stroke: "currentColor",
1622
+ strokeWidth: "1.6",
1623
+ strokeLinecap: "round"
1624
+ }
1625
+ ),
1626
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1627
+ "path",
1628
+ {
1629
+ d: "M7.5 13h5",
1630
+ stroke: "currentColor",
1631
+ strokeWidth: "1.6",
1632
+ strokeLinecap: "round"
1633
+ }
1634
+ )
1635
+ ] }) })
1636
+ }
1637
+ ),
1638
+ showUploadLabel ? fileButtonLabel : null
1639
+ ]
1640
+ }
1641
+ ),
1642
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1643
+ "button",
1644
+ {
1645
+ type: "button",
1646
+ disabled,
1647
+ "aria-controls": inputId,
1648
+ "aria-label": rest.multiple ? "Select files" : "Select file",
1649
+ onClick: openFilePicker,
1650
+ className: cx(
1651
+ "flex h-full min-w-0 flex-1 items-center border-0 bg-transparent p-0",
1652
+ "text-left appearance-none",
1653
+ disabled ? "cursor-not-allowed" : "cursor-pointer"
1838
1654
  ),
1839
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1840
- "path",
1655
+ children: fileSelectionText ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1656
+ "span",
1841
1657
  {
1842
- 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",
1843
- stroke: "currentColor",
1844
- strokeWidth: "1.6",
1845
- strokeLinecap: "round",
1846
- strokeLinejoin: "round"
1658
+ className: cx(
1659
+ "flex h-full min-w-0 flex-1 items-center overflow-hidden text-ellipsis whitespace-nowrap",
1660
+ FIELD_TEXT_CLASSNAMES[controlSize],
1661
+ hasSelectedFiles ? "text-[var(--theme-text)]" : "text-[var(--ui-kit-placeholder)]"
1662
+ ),
1663
+ style: { padding: `0 ${controlMetrics.paddingX}px 0 ${leadingContentGap}px` },
1664
+ children: fileSelectionText
1847
1665
  }
1848
- )
1849
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_jsx_runtime7.Fragment, { children: [
1666
+ ) : null
1667
+ }
1668
+ )
1669
+ ]
1670
+ }
1671
+ )
1672
+ ] }) : isEmailField ? /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
1673
+ "div",
1674
+ {
1675
+ className: cx(adornedFieldClassName, className),
1676
+ style: { ...style, ...disabledFieldStyle },
1677
+ children: [
1678
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1679
+ "span",
1680
+ {
1681
+ className: cx(
1682
+ "inline-flex shrink-0 self-stretch items-center justify-center bg-transparent",
1683
+ adornmentColorClassName
1684
+ ),
1685
+ style: { width: emailAdornmentWidth },
1686
+ "aria-hidden": "true",
1687
+ children: /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("svg", { width: fileIconSize, height: fileIconSize, viewBox: "0 0 20 20", fill: "none", children: [
1850
1688
  /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1851
1689
  "path",
1852
1690
  {
1853
- 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",
1691
+ 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",
1854
1692
  stroke: "currentColor",
1855
1693
  strokeWidth: "1.6",
1856
1694
  strokeLinecap: "round",
@@ -1860,165 +1698,160 @@ function Input({
1860
1698
  /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1861
1699
  "path",
1862
1700
  {
1863
- d: "M11.875 2.75V6.25H15.375",
1701
+ d: "M4.375 6.25 10 10.625l5.625-4.375",
1864
1702
  stroke: "currentColor",
1865
1703
  strokeWidth: "1.6",
1866
1704
  strokeLinecap: "round",
1867
1705
  strokeLinejoin: "round"
1868
1706
  }
1869
- ),
1870
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1871
- "path",
1872
- {
1873
- d: "M7.5 10h5",
1874
- stroke: "currentColor",
1875
- strokeWidth: "1.6",
1876
- strokeLinecap: "round"
1877
- }
1878
- ),
1879
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1880
- "path",
1881
- {
1882
- d: "M7.5 13h5",
1883
- stroke: "currentColor",
1884
- strokeWidth: "1.6",
1885
- strokeLinecap: "round"
1886
- }
1887
1707
  )
1888
- ] }) }) }),
1889
- showUploadLabel ? fileButtonLabel : null
1890
- ]
1891
- }
1892
- ),
1893
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1894
- "button",
1895
- {
1896
- type: "button",
1897
- disabled,
1898
- "aria-controls": inputId,
1899
- "aria-label": rest.multiple ? "Select files" : "Select file",
1900
- onClick: openFilePicker,
1901
- style: fileSelectionStyle,
1902
- children: fileSelectionText ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { style: fileSelectionTextStyle, children: fileSelectionText }) : null
1903
- }
1904
- )
1905
- ] })
1906
- ] }) : isEmailField ? /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { style: emailFieldStyle, children: [
1907
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { style: emailAdornmentStyle, "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("svg", { width: fileIconSize, height: fileIconSize, viewBox: "0 0 20 20", fill: "none", children: [
1908
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1909
- "path",
1910
- {
1911
- 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",
1912
- stroke: "currentColor",
1913
- strokeWidth: "1.6",
1914
- strokeLinecap: "round",
1915
- strokeLinejoin: "round"
1916
- }
1917
- ),
1918
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1919
- "path",
1920
- {
1921
- d: "M4.375 6.25 10 10.625l5.625-4.375",
1922
- stroke: "currentColor",
1923
- strokeWidth: "1.6",
1924
- strokeLinecap: "round",
1925
- strokeLinejoin: "round"
1926
- }
1927
- )
1928
- ] }) }),
1929
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("input", { ...rest, id: inputId, placeholder, type: resolvedType, disabled, onChange, style: emailInputStyle })
1930
- ] }) : canTogglePasswordVisibility ? /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { style: passwordFieldStyle, children: [
1931
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1932
- "button",
1933
- {
1934
- type: "button",
1935
- "aria-label": isPasswordVisible ? "Hide password" : "Show password",
1936
- "aria-pressed": isPasswordVisible,
1937
- disabled,
1938
- onMouseDown: (event) => {
1939
- event.preventDefault();
1940
- },
1941
- onClick: () => {
1942
- setIsPasswordVisible((currentValue) => !currentValue);
1943
- },
1944
- style: passwordToggleStyle,
1945
- children: isPasswordVisible ? /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
1946
- "svg",
1708
+ ] })
1709
+ }
1710
+ ),
1711
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1712
+ "input",
1947
1713
  {
1948
- width: passwordLockIconSize,
1949
- height: passwordLockIconSize,
1950
- viewBox: "0 0 20 20",
1951
- fill: "none",
1952
- "aria-hidden": "true",
1953
- children: [
1954
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1955
- "path",
1956
- {
1957
- d: "M6.75 8V6.75A3.25 3.25 0 0 1 12.262 4.415",
1958
- stroke: "currentColor",
1959
- strokeWidth: "1.8",
1960
- strokeLinecap: "round",
1961
- strokeLinejoin: "round"
1962
- }
1963
- ),
1964
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1965
- "path",
1966
- {
1967
- 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",
1968
- stroke: "currentColor",
1969
- strokeWidth: "1.8",
1970
- strokeLinecap: "round",
1971
- strokeLinejoin: "round"
1972
- }
1973
- ),
1974
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1975
- "path",
1976
- {
1977
- d: "M10 11.25v1.5",
1978
- stroke: "currentColor",
1979
- strokeWidth: "1.8",
1980
- strokeLinecap: "round"
1981
- }
1982
- )
1983
- ]
1714
+ ...rest,
1715
+ id: inputId,
1716
+ placeholder,
1717
+ type: resolvedType,
1718
+ disabled,
1719
+ onChange,
1720
+ className: cx(adornedInputClassName, className),
1721
+ style: { padding: `0 ${controlMetrics.paddingX}px 0 ${leadingContentGap}px` }
1722
+ }
1723
+ )
1724
+ ]
1725
+ }
1726
+ ) : canTogglePasswordVisibility ? /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
1727
+ "div",
1728
+ {
1729
+ className: cx(adornedFieldClassName, className),
1730
+ style: { ...style, ...disabledFieldStyle },
1731
+ children: [
1732
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1733
+ "button",
1734
+ {
1735
+ type: "button",
1736
+ "aria-label": isPasswordVisible ? "Hide password" : "Show password",
1737
+ "aria-pressed": isPasswordVisible,
1738
+ disabled,
1739
+ onMouseDown: (event) => {
1740
+ event.preventDefault();
1741
+ },
1742
+ onClick: () => {
1743
+ setIsPasswordVisible((currentValue) => !currentValue);
1744
+ },
1745
+ className: cx(
1746
+ "inline-flex shrink-0 self-stretch items-center justify-center border-0",
1747
+ "bg-transparent p-0 appearance-none",
1748
+ adornmentColorClassName,
1749
+ disabled ? "cursor-not-allowed" : "cursor-pointer"
1750
+ ),
1751
+ style: { width: passwordAdornmentWidth },
1752
+ children: isPasswordVisible ? /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
1753
+ "svg",
1754
+ {
1755
+ width: passwordLockIconSize,
1756
+ height: passwordLockIconSize,
1757
+ viewBox: "0 0 20 20",
1758
+ fill: "none",
1759
+ "aria-hidden": "true",
1760
+ children: [
1761
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1762
+ "path",
1763
+ {
1764
+ d: "M6.75 8V6.75A3.25 3.25 0 0 1 12.262 4.415",
1765
+ stroke: "currentColor",
1766
+ strokeWidth: "1.8",
1767
+ strokeLinecap: "round",
1768
+ strokeLinejoin: "round"
1769
+ }
1770
+ ),
1771
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1772
+ "path",
1773
+ {
1774
+ 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",
1775
+ stroke: "currentColor",
1776
+ strokeWidth: "1.8",
1777
+ strokeLinecap: "round",
1778
+ strokeLinejoin: "round"
1779
+ }
1780
+ ),
1781
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1782
+ "path",
1783
+ {
1784
+ d: "M10 11.25v1.5",
1785
+ stroke: "currentColor",
1786
+ strokeWidth: "1.8",
1787
+ strokeLinecap: "round"
1788
+ }
1789
+ )
1790
+ ]
1791
+ }
1792
+ ) : /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
1793
+ "svg",
1794
+ {
1795
+ width: passwordLockIconSize,
1796
+ height: passwordLockIconSize,
1797
+ viewBox: "0 0 20 20",
1798
+ fill: "none",
1799
+ "aria-hidden": "true",
1800
+ children: [
1801
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1802
+ "path",
1803
+ {
1804
+ d: "M6.75 8V6.75A3.25 3.25 0 1 1 13.25 6.75V8",
1805
+ stroke: "currentColor",
1806
+ strokeWidth: "1.8",
1807
+ strokeLinecap: "round",
1808
+ strokeLinejoin: "round"
1809
+ }
1810
+ ),
1811
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1812
+ "path",
1813
+ {
1814
+ 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",
1815
+ stroke: "currentColor",
1816
+ strokeWidth: "1.8",
1817
+ strokeLinecap: "round",
1818
+ strokeLinejoin: "round"
1819
+ }
1820
+ ),
1821
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("path", { d: "M10 11.25v1.5", stroke: "currentColor", strokeWidth: "1.8", strokeLinecap: "round" })
1822
+ ]
1823
+ }
1824
+ )
1984
1825
  }
1985
- ) : /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
1986
- "svg",
1826
+ ),
1827
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1828
+ "input",
1987
1829
  {
1988
- width: passwordLockIconSize,
1989
- height: passwordLockIconSize,
1990
- viewBox: "0 0 20 20",
1991
- fill: "none",
1992
- "aria-hidden": "true",
1993
- children: [
1994
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1995
- "path",
1996
- {
1997
- d: "M6.75 8V6.75A3.25 3.25 0 1 1 13.25 6.75V8",
1998
- stroke: "currentColor",
1999
- strokeWidth: "1.8",
2000
- strokeLinecap: "round",
2001
- strokeLinejoin: "round"
2002
- }
2003
- ),
2004
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
2005
- "path",
2006
- {
2007
- 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",
2008
- stroke: "currentColor",
2009
- strokeWidth: "1.8",
2010
- strokeLinecap: "round",
2011
- strokeLinejoin: "round"
2012
- }
2013
- ),
2014
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("path", { d: "M10 11.25v1.5", stroke: "currentColor", strokeWidth: "1.8", strokeLinecap: "round" })
2015
- ]
1830
+ ...rest,
1831
+ id: inputId,
1832
+ placeholder,
1833
+ type: resolvedType,
1834
+ disabled,
1835
+ onChange,
1836
+ className: cx(adornedInputClassName, className),
1837
+ style: { padding: `0 ${controlMetrics.paddingX}px 0 ${leadingContentGap}px` }
2016
1838
  }
2017
1839
  )
2018
- }
2019
- ),
2020
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("input", { ...rest, id: inputId, placeholder, type: resolvedType, disabled, onChange, style: passwordInputStyle })
2021
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("input", { ...rest, id: inputId, placeholder, type: resolvedType, disabled, onChange, style: inputStyle });
1840
+ ]
1841
+ }
1842
+ ) : /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1843
+ "input",
1844
+ {
1845
+ ...rest,
1846
+ id: inputId,
1847
+ placeholder,
1848
+ type: resolvedType,
1849
+ disabled,
1850
+ onChange,
1851
+ className: cx(fieldBaseClassName, FIELD_PADDING_X_CLASSNAMES[controlSize], className),
1852
+ style: { boxShadow: "var(--ui-kit-component-shadow)", ...style, ...disabledFieldStyle }
1853
+ }
1854
+ );
2022
1855
  return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
2023
1856
  ControlFrame,
2024
1857
  {
@@ -2082,20 +1915,35 @@ var ACCESSORY_METRICS_BY_SIZE = {
2082
1915
  contentGap: 8
2083
1916
  },
2084
1917
  md: {
1918
+ buttonSize: 19,
1919
+ iconSize: 15,
1920
+ rightOffset: 9,
1921
+ clusterGap: 7,
1922
+ contentGap: 9
1923
+ },
1924
+ lg: {
2085
1925
  buttonSize: 20,
2086
1926
  iconSize: 16,
2087
1927
  rightOffset: 10,
2088
1928
  clusterGap: 8,
2089
1929
  contentGap: 10
2090
- },
2091
- lg: {
2092
- buttonSize: 22,
2093
- iconSize: 18,
2094
- rightOffset: 12,
2095
- clusterGap: 8,
2096
- contentGap: 12
2097
1930
  }
2098
1931
  };
1932
+ var FIELD_HEIGHT_CLASSNAMES2 = {
1933
+ sm: "h-[30px]",
1934
+ md: "h-[34px]",
1935
+ lg: "h-[38px]"
1936
+ };
1937
+ var FIELD_TEXT_CLASSNAMES2 = {
1938
+ sm: "text-[13px] leading-4",
1939
+ md: "text-sm leading-[18px]",
1940
+ lg: "text-[15px] leading-[18px]"
1941
+ };
1942
+ var FIELD_PADDING_X_CLASSNAMES2 = {
1943
+ sm: "px-3",
1944
+ md: "px-[14px]",
1945
+ lg: "px-4"
1946
+ };
2099
1947
  function padNumber(value, length = 2) {
2100
1948
  return String(value).padStart(length, "0");
2101
1949
  }
@@ -2279,13 +2127,13 @@ function DatePicker({
2279
2127
  ...rest
2280
2128
  }) {
2281
2129
  var _a;
2282
- const { theme, focusRing } = useUiKitTheme();
2130
+ useUiKitTheme();
2283
2131
  const controlMetrics = getControlMetrics(controlSize);
2284
2132
  const accessoryMetrics = ACCESSORY_METRICS_BY_SIZE[controlSize];
2285
- const generatedIdRef = (0, import_react7.useRef)();
2286
- const visibleInputRef = (0, import_react7.useRef)(null);
2287
- const nativeInputRef = (0, import_react7.useRef)(null);
2288
- const [internalError, setInternalError] = (0, import_react7.useState)();
2133
+ const generatedIdRef = (0, import_react6.useRef)();
2134
+ const visibleInputRef = (0, import_react6.useRef)(null);
2135
+ const nativeInputRef = (0, import_react6.useRef)(null);
2136
+ const [internalError, setInternalError] = (0, import_react6.useState)();
2289
2137
  const resolvedFormat = (format == null ? void 0 : format.trim()) ? format : DEFAULT_FORMAT_BY_MODE[mode];
2290
2138
  const isControlled = value !== void 0;
2291
2139
  const nativePickerType = mode === "datetime" ? "datetime-local" : "date";
@@ -2293,23 +2141,23 @@ function DatePicker({
2293
2141
  generatedIdRef.current = `ss-date-picker-${Math.random().toString(36).slice(2, 10)}`;
2294
2142
  }
2295
2143
  const resolvedId = id != null ? id : generatedIdRef.current;
2296
- const normalizedDefaultValue = (0, import_react7.useMemo)(() => {
2144
+ const normalizedDefaultValue = (0, import_react6.useMemo)(() => {
2297
2145
  const parsedDefaultValue = parseDateValue(defaultValue, mode, resolvedFormat);
2298
2146
  return parsedDefaultValue ? toLocalInputValue(parsedDefaultValue, mode) : null;
2299
2147
  }, [defaultValue, mode, resolvedFormat]);
2300
- const [uncontrolledValue, setUncontrolledValue] = (0, import_react7.useState)(normalizedDefaultValue);
2301
- const committedDate = (0, import_react7.useMemo)(() => {
2148
+ const [uncontrolledValue, setUncontrolledValue] = (0, import_react6.useState)(normalizedDefaultValue);
2149
+ const committedDate = (0, import_react6.useMemo)(() => {
2302
2150
  const sourceValue = isControlled ? value : uncontrolledValue;
2303
2151
  return parseDateValue(sourceValue, mode, resolvedFormat);
2304
2152
  }, [isControlled, mode, resolvedFormat, uncontrolledValue, value]);
2305
2153
  const committedValue = committedDate ? toLocalInputValue(committedDate, mode) : null;
2306
2154
  const committedDisplayValue = committedDate ? formatDateValue(committedDate, resolvedFormat) : "";
2307
- const [draftValue, setDraftValue] = (0, import_react7.useState)(committedDisplayValue);
2308
- (0, import_react7.useEffect)(() => {
2155
+ const [draftValue, setDraftValue] = (0, import_react6.useState)(committedDisplayValue);
2156
+ (0, import_react6.useEffect)(() => {
2309
2157
  setDraftValue(committedDisplayValue);
2310
2158
  setInternalError(void 0);
2311
2159
  }, [committedDisplayValue]);
2312
- (0, import_react7.useEffect)(() => {
2160
+ (0, import_react6.useEffect)(() => {
2313
2161
  if (!isControlled) {
2314
2162
  setUncontrolledValue((currentValue) => {
2315
2163
  if (currentValue == null) {
@@ -2320,12 +2168,12 @@ function DatePicker({
2320
2168
  });
2321
2169
  }
2322
2170
  }, [isControlled, mode, resolvedFormat]);
2323
- const parsedMinDate = (0, import_react7.useMemo)(() => {
2171
+ const parsedMinDate = (0, import_react6.useMemo)(() => {
2324
2172
  const explicitMinDate = parseDateValue(minDate, mode, resolvedFormat);
2325
2173
  const guardedMinDate = allowPastDates ? null : normalizeDatePrecision(/* @__PURE__ */ new Date(), mode);
2326
2174
  return getLaterDate(explicitMinDate, guardedMinDate);
2327
2175
  }, [allowPastDates, minDate, mode, resolvedFormat]);
2328
- const parsedMaxDate = (0, import_react7.useMemo)(() => {
2176
+ const parsedMaxDate = (0, import_react6.useMemo)(() => {
2329
2177
  const explicitMaxDate = parseDateValue(maxDate, mode, resolvedFormat);
2330
2178
  const guardedMaxDate = allowFutureDates ? null : normalizeDatePrecision(/* @__PURE__ */ new Date(), mode);
2331
2179
  return getEarlierDate(explicitMaxDate, guardedMaxDate);
@@ -2335,7 +2183,6 @@ function DatePicker({
2335
2183
  const derivedError = hasConfigurationConflict ? "Current date rules do not allow any selection." : internalError;
2336
2184
  const resolvedError = hasExternalError ? error : derivedError;
2337
2185
  const hasAnyValue = draftValue.trim().length > 0 || Boolean(committedValue);
2338
- const inputBorderColor = resolvedError ? theme.colors.negative : theme.colors.textLight;
2339
2186
  const showPickerAdornment = showPickerButton;
2340
2187
  const canOpenPicker = !disabled && !readOnly && !hasConfigurationConflict;
2341
2188
  const canClear = clearable && !disabled && !readOnly && !required && hasAnyValue;
@@ -2346,6 +2193,43 @@ function DatePicker({
2346
2193
  0,
2347
2194
  accessoryMetrics.rightOffset + trailingButtonCount * accessoryMetrics.buttonSize + (trailingButtonCount - 1) * accessoryMetrics.clusterGap + accessoryMetrics.contentGap - controlMetrics.paddingX
2348
2195
  ) : 0;
2196
+ const fieldBorderColor = resolvedError ? "var(--theme-negative)" : "var(--theme-textLight)";
2197
+ const disabledFieldStyle = disabled ? { opacity: DISABLED_FIELD_OPACITY } : {};
2198
+ const fieldBaseClassName = cx(
2199
+ "w-full box-border rounded-2xl border border-solid bg-[var(--theme-surface)]",
2200
+ "text-[var(--theme-text)] outline-none transition-[border-color,box-shadow,background-color]",
2201
+ "duration-150 placeholder:text-[var(--ui-kit-placeholder)]",
2202
+ FIELD_HEIGHT_CLASSNAMES2[controlSize],
2203
+ FIELD_TEXT_CLASSNAMES2[controlSize],
2204
+ resolvedError ? "border-[var(--theme-negative)]" : "border-[var(--theme-textLight)]",
2205
+ disabled ? "cursor-not-allowed" : readOnly ? "cursor-default" : "cursor-text"
2206
+ );
2207
+ const integratedFieldClassName = cx(
2208
+ "box-border flex w-full items-center gap-0 overflow-hidden rounded-2xl",
2209
+ "bg-[var(--theme-surface)] text-[var(--theme-text)]",
2210
+ "transition-[border-color,box-shadow,background-color] duration-150",
2211
+ FIELD_HEIGHT_CLASSNAMES2[controlSize],
2212
+ FIELD_TEXT_CLASSNAMES2[controlSize],
2213
+ disabled ? "cursor-not-allowed" : readOnly ? "cursor-default" : "cursor-text"
2214
+ );
2215
+ const integratedFieldBoxShadow = getInsetBorderShadow(fieldBorderColor, resolvedError ? { outerShadow: "0 0 0 3px var(--ui-kit-negative-soft)" } : void 0);
2216
+ const integratedInputClassName = cx(
2217
+ "h-full w-full box-border border-0 bg-transparent text-[var(--theme-text)]",
2218
+ "outline-none placeholder:text-[var(--ui-kit-placeholder)]",
2219
+ FIELD_TEXT_CLASSNAMES2[controlSize],
2220
+ disabled ? "cursor-not-allowed" : readOnly ? "cursor-default" : "cursor-text"
2221
+ );
2222
+ const pickerAdornmentClassName = cx(
2223
+ "inline-flex shrink-0 self-stretch items-center justify-center border-0",
2224
+ "bg-transparent p-0 appearance-none",
2225
+ resolvedError ? "text-[var(--theme-negative)]" : "text-[var(--theme-textLight)]",
2226
+ disabled || readOnly || hasConfigurationConflict ? "cursor-not-allowed" : "cursor-pointer"
2227
+ );
2228
+ const accessoryButtonClassName = cx(
2229
+ "m-0 inline-flex shrink-0 items-center justify-center rounded-full border-0 bg-transparent p-0 leading-none",
2230
+ "text-[var(--theme-textLight)]",
2231
+ disabled ? "cursor-not-allowed" : readOnly ? "cursor-not-allowed" : "cursor-pointer"
2232
+ );
2349
2233
  const getValidationMessage = (parsedDate) => {
2350
2234
  if (parsedMinDate && parsedDate.getTime() < parsedMinDate.getTime()) {
2351
2235
  return `Choose a value on or after ${formatDateValue(parsedMinDate, resolvedFormat)}.`;
@@ -2442,98 +2326,10 @@ function DatePicker({
2442
2326
  (_b = visibleInputRef.current) == null ? void 0 : _b.focus();
2443
2327
  }
2444
2328
  };
2445
- const inputStyle = {
2446
- width: "100%",
2447
- boxSizing: "border-box",
2448
- height: controlMetrics.height,
2449
- borderRadius: STANDARD_COMPONENT_BORDER_RADIUS,
2450
- border: `1px solid ${inputBorderColor}`,
2451
- backgroundColor: theme.colors.surface,
2452
- color: theme.colors.text,
2453
- cursor: disabled ? "not-allowed" : readOnly ? "default" : "text",
2454
- opacity: disabled ? DISABLED_FIELD_OPACITY : 1,
2455
- padding: getTextInputPadding(controlSize, { trailingInset }),
2456
- outline: "none",
2457
- fontSize: controlMetrics.fontSize,
2458
- lineHeight: controlMetrics.lineHeight,
2459
- boxShadow: resolvedError ? `0 0 0 3px ${withAlpha(theme.colors.negative, 0.12)}, ${getComponentShadow(theme)}` : `${getComponentShadow(theme)}, 0 0 0 0 ${focusRing}`,
2460
- transition: FIELD_SURFACE_TRANSITION,
2461
- ...style
2462
- };
2463
- const integratedFieldStyle = {
2464
- width: "100%",
2465
- boxSizing: "border-box",
2466
- height: controlMetrics.height,
2467
- display: "flex",
2468
- alignItems: "center",
2469
- gap: 0,
2470
- overflow: "hidden",
2471
- borderRadius: STANDARD_COMPONENT_BORDER_RADIUS,
2472
- border: `1px solid ${inputBorderColor}`,
2473
- backgroundColor: theme.colors.surface,
2474
- color: theme.colors.text,
2475
- cursor: disabled ? "not-allowed" : readOnly ? "default" : "text",
2476
- opacity: disabled ? DISABLED_FIELD_OPACITY : 1,
2477
- padding: 0,
2478
- outline: "none",
2479
- boxShadow: resolvedError ? `0 0 0 3px ${withAlpha(theme.colors.negative, 0.12)}, ${getComponentShadow(theme)}` : `${getComponentShadow(theme)}, 0 0 0 0 ${focusRing}`,
2480
- transition: FIELD_SURFACE_TRANSITION,
2481
- ...style
2482
- };
2483
- const pickerSegmentStyle = {
2484
- flexShrink: 0,
2485
- display: "inline-flex",
2486
- alignItems: "center",
2487
- justifyContent: "center",
2488
- alignSelf: "stretch",
2489
- boxSizing: "border-box",
2490
- width: pickerAdornmentWidth,
2491
- border: "none",
2492
- backgroundColor: "transparent",
2493
- color: inputBorderColor,
2494
- cursor: disabled || readOnly || hasConfigurationConflict ? "not-allowed" : "pointer",
2495
- padding: 0,
2496
- appearance: "none"
2497
- };
2498
- const integratedInputWrapStyle = {
2499
- position: "relative",
2500
- flex: 1,
2501
- minWidth: 0,
2502
- height: "100%"
2503
- };
2504
- const integratedTextInputStyle = {
2505
- width: "100%",
2506
- height: "100%",
2507
- boxSizing: "border-box",
2508
- border: "none",
2509
- backgroundColor: "transparent",
2510
- color: theme.colors.text,
2511
- cursor: disabled ? "not-allowed" : readOnly ? "default" : "text",
2512
- padding: `${controlMetrics.paddingY}px ${controlMetrics.paddingX + trailingInset}px ${controlMetrics.paddingY}px ${leadingContentGap}px`,
2513
- outline: "none",
2514
- fontSize: controlMetrics.fontSize,
2515
- lineHeight: controlMetrics.lineHeight
2516
- };
2517
- const accessoryButtonStyle = {
2518
- width: accessoryMetrics.buttonSize,
2519
- height: accessoryMetrics.buttonSize,
2520
- border: "none",
2521
- padding: 0,
2522
- margin: 0,
2523
- display: "inline-flex",
2524
- alignItems: "center",
2525
- justifyContent: "center",
2526
- borderRadius: 999,
2527
- backgroundColor: "transparent",
2528
- color: theme.colors.textLight,
2529
- cursor: disabled || readOnly ? "not-allowed" : "pointer",
2530
- opacity: disabled ? DISABLED_FIELD_OPACITY : 1
2531
- };
2532
2329
  const visibleInputProps = {
2533
2330
  ...rest,
2534
2331
  ref: visibleInputRef,
2535
2332
  id: resolvedId,
2536
- className,
2537
2333
  type: "text",
2538
2334
  value: draftValue,
2539
2335
  disabled,
@@ -2595,33 +2391,14 @@ function DatePicker({
2595
2391
  onChange: (event) => {
2596
2392
  commitValue(event.target.value || null, "picker");
2597
2393
  },
2598
- style: {
2599
- position: "absolute",
2600
- width: 1,
2601
- height: 1,
2602
- padding: 0,
2603
- margin: -1,
2604
- overflow: "hidden",
2605
- clip: "rect(0, 0, 0, 0)",
2606
- whiteSpace: "nowrap",
2607
- border: 0,
2608
- opacity: 0,
2609
- pointerEvents: "none"
2610
- }
2394
+ className: "ui-kit-sr-only pointer-events-none opacity-0"
2611
2395
  }
2612
2396
  );
2613
2397
  const clearButtonCluster = canClear ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
2614
2398
  "div",
2615
2399
  {
2616
- style: {
2617
- position: "absolute",
2618
- top: "50%",
2619
- right: accessoryMetrics.rightOffset,
2620
- transform: "translateY(-50%)",
2621
- display: "inline-flex",
2622
- alignItems: "center",
2623
- gap: accessoryMetrics.clusterGap
2624
- },
2400
+ className: "absolute inset-y-0 inline-flex items-center",
2401
+ style: { right: accessoryMetrics.rightOffset, gap: accessoryMetrics.clusterGap },
2625
2402
  children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
2626
2403
  "button",
2627
2404
  {
@@ -2636,34 +2413,72 @@ function DatePicker({
2636
2413
  commitValue(null, "clear");
2637
2414
  (_a2 = visibleInputRef.current) == null ? void 0 : _a2.focus();
2638
2415
  },
2639
- style: accessoryButtonStyle,
2416
+ className: accessoryButtonClassName,
2417
+ style: {
2418
+ width: accessoryMetrics.buttonSize,
2419
+ height: accessoryMetrics.buttonSize,
2420
+ ...disabled ? { opacity: DISABLED_FIELD_OPACITY } : {}
2421
+ },
2640
2422
  children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(ClearIcon, { size: accessoryMetrics.iconSize })
2641
2423
  }
2642
2424
  )
2643
2425
  }
2644
2426
  ) : null;
2645
- const input = showPickerAdornment ? /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: integratedFieldStyle, children: [
2427
+ const input = showPickerAdornment ? /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
2428
+ "div",
2429
+ {
2430
+ className: cx(integratedFieldClassName, className),
2431
+ style: {
2432
+ boxShadow: integratedFieldBoxShadow,
2433
+ ...style,
2434
+ ...disabledFieldStyle
2435
+ },
2436
+ children: [
2437
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
2438
+ "button",
2439
+ {
2440
+ type: "button",
2441
+ "aria-label": pickerButtonLabel != null ? pickerButtonLabel : mode === "datetime" ? "Open date and time picker" : "Open date picker",
2442
+ disabled: !canOpenPicker,
2443
+ onMouseDown: (event) => {
2444
+ event.preventDefault();
2445
+ },
2446
+ onClick: openNativePicker,
2447
+ className: pickerAdornmentClassName,
2448
+ style: { width: pickerAdornmentWidth },
2449
+ children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(CalendarIcon, { size: accessoryMetrics.iconSize })
2450
+ }
2451
+ ),
2452
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: "relative h-full min-w-0 flex-1", children: [
2453
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
2454
+ "input",
2455
+ {
2456
+ ...visibleInputProps,
2457
+ className: cx(integratedInputClassName, className),
2458
+ style: {
2459
+ padding: `${controlMetrics.paddingY}px ${controlMetrics.paddingX + trailingInset}px ${controlMetrics.paddingY}px ${leadingContentGap}px`
2460
+ }
2461
+ }
2462
+ ),
2463
+ nativePickerInput,
2464
+ clearButtonCluster
2465
+ ] })
2466
+ ]
2467
+ }
2468
+ ) : /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: "relative w-full", children: [
2646
2469
  /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
2647
- "button",
2470
+ "input",
2648
2471
  {
2649
- type: "button",
2650
- "aria-label": pickerButtonLabel != null ? pickerButtonLabel : mode === "datetime" ? "Open date and time picker" : "Open date picker",
2651
- disabled: !canOpenPicker,
2652
- onMouseDown: (event) => {
2653
- event.preventDefault();
2654
- },
2655
- onClick: openNativePicker,
2656
- style: pickerSegmentStyle,
2657
- children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(CalendarIcon, { size: accessoryMetrics.iconSize })
2472
+ ...visibleInputProps,
2473
+ className: cx(fieldBaseClassName, FIELD_PADDING_X_CLASSNAMES2[controlSize], className),
2474
+ style: {
2475
+ paddingRight: controlMetrics.paddingX + trailingInset,
2476
+ boxShadow: resolvedError ? "0 0 0 3px var(--ui-kit-negative-soft), var(--ui-kit-component-shadow)" : "var(--ui-kit-component-shadow)",
2477
+ ...style,
2478
+ ...disabledFieldStyle
2479
+ }
2658
2480
  }
2659
2481
  ),
2660
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: integratedInputWrapStyle, children: [
2661
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("input", { ...visibleInputProps, style: integratedTextInputStyle }),
2662
- nativePickerInput,
2663
- clearButtonCluster
2664
- ] })
2665
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: { position: "relative", width: "100%" }, children: [
2666
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("input", { ...visibleInputProps, style: inputStyle }),
2667
2482
  nativePickerInput,
2668
2483
  clearButtonCluster
2669
2484
  ] });
@@ -2686,27 +2501,39 @@ function Separator({
2686
2501
  orientation = "vertical",
2687
2502
  color,
2688
2503
  size = "100%",
2504
+ className,
2689
2505
  style,
2690
2506
  ...rest
2691
2507
  }) {
2692
- const { theme } = useUiKitTheme();
2508
+ useUiKitTheme();
2693
2509
  const usesVerticalStretch = orientation === "vertical" && size === "100%";
2694
2510
  const separatorStyle = {
2695
- flexShrink: 0,
2696
- alignSelf: "stretch",
2697
- backgroundColor: color != null ? color : theme.colors.text,
2511
+ backgroundColor: color,
2698
2512
  width: orientation === "vertical" ? 1 : size,
2699
2513
  height: orientation === "vertical" ? usesVerticalStretch ? "auto" : size : 1,
2700
2514
  ...style
2701
2515
  };
2702
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { ...rest, role: "separator", "aria-orientation": orientation, style: separatorStyle });
2516
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
2517
+ "div",
2518
+ {
2519
+ ...rest,
2520
+ role: "separator",
2521
+ "aria-orientation": orientation,
2522
+ className: cx(
2523
+ UI_KIT_ROOT_CLASSNAME,
2524
+ "shrink-0 self-stretch bg-[var(--theme-text)]",
2525
+ className
2526
+ ),
2527
+ style: separatorStyle
2528
+ }
2529
+ );
2703
2530
  }
2704
2531
 
2705
2532
  // src/componentsBase/select/SelectBase.tsx
2706
- var import_react9 = require("react");
2533
+ var import_react8 = require("react");
2707
2534
 
2708
2535
  // src/componentsBase/select/utils.ts
2709
- var import_react8 = require("react");
2536
+ var import_react7 = require("react");
2710
2537
  function getTextContent(node) {
2711
2538
  if (node == null || typeof node === "boolean") {
2712
2539
  return "";
@@ -2717,7 +2544,7 @@ function getTextContent(node) {
2717
2544
  if (Array.isArray(node)) {
2718
2545
  return node.map(getTextContent).join("");
2719
2546
  }
2720
- if ((0, import_react8.isValidElement)(node)) {
2547
+ if ((0, import_react7.isValidElement)(node)) {
2721
2548
  return getTextContent(node.props.children);
2722
2549
  }
2723
2550
  return "";
@@ -2755,10 +2582,20 @@ function filterSelectGroups(groups, query) {
2755
2582
  var import_jsx_runtime10 = require("react/jsx-runtime");
2756
2583
  var MENU_OFFSET = 8;
2757
2584
  var MENU_MAX_HEIGHT = 280;
2758
- var getOptionPadding = (size) => {
2759
- if (size === "sm") return "8px 11px";
2760
- if (size === "lg") return "12px 15px";
2761
- return "10px 13px";
2585
+ var FIELD_HEIGHT_CLASSNAMES3 = {
2586
+ sm: "h-[30px]",
2587
+ md: "h-[34px]",
2588
+ lg: "h-[38px]"
2589
+ };
2590
+ var FIELD_TEXT_CLASSNAMES3 = {
2591
+ sm: "text-[13px] leading-4",
2592
+ md: "text-sm leading-[18px]",
2593
+ lg: "text-[15px] leading-[18px]"
2594
+ };
2595
+ var OPTION_PADDING_CLASSNAMES = {
2596
+ sm: "px-[11px] py-2",
2597
+ md: "px-3 py-[9px]",
2598
+ lg: "px-[13px] py-[10px]"
2762
2599
  };
2763
2600
  function SelectBase({
2764
2601
  label,
@@ -2798,9 +2635,9 @@ function SelectBase({
2798
2635
  ...rest
2799
2636
  }) {
2800
2637
  var _a, _b, _c, _d, _e, _f, _g, _h, _i;
2801
- const { theme, mutedText, surfaceRaised } = useUiKitTheme();
2638
+ const { theme, mutedText } = useUiKitTheme();
2802
2639
  const componentShadow = getComponentShadow(theme);
2803
- const generatedId = (0, import_react9.useId)().replace(/:/g, "");
2640
+ const generatedId = (0, import_react8.useId)().replace(/:/g, "");
2804
2641
  const resolvedId = id != null ? id : `ss-select-${generatedId}`;
2805
2642
  const isMultiSelect = Boolean(isMulti || multiple);
2806
2643
  const hasFilter = Boolean(isFilterable);
@@ -2808,18 +2645,18 @@ function SelectBase({
2808
2645
  const enabledOptions = flatOptions.filter((option) => !option.disabled);
2809
2646
  const isControlled = value !== void 0;
2810
2647
  const fallbackValues = defaultValue !== void 0 ? normalizeSelectValues(defaultValue) : isMultiSelect ? [] : placeholder != null ? [] : ((_a = enabledOptions[0]) == null ? void 0 : _a.value) ? [enabledOptions[0].value] : [];
2811
- const [uncontrolledValues, setUncontrolledValues] = (0, import_react9.useState)(fallbackValues);
2812
- const [isOpen, setIsOpen] = (0, import_react9.useState)(false);
2813
- const [uncontrolledSearchQuery, setUncontrolledSearchQuery] = (0, import_react9.useState)("");
2814
- const [menuPlacement, setMenuPlacement] = (0, import_react9.useState)("bottom");
2815
- const [isPlacementResolved, setIsPlacementResolved] = (0, import_react9.useState)(false);
2816
- const [highlightedValue, setHighlightedValue] = (0, import_react9.useState)((_d = (_c = fallbackValues[0]) != null ? _c : (_b = enabledOptions[0]) == null ? void 0 : _b.value) != null ? _d : "");
2817
- const shellRef = (0, import_react9.useRef)(null);
2818
- const buttonRef = (0, import_react9.useRef)(null);
2819
- const menuRef = (0, import_react9.useRef)(null);
2820
- const searchInputRef = (0, import_react9.useRef)(null);
2821
- const hiddenSelectRef = (0, import_react9.useRef)(null);
2822
- const highlightSyncKeyRef = (0, import_react9.useRef)("");
2648
+ const [uncontrolledValues, setUncontrolledValues] = (0, import_react8.useState)(fallbackValues);
2649
+ const [isOpen, setIsOpen] = (0, import_react8.useState)(false);
2650
+ const [uncontrolledSearchQuery, setUncontrolledSearchQuery] = (0, import_react8.useState)("");
2651
+ const [menuPlacement, setMenuPlacement] = (0, import_react8.useState)("bottom");
2652
+ const [isPlacementResolved, setIsPlacementResolved] = (0, import_react8.useState)(false);
2653
+ const [highlightedValue, setHighlightedValue] = (0, import_react8.useState)((_d = (_c = fallbackValues[0]) != null ? _c : (_b = enabledOptions[0]) == null ? void 0 : _b.value) != null ? _d : "");
2654
+ const shellRef = (0, import_react8.useRef)(null);
2655
+ const buttonRef = (0, import_react8.useRef)(null);
2656
+ const menuRef = (0, import_react8.useRef)(null);
2657
+ const searchInputRef = (0, import_react8.useRef)(null);
2658
+ const hiddenSelectRef = (0, import_react8.useRef)(null);
2659
+ const highlightSyncKeyRef = (0, import_react8.useRef)("");
2823
2660
  const currentSearchQuery = searchQuery !== void 0 ? searchQuery : uncontrolledSearchQuery;
2824
2661
  const selectedValues = isControlled ? normalizeSelectValues(value) : uncontrolledValues;
2825
2662
  const selectedValue = (_e = selectedValues[0]) != null ? _e : "";
@@ -2845,13 +2682,50 @@ function SelectBase({
2845
2682
  const scrollbarThumbColor = withAlpha(theme.colors.text, 0.22);
2846
2683
  const scrollbarThumbHoverColor = withAlpha(theme.colors.text, 0.32);
2847
2684
  const highlightedOption = (_i = visibleOptions.find((option) => option.value === highlightedValue)) != null ? _i : null;
2848
- const optionHoverBackground = withAlpha(theme.colors.primary, 1);
2849
- const optionSelectedBackground = withAlpha(theme.colors.primary, 1);
2685
+ const optionHoverBackground = theme.colors.primary;
2686
+ const optionSelectedBackground = theme.colors.primary;
2850
2687
  const canOpenMenu = allowOpenWithoutOptions || flatOptions.length > 0;
2688
+ const isTriggerDisabled = disabled || !canOpenMenu;
2851
2689
  const buttonPassthroughProps = Object.fromEntries(
2852
2690
  Object.entries(rest).filter(([key]) => key.startsWith("aria-") || key.startsWith("data-"))
2853
2691
  );
2854
- (0, import_react9.useEffect)(() => {
2692
+ const selectVariables = (0, import_react8.useMemo)(() => ({
2693
+ "--ui-kit-select-placeholder": placeholderTextColor,
2694
+ "--ui-kit-select-muted": mutedText,
2695
+ "--ui-kit-select-indicator-disabled": withAlpha(theme.colors.text, 0.42),
2696
+ "--ui-kit-select-surface-raised": theme.colors.surface,
2697
+ "--ui-kit-select-scrollbar-thumb": scrollbarThumbColor,
2698
+ "--ui-kit-select-scrollbar-thumb-hover": scrollbarThumbHoverColor,
2699
+ "--ui-kit-select-divider": withAlpha(theme.colors.text, 0.08),
2700
+ "--ui-kit-select-option-hover-bg": optionHoverBackground,
2701
+ "--ui-kit-select-option-selected-bg": optionSelectedBackground,
2702
+ "--ui-kit-select-option-disabled": withAlpha(theme.colors.text, 0.38),
2703
+ "--ui-kit-select-control-shadow": componentShadow
2704
+ }), [
2705
+ componentShadow,
2706
+ mutedText,
2707
+ optionHoverBackground,
2708
+ optionSelectedBackground,
2709
+ placeholderTextColor,
2710
+ scrollbarThumbColor,
2711
+ scrollbarThumbHoverColor,
2712
+ theme.colors.surface,
2713
+ theme.colors.text
2714
+ ]);
2715
+ const triggerBorderColor = error ? "var(--theme-negative)" : "var(--theme-textLight)";
2716
+ const triggerBoxShadow = getInsetBorderShadow(triggerBorderColor, {
2717
+ componentShadow: "var(--ui-kit-select-control-shadow)"
2718
+ });
2719
+ const triggerClassName = cx(
2720
+ "m-0 box-border flex w-full min-w-0 items-center justify-between gap-3 rounded-2xl border-0 appearance-none",
2721
+ "bg-[var(--theme-surface)] outline-none transition-[border-color,box-shadow,background-color]",
2722
+ "duration-150 text-left",
2723
+ FIELD_HEIGHT_CLASSNAMES3[controlSize],
2724
+ FIELD_TEXT_CLASSNAMES3[controlSize],
2725
+ hasSelection ? "text-[var(--theme-text)]" : "text-[var(--ui-kit-select-placeholder)]",
2726
+ isTriggerDisabled ? "cursor-not-allowed" : "cursor-pointer"
2727
+ );
2728
+ (0, import_react8.useEffect)(() => {
2855
2729
  var _a2, _b2, _c2, _d2;
2856
2730
  if (isControlled || preserveUnknownValues) {
2857
2731
  return;
@@ -2868,7 +2742,7 @@ function SelectBase({
2868
2742
  setUncontrolledValues(nextValues);
2869
2743
  setHighlightedValue((_d2 = (_c2 = nextValues[0]) != null ? _c2 : (_b2 = enabledOptions[0]) == null ? void 0 : _b2.value) != null ? _d2 : "");
2870
2744
  }, [defaultValue, enabledOptions, flatOptions, isControlled, isMultiSelect, preserveUnknownValues, uncontrolledValues]);
2871
- (0, import_react9.useEffect)(() => {
2745
+ (0, import_react8.useEffect)(() => {
2872
2746
  var _a2, _b2, _c2;
2873
2747
  if (!isOpen) {
2874
2748
  highlightSyncKeyRef.current = "";
@@ -2884,14 +2758,14 @@ function SelectBase({
2884
2758
  const nextHighlightedValue = (_c2 = (_b2 = [...selectedValues].reverse().find((currentValue) => visibleEnabledValues.includes(currentValue))) != null ? _b2 : (_a2 = visibleEnabledOptions[0]) == null ? void 0 : _a2.value) != null ? _c2 : "";
2885
2759
  setHighlightedValue(nextHighlightedValue);
2886
2760
  }, [isOpen, selectedValuesKey, visibleEnabledValuesKey, selectedValues, visibleEnabledOptions, visibleEnabledValues]);
2887
- (0, import_react9.useEffect)(() => {
2761
+ (0, import_react8.useEffect)(() => {
2888
2762
  var _a2;
2889
2763
  if (!isOpen || !hasFilter) {
2890
2764
  return;
2891
2765
  }
2892
2766
  (_a2 = searchInputRef.current) == null ? void 0 : _a2.focus();
2893
2767
  }, [hasFilter, isOpen]);
2894
- (0, import_react9.useEffect)(() => {
2768
+ (0, import_react8.useEffect)(() => {
2895
2769
  if (!isOpen) {
2896
2770
  return;
2897
2771
  }
@@ -2916,7 +2790,7 @@ function SelectBase({
2916
2790
  window.cancelAnimationFrame(frameId);
2917
2791
  };
2918
2792
  }, [isOpen, visibleOptions.length]);
2919
- (0, import_react9.useEffect)(() => {
2793
+ (0, import_react8.useEffect)(() => {
2920
2794
  if (isOpen || !clearSearchOnClose || currentSearchQuery === "") {
2921
2795
  return;
2922
2796
  }
@@ -2925,7 +2799,7 @@ function SelectBase({
2925
2799
  }
2926
2800
  onSearchQueryChange == null ? void 0 : onSearchQueryChange("");
2927
2801
  }, [clearSearchOnClose, currentSearchQuery, isOpen, onSearchQueryChange, searchQuery]);
2928
- (0, import_react9.useEffect)(() => {
2802
+ (0, import_react8.useEffect)(() => {
2929
2803
  if (!isOpen) {
2930
2804
  return;
2931
2805
  }
@@ -2941,7 +2815,7 @@ function SelectBase({
2941
2815
  document.removeEventListener("pointerdown", handlePointerDown);
2942
2816
  };
2943
2817
  }, [isOpen]);
2944
- (0, import_react9.useEffect)(() => {
2818
+ (0, import_react8.useEffect)(() => {
2945
2819
  var _a2;
2946
2820
  if (isControlled) {
2947
2821
  return;
@@ -3056,20 +2930,10 @@ function SelectBase({
3056
2930
  event.stopPropagation();
3057
2931
  toggleVisibleSelection(!hasAllVisibleSelected);
3058
2932
  },
3059
- style: {
3060
- width: 20,
3061
- height: 20,
3062
- padding: 0,
3063
- margin: 0,
3064
- display: "inline-flex",
3065
- alignItems: "center",
3066
- justifyContent: "center",
3067
- flexShrink: 0,
3068
- border: "none",
3069
- background: "transparent",
3070
- cursor: canToggleVisibleSelection ? "pointer" : "not-allowed",
3071
- opacity: canToggleVisibleSelection ? 1 : 0.45
3072
- },
2933
+ className: cx(
2934
+ "m-0 inline-flex h-5 w-5 shrink-0 items-center justify-center border-0 bg-transparent p-0",
2935
+ canToggleVisibleSelection ? "cursor-pointer opacity-100" : "cursor-not-allowed opacity-45"
2936
+ ),
3073
2937
  children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
3074
2938
  CheckboxIndicator,
3075
2939
  {
@@ -3223,7 +3087,7 @@ function SelectBase({
3223
3087
  htmlFor: resolvedId,
3224
3088
  required: rest.required,
3225
3089
  useLabelWrapper: false,
3226
- children: /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { ref: shellRef, style: { position: "relative", width: "100%" }, children: [
3090
+ children: /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { ref: shellRef, className: "relative w-full", style: selectVariables, children: [
3227
3091
  /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
3228
3092
  "button",
3229
3093
  {
@@ -3231,9 +3095,9 @@ function SelectBase({
3231
3095
  id: resolvedId,
3232
3096
  ref: buttonRef,
3233
3097
  type: "button",
3234
- className,
3098
+ className: cx(triggerClassName, className),
3235
3099
  title: rest.title,
3236
- disabled: disabled || !canOpenMenu,
3100
+ disabled: isTriggerDisabled,
3237
3101
  autoFocus,
3238
3102
  tabIndex: rest.tabIndex,
3239
3103
  role: "combobox",
@@ -3247,42 +3111,16 @@ function SelectBase({
3247
3111
  onBlur: handleTriggerBlur,
3248
3112
  onKeyDown: handleTriggerKeyDown,
3249
3113
  style: {
3250
- width: "100%",
3251
- boxSizing: "border-box",
3252
- height: controlMetrics.height,
3253
- borderRadius: STANDARD_COMPONENT_BORDER_RADIUS,
3254
- border: `1px solid ${error ? theme.colors.negative : theme.colors.textLight}`,
3255
- backgroundColor: theme.colors.surface,
3256
- color: hasSelection ? theme.colors.text : placeholderTextColor,
3257
- cursor: disabled ? "not-allowed" : "pointer",
3258
- opacity: disabled ? DISABLED_FIELD_OPACITY : 1,
3259
- padding: getSelectControlPadding(controlSize),
3260
- outline: "none",
3261
- boxShadow: componentShadow,
3262
- font: "inherit",
3263
- fontSize: controlMetrics.fontSize,
3264
- lineHeight: controlMetrics.lineHeight,
3265
- transition: FIELD_SURFACE_TRANSITION,
3266
- display: "flex",
3267
- alignItems: "center",
3268
- justifyContent: "space-between",
3269
- gap: 12,
3270
- minWidth: 0,
3271
- textAlign: "left",
3272
- ...style
3114
+ padding: `${controlMetrics.paddingY}px ${controlMetrics.selectPaddingRight}px ${controlMetrics.paddingY}px ${controlMetrics.paddingX}px`,
3115
+ boxShadow: triggerBoxShadow,
3116
+ ...style,
3117
+ ...isTriggerDisabled ? { opacity: DISABLED_FIELD_OPACITY } : {}
3273
3118
  },
3274
3119
  children: [
3275
3120
  /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
3276
3121
  "span",
3277
3122
  {
3278
- style: {
3279
- display: "block",
3280
- flex: "1 1 auto",
3281
- minWidth: 0,
3282
- overflow: "hidden",
3283
- textOverflow: "ellipsis",
3284
- whiteSpace: "nowrap"
3285
- },
3123
+ className: "block min-w-0 flex-1 overflow-hidden text-ellipsis whitespace-nowrap",
3286
3124
  children: displayContent
3287
3125
  }
3288
3126
  ),
@@ -3290,18 +3128,14 @@ function SelectBase({
3290
3128
  "span",
3291
3129
  {
3292
3130
  "aria-hidden": "true",
3131
+ className: cx(
3132
+ "pointer-events-none absolute top-1/2 flex -translate-y-1/2 items-center justify-center",
3133
+ "transition-[transform,color] duration-150",
3134
+ isTriggerDisabled ? "text-[var(--ui-kit-select-indicator-disabled)]" : "text-[var(--ui-kit-select-muted)]"
3135
+ ),
3293
3136
  style: {
3294
- position: "absolute",
3295
3137
  right: indicatorOffset,
3296
- top: "50%",
3297
- transform: `translateY(-50%) rotate(${isOpen ? 180 : 0}deg)`,
3298
- transformOrigin: "center",
3299
- color: disabled ? withAlpha(theme.colors.text, 0.42) : mutedText,
3300
- display: "flex",
3301
- alignItems: "center",
3302
- justifyContent: "center",
3303
- pointerEvents: "none",
3304
- transition: "transform 160ms ease, color 160ms ease"
3138
+ transform: `translateY(-50%) rotate(${isOpen ? 180 : 0}deg)`
3305
3139
  },
3306
3140
  children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("svg", { width: "18", height: "18", viewBox: "0 0 20 20", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
3307
3141
  "path",
@@ -3331,17 +3165,7 @@ function SelectBase({
3331
3165
  onChange: handleHiddenSelectChange,
3332
3166
  tabIndex: -1,
3333
3167
  "aria-hidden": "true",
3334
- style: {
3335
- position: "absolute",
3336
- width: 1,
3337
- height: 1,
3338
- padding: 0,
3339
- margin: 0,
3340
- border: 0,
3341
- opacity: 0,
3342
- pointerEvents: "none",
3343
- clipPath: "inset(50%)"
3344
- },
3168
+ className: "ui-kit-sr-only pointer-events-none opacity-0",
3345
3169
  children: nativeOptions
3346
3170
  }
3347
3171
  ),
@@ -3349,7 +3173,7 @@ function SelectBase({
3349
3173
  /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("style", { children: `
3350
3174
  #${listboxId} {
3351
3175
  scrollbar-width: thin;
3352
- scrollbar-color: ${scrollbarThumbColor} transparent;
3176
+ scrollbar-color: var(--ui-kit-select-scrollbar-thumb) transparent;
3353
3177
  }
3354
3178
 
3355
3179
  #${listboxId}::-webkit-scrollbar {
@@ -3361,19 +3185,19 @@ function SelectBase({
3361
3185
  }
3362
3186
 
3363
3187
  #${listboxId}::-webkit-scrollbar-thumb {
3364
- background: ${scrollbarThumbColor};
3188
+ background: var(--ui-kit-select-scrollbar-thumb);
3365
3189
  border-radius: 999px;
3366
3190
  border: 2px solid transparent;
3367
3191
  background-clip: padding-box;
3368
3192
  }
3369
3193
 
3370
3194
  #${listboxId}::-webkit-scrollbar-thumb:hover {
3371
- background: ${scrollbarThumbHoverColor};
3195
+ background: var(--ui-kit-select-scrollbar-thumb-hover);
3372
3196
  background-clip: padding-box;
3373
3197
  }
3374
3198
 
3375
3199
  #${searchInputId}::placeholder {
3376
- color: ${placeholderTextColor};
3200
+ color: var(--ui-kit-select-placeholder);
3377
3201
  opacity: 1;
3378
3202
  }
3379
3203
  ` }),
@@ -3381,40 +3205,21 @@ function SelectBase({
3381
3205
  "div",
3382
3206
  {
3383
3207
  ref: menuRef,
3208
+ className: "absolute left-0 right-0 z-30 flex max-h-[280px] flex-col gap-1 overflow-hidden rounded-[20px] border p-2",
3384
3209
  style: {
3385
- position: "absolute",
3386
3210
  top: menuPlacement === "bottom" ? `calc(100% + ${MENU_OFFSET}px)` : "auto",
3387
3211
  bottom: menuPlacement === "top" ? `calc(100% + ${MENU_OFFSET}px)` : "auto",
3388
- left: 0,
3389
- right: 0,
3390
- zIndex: 30,
3391
- maxHeight: MENU_MAX_HEIGHT,
3392
- overflow: "hidden",
3393
- boxSizing: "border-box",
3394
- borderRadius: 20,
3395
- border: `1px solid ${theme.colors.textLight}`,
3396
- backgroundColor: surfaceRaised,
3397
- padding: 8,
3398
- boxShadow: componentShadow,
3399
- backdropFilter: "blur(6px)",
3400
- visibility: isPlacementResolved ? "visible" : "hidden",
3401
- display: "flex",
3402
- flexDirection: "column",
3403
- gap: 4
3212
+ borderColor: "var(--theme-textLight)",
3213
+ backgroundColor: "var(--ui-kit-select-surface-raised)",
3214
+ boxShadow: "var(--ui-kit-select-control-shadow)",
3215
+ visibility: isPlacementResolved ? "visible" : "hidden"
3404
3216
  },
3405
3217
  children: [
3406
3218
  hasFilter ? /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
3407
3219
  "div",
3408
3220
  {
3409
- style: {
3410
- display: "flex",
3411
- alignItems: "center",
3412
- justifyContent: "flex-start",
3413
- gap: 8,
3414
- padding: "4px 4px 10px",
3415
- borderBottom: `1px solid ${withAlpha(theme.colors.text, 0.08)}`,
3416
- flexShrink: 0
3417
- },
3221
+ className: "flex shrink-0 items-center justify-start gap-2 border-b px-1 pb-[10px] pt-1",
3222
+ style: { borderColor: "var(--ui-kit-select-divider)" },
3418
3223
  children: [
3419
3224
  bulkToggleControl,
3420
3225
  /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
@@ -3437,20 +3242,10 @@ function SelectBase({
3437
3242
  },
3438
3243
  placeholder: searchPlaceholder,
3439
3244
  "aria-label": searchPlaceholder,
3245
+ className: "w-full flex-1 rounded-[11px] border bg-[var(--theme-surface)] px-[11px] py-[7px] text-[11px] leading-[1.4] text-[var(--theme-text)] outline-none",
3440
3246
  style: {
3441
- flex: "1 1 auto",
3442
- width: "100%",
3443
- border: `1px solid ${theme.colors.textLight}`,
3444
- backgroundColor: theme.colors.surface,
3445
- padding: "7px 11px",
3446
- borderRadius: 11,
3447
- font: "inherit",
3448
- fontSize: 11,
3449
- lineHeight: 1.4,
3450
- color: theme.colors.text,
3451
- outline: "none",
3452
- boxSizing: "border-box",
3453
- boxShadow: componentShadow
3247
+ borderColor: "var(--theme-textLight)",
3248
+ boxShadow: "var(--ui-kit-select-control-shadow)"
3454
3249
  }
3455
3250
  }
3456
3251
  )
@@ -3459,14 +3254,8 @@ function SelectBase({
3459
3254
  ) : isMultiSelect ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
3460
3255
  "div",
3461
3256
  {
3462
- style: {
3463
- display: "flex",
3464
- alignItems: "center",
3465
- justifyContent: "flex-start",
3466
- padding: "4px 4px 10px",
3467
- borderBottom: `1px solid ${withAlpha(theme.colors.text, 0.08)}`,
3468
- flexShrink: 0
3469
- },
3257
+ className: "flex shrink-0 items-center justify-start border-b px-1 pb-[10px] pt-1",
3258
+ style: { borderColor: "var(--ui-kit-select-divider)" },
3470
3259
  children: bulkToggleControl
3471
3260
  }
3472
3261
  ) : null,
@@ -3478,44 +3267,22 @@ function SelectBase({
3478
3267
  "aria-labelledby": resolvedId,
3479
3268
  "aria-multiselectable": isMultiSelect || void 0,
3480
3269
  onScroll: onListboxScroll,
3481
- style: {
3482
- overflowY: "auto",
3483
- overflowX: "hidden",
3484
- minHeight: 0,
3485
- flex: "1 1 auto"
3486
- },
3270
+ className: "min-h-0 flex-1 overflow-y-auto overflow-x-hidden",
3487
3271
  children: visibleGroups.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
3488
3272
  "div",
3489
3273
  {
3490
- style: {
3491
- padding: "14px 12px",
3492
- color: mutedText,
3493
- fontSize: 13,
3494
- textAlign: "center"
3495
- },
3274
+ className: "px-3 py-[14px] text-center text-[13px] text-[var(--ui-kit-select-muted)]",
3496
3275
  children: emptyState
3497
3276
  }
3498
3277
  ) : visibleGroups.map((group) => /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
3499
3278
  "div",
3500
3279
  {
3501
- style: {
3502
- display: "flex",
3503
- flexDirection: "column",
3504
- gap: 4,
3505
- marginTop: group.label ? 4 : 0
3506
- },
3280
+ className: cx("flex flex-col gap-1", group.label ? "mt-1" : "mt-0"),
3507
3281
  children: [
3508
3282
  group.label ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
3509
3283
  "span",
3510
3284
  {
3511
- style: {
3512
- padding: "6px 8px 2px",
3513
- color: mutedText,
3514
- fontSize: 11,
3515
- fontWeight: 800,
3516
- letterSpacing: "0.08em",
3517
- textTransform: "uppercase"
3518
- },
3285
+ className: "px-2 pb-0.5 pt-1.5 text-[11px] font-extrabold uppercase tracking-[0.08em] text-[var(--ui-kit-select-muted)]",
3519
3286
  children: group.label
3520
3287
  }
3521
3288
  ) : null,
@@ -3547,33 +3314,22 @@ function SelectBase({
3547
3314
  commitSelection(option.value);
3548
3315
  }
3549
3316
  },
3550
- style: {
3551
- display: "flex",
3552
- alignItems: "center",
3553
- justifyContent: "space-between",
3554
- gap: 12,
3555
- width: "100%",
3556
- minWidth: 0,
3557
- boxSizing: "border-box",
3558
- borderRadius: 12,
3559
- padding: getOptionPadding(controlSize),
3560
- cursor: option.disabled ? "not-allowed" : "pointer",
3561
- color: option.disabled ? withAlpha(theme.colors.text, 0.38) : isActive ? theme.colors.onPrimary : theme.colors.text,
3562
- backgroundColor: isSelected ? optionSelectedBackground : isHighlighted ? optionHoverBackground : "transparent",
3563
- fontWeight: isSelected ? 700 : 400,
3564
- transition: "background-color 140ms ease, color 140ms ease"
3565
- },
3317
+ className: cx(
3318
+ "flex w-full min-w-0 items-center justify-between gap-3 rounded-xl box-border",
3319
+ "transition-[background-color,color] duration-150",
3320
+ OPTION_PADDING_CLASSNAMES[controlSize],
3321
+ option.disabled ? "cursor-not-allowed text-[var(--ui-kit-select-option-disabled)]" : "cursor-pointer",
3322
+ !option.disabled && isActive ? "text-[var(--theme-onPrimary)]" : null,
3323
+ !option.disabled && !isActive ? "text-[var(--theme-text)]" : null,
3324
+ isSelected ? "bg-[var(--ui-kit-select-option-selected-bg)] font-bold" : null,
3325
+ !isSelected && isHighlighted ? "bg-[var(--ui-kit-select-option-hover-bg)]" : null,
3326
+ !isSelected && !isHighlighted ? "bg-[var(--theme-surface)] font-normal" : null
3327
+ ),
3566
3328
  children: [
3567
3329
  /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
3568
3330
  "span",
3569
3331
  {
3570
- style: {
3571
- display: "flex",
3572
- alignItems: "center",
3573
- gap: 10,
3574
- flex: "1 1 auto",
3575
- minWidth: 0
3576
- },
3332
+ className: "flex min-w-0 flex-1 items-center gap-2.5",
3577
3333
  children: [
3578
3334
  isMultiSelect ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
3579
3335
  CheckboxIndicator,
@@ -3581,23 +3337,16 @@ function SelectBase({
3581
3337
  checked: isSelected,
3582
3338
  disabled: option.disabled,
3583
3339
  size: 16,
3584
- checkedColor: isActive ? theme.colors.onPrimary : theme.colors.primary,
3585
- iconColor: isActive ? theme.colors.primary : theme.colors.onPrimary,
3586
- uncheckedBorderColor: isActive ? theme.colors.onPrimary : withAlpha(theme.colors.text, 0.26),
3340
+ checkedColor: isActive ? "var(--theme-onPrimary)" : "var(--theme-primary)",
3341
+ iconColor: isActive ? "var(--theme-primary)" : "var(--theme-onPrimary)",
3342
+ uncheckedBorderColor: isActive ? "var(--theme-onPrimary)" : withAlpha(theme.colors.text, 0.26),
3587
3343
  uncheckedBackgroundColor: "transparent"
3588
3344
  }
3589
3345
  ) : null,
3590
3346
  /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
3591
3347
  "span",
3592
3348
  {
3593
- style: {
3594
- display: "block",
3595
- flex: "1 1 auto",
3596
- minWidth: 0,
3597
- overflow: "hidden",
3598
- textOverflow: "ellipsis",
3599
- whiteSpace: "nowrap"
3600
- },
3349
+ className: "block min-w-0 flex-1 overflow-hidden text-ellipsis whitespace-nowrap",
3601
3350
  children: option.label
3602
3351
  }
3603
3352
  )
@@ -3608,13 +3357,7 @@ function SelectBase({
3608
3357
  "span",
3609
3358
  {
3610
3359
  "aria-hidden": "true",
3611
- style: {
3612
- display: "flex",
3613
- alignItems: "center",
3614
- justifyContent: "center",
3615
- color: theme.colors.primary,
3616
- flexShrink: 0
3617
- },
3360
+ className: "flex shrink-0 items-center justify-center text-[var(--theme-primary)]",
3618
3361
  children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("svg", { width: "16", height: "16", viewBox: "0 0 20 20", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
3619
3362
  "path",
3620
3363
  {
@@ -3641,11 +3384,8 @@ function SelectBase({
3641
3384
  menuFooter ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
3642
3385
  "div",
3643
3386
  {
3644
- style: {
3645
- padding: "10px 8px 4px",
3646
- borderTop: `1px solid ${withAlpha(theme.colors.text, 0.08)}`,
3647
- flexShrink: 0
3648
- },
3387
+ className: "shrink-0 border-t px-2 pb-1 pt-2.5",
3388
+ style: { borderColor: "var(--ui-kit-select-divider)" },
3649
3389
  children: menuFooter
3650
3390
  }
3651
3391
  ) : null
@@ -3659,7 +3399,7 @@ function SelectBase({
3659
3399
  }
3660
3400
 
3661
3401
  // src/componentsBase/select/childrenAdapter.ts
3662
- var import_react10 = require("react");
3402
+ var import_react9 = require("react");
3663
3403
  function buildOption(keyPrefix, index, props, groupDisabled = false) {
3664
3404
  var _a;
3665
3405
  const rawValue = props.value !== void 0 ? props.value : getTextContent(props.children).trim();
@@ -3686,8 +3426,8 @@ function parseSelectChildren(children) {
3686
3426
  });
3687
3427
  standaloneOptions.length = 0;
3688
3428
  };
3689
- import_react10.Children.forEach(children, (child) => {
3690
- if (!(0, import_react10.isValidElement)(child)) {
3429
+ import_react9.Children.forEach(children, (child) => {
3430
+ if (!(0, import_react9.isValidElement)(child)) {
3691
3431
  return;
3692
3432
  }
3693
3433
  if (child.type === "option") {
@@ -3701,8 +3441,8 @@ function parseSelectChildren(children) {
3701
3441
  flushStandaloneOptions();
3702
3442
  const groupOptions = [];
3703
3443
  let groupOptionIndex = 0;
3704
- import_react10.Children.forEach(child.props.children, (optionChild) => {
3705
- if (!(0, import_react10.isValidElement)(optionChild) || optionChild.type !== "option") {
3444
+ import_react9.Children.forEach(child.props.children, (optionChild) => {
3445
+ if (!(0, import_react9.isValidElement)(optionChild) || optionChild.type !== "option") {
3706
3446
  return;
3707
3447
  }
3708
3448
  groupOptions.push(
@@ -3735,7 +3475,7 @@ function Select({ children, ...props }) {
3735
3475
  }
3736
3476
 
3737
3477
  // src/components/SelectAsync.tsx
3738
- var import_react11 = require("react");
3478
+ var import_react10 = require("react");
3739
3479
 
3740
3480
  // src/componentsBase/select/objectOptionsAdapter.tsx
3741
3481
  var import_jsx_runtime12 = require("react/jsx-runtime");
@@ -3838,29 +3578,29 @@ function SelectAsync({
3838
3578
  ...props
3839
3579
  }) {
3840
3580
  var _a;
3841
- const { theme, mutedText } = useUiKitTheme();
3581
+ useUiKitTheme();
3842
3582
  const isMultiSelect = Boolean(isMulti);
3843
3583
  const isControlled = value !== void 0;
3844
- const [internalSelectedOptions, setInternalSelectedOptions] = (0, import_react11.useState)(() => {
3584
+ const [internalSelectedOptions, setInternalSelectedOptions] = (0, import_react10.useState)(() => {
3845
3585
  return normalizeAsyncValue(defaultValue, isMultiSelect);
3846
3586
  });
3847
- const [remoteOptions, setRemoteOptions] = (0, import_react11.useState)(defaultOptions);
3848
- const [searchQuery, setSearchQuery] = (0, import_react11.useState)("");
3849
- const [nextPage, setNextPage] = (0, import_react11.useState)(1);
3850
- const [hasMore, setHasMore] = (0, import_react11.useState)(true);
3851
- const [isInitialLoading, setIsInitialLoading] = (0, import_react11.useState)(false);
3852
- const [isLoadingMore, setIsLoadingMore] = (0, import_react11.useState)(false);
3853
- const [loadError, setLoadError] = (0, import_react11.useState)(null);
3587
+ const [remoteOptions, setRemoteOptions] = (0, import_react10.useState)(defaultOptions);
3588
+ const [searchQuery, setSearchQuery] = (0, import_react10.useState)("");
3589
+ const [nextPage, setNextPage] = (0, import_react10.useState)(1);
3590
+ const [hasMore, setHasMore] = (0, import_react10.useState)(true);
3591
+ const [isInitialLoading, setIsInitialLoading] = (0, import_react10.useState)(false);
3592
+ const [isLoadingMore, setIsLoadingMore] = (0, import_react10.useState)(false);
3593
+ const [loadError, setLoadError] = (0, import_react10.useState)(null);
3854
3594
  const selectedOptions = isControlled ? normalizeAsyncValue(value, isMultiSelect) : internalSelectedOptions;
3855
- const optionLookupRef = (0, import_react11.useRef)(/* @__PURE__ */ new Map());
3856
- const loadOptionsRef = (0, import_react11.useRef)(loadOptions);
3857
- const remoteOptionsRef = (0, import_react11.useRef)(remoteOptions);
3858
- const cacheUniqsRef = (0, import_react11.useRef)(cacheUniqs);
3859
- const requestVersionRef = (0, import_react11.useRef)(0);
3860
- const activeControllerRef = (0, import_react11.useRef)(null);
3595
+ const optionLookupRef = (0, import_react10.useRef)(/* @__PURE__ */ new Map());
3596
+ const loadOptionsRef = (0, import_react10.useRef)(loadOptions);
3597
+ const remoteOptionsRef = (0, import_react10.useRef)(remoteOptions);
3598
+ const cacheUniqsRef = (0, import_react10.useRef)(cacheUniqs);
3599
+ const requestVersionRef = (0, import_react10.useRef)(0);
3600
+ const activeControllerRef = (0, import_react10.useRef)(null);
3861
3601
  loadOptionsRef.current = loadOptions;
3862
3602
  remoteOptionsRef.current = remoteOptions;
3863
- const mergedOptions = (0, import_react11.useMemo)(() => {
3603
+ const mergedOptions = (0, import_react10.useMemo)(() => {
3864
3604
  const baseOptions = dedupeSelectObjectOptions([
3865
3605
  ...fixedOptions,
3866
3606
  ...remoteOptions
@@ -3871,20 +3611,20 @@ function SelectAsync({
3871
3611
  });
3872
3612
  return [...baseOptions, ...missingSelectedOptions];
3873
3613
  }, [fixedOptions, remoteOptions, selectedOptions]);
3874
- (0, import_react11.useEffect)(() => {
3614
+ (0, import_react10.useEffect)(() => {
3875
3615
  const nextLookup = /* @__PURE__ */ new Map();
3876
3616
  mergedOptions.forEach((option) => {
3877
3617
  nextLookup.set(getSelectObjectOptionKey(option), option);
3878
3618
  });
3879
3619
  optionLookupRef.current = nextLookup;
3880
3620
  }, [mergedOptions]);
3881
- (0, import_react11.useEffect)(() => {
3621
+ (0, import_react10.useEffect)(() => {
3882
3622
  if (isControlled) {
3883
3623
  return;
3884
3624
  }
3885
3625
  setInternalSelectedOptions(normalizeAsyncValue(defaultValue, isMultiSelect));
3886
3626
  }, [defaultValue, isControlled, isMultiSelect]);
3887
- (0, import_react11.useEffect)(() => {
3627
+ (0, import_react10.useEffect)(() => {
3888
3628
  if (areUnknownArraysEqual(cacheUniqsRef.current, cacheUniqs)) {
3889
3629
  return;
3890
3630
  }
@@ -3895,7 +3635,7 @@ function SelectAsync({
3895
3635
  setHasMore(true);
3896
3636
  setLoadError(null);
3897
3637
  }, [cacheUniqs, defaultOptions]);
3898
- (0, import_react11.useEffect)(() => {
3638
+ (0, import_react10.useEffect)(() => {
3899
3639
  const timeoutId = window.setTimeout(() => {
3900
3640
  var _a2;
3901
3641
  requestVersionRef.current += 1;
@@ -3936,7 +3676,7 @@ function SelectAsync({
3936
3676
  window.clearTimeout(timeoutId);
3937
3677
  };
3938
3678
  }, [loadErrorMessage, searchDebounceMs, searchQuery, ...cacheUniqs]);
3939
- (0, import_react11.useEffect)(() => {
3679
+ (0, import_react10.useEffect)(() => {
3940
3680
  return () => {
3941
3681
  var _a2;
3942
3682
  (_a2 = activeControllerRef.current) == null ? void 0 : _a2.abort();
@@ -3997,28 +3737,15 @@ function SelectAsync({
3997
3737
  "div",
3998
3738
  {
3999
3739
  "aria-live": "polite",
4000
- style: {
4001
- display: "flex",
4002
- alignItems: "center",
4003
- justifyContent: hasMore ? "space-between" : "center",
4004
- gap: 12,
4005
- color: mutedText,
4006
- fontSize: 12,
4007
- lineHeight: 1.4
4008
- },
3740
+ className: "flex items-center gap-3 text-xs leading-[1.4] text-[var(--ui-kit-muted-text)]",
3741
+ style: { justifyContent: hasMore ? "space-between" : "center" },
4009
3742
  children: [
4010
3743
  /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { children: isLoadingMore ? loadingMoreMessage : hasMore ? loadMoreHintMessage : null }),
4011
3744
  isLoadingMore ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
4012
3745
  "span",
4013
3746
  {
4014
3747
  "aria-hidden": "true",
4015
- style: {
4016
- width: 8,
4017
- height: 8,
4018
- borderRadius: 999,
4019
- backgroundColor: withAlpha(theme.colors.primary, 0.8),
4020
- flexShrink: 0
4021
- }
3748
+ className: "h-2 w-2 shrink-0 rounded-full bg-[var(--theme-primary)] opacity-80"
4022
3749
  }
4023
3750
  ) : null
4024
3751
  ]
@@ -4052,13 +3779,13 @@ function SelectAsync({
4052
3779
  }
4053
3780
 
4054
3781
  // src/components/Table.tsx
4055
- var import_react14 = require("react");
3782
+ var import_react13 = require("react");
4056
3783
 
4057
3784
  // src/componentsBase/table/TableBase.tsx
4058
- var import_react13 = require("react");
3785
+ var import_react12 = require("react");
4059
3786
 
4060
3787
  // src/componentsBase/table/utils.ts
4061
- var import_react12 = require("react");
3788
+ var import_react11 = require("react");
4062
3789
  var DEFAULT_COLLAPSE_BELOW = 420;
4063
3790
  var DEFAULT_MAX_INLINE_ACTIONS = 2;
4064
3791
  var DEFAULT_PAGE_SIZE = 10;
@@ -4101,7 +3828,7 @@ var getNodeText = (node) => {
4101
3828
  if (Array.isArray(node)) {
4102
3829
  return node.map((entry) => getNodeText(entry)).join(" ");
4103
3830
  }
4104
- if ((0, import_react12.isValidElement)(node)) {
3831
+ if ((0, import_react11.isValidElement)(node)) {
4105
3832
  const element = node;
4106
3833
  return getNodeText(element.props.children);
4107
3834
  }
@@ -4117,7 +3844,7 @@ var normalizeTableText = (value) => {
4117
3844
  if (Array.isArray(value)) {
4118
3845
  return value.map((entry) => normalizeTableText(entry)).join(" ");
4119
3846
  }
4120
- if ((0, import_react12.isValidElement)(value)) {
3847
+ if ((0, import_react11.isValidElement)(value)) {
4121
3848
  return getNodeText(value);
4122
3849
  }
4123
3850
  return "";
@@ -4507,9 +4234,9 @@ function DoubleChevronIcon({ direction }) {
4507
4234
  ] });
4508
4235
  }
4509
4236
  function OverflowMenu({ label, children, buttonStyle, menuStyle }) {
4510
- const [isOpen, setIsOpen] = (0, import_react13.useState)(false);
4511
- const containerRef = (0, import_react13.useRef)(null);
4512
- (0, import_react13.useEffect)(() => {
4237
+ const [isOpen, setIsOpen] = (0, import_react12.useState)(false);
4238
+ const containerRef = (0, import_react12.useRef)(null);
4239
+ (0, import_react12.useEffect)(() => {
4513
4240
  if (!isOpen) {
4514
4241
  return;
4515
4242
  }
@@ -4577,10 +4304,10 @@ function TableBase({
4577
4304
  const uiKitTheme = useUiKitTheme();
4578
4305
  const { theme, borderSoft, borderStrong, focusRing, mutedText, surfaceMuted, surfaceRaised } = uiKitTheme;
4579
4306
  const componentShadow = getComponentShadow(theme);
4580
- const scrollRegionId = (0, import_react13.useId)().replace(/:/g, "");
4581
- const containerRef = (0, import_react13.useRef)(null);
4582
- const [containerWidth, setContainerWidth] = (0, import_react13.useState)(null);
4583
- const [isSettingsModalOpen, setIsSettingsModalOpen] = (0, import_react13.useState)(false);
4307
+ const scrollRegionId = (0, import_react12.useId)().replace(/:/g, "");
4308
+ const containerRef = (0, import_react12.useRef)(null);
4309
+ const [containerWidth, setContainerWidth] = (0, import_react12.useState)(null);
4310
+ const [isSettingsModalOpen, setIsSettingsModalOpen] = (0, import_react12.useState)(false);
4584
4311
  const resolvedLabels = mergeTableLabels({
4585
4312
  ...labels != null ? labels : {},
4586
4313
  ...translations != null ? translations : {}
@@ -4622,7 +4349,7 @@ function TableBase({
4622
4349
  boxShadow: stickyActionsColumnShadow,
4623
4350
  borderLeft: `1px solid ${borderSoft}`
4624
4351
  });
4625
- (0, import_react13.useEffect)(() => {
4352
+ (0, import_react12.useEffect)(() => {
4626
4353
  const element = containerRef.current;
4627
4354
  if (!element) {
4628
4355
  return;
@@ -4837,31 +4564,20 @@ function TableBase({
4837
4564
  "div",
4838
4565
  {
4839
4566
  ref: containerRef,
4840
- className,
4841
- style: {
4842
- width: "100%",
4843
- maxWidth: "100%",
4844
- minWidth: 0,
4845
- display: "flex",
4846
- flexDirection: "column",
4847
- gap: 16,
4848
- padding: 18,
4849
- boxSizing: "border-box",
4850
- borderRadius: 24,
4851
- backgroundColor: surfaceRaised,
4852
- color: theme.colors.text,
4853
- ...style
4854
- },
4567
+ className: cx(
4568
+ UI_KIT_ROOT_CLASSNAME,
4569
+ "flex w-full max-w-full min-w-0 flex-col gap-4 rounded-[24px]",
4570
+ "box-border bg-[var(--ui-kit-surface-raised)] p-[18px] text-[var(--theme-text)]",
4571
+ className
4572
+ ),
4573
+ style,
4855
4574
  children: [
4856
- shouldRenderToolbar ? /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { style: { display: "flex", flexWrap: "wrap", alignItems: "center", justifyContent: "space-between", gap: 12, minWidth: 0 }, children: [
4575
+ shouldRenderToolbar ? /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "flex min-w-0 flex-wrap items-center justify-between gap-3", children: [
4857
4576
  shouldRenderToolbarPrimaryGroup ? /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
4858
4577
  "div",
4859
4578
  {
4579
+ className: "flex min-w-0 items-center gap-2.5",
4860
4580
  style: {
4861
- display: "flex",
4862
- alignItems: "center",
4863
- gap: 10,
4864
- minWidth: 0,
4865
4581
  flex: shouldShowSearch ? "1 1 260px" : "0 0 auto",
4866
4582
  marginLeft: shouldShowSearch ? void 0 : "auto"
4867
4583
  },
@@ -4874,11 +4590,12 @@ function TableBase({
4874
4590
  "aria-label": resolvedLabels.searchPlaceholder,
4875
4591
  placeholder: resolvedLabels.searchPlaceholder,
4876
4592
  onChange: (event) => onSearchChange(event.currentTarget.value),
4593
+ className: "h-[42px] min-w-0 flex-1 rounded-[14px] border bg-[var(--theme-surface)] px-[10px] text-sm leading-[1.4] text-[var(--theme-text)] outline-none",
4877
4594
  style: {
4878
- ...toolbarControlStyle,
4879
4595
  flex: "1 1 260px",
4880
4596
  maxWidth: 360,
4881
- minWidth: 0
4597
+ borderColor: "var(--ui-kit-border-soft)",
4598
+ boxShadow: "var(--ui-kit-component-shadow)"
4882
4599
  }
4883
4600
  }
4884
4601
  ) : null,
@@ -4899,19 +4616,12 @@ function TableBase({
4899
4616
  shouldShowToolbarStatus ? /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
4900
4617
  "div",
4901
4618
  {
4902
- style: {
4903
- display: "flex",
4904
- flexWrap: "wrap",
4905
- alignItems: "center",
4906
- justifyContent: "flex-end",
4907
- gap: 10,
4908
- minWidth: 0,
4909
- marginLeft: shouldRenderToolbarPrimaryGroup ? "auto" : void 0
4910
- },
4619
+ className: "flex min-w-0 flex-wrap items-center justify-end gap-2.5",
4620
+ style: { marginLeft: shouldRenderToolbarPrimaryGroup ? "auto" : void 0 },
4911
4621
  children: [
4912
- loading ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { style: { color: mutedText, fontSize: 13, fontWeight: 600 }, children: resolvedLabels.loadingMessage }) : null,
4913
- !loading && error && hasRows ? /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { style: { display: "inline-flex", alignItems: "center", gap: 10 }, children: [
4914
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { style: { color: theme.colors.negative, fontSize: 13, fontWeight: 600 }, children: resolvedLabels.errorMessage }),
4622
+ loading ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "text-[13px] font-semibold text-[var(--ui-kit-muted-text)]", children: resolvedLabels.loadingMessage }) : null,
4623
+ !loading && error && hasRows ? /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "inline-flex items-center gap-2.5", children: [
4624
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "text-[13px] font-semibold text-[var(--theme-negative)]", children: resolvedLabels.errorMessage }),
4915
4625
  onRetry ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Button, { size: "sm", variant: "ghost", onClick: onRetry, children: resolvedLabels.retryLabel }) : null
4916
4626
  ] }) : null
4917
4627
  ]
@@ -4919,7 +4629,7 @@ function TableBase({
4919
4629
  ) : null
4920
4630
  ] }) : null,
4921
4631
  !hasRows && (!loading || error) ? renderEmptyState() : null,
4922
- hasRows ? isCollapsed ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { role: "list", "aria-label": ariaLabel, style: { display: "flex", flexDirection: "column", gap: 14 }, children: items.map((item, rowIndex) => {
4632
+ hasRows ? isCollapsed ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { role: "list", "aria-label": ariaLabel, className: "flex flex-col gap-3.5", children: items.map((item, rowIndex) => {
4923
4633
  const rowActions = renderActions(item, rowIndex);
4924
4634
  const rowBackgroundColor = rowIndex % 2 === 0 ? theme.colors.surface : surfaceMuted;
4925
4635
  return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
@@ -5065,18 +4775,12 @@ function TableBase({
5065
4775
  id: scrollRegionId,
5066
4776
  role: "region",
5067
4777
  "aria-label": ariaLabel,
4778
+ className: "w-full max-w-full min-w-0 overflow-x-auto overflow-y-hidden rounded-[20px] border bg-[var(--theme-surface)]",
5068
4779
  style: {
5069
- width: "100%",
5070
- maxWidth: "100%",
5071
- minWidth: 0,
5072
- overflowX: "auto",
5073
- overflowY: "hidden",
5074
- borderRadius: 20,
5075
- border: `1px solid ${borderSoft}`,
5076
- backgroundColor: theme.colors.surface,
5077
- boxShadow: componentShadow
4780
+ borderColor: "var(--ui-kit-border-soft)",
4781
+ boxShadow: "var(--ui-kit-component-shadow)"
5078
4782
  },
5079
- children: /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("table", { style: { width: "max-content", maxWidth: "none", minWidth: "100%", borderCollapse: "separate", borderSpacing: 0 }, children: [
4783
+ children: /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("table", { className: "min-w-full max-w-none border-separate border-spacing-0", style: { width: "max-content" }, children: [
5080
4784
  /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("thead", { children: /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("tr", { children: [
5081
4785
  desktopColumns.map((column, columnIndex) => {
5082
4786
  var _a, _b;
@@ -5162,17 +4866,10 @@ function TableBase({
5162
4866
  hasRows && shouldRenderFooter ? /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
5163
4867
  "div",
5164
4868
  {
5165
- style: {
5166
- display: "flex",
5167
- flexWrap: "wrap",
5168
- alignItems: "center",
5169
- justifyContent: "space-between",
5170
- gap: 12,
5171
- paddingTop: 4
5172
- },
4869
+ className: "flex flex-wrap items-center justify-between gap-3 pt-1",
5173
4870
  children: [
5174
- shouldShowPaginationControls ? /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: 8, flexWrap: "wrap" }, children: [
5175
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { style: { color: mutedText, fontSize: 13, marginRight: 4 }, children: resolvedLabels.pageLabel(normalizedPage, totalPages) }),
4871
+ shouldShowPaginationControls ? /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "flex flex-wrap items-center gap-2", children: [
4872
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "mr-1 text-[13px] text-[var(--ui-kit-muted-text)]", children: resolvedLabels.pageLabel(normalizedPage, totalPages) }),
5176
4873
  /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
5177
4874
  "button",
5178
4875
  {
@@ -5218,22 +4915,29 @@ function TableBase({
5218
4915
  }
5219
4916
  )
5220
4917
  ] }) : null,
5221
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { style: { display: "flex", alignItems: "center", gap: 10, color: mutedText, fontSize: 13, marginLeft: shouldShowRowsPerPageControl ? "auto" : void 0 }, children: shouldShowRowsPerPageControl ? /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_jsx_runtime14.Fragment, { children: [
5222
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { children: resolvedLabels.rowsPerPageLabel }),
5223
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
5224
- "select",
5225
- {
5226
- value: pageSize,
5227
- onChange: (event) => onInternalPageSizeChange(Number(event.currentTarget.value)),
5228
- style: {
5229
- ...toolbarControlStyle,
5230
- height: 38,
5231
- padding: "0 12px"
5232
- },
5233
- children: normalizedPageSizeOptions.map((option) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("option", { value: option, children: option }, option))
5234
- }
5235
- )
5236
- ] }) : null })
4918
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
4919
+ "div",
4920
+ {
4921
+ className: "flex items-center gap-2.5 text-[13px] text-[var(--ui-kit-muted-text)]",
4922
+ style: { marginLeft: shouldShowRowsPerPageControl ? "auto" : void 0 },
4923
+ children: shouldShowRowsPerPageControl ? /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_jsx_runtime14.Fragment, { children: [
4924
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { children: resolvedLabels.rowsPerPageLabel }),
4925
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
4926
+ "select",
4927
+ {
4928
+ value: pageSize,
4929
+ onChange: (event) => onInternalPageSizeChange(Number(event.currentTarget.value)),
4930
+ className: "h-[34px] rounded-[14px] border bg-[var(--theme-surface)] px-3 text-sm leading-[1.4] text-[var(--theme-text)] outline-none",
4931
+ style: {
4932
+ borderColor: "var(--ui-kit-border-soft)",
4933
+ boxShadow: "var(--ui-kit-component-shadow)"
4934
+ },
4935
+ children: normalizedPageSizeOptions.map((option) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("option", { value: option, children: option }, option))
4936
+ }
4937
+ )
4938
+ ] }) : null
4939
+ }
4940
+ )
5237
4941
  ]
5238
4942
  }
5239
4943
  ) : null,
@@ -5246,31 +4950,31 @@ function TableBase({
5246
4950
  maxWidth: 560,
5247
4951
  bodyStyle: { display: "grid", gap: 0 },
5248
4952
  children: [
5249
- /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("section", { style: { display: "grid", gap: 12 }, children: [
5250
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("strong", { style: { color: theme.colors.text, fontSize: 14 }, children: resolvedLabels.tableInfoSectionTitle }),
5251
- /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { style: { display: "grid", gap: 10, gridTemplateColumns: "repeat(auto-fit, minmax(120px, 1fr))" }, children: [
4953
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("section", { className: "grid gap-3", children: [
4954
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("strong", { className: "text-sm text-[var(--theme-text)]", children: resolvedLabels.tableInfoSectionTitle }),
4955
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "grid gap-2.5 [grid-template-columns:repeat(auto-fit,minmax(120px,1fr))]", children: [
5252
4956
  /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { style: infoCardStyle, children: [
5253
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { style: { color: mutedText, fontSize: 10, fontWeight: 700, letterSpacing: "0.06em", textTransform: "uppercase" }, children: resolvedLabels.totalPagesInfoLabel }),
5254
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("strong", { style: { color: theme.colors.text, fontSize: 18, lineHeight: 1.1 }, children: totalPages })
4957
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "text-[10px] font-bold uppercase tracking-[0.06em] text-[var(--ui-kit-muted-text)]", children: resolvedLabels.totalPagesInfoLabel }),
4958
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("strong", { className: "text-[18px] leading-[1.1] text-[var(--theme-text)]", children: totalPages })
5255
4959
  ] }),
5256
4960
  /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { style: infoCardStyle, children: [
5257
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { style: { color: mutedText, fontSize: 10, fontWeight: 700, letterSpacing: "0.06em", textTransform: "uppercase" }, children: resolvedLabels.totalItemsInfoLabel }),
5258
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("strong", { style: { color: theme.colors.text, fontSize: 18, lineHeight: 1.1 }, children: totalItemCount })
4961
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "text-[10px] font-bold uppercase tracking-[0.06em] text-[var(--ui-kit-muted-text)]", children: resolvedLabels.totalItemsInfoLabel }),
4962
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("strong", { className: "text-[18px] leading-[1.1] text-[var(--theme-text)]", children: totalItemCount })
5259
4963
  ] }),
5260
4964
  /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { style: infoCardStyle, children: [
5261
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { style: { color: mutedText, fontSize: 10, fontWeight: 700, letterSpacing: "0.06em", textTransform: "uppercase" }, children: resolvedLabels.currentPageInfoLabel }),
5262
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("strong", { style: { color: theme.colors.text, fontSize: 18, lineHeight: 1.1 }, children: normalizedPage })
4965
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "text-[10px] font-bold uppercase tracking-[0.06em] text-[var(--ui-kit-muted-text)]", children: resolvedLabels.currentPageInfoLabel }),
4966
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("strong", { className: "text-[18px] leading-[1.1] text-[var(--theme-text)]", children: normalizedPage })
5263
4967
  ] }),
5264
4968
  /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { style: infoCardStyle, children: [
5265
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { style: { color: mutedText, fontSize: 10, fontWeight: 700, letterSpacing: "0.06em", textTransform: "uppercase" }, children: resolvedLabels.currentPageItemsInfoLabel }),
5266
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("strong", { style: { color: theme.colors.text, fontSize: 18, lineHeight: 1.1 }, children: currentPageItemCount })
4969
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "text-[10px] font-bold uppercase tracking-[0.06em] text-[var(--ui-kit-muted-text)]", children: resolvedLabels.currentPageItemsInfoLabel }),
4970
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("strong", { className: "text-[18px] leading-[1.1] text-[var(--theme-text)]", children: currentPageItemCount })
5267
4971
  ] })
5268
4972
  ] })
5269
4973
  ] }),
5270
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { style: { paddingBlock: 18 }, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Separator, { orientation: "horizontal", color: borderSoft }) }),
5271
- /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("section", { style: { display: "grid", gap: 12 }, children: [
5272
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("strong", { style: { color: theme.colors.text, fontSize: 14 }, children: resolvedLabels.downloadSectionTitle }),
5273
- /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { style: { display: "flex", flexWrap: "wrap", gap: 10 }, children: [
4974
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "py-[18px]", children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Separator, { orientation: "horizontal", color: borderSoft }) }),
4975
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("section", { className: "grid gap-3", children: [
4976
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("strong", { className: "text-sm text-[var(--theme-text)]", children: resolvedLabels.downloadSectionTitle }),
4977
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "flex flex-wrap gap-2.5", children: [
5274
4978
  /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Button, { size: "sm", variant: "outline", onClick: handleDownloadCsv, disabled: !hasRows, children: resolvedLabels.downloadCsvLabel }),
5275
4979
  /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Button, { size: "sm", variant: "outline", onClick: handleDownloadXls, disabled: !hasRows, children: resolvedLabels.downloadXlsLabel }),
5276
4980
  /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Button, { size: "sm", variant: "outline", onClick: handleDownloadPdf, disabled: !hasRows, children: resolvedLabels.downloadPdfLabel })
@@ -5301,13 +5005,13 @@ function Table({
5301
5005
  ...props
5302
5006
  }) {
5303
5007
  var _a;
5304
- const initialPageSizeOptions = (0, import_react14.useMemo)(() => {
5008
+ const initialPageSizeOptions = (0, import_react13.useMemo)(() => {
5305
5009
  return sanitizePageSizeOptions(pageSizeOptions, defaultPageSize);
5306
5010
  }, [defaultPageSize, pageSizeOptions]);
5307
- const [searchValue, setSearchValue] = (0, import_react14.useState)(defaultSearchValue);
5308
- const [page, setPage] = (0, import_react14.useState)(Math.max(1, Math.floor(defaultPage)));
5309
- const [pageSize, setPageSize] = (0, import_react14.useState)((_a = initialPageSizeOptions[0]) != null ? _a : DEFAULT_PAGE_SIZE);
5310
- (0, import_react14.useEffect)(() => {
5011
+ const [searchValue, setSearchValue] = (0, import_react13.useState)(defaultSearchValue);
5012
+ const [page, setPage] = (0, import_react13.useState)(Math.max(1, Math.floor(defaultPage)));
5013
+ const [pageSize, setPageSize] = (0, import_react13.useState)((_a = initialPageSizeOptions[0]) != null ? _a : DEFAULT_PAGE_SIZE);
5014
+ (0, import_react13.useEffect)(() => {
5311
5015
  var _a2;
5312
5016
  if (initialPageSizeOptions.includes(pageSize)) {
5313
5017
  return;
@@ -5315,7 +5019,7 @@ function Table({
5315
5019
  const nextPageSize = (_a2 = initialPageSizeOptions[0]) != null ? _a2 : DEFAULT_PAGE_SIZE;
5316
5020
  setPageSize(nextPageSize);
5317
5021
  }, [initialPageSizeOptions, pageSize]);
5318
- const filteredItems = (0, import_react14.useMemo)(() => {
5022
+ const filteredItems = (0, import_react13.useMemo)(() => {
5319
5023
  if (!searchable) {
5320
5024
  return items;
5321
5025
  }
@@ -5333,14 +5037,14 @@ function Table({
5333
5037
  const totalItems = filteredItems.length;
5334
5038
  const totalPages = Math.max(1, Math.ceil(totalItems / pageSize));
5335
5039
  const normalizedPage = clampPage(page, totalPages);
5336
- (0, import_react14.useEffect)(() => {
5040
+ (0, import_react13.useEffect)(() => {
5337
5041
  if (normalizedPage === page) {
5338
5042
  return;
5339
5043
  }
5340
5044
  setPage(normalizedPage);
5341
5045
  onPageChange == null ? void 0 : onPageChange(normalizedPage);
5342
5046
  }, [normalizedPage, onPageChange, page]);
5343
- const pageItems = (0, import_react14.useMemo)(() => {
5047
+ const pageItems = (0, import_react13.useMemo)(() => {
5344
5048
  const startIndex = (normalizedPage - 1) * pageSize;
5345
5049
  return filteredItems.slice(startIndex, startIndex + pageSize);
5346
5050
  }, [filteredItems, normalizedPage, pageSize]);
@@ -5380,7 +5084,7 @@ function Table({
5380
5084
  }
5381
5085
 
5382
5086
  // src/components/TableAsync.tsx
5383
- var import_react15 = require("react");
5087
+ var import_react14 = require("react");
5384
5088
  var import_jsx_runtime16 = require("react/jsx-runtime");
5385
5089
  var areUnknownArraysEqual2 = (left, right) => {
5386
5090
  if (left.length !== right.length) {
@@ -5406,25 +5110,25 @@ function TableAsync({
5406
5110
  ...props
5407
5111
  }) {
5408
5112
  var _a;
5409
- const initialPageSizeOptions = (0, import_react15.useMemo)(() => {
5113
+ const initialPageSizeOptions = (0, import_react14.useMemo)(() => {
5410
5114
  return sanitizePageSizeOptions(pageSizeOptions, defaultPageSize);
5411
5115
  }, [defaultPageSize, pageSizeOptions]);
5412
- const [searchValue, setSearchValue] = (0, import_react15.useState)(defaultSearchValue);
5413
- const [debouncedSearchValue, setDebouncedSearchValue] = (0, import_react15.useState)(defaultSearchValue);
5414
- const [page, setPage] = (0, import_react15.useState)(Math.max(1, Math.floor(defaultPage)));
5415
- const [pageSize, setPageSize] = (0, import_react15.useState)((_a = initialPageSizeOptions[0]) != null ? _a : DEFAULT_PAGE_SIZE);
5416
- const [items, setItems] = (0, import_react15.useState)([]);
5417
- const [totalPages, setTotalPages] = (0, import_react15.useState)(1);
5418
- const [totalItems, setTotalItems] = (0, import_react15.useState)(void 0);
5419
- const [loading, setLoading] = (0, import_react15.useState)(false);
5420
- const [error, setError] = (0, import_react15.useState)(null);
5421
- const [reloadKey, setReloadKey] = (0, import_react15.useState)(0);
5422
- const loadItemsRef = (0, import_react15.useRef)(loadItems);
5423
- const cacheUniqsRef = (0, import_react15.useRef)(cacheUniqs);
5424
- const activeControllerRef = (0, import_react15.useRef)(null);
5425
- const requestVersionRef = (0, import_react15.useRef)(0);
5116
+ const [searchValue, setSearchValue] = (0, import_react14.useState)(defaultSearchValue);
5117
+ const [debouncedSearchValue, setDebouncedSearchValue] = (0, import_react14.useState)(defaultSearchValue);
5118
+ const [page, setPage] = (0, import_react14.useState)(Math.max(1, Math.floor(defaultPage)));
5119
+ const [pageSize, setPageSize] = (0, import_react14.useState)((_a = initialPageSizeOptions[0]) != null ? _a : DEFAULT_PAGE_SIZE);
5120
+ const [items, setItems] = (0, import_react14.useState)([]);
5121
+ const [totalPages, setTotalPages] = (0, import_react14.useState)(1);
5122
+ const [totalItems, setTotalItems] = (0, import_react14.useState)(void 0);
5123
+ const [loading, setLoading] = (0, import_react14.useState)(false);
5124
+ const [error, setError] = (0, import_react14.useState)(null);
5125
+ const [reloadKey, setReloadKey] = (0, import_react14.useState)(0);
5126
+ const loadItemsRef = (0, import_react14.useRef)(loadItems);
5127
+ const cacheUniqsRef = (0, import_react14.useRef)(cacheUniqs);
5128
+ const activeControllerRef = (0, import_react14.useRef)(null);
5129
+ const requestVersionRef = (0, import_react14.useRef)(0);
5426
5130
  loadItemsRef.current = loadItems;
5427
- (0, import_react15.useEffect)(() => {
5131
+ (0, import_react14.useEffect)(() => {
5428
5132
  var _a2;
5429
5133
  if (initialPageSizeOptions.includes(pageSize)) {
5430
5134
  return;
@@ -5432,7 +5136,7 @@ function TableAsync({
5432
5136
  const nextPageSize = (_a2 = initialPageSizeOptions[0]) != null ? _a2 : DEFAULT_PAGE_SIZE;
5433
5137
  setPageSize(nextPageSize);
5434
5138
  }, [initialPageSizeOptions, pageSize]);
5435
- (0, import_react15.useEffect)(() => {
5139
+ (0, import_react14.useEffect)(() => {
5436
5140
  const timeoutId = window.setTimeout(() => {
5437
5141
  setDebouncedSearchValue(searchValue);
5438
5142
  }, searchDebounceMs);
@@ -5440,7 +5144,7 @@ function TableAsync({
5440
5144
  window.clearTimeout(timeoutId);
5441
5145
  };
5442
5146
  }, [searchDebounceMs, searchValue]);
5443
- (0, import_react15.useEffect)(() => {
5147
+ (0, import_react14.useEffect)(() => {
5444
5148
  if (areUnknownArraysEqual2(cacheUniqsRef.current, cacheUniqs)) {
5445
5149
  return;
5446
5150
  }
@@ -5448,7 +5152,7 @@ function TableAsync({
5448
5152
  setPage(1);
5449
5153
  setReloadKey((currentValue) => currentValue + 1);
5450
5154
  }, [cacheUniqs]);
5451
- (0, import_react15.useEffect)(() => {
5155
+ (0, import_react14.useEffect)(() => {
5452
5156
  var _a2;
5453
5157
  requestVersionRef.current += 1;
5454
5158
  const currentRequestVersion = requestVersionRef.current;
@@ -5486,14 +5190,14 @@ function TableAsync({
5486
5190
  setLoading(false);
5487
5191
  });
5488
5192
  }, [debouncedSearchValue, keepPreviousData, page, pageSize, reloadKey, searchable, ...cacheUniqs]);
5489
- (0, import_react15.useEffect)(() => {
5193
+ (0, import_react14.useEffect)(() => {
5490
5194
  return () => {
5491
5195
  var _a2;
5492
5196
  (_a2 = activeControllerRef.current) == null ? void 0 : _a2.abort();
5493
5197
  };
5494
5198
  }, []);
5495
5199
  const normalizedPage = clampPage(page, totalPages);
5496
- (0, import_react15.useEffect)(() => {
5200
+ (0, import_react14.useEffect)(() => {
5497
5201
  if (normalizedPage === page) {
5498
5202
  return;
5499
5203
  }
@@ -5540,10 +5244,10 @@ function TableAsync({
5540
5244
 
5541
5245
  // src/components/Textarea.tsx
5542
5246
  var import_jsx_runtime17 = require("react/jsx-runtime");
5543
- var getPadding = (size) => {
5544
- if (size === "sm") return "10px 12px";
5545
- if (size === "lg") return "16px 18px";
5546
- return "13px 16px";
5247
+ var TEXTAREA_SIZE_CLASSNAMES = {
5248
+ sm: "px-3 py-[10px] text-[13px] leading-4",
5249
+ md: "px-[14px] py-[11px] text-sm leading-[18px]",
5250
+ lg: "px-4 py-3 text-[15px] leading-[18px]"
5547
5251
  };
5548
5252
  function Textarea({
5549
5253
  label,
@@ -5556,27 +5260,33 @@ function Textarea({
5556
5260
  rows = 5,
5557
5261
  ...rest
5558
5262
  }) {
5559
- const { theme, focusRing } = useUiKitTheme();
5560
- const componentShadow = getComponentShadow(theme);
5561
- const textareaStyle = {
5562
- border: `1px solid ${error ? theme.colors.negative : theme.colors.textLight}`,
5563
- backgroundColor: theme.colors.surface,
5564
- color: theme.colors.text,
5565
- cursor: disabled ? "not-allowed" : "text",
5566
- opacity: disabled ? DISABLED_FIELD_OPACITY : 1,
5567
- width: "100%",
5568
- boxSizing: "border-box",
5569
- borderRadius: STANDARD_COMPONENT_BORDER_RADIUS,
5570
- padding: getPadding(controlSize),
5571
- outline: "none",
5572
- boxShadow: error ? `0 0 0 3px ${withAlpha(theme.colors.negative, 0.12)}, ${componentShadow}` : `${componentShadow}, 0 0 0 0 ${focusRing}`,
5573
- transition: FIELD_SURFACE_TRANSITION,
5574
- resize: "vertical",
5575
- ...style
5576
- };
5577
- const textarea = /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("textarea", { ...rest, id, disabled, rows, style: textareaStyle });
5263
+ useUiKitTheme();
5264
+ const textarea = /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
5265
+ "textarea",
5266
+ {
5267
+ ...rest,
5268
+ id,
5269
+ disabled,
5270
+ rows,
5271
+ className: cx(
5272
+ "w-full min-w-0 box-border resize-y rounded-2xl border border-solid bg-[var(--theme-surface)]",
5273
+ "text-[var(--theme-text)] outline-none transition-[border-color,box-shadow,background-color]",
5274
+ "duration-150 disabled:cursor-not-allowed",
5275
+ error ? "border-[var(--theme-negative)]" : "border-[var(--theme-textLight)]",
5276
+ TEXTAREA_SIZE_CLASSNAMES[controlSize]
5277
+ ),
5278
+ style: {
5279
+ boxShadow: error ? "0 0 0 3px var(--ui-kit-negative-soft), var(--ui-kit-component-shadow)" : "var(--ui-kit-component-shadow)",
5280
+ ...style,
5281
+ ...disabled ? { opacity: DISABLED_FIELD_OPACITY } : {}
5282
+ }
5283
+ }
5284
+ );
5578
5285
  return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(ControlFrame, { label, hint, error, htmlFor: id, required: rest.required, children: textarea });
5579
5286
  }
5287
+
5288
+ // src/index.ts
5289
+ injectUiKitFonts();
5580
5290
  // Annotate the CommonJS export names for ESM import in node:
5581
5291
  0 && (module.exports = {
5582
5292
  Button,