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.js CHANGED
@@ -1,9 +1,113 @@
1
- // src/components/Button.tsx
2
- import { useState } from "react";
1
+ // #style-inject:#style-inject
2
+ function styleInject(css, { insertAt } = {}) {
3
+ if (!css || typeof document === "undefined") return;
4
+ const head = document.head || document.getElementsByTagName("head")[0];
5
+ const style = document.createElement("style");
6
+ style.type = "text/css";
7
+ if (insertAt === "top") {
8
+ if (head.firstChild) {
9
+ head.insertBefore(style, head.firstChild);
10
+ } else {
11
+ head.appendChild(style);
12
+ }
13
+ } else {
14
+ head.appendChild(style);
15
+ }
16
+ if (style.styleSheet) {
17
+ style.styleSheet.cssText = css;
18
+ } else {
19
+ style.appendChild(document.createTextNode(css));
20
+ }
21
+ }
22
+
23
+ // src/styles/ui-kit.css
24
+ 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');
25
+
26
+ // node_modules/@fontsource/lato/files/lato-latin-400-normal.woff
27
+ var lato_latin_400_normal_default = "data:font/woff;base64,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";
28
+
29
+ // node_modules/@fontsource/lato/files/lato-latin-400-normal.woff2
30
+ 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";
31
+
32
+ // node_modules/@fontsource/lato/files/lato-latin-700-normal.woff
33
+ var lato_latin_700_normal_default = "data:font/woff;base64,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";
34
+
35
+ // node_modules/@fontsource/lato/files/lato-latin-700-normal.woff2
36
+ var lato_latin_700_normal_default2 = "data:font/woff2;base64,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";
37
+
38
+ // node_modules/@fontsource/lato/files/lato-latin-ext-400-normal.woff
39
+ var lato_latin_ext_400_normal_default = "data:font/woff;base64,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";
40
+
41
+ // node_modules/@fontsource/lato/files/lato-latin-ext-400-normal.woff2
42
+ var lato_latin_ext_400_normal_default2 = "data:font/woff2;base64,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";
43
+
44
+ // node_modules/@fontsource/lato/files/lato-latin-ext-700-normal.woff
45
+ var lato_latin_ext_700_normal_default = "data:font/woff;base64,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";
46
+
47
+ // node_modules/@fontsource/lato/files/lato-latin-ext-700-normal.woff2
48
+ var lato_latin_ext_700_normal_default2 = "data:font/woff2;base64,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";
49
+
50
+ // src/styles/fonts.ts
51
+ var UI_KIT_FONT_STYLE_ID = "smartsell-ui-kit-fonts";
52
+ var uiKitFontFacesCss = `
53
+ @font-face {
54
+ font-family: "Lato";
55
+ font-style: normal;
56
+ font-display: swap;
57
+ font-weight: 400;
58
+ src: url(${JSON.stringify(lato_latin_ext_400_normal_default2)}) format("woff2"), url(${JSON.stringify(lato_latin_ext_400_normal_default)}) format("woff");
59
+ 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;
60
+ }
61
+
62
+ @font-face {
63
+ font-family: "Lato";
64
+ font-style: normal;
65
+ font-display: swap;
66
+ font-weight: 400;
67
+ src: url(${JSON.stringify(lato_latin_400_normal_default2)}) format("woff2"), url(${JSON.stringify(lato_latin_400_normal_default)}) format("woff");
68
+ 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;
69
+ }
70
+
71
+ @font-face {
72
+ font-family: "Lato";
73
+ font-style: normal;
74
+ font-display: swap;
75
+ font-weight: 700;
76
+ src: url(${JSON.stringify(lato_latin_ext_700_normal_default2)}) format("woff2"), url(${JSON.stringify(lato_latin_ext_700_normal_default)}) format("woff");
77
+ 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;
78
+ }
79
+
80
+ @font-face {
81
+ font-family: "Lato";
82
+ font-style: normal;
83
+ font-display: swap;
84
+ font-weight: 700;
85
+ src: url(${JSON.stringify(lato_latin_700_normal_default2)}) format("woff2"), url(${JSON.stringify(lato_latin_700_normal_default)}) format("woff");
86
+ 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;
87
+ }
88
+ `;
89
+ function injectUiKitFonts() {
90
+ if (typeof document === "undefined") {
91
+ return;
92
+ }
93
+ if (document.getElementById(UI_KIT_FONT_STYLE_ID)) {
94
+ return;
95
+ }
96
+ const styleElement = document.createElement("style");
97
+ styleElement.id = UI_KIT_FONT_STYLE_ID;
98
+ styleElement.textContent = uiKitFontFacesCss;
99
+ document.head.appendChild(styleElement);
100
+ }
3
101
 
4
102
  // src/foundation/async.ts
5
103
  var DEFAULT_ASYNC_SEARCH_DEBOUNCE_MS = 1500;
6
104
 
105
+ // src/foundation/className.ts
106
+ var cx = (...values) => {
107
+ return values.filter(Boolean).join(" ");
108
+ };
109
+ var UI_KIT_ROOT_CLASSNAME = "ui-kit-root";
110
+
7
111
  // src/foundation/color.ts
8
112
  function withAlpha(hex, alpha) {
9
113
  const normalized = hex.replace("#", "").trim();
@@ -31,52 +135,28 @@ var CONTROL_METRICS_BY_SIZE = {
31
135
  selectIndicatorOffset: 12
32
136
  },
33
137
  md: {
34
- height: 38,
138
+ height: 34,
35
139
  fontSize: 14,
36
140
  lineHeight: "18px",
37
- paddingX: 16,
38
- paddingY: 9,
39
- buttonPaddingX: 18,
40
- selectPaddingRight: 44,
41
- selectIndicatorOffset: 16
141
+ paddingX: 14,
142
+ paddingY: 7,
143
+ buttonPaddingX: 16,
144
+ selectPaddingRight: 42,
145
+ selectIndicatorOffset: 14
42
146
  },
43
147
  lg: {
44
- height: 46,
148
+ height: 38,
45
149
  fontSize: 15,
46
150
  lineHeight: "18px",
47
- paddingX: 18,
48
- paddingY: 13,
49
- buttonPaddingX: 20,
50
- selectPaddingRight: 48,
51
- selectIndicatorOffset: 18
151
+ paddingX: 16,
152
+ paddingY: 9,
153
+ buttonPaddingX: 18,
154
+ selectPaddingRight: 46,
155
+ selectIndicatorOffset: 16
52
156
  }
53
157
  };
54
158
  var getControlMetrics = (size) => CONTROL_METRICS_BY_SIZE[size];
55
- var getTextInputPadding = (size, options = {}) => {
56
- var _a, _b;
57
- const metrics = getControlMetrics(size);
58
- const leadingInset = (_a = options.leadingInset) != null ? _a : 0;
59
- const trailingInset = (_b = options.trailingInset) != null ? _b : 0;
60
- return `${metrics.paddingY}px ${metrics.paddingX + trailingInset}px ${metrics.paddingY}px ${metrics.paddingX + leadingInset}px`;
61
- };
62
- var getSelectControlPadding = (size) => {
63
- const metrics = getControlMetrics(size);
64
- return `${metrics.paddingY}px ${metrics.selectPaddingRight}px ${metrics.paddingY}px ${metrics.paddingX}px`;
65
- };
66
159
  var getSelectIndicatorOffset = (size) => getControlMetrics(size).selectIndicatorOffset;
67
- var getButtonSizeStyles = (size) => {
68
- const metrics = getControlMetrics(size);
69
- return {
70
- boxSizing: "border-box",
71
- height: metrics.height,
72
- padding: `0 ${metrics.buttonPaddingX}px`,
73
- fontSize: metrics.fontSize,
74
- lineHeight: metrics.lineHeight
75
- };
76
- };
77
-
78
- // src/foundation/motion.ts
79
- var FIELD_SURFACE_TRANSITION = "border-color 160ms ease, box-shadow 160ms ease, background-color 160ms ease";
80
160
 
81
161
  // src/foundation/shadow.ts
82
162
  var LIGHT_SHADOW = "#B8B8B8";
@@ -88,12 +168,24 @@ function getComponentShadow(theme) {
88
168
  const shadowColor = (_a = colors.shadow) != null ? _a : fallbackShadow;
89
169
  return `${shadowColor} 0px 4px 5px`;
90
170
  }
171
+ function getInsetBorderShadow(borderColor, options = {}) {
172
+ const {
173
+ outerShadow,
174
+ componentShadow = "var(--ui-kit-component-shadow)",
175
+ insetWidth = 1
176
+ } = options;
177
+ return [
178
+ outerShadow,
179
+ `inset 0 0 0 ${insetWidth}px ${borderColor}`,
180
+ componentShadow
181
+ ].filter(Boolean).join(", ");
182
+ }
91
183
 
92
184
  // src/foundation/shape.ts
93
185
  var STANDARD_COMPONENT_BORDER_RADIUS = 16;
94
186
 
95
187
  // src/foundation/theme.ts
