@page-speed/forms 0.5.6 → 0.5.8

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 (53) hide show
  1. package/dist/FormContext-089h0j0Q.d.ts +153 -0
  2. package/dist/FormContext-iHzBALZa.d.cts +153 -0
  3. package/dist/{chunk-A7R6GEMA.js → chunk-455PI4LV.js} +84 -3
  4. package/dist/chunk-455PI4LV.js.map +1 -0
  5. package/dist/{chunk-QZ4PK62A.js → chunk-4ROWNTY6.js} +335 -417
  6. package/dist/chunk-4ROWNTY6.js.map +1 -0
  7. package/dist/{chunk-WVSLOSNU.cjs → chunk-ED4UK63G.cjs} +440 -523
  8. package/dist/chunk-ED4UK63G.cjs.map +1 -0
  9. package/dist/chunk-IXHDJ7E5.js +263 -0
  10. package/dist/chunk-IXHDJ7E5.js.map +1 -0
  11. package/dist/{chunk-Q7VR374Y.js → chunk-MJYEXJ3U.js} +3 -3
  12. package/dist/{chunk-Q7VR374Y.js.map → chunk-MJYEXJ3U.js.map} +1 -1
  13. package/dist/{chunk-KPHMVGTU.cjs → chunk-MUBEMXI7.cjs} +6 -6
  14. package/dist/{chunk-KPHMVGTU.cjs.map → chunk-MUBEMXI7.cjs.map} +1 -1
  15. package/dist/chunk-Q7WXLZN5.cjs +287 -0
  16. package/dist/chunk-Q7WXLZN5.cjs.map +1 -0
  17. package/dist/{chunk-QQSBW6N3.cjs → chunk-QRI5TMES.cjs} +85 -2
  18. package/dist/chunk-QRI5TMES.cjs.map +1 -0
  19. package/dist/core.cjs +13 -9
  20. package/dist/core.d.cts +66 -141
  21. package/dist/core.d.ts +66 -141
  22. package/dist/core.js +3 -3
  23. package/dist/index.cjs +14 -14
  24. package/dist/index.d.cts +2 -2
  25. package/dist/index.d.ts +2 -2
  26. package/dist/index.js +3 -3
  27. package/dist/inputs.cjs +16 -16
  28. package/dist/inputs.d.cts +1 -1
  29. package/dist/inputs.d.ts +1 -1
  30. package/dist/inputs.js +2 -2
  31. package/dist/integration.cjs +17 -17
  32. package/dist/integration.d.cts +1 -1
  33. package/dist/integration.d.ts +1 -1
  34. package/dist/integration.js +3 -3
  35. package/dist/{types-CnOCn7b3.d.ts → types-BemGfSPA.d.cts} +27 -1
  36. package/dist/{types-CnOCn7b3.d.cts → types-BemGfSPA.d.ts} +27 -1
  37. package/dist/validation-rules.d.cts +1 -1
  38. package/dist/validation-rules.d.ts +1 -1
  39. package/dist/validation-utils.d.cts +1 -1
  40. package/dist/validation-utils.d.ts +1 -1
  41. package/dist/validation-valibot.d.cts +1 -1
  42. package/dist/validation-valibot.d.ts +1 -1
  43. package/dist/validation.d.cts +1 -1
  44. package/dist/validation.d.ts +1 -1
  45. package/package.json +1 -1
  46. package/dist/chunk-A7R6GEMA.js.map +0 -1
  47. package/dist/chunk-N2HOVRRN.js +0 -150
  48. package/dist/chunk-N2HOVRRN.js.map +0 -1
  49. package/dist/chunk-O4ZLR7AN.cjs +0 -173
  50. package/dist/chunk-O4ZLR7AN.cjs.map +0 -1
  51. package/dist/chunk-QQSBW6N3.cjs.map +0 -1
  52. package/dist/chunk-QZ4PK62A.js.map +0 -1
  53. package/dist/chunk-WVSLOSNU.cjs.map +0 -1
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var chunkQQSBW6N3_cjs = require('./chunk-QQSBW6N3.cjs');
4
- var React21 = require('react');
3
+ var chunkQRI5TMES_cjs = require('./chunk-QRI5TMES.cjs');
4
+ var React19 = require('react');
5
5
  var radixUi = require('radix-ui');
6
6
  var cmdk = require('cmdk');
7
7
  var reactDirection = require('@radix-ui/react-direction');
@@ -26,95 +26,14 @@ function _interopNamespace(e) {
26
26
  return Object.freeze(n);
27
27
  }
28
28
 
29
- var React21__namespace = /*#__PURE__*/_interopNamespace(React21);
29
+ var React19__namespace = /*#__PURE__*/_interopNamespace(React19);
30
30
 
