@page-speed/forms 0.5.7 → 0.5.9

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