smartsell-ui-kit 0.1.17 → 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 +5 -3
- package/dist/index.cjs +892 -439
- 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 +784 -331
- package/dist/index.js.map +1 -1
- package/dist/styles.css +24 -8
- package/dist/{types-goI3n5Qz.d.cts → types-CSdgG6bT.d.cts} +1 -1
- package/dist/{types-goI3n5Qz.d.ts → types-CSdgG6bT.d.ts} +1 -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",
|
|
@@ -4470,11 +4920,11 @@ function OverflowMenu({ label, children }) {
|
|
|
4470
4920
|
"cursor-pointer border-0 bg-transparent text-[var(--theme-text)]",
|
|
4471
4921
|
"transition-colors hover:text-[var(--theme-primary)]"
|
|
4472
4922
|
].join(" "),
|
|
4473
|
-
children: /* @__PURE__ */ (0,
|
|
4923
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(MoreActionsIcon, {})
|
|
4474
4924
|
}
|
|
4475
4925
|
),
|
|
4476
4926
|
isOpen && menuPosition && typeof document !== "undefined" ? (0, import_react_dom2.createPortal)(
|
|
4477
|
-
/* @__PURE__ */ (0,
|
|
4927
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
4478
4928
|
"div",
|
|
4479
4929
|
{
|
|
4480
4930
|
ref: menuRef,
|
|
@@ -4541,10 +4991,10 @@ function TableBase({
|
|
|
4541
4991
|
onInternalPageSizeChange
|
|
4542
4992
|
}) {
|
|
4543
4993
|
useUiKitTheme();
|
|
4544
|
-
const scrollRegionId = (0,
|
|
4545
|
-
const containerRef = (0,
|
|
4546
|
-
const [containerWidth, setContainerWidth] = (0,
|
|
4547
|
-
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);
|
|
4548
4998
|
const resolvedLabels = mergeTableLabels({
|
|
4549
4999
|
...labels != null ? labels : {},
|
|
4550
5000
|
...translations != null ? translations : {}
|
|
@@ -4616,7 +5066,7 @@ function TableBase({
|
|
|
4616
5066
|
boxShadow: "-10px 0 16px -14px var(--theme-shadow)",
|
|
4617
5067
|
borderLeft: "1px solid var(--theme-secondary)"
|
|
4618
5068
|
});
|
|
4619
|
-
(0,
|
|
5069
|
+
(0, import_react14.useEffect)(() => {
|
|
4620
5070
|
const element = containerRef.current;
|
|
4621
5071
|
if (!element) {
|
|
4622
5072
|
return;
|
|
@@ -4665,7 +5115,7 @@ function TableBase({
|
|
|
4665
5115
|
const tone = (_a = action.tone) != null ? _a : "default";
|
|
4666
5116
|
const iconOnly = appearance === "inline" && action.icon != null;
|
|
4667
5117
|
const isMenuAction = appearance === "menu";
|
|
4668
|
-
return /* @__PURE__ */ (0,
|
|
5118
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
|
|
4669
5119
|
"button",
|
|
4670
5120
|
{
|
|
4671
5121
|
type: "button",
|
|
@@ -4691,7 +5141,7 @@ function TableBase({
|
|
|
4691
5141
|
),
|
|
4692
5142
|
children: [
|
|
4693
5143
|
action.icon,
|
|
4694
|
-
appearance === "menu" || !iconOnly ? /* @__PURE__ */ (0,
|
|
5144
|
+
appearance === "menu" || !iconOnly ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { children: action.label }) : null
|
|
4695
5145
|
]
|
|
4696
5146
|
},
|
|
4697
5147
|
(_b = action.id) != null ? _b : `${action.label}-${rowIndex}`
|
|
@@ -4704,7 +5154,7 @@ function TableBase({
|
|
|
4704
5154
|
}
|
|
4705
5155
|
const inlineActions = resolvedActions.slice(0, visibleInlineActions);
|
|
4706
5156
|
const overflowActions = resolvedActions.slice(visibleInlineActions);
|
|
4707
|
-
return /* @__PURE__ */ (0,
|
|
5157
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
|
|
4708
5158
|
"div",
|
|
4709
5159
|
{
|
|
4710
5160
|
className: cx(
|
|
@@ -4717,7 +5167,7 @@ function TableBase({
|
|
|
4717
5167
|
inlineActions.map(
|
|
4718
5168
|
(action) => renderActionButton(action, item, rowIndex, "inline")
|
|
4719
5169
|
),
|
|
4720
|
-
overflowActions.length > 0 ? /* @__PURE__ */ (0,
|
|
5170
|
+
overflowActions.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(OverflowMenu, { label: resolvedLabels.actionsMenuLabel, children: overflowActions.map(
|
|
4721
5171
|
(action) => renderActionButton(action, item, rowIndex, "menu")
|
|
4722
5172
|
) }) : null
|
|
4723
5173
|
]
|
|
@@ -4728,7 +5178,7 @@ function TableBase({
|
|
|
4728
5178
|
var _a;
|
|
4729
5179
|
const content = resolveColumnContent(column, item, rowIndex);
|
|
4730
5180
|
const align = (_a = column.align) != null ? _a : column.type === "actions" ? "right" : "left";
|
|
4731
|
-
return /* @__PURE__ */ (0,
|
|
5181
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
4732
5182
|
"td",
|
|
4733
5183
|
{
|
|
4734
5184
|
colSpan: column.colSpan,
|
|
@@ -4741,14 +5191,14 @@ function TableBase({
|
|
|
4741
5191
|
width: column.width,
|
|
4742
5192
|
minWidth: column.minWidth
|
|
4743
5193
|
},
|
|
4744
|
-
children: hasRenderableContent(content) ? content : /* @__PURE__ */ (0,
|
|
5194
|
+
children: hasRenderableContent(content) ? content : /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "text-[var(--theme-textLight)]", children: "-" })
|
|
4745
5195
|
},
|
|
4746
5196
|
`${getColumnKey(column, columnIndex)}-${rowIndex}`
|
|
4747
5197
|
);
|
|
4748
5198
|
};
|
|
4749
5199
|
const renderEmptyState = () => {
|
|
4750
5200
|
const message = error ? error : loading ? resolvedLabels.loadingMessage : hasSearchValue ? resolvedLabels.noResultsMessage : resolvedLabels.emptyMessage;
|
|
4751
|
-
return /* @__PURE__ */ (0,
|
|
5201
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
|
|
4752
5202
|
"div",
|
|
4753
5203
|
{
|
|
4754
5204
|
className: [
|
|
@@ -4757,13 +5207,13 @@ function TableBase({
|
|
|
4757
5207
|
"p-6 text-center text-[var(--theme-text)] shadow-none"
|
|
4758
5208
|
].join(" "),
|
|
4759
5209
|
children: [
|
|
4760
|
-
/* @__PURE__ */ (0,
|
|
4761
|
-
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
|
|
4762
5212
|
]
|
|
4763
5213
|
}
|
|
4764
5214
|
);
|
|
4765
5215
|
};
|
|
4766
|
-
return /* @__PURE__ */ (0,
|
|
5216
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
|
|
4767
5217
|
"div",
|
|
4768
5218
|
{
|
|
4769
5219
|
ref: containerRef,
|
|
@@ -4775,8 +5225,8 @@ function TableBase({
|
|
|
4775
5225
|
),
|
|
4776
5226
|
style,
|
|
4777
5227
|
children: [
|
|
4778
|
-
shouldRenderToolbar ? /* @__PURE__ */ (0,
|
|
4779
|
-
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)(
|
|
4780
5230
|
"div",
|
|
4781
5231
|
{
|
|
4782
5232
|
className: cx(
|
|
@@ -4789,7 +5239,7 @@ function TableBase({
|
|
|
4789
5239
|
// to the Input would land on the inner <input>, which lives inside a
|
|
4790
5240
|
// flex-column ControlFrame — there flex-basis becomes height and the
|
|
4791
5241
|
// field grows absurdly tall.
|
|
4792
|
-
/* @__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)(
|
|
4793
5243
|
Input,
|
|
4794
5244
|
{
|
|
4795
5245
|
type: "search",
|
|
@@ -4800,7 +5250,7 @@ function TableBase({
|
|
|
4800
5250
|
}
|
|
4801
5251
|
) })
|
|
4802
5252
|
) : null,
|
|
4803
|
-
showSettingsButton && !loading ? /* @__PURE__ */ (0,
|
|
5253
|
+
showSettingsButton && !loading ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
4804
5254
|
Button,
|
|
4805
5255
|
{
|
|
4806
5256
|
variant: "secondary",
|
|
@@ -4808,13 +5258,13 @@ function TableBase({
|
|
|
4808
5258
|
title: resolvedLabels.settingsButtonLabel,
|
|
4809
5259
|
onClick: () => setIsSettingsModalOpen(true),
|
|
4810
5260
|
className: "shrink-0",
|
|
4811
|
-
children: /* @__PURE__ */ (0,
|
|
5261
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(SettingsIcon, {})
|
|
4812
5262
|
}
|
|
4813
5263
|
) : null
|
|
4814
5264
|
]
|
|
4815
5265
|
}
|
|
4816
5266
|
) : null,
|
|
4817
|
-
shouldShowToolbarStatus ? /* @__PURE__ */ (0,
|
|
5267
|
+
shouldShowToolbarStatus ? /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
|
|
4818
5268
|
"div",
|
|
4819
5269
|
{
|
|
4820
5270
|
className: cx(
|
|
@@ -4822,17 +5272,17 @@ function TableBase({
|
|
|
4822
5272
|
shouldRenderToolbarPrimaryGroup ? "ml-auto" : ""
|
|
4823
5273
|
),
|
|
4824
5274
|
children: [
|
|
4825
|
-
loading ? /* @__PURE__ */ (0,
|
|
4826
|
-
!loading && error && hasRows ? /* @__PURE__ */ (0,
|
|
4827
|
-
/* @__PURE__ */ (0,
|
|
4828
|
-
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
|
|
4829
5279
|
] }) : null
|
|
4830
5280
|
]
|
|
4831
5281
|
}
|
|
4832
5282
|
) : null
|
|
4833
5283
|
] }) : null,
|
|
4834
5284
|
!hasRows && (!loading || error) ? renderEmptyState() : null,
|
|
4835
|
-
hasRows ? isCollapsed ? /* @__PURE__ */ (0,
|
|
5285
|
+
hasRows ? isCollapsed ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
4836
5286
|
"div",
|
|
4837
5287
|
{
|
|
4838
5288
|
role: "list",
|
|
@@ -4840,7 +5290,7 @@ function TableBase({
|
|
|
4840
5290
|
className: "flex min-w-0 flex-col gap-3.5",
|
|
4841
5291
|
children: items.map((item, rowIndex) => {
|
|
4842
5292
|
const rowActions = renderActions(item, rowIndex);
|
|
4843
|
-
return /* @__PURE__ */ (0,
|
|
5293
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
|
|
4844
5294
|
"article",
|
|
4845
5295
|
{
|
|
4846
5296
|
role: "listitem",
|
|
@@ -4853,7 +5303,7 @@ function TableBase({
|
|
|
4853
5303
|
].join(" "),
|
|
4854
5304
|
onClick: onRowClick ? () => onRowClick(item, rowIndex) : void 0,
|
|
4855
5305
|
children: [
|
|
4856
|
-
/* @__PURE__ */ (0,
|
|
5306
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
4857
5307
|
"div",
|
|
4858
5308
|
{
|
|
4859
5309
|
className: cx(
|
|
@@ -4872,7 +5322,7 @@ function TableBase({
|
|
|
4872
5322
|
1,
|
|
4873
5323
|
Math.min((_b = column.colSpan) != null ? _b : 1, mobileGridColumnCount)
|
|
4874
5324
|
);
|
|
4875
|
-
return /* @__PURE__ */ (0,
|
|
5325
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
|
|
4876
5326
|
"div",
|
|
4877
5327
|
{
|
|
4878
5328
|
className: cx(
|
|
@@ -4880,7 +5330,7 @@ function TableBase({
|
|
|
4880
5330
|
span === 2 ? "col-span-2" : "col-span-1"
|
|
4881
5331
|
),
|
|
4882
5332
|
children: [
|
|
4883
|
-
!column.hideLabel && column.label ? /* @__PURE__ */ (0,
|
|
5333
|
+
!column.hideLabel && column.label ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
4884
5334
|
"span",
|
|
4885
5335
|
{
|
|
4886
5336
|
className: [
|
|
@@ -4892,14 +5342,14 @@ function TableBase({
|
|
|
4892
5342
|
children: column.label
|
|
4893
5343
|
}
|
|
4894
5344
|
) : null,
|
|
4895
|
-
/* @__PURE__ */ (0,
|
|
5345
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
4896
5346
|
"div",
|
|
4897
5347
|
{
|
|
4898
5348
|
className: cx(
|
|
4899
5349
|
"min-w-0 max-w-full",
|
|
4900
5350
|
mobileGridColumnCount === 2 ? "" : "flex-1"
|
|
4901
5351
|
),
|
|
4902
|
-
children: /* @__PURE__ */ (0,
|
|
5352
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
4903
5353
|
"div",
|
|
4904
5354
|
{
|
|
4905
5355
|
className: cx(
|
|
@@ -4907,7 +5357,7 @@ function TableBase({
|
|
|
4907
5357
|
"text-[var(--theme-text)] [overflow-wrap:anywhere]",
|
|
4908
5358
|
getAlignClassName(align)
|
|
4909
5359
|
),
|
|
4910
|
-
children: hasRenderableContent(content) ? content : /* @__PURE__ */ (0,
|
|
5360
|
+
children: hasRenderableContent(content) ? content : /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "text-[var(--theme-textLight)]", children: "-" })
|
|
4911
5361
|
}
|
|
4912
5362
|
)
|
|
4913
5363
|
}
|
|
@@ -4919,15 +5369,15 @@ function TableBase({
|
|
|
4919
5369
|
})
|
|
4920
5370
|
}
|
|
4921
5371
|
),
|
|
4922
|
-
rowActions ? /* @__PURE__ */ (0,
|
|
5372
|
+
rowActions ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "flex justify-end pt-1", children: rowActions }) : null
|
|
4923
5373
|
]
|
|
4924
5374
|
},
|
|
4925
5375
|
getRowId(item, rowIndex, getCustomRowId)
|
|
4926
5376
|
);
|
|
4927
5377
|
})
|
|
4928
5378
|
}
|
|
4929
|
-
) : /* @__PURE__ */ (0,
|
|
4930
|
-
/* @__PURE__ */ (0,
|
|
5379
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_jsx_runtime19.Fragment, { children: [
|
|
5380
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("style", { children: `
|
|
4931
5381
|
#${scrollRegionId} {
|
|
4932
5382
|
scrollbar-width: thin;
|
|
4933
5383
|
scrollbar-color: var(--theme-secondary) transparent;
|
|
@@ -4954,7 +5404,7 @@ function TableBase({
|
|
|
4954
5404
|
background-clip: padding-box;
|
|
4955
5405
|
}
|
|
4956
5406
|
` }),
|
|
4957
|
-
/* @__PURE__ */ (0,
|
|
5407
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
4958
5408
|
"div",
|
|
4959
5409
|
{
|
|
4960
5410
|
id: scrollRegionId,
|
|
@@ -4965,12 +5415,12 @@ function TableBase({
|
|
|
4965
5415
|
"rounded-[20px] border-2 border-solid border-[var(--theme-background)]",
|
|
4966
5416
|
"bg-[var(--theme-surface)] shadow-none"
|
|
4967
5417
|
),
|
|
4968
|
-
children: /* @__PURE__ */ (0,
|
|
4969
|
-
/* @__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: [
|
|
4970
5420
|
desktopColumns.map((column, columnIndex) => {
|
|
4971
5421
|
var _a, _b;
|
|
4972
5422
|
const align = (_a = column.align) != null ? _a : column.type === "actions" ? "right" : "left";
|
|
4973
|
-
return /* @__PURE__ */ (0,
|
|
5423
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
4974
5424
|
"th",
|
|
4975
5425
|
{
|
|
4976
5426
|
colSpan: (_b = column.headerColSpan) != null ? _b : column.colSpan,
|
|
@@ -4990,7 +5440,7 @@ function TableBase({
|
|
|
4990
5440
|
getColumnKey(column, columnIndex)
|
|
4991
5441
|
);
|
|
4992
5442
|
}),
|
|
4993
|
-
actions ? /* @__PURE__ */ (0,
|
|
5443
|
+
actions ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
4994
5444
|
"th",
|
|
4995
5445
|
{
|
|
4996
5446
|
scope: "col",
|
|
@@ -5011,11 +5461,11 @@ function TableBase({
|
|
|
5011
5461
|
}
|
|
5012
5462
|
) : null
|
|
5013
5463
|
] }) }),
|
|
5014
|
-
/* @__PURE__ */ (0,
|
|
5464
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("tbody", { children: items.map((item, rowIndex) => {
|
|
5015
5465
|
const rowActions = renderActions(item, rowIndex);
|
|
5016
5466
|
const isAlternateRow = rowIndex % 2 !== 0;
|
|
5017
5467
|
const stickyRowBackgroundImage = rowIndex % 2 === 0 ? void 0 : "linear-gradient(var(--theme-background), var(--theme-background))";
|
|
5018
|
-
return /* @__PURE__ */ (0,
|
|
5468
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
|
|
5019
5469
|
"tr",
|
|
5020
5470
|
{
|
|
5021
5471
|
className: [
|
|
@@ -5032,7 +5482,7 @@ function TableBase({
|
|
|
5032
5482
|
columnIndex
|
|
5033
5483
|
);
|
|
5034
5484
|
}),
|
|
5035
|
-
actions ? /* @__PURE__ */ (0,
|
|
5485
|
+
actions ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
5036
5486
|
"td",
|
|
5037
5487
|
{
|
|
5038
5488
|
className: cx(
|
|
@@ -5058,9 +5508,9 @@ function TableBase({
|
|
|
5058
5508
|
}
|
|
5059
5509
|
)
|
|
5060
5510
|
] }) : null,
|
|
5061
|
-
hasRows && shouldRenderFooter ? /* @__PURE__ */ (0,
|
|
5062
|
-
shouldShowPaginationControls ? /* @__PURE__ */ (0,
|
|
5063
|
-
/* @__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)(
|
|
5064
5514
|
Button,
|
|
5065
5515
|
{
|
|
5066
5516
|
variant: "secondary",
|
|
@@ -5071,7 +5521,7 @@ function TableBase({
|
|
|
5071
5521
|
children: 1
|
|
5072
5522
|
}
|
|
5073
5523
|
),
|
|
5074
|
-
/* @__PURE__ */ (0,
|
|
5524
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
5075
5525
|
Button,
|
|
5076
5526
|
{
|
|
5077
5527
|
variant: "secondary",
|
|
@@ -5079,10 +5529,10 @@ function TableBase({
|
|
|
5079
5529
|
disabled: !canGoToPreviousPage,
|
|
5080
5530
|
"aria-label": resolvedLabels.previousPageLabel,
|
|
5081
5531
|
style: paginationButtonStyle,
|
|
5082
|
-
children: /* @__PURE__ */ (0,
|
|
5532
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(ChevronIcon, { direction: "left" })
|
|
5083
5533
|
}
|
|
5084
5534
|
),
|
|
5085
|
-
/* @__PURE__ */ (0,
|
|
5535
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
5086
5536
|
Button,
|
|
5087
5537
|
{
|
|
5088
5538
|
variant: "secondary",
|
|
@@ -5092,7 +5542,7 @@ function TableBase({
|
|
|
5092
5542
|
children: normalizedPage
|
|
5093
5543
|
}
|
|
5094
5544
|
),
|
|
5095
|
-
/* @__PURE__ */ (0,
|
|
5545
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
5096
5546
|
Button,
|
|
5097
5547
|
{
|
|
5098
5548
|
variant: "secondary",
|
|
@@ -5100,10 +5550,10 @@ function TableBase({
|
|
|
5100
5550
|
disabled: !canGoToNextPage,
|
|
5101
5551
|
"aria-label": resolvedLabels.nextPageLabel,
|
|
5102
5552
|
style: paginationButtonStyle,
|
|
5103
|
-
children: /* @__PURE__ */ (0,
|
|
5553
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(ChevronIcon, { direction: "right" })
|
|
5104
5554
|
}
|
|
5105
5555
|
),
|
|
5106
|
-
/* @__PURE__ */ (0,
|
|
5556
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
5107
5557
|
Button,
|
|
5108
5558
|
{
|
|
5109
5559
|
variant: "secondary",
|
|
@@ -5115,16 +5565,16 @@ function TableBase({
|
|
|
5115
5565
|
}
|
|
5116
5566
|
)
|
|
5117
5567
|
] }) : null,
|
|
5118
|
-
/* @__PURE__ */ (0,
|
|
5568
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
5119
5569
|
"div",
|
|
5120
5570
|
{
|
|
5121
5571
|
className: cx(
|
|
5122
5572
|
"flex items-center gap-2.5 text-[13px] text-[var(--theme-textLight)]",
|
|
5123
5573
|
shouldShowRowsPerPageControl ? "ml-auto" : ""
|
|
5124
5574
|
),
|
|
5125
|
-
children: shouldShowRowsPerPageControl ? /* @__PURE__ */ (0,
|
|
5126
|
-
resolvedLabels.rowsPerPageLabel ? /* @__PURE__ */ (0,
|
|
5127
|
-
/* @__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)(
|
|
5128
5578
|
Select,
|
|
5129
5579
|
{
|
|
5130
5580
|
value: String(pageSize),
|
|
@@ -5143,7 +5593,7 @@ function TableBase({
|
|
|
5143
5593
|
}
|
|
5144
5594
|
)
|
|
5145
5595
|
] }) : null,
|
|
5146
|
-
/* @__PURE__ */ (0,
|
|
5596
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
|
|
5147
5597
|
Modal,
|
|
5148
5598
|
{
|
|
5149
5599
|
isOpen: isSettingsModalOpen,
|
|
@@ -5160,9 +5610,9 @@ function TableBase({
|
|
|
5160
5610
|
paddingTop: 8
|
|
5161
5611
|
},
|
|
5162
5612
|
children: [
|
|
5163
|
-
/* @__PURE__ */ (0,
|
|
5164
|
-
/* @__PURE__ */ (0,
|
|
5165
|
-
/* @__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)(
|
|
5166
5616
|
"div",
|
|
5167
5617
|
{
|
|
5168
5618
|
className: cx(
|
|
@@ -5170,31 +5620,31 @@ function TableBase({
|
|
|
5170
5620
|
"border-2 border-[var(--theme-background)] bg-[var(--theme-surface)]"
|
|
5171
5621
|
),
|
|
5172
5622
|
children: [
|
|
5173
|
-
/* @__PURE__ */ (0,
|
|
5174
|
-
/* @__PURE__ */ (0,
|
|
5175
|
-
/* @__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 })
|
|
5176
5626
|
] }),
|
|
5177
|
-
/* @__PURE__ */ (0,
|
|
5178
|
-
/* @__PURE__ */ (0,
|
|
5179
|
-
/* @__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 })
|
|
5180
5630
|
] }),
|
|
5181
|
-
/* @__PURE__ */ (0,
|
|
5182
|
-
/* @__PURE__ */ (0,
|
|
5183
|
-
/* @__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 })
|
|
5184
5634
|
] }),
|
|
5185
|
-
/* @__PURE__ */ (0,
|
|
5186
|
-
/* @__PURE__ */ (0,
|
|
5187
|
-
/* @__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 })
|
|
5188
5638
|
] })
|
|
5189
5639
|
]
|
|
5190
5640
|
}
|
|
5191
5641
|
)
|
|
5192
5642
|
] }),
|
|
5193
|
-
/* @__PURE__ */ (0,
|
|
5194
|
-
/* @__PURE__ */ (0,
|
|
5195
|
-
/* @__PURE__ */ (0,
|
|
5196
|
-
/* @__PURE__ */ (0,
|
|
5197
|
-
/* @__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)(
|
|
5198
5648
|
Button,
|
|
5199
5649
|
{
|
|
5200
5650
|
variant: "secondary",
|
|
@@ -5203,7 +5653,7 @@ function TableBase({
|
|
|
5203
5653
|
children: resolvedLabels.downloadCsvLabel
|
|
5204
5654
|
}
|
|
5205
5655
|
),
|
|
5206
|
-
/* @__PURE__ */ (0,
|
|
5656
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
5207
5657
|
Button,
|
|
5208
5658
|
{
|
|
5209
5659
|
variant: "secondary",
|
|
@@ -5212,7 +5662,7 @@ function TableBase({
|
|
|
5212
5662
|
children: resolvedLabels.downloadXlsLabel
|
|
5213
5663
|
}
|
|
5214
5664
|
),
|
|
5215
|
-
/* @__PURE__ */ (0,
|
|
5665
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
5216
5666
|
Button,
|
|
5217
5667
|
{
|
|
5218
5668
|
variant: "secondary",
|
|
@@ -5232,7 +5682,7 @@ function TableBase({
|
|
|
5232
5682
|
}
|
|
5233
5683
|
|
|
5234
5684
|
// src/components/Table.tsx
|
|
5235
|
-
var
|
|
5685
|
+
var import_jsx_runtime20 = require("react/jsx-runtime");
|
|
5236
5686
|
function Table({
|
|
5237
5687
|
items,
|
|
5238
5688
|
desktopColumns,
|
|
@@ -5248,13 +5698,13 @@ function Table({
|
|
|
5248
5698
|
...props
|
|
5249
5699
|
}) {
|
|
5250
5700
|
var _a;
|
|
5251
|
-
const initialPageSizeOptions = (0,
|
|
5701
|
+
const initialPageSizeOptions = (0, import_react15.useMemo)(() => {
|
|
5252
5702
|
return sanitizePageSizeOptions(pageSizeOptions, defaultPageSize);
|
|
5253
5703
|
}, [defaultPageSize, pageSizeOptions]);
|
|
5254
|
-
const [searchValue, setSearchValue] = (0,
|
|
5255
|
-
const [page, setPage] = (0,
|
|
5256
|
-
const [pageSize, setPageSize] = (0,
|
|
5257
|
-
(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)(() => {
|
|
5258
5708
|
var _a2;
|
|
5259
5709
|
if (initialPageSizeOptions.includes(pageSize)) {
|
|
5260
5710
|
return;
|
|
@@ -5262,7 +5712,7 @@ function Table({
|
|
|
5262
5712
|
const nextPageSize = (_a2 = initialPageSizeOptions[0]) != null ? _a2 : DEFAULT_PAGE_SIZE;
|
|
5263
5713
|
setPageSize(nextPageSize);
|
|
5264
5714
|
}, [initialPageSizeOptions, pageSize]);
|
|
5265
|
-
const filteredItems = (0,
|
|
5715
|
+
const filteredItems = (0, import_react15.useMemo)(() => {
|
|
5266
5716
|
if (!searchable) {
|
|
5267
5717
|
return items;
|
|
5268
5718
|
}
|
|
@@ -5280,18 +5730,18 @@ function Table({
|
|
|
5280
5730
|
const totalItems = filteredItems.length;
|
|
5281
5731
|
const totalPages = Math.max(1, Math.ceil(totalItems / pageSize));
|
|
5282
5732
|
const normalizedPage = clampPage(page, totalPages);
|
|
5283
|
-
(0,
|
|
5733
|
+
(0, import_react15.useEffect)(() => {
|
|
5284
5734
|
if (normalizedPage === page) {
|
|
5285
5735
|
return;
|
|
5286
5736
|
}
|
|
5287
5737
|
setPage(normalizedPage);
|
|
5288
5738
|
onPageChange == null ? void 0 : onPageChange(normalizedPage);
|
|
5289
5739
|
}, [normalizedPage, onPageChange, page]);
|
|
5290
|
-
const pageItems = (0,
|
|
5740
|
+
const pageItems = (0, import_react15.useMemo)(() => {
|
|
5291
5741
|
const startIndex = (normalizedPage - 1) * pageSize;
|
|
5292
5742
|
return filteredItems.slice(startIndex, startIndex + pageSize);
|
|
5293
5743
|
}, [filteredItems, normalizedPage, pageSize]);
|
|
5294
|
-
return /* @__PURE__ */ (0,
|
|
5744
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
5295
5745
|
TableBase,
|
|
5296
5746
|
{
|
|
5297
5747
|
...props,
|
|
@@ -5327,8 +5777,8 @@ function Table({
|
|
|
5327
5777
|
}
|
|
5328
5778
|
|
|
5329
5779
|
// src/components/TableAsync.tsx
|
|
5330
|
-
var
|
|
5331
|
-
var
|
|
5780
|
+
var import_react16 = require("react");
|
|
5781
|
+
var import_jsx_runtime21 = require("react/jsx-runtime");
|
|
5332
5782
|
var areUnknownArraysEqual2 = (left, right) => {
|
|
5333
5783
|
if (left.length !== right.length) {
|
|
5334
5784
|
return false;
|
|
@@ -5353,25 +5803,25 @@ function TableAsync({
|
|
|
5353
5803
|
...props
|
|
5354
5804
|
}) {
|
|
5355
5805
|
var _a;
|
|
5356
|
-
const initialPageSizeOptions = (0,
|
|
5806
|
+
const initialPageSizeOptions = (0, import_react16.useMemo)(() => {
|
|
5357
5807
|
return sanitizePageSizeOptions(pageSizeOptions, defaultPageSize);
|
|
5358
5808
|
}, [defaultPageSize, pageSizeOptions]);
|
|
5359
|
-
const [searchValue, setSearchValue] = (0,
|
|
5360
|
-
const [debouncedSearchValue, setDebouncedSearchValue] = (0,
|
|
5361
|
-
const [page, setPage] = (0,
|
|
5362
|
-
const [pageSize, setPageSize] = (0,
|
|
5363
|
-
const [items, setItems] = (0,
|
|
5364
|
-
const [totalPages, setTotalPages] = (0,
|
|
5365
|
-
const [totalItems, setTotalItems] = (0,
|
|
5366
|
-
const [loading, setLoading] = (0,
|
|
5367
|
-
const [error, setError] = (0,
|
|
5368
|
-
const [reloadKey, setReloadKey] = (0,
|
|
5369
|
-
const loadItemsRef = (0,
|
|
5370
|
-
const cacheUniqsRef = (0,
|
|
5371
|
-
const activeControllerRef = (0,
|
|
5372
|
-
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);
|
|
5373
5823
|
loadItemsRef.current = loadItems;
|
|
5374
|
-
(0,
|
|
5824
|
+
(0, import_react16.useEffect)(() => {
|
|
5375
5825
|
var _a2;
|
|
5376
5826
|
if (initialPageSizeOptions.includes(pageSize)) {
|
|
5377
5827
|
return;
|
|
@@ -5379,7 +5829,7 @@ function TableAsync({
|
|
|
5379
5829
|
const nextPageSize = (_a2 = initialPageSizeOptions[0]) != null ? _a2 : DEFAULT_PAGE_SIZE;
|
|
5380
5830
|
setPageSize(nextPageSize);
|
|
5381
5831
|
}, [initialPageSizeOptions, pageSize]);
|
|
5382
|
-
(0,
|
|
5832
|
+
(0, import_react16.useEffect)(() => {
|
|
5383
5833
|
const timeoutId = window.setTimeout(() => {
|
|
5384
5834
|
setDebouncedSearchValue(searchValue);
|
|
5385
5835
|
}, searchDebounceMs);
|
|
@@ -5387,7 +5837,7 @@ function TableAsync({
|
|
|
5387
5837
|
window.clearTimeout(timeoutId);
|
|
5388
5838
|
};
|
|
5389
5839
|
}, [searchDebounceMs, searchValue]);
|
|
5390
|
-
(0,
|
|
5840
|
+
(0, import_react16.useEffect)(() => {
|
|
5391
5841
|
if (areUnknownArraysEqual2(cacheUniqsRef.current, cacheUniqs)) {
|
|
5392
5842
|
return;
|
|
5393
5843
|
}
|
|
@@ -5395,7 +5845,7 @@ function TableAsync({
|
|
|
5395
5845
|
setPage(1);
|
|
5396
5846
|
setReloadKey((currentValue) => currentValue + 1);
|
|
5397
5847
|
}, [cacheUniqs]);
|
|
5398
|
-
(0,
|
|
5848
|
+
(0, import_react16.useEffect)(() => {
|
|
5399
5849
|
var _a2;
|
|
5400
5850
|
requestVersionRef.current += 1;
|
|
5401
5851
|
const currentRequestVersion = requestVersionRef.current;
|
|
@@ -5433,21 +5883,21 @@ function TableAsync({
|
|
|
5433
5883
|
setLoading(false);
|
|
5434
5884
|
});
|
|
5435
5885
|
}, [debouncedSearchValue, keepPreviousData, page, pageSize, reloadKey, searchable, ...cacheUniqs]);
|
|
5436
|
-
(0,
|
|
5886
|
+
(0, import_react16.useEffect)(() => {
|
|
5437
5887
|
return () => {
|
|
5438
5888
|
var _a2;
|
|
5439
5889
|
(_a2 = activeControllerRef.current) == null ? void 0 : _a2.abort();
|
|
5440
5890
|
};
|
|
5441
5891
|
}, []);
|
|
5442
5892
|
const normalizedPage = clampPage(page, totalPages);
|
|
5443
|
-
(0,
|
|
5893
|
+
(0, import_react16.useEffect)(() => {
|
|
5444
5894
|
if (normalizedPage === page) {
|
|
5445
5895
|
return;
|
|
5446
5896
|
}
|
|
5447
5897
|
setPage(normalizedPage);
|
|
5448
5898
|
onPageChange == null ? void 0 : onPageChange(normalizedPage);
|
|
5449
5899
|
}, [normalizedPage, onPageChange, page]);
|
|
5450
|
-
return /* @__PURE__ */ (0,
|
|
5900
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
5451
5901
|
TableBase,
|
|
5452
5902
|
{
|
|
5453
5903
|
...props,
|
|
@@ -5486,7 +5936,7 @@ function TableAsync({
|
|
|
5486
5936
|
}
|
|
5487
5937
|
|
|
5488
5938
|
// src/components/Textarea.tsx
|
|
5489
|
-
var
|
|
5939
|
+
var import_jsx_runtime22 = require("react/jsx-runtime");
|
|
5490
5940
|
function Textarea({
|
|
5491
5941
|
label,
|
|
5492
5942
|
hint,
|
|
@@ -5503,7 +5953,7 @@ function Textarea({
|
|
|
5503
5953
|
const resolvedPlaceholder = placeholder != null ? placeholder : " ";
|
|
5504
5954
|
const placeholderClass = floatingPlaceholder ? "placeholder-transparent" : "placeholder-[var(--theme-textLight)]";
|
|
5505
5955
|
const isPopulated = rest.value !== void 0 && rest.value !== "" && rest.value !== null;
|
|
5506
|
-
const textarea = /* @__PURE__ */ (0,
|
|
5956
|
+
const textarea = /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
5507
5957
|
"textarea",
|
|
5508
5958
|
{
|
|
5509
5959
|
...rest,
|
|
@@ -5528,7 +5978,7 @@ function Textarea({
|
|
|
5528
5978
|
}
|
|
5529
5979
|
}
|
|
5530
5980
|
);
|
|
5531
|
-
return /* @__PURE__ */ (0,
|
|
5981
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
5532
5982
|
ControlFrame,
|
|
5533
5983
|
{
|
|
5534
5984
|
label,
|
|
@@ -5549,15 +5999,18 @@ function Textarea({
|
|
|
5549
5999
|
injectUiKitFonts();
|
|
5550
6000
|
// Annotate the CommonJS export names for ESM import in node:
|
|
5551
6001
|
0 && (module.exports = {
|
|
6002
|
+
Alert,
|
|
5552
6003
|
Button,
|
|
5553
6004
|
Card,
|
|
5554
6005
|
CardSmall,
|
|
5555
6006
|
Checkbox,
|
|
5556
6007
|
ComposableModal,
|
|
5557
6008
|
DatePicker,
|
|
6009
|
+
IconButton,
|
|
5558
6010
|
Input,
|
|
5559
6011
|
Loading,
|
|
5560
6012
|
Modal,
|
|
6013
|
+
ResultState,
|
|
5561
6014
|
Select,
|
|
5562
6015
|
SelectAsync,
|
|
5563
6016
|
Separator,
|