31
- var Input = React21__namespace.forwardRef(
32
- ({ className, type, ...props }, ref) => {
33
- return /* @__PURE__ */ React21__namespace.createElement(
34
- "input",
35
- {
36
- ref,
37
- type,
38
- "data-slot": "input",
39
- className: chunkQQSBW6N3_cjs.cn(
40
- // Core structure - no hardcoded colors, uses CSS variables
41
- "flex h-9 w-full min-w-0 rounded-md border border-input",
42
- "bg-transparent px-3 py-1 text-base shadow-sm",
43
- "transition-colors outline-none md:text-sm",
44
- // Focus state - uses ring-ring CSS variable (adapts to theme)
45
- "focus-visible:ring-1 focus-visible:ring-ring",
46
- // Error state - uses destructive CSS variables (adapts to theme)
47
- "aria-invalid:border-destructive aria-invalid:ring-1 aria-invalid:ring-destructive",
48
- // Disabled state - no color hardcoding
49
- "disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50",
50
- // File input specific - inherits text color from parent
51
- "file:inline-flex file:h-7 file:border-0 file:bg-transparent",
52
- "file:text-sm file:font-medium",
53
- // Autofill reset - prevents browser from overriding our dynamic colors
54
- chunkQQSBW6N3_cjs.INPUT_AUTOFILL_RESET_CLASSES,
55
- className
56
- ),
57
- ...props
58
- }
59
- );
60
- }
61
- );
62
- Input.displayName = "Input";
63
-
64
- // src/inputs/TextInput.tsx
65
- function TextInput({
66
- name,
67
- value,
68
- onChange,
69
- onBlur,
70
- placeholder,
71
- disabled = false,
72
- required = false,
73
- error = false,
74
- className = "",
75
- type = "text",
76
- id = "text",
77
- ...props
78
- }) {
79
- const handleChange = (e) => {
80
- onChange(e.target.value);
81
- };
82
- const handleBlur = () => {
83
- onBlur?.();
84
- };
85
- const hasValue = String(value ?? "").trim().length > 0;
86
- return /* @__PURE__ */ React21__namespace.createElement(
87
- Input,
88
- {
89
- type,
90
- id,
91
- name,
92
- value: value ?? "",
93
- onChange: handleChange,
94
- onBlur: handleBlur,
95
- placeholder,
96
- disabled,
97
- required,
98
- className: chunkQQSBW6N3_cjs.cn(
99
- // Valid value indicator - ring-2 when has value and no error
100
- !error && hasValue && "ring-2 ring-ring",
101
- // Error state - handled by Input component via aria-invalid
102
- className
103
- ),
104
- "aria-invalid": error || props["aria-invalid"],
105
- "aria-describedby": props["aria-describedby"],
106
- "aria-required": required || props["aria-required"],
107
- ...props
108
- }
109
- );
110
- }
111
- TextInput.displayName = "TextInput";
112
31
  function Textarea({ className, ...props }) {
113
- return /* @__PURE__ */ React21__namespace.createElement(
32
+ return /* @__PURE__ */ React19__namespace.createElement(
114
33
  "textarea",
115
34
  {
116
35
  "data-slot": "textarea",
117
- className: chunkQQSBW6N3_cjs.cn(
36
+ className: chunkQRI5TMES_cjs.cn(
118
37
  // Core structure - uses CSS variables only
119
38
  "flex field-sizing-content min-h-16 w-full rounded-md border border-input",
120
39
  "bg-transparent px-3 py-2 text-base shadow-xs",
@@ -157,7 +76,7 @@ function TextArea({
157
76
  onBlur?.();
158
77
  };
159
78
  const hasValue = String(value ?? "").trim().length > 0;
160
- return /* @__PURE__ */ React21__namespace.createElement(
79
+ return /* @__PURE__ */ React19__namespace.createElement(
161
80
  Textarea,
162
81
  {
163
82
  name,
@@ -167,7 +86,7 @@ function TextArea({
167
86
  placeholder,
168
87
  disabled,
169
88
  required,
170
- className: chunkQQSBW6N3_cjs.cn(
89
+ className: chunkQRI5TMES_cjs.cn(
171
90
  // Valid value indicator - ring-2 when has value and no error
172
91
  !error && hasValue && "ring-2 ring-ring",
173
92
  // Error state - handled by Textarea component via aria-invalid
@@ -190,11 +109,11 @@ function Checkbox({
190
109
  className,
191
110
  ...props
192
111
  }) {
193
- return /* @__PURE__ */ React21__namespace.createElement(
112
+ return /* @__PURE__ */ React19__namespace.createElement(
194
113
  radixUi.Checkbox.Root,
195
114
  {
196
115
  "data-slot": "checkbox",
197
- className: chunkQQSBW6N3_cjs.cn(
116
+ className: chunkQRI5TMES_cjs.cn(
198
117
  // Core structure - uses CSS variables
199
118
  "peer size-4 shrink-0 rounded-[4px] border border-input bg-transparent shadow-xs",
200
119
  "transition-shadow outline-none",
@@ -211,13 +130,13 @@ function Checkbox({
211
130
  ),
212
131
  ...props
213
132
  },
214
- /* @__PURE__ */ React21__namespace.createElement(
133
+ /* @__PURE__ */ React19__namespace.createElement(
215
134
  radixUi.Checkbox.Indicator,
216
135
  {
217
136
  "data-slot": "checkbox-indicator",
218
137
  className: "grid place-content-center text-current transition-none"
219
138
  },
220
- /* @__PURE__ */ React21__namespace.createElement(
139
+ /* @__PURE__ */ React19__namespace.createElement(
221
140
  "svg",
222
141
  {
223
142
  className: "size-3.5",
@@ -228,7 +147,7 @@ function Checkbox({
228
147
  strokeLinecap: "round",
229
148
  strokeLinejoin: "round"
230
149
  },
231
- /* @__PURE__ */ React21__namespace.createElement("polyline", { points: "20 6 9 17 4 12" })
150
+ /* @__PURE__ */ React19__namespace.createElement("polyline", { points: "20 6 9 17 4 12" })
232
151
  )
233
152
  )
234
153
  );
@@ -257,7 +176,7 @@ function Checkbox2({
257
176
  onBlur?.();
258
177
  };
259
178
  const showChoiceCard = useChoiceCard || !!description;
260
- const checkbox = /* @__PURE__ */ React21__namespace.createElement(React21__namespace.Fragment, null, /* @__PURE__ */ React21__namespace.createElement(
179
+ const checkbox = /* @__PURE__ */ React19__namespace.createElement(React19__namespace.Fragment, null, /* @__PURE__ */ React19__namespace.createElement(
261
180
  "input",
262
181
  {
263
182
  type: "checkbox",
@@ -281,7 +200,7 @@ function Checkbox2({
281
200
  border: 0
282
201
  }
283
202
  }
284
- ), /* @__PURE__ */ React21__namespace.createElement(
203
+ ), /* @__PURE__ */ React19__namespace.createElement(
285
204
  Checkbox,
286
205
  {
287
206
  id: checkboxId,
@@ -296,13 +215,13 @@ function Checkbox2({
296
215
  }
297
216
  ));
298
217
  if (!label) {
299
- return /* @__PURE__ */ React21__namespace.createElement(chunkQQSBW6N3_cjs.Field, { className }, checkbox);
218
+ return /* @__PURE__ */ React19__namespace.createElement("div", { className }, checkbox);
300
219
  }
301
- return /* @__PURE__ */ React21__namespace.createElement(chunkQQSBW6N3_cjs.Field, { className: "gap-0", invalid: Boolean(error) }, /* @__PURE__ */ React21__namespace.createElement(
302
- chunkQQSBW6N3_cjs.FieldLabel,
220
+ return /* @__PURE__ */ React19__namespace.createElement("div", { className: "space-y-0", "data-invalid": error || void 0 }, /* @__PURE__ */ React19__namespace.createElement(
221
+ chunkQRI5TMES_cjs.FieldLabel,
303
222
  {
304
223
  htmlFor: checkboxId,
305
- className: chunkQQSBW6N3_cjs.cn(
224
+ className: chunkQRI5TMES_cjs.cn(
306
225
  "flex gap-3 p-3 duration-200 select-auto font-normal leading-normal",
307
226
  showChoiceCard && "border rounded-lg hover:ring-2 hover:ring-ring/50",
308
227
  showChoiceCard && value && "ring-2 ring-ring",
@@ -311,17 +230,17 @@ function Checkbox2({
311
230
  className
312
231
  )
313
232
  },
314
- /* @__PURE__ */ React21__namespace.createElement(
233
+ /* @__PURE__ */ React19__namespace.createElement(
315
234
  "div",
316
235
  {
317
- className: chunkQQSBW6N3_cjs.cn(
236
+ className: chunkQRI5TMES_cjs.cn(
318
237
  "flex w-full gap-3",
319
238
  showChoiceCard ? "items-start" : "items-center"
320
239
  )
321
240
  },
322
241
  checkbox,
323
- /* @__PURE__ */ React21__namespace.createElement(chunkQQSBW6N3_cjs.Field, { className: "flex-1 gap-1" }, /* @__PURE__ */ React21__namespace.createElement("span", { className: "text-sm font-medium leading-none" }, label), description && /* @__PURE__ */ React21__namespace.createElement(
324
- chunkQQSBW6N3_cjs.FieldDescription,
242
+ /* @__PURE__ */ React19__namespace.createElement("div", { className: "flex-1 space-y-1" }, /* @__PURE__ */ React19__namespace.createElement("span", { className: "text-sm font-medium leading-none" }, label), description && /* @__PURE__ */ React19__namespace.createElement(
243
+ chunkQRI5TMES_cjs.FieldDescription,
325
244
  {
326
245
  id: `${checkboxId}-description`,
327
246
  className: "leading-snug"
@@ -360,11 +279,11 @@ function CheckboxGroup({
360
279
  ).length;
361
280
  const allSelected = selectedEnabledCount === enabledOptions.length;
362
281
  const someSelected = selectedEnabledCount > 0 && !allSelected;
363
- const useChoiceCard = React21__namespace.useMemo(() => {
282
+ const useChoiceCard = React19__namespace.useMemo(() => {
364
283
  if (!options) return false;
365
284
  return options?.some((opt) => opt.description);
366
285
  }, [options]);
367
- const countableValue = React21__namespace.useMemo(() => {
286
+ const countableValue = React19__namespace.useMemo(() => {
368
287
  if (value?.length > 0) {
369
288
  return value.length;
370
289
  }
@@ -389,8 +308,8 @@ function CheckboxGroup({
389
308
  onBlur?.();
390
309
  };
391
310
  const maxReached = Boolean(maxSelections && countableValue >= maxSelections);
392
- const containerClass = React21__namespace.useMemo(() => {
393
- return chunkQQSBW6N3_cjs.cn(
311
+ const containerClass = React19__namespace.useMemo(() => {
312
+ return chunkQRI5TMES_cjs.cn(
394
313
  "w-full gap-3 grid grid-cols-1 border-0 m-0 p-0 min-w-0",
395
314
  (layout === "grid" || layout === "inline") && "md:grid-cols-2",
396
315
  className
@@ -398,7 +317,7 @@ function CheckboxGroup({
398
317
  }, [layout, className]);
399
318
  const groupDescriptionId = description ? `${name}-description` : void 0;
400
319
  const groupAriaDescribedBy = [props["aria-describedby"], groupDescriptionId].filter(Boolean).join(" ") || void 0;
401
- return /* @__PURE__ */ React21__namespace.createElement(
320
+ return /* @__PURE__ */ React19__namespace.createElement(
402
321
  "fieldset",
403
322
  {
404
323
  className: containerClass,
@@ -408,8 +327,8 @@ function CheckboxGroup({
408
327
  "aria-required": required || props["aria-required"],
409
328
  "aria-label": typeof label === "string" ? label : props["aria-label"]
410
329
  },
411
- /* @__PURE__ */ React21__namespace.createElement(
412
- chunkQQSBW6N3_cjs.LabelGroup,
330
+ /* @__PURE__ */ React19__namespace.createElement(
331
+ chunkQRI5TMES_cjs.LabelGroup,
413
332
  {
414
333
  labelHtmlFor: name,
415
334
  required,
@@ -419,7 +338,7 @@ function CheckboxGroup({
419
338
  primary: label
420
339
  }
421
340
  ),
422
- showSelectAll && enabledOptions.length > 0 && /* @__PURE__ */ React21__namespace.createElement(
341
+ showSelectAll && enabledOptions.length > 0 && /* @__PURE__ */ React19__namespace.createElement(
423
342
  Checkbox2,
424
343
  {
425
344
  name: `${name}-select-all`,
@@ -437,7 +356,7 @@ function CheckboxGroup({
437
356
  options.map((option) => {
438
357
  const isChecked = value.includes(option.value);
439
358
  const isDisabled = disabled || option.disabled || maxReached && !isChecked;
440
- return /* @__PURE__ */ React21__namespace.createElement(
359
+ return /* @__PURE__ */ React19__namespace.createElement(
441
360
  Checkbox2,
442
361
  {
443
362
  key: option.value,
@@ -455,17 +374,17 @@ function CheckboxGroup({
455
374
  }
456
375
  );
457
376
  }),
458
- (minSelections || maxSelections) && /* @__PURE__ */ React21__namespace.createElement(
459
- chunkQQSBW6N3_cjs.FieldDescription,
377
+ (minSelections || maxSelections) && /* @__PURE__ */ React19__namespace.createElement(
378
+ chunkQRI5TMES_cjs.FieldDescription,
460
379
  {
461
- className: chunkQQSBW6N3_cjs.cn(
380
+ className: chunkQRI5TMES_cjs.cn(
462
381
  "p-2 rounded-lg border font-semibold mt-2 leading-snug",
463
382
  minSelections && countableValue < minSelections ? "border-destructive bg-destructive/80 text-destructive-foreground" : "border-border bg-card text-card-foreground"
464
383
  ),
465
384
  "aria-live": "polite"
466
385
  },
467
- minSelections && countableValue < minSelections && /* @__PURE__ */ React21__namespace.createElement("span", null, "Select at least ", minSelections, " option", minSelections !== 1 ? "s" : ""),
468
- maxSelections && /* @__PURE__ */ React21__namespace.createElement("span", null, countableValue, "/", maxSelections, " selected")
386
+ minSelections && countableValue < minSelections && /* @__PURE__ */ React19__namespace.createElement("span", null, "Select at least ", minSelections, " option", minSelections !== 1 ? "s" : ""),
387
+ maxSelections && /* @__PURE__ */ React19__namespace.createElement("span", null, countableValue, "/", maxSelections, " selected")
469
388
  )
470
389
  );
471
390
  }
@@ -474,11 +393,11 @@ function RadioGroup({
474
393
  className,
475
394
  ...props
476
395
  }) {
477
- return /* @__PURE__ */ React21__namespace.createElement(
396
+ return /* @__PURE__ */ React19__namespace.createElement(
478
397
  radixUi.RadioGroup.Root,
479
398
  {
480
399
  "data-slot": "radio-group",
481
- className: chunkQQSBW6N3_cjs.cn("grid gap-3", className),
400
+ className: chunkQRI5TMES_cjs.cn("grid gap-3", className),
482
401
  ...props
483
402
  }
484
403
  );
@@ -487,11 +406,11 @@ function RadioGroupItem({
487
406
  className,
488
407
  ...props
489
408
  }) {
490
- return /* @__PURE__ */ React21__namespace.createElement(
409
+ return /* @__PURE__ */ React19__namespace.createElement(
491
410
  radixUi.RadioGroup.Item,
492
411
  {
493
412
  "data-slot": "radio-group-item",
494
- className: chunkQQSBW6N3_cjs.cn(
413
+ className: chunkQRI5TMES_cjs.cn(
495
414
  // Core structure - uses CSS variables
496
415
  "aspect-square size-4 shrink-0 rounded-full border border-input bg-transparent shadow-xs",
497
416
  "text-primary transition-[color,box-shadow] outline-none",
@@ -505,19 +424,19 @@ function RadioGroupItem({
505
424
  ),
506
425
  ...props
507
426
  },
508
- /* @__PURE__ */ React21__namespace.createElement(
427
+ /* @__PURE__ */ React19__namespace.createElement(
509
428
  radixUi.RadioGroup.Indicator,
510
429
  {
511
430
  "data-slot": "radio-group-indicator",
512
431
  className: "relative flex items-center justify-center"
513
432
  },
514
- /* @__PURE__ */ React21__namespace.createElement(
433
+ /* @__PURE__ */ React19__namespace.createElement(
515
434
  "svg",
516
435
  {
517
436
  className: "fill-primary absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2",
518
437
  viewBox: "0 0 24 24"
519
438
  },
520
- /* @__PURE__ */ React21__namespace.createElement("circle", { cx: "12", cy: "12", r: "12" })
439
+ /* @__PURE__ */ React19__namespace.createElement("circle", { cx: "12", cy: "12", r: "12" })
521
440
  )
522
441
  )
523
442
  );
@@ -545,18 +464,18 @@ function Radio({
545
464
  const handleBlur = () => {
546
465
  onBlur?.();
547
466
  };
548
- const useChoiceCard = React21__namespace.useMemo(() => {
467
+ const useChoiceCard = React19__namespace.useMemo(() => {
549
468
  return options.some((option) => option.description);
550
469
  }, [options]);
551
470
  const groupDescriptionId = description ? `${name}-description` : void 0;
552
- return /* @__PURE__ */ React21__namespace.createElement(chunkQQSBW6N3_cjs.Field, { className: chunkQQSBW6N3_cjs.cn("w-full", className), invalid: Boolean(error) }, (label || description) && /* @__PURE__ */ React21__namespace.createElement(chunkQQSBW6N3_cjs.Field, { className: "mb-3 gap-1" }, label && /* @__PURE__ */ React21__namespace.createElement("div", { className: "text-base font-medium leading-none" }, label), description && /* @__PURE__ */ React21__namespace.createElement(
553
- chunkQQSBW6N3_cjs.FieldDescription,
471
+ return /* @__PURE__ */ React19__namespace.createElement("div", { className: chunkQRI5TMES_cjs.cn("w-full", className), "data-invalid": error || void 0 }, (label || description) && /* @__PURE__ */ React19__namespace.createElement("div", { className: "mb-3 space-y-1" }, label && /* @__PURE__ */ React19__namespace.createElement("div", { className: "text-base font-medium leading-none" }, label), description && /* @__PURE__ */ React19__namespace.createElement(
472
+ chunkQRI5TMES_cjs.FieldDescription,
554
473
  {
555
474
  id: groupDescriptionId,
556
475
  className: "leading-snug"
557
476
  },
558
477
  description
559
- )), /* @__PURE__ */ React21__namespace.createElement(
478
+ )), /* @__PURE__ */ React19__namespace.createElement(
560
479
  RadioGroup,
561
480
  {
562
481
  name,
@@ -565,7 +484,7 @@ function Radio({
565
484
  onBlur: handleBlur,
566
485
  disabled,
567
486
  required,
568
- className: chunkQQSBW6N3_cjs.cn(
487
+ className: chunkQRI5TMES_cjs.cn(
569
488
  "gap-3",
570
489
  layout === "grid" && "grid grid-cols-1 md:grid-cols-2",
571
490
  layout === "inline" && "flex flex-wrap"
@@ -579,12 +498,12 @@ function Radio({
579
498
  const isDisabled = disabled || option.disabled;
580
499
  const radioId = `${name}-${option.value}`;
581
500
  const hasDescription = !!option.description;
582
- return /* @__PURE__ */ React21__namespace.createElement(
583
- chunkQQSBW6N3_cjs.FieldLabel,
501
+ return /* @__PURE__ */ React19__namespace.createElement(
502
+ chunkQRI5TMES_cjs.FieldLabel,
584
503
  {
585
504
  key: option.value,
586
505
  htmlFor: radioId,
587
- className: chunkQQSBW6N3_cjs.cn(
506
+ className: chunkQRI5TMES_cjs.cn(
588
507
  "flex gap-3 p-3 duration-200 select-auto font-normal leading-normal",
589
508
  useChoiceCard && "border rounded-lg hover:ring-2 hover:ring-ring/50",
590
509
  useChoiceCard && isSelected && "ring-2 ring-ring",
@@ -592,16 +511,15 @@ function Radio({
592
511
  isDisabled ? "opacity-50 cursor-not-allowed" : "cursor-pointer"
593
512
  )
594
513
  },
595
- /* @__PURE__ */ React21__namespace.createElement(
596
- chunkQQSBW6N3_cjs.Field,
514
+ /* @__PURE__ */ React19__namespace.createElement(
515
+ "div",
597
516
  {
598
- orientation: "horizontal",
599
- className: chunkQQSBW6N3_cjs.cn(
517
+ className: chunkQRI5TMES_cjs.cn(
600
518
  "flex w-full gap-3",
601
519
  useChoiceCard ? "items-start" : "items-center"
602
520
  )
603
521
  },
604
- /* @__PURE__ */ React21__namespace.createElement(
522
+ /* @__PURE__ */ React19__namespace.createElement(
605
523
  RadioGroupItem,
606
524
  {
607
525
  value: option.value,
@@ -611,8 +529,8 @@ function Radio({
611
529
  "aria-describedby": hasDescription ? `${radioId}-description` : void 0
612
530
  }
613
531
  ),
614
- /* @__PURE__ */ React21__namespace.createElement(chunkQQSBW6N3_cjs.Field, { className: "flex-1 gap-1" }, /* @__PURE__ */ React21__namespace.createElement("span", { className: "text-sm font-medium leading-none" }, option.label), option.description && /* @__PURE__ */ React21__namespace.createElement(
615
- chunkQQSBW6N3_cjs.FieldDescription,
532
+ /* @__PURE__ */ React19__namespace.createElement("div", { className: "flex-1 space-y-1" }, /* @__PURE__ */ React19__namespace.createElement("span", { className: "text-sm font-medium leading-none" }, option.label), option.description && /* @__PURE__ */ React19__namespace.createElement(
533
+ chunkQRI5TMES_cjs.FieldDescription,
616
534
  {
617
535
  id: `${radioId}-description`,
618
536
  className: "leading-snug"
@@ -630,12 +548,12 @@ function Switch({
630
548
  size = "default",
631
549
  ...props
632
550
  }) {
633
- return /* @__PURE__ */ React21__namespace.createElement(
551
+ return /* @__PURE__ */ React19__namespace.createElement(
634
552
  radixUi.Switch.Root,
635
553
  {
636
554
  "data-slot": "switch",
637
555
  "data-size": size,
638
- className: chunkQQSBW6N3_cjs.cn(
556
+ className: chunkQRI5TMES_cjs.cn(
639
557
  // Core structure - uses CSS variables
640
558
  "peer group/switch inline-flex shrink-0 items-center rounded-full",
641
559
  "border border-transparent shadow-xs transition-all outline-none",
@@ -652,11 +570,11 @@ function Switch({
652
570
  ),
653
571
  ...props
654
572
  },
655
- /* @__PURE__ */ React21__namespace.createElement(
573
+ /* @__PURE__ */ React19__namespace.createElement(
656
574
  radixUi.Switch.Thumb,
657
575
  {
658
576
  "data-slot": "switch-thumb",
659
- className: chunkQQSBW6N3_cjs.cn(
577
+ className: chunkQRI5TMES_cjs.cn(
660
578
  // Thumb appearance - inherits from parent theme
661
579
  "bg-background pointer-events-none block rounded-full ring-0 transition-transform",
662
580
  // Size variants
@@ -691,7 +609,7 @@ function Switch2({
691
609
  const handleBlur = () => {
692
610
  onBlur?.();
693
611
  };
694
- const switchElement = /* @__PURE__ */ React21__namespace.createElement(
612
+ const switchElement = /* @__PURE__ */ React19__namespace.createElement(
695
613
  Switch,
696
614
  {
697
615
  id: switchId,
@@ -707,21 +625,21 @@ function Switch2({
707
625
  }
708
626
  );
709
627
  if (!label) {
710
- return /* @__PURE__ */ React21__namespace.createElement(chunkQQSBW6N3_cjs.Field, { className }, switchElement);
628
+ return /* @__PURE__ */ React19__namespace.createElement(chunkQRI5TMES_cjs.Field, { className }, switchElement);
711
629
  }
712
- return /* @__PURE__ */ React21__namespace.createElement(chunkQQSBW6N3_cjs.Field, { className: "gap-0", invalid: Boolean(error) }, /* @__PURE__ */ React21__namespace.createElement(
713
- chunkQQSBW6N3_cjs.FieldLabel,
630
+ return /* @__PURE__ */ React19__namespace.createElement(chunkQRI5TMES_cjs.Field, { className: "gap-0", invalid: Boolean(error) }, /* @__PURE__ */ React19__namespace.createElement(
631
+ chunkQRI5TMES_cjs.FieldLabel,
714
632
  {
715
633
  htmlFor: switchId,
716
- className: chunkQQSBW6N3_cjs.cn(
634
+ className: chunkQRI5TMES_cjs.cn(
717
635
  "flex items-center gap-3 cursor-pointer select-auto font-normal leading-normal",
718
636
  disabled && "opacity-50 cursor-not-allowed",
719
637
  className
720
638
  )
721
639
  },
722
640
  switchElement,
723
- /* @__PURE__ */ React21__namespace.createElement(chunkQQSBW6N3_cjs.Field, { className: "gap-1" }, /* @__PURE__ */ React21__namespace.createElement("span", { className: "text-sm font-medium leading-none" }, label), description && /* @__PURE__ */ React21__namespace.createElement(
724
- chunkQQSBW6N3_cjs.FieldDescription,
641
+ /* @__PURE__ */ React19__namespace.createElement(chunkQRI5TMES_cjs.Field, { className: "gap-1" }, /* @__PURE__ */ React19__namespace.createElement("span", { className: "text-sm font-medium leading-none" }, label), description && /* @__PURE__ */ React19__namespace.createElement(
642
+ chunkQRI5TMES_cjs.FieldDescription,
725
643
  {
726
644
  id: `${switchId}-description`,
727
645
  className: "leading-snug"
@@ -734,17 +652,17 @@ Switch2.displayName = "Switch";
734
652
  function Select({
735
653
  ...props
736
654
  }) {
737
- return /* @__PURE__ */ React21__namespace.createElement(radixUi.Select.Root, { "data-slot": "select", ...props });
655
+ return /* @__PURE__ */ React19__namespace.createElement(radixUi.Select.Root, { "data-slot": "select", ...props });
738
656
  }
739
657
  function SelectGroup({
740
658
  ...props
741
659
  }) {
742
- return /* @__PURE__ */ React21__namespace.createElement(radixUi.Select.Group, { "data-slot": "select-group", ...props });
660
+ return /* @__PURE__ */ React19__namespace.createElement(radixUi.Select.Group, { "data-slot": "select-group", ...props });
743
661
  }
744
662
  function SelectValue({
745
663
  ...props
746
664
  }) {
747
- return /* @__PURE__ */ React21__namespace.createElement(radixUi.Select.Value, { "data-slot": "select-value", ...props });
665
+ return /* @__PURE__ */ React19__namespace.createElement(radixUi.Select.Value, { "data-slot": "select-value", ...props });
748
666
  }
749
667
  function SelectTrigger({
750
668
  className,
@@ -752,12 +670,12 @@ function SelectTrigger({
752
670
  children,
753
671
  ...props
754
672
  }) {
755
- return /* @__PURE__ */ React21__namespace.createElement(
673
+ return /* @__PURE__ */ React19__namespace.createElement(
756
674
  radixUi.Select.Trigger,
757
675
  {
758
676
  "data-slot": "select-trigger",
759
677
  "data-size": size,
760
- className: chunkQQSBW6N3_cjs.cn(
678
+ className: chunkQRI5TMES_cjs.cn(
761
679
  // Core structure - uses CSS variables
762
680
  "flex w-full items-center justify-between gap-2 rounded-md border border-input",
763
681
  "bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs",
@@ -782,7 +700,7 @@ function SelectTrigger({
782
700
  ...props
783
701
  },
784
702
  children,
785
- /* @__PURE__ */ React21__namespace.createElement(radixUi.Select.Icon, { asChild: true }, /* @__PURE__ */ React21__namespace.createElement(
703
+ /* @__PURE__ */ React19__namespace.createElement(radixUi.Select.Icon, { asChild: true }, /* @__PURE__ */ React19__namespace.createElement(
786
704
  "svg",
787
705
  {
788
706
  className: "size-4 opacity-50",
@@ -793,7 +711,7 @@ function SelectTrigger({
793
711
  strokeLinecap: "round",
794
712
  strokeLinejoin: "round"
795
713
  },
796
- /* @__PURE__ */ React21__namespace.createElement("polyline", { points: "6 9 12 15 18 9" })
714
+ /* @__PURE__ */ React19__namespace.createElement("polyline", { points: "6 9 12 15 18 9" })
797
715
  ))
798
716
  );
799
717
  }
@@ -804,11 +722,11 @@ function SelectContent({
804
722
  align = "center",
805
723
  ...props
806
724
  }) {
807
- return /* @__PURE__ */ React21__namespace.createElement(radixUi.Select.Portal, null, /* @__PURE__ */ React21__namespace.createElement(
725
+ return /* @__PURE__ */ React19__namespace.createElement(radixUi.Select.Portal, null, /* @__PURE__ */ React19__namespace.createElement(
808
726
  radixUi.Select.Content,
809
727
  {
810
728
  "data-slot": "select-content",
811
- className: chunkQQSBW6N3_cjs.cn(
729
+ className: chunkQRI5TMES_cjs.cn(
812
730
  "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md",
813
731
  position === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
814
732
  className
@@ -817,29 +735,29 @@ function SelectContent({
817
735
  align,
818
736
  ...props
819
737
  },
820
- /* @__PURE__ */ React21__namespace.createElement(SelectScrollUpButton, null),
821
- /* @__PURE__ */ React21__namespace.createElement(
738
+ /* @__PURE__ */ React19__namespace.createElement(SelectScrollUpButton, null),
739
+ /* @__PURE__ */ React19__namespace.createElement(
822
740
  radixUi.Select.Viewport,
823
741
  {
824
- className: chunkQQSBW6N3_cjs.cn(
742
+ className: chunkQRI5TMES_cjs.cn(
825
743
  "p-1",
826
744
  position === "popper" && "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"
827
745
  )
828
746
  },
829
747
  children
830
748
  ),
831
- /* @__PURE__ */ React21__namespace.createElement(SelectScrollDownButton, null)
749
+ /* @__PURE__ */ React19__namespace.createElement(SelectScrollDownButton, null)
832
750
  ));
833
751
  }
834
752
  function SelectLabel({
835
753
  className,
836
754
  ...props
837
755
  }) {
838
- return /* @__PURE__ */ React21__namespace.createElement(
756
+ return /* @__PURE__ */ React19__namespace.createElement(
839
757
  radixUi.Select.Label,
840
758
  {
841
759
  "data-slot": "select-label",
842
- className: chunkQQSBW6N3_cjs.cn("px-2 py-1.5 text-xs opacity-70", className),
760
+ className: chunkQRI5TMES_cjs.cn("px-2 py-1.5 text-xs opacity-70", className),
843
761
  ...props
844
762
  }
845
763
  );
@@ -849,11 +767,11 @@ function SelectItem({
849
767
  children,
850
768
  ...props
851
769
  }) {
852
- return /* @__PURE__ */ React21__namespace.createElement(
770
+ return /* @__PURE__ */ React19__namespace.createElement(
853
771
  radixUi.Select.Item,
854
772
  {
855
773
  "data-slot": "select-item",
856
- className: chunkQQSBW6N3_cjs.cn(
774
+ className: chunkQRI5TMES_cjs.cn(
857
775
  // Core structure - inherits text color
858
776
  "relative flex w-full cursor-default items-center gap-2 rounded-sm",
859
777
  "py-1.5 pr-8 pl-2 text-sm outline-hidden select-none",
@@ -869,13 +787,13 @@ function SelectItem({
869
787
  ),
870
788
  ...props
871
789
  },
872
- /* @__PURE__ */ React21__namespace.createElement(
790
+ /* @__PURE__ */ React19__namespace.createElement(
873
791
  "span",
874
792
  {
875
793
  "data-slot": "select-item-indicator",
876
794
  className: "absolute right-2 flex size-3.5 items-center justify-center"
877
795
  },
878
- /* @__PURE__ */ React21__namespace.createElement(radixUi.Select.ItemIndicator, null, /* @__PURE__ */ React21__namespace.createElement(
796
+ /* @__PURE__ */ React19__namespace.createElement(radixUi.Select.ItemIndicator, null, /* @__PURE__ */ React19__namespace.createElement(
879
797
  "svg",
880
798
  {
881
799
  className: "size-4",
@@ -886,27 +804,27 @@ function SelectItem({
886
804
  strokeLinecap: "round",
887
805
  strokeLinejoin: "round"
888
806
  },
889
- /* @__PURE__ */ React21__namespace.createElement("polyline", { points: "20 6 9 17 4 12" })
807
+ /* @__PURE__ */ React19__namespace.createElement("polyline", { points: "20 6 9 17 4 12" })
890
808
  ))
891
809
  ),
892
- /* @__PURE__ */ React21__namespace.createElement(radixUi.Select.ItemText, null, children)
810
+ /* @__PURE__ */ React19__namespace.createElement(radixUi.Select.ItemText, null, children)
893
811
  );
894
812
  }
895
813
  function SelectScrollUpButton({
896
814
  className,
897
815
  ...props
898
816
  }) {
899
- return /* @__PURE__ */ React21__namespace.createElement(
817
+ return /* @__PURE__ */ React19__namespace.createElement(
900
818
  radixUi.Select.ScrollUpButton,
901
819
  {
902
820
  "data-slot": "select-scroll-up-button",
903
- className: chunkQQSBW6N3_cjs.cn(
821
+ className: chunkQRI5TMES_cjs.cn(
904
822
  "flex cursor-default items-center justify-center py-1",
905
823
  className
906
824
  ),
907
825
  ...props
908
826
  },
909
- /* @__PURE__ */ React21__namespace.createElement(
827
+ /* @__PURE__ */ React19__namespace.createElement(
910
828
  "svg",
911
829
  {
912
830
  className: "size-4",
@@ -917,7 +835,7 @@ function SelectScrollUpButton({
917
835
  strokeLinecap: "round",
918
836
  strokeLinejoin: "round"
919
837
  },
920
- /* @__PURE__ */ React21__namespace.createElement("polyline", { points: "18 15 12 9 6 15" })
838
+ /* @__PURE__ */ React19__namespace.createElement("polyline", { points: "18 15 12 9 6 15" })
921
839
  )
922
840
  );
923
841
  }
@@ -925,17 +843,17 @@ function SelectScrollDownButton({
925
843
  className,
926
844
  ...props
927
845
  }) {
928
- return /* @__PURE__ */ React21__namespace.createElement(
846
+ return /* @__PURE__ */ React19__namespace.createElement(
929
847
  radixUi.Select.ScrollDownButton,
930
848
  {
931
849
  "data-slot": "select-scroll-down-button",
932
- className: chunkQQSBW6N3_cjs.cn(
850
+ className: chunkQRI5TMES_cjs.cn(
933
851
  "flex cursor-default items-center justify-center py-1",
934
852
  className
935
853
  ),
936
854
  ...props
937
855
  },
938
- /* @__PURE__ */ React21__namespace.createElement(
856
+ /* @__PURE__ */ React19__namespace.createElement(
939
857
  "svg",
940
858
  {
941
859
  className: "size-4",
@@ -946,7 +864,7 @@ function SelectScrollDownButton({
946
864
  strokeLinecap: "round",
947
865
  strokeLinejoin: "round"
948
866
  },
949
- /* @__PURE__ */ React21__namespace.createElement("polyline", { points: "6 9 12 15 18 9" })
867
+ /* @__PURE__ */ React19__namespace.createElement("polyline", { points: "6 9 12 15 18 9" })
950
868
  )
951
869
  );
952
870
  }
@@ -968,8 +886,8 @@ function Select2({
968
886
  renderOption,
969
887
  ...props
970
888
  }) {
971
- const [hasInteracted, setHasInteracted] = React21__namespace.useState(false);
972
- const allOptions = React21__namespace.useMemo(() => {
889
+ const [hasInteracted, setHasInteracted] = React19__namespace.useState(false);
890
+ const allOptions = React19__namespace.useMemo(() => {
973
891
  if (optionGroups.length > 0) {
974
892
  return optionGroups.flatMap((group) => group.options);
975
893
  }
@@ -990,7 +908,7 @@ function Select2({
990
908
  onBlur?.();
991
909
  }
992
910
  };
993
- return /* @__PURE__ */ React21__namespace.createElement(React21__namespace.Fragment, null, /* @__PURE__ */ React21__namespace.createElement(
911
+ return /* @__PURE__ */ React19__namespace.createElement(React19__namespace.Fragment, null, /* @__PURE__ */ React19__namespace.createElement(
994
912
  "input",
995
913
  {
996
914
  type: "hidden",
@@ -1012,7 +930,7 @@ function Select2({
1012
930
  border: "0"
1013
931
  }
1014
932
  }
1015
- ), /* @__PURE__ */ React21__namespace.createElement(
933
+ ), /* @__PURE__ */ React19__namespace.createElement(
1016
934
  Select,
1017
935
  {
1018
936
  value: selectValue,
@@ -1020,10 +938,10 @@ function Select2({
1020
938
  onOpenChange: handleOpenChange,
1021
939
  disabled
1022
940
  },
1023
- /* @__PURE__ */ React21__namespace.createElement(
941
+ /* @__PURE__ */ React19__namespace.createElement(
1024
942
  SelectTrigger,
1025
943
  {
1026
- className: chunkQQSBW6N3_cjs.cn(
944
+ className: chunkQRI5TMES_cjs.cn(
1027
945
  // Valid value indicator - ring-2 when has value and no error
1028
946
  !error && hasValue && "ring-2 ring-ring",
1029
947
  // Error state - handled by SelectTrigger via aria-invalid
@@ -1033,11 +951,11 @@ function Select2({
1033
951
  "aria-describedby": props["aria-describedby"],
1034
952
  "aria-required": required || props["aria-required"]
1035
953
  },
1036
- /* @__PURE__ */ React21__namespace.createElement(SelectValue, { placeholder })
954
+ /* @__PURE__ */ React19__namespace.createElement(SelectValue, { placeholder })
1037
955
  ),
1038
- /* @__PURE__ */ React21__namespace.createElement(SelectContent, null, optionGroups.length > 0 ? (
956
+ /* @__PURE__ */ React19__namespace.createElement(SelectContent, null, optionGroups.length > 0 ? (
1039
957
  // Render grouped options
1040
- optionGroups.map((group, groupIndex) => /* @__PURE__ */ React21__namespace.createElement(SelectGroup, { key: groupIndex }, /* @__PURE__ */ React21__namespace.createElement(SelectLabel, null, group.label), group.options.map((option) => /* @__PURE__ */ React21__namespace.createElement(
958
+ optionGroups.map((group, groupIndex) => /* @__PURE__ */ React19__namespace.createElement(SelectGroup, { key: groupIndex }, /* @__PURE__ */ React19__namespace.createElement(SelectLabel, null, group.label), group.options.map((option) => /* @__PURE__ */ React19__namespace.createElement(
1041
959
  SelectItem,
1042
960
  {
1043
961
  key: option.value,
@@ -1048,7 +966,7 @@ function Select2({
1048
966
  ))))
1049
967
  ) : (
1050
968
  // Render flat options
1051
- allOptions.map((option) => /* @__PURE__ */ React21__namespace.createElement(
969
+ allOptions.map((option) => /* @__PURE__ */ React19__namespace.createElement(
1052
970
  SelectItem,
1053
971
  {
1054
972
  key: option.value,
@@ -1064,25 +982,25 @@ Select2.displayName = "Select";
1064
982
  function Dialog({
1065
983
  ...props
1066
984
  }) {
1067
- return /* @__PURE__ */ React21__namespace.createElement(radixUi.Dialog.Root, { "data-slot": "dialog", ...props });
985
+ return /* @__PURE__ */ React19__namespace.createElement(radixUi.Dialog.Root, { "data-slot": "dialog", ...props });
1068
986
  }
1069
987
  function DialogPortal({
1070
988
  ...props
1071
989
  }) {
1072
- return /* @__PURE__ */ React21__namespace.createElement(radixUi.Dialog.Portal, { "data-slot": "dialog-portal", ...props });
990
+ return /* @__PURE__ */ React19__namespace.createElement(radixUi.Dialog.Portal, { "data-slot": "dialog-portal", ...props });
1073
991
  }
1074
992
  function DialogClose({
1075
993
  ...props
1076
994
  }) {
1077
- return /* @__PURE__ */ React21__namespace.createElement(radixUi.Dialog.Close, { "data-slot": "dialog-close", ...props });
995
+ return /* @__PURE__ */ React19__namespace.createElement(radixUi.Dialog.Close, { "data-slot": "dialog-close", ...props });
1078
996
  }
1079
- var DialogOverlay = React21__namespace.forwardRef(({ className, ...props }, ref) => {
1080
- return /* @__PURE__ */ React21__namespace.createElement(
997
+ var DialogOverlay = React19__namespace.forwardRef(({ className, ...props }, ref) => {
998
+ return /* @__PURE__ */ React19__namespace.createElement(
1081
999
  radixUi.Dialog.Overlay,
1082
1000
  {
1083
1001
  ref,
1084
1002
  "data-slot": "dialog-overlay",
1085
- className: chunkQQSBW6N3_cjs.cn(
1003
+ className: chunkQRI5TMES_cjs.cn(
1086
1004
  "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",
1087
1005
  className
1088
1006
  ),
@@ -1091,26 +1009,26 @@ var DialogOverlay = React21__namespace.forwardRef(({ className, ...props }, ref)
1091
1009
  );
1092
1010
  });
1093
1011
  DialogOverlay.displayName = radixUi.Dialog.Overlay.displayName;
1094
- var DialogContent = React21__namespace.forwardRef(({ className, children, showCloseButton = true, ...props }, ref) => {
1095
- return /* @__PURE__ */ React21__namespace.createElement(DialogPortal, { "data-slot": "dialog-portal" }, /* @__PURE__ */ React21__namespace.createElement(DialogOverlay, null), /* @__PURE__ */ React21__namespace.createElement(
1012
+ var DialogContent = React19__namespace.forwardRef(({ className, children, showCloseButton = true, ...props }, ref) => {
1013
+ return /* @__PURE__ */ React19__namespace.createElement(DialogPortal, { "data-slot": "dialog-portal" }, /* @__PURE__ */ React19__namespace.createElement(DialogOverlay, null), /* @__PURE__ */ React19__namespace.createElement(
1096
1014
  radixUi.Dialog.Content,
1097
1015
  {
1098
1016
  ref,
1099
1017
  "data-slot": "dialog-content",
1100
- className: chunkQQSBW6N3_cjs.cn(
1018
+ className: chunkQRI5TMES_cjs.cn(
1101
1019
  "bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 outline-none sm:max-w-lg",
1102
1020
  className
1103
1021
  ),
1104
1022
  ...props
1105
1023
  },
1106
1024
  children,
1107
- showCloseButton && /* @__PURE__ */ React21__namespace.createElement(
1025
+ showCloseButton && /* @__PURE__ */ React19__namespace.createElement(
1108
1026
  radixUi.Dialog.Close,
1109
1027
  {
1110
1028
  "data-slot": "dialog-close",
1111
1029
  className: "ring-offset-background focus:ring-ring data-[state=open]:bg-accent absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4"
1112
1030
  },
1113
- /* @__PURE__ */ React21__namespace.createElement(
1031
+ /* @__PURE__ */ React19__namespace.createElement(
1114
1032
  "svg",
1115
1033
  {
1116
1034
  className: "size-4",
@@ -1121,20 +1039,20 @@ var DialogContent = React21__namespace.forwardRef(({ className, children, showCl
1121
1039
  strokeLinecap: "round",
1122
1040
  strokeLinejoin: "round"
1123
1041
  },
1124
- /* @__PURE__ */ React21__namespace.createElement("line", { x1: "18", y1: "6", x2: "6", y2: "18" }),
1125
- /* @__PURE__ */ React21__namespace.createElement("line", { x1: "6", y1: "6", x2: "18", y2: "18" })
1042
+ /* @__PURE__ */ React19__namespace.createElement("line", { x1: "18", y1: "6", x2: "6", y2: "18" }),
1043
+ /* @__PURE__ */ React19__namespace.createElement("line", { x1: "6", y1: "6", x2: "18", y2: "18" })
1126
1044
  ),
1127
- /* @__PURE__ */ React21__namespace.createElement("span", { className: "sr-only" }, "Close")
1045
+ /* @__PURE__ */ React19__namespace.createElement("span", { className: "sr-only" }, "Close")
1128
1046
  )
1129
1047
  ));
1130
1048
  });
1131
1049
  DialogContent.displayName = radixUi.Dialog.Content.displayName;
1132
1050
  function DialogHeader({ className, ...props }) {
1133
- return /* @__PURE__ */ React21__namespace.createElement(
1051
+ return /* @__PURE__ */ React19__namespace.createElement(
1134
1052
  "div",
1135
1053
  {
1136
1054
  "data-slot": "dialog-header",
1137
- className: chunkQQSBW6N3_cjs.cn("flex flex-col gap-2 text-center sm:text-left", className),
1055
+ className: chunkQRI5TMES_cjs.cn("flex flex-col gap-2 text-center sm:text-left", className),
1138
1056
  ...props
1139
1057
  }
1140
1058
  );
@@ -1143,11 +1061,11 @@ function DialogTitle({
1143
1061
  className,
1144
1062
  ...props
1145
1063
  }) {
1146
- return /* @__PURE__ */ React21__namespace.createElement(
1064
+ return /* @__PURE__ */ React19__namespace.createElement(
1147
1065
  radixUi.Dialog.Title,
1148
1066
  {
1149
1067
  "data-slot": "dialog-title",
1150
- className: chunkQQSBW6N3_cjs.cn("text-lg leading-none font-semibold", className),
1068
+ className: chunkQRI5TMES_cjs.cn("text-lg leading-none font-semibold", className),
1151
1069
  ...props
1152
1070
  }
1153
1071
  );
@@ -1158,11 +1076,11 @@ function Command({
1158
1076
  className,
1159
1077
  ...props
1160
1078
  }) {
1161
- return /* @__PURE__ */ React21__namespace.createElement(
1079
+ return /* @__PURE__ */ React19__namespace.createElement(
1162
1080
  cmdk.Command,
1163
1081
  {
1164
1082
  "data-slot": "command",
1165
- className: chunkQQSBW6N3_cjs.cn(
1083
+ className: chunkQRI5TMES_cjs.cn(
1166
1084
  "bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md",
1167
1085
  className
1168
1086
  ),
@@ -1174,13 +1092,13 @@ function CommandInput({
1174
1092
  className,
1175
1093
  ...props
1176
1094
  }) {
1177
- return /* @__PURE__ */ React21__namespace.createElement(
1095
+ return /* @__PURE__ */ React19__namespace.createElement(
1178
1096
  "div",
1179
1097
  {
1180
1098
  "data-slot": "command-input-wrapper",
1181
1099
  className: "flex h-9 items-center gap-2 border-b px-3"
1182
1100
  },
1183
- /* @__PURE__ */ React21__namespace.createElement(
1101
+ /* @__PURE__ */ React19__namespace.createElement(
1184
1102
  "svg",
1185
1103
  {
1186
1104
  className: "size-4 shrink-0 opacity-50",
@@ -1191,14 +1109,14 @@ function CommandInput({
1191
1109
  strokeLinecap: "round",
1192
1110
  strokeLinejoin: "round"
1193
1111
  },
1194
- /* @__PURE__ */ React21__namespace.createElement("circle", { cx: "11", cy: "11", r: "8" }),
1195
- /* @__PURE__ */ React21__namespace.createElement("path", { d: "m21 21-4.3-4.3" })
1112
+ /* @__PURE__ */ React19__namespace.createElement("circle", { cx: "11", cy: "11", r: "8" }),
1113
+ /* @__PURE__ */ React19__namespace.createElement("path", { d: "m21 21-4.3-4.3" })
1196
1114
  ),
1197
- /* @__PURE__ */ React21__namespace.createElement(
1115
+ /* @__PURE__ */ React19__namespace.createElement(
1198
1116
  cmdk.Command.Input,
1199
1117
  {
1200
1118
  "data-slot": "command-input",
1201
- className: chunkQQSBW6N3_cjs.cn(
1119
+ className: chunkQRI5TMES_cjs.cn(
1202
1120
  "flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50",
1203
1121
  className
1204
1122
  ),
@@ -1211,11 +1129,11 @@ function CommandList({
1211
1129
  className,
1212
1130
  ...props
1213
1131
  }) {
1214
- return /* @__PURE__ */ React21__namespace.createElement(
1132
+ return /* @__PURE__ */ React19__namespace.createElement(
1215
1133
  cmdk.Command.List,
1216
1134
  {
1217
1135
  "data-slot": "command-list",
1218
- className: chunkQQSBW6N3_cjs.cn(
1136
+ className: chunkQRI5TMES_cjs.cn(
1219
1137
  "max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto",
1220
1138
  className
1221
1139
  ),
@@ -1226,7 +1144,7 @@ function CommandList({
1226
1144
  function CommandEmpty({
1227
1145
  ...props
1228
1146
  }) {
1229
- return /* @__PURE__ */ React21__namespace.createElement(
1147
+ return /* @__PURE__ */ React19__namespace.createElement(
1230
1148
  cmdk.Command.Empty,
1231
1149
  {
1232
1150
  "data-slot": "command-empty",
@@ -1239,11 +1157,11 @@ function CommandGroup({
1239
1157
  className,
1240
1158
  ...props
1241
1159
  }) {
1242
- return /* @__PURE__ */ React21__namespace.createElement(
1160
+ return /* @__PURE__ */ React19__namespace.createElement(
1243
1161
  cmdk.Command.Group,
1244
1162
  {
1245
1163
  "data-slot": "command-group",
1246
- className: chunkQQSBW6N3_cjs.cn(
1164
+ className: chunkQRI5TMES_cjs.cn(
1247
1165
  "overflow-hidden p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:opacity-70",
1248
1166
  className
1249
1167
  ),
@@ -1254,12 +1172,12 @@ function CommandGroup({
1254
1172
  function Popover({
1255
1173
  ...props
1256
1174
  }) {
1257
- return /* @__PURE__ */ React21__namespace.createElement(radixUi.Popover.Root, { "data-slot": "popover", ...props });
1175
+ return /* @__PURE__ */ React19__namespace.createElement(radixUi.Popover.Root, { "data-slot": "popover", ...props });
1258
1176
  }
1259
1177
  function PopoverTrigger({
1260
1178
  ...props
1261
1179
  }) {
1262
- return /* @__PURE__ */ React21__namespace.createElement(radixUi.Popover.Trigger, { "data-slot": "popover-trigger", ...props });
1180
+ return /* @__PURE__ */ React19__namespace.createElement(radixUi.Popover.Trigger, { "data-slot": "popover-trigger", ...props });
1263
1181
  }
1264
1182
  function PopoverContent({
1265
1183
  className,
@@ -1267,13 +1185,13 @@ function PopoverContent({
1267
1185
  sideOffset = 4,
1268
1186
  ...props
1269
1187
  }) {
1270
- return /* @__PURE__ */ React21__namespace.createElement(radixUi.Popover.Portal, null, /* @__PURE__ */ React21__namespace.createElement(
1188
+ return /* @__PURE__ */ React19__namespace.createElement(radixUi.Popover.Portal, null, /* @__PURE__ */ React19__namespace.createElement(
1271
1189
  radixUi.Popover.Content,
1272
1190
  {
1273
1191
  "data-slot": "popover-content",
1274
1192
  align,
1275
1193
  sideOffset,
1276
- className: chunkQQSBW6N3_cjs.cn(
1194
+ className: chunkQRI5TMES_cjs.cn(
1277
1195
  "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden",
1278
1196
  className
1279
1197
  ),
@@ -1328,21 +1246,21 @@ function MultiSelect({
1328
1246
  renderValue,
1329
1247
  ...props
1330
1248
  }) {
1331
- const [isOpen, setIsOpen] = React21__namespace.useState(false);
1332
- const [searchQuery, setSearchQuery] = React21__namespace.useState("");
1333
- const [focusedIndex, setFocusedIndex] = React21__namespace.useState(-1);
1334
- const [hasInteracted, setHasInteracted] = React21__namespace.useState(false);
1335
- const triggerRef = React21__namespace.useRef(null);
1249
+ const [isOpen, setIsOpen] = React19__namespace.useState(false);
1250
+ const [searchQuery, setSearchQuery] = React19__namespace.useState("");
1251
+ const [focusedIndex, setFocusedIndex] = React19__namespace.useState(-1);
1252
+ const [hasInteracted, setHasInteracted] = React19__namespace.useState(false);
1253
+ const triggerRef = React19__namespace.useRef(null);
1336
1254
  const dropdownId = `${name}-dropdown`;
1337
1255
  const searchInputId = `${name}-search`;
1338
1256
  ensureResizeObserver();
1339
- const allOptions = React21__namespace.useMemo(() => {
1257
+ const allOptions = React19__namespace.useMemo(() => {
1340
1258
  if (optionGroups.length > 0) {
1341
1259
  return optionGroups.flatMap((group) => group.options);
1342
1260
  }
1343
1261
  return options;
1344
1262
  }, [options, optionGroups]);
1345
- const filteredOptions = React21__namespace.useMemo(() => {
1263
+ const filteredOptions = React19__namespace.useMemo(() => {
1346
1264
  if (!searchQuery.trim()) {
1347
1265
  return allOptions;
1348
1266
  }
@@ -1351,19 +1269,19 @@ function MultiSelect({
1351
1269
  (option) => optionLabelText(option).toLowerCase().includes(query)
1352
1270
  );
1353
1271
  }, [allOptions, searchQuery]);
1354
- const selectedOptions = React21__namespace.useMemo(() => {
1272
+ const selectedOptions = React19__namespace.useMemo(() => {
1355
1273
  return allOptions.filter((option) => value.includes(option.value));
1356
1274
  }, [allOptions, value]);
1357
1275
  const hasValue = value.length > 0;
1358
- const isMaxReached = React21__namespace.useMemo(() => {
1276
+ const isMaxReached = React19__namespace.useMemo(() => {
1359
1277
  return maxSelections !== void 0 && value.length >= maxSelections;
1360
1278
  }, [maxSelections, value.length]);
1361
- const getEnabledOptions = React21__namespace.useCallback(() => {
1279
+ const getEnabledOptions = React19__namespace.useCallback(() => {
1362
1280
  return filteredOptions.filter(
1363
1281
  (option) => !option.disabled && (!isMaxReached || value.includes(option.value))
1364
1282
  );
1365
1283
  }, [filteredOptions, isMaxReached, value]);
1366
- React21__namespace.useEffect(() => {
1284
+ React19__namespace.useEffect(() => {
1367
1285
  if (!isOpen) return;
1368
1286
  if (!searchable) return;
1369
1287
  const id = window.setTimeout(() => {
@@ -1376,7 +1294,7 @@ function MultiSelect({
1376
1294
  window.clearTimeout(id);
1377
1295
  };
1378
1296
  }, [isOpen, searchable, searchInputId]);
1379
- const handleToggleOption = React21__namespace.useCallback(
1297
+ const handleToggleOption = React19__namespace.useCallback(
1380
1298
  (optionValue) => {
1381
1299
  const isSelected = value.includes(optionValue);
1382
1300
  if (isSelected) {
@@ -1388,12 +1306,12 @@ function MultiSelect({
1388
1306
  },
1389
1307
  [isMaxReached, onChange, value]
1390
1308
  );
1391
- const handleSelectAll = React21__namespace.useCallback(() => {
1309
+ const handleSelectAll = React19__namespace.useCallback(() => {
1392
1310
  const enabledOptions = filteredOptions.filter((option) => !option.disabled);
1393
1311
  onChange(enabledOptions.map((option) => option.value));
1394
1312
  setSearchQuery("");
1395
1313
  }, [filteredOptions, onChange]);
1396
- const handleClearAll = React21__namespace.useCallback(
1314
+ const handleClearAll = React19__namespace.useCallback(
1397
1315
  (e) => {
1398
1316
  e.stopPropagation();
1399
1317
  onChange([]);
@@ -1402,14 +1320,14 @@ function MultiSelect({
1402
1320
  },
1403
1321
  [onChange]
1404
1322
  );
1405
- const handleRemoveValue = React21__namespace.useCallback(
1323
+ const handleRemoveValue = React19__namespace.useCallback(
1406
1324
  (optionValue, e) => {
1407
1325
  e.stopPropagation();
1408
1326
  onChange(value.filter((entry) => entry !== optionValue));
1409
1327
  },
1410
1328
  [onChange, value]
1411
1329
  );
1412
- const handleOpenChange = React21__namespace.useCallback(
1330
+ const handleOpenChange = React19__namespace.useCallback(
1413
1331
  (nextOpen) => {
1414
1332
  if (disabled) {
1415
1333
  setIsOpen(false);
@@ -1432,12 +1350,12 @@ function MultiSelect({
1432
1350
  },
1433
1351
  [disabled, hasInteracted, isOpen, onBlur, onFocus]
1434
1352
  );
1435
- const handleTriggerBlur = React21__namespace.useCallback(() => {
1353
+ const handleTriggerBlur = React19__namespace.useCallback(() => {
1436
1354
  if (!isOpen) {
1437
1355
  onBlur?.();
1438
1356
  }
1439
1357
  }, [isOpen, onBlur]);
1440
- const handleKeyDown = React21__namespace.useCallback(
1358
+ const handleKeyDown = React19__namespace.useCallback(
1441
1359
  (event) => {
1442
1360
  if (disabled) return;
1443
1361
  const enabledOptions = getEnabledOptions();
@@ -1533,8 +1451,8 @@ function MultiSelect({
1533
1451
  value
1534
1452
  ]
1535
1453
  );
1536
- const combinedClassName = chunkQQSBW6N3_cjs.cn("relative w-full", className);
1537
- return /* @__PURE__ */ React21__namespace.createElement("div", { className: combinedClassName }, /* @__PURE__ */ React21__namespace.createElement(
1454
+ const combinedClassName = chunkQRI5TMES_cjs.cn("relative w-full", className);
1455
+ return /* @__PURE__ */ React19__namespace.createElement("div", { className: combinedClassName }, /* @__PURE__ */ React19__namespace.createElement(
1538
1456
  "select",
1539
1457
  {
1540
1458
  name,
@@ -1548,13 +1466,13 @@ function MultiSelect({
1548
1466
  style: { display: "none" },
1549
1467
  multiple: true
1550
1468
  },
1551
- /* @__PURE__ */ React21__namespace.createElement("option", { value: "" }, "Select..."),
1552
- allOptions.map((option) => /* @__PURE__ */ React21__namespace.createElement("option", { key: option.value, value: option.value }, optionLabelText(option)))
1553
- ), /* @__PURE__ */ React21__namespace.createElement(Popover, { open: isOpen, onOpenChange: handleOpenChange }, /* @__PURE__ */ React21__namespace.createElement(PopoverTrigger, { asChild: true }, /* @__PURE__ */ React21__namespace.createElement(
1469
+ /* @__PURE__ */ React19__namespace.createElement("option", { value: "" }, "Select..."),
1470
+ allOptions.map((option) => /* @__PURE__ */ React19__namespace.createElement("option", { key: option.value, value: option.value }, optionLabelText(option)))
1471
+ ), /* @__PURE__ */ React19__namespace.createElement(Popover, { open: isOpen, onOpenChange: handleOpenChange }, /* @__PURE__ */ React19__namespace.createElement(PopoverTrigger, { asChild: true }, /* @__PURE__ */ React19__namespace.createElement(
1554
1472
  "div",
1555
1473
  {
1556
1474
  ref: triggerRef,
1557
- className: chunkQQSBW6N3_cjs.cn(
1475
+ className: chunkQRI5TMES_cjs.cn(
1558
1476
  "flex min-h-9 w-full items-center justify-between rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm",
1559
1477
  "cursor-pointer transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring",
1560
1478
  !error && hasValue && "ring-2 ring-ring",
@@ -1572,13 +1490,13 @@ function MultiSelect({
1572
1490
  "aria-disabled": disabled,
1573
1491
  tabIndex: disabled ? -1 : 0
1574
1492
  },
1575
- /* @__PURE__ */ React21__namespace.createElement("div", { className: "flex flex-1 items-center overflow-hidden" }, selectedOptions.length > 0 ? /* @__PURE__ */ React21__namespace.createElement("div", { className: "flex flex-wrap gap-1" }, selectedOptions.map((option) => /* @__PURE__ */ React21__namespace.createElement(
1493
+ /* @__PURE__ */ React19__namespace.createElement("div", { className: "flex flex-1 items-center overflow-hidden" }, selectedOptions.length > 0 ? /* @__PURE__ */ React19__namespace.createElement("div", { className: "flex flex-wrap gap-1" }, selectedOptions.map((option) => /* @__PURE__ */ React19__namespace.createElement(
1576
1494
  "span",
1577
1495
  {
1578
1496
  key: option.value,
1579
1497
  className: "inline-flex items-center gap-1 rounded px-2 py-0.5 text-xs font-medium"
1580
1498
  },
1581
- renderValue ? renderValue(option) : /* @__PURE__ */ React21__namespace.createElement(React21__namespace.Fragment, null, /* @__PURE__ */ React21__namespace.createElement("span", { className: "max-w-40 overflow-hidden text-ellipsis whitespace-nowrap" }, option.label), !disabled && /* @__PURE__ */ React21__namespace.createElement(
1499
+ renderValue ? renderValue(option) : /* @__PURE__ */ React19__namespace.createElement(React19__namespace.Fragment, null, /* @__PURE__ */ React19__namespace.createElement("span", { className: "max-w-40 overflow-hidden text-ellipsis whitespace-nowrap" }, option.label), !disabled && /* @__PURE__ */ React19__namespace.createElement(
1582
1500
  "button",
1583
1501
  {
1584
1502
  type: "button",
@@ -1589,8 +1507,8 @@ function MultiSelect({
1589
1507
  },
1590
1508
  "\u2715"
1591
1509
  ))
1592
- ))) : /* @__PURE__ */ React21__namespace.createElement("span", { className: "relative" }, placeholder)),
1593
- /* @__PURE__ */ React21__namespace.createElement("div", { className: "ml-2 flex items-center gap-1" }, loading && /* @__PURE__ */ React21__namespace.createElement("span", { className: "text-xs" }, "\u23F3"), clearable && value.length > 0 && !disabled && !loading && /* @__PURE__ */ React21__namespace.createElement(
1510
+ ))) : /* @__PURE__ */ React19__namespace.createElement("span", { className: "relative" }, placeholder)),
1511
+ /* @__PURE__ */ React19__namespace.createElement("div", { className: "ml-2 flex items-center gap-1" }, loading && /* @__PURE__ */ React19__namespace.createElement("span", { className: "text-xs" }, "\u23F3"), clearable && value.length > 0 && !disabled && !loading && /* @__PURE__ */ React19__namespace.createElement(
1594
1512
  "button",
1595
1513
  {
1596
1514
  type: "button",
@@ -1600,8 +1518,8 @@ function MultiSelect({
1600
1518
  tabIndex: -1
1601
1519
  },
1602
1520
  "\u2715"
1603
- ), /* @__PURE__ */ React21__namespace.createElement("span", { className: "text-xs leading-none", "aria-hidden": "true" }, isOpen ? "\u25B2" : "\u25BC"))
1604
- )), isOpen && /* @__PURE__ */ React21__namespace.createElement(
1521
+ ), /* @__PURE__ */ React19__namespace.createElement("span", { className: "text-xs leading-none", "aria-hidden": "true" }, isOpen ? "\u25B2" : "\u25BC"))
1522
+ )), isOpen && /* @__PURE__ */ React19__namespace.createElement(
1605
1523
  PopoverContent,
1606
1524
  {
1607
1525
  id: dropdownId,
@@ -1612,18 +1530,18 @@ function MultiSelect({
1612
1530
  event.preventDefault();
1613
1531
  }
1614
1532
  },
1615
- /* @__PURE__ */ React21__namespace.createElement(
1533
+ /* @__PURE__ */ React19__namespace.createElement(
1616
1534
  Command,
1617
1535
  {
1618
1536
  shouldFilter: false,
1619
1537
  className: "max-h-80",
1620
1538
  onKeyDown: handleKeyDown
1621
1539
  },
1622
- searchable && /* @__PURE__ */ React21__namespace.createElement(
1540
+ searchable && /* @__PURE__ */ React19__namespace.createElement(
1623
1541
  CommandInput,
1624
1542
  {
1625
1543
  id: searchInputId,
1626
- className: chunkQQSBW6N3_cjs.cn(chunkQQSBW6N3_cjs.INPUT_AUTOFILL_RESET_CLASSES),
1544
+ className: chunkQRI5TMES_cjs.cn(chunkQRI5TMES_cjs.INPUT_AUTOFILL_RESET_CLASSES),
1627
1545
  placeholder: "Search...",
1628
1546
  value: searchQuery,
1629
1547
  onValueChange: (nextValue) => {
@@ -1633,7 +1551,7 @@ function MultiSelect({
1633
1551
  "aria-label": "Search options"
1634
1552
  }
1635
1553
  ),
1636
- showSelectAll && filteredOptions.length > 0 && /* @__PURE__ */ React21__namespace.createElement("div", { className: "flex gap-2 border-b border-input p-2" }, /* @__PURE__ */ React21__namespace.createElement(
1554
+ showSelectAll && filteredOptions.length > 0 && /* @__PURE__ */ React19__namespace.createElement("div", { className: "flex gap-2 border-b border-input p-2" }, /* @__PURE__ */ React19__namespace.createElement(
1637
1555
  "button",
1638
1556
  {
1639
1557
  type: "button",
@@ -1642,7 +1560,7 @@ function MultiSelect({
1642
1560
  disabled
1643
1561
  },
1644
1562
  "Select All"
1645
- ), value.length > 0 && /* @__PURE__ */ React21__namespace.createElement(
1563
+ ), value.length > 0 && /* @__PURE__ */ React19__namespace.createElement(
1646
1564
  "button",
1647
1565
  {
1648
1566
  type: "button",
@@ -1652,13 +1570,13 @@ function MultiSelect({
1652
1570
  },
1653
1571
  "Clear All"
1654
1572
  )),
1655
- isMaxReached && /* @__PURE__ */ React21__namespace.createElement("div", { className: "border-b border-destructive bg-destructive/80 px-2 py-1 text-xs font-medium text-destructive-foreground" }, "Maximum ", maxSelections, " selection", maxSelections !== 1 ? "s" : "", " ", "reached"),
1656
- /* @__PURE__ */ React21__namespace.createElement(CommandList, { role: "listbox", "aria-multiselectable": "true" }, /* @__PURE__ */ React21__namespace.createElement(CommandEmpty, null, "No options found"), optionGroups.length > 0 ? optionGroups.map((group, groupIndex) => {
1573
+ isMaxReached && /* @__PURE__ */ React19__namespace.createElement("div", { className: "border-b border-destructive bg-destructive/80 px-2 py-1 text-xs font-medium text-destructive-foreground" }, "Maximum ", maxSelections, " selection", maxSelections !== 1 ? "s" : "", " ", "reached"),
1574
+ /* @__PURE__ */ React19__namespace.createElement(CommandList, { role: "listbox", "aria-multiselectable": "true" }, /* @__PURE__ */ React19__namespace.createElement(CommandEmpty, null, "No options found"), optionGroups.length > 0 ? optionGroups.map((group, groupIndex) => {
1657
1575
  const groupOptions = group.options.filter(
1658
1576
  (option) => filteredOptions.includes(option)
1659
1577
  );
1660
1578
  if (groupOptions.length === 0) return null;
1661
- return /* @__PURE__ */ React21__namespace.createElement(
1579
+ return /* @__PURE__ */ React19__namespace.createElement(
1662
1580
  CommandGroup,
1663
1581
  {
1664
1582
  key: `${group.label}-${groupIndex}`,
@@ -1669,7 +1587,7 @@ function MultiSelect({
1669
1587
  const isSelected = value.includes(option.value);
1670
1588
  const isFocused = globalIndex === focusedIndex;
1671
1589
  const optionDisabled = option.disabled || isMaxReached && !isSelected;
1672
- return /* @__PURE__ */ React21__namespace.createElement(
1590
+ return /* @__PURE__ */ React19__namespace.createElement(
1673
1591
  "div",
1674
1592
  {
1675
1593
  key: option.value,
@@ -1684,15 +1602,15 @@ function MultiSelect({
1684
1602
  handleToggleOption(option.value);
1685
1603
  }
1686
1604
  },
1687
- className: chunkQQSBW6N3_cjs.cn(
1605
+ className: chunkQRI5TMES_cjs.cn(
1688
1606
  "relative flex w-full cursor-pointer items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors hover:bg-accent",
1689
1607
  isFocused && "bg-accent",
1690
1608
  isSelected && "bg-accent font-medium",
1691
1609
  optionDisabled && "pointer-events-none opacity-50"
1692
1610
  )
1693
1611
  },
1694
- /* @__PURE__ */ React21__namespace.createElement("span", { className: "text-base leading-none" }, isSelected ? "\u2611" : "\u2610"),
1695
- /* @__PURE__ */ React21__namespace.createElement("span", { className: "flex-1" }, renderOption ? renderOption(option) : option.label)
1612
+ /* @__PURE__ */ React19__namespace.createElement("span", { className: "text-base leading-none" }, isSelected ? "\u2611" : "\u2610"),
1613
+ /* @__PURE__ */ React19__namespace.createElement("span", { className: "flex-1" }, renderOption ? renderOption(option) : option.label)
1696
1614
  );
1697
1615
  })
1698
1616
  );
@@ -1700,7 +1618,7 @@ function MultiSelect({
1700
1618
  const isSelected = value.includes(option.value);
1701
1619
  const isFocused = index === focusedIndex;
1702
1620
  const optionDisabled = option.disabled || isMaxReached && !isSelected;
1703
- return /* @__PURE__ */ React21__namespace.createElement(
1621
+ return /* @__PURE__ */ React19__namespace.createElement(
1704
1622
  "div",
1705
1623
  {
1706
1624
  key: option.value,
@@ -1715,33 +1633,33 @@ function MultiSelect({
1715
1633
  handleToggleOption(option.value);
1716
1634
  }
1717
1635
  },
1718
- className: chunkQQSBW6N3_cjs.cn(
1636
+ className: chunkQRI5TMES_cjs.cn(
1719
1637
  "relative flex w-full cursor-pointer items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors hover:bg-accent",
1720
1638
  isFocused && "bg-accent",
1721
1639
  isSelected && "bg-accent font-medium",
1722
1640
  optionDisabled && "pointer-events-none opacity-50"
1723
1641
  )
1724
1642
  },
1725
- /* @__PURE__ */ React21__namespace.createElement("span", { className: "text-base leading-none" }, isSelected ? "\u2611" : "\u2610"),
1726
- /* @__PURE__ */ React21__namespace.createElement("span", { className: "flex-1" }, renderOption ? renderOption(option) : option.label)
1643
+ /* @__PURE__ */ React19__namespace.createElement("span", { className: "text-base leading-none" }, isSelected ? "\u2611" : "\u2610"),
1644
+ /* @__PURE__ */ React19__namespace.createElement("span", { className: "flex-1" }, renderOption ? renderOption(option) : option.label)
1727
1645
  );
1728
1646
  }))
1729
1647
  )
1730
1648
  )));
1731
1649
  }
1732
1650
  MultiSelect.displayName = "MultiSelect";
1733
- var useIsomorphicLayoutEffect = typeof window !== "undefined" ? React21__namespace.useLayoutEffect : React21__namespace.useEffect;
1651
+ var useIsomorphicLayoutEffect = typeof window !== "undefined" ? React19__namespace.useLayoutEffect : React19__namespace.useEffect;
1734
1652
 
1735
1653
  // src/hooks/use-as-ref.ts
1736
1654
  function useAsRef(props) {
1737
- const ref = React21__namespace.useRef(props);
1655
+ const ref = React19__namespace.useRef(props);
1738
1656
  useIsomorphicLayoutEffect(() => {
1739
1657
  ref.current = props;
1740
1658
  });
1741
1659
  return ref;
1742
1660
  }
1743
1661
  function useLazyRef(fn) {
1744
- const ref = React21__namespace.useRef(null);
1662
+ const ref = React19__namespace.useRef(null);
1745
1663
  if (ref.current === null) {
1746
1664
  ref.current = fn();
1747
1665
  }
@@ -1760,7 +1678,7 @@ function BaseFileIcon({
1760
1678
  children,
1761
1679
  className
1762
1680
  }) {
1763
- return /* @__PURE__ */ React21__namespace.createElement(
1681
+ return /* @__PURE__ */ React19__namespace.createElement(
1764
1682
  "svg",
1765
1683
  {
1766
1684
  viewBox: "0 0 24 24",
@@ -1769,32 +1687,32 @@ function BaseFileIcon({
1769
1687
  strokeWidth: "2",
1770
1688
  strokeLinecap: "round",
1771
1689
  strokeLinejoin: "round",
1772
- className: chunkQQSBW6N3_cjs.cn("size-5", className),
1690
+ className: chunkQRI5TMES_cjs.cn("size-5", className),
1773
1691
  "aria-hidden": "true"
1774
1692
  },
1775
1693
  children
1776
1694
  );
1777
1695
  }
1778
1696
  function FileVideoIcon() {
1779
- return /* @__PURE__ */ React21__namespace.createElement(BaseFileIcon, null, /* @__PURE__ */ React21__namespace.createElement("path", { d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" }), /* @__PURE__ */ React21__namespace.createElement("polyline", { points: "14 2 14 8 20 8" }), /* @__PURE__ */ React21__namespace.createElement("rect", { x: "8", y: "12", width: "6", height: "4", rx: "1" }), /* @__PURE__ */ React21__namespace.createElement("path", { d: "m14 13 3-1.5v5L14 15" }));
1697
+ return /* @__PURE__ */ React19__namespace.createElement(BaseFileIcon, null, /* @__PURE__ */ React19__namespace.createElement("path", { d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" }), /* @__PURE__ */ React19__namespace.createElement("polyline", { points: "14 2 14 8 20 8" }), /* @__PURE__ */ React19__namespace.createElement("rect", { x: "8", y: "12", width: "6", height: "4", rx: "1" }), /* @__PURE__ */ React19__namespace.createElement("path", { d: "m14 13 3-1.5v5L14 15" }));
1780
1698
  }
1781
1699
  function FileAudioIcon() {
1782
- return /* @__PURE__ */ React21__namespace.createElement(BaseFileIcon, null, /* @__PURE__ */ React21__namespace.createElement("path", { d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" }), /* @__PURE__ */ React21__namespace.createElement("polyline", { points: "14 2 14 8 20 8" }), /* @__PURE__ */ React21__namespace.createElement("path", { d: "M10 16a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3z" }), /* @__PURE__ */ React21__namespace.createElement("path", { d: "M13 17V11l3-1" }));
1700
+ return /* @__PURE__ */ React19__namespace.createElement(BaseFileIcon, null, /* @__PURE__ */ React19__namespace.createElement("path", { d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" }), /* @__PURE__ */ React19__namespace.createElement("polyline", { points: "14 2 14 8 20 8" }), /* @__PURE__ */ React19__namespace.createElement("path", { d: "M10 16a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3z" }), /* @__PURE__ */ React19__namespace.createElement("path", { d: "M13 17V11l3-1" }));
1783
1701
  }
1784
1702
  function FileTextIcon() {
1785
- return /* @__PURE__ */ React21__namespace.createElement(BaseFileIcon, null, /* @__PURE__ */ React21__namespace.createElement("path", { d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" }), /* @__PURE__ */ React21__namespace.createElement("polyline", { points: "14 2 14 8 20 8" }), /* @__PURE__ */ React21__namespace.createElement("line", { x1: "8", y1: "13", x2: "16", y2: "13" }), /* @__PURE__ */ React21__namespace.createElement("line", { x1: "8", y1: "17", x2: "14", y2: "17" }));
1703
+ return /* @__PURE__ */ React19__namespace.createElement(BaseFileIcon, null, /* @__PURE__ */ React19__namespace.createElement("path", { d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" }), /* @__PURE__ */ React19__namespace.createElement("polyline", { points: "14 2 14 8 20 8" }), /* @__PURE__ */ React19__namespace.createElement("line", { x1: "8", y1: "13", x2: "16", y2: "13" }), /* @__PURE__ */ React19__namespace.createElement("line", { x1: "8", y1: "17", x2: "14", y2: "17" }));
1786
1704
  }
1787
1705
  function FileCodeIcon() {
1788
- return /* @__PURE__ */ React21__namespace.createElement(BaseFileIcon, null, /* @__PURE__ */ React21__namespace.createElement("path", { d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" }), /* @__PURE__ */ React21__namespace.createElement("polyline", { points: "14 2 14 8 20 8" }), /* @__PURE__ */ React21__namespace.createElement("polyline", { points: "11 14 9 16 11 18" }), /* @__PURE__ */ React21__namespace.createElement("polyline", { points: "13 14 15 16 13 18" }));
1706
+ return /* @__PURE__ */ React19__namespace.createElement(BaseFileIcon, null, /* @__PURE__ */ React19__namespace.createElement("path", { d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" }), /* @__PURE__ */ React19__namespace.createElement("polyline", { points: "14 2 14 8 20 8" }), /* @__PURE__ */ React19__namespace.createElement("polyline", { points: "11 14 9 16 11 18" }), /* @__PURE__ */ React19__namespace.createElement("polyline", { points: "13 14 15 16 13 18" }));
1789
1707
  }
1790
1708
  function FileArchiveIcon() {
1791
- return /* @__PURE__ */ React21__namespace.createElement(BaseFileIcon, null, /* @__PURE__ */ React21__namespace.createElement("path", { d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" }), /* @__PURE__ */ React21__namespace.createElement("polyline", { points: "14 2 14 8 20 8" }), /* @__PURE__ */ React21__namespace.createElement("rect", { x: "9", y: "11", width: "6", height: "2" }), /* @__PURE__ */ React21__namespace.createElement("path", { d: "M12 13v5" }));
1709
+ return /* @__PURE__ */ React19__namespace.createElement(BaseFileIcon, null, /* @__PURE__ */ React19__namespace.createElement("path", { d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" }), /* @__PURE__ */ React19__namespace.createElement("polyline", { points: "14 2 14 8 20 8" }), /* @__PURE__ */ React19__namespace.createElement("rect", { x: "9", y: "11", width: "6", height: "2" }), /* @__PURE__ */ React19__namespace.createElement("path", { d: "M12 13v5" }));
1792
1710
  }
1793
1711
  function FileCogIcon() {
1794
- return /* @__PURE__ */ React21__namespace.createElement(BaseFileIcon, null, /* @__PURE__ */ React21__namespace.createElement("path", { d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" }), /* @__PURE__ */ React21__namespace.createElement("polyline", { points: "14 2 14 8 20 8" }), /* @__PURE__ */ React21__namespace.createElement("circle", { cx: "12", cy: "16", r: "2" }), /* @__PURE__ */ React21__namespace.createElement("path", { d: "m12 12 .4.9m2.7 1.1 .9.4m-.9 2.7-.9.4m-2.7 1.1-.4.9m-2.3-.9-.4-.9m-2.7-1.1-.9-.4m.9-2.7.9-.4m2.7-1.1.4-.9" }));
1712
+ return /* @__PURE__ */ React19__namespace.createElement(BaseFileIcon, null, /* @__PURE__ */ React19__namespace.createElement("path", { d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" }), /* @__PURE__ */ React19__namespace.createElement("polyline", { points: "14 2 14 8 20 8" }), /* @__PURE__ */ React19__namespace.createElement("circle", { cx: "12", cy: "16", r: "2" }), /* @__PURE__ */ React19__namespace.createElement("path", { d: "m12 12 .4.9m2.7 1.1 .9.4m-.9 2.7-.9.4m-2.7 1.1-.4.9m-2.3-.9-.4-.9m-2.7-1.1-.9-.4m.9-2.7.9-.4m2.7-1.1.4-.9" }));
1795
1713
  }
1796
1714
  function FileIcon() {
1797
- return /* @__PURE__ */ React21__namespace.createElement(BaseFileIcon, null, /* @__PURE__ */ React21__namespace.createElement("path", { d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" }), /* @__PURE__ */ React21__namespace.createElement("polyline", { points: "14 2 14 8 20 8" }));
1715
+ return /* @__PURE__ */ React19__namespace.createElement(BaseFileIcon, null, /* @__PURE__ */ React19__namespace.createElement("path", { d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" }), /* @__PURE__ */ React19__namespace.createElement("polyline", { points: "14 2 14 8 20 8" }));
1798
1716
  }
1799
1717
  function formatBytes(bytes) {
1800
1718
  if (bytes === 0) return "0 B";
@@ -1806,13 +1724,13 @@ function getFileIcon(file) {
1806
1724
  const type = file.type;
1807
1725
  const extension = file.name.split(".").pop()?.toLowerCase() ?? "";
1808
1726
  if (type.startsWith("video/")) {
1809
- return /* @__PURE__ */ React21__namespace.createElement(FileVideoIcon, null);
1727
+ return /* @__PURE__ */ React19__namespace.createElement(FileVideoIcon, null);
1810
1728
  }
1811
1729
  if (type.startsWith("audio/")) {
1812
- return /* @__PURE__ */ React21__namespace.createElement(FileAudioIcon, null);
1730
+ return /* @__PURE__ */ React19__namespace.createElement(FileAudioIcon, null);
1813
1731
  }
1814
1732
  if (type.startsWith("text/") || ["txt", "md", "rtf", "pdf"].includes(extension)) {
1815
- return /* @__PURE__ */ React21__namespace.createElement(FileTextIcon, null);
1733
+ return /* @__PURE__ */ React19__namespace.createElement(FileTextIcon, null);
1816
1734
  }
1817
1735
  if ([
1818
1736
  "html",
@@ -1831,19 +1749,19 @@ function getFileIcon(file) {
1831
1749
  "cpp",
1832
1750
  "cs"
1833
1751
  ].includes(extension)) {
1834
- return /* @__PURE__ */ React21__namespace.createElement(FileCodeIcon, null);
1752
+ return /* @__PURE__ */ React19__namespace.createElement(FileCodeIcon, null);
1835
1753
  }
1836
1754
  if (["zip", "rar", "7z", "tar", "gz", "bz2"].includes(extension)) {
1837
- return /* @__PURE__ */ React21__namespace.createElement(FileArchiveIcon, null);
1755
+ return /* @__PURE__ */ React19__namespace.createElement(FileArchiveIcon, null);
1838
1756
  }
1839
1757
  if (["exe", "msi", "app", "apk", "deb", "rpm"].includes(extension) || type.startsWith("application/")) {
1840
- return /* @__PURE__ */ React21__namespace.createElement(FileCogIcon, null);
1758
+ return /* @__PURE__ */ React19__namespace.createElement(FileCogIcon, null);
1841
1759
  }
1842
- return /* @__PURE__ */ React21__namespace.createElement(FileIcon, null);
1760
+ return /* @__PURE__ */ React19__namespace.createElement(FileIcon, null);
1843
1761
  }
1844
- var StoreContext = React21__namespace.createContext(null);
1762
+ var StoreContext = React19__namespace.createContext(null);
1845
1763
  function useStoreContext(consumerName) {
1846
- const context = React21__namespace.useContext(StoreContext);
1764
+ const context = React19__namespace.useContext(StoreContext);
1847
1765
  if (!context) {
1848
1766
  throw new Error(`\`${consumerName}\` must be used within \`${ROOT_NAME}\``);
1849
1767
  }
@@ -1854,7 +1772,7 @@ function useStore(selector) {
1854
1772
  const lastValueRef = useLazyRef(
1855
1773
  () => null
1856
1774
  );
1857
- const getSnapshot = React21__namespace.useCallback(() => {
1775
+ const getSnapshot = React19__namespace.useCallback(() => {
1858
1776
  const state = store.getState();
1859
1777
  const prevValue = lastValueRef.current;
1860
1778
  if (prevValue && prevValue.state === state) {
@@ -1864,13 +1782,13 @@ function useStore(selector) {
1864
1782
  lastValueRef.current = { value: nextValue, state };
1865
1783
  return nextValue;
1866
1784
  }, [store, selector, lastValueRef]);
1867
- return React21__namespace.useSyncExternalStore(store.subscribe, getSnapshot, getSnapshot);
1785
+ return React19__namespace.useSyncExternalStore(store.subscribe, getSnapshot, getSnapshot);
1868
1786
  }
1869
- var FileUploadContext = React21__namespace.createContext(
1787
+ var FileUploadContext = React19__namespace.createContext(
1870
1788
  null
1871
1789
  );
1872
1790
  function useFileUploadContext(consumerName) {
1873
- const context = React21__namespace.useContext(FileUploadContext);
1791
+ const context = React19__namespace.useContext(FileUploadContext);
1874
1792
  if (!context) {
1875
1793
  throw new Error(`\`${consumerName}\` must be used within \`${ROOT_NAME}\``);
1876
1794
  }
@@ -1902,15 +1820,15 @@ function FileUpload(props) {
1902
1820
  className,
1903
1821
  ...rootProps
1904
1822
  } = props;
1905
- const inputId = React21__namespace.useId();
1906
- const dropzoneId = React21__namespace.useId();
1907
- const listId = React21__namespace.useId();
1908
- const labelId = React21__namespace.useId();
1823
+ const inputId = React19__namespace.useId();
1824
+ const dropzoneId = React19__namespace.useId();
1825
+ const listId = React19__namespace.useId();
1826
+ const labelId = React19__namespace.useId();
1909
1827
  const dir = reactDirection.useDirection(dirProp);
1910
1828
  const listeners = useLazyRef(() => /* @__PURE__ */ new Set()).current;
1911
1829
  const files = useLazyRef(() => /* @__PURE__ */ new Map()).current;
1912
1830
  const urlCache = useLazyRef(() => /* @__PURE__ */ new WeakMap()).current;
1913
- const inputRef = React21__namespace.useRef(null);
1831
+ const inputRef = React19__namespace.useRef(null);
1914
1832
  const isControlled = value !== void 0;
1915
1833
  const propsRef = useAsRef({
1916
1834
  onValueChange,
@@ -1920,7 +1838,7 @@ function FileUpload(props) {
1920
1838
  onFileValidate,
1921
1839
  onUpload
1922
1840
  });
1923
- const store = React21__namespace.useMemo(() => {
1841
+ const store = React19__namespace.useMemo(() => {
1924
1842
  let state = {
1925
1843
  files,
1926
1844
  dragOver: false,
@@ -2049,7 +1967,7 @@ function FileUpload(props) {
2049
1967
  }
2050
1968
  };
2051
1969
  }, [listeners, files, invalid, propsRef, urlCache]);
2052
- const acceptTypes = React21__namespace.useMemo(
1970
+ const acceptTypes = React19__namespace.useMemo(
2053
1971
  () => accept?.split(",").map((t) => t.trim()) ?? null,
2054
1972
  [accept]
2055
1973
  );
@@ -2067,14 +1985,14 @@ function FileUpload(props) {
2067
1985
  });
2068
1986
  };
2069
1987
  }).current;
2070
- React21__namespace.useEffect(() => {
1988
+ React19__namespace.useEffect(() => {
2071
1989
  if (isControlled) {
2072
1990
  store.dispatch({ type: "SET_FILES", files: value });
2073
1991
  } else if (defaultValue && defaultValue.length > 0 && !store.getState().files.size) {
2074
1992
  store.dispatch({ type: "SET_FILES", files: defaultValue });
2075
1993
  }
2076
1994
  }, [value, defaultValue, isControlled, store]);
2077
- React21__namespace.useEffect(() => {
1995
+ React19__namespace.useEffect(() => {
2078
1996
  return () => {
2079
1997
  for (const file of files.keys()) {
2080
1998
  const cachedUrl = urlCache.get(file);
@@ -2084,7 +2002,7 @@ function FileUpload(props) {
2084
2002
  }
2085
2003
  };
2086
2004
  }, [files, urlCache]);
2087
- const onFilesUpload = React21__namespace.useCallback(
2005
+ const onFilesUpload = React19__namespace.useCallback(
2088
2006
  async (files2) => {
2089
2007
  try {
2090
2008
  for (const file of files2) {
@@ -2122,7 +2040,7 @@ function FileUpload(props) {
2122
2040
  },
2123
2041
  [store, propsRef, onProgress]
2124
2042
  );
2125
- const onFilesChange = React21__namespace.useCallback(
2043
+ const onFilesChange = React19__namespace.useCallback(
2126
2044
  (originalFiles) => {
2127
2045
  if (disabled) return;
2128
2046
  let filesToProcess = [...originalFiles];
@@ -2220,7 +2138,7 @@ function FileUpload(props) {
2220
2138
  disabled
2221
2139
  ]
2222
2140
  );
2223
- const onInputChange = React21__namespace.useCallback(
2141
+ const onInputChange = React19__namespace.useCallback(
2224
2142
  (event) => {
2225
2143
  const files2 = Array.from(event.target.files ?? []);
2226
2144
  onFilesChange(files2);
@@ -2228,7 +2146,7 @@ function FileUpload(props) {
2228
2146
  },
2229
2147
  [onFilesChange]
2230
2148
  );
2231
- const contextValue = React21__namespace.useMemo(
2149
+ const contextValue = React19__namespace.useMemo(
2232
2150
  () => ({
2233
2151
  dropzoneId,
2234
2152
  inputId,
@@ -2246,17 +2164,17 @@ function FileUpload(props) {
2246
2164
  contextValue.dropzoneId,
2247
2165
  inputProps?.["aria-describedby"]
2248
2166
  ].filter(Boolean).join(" ").trim();
2249
- return /* @__PURE__ */ React21__namespace.createElement(StoreContext.Provider, { value: store }, /* @__PURE__ */ React21__namespace.createElement(FileUploadContext.Provider, { value: contextValue }, /* @__PURE__ */ React21__namespace.createElement(
2167
+ return /* @__PURE__ */ React19__namespace.createElement(StoreContext.Provider, { value: store }, /* @__PURE__ */ React19__namespace.createElement(FileUploadContext.Provider, { value: contextValue }, /* @__PURE__ */ React19__namespace.createElement(
2250
2168
  RootPrimitive,
2251
2169
  {
2252
2170
  "data-disabled": disabled ? "" : void 0,
2253
2171
  "data-slot": "file-upload",
2254
2172
  dir,
2255
2173
  ...rootProps,
2256
- className: chunkQQSBW6N3_cjs.cn("relative flex flex-col gap-2", className)
2174
+ className: chunkQRI5TMES_cjs.cn("relative flex flex-col gap-2", className)
2257
2175
  },
2258
2176
  children,
2259
- /* @__PURE__ */ React21__namespace.createElement(
2177
+ /* @__PURE__ */ React19__namespace.createElement(
2260
2178
  "input",
2261
2179
  {
2262
2180
  type: "file",
@@ -2275,7 +2193,7 @@ function FileUpload(props) {
2275
2193
  ...inputProps
2276
2194
  }
2277
2195
  ),
2278
- /* @__PURE__ */ React21__namespace.createElement("div", { id: labelId, className: "sr-only" }, label ?? "File upload")
2196
+ /* @__PURE__ */ React19__namespace.createElement("div", { id: labelId, className: "sr-only" }, label ?? "File upload")
2279
2197
  )));
2280
2198
  }
2281
2199
  function FileUploadDropzone(props) {
@@ -2304,7 +2222,7 @@ function FileUploadDropzone(props) {
2304
2222
  onPaste: onPasteProp,
2305
2223
  onKeyDown: onKeyDownProp
2306
2224
  });
2307
- const onClick = React21__namespace.useCallback(
2225
+ const onClick = React19__namespace.useCallback(
2308
2226
  (event) => {
2309
2227
  propsRef.current.onClick?.(event);
2310
2228
  if (event.defaultPrevented) return;
@@ -2316,7 +2234,7 @@ function FileUploadDropzone(props) {
2316
2234
  },
2317
2235
  [context.inputRef, propsRef]
2318
2236
  );
2319
- const onDragOver = React21__namespace.useCallback(
2237
+ const onDragOver = React19__namespace.useCallback(
2320
2238
  (event) => {
2321
2239
  propsRef.current.onDragOver?.(event);
2322
2240
  if (event.defaultPrevented) return;
@@ -2325,7 +2243,7 @@ function FileUploadDropzone(props) {
2325
2243
  },
2326
2244
  [store, propsRef]
2327
2245
  );
2328
- const onDragEnter = React21__namespace.useCallback(
2246
+ const onDragEnter = React19__namespace.useCallback(
2329
2247
  (event) => {
2330
2248
  propsRef.current.onDragEnter?.(event);
2331
2249
  if (event.defaultPrevented) return;
@@ -2334,7 +2252,7 @@ function FileUploadDropzone(props) {
2334
2252
  },
2335
2253
  [store, propsRef]
2336
2254
  );
2337
- const onDragLeave = React21__namespace.useCallback(
2255
+ const onDragLeave = React19__namespace.useCallback(
2338
2256
  (event) => {
2339
2257
  propsRef.current.onDragLeave?.(event);
2340
2258
  if (event.defaultPrevented) return;
@@ -2347,7 +2265,7 @@ function FileUploadDropzone(props) {
2347
2265
  },
2348
2266
  [store, propsRef]
2349
2267
  );
2350
- const onDrop = React21__namespace.useCallback(
2268
+ const onDrop = React19__namespace.useCallback(
2351
2269
  (event) => {
2352
2270
  propsRef.current.onDrop?.(event);
2353
2271
  if (event.defaultPrevented) return;
@@ -2367,7 +2285,7 @@ function FileUploadDropzone(props) {
2367
2285
  },
2368
2286
  [store, context.inputRef, propsRef]
2369
2287
  );
2370
- const onPaste = React21__namespace.useCallback(
2288
+ const onPaste = React19__namespace.useCallback(
2371
2289
  (event) => {
2372
2290
  propsRef.current.onPaste?.(event);
2373
2291
  if (event.defaultPrevented) return;
@@ -2399,7 +2317,7 @@ function FileUploadDropzone(props) {
2399
2317
  },
2400
2318
  [store, context.inputRef, propsRef]
2401
2319
  );
2402
- const onKeyDown = React21__namespace.useCallback(
2320
+ const onKeyDown = React19__namespace.useCallback(
2403
2321
  (event) => {
2404
2322
  propsRef.current.onKeyDown?.(event);
2405
2323
  if (!event.defaultPrevented && (event.key === "Enter" || event.key === " ")) {
@@ -2410,7 +2328,7 @@ function FileUploadDropzone(props) {
2410
2328
  [context.inputRef, propsRef]
2411
2329
  );
2412
2330
  const DropzonePrimitive = asChild ? reactSlot.Slot : "div";
2413
- return /* @__PURE__ */ React21__namespace.createElement(
2331
+ return /* @__PURE__ */ React19__namespace.createElement(
2414
2332
  DropzonePrimitive,
2415
2333
  {
2416
2334
  role: "region",
@@ -2425,7 +2343,7 @@ function FileUploadDropzone(props) {
2425
2343
  dir: context.dir,
2426
2344
  tabIndex: context.disabled ? -1 : 0,
2427
2345
  ...dropzoneProps,
2428
- className: chunkQQSBW6N3_cjs.cn(
2346
+ className: chunkQRI5TMES_cjs.cn(
2429
2347
  "relative flex select-none flex-col items-center justify-center gap-2 rounded-lg border-2 border-dashed p-6 outline-none transition-colors hover:bg-accent/30 focus-visible:border-ring/50 data-disabled:pointer-events-none data-dragging:border-primary/30 data-dragging:bg-accent/30 data-invalid:ring-destructive/20",
2430
2348
  className
2431
2349
  ),
@@ -2452,7 +2370,7 @@ function FileUploadList(props) {
2452
2370
  const shouldRender = forceMount || fileCount > 0;
2453
2371
  if (!shouldRender) return null;
2454
2372
  const ListPrimitive = asChild ? reactSlot.Slot : "div";
2455
- return /* @__PURE__ */ React21__namespace.createElement(
2373
+ return /* @__PURE__ */ React19__namespace.createElement(
2456
2374
  ListPrimitive,
2457
2375
  {
2458
2376
  role: "list",
@@ -2463,7 +2381,7 @@ function FileUploadList(props) {
2463
2381
  "data-state": shouldRender ? "active" : "inactive",
2464
2382
  dir: context.dir,
2465
2383
  ...listProps,
2466
- className: chunkQQSBW6N3_cjs.cn(
2384
+ className: chunkQRI5TMES_cjs.cn(
2467
2385
  "data-[state=inactive]:fade-out-0 data-[state=active]:fade-in-0 data-[state=inactive]:slide-out-to-top-2 data-[state=active]:slide-in-from-top-2 flex flex-col gap-2 data-[state=active]:animate-in data-[state=inactive]:animate-out",
2468
2386
  orientation === "horizontal" && "flex-row overflow-x-auto p-1.5",
2469
2387
  className
@@ -2471,9 +2389,9 @@ function FileUploadList(props) {
2471
2389
  }
2472
2390
  );
2473
2391
  }
2474
- var FileUploadItemContext = React21__namespace.createContext(null);
2392
+ var FileUploadItemContext = React19__namespace.createContext(null);
2475
2393
  function useFileUploadItemContext(consumerName) {
2476
- const context = React21__namespace.useContext(FileUploadItemContext);
2394
+ const context = React19__namespace.useContext(FileUploadItemContext);
2477
2395
  if (!context) {
2478
2396
  throw new Error(`\`${consumerName}\` must be used within \`${ITEM_NAME}\``);
2479
2397
  }
@@ -2481,7 +2399,7 @@ function useFileUploadItemContext(consumerName) {
2481
2399
  }
2482
2400
  function FileUploadItem(props) {
2483
2401
  const { value, asChild, className, ...itemProps } = props;
2484
- const id = React21__namespace.useId();
2402
+ const id = React19__namespace.useId();
2485
2403
  const statusId = `${id}-status`;
2486
2404
  const nameId = `${id}-name`;
2487
2405
  const sizeId = `${id}-size`;
@@ -2493,7 +2411,7 @@ function FileUploadItem(props) {
2493
2411
  const files = Array.from(state.files.keys());
2494
2412
  return files.indexOf(value) + 1;
2495
2413
  });
2496
- const itemContext = React21__namespace.useMemo(
2414
+ const itemContext = React19__namespace.useMemo(
2497
2415
  () => ({
2498
2416
  id,
2499
2417
  fileState,
@@ -2507,7 +2425,7 @@ function FileUploadItem(props) {
2507
2425
  if (!fileState) return null;
2508
2426
  const statusText = fileState.error ? `Error: ${fileState.error}` : fileState.status === "uploading" ? `Uploading: ${fileState.progress}% complete` : fileState.status === "success" ? "Upload complete" : "Ready to upload";
2509
2427
  const ItemPrimitive = asChild ? reactSlot.Slot : "div";
2510
- return /* @__PURE__ */ React21__namespace.createElement(FileUploadItemContext.Provider, { value: itemContext }, /* @__PURE__ */ React21__namespace.createElement(
2428
+ return /* @__PURE__ */ React19__namespace.createElement(FileUploadItemContext.Provider, { value: itemContext }, /* @__PURE__ */ React19__namespace.createElement(
2511
2429
  ItemPrimitive,
2512
2430
  {
2513
2431
  role: "listitem",
@@ -2519,20 +2437,20 @@ function FileUploadItem(props) {
2519
2437
  "data-slot": "file-upload-item",
2520
2438
  dir: context.dir,
2521
2439
  ...itemProps,
2522
- className: chunkQQSBW6N3_cjs.cn(
2440
+ className: chunkQRI5TMES_cjs.cn(
2523
2441
  "relative flex items-center gap-2.5 rounded-md border p-3",
2524
2442
  className
2525
2443
  )
2526
2444
  },
2527
2445
  props.children,
2528
- /* @__PURE__ */ React21__namespace.createElement("span", { id: statusId, className: "sr-only" }, statusText)
2446
+ /* @__PURE__ */ React19__namespace.createElement("span", { id: statusId, className: "sr-only" }, statusText)
2529
2447
  ));
2530
2448
  }
2531
2449
  function FileUploadItemPreview(props) {
2532
2450
  const { render, asChild, children, className, ...previewProps } = props;
2533
2451
  const itemContext = useFileUploadItemContext(ITEM_PREVIEW_NAME);
2534
2452
  const context = useFileUploadContext(ITEM_PREVIEW_NAME);
2535
- const getDefaultRender = React21__namespace.useCallback(
2453
+ const getDefaultRender = React19__namespace.useCallback(
2536
2454
  (file) => {
2537
2455
  if (itemContext.fileState?.file.type.startsWith("image/")) {
2538
2456
  let url = context.urlCache.get(file);
@@ -2542,14 +2460,14 @@ function FileUploadItemPreview(props) {
2542
2460
  }
2543
2461
  return (
2544
2462
  // biome-ignore lint/performance/noImgElement: dynamic file URLs from user uploads don't work well with Next.js Image optimization
2545
- /* @__PURE__ */ React21__namespace.createElement("img", { src: url, alt: file.name, className: "size-full object-cover" })
2463
+ /* @__PURE__ */ React19__namespace.createElement("img", { src: url, alt: file.name, className: "size-full object-cover" })
2546
2464
  );
2547
2465
  }
2548
2466
  return getFileIcon(file);
2549
2467
  },
2550
2468
  [itemContext.fileState?.file.type, context.urlCache]
2551
2469
  );
2552
- const onPreviewRender = React21__namespace.useCallback(
2470
+ const onPreviewRender = React19__namespace.useCallback(
2553
2471
  (file) => {
2554
2472
  if (render) {
2555
2473
  return render(file, () => getDefaultRender(file));
@@ -2560,13 +2478,13 @@ function FileUploadItemPreview(props) {
2560
2478
  );
2561
2479
  if (!itemContext.fileState) return null;
2562
2480
  const ItemPreviewPrimitive = asChild ? reactSlot.Slot : "div";
2563
- return /* @__PURE__ */ React21__namespace.createElement(
2481
+ return /* @__PURE__ */ React19__namespace.createElement(
2564
2482
  ItemPreviewPrimitive,
2565
2483
  {
2566
2484
  "aria-labelledby": itemContext.nameId,
2567
2485
  "data-slot": "file-upload-preview",
2568
2486
  ...previewProps,
2569
- className: chunkQQSBW6N3_cjs.cn(
2487
+ className: chunkQRI5TMES_cjs.cn(
2570
2488
  "relative flex size-10 shrink-0 items-center justify-center overflow-hidden rounded border bg-accent/50 [&>svg]:size-10",
2571
2489
  className
2572
2490
  )
@@ -2587,35 +2505,35 @@ function FileUploadItemMetadata(props) {
2587
2505
  const itemContext = useFileUploadItemContext(ITEM_METADATA_NAME);
2588
2506
  if (!itemContext.fileState) return null;
2589
2507
  const ItemMetadataPrimitive = asChild ? reactSlot.Slot : "div";
2590
- return /* @__PURE__ */ React21__namespace.createElement(
2508
+ return /* @__PURE__ */ React19__namespace.createElement(
2591
2509
  ItemMetadataPrimitive,
2592
2510
  {
2593
2511
  "data-slot": "file-upload-metadata",
2594
2512
  dir: context.dir,
2595
2513
  ...metadataProps,
2596
- className: chunkQQSBW6N3_cjs.cn("flex min-w-0 flex-1 flex-col", className)
2514
+ className: chunkQRI5TMES_cjs.cn("flex min-w-0 flex-1 flex-col", className)
2597
2515
  },
2598
- children ?? /* @__PURE__ */ React21__namespace.createElement(React21__namespace.Fragment, null, /* @__PURE__ */ React21__namespace.createElement(
2516
+ children ?? /* @__PURE__ */ React19__namespace.createElement(React19__namespace.Fragment, null, /* @__PURE__ */ React19__namespace.createElement(
2599
2517
  "span",
2600
2518
  {
2601
2519
  id: itemContext.nameId,
2602
- className: chunkQQSBW6N3_cjs.cn(
2520
+ className: chunkQRI5TMES_cjs.cn(
2603
2521
  "truncate font-medium text-sm",
2604
2522
  size === "sm" && "font-normal text-[13px] leading-snug"
2605
2523
  )
2606
2524
  },
2607
2525
  itemContext.fileState.file.name
2608
- ), /* @__PURE__ */ React21__namespace.createElement(
2526
+ ), /* @__PURE__ */ React19__namespace.createElement(
2609
2527
  "span",
2610
2528
  {
2611
2529
  id: itemContext.sizeId,
2612
- className: chunkQQSBW6N3_cjs.cn(
2530
+ className: chunkQRI5TMES_cjs.cn(
2613
2531
  "truncate text-xs opacity-70",
2614
2532
  size === "sm" && "text-[11px] leading-snug"
2615
2533
  )
2616
2534
  },
2617
2535
  formatBytes(itemContext.fileState.file.size)
2618
- ), itemContext.fileState.error && /* @__PURE__ */ React21__namespace.createElement(
2536
+ ), itemContext.fileState.error && /* @__PURE__ */ React19__namespace.createElement(
2619
2537
  "span",
2620
2538
  {
2621
2539
  id: itemContext.messageId,
@@ -2629,7 +2547,7 @@ function FileUploadItemDelete(props) {
2629
2547
  const { asChild, onClick: onClickProp, ...deleteProps } = props;
2630
2548
  const store = useStoreContext(ITEM_DELETE_NAME);
2631
2549
  const itemContext = useFileUploadItemContext(ITEM_DELETE_NAME);
2632
- const onClick = React21__namespace.useCallback(
2550
+ const onClick = React19__namespace.useCallback(
2633
2551
  (event) => {
2634
2552
  onClickProp?.(event);
2635
2553
  if (!itemContext.fileState || event.defaultPrevented) return;
@@ -2642,7 +2560,7 @@ function FileUploadItemDelete(props) {
2642
2560
  );
2643
2561
  if (!itemContext.fileState) return null;
2644
2562
  const ItemDeletePrimitive = asChild ? reactSlot.Slot : "button";
2645
- return /* @__PURE__ */ React21__namespace.createElement(
2563
+ return /* @__PURE__ */ React19__namespace.createElement(
2646
2564
  ItemDeletePrimitive,
2647
2565
  {
2648
2566
  type: "button",
@@ -2681,16 +2599,16 @@ function FileInput({
2681
2599
  onFileRemove,
2682
2600
  ...props
2683
2601
  }) {
2684
- const normalizedValue = React21__namespace.useMemo(() => {
2602
+ const normalizedValue = React19__namespace.useMemo(() => {
2685
2603
  const safeValue = Array.isArray(value) ? value : [];
2686
2604
  return multiple ? safeValue : safeValue.slice(0, 1);
2687
2605
  }, [multiple, value]);
2688
- const [cropperOpen, setCropperOpen] = React21__namespace.useState(false);
2689
- const [imageToCrop, setImageToCrop] = React21__namespace.useState(null);
2690
- const [crop, setCrop] = React21__namespace.useState({ x: 0, y: 0 });
2691
- const [zoom, setZoom] = React21__namespace.useState(1);
2692
- const [croppedAreaPixels, setCroppedAreaPixels] = React21__namespace.useState(null);
2693
- const validateFile = React21__namespace.useCallback(
2606
+ const [cropperOpen, setCropperOpen] = React19__namespace.useState(false);
2607
+ const [imageToCrop, setImageToCrop] = React19__namespace.useState(null);
2608
+ const [crop, setCrop] = React19__namespace.useState({ x: 0, y: 0 });
2609
+ const [zoom, setZoom] = React19__namespace.useState(1);
2610
+ const [croppedAreaPixels, setCroppedAreaPixels] = React19__namespace.useState(null);
2611
+ const validateFile = React19__namespace.useCallback(
2694
2612
  (file) => {
2695
2613
  if (accept) {
2696
2614
  const acceptedTypes = accept.split(",").map((type) => type.trim());
@@ -2725,7 +2643,7 @@ function FileInput({
2725
2643
  },
2726
2644
  [accept, maxSize]
2727
2645
  );
2728
- const mapRejectedFileError = React21__namespace.useCallback(
2646
+ const mapRejectedFileError = React19__namespace.useCallback(
2729
2647
  (file, message) => {
2730
2648
  const normalizedMessage = message.toLowerCase();
2731
2649
  if (normalizedMessage.includes("maximum") && normalizedMessage.includes("files")) {
@@ -2744,27 +2662,27 @@ function FileInput({
2744
2662
  },
2745
2663
  [maxSize]
2746
2664
  );
2747
- const handleFileValidate = React21__namespace.useCallback(
2665
+ const handleFileValidate = React19__namespace.useCallback(
2748
2666
  (file) => {
2749
2667
  const validationError = validateFile(file);
2750
2668
  return validationError?.message ?? null;
2751
2669
  },
2752
2670
  [validateFile]
2753
2671
  );
2754
- const handleFileReject = React21__namespace.useCallback(
2672
+ const handleFileReject = React19__namespace.useCallback(
2755
2673
  (file, message) => {
2756
2674
  const validationError = mapRejectedFileError(file, message);
2757
2675
  onValidationError?.([validationError]);
2758
2676
  },
2759
2677
  [mapRejectedFileError, onValidationError]
2760
2678
  );
2761
- const handleBlur = React21__namespace.useCallback(() => {
2679
+ const handleBlur = React19__namespace.useCallback(() => {
2762
2680
  onBlur?.();
2763
2681
  }, [onBlur]);
2764
- const fileIdentity = React21__namespace.useCallback((file) => {
2682
+ const fileIdentity = React19__namespace.useCallback((file) => {
2765
2683
  return `${file.name}-${file.size}-${file.lastModified}`;
2766
2684
  }, []);
2767
- const handleValueChange = React21__namespace.useCallback(
2685
+ const handleValueChange = React19__namespace.useCallback(
2768
2686
  (incomingFiles) => {
2769
2687
  const nextFiles = multiple ? incomingFiles : incomingFiles.slice(-1);
2770
2688
  if (onFileRemove && nextFiles.length < normalizedValue.length) {
@@ -2800,7 +2718,7 @@ function FileInput({
2800
2718
  fileIdentity
2801
2719
  ]
2802
2720
  );
2803
- const createCroppedImage = React21__namespace.useCallback(
2721
+ const createCroppedImage = React19__namespace.useCallback(
2804
2722
  async (imageUrl, cropArea) => {
2805
2723
  return new Promise((resolve, reject) => {
2806
2724
  const image = new Image();
@@ -2844,7 +2762,7 @@ function FileInput({
2844
2762
  },
2845
2763
  []
2846
2764
  );
2847
- const handleCropSave = React21__namespace.useCallback(async () => {
2765
+ const handleCropSave = React19__namespace.useCallback(async () => {
2848
2766
  if (!imageToCrop || !croppedAreaPixels) return;
2849
2767
  try {
2850
2768
  const croppedBlob = await createCroppedImage(
@@ -2892,7 +2810,7 @@ function FileInput({
2892
2810
  onChange,
2893
2811
  onCropComplete
2894
2812
  ]);
2895
- const handleCropCancel = React21__namespace.useCallback(() => {
2813
+ const handleCropCancel = React19__namespace.useCallback(() => {
2896
2814
  if (imageToCrop) {
2897
2815
  URL.revokeObjectURL(imageToCrop.url);
2898
2816
  }
@@ -2902,32 +2820,32 @@ function FileInput({
2902
2820
  setZoom(1);
2903
2821
  setCroppedAreaPixels(null);
2904
2822
  }, [imageToCrop]);
2905
- const handleCrop = React21__namespace.useCallback((file) => {
2823
+ const handleCrop = React19__namespace.useCallback((file) => {
2906
2824
  if (!file.type.startsWith("image/")) return;
2907
2825
  const previewUrl = URL.createObjectURL(file);
2908
2826
  setImageToCrop({ file, url: previewUrl });
2909
2827
  setCropperOpen(true);
2910
2828
  }, []);
2911
- const onCropChange = React21__namespace.useCallback((nextCrop) => {
2829
+ const onCropChange = React19__namespace.useCallback((nextCrop) => {
2912
2830
  setCrop(nextCrop);
2913
2831
  }, []);
2914
- const onZoomChange = React21__namespace.useCallback((nextZoom) => {
2832
+ const onZoomChange = React19__namespace.useCallback((nextZoom) => {
2915
2833
  setZoom(nextZoom);
2916
2834
  }, []);
2917
- const onCropCompleteInternal = React21__namespace.useCallback(
2835
+ const onCropCompleteInternal = React19__namespace.useCallback(
2918
2836
  (_, nextCroppedAreaPixels) => {
2919
2837
  setCroppedAreaPixels(nextCroppedAreaPixels);
2920
2838
  },
2921
2839
  []
2922
2840
  );
2923
- const formatFileSize = React21__namespace.useCallback((bytes) => {
2841
+ const formatFileSize = React19__namespace.useCallback((bytes) => {
2924
2842
  if (bytes === 0) return "0 Bytes";
2925
2843
  const unit = 1024;
2926
2844
  const units = ["Bytes", "KB", "MB", "GB"];
2927
2845
  const index = Math.floor(Math.log(bytes) / Math.log(unit));
2928
2846
  return Math.round(bytes / Math.pow(unit, index) * 100) / 100 + " " + units[index];
2929
2847
  }, []);
2930
- React21__namespace.useEffect(() => {
2848
+ React19__namespace.useEffect(() => {
2931
2849
  return () => {
2932
2850
  if (imageToCrop) {
2933
2851
  URL.revokeObjectURL(imageToCrop.url);
@@ -2935,7 +2853,7 @@ function FileInput({
2935
2853
  };
2936
2854
  }, [imageToCrop]);
2937
2855
  const fileCountLabel = normalizedValue.length > 0 ? `${normalizedValue.length} file(s) selected` : placeholder;
2938
- return /* @__PURE__ */ React21__namespace.createElement(React21__namespace.Fragment, null, /* @__PURE__ */ React21__namespace.createElement(
2856
+ return /* @__PURE__ */ React19__namespace.createElement(React19__namespace.Fragment, null, /* @__PURE__ */ React19__namespace.createElement(
2939
2857
  FileUpload,
2940
2858
  {
2941
2859
  name,
@@ -2951,7 +2869,7 @@ function FileInput({
2951
2869
  required: required && normalizedValue.length === 0,
2952
2870
  invalid: Boolean(error || props["aria-invalid"]),
2953
2871
  label: "File upload",
2954
- className: chunkQQSBW6N3_cjs.cn(className),
2872
+ className: chunkQRI5TMES_cjs.cn(className),
2955
2873
  inputProps: {
2956
2874
  ...props,
2957
2875
  onBlur: handleBlur,
@@ -2961,12 +2879,12 @@ function FileInput({
2961
2879
  "aria-describedby": props["aria-describedby"]
2962
2880
  }
2963
2881
  },
2964
- /* @__PURE__ */ React21__namespace.createElement(
2882
+ /* @__PURE__ */ React19__namespace.createElement(
2965
2883
  FileUploadDropzone,
2966
2884
  {
2967
2885
  role: "button",
2968
2886
  "aria-label": placeholder,
2969
- className: chunkQQSBW6N3_cjs.cn(
2887
+ className: chunkQRI5TMES_cjs.cn(
2970
2888
  "flex min-h-32 w-full cursor-pointer items-center justify-center border-input bg-transparent p-6 transition-colors",
2971
2889
  "hover:bg-accent/50 hover:border-ring",
2972
2890
  "data-[dragging]:bg-accent data-[dragging]:border-ring",
@@ -2974,7 +2892,7 @@ function FileInput({
2974
2892
  error && "border-destructive"
2975
2893
  )
2976
2894
  },
2977
- /* @__PURE__ */ React21__namespace.createElement("div", { className: "flex flex-col items-center gap-2 text-center" }, /* @__PURE__ */ React21__namespace.createElement(
2895
+ /* @__PURE__ */ React19__namespace.createElement("div", { className: "flex flex-col items-center gap-2 text-center" }, /* @__PURE__ */ React19__namespace.createElement(
2978
2896
  "svg",
2979
2897
  {
2980
2898
  width: "48",
@@ -2987,23 +2905,23 @@ function FileInput({
2987
2905
  strokeLinejoin: "round",
2988
2906
  "aria-hidden": "true"
2989
2907
  },
2990
- /* @__PURE__ */ React21__namespace.createElement("path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" }),
2991
- /* @__PURE__ */ React21__namespace.createElement("polyline", { points: "17 8 12 3 7 8" }),
2992
- /* @__PURE__ */ React21__namespace.createElement("line", { x1: "12", y1: "3", x2: "12", y2: "15" })
2993
- ), /* @__PURE__ */ React21__namespace.createElement("p", { className: "text-sm font-medium" }, fileCountLabel), accept && /* @__PURE__ */ React21__namespace.createElement("p", { className: "text-xs" }, "Accepted: ", accept), /* @__PURE__ */ React21__namespace.createElement("p", { className: "text-xs" }, "Max size: ", formatFileSize(maxSize)))
2908
+ /* @__PURE__ */ React19__namespace.createElement("path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" }),
2909
+ /* @__PURE__ */ React19__namespace.createElement("polyline", { points: "17 8 12 3 7 8" }),
2910
+ /* @__PURE__ */ React19__namespace.createElement("line", { x1: "12", y1: "3", x2: "12", y2: "15" })
2911
+ ), /* @__PURE__ */ React19__namespace.createElement("p", { className: "text-sm font-medium" }, fileCountLabel), accept && /* @__PURE__ */ React19__namespace.createElement("p", { className: "text-xs" }, "Accepted: ", accept), /* @__PURE__ */ React19__namespace.createElement("p", { className: "text-xs" }, "Max size: ", formatFileSize(maxSize)))
2994
2912
  ),
2995
- /* @__PURE__ */ React21__namespace.createElement(FileUploadList, { className: "mt-4" }, normalizedValue.map((file, index) => {
2913
+ /* @__PURE__ */ React19__namespace.createElement(FileUploadList, { className: "mt-4" }, normalizedValue.map((file, index) => {
2996
2914
  const progressValue = uploadProgress[file.name];
2997
2915
  const hasProgress = showProgress && typeof progressValue === "number";
2998
- return /* @__PURE__ */ React21__namespace.createElement(
2916
+ return /* @__PURE__ */ React19__namespace.createElement(
2999
2917
  FileUploadItem,
3000
2918
  {
3001
2919
  key: `${file.name}-${index}`,
3002
2920
  value: file,
3003
2921
  className: "flex items-center gap-3 border-border bg-card text-card-foreground hover:bg-primary/50 transition-colors"
3004
2922
  },
3005
- showPreview ? /* @__PURE__ */ React21__namespace.createElement(FileUploadItemPreview, { className: "h-12 w-12 rounded [&>img]:h-full [&>img]:w-full [&>img]:object-cover [&>svg]:size-6" }) : null,
3006
- /* @__PURE__ */ React21__namespace.createElement("div", { className: "flex min-w-0 flex-1 flex-col" }, /* @__PURE__ */ React21__namespace.createElement(FileUploadItemMetadata, { className: "min-w-0" }), /* @__PURE__ */ React21__namespace.createElement("span", { className: "text-xs" }, formatFileSize(file.size)), hasProgress ? /* @__PURE__ */ React21__namespace.createElement("div", { className: "mt-1 flex items-center gap-2" }, /* @__PURE__ */ React21__namespace.createElement(
2923
+ showPreview ? /* @__PURE__ */ React19__namespace.createElement(FileUploadItemPreview, { className: "h-12 w-12 rounded [&>img]:h-full [&>img]:w-full [&>img]:object-cover [&>svg]:size-6" }) : null,
2924
+ /* @__PURE__ */ React19__namespace.createElement("div", { className: "flex min-w-0 flex-1 flex-col" }, /* @__PURE__ */ React19__namespace.createElement(FileUploadItemMetadata, { className: "min-w-0" }), /* @__PURE__ */ React19__namespace.createElement("span", { className: "text-xs" }, formatFileSize(file.size)), hasProgress ? /* @__PURE__ */ React19__namespace.createElement("div", { className: "mt-1 flex items-center gap-2" }, /* @__PURE__ */ React19__namespace.createElement(
3007
2925
  "div",
3008
2926
  {
3009
2927
  className: "h-1.5 flex-1 overflow-hidden rounded-full bg-accent/40",
@@ -3013,16 +2931,16 @@ function FileInput({
3013
2931
  "aria-valuemax": 100,
3014
2932
  "aria-label": `Upload progress: ${progressValue}%`
3015
2933
  },
3016
- /* @__PURE__ */ React21__namespace.createElement(
2934
+ /* @__PURE__ */ React19__namespace.createElement(
3017
2935
  "div",
3018
2936
  {
3019
2937
  className: "h-full bg-primary transition-all",
3020
2938
  style: { width: `${progressValue}%` }
3021
2939
  }
3022
2940
  )
3023
- ), /* @__PURE__ */ React21__namespace.createElement("span", { className: "text-xs" }, progressValue, "%")) : null),
3024
- enableCropping && file.type.startsWith("image/") ? /* @__PURE__ */ React21__namespace.createElement(
3025
- chunkQQSBW6N3_cjs.Button,
2941
+ ), /* @__PURE__ */ React19__namespace.createElement("span", { className: "text-xs" }, progressValue, "%")) : null),
2942
+ enableCropping && file.type.startsWith("image/") ? /* @__PURE__ */ React19__namespace.createElement(
2943
+ chunkQRI5TMES_cjs.Button,
3026
2944
  {
3027
2945
  type: "button",
3028
2946
  variant: "ghost",
@@ -3035,7 +2953,7 @@ function FileInput({
3035
2953
  className: "h-8 w-8 p-0",
3036
2954
  "aria-label": `Crop ${file.name}`
3037
2955
  },
3038
- /* @__PURE__ */ React21__namespace.createElement(
2956
+ /* @__PURE__ */ React19__namespace.createElement(
3039
2957
  "svg",
3040
2958
  {
3041
2959
  width: "20",
@@ -3048,12 +2966,12 @@ function FileInput({
3048
2966
  strokeLinejoin: "round",
3049
2967
  "aria-hidden": "true"
3050
2968
  },
3051
- /* @__PURE__ */ React21__namespace.createElement("path", { d: "M6.13 1L6 16a2 2 0 0 0 2 2h15" }),
3052
- /* @__PURE__ */ React21__namespace.createElement("path", { d: "M1 6.13L16 6a2 2 0 0 1 2 2v15" })
2969
+ /* @__PURE__ */ React19__namespace.createElement("path", { d: "M6.13 1L6 16a2 2 0 0 0 2 2h15" }),
2970
+ /* @__PURE__ */ React19__namespace.createElement("path", { d: "M1 6.13L16 6a2 2 0 0 1 2 2v15" })
3053
2971
  )
3054
2972
  ) : null,
3055
- /* @__PURE__ */ React21__namespace.createElement(FileUploadItemDelete, { asChild: true }, /* @__PURE__ */ React21__namespace.createElement(
3056
- chunkQQSBW6N3_cjs.Button,
2973
+ /* @__PURE__ */ React19__namespace.createElement(FileUploadItemDelete, { asChild: true }, /* @__PURE__ */ React19__namespace.createElement(
2974
+ chunkQRI5TMES_cjs.Button,
3057
2975
  {
3058
2976
  type: "button",
3059
2977
  variant: "ghost",
@@ -3062,7 +2980,7 @@ function FileInput({
3062
2980
  className: "h-8 w-8 p-0",
3063
2981
  "aria-label": `Remove ${file.name}`
3064
2982
  },
3065
- /* @__PURE__ */ React21__namespace.createElement(
2983
+ /* @__PURE__ */ React19__namespace.createElement(
3066
2984
  "svg",
3067
2985
  {
3068
2986
  width: "20",
@@ -3075,13 +2993,13 @@ function FileInput({
3075
2993
  strokeLinejoin: "round",
3076
2994
  "aria-hidden": "true"
3077
2995
  },
3078
- /* @__PURE__ */ React21__namespace.createElement("line", { x1: "18", y1: "6", x2: "6", y2: "18" }),
3079
- /* @__PURE__ */ React21__namespace.createElement("line", { x1: "6", y1: "6", x2: "18", y2: "18" })
2996
+ /* @__PURE__ */ React19__namespace.createElement("line", { x1: "18", y1: "6", x2: "6", y2: "18" }),
2997
+ /* @__PURE__ */ React19__namespace.createElement("line", { x1: "6", y1: "6", x2: "18", y2: "18" })
3080
2998
  )
3081
2999
  ))
3082
3000
  );
3083
3001
  }))
3084
- ), /* @__PURE__ */ React21__namespace.createElement(
3002
+ ), /* @__PURE__ */ React19__namespace.createElement(
3085
3003
  Dialog,
3086
3004
  {
3087
3005
  open: cropperOpen && Boolean(imageToCrop),
@@ -3091,15 +3009,15 @@ function FileInput({
3091
3009
  }
3092
3010
  }
3093
3011
  },
3094
- imageToCrop ? /* @__PURE__ */ React21__namespace.createElement(
3012
+ imageToCrop ? /* @__PURE__ */ React19__namespace.createElement(
3095
3013
  DialogContent,
3096
3014
  {
3097
3015
  showCloseButton: false,
3098
3016
  className: "max-w-3xl gap-0 p-0",
3099
3017
  "aria-describedby": void 0
3100
3018
  },
3101
- /* @__PURE__ */ React21__namespace.createElement(DialogHeader, { className: "flex-row items-center justify-between border-b border-border px-4 py-3" }, /* @__PURE__ */ React21__namespace.createElement(DialogTitle, null, "Crop Image"), /* @__PURE__ */ React21__namespace.createElement(DialogClose, { asChild: true }, /* @__PURE__ */ React21__namespace.createElement(
3102
- chunkQQSBW6N3_cjs.Button,
3019
+ /* @__PURE__ */ React19__namespace.createElement(DialogHeader, { className: "flex-row items-center justify-between border-b border-border px-4 py-3" }, /* @__PURE__ */ React19__namespace.createElement(DialogTitle, null, "Crop Image"), /* @__PURE__ */ React19__namespace.createElement(DialogClose, { asChild: true }, /* @__PURE__ */ React19__namespace.createElement(
3020
+ chunkQRI5TMES_cjs.Button,
3103
3021
  {
3104
3022
  type: "button",
3105
3023
  variant: "ghost",
@@ -3107,7 +3025,7 @@ function FileInput({
3107
3025
  className: "h-8 w-8 p-0",
3108
3026
  "aria-label": "Close"
3109
3027
  },
3110
- /* @__PURE__ */ React21__namespace.createElement(
3028
+ /* @__PURE__ */ React19__namespace.createElement(
3111
3029
  "svg",
3112
3030
  {
3113
3031
  width: "16",
@@ -3120,11 +3038,11 @@ function FileInput({
3120
3038
  strokeLinejoin: "round",
3121
3039
  "aria-hidden": "true"
3122
3040
  },
3123
- /* @__PURE__ */ React21__namespace.createElement("line", { x1: "18", y1: "6", x2: "6", y2: "18" }),
3124
- /* @__PURE__ */ React21__namespace.createElement("line", { x1: "6", y1: "6", x2: "18", y2: "18" })
3041
+ /* @__PURE__ */ React19__namespace.createElement("line", { x1: "18", y1: "6", x2: "6", y2: "18" }),
3042
+ /* @__PURE__ */ React19__namespace.createElement("line", { x1: "6", y1: "6", x2: "18", y2: "18" })
3125
3043
  )
3126
3044
  ))),
3127
- /* @__PURE__ */ React21__namespace.createElement("div", { className: "p-4" }, /* @__PURE__ */ React21__namespace.createElement(
3045
+ /* @__PURE__ */ React19__namespace.createElement("div", { className: "p-4" }, /* @__PURE__ */ React19__namespace.createElement(
3128
3046
  "div",
3129
3047
  {
3130
3048
  className: "relative h-96 w-full overflow-hidden rounded-md bg-accent/40",
@@ -3146,7 +3064,7 @@ function FileInput({
3146
3064
  document.addEventListener("mouseup", handleMouseUp);
3147
3065
  }
3148
3066
  },
3149
- /* @__PURE__ */ React21__namespace.createElement(
3067
+ /* @__PURE__ */ React19__namespace.createElement(
3150
3068
  "img",
3151
3069
  {
3152
3070
  src: imageToCrop.url,
@@ -3181,7 +3099,7 @@ function FileInput({
3181
3099
  }
3182
3100
  }
3183
3101
  ),
3184
- /* @__PURE__ */ React21__namespace.createElement(
3102
+ /* @__PURE__ */ React19__namespace.createElement(
3185
3103
  "div",
3186
3104
  {
3187
3105
  className: "pointer-events-none absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 rounded border-2 border-primary",
@@ -3190,9 +3108,9 @@ function FileInput({
3190
3108
  aspectRatio: cropAspectRatio ? String(cropAspectRatio) : void 0
3191
3109
  }
3192
3110
  },
3193
- /* @__PURE__ */ React21__namespace.createElement("div", { className: "absolute inset-0 grid grid-cols-3 grid-rows-3" }, /* @__PURE__ */ React21__namespace.createElement("div", { className: "border-r border-b border-primary/30" }), /* @__PURE__ */ React21__namespace.createElement("div", { className: "border-r border-b border-primary/30" }), /* @__PURE__ */ React21__namespace.createElement("div", { className: "border-b border-primary/30" }), /* @__PURE__ */ React21__namespace.createElement("div", { className: "border-r border-b border-primary/30" }), /* @__PURE__ */ React21__namespace.createElement("div", { className: "border-r border-b border-primary/30" }), /* @__PURE__ */ React21__namespace.createElement("div", { className: "border-b border-primary/30" }), /* @__PURE__ */ React21__namespace.createElement("div", { className: "border-r border-primary/30" }), /* @__PURE__ */ React21__namespace.createElement("div", { className: "border-r border-primary/30" }), /* @__PURE__ */ React21__namespace.createElement("div", null))
3111
+ /* @__PURE__ */ React19__namespace.createElement("div", { className: "absolute inset-0 grid grid-cols-3 grid-rows-3" }, /* @__PURE__ */ React19__namespace.createElement("div", { className: "border-r border-b border-primary/30" }), /* @__PURE__ */ React19__namespace.createElement("div", { className: "border-r border-b border-primary/30" }), /* @__PURE__ */ React19__namespace.createElement("div", { className: "border-b border-primary/30" }), /* @__PURE__ */ React19__namespace.createElement("div", { className: "border-r border-b border-primary/30" }), /* @__PURE__ */ React19__namespace.createElement("div", { className: "border-r border-b border-primary/30" }), /* @__PURE__ */ React19__namespace.createElement("div", { className: "border-b border-primary/30" }), /* @__PURE__ */ React19__namespace.createElement("div", { className: "border-r border-primary/30" }), /* @__PURE__ */ React19__namespace.createElement("div", { className: "border-r border-primary/30" }), /* @__PURE__ */ React19__namespace.createElement("div", null))
3194
3112
  )
3195
- ), /* @__PURE__ */ React21__namespace.createElement("div", { className: "mt-4 flex items-center gap-3" }, /* @__PURE__ */ React21__namespace.createElement(
3113
+ ), /* @__PURE__ */ React19__namespace.createElement("div", { className: "mt-4 flex items-center gap-3" }, /* @__PURE__ */ React19__namespace.createElement(
3196
3114
  "label",
3197
3115
  {
3198
3116
  htmlFor: "zoom-slider",
@@ -3201,7 +3119,7 @@ function FileInput({
3201
3119
  "Zoom: ",
3202
3120
  zoom.toFixed(1),
3203
3121
  "x"
3204
- ), /* @__PURE__ */ React21__namespace.createElement(
3122
+ ), /* @__PURE__ */ React19__namespace.createElement(
3205
3123
  "input",
3206
3124
  {
3207
3125
  id: "zoom-slider",
@@ -3215,7 +3133,7 @@ function FileInput({
3215
3133
  "aria-label": "Zoom level"
3216
3134
  }
3217
3135
  ))),
3218
- /* @__PURE__ */ React21__namespace.createElement("div", { className: "flex items-center justify-end gap-2 border-t border-border p-4" }, /* @__PURE__ */ React21__namespace.createElement(chunkQQSBW6N3_cjs.Button, { type: "button", variant: "outline", onClick: handleCropCancel }, "Cancel"), /* @__PURE__ */ React21__namespace.createElement(chunkQQSBW6N3_cjs.Button, { type: "button", onClick: handleCropSave }, "Save"))
3136
+ /* @__PURE__ */ React19__namespace.createElement("div", { className: "flex items-center justify-end gap-2 border-t border-border p-4" }, /* @__PURE__ */ React19__namespace.createElement(chunkQRI5TMES_cjs.Button, { type: "button", variant: "outline", onClick: handleCropCancel }, "Cancel"), /* @__PURE__ */ React19__namespace.createElement(chunkQRI5TMES_cjs.Button, { type: "button", onClick: handleCropSave }, "Save"))
3219
3137
  ) : null
3220
3138
  ));
3221
3139
  }
@@ -3231,11 +3149,11 @@ function Calendar({
3231
3149
  ...props
3232
3150
  }) {
3233
3151
  const defaultClassNames = reactDayPicker.getDefaultClassNames();
3234
- return /* @__PURE__ */ React21__namespace.createElement(
3152
+ return /* @__PURE__ */ React19__namespace.createElement(
3235
3153
  reactDayPicker.DayPicker,
3236
3154
  {
3237
3155
  showOutsideDays,
3238
- className: chunkQQSBW6N3_cjs.cn(
3156
+ className: chunkQRI5TMES_cjs.cn(
3239
3157
  "bg-background group/calendar p-3 [--cell-size:--spacing(8)] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent",
3240
3158
  String.raw`rtl:**:[.rdp-button\_next>svg]:rotate-180`,
3241
3159
  String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`,
@@ -3247,106 +3165,106 @@ function Calendar({
3247
3165
  ...formatters
3248
3166
  },
3249
3167
  classNames: {
3250
- root: chunkQQSBW6N3_cjs.cn("w-fit", defaultClassNames.root),
3251
- months: chunkQQSBW6N3_cjs.cn(
3168
+ root: chunkQRI5TMES_cjs.cn("w-fit", defaultClassNames.root),
3169
+ months: chunkQRI5TMES_cjs.cn(
3252
3170
  "flex gap-4 flex-col md:flex-row relative",
3253
3171
  defaultClassNames.months
3254
3172
  ),
3255
- month: chunkQQSBW6N3_cjs.cn("flex flex-col w-full gap-4", defaultClassNames.month),
3256
- nav: chunkQQSBW6N3_cjs.cn(
3173
+ month: chunkQRI5TMES_cjs.cn("flex flex-col w-full gap-4", defaultClassNames.month),
3174
+ nav: chunkQRI5TMES_cjs.cn(
3257
3175
  "flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between",
3258
3176
  defaultClassNames.nav
3259
3177
  ),
3260
- button_previous: chunkQQSBW6N3_cjs.cn(
3261
- chunkQQSBW6N3_cjs.buttonVariants({ variant: buttonVariant }),
3178
+ button_previous: chunkQRI5TMES_cjs.cn(
3179
+ chunkQRI5TMES_cjs.buttonVariants({ variant: buttonVariant }),
3262
3180
  "size-(--cell-size) aria-disabled:opacity-50 p-0 select-none",
3263
3181
  defaultClassNames.button_previous
3264
3182
  ),
3265
- button_next: chunkQQSBW6N3_cjs.cn(
3266
- chunkQQSBW6N3_cjs.buttonVariants({ variant: buttonVariant }),
3183
+ button_next: chunkQRI5TMES_cjs.cn(
3184
+ chunkQRI5TMES_cjs.buttonVariants({ variant: buttonVariant }),
3267
3185
  "size-(--cell-size) aria-disabled:opacity-50 p-0 select-none",
3268
3186
  defaultClassNames.button_next
3269
3187
  ),
3270
- month_caption: chunkQQSBW6N3_cjs.cn(
3188
+ month_caption: chunkQRI5TMES_cjs.cn(
3271
3189
  "flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)",
3272
3190
  defaultClassNames.month_caption
3273
3191
  ),
3274
- dropdowns: chunkQQSBW6N3_cjs.cn(
3192
+ dropdowns: chunkQRI5TMES_cjs.cn(
3275
3193
  "w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5",
3276
3194
  defaultClassNames.dropdowns
3277
3195
  ),
3278
- dropdown_root: chunkQQSBW6N3_cjs.cn(
3196
+ dropdown_root: chunkQRI5TMES_cjs.cn(
3279
3197
  "relative has-focus:border-ring border border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] rounded-md",
3280
3198
  defaultClassNames.dropdown_root
3281
3199
  ),
3282
- dropdown: chunkQQSBW6N3_cjs.cn(
3200
+ dropdown: chunkQRI5TMES_cjs.cn(
3283
3201
  "absolute bg-popover inset-0 opacity-0",
3284
3202
  defaultClassNames.dropdown
3285
3203
  ),
3286
- caption_label: chunkQQSBW6N3_cjs.cn(
3204
+ caption_label: chunkQRI5TMES_cjs.cn(
3287
3205
  "select-none font-medium",
3288
3206
  captionLayout === "label" ? "text-sm" : "rounded-md pl-2 pr-1 flex items-center gap-1 text-sm h-8 [&>svg]:opacity-70 [&>svg]:size-3.5",
3289
3207
  defaultClassNames.caption_label
3290
3208
  ),
3291
3209
  table: "w-full border-collapse",
3292
- weekdays: chunkQQSBW6N3_cjs.cn("flex", defaultClassNames.weekdays),
3293
- weekday: chunkQQSBW6N3_cjs.cn(
3210
+ weekdays: chunkQRI5TMES_cjs.cn("flex", defaultClassNames.weekdays),
3211
+ weekday: chunkQRI5TMES_cjs.cn(
3294
3212
  "opacity-70 rounded-md flex-1 font-normal text-[0.8rem] select-none",
3295
3213
  defaultClassNames.weekday
3296
3214
  ),
3297
- week: chunkQQSBW6N3_cjs.cn("flex w-full mt-2", defaultClassNames.week),
3298
- week_number_header: chunkQQSBW6N3_cjs.cn(
3215
+ week: chunkQRI5TMES_cjs.cn("flex w-full mt-2", defaultClassNames.week),
3216
+ week_number_header: chunkQRI5TMES_cjs.cn(
3299
3217
  "select-none w-(--cell-size)",
3300
3218
  defaultClassNames.week_number_header
3301
3219
  ),
3302
- week_number: chunkQQSBW6N3_cjs.cn(
3220
+ week_number: chunkQRI5TMES_cjs.cn(
3303
3221
  "text-[0.8rem] select-none opacity-70",
3304
3222
  defaultClassNames.week_number
3305
3223
  ),
3306
- day: chunkQQSBW6N3_cjs.cn(
3224
+ day: chunkQRI5TMES_cjs.cn(
3307
3225
  "relative w-full h-full p-0 text-center [&:last-child[data-selected=true]_button]:rounded-r-md group/day aspect-square select-none",
3308
3226
  props.showWeekNumber ? "[&:nth-child(2)[data-selected=true]_button]:rounded-l-md" : "[&:first-child[data-selected=true]_button]:rounded-l-md",
3309
3227
  defaultClassNames.day
3310
3228
  ),
3311
- range_start: chunkQQSBW6N3_cjs.cn(
3229
+ range_start: chunkQRI5TMES_cjs.cn(
3312
3230
  "rounded-l-md bg-accent",
3313
3231
  defaultClassNames.range_start
3314
3232
  ),
3315
- range_middle: chunkQQSBW6N3_cjs.cn("rounded-none", defaultClassNames.range_middle),
3316
- range_end: chunkQQSBW6N3_cjs.cn("rounded-r-md bg-accent", defaultClassNames.range_end),
3317
- today: chunkQQSBW6N3_cjs.cn(
3233
+ range_middle: chunkQRI5TMES_cjs.cn("rounded-none", defaultClassNames.range_middle),
3234
+ range_end: chunkQRI5TMES_cjs.cn("rounded-r-md bg-accent", defaultClassNames.range_end),
3235
+ today: chunkQRI5TMES_cjs.cn(
3318
3236
  "bg-accent text-accent-foreground rounded-md data-[selected=true]:rounded-none",
3319
3237
  defaultClassNames.today
3320
3238
  ),
3321
- outside: chunkQQSBW6N3_cjs.cn(
3239
+ outside: chunkQRI5TMES_cjs.cn(
3322
3240
  "opacity-50",
3323
3241
  defaultClassNames.outside
3324
3242
  ),
3325
- disabled: chunkQQSBW6N3_cjs.cn(
3243
+ disabled: chunkQRI5TMES_cjs.cn(
3326
3244
  "opacity-50",
3327
3245
  defaultClassNames.disabled
3328
3246
  ),
3329
- hidden: chunkQQSBW6N3_cjs.cn("invisible", defaultClassNames.hidden),
3247
+ hidden: chunkQRI5TMES_cjs.cn("invisible", defaultClassNames.hidden),
3330
3248
  ...classNames
3331
3249
  },
3332
3250
  components: {
3333
3251
  Root: ({ className: className2, rootRef, ...props2 }) => {
3334
- return /* @__PURE__ */ React21__namespace.createElement(
3252
+ return /* @__PURE__ */ React19__namespace.createElement(
3335
3253
  "div",
3336
3254
  {
3337
3255
  "data-slot": "calendar",
3338
3256
  ref: rootRef,
3339
- className: chunkQQSBW6N3_cjs.cn(className2),
3257
+ className: chunkQRI5TMES_cjs.cn(className2),
3340
3258
  ...props2
3341
3259
  }
3342
3260
  );
3343
3261
  },
3344
3262
  Chevron: ({ className: className2, orientation, ...props2 }) => {
3345
3263
  if (orientation === "left") {
3346
- return /* @__PURE__ */ React21__namespace.createElement(
3264
+ return /* @__PURE__ */ React19__namespace.createElement(
3347
3265
  "svg",
3348
3266
  {
3349
- className: chunkQQSBW6N3_cjs.cn("size-4", className2),
3267
+ className: chunkQRI5TMES_cjs.cn("size-4", className2),
3350
3268
  viewBox: "0 0 24 24",
3351
3269
  fill: "none",
3352
3270
  stroke: "currentColor",
@@ -3355,14 +3273,14 @@ function Calendar({
3355
3273
  strokeLinejoin: "round",
3356
3274
  ...props2
3357
3275
  },
3358
- /* @__PURE__ */ React21__namespace.createElement("polyline", { points: "15 18 9 12 15 6" })
3276
+ /* @__PURE__ */ React19__namespace.createElement("polyline", { points: "15 18 9 12 15 6" })
3359
3277
  );
3360
3278
  }
3361
3279
  if (orientation === "right") {
3362
- return /* @__PURE__ */ React21__namespace.createElement(
3280
+ return /* @__PURE__ */ React19__namespace.createElement(
3363
3281
  "svg",
3364
3282
  {
3365
- className: chunkQQSBW6N3_cjs.cn("size-4", className2),
3283
+ className: chunkQRI5TMES_cjs.cn("size-4", className2),
3366
3284
  viewBox: "0 0 24 24",
3367
3285
  fill: "none",
3368
3286
  stroke: "currentColor",
@@ -3371,13 +3289,13 @@ function Calendar({
3371
3289
  strokeLinejoin: "round",
3372
3290
  ...props2
3373
3291
  },
3374
- /* @__PURE__ */ React21__namespace.createElement("polyline", { points: "9 18 15 12 9 6" })
3292
+ /* @__PURE__ */ React19__namespace.createElement("polyline", { points: "9 18 15 12 9 6" })
3375
3293
  );
3376
3294
  }
3377
- return /* @__PURE__ */ React21__namespace.createElement(
3295
+ return /* @__PURE__ */ React19__namespace.createElement(
3378
3296
  "svg",
3379
3297
  {
3380
- className: chunkQQSBW6N3_cjs.cn("size-4", className2),
3298
+ className: chunkQRI5TMES_cjs.cn("size-4", className2),
3381
3299
  viewBox: "0 0 24 24",
3382
3300
  fill: "none",
3383
3301
  stroke: "currentColor",
@@ -3386,12 +3304,12 @@ function Calendar({
3386
3304
  strokeLinejoin: "round",
3387
3305
  ...props2
3388
3306
  },
3389
- /* @__PURE__ */ React21__namespace.createElement("polyline", { points: "6 9 12 15 18 9" })
3307
+ /* @__PURE__ */ React19__namespace.createElement("polyline", { points: "6 9 12 15 18 9" })
3390
3308
  );
3391
3309
  },
3392
3310
  DayButton: CalendarDayButton,
3393
3311
  WeekNumber: ({ children, ...props2 }) => {
3394
- return /* @__PURE__ */ React21__namespace.createElement("td", { ...props2 }, /* @__PURE__ */ React21__namespace.createElement("div", { className: "flex size-(--cell-size) items-center justify-center text-center" }, children));
3312
+ return /* @__PURE__ */ React19__namespace.createElement("td", { ...props2 }, /* @__PURE__ */ React19__namespace.createElement("div", { className: "flex size-(--cell-size) items-center justify-center text-center" }, children));
3395
3313
  },
3396
3314
  ...components
3397
3315
  },
@@ -3406,12 +3324,12 @@ function CalendarDayButton({
3406
3324
  ...props
3407
3325
  }) {
3408
3326
  const defaultClassNames = reactDayPicker.getDefaultClassNames();
3409
- const ref = React21__namespace.useRef(null);
3410
- React21__namespace.useEffect(() => {
3327
+ const ref = React19__namespace.useRef(null);
3328
+ React19__namespace.useEffect(() => {
3411
3329
  if (modifiers.focused) ref.current?.focus();
3412
3330
  }, [modifiers.focused]);
3413
- return /* @__PURE__ */ React21__namespace.createElement(
3414
- chunkQQSBW6N3_cjs.Button,
3331
+ return /* @__PURE__ */ React19__namespace.createElement(
3332
+ chunkQRI5TMES_cjs.Button,
3415
3333
  {
3416
3334
  ref,
3417
3335
  variant: "ghost",
@@ -3421,7 +3339,7 @@ function CalendarDayButton({
3421
3339
  "data-range-start": modifiers.range_start,
3422
3340
  "data-range-end": modifiers.range_end,
3423
3341
  "data-range-middle": modifiers.range_middle,
3424
- className: chunkQQSBW6N3_cjs.cn(
3342
+ className: chunkQRI5TMES_cjs.cn(
3425
3343
  // Core structure
3426
3344
  "flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 leading-none font-normal",
3427
3345
  // Selected states - uses CSS variables
@@ -3462,11 +3380,11 @@ function DatePickerDayButton({
3462
3380
  children,
3463
3381
  ...props
3464
3382
  }) {
3465
- return /* @__PURE__ */ React21__namespace.createElement(
3383
+ return /* @__PURE__ */ React19__namespace.createElement(
3466
3384
  "button",
3467
3385
  {
3468
3386
  type: "button",
3469
- className: chunkQQSBW6N3_cjs.cn(
3387
+ className: chunkQRI5TMES_cjs.cn(
3470
3388
  "flex items-center justify-center h-8 w-8 rounded-md border-none bg-transparent cursor-pointer text-sm transition-colors",
3471
3389
  "hover:bg-accent",
3472
3390
  modifiers.selected && "bg-primary text-primary-foreground font-semibold",
@@ -3498,18 +3416,18 @@ function DatePicker({
3498
3416
  showIcon = true,
3499
3417
  ...props
3500
3418
  }) {
3501
- const [isOpen, setIsOpen] = React21__namespace.useState(false);
3502
- const [hasInteracted, setHasInteracted] = React21__namespace.useState(false);
3503
- const [selectedMonth, setSelectedMonth] = React21__namespace.useState(
3419
+ const [isOpen, setIsOpen] = React19__namespace.useState(false);
3420
+ const [hasInteracted, setHasInteracted] = React19__namespace.useState(false);
3421
+ const [selectedMonth, setSelectedMonth] = React19__namespace.useState(
3504
3422
  value || /* @__PURE__ */ new Date()
3505
3423
  );
3506
- const inputRef = React21__namespace.useRef(null);
3507
- React21__namespace.useEffect(() => {
3424
+ const inputRef = React19__namespace.useRef(null);
3425
+ React19__namespace.useEffect(() => {
3508
3426
  if (value) {
3509
3427
  setSelectedMonth(value);
3510
3428
  }
3511
3429
  }, [value]);
3512
- const disabledMatchers = React21__namespace.useMemo(() => {
3430
+ const disabledMatchers = React19__namespace.useMemo(() => {
3513
3431
  const matchers = [];
3514
3432
  if (minDate) {
3515
3433
  matchers.push({ before: minDate });
@@ -3525,7 +3443,7 @@ function DatePicker({
3525
3443
  }
3526
3444
  return matchers;
3527
3445
  }, [disabledDates, isDateDisabled, maxDate, minDate]);
3528
- const handleDateSelect = React21__namespace.useCallback(
3446
+ const handleDateSelect = React19__namespace.useCallback(
3529
3447
  (date) => {
3530
3448
  if (!date) return;
3531
3449
  onChange(date);
@@ -3535,7 +3453,7 @@ function DatePicker({
3535
3453
  },
3536
3454
  [onBlur, onChange]
3537
3455
  );
3538
- const handleClear = React21__namespace.useCallback(
3456
+ const handleClear = React19__namespace.useCallback(
3539
3457
  (e) => {
3540
3458
  e.stopPropagation();
3541
3459
  onChange(null);
@@ -3544,7 +3462,7 @@ function DatePicker({
3544
3462
  },
3545
3463
  [onChange]
3546
3464
  );
3547
- const handleOpenChange = React21__namespace.useCallback(
3465
+ const handleOpenChange = React19__namespace.useCallback(
3548
3466
  (nextOpen) => {
3549
3467
  if (disabled) {
3550
3468
  setIsOpen(false);
@@ -3564,33 +3482,33 @@ function DatePicker({
3564
3482
  },
3565
3483
  [disabled, hasInteracted, isOpen, onBlur]
3566
3484
  );
3567
- const handleInputBlur = React21__namespace.useCallback(() => {
3485
+ const handleInputBlur = React19__namespace.useCallback(() => {
3568
3486
  if (!isOpen) {
3569
3487
  onBlur?.();
3570
3488
  }
3571
3489
  }, [isOpen, onBlur]);
3572
- const handleInputClick = React21__namespace.useCallback(() => {
3490
+ const handleInputClick = React19__namespace.useCallback(() => {
3573
3491
  if (!hasInteracted) {
3574
3492
  setHasInteracted(true);
3575
3493
  }
3576
3494
  }, [hasInteracted]);
3577
3495
  const hasValue = Boolean(value);
3578
3496
  const displayValue = formatDate(value, format);
3579
- const combinedClassName = chunkQQSBW6N3_cjs.cn("relative", className);
3580
- return /* @__PURE__ */ React21__namespace.createElement("div", { className: combinedClassName }, /* @__PURE__ */ React21__namespace.createElement(
3497
+ const combinedClassName = chunkQRI5TMES_cjs.cn("relative", className);
3498
+ return /* @__PURE__ */ React19__namespace.createElement("div", { className: combinedClassName }, /* @__PURE__ */ React19__namespace.createElement(
3581
3499
  "input",
3582
3500
  {
3583
3501
  type: "hidden",
3584
3502
  name,
3585
3503
  value: value ? value.toISOString() : ""
3586
3504
  }
3587
- ), /* @__PURE__ */ React21__namespace.createElement(Popover, { open: isOpen, onOpenChange: handleOpenChange }, /* @__PURE__ */ React21__namespace.createElement("div", { className: "relative" }, showIcon && /* @__PURE__ */ React21__namespace.createElement(
3505
+ ), /* @__PURE__ */ React19__namespace.createElement(Popover, { open: isOpen, onOpenChange: handleOpenChange }, /* @__PURE__ */ React19__namespace.createElement("div", { className: "relative" }, showIcon && /* @__PURE__ */ React19__namespace.createElement(
3588
3506
  "span",
3589
3507
  {
3590
3508
  className: "absolute left-3 top-1/2 -translate-y-1/2 pointer-events-none",
3591
3509
  "aria-hidden": "true"
3592
3510
  },
3593
- /* @__PURE__ */ React21__namespace.createElement(
3511
+ /* @__PURE__ */ React19__namespace.createElement(
3594
3512
  "svg",
3595
3513
  {
3596
3514
  xmlns: "http://www.w3.org/2000/svg",
@@ -3603,19 +3521,19 @@ function DatePicker({
3603
3521
  strokeLinejoin: "round",
3604
3522
  strokeWidth: "2"
3605
3523
  },
3606
- /* @__PURE__ */ React21__namespace.createElement("path", { d: "M8 2v4m8-4v4m5 8V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8M3 10h18m-5 10l2 2l4-4" })
3524
+ /* @__PURE__ */ React19__namespace.createElement("path", { d: "M8 2v4m8-4v4m5 8V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8M3 10h18m-5 10l2 2l4-4" })
3607
3525
  )
3608
- ), /* @__PURE__ */ React21__namespace.createElement(PopoverTrigger, { asChild: true }, /* @__PURE__ */ React21__namespace.createElement(
3526
+ ), /* @__PURE__ */ React19__namespace.createElement(PopoverTrigger, { asChild: true }, /* @__PURE__ */ React19__namespace.createElement(
3609
3527
  "input",
3610
3528
  {
3611
3529
  ref: inputRef,
3612
3530
  id: props.id,
3613
3531
  type: "text",
3614
- className: chunkQQSBW6N3_cjs.cn(
3532
+ className: chunkQRI5TMES_cjs.cn(
3615
3533
  "flex h-9 w-full rounded-md border border-input bg-transparent py-1 text-base shadow-sm transition-colors",
3616
3534
  "focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring",
3617
3535
  "disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
3618
- chunkQQSBW6N3_cjs.INPUT_AUTOFILL_RESET_CLASSES,
3536
+ chunkQRI5TMES_cjs.INPUT_AUTOFILL_RESET_CLASSES,
3619
3537
  showIcon ? "pl-10" : "pl-3",
3620
3538
  clearable && value ? "pr-10" : "pr-3",
3621
3539
  !error && hasValue && "ring-2 ring-ring",
@@ -3632,7 +3550,7 @@ function DatePicker({
3632
3550
  "aria-required": required || props["aria-required"],
3633
3551
  readOnly: true
3634
3552
  }
3635
- )), clearable && value && !disabled && /* @__PURE__ */ React21__namespace.createElement(
3553
+ )), clearable && value && !disabled && /* @__PURE__ */ React19__namespace.createElement(
3636
3554
  "button",
3637
3555
  {
3638
3556
  type: "button",
@@ -3642,7 +3560,7 @@ function DatePicker({
3642
3560
  tabIndex: -1
3643
3561
  },
3644
3562
  "\u2715"
3645
- )), !disabled && /* @__PURE__ */ React21__namespace.createElement(
3563
+ )), !disabled && /* @__PURE__ */ React19__namespace.createElement(
3646
3564
  PopoverContent,
3647
3565
  {
3648
3566
  align: "start",
@@ -3652,7 +3570,7 @@ function DatePicker({
3652
3570
  event.preventDefault();
3653
3571
  }
3654
3572
  },
3655
- /* @__PURE__ */ React21__namespace.createElement(
3573
+ /* @__PURE__ */ React19__namespace.createElement(
3656
3574
  Calendar,
3657
3575
  {
3658
3576
  mode: "single",
@@ -3736,11 +3654,11 @@ function TimePicker({
3736
3654
  showIcon = true,
3737
3655
  ...props
3738
3656
  }) {
3739
- const inputRef = React21__namespace.useRef(null);
3740
- const [nativeValue, setNativeValue] = React21__namespace.useState(
3657
+ const inputRef = React19__namespace.useRef(null);
3658
+ const [nativeValue, setNativeValue] = React19__namespace.useState(
3741
3659
  normalizeToNativeTime(value)
3742
3660
  );
3743
- React21__namespace.useEffect(() => {
3661
+ React19__namespace.useEffect(() => {
3744
3662
  setNativeValue(normalizeToNativeTime(value));
3745
3663
  }, [value]);
3746
3664
  const handleChange = (e) => {
@@ -3756,13 +3674,13 @@ function TimePicker({
3756
3674
  };
3757
3675
  const hasValue = Boolean(value);
3758
3676
  const stepInSeconds = Math.max(1, minuteStep * 60);
3759
- return /* @__PURE__ */ React21__namespace.createElement("div", { className: chunkQQSBW6N3_cjs.cn("relative", className) }, /* @__PURE__ */ React21__namespace.createElement("input", { type: "hidden", name, value }), /* @__PURE__ */ React21__namespace.createElement("div", { className: "relative" }, showIcon && /* @__PURE__ */ React21__namespace.createElement(
3677
+ return /* @__PURE__ */ React19__namespace.createElement("div", { className: chunkQRI5TMES_cjs.cn("relative", className) }, /* @__PURE__ */ React19__namespace.createElement("input", { type: "hidden", name, value }), /* @__PURE__ */ React19__namespace.createElement("div", { className: "relative" }, showIcon && /* @__PURE__ */ React19__namespace.createElement(
3760
3678
  "span",
3761
3679
  {
3762
3680
  className: "absolute left-3 top-1/2 -translate-y-1/2 pointer-events-none",
3763
3681
  "aria-hidden": "true"
3764
3682
  },
3765
- /* @__PURE__ */ React21__namespace.createElement(
3683
+ /* @__PURE__ */ React19__namespace.createElement(
3766
3684
  "svg",
3767
3685
  {
3768
3686
  xmlns: "http://www.w3.org/2000/svg",
@@ -3775,17 +3693,17 @@ function TimePicker({
3775
3693
  strokeLinejoin: "round",
3776
3694
  strokeWidth: "2"
3777
3695
  },
3778
- /* @__PURE__ */ React21__namespace.createElement("circle", { cx: "12", cy: "12", r: "10" }),
3779
- /* @__PURE__ */ React21__namespace.createElement("path", { d: "M12 6v6l4 2" })
3696
+ /* @__PURE__ */ React19__namespace.createElement("circle", { cx: "12", cy: "12", r: "10" }),
3697
+ /* @__PURE__ */ React19__namespace.createElement("path", { d: "M12 6v6l4 2" })
3780
3698
  )
3781
- ), /* @__PURE__ */ React21__namespace.createElement(
3782
- Input,
3699
+ ), /* @__PURE__ */ React19__namespace.createElement(
3700
+ chunkQRI5TMES_cjs.Input,
3783
3701
  {
3784
3702
  ref: inputRef,
3785
3703
  type: "time",
3786
- className: chunkQQSBW6N3_cjs.cn(
3704
+ className: chunkQRI5TMES_cjs.cn(
3787
3705
  "appearance-none [&::-webkit-calendar-picker-indicator]:hidden [&::-webkit-calendar-picker-indicator]:appearance-none",
3788
- chunkQQSBW6N3_cjs.INPUT_AUTOFILL_RESET_CLASSES,
3706
+ chunkQRI5TMES_cjs.INPUT_AUTOFILL_RESET_CLASSES,
3789
3707
  showIcon ? "pl-10" : "pl-3",
3790
3708
  clearable && value ? "pr-10" : "pr-3",
3791
3709
  !error && hasValue && "ring-2 ring-ring",
@@ -3803,8 +3721,8 @@ function TimePicker({
3803
3721
  "aria-required": required || props["aria-required"],
3804
3722
  ...props
3805
3723
  }
3806
- ), clearable && value && !disabled && /* @__PURE__ */ React21__namespace.createElement(
3807
- chunkQQSBW6N3_cjs.Button,
3724
+ ), clearable && value && !disabled && /* @__PURE__ */ React19__namespace.createElement(
3725
+ chunkQRI5TMES_cjs.Button,
3808
3726
  {
3809
3727
  type: "button",
3810
3728
  variant: "ghost",
@@ -3814,7 +3732,7 @@ function TimePicker({
3814
3732
  "aria-label": "Clear time",
3815
3733
  tabIndex: -1
3816
3734
  },
3817
- /* @__PURE__ */ React21__namespace.createElement(
3735
+ /* @__PURE__ */ React19__namespace.createElement(
3818
3736
  "svg",
3819
3737
  {
3820
3738
  width: "14",
@@ -3827,8 +3745,8 @@ function TimePicker({
3827
3745
  strokeLinejoin: "round",
3828
3746
  "aria-hidden": "true"
3829
3747
  },
3830
- /* @__PURE__ */ React21__namespace.createElement("line", { x1: "18", y1: "6", x2: "6", y2: "18" }),
3831
- /* @__PURE__ */ React21__namespace.createElement("line", { x1: "6", y1: "6", x2: "18", y2: "18" })
3748
+ /* @__PURE__ */ React19__namespace.createElement("line", { x1: "18", y1: "6", x2: "6", y2: "18" }),
3749
+ /* @__PURE__ */ React19__namespace.createElement("line", { x1: "6", y1: "6", x2: "18", y2: "18" })
3832
3750
  )
3833
3751
  )));
3834
3752
  }
@@ -3875,23 +3793,23 @@ function DateRangePicker({
3875
3793
  separator = " - ",
3876
3794
  ...props
3877
3795
  }) {
3878
- const [isOpen, setIsOpen] = React21__namespace.useState(false);
3879
- const [hasInteracted, setHasInteracted] = React21__namespace.useState(false);
3880
- const [selectedMonth, setSelectedMonth] = React21__namespace.useState(
3796
+ const [isOpen, setIsOpen] = React19__namespace.useState(false);
3797
+ const [hasInteracted, setHasInteracted] = React19__namespace.useState(false);
3798
+ const [selectedMonth, setSelectedMonth] = React19__namespace.useState(
3881
3799
  value.start || /* @__PURE__ */ new Date()
3882
3800
  );
3883
- const [rangeStart, setRangeStart] = React21__namespace.useState(value.start);
3884
- const [rangeEnd, setRangeEnd] = React21__namespace.useState(value.end);
3885
- const [hoverDate, setHoverDate] = React21__namespace.useState(null);
3886
- const inputRef = React21__namespace.useRef(null);
3887
- React21__namespace.useEffect(() => {
3801
+ const [rangeStart, setRangeStart] = React19__namespace.useState(value.start);
3802
+ const [rangeEnd, setRangeEnd] = React19__namespace.useState(value.end);
3803
+ const [hoverDate, setHoverDate] = React19__namespace.useState(null);
3804
+ const inputRef = React19__namespace.useRef(null);
3805
+ React19__namespace.useEffect(() => {
3888
3806
  setRangeStart(value.start);
3889
3807
  setRangeEnd(value.end);
3890
3808
  if (value.start) {
3891
3809
  setSelectedMonth(value.start);
3892
3810
  }
3893
3811
  }, [value]);
3894
- const disabledMatchers = React21__namespace.useMemo(() => {
3812
+ const disabledMatchers = React19__namespace.useMemo(() => {
3895
3813
  const matchers = [];
3896
3814
  if (minDate) {
3897
3815
  matchers.push({ before: minDate });
@@ -3907,7 +3825,7 @@ function DateRangePicker({
3907
3825
  }
3908
3826
  return matchers;
3909
3827
  }, [disabledDates, isDateDisabled, maxDate, minDate]);
3910
- const handleDateSelect = React21__namespace.useCallback(
3828
+ const handleDateSelect = React19__namespace.useCallback(
3911
3829
  (date) => {
3912
3830
  if (!rangeStart || rangeEnd) {
3913
3831
  setRangeStart(date);
@@ -3937,7 +3855,7 @@ function DateRangePicker({
3937
3855
  },
3938
3856
  [onBlur, onChange, rangeEnd, rangeStart]
3939
3857
  );
3940
- const handleClear = React21__namespace.useCallback(
3858
+ const handleClear = React19__namespace.useCallback(
3941
3859
  (e) => {
3942
3860
  e.stopPropagation();
3943
3861
  setRangeStart(null);
@@ -3949,7 +3867,7 @@ function DateRangePicker({
3949
3867
  },
3950
3868
  [onChange]
3951
3869
  );
3952
- const handleOpenChange = React21__namespace.useCallback(
3870
+ const handleOpenChange = React19__namespace.useCallback(
3953
3871
  (nextOpen) => {
3954
3872
  if (disabled) {
3955
3873
  setIsOpen(false);
@@ -3970,17 +3888,17 @@ function DateRangePicker({
3970
3888
  },
3971
3889
  [disabled, hasInteracted, isOpen, onBlur]
3972
3890
  );
3973
- const handleInputBlur = React21__namespace.useCallback(() => {
3891
+ const handleInputBlur = React19__namespace.useCallback(() => {
3974
3892
  if (!isOpen) {
3975
3893
  onBlur?.();
3976
3894
  }
3977
3895
  }, [isOpen, onBlur]);
3978
- const handleInputClick = React21__namespace.useCallback(() => {
3896
+ const handleInputClick = React19__namespace.useCallback(() => {
3979
3897
  if (!hasInteracted) {
3980
3898
  setHasInteracted(true);
3981
3899
  }
3982
3900
  }, [hasInteracted]);
3983
- const RangeDayButton = React21__namespace.useCallback(
3901
+ const RangeDayButton = React19__namespace.useCallback(
3984
3902
  ({
3985
3903
  day,
3986
3904
  modifiers,
@@ -3999,12 +3917,12 @@ function DateRangePicker({
3999
3917
  const isInHoverRange = !!rangeStart && !rangeEnd && !!hoverDate && isDateInRange(date, rangeStart, hoverDate);
4000
3918
  const isRangeHighlight = (isInCommittedRange || isInHoverRange) && !isRangeEndpoint;
4001
3919
  const isToday = isSameDay(date, /* @__PURE__ */ new Date());
4002
- return /* @__PURE__ */ React21__namespace.createElement(
3920
+ return /* @__PURE__ */ React19__namespace.createElement(
4003
3921
  "button",
4004
3922
  {
4005
3923
  type: "button",
4006
3924
  ...rest,
4007
- className: chunkQQSBW6N3_cjs.cn(
3925
+ className: chunkQRI5TMES_cjs.cn(
4008
3926
  "flex items-center justify-center h-8 w-8 rounded-md border-none bg-transparent cursor-pointer text-sm transition-colors",
4009
3927
  "hover:bg-accent",
4010
3928
  isRangeEndpoint && "bg-primary text-primary-foreground font-semibold",
@@ -4042,28 +3960,28 @@ function DateRangePicker({
4042
3960
  to: rangeEnd ?? void 0
4043
3961
  } : void 0;
4044
3962
  const displayValue = rangeStart && rangeEnd ? `${formatDate2(rangeStart, format)}${separator}${formatDate2(rangeEnd, format)}` : rangeStart ? formatDate2(rangeStart, format) : "";
4045
- const combinedClassName = chunkQQSBW6N3_cjs.cn("relative", className);
4046
- return /* @__PURE__ */ React21__namespace.createElement("div", { className: combinedClassName }, /* @__PURE__ */ React21__namespace.createElement(
3963
+ const combinedClassName = chunkQRI5TMES_cjs.cn("relative", className);
3964
+ return /* @__PURE__ */ React19__namespace.createElement("div", { className: combinedClassName }, /* @__PURE__ */ React19__namespace.createElement(
4047
3965
  "input",
4048
3966
  {
4049
3967
  type: "hidden",
4050
3968
  name: `${name}[start]`,
4051
3969
  value: rangeStart ? rangeStart.toISOString() : ""
4052
3970
  }
4053
- ), /* @__PURE__ */ React21__namespace.createElement(
3971
+ ), /* @__PURE__ */ React19__namespace.createElement(
4054
3972
  "input",
4055
3973
  {
4056
3974
  type: "hidden",
4057
3975
  name: `${name}[end]`,
4058
3976
  value: rangeEnd ? rangeEnd.toISOString() : ""
4059
3977
  }
4060
- ), /* @__PURE__ */ React21__namespace.createElement(Popover, { open: isOpen, onOpenChange: handleOpenChange }, /* @__PURE__ */ React21__namespace.createElement("div", { className: "relative" }, showIcon && /* @__PURE__ */ React21__namespace.createElement(
3978
+ ), /* @__PURE__ */ React19__namespace.createElement(Popover, { open: isOpen, onOpenChange: handleOpenChange }, /* @__PURE__ */ React19__namespace.createElement("div", { className: "relative" }, showIcon && /* @__PURE__ */ React19__namespace.createElement(
4061
3979
  "span",
4062
3980
  {
4063
3981
  className: "absolute left-3 top-1/2 -translate-y-1/2 pointer-events-none",
4064
3982
  "aria-hidden": "true"
4065
3983
  },
4066
- /* @__PURE__ */ React21__namespace.createElement(
3984
+ /* @__PURE__ */ React19__namespace.createElement(
4067
3985
  "svg",
4068
3986
  {
4069
3987
  xmlns: "http://www.w3.org/2000/svg",
@@ -4076,19 +3994,19 @@ function DateRangePicker({
4076
3994
  strokeLinejoin: "round",
4077
3995
  strokeWidth: "2"
4078
3996
  },
4079
- /* @__PURE__ */ React21__namespace.createElement("path", { d: "M8 2v4m8-4v4m5 8V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8M3 10h18m-5 10l2 2l4-4" })
3997
+ /* @__PURE__ */ React19__namespace.createElement("path", { d: "M8 2v4m8-4v4m5 8V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8M3 10h18m-5 10l2 2l4-4" })
4080
3998
  )
4081
- ), /* @__PURE__ */ React21__namespace.createElement(PopoverTrigger, { asChild: true }, /* @__PURE__ */ React21__namespace.createElement(
3999
+ ), /* @__PURE__ */ React19__namespace.createElement(PopoverTrigger, { asChild: true }, /* @__PURE__ */ React19__namespace.createElement(
4082
4000
  "input",
4083
4001
  {
4084
4002
  ref: inputRef,
4085
4003
  id: props.id,
4086
4004
  type: "text",
4087
- className: chunkQQSBW6N3_cjs.cn(
4005
+ className: chunkQRI5TMES_cjs.cn(
4088
4006
  "flex h-9 w-full rounded-md border border-input bg-transparent py-1 text-base shadow-sm transition-colors",
4089
4007
  "focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring",
4090
4008
  "disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
4091
- chunkQQSBW6N3_cjs.INPUT_AUTOFILL_RESET_CLASSES,
4009
+ chunkQRI5TMES_cjs.INPUT_AUTOFILL_RESET_CLASSES,
4092
4010
  showIcon ? "pl-10" : "pl-3",
4093
4011
  clearable && (rangeStart || rangeEnd) ? "pr-10" : "pr-3",
4094
4012
  !error && hasValue && "ring-2 ring-ring",
@@ -4105,7 +4023,7 @@ function DateRangePicker({
4105
4023
  "aria-required": required || props["aria-required"],
4106
4024
  readOnly: true
4107
4025
  }
4108
- )), clearable && (rangeStart || rangeEnd) && !disabled && /* @__PURE__ */ React21__namespace.createElement(
4026
+ )), clearable && (rangeStart || rangeEnd) && !disabled && /* @__PURE__ */ React19__namespace.createElement(
4109
4027
  "button",
4110
4028
  {
4111
4029
  type: "button",
@@ -4115,7 +4033,7 @@ function DateRangePicker({
4115
4033
  tabIndex: -1
4116
4034
  },
4117
4035
  "\u2715"
4118
- )), !disabled && /* @__PURE__ */ React21__namespace.createElement(
4036
+ )), !disabled && /* @__PURE__ */ React19__namespace.createElement(
4119
4037
  PopoverContent,
4120
4038
  {
4121
4039
  align: "start",
@@ -4125,7 +4043,7 @@ function DateRangePicker({
4125
4043
  event.preventDefault();
4126
4044
  }
4127
4045
  },
4128
- /* @__PURE__ */ React21__namespace.createElement(
4046
+ /* @__PURE__ */ React19__namespace.createElement(
4129
4047
  Calendar,
4130
4048
  {
4131
4049
  mode: "range",
@@ -4148,7 +4066,7 @@ function DateRangePicker({
4148
4066
  showOutsideDays: true
4149
4067
  }
4150
4068
  ),
4151
- rangeStart && !rangeEnd && /* @__PURE__ */ React21__namespace.createElement("div", { className: "border-t border-input px-3 py-2 text-center text-xs opacity-70" }, "Select end date")
4069
+ rangeStart && !rangeEnd && /* @__PURE__ */ React19__namespace.createElement("div", { className: "border-t border-input px-3 py-2 text-center text-xs opacity-70" }, "Select end date")
4152
4070
  )));
4153
4071
  }
4154
4072
  DateRangePicker.displayName = "DateRangePicker";
@@ -4163,7 +4081,6 @@ exports.Radio = Radio;
4163
4081
  exports.Select = Select2;
4164
4082
  exports.Switch = Switch2;
4165
4083
  exports.TextArea = TextArea;
4166
- exports.TextInput = TextInput;
4167
4084
  exports.TimePicker = TimePicker;
4168
- //# sourceMappingURL=chunk-WVSLOSNU.cjs.map
4169
- //# sourceMappingURL=chunk-WVSLOSNU.cjs.map
4085
+ //# sourceMappingURL=chunk-ED4UK63G.cjs.map
4086
+ //# sourceMappingURL=chunk-ED4UK63G.cjs.map