@utk09/finra-ui 0.0.6 → 0.0.7

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.
Files changed (46) hide show
  1. package/dist/Calendar.module-AHlPlLw_.js +362 -0
  2. package/dist/Calendar.module-AHlPlLw_.js.map +1 -0
  3. package/dist/DateInput-D3AUs_l2.js +224 -0
  4. package/dist/DateInput-D3AUs_l2.js.map +1 -0
  5. package/dist/components/Badge/Badge.d.ts +2 -1
  6. package/dist/components/Button/Button.d.ts +2 -1
  7. package/dist/components/Calendar/Calendar.d.ts +6 -0
  8. package/dist/components/IconButton/IconButton.d.ts +2 -1
  9. package/dist/components/Input/Input.d.ts +2 -1
  10. package/dist/components/componentIds.d.ts +1 -0
  11. package/dist/dateFormat-CdClN4CU.js +200 -0
  12. package/dist/dateFormat-CdClN4CU.js.map +1 -0
  13. package/dist/dateInput-4sdYyWq0.js +551 -0
  14. package/dist/dateInput-4sdYyWq0.js.map +1 -0
  15. package/dist/finance.js +382 -478
  16. package/dist/finance.js.map +1 -1
  17. package/dist/hooks/useClickOutside.d.ts +6 -0
  18. package/dist/hooks/useControlledValue.d.ts +11 -0
  19. package/dist/hooks/useDisclosure.d.ts +18 -0
  20. package/dist/index.d.ts +2 -0
  21. package/dist/index.js +889 -1135
  22. package/dist/index.js.map +1 -1
  23. package/dist/logic/calendar.d.ts +27 -0
  24. package/dist/logic/combobox.d.ts +23 -0
  25. package/dist/logic/cx.d.ts +6 -0
  26. package/dist/logic/dateInput.d.ts +13 -0
  27. package/dist/styles.css +2 -1
  28. package/dist/tenor-GS2kfKqC.js +111 -0
  29. package/dist/tenor-GS2kfKqC.js.map +1 -0
  30. package/dist/types/variants.d.ts +6 -0
  31. package/dist/unstyled/Calendar/Calendar.d.ts +2 -8
  32. package/dist/unstyled/ComboBox/ComboBox.d.ts +1 -1
  33. package/dist/unstyled/FormField/FormField.d.ts +2 -1
  34. package/dist/unstyled.js +164 -223
  35. package/dist/unstyled.js.map +1 -1
  36. package/dist/utils.js +3 -98
  37. package/package.json +13 -14
  38. package/dist/Calendar-EtS0i3_l.js +0 -664
  39. package/dist/Calendar-EtS0i3_l.js.map +0 -1
  40. package/dist/Calendar.module-D02DGwqf.js +0 -374
  41. package/dist/Calendar.module-D02DGwqf.js.map +0 -1
  42. package/dist/DateInput-DhLq-Jah.js +0 -230
  43. package/dist/DateInput-DhLq-Jah.js.map +0 -1
  44. package/dist/dateFormat-CGZCSpqw.js +0 -77
  45. package/dist/dateFormat-CGZCSpqw.js.map +0 -1
  46. package/dist/utils.js.map +0 -1