96
- import { useMemo } from "react";
188
+ import { useEffect, useMemo } from "react";
97
189
  import {
98
190
  darkTheme,
99
191
  lightTheme,
@@ -151,6 +243,47 @@ var assertThemeColorSchema = (theme) => {
151
243
  };
152
244
  assertThemeColorSchema(lightTheme);
153
245
  assertThemeColorSchema(darkTheme);
246
+ var ROOT_THEME_VARIABLES = [
247
+ ["--theme-primary", "primary"],
248
+ ["--theme-primaryLight", "primaryLight"],
249
+ ["--theme-primaryDark", "primaryDark"],
250
+ ["--theme-shadow", "shadow"],
251
+ ["--theme-secondary", "secondary"],
252
+ ["--theme-background", "background"],
253
+ ["--theme-surface", "surface"],
254
+ ["--theme-text", "text"],
255
+ ["--theme-textLight", "textLight"],
256
+ ["--theme-positive", "positive"],
257
+ ["--theme-negative", "negative"],
258
+ ["--theme-warning", "warning"],
259
+ ["--theme-info", "info"],
260
+ ["--theme-onPrimary", "onPrimary"],
261
+ ["--theme-onSecondary", "onSecondary"]
262
+ ];
263
+ var syncUiKitThemeVariables = (tokens) => {
264
+ if (typeof document === "undefined") {
265
+ return;
266
+ }
267
+ const rootStyle = document.documentElement.style;
268
+ ROOT_THEME_VARIABLES.forEach(([variableName, colorName]) => {
269
+ rootStyle.setProperty(variableName, tokens.theme.colors[colorName]);
270
+ });
271
+ rootStyle.setProperty("--ui-kit-border-soft", tokens.borderSoft);
272
+ rootStyle.setProperty("--ui-kit-border-strong", tokens.borderStrong);
273
+ rootStyle.setProperty("--ui-kit-surface-muted", tokens.surfaceMuted);
274
+ rootStyle.setProperty("--ui-kit-surface-raised", tokens.surfaceRaised);
275
+ rootStyle.setProperty("--ui-kit-overlay", tokens.overlay);
276
+ rootStyle.setProperty("--ui-kit-focus-ring", tokens.focusRing);
277
+ rootStyle.setProperty("--ui-kit-muted-text", tokens.mutedText);
278
+ rootStyle.setProperty("--ui-kit-component-shadow", getComponentShadow(tokens.theme));
279
+ rootStyle.setProperty("--ui-kit-card-bg", withAlpha(tokens.theme.colors.background, 0.7));
280
+ rootStyle.setProperty("--ui-kit-card-border", withAlpha(tokens.theme.colors.text, 0.5));
281
+ rootStyle.setProperty("--ui-kit-button-outline-hover", withAlpha(tokens.theme.colors.text, 0.08));
282
+ rootStyle.setProperty("--ui-kit-button-outline-active", withAlpha(tokens.theme.colors.text, 0.14));
283
+ rootStyle.setProperty("--ui-kit-button-ghost-border", withAlpha(tokens.theme.colors.primary, 0.5));
284
+ rootStyle.setProperty("--ui-kit-placeholder", withAlpha(tokens.theme.colors.text, 0.5));
285
+ rootStyle.setProperty("--ui-kit-negative-soft", withAlpha(tokens.theme.colors.negative, 0.12));
286
+ };
154
287
  function normalizeUiKitTheme(theme) {
155
288
  var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o;
156
289
  const colors = theme.colors;
@@ -198,11 +331,61 @@ function createUiKitThemeTokens(themeSource) {
198
331
  }
199
332
  function useUiKitTheme() {
200
333
  const activeTheme = useThemeValue();
201
- return useMemo(() => createUiKitThemeTokens(activeTheme), [activeTheme]);
334
+ const tokens = useMemo(() => createUiKitThemeTokens(activeTheme), [activeTheme]);
335
+ useEffect(() => {
336
+ syncUiKitThemeVariables(tokens);
337
+ }, [tokens]);
338
+ return tokens;
202
339
  }
203
340
 
204
341
  // src/components/Button.tsx
205
342
  import { jsxs } from "react/jsx-runtime";
343
+ var BUTTON_SIZE_CLASSNAMES = {
344
+ sm: "h-[30px] px-[14px] text-[13px] leading-4",
345
+ md: "h-[34px] px-4 text-sm leading-[18px]",
346
+ lg: "h-[38px] px-[18px] text-[15px] leading-[18px]"
347
+ };
348
+ var BUTTON_VARIANT_CLASSNAMES = {
349
+ solid: [
350
+ "border-[var(--theme-primary)]",
351
+ "bg-[var(--theme-primary)]",
352
+ "text-[var(--theme-onPrimary)]",
353
+ "shadow-[0px_4px_5px_var(--theme-shadow)]",
354
+ "hover:border-[var(--theme-primaryDark)]",
355
+ "hover:bg-[var(--theme-primaryDark)]",
356
+ "hover:-translate-y-[0.5px]",
357
+ "active:translate-y-px",
358
+ "active:scale-[0.985]"
359
+ ].join(" "),
360
+ outline: [
361
+ "border-[var(--theme-textLight)]",
362
+ "bg-transparent",
363
+ "text-[var(--theme-text)]",
364
+ "shadow-[0px_4px_5px_var(--theme-shadow)]",
365
+ "hover:-translate-y-[0.5px]",
366
+ "hover:bg-[var(--ui-kit-button-outline-hover)]",
367
+ "active:translate-y-px",
368
+ "active:scale-[0.985]",
369
+ "active:bg-[var(--ui-kit-button-outline-active)]"
370
+ ].join(" "),
371
+ ghost: [
372
+ "border-transparent",
373
+ "bg-transparent",
374
+ "text-[var(--theme-text)]",
375
+ "shadow-none",
376
+ "hover:-translate-y-[0.5px]",
377
+ "hover:border-[var(--ui-kit-button-ghost-border)]",
378
+ "hover:bg-[var(--theme-primary)]",
379
+ "hover:text-[var(--theme-onPrimary)]",
380
+ "hover:shadow-[0px_4px_5px_var(--theme-shadow)]",
381
+ "active:translate-y-px",
382
+ "active:scale-[0.985]",
383
+ "active:border-[var(--ui-kit-button-ghost-border)]",
384
+ "active:bg-[var(--theme-primary)]",
385
+ "active:text-[var(--theme-onPrimary)]",
386
+ "active:shadow-[0px_4px_5px_var(--theme-shadow)]"
387
+ ].join(" ")
388
+ };
206
389
  function Button({
207
390
  variant = "solid",
208
391
  size = "sm",
@@ -210,137 +393,29 @@ function Button({
210
393
  trailingIcon,
211
394
  children,
212
395
  disabled,
396
+ className,
213
397
  style,
214
398
  type = "button",
215
- onMouseEnter,
216
- onMouseLeave,
217
- onMouseDown,
218
- onMouseUp,
219
- onBlur,
220
- onKeyDown,
221
- onKeyUp,
222
- onTouchStart,
223
- onTouchEnd,
224
- onTouchCancel,
225
399
  ...rest
226
400
  }) {
227
- var _a, _b;
228
- const { theme } = useUiKitTheme();
229
- const [isHovered, setIsHovered] = useState(false);
230
- const [isPressed, setIsPressed] = useState(false);
231
- const buttonShadow = getComponentShadow(theme);
232
- const variantStyles = {
233
- solid: {
234
- backgroundColor: theme.colors.primary,
235
- borderColor: theme.colors.primary,
236
- color: theme.colors.onPrimary
237
- },
238
- outline: {
239
- backgroundColor: "transparent",
240
- borderColor: theme.colors.textLight,
241
- color: theme.colors.text
242
- },
243
- ghost: {
244
- backgroundColor: "transparent",
245
- borderColor: "transparent"
246
- }
247
- };
248
- const interactiveColor = variant === "solid" ? theme.colors.primary : theme.colors.text;
249
- const isInteractive = !disabled;
250
- const buttonTransform = isPressed ? "translateY(1px) scale(0.985)" : isHovered ? "translateY(-0.5px)" : "translateY(0)";
251
- const interactionStyles = {
252
- solid: {
253
- transform: buttonTransform,
254
- filter: void 0
255
- },
256
- outline: {
257
- transform: buttonTransform,
258
- backgroundColor: isPressed ? withAlpha(interactiveColor, 0.14) : isHovered ? withAlpha(interactiveColor, 0.08) : "transparent"
259
- },
260
- ghost: {
261
- transform: buttonTransform,
262
- backgroundColor: isPressed || isHovered ? theme.colors.primary : "transparent",
263
- borderColor: isPressed || isHovered ? withAlpha(theme.colors.primary, 0.5) : "transparent",
264
- color: isPressed || isHovered ? theme.colors.onPrimary : theme.colors.text
265
- }
266
- };
267
401
  return /* @__PURE__ */ jsxs(
268
402
  "button",
269
403
  {
270
404
  ...rest,
271
405
  type,
272
406
  disabled,
273
- onMouseEnter: (event) => {
274
- if (isInteractive) {
275
- setIsHovered(true);
276
- }
277
- onMouseEnter == null ? void 0 : onMouseEnter(event);
278
- },
279
- onMouseLeave: (event) => {
280
- setIsHovered(false);
281
- setIsPressed(false);
282
- onMouseLeave == null ? void 0 : onMouseLeave(event);
283
- },
284
- onMouseDown: (event) => {
285
- if (isInteractive) {
286
- setIsPressed(true);
287
- }
288
- onMouseDown == null ? void 0 : onMouseDown(event);
289
- },
290
- onMouseUp: (event) => {
291
- setIsPressed(false);
292
- onMouseUp == null ? void 0 : onMouseUp(event);
293
- },
294
- onBlur: (event) => {
295
- setIsHovered(false);
296
- setIsPressed(false);
297
- onBlur == null ? void 0 : onBlur(event);
298
- },
299
- onKeyDown: (event) => {
300
- if (isInteractive && (event.key === " " || event.key === "Enter")) {
301
- setIsPressed(true);
302
- }
303
- onKeyDown == null ? void 0 : onKeyDown(event);
304
- },
305
- onKeyUp: (event) => {
306
- setIsPressed(false);
307
- onKeyUp == null ? void 0 : onKeyUp(event);
308
- },
309
- onTouchStart: (event) => {
310
- if (isInteractive) {
311
- setIsPressed(true);
312
- }
313
- onTouchStart == null ? void 0 : onTouchStart(event);
314
- },
315
- onTouchEnd: (event) => {
316
- setIsPressed(false);
317
- onTouchEnd == null ? void 0 : onTouchEnd(event);
318
- },
319
- onTouchCancel: (event) => {
320
- setIsPressed(false);
321
- onTouchCancel == null ? void 0 : onTouchCancel(event);
322
- },
323
- style: {
324
- display: "inline-flex",
325
- alignItems: "center",
326
- justifyContent: "center",
327
- gap: 10,
328
- borderRadius: STANDARD_COMPONENT_BORDER_RADIUS,
329
- borderStyle: "solid",
330
- borderWidth: 1,
331
- cursor: disabled ? "not-allowed" : "pointer",
332
- fontWeight: 700,
333
- letterSpacing: "0.01em",
334
- opacity: disabled ? DISABLED_COMPONENT_OPACITY : 1,
335
- boxShadow: variant === "ghost" && !isHovered ? "none" : buttonShadow,
336
- transitionDuration: "0.3s",
337
- width: (_a = style == null ? void 0 : style.width) != null ? _a : "fit-content",
338
- maxWidth: (_b = style == null ? void 0 : style.maxWidth) != null ? _b : "fit-content",
339
- ...getButtonSizeStyles(size),
340
- ...variantStyles[variant],
341
- ...isInteractive ? interactionStyles[variant] : void 0,
342
- ...style
343
- },
407
+ className: cx(
408
+ UI_KIT_ROOT_CLASSNAME,
409
+ "box-border inline-flex w-fit max-w-fit items-center justify-center gap-2.5",
410
+ "rounded-2xl border border-solid font-bold tracking-[0.01em]",
411
+ "cursor-pointer transition-all duration-300",
412
+ "disabled:cursor-not-allowed",
413
+ "disabled:translate-y-0 disabled:scale-100",
414
+ BUTTON_SIZE_CLASSNAMES[size],
415
+ BUTTON_VARIANT_CLASSNAMES[variant],
416
+ className
417
+ ),
418
+ style: disabled ? { ...style, opacity: DISABLED_COMPONENT_OPACITY } : style,
344
419
  children: [
345
420
  leadingIcon,
346
421
  children,
@@ -358,67 +433,31 @@ function Card({
358
433
  title,
359
434
  action,
360
435
  padded = true,
361
- style,
436
+ className,
362
437
  ...rest
363
438
  }) {
364
- const { theme } = useUiKitTheme();
365
- const componentShadow = getComponentShadow(theme);
439
+ useUiKitTheme();
366
440
  return /* @__PURE__ */ jsxs2(
367
441
  "div",
368
442
  {
369
443
  ...rest,
370
- style: {
371
- borderRadius: 28,
372
- border: `1px solid ${withAlpha(theme.colors.text, 0.5)}`,
373
- background: `${withAlpha(theme.colors.background, 0.7)}`,
374
- boxShadow: componentShadow,
375
- color: theme.colors.text,
376
- padding: padded ? 24 : void 0,
377
- ...style
378
- },
444
+ className: cx(
445
+ UI_KIT_ROOT_CLASSNAME,
446
+ "rounded-[28px] border text-[var(--theme-text)]",
447
+ "shadow-[0px_4px_5px_var(--theme-shadow)]",
448
+ "[background:var(--ui-kit-card-bg)]",
449
+ "[border-color:var(--ui-kit-card-border)]",
450
+ padded && "p-6",
451
+ className
452
+ ),
379
453
  children: [
380
- (eyebrow || title || action) && /* @__PURE__ */ jsxs2(
381
- "div",
382
- {
383
- style: {
384
- display: "flex",
385
- justifyContent: "space-between",
386
- alignItems: "flex-start",
387
- gap: 16,
388
- marginBottom: 18
389
- },
390
- children: [
391
- /* @__PURE__ */ jsxs2("div", { style: { display: "flex", flexDirection: "column", gap: 6 }, children: [
392
- eyebrow ? /* @__PURE__ */ jsx(
393
- "span",
394
- {
395
- style: {
396
- color: theme.colors.textLight,
397
- fontSize: 12,
398
- fontWeight: 800,
399
- letterSpacing: "0.16em",
400
- textTransform: "uppercase"
401
- },
402
- children: eyebrow
403
- }
404
- ) : null,
405
- title ? /* @__PURE__ */ jsx(
406
- "div",
407
- {
408
- style: {
409
- color: theme.colors.text,
410
- fontSize: 24,
411
- fontWeight: 700,
412
- lineHeight: 1.2
413
- },
414
- children: title
415
- }
416
- ) : null
417
- ] }),
418
- action ? /* @__PURE__ */ jsx("div", { style: { color: theme.colors.text }, children: action }) : null
419
- ]
420
- }
421
- ),
454
+ (eyebrow || title || action) && /* @__PURE__ */ jsxs2("div", { className: "mb-[18px] flex items-start justify-between gap-4", children: [
455
+ /* @__PURE__ */ jsxs2("div", { className: "flex flex-col gap-1.5", children: [
456
+ eyebrow ? /* @__PURE__ */ jsx("span", { className: "text-xs font-extrabold uppercase tracking-[0.16em] text-[var(--theme-textLight)]", children: eyebrow }) : null,
457
+ title ? /* @__PURE__ */ jsx("div", { className: "text-2xl font-bold leading-[1.2] text-[var(--theme-text)]", children: title }) : null
458
+ ] }),
459
+ action ? /* @__PURE__ */ jsx("div", { className: "text-[var(--theme-text)]", children: action }) : null
460
+ ] }),
422
461
  children
423
462
  ]
424
463
  }
@@ -432,29 +471,26 @@ function CardSmall({
432
471
  value,
433
472
  icon,
434
473
  color,
474
+ className,
435
475
  style,
436
476
  ...rest
437
477
  }) {
438
- const { theme, surfaceRaised, borderSoft } = useUiKitTheme();
478
+ const { theme } = useUiKitTheme();
439
479
  const accentColor = color != null ? color : theme.colors.primary;
440
- const componentShadow = getComponentShadow(theme);
441
480
  return /* @__PURE__ */ jsxs3(
442
481
  "div",
443
482
  {
444
483
  ...rest,
484
+ className: cx(
485
+ UI_KIT_ROOT_CLASSNAME,
486
+ "relative flex min-h-20 items-center gap-4 overflow-hidden",
487
+ "rounded-2xl border border-solid border-[var(--ui-kit-accent)]",
488
+ "bg-[var(--ui-kit-surface-raised)] pl-6 pr-6 text-[var(--theme-text)]",
489
+ "shadow-[0px_4px_5px_var(--theme-shadow)]",
490
+ className
491
+ ),
445
492
  style: {
446
- position: "relative",
447
- display: "flex",
448
- alignItems: "center",
449
- gap: 16,
450
- minHeight: 80,
451
- padding: "0px 0px 0px 24px",
452
- borderRadius: STANDARD_COMPONENT_BORDER_RADIUS,
453
- overflow: "hidden",
454
- border: `1px solid ${theme.colors.textLight}`,
455
- backgroundColor: surfaceRaised,
456
- boxShadow: componentShadow,
457
- color: theme.colors.text,
493
+ "--ui-kit-accent": accentColor,
458
494
  ...style
459
495
  },
460
496
  children: [
@@ -462,66 +498,24 @@ function CardSmall({
462
498
  "div",
463
499
  {
464
500
  "aria-hidden": "true",
465
- style: {
466
- position: "absolute",
467
- left: 0,
468
- top: 0,
469
- bottom: 0,
470
- width: 25,
471
- backgroundColor: accentColor
472
- }
501
+ className: "absolute inset-y-0 left-0 w-[25px] bg-[var(--ui-kit-accent)]"
473
502
  }
474
503
  ),
475
504
  icon ? /* @__PURE__ */ jsx2(
476
505
  "div",
477
506
  {
478
507
  "aria-hidden": "true",
479
- style: {
480
- width: 52,
481
- height: 52,
482
- borderRadius: 12,
483
- backgroundColor: withAlpha(accentColor, 0.24),
484
- color: accentColor,
485
- display: "inline-flex",
486
- alignItems: "center",
487
- justifyContent: "center",
488
- flexShrink: 0,
489
- marginLeft: 16
490
- },
508
+ className: cx(
509
+ "ml-4 inline-flex h-[52px] w-[52px] shrink-0 items-center justify-center",
510
+ "rounded-xl bg-[color-mix(in_srgb,var(--ui-kit-accent)_24%,transparent)]",
511
+ "text-[var(--ui-kit-accent)]"
512
+ ),
491
513
  children: icon
492
514
  }
493
515
  ) : null,
494
- /* @__PURE__ */ jsxs3("div", { style: { display: "flex", flexDirection: "column", gap: 6, minWidth: 0 }, children: [
495
- title ? /* @__PURE__ */ jsx2(
496
- "div",
497
- {
498
- style: {
499
- color: theme.colors.text,
500
- fontSize: 14,
501
- fontWeight: 700,
502
- lineHeight: 1.25,
503
- overflow: "hidden",
504
- textOverflow: "ellipsis",
505
- whiteSpace: "nowrap"
506
- },
507
- children: title
508
- }
509
- ) : null,
510
- value ? /* @__PURE__ */ jsx2(
511
- "div",
512
- {
513
- style: {
514
- color: theme.colors.text,
515
- fontSize: 18,
516
- fontWeight: 800,
517
- lineHeight: 1.15,
518
- overflow: "hidden",
519
- textOverflow: "ellipsis",
520
- whiteSpace: "nowrap"
521
- },
522
- children: value
523
- }
524
- ) : null
516
+ /* @__PURE__ */ jsxs3("div", { className: "flex min-w-0 flex-col gap-1.5", children: [
517
+ title ? /* @__PURE__ */ jsx2("div", { className: "truncate text-sm font-bold leading-[1.25] text-[var(--theme-text)]", children: title }) : null,
518
+ value ? /* @__PURE__ */ jsx2("div", { className: "truncate text-[18px] font-extrabold leading-[1.15] text-[var(--theme-text)]", children: value }) : null
525
519
  ] })
526
520
  ]
527
521
  }
@@ -529,12 +523,17 @@ function CardSmall({
529
523
  }
530
524
 
531
525
  // src/components/Checkbox.tsx
532
- import { useEffect, useId, useRef, useState as useState2 } from "react";
526
+ import { useEffect as useEffect2, useId, useRef, useState } from "react";
533
527
  import { jsx as jsx3, jsxs as jsxs4 } from "react/jsx-runtime";
534
528
  var CHECKBOX_SIZE_BY_CONTROL_SIZE = {
535
- sm: 18,
536
- md: 20,
537
- lg: 22
529
+ sm: 14,
530
+ md: 16,
531
+ lg: 20
532
+ };
533
+ var CHECKBOX_LABEL_CLASSNAMES = {
534
+ sm: "text-[13px] leading-4",
535
+ md: "text-sm leading-[18px]",
536
+ lg: "text-[15px] leading-[18px]"
538
537
  };
539
538
  var getCheckboxSize = (controlSize) => CHECKBOX_SIZE_BY_CONTROL_SIZE[controlSize];
540
539
  var hasNodeContent = (value) => {
@@ -623,7 +622,6 @@ function Checkbox({
623
622
  ...rest
624
623
  }) {
625
624
  const { theme, mutedText } = useUiKitTheme();
626
- const controlMetrics = getControlMetrics(controlSize);
627
625
  const indicatorSize = getCheckboxSize(controlSize);
628
626
  const hasLabel = hasNodeContent(label);
629
627
  const hasHint = hasNodeContent(hint);
@@ -631,11 +629,11 @@ function Checkbox({
631
629
  const hasSecondaryContent = hasLabel && hasHint;
632
630
  const resolvedId = id != null ? id : `ss-checkbox-${useId().replace(/:/g, "")}`;
633
631
  const inputRef = useRef(null);
634
- const [isFocused, setIsFocused] = useState2(false);
635
- const [internalChecked, setInternalChecked] = useState2(Boolean(defaultChecked));
632
+ const [isFocused, setIsFocused] = useState(false);
633
+ const [internalChecked, setInternalChecked] = useState(Boolean(defaultChecked));
636
634
  const isControlled = checked !== void 0;
637
635
  const resolvedChecked = isControlled ? Boolean(checked) : internalChecked;
638
- useEffect(() => {
636
+ useEffect2(() => {
639
637
  if (!inputRef.current) {
640
638
  return;
641
639
  }
@@ -644,43 +642,29 @@ function Checkbox({
644
642
  return /* @__PURE__ */ jsx3(
645
643
  "div",
646
644
  {
647
- className,
648
- style: {
649
- width: "100%",
650
- display: "flex",
651
- flexDirection: "column",
652
- gap: 6,
653
- ...style
654
- },
645
+ className: cx(UI_KIT_ROOT_CLASSNAME, "flex w-full flex-col gap-1.5", className),
646
+ style,
655
647
  children: /* @__PURE__ */ jsxs4(
656
648
  "label",
657
649
  {
658
650
  htmlFor: resolvedId,
659
- style: {
660
- display: "inline-flex",
661
- alignItems: hasSecondaryContent ? "flex-start" : "center",
662
- gap: 10,
663
- width: hasLabel || hasHint || hasError ? "100%" : "auto",
664
- cursor: disabled ? "not-allowed" : "pointer",
665
- opacity: disabled ? DISABLED_FIELD_OPACITY : 1,
666
- userSelect: "none"
667
- },
651
+ className: cx(
652
+ "inline-flex select-none gap-2.5",
653
+ hasSecondaryContent ? "items-start" : "items-center",
654
+ hasLabel || hasHint || hasError ? "w-full" : "w-auto",
655
+ disabled ? "cursor-not-allowed" : "cursor-pointer"
656
+ ),
657
+ style: disabled ? { opacity: DISABLED_FIELD_OPACITY } : void 0,
668
658
  children: [
669
659
  /* @__PURE__ */ jsxs4(
670
660
  "span",
671
661
  {
672
- style: {
673
- position: "relative",
674
- display: "inline-flex",
675
- alignItems: "center",
676
- justifyContent: "center",
677
- flexShrink: 0,
678
- padding: 2,
679
- marginTop: hasSecondaryContent ? 1 : 0,
680
- borderRadius: 999,
681
- boxShadow: isFocused ? `0 0 0 3px ${withAlpha(theme.colors.primary, 0.16)}` : "none",
682
- transition: "box-shadow 140ms ease"
683
- },
662
+ className: cx(
663
+ "relative inline-flex shrink-0 items-center justify-center rounded-full p-0.5",
664
+ hasSecondaryContent ? "mt-px" : "mt-0",
665
+ "transition-shadow duration-150",
666
+ isFocused ? "shadow-[0_0_0_3px_var(--ui-kit-focus-ring)]" : "shadow-none"
667
+ ),
684
668
  children: [
685
669
  /* @__PURE__ */ jsx3(
686
670
  "input",
@@ -706,15 +690,10 @@ function Checkbox({
706
690
  setIsFocused(false);
707
691
  onBlur == null ? void 0 : onBlur(event);
708
692
  },
709
- style: {
710
- position: "absolute",
711
- inset: 0,
712
- width: "100%",
713
- height: "100%",
714
- margin: 0,
715
- opacity: 0,
716
- cursor: disabled ? "not-allowed" : "pointer"
717
- }
693
+ className: cx(
694
+ "absolute inset-0 m-0 h-full w-full opacity-0",
695
+ disabled ? "cursor-not-allowed" : "cursor-pointer"
696
+ )
718
697
  }
719
698
  ),
720
699
  /* @__PURE__ */ jsx3(
@@ -727,7 +706,8 @@ function Checkbox({
727
706
  checkedColor: theme.colors.primary,
728
707
  iconColor: theme.colors.onPrimary,
729
708
  uncheckedBorderColor: withAlpha(theme.colors.text, 0.24),
730
- uncheckedBackgroundColor: theme.colors.surface
709
+ uncheckedBackgroundColor: theme.colors.surface,
710
+ style: disabled ? { opacity: 1 } : void 0
731
711
  }
732
712
  )
733
713
  ]
@@ -736,52 +716,17 @@ function Checkbox({
736
716
  hasLabel || hasHint || hasError ? /* @__PURE__ */ jsxs4(
737
717
  "span",
738
718
  {
739
- style: {
740
- display: "flex",
741
- flexDirection: "column",
742
- gap: 4,
743
- justifyContent: hasSecondaryContent ? "flex-start" : "center",
744
- minWidth: 0
745
- },
719
+ className: cx(
720
+ "flex min-w-0 flex-col gap-1",
721
+ hasSecondaryContent ? "justify-start" : "justify-center"
722
+ ),
746
723
  children: [
747
- label ? /* @__PURE__ */ jsxs4(
748
- "span",
749
- {
750
- style: {
751
- color: theme.colors.text,
752
- fontSize: controlMetrics.fontSize,
753
- lineHeight: controlMetrics.lineHeight,
754
- fontWeight: 600
755
- },
756
- children: [
757
- label,
758
- required ? /* @__PURE__ */ jsx3("span", { style: { color: theme.colors.negative, marginLeft: 4 }, children: "*" }) : null
759
- ]
760
- }
761
- ) : null,
762
- hint ? /* @__PURE__ */ jsx3(
763
- "span",
764
- {
765
- style: {
766
- color: mutedText,
767
- fontSize: 13,
768
- lineHeight: 1.45
769
- },
770
- children: hint
771
- }
772
- ) : null,
773
- error ? /* @__PURE__ */ jsx3(
774
- "span",
775
- {
776
- style: {
777
- color: theme.colors.negative,
778
- fontSize: 13,
779
- lineHeight: 1.45,
780
- fontWeight: 600
781
- },
782
- children: error
783
- }
784
- ) : null
724
+ label ? /* @__PURE__ */ jsxs4("span", { className: cx("font-semibold text-[var(--theme-text)]", CHECKBOX_LABEL_CLASSNAMES[controlSize]), children: [
725
+ label,
726
+ required ? /* @__PURE__ */ jsx3("span", { className: "ml-1 text-[var(--theme-negative)]", children: "*" }) : null
727
+ ] }) : null,
728
+ hint ? /* @__PURE__ */ jsx3("span", { className: "text-[13px] leading-[1.45] text-[var(--ui-kit-muted-text)]", children: hint }) : null,
729
+ error ? /* @__PURE__ */ jsx3("span", { className: "text-[13px] font-semibold leading-[1.45] text-[var(--theme-negative)]", children: error }) : null
785
730
  ]
786
731
  }
787
732
  ) : null
@@ -796,19 +741,8 @@ function Checkbox({
796
741
  import { useMemo as useMemo3 } from "react";
797
742
 
798
743
  // src/components/Modal.tsx
799
- import { useEffect as useEffect2, useMemo as useMemo2, useState as useState3 } from "react";
744
+ import { useEffect as useEffect3, useMemo as useMemo2, useState as useState2 } from "react";
800
745
  import { jsx as jsx4, jsxs as jsxs5 } from "react/jsx-runtime";
801
- var srOnlyStyle = {
802
- position: "absolute",
803
- width: 1,
804
- height: 1,
805
- padding: 0,
806
- margin: -1,
807
- overflow: "hidden",
808
- clip: "rect(0, 0, 0, 0)",
809
- whiteSpace: "nowrap",
810
- border: 0
811
- };
812
746
  var isUiKitThemeTokens = (theme) => {
813
747
  return Boolean(theme && typeof theme === "object" && "theme" in theme);
814
748
  };
@@ -859,7 +793,6 @@ function ModalActionButton({
859
793
  theme
860
794
  }) {
861
795
  var _a, _b;
862
- const { colors } = theme;
863
796
  const {
864
797
  label,
865
798
  onClick,
@@ -867,54 +800,24 @@ function ModalActionButton({
867
800
  disabled = false,
868
801
  style
869
802
  } = action;
870
- const buttonStyle = {
871
- width: "100%",
872
- display: "flex",
873
- alignItems: "center",
874
- justifyContent: "center",
875
- borderRadius: "0.4rem",
876
- padding: appearance === "link" ? 0 : "0.9rem 1.15rem",
877
- boxSizing: "border-box",
878
- cursor: disabled ? "not-allowed" : "pointer",
879
- fontWeight: 700,
880
- fontSize: "1.05rem",
881
- lineHeight: 1.2,
882
- margin: 0,
883
- textAlign: "center",
884
- transition: "0.5s",
885
- opacity: disabled ? DISABLED_COMPONENT_OPACITY : 1,
886
- filter: disabled ? "saturate(0)" : void 0
887
- };
888
- if (appearance === "text") {
889
- buttonStyle.background = "none";
890
- buttonStyle.border = "1px solid transparent";
891
- buttonStyle.color = colors.primary;
892
- buttonStyle.boxShadow = "none";
893
- } else if (appearance === "link") {
894
- buttonStyle.background = "none";
895
- buttonStyle.border = "none";
896
- buttonStyle.color = colors.primary;
897
- buttonStyle.boxShadow = "none";
898
- } else if (appearance === "outlined") {
899
- buttonStyle.background = "none";
900
- buttonStyle.border = `2px solid ${colors.primary}`;
901
- buttonStyle.color = colors.primary;
902
- buttonStyle.boxShadow = `0 14px 28px ${withAlpha(colors.text, 0.08)}`;
903
- } else {
904
- buttonStyle.background = colors.primary;
905
- buttonStyle.border = "1px solid transparent";
906
- buttonStyle.color = colors.onPrimary;
907
- buttonStyle.boxShadow = `0 14px 28px ${withAlpha(colors.primary, 0.22)}`;
908
- }
803
+ const buttonClassName = cx(
804
+ "flex w-full items-center justify-center rounded-[0.4rem] box-border",
805
+ "m-0 text-center font-bold leading-[1.2]",
806
+ appearance === "link" ? "p-0 text-[1.05rem]" : "px-[1.15rem] py-[0.9rem] text-[1.05rem]",
807
+ disabled ? "cursor-not-allowed saturate-0" : "cursor-pointer",
808
+ appearance === "text" && "border border-transparent bg-transparent text-[var(--ui-kit-modal-primary)] shadow-none",
809
+ appearance === "link" && "border-0 bg-transparent text-[var(--ui-kit-modal-primary)] shadow-none",
810
+ appearance === "outlined" && "border-2 border-[var(--ui-kit-modal-primary)] bg-transparent",
811
+ appearance === "outlined" && "text-[var(--ui-kit-modal-primary)] shadow-[var(--ui-kit-modal-button-shadow-outlined)]",
812
+ appearance === "contained" && "border border-transparent bg-[var(--ui-kit-modal-primary)]",
813
+ appearance === "contained" && "text-[var(--ui-kit-modal-on-primary)] shadow-[var(--ui-kit-modal-button-shadow-contained)]"
814
+ );
909
815
  return /* @__PURE__ */ jsx4(
910
816
  "div",
911
817
  {
818
+ className: "m-0 flex items-center justify-center",
912
819
  style: {
913
820
  width: (_a = style == null ? void 0 : style.width) != null ? _a : (style == null ? void 0 : style.maxWidth) ? "100%" : "max-content",
914
- display: "flex",
915
- alignItems: "center",
916
- justifyContent: "center",
917
- margin: 0,
918
821
  marginBottom: (_b = style == null ? void 0 : style.marginBottom) != null ? _b : 0,
919
822
  ...style
920
823
  },
@@ -924,7 +827,8 @@ function ModalActionButton({
924
827
  type: "button",
925
828
  onClick: disabled ? void 0 : onClick,
926
829
  disabled,
927
- style: buttonStyle,
830
+ className: buttonClassName,
831
+ style: { opacity: disabled ? DISABLED_COMPONENT_OPACITY : 1 },
928
832
  children: label
929
833
  }
930
834
  )
@@ -939,19 +843,13 @@ function ModalBusyIndicator({
939
843
  {
940
844
  "aria-live": "polite",
941
845
  role: "status",
846
+ className: "relative inline-flex h-14 w-14 items-center justify-center rounded-full",
942
847
  style: {
943
- position: "relative",
944
- display: "inline-flex",
945
- alignItems: "center",
946
- justifyContent: "center",
947
- width: 56,
948
- height: 56,
949
- borderRadius: 999,
950
848
  backgroundColor: withAlpha(theme.colors.surface, 0.88),
951
849
  boxShadow: `0 18px 36px ${withAlpha(theme.colors.text, 0.08)}`
952
850
  },
953
851
  children: [
954
- /* @__PURE__ */ jsx4("span", { style: srOnlyStyle, children: "Loading" }),
852
+ /* @__PURE__ */ jsx4("span", { className: "ui-kit-sr-only", children: "Loading" }),
955
853
  /* @__PURE__ */ jsxs5("svg", { "aria-hidden": "true", width: "32", height: "32", viewBox: "0 0 40 40", fill: "none", children: [
956
854
  /* @__PURE__ */ jsx4(
957
855
  "circle",
@@ -988,6 +886,33 @@ function ModalBusyIndicator({
988
886
  }
989
887
  );
990
888
  }
889
+ function MaximizeIcon() {
890
+ return /* @__PURE__ */ jsx4("svg", { "aria-hidden": "true", width: "15", height: "15", viewBox: "0 0 20 20", fill: "none", children: /* @__PURE__ */ jsx4("rect", { x: "4.25", y: "4.25", width: "11.5", height: "11.5", rx: "2.2", stroke: "currentColor", strokeWidth: "1.7" }) });
891
+ }
892
+ function MinimizeIcon() {
893
+ return /* @__PURE__ */ jsxs5("svg", { "aria-hidden": "true", width: "15", height: "15", viewBox: "0 0 20 20", fill: "none", children: [
894
+ /* @__PURE__ */ jsx4(
895
+ "path",
896
+ {
897
+ d: "M6.25 4.75H13a2.25 2.25 0 0 1 2.25 2.25v6.75",
898
+ stroke: "currentColor",
899
+ strokeWidth: "1.7",
900
+ strokeLinecap: "round",
901
+ strokeLinejoin: "round"
902
+ }
903
+ ),
904
+ /* @__PURE__ */ jsx4(
905
+ "path",
906
+ {
907
+ 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",
908
+ stroke: "currentColor",
909
+ strokeWidth: "1.7",
910
+ strokeLinecap: "round",
911
+ strokeLinejoin: "round"
912
+ }
913
+ )
914
+ ] });
915
+ }
991
916
  function UnifiedModal({
992
917
  isOpen,
993
918
  onClose,
@@ -1018,10 +943,25 @@ function UnifiedModal({
1018
943
  return `0 34px 80px ${withAlpha(modalTheme.theme.colors.shadow, 0.28)}`;
1019
944
  }, [modalTheme.theme.colors.shadow]);
1020
945
  const controlShadow = useMemo2(() => getComponentShadow(modalTheme.theme), [modalTheme.theme]);
1021
- const [isMaximized, setIsMaximized] = useState3(maximized != null ? maximized : false);
946
+ const modalVariables = useMemo2(() => ({
947
+ "--ui-kit-modal-overlay": modalTheme.overlay,
948
+ "--ui-kit-modal-surface": modalTheme.colors.surface,
949
+ "--ui-kit-modal-surface-raised": modalTheme.surfaceRaised,
950
+ "--ui-kit-modal-text": modalTheme.colors.text,
951
+ "--ui-kit-modal-border-soft": modalTheme.borderSoft,
952
+ "--ui-kit-modal-divider": withAlpha(modalTheme.colors.text, 0.06),
953
+ "--ui-kit-modal-primary": modalTheme.colors.primary,
954
+ "--ui-kit-modal-on-primary": modalTheme.colors.onPrimary,
955
+ "--ui-kit-modal-shadow": modalShadow,
956
+ "--ui-kit-modal-control-shadow": controlShadow,
957
+ "--ui-kit-modal-busy-overlay": withAlpha(modalTheme.colors.surface, 0.58),
958
+ "--ui-kit-modal-button-shadow-outlined": `0 14px 28px ${withAlpha(modalTheme.colors.text, 0.08)}`,
959
+ "--ui-kit-modal-button-shadow-contained": `0 14px 28px ${withAlpha(modalTheme.colors.primary, 0.22)}`
960
+ }), [controlShadow, modalShadow, modalTheme]);
961
+ const [isMaximized, setIsMaximized] = useState2(maximized != null ? maximized : false);
1022
962
  const titleId = useMemo2(() => createTitleId(title), [title]);
1023
963
  const shouldDisableDismiss = disableDismiss || isBusy;
1024
- useEffect2(() => {
964
+ useEffect3(() => {
1025
965
  if (typeof maximized === "boolean") {
1026
966
  setIsMaximized(maximized);
1027
967
  return;
@@ -1030,7 +970,7 @@ function UnifiedModal({
1030
970
  setIsMaximized(true);
1031
971
  }
1032
972
  }, [maximized]);
1033
- useEffect2(() => {
973
+ useEffect3(() => {
1034
974
  if (!isOpen || typeof window === "undefined" || typeof document === "undefined") {
1035
975
  return;
1036
976
  }
@@ -1054,13 +994,7 @@ function UnifiedModal({
1054
994
  "h2",
1055
995
  {
1056
996
  id: titleId,
1057
- style: {
1058
- margin: 0,
1059
- color: modalTheme.colors.text,
1060
- fontSize: 24,
1061
- fontWeight: 800,
1062
- lineHeight: 1.1
1063
- },
997
+ className: "m-0 text-2xl font-extrabold leading-[1.1] text-[var(--ui-kit-modal-text)]",
1064
998
  children: title
1065
999
  }
1066
1000
  ) : null;
@@ -1125,62 +1059,49 @@ function UnifiedModal({
1125
1059
  onClose();
1126
1060
  }
1127
1061
  },
1062
+ className: cx(UI_KIT_ROOT_CLASSNAME, "fixed inset-0 z-[70] flex items-center justify-center backdrop-blur-[8px]"),
1128
1063
  style: {
1129
- position: "fixed",
1130
- inset: 0,
1131
- zIndex: 70,
1132
- display: "flex",
1133
- alignItems: "center",
1134
- justifyContent: "center",
1064
+ ...modalVariables,
1135
1065
  padding: isMaximized ? 0 : 16,
1136
- backgroundColor: modalTheme.overlay,
1137
- backdropFilter: "blur(8px)"
1066
+ backgroundColor: "var(--ui-kit-modal-overlay)"
1138
1067
  },
1139
1068
  children: /* @__PURE__ */ jsxs5(
1140
1069
  "div",
1141
1070
  {
1071
+ className: cx(
1072
+ "relative flex flex-col overflow-hidden border",
1073
+ "bg-[linear-gradient(180deg,var(--ui-kit-modal-surface-raised),var(--ui-kit-modal-surface))]",
1074
+ "text-[var(--ui-kit-modal-text)]",
1075
+ isMaximized ? "rounded-none" : "rounded-[30px]"
1076
+ ),
1142
1077
  style: {
1143
- position: "relative",
1144
- display: "flex",
1145
- flexDirection: "column",
1146
1078
  width: isMaximized ? "100vw" : "min(100%, 100%)",
1147
1079
  maxWidth: isMaximized ? "100vw" : normalizeWidth(maxWidth),
1148
1080
  height: isMaximized ? "100vh" : void 0,
1149
1081
  maxHeight: isMaximized ? "100vh" : "calc(100vh - 32px)",
1150
1082
  minWidth: isMaximized ? "100vw" : 300,
1151
- borderRadius: isMaximized ? 0 : 30,
1152
- border: `1px solid ${modalTheme.borderSoft}`,
1153
- background: `linear-gradient(180deg, ${modalTheme.surfaceRaised}, ${modalTheme.colors.surface})`,
1154
- boxShadow: modalShadow,
1155
- color: modalTheme.colors.text,
1156
- overflow: "hidden",
1083
+ borderColor: "var(--ui-kit-modal-border-soft)",
1084
+ boxShadow: "var(--ui-kit-modal-shadow)",
1157
1085
  ...contentStyle
1158
1086
  },
1159
1087
  children: [
1160
1088
  /* @__PURE__ */ jsxs5(
1161
1089
  "div",
1162
1090
  {
1163
- style: {
1164
- display: "flex",
1165
- alignItems: "flex-start",
1166
- justifyContent: "space-between",
1167
- gap: 12,
1168
- padding: "18px 20px 12px",
1169
- borderBottom: `1px solid ${withAlpha(modalTheme.colors.text, 0.06)}`
1170
- },
1091
+ className: "flex items-start justify-between gap-3 border-b px-5 pb-3 pt-[18px]",
1092
+ style: { borderColor: "var(--ui-kit-modal-divider)" },
1171
1093
  children: [
1172
1094
  /* @__PURE__ */ jsx4(
1173
1095
  "div",
1174
1096
  {
1175
- style: {
1176
- flex: 1,
1177
- opacity: isBusy ? 0.38 : 1,
1178
- transition: "opacity 180ms ease"
1179
- },
1097
+ className: cx(
1098
+ "flex-1 transition-opacity duration-150",
1099
+ isBusy ? "opacity-[0.38]" : "opacity-100"
1100
+ ),
1180
1101
  children: resolvedHeader
1181
1102
  }
1182
1103
  ),
1183
- /* @__PURE__ */ jsxs5("div", { style: { display: "flex", alignItems: "center", gap: 8 }, children: [
1104
+ /* @__PURE__ */ jsxs5("div", { className: "flex items-center gap-2", children: [
1184
1105
  !hideExpandButton ? /* @__PURE__ */ jsx4(
1185
1106
  "button",
1186
1107
  {
@@ -1188,19 +1109,9 @@ function UnifiedModal({
1188
1109
  title: isMaximized ? "Minimize" : "Maximize",
1189
1110
  type: "button",
1190
1111
  onClick: () => setIsMaximized((current) => !current),
1191
- style: {
1192
- height: 30,
1193
- width: 30,
1194
- borderRadius: 999,
1195
- border: `1px solid ${modalTheme.borderSoft}`,
1196
- backgroundColor: "transparent",
1197
- color: modalTheme.colors.text,
1198
- cursor: "pointer",
1199
- fontSize: 18,
1200
- fontWeight: 700,
1201
- boxShadow: controlShadow
1202
- },
1203
- children: isMaximized ? "\u25A2" : "\u25A1"
1112
+ 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)]",
1113
+ style: { borderColor: "var(--ui-kit-modal-border-soft)" },
1114
+ children: isMaximized ? /* @__PURE__ */ jsx4(MinimizeIcon, {}) : /* @__PURE__ */ jsx4(MaximizeIcon, {})
1204
1115
  }
1205
1116
  ) : null,
1206
1117
  !hideCloseButton ? /* @__PURE__ */ jsx4(
@@ -1209,18 +1120,15 @@ function UnifiedModal({
1209
1120
  "aria-label": "Close modal",
1210
1121
  type: "button",
1211
1122
  onClick: shouldDisableDismiss ? void 0 : onClose,
1123
+ className: cx(
1124
+ "flex h-[30px] w-[30px] items-center justify-center rounded-full border",
1125
+ "bg-transparent text-[20px] font-bold text-[var(--ui-kit-modal-text)]",
1126
+ "shadow-[var(--ui-kit-modal-control-shadow)]",
1127
+ shouldDisableDismiss ? "cursor-not-allowed" : "cursor-pointer"
1128
+ ),
1212
1129
  style: {
1213
- height: 30,
1214
- width: 30,
1215
- borderRadius: 999,
1216
- border: `1px solid ${modalTheme.borderSoft}`,
1217
- backgroundColor: "transparent",
1218
- color: modalTheme.colors.text,
1219
- cursor: shouldDisableDismiss ? "not-allowed" : "pointer",
1220
- fontSize: 20,
1221
- fontWeight: 700,
1222
- opacity: shouldDisableDismiss ? DISABLED_COMPONENT_OPACITY : 1,
1223
- boxShadow: controlShadow
1130
+ borderColor: "var(--ui-kit-modal-border-soft)",
1131
+ opacity: shouldDisableDismiss ? DISABLED_COMPONENT_OPACITY : 1
1224
1132
  },
1225
1133
  children: "\xD7"
1226
1134
  }
@@ -1232,39 +1140,23 @@ function UnifiedModal({
1232
1140
  /* @__PURE__ */ jsxs5(
1233
1141
  "div",
1234
1142
  {
1235
- style: {
1236
- flex: 1,
1237
- minHeight: 0,
1238
- position: "relative",
1239
- overflow: "auto",
1240
- padding: 24,
1241
- ...bodyStyle
1242
- },
1143
+ className: "relative min-h-0 flex-1 overflow-auto p-6",
1144
+ style: bodyStyle,
1243
1145
  children: [
1244
1146
  /* @__PURE__ */ jsx4(
1245
1147
  "div",
1246
1148
  {
1247
- style: {
1248
- opacity: isBusy ? 0.38 : 1,
1249
- filter: isBusy ? "saturate(0.8)" : "none",
1250
- pointerEvents: isBusy ? "none" : "auto",
1251
- transition: "opacity 180ms ease, filter 180ms ease"
1252
- },
1149
+ className: cx(
1150
+ "transition-[opacity,filter] duration-150",
1151
+ isBusy ? "pointer-events-none opacity-[0.38] saturate-[0.8]" : "pointer-events-auto opacity-100 saturate-100"
1152
+ ),
1253
1153
  children
1254
1154
  }
1255
1155
  ),
1256
1156
  isBusy ? /* @__PURE__ */ jsx4(
1257
1157
  "div",
1258
1158
  {
1259
- style: {
1260
- position: "absolute",
1261
- inset: 0,
1262
- display: "flex",
1263
- alignItems: "center",
1264
- justifyContent: "center",
1265
- backgroundColor: withAlpha(modalTheme.colors.surface, 0.58),
1266
- backdropFilter: "blur(2px)"
1267
- },
1159
+ className: "absolute inset-0 flex items-center justify-center bg-[var(--ui-kit-modal-busy-overlay)] backdrop-blur-[2px]",
1268
1160
  children: /* @__PURE__ */ jsx4(ModalBusyIndicator, { theme: modalTheme })
1269
1161
  }
1270
1162
  ) : null
@@ -1274,13 +1166,8 @@ function UnifiedModal({
1274
1166
  shouldRenderFooter ? /* @__PURE__ */ jsx4(
1275
1167
  "div",
1276
1168
  {
1277
- style: {
1278
- display: "flex",
1279
- justifyContent: "flex-end",
1280
- gap: 10,
1281
- padding: "12px 20px 16px",
1282
- borderTop: `1px solid ${withAlpha(modalTheme.colors.text, 0.06)}`
1283
- },
1169
+ className: "flex justify-end gap-2.5 border-t px-5 pb-4 pt-3",
1170
+ style: { borderColor: "var(--ui-kit-modal-divider)" },
1284
1171
  children: footerContent
1285
1172
  }
1286
1173
  ) : null
@@ -1343,12 +1230,7 @@ function ComposableModal({
1343
1230
  const defaultHeader = headerFallback != null ? headerFallback : /* @__PURE__ */ jsx5(
1344
1231
  "h2",
1345
1232
  {
1346
- style: {
1347
- margin: 0,
1348
- fontSize: 30,
1349
- fontWeight: 800,
1350
- lineHeight: 1.1
1351
- },
1233
+ className: "m-0 text-[24px] font-extrabold leading-[1.1]",
1352
1234
  children: title
1353
1235
  }
1354
1236
  );
@@ -1386,14 +1268,14 @@ function ComposableModal({
1386
1268
 
1387
1269
  // src/components/DatePicker.tsx
1388
1270
  import {
1389
- useEffect as useEffect4,
1271
+ useEffect as useEffect5,
1390
1272
  useMemo as useMemo4,
1391
1273
  useRef as useRef3,
1392
- useState as useState5
1274
+ useState as useState4
1393
1275
  } from "react";
1394
1276
 
1395
1277
  // src/components/Input.tsx
1396
- import { useEffect as useEffect3, useId as useId2, useRef as useRef2, useState as useState4 } from "react";
1278
+ import { useEffect as useEffect4, useId as useId2, useRef as useRef2, useState as useState3 } from "react";
1397
1279
  import { Fragment as Fragment2, jsx as jsx6, jsxs as jsxs7 } from "react/jsx-runtime";
1398
1280
  var PASSWORD_TOGGLE_METRICS_BY_SIZE = {
1399
1281
  sm: {
@@ -1403,18 +1285,33 @@ var PASSWORD_TOGGLE_METRICS_BY_SIZE = {
1403
1285
  iconSize: 14
1404
1286
  },
1405
1287
  md: {
1288
+ buttonSize: 19,
1289
+ leftOffset: 9,
1290
+ contentGap: 9,
1291
+ iconSize: 15
1292
+ },
1293
+ lg: {
1406
1294
  buttonSize: 20,
1407
1295
  leftOffset: 10,
1408
1296
  contentGap: 10,
1409
1297
  iconSize: 16
1410
- },
1411
- lg: {
1412
- buttonSize: 22,
1413
- leftOffset: 12,
1414
- contentGap: 12,
1415
- iconSize: 18
1416
1298
  }
1417
1299
  };
1300
+ var FIELD_HEIGHT_CLASSNAMES = {
1301
+ sm: "h-[30px]",
1302
+ md: "h-[34px]",
1303
+ lg: "h-[38px]"
1304
+ };
1305
+ var FIELD_TEXT_CLASSNAMES = {
1306
+ sm: "text-[13px] leading-4",
1307
+ md: "text-sm leading-[18px]",
1308
+ lg: "text-[15px] leading-[18px]"
1309
+ };
1310
+ var FIELD_PADDING_X_CLASSNAMES = {
1311
+ sm: "px-3",
1312
+ md: "px-[14px]",
1313
+ lg: "px-4"
1314
+ };
1418
1315
  var getPasswordToggleMetrics = (size) => PASSWORD_TOGGLE_METRICS_BY_SIZE[size];
1419
1316
  function ControlFrame({
1420
1317
  label,
@@ -1426,88 +1323,40 @@ function ControlFrame({
1426
1323
  children,
1427
1324
  style
1428
1325
  }) {
1429
- const { theme, mutedText } = useUiKitTheme();
1326
+ useUiKitTheme();
1430
1327
  if (!label && !hint && !error) {
1431
1328
  return /* @__PURE__ */ jsx6(Fragment2, { children });
1432
1329
  }
1433
- const labelStyle = {
1434
- color: theme.colors.text,
1435
- fontSize: 14,
1436
- fontWeight: 700,
1437
- letterSpacing: "0.01em"
1438
- };
1439
- const wrapperStyle = {
1440
- display: "flex",
1441
- flexDirection: "column",
1442
- gap: 8,
1443
- width: "100%",
1444
- ...style
1445
- };
1446
1330
  if (!useLabelWrapper) {
1447
- return /* @__PURE__ */ jsxs7("div", { style: wrapperStyle, children: [
1448
- label || hint ? /* @__PURE__ */ jsxs7("div", { style: { display: "flex", flexDirection: "column", gap: 4 }, children: [
1449
- label ? /* @__PURE__ */ jsxs7("label", { htmlFor, style: labelStyle, children: [
1450
- label,
1451
- required ? /* @__PURE__ */ jsx6("span", { style: { color: theme.colors.negative, marginLeft: 4 }, children: "*" }) : null
1452
- ] }) : null,
1453
- hint ? /* @__PURE__ */ jsx6(
1454
- "span",
1331
+ return /* @__PURE__ */ jsxs7("div", { className: cx(UI_KIT_ROOT_CLASSNAME, "flex w-full flex-col gap-2"), style, children: [
1332
+ label || hint ? /* @__PURE__ */ jsxs7("div", { className: "flex flex-col gap-1", children: [
1333
+ label ? /* @__PURE__ */ jsxs7(
1334
+ "label",
1455
1335
  {
1456
- style: {
1457
- color: mutedText,
1458
- fontSize: 13,
1459
- lineHeight: 1.45
1460
- },
1461
- children: hint
1336
+ htmlFor,
1337
+ className: "text-sm font-bold tracking-[0.01em] text-[var(--theme-text)]",
1338
+ children: [
1339
+ label,
1340
+ required ? /* @__PURE__ */ jsx6("span", { className: "ml-1 text-[var(--theme-negative)]", children: "*" }) : null
1341
+ ]
1462
1342
  }
1463
- ) : null
1343
+ ) : null,
1344
+ hint ? /* @__PURE__ */ jsx6("span", { className: "text-[13px] leading-[1.45] text-[var(--ui-kit-muted-text)]", children: hint }) : null
1464
1345
  ] }) : null,
1465
1346
  children,
1466
- error ? /* @__PURE__ */ jsx6(
1467
- "span",
1468
- {
1469
- style: {
1470
- color: theme.colors.negative,
1471
- fontSize: 13,
1472
- fontWeight: 600,
1473
- lineHeight: 1.45
1474
- },
1475
- children: error
1476
- }
1477
- ) : null
1347
+ error ? /* @__PURE__ */ jsx6("span", { className: "text-[13px] font-semibold leading-[1.45] text-[var(--theme-negative)]", children: error }) : null
1478
1348
  ] });
1479
1349
  }
1480
- return /* @__PURE__ */ jsxs7("label", { htmlFor, style: wrapperStyle, children: [
1481
- label || hint ? /* @__PURE__ */ jsxs7("div", { style: { display: "flex", flexDirection: "column", gap: 4 }, children: [
1482
- label ? /* @__PURE__ */ jsxs7("span", { style: labelStyle, children: [
1350
+ return /* @__PURE__ */ jsxs7("label", { htmlFor, className: cx(UI_KIT_ROOT_CLASSNAME, "flex w-full flex-col gap-2"), style, children: [
1351
+ label || hint ? /* @__PURE__ */ jsxs7("div", { className: "flex flex-col gap-1", children: [
1352
+ label ? /* @__PURE__ */ jsxs7("span", { className: "text-sm font-bold tracking-[0.01em] text-[var(--theme-text)]", children: [
1483
1353
  label,
1484
- required ? /* @__PURE__ */ jsx6("span", { style: { color: theme.colors.negative, marginLeft: 4 }, children: "*" }) : null
1354
+ required ? /* @__PURE__ */ jsx6("span", { className: "ml-1 text-[var(--theme-negative)]", children: "*" }) : null
1485
1355
  ] }) : null,
1486
- hint ? /* @__PURE__ */ jsx6(
1487
- "span",
1488
- {
1489
- style: {
1490
- color: mutedText,
1491
- fontSize: 13,
1492
- lineHeight: 1.45
1493
- },
1494
- children: hint
1495
- }
1496
- ) : null
1356
+ hint ? /* @__PURE__ */ jsx6("span", { className: "text-[13px] leading-[1.45] text-[var(--ui-kit-muted-text)]", children: hint }) : null
1497
1357
  ] }) : null,
1498
1358
  children,
1499
- error ? /* @__PURE__ */ jsx6(
1500
- "span",
1501
- {
1502
- style: {
1503
- color: theme.colors.negative,
1504
- fontSize: 13,
1505
- fontWeight: 600,
1506
- lineHeight: 1.45
1507
- },
1508
- children: error
1509
- }
1510
- ) : null
1359
+ error ? /* @__PURE__ */ jsx6("span", { className: "text-[13px] font-semibold leading-[1.45] text-[var(--theme-negative)]", children: error }) : null
1511
1360
  ] });
1512
1361
  }
1513
1362
  function Input({
@@ -1515,6 +1364,7 @@ function Input({
1515
1364
  hint,
1516
1365
  error,
1517
1366
  controlSize = "sm",
1367
+ className,
1518
1368
  showPasswordToggle = true,
1519
1369
  fileButtonLabel,
1520
1370
  id,
@@ -1525,49 +1375,27 @@ function Input({
1525
1375
  type = "text",
1526
1376
  ...rest
1527
1377
  }) {
1528
- const { theme } = useUiKitTheme();
1378
+ useUiKitTheme();
1529
1379
  const controlMetrics = getControlMetrics(controlSize);
1530
- const componentShadow = getComponentShadow(theme);
1531
1380
  const passwordToggleMetrics = getPasswordToggleMetrics(controlSize);
1532
1381
  const generatedId = useId2();
1533
1382
  const inputId = id != null ? id : generatedId;
1534
1383
  const fileInputRef = useRef2(null);
1535
- const [isPasswordVisible, setIsPasswordVisible] = useState4(false);
1536
- const [selectedFileNames, setSelectedFileNames] = useState4([]);
1384
+ const [isPasswordVisible, setIsPasswordVisible] = useState3(false);
1385
+ const [selectedFileNames, setSelectedFileNames] = useState3([]);
1537
1386
  const isPasswordField = type === "password";
1538
1387
  const isEmailField = type === "email";
1539
1388
  const isFileField = type === "file";
1540
1389
  const canTogglePasswordVisibility = isPasswordField && showPasswordToggle;
1541
1390
  const resolvedType = canTogglePasswordVisibility ? isPasswordVisible ? "text" : "password" : type;
1542
- useEffect3(() => {
1391
+ useEffect4(() => {
1543
1392
  if (!isFileField) {
1544
1393
  setSelectedFileNames([]);
1545
1394
  }
1546
1395
  }, [isFileField]);
1547
- const inputBorderColor = error ? theme.colors.negative : theme.colors.textLight;
1548
- const adornedFieldShadow = `0 0 0 1px ${inputBorderColor}, ${componentShadow}`;
1549
- const inputStyle = {
1550
- width: "100%",
1551
- boxSizing: "border-box",
1552
- height: controlMetrics.height,
1553
- borderRadius: STANDARD_COMPONENT_BORDER_RADIUS,
1554
- border: `1px solid ${inputBorderColor}`,
1555
- backgroundColor: theme.colors.surface,
1556
- color: theme.colors.text,
1557
- cursor: disabled ? "not-allowed" : "text",
1558
- opacity: disabled ? DISABLED_FIELD_OPACITY : 1,
1559
- padding: getTextInputPadding(controlSize),
1560
- outline: "none",
1561
- boxShadow: componentShadow,
1562
- fontSize: controlMetrics.fontSize,
1563
- lineHeight: controlMetrics.lineHeight,
1564
- transition: FIELD_SURFACE_TRANSITION,
1565
- ...style
1566
- };
1567
1396
  const hasFileButtonLabel = typeof fileButtonLabel === "string" ? fileButtonLabel.trim().length > 0 : fileButtonLabel != null;
1568
1397
  const hasSelectedFiles = selectedFileNames.length > 0;
1569
1398
  const showUploadLabel = hasFileButtonLabel && !hasSelectedFiles;
1570
- const inputPlaceholderColor = withAlpha(theme.colors.text, 0.5);
1571
1399
  const passwordLockIconSize = passwordToggleMetrics.iconSize + 2;
1572
1400
  const leadingContentGap = Math.max(0, Math.round(controlMetrics.paddingX / 3));
1573
1401
  const fileSelectionText = selectedFileNames.length === 0 ? placeholder != null ? placeholder : "" : selectedFileNames.length === 1 ? selectedFileNames[0] : `${selectedFileNames.length} files selected`;
@@ -1575,144 +1403,35 @@ function Input({
1575
1403
  const fileTriggerWidth = controlMetrics.paddingX + fileIconSize;
1576
1404
  const emailAdornmentWidth = controlMetrics.paddingX + fileIconSize;
1577
1405
  const passwordAdornmentWidth = controlMetrics.paddingX + passwordLockIconSize;
1578
- const hiddenFileInputStyle = {
1579
- display: "none"
1580
- };
1581
- const fileTriggerStyle = {
1582
- flexShrink: 0,
1583
- display: "inline-flex",
1584
- alignItems: "center",
1585
- justifyContent: showUploadLabel ? "flex-start" : "center",
1586
- alignSelf: "stretch",
1587
- gap: showUploadLabel ? leadingContentGap : 0,
1588
- width: showUploadLabel ? void 0 : fileTriggerWidth,
1589
- padding: showUploadLabel ? `0 ${controlMetrics.buttonPaddingX}px 0 ${Math.max(8, Math.round(controlMetrics.paddingX / 2))}px` : 0,
1590
- borderRadius: "15px 0 0 15px",
1591
- border: "none",
1592
- backgroundColor: "transparent",
1593
- color: theme.colors.text,
1594
- fontSize: controlMetrics.fontSize,
1595
- fontWeight: 700,
1596
- lineHeight: controlMetrics.lineHeight,
1597
- whiteSpace: "nowrap",
1598
- cursor: disabled ? "not-allowed" : "pointer",
1599
- appearance: "none"
1600
- };
1601
- const fileIconStyle = {
1602
- flexShrink: 0,
1603
- display: "inline-flex",
1604
- alignItems: "center",
1605
- justifyContent: "center",
1606
- color: inputBorderColor
1607
- };
1608
- const fileFieldStyle = {
1609
- width: "100%",
1610
- boxSizing: "border-box",
1611
- height: controlMetrics.height,
1612
- display: "flex",
1613
- alignItems: "center",
1614
- gap: 0,
1615
- overflow: "hidden",
1616
- borderRadius: STANDARD_COMPONENT_BORDER_RADIUS,
1617
- border: "none",
1618
- backgroundColor: theme.colors.surface,
1619
- color: theme.colors.text,
1620
- cursor: disabled ? "not-allowed" : "pointer",
1621
- opacity: disabled ? DISABLED_FIELD_OPACITY : 1,
1622
- padding: 0,
1623
- outline: "none",
1624
- boxShadow: adornedFieldShadow,
1625
- transition: "box-shadow 160ms ease, background-color 160ms ease",
1626
- textAlign: "left",
1627
- ...style
1628
- };
1629
- const fileSelectionStyle = {
1630
- flex: 1,
1631
- minWidth: 0,
1632
- height: "100%",
1633
- display: "flex",
1634
- alignItems: "center",
1635
- padding: 0,
1636
- border: "none",
1637
- backgroundColor: "transparent",
1638
- textAlign: "left",
1639
- cursor: disabled ? "not-allowed" : "pointer",
1640
- appearance: "none"
1641
- };
1642
- const fileSelectionTextStyle = {
1643
- flex: 1,
1644
- display: "flex",
1645
- alignItems: "center",
1646
- height: "100%",
1647
- minWidth: 0,
1648
- overflow: "hidden",
1649
- textOverflow: "ellipsis",
1650
- whiteSpace: "nowrap",
1651
- color: selectedFileNames.length === 0 ? inputPlaceholderColor : theme.colors.text,
1652
- fontSize: controlMetrics.fontSize,
1653
- lineHeight: controlMetrics.lineHeight,
1654
- padding: `0 ${controlMetrics.paddingX}px 0 ${leadingContentGap}px`
1655
- };
1656
- const emailFieldStyle = {
1657
- width: "100%",
1658
- boxSizing: "border-box",
1659
- height: controlMetrics.height,
1660
- display: "flex",
1661
- alignItems: "center",
1662
- gap: 0,
1663
- overflow: "hidden",
1664
- borderRadius: STANDARD_COMPONENT_BORDER_RADIUS,
1665
- border: "none",
1666
- backgroundColor: theme.colors.surface,
1667
- color: theme.colors.text,
1668
- cursor: disabled ? "not-allowed" : "text",
1669
- opacity: disabled ? DISABLED_FIELD_OPACITY : 1,
1670
- padding: 0,
1671
- outline: "none",
1672
- boxShadow: adornedFieldShadow,
1673
- transition: "box-shadow 160ms ease, background-color 160ms ease",
1674
- textAlign: "left",
1675
- ...style
1676
- };
1677
- const emailAdornmentStyle = {
1678
- flexShrink: 0,
1679
- display: "inline-flex",
1680
- alignItems: "center",
1681
- justifyContent: "center",
1682
- alignSelf: "stretch",
1683
- boxSizing: "border-box",
1684
- width: emailAdornmentWidth,
1685
- backgroundColor: "transparent",
1686
- color: inputBorderColor
1687
- };
1688
- const emailInputStyle = {
1689
- flex: 1,
1690
- minWidth: 0,
1691
- height: "100%",
1692
- boxSizing: "border-box",
1693
- border: "none",
1694
- backgroundColor: "transparent",
1695
- color: theme.colors.text,
1696
- cursor: disabled ? "not-allowed" : "text",
1697
- padding: `0 ${controlMetrics.paddingX}px 0 ${leadingContentGap}px`,
1698
- outline: "none",
1699
- fontSize: controlMetrics.fontSize,
1700
- lineHeight: controlMetrics.lineHeight
1701
- };
1702
- const passwordFieldStyle = {
1703
- ...emailFieldStyle
1704
- };
1705
- const passwordToggleStyle = {
1706
- border: "none",
1707
- ...emailAdornmentStyle,
1708
- width: passwordAdornmentWidth,
1709
- padding: 0,
1710
- cursor: disabled ? "not-allowed" : "pointer",
1711
- appearance: "none"
1712
- };
1713
- const passwordInputStyle = {
1714
- ...emailInputStyle
1715
- };
1406
+ const disabledFieldStyle = disabled ? { opacity: DISABLED_FIELD_OPACITY } : {};
1407
+ const fieldBaseClassName = cx(
1408
+ UI_KIT_ROOT_CLASSNAME,
1409
+ "w-full box-border rounded-2xl border border-solid bg-[var(--theme-surface)]",
1410
+ "text-[var(--theme-text)] outline-none transition-[border-color,box-shadow,background-color]",
1411
+ "duration-150 placeholder:text-[var(--ui-kit-placeholder)]",
1412
+ FIELD_HEIGHT_CLASSNAMES[controlSize],
1413
+ FIELD_TEXT_CLASSNAMES[controlSize],
1414
+ error ? "border-[var(--theme-negative)]" : "border-[var(--theme-textLight)]",
1415
+ disabled ? "cursor-not-allowed" : "cursor-text"
1416
+ );
1417
+ const adornedFieldClassName = cx(
1418
+ UI_KIT_ROOT_CLASSNAME,
1419
+ "box-border flex w-full items-center gap-0 overflow-hidden rounded-2xl",
1420
+ "border border-solid bg-[var(--theme-surface)] text-[var(--theme-text)] text-left",
1421
+ "transition-[border-color,box-shadow,background-color] duration-150",
1422
+ "shadow-[0px_4px_5px_var(--theme-shadow)]",
1423
+ FIELD_HEIGHT_CLASSNAMES[controlSize],
1424
+ FIELD_TEXT_CLASSNAMES[controlSize],
1425
+ error ? "border-[var(--theme-negative)]" : "border-[var(--theme-textLight)]",
1426
+ disabled ? "cursor-not-allowed" : null
1427
+ );
1428
+ const adornedInputClassName = cx(
1429
+ "h-full min-w-0 flex-1 border-0 bg-transparent text-[var(--theme-text)] outline-none",
1430
+ "placeholder:text-[var(--ui-kit-placeholder)]",
1431
+ FIELD_TEXT_CLASSNAMES[controlSize],
1432
+ disabled ? "cursor-not-allowed" : "cursor-text"
1433
+ );
1434
+ const adornmentColorClassName = error ? "text-[var(--theme-negative)]" : "text-[var(--theme-textLight)]";
1716
1435
  const openFilePicker = () => {
1717
1436
  var _a;
1718
1437
  if (disabled) {
@@ -1743,82 +1462,201 @@ function Input({
1743
1462
  setSelectedFileNames(Array.from((_a = event.target.files) != null ? _a : [], (file) => file.name));
1744
1463
  onChange == null ? void 0 : onChange(event);
1745
1464
  },
1746
- style: hiddenFileInputStyle
1465
+ className: "hidden"
1747
1466
  }
1748
1467
  ),
1749
- /* @__PURE__ */ jsxs7("div", { style: fileFieldStyle, children: [
1750
- /* @__PURE__ */ jsxs7(
1751
- "button",
1752
- {
1753
- type: "button",
1754
- disabled,
1755
- "aria-controls": inputId,
1756
- "aria-label": hasSelectedFiles ? rest.multiple ? "Remove selected files" : "Remove selected file" : rest.multiple ? "Select files" : "Select file",
1757
- onClick: hasSelectedFiles ? clearSelectedFiles : openFilePicker,
1758
- style: fileTriggerStyle,
1759
- children: [
1760
- /* @__PURE__ */ jsx6("span", { style: fileIconStyle, "aria-hidden": "true", children: /* @__PURE__ */ jsx6("svg", { width: fileIconSize, height: fileIconSize, viewBox: "0 0 20 20", fill: "none", children: hasSelectedFiles ? /* @__PURE__ */ jsxs7(Fragment2, { children: [
1761
- /* @__PURE__ */ jsx6(
1762
- "path",
1763
- {
1764
- d: "M5.5 6.25h9",
1765
- stroke: "currentColor",
1766
- strokeWidth: "1.6",
1767
- strokeLinecap: "round"
1768
- }
1769
- ),
1770
- /* @__PURE__ */ jsx6(
1771
- "path",
1772
- {
1773
- 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",
1774
- stroke: "currentColor",
1775
- strokeWidth: "1.6",
1776
- strokeLinecap: "round",
1777
- strokeLinejoin: "round"
1778
- }
1779
- ),
1780
- /* @__PURE__ */ jsx6(
1781
- "path",
1782
- {
1783
- d: "M7.75 8.25v5.5",
1784
- stroke: "currentColor",
1785
- strokeWidth: "1.6",
1786
- strokeLinecap: "round"
1787
- }
1788
- ),
1789
- /* @__PURE__ */ jsx6(
1790
- "path",
1791
- {
1792
- d: "M10 8.25v5.5",
1793
- stroke: "currentColor",
1794
- strokeWidth: "1.6",
1795
- strokeLinecap: "round"
1796
- }
1468
+ /* @__PURE__ */ jsxs7(
1469
+ "div",
1470
+ {
1471
+ className: cx(
1472
+ adornedFieldClassName,
1473
+ disabled ? "cursor-not-allowed" : "cursor-pointer",
1474
+ className
1475
+ ),
1476
+ style: { ...style, ...disabledFieldStyle },
1477
+ children: [
1478
+ /* @__PURE__ */ jsxs7(
1479
+ "button",
1480
+ {
1481
+ type: "button",
1482
+ disabled,
1483
+ "aria-controls": inputId,
1484
+ "aria-label": hasSelectedFiles ? rest.multiple ? "Remove selected files" : "Remove selected file" : rest.multiple ? "Select files" : "Select file",
1485
+ onClick: hasSelectedFiles ? clearSelectedFiles : openFilePicker,
1486
+ className: cx(
1487
+ "inline-flex shrink-0 self-stretch whitespace-nowrap border-0 bg-transparent",
1488
+ "items-center text-[var(--theme-text)] appearance-none",
1489
+ FIELD_TEXT_CLASSNAMES[controlSize],
1490
+ disabled ? "cursor-not-allowed" : "cursor-pointer",
1491
+ showUploadLabel ? "justify-start font-bold" : "justify-center"
1797
1492
  ),
1798
- /* @__PURE__ */ jsx6(
1799
- "path",
1800
- {
1801
- d: "M12.25 8.25v5.5",
1802
- stroke: "currentColor",
1803
- strokeWidth: "1.6",
1804
- strokeLinecap: "round"
1805
- }
1493
+ style: {
1494
+ gap: showUploadLabel ? leadingContentGap : 0,
1495
+ width: showUploadLabel ? void 0 : fileTriggerWidth,
1496
+ padding: showUploadLabel ? `0 ${controlMetrics.buttonPaddingX}px 0 ${Math.max(8, Math.round(controlMetrics.paddingX / 2))}px` : 0
1497
+ },
1498
+ children: [
1499
+ /* @__PURE__ */ jsx6(
1500
+ "span",
1501
+ {
1502
+ className: cx(
1503
+ "inline-flex shrink-0 items-center justify-center",
1504
+ adornmentColorClassName
1505
+ ),
1506
+ "aria-hidden": "true",
1507
+ children: /* @__PURE__ */ jsx6("svg", { width: fileIconSize, height: fileIconSize, viewBox: "0 0 20 20", fill: "none", children: hasSelectedFiles ? /* @__PURE__ */ jsxs7(Fragment2, { children: [
1508
+ /* @__PURE__ */ jsx6(
1509
+ "path",
1510
+ {
1511
+ d: "M5.5 6.25h9",
1512
+ stroke: "currentColor",
1513
+ strokeWidth: "1.6",
1514
+ strokeLinecap: "round"
1515
+ }
1516
+ ),
1517
+ /* @__PURE__ */ jsx6(
1518
+ "path",
1519
+ {
1520
+ 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",
1521
+ stroke: "currentColor",
1522
+ strokeWidth: "1.6",
1523
+ strokeLinecap: "round",
1524
+ strokeLinejoin: "round"
1525
+ }
1526
+ ),
1527
+ /* @__PURE__ */ jsx6(
1528
+ "path",
1529
+ {
1530
+ d: "M7.75 8.25v5.5",
1531
+ stroke: "currentColor",
1532
+ strokeWidth: "1.6",
1533
+ strokeLinecap: "round"
1534
+ }
1535
+ ),
1536
+ /* @__PURE__ */ jsx6(
1537
+ "path",
1538
+ {
1539
+ d: "M10 8.25v5.5",
1540
+ stroke: "currentColor",
1541
+ strokeWidth: "1.6",
1542
+ strokeLinecap: "round"
1543
+ }
1544
+ ),
1545
+ /* @__PURE__ */ jsx6(
1546
+ "path",
1547
+ {
1548
+ d: "M12.25 8.25v5.5",
1549
+ stroke: "currentColor",
1550
+ strokeWidth: "1.6",
1551
+ strokeLinecap: "round"
1552
+ }
1553
+ ),
1554
+ /* @__PURE__ */ jsx6(
1555
+ "path",
1556
+ {
1557
+ 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",
1558
+ stroke: "currentColor",
1559
+ strokeWidth: "1.6",
1560
+ strokeLinecap: "round",
1561
+ strokeLinejoin: "round"
1562
+ }
1563
+ )
1564
+ ] }) : /* @__PURE__ */ jsxs7(Fragment2, { children: [
1565
+ /* @__PURE__ */ jsx6(
1566
+ "path",
1567
+ {
1568
+ 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",
1569
+ stroke: "currentColor",
1570
+ strokeWidth: "1.6",
1571
+ strokeLinecap: "round",
1572
+ strokeLinejoin: "round"
1573
+ }
1574
+ ),
1575
+ /* @__PURE__ */ jsx6(
1576
+ "path",
1577
+ {
1578
+ d: "M11.875 2.75V6.25H15.375",
1579
+ stroke: "currentColor",
1580
+ strokeWidth: "1.6",
1581
+ strokeLinecap: "round",
1582
+ strokeLinejoin: "round"
1583
+ }
1584
+ ),
1585
+ /* @__PURE__ */ jsx6(
1586
+ "path",
1587
+ {
1588
+ d: "M7.5 10h5",
1589
+ stroke: "currentColor",
1590
+ strokeWidth: "1.6",
1591
+ strokeLinecap: "round"
1592
+ }
1593
+ ),
1594
+ /* @__PURE__ */ jsx6(
1595
+ "path",
1596
+ {
1597
+ d: "M7.5 13h5",
1598
+ stroke: "currentColor",
1599
+ strokeWidth: "1.6",
1600
+ strokeLinecap: "round"
1601
+ }
1602
+ )
1603
+ ] }) })
1604
+ }
1605
+ ),
1606
+ showUploadLabel ? fileButtonLabel : null
1607
+ ]
1608
+ }
1609
+ ),
1610
+ /* @__PURE__ */ jsx6(
1611
+ "button",
1612
+ {
1613
+ type: "button",
1614
+ disabled,
1615
+ "aria-controls": inputId,
1616
+ "aria-label": rest.multiple ? "Select files" : "Select file",
1617
+ onClick: openFilePicker,
1618
+ className: cx(
1619
+ "flex h-full min-w-0 flex-1 items-center border-0 bg-transparent p-0",
1620
+ "text-left appearance-none",
1621
+ disabled ? "cursor-not-allowed" : "cursor-pointer"
1806
1622
  ),
1807
- /* @__PURE__ */ jsx6(
1808
- "path",
1623
+ children: fileSelectionText ? /* @__PURE__ */ jsx6(
1624
+ "span",
1809
1625
  {
1810
- 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",
1811
- stroke: "currentColor",
1812
- strokeWidth: "1.6",
1813
- strokeLinecap: "round",
1814
- strokeLinejoin: "round"
1626
+ className: cx(
1627
+ "flex h-full min-w-0 flex-1 items-center overflow-hidden text-ellipsis whitespace-nowrap",
1628
+ FIELD_TEXT_CLASSNAMES[controlSize],
1629
+ hasSelectedFiles ? "text-[var(--theme-text)]" : "text-[var(--ui-kit-placeholder)]"
1630
+ ),
1631
+ style: { padding: `0 ${controlMetrics.paddingX}px 0 ${leadingContentGap}px` },
1632
+ children: fileSelectionText
1815
1633
  }
1816
- )
1817
- ] }) : /* @__PURE__ */ jsxs7(Fragment2, { children: [
1634
+ ) : null
1635
+ }
1636
+ )
1637
+ ]
1638
+ }
1639
+ )
1640
+ ] }) : isEmailField ? /* @__PURE__ */ jsxs7(
1641
+ "div",
1642
+ {
1643
+ className: cx(adornedFieldClassName, className),
1644
+ style: { ...style, ...disabledFieldStyle },
1645
+ children: [
1646
+ /* @__PURE__ */ jsx6(
1647
+ "span",
1648
+ {
1649
+ className: cx(
1650
+ "inline-flex shrink-0 self-stretch items-center justify-center bg-transparent",
1651
+ adornmentColorClassName
1652
+ ),
1653
+ style: { width: emailAdornmentWidth },
1654
+ "aria-hidden": "true",
1655
+ children: /* @__PURE__ */ jsxs7("svg", { width: fileIconSize, height: fileIconSize, viewBox: "0 0 20 20", fill: "none", children: [
1818
1656
  /* @__PURE__ */ jsx6(
1819
1657
  "path",
1820
1658
  {
1821
- 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",
1659
+ 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",
1822
1660
  stroke: "currentColor",
1823
1661
  strokeWidth: "1.6",
1824
1662
  strokeLinecap: "round",
@@ -1828,165 +1666,160 @@ function Input({
1828
1666
  /* @__PURE__ */ jsx6(
1829
1667
  "path",
1830
1668
  {
1831
- d: "M11.875 2.75V6.25H15.375",
1669
+ d: "M4.375 6.25 10 10.625l5.625-4.375",
1832
1670
  stroke: "currentColor",
1833
1671
  strokeWidth: "1.6",
1834
1672
  strokeLinecap: "round",
1835
1673
  strokeLinejoin: "round"
1836
1674
  }
1837
- ),
1838
- /* @__PURE__ */ jsx6(
1839
- "path",
1840
- {
1841
- d: "M7.5 10h5",
1842
- stroke: "currentColor",
1843
- strokeWidth: "1.6",
1844
- strokeLinecap: "round"
1845
- }
1846
- ),
1847
- /* @__PURE__ */ jsx6(
1848
- "path",
1849
- {
1850
- d: "M7.5 13h5",
1851
- stroke: "currentColor",
1852
- strokeWidth: "1.6",
1853
- strokeLinecap: "round"
1854
- }
1855
1675
  )
1856
- ] }) }) }),
1857
- showUploadLabel ? fileButtonLabel : null
1858
- ]
1859
- }
1860
- ),
1861
- /* @__PURE__ */ jsx6(
1862
- "button",
1863
- {
1864
- type: "button",
1865
- disabled,
1866
- "aria-controls": inputId,
1867
- "aria-label": rest.multiple ? "Select files" : "Select file",
1868
- onClick: openFilePicker,
1869
- style: fileSelectionStyle,
1870
- children: fileSelectionText ? /* @__PURE__ */ jsx6("span", { style: fileSelectionTextStyle, children: fileSelectionText }) : null
1871
- }
1872
- )
1873
- ] })
1874
- ] }) : isEmailField ? /* @__PURE__ */ jsxs7("div", { style: emailFieldStyle, children: [
1875
- /* @__PURE__ */ jsx6("span", { style: emailAdornmentStyle, "aria-hidden": "true", children: /* @__PURE__ */ jsxs7("svg", { width: fileIconSize, height: fileIconSize, viewBox: "0 0 20 20", fill: "none", children: [
1876
- /* @__PURE__ */ jsx6(
1877
- "path",
1878
- {
1879
- 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",
1880
- stroke: "currentColor",
1881
- strokeWidth: "1.6",
1882
- strokeLinecap: "round",
1883
- strokeLinejoin: "round"
1884
- }
1885
- ),
1886
- /* @__PURE__ */ jsx6(
1887
- "path",
1888
- {
1889
- d: "M4.375 6.25 10 10.625l5.625-4.375",
1890
- stroke: "currentColor",
1891
- strokeWidth: "1.6",
1892
- strokeLinecap: "round",
1893
- strokeLinejoin: "round"
1894
- }
1895
- )
1896
- ] }) }),
1897
- /* @__PURE__ */ jsx6("input", { ...rest, id: inputId, placeholder, type: resolvedType, disabled, onChange, style: emailInputStyle })
1898
- ] }) : canTogglePasswordVisibility ? /* @__PURE__ */ jsxs7("div", { style: passwordFieldStyle, children: [
1899
- /* @__PURE__ */ jsx6(
1900
- "button",
1901
- {
1902
- type: "button",
1903
- "aria-label": isPasswordVisible ? "Hide password" : "Show password",
1904
- "aria-pressed": isPasswordVisible,
1905
- disabled,
1906
- onMouseDown: (event) => {
1907
- event.preventDefault();
1908
- },
1909
- onClick: () => {
1910
- setIsPasswordVisible((currentValue) => !currentValue);
1911
- },
1912
- style: passwordToggleStyle,
1913
- children: isPasswordVisible ? /* @__PURE__ */ jsxs7(
1914
- "svg",
1676
+ ] })
1677
+ }
1678
+ ),
1679
+ /* @__PURE__ */ jsx6(
1680
+ "input",
1915
1681
  {
1916
- width: passwordLockIconSize,
1917
- height: passwordLockIconSize,
1918
- viewBox: "0 0 20 20",
1919
- fill: "none",
1920
- "aria-hidden": "true",
1921
- children: [
1922
- /* @__PURE__ */ jsx6(
1923
- "path",
1924
- {
1925
- d: "M6.75 8V6.75A3.25 3.25 0 0 1 12.262 4.415",
1926
- stroke: "currentColor",
1927
- strokeWidth: "1.8",
1928
- strokeLinecap: "round",
1929
- strokeLinejoin: "round"
1930
- }
1931
- ),
1932
- /* @__PURE__ */ jsx6(
1933
- "path",
1934
- {
1935
- 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",
1936
- stroke: "currentColor",
1937
- strokeWidth: "1.8",
1938
- strokeLinecap: "round",
1939
- strokeLinejoin: "round"
1940
- }
1941
- ),
1942
- /* @__PURE__ */ jsx6(
1943
- "path",
1944
- {
1945
- d: "M10 11.25v1.5",
1946
- stroke: "currentColor",
1947
- strokeWidth: "1.8",
1948
- strokeLinecap: "round"
1949
- }
1950
- )
1951
- ]
1682
+ ...rest,
1683
+ id: inputId,
1684
+ placeholder,
1685
+ type: resolvedType,
1686
+ disabled,
1687
+ onChange,
1688
+ className: cx(adornedInputClassName, className),
1689
+ style: { padding: `0 ${controlMetrics.paddingX}px 0 ${leadingContentGap}px` }
1952
1690
  }
1953
- ) : /* @__PURE__ */ jsxs7(
1954
- "svg",
1691
+ )
1692
+ ]
1693
+ }
1694
+ ) : canTogglePasswordVisibility ? /* @__PURE__ */ jsxs7(
1695
+ "div",
1696
+ {
1697
+ className: cx(adornedFieldClassName, className),
1698
+ style: { ...style, ...disabledFieldStyle },
1699
+ children: [
1700
+ /* @__PURE__ */ jsx6(
1701
+ "button",
1955
1702
  {
1956
- width: passwordLockIconSize,
1957
- height: passwordLockIconSize,
1958
- viewBox: "0 0 20 20",
1959
- fill: "none",
1960
- "aria-hidden": "true",
1961
- children: [
1962
- /* @__PURE__ */ jsx6(
1963
- "path",
1964
- {
1965
- d: "M6.75 8V6.75A3.25 3.25 0 1 1 13.25 6.75V8",
1966
- stroke: "currentColor",
1967
- strokeWidth: "1.8",
1968
- strokeLinecap: "round",
1969
- strokeLinejoin: "round"
1970
- }
1971
- ),
1972
- /* @__PURE__ */ jsx6(
1973
- "path",
1974
- {
1975
- 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",
1976
- stroke: "currentColor",
1977
- strokeWidth: "1.8",
1978
- strokeLinecap: "round",
1979
- strokeLinejoin: "round"
1980
- }
1981
- ),
1982
- /* @__PURE__ */ jsx6("path", { d: "M10 11.25v1.5", stroke: "currentColor", strokeWidth: "1.8", strokeLinecap: "round" })
1983
- ]
1703
+ type: "button",
1704
+ "aria-label": isPasswordVisible ? "Hide password" : "Show password",
1705
+ "aria-pressed": isPasswordVisible,
1706
+ disabled,
1707
+ onMouseDown: (event) => {
1708
+ event.preventDefault();
1709
+ },
1710
+ onClick: () => {
1711
+ setIsPasswordVisible((currentValue) => !currentValue);
1712
+ },
1713
+ className: cx(
1714
+ "inline-flex shrink-0 self-stretch items-center justify-center border-0",
1715
+ "bg-transparent p-0 appearance-none",
1716
+ adornmentColorClassName,
1717
+ disabled ? "cursor-not-allowed" : "cursor-pointer"
1718
+ ),
1719
+ style: { width: passwordAdornmentWidth },
1720
+ children: isPasswordVisible ? /* @__PURE__ */ jsxs7(
1721
+ "svg",
1722
+ {
1723
+ width: passwordLockIconSize,
1724
+ height: passwordLockIconSize,
1725
+ viewBox: "0 0 20 20",
1726
+ fill: "none",
1727
+ "aria-hidden": "true",
1728
+ children: [
1729
+ /* @__PURE__ */ jsx6(
1730
+ "path",
1731
+ {
1732
+ d: "M6.75 8V6.75A3.25 3.25 0 0 1 12.262 4.415",
1733
+ stroke: "currentColor",
1734
+ strokeWidth: "1.8",
1735
+ strokeLinecap: "round",
1736
+ strokeLinejoin: "round"
1737
+ }
1738
+ ),
1739
+ /* @__PURE__ */ jsx6(
1740
+ "path",
1741
+ {
1742
+ 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",
1743
+ stroke: "currentColor",
1744
+ strokeWidth: "1.8",
1745
+ strokeLinecap: "round",
1746
+ strokeLinejoin: "round"
1747
+ }
1748
+ ),
1749
+ /* @__PURE__ */ jsx6(
1750
+ "path",
1751
+ {
1752
+ d: "M10 11.25v1.5",
1753
+ stroke: "currentColor",
1754
+ strokeWidth: "1.8",
1755
+ strokeLinecap: "round"
1756
+ }
1757
+ )
1758
+ ]
1759
+ }
1760
+ ) : /* @__PURE__ */ jsxs7(
1761
+ "svg",
1762
+ {
1763
+ width: passwordLockIconSize,
1764
+ height: passwordLockIconSize,
1765
+ viewBox: "0 0 20 20",
1766
+ fill: "none",
1767
+ "aria-hidden": "true",
1768
+ children: [
1769
+ /* @__PURE__ */ jsx6(
1770
+ "path",
1771
+ {
1772
+ d: "M6.75 8V6.75A3.25 3.25 0 1 1 13.25 6.75V8",
1773
+ stroke: "currentColor",
1774
+ strokeWidth: "1.8",
1775
+ strokeLinecap: "round",
1776
+ strokeLinejoin: "round"
1777
+ }
1778
+ ),
1779
+ /* @__PURE__ */ jsx6(
1780
+ "path",
1781
+ {
1782
+ 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",
1783
+ stroke: "currentColor",
1784
+ strokeWidth: "1.8",
1785
+ strokeLinecap: "round",
1786
+ strokeLinejoin: "round"
1787
+ }
1788
+ ),
1789
+ /* @__PURE__ */ jsx6("path", { d: "M10 11.25v1.5", stroke: "currentColor", strokeWidth: "1.8", strokeLinecap: "round" })
1790
+ ]
1791
+ }
1792
+ )
1793
+ }
1794
+ ),
1795
+ /* @__PURE__ */ jsx6(
1796
+ "input",
1797
+ {
1798
+ ...rest,
1799
+ id: inputId,
1800
+ placeholder,
1801
+ type: resolvedType,
1802
+ disabled,
1803
+ onChange,
1804
+ className: cx(adornedInputClassName, className),
1805
+ style: { padding: `0 ${controlMetrics.paddingX}px 0 ${leadingContentGap}px` }
1984
1806
  }
1985
1807
  )
1986
- }
1987
- ),
1988
- /* @__PURE__ */ jsx6("input", { ...rest, id: inputId, placeholder, type: resolvedType, disabled, onChange, style: passwordInputStyle })
1989
- ] }) : /* @__PURE__ */ jsx6("input", { ...rest, id: inputId, placeholder, type: resolvedType, disabled, onChange, style: inputStyle });
1808
+ ]
1809
+ }
1810
+ ) : /* @__PURE__ */ jsx6(
1811
+ "input",
1812
+ {
1813
+ ...rest,
1814
+ id: inputId,
1815
+ placeholder,
1816
+ type: resolvedType,
1817
+ disabled,
1818
+ onChange,
1819
+ className: cx(fieldBaseClassName, FIELD_PADDING_X_CLASSNAMES[controlSize], className),
1820
+ style: { boxShadow: "var(--ui-kit-component-shadow)", ...style, ...disabledFieldStyle }
1821
+ }
1822
+ );
1990
1823
  return /* @__PURE__ */ jsx6(
1991
1824
  ControlFrame,
1992
1825
  {
@@ -2050,20 +1883,35 @@ var ACCESSORY_METRICS_BY_SIZE = {
2050
1883
  contentGap: 8
2051
1884
  },
2052
1885
  md: {
1886
+ buttonSize: 19,
1887
+ iconSize: 15,
1888
+ rightOffset: 9,
1889
+ clusterGap: 7,
1890
+ contentGap: 9
1891
+ },
1892
+ lg: {
2053
1893
  buttonSize: 20,
2054
1894
  iconSize: 16,
2055
1895
  rightOffset: 10,
2056
1896
  clusterGap: 8,
2057
1897
  contentGap: 10
2058
- },
2059
- lg: {
2060
- buttonSize: 22,
2061
- iconSize: 18,
2062
- rightOffset: 12,
2063
- clusterGap: 8,
2064
- contentGap: 12
2065
1898
  }
2066
1899
  };
1900
+ var FIELD_HEIGHT_CLASSNAMES2 = {
1901
+ sm: "h-[30px]",
1902
+ md: "h-[34px]",
1903
+ lg: "h-[38px]"
1904
+ };
1905
+ var FIELD_TEXT_CLASSNAMES2 = {
1906
+ sm: "text-[13px] leading-4",
1907
+ md: "text-sm leading-[18px]",
1908
+ lg: "text-[15px] leading-[18px]"
1909
+ };
1910
+ var FIELD_PADDING_X_CLASSNAMES2 = {
1911
+ sm: "px-3",
1912
+ md: "px-[14px]",
1913
+ lg: "px-4"
1914
+ };
2067
1915
  function padNumber(value, length = 2) {
2068
1916
  return String(value).padStart(length, "0");
2069
1917
  }
@@ -2247,13 +2095,13 @@ function DatePicker({
2247
2095
  ...rest
2248
2096
  }) {
2249
2097
  var _a;
2250
- const { theme, focusRing } = useUiKitTheme();
2098
+ useUiKitTheme();
2251
2099
  const controlMetrics = getControlMetrics(controlSize);
2252
2100
  const accessoryMetrics = ACCESSORY_METRICS_BY_SIZE[controlSize];
2253
2101
  const generatedIdRef = useRef3();
2254
2102
  const visibleInputRef = useRef3(null);
2255
2103
  const nativeInputRef = useRef3(null);
2256
- const [internalError, setInternalError] = useState5();
2104
+ const [internalError, setInternalError] = useState4();
2257
2105
  const resolvedFormat = (format == null ? void 0 : format.trim()) ? format : DEFAULT_FORMAT_BY_MODE[mode];
2258
2106
  const isControlled = value !== void 0;
2259
2107
  const nativePickerType = mode === "datetime" ? "datetime-local" : "date";
@@ -2265,19 +2113,19 @@ function DatePicker({
2265
2113
  const parsedDefaultValue = parseDateValue(defaultValue, mode, resolvedFormat);
2266
2114
  return parsedDefaultValue ? toLocalInputValue(parsedDefaultValue, mode) : null;
2267
2115
  }, [defaultValue, mode, resolvedFormat]);
2268
- const [uncontrolledValue, setUncontrolledValue] = useState5(normalizedDefaultValue);
2116
+ const [uncontrolledValue, setUncontrolledValue] = useState4(normalizedDefaultValue);
2269
2117
  const committedDate = useMemo4(() => {
2270
2118
  const sourceValue = isControlled ? value : uncontrolledValue;
2271
2119
  return parseDateValue(sourceValue, mode, resolvedFormat);
2272
2120
  }, [isControlled, mode, resolvedFormat, uncontrolledValue, value]);
2273
2121
  const committedValue = committedDate ? toLocalInputValue(committedDate, mode) : null;
2274
2122
  const committedDisplayValue = committedDate ? formatDateValue(committedDate, resolvedFormat) : "";
2275
- const [draftValue, setDraftValue] = useState5(committedDisplayValue);
2276
- useEffect4(() => {
2123
+ const [draftValue, setDraftValue] = useState4(committedDisplayValue);
2124
+ useEffect5(() => {
2277
2125
  setDraftValue(committedDisplayValue);
2278
2126
  setInternalError(void 0);
2279
2127
  }, [committedDisplayValue]);
2280
- useEffect4(() => {
2128
+ useEffect5(() => {
2281
2129
  if (!isControlled) {
2282
2130
  setUncontrolledValue((currentValue) => {
2283
2131
  if (currentValue == null) {
@@ -2303,7 +2151,6 @@ function DatePicker({
2303
2151
  const derivedError = hasConfigurationConflict ? "Current date rules do not allow any selection." : internalError;
2304
2152
  const resolvedError = hasExternalError ? error : derivedError;
2305
2153
  const hasAnyValue = draftValue.trim().length > 0 || Boolean(committedValue);
2306
- const inputBorderColor = resolvedError ? theme.colors.negative : theme.colors.textLight;
2307
2154
  const showPickerAdornment = showPickerButton;
2308
2155
  const canOpenPicker = !disabled && !readOnly && !hasConfigurationConflict;
2309
2156
  const canClear = clearable && !disabled && !readOnly && !required && hasAnyValue;
@@ -2314,6 +2161,43 @@ function DatePicker({
2314
2161
  0,
2315
2162
  accessoryMetrics.rightOffset + trailingButtonCount * accessoryMetrics.buttonSize + (trailingButtonCount - 1) * accessoryMetrics.clusterGap + accessoryMetrics.contentGap - controlMetrics.paddingX
2316
2163
  ) : 0;
2164
+ const fieldBorderColor = resolvedError ? "var(--theme-negative)" : "var(--theme-textLight)";
2165
+ const disabledFieldStyle = disabled ? { opacity: DISABLED_FIELD_OPACITY } : {};
2166
+ const fieldBaseClassName = cx(
2167
+ "w-full box-border rounded-2xl border border-solid bg-[var(--theme-surface)]",
2168
+ "text-[var(--theme-text)] outline-none transition-[border-color,box-shadow,background-color]",
2169
+ "duration-150 placeholder:text-[var(--ui-kit-placeholder)]",
2170
+ FIELD_HEIGHT_CLASSNAMES2[controlSize],
2171
+ FIELD_TEXT_CLASSNAMES2[controlSize],
2172
+ resolvedError ? "border-[var(--theme-negative)]" : "border-[var(--theme-textLight)]",
2173
+ disabled ? "cursor-not-allowed" : readOnly ? "cursor-default" : "cursor-text"
2174
+ );
2175
+ const integratedFieldClassName = cx(
2176
+ "box-border flex w-full items-center gap-0 overflow-hidden rounded-2xl",
2177
+ "bg-[var(--theme-surface)] text-[var(--theme-text)]",
2178
+ "transition-[border-color,box-shadow,background-color] duration-150",
2179
+ FIELD_HEIGHT_CLASSNAMES2[controlSize],
2180
+ FIELD_TEXT_CLASSNAMES2[controlSize],
2181
+ disabled ? "cursor-not-allowed" : readOnly ? "cursor-default" : "cursor-text"
2182
+ );
2183
+ const integratedFieldBoxShadow = getInsetBorderShadow(fieldBorderColor, resolvedError ? { outerShadow: "0 0 0 3px var(--ui-kit-negative-soft)" } : void 0);
2184
+ const integratedInputClassName = cx(
2185
+ "h-full w-full box-border border-0 bg-transparent text-[var(--theme-text)]",
2186
+ "outline-none placeholder:text-[var(--ui-kit-placeholder)]",
2187
+ FIELD_TEXT_CLASSNAMES2[controlSize],
2188
+ disabled ? "cursor-not-allowed" : readOnly ? "cursor-default" : "cursor-text"
2189
+ );
2190
+ const pickerAdornmentClassName = cx(
2191
+ "inline-flex shrink-0 self-stretch items-center justify-center border-0",
2192
+ "bg-transparent p-0 appearance-none",
2193
+ resolvedError ? "text-[var(--theme-negative)]" : "text-[var(--theme-textLight)]",
2194
+ disabled || readOnly || hasConfigurationConflict ? "cursor-not-allowed" : "cursor-pointer"
2195
+ );
2196
+ const accessoryButtonClassName = cx(
2197
+ "m-0 inline-flex shrink-0 items-center justify-center rounded-full border-0 bg-transparent p-0 leading-none",
2198
+ "text-[var(--theme-textLight)]",
2199
+ disabled ? "cursor-not-allowed" : readOnly ? "cursor-not-allowed" : "cursor-pointer"
2200
+ );
2317
2201
  const getValidationMessage = (parsedDate) => {
2318
2202
  if (parsedMinDate && parsedDate.getTime() < parsedMinDate.getTime()) {
2319
2203
  return `Choose a value on or after ${formatDateValue(parsedMinDate, resolvedFormat)}.`;
@@ -2410,98 +2294,10 @@ function DatePicker({
2410
2294
  (_b = visibleInputRef.current) == null ? void 0 : _b.focus();
2411
2295
  }
2412
2296
  };
2413
- const inputStyle = {
2414
- width: "100%",
2415
- boxSizing: "border-box",
2416
- height: controlMetrics.height,
2417
- borderRadius: STANDARD_COMPONENT_BORDER_RADIUS,
2418
- border: `1px solid ${inputBorderColor}`,
2419
- backgroundColor: theme.colors.surface,
2420
- color: theme.colors.text,
2421
- cursor: disabled ? "not-allowed" : readOnly ? "default" : "text",
2422
- opacity: disabled ? DISABLED_FIELD_OPACITY : 1,
2423
- padding: getTextInputPadding(controlSize, { trailingInset }),
2424
- outline: "none",
2425
- fontSize: controlMetrics.fontSize,
2426
- lineHeight: controlMetrics.lineHeight,
2427
- boxShadow: resolvedError ? `0 0 0 3px ${withAlpha(theme.colors.negative, 0.12)}, ${getComponentShadow(theme)}` : `${getComponentShadow(theme)}, 0 0 0 0 ${focusRing}`,
2428
- transition: FIELD_SURFACE_TRANSITION,
2429
- ...style
2430
- };
2431
- const integratedFieldStyle = {
2432
- width: "100%",
2433
- boxSizing: "border-box",
2434
- height: controlMetrics.height,
2435
- display: "flex",
2436
- alignItems: "center",
2437
- gap: 0,
2438
- overflow: "hidden",
2439
- borderRadius: STANDARD_COMPONENT_BORDER_RADIUS,
2440
- border: `1px solid ${inputBorderColor}`,
2441
- backgroundColor: theme.colors.surface,
2442
- color: theme.colors.text,
2443
- cursor: disabled ? "not-allowed" : readOnly ? "default" : "text",
2444
- opacity: disabled ? DISABLED_FIELD_OPACITY : 1,
2445
- padding: 0,
2446
- outline: "none",
2447
- boxShadow: resolvedError ? `0 0 0 3px ${withAlpha(theme.colors.negative, 0.12)}, ${getComponentShadow(theme)}` : `${getComponentShadow(theme)}, 0 0 0 0 ${focusRing}`,
2448
- transition: FIELD_SURFACE_TRANSITION,
2449
- ...style
2450
- };
2451
- const pickerSegmentStyle = {
2452
- flexShrink: 0,
2453
- display: "inline-flex",
2454
- alignItems: "center",
2455
- justifyContent: "center",
2456
- alignSelf: "stretch",
2457
- boxSizing: "border-box",
2458
- width: pickerAdornmentWidth,
2459
- border: "none",
2460
- backgroundColor: "transparent",
2461
- color: inputBorderColor,
2462
- cursor: disabled || readOnly || hasConfigurationConflict ? "not-allowed" : "pointer",
2463
- padding: 0,
2464
- appearance: "none"
2465
- };
2466
- const integratedInputWrapStyle = {
2467
- position: "relative",
2468
- flex: 1,
2469
- minWidth: 0,
2470
- height: "100%"
2471
- };
2472
- const integratedTextInputStyle = {
2473
- width: "100%",
2474
- height: "100%",
2475
- boxSizing: "border-box",
2476
- border: "none",
2477
- backgroundColor: "transparent",
2478
- color: theme.colors.text,
2479
- cursor: disabled ? "not-allowed" : readOnly ? "default" : "text",
2480
- padding: `${controlMetrics.paddingY}px ${controlMetrics.paddingX + trailingInset}px ${controlMetrics.paddingY}px ${leadingContentGap}px`,
2481
- outline: "none",
2482
- fontSize: controlMetrics.fontSize,
2483
- lineHeight: controlMetrics.lineHeight
2484
- };
2485
- const accessoryButtonStyle = {
2486
- width: accessoryMetrics.buttonSize,
2487
- height: accessoryMetrics.buttonSize,
2488
- border: "none",
2489
- padding: 0,
2490
- margin: 0,
2491
- display: "inline-flex",
2492
- alignItems: "center",
2493
- justifyContent: "center",
2494
- borderRadius: 999,
2495
- backgroundColor: "transparent",
2496
- color: theme.colors.textLight,
2497
- cursor: disabled || readOnly ? "not-allowed" : "pointer",
2498
- opacity: disabled ? DISABLED_FIELD_OPACITY : 1
2499
- };
2500
2297
  const visibleInputProps = {
2501
2298
  ...rest,
2502
2299
  ref: visibleInputRef,
2503
2300
  id: resolvedId,
2504
- className,
2505
2301
  type: "text",
2506
2302
  value: draftValue,
2507
2303
  disabled,
@@ -2563,33 +2359,14 @@ function DatePicker({
2563
2359
  onChange: (event) => {
2564
2360
  commitValue(event.target.value || null, "picker");
2565
2361
  },
2566
- style: {
2567
- position: "absolute",
2568
- width: 1,
2569
- height: 1,
2570
- padding: 0,
2571
- margin: -1,
2572
- overflow: "hidden",
2573
- clip: "rect(0, 0, 0, 0)",
2574
- whiteSpace: "nowrap",
2575
- border: 0,
2576
- opacity: 0,
2577
- pointerEvents: "none"
2578
- }
2362
+ className: "ui-kit-sr-only pointer-events-none opacity-0"
2579
2363
  }
2580
2364
  );
2581
2365
  const clearButtonCluster = canClear ? /* @__PURE__ */ jsx7(
2582
2366
  "div",
2583
2367
  {
2584
- style: {
2585
- position: "absolute",
2586
- top: "50%",
2587
- right: accessoryMetrics.rightOffset,
2588
- transform: "translateY(-50%)",
2589
- display: "inline-flex",
2590
- alignItems: "center",
2591
- gap: accessoryMetrics.clusterGap
2592
- },
2368
+ className: "absolute inset-y-0 inline-flex items-center",
2369
+ style: { right: accessoryMetrics.rightOffset, gap: accessoryMetrics.clusterGap },
2593
2370
  children: /* @__PURE__ */ jsx7(
2594
2371
  "button",
2595
2372
  {
@@ -2604,34 +2381,72 @@ function DatePicker({
2604
2381
  commitValue(null, "clear");
2605
2382
  (_a2 = visibleInputRef.current) == null ? void 0 : _a2.focus();
2606
2383
  },
2607
- style: accessoryButtonStyle,
2384
+ className: accessoryButtonClassName,
2385
+ style: {
2386
+ width: accessoryMetrics.buttonSize,
2387
+ height: accessoryMetrics.buttonSize,
2388
+ ...disabled ? { opacity: DISABLED_FIELD_OPACITY } : {}
2389
+ },
2608
2390
  children: /* @__PURE__ */ jsx7(ClearIcon, { size: accessoryMetrics.iconSize })
2609
2391
  }
2610
2392
  )
2611
2393
  }
2612
2394
  ) : null;
2613
- const input = showPickerAdornment ? /* @__PURE__ */ jsxs8("div", { style: integratedFieldStyle, children: [
2395
+ const input = showPickerAdornment ? /* @__PURE__ */ jsxs8(
2396
+ "div",
2397
+ {
2398
+ className: cx(integratedFieldClassName, className),
2399
+ style: {
2400
+ boxShadow: integratedFieldBoxShadow,
2401
+ ...style,
2402
+ ...disabledFieldStyle
2403
+ },
2404
+ children: [
2405
+ /* @__PURE__ */ jsx7(
2406
+ "button",
2407
+ {
2408
+ type: "button",
2409
+ "aria-label": pickerButtonLabel != null ? pickerButtonLabel : mode === "datetime" ? "Open date and time picker" : "Open date picker",
2410
+ disabled: !canOpenPicker,
2411
+ onMouseDown: (event) => {
2412
+ event.preventDefault();
2413
+ },
2414
+ onClick: openNativePicker,
2415
+ className: pickerAdornmentClassName,
2416
+ style: { width: pickerAdornmentWidth },
2417
+ children: /* @__PURE__ */ jsx7(CalendarIcon, { size: accessoryMetrics.iconSize })
2418
+ }
2419
+ ),
2420
+ /* @__PURE__ */ jsxs8("div", { className: "relative h-full min-w-0 flex-1", children: [
2421
+ /* @__PURE__ */ jsx7(
2422
+ "input",
2423
+ {
2424
+ ...visibleInputProps,
2425
+ className: cx(integratedInputClassName, className),
2426
+ style: {
2427
+ padding: `${controlMetrics.paddingY}px ${controlMetrics.paddingX + trailingInset}px ${controlMetrics.paddingY}px ${leadingContentGap}px`
2428
+ }
2429
+ }
2430
+ ),
2431
+ nativePickerInput,
2432
+ clearButtonCluster
2433
+ ] })
2434
+ ]
2435
+ }
2436
+ ) : /* @__PURE__ */ jsxs8("div", { className: "relative w-full", children: [
2614
2437
  /* @__PURE__ */ jsx7(
2615
- "button",
2438
+ "input",
2616
2439
  {
2617
- type: "button",
2618
- "aria-label": pickerButtonLabel != null ? pickerButtonLabel : mode === "datetime" ? "Open date and time picker" : "Open date picker",
2619
- disabled: !canOpenPicker,
2620
- onMouseDown: (event) => {
2621
- event.preventDefault();
2622
- },
2623
- onClick: openNativePicker,
2624
- style: pickerSegmentStyle,
2625
- children: /* @__PURE__ */ jsx7(CalendarIcon, { size: accessoryMetrics.iconSize })
2440
+ ...visibleInputProps,
2441
+ className: cx(fieldBaseClassName, FIELD_PADDING_X_CLASSNAMES2[controlSize], className),
2442
+ style: {
2443
+ paddingRight: controlMetrics.paddingX + trailingInset,
2444
+ boxShadow: resolvedError ? "0 0 0 3px var(--ui-kit-negative-soft), var(--ui-kit-component-shadow)" : "var(--ui-kit-component-shadow)",
2445
+ ...style,
2446
+ ...disabledFieldStyle
2447
+ }
2626
2448
  }
2627
2449
  ),
2628
- /* @__PURE__ */ jsxs8("div", { style: integratedInputWrapStyle, children: [
2629
- /* @__PURE__ */ jsx7("input", { ...visibleInputProps, style: integratedTextInputStyle }),
2630
- nativePickerInput,
2631
- clearButtonCluster
2632
- ] })
2633
- ] }) : /* @__PURE__ */ jsxs8("div", { style: { position: "relative", width: "100%" }, children: [
2634
- /* @__PURE__ */ jsx7("input", { ...visibleInputProps, style: inputStyle }),
2635
2450
  nativePickerInput,
2636
2451
  clearButtonCluster
2637
2452
  ] });
@@ -2654,28 +2469,41 @@ function Separator({
2654
2469
  orientation = "vertical",
2655
2470
  color,
2656
2471
  size = "100%",
2472
+ className,
2657
2473
  style,
2658
2474
  ...rest
2659
2475
  }) {
2660
- const { theme } = useUiKitTheme();
2476
+ useUiKitTheme();
2661
2477
  const usesVerticalStretch = orientation === "vertical" && size === "100%";
2662
2478
  const separatorStyle = {
2663
- flexShrink: 0,
2664
- alignSelf: "stretch",
2665
- backgroundColor: color != null ? color : theme.colors.text,
2479
+ backgroundColor: color,
2666
2480
  width: orientation === "vertical" ? 1 : size,
2667
2481
  height: orientation === "vertical" ? usesVerticalStretch ? "auto" : size : 1,
2668
2482
  ...style
2669
2483
  };
2670
- return /* @__PURE__ */ jsx8("div", { ...rest, role: "separator", "aria-orientation": orientation, style: separatorStyle });
2484
+ return /* @__PURE__ */ jsx8(
2485
+ "div",
2486
+ {
2487
+ ...rest,
2488
+ role: "separator",
2489
+ "aria-orientation": orientation,
2490
+ className: cx(
2491
+ UI_KIT_ROOT_CLASSNAME,
2492
+ "shrink-0 self-stretch bg-[var(--theme-text)]",
2493
+ className
2494
+ ),
2495
+ style: separatorStyle
2496
+ }
2497
+ );
2671
2498
  }
2672
2499
 
2673
2500
  // src/componentsBase/select/SelectBase.tsx
2674
2501
  import {
2675
- useEffect as useEffect5,
2502
+ useEffect as useEffect6,
2676
2503
  useId as useId3,
2504
+ useMemo as useMemo5,
2677
2505
  useRef as useRef4,
2678
- useState as useState6
2506
+ useState as useState5
2679
2507
  } from "react";
2680
2508
 
2681
2509
  // src/componentsBase/select/utils.ts
@@ -2728,10 +2556,20 @@ function filterSelectGroups(groups, query) {
2728
2556
  import { Fragment as Fragment3, jsx as jsx9, jsxs as jsxs9 } from "react/jsx-runtime";
2729
2557
  var MENU_OFFSET = 8;
2730
2558
  var MENU_MAX_HEIGHT = 280;
2731
- var getOptionPadding = (size) => {
2732
- if (size === "sm") return "8px 11px";
2733
- if (size === "lg") return "12px 15px";
2734
- return "10px 13px";
2559
+ var FIELD_HEIGHT_CLASSNAMES3 = {
2560
+ sm: "h-[30px]",
2561
+ md: "h-[34px]",
2562
+ lg: "h-[38px]"
2563
+ };
2564
+ var FIELD_TEXT_CLASSNAMES3 = {
2565
+ sm: "text-[13px] leading-4",
2566
+ md: "text-sm leading-[18px]",
2567
+ lg: "text-[15px] leading-[18px]"
2568
+ };
2569
+ var OPTION_PADDING_CLASSNAMES = {
2570
+ sm: "px-[11px] py-2",
2571
+ md: "px-3 py-[9px]",
2572
+ lg: "px-[13px] py-[10px]"
2735
2573
  };
2736
2574
  function SelectBase({
2737
2575
  label,
@@ -2771,7 +2609,7 @@ function SelectBase({
2771
2609
  ...rest
2772
2610
  }) {
2773
2611
  var _a, _b, _c, _d, _e, _f, _g, _h, _i;
2774
- const { theme, mutedText, surfaceRaised } = useUiKitTheme();
2612
+ const { theme, mutedText } = useUiKitTheme();
2775
2613
  const componentShadow = getComponentShadow(theme);
2776
2614
  const generatedId = useId3().replace(/:/g, "");
2777
2615
  const resolvedId = id != null ? id : `ss-select-${generatedId}`;
@@ -2781,12 +2619,12 @@ function SelectBase({
2781
2619
  const enabledOptions = flatOptions.filter((option) => !option.disabled);
2782
2620
  const isControlled = value !== void 0;
2783
2621
  const fallbackValues = defaultValue !== void 0 ? normalizeSelectValues(defaultValue) : isMultiSelect ? [] : placeholder != null ? [] : ((_a = enabledOptions[0]) == null ? void 0 : _a.value) ? [enabledOptions[0].value] : [];
2784
- const [uncontrolledValues, setUncontrolledValues] = useState6(fallbackValues);
2785
- const [isOpen, setIsOpen] = useState6(false);
2786
- const [uncontrolledSearchQuery, setUncontrolledSearchQuery] = useState6("");
2787
- const [menuPlacement, setMenuPlacement] = useState6("bottom");
2788
- const [isPlacementResolved, setIsPlacementResolved] = useState6(false);
2789
- const [highlightedValue, setHighlightedValue] = useState6((_d = (_c = fallbackValues[0]) != null ? _c : (_b = enabledOptions[0]) == null ? void 0 : _b.value) != null ? _d : "");
2622
+ const [uncontrolledValues, setUncontrolledValues] = useState5(fallbackValues);
2623
+ const [isOpen, setIsOpen] = useState5(false);
2624
+ const [uncontrolledSearchQuery, setUncontrolledSearchQuery] = useState5("");
2625
+ const [menuPlacement, setMenuPlacement] = useState5("bottom");
2626
+ const [isPlacementResolved, setIsPlacementResolved] = useState5(false);
2627
+ const [highlightedValue, setHighlightedValue] = useState5((_d = (_c = fallbackValues[0]) != null ? _c : (_b = enabledOptions[0]) == null ? void 0 : _b.value) != null ? _d : "");
2790
2628
  const shellRef = useRef4(null);
2791
2629
  const buttonRef = useRef4(null);
2792
2630
  const menuRef = useRef4(null);
@@ -2818,13 +2656,50 @@ function SelectBase({
2818
2656
  const scrollbarThumbColor = withAlpha(theme.colors.text, 0.22);
2819
2657
  const scrollbarThumbHoverColor = withAlpha(theme.colors.text, 0.32);
2820
2658
  const highlightedOption = (_i = visibleOptions.find((option) => option.value === highlightedValue)) != null ? _i : null;
2821
- const optionHoverBackground = withAlpha(theme.colors.primary, 1);
2822
- const optionSelectedBackground = withAlpha(theme.colors.primary, 1);
2659
+ const optionHoverBackground = theme.colors.primary;
2660
+ const optionSelectedBackground = theme.colors.primary;
2823
2661
  const canOpenMenu = allowOpenWithoutOptions || flatOptions.length > 0;
2662
+ const isTriggerDisabled = disabled || !canOpenMenu;
2824
2663
  const buttonPassthroughProps = Object.fromEntries(
2825
2664
  Object.entries(rest).filter(([key]) => key.startsWith("aria-") || key.startsWith("data-"))
2826
2665
  );
2827
- useEffect5(() => {
2666
+ const selectVariables = useMemo5(() => ({
2667
+ "--ui-kit-select-placeholder": placeholderTextColor,
2668
+ "--ui-kit-select-muted": mutedText,
2669
+ "--ui-kit-select-indicator-disabled": withAlpha(theme.colors.text, 0.42),
2670
+ "--ui-kit-select-surface-raised": theme.colors.surface,
2671
+ "--ui-kit-select-scrollbar-thumb": scrollbarThumbColor,
2672
+ "--ui-kit-select-scrollbar-thumb-hover": scrollbarThumbHoverColor,
2673
+ "--ui-kit-select-divider": withAlpha(theme.colors.text, 0.08),
2674
+ "--ui-kit-select-option-hover-bg": optionHoverBackground,
2675
+ "--ui-kit-select-option-selected-bg": optionSelectedBackground,
2676
+ "--ui-kit-select-option-disabled": withAlpha(theme.colors.text, 0.38),
2677
+ "--ui-kit-select-control-shadow": componentShadow
2678
+ }), [
2679
+ componentShadow,
2680
+ mutedText,
2681
+ optionHoverBackground,
2682
+ optionSelectedBackground,
2683
+ placeholderTextColor,
2684
+ scrollbarThumbColor,
2685
+ scrollbarThumbHoverColor,
2686
+ theme.colors.surface,
2687
+ theme.colors.text
2688
+ ]);
2689
+ const triggerBorderColor = error ? "var(--theme-negative)" : "var(--theme-textLight)";
2690
+ const triggerBoxShadow = getInsetBorderShadow(triggerBorderColor, {
2691
+ componentShadow: "var(--ui-kit-select-control-shadow)"
2692
+ });
2693
+ const triggerClassName = cx(
2694
+ "m-0 box-border flex w-full min-w-0 items-center justify-between gap-3 rounded-2xl border-0 appearance-none",
2695
+ "bg-[var(--theme-surface)] outline-none transition-[border-color,box-shadow,background-color]",
2696
+ "duration-150 text-left",
2697
+ FIELD_HEIGHT_CLASSNAMES3[controlSize],
2698
+ FIELD_TEXT_CLASSNAMES3[controlSize],
2699
+ hasSelection ? "text-[var(--theme-text)]" : "text-[var(--ui-kit-select-placeholder)]",
2700
+ isTriggerDisabled ? "cursor-not-allowed" : "cursor-pointer"
2701
+ );
2702
+ useEffect6(() => {
2828
2703
  var _a2, _b2, _c2, _d2;
2829
2704
  if (isControlled || preserveUnknownValues) {
2830
2705
  return;
@@ -2841,7 +2716,7 @@ function SelectBase({
2841
2716
  setUncontrolledValues(nextValues);
2842
2717
  setHighlightedValue((_d2 = (_c2 = nextValues[0]) != null ? _c2 : (_b2 = enabledOptions[0]) == null ? void 0 : _b2.value) != null ? _d2 : "");
2843
2718
  }, [defaultValue, enabledOptions, flatOptions, isControlled, isMultiSelect, preserveUnknownValues, uncontrolledValues]);
2844
- useEffect5(() => {
2719
+ useEffect6(() => {
2845
2720
  var _a2, _b2, _c2;
2846
2721
  if (!isOpen) {
2847
2722
  highlightSyncKeyRef.current = "";
@@ -2857,14 +2732,14 @@ function SelectBase({
2857
2732
  const nextHighlightedValue = (_c2 = (_b2 = [...selectedValues].reverse().find((currentValue) => visibleEnabledValues.includes(currentValue))) != null ? _b2 : (_a2 = visibleEnabledOptions[0]) == null ? void 0 : _a2.value) != null ? _c2 : "";
2858
2733
  setHighlightedValue(nextHighlightedValue);
2859
2734
  }, [isOpen, selectedValuesKey, visibleEnabledValuesKey, selectedValues, visibleEnabledOptions, visibleEnabledValues]);
2860
- useEffect5(() => {
2735
+ useEffect6(() => {
2861
2736
  var _a2;
2862
2737
  if (!isOpen || !hasFilter) {
2863
2738
  return;
2864
2739
  }
2865
2740
  (_a2 = searchInputRef.current) == null ? void 0 : _a2.focus();
2866
2741
  }, [hasFilter, isOpen]);
2867
- useEffect5(() => {
2742
+ useEffect6(() => {
2868
2743
  if (!isOpen) {
2869
2744
  return;
2870
2745
  }
@@ -2889,7 +2764,7 @@ function SelectBase({
2889
2764
  window.cancelAnimationFrame(frameId);
2890
2765
  };
2891
2766
  }, [isOpen, visibleOptions.length]);
2892
- useEffect5(() => {
2767
+ useEffect6(() => {
2893
2768
  if (isOpen || !clearSearchOnClose || currentSearchQuery === "") {
2894
2769
  return;
2895
2770
  }
@@ -2898,7 +2773,7 @@ function SelectBase({
2898
2773
  }
2899
2774
  onSearchQueryChange == null ? void 0 : onSearchQueryChange("");
2900
2775
  }, [clearSearchOnClose, currentSearchQuery, isOpen, onSearchQueryChange, searchQuery]);
2901
- useEffect5(() => {
2776
+ useEffect6(() => {
2902
2777
  if (!isOpen) {
2903
2778
  return;
2904
2779
  }
@@ -2914,7 +2789,7 @@ function SelectBase({
2914
2789
  document.removeEventListener("pointerdown", handlePointerDown);
2915
2790
  };
2916
2791
  }, [isOpen]);
2917
- useEffect5(() => {
2792
+ useEffect6(() => {
2918
2793
  var _a2;
2919
2794
  if (isControlled) {
2920
2795
  return;
@@ -3029,20 +2904,10 @@ function SelectBase({
3029
2904
  event.stopPropagation();
3030
2905
  toggleVisibleSelection(!hasAllVisibleSelected);
3031
2906
  },
3032
- style: {
3033
- width: 20,
3034
- height: 20,
3035
- padding: 0,
3036
- margin: 0,
3037
- display: "inline-flex",
3038
- alignItems: "center",
3039
- justifyContent: "center",
3040
- flexShrink: 0,
3041
- border: "none",
3042
- background: "transparent",
3043
- cursor: canToggleVisibleSelection ? "pointer" : "not-allowed",
3044
- opacity: canToggleVisibleSelection ? 1 : 0.45
3045
- },
2907
+ className: cx(
2908
+ "m-0 inline-flex h-5 w-5 shrink-0 items-center justify-center border-0 bg-transparent p-0",
2909
+ canToggleVisibleSelection ? "cursor-pointer opacity-100" : "cursor-not-allowed opacity-45"
2910
+ ),
3046
2911
  children: /* @__PURE__ */ jsx9(
3047
2912
  CheckboxIndicator,
3048
2913
  {
@@ -3196,7 +3061,7 @@ function SelectBase({
3196
3061
  htmlFor: resolvedId,
3197
3062
  required: rest.required,
3198
3063
  useLabelWrapper: false,
3199
- children: /* @__PURE__ */ jsxs9("div", { ref: shellRef, style: { position: "relative", width: "100%" }, children: [
3064
+ children: /* @__PURE__ */ jsxs9("div", { ref: shellRef, className: "relative w-full", style: selectVariables, children: [
3200
3065
  /* @__PURE__ */ jsxs9(
3201
3066
  "button",
3202
3067
  {
@@ -3204,9 +3069,9 @@ function SelectBase({
3204
3069
  id: resolvedId,
3205
3070
  ref: buttonRef,
3206
3071
  type: "button",
3207
- className,
3072
+ className: cx(triggerClassName, className),
3208
3073
  title: rest.title,
3209
- disabled: disabled || !canOpenMenu,
3074
+ disabled: isTriggerDisabled,
3210
3075
  autoFocus,
3211
3076
  tabIndex: rest.tabIndex,
3212
3077
  role: "combobox",
@@ -3220,42 +3085,16 @@ function SelectBase({
3220
3085
  onBlur: handleTriggerBlur,
3221
3086
  onKeyDown: handleTriggerKeyDown,
3222
3087
  style: {
3223
- width: "100%",
3224
- boxSizing: "border-box",
3225
- height: controlMetrics.height,
3226
- borderRadius: STANDARD_COMPONENT_BORDER_RADIUS,
3227
- border: `1px solid ${error ? theme.colors.negative : theme.colors.textLight}`,
3228
- backgroundColor: theme.colors.surface,
3229
- color: hasSelection ? theme.colors.text : placeholderTextColor,
3230
- cursor: disabled ? "not-allowed" : "pointer",
3231
- opacity: disabled ? DISABLED_FIELD_OPACITY : 1,
3232
- padding: getSelectControlPadding(controlSize),
3233
- outline: "none",
3234
- boxShadow: componentShadow,
3235
- font: "inherit",
3236
- fontSize: controlMetrics.fontSize,
3237
- lineHeight: controlMetrics.lineHeight,
3238
- transition: FIELD_SURFACE_TRANSITION,
3239
- display: "flex",
3240
- alignItems: "center",
3241
- justifyContent: "space-between",
3242
- gap: 12,
3243
- minWidth: 0,
3244
- textAlign: "left",
3245
- ...style
3088
+ padding: `${controlMetrics.paddingY}px ${controlMetrics.selectPaddingRight}px ${controlMetrics.paddingY}px ${controlMetrics.paddingX}px`,
3089
+ boxShadow: triggerBoxShadow,
3090
+ ...style,
3091
+ ...isTriggerDisabled ? { opacity: DISABLED_FIELD_OPACITY } : {}
3246
3092
  },
3247
3093
  children: [
3248
3094
  /* @__PURE__ */ jsx9(
3249
3095
  "span",
3250
3096
  {
3251
- style: {
3252
- display: "block",
3253
- flex: "1 1 auto",
3254
- minWidth: 0,
3255
- overflow: "hidden",
3256
- textOverflow: "ellipsis",
3257
- whiteSpace: "nowrap"
3258
- },
3097
+ className: "block min-w-0 flex-1 overflow-hidden text-ellipsis whitespace-nowrap",
3259
3098
  children: displayContent
3260
3099
  }
3261
3100
  ),
@@ -3263,18 +3102,14 @@ function SelectBase({
3263
3102
  "span",
3264
3103
  {
3265
3104
  "aria-hidden": "true",
3105
+ className: cx(
3106
+ "pointer-events-none absolute top-1/2 flex -translate-y-1/2 items-center justify-center",
3107
+ "transition-[transform,color] duration-150",
3108
+ isTriggerDisabled ? "text-[var(--ui-kit-select-indicator-disabled)]" : "text-[var(--ui-kit-select-muted)]"
3109
+ ),
3266
3110
  style: {
3267
- position: "absolute",
3268
3111
  right: indicatorOffset,
3269
- top: "50%",
3270
- transform: `translateY(-50%) rotate(${isOpen ? 180 : 0}deg)`,
3271
- transformOrigin: "center",
3272
- color: disabled ? withAlpha(theme.colors.text, 0.42) : mutedText,
3273
- display: "flex",
3274
- alignItems: "center",
3275
- justifyContent: "center",
3276
- pointerEvents: "none",
3277
- transition: "transform 160ms ease, color 160ms ease"
3112
+ transform: `translateY(-50%) rotate(${isOpen ? 180 : 0}deg)`
3278
3113
  },
3279
3114
  children: /* @__PURE__ */ jsx9("svg", { width: "18", height: "18", viewBox: "0 0 20 20", fill: "none", children: /* @__PURE__ */ jsx9(
3280
3115
  "path",
@@ -3304,17 +3139,7 @@ function SelectBase({
3304
3139
  onChange: handleHiddenSelectChange,
3305
3140
  tabIndex: -1,
3306
3141
  "aria-hidden": "true",
3307
- style: {
3308
- position: "absolute",
3309
- width: 1,
3310
- height: 1,
3311
- padding: 0,
3312
- margin: 0,
3313
- border: 0,
3314
- opacity: 0,
3315
- pointerEvents: "none",
3316
- clipPath: "inset(50%)"
3317
- },
3142
+ className: "ui-kit-sr-only pointer-events-none opacity-0",
3318
3143
  children: nativeOptions
3319
3144
  }
3320
3145
  ),
@@ -3322,7 +3147,7 @@ function SelectBase({
3322
3147
  /* @__PURE__ */ jsx9("style", { children: `
3323
3148
  #${listboxId} {
3324
3149
  scrollbar-width: thin;
3325
- scrollbar-color: ${scrollbarThumbColor} transparent;
3150
+ scrollbar-color: var(--ui-kit-select-scrollbar-thumb) transparent;
3326
3151
  }
3327
3152
 
3328
3153
  #${listboxId}::-webkit-scrollbar {
@@ -3334,19 +3159,19 @@ function SelectBase({
3334
3159
  }
3335
3160
 
3336
3161
  #${listboxId}::-webkit-scrollbar-thumb {
3337
- background: ${scrollbarThumbColor};
3162
+ background: var(--ui-kit-select-scrollbar-thumb);
3338
3163
  border-radius: 999px;
3339
3164
  border: 2px solid transparent;
3340
3165
  background-clip: padding-box;
3341
3166
  }
3342
3167
 
3343
3168
  #${listboxId}::-webkit-scrollbar-thumb:hover {
3344
- background: ${scrollbarThumbHoverColor};
3169
+ background: var(--ui-kit-select-scrollbar-thumb-hover);
3345
3170
  background-clip: padding-box;
3346
3171
  }
3347
3172
 
3348
3173
  #${searchInputId}::placeholder {
3349
- color: ${placeholderTextColor};
3174
+ color: var(--ui-kit-select-placeholder);
3350
3175
  opacity: 1;
3351
3176
  }
3352
3177
  ` }),
@@ -3354,40 +3179,21 @@ function SelectBase({
3354
3179
  "div",
3355
3180
  {
3356
3181
  ref: menuRef,
3182
+ className: "absolute left-0 right-0 z-30 flex max-h-[280px] flex-col gap-1 overflow-hidden rounded-[20px] border p-2",
3357
3183
  style: {
3358
- position: "absolute",
3359
3184
  top: menuPlacement === "bottom" ? `calc(100% + ${MENU_OFFSET}px)` : "auto",
3360
3185
  bottom: menuPlacement === "top" ? `calc(100% + ${MENU_OFFSET}px)` : "auto",
3361
- left: 0,
3362
- right: 0,
3363
- zIndex: 30,
3364
- maxHeight: MENU_MAX_HEIGHT,
3365
- overflow: "hidden",
3366
- boxSizing: "border-box",
3367
- borderRadius: 20,
3368
- border: `1px solid ${theme.colors.textLight}`,
3369
- backgroundColor: surfaceRaised,
3370
- padding: 8,
3371
- boxShadow: componentShadow,
3372
- backdropFilter: "blur(6px)",
3373
- visibility: isPlacementResolved ? "visible" : "hidden",
3374
- display: "flex",
3375
- flexDirection: "column",
3376
- gap: 4
3186
+ borderColor: "var(--theme-textLight)",
3187
+ backgroundColor: "var(--ui-kit-select-surface-raised)",
3188
+ boxShadow: "var(--ui-kit-select-control-shadow)",
3189
+ visibility: isPlacementResolved ? "visible" : "hidden"
3377
3190
  },
3378
3191
  children: [
3379
3192
  hasFilter ? /* @__PURE__ */ jsxs9(
3380
3193
  "div",
3381
3194
  {
3382
- style: {
3383
- display: "flex",
3384
- alignItems: "center",
3385
- justifyContent: "flex-start",
3386
- gap: 8,
3387
- padding: "4px 4px 10px",
3388
- borderBottom: `1px solid ${withAlpha(theme.colors.text, 0.08)}`,
3389
- flexShrink: 0
3390
- },
3195
+ className: "flex shrink-0 items-center justify-start gap-2 border-b px-1 pb-[10px] pt-1",
3196
+ style: { borderColor: "var(--ui-kit-select-divider)" },
3391
3197
  children: [
3392
3198
  bulkToggleControl,
3393
3199
  /* @__PURE__ */ jsx9(
@@ -3410,20 +3216,10 @@ function SelectBase({
3410
3216
  },
3411
3217
  placeholder: searchPlaceholder,
3412
3218
  "aria-label": searchPlaceholder,
3219
+ 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",
3413
3220
  style: {
3414
- flex: "1 1 auto",
3415
- width: "100%",
3416
- border: `1px solid ${theme.colors.textLight}`,
3417
- backgroundColor: theme.colors.surface,
3418
- padding: "7px 11px",
3419
- borderRadius: 11,
3420
- font: "inherit",
3421
- fontSize: 11,
3422
- lineHeight: 1.4,
3423
- color: theme.colors.text,
3424
- outline: "none",
3425
- boxSizing: "border-box",
3426
- boxShadow: componentShadow
3221
+ borderColor: "var(--theme-textLight)",
3222
+ boxShadow: "var(--ui-kit-select-control-shadow)"
3427
3223
  }
3428
3224
  }
3429
3225
  )
@@ -3432,14 +3228,8 @@ function SelectBase({
3432
3228
  ) : isMultiSelect ? /* @__PURE__ */ jsx9(
3433
3229
  "div",
3434
3230
  {
3435
- style: {
3436
- display: "flex",
3437
- alignItems: "center",
3438
- justifyContent: "flex-start",
3439
- padding: "4px 4px 10px",
3440
- borderBottom: `1px solid ${withAlpha(theme.colors.text, 0.08)}`,
3441
- flexShrink: 0
3442
- },
3231
+ className: "flex shrink-0 items-center justify-start border-b px-1 pb-[10px] pt-1",
3232
+ style: { borderColor: "var(--ui-kit-select-divider)" },
3443
3233
  children: bulkToggleControl
3444
3234
  }
3445
3235
  ) : null,
@@ -3451,44 +3241,22 @@ function SelectBase({
3451
3241
  "aria-labelledby": resolvedId,
3452
3242
  "aria-multiselectable": isMultiSelect || void 0,
3453
3243
  onScroll: onListboxScroll,
3454
- style: {
3455
- overflowY: "auto",
3456
- overflowX: "hidden",
3457
- minHeight: 0,
3458
- flex: "1 1 auto"
3459
- },
3244
+ className: "min-h-0 flex-1 overflow-y-auto overflow-x-hidden",
3460
3245
  children: visibleGroups.length === 0 ? /* @__PURE__ */ jsx9(
3461
3246
  "div",
3462
3247
  {
3463
- style: {
3464
- padding: "14px 12px",
3465
- color: mutedText,
3466
- fontSize: 13,
3467
- textAlign: "center"
3468
- },
3248
+ className: "px-3 py-[14px] text-center text-[13px] text-[var(--ui-kit-select-muted)]",
3469
3249
  children: emptyState
3470
3250
  }
3471
3251
  ) : visibleGroups.map((group) => /* @__PURE__ */ jsxs9(
3472
3252
  "div",
3473
3253
  {
3474
- style: {
3475
- display: "flex",
3476
- flexDirection: "column",
3477
- gap: 4,
3478
- marginTop: group.label ? 4 : 0
3479
- },
3254
+ className: cx("flex flex-col gap-1", group.label ? "mt-1" : "mt-0"),
3480
3255
  children: [
3481
3256
  group.label ? /* @__PURE__ */ jsx9(
3482
3257
  "span",
3483
3258
  {
3484
- style: {
3485
- padding: "6px 8px 2px",
3486
- color: mutedText,
3487
- fontSize: 11,
3488
- fontWeight: 800,
3489
- letterSpacing: "0.08em",
3490
- textTransform: "uppercase"
3491
- },
3259
+ className: "px-2 pb-0.5 pt-1.5 text-[11px] font-extrabold uppercase tracking-[0.08em] text-[var(--ui-kit-select-muted)]",
3492
3260
  children: group.label
3493
3261
  }
3494
3262
  ) : null,
@@ -3520,33 +3288,22 @@ function SelectBase({
3520
3288
  commitSelection(option.value);
3521
3289
  }
3522
3290
  },
3523
- style: {
3524
- display: "flex",
3525
- alignItems: "center",
3526
- justifyContent: "space-between",
3527
- gap: 12,
3528
- width: "100%",
3529
- minWidth: 0,
3530
- boxSizing: "border-box",
3531
- borderRadius: 12,
3532
- padding: getOptionPadding(controlSize),
3533
- cursor: option.disabled ? "not-allowed" : "pointer",
3534
- color: option.disabled ? withAlpha(theme.colors.text, 0.38) : isActive ? theme.colors.onPrimary : theme.colors.text,
3535
- backgroundColor: isSelected ? optionSelectedBackground : isHighlighted ? optionHoverBackground : "transparent",
3536
- fontWeight: isSelected ? 700 : 400,
3537
- transition: "background-color 140ms ease, color 140ms ease"
3538
- },
3291
+ className: cx(
3292
+ "flex w-full min-w-0 items-center justify-between gap-3 rounded-xl box-border",
3293
+ "transition-[background-color,color] duration-150",
3294
+ OPTION_PADDING_CLASSNAMES[controlSize],
3295
+ option.disabled ? "cursor-not-allowed text-[var(--ui-kit-select-option-disabled)]" : "cursor-pointer",
3296
+ !option.disabled && isActive ? "text-[var(--theme-onPrimary)]" : null,
3297
+ !option.disabled && !isActive ? "text-[var(--theme-text)]" : null,
3298
+ isSelected ? "bg-[var(--ui-kit-select-option-selected-bg)] font-bold" : null,
3299
+ !isSelected && isHighlighted ? "bg-[var(--ui-kit-select-option-hover-bg)]" : null,
3300
+ !isSelected && !isHighlighted ? "bg-[var(--theme-surface)] font-normal" : null
3301
+ ),
3539
3302
  children: [
3540
3303
  /* @__PURE__ */ jsxs9(
3541
3304
  "span",
3542
3305
  {
3543
- style: {
3544
- display: "flex",
3545
- alignItems: "center",
3546
- gap: 10,
3547
- flex: "1 1 auto",
3548
- minWidth: 0
3549
- },
3306
+ className: "flex min-w-0 flex-1 items-center gap-2.5",
3550
3307
  children: [
3551
3308
  isMultiSelect ? /* @__PURE__ */ jsx9(
3552
3309
  CheckboxIndicator,
@@ -3554,23 +3311,16 @@ function SelectBase({
3554
3311
  checked: isSelected,
3555
3312
  disabled: option.disabled,
3556
3313
  size: 16,
3557
- checkedColor: isActive ? theme.colors.onPrimary : theme.colors.primary,
3558
- iconColor: isActive ? theme.colors.primary : theme.colors.onPrimary,
3559
- uncheckedBorderColor: isActive ? theme.colors.onPrimary : withAlpha(theme.colors.text, 0.26),
3314
+ checkedColor: isActive ? "var(--theme-onPrimary)" : "var(--theme-primary)",
3315
+ iconColor: isActive ? "var(--theme-primary)" : "var(--theme-onPrimary)",
3316
+ uncheckedBorderColor: isActive ? "var(--theme-onPrimary)" : withAlpha(theme.colors.text, 0.26),
3560
3317
  uncheckedBackgroundColor: "transparent"
3561
3318
  }
3562
3319
  ) : null,
3563
3320
  /* @__PURE__ */ jsx9(
3564
3321
  "span",
3565
3322
  {
3566
- style: {
3567
- display: "block",
3568
- flex: "1 1 auto",
3569
- minWidth: 0,
3570
- overflow: "hidden",
3571
- textOverflow: "ellipsis",
3572
- whiteSpace: "nowrap"
3573
- },
3323
+ className: "block min-w-0 flex-1 overflow-hidden text-ellipsis whitespace-nowrap",
3574
3324
  children: option.label
3575
3325
  }
3576
3326
  )
@@ -3581,13 +3331,7 @@ function SelectBase({
3581
3331
  "span",
3582
3332
  {
3583
3333
  "aria-hidden": "true",
3584
- style: {
3585
- display: "flex",
3586
- alignItems: "center",
3587
- justifyContent: "center",
3588
- color: theme.colors.primary,
3589
- flexShrink: 0
3590
- },
3334
+ className: "flex shrink-0 items-center justify-center text-[var(--theme-primary)]",
3591
3335
  children: /* @__PURE__ */ jsx9("svg", { width: "16", height: "16", viewBox: "0 0 20 20", fill: "none", children: /* @__PURE__ */ jsx9(
3592
3336
  "path",
3593
3337
  {
@@ -3614,11 +3358,8 @@ function SelectBase({
3614
3358
  menuFooter ? /* @__PURE__ */ jsx9(
3615
3359
  "div",
3616
3360
  {
3617
- style: {
3618
- padding: "10px 8px 4px",
3619
- borderTop: `1px solid ${withAlpha(theme.colors.text, 0.08)}`,
3620
- flexShrink: 0
3621
- },
3361
+ className: "shrink-0 border-t px-2 pb-1 pt-2.5",
3362
+ style: { borderColor: "var(--ui-kit-select-divider)" },
3622
3363
  children: menuFooter
3623
3364
  }
3624
3365
  ) : null
@@ -3708,7 +3449,7 @@ function Select({ children, ...props }) {
3708
3449
  }
3709
3450
 
3710
3451
  // src/components/SelectAsync.tsx
3711
- import { useEffect as useEffect6, useMemo as useMemo5, useRef as useRef5, useState as useState7 } from "react";
3452
+ import { useEffect as useEffect7, useMemo as useMemo6, useRef as useRef5, useState as useState6 } from "react";
3712
3453
 
3713
3454
  // src/componentsBase/select/objectOptionsAdapter.tsx
3714
3455
  import { jsx as jsx11 } from "react/jsx-runtime";
@@ -3811,19 +3552,19 @@ function SelectAsync({
3811
3552
  ...props
3812
3553
  }) {
3813
3554
  var _a;
3814
- const { theme, mutedText } = useUiKitTheme();
3555
+ useUiKitTheme();
3815
3556
  const isMultiSelect = Boolean(isMulti);
3816
3557
  const isControlled = value !== void 0;
3817
- const [internalSelectedOptions, setInternalSelectedOptions] = useState7(() => {
3558
+ const [internalSelectedOptions, setInternalSelectedOptions] = useState6(() => {
3818
3559
  return normalizeAsyncValue(defaultValue, isMultiSelect);
3819
3560
  });
3820
- const [remoteOptions, setRemoteOptions] = useState7(defaultOptions);
3821
- const [searchQuery, setSearchQuery] = useState7("");
3822
- const [nextPage, setNextPage] = useState7(1);
3823
- const [hasMore, setHasMore] = useState7(true);
3824
- const [isInitialLoading, setIsInitialLoading] = useState7(false);
3825
- const [isLoadingMore, setIsLoadingMore] = useState7(false);
3826
- const [loadError, setLoadError] = useState7(null);
3561
+ const [remoteOptions, setRemoteOptions] = useState6(defaultOptions);
3562
+ const [searchQuery, setSearchQuery] = useState6("");
3563
+ const [nextPage, setNextPage] = useState6(1);
3564
+ const [hasMore, setHasMore] = useState6(true);
3565
+ const [isInitialLoading, setIsInitialLoading] = useState6(false);
3566
+ const [isLoadingMore, setIsLoadingMore] = useState6(false);
3567
+ const [loadError, setLoadError] = useState6(null);
3827
3568
  const selectedOptions = isControlled ? normalizeAsyncValue(value, isMultiSelect) : internalSelectedOptions;
3828
3569
  const optionLookupRef = useRef5(/* @__PURE__ */ new Map());
3829
3570
  const loadOptionsRef = useRef5(loadOptions);
@@ -3833,7 +3574,7 @@ function SelectAsync({
3833
3574
  const activeControllerRef = useRef5(null);
3834
3575
  loadOptionsRef.current = loadOptions;
3835
3576
  remoteOptionsRef.current = remoteOptions;
3836
- const mergedOptions = useMemo5(() => {
3577
+ const mergedOptions = useMemo6(() => {
3837
3578
  const baseOptions = dedupeSelectObjectOptions([
3838
3579
  ...fixedOptions,
3839
3580
  ...remoteOptions
@@ -3844,20 +3585,20 @@ function SelectAsync({
3844
3585
  });
3845
3586
  return [...baseOptions, ...missingSelectedOptions];
3846
3587
  }, [fixedOptions, remoteOptions, selectedOptions]);
3847
- useEffect6(() => {
3588
+ useEffect7(() => {
3848
3589
  const nextLookup = /* @__PURE__ */ new Map();
3849
3590
  mergedOptions.forEach((option) => {
3850
3591
  nextLookup.set(getSelectObjectOptionKey(option), option);
3851
3592
  });
3852
3593
  optionLookupRef.current = nextLookup;
3853
3594
  }, [mergedOptions]);
3854
- useEffect6(() => {
3595
+ useEffect7(() => {
3855
3596
  if (isControlled) {
3856
3597
  return;
3857
3598
  }
3858
3599
  setInternalSelectedOptions(normalizeAsyncValue(defaultValue, isMultiSelect));
3859
3600
  }, [defaultValue, isControlled, isMultiSelect]);
3860
- useEffect6(() => {
3601
+ useEffect7(() => {
3861
3602
  if (areUnknownArraysEqual(cacheUniqsRef.current, cacheUniqs)) {
3862
3603
  return;
3863
3604
  }
@@ -3868,7 +3609,7 @@ function SelectAsync({
3868
3609
  setHasMore(true);
3869
3610
  setLoadError(null);
3870
3611
  }, [cacheUniqs, defaultOptions]);
3871
- useEffect6(() => {
3612
+ useEffect7(() => {
3872
3613
  const timeoutId = window.setTimeout(() => {
3873
3614
  var _a2;
3874
3615
  requestVersionRef.current += 1;
@@ -3909,7 +3650,7 @@ function SelectAsync({
3909
3650
  window.clearTimeout(timeoutId);
3910
3651
  };
3911
3652
  }, [loadErrorMessage, searchDebounceMs, searchQuery, ...cacheUniqs]);
3912
- useEffect6(() => {
3653
+ useEffect7(() => {
3913
3654
  return () => {
3914
3655
  var _a2;
3915
3656
  (_a2 = activeControllerRef.current) == null ? void 0 : _a2.abort();
@@ -3970,28 +3711,15 @@ function SelectAsync({
3970
3711
  "div",
3971
3712
  {
3972
3713
  "aria-live": "polite",
3973
- style: {
3974
- display: "flex",
3975
- alignItems: "center",
3976
- justifyContent: hasMore ? "space-between" : "center",
3977
- gap: 12,
3978
- color: mutedText,
3979
- fontSize: 12,
3980
- lineHeight: 1.4
3981
- },
3714
+ className: "flex items-center gap-3 text-xs leading-[1.4] text-[var(--ui-kit-muted-text)]",
3715
+ style: { justifyContent: hasMore ? "space-between" : "center" },
3982
3716
  children: [
3983
3717
  /* @__PURE__ */ jsx12("span", { children: isLoadingMore ? loadingMoreMessage : hasMore ? loadMoreHintMessage : null }),
3984
3718
  isLoadingMore ? /* @__PURE__ */ jsx12(
3985
3719
  "span",
3986
3720
  {
3987
3721
  "aria-hidden": "true",
3988
- style: {
3989
- width: 8,
3990
- height: 8,
3991
- borderRadius: 999,
3992
- backgroundColor: withAlpha(theme.colors.primary, 0.8),
3993
- flexShrink: 0
3994
- }
3722
+ className: "h-2 w-2 shrink-0 rounded-full bg-[var(--theme-primary)] opacity-80"
3995
3723
  }
3996
3724
  ) : null
3997
3725
  ]
@@ -4025,10 +3753,10 @@ function SelectAsync({
4025
3753
  }
4026
3754
 
4027
3755
  // src/components/Table.tsx
4028
- import { useEffect as useEffect8, useMemo as useMemo6, useState as useState9 } from "react";
3756
+ import { useEffect as useEffect9, useMemo as useMemo7, useState as useState8 } from "react";
4029
3757
 
4030
3758
  // src/componentsBase/table/TableBase.tsx
4031
- import { useEffect as useEffect7, useId as useId4, useRef as useRef6, useState as useState8 } from "react";
3759
+ import { useEffect as useEffect8, useId as useId4, useRef as useRef6, useState as useState7 } from "react";
4032
3760
 
4033
3761
  // src/componentsBase/table/utils.ts
4034
3762
  import { isValidElement as isValidElement3 } from "react";
@@ -4480,9 +4208,9 @@ function DoubleChevronIcon({ direction }) {
4480
4208
  ] });
4481
4209
  }
4482
4210
  function OverflowMenu({ label, children, buttonStyle, menuStyle }) {
4483
- const [isOpen, setIsOpen] = useState8(false);
4211
+ const [isOpen, setIsOpen] = useState7(false);
4484
4212
  const containerRef = useRef6(null);
4485
- useEffect7(() => {
4213
+ useEffect8(() => {
4486
4214
  if (!isOpen) {
4487
4215
  return;
4488
4216
  }
@@ -4552,8 +4280,8 @@ function TableBase({
4552
4280
  const componentShadow = getComponentShadow(theme);
4553
4281
  const scrollRegionId = useId4().replace(/:/g, "");
4554
4282
  const containerRef = useRef6(null);
4555
- const [containerWidth, setContainerWidth] = useState8(null);
4556
- const [isSettingsModalOpen, setIsSettingsModalOpen] = useState8(false);
4283
+ const [containerWidth, setContainerWidth] = useState7(null);
4284
+ const [isSettingsModalOpen, setIsSettingsModalOpen] = useState7(false);
4557
4285
  const resolvedLabels = mergeTableLabels({
4558
4286
  ...labels != null ? labels : {},
4559
4287
  ...translations != null ? translations : {}
@@ -4595,7 +4323,7 @@ function TableBase({
4595
4323
  boxShadow: stickyActionsColumnShadow,
4596
4324
  borderLeft: `1px solid ${borderSoft}`
4597
4325
  });
4598
- useEffect7(() => {
4326
+ useEffect8(() => {
4599
4327
  const element = containerRef.current;
4600
4328
  if (!element) {
4601
4329
  return;
@@ -4810,31 +4538,20 @@ function TableBase({
4810
4538
  "div",
4811
4539
  {
4812
4540
  ref: containerRef,
4813
- className,
4814
- style: {
4815
- width: "100%",
4816
- maxWidth: "100%",
4817
- minWidth: 0,
4818
- display: "flex",
4819
- flexDirection: "column",
4820
- gap: 16,
4821
- padding: 18,
4822
- boxSizing: "border-box",
4823
- borderRadius: 24,
4824
- backgroundColor: surfaceRaised,
4825
- color: theme.colors.text,
4826
- ...style
4827
- },
4541
+ className: cx(
4542
+ UI_KIT_ROOT_CLASSNAME,
4543
+ "flex w-full max-w-full min-w-0 flex-col gap-4 rounded-[24px]",
4544
+ "box-border bg-[var(--ui-kit-surface-raised)] p-[18px] text-[var(--theme-text)]",
4545
+ className
4546
+ ),
4547
+ style,
4828
4548
  children: [
4829
- shouldRenderToolbar ? /* @__PURE__ */ jsxs11("div", { style: { display: "flex", flexWrap: "wrap", alignItems: "center", justifyContent: "space-between", gap: 12, minWidth: 0 }, children: [
4549
+ shouldRenderToolbar ? /* @__PURE__ */ jsxs11("div", { className: "flex min-w-0 flex-wrap items-center justify-between gap-3", children: [
4830
4550
  shouldRenderToolbarPrimaryGroup ? /* @__PURE__ */ jsxs11(
4831
4551
  "div",
4832
4552
  {
4553
+ className: "flex min-w-0 items-center gap-2.5",
4833
4554
  style: {
4834
- display: "flex",
4835
- alignItems: "center",
4836
- gap: 10,
4837
- minWidth: 0,
4838
4555
  flex: shouldShowSearch ? "1 1 260px" : "0 0 auto",
4839
4556
  marginLeft: shouldShowSearch ? void 0 : "auto"
4840
4557
  },
@@ -4847,11 +4564,12 @@ function TableBase({
4847
4564
  "aria-label": resolvedLabels.searchPlaceholder,
4848
4565
  placeholder: resolvedLabels.searchPlaceholder,
4849
4566
  onChange: (event) => onSearchChange(event.currentTarget.value),
4567
+ 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",
4850
4568
  style: {
4851
- ...toolbarControlStyle,
4852
4569
  flex: "1 1 260px",
4853
4570
  maxWidth: 360,
4854
- minWidth: 0
4571
+ borderColor: "var(--ui-kit-border-soft)",
4572
+ boxShadow: "var(--ui-kit-component-shadow)"
4855
4573
  }
4856
4574
  }
4857
4575
  ) : null,
@@ -4872,19 +4590,12 @@ function TableBase({
4872
4590
  shouldShowToolbarStatus ? /* @__PURE__ */ jsxs11(
4873
4591
  "div",
4874
4592
  {
4875
- style: {
4876
- display: "flex",
4877
- flexWrap: "wrap",
4878
- alignItems: "center",
4879
- justifyContent: "flex-end",
4880
- gap: 10,
4881
- minWidth: 0,
4882
- marginLeft: shouldRenderToolbarPrimaryGroup ? "auto" : void 0
4883
- },
4593
+ className: "flex min-w-0 flex-wrap items-center justify-end gap-2.5",
4594
+ style: { marginLeft: shouldRenderToolbarPrimaryGroup ? "auto" : void 0 },
4884
4595
  children: [
4885
- loading ? /* @__PURE__ */ jsx13("span", { style: { color: mutedText, fontSize: 13, fontWeight: 600 }, children: resolvedLabels.loadingMessage }) : null,
4886
- !loading && error && hasRows ? /* @__PURE__ */ jsxs11("div", { style: { display: "inline-flex", alignItems: "center", gap: 10 }, children: [
4887
- /* @__PURE__ */ jsx13("span", { style: { color: theme.colors.negative, fontSize: 13, fontWeight: 600 }, children: resolvedLabels.errorMessage }),
4596
+ loading ? /* @__PURE__ */ jsx13("span", { className: "text-[13px] font-semibold text-[var(--ui-kit-muted-text)]", children: resolvedLabels.loadingMessage }) : null,
4597
+ !loading && error && hasRows ? /* @__PURE__ */ jsxs11("div", { className: "inline-flex items-center gap-2.5", children: [
4598
+ /* @__PURE__ */ jsx13("span", { className: "text-[13px] font-semibold text-[var(--theme-negative)]", children: resolvedLabels.errorMessage }),
4888
4599
  onRetry ? /* @__PURE__ */ jsx13(Button, { size: "sm", variant: "ghost", onClick: onRetry, children: resolvedLabels.retryLabel }) : null
4889
4600
  ] }) : null
4890
4601
  ]
@@ -4892,7 +4603,7 @@ function TableBase({
4892
4603
  ) : null
4893
4604
  ] }) : null,
4894
4605
  !hasRows && (!loading || error) ? renderEmptyState() : null,
4895
- hasRows ? isCollapsed ? /* @__PURE__ */ jsx13("div", { role: "list", "aria-label": ariaLabel, style: { display: "flex", flexDirection: "column", gap: 14 }, children: items.map((item, rowIndex) => {
4606
+ hasRows ? isCollapsed ? /* @__PURE__ */ jsx13("div", { role: "list", "aria-label": ariaLabel, className: "flex flex-col gap-3.5", children: items.map((item, rowIndex) => {
4896
4607
  const rowActions = renderActions(item, rowIndex);
4897
4608
  const rowBackgroundColor = rowIndex % 2 === 0 ? theme.colors.surface : surfaceMuted;
4898
4609
  return /* @__PURE__ */ jsxs11(
@@ -5038,18 +4749,12 @@ function TableBase({
5038
4749
  id: scrollRegionId,
5039
4750
  role: "region",
5040
4751
  "aria-label": ariaLabel,
4752
+ className: "w-full max-w-full min-w-0 overflow-x-auto overflow-y-hidden rounded-[20px] border bg-[var(--theme-surface)]",
5041
4753
  style: {
5042
- width: "100%",
5043
- maxWidth: "100%",
5044
- minWidth: 0,
5045
- overflowX: "auto",
5046
- overflowY: "hidden",
5047
- borderRadius: 20,
5048
- border: `1px solid ${borderSoft}`,
5049
- backgroundColor: theme.colors.surface,
5050
- boxShadow: componentShadow
4754
+ borderColor: "var(--ui-kit-border-soft)",
4755
+ boxShadow: "var(--ui-kit-component-shadow)"
5051
4756
  },
5052
- children: /* @__PURE__ */ jsxs11("table", { style: { width: "max-content", maxWidth: "none", minWidth: "100%", borderCollapse: "separate", borderSpacing: 0 }, children: [
4757
+ children: /* @__PURE__ */ jsxs11("table", { className: "min-w-full max-w-none border-separate border-spacing-0", style: { width: "max-content" }, children: [
5053
4758
  /* @__PURE__ */ jsx13("thead", { children: /* @__PURE__ */ jsxs11("tr", { children: [
5054
4759
  desktopColumns.map((column, columnIndex) => {
5055
4760
  var _a, _b;
@@ -5135,17 +4840,10 @@ function TableBase({
5135
4840
  hasRows && shouldRenderFooter ? /* @__PURE__ */ jsxs11(
5136
4841
  "div",
5137
4842
  {
5138
- style: {
5139
- display: "flex",
5140
- flexWrap: "wrap",
5141
- alignItems: "center",
5142
- justifyContent: "space-between",
5143
- gap: 12,
5144
- paddingTop: 4
5145
- },
4843
+ className: "flex flex-wrap items-center justify-between gap-3 pt-1",
5146
4844
  children: [
5147
- shouldShowPaginationControls ? /* @__PURE__ */ jsxs11("div", { style: { display: "flex", alignItems: "center", gap: 8, flexWrap: "wrap" }, children: [
5148
- /* @__PURE__ */ jsx13("span", { style: { color: mutedText, fontSize: 13, marginRight: 4 }, children: resolvedLabels.pageLabel(normalizedPage, totalPages) }),
4845
+ shouldShowPaginationControls ? /* @__PURE__ */ jsxs11("div", { className: "flex flex-wrap items-center gap-2", children: [
4846
+ /* @__PURE__ */ jsx13("span", { className: "mr-1 text-[13px] text-[var(--ui-kit-muted-text)]", children: resolvedLabels.pageLabel(normalizedPage, totalPages) }),
5149
4847
  /* @__PURE__ */ jsx13(
5150
4848
  "button",
5151
4849
  {
@@ -5191,22 +4889,29 @@ function TableBase({
5191
4889
  }
5192
4890
  )
5193
4891
  ] }) : null,
5194
- /* @__PURE__ */ jsx13("div", { style: { display: "flex", alignItems: "center", gap: 10, color: mutedText, fontSize: 13, marginLeft: shouldShowRowsPerPageControl ? "auto" : void 0 }, children: shouldShowRowsPerPageControl ? /* @__PURE__ */ jsxs11(Fragment4, { children: [
5195
- /* @__PURE__ */ jsx13("span", { children: resolvedLabels.rowsPerPageLabel }),
5196
- /* @__PURE__ */ jsx13(
5197
- "select",
5198
- {
5199
- value: pageSize,
5200
- onChange: (event) => onInternalPageSizeChange(Number(event.currentTarget.value)),
5201
- style: {
5202
- ...toolbarControlStyle,
5203
- height: 38,
5204
- padding: "0 12px"
5205
- },
5206
- children: normalizedPageSizeOptions.map((option) => /* @__PURE__ */ jsx13("option", { value: option, children: option }, option))
5207
- }
5208
- )
5209
- ] }) : null })
4892
+ /* @__PURE__ */ jsx13(
4893
+ "div",
4894
+ {
4895
+ className: "flex items-center gap-2.5 text-[13px] text-[var(--ui-kit-muted-text)]",
4896
+ style: { marginLeft: shouldShowRowsPerPageControl ? "auto" : void 0 },
4897
+ children: shouldShowRowsPerPageControl ? /* @__PURE__ */ jsxs11(Fragment4, { children: [
4898
+ /* @__PURE__ */ jsx13("span", { children: resolvedLabels.rowsPerPageLabel }),
4899
+ /* @__PURE__ */ jsx13(
4900
+ "select",
4901
+ {
4902
+ value: pageSize,
4903
+ onChange: (event) => onInternalPageSizeChange(Number(event.currentTarget.value)),
4904
+ className: "h-[34px] rounded-[14px] border bg-[var(--theme-surface)] px-3 text-sm leading-[1.4] text-[var(--theme-text)] outline-none",
4905
+ style: {
4906
+ borderColor: "var(--ui-kit-border-soft)",
4907
+ boxShadow: "var(--ui-kit-component-shadow)"
4908
+ },
4909
+ children: normalizedPageSizeOptions.map((option) => /* @__PURE__ */ jsx13("option", { value: option, children: option }, option))
4910
+ }
4911
+ )
4912
+ ] }) : null
4913
+ }
4914
+ )
5210
4915
  ]
5211
4916
  }
5212
4917
  ) : null,
@@ -5219,31 +4924,31 @@ function TableBase({
5219
4924
  maxWidth: 560,
5220
4925
  bodyStyle: { display: "grid", gap: 0 },
5221
4926
  children: [
5222
- /* @__PURE__ */ jsxs11("section", { style: { display: "grid", gap: 12 }, children: [
5223
- /* @__PURE__ */ jsx13("strong", { style: { color: theme.colors.text, fontSize: 14 }, children: resolvedLabels.tableInfoSectionTitle }),
5224
- /* @__PURE__ */ jsxs11("div", { style: { display: "grid", gap: 10, gridTemplateColumns: "repeat(auto-fit, minmax(120px, 1fr))" }, children: [
4927
+ /* @__PURE__ */ jsxs11("section", { className: "grid gap-3", children: [
4928
+ /* @__PURE__ */ jsx13("strong", { className: "text-sm text-[var(--theme-text)]", children: resolvedLabels.tableInfoSectionTitle }),
4929
+ /* @__PURE__ */ jsxs11("div", { className: "grid gap-2.5 [grid-template-columns:repeat(auto-fit,minmax(120px,1fr))]", children: [
5225
4930
  /* @__PURE__ */ jsxs11("div", { style: infoCardStyle, children: [
5226
- /* @__PURE__ */ jsx13("span", { style: { color: mutedText, fontSize: 10, fontWeight: 700, letterSpacing: "0.06em", textTransform: "uppercase" }, children: resolvedLabels.totalPagesInfoLabel }),
5227
- /* @__PURE__ */ jsx13("strong", { style: { color: theme.colors.text, fontSize: 18, lineHeight: 1.1 }, children: totalPages })
4931
+ /* @__PURE__ */ jsx13("span", { className: "text-[10px] font-bold uppercase tracking-[0.06em] text-[var(--ui-kit-muted-text)]", children: resolvedLabels.totalPagesInfoLabel }),
4932
+ /* @__PURE__ */ jsx13("strong", { className: "text-[18px] leading-[1.1] text-[var(--theme-text)]", children: totalPages })
5228
4933
  ] }),
5229
4934
  /* @__PURE__ */ jsxs11("div", { style: infoCardStyle, children: [
5230
- /* @__PURE__ */ jsx13("span", { style: { color: mutedText, fontSize: 10, fontWeight: 700, letterSpacing: "0.06em", textTransform: "uppercase" }, children: resolvedLabels.totalItemsInfoLabel }),
5231
- /* @__PURE__ */ jsx13("strong", { style: { color: theme.colors.text, fontSize: 18, lineHeight: 1.1 }, children: totalItemCount })
4935
+ /* @__PURE__ */ jsx13("span", { className: "text-[10px] font-bold uppercase tracking-[0.06em] text-[var(--ui-kit-muted-text)]", children: resolvedLabels.totalItemsInfoLabel }),
4936
+ /* @__PURE__ */ jsx13("strong", { className: "text-[18px] leading-[1.1] text-[var(--theme-text)]", children: totalItemCount })
5232
4937
  ] }),
5233
4938
  /* @__PURE__ */ jsxs11("div", { style: infoCardStyle, children: [
5234
- /* @__PURE__ */ jsx13("span", { style: { color: mutedText, fontSize: 10, fontWeight: 700, letterSpacing: "0.06em", textTransform: "uppercase" }, children: resolvedLabels.currentPageInfoLabel }),
5235
- /* @__PURE__ */ jsx13("strong", { style: { color: theme.colors.text, fontSize: 18, lineHeight: 1.1 }, children: normalizedPage })
4939
+ /* @__PURE__ */ jsx13("span", { className: "text-[10px] font-bold uppercase tracking-[0.06em] text-[var(--ui-kit-muted-text)]", children: resolvedLabels.currentPageInfoLabel }),
4940
+ /* @__PURE__ */ jsx13("strong", { className: "text-[18px] leading-[1.1] text-[var(--theme-text)]", children: normalizedPage })
5236
4941
  ] }),
5237
4942
  /* @__PURE__ */ jsxs11("div", { style: infoCardStyle, children: [
5238
- /* @__PURE__ */ jsx13("span", { style: { color: mutedText, fontSize: 10, fontWeight: 700, letterSpacing: "0.06em", textTransform: "uppercase" }, children: resolvedLabels.currentPageItemsInfoLabel }),
5239
- /* @__PURE__ */ jsx13("strong", { style: { color: theme.colors.text, fontSize: 18, lineHeight: 1.1 }, children: currentPageItemCount })
4943
+ /* @__PURE__ */ jsx13("span", { className: "text-[10px] font-bold uppercase tracking-[0.06em] text-[var(--ui-kit-muted-text)]", children: resolvedLabels.currentPageItemsInfoLabel }),
4944
+ /* @__PURE__ */ jsx13("strong", { className: "text-[18px] leading-[1.1] text-[var(--theme-text)]", children: currentPageItemCount })
5240
4945
  ] })
5241
4946
  ] })
5242
4947
  ] }),
5243
- /* @__PURE__ */ jsx13("div", { style: { paddingBlock: 18 }, children: /* @__PURE__ */ jsx13(Separator, { orientation: "horizontal", color: borderSoft }) }),
5244
- /* @__PURE__ */ jsxs11("section", { style: { display: "grid", gap: 12 }, children: [
5245
- /* @__PURE__ */ jsx13("strong", { style: { color: theme.colors.text, fontSize: 14 }, children: resolvedLabels.downloadSectionTitle }),
5246
- /* @__PURE__ */ jsxs11("div", { style: { display: "flex", flexWrap: "wrap", gap: 10 }, children: [
4948
+ /* @__PURE__ */ jsx13("div", { className: "py-[18px]", children: /* @__PURE__ */ jsx13(Separator, { orientation: "horizontal", color: borderSoft }) }),
4949
+ /* @__PURE__ */ jsxs11("section", { className: "grid gap-3", children: [
4950
+ /* @__PURE__ */ jsx13("strong", { className: "text-sm text-[var(--theme-text)]", children: resolvedLabels.downloadSectionTitle }),
4951
+ /* @__PURE__ */ jsxs11("div", { className: "flex flex-wrap gap-2.5", children: [
5247
4952
  /* @__PURE__ */ jsx13(Button, { size: "sm", variant: "outline", onClick: handleDownloadCsv, disabled: !hasRows, children: resolvedLabels.downloadCsvLabel }),
5248
4953
  /* @__PURE__ */ jsx13(Button, { size: "sm", variant: "outline", onClick: handleDownloadXls, disabled: !hasRows, children: resolvedLabels.downloadXlsLabel }),
5249
4954
  /* @__PURE__ */ jsx13(Button, { size: "sm", variant: "outline", onClick: handleDownloadPdf, disabled: !hasRows, children: resolvedLabels.downloadPdfLabel })
@@ -5274,13 +4979,13 @@ function Table({
5274
4979
  ...props
5275
4980
  }) {
5276
4981
  var _a;
5277
- const initialPageSizeOptions = useMemo6(() => {
4982
+ const initialPageSizeOptions = useMemo7(() => {
5278
4983
  return sanitizePageSizeOptions(pageSizeOptions, defaultPageSize);
5279
4984
  }, [defaultPageSize, pageSizeOptions]);
5280
- const [searchValue, setSearchValue] = useState9(defaultSearchValue);
5281
- const [page, setPage] = useState9(Math.max(1, Math.floor(defaultPage)));
5282
- const [pageSize, setPageSize] = useState9((_a = initialPageSizeOptions[0]) != null ? _a : DEFAULT_PAGE_SIZE);
5283
- useEffect8(() => {
4985
+ const [searchValue, setSearchValue] = useState8(defaultSearchValue);
4986
+ const [page, setPage] = useState8(Math.max(1, Math.floor(defaultPage)));
4987
+ const [pageSize, setPageSize] = useState8((_a = initialPageSizeOptions[0]) != null ? _a : DEFAULT_PAGE_SIZE);
4988
+ useEffect9(() => {
5284
4989
  var _a2;
5285
4990
  if (initialPageSizeOptions.includes(pageSize)) {
5286
4991
  return;
@@ -5288,7 +4993,7 @@ function Table({
5288
4993
  const nextPageSize = (_a2 = initialPageSizeOptions[0]) != null ? _a2 : DEFAULT_PAGE_SIZE;
5289
4994
  setPageSize(nextPageSize);
5290
4995
  }, [initialPageSizeOptions, pageSize]);
5291
- const filteredItems = useMemo6(() => {
4996
+ const filteredItems = useMemo7(() => {
5292
4997
  if (!searchable) {
5293
4998
  return items;
5294
4999
  }
@@ -5306,14 +5011,14 @@ function Table({
5306
5011
  const totalItems = filteredItems.length;
5307
5012
  const totalPages = Math.max(1, Math.ceil(totalItems / pageSize));
5308
5013
  const normalizedPage = clampPage(page, totalPages);
5309
- useEffect8(() => {
5014
+ useEffect9(() => {
5310
5015
  if (normalizedPage === page) {
5311
5016
  return;
5312
5017
  }
5313
5018
  setPage(normalizedPage);
5314
5019
  onPageChange == null ? void 0 : onPageChange(normalizedPage);
5315
5020
  }, [normalizedPage, onPageChange, page]);
5316
- const pageItems = useMemo6(() => {
5021
+ const pageItems = useMemo7(() => {
5317
5022
  const startIndex = (normalizedPage - 1) * pageSize;
5318
5023
  return filteredItems.slice(startIndex, startIndex + pageSize);
5319
5024
  }, [filteredItems, normalizedPage, pageSize]);
@@ -5353,7 +5058,7 @@ function Table({
5353
5058
  }
5354
5059
 
5355
5060
  // src/components/TableAsync.tsx
5356
- import { useEffect as useEffect9, useMemo as useMemo7, useRef as useRef7, useState as useState10 } from "react";
5061
+ import { useEffect as useEffect10, useMemo as useMemo8, useRef as useRef7, useState as useState9 } from "react";
5357
5062
  import { jsx as jsx15 } from "react/jsx-runtime";
5358
5063
  var areUnknownArraysEqual2 = (left, right) => {
5359
5064
  if (left.length !== right.length) {
@@ -5379,25 +5084,25 @@ function TableAsync({
5379
5084
  ...props
5380
5085
  }) {
5381
5086
  var _a;
5382
- const initialPageSizeOptions = useMemo7(() => {
5087
+ const initialPageSizeOptions = useMemo8(() => {
5383
5088
  return sanitizePageSizeOptions(pageSizeOptions, defaultPageSize);
5384
5089
  }, [defaultPageSize, pageSizeOptions]);
5385
- const [searchValue, setSearchValue] = useState10(defaultSearchValue);
5386
- const [debouncedSearchValue, setDebouncedSearchValue] = useState10(defaultSearchValue);
5387
- const [page, setPage] = useState10(Math.max(1, Math.floor(defaultPage)));
5388
- const [pageSize, setPageSize] = useState10((_a = initialPageSizeOptions[0]) != null ? _a : DEFAULT_PAGE_SIZE);
5389
- const [items, setItems] = useState10([]);
5390
- const [totalPages, setTotalPages] = useState10(1);
5391
- const [totalItems, setTotalItems] = useState10(void 0);
5392
- const [loading, setLoading] = useState10(false);
5393
- const [error, setError] = useState10(null);
5394
- const [reloadKey, setReloadKey] = useState10(0);
5090
+ const [searchValue, setSearchValue] = useState9(defaultSearchValue);
5091
+ const [debouncedSearchValue, setDebouncedSearchValue] = useState9(defaultSearchValue);
5092
+ const [page, setPage] = useState9(Math.max(1, Math.floor(defaultPage)));
5093
+ const [pageSize, setPageSize] = useState9((_a = initialPageSizeOptions[0]) != null ? _a : DEFAULT_PAGE_SIZE);
5094
+ const [items, setItems] = useState9([]);
5095
+ const [totalPages, setTotalPages] = useState9(1);
5096
+ const [totalItems, setTotalItems] = useState9(void 0);
5097
+ const [loading, setLoading] = useState9(false);
5098
+ const [error, setError] = useState9(null);
5099
+ const [reloadKey, setReloadKey] = useState9(0);
5395
5100
  const loadItemsRef = useRef7(loadItems);
5396
5101
  const cacheUniqsRef = useRef7(cacheUniqs);
5397
5102
  const activeControllerRef = useRef7(null);
5398
5103
  const requestVersionRef = useRef7(0);
5399
5104
  loadItemsRef.current = loadItems;
5400
- useEffect9(() => {
5105
+ useEffect10(() => {
5401
5106
  var _a2;
5402
5107
  if (initialPageSizeOptions.includes(pageSize)) {
5403
5108
  return;
@@ -5405,7 +5110,7 @@ function TableAsync({
5405
5110
  const nextPageSize = (_a2 = initialPageSizeOptions[0]) != null ? _a2 : DEFAULT_PAGE_SIZE;
5406
5111
  setPageSize(nextPageSize);
5407
5112
  }, [initialPageSizeOptions, pageSize]);
5408
- useEffect9(() => {
5113
+ useEffect10(() => {
5409
5114
  const timeoutId = window.setTimeout(() => {
5410
5115
  setDebouncedSearchValue(searchValue);
5411
5116
  }, searchDebounceMs);
@@ -5413,7 +5118,7 @@ function TableAsync({
5413
5118
  window.clearTimeout(timeoutId);
5414
5119
  };
5415
5120
  }, [searchDebounceMs, searchValue]);
5416
- useEffect9(() => {
5121
+ useEffect10(() => {
5417
5122
  if (areUnknownArraysEqual2(cacheUniqsRef.current, cacheUniqs)) {
5418
5123
  return;
5419
5124
  }
@@ -5421,7 +5126,7 @@ function TableAsync({
5421
5126
  setPage(1);
5422
5127
  setReloadKey((currentValue) => currentValue + 1);
5423
5128
  }, [cacheUniqs]);
5424
- useEffect9(() => {
5129
+ useEffect10(() => {
5425
5130
  var _a2;
5426
5131
  requestVersionRef.current += 1;
5427
5132
  const currentRequestVersion = requestVersionRef.current;
@@ -5459,14 +5164,14 @@ function TableAsync({
5459
5164
  setLoading(false);
5460
5165
  });
5461
5166
  }, [debouncedSearchValue, keepPreviousData, page, pageSize, reloadKey, searchable, ...cacheUniqs]);
5462
- useEffect9(() => {
5167
+ useEffect10(() => {
5463
5168
  return () => {
5464
5169
  var _a2;
5465
5170
  (_a2 = activeControllerRef.current) == null ? void 0 : _a2.abort();
5466
5171
  };
5467
5172
  }, []);
5468
5173
  const normalizedPage = clampPage(page, totalPages);
5469
- useEffect9(() => {
5174
+ useEffect10(() => {
5470
5175
  if (normalizedPage === page) {
5471
5176
  return;
5472
5177
  }
@@ -5513,10 +5218,10 @@ function TableAsync({
5513
5218
 
5514
5219
  // src/components/Textarea.tsx
5515
5220
  import { jsx as jsx16 } from "react/jsx-runtime";
5516
- var getPadding = (size) => {
5517
- if (size === "sm") return "10px 12px";
5518
- if (size === "lg") return "16px 18px";
5519
- return "13px 16px";
5221
+ var TEXTAREA_SIZE_CLASSNAMES = {
5222
+ sm: "px-3 py-[10px] text-[13px] leading-4",
5223
+ md: "px-[14px] py-[11px] text-sm leading-[18px]",
5224
+ lg: "px-4 py-3 text-[15px] leading-[18px]"
5520
5225
  };
5521
5226
  function Textarea({
5522
5227
  label,
@@ -5529,27 +5234,33 @@ function Textarea({
5529
5234
  rows = 5,
5530
5235
  ...rest
5531
5236
  }) {
5532
- const { theme, focusRing } = useUiKitTheme();
5533
- const componentShadow = getComponentShadow(theme);
5534
- const textareaStyle = {
5535
- border: `1px solid ${error ? theme.colors.negative : theme.colors.textLight}`,
5536
- backgroundColor: theme.colors.surface,
5537
- color: theme.colors.text,
5538
- cursor: disabled ? "not-allowed" : "text",
5539
- opacity: disabled ? DISABLED_FIELD_OPACITY : 1,
5540
- width: "100%",
5541
- boxSizing: "border-box",
5542
- borderRadius: STANDARD_COMPONENT_BORDER_RADIUS,
5543
- padding: getPadding(controlSize),
5544
- outline: "none",
5545
- boxShadow: error ? `0 0 0 3px ${withAlpha(theme.colors.negative, 0.12)}, ${componentShadow}` : `${componentShadow}, 0 0 0 0 ${focusRing}`,
5546
- transition: FIELD_SURFACE_TRANSITION,
5547
- resize: "vertical",
5548
- ...style
5549
- };
5550
- const textarea = /* @__PURE__ */ jsx16("textarea", { ...rest, id, disabled, rows, style: textareaStyle });
5237
+ useUiKitTheme();
5238
+ const textarea = /* @__PURE__ */ jsx16(
5239
+ "textarea",
5240
+ {
5241
+ ...rest,
5242
+ id,
5243
+ disabled,
5244
+ rows,
5245
+ className: cx(
5246
+ "w-full min-w-0 box-border resize-y rounded-2xl border border-solid bg-[var(--theme-surface)]",
5247
+ "text-[var(--theme-text)] outline-none transition-[border-color,box-shadow,background-color]",
5248
+ "duration-150 disabled:cursor-not-allowed",
5249
+ error ? "border-[var(--theme-negative)]" : "border-[var(--theme-textLight)]",
5250
+ TEXTAREA_SIZE_CLASSNAMES[controlSize]
5251
+ ),
5252
+ style: {
5253
+ boxShadow: error ? "0 0 0 3px var(--ui-kit-negative-soft), var(--ui-kit-component-shadow)" : "var(--ui-kit-component-shadow)",
5254
+ ...style,
5255
+ ...disabled ? { opacity: DISABLED_FIELD_OPACITY } : {}
5256
+ }
5257
+ }
5258
+ );
5551
5259
  return /* @__PURE__ */ jsx16(ControlFrame, { label, hint, error, htmlFor: id, required: rest.required, children: textarea });
5552
5260
  }
5261
+
5262
+ // src/index.ts
5263
+ injectUiKitFonts();
5553
5264
  export {
5554
5265
  Button,
5555
5266
  Card,