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