@@ -0,0 +1,362 @@
1
+ import { i as e } from "./dateInput-4sdYyWq0.js";
2
+ import { forwardRef as t, useMemo as n } from "react";
3
+ import { Fragment as r, jsx as i, jsxs as a } from "react/jsx-runtime";
4
+ //#region src/components/componentIds.ts
5
+ var o = "data-finra-ui", s = {
6
+ button: "button",
7
+ iconButton: "icon-button",
8
+ buttonGroup: "button-group",
9
+ input: "input",
10
+ inputField: "input-field",
11
+ textarea: "textarea",
12
+ textareaField: "textarea-field",
13
+ textareaCount: "textarea-count",
14
+ numberInput: "number-input",
15
+ numberInputField: "number-input-field",
16
+ numberInputIncrement: "number-input-increment",
17
+ numberInputDecrement: "number-input-decrement",
18
+ formField: "form-field",
19
+ formFieldLabel: "form-field-label",
20
+ formFieldHelper: "form-field-helper",
21
+ formFieldError: "form-field-error",
22
+ checkbox: "checkbox",
23
+ checkboxIndicator: "checkbox-indicator",
24
+ checkboxLabel: "checkbox-label",
25
+ switch: "switch",
26
+ switchTrack: "switch-track",
27
+ switchThumb: "switch-thumb",
28
+ switchLabel: "switch-label",
29
+ radioButton: "radio-button",
30
+ radioButtonIndicator: "radio-button-indicator",
31
+ radioButtonLabel: "radio-button-label",
32
+ slider: "slider",
33
+ sliderHeader: "slider-header",
34
+ pillInput: "pill-input",
35
+ fileDropZone: "file-drop-zone",
36
+ fileDropZoneInput: "file-drop-zone-input",
37
+ badge: "badge",
38
+ comboBox: "combo-box",
39
+ divider: "divider",
40
+ calendar: "calendar",
41
+ dateInput: "date-input",
42
+ dateInputField: "date-input-field",
43
+ calendarIcon: "calendar-icon",
44
+ tenorInput: "tenor-input",
45
+ dateTenorInput: "date-tenor-input"
46
+ };
47
+ //#endregion
48
+ //#region ../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs
49
+ function c(e) {
50
+ var t, n, r = "";
51
+ if (typeof e == "string" || typeof e == "number") r += e;
52
+ else if (typeof e == "object") if (Array.isArray(e)) {
53
+ var i = e.length;
54
+ for (t = 0; t < i; t++) e[t] && (n = c(e[t])) && (r && (r += " "), r += n);
55
+ } else for (n in e) e[n] && (r && (r += " "), r += n);
56
+ return r;
57
+ }
58
+ function l() {
59
+ for (var e, t, n = 0, r = "", i = arguments.length; n < i; n++) (e = arguments[n]) && (t = c(e)) && (r && (r += " "), r += t);
60
+ return r;
61
+ }
62
+ //#endregion
63
+ //#region ../../node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.mjs
64
+ var u = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, d = l, f = (e, t) => (n) => {
65
+ if (t?.variants == null) return d(e, n?.class, n?.className);
66
+ let { variants: r, defaultVariants: i } = t, a = Object.keys(r).map((e) => {
67
+ let t = n?.[e], a = i?.[e];
68
+ if (t === null) return null;
69
+ let o = u(t) || u(a);
70
+ return r[e][o];
71
+ }), o = n && Object.entries(n).reduce((e, t) => {
72
+ let [n, r] = t;
73
+ return r === void 0 || (e[n] = r), e;
74
+ }, {});
75
+ return d(e, a, t?.compoundVariants?.reduce((e, t) => {
76
+ let { class: n, className: r, ...a } = t;
77
+ return Object.entries(a).every((e) => {
78
+ let [t, n] = e;
79
+ return Array.isArray(n) ? n.includes({
80
+ ...i,
81
+ ...o
82
+ }[t]) : {
83
+ ...i,
84
+ ...o
85
+ }[t] === n;
86
+ }) ? [
87
+ ...e,
88
+ n,
89
+ r
90
+ ] : e;
91
+ }, []), n?.class, n?.className);
92
+ };
93
+ //#endregion
94
+ //#region src/assets/icons/CalendarIcon.tsx
95
+ function p(e) {
96
+ return /* @__PURE__ */ a("svg", {
97
+ viewBox: "0 0 24 24",
98
+ fill: "none",
99
+ stroke: "currentColor",
100
+ strokeWidth: "1.5",
101
+ strokeLinecap: "round",
102
+ strokeLinejoin: "round",
103
+ ...e,
104
+ children: [
105
+ /* @__PURE__ */ i("rect", {
106
+ x: "3",
107
+ y: "4",
108
+ width: "18",
109
+ height: "18",
110
+ rx: "2",
111
+ ry: "2"
112
+ }),
113
+ /* @__PURE__ */ i("line", {
114
+ x1: "16",
115
+ y1: "2",
116
+ x2: "16",
117
+ y2: "6"
118
+ }),
119
+ /* @__PURE__ */ i("line", {
120
+ x1: "8",
121
+ y1: "2",
122
+ x2: "8",
123
+ y2: "6"
124
+ }),
125
+ /* @__PURE__ */ i("line", {
126
+ x1: "3",
127
+ y1: "10",
128
+ x2: "21",
129
+ y2: "10"
130
+ })
131
+ ]
132
+ });
133
+ }
134
+ //#endregion
135
+ //#region src/assets/icons/CheckIcon.tsx
136
+ function m(e) {
137
+ return /* @__PURE__ */ i("svg", {
138
+ viewBox: "0 0 12 12",
139
+ fill: "none",
140
+ stroke: "currentColor",
141
+ strokeWidth: "2",
142
+ strokeLinecap: "round",
143
+ strokeLinejoin: "round",
144
+ ...e,
145
+ children: /* @__PURE__ */ i("path", { d: "M2.5 6l2.5 2.5 4.5-5" })
146
+ });
147
+ }
148
+ //#endregion
149
+ //#region src/assets/icons/ChevronDownIcon.tsx
150
+ function h(e) {
151
+ return /* @__PURE__ */ i("svg", {
152
+ viewBox: "0 0 12 12",
153
+ fill: "none",
154
+ stroke: "currentColor",
155
+ strokeWidth: "1.5",
156
+ strokeLinecap: "round",
157
+ strokeLinejoin: "round",
158
+ ...e,
159
+ children: /* @__PURE__ */ i("path", { d: "M3 4.5l3 3 3-3" })
160
+ });
161
+ }
162
+ //#endregion
163
+ //#region src/assets/icons/ChevronLeftIcon.tsx
164
+ function g(e) {
165
+ return /* @__PURE__ */ i("svg", {
166
+ viewBox: "0 0 12 12",
167
+ fill: "none",
168
+ stroke: "currentColor",
169
+ strokeWidth: "1.5",
170
+ strokeLinecap: "round",
171
+ strokeLinejoin: "round",
172
+ ...e,
173
+ children: /* @__PURE__ */ i("path", { d: "M7.5 3l-3 3 3 3" })
174
+ });
175
+ }
176
+ //#endregion
177
+ //#region src/assets/icons/ChevronRightIcon.tsx
178
+ function _(e) {
179
+ return /* @__PURE__ */ i("svg", {
180
+ viewBox: "0 0 12 12",
181
+ fill: "none",
182
+ stroke: "currentColor",
183
+ strokeWidth: "1.5",
184
+ strokeLinecap: "round",
185
+ strokeLinejoin: "round",
186
+ ...e,
187
+ children: /* @__PURE__ */ i("path", { d: "M4.5 3l3 3-3 3" })
188
+ });
189
+ }
190
+ //#endregion
191
+ //#region src/assets/icons/CloseSmallIcon.tsx
192
+ function v(e) {
193
+ return /* @__PURE__ */ i("svg", {
194
+ viewBox: "0 0 12 12",
195
+ fill: "none",
196
+ stroke: "currentColor",
197
+ strokeWidth: "2",
198
+ strokeLinecap: "round",
199
+ ...e,
200
+ children: /* @__PURE__ */ i("path", { d: "M3 3l6 6M9 3l-6 6" })
201
+ });
202
+ }
203
+ //#endregion
204
+ //#region src/assets/icons/SpinnerIcon.tsx
205
+ function y(e) {
206
+ return /* @__PURE__ */ a("svg", {
207
+ viewBox: "0 0 24 24",
208
+ fill: "none",
209
+ stroke: "currentColor",
210
+ strokeWidth: "2",
211
+ ...e,
212
+ children: [/* @__PURE__ */ i("circle", {
213
+ cx: "12",
214
+ cy: "12",
215
+ r: "10",
216
+ opacity: "0.25"
217
+ }), /* @__PURE__ */ i("path", { d: "M12 2a10 10 0 0 1 10 10" })]
218
+ });
219
+ }
220
+ var b = {
221
+ comboBox: "_comboBox_5udbh_1",
222
+ fullWidth: "_fullWidth_5udbh_6",
223
+ wrapper: "_wrapper_5udbh_10",
224
+ disabled: "_disabled_5udbh_34",
225
+ open: "_open_5udbh_39",
226
+ variantPrimary: "_variantPrimary_5udbh_43",
227
+ variantSecondary: "_variantSecondary_5udbh_46",
228
+ variantTertiary: "_variantTertiary_5udbh_50",
229
+ statusError: "_statusError_5udbh_58",
230
+ statusWarning: "_statusWarning_5udbh_61",
231
+ statusSuccess: "_statusSuccess_5udbh_64",
232
+ input: "_input_5udbh_68",
233
+ inputHidden: "_inputHidden_5udbh_87",
234
+ singleValue: "_singleValue_5udbh_94",
235
+ multiValueContainer: "_multiValueContainer_5udbh_103",
236
+ pill: "_pill_5udbh_112",
237
+ pillText: "_pillText_5udbh_127",
238
+ pillRemove: "_pillRemove_5udbh_134",
239
+ indicator: "_indicator_5udbh_154",
240
+ indicatorOpen: "_indicatorOpen_5udbh_171",
241
+ listbox: "_listbox_5udbh_175",
242
+ options: "_options_5udbh_192",
243
+ option: "_option_5udbh_192",
244
+ optionHighlighted: "_optionHighlighted_5udbh_218",
245
+ optionSelected: "_optionSelected_5udbh_221",
246
+ optionDisabled: "_optionDisabled_5udbh_224",
247
+ optionCreate: "_optionCreate_5udbh_228",
248
+ optionLabel: "_optionLabel_5udbh_233",
249
+ checkIcon: "_checkIcon_5udbh_241",
250
+ group: "_group_5udbh_248",
251
+ groupLabel: "_groupLabel_5udbh_252",
252
+ header: "_header_5udbh_264",
253
+ footer: "_footer_5udbh_265",
254
+ loading: "_loading_5udbh_279",
255
+ spinner: "_spinner_5udbh_290",
256
+ spin: "_spin_5udbh_290",
257
+ empty: "_empty_5udbh_309"
258
+ }, x = f(b.wrapper, {
259
+ variants: { variant: {
260
+ primary: b.variantPrimary,
261
+ secondary: b.variantSecondary,
262
+ tertiary: b.variantTertiary
263
+ } },
264
+ defaultVariants: { variant: "primary" }
265
+ }), S = {
266
+ error: b.statusError,
267
+ warning: b.statusWarning,
268
+ success: b.statusSuccess
269
+ };
270
+ function C() {
271
+ return /* @__PURE__ */ i(m, {
272
+ className: b.checkIcon,
273
+ "aria-hidden": "true"
274
+ });
275
+ }
276
+ function w(e) {
277
+ return /* @__PURE__ */ i("span", {
278
+ className: l(b.indicator, e && b.indicatorOpen),
279
+ "aria-hidden": "true",
280
+ children: /* @__PURE__ */ i(h, {})
281
+ });
282
+ }
283
+ function T() {
284
+ return /* @__PURE__ */ i(v, {});
285
+ }
286
+ function E() {
287
+ return /* @__PURE__ */ a(r, { children: [/* @__PURE__ */ i(y, {
288
+ className: b.spinner,
289
+ "aria-hidden": "true"
290
+ }), "Loading..."] });
291
+ }
292
+ var D = { [o]: s.comboBox };
293
+ function O({ className: t, variant: r, validationStatus: a, fullWidth: o, disabled: s = !1, open: c, ...u }, d) {
294
+ return /* @__PURE__ */ i(e, {
295
+ ref: d,
296
+ disabled: s,
297
+ open: c,
298
+ classNames: n(() => ({
299
+ root: l(b.comboBox, o && b.fullWidth, t),
300
+ wrapper: l(x({ variant: r }), s && b.disabled, a && S[a], c && b.open),
301
+ multiValueContainer: b.multiValueContainer,
302
+ pill: b.pill,
303
+ pillText: b.pillText,
304
+ pillRemove: b.pillRemove,
305
+ singleValue: b.singleValue,
306
+ input: b.input,
307
+ inputHidden: b.inputHidden,
308
+ indicator: b.indicator,
309
+ indicatorOpen: b.indicatorOpen,
310
+ listbox: b.listbox,
311
+ header: b.header,
312
+ footer: b.footer,
313
+ options: b.options,
314
+ option: b.option,
315
+ optionHighlighted: b.optionHighlighted,
316
+ optionSelected: b.optionSelected,
317
+ optionDisabled: b.optionDisabled,
318
+ optionCreate: b.optionCreate,
319
+ optionLabel: b.optionLabel,
320
+ checkIcon: b.checkIcon,
321
+ group: b.group,
322
+ groupLabel: b.groupLabel,
323
+ loading: b.loading,
324
+ spinner: b.spinner,
325
+ empty: b.empty
326
+ }), [
327
+ t,
328
+ r,
329
+ a,
330
+ o,
331
+ s,
332
+ c
333
+ ]),
334
+ dataAttributes: D,
335
+ renderCheckIcon: C,
336
+ renderIndicator: w,
337
+ renderPillRemoveIcon: T,
338
+ renderLoading: E,
339
+ ...u
340
+ });
341
+ }
342
+ var k = t(O);
343
+ k.displayName = "ComboBox";
344
+ var A = {
345
+ root: "_root_1et9i_1",
346
+ header: "_header_1et9i_9",
347
+ navButton: "_navButton_1et9i_17",
348
+ title: "_title_1et9i_49",
349
+ weekday: "_weekday_1et9i_59",
350
+ grid: "_grid_1et9i_72",
351
+ row: "_row_1et9i_78",
352
+ day: "_day_1et9i_84",
353
+ dayToday: "_dayToday_1et9i_114",
354
+ daySelected: "_daySelected_1et9i_118",
355
+ dayDisabled: "_dayDisabled_1et9i_128",
356
+ dayOutside: "_dayOutside_1et9i_135",
357
+ footer: "_footer_1et9i_140"
358
+ };
359
+ //#endregion
360
+ export { g as a, p as c, o as d, s as f, _ as i, f as l, k as n, h as o, v as r, m as s, A as t, l as u };
361
+
362
+ //# sourceMappingURL=Calendar.module-AHlPlLw_.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Calendar.module-AHlPlLw_.js","names":[],"sources":["../src/components/componentIds.ts","../../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs","../../../node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.mjs","../src/assets/icons/CalendarIcon.tsx","../src/assets/icons/CheckIcon.tsx","../src/assets/icons/ChevronDownIcon.tsx","../src/assets/icons/ChevronLeftIcon.tsx","../src/assets/icons/ChevronRightIcon.tsx","../src/assets/icons/CloseSmallIcon.tsx","../src/assets/icons/SpinnerIcon.tsx","../src/components/ComboBox/ComboBox.module.scss","../src/components/ComboBox/ComboBox.tsx","../src/components/Calendar/Calendar.module.scss"],"sourcesContent":["export const FINRA_UI_ATTR = \"data-finra-ui\" as const;\n\nexport const componentIds = {\n // Button family\n button: \"button\",\n iconButton: \"icon-button\",\n buttonGroup: \"button-group\",\n\n // Input\n input: \"input\",\n inputField: \"input-field\",\n\n // Textarea\n textarea: \"textarea\",\n textareaField: \"textarea-field\",\n textareaCount: \"textarea-count\",\n\n // NumberInput\n numberInput: \"number-input\",\n numberInputField: \"number-input-field\",\n numberInputIncrement: \"number-input-increment\",\n numberInputDecrement: \"number-input-decrement\",\n\n // FormField\n formField: \"form-field\",\n formFieldLabel: \"form-field-label\",\n formFieldHelper: \"form-field-helper\",\n formFieldError: \"form-field-error\",\n\n // Checkbox\n checkbox: \"checkbox\",\n checkboxIndicator: \"checkbox-indicator\",\n checkboxLabel: \"checkbox-label\",\n\n // Switch\n switch: \"switch\",\n switchTrack: \"switch-track\",\n switchThumb: \"switch-thumb\",\n switchLabel: \"switch-label\",\n\n // RadioButton\n radioButton: \"radio-button\",\n radioButtonIndicator: \"radio-button-indicator\",\n radioButtonLabel: \"radio-button-label\",\n\n // Slider\n slider: \"slider\",\n sliderHeader: \"slider-header\",\n\n // PillInput\n pillInput: \"pill-input\",\n\n // FileDropZone\n fileDropZone: \"file-drop-zone\",\n fileDropZoneInput: \"file-drop-zone-input\",\n\n // Badge\n badge: \"badge\",\n\n // ComboBox\n comboBox: \"combo-box\",\n\n // Divider\n divider: \"divider\",\n\n // Calendar\n calendar: \"calendar\",\n\n // DateInput\n dateInput: \"date-input\",\n dateInputField: \"date-input-field\",\n calendarIcon: \"calendar-icon\",\n\n // TenorInput\n tenorInput: \"tenor-input\",\n\n // DateTenorInput\n dateTenorInput: \"date-tenor-input\",\n} as const;\n\nexport type ComponentId = (typeof componentIds)[keyof typeof componentIds];\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","/**\n * Copyright 2022 Joe Bell. All rights reserved.\n *\n * This file is licensed to you under the Apache License, Version 2.0\n * (the \"License\"); you may not use this file except in compliance with the\n * License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR REPRESENTATIONS OF ANY KIND, either express or implied. See the\n * License for the specific language governing permissions and limitations under\n * the License.\n */ import { clsx } from \"clsx\";\nconst falsyToString = (value)=>typeof value === \"boolean\" ? `${value}` : value === 0 ? \"0\" : value;\nexport const cx = clsx;\nexport const cva = (base, config)=>(props)=>{\n var _config_compoundVariants;\n if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n const { variants, defaultVariants } = config;\n const getVariantClassNames = Object.keys(variants).map((variant)=>{\n const variantProp = props === null || props === void 0 ? void 0 : props[variant];\n const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];\n if (variantProp === null) return null;\n const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);\n return variants[variant][variantKey];\n });\n const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param)=>{\n let [key, value] = param;\n if (value === undefined) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (_config_compoundVariants = config.compoundVariants) === null || _config_compoundVariants === void 0 ? void 0 : _config_compoundVariants.reduce((acc, param)=>{\n let { class: cvClass, className: cvClassName, ...compoundVariantOptions } = param;\n return Object.entries(compoundVariantOptions).every((param)=>{\n let [key, value] = param;\n return Array.isArray(value) ? value.includes({\n ...defaultVariants,\n ...propsWithoutUndefined\n }[key]) : ({\n ...defaultVariants,\n ...propsWithoutUndefined\n })[key] === value;\n }) ? [\n ...acc,\n cvClass,\n cvClassName\n ] : acc;\n }, []);\n return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n };\n\n","import type { SVGProps } from \"react\";\n\nexport function CalendarIcon(props: SVGProps<SVGSVGElement>) {\n return (\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n {...props}>\n <rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\" />\n <line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\" />\n <line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\" />\n <line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\" />\n </svg>\n );\n}\n","import type { SVGProps } from \"react\";\n\nexport function CheckIcon(props: SVGProps<SVGSVGElement>) {\n return (\n <svg\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n {...props}>\n <path d=\"M2.5 6l2.5 2.5 4.5-5\" />\n </svg>\n );\n}\n","import type { SVGProps } from \"react\";\n\nexport function ChevronDownIcon(props: SVGProps<SVGSVGElement>) {\n return (\n <svg\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n {...props}>\n <path d=\"M3 4.5l3 3 3-3\" />\n </svg>\n );\n}\n","import type { SVGProps } from \"react\";\n\nexport function ChevronLeftIcon(props: SVGProps<SVGSVGElement>) {\n return (\n <svg\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n {...props}>\n <path d=\"M7.5 3l-3 3 3 3\" />\n </svg>\n );\n}\n","import type { SVGProps } from \"react\";\n\nexport function ChevronRightIcon(props: SVGProps<SVGSVGElement>) {\n return (\n <svg\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n {...props}>\n <path d=\"M4.5 3l3 3-3 3\" />\n </svg>\n );\n}\n","import type { SVGProps } from \"react\";\n\nexport function CloseSmallIcon(props: SVGProps<SVGSVGElement>) {\n return (\n <svg\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n {...props}>\n <path d=\"M3 3l6 6M9 3l-6 6\" />\n </svg>\n );\n}\n","import type { SVGProps } from \"react\";\n\nexport function SpinnerIcon(props: SVGProps<SVGSVGElement>) {\n return (\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" {...props}>\n <circle cx=\"12\" cy=\"12\" r=\"10\" opacity=\"0.25\" />\n <path d=\"M12 2a10 10 0 0 1 10 10\" />\n </svg>\n );\n}\n","// Root container\n.comboBox {\n position: relative;\n display: inline-flex;\n flex-direction: column;\n\n &.fullWidth {\n inline-size: 100%;\n }\n}\n\n// Trigger wrapper\n.wrapper {\n --_input-border-color: var(--finra-color-border);\n\n display: inline-flex;\n align-items: center;\n gap: var(--finra-density-gap);\n min-block-size: var(--finra-density-size-base);\n padding-inline: var(--finra-density-input-padding-x);\n font-family: var(--finra-font-sans);\n font-size: var(--finra-density-input-font-size);\n line-height: var(--finra-leading-normal);\n background-color: var(--finra-color-background);\n border: var(--finra-border-thin) solid var(--_input-border-color);\n border-radius: var(--finra-radius-md);\n transition: border-color var(--finra-duration-fast) ease-in-out;\n cursor: var(--finra-cursor-text);\n\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n\n &:focus-within {\n --_input-border-color: var(--finra-color-primary-500);\n }\n\n &.disabled {\n opacity: var(--finra-opacity-disabled);\n cursor: var(--finra-cursor-disabled);\n background-color: var(--finra-color-neutral-50);\n }\n\n &.open {\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n }\n\n // Variants\n &.variantPrimary {\n border-width: var(--finra-border-thin);\n }\n\n &.variantSecondary {\n border-width: var(--finra-border-thin);\n background-color: var(--finra-color-neutral-50);\n }\n\n &.variantTertiary {\n border-color: var(--finra-color-transparent);\n border-block-end-color: var(--_input-border-color);\n border-radius: 0;\n\n &:focus-within {\n border-block-end-color: var(--finra-color-primary-500);\n }\n }\n\n // Validation\n &.statusError {\n --_input-border-color: var(--finra-color-error);\n }\n\n &.statusWarning {\n --_input-border-color: var(--finra-color-warning);\n }\n\n &.statusSuccess {\n --_input-border-color: var(--finra-color-success);\n }\n}\n\n// Input field\n.input {\n flex: 1;\n min-inline-size: 4rem;\n border: none;\n outline: none;\n background: transparent;\n font: inherit;\n color: var(--finra-color-foreground);\n padding: 0;\n\n // Override global :focus-visible - wrapper handles focus indication\n &:focus-visible {\n outline: none;\n }\n\n &::placeholder {\n color: var(--finra-color-neutral-400);\n }\n\n &:disabled {\n cursor: var(--finra-cursor-disabled);\n }\n\n &.inputHidden {\n position: absolute;\n opacity: 0;\n inline-size: 0;\n pointer-events: none;\n }\n}\n\n// Single value display\n.singleValue {\n flex: 1;\n min-inline-size: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--finra-color-foreground);\n}\n\n// Multi-value container\n.multiValueContainer {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: calc(var(--finra-density-gap) * 0.5);\n flex: 1;\n padding-block: calc(var(--finra-density-gap) * 0.25);\n}\n\n// Pills (multi select)\n.pill {\n display: inline-flex;\n align-items: center;\n gap: 0.125rem;\n block-size: var(--finra-density-size-compact);\n padding-inline: var(--finra-density-gap);\n background-color: var(--finra-color-neutral-100);\n border: var(--finra-border-thin) solid var(--finra-color-neutral-200);\n border-radius: var(--finra-radius-full);\n font-size: var(--finra-text-xs);\n color: var(--finra-color-neutral-900);\n user-select: none;\n flex-shrink: 0;\n}\n\n.pillText {\n max-inline-size: 10rem;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.pillRemove {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding: 0;\n border: none;\n background: transparent;\n color: var(--finra-color-neutral-400);\n cursor: var(--finra-cursor-pointer);\n border-radius: var(--finra-radius-full);\n flex-shrink: 0;\n\n &:hover {\n color: var(--finra-color-foreground);\n }\n\n > svg {\n inline-size: 0.75rem;\n block-size: 0.75rem;\n }\n}\n\n// Chevron indicator\n.indicator {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n color: var(--finra-color-neutral-400);\n flex-shrink: 0;\n transition: transform var(--finra-duration-fast) ease-in-out;\n\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n\n > svg {\n inline-size: var(--finra-density-icon-size);\n block-size: var(--finra-density-icon-size);\n }\n\n &.indicatorOpen {\n transform: rotate(180deg);\n }\n}\n\n// Dropdown listbox\n.listbox {\n position: absolute;\n z-index: 50;\n inset-inline-start: 0;\n inset-inline-end: 0;\n inset-block-start: 100%;\n display: flex;\n flex-direction: column;\n background-color: var(--finra-color-background);\n border: var(--finra-border-thin) solid var(--finra-color-border);\n border-block-start: none;\n border-end-start-radius: var(--finra-radius-md);\n border-end-end-radius: var(--finra-radius-md);\n box-shadow: var(--finra-shadow-lg);\n overflow: hidden;\n}\n\n// Options scroll container\n.options {\n max-block-size: 16rem;\n overflow-y: auto;\n scrollbar-gutter: stable;\n}\n\n// Option item\n.option {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--finra-density-gap);\n padding-inline: var(--finra-density-input-padding-x);\n padding-block: calc(var(--finra-density-gap) * 0.75);\n font-family: var(--finra-font-sans);\n font-size: var(--finra-density-input-font-size);\n line-height: var(--finra-leading-normal);\n color: var(--finra-color-foreground);\n cursor: var(--finra-cursor-pointer);\n user-select: none;\n transition: background-color var(--finra-duration-fast) ease-in-out;\n\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n\n &.optionHighlighted {\n background-color: var(--finra-color-primary-50);\n }\n\n &.optionSelected {\n font-weight: var(--finra-font-medium);\n }\n\n &.optionDisabled {\n opacity: var(--finra-opacity-disabled);\n cursor: var(--finra-cursor-disabled);\n }\n\n &.optionCreate {\n color: var(--finra-color-primary-600);\n font-style: italic;\n }\n}\n\n.optionLabel {\n flex: 1;\n min-inline-size: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.checkIcon {\n inline-size: var(--finra-density-icon-size);\n block-size: var(--finra-density-icon-size);\n flex-shrink: 0;\n color: var(--finra-color-primary-600);\n}\n\n// Groups\n.group {\n &:not(:first-child) {\n border-block-start: var(--finra-border-thin) solid var(--finra-color-neutral-100);\n }\n}\n\n.groupLabel {\n padding-inline: var(--finra-density-input-padding-x);\n padding-block: calc(var(--finra-density-gap) * 0.5);\n font-family: var(--finra-font-sans);\n font-size: var(--finra-text-xs);\n font-weight: var(--finra-font-semibold);\n color: var(--finra-color-neutral-500);\n text-transform: uppercase;\n letter-spacing: 0.05em;\n user-select: none;\n}\n\n// Header / Footer\n.header,\n.footer {\n padding-inline: var(--finra-density-input-padding-x);\n padding-block: calc(var(--finra-density-gap) * 0.75);\n font-family: var(--finra-font-sans);\n font-size: var(--finra-text-xs);\n color: var(--finra-color-neutral-500);\n border-block-end: var(--finra-border-thin) solid var(--finra-color-neutral-100);\n}\n\n.footer {\n border-block-start: var(--finra-border-thin) solid var(--finra-color-neutral-100);\n border-block-end: none;\n}\n\n// Loading\n.loading {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--finra-density-gap);\n padding-block: var(--finra-density-gap);\n font-family: var(--finra-font-sans);\n font-size: var(--finra-density-input-font-size);\n color: var(--finra-color-neutral-400);\n}\n\n.spinner {\n inline-size: 1rem;\n block-size: 1rem;\n animation: spin 1s linear infinite;\n\n @media (prefers-reduced-motion: reduce) {\n animation: none;\n }\n}\n\n@keyframes spin {\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n}\n\n// Empty\n.empty {\n padding-inline: var(--finra-density-input-padding-x);\n padding-block: var(--finra-density-gap);\n font-family: var(--finra-font-sans);\n font-size: var(--finra-density-input-font-size);\n color: var(--finra-color-neutral-400);\n text-align: center;\n}\n","import { cva, type VariantProps } from \"class-variance-authority\";\nimport { clsx } from \"clsx\";\nimport {\n type ForwardedRef,\n forwardRef,\n type HTMLAttributes,\n type ReactNode,\n type Ref,\n useMemo,\n} from \"react\";\n\nimport { CheckIcon, ChevronDownIcon, CloseSmallIcon, SpinnerIcon } from \"../../assets/icons\";\nimport {\n ComboBoxBase,\n type ComboBoxClassNames,\n type ComboBoxOption,\n type ComboBoxRenderOptionState,\n} from \"../../unstyled/ComboBox/ComboBox\";\nimport { componentIds, FINRA_UI_ATTR } from \"../componentIds\";\nimport type { ValidationStatus } from \"../Input/Input\";\nimport styles from \"./ComboBox.module.scss\";\n\n// Re-export types from unstyled\nexport type {\n ComboBoxGroup,\n ComboBoxOption,\n ComboBoxRenderOptionState,\n} from \"../../unstyled/ComboBox/ComboBox\";\n\n// Variants\n\nconst wrapperVariants = cva(styles.wrapper, {\n variants: {\n variant: {\n primary: styles.variantPrimary,\n secondary: styles.variantSecondary,\n tertiary: styles.variantTertiary,\n },\n },\n defaultVariants: {\n variant: \"primary\",\n },\n});\n\nconst validationClasses: Record<string, string> = {\n error: styles.statusError,\n warning: styles.statusWarning,\n success: styles.statusSuccess,\n};\n\n// Props\n\nexport interface ComboBoxProps<T = string>\n extends\n Omit<HTMLAttributes<HTMLDivElement>, \"onChange\" | \"defaultValue\">,\n VariantProps<typeof wrapperVariants> {\n options: ComboBoxOption<T>[];\n value?: T | T[] | null;\n onChange?: (value: T | T[] | null) => void;\n multiple?: boolean;\n\n inputValue?: string;\n onInputChange?: (value: string) => void;\n filterFn?: (option: ComboBoxOption<T>, inputValue: string) => boolean;\n\n loading?: boolean;\n onLoadOptions?: (inputValue: string) => void;\n\n creatable?: boolean;\n onCreateOption?: (inputValue: string) => void;\n formatCreateLabel?: (inputValue: string) => string;\n\n header?: ReactNode;\n footer?: ReactNode;\n\n placeholder?: string;\n disabled?: boolean;\n validationStatus?: ValidationStatus;\n fullWidth?: boolean;\n noOptionsMessage?: string | ReactNode;\n\n renderOption?: (option: ComboBoxOption<T>, state: ComboBoxRenderOptionState) => ReactNode;\n renderValue?: (option: ComboBoxOption<T>) => ReactNode;\n\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n}\n\n// Module-level stable render callbacks\n\nfunction styledRenderCheckIcon(): ReactNode {\n return <CheckIcon className={styles.checkIcon} aria-hidden=\"true\" />;\n}\n\nfunction styledRenderIndicator(isCurrentOpen: boolean): ReactNode {\n return (\n <span\n className={clsx(styles.indicator, isCurrentOpen && styles.indicatorOpen)}\n aria-hidden=\"true\">\n <ChevronDownIcon />\n </span>\n );\n}\n\nfunction styledRenderPillRemoveIcon(): ReactNode {\n return <CloseSmallIcon />;\n}\n\nfunction styledRenderLoading(): ReactNode {\n return (\n <>\n <SpinnerIcon className={styles.spinner} aria-hidden=\"true\" />\n Loading...\n </>\n );\n}\n\n// Static data attribute for the root element\n\nconst comboBoxDataAttributes = { [FINRA_UI_ATTR]: componentIds.comboBox } as const;\n\n// Component\n\nfunction ComboBoxRender<T = string>(\n {\n className,\n variant,\n validationStatus,\n fullWidth,\n disabled = false,\n open,\n ...props\n }: ComboBoxProps<T>,\n forwardedRef: ForwardedRef<HTMLInputElement>,\n): React.ReactElement {\n // Build the classNames object that maps unstyled slots to SCSS module classes.\n // The wrapper class is dynamic (depends on variant, validation, disabled, open),\n // so we compute it inside a useMemo keyed on those values.\n const classNames = useMemo<ComboBoxClassNames>(\n () => ({\n root: clsx(styles.comboBox, fullWidth && styles.fullWidth, className),\n wrapper: clsx(\n wrapperVariants({ variant }),\n disabled && styles.disabled,\n validationStatus && validationClasses[validationStatus],\n open && styles.open,\n ),\n multiValueContainer: styles.multiValueContainer,\n pill: styles.pill,\n pillText: styles.pillText,\n pillRemove: styles.pillRemove,\n singleValue: styles.singleValue,\n input: styles.input,\n inputHidden: styles.inputHidden,\n indicator: styles.indicator,\n indicatorOpen: styles.indicatorOpen,\n listbox: styles.listbox,\n header: styles.header,\n footer: styles.footer,\n options: styles.options,\n option: styles.option,\n optionHighlighted: styles.optionHighlighted,\n optionSelected: styles.optionSelected,\n optionDisabled: styles.optionDisabled,\n optionCreate: styles.optionCreate,\n optionLabel: styles.optionLabel,\n checkIcon: styles.checkIcon,\n group: styles.group,\n groupLabel: styles.groupLabel,\n loading: styles.loading,\n spinner: styles.spinner,\n empty: styles.empty,\n }),\n [className, variant, validationStatus, fullWidth, disabled, open],\n );\n\n return (\n <ComboBoxBase<T>\n ref={forwardedRef}\n disabled={disabled}\n open={open}\n classNames={classNames}\n dataAttributes={comboBoxDataAttributes}\n renderCheckIcon={styledRenderCheckIcon}\n renderIndicator={styledRenderIndicator}\n renderPillRemoveIcon={styledRenderPillRemoveIcon}\n renderLoading={styledRenderLoading}\n {...props}\n />\n );\n}\n\nexport const ComboBox = forwardRef(ComboBoxRender) as <T = string>(\n props: ComboBoxProps<T> & { ref?: Ref<HTMLInputElement> },\n) => React.ReactElement | null;\n\n(ComboBox as { displayName?: string }).displayName = \"ComboBox\";\n","// Calendar\n\n.root {\n display: flex;\n flex-direction: column;\n gap: calc(var(--finra-density-gap) * 0.5);\n padding: var(--finra-density-gap);\n user-select: none;\n}\n\n// Header\n\n.header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--finra-density-gap);\n padding-block-end: calc(var(--finra-density-gap) * 0.25);\n}\n\n.navButton {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n block-size: 1.5rem;\n inline-size: 1.5rem;\n padding: 0;\n border: none;\n border-radius: var(--finra-radius-sm);\n background: transparent;\n color: var(--finra-color-neutral-500);\n cursor: var(--finra-cursor-pointer);\n transition: background-color var(--finra-duration-fast) ease-in-out;\n\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n\n &:hover {\n background-color: var(--finra-color-neutral-100);\n color: var(--finra-color-foreground);\n }\n\n &:focus-visible {\n outline: 2px solid var(--finra-color-primary-500);\n outline-offset: -2px;\n }\n\n > svg {\n inline-size: 0.75rem;\n block-size: 0.75rem;\n }\n}\n\n.title {\n flex: 1;\n text-align: center;\n font-family: var(--finra-font-sans);\n font-size: var(--finra-text-sm);\n font-weight: var(--finra-font-semibold);\n color: var(--finra-color-foreground);\n white-space: nowrap;\n}\n\n// Weekday row\n\n.weekday {\n display: flex;\n align-items: center;\n justify-content: center;\n block-size: 1.75rem;\n font-family: var(--finra-font-sans);\n font-size: var(--finra-text-xs);\n font-weight: var(--finra-font-medium);\n color: var(--finra-color-neutral-500);\n text-decoration: none;\n cursor: default;\n}\n\n// Day grid\n\n.grid {\n display: flex;\n flex-direction: column;\n gap: 1px;\n}\n\n.row {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n gap: 1px;\n}\n\n.day {\n display: flex;\n align-items: center;\n justify-content: center;\n block-size: 2rem;\n inline-size: 2rem;\n margin: auto;\n padding: 0;\n border: none;\n border-radius: var(--finra-radius-sm);\n background: transparent;\n font-family: var(--finra-font-sans);\n font-size: var(--finra-text-sm);\n font-variant-numeric: tabular-nums;\n color: var(--finra-color-foreground);\n cursor: var(--finra-cursor-pointer);\n transition: background-color var(--finra-duration-fast) ease-in-out;\n\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n\n &:hover:not(:disabled) {\n background-color: var(--finra-color-neutral-100);\n }\n\n &:focus-visible {\n outline: 2px solid var(--finra-color-primary-500);\n outline-offset: -2px;\n }\n\n // States\n\n &.dayToday {\n font-weight: var(--finra-font-bold);\n color: var(--finra-color-primary-600);\n }\n\n &.daySelected {\n background-color: var(--finra-color-primary-500);\n color: var(--finra-color-neutral-0);\n\n &:hover:not(:disabled) {\n background-color: var(--finra-color-primary-600);\n }\n\n &.dayToday {\n color: var(--finra-color-neutral-0);\n }\n }\n\n &.dayDisabled {\n color: var(--finra-color-neutral-200);\n cursor: var(--finra-cursor-disabled);\n\n &:hover {\n background: transparent;\n }\n }\n\n &.dayOutside {\n color: var(--finra-color-neutral-200);\n cursor: var(--finra-cursor-disabled);\n }\n}\n\n// Footer\n\n.footer {\n display: flex;\n align-items: center;\n justify-content: center;\n padding-block-start: calc(var(--finra-density-gap) * 0.5);\n border-block-start: var(--finra-border-thin) solid var(--finra-color-neutral-100);\n}\n"],"x_google_ignoreList":[1,2],"mappings":"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"}
@@ -0,0 +1,224 @@
1
+ import { a as e, g as t, i as n, n as r, o as i, r as a, t as o } from "./dateFormat-CdClN4CU.js";
2
+ import { n as s, r as c, s as l, t as u } from "./dateInput-4sdYyWq0.js";
3
+ import { cloneElement as d, forwardRef as f, isValidElement as p, useCallback as m, useEffect as h, useRef as g, useState as _ } from "react";
4
+ import { jsx as v, jsxs as y } from "react/jsx-runtime";
5
+ //#region src/unstyled/Slot.tsx
6
+ function b(e, t) {
7
+ let n = {
8
+ ...e,
9
+ ...t
10
+ };
11
+ for (let r of Object.keys(e)) {
12
+ if (r === "children" || r === "ref") continue;
13
+ let i = e[r], a = t[r];
14
+ typeof i == "function" && typeof a == "function" && (n[r] = (...e) => {
15
+ a(...e), i(...e);
16
+ }), r === "className" && typeof i == "string" && typeof a == "string" && (n[r] = `${i} ${a}`.trim()), r === "style" && typeof i == "object" && typeof a == "object" && (n[r] = {
17
+ ...i,
18
+ ...a
19
+ });
20
+ }
21
+ return n;
22
+ }
23
+ var x = f(({ children: e, ...n }, r) => {
24
+ if (!p(e)) return null;
25
+ let i = e.props, a = e.ref;
26
+ return d(e, {
27
+ ...b(n, i),
28
+ ref: t(r, a)
29
+ });
30
+ });
31
+ x.displayName = "Slot";
32
+ //#endregion
33
+ //#region src/unstyled/Button/Button.tsx
34
+ var S = f(({ asChild: e = !1, ...t }, n) => /* @__PURE__ */ v(e ? x : "button", {
35
+ ref: n,
36
+ ...t
37
+ }));
38
+ S.displayName = "ButtonBase";
39
+ //#endregion
40
+ //#region src/unstyled/IconButton/IconButton.tsx
41
+ var C = f(({ asChild: e = !1, icon: t, children: n, ...r }, i) => /* @__PURE__ */ y(e ? x : "button", {
42
+ ref: i,
43
+ ...r,
44
+ children: [t, n]
45
+ }));
46
+ C.displayName = "IconButtonBase";
47
+ //#endregion
48
+ //#region src/unstyled/Checkbox/Checkbox.tsx
49
+ var w = f(({ indeterminate: e, ...n }, r) => /* @__PURE__ */ v("input", {
50
+ ref: t(r, m((t) => {
51
+ t && (t.indeterminate = e ?? !1);
52
+ }, [e])),
53
+ type: "checkbox",
54
+ ...n
55
+ }));
56
+ w.displayName = "CheckboxBase";
57
+ //#endregion
58
+ //#region src/unstyled/Switch/Switch.tsx
59
+ var T = f((e, t) => /* @__PURE__ */ v("input", {
60
+ ref: t,
61
+ type: "checkbox",
62
+ role: "switch",
63
+ ...e
64
+ }));
65
+ T.displayName = "SwitchBase";
66
+ //#endregion
67
+ //#region src/unstyled/RadioButton/RadioButton.tsx
68
+ var E = f((e, t) => /* @__PURE__ */ v("input", {
69
+ ref: t,
70
+ type: "radio",
71
+ ...e
72
+ }));
73
+ E.displayName = "RadioButtonBase";
74
+ //#endregion
75
+ //#region src/unstyled/Slider/Slider.tsx
76
+ var D = f((e, t) => /* @__PURE__ */ v("input", {
77
+ ref: t,
78
+ type: "range",
79
+ ...e
80
+ }));
81
+ D.displayName = "SliderBase";
82
+ //#endregion
83
+ //#region src/unstyled/DateInput/DateInput.tsx
84
+ var O = f(({ format: d = "YYYY-MM-DD", value: f, defaultValue: p, onChange: b, onInputChange: x, min: S, max: C, disabledDates: w, placeholder: T, disabled: E, readOnly: D, onValidation: O, classNames: k, dataAttributes: A, renderCalendarIcon: j, renderCalendarNavPrev: M, renderCalendarNavNext: N, weekStartsOn: P, id: F, "aria-describedby": I, "aria-invalid": L, "aria-label": R, ...z }, B) => {
85
+ let V = g(null), H = g(null), U = n(d), W = a(d), G = s(W, U), [K, q] = _(!1), [J, Y] = _(m(() => f == null ? p == null ? "" : o(p, d) : o(f, d), [
86
+ f,
87
+ p,
88
+ d
89
+ ])), X = f !== void 0;
90
+ h(() => {
91
+ X && Y(f === null ? "" : f ? o(f, d) : "");
92
+ }, [
93
+ f,
94
+ d,
95
+ X
96
+ ]), l(H, m(() => q(!1), []), K);
97
+ let Z = m(() => {
98
+ E || D || q((e) => !e);
99
+ }, [E, D]), Q = m((e) => {
100
+ if (E || D) return;
101
+ let t = u(e.target.value.split("").filter((e) => /\d/.test(e) || e === U).join(""), W, U).slice(0, G);
102
+ Y(t), x?.(t);
103
+ }, [
104
+ E,
105
+ D,
106
+ U,
107
+ W,
108
+ G,
109
+ x
110
+ ]), $ = m(() => {
111
+ if (J.trim() === "") {
112
+ b?.(null), O?.({
113
+ valid: !0,
114
+ date: null
115
+ });
116
+ return;
117
+ }
118
+ let t = e(J, d);
119
+ if (!t.valid || !t.date) {
120
+ O?.(t);
121
+ return;
122
+ }
123
+ let n = i(t.date, {
124
+ min: S,
125
+ max: C,
126
+ disabledDates: w
127
+ });
128
+ O?.(n), n.valid && b?.(n.date);
129
+ }, [
130
+ J,
131
+ d,
132
+ b,
133
+ O,
134
+ S,
135
+ C,
136
+ w
137
+ ]), ee = m((e) => {
138
+ if ([
139
+ "Backspace",
140
+ "Delete",
141
+ "Tab",
142
+ "ArrowLeft",
143
+ "ArrowRight",
144
+ "ArrowUp",
145
+ "ArrowDown",
146
+ "Home",
147
+ "End",
148
+ "Escape"
149
+ ].includes(e.key)) {
150
+ e.key === "Escape" && K && q(!1);
151
+ return;
152
+ }
153
+ e.ctrlKey || e.metaKey || /^\d$/.test(e.key) || e.key !== U && e.preventDefault();
154
+ }, [U, K]), te = m((e) => {
155
+ let t = o(e, d);
156
+ Y(t), x?.(t), b?.(e), O?.({
157
+ valid: !0,
158
+ date: e
159
+ }), q(!1), V.current?.focus();
160
+ }, [
161
+ d,
162
+ b,
163
+ x,
164
+ O
165
+ ]), ne = X ? f : (() => {
166
+ if (!J) return null;
167
+ let t = e(J, d);
168
+ return t.valid ? t.date : null;
169
+ })();
170
+ return /* @__PURE__ */ y("div", {
171
+ ref: H,
172
+ ...A,
173
+ className: [k?.root, K && k?.calendarOpen].filter(Boolean).join(" ") || void 0,
174
+ ...z,
175
+ children: [
176
+ /* @__PURE__ */ v("input", {
177
+ ref: t(B, V),
178
+ className: k?.input,
179
+ type: "text",
180
+ inputMode: "numeric",
181
+ id: F,
182
+ value: J,
183
+ placeholder: T ?? r(d),
184
+ disabled: E,
185
+ readOnly: D,
186
+ maxLength: G,
187
+ "aria-describedby": I,
188
+ "aria-invalid": L,
189
+ "aria-label": R,
190
+ onChange: Q,
191
+ onBlur: $,
192
+ onKeyDown: ee
193
+ }),
194
+ j ? /* @__PURE__ */ v("button", {
195
+ type: "button",
196
+ className: k?.adornment,
197
+ onClick: Z,
198
+ tabIndex: -1,
199
+ "aria-label": "Toggle calendar",
200
+ disabled: E,
201
+ children: j()
202
+ }) : null,
203
+ K ? /* @__PURE__ */ v("div", {
204
+ className: k?.popup,
205
+ children: /* @__PURE__ */ v(c, {
206
+ value: ne,
207
+ onSelect: te,
208
+ min: S,
209
+ max: C,
210
+ disabledDates: w,
211
+ weekStartsOn: P,
212
+ classNames: k?.calendar,
213
+ renderNavPrev: M,
214
+ renderNavNext: N
215
+ })
216
+ }) : null
217
+ ]
218
+ });
219
+ });
220
+ O.displayName = "DateInputBase";
221
+ //#endregion
222
+ export { w as a, x as c, T as i, D as n, C as o, E as r, S as s, O as t };
223
+
224
+ //# sourceMappingURL=DateInput-D3AUs_l2.js.map