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