@timeax/form-palette 0.2.0 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
- import * as React66 from 'react';
2
- import React66__default, { forwardRef, createElement, createContext, useMemo, useCallback, useRef, useState, useEffect, useLayoutEffect, useContext } from 'react';
1
+ import * as React67 from 'react';
2
+ import React67__default, { forwardRef, createElement, createContext, useMemo, useCallback, useRef, useState, useEffect, useLayoutEffect, useContext } from 'react';
3
3
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
4
4
  import * as SelectPrimitive from '@radix-ui/react-select';
5
5
  import * as PopoverPrimitive from '@radix-ui/react-popover';
@@ -7,10 +7,10 @@ import { Slot } from '@radix-ui/react-slot';
7
7
  import * as SwitchPrimitive from '@radix-ui/react-switch';
8
8
  import * as RadioGroupPrimitive from '@radix-ui/react-radio-group';
9
9
  import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
10
+ import * as ScrollAreaPrimitive2 from '@radix-ui/react-scroll-area';
10
11
  import { Virtuoso, VirtuosoGrid } from 'react-virtuoso';
11
12
  import * as SliderPrimitive from '@radix-ui/react-slider';
12
13
  import * as DialogPrimitive from '@radix-ui/react-dialog';
13
- import * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area';
14
14
  import * as ToggleGroupPrimitive from '@radix-ui/react-toggle-group';
15
15
  import '@radix-ui/react-toggle';
16
16
  import * as TooltipPrimitive from '@radix-ui/react-tooltip';
@@ -5595,7 +5595,7 @@ function getAdapter(key) {
5595
5595
  function hasAdapter(key) {
5596
5596
  return typeof registry[key] === "function";
5597
5597
  }
5598
- var CoreContextReact = React66__default.createContext(
5598
+ var CoreContextReact = React67__default.createContext(
5599
5599
  null
5600
5600
  );
5601
5601
 
@@ -5607,9 +5607,10 @@ function mapZodError(error) {
5607
5607
  const path = issue.path;
5608
5608
  const message2 = issue.message || "Validation error";
5609
5609
  const first = path[0];
5610
- if (typeof first === "string" && first.length > 0) {
5611
- const existing = fieldErrors[first];
5612
- fieldErrors[first] = existing ? `${existing}
5610
+ if ((typeof first === "string" || typeof first === "number") && String(first).length > 0) {
5611
+ const fullPath = path.filter((p2) => typeof p2 === "string" || typeof p2 === "number").join(".");
5612
+ const existing = fieldErrors[fullPath];
5613
+ fieldErrors[fullPath] = existing ? `${existing}
5613
5614
  ${message2}` : message2;
5614
5615
  } else {
5615
5616
  uncaught.push(message2);
@@ -9176,16 +9177,16 @@ function deepEqual(a3, b2) {
9176
9177
  }
9177
9178
  function CoreProvider(props) {
9178
9179
  var _a, _b;
9179
- const registryRef = React66.useRef(new FieldRegistry());
9180
- const bucketRef = React66.useRef({});
9181
- const uncaughtRef = React66.useRef([]);
9182
- const errorsRef = React66.useRef(null);
9183
- const buttonRef = React66.useRef(null);
9184
- const activeButtonNameRef = React66.useRef(null);
9185
- const [hasUncaughtErrors, setHasUncaughtErrors] = React66.useState(0);
9186
- const originalRef = React66.useRef(null);
9187
- const propsRef = React66.useRef(props);
9188
- React66.useEffect(() => {
9180
+ const registryRef = React67.useRef(new FieldRegistry());
9181
+ const bucketRef = React67.useRef({});
9182
+ const uncaughtRef = React67.useRef([]);
9183
+ const errorsRef = React67.useRef(null);
9184
+ const buttonRef = React67.useRef(null);
9185
+ const activeButtonNameRef = React67.useRef(null);
9186
+ const [hasUncaughtErrors, setHasUncaughtErrors] = React67.useState(0);
9187
+ const originalRef = React67.useRef(null);
9188
+ const propsRef = React67.useRef(props);
9189
+ React67.useEffect(() => {
9189
9190
  propsRef.current = props;
9190
9191
  }, [props]);
9191
9192
  const adapterKey = (_a = props.adapter) != null ? _a : "local";
@@ -9727,7 +9728,7 @@ function CoreProvider(props) {
9727
9728
  return uncaughtRef.current;
9728
9729
  }
9729
9730
  };
9730
- React66.useEffect(() => {
9731
+ React67.useEffect(() => {
9731
9732
  if (!props.formRef) return;
9732
9733
  props.formRef.current = context;
9733
9734
  return () => {
@@ -9736,7 +9737,7 @@ function CoreProvider(props) {
9736
9737
  }
9737
9738
  };
9738
9739
  }, [context]);
9739
- React66.useEffect(() => {
9740
+ React67.useEffect(() => {
9740
9741
  if (props.init) {
9741
9742
  props.init(context);
9742
9743
  }
@@ -10172,9 +10173,9 @@ function ErrorStrip(props) {
10172
10173
  } = props;
10173
10174
  const ctxFromHook = useCore();
10174
10175
  const form = formProp != null ? formProp : ctxFromHook;
10175
- const [isVisible, setIsVisible] = React66.useState(true);
10176
+ const [isVisible, setIsVisible] = React67.useState(true);
10176
10177
  const messages = messagesProp ? messagesProp : (_b = (form == null ? void 0 : form.hasUncaughtErrors) ? (_a = form == null ? void 0 : form.getUncaught) == null ? void 0 : _a.call(form) : []) != null ? _b : [];
10177
- React66.useEffect(() => {
10178
+ React67.useEffect(() => {
10178
10179
  if (messages.length > 0) {
10179
10180
  setIsVisible(true);
10180
10181
  }
@@ -10238,7 +10239,7 @@ function ErrorStrip(props) {
10238
10239
  function CoreRoot(props) {
10239
10240
  const { noErrorStrip, onSubmitForm, children, ...rest } = props;
10240
10241
  const form = useCore();
10241
- const handleSubmit = React66.useCallback(
10242
+ const handleSubmit = React67.useCallback(
10242
10243
  (event) => {
10243
10244
  event.preventDefault();
10244
10245
  if (form.props.activateButtonOnChange && !form.isDirty()) return;
@@ -10286,16 +10287,16 @@ function CoreShell(props) {
10286
10287
  function useButton(options) {
10287
10288
  const form = useCoreContext();
10288
10289
  const { name, disabled: disabledProp = false } = options;
10289
- const [loading, setLoadingState] = React66.useState(false);
10290
- const [disabled, setDisabledState] = React66.useState(
10290
+ const [loading, setLoadingState] = React67.useState(false);
10291
+ const [disabled, setDisabledState] = React67.useState(
10291
10292
  Boolean(disabledProp)
10292
10293
  );
10293
- const ref = React66.useRef(null);
10294
- const optsRef = React66.useRef(options);
10295
- React66.useEffect(() => {
10294
+ const ref = React67.useRef(null);
10295
+ const optsRef = React67.useRef(options);
10296
+ React67.useEffect(() => {
10296
10297
  optsRef.current = options;
10297
10298
  }, [options]);
10298
- const buttonRef = React66.useRef(null);
10299
+ const buttonRef = React67.useRef(null);
10299
10300
  if (!buttonRef.current) {
10300
10301
  const btn = {
10301
10302
  name,
@@ -10325,11 +10326,11 @@ function useButton(options) {
10325
10326
  };
10326
10327
  buttonRef.current = btn;
10327
10328
  }
10328
- React66.useEffect(() => {
10329
+ React67.useEffect(() => {
10329
10330
  if (!buttonRef.current) return;
10330
10331
  buttonRef.current.name = name;
10331
10332
  }, [name]);
10332
- React66.useEffect(() => {
10333
+ React67.useEffect(() => {
10333
10334
  if (!buttonRef.current) return;
10334
10335
  form.button = buttonRef.current;
10335
10336
  return () => {
@@ -10396,41 +10397,41 @@ function useField(options) {
10396
10397
  onValueChange,
10397
10398
  onSubmit
10398
10399
  } = options;
10399
- const ref = React66.useRef(null);
10400
- const stateRef = React66.useRef({
10400
+ const ref = React67.useRef(null);
10401
+ const stateRef = React67.useRef({
10401
10402
  value: defaultValue,
10402
10403
  error: "",
10403
10404
  loading: false,
10404
10405
  original: getOriginalValue ? getOriginalValue(defaultValue) : defaultValue
10405
10406
  });
10406
- const [valueState, setValueState] = React66.useState(
10407
+ const [valueState, setValueState] = React67.useState(
10407
10408
  stateRef.current.value
10408
10409
  );
10409
10410
  const isControlled = valueProp !== void 0;
10410
10411
  const value = isControlled ? valueProp : valueState;
10411
- React66.useEffect(() => {
10412
+ React67.useEffect(() => {
10412
10413
  if (isControlled && valueProp !== stateRef.current.value) {
10413
10414
  stateRef.current.value = valueProp;
10414
10415
  setValueState(valueProp);
10415
10416
  }
10416
10417
  }, [isControlled, valueProp]);
10417
- const [error, setErrorState] = React66.useState(
10418
+ const [error, setErrorState] = React67.useState(
10418
10419
  stateRef.current.error
10419
10420
  );
10420
- const [loading, setLoadingState] = React66.useState(
10421
+ const [loading, setLoadingState] = React67.useState(
10421
10422
  stateRef.current.loading
10422
10423
  );
10423
- const [required, setRequired] = React66.useState(
10424
+ const [required, setRequired] = React67.useState(
10424
10425
  Boolean(requiredProp)
10425
10426
  );
10426
- const [disabled, setDisabled] = React66.useState(
10427
+ const [disabled, setDisabled] = React67.useState(
10427
10428
  Boolean(disabledProp)
10428
10429
  );
10429
- const [readOnly, setReadOnly] = React66.useState(
10430
+ const [readOnly, setReadOnly] = React67.useState(
10430
10431
  Boolean(readOnlyProp)
10431
10432
  );
10432
- const id = React66.useId();
10433
- const keyRef = React66.useRef(
10433
+ const id = React67.useId();
10434
+ const keyRef = React67.useRef(
10434
10435
  (() => {
10435
10436
  if (rawName && rawName.trim()) return `${rawName.trim()}-${id}`;
10436
10437
  if (rawBindId && rawBindId.trim())
@@ -10438,10 +10439,10 @@ function useField(options) {
10438
10439
  return `field-${Math.random().toString(36).slice(2)}-${id}`;
10439
10440
  })()
10440
10441
  );
10441
- const bindIdRef = React66.useRef(
10442
+ const bindIdRef = React67.useRef(
10442
10443
  rawBindId && rawBindId.trim() || keyRef.current
10443
10444
  );
10444
- const fieldRef = React66.useRef(null);
10445
+ const fieldRef = React67.useRef(null);
10445
10446
  if (!fieldRef.current) {
10446
10447
  const key = keyRef.current;
10447
10448
  const bindId = bindIdRef.current;
@@ -10544,19 +10545,19 @@ function useField(options) {
10544
10545
  fieldRef.current = f2;
10545
10546
  }
10546
10547
  const field = fieldRef.current;
10547
- React66.useEffect(() => {
10548
+ React67.useEffect(() => {
10548
10549
  setRequired(requiredProp);
10549
10550
  if (field) {
10550
10551
  field.required = requiredProp;
10551
10552
  }
10552
10553
  }, [requiredProp, field]);
10553
- React66.useEffect(() => {
10554
+ React67.useEffect(() => {
10554
10555
  setDisabled(disabledProp);
10555
10556
  }, [disabledProp]);
10556
- React66.useEffect(() => {
10557
+ React67.useEffect(() => {
10557
10558
  setReadOnly(readOnlyProp);
10558
10559
  }, [readOnlyProp]);
10559
- React66.useEffect(() => {
10560
+ React67.useEffect(() => {
10560
10561
  if (!field) return;
10561
10562
  form.addField(field);
10562
10563
  return () => {
@@ -10671,25 +10672,25 @@ function useOptionalField(options) {
10671
10672
  getOriginalValue,
10672
10673
  onValueChange
10673
10674
  } = options;
10674
- const ref = React66.useRef(null);
10675
- const [valueState, setValueState] = React66.useState(defaultValue);
10675
+ const ref = React67.useRef(null);
10676
+ const [valueState, setValueState] = React67.useState(defaultValue);
10676
10677
  const isControlled = valueProp !== void 0;
10677
10678
  const value = isControlled ? valueProp : valueState;
10678
- React66.useEffect(() => {
10679
+ React67.useEffect(() => {
10679
10680
  if (isControlled) {
10680
10681
  setValueState(valueProp);
10681
10682
  }
10682
10683
  }, [isControlled, valueProp]);
10683
- const [error, setErrorState] = React66.useState("");
10684
- const [loading, setLoadingState] = React66.useState(false);
10685
- const [required, setRequired] = React66.useState(requiredProp);
10686
- const [disabled, setDisabled] = React66.useState(disabledProp);
10687
- const [readOnly, setReadOnly] = React66.useState(readOnlyProp);
10688
- const originalRef = React66.useRef(
10684
+ const [error, setErrorState] = React67.useState("");
10685
+ const [loading, setLoadingState] = React67.useState(false);
10686
+ const [required, setRequired] = React67.useState(requiredProp);
10687
+ const [disabled, setDisabled] = React67.useState(disabledProp);
10688
+ const [readOnly, setReadOnly] = React67.useState(readOnlyProp);
10689
+ const originalRef = React67.useRef(
10689
10690
  getOriginalValue ? getOriginalValue(defaultValue) : defaultValue
10690
10691
  );
10691
- const id = React66.useId();
10692
- const keyRef = React66.useRef("");
10692
+ const id = React67.useId();
10693
+ const keyRef = React67.useRef("");
10693
10694
  if (!keyRef.current) {
10694
10695
  if (rawName && rawName.trim()) {
10695
10696
  keyRef.current = `${rawName.trim()}-${id}`;
@@ -10699,17 +10700,17 @@ function useOptionalField(options) {
10699
10700
  keyRef.current = `field-${Math.random().toString(36).slice(2)}-${id}`;
10700
10701
  }
10701
10702
  }
10702
- const bindIdRef = React66.useRef("");
10703
+ const bindIdRef = React67.useRef("");
10703
10704
  if (!bindIdRef.current) {
10704
10705
  bindIdRef.current = rawBindId && rawBindId.trim() || keyRef.current;
10705
10706
  }
10706
- React66.useEffect(() => {
10707
+ React67.useEffect(() => {
10707
10708
  setRequired(requiredProp);
10708
10709
  }, [requiredProp]);
10709
- React66.useEffect(() => {
10710
+ React67.useEffect(() => {
10710
10711
  setDisabled(disabledProp);
10711
10712
  }, [disabledProp]);
10712
- React66.useEffect(() => {
10713
+ React67.useEffect(() => {
10713
10714
  setReadOnly(readOnlyProp);
10714
10715
  }, [readOnlyProp]);
10715
10716
  function setValue(next, variant = "direct") {
@@ -10807,17 +10808,17 @@ var focusEl = (el) => {
10807
10808
  }
10808
10809
  };
10809
10810
  function useUpdateEffect(effect, deps) {
10810
- const mounted = React66.useRef(false);
10811
- React66.useEffect(() => {
10811
+ const mounted = React67.useRef(false);
10812
+ React67.useEffect(() => {
10812
10813
  if (mounted.current) {
10813
10814
  return effect();
10814
10815
  }
10815
10816
  mounted.current = true;
10816
10817
  }, deps);
10817
10818
  }
10818
- var InputMask = React66.memo(
10819
- React66.forwardRef((inProps, ref) => {
10820
- const props = React66.useMemo(
10819
+ var InputMask = React67.memo(
10820
+ React67.forwardRef((inProps, ref) => {
10821
+ const props = React67.useMemo(
10821
10822
  () => ({
10822
10823
  autoClear: true,
10823
10824
  autoFocus: false,
@@ -10832,20 +10833,20 @@ var InputMask = React66.memo(
10832
10833
  }),
10833
10834
  [inProps]
10834
10835
  );
10835
- const elementRef = React66.useRef(null);
10836
- const firstNonMaskPos = React66.useRef(null);
10837
- const lastRequiredNonMaskPos = React66.useRef(0);
10838
- const tests = React66.useRef([]);
10839
- const buffer = React66.useRef([]);
10840
- const len = React66.useRef(0);
10841
- const oldVal = React66.useRef(null);
10842
- const focus = React66.useRef(false);
10843
- const focusText = React66.useRef(null);
10844
- const isValueChecked = React66.useRef(null);
10845
- const partialPosition = React66.useRef(null);
10846
- const defaultBuffer = React66.useRef(null);
10847
- const caretTimeoutId = React66.useRef(null);
10848
- const androidChrome = React66.useRef(false);
10836
+ const elementRef = React67.useRef(null);
10837
+ const firstNonMaskPos = React67.useRef(null);
10838
+ const lastRequiredNonMaskPos = React67.useRef(0);
10839
+ const tests = React67.useRef([]);
10840
+ const buffer = React67.useRef([]);
10841
+ const len = React67.useRef(0);
10842
+ const oldVal = React67.useRef(null);
10843
+ const focus = React67.useRef(false);
10844
+ const focusText = React67.useRef(null);
10845
+ const isValueChecked = React67.useRef(null);
10846
+ const partialPosition = React67.useRef(null);
10847
+ const defaultBuffer = React67.useRef(null);
10848
+ const caretTimeoutId = React67.useRef(null);
10849
+ const androidChrome = React67.useRef(false);
10849
10850
  const caret = (first, last) => {
10850
10851
  var _a, _b;
10851
10852
  let range;
@@ -10880,7 +10881,7 @@ var InputMask = React66.memo(
10880
10881
  }
10881
10882
  return { begin, end };
10882
10883
  };
10883
- const getPlaceholder = React66.useCallback(
10884
+ const getPlaceholder = React67.useCallback(
10884
10885
  (i4) => {
10885
10886
  var _a;
10886
10887
  const slotChar2 = (_a = props.slotChar) != null ? _a : "_";
@@ -11150,7 +11151,7 @@ var InputMask = React66.memo(
11150
11151
  });
11151
11152
  }
11152
11153
  };
11153
- const getUnmaskedValue = React66.useCallback(() => {
11154
+ const getUnmaskedValue = React67.useCallback(() => {
11154
11155
  const unmaskedBuffer = [];
11155
11156
  for (let i4 = 0; i4 < buffer.current.length; i4++) {
11156
11157
  const c2 = buffer.current[i4];
@@ -11205,7 +11206,7 @@ var InputMask = React66.memo(
11205
11206
  }
11206
11207
  return pos;
11207
11208
  };
11208
- const isValueUpdated = React66.useCallback(() => {
11209
+ const isValueUpdated = React67.useCallback(() => {
11209
11210
  var _a, _b, _c, _d;
11210
11211
  const elVal = (_b = (_a = elementRef.current) == null ? void 0 : _a.value) != null ? _b : "";
11211
11212
  return props.unmask ? ((_c = props.value) != null ? _c : "") !== getUnmaskedValue() : defaultBuffer.current !== elVal && elVal !== ((_d = props.value) != null ? _d : "");
@@ -11305,7 +11306,7 @@ var InputMask = React66.memo(
11305
11306
  const onInput = (event) => {
11306
11307
  androidChrome.current ? handleAndroidInput(event) : handleInputChange(event);
11307
11308
  };
11308
- React66.useImperativeHandle(
11309
+ React67.useImperativeHandle(
11309
11310
  ref,
11310
11311
  () => ({
11311
11312
  focus: () => focusEl(elementRef.current),
@@ -11313,10 +11314,10 @@ var InputMask = React66.memo(
11313
11314
  }),
11314
11315
  []
11315
11316
  );
11316
- React66.useEffect(() => {
11317
+ React67.useEffect(() => {
11317
11318
  if (!elementRef.current) return;
11318
11319
  }, []);
11319
- React66.useEffect(() => {
11320
+ React67.useEffect(() => {
11320
11321
  init();
11321
11322
  updateValue();
11322
11323
  }, []);
@@ -11350,6 +11351,7 @@ var InputMask = React66.memo(
11350
11351
  onKeyPress: l2,
11351
11352
  onInput: m2,
11352
11353
  className,
11354
+ invalid,
11353
11355
  ...restInputProps
11354
11356
  } = props;
11355
11357
  return /* @__PURE__ */ jsx(
@@ -11371,6 +11373,7 @@ var InputMask = React66.memo(
11371
11373
  onKeyPress,
11372
11374
  onInput,
11373
11375
  onPaste: (e4) => handleInputChange(e4, true),
11376
+ "aria-invalid": invalid ? "true" : void 0,
11374
11377
  ...restInputProps
11375
11378
  }
11376
11379
  );
@@ -11464,7 +11467,7 @@ function resolveSizeDensityClasses(size, density) {
11464
11467
  }
11465
11468
  return { heightCls, textCls, densityCls };
11466
11469
  }
11467
- var Input = React66.forwardRef(
11470
+ var Input = React67.forwardRef(
11468
11471
  function Input2(rawProps, forwardedRef) {
11469
11472
  const {
11470
11473
  // base
@@ -11474,6 +11477,7 @@ var Input = React66.forwardRef(
11474
11477
  disabled,
11475
11478
  readOnly,
11476
11479
  required,
11480
+ invalid,
11477
11481
  // size / density
11478
11482
  size = "md",
11479
11483
  density = "normal",
@@ -11527,8 +11531,8 @@ var Input = React66.forwardRef(
11527
11531
  const sizeKey = size != null ? size : "md";
11528
11532
  const densityKey = density != null ? density : "normal";
11529
11533
  const isMasked = Boolean(mask);
11530
- const innerRef = React66.useRef(null);
11531
- React66.useImperativeHandle(
11534
+ const innerRef = React67.useRef(null);
11535
+ React67.useImperativeHandle(
11532
11536
  forwardedRef,
11533
11537
  () => innerRef.current,
11534
11538
  []
@@ -11549,11 +11553,11 @@ var Input = React66.forwardRef(
11549
11553
  const baseIconGap = iconGap != null ? iconGap : 4;
11550
11554
  const leadingGap = leadingIconSpacing != null ? leadingIconSpacing : baseIconGap;
11551
11555
  const trailingGap = trailingIconSpacing != null ? trailingIconSpacing : baseIconGap;
11552
- const leadingIconsRef = React66.useRef(null);
11553
- const trailingIconsRef = React66.useRef(null);
11554
- const [leadingIconsWidth, setLeadingIconsWidth] = React66.useState(0);
11555
- const [trailingIconsWidth, setTrailingIconsWidth] = React66.useState(0);
11556
- React66.useLayoutEffect(() => {
11556
+ const leadingIconsRef = React67.useRef(null);
11557
+ const trailingIconsRef = React67.useRef(null);
11558
+ const [leadingIconsWidth, setLeadingIconsWidth] = React67.useState(0);
11559
+ const [trailingIconsWidth, setTrailingIconsWidth] = React67.useState(0);
11560
+ React67.useLayoutEffect(() => {
11557
11561
  if (typeof window === "undefined") return;
11558
11562
  if (typeof ResizeObserver === "undefined") return;
11559
11563
  const leadingEl = leadingIconsRef.current;
@@ -11628,7 +11632,7 @@ var Input = React66.forwardRef(
11628
11632
  inputClassName
11629
11633
  );
11630
11634
  const maskMode = unmask === true || unmask === "raw" ? "raw" : "masked";
11631
- const handleFocus = React66.useCallback(
11635
+ const handleFocus = React67.useCallback(
11632
11636
  (event) => {
11633
11637
  onFocus == null ? void 0 : onFocus(event);
11634
11638
  if (!prefix && !suffix) return;
@@ -11656,7 +11660,7 @@ var Input = React66.forwardRef(
11656
11660
  const placeholder = typeof mask === "string" && mask ? mask : rest.placeholder;
11657
11661
  const hasCustomPadding = typeof px === "number" || typeof py === "number" || typeof ps === "number" || typeof pe2 === "number" || typeof pb === "number";
11658
11662
  const hasKeyFilter = !!keyFilter;
11659
- const handleKeyDownWrapped = React66.useCallback(
11663
+ const handleKeyDownWrapped = React67.useCallback(
11660
11664
  (event) => {
11661
11665
  if (hasKeyFilter && keyFilterOn === "keydown" && !event.ctrlKey && !event.metaKey && !event.altKey && event.key && event.key.length === 1) {
11662
11666
  const inputEl = event.currentTarget;
@@ -11673,7 +11677,7 @@ var Input = React66.forwardRef(
11673
11677
  },
11674
11678
  [hasKeyFilter, keyFilterOn, keyFilter, onKeyDown]
11675
11679
  );
11676
- const handleKeyPressWrapped = React66.useCallback(
11680
+ const handleKeyPressWrapped = React67.useCallback(
11677
11681
  (event) => {
11678
11682
  if (hasKeyFilter && keyFilterOn === "keypress" && !event.ctrlKey && !event.metaKey && !event.altKey && event.key && event.key.length === 1) {
11679
11683
  const inputEl = event.currentTarget;
@@ -11690,7 +11694,7 @@ var Input = React66.forwardRef(
11690
11694
  },
11691
11695
  [hasKeyFilter, keyFilterOn, keyFilter, onKeyPress]
11692
11696
  );
11693
- const handleBeforeInputWrapped = React66.useCallback(
11697
+ const handleBeforeInputWrapped = React67.useCallback(
11694
11698
  (event) => {
11695
11699
  if (hasKeyFilter && keyFilterOn === "beforeinput" && (event == null ? void 0 : event.nativeEvent)) {
11696
11700
  const inputEl = event.currentTarget;
@@ -11711,7 +11715,7 @@ var Input = React66.forwardRef(
11711
11715
  },
11712
11716
  [hasKeyFilter, keyFilterOn, keyFilter, onBeforeInput]
11713
11717
  );
11714
- const handlePasteWrapped = React66.useCallback(
11718
+ const handlePasteWrapped = React67.useCallback(
11715
11719
  (event) => {
11716
11720
  var _a, _b;
11717
11721
  if (hasKeyFilter && keyFilterOnPaste) {
@@ -11762,6 +11766,7 @@ var Input = React66.forwardRef(
11762
11766
  onBeforeInput: handleBeforeInputWrapped,
11763
11767
  onPaste: handlePasteWrapped,
11764
11768
  "aria-required": required ? "true" : void 0,
11769
+ "aria-invalid": invalid ? "true" : void 0,
11765
11770
  "data-size": sizeKey,
11766
11771
  "data-density": densityKey,
11767
11772
  placeholder,
@@ -11815,6 +11820,7 @@ var Input = React66.forwardRef(
11815
11820
  disabled,
11816
11821
  readOnly,
11817
11822
  "aria-required": required ? "true" : void 0,
11823
+ "aria-invalid": invalid ? "true" : void 0,
11818
11824
  "data-size": sizeKey,
11819
11825
  "data-density": densityKey,
11820
11826
  placeholder,
@@ -12109,7 +12115,7 @@ function stripAffixes(value, prefix, suffix) {
12109
12115
  if (suffix && out.endsWith(suffix)) out = out.slice(0, -suffix.length);
12110
12116
  return out;
12111
12117
  }
12112
- var ShadcnTextVariant = React66.forwardRef(function ShadcnTextVariant2(props, forwardedRef) {
12118
+ var ShadcnTextVariant = React67.forwardRef(function ShadcnTextVariant2(props, forwardedRef) {
12113
12119
  const {
12114
12120
  // form-level props
12115
12121
  value,
@@ -12157,7 +12163,7 @@ var ShadcnTextVariant = React66.forwardRef(function ShadcnTextVariant2(props, fo
12157
12163
  ...rest
12158
12164
  } = props;
12159
12165
  const isMasked = Boolean(mask);
12160
- const handlePlainChange = React66.useCallback(
12166
+ const handlePlainChange = React67.useCallback(
12161
12167
  (e4) => {
12162
12168
  var _a;
12163
12169
  const displayed = (_a = e4.target.value) != null ? _a : "";
@@ -12188,7 +12194,7 @@ var ShadcnTextVariant = React66.forwardRef(function ShadcnTextVariant2(props, fo
12188
12194
  },
12189
12195
  [onValue, prefix, suffix, stripPrefix, stripSuffix]
12190
12196
  );
12191
- const handleMaskedChange = React66.useCallback(
12197
+ const handleMaskedChange = React67.useCallback(
12192
12198
  (e4) => {
12193
12199
  var _a, _b, _c;
12194
12200
  const maskedValue = (_a = e4.value) != null ? _a : "";
@@ -12406,8 +12412,8 @@ function normalizeEditable(raw, locale, decimalSep, allowMinus) {
12406
12412
  if (t4 === decimalSep) t4 = "0" + decimalSep;
12407
12413
  return t4;
12408
12414
  }
12409
- var InputNumber = React66.memo(
12410
- React66.forwardRef((inProps, ref) => {
12415
+ var InputNumber = React67.memo(
12416
+ React67.forwardRef((inProps, ref) => {
12411
12417
  var _a;
12412
12418
  const props = {
12413
12419
  allowEmpty: true,
@@ -12422,19 +12428,19 @@ var InputNumber = React66.memo(
12422
12428
  type: "text",
12423
12429
  ...inProps
12424
12430
  };
12425
- const locale = React66.useMemo(
12431
+ const locale = React67.useMemo(
12426
12432
  () => resolveLocale(props.locale),
12427
12433
  [props.locale]
12428
12434
  );
12429
- const decimalSep = React66.useMemo(
12435
+ const decimalSep = React67.useMemo(
12430
12436
  () => getDecimalSeparator(locale),
12431
12437
  [locale]
12432
12438
  );
12433
- const allowMinus = React66.useMemo(
12439
+ const allowMinus = React67.useMemo(
12434
12440
  () => props.min == null || props.min < 0,
12435
12441
  [props.min]
12436
12442
  );
12437
- const fmtOptions = React66.useMemo(() => {
12443
+ const fmtOptions = React67.useMemo(() => {
12438
12444
  return {
12439
12445
  localeMatcher: props.localeMatcher,
12440
12446
  style: props.mode,
@@ -12455,22 +12461,22 @@ var InputNumber = React66.memo(
12455
12461
  props.maxFractionDigits,
12456
12462
  props.roundingMode
12457
12463
  ]);
12458
- const inputRef = React66.useRef(null);
12459
- React66.useImperativeHandle(ref, () => inputRef.current);
12460
- const [display, setDisplay] = React66.useState("");
12461
- const [focused, setFocused] = React66.useState(false);
12462
- const toEditableFromNumber = React66.useCallback(
12464
+ const inputRef = React67.useRef(null);
12465
+ React67.useImperativeHandle(ref, () => inputRef.current);
12466
+ const [display, setDisplay] = React67.useState("");
12467
+ const [focused, setFocused] = React67.useState(false);
12468
+ const toEditableFromNumber = React67.useCallback(
12463
12469
  (n3) => {
12464
12470
  const s3 = String(n3);
12465
12471
  return decimalSep === "." ? s3 : s3.replace(".", decimalSep);
12466
12472
  },
12467
12473
  [decimalSep]
12468
12474
  );
12469
- const clampModel = React66.useCallback(
12475
+ const clampModel = React67.useCallback(
12470
12476
  (n3) => clampToLimits(n3, props.min, props.max),
12471
12477
  [props.min, props.max]
12472
12478
  );
12473
- const emit = React66.useCallback(
12479
+ const emit = React67.useCallback(
12474
12480
  (event, value2) => {
12475
12481
  var _a2, _b, _c;
12476
12482
  const safeValue = sanitizeNumberish(value2);
@@ -12505,7 +12511,7 @@ var InputNumber = React66.memo(
12505
12511
  }
12506
12512
  });
12507
12513
  };
12508
- const formatFromModel = React66.useCallback(
12514
+ const formatFromModel = React67.useCallback(
12509
12515
  (n3) => {
12510
12516
  const safeNumber = sanitizeNumberish(n3);
12511
12517
  if (safeNumber == null) return "";
@@ -12528,7 +12534,7 @@ var InputNumber = React66.memo(
12528
12534
  toEditableFromNumber
12529
12535
  ]
12530
12536
  );
12531
- const getModelFromDisplay = React66.useCallback(
12537
+ const getModelFromDisplay = React67.useCallback(
12532
12538
  (text) => {
12533
12539
  const stripped = stripAffixes2(text, props.prefix, props.suffix);
12534
12540
  const withoutGroup = stripGrouping(stripped, locale);
@@ -12540,7 +12546,7 @@ var InputNumber = React66.memo(
12540
12546
  },
12541
12547
  [props.prefix, props.suffix, locale, decimalSep, clampModel]
12542
12548
  );
12543
- const syncFromPropsValue = React66.useCallback(
12549
+ const syncFromPropsValue = React67.useCallback(
12544
12550
  (v2) => {
12545
12551
  const safeValue = sanitizeNumberish(v2);
12546
12552
  if (safeValue == null) {
@@ -12554,11 +12560,11 @@ var InputNumber = React66.memo(
12554
12560
  },
12555
12561
  [clampModel, focused, toEditableFromNumber, formatFromModel]
12556
12562
  );
12557
- React66.useEffect(() => {
12563
+ React67.useEffect(() => {
12558
12564
  var _a2;
12559
12565
  syncFromPropsValue((_a2 = props.value) != null ? _a2 : null);
12560
12566
  }, []);
12561
- React66.useEffect(() => {
12567
+ React67.useEffect(() => {
12562
12568
  var _a2;
12563
12569
  if (focused) return;
12564
12570
  syncFromPropsValue((_a2 = props.value) != null ? _a2 : null);
@@ -12651,6 +12657,25 @@ var InputNumber = React66.memo(
12651
12657
  value,
12652
12658
  icon,
12653
12659
  iconGap,
12660
+ // Destructure to prevent leakage:
12661
+ locale: _locale,
12662
+ localeMatcher,
12663
+ mode,
12664
+ currency,
12665
+ currencyDisplay,
12666
+ useGrouping,
12667
+ minFractionDigits,
12668
+ maxFractionDigits,
12669
+ roundingMode,
12670
+ min: min2,
12671
+ max: max2,
12672
+ step,
12673
+ allowEmpty,
12674
+ format: format2,
12675
+ invalid,
12676
+ onValueChange,
12677
+ onChange,
12678
+ onValue,
12654
12679
  ...passThroughProps
12655
12680
  } = props;
12656
12681
  return (
@@ -12692,7 +12717,7 @@ InputNumber.displayName = "InputNumber";
12692
12717
  function sanitizeNumberish2(value) {
12693
12718
  return typeof value === "number" && Number.isFinite(value) ? value : null;
12694
12719
  }
12695
- var ShadcnNumberVariant = React66__default.forwardRef(function ShadcnNumberVariant2(props, forwardedRef) {
12720
+ var ShadcnNumberVariant = React67__default.forwardRef(function ShadcnNumberVariant2(props, forwardedRef) {
12696
12721
  const {
12697
12722
  showButtons,
12698
12723
  buttonLayout = "stacked",
@@ -12710,7 +12735,7 @@ var ShadcnNumberVariant = React66__default.forwardRef(function ShadcnNumberVaria
12710
12735
  id,
12711
12736
  inputId
12712
12737
  } = rest;
12713
- const handleChange = React66__default.useCallback(
12738
+ const handleChange = React67__default.useCallback(
12714
12739
  (e4) => {
12715
12740
  const safeValue = sanitizeNumberish2(e4.value);
12716
12741
  if (onValueChange) {
@@ -12723,7 +12748,7 @@ var ShadcnNumberVariant = React66__default.forwardRef(function ShadcnNumberVaria
12723
12748
  },
12724
12749
  [onValueChange]
12725
12750
  );
12726
- const handleStep = React66__default.useCallback(
12751
+ const handleStep = React67__default.useCallback(
12727
12752
  (direction, originalEvent) => {
12728
12753
  var _a, _b;
12729
12754
  if (disabled) return;
@@ -13241,7 +13266,7 @@ var CountrySelect = ({
13241
13266
  }) })
13242
13267
  ] }) });
13243
13268
  };
13244
- var ShadcnPhoneVariant = React66.forwardRef(function ShadcnPhoneVariant2(props, ref) {
13269
+ var ShadcnPhoneVariant = React67.forwardRef(function ShadcnPhoneVariant2(props, ref) {
13245
13270
  const {
13246
13271
  countries: countriesProp,
13247
13272
  defaultCountry,
@@ -13266,8 +13291,8 @@ var ShadcnPhoneVariant = React66.forwardRef(function ShadcnPhoneVariant2(props,
13266
13291
  } = props;
13267
13292
  let DEFAULT_COUNTRIES2 = getGlobalCountryList();
13268
13293
  const defaultCountries = countriesProp && countriesProp.length > 0 ? countriesProp : DEFAULT_COUNTRIES2;
13269
- const [countries, setLoadedCountries] = React66.useState(defaultCountries);
13270
- React66.useEffect(() => {
13294
+ const [countries, setLoadedCountries] = React67.useState(defaultCountries);
13295
+ React67.useEffect(() => {
13271
13296
  if (countriesProp == null ? void 0 : countriesProp.length) return;
13272
13297
  const list = getPaletteUtil("countries");
13273
13298
  if (list == null ? void 0 : list.length) {
@@ -13280,7 +13305,7 @@ var ShadcnPhoneVariant = React66.forwardRef(function ShadcnPhoneVariant2(props,
13280
13305
  });
13281
13306
  }
13282
13307
  }, []);
13283
- const [country, setCountry] = React66.useState(() => {
13308
+ const [country, setCountry] = React67.useState(() => {
13284
13309
  var _a;
13285
13310
  if (defaultCountry) {
13286
13311
  const found = countries.find((c2) => c2.code === defaultCountry);
@@ -13288,7 +13313,7 @@ var ShadcnPhoneVariant = React66.forwardRef(function ShadcnPhoneVariant2(props,
13288
13313
  }
13289
13314
  return (_a = countries[0]) != null ? _a : DEFAULT_COUNTRIES2[0];
13290
13315
  });
13291
- React66.useEffect(() => {
13316
+ React67.useEffect(() => {
13292
13317
  setCountry((prev) => {
13293
13318
  var _a;
13294
13319
  if (defaultCountry) {
@@ -13299,13 +13324,13 @@ var ShadcnPhoneVariant = React66.forwardRef(function ShadcnPhoneVariant2(props,
13299
13324
  return (_a = stillThere != null ? stillThere : countries[0]) != null ? _a : prev;
13300
13325
  });
13301
13326
  }, [countries, defaultCountry]);
13302
- const [local, setLocal] = React66.useState(
13327
+ const [local, setLocal] = React67.useState(
13303
13328
  () => computeDisplayFromValue(value, country, keepCharPositions)
13304
13329
  );
13305
- React66.useEffect(() => {
13330
+ React67.useEffect(() => {
13306
13331
  setLocal(computeDisplayFromValue(value, country, keepCharPositions));
13307
13332
  }, [value, country, keepCharPositions]);
13308
- const handleInputChange = React66.useCallback(
13333
+ const handleInputChange = React67.useCallback(
13309
13334
  (event) => {
13310
13335
  var _a;
13311
13336
  const rawInput = (_a = event.target.value) != null ? _a : "";
@@ -13331,7 +13356,7 @@ var ShadcnPhoneVariant = React66.forwardRef(function ShadcnPhoneVariant2(props,
13331
13356
  },
13332
13357
  [country, valueMode, keepCharPositions, onValue]
13333
13358
  );
13334
- const handleCountryChange = React66.useCallback(
13359
+ const handleCountryChange = React67.useCallback(
13335
13360
  (nextCode) => {
13336
13361
  var _a;
13337
13362
  const nextCountry = (_a = countries.find((c2) => c2.code === nextCode)) != null ? _a : countries[0];
@@ -13418,7 +13443,7 @@ function normalizeColorForPicker(value) {
13418
13443
  }
13419
13444
  return "#000000";
13420
13445
  }
13421
- var ShadcnColorVariant = React66.forwardRef(function ShadcnColorVariant2(props, ref) {
13446
+ var ShadcnColorVariant = React67.forwardRef(function ShadcnColorVariant2(props, ref) {
13422
13447
  const {
13423
13448
  // variant contract
13424
13449
  value,
@@ -13439,22 +13464,22 @@ var ShadcnColorVariant = React66.forwardRef(function ShadcnColorVariant2(props,
13439
13464
  // everything else → Input (size, density, className, icons, etc.)
13440
13465
  ...restTextProps
13441
13466
  } = props;
13442
- const [local, setLocal] = React66.useState(value != null ? value : "");
13443
- const [pickerOpen, setPickerOpen] = React66.useState(false);
13444
- React66.useEffect(() => {
13467
+ const [local, setLocal] = React67.useState(value != null ? value : "");
13468
+ const [pickerOpen, setPickerOpen] = React67.useState(false);
13469
+ React67.useEffect(() => {
13445
13470
  setLocal(value != null ? value : "");
13446
13471
  }, [value]);
13447
- const pickerRef = React66.useRef(null);
13472
+ const pickerRef = React67.useRef(null);
13448
13473
  const effectiveColor = normalizeColorForPicker(local || value);
13449
13474
  const showError = Boolean(error);
13450
- const openSystemPicker = React66.useCallback(() => {
13475
+ const openSystemPicker = React67.useCallback(() => {
13451
13476
  setPickerOpen(true);
13452
13477
  window.setTimeout(() => {
13453
13478
  var _a;
13454
13479
  (_a = pickerRef.current) == null ? void 0 : _a.click();
13455
13480
  }, 0);
13456
13481
  }, []);
13457
- const handleTextChange = React66.useCallback(
13482
+ const handleTextChange = React67.useCallback(
13458
13483
  (event) => {
13459
13484
  var _a;
13460
13485
  const next = (_a = event.target.value) != null ? _a : "";
@@ -13471,7 +13496,7 @@ var ShadcnColorVariant = React66.forwardRef(function ShadcnColorVariant2(props,
13471
13496
  },
13472
13497
  [onValue]
13473
13498
  );
13474
- const handlePickerChange = React66.useCallback(
13499
+ const handlePickerChange = React67.useCallback(
13475
13500
  (event) => {
13476
13501
  var _a;
13477
13502
  const next = (_a = event.target.value) != null ? _a : "";
@@ -13489,7 +13514,7 @@ var ShadcnColorVariant = React66.forwardRef(function ShadcnColorVariant2(props,
13489
13514
  },
13490
13515
  [onValue]
13491
13516
  );
13492
- const handlePickerBlur = React66.useCallback(() => {
13517
+ const handlePickerBlur = React67.useCallback(() => {
13493
13518
  setPickerOpen(false);
13494
13519
  }, []);
13495
13520
  const leadingControl = showPreview ? /* @__PURE__ */ jsx(
@@ -13791,7 +13816,7 @@ function meterColor(score) {
13791
13816
  if (score === 3) return "bg-amber-500";
13792
13817
  return "bg-emerald-500";
13793
13818
  }
13794
- var ShadcnPasswordVariant = React66.forwardRef(function ShadcnPasswordVariant2(props, ref) {
13819
+ var ShadcnPasswordVariant = React67.forwardRef(function ShadcnPasswordVariant2(props, ref) {
13795
13820
  var _a, _b;
13796
13821
  const {
13797
13822
  // base variant bits
@@ -13827,18 +13852,18 @@ var ShadcnPasswordVariant = React66.forwardRef(function ShadcnPasswordVariant2(p
13827
13852
  // everything else from Shadcn text UI
13828
13853
  ...restTextProps
13829
13854
  } = props;
13830
- const [revealed, setRevealed] = React66.useState(
13855
+ const [revealed, setRevealed] = React67.useState(
13831
13856
  Boolean(defaultRevealed)
13832
13857
  );
13833
- const normalizedStrength = React66.useMemo(
13858
+ const normalizedStrength = React67.useMemo(
13834
13859
  () => normalizeStrengthOptions(strengthMeter),
13835
13860
  [strengthMeter]
13836
13861
  );
13837
- const effectiveRuleDefinitions = React66.useMemo(
13862
+ const effectiveRuleDefinitions = React67.useMemo(
13838
13863
  () => getMergedRuleDefinitions(ruleDefinitions),
13839
13864
  [ruleDefinitions]
13840
13865
  );
13841
- const meterState = React66.useMemo(() => {
13866
+ const meterState = React67.useMemo(() => {
13842
13867
  if (!normalizedStrength) return null;
13843
13868
  const v2 = value != null ? value : "";
13844
13869
  return computeMeterState(
@@ -13848,14 +13873,14 @@ var ShadcnPasswordVariant = React66.forwardRef(function ShadcnPasswordVariant2(p
13848
13873
  ruleUses
13849
13874
  );
13850
13875
  }, [normalizedStrength, value, ruleUses, effectiveRuleDefinitions]);
13851
- const handleToggleReveal = React66.useCallback(() => {
13876
+ const handleToggleReveal = React67.useCallback(() => {
13852
13877
  setRevealed((prev) => {
13853
13878
  const next = !prev;
13854
13879
  onRevealChange == null ? void 0 : onRevealChange(next);
13855
13880
  return next;
13856
13881
  });
13857
13882
  }, [onRevealChange]);
13858
- const handleChange = React66.useCallback(
13883
+ const handleChange = React67.useCallback(
13859
13884
  (event) => {
13860
13885
  var _a2;
13861
13886
  const next = (_a2 = event.target.value) != null ? _a2 : "";
@@ -16505,38 +16530,38 @@ __export(custom_components_exports, {
16505
16530
  YearsDropdown: () => YearsDropdown
16506
16531
  });
16507
16532
  function Button(props) {
16508
- return React66__default.createElement("button", { ...props });
16533
+ return React67__default.createElement("button", { ...props });
16509
16534
  }
16510
16535
  function CaptionLabel(props) {
16511
- return React66__default.createElement("span", { ...props });
16536
+ return React67__default.createElement("span", { ...props });
16512
16537
  }
16513
16538
  function Chevron(props) {
16514
16539
  const { size = 24, orientation = "left", className } = props;
16515
16540
  return (
16516
16541
  // biome-ignore lint/a11y/noSvgWithoutTitle: handled by the parent component
16517
- React66__default.createElement(
16542
+ React67__default.createElement(
16518
16543
  "svg",
16519
16544
  { className, width: size, height: size, viewBox: "0 0 24 24" },
16520
- orientation === "up" && React66__default.createElement("polygon", { points: "6.77 17 12.5 11.43 18.24 17 20 15.28 12.5 8 5 15.28" }),
16521
- orientation === "down" && React66__default.createElement("polygon", { points: "6.77 8 12.5 13.57 18.24 8 20 9.72 12.5 17 5 9.72" }),
16522
- orientation === "left" && React66__default.createElement("polygon", { points: "16 18.112 9.81111111 12 16 5.87733333 14.0888889 4 6 12 14.0888889 20" }),
16523
- orientation === "right" && React66__default.createElement("polygon", { points: "8 18.112 14.18888889 12 8 5.87733333 9.91111111 4 18 12 9.91111111 20" })
16545
+ orientation === "up" && React67__default.createElement("polygon", { points: "6.77 17 12.5 11.43 18.24 17 20 15.28 12.5 8 5 15.28" }),
16546
+ orientation === "down" && React67__default.createElement("polygon", { points: "6.77 8 12.5 13.57 18.24 8 20 9.72 12.5 17 5 9.72" }),
16547
+ orientation === "left" && React67__default.createElement("polygon", { points: "16 18.112 9.81111111 12 16 5.87733333 14.0888889 4 6 12 14.0888889 20" }),
16548
+ orientation === "right" && React67__default.createElement("polygon", { points: "8 18.112 14.18888889 12 8 5.87733333 9.91111111 4 18 12 9.91111111 20" })
16524
16549
  )
16525
16550
  );
16526
16551
  }
16527
16552
  function Day(props) {
16528
16553
  const { day, modifiers, ...tdProps } = props;
16529
- return React66__default.createElement("td", { ...tdProps });
16554
+ return React67__default.createElement("td", { ...tdProps });
16530
16555
  }
16531
16556
  function DayButton(props) {
16532
16557
  const { day, modifiers, ...buttonProps } = props;
16533
- const ref = React66__default.useRef(null);
16534
- React66__default.useEffect(() => {
16558
+ const ref = React67__default.useRef(null);
16559
+ React67__default.useEffect(() => {
16535
16560
  var _a;
16536
16561
  if (modifiers.focused)
16537
16562
  (_a = ref.current) == null ? void 0 : _a.focus();
16538
16563
  }, [modifiers.focused]);
16539
- return React66__default.createElement("button", { ref, ...buttonProps });
16564
+ return React67__default.createElement("button", { ref, ...buttonProps });
16540
16565
  }
16541
16566
 
16542
16567
  // ../../node_modules/react-day-picker/dist/esm/UI.js
@@ -16599,37 +16624,37 @@ function Dropdown(props) {
16599
16624
  const { options, className, components, classNames, ...selectProps } = props;
16600
16625
  const cssClassSelect = [classNames[UI.Dropdown], className].join(" ");
16601
16626
  const selectedOption = options == null ? void 0 : options.find(({ value }) => value === selectProps.value);
16602
- return React66__default.createElement(
16627
+ return React67__default.createElement(
16603
16628
  "span",
16604
16629
  { "data-disabled": selectProps.disabled, className: classNames[UI.DropdownRoot] },
16605
- React66__default.createElement(components.Select, { className: cssClassSelect, ...selectProps }, options == null ? void 0 : options.map(({ value, label, disabled }) => React66__default.createElement(components.Option, { key: value, value, disabled }, label))),
16606
- React66__default.createElement(
16630
+ React67__default.createElement(components.Select, { className: cssClassSelect, ...selectProps }, options == null ? void 0 : options.map(({ value, label, disabled }) => React67__default.createElement(components.Option, { key: value, value, disabled }, label))),
16631
+ React67__default.createElement(
16607
16632
  "span",
16608
16633
  { className: classNames[UI.CaptionLabel], "aria-hidden": true },
16609
16634
  selectedOption == null ? void 0 : selectedOption.label,
16610
- React66__default.createElement(components.Chevron, { orientation: "down", size: 18, className: classNames[UI.Chevron] })
16635
+ React67__default.createElement(components.Chevron, { orientation: "down", size: 18, className: classNames[UI.Chevron] })
16611
16636
  )
16612
16637
  );
16613
16638
  }
16614
16639
  function DropdownNav(props) {
16615
- return React66__default.createElement("div", { ...props });
16640
+ return React67__default.createElement("div", { ...props });
16616
16641
  }
16617
16642
  function Footer(props) {
16618
- return React66__default.createElement("div", { ...props });
16643
+ return React67__default.createElement("div", { ...props });
16619
16644
  }
16620
16645
  function Month(props) {
16621
16646
  const { calendarMonth, displayIndex, ...divProps } = props;
16622
- return React66__default.createElement("div", { ...divProps }, props.children);
16647
+ return React67__default.createElement("div", { ...divProps }, props.children);
16623
16648
  }
16624
16649
  function MonthCaption(props) {
16625
16650
  const { calendarMonth, displayIndex, ...divProps } = props;
16626
- return React66__default.createElement("div", { ...divProps });
16651
+ return React67__default.createElement("div", { ...divProps });
16627
16652
  }
16628
16653
  function MonthGrid(props) {
16629
- return React66__default.createElement("table", { ...props });
16654
+ return React67__default.createElement("table", { ...props });
16630
16655
  }
16631
16656
  function Months(props) {
16632
- return React66__default.createElement("div", { ...props });
16657
+ return React67__default.createElement("div", { ...props });
16633
16658
  }
16634
16659
  var dayPickerContext = createContext(void 0);
16635
16660
  function useDayPicker() {
@@ -16643,7 +16668,7 @@ function useDayPicker() {
16643
16668
  // ../../node_modules/react-day-picker/dist/esm/components/MonthsDropdown.js
16644
16669
  function MonthsDropdown(props) {
16645
16670
  const { components } = useDayPicker();
16646
- return React66__default.createElement(components.Dropdown, { ...props });
16671
+ return React67__default.createElement(components.Dropdown, { ...props });
16647
16672
  }
16648
16673
  function Nav(props) {
16649
16674
  const { onPreviousClick, onNextClick, previousMonth, nextMonth, ...navProps } = props;
@@ -16658,66 +16683,66 @@ function Nav(props) {
16658
16683
  onPreviousClick == null ? void 0 : onPreviousClick(e4);
16659
16684
  }
16660
16685
  }, [previousMonth, onPreviousClick]);
16661
- return React66__default.createElement(
16686
+ return React67__default.createElement(
16662
16687
  "nav",
16663
16688
  { ...navProps },
16664
- React66__default.createElement(
16689
+ React67__default.createElement(
16665
16690
  components.PreviousMonthButton,
16666
16691
  { type: "button", className: classNames[UI.PreviousMonthButton], tabIndex: previousMonth ? void 0 : -1, "aria-disabled": previousMonth ? void 0 : true, "aria-label": labelPrevious2(previousMonth), onClick: handlePreviousClick },
16667
- React66__default.createElement(components.Chevron, { disabled: previousMonth ? void 0 : true, className: classNames[UI.Chevron], orientation: "left" })
16692
+ React67__default.createElement(components.Chevron, { disabled: previousMonth ? void 0 : true, className: classNames[UI.Chevron], orientation: "left" })
16668
16693
  ),
16669
- React66__default.createElement(
16694
+ React67__default.createElement(
16670
16695
  components.NextMonthButton,
16671
16696
  { type: "button", className: classNames[UI.NextMonthButton], tabIndex: nextMonth ? void 0 : -1, "aria-disabled": nextMonth ? void 0 : true, "aria-label": labelNext2(nextMonth), onClick: handleNextClick },
16672
- React66__default.createElement(components.Chevron, { disabled: nextMonth ? void 0 : true, orientation: "right", className: classNames[UI.Chevron] })
16697
+ React67__default.createElement(components.Chevron, { disabled: nextMonth ? void 0 : true, orientation: "right", className: classNames[UI.Chevron] })
16673
16698
  )
16674
16699
  );
16675
16700
  }
16676
16701
  function NextMonthButton(props) {
16677
16702
  const { components } = useDayPicker();
16678
- return React66__default.createElement(components.Button, { ...props });
16703
+ return React67__default.createElement(components.Button, { ...props });
16679
16704
  }
16680
16705
  function Option(props) {
16681
- return React66__default.createElement("option", { ...props });
16706
+ return React67__default.createElement("option", { ...props });
16682
16707
  }
16683
16708
  function PreviousMonthButton(props) {
16684
16709
  const { components } = useDayPicker();
16685
- return React66__default.createElement(components.Button, { ...props });
16710
+ return React67__default.createElement(components.Button, { ...props });
16686
16711
  }
16687
16712
  function Root3(props) {
16688
16713
  const { rootRef, ...rest } = props;
16689
- return React66__default.createElement("div", { ...rest, ref: rootRef });
16714
+ return React67__default.createElement("div", { ...rest, ref: rootRef });
16690
16715
  }
16691
16716
  function Select2(props) {
16692
- return React66__default.createElement("select", { ...props });
16717
+ return React67__default.createElement("select", { ...props });
16693
16718
  }
16694
16719
  function Week(props) {
16695
16720
  const { week, ...trProps } = props;
16696
- return React66__default.createElement("tr", { ...trProps });
16721
+ return React67__default.createElement("tr", { ...trProps });
16697
16722
  }
16698
16723
  function Weekday(props) {
16699
- return React66__default.createElement("th", { ...props });
16724
+ return React67__default.createElement("th", { ...props });
16700
16725
  }
16701
16726
  function Weekdays(props) {
16702
- return React66__default.createElement(
16727
+ return React67__default.createElement(
16703
16728
  "thead",
16704
16729
  { "aria-hidden": true },
16705
- React66__default.createElement("tr", { ...props })
16730
+ React67__default.createElement("tr", { ...props })
16706
16731
  );
16707
16732
  }
16708
16733
  function WeekNumber(props) {
16709
16734
  const { week, ...thProps } = props;
16710
- return React66__default.createElement("th", { ...thProps });
16735
+ return React67__default.createElement("th", { ...thProps });
16711
16736
  }
16712
16737
  function WeekNumberHeader(props) {
16713
- return React66__default.createElement("th", { ...props });
16738
+ return React67__default.createElement("th", { ...props });
16714
16739
  }
16715
16740
  function Weeks(props) {
16716
- return React66__default.createElement("tbody", { ...props });
16741
+ return React67__default.createElement("tbody", { ...props });
16717
16742
  }
16718
16743
  function YearsDropdown(props) {
16719
16744
  const { components } = useDayPicker();
16720
- return React66__default.createElement(components.Dropdown, { ...props });
16745
+ return React67__default.createElement(components.Dropdown, { ...props });
16721
16746
  }
16722
16747
 
16723
16748
  // ../../node_modules/react-day-picker/dist/esm/utils/rangeIncludesDate.js
@@ -18204,18 +18229,18 @@ function DayPicker(initialProps) {
18204
18229
  labels,
18205
18230
  formatters: formatters2
18206
18231
  };
18207
- return React66__default.createElement(
18232
+ return React67__default.createElement(
18208
18233
  dayPickerContext.Provider,
18209
18234
  { value: contextValue },
18210
- React66__default.createElement(
18235
+ React67__default.createElement(
18211
18236
  components.Root,
18212
18237
  { rootRef: props.animate ? rootElRef : void 0, className, style, dir: props.dir, id: props.id, lang: props.lang, nonce: props.nonce, title: props.title, role: props.role, "aria-label": props["aria-label"], "aria-labelledby": props["aria-labelledby"], ...dataAttributes },
18213
- React66__default.createElement(
18238
+ React67__default.createElement(
18214
18239
  components.Months,
18215
18240
  { className: classNames[UI.Months], style: styles == null ? void 0 : styles[UI.Months] },
18216
- !props.hideNavigation && !navLayout && React66__default.createElement(components.Nav, { "data-animated-nav": props.animate ? "true" : void 0, className: classNames[UI.Nav], style: styles == null ? void 0 : styles[UI.Nav], "aria-label": labelNav2(), onPreviousClick: handlePreviousClick, onNextClick: handleNextClick, previousMonth, nextMonth }),
18241
+ !props.hideNavigation && !navLayout && React67__default.createElement(components.Nav, { "data-animated-nav": props.animate ? "true" : void 0, className: classNames[UI.Nav], style: styles == null ? void 0 : styles[UI.Nav], "aria-label": labelNav2(), onPreviousClick: handlePreviousClick, onNextClick: handleNextClick, previousMonth, nextMonth }),
18217
18242
  months.map((calendarMonth, displayIndex) => {
18218
- return React66__default.createElement(
18243
+ return React67__default.createElement(
18219
18244
  components.Month,
18220
18245
  {
18221
18246
  "data-animated-month": props.animate ? "true" : void 0,
@@ -18226,21 +18251,21 @@ function DayPicker(initialProps) {
18226
18251
  displayIndex,
18227
18252
  calendarMonth
18228
18253
  },
18229
- navLayout === "around" && !props.hideNavigation && displayIndex === 0 && React66__default.createElement(
18254
+ navLayout === "around" && !props.hideNavigation && displayIndex === 0 && React67__default.createElement(
18230
18255
  components.PreviousMonthButton,
18231
18256
  { type: "button", className: classNames[UI.PreviousMonthButton], tabIndex: previousMonth ? void 0 : -1, "aria-disabled": previousMonth ? void 0 : true, "aria-label": labelPrevious2(previousMonth), onClick: handlePreviousClick, "data-animated-button": props.animate ? "true" : void 0 },
18232
- React66__default.createElement(components.Chevron, { disabled: previousMonth ? void 0 : true, className: classNames[UI.Chevron], orientation: props.dir === "rtl" ? "right" : "left" })
18257
+ React67__default.createElement(components.Chevron, { disabled: previousMonth ? void 0 : true, className: classNames[UI.Chevron], orientation: props.dir === "rtl" ? "right" : "left" })
18233
18258
  ),
18234
- React66__default.createElement(components.MonthCaption, { "data-animated-caption": props.animate ? "true" : void 0, className: classNames[UI.MonthCaption], style: styles == null ? void 0 : styles[UI.MonthCaption], calendarMonth, displayIndex }, (captionLayout == null ? void 0 : captionLayout.startsWith("dropdown")) ? React66__default.createElement(
18259
+ React67__default.createElement(components.MonthCaption, { "data-animated-caption": props.animate ? "true" : void 0, className: classNames[UI.MonthCaption], style: styles == null ? void 0 : styles[UI.MonthCaption], calendarMonth, displayIndex }, (captionLayout == null ? void 0 : captionLayout.startsWith("dropdown")) ? React67__default.createElement(
18235
18260
  components.DropdownNav,
18236
18261
  { className: classNames[UI.Dropdowns], style: styles == null ? void 0 : styles[UI.Dropdowns] },
18237
18262
  (() => {
18238
- const monthControl = captionLayout === "dropdown" || captionLayout === "dropdown-months" ? React66__default.createElement(components.MonthsDropdown, { key: "month", className: classNames[UI.MonthsDropdown], "aria-label": labelMonthDropdown2(), classNames, components, disabled: Boolean(props.disableNavigation), onChange: handleMonthChange(calendarMonth.date), options: getMonthOptions(calendarMonth.date, navStart, navEnd, formatters2, dateLib), style: styles == null ? void 0 : styles[UI.Dropdown], value: dateLib.getMonth(calendarMonth.date) }) : React66__default.createElement("span", { key: "month" }, formatMonthDropdown2(calendarMonth.date, dateLib));
18239
- const yearControl = captionLayout === "dropdown" || captionLayout === "dropdown-years" ? React66__default.createElement(components.YearsDropdown, { key: "year", className: classNames[UI.YearsDropdown], "aria-label": labelYearDropdown2(dateLib.options), classNames, components, disabled: Boolean(props.disableNavigation), onChange: handleYearChange(calendarMonth.date), options: getYearOptions(navStart, navEnd, formatters2, dateLib, Boolean(props.reverseYears)), style: styles == null ? void 0 : styles[UI.Dropdown], value: dateLib.getYear(calendarMonth.date) }) : React66__default.createElement("span", { key: "year" }, formatYearDropdown2(calendarMonth.date, dateLib));
18263
+ const monthControl = captionLayout === "dropdown" || captionLayout === "dropdown-months" ? React67__default.createElement(components.MonthsDropdown, { key: "month", className: classNames[UI.MonthsDropdown], "aria-label": labelMonthDropdown2(), classNames, components, disabled: Boolean(props.disableNavigation), onChange: handleMonthChange(calendarMonth.date), options: getMonthOptions(calendarMonth.date, navStart, navEnd, formatters2, dateLib), style: styles == null ? void 0 : styles[UI.Dropdown], value: dateLib.getMonth(calendarMonth.date) }) : React67__default.createElement("span", { key: "month" }, formatMonthDropdown2(calendarMonth.date, dateLib));
18264
+ const yearControl = captionLayout === "dropdown" || captionLayout === "dropdown-years" ? React67__default.createElement(components.YearsDropdown, { key: "year", className: classNames[UI.YearsDropdown], "aria-label": labelYearDropdown2(dateLib.options), classNames, components, disabled: Boolean(props.disableNavigation), onChange: handleYearChange(calendarMonth.date), options: getYearOptions(navStart, navEnd, formatters2, dateLib, Boolean(props.reverseYears)), style: styles == null ? void 0 : styles[UI.Dropdown], value: dateLib.getYear(calendarMonth.date) }) : React67__default.createElement("span", { key: "year" }, formatYearDropdown2(calendarMonth.date, dateLib));
18240
18265
  const controls = dateLib.getMonthYearOrder() === "year-first" ? [yearControl, monthControl] : [monthControl, yearControl];
18241
18266
  return controls;
18242
18267
  })(),
18243
- React66__default.createElement("span", { role: "status", "aria-live": "polite", style: {
18268
+ React67__default.createElement("span", { role: "status", "aria-live": "polite", style: {
18244
18269
  border: 0,
18245
18270
  clip: "rect(0 0 0 0)",
18246
18271
  height: "1px",
@@ -18252,27 +18277,27 @@ function DayPicker(initialProps) {
18252
18277
  whiteSpace: "nowrap",
18253
18278
  wordWrap: "normal"
18254
18279
  } }, formatCaption2(calendarMonth.date, dateLib.options, dateLib))
18255
- ) : React66__default.createElement(components.CaptionLabel, { className: classNames[UI.CaptionLabel], role: "status", "aria-live": "polite" }, formatCaption2(calendarMonth.date, dateLib.options, dateLib))),
18256
- navLayout === "around" && !props.hideNavigation && displayIndex === numberOfMonths - 1 && React66__default.createElement(
18280
+ ) : React67__default.createElement(components.CaptionLabel, { className: classNames[UI.CaptionLabel], role: "status", "aria-live": "polite" }, formatCaption2(calendarMonth.date, dateLib.options, dateLib))),
18281
+ navLayout === "around" && !props.hideNavigation && displayIndex === numberOfMonths - 1 && React67__default.createElement(
18257
18282
  components.NextMonthButton,
18258
18283
  { type: "button", className: classNames[UI.NextMonthButton], tabIndex: nextMonth ? void 0 : -1, "aria-disabled": nextMonth ? void 0 : true, "aria-label": labelNext2(nextMonth), onClick: handleNextClick, "data-animated-button": props.animate ? "true" : void 0 },
18259
- React66__default.createElement(components.Chevron, { disabled: nextMonth ? void 0 : true, className: classNames[UI.Chevron], orientation: props.dir === "rtl" ? "left" : "right" })
18284
+ React67__default.createElement(components.Chevron, { disabled: nextMonth ? void 0 : true, className: classNames[UI.Chevron], orientation: props.dir === "rtl" ? "left" : "right" })
18260
18285
  ),
18261
- displayIndex === numberOfMonths - 1 && navLayout === "after" && !props.hideNavigation && React66__default.createElement(components.Nav, { "data-animated-nav": props.animate ? "true" : void 0, className: classNames[UI.Nav], style: styles == null ? void 0 : styles[UI.Nav], "aria-label": labelNav2(), onPreviousClick: handlePreviousClick, onNextClick: handleNextClick, previousMonth, nextMonth }),
18262
- React66__default.createElement(
18286
+ displayIndex === numberOfMonths - 1 && navLayout === "after" && !props.hideNavigation && React67__default.createElement(components.Nav, { "data-animated-nav": props.animate ? "true" : void 0, className: classNames[UI.Nav], style: styles == null ? void 0 : styles[UI.Nav], "aria-label": labelNav2(), onPreviousClick: handlePreviousClick, onNextClick: handleNextClick, previousMonth, nextMonth }),
18287
+ React67__default.createElement(
18263
18288
  components.MonthGrid,
18264
18289
  { role: "grid", "aria-multiselectable": mode === "multiple" || mode === "range", "aria-label": labelGrid2(calendarMonth.date, dateLib.options, dateLib) || void 0, className: classNames[UI.MonthGrid], style: styles == null ? void 0 : styles[UI.MonthGrid] },
18265
- !props.hideWeekdays && React66__default.createElement(
18290
+ !props.hideWeekdays && React67__default.createElement(
18266
18291
  components.Weekdays,
18267
18292
  { "data-animated-weekdays": props.animate ? "true" : void 0, className: classNames[UI.Weekdays], style: styles == null ? void 0 : styles[UI.Weekdays] },
18268
- showWeekNumber && React66__default.createElement(components.WeekNumberHeader, { "aria-label": labelWeekNumberHeader2(dateLib.options), className: classNames[UI.WeekNumberHeader], style: styles == null ? void 0 : styles[UI.WeekNumberHeader], scope: "col" }, formatWeekNumberHeader2()),
18269
- weekdays.map((weekday) => React66__default.createElement(components.Weekday, { "aria-label": labelWeekday2(weekday, dateLib.options, dateLib), className: classNames[UI.Weekday], key: String(weekday), style: styles == null ? void 0 : styles[UI.Weekday], scope: "col" }, formatWeekdayName2(weekday, dateLib.options, dateLib)))
18293
+ showWeekNumber && React67__default.createElement(components.WeekNumberHeader, { "aria-label": labelWeekNumberHeader2(dateLib.options), className: classNames[UI.WeekNumberHeader], style: styles == null ? void 0 : styles[UI.WeekNumberHeader], scope: "col" }, formatWeekNumberHeader2()),
18294
+ weekdays.map((weekday) => React67__default.createElement(components.Weekday, { "aria-label": labelWeekday2(weekday, dateLib.options, dateLib), className: classNames[UI.Weekday], key: String(weekday), style: styles == null ? void 0 : styles[UI.Weekday], scope: "col" }, formatWeekdayName2(weekday, dateLib.options, dateLib)))
18270
18295
  ),
18271
- React66__default.createElement(components.Weeks, { "data-animated-weeks": props.animate ? "true" : void 0, className: classNames[UI.Weeks], style: styles == null ? void 0 : styles[UI.Weeks] }, calendarMonth.weeks.map((week) => {
18272
- return React66__default.createElement(
18296
+ React67__default.createElement(components.Weeks, { "data-animated-weeks": props.animate ? "true" : void 0, className: classNames[UI.Weeks], style: styles == null ? void 0 : styles[UI.Weeks] }, calendarMonth.weeks.map((week) => {
18297
+ return React67__default.createElement(
18273
18298
  components.Week,
18274
18299
  { className: classNames[UI.Week], key: week.weekNumber, style: styles == null ? void 0 : styles[UI.Week], week },
18275
- showWeekNumber && React66__default.createElement(components.WeekNumber, { week, style: styles == null ? void 0 : styles[UI.WeekNumber], "aria-label": labelWeekNumber2(week.weekNumber, {
18300
+ showWeekNumber && React67__default.createElement(components.WeekNumber, { week, style: styles == null ? void 0 : styles[UI.WeekNumber], "aria-label": labelWeekNumber2(week.weekNumber, {
18276
18301
  locale
18277
18302
  }), className: classNames[UI.WeekNumber], scope: "row", role: "rowheader" }, formatWeekNumber2(week.weekNumber, dateLib)),
18278
18303
  week.days.map((day) => {
@@ -18289,7 +18314,7 @@ function DayPicker(initialProps) {
18289
18314
  const style2 = getStyleForModifiers(modifiers, styles, props.modifiersStyles);
18290
18315
  const className2 = getClassNamesForModifiers(modifiers, classNames, props.modifiersClassNames);
18291
18316
  const ariaLabel = !isInteractive && !modifiers.hidden ? labelGridcell2(date, modifiers, dateLib.options, dateLib) : void 0;
18292
- return React66__default.createElement(components.Day, { key: `${day.isoDate}_${day.displayMonthId}`, day, modifiers, className: className2.join(" "), style: style2, role: "gridcell", "aria-selected": modifiers.selected || void 0, "aria-label": ariaLabel, "data-day": day.isoDate, "data-month": day.outside ? day.dateMonthId : void 0, "data-selected": modifiers.selected || void 0, "data-disabled": modifiers.disabled || void 0, "data-hidden": modifiers.hidden || void 0, "data-outside": day.outside || void 0, "data-focused": modifiers.focused || void 0, "data-today": modifiers.today || void 0 }, !modifiers.hidden && isInteractive ? React66__default.createElement(components.DayButton, { className: classNames[UI.DayButton], style: styles == null ? void 0 : styles[UI.DayButton], type: "button", day, modifiers, disabled: !modifiers.focused && modifiers.disabled || void 0, "aria-disabled": modifiers.focused && modifiers.disabled || void 0, tabIndex: isFocusTarget(day) ? 0 : -1, "aria-label": labelDayButton2(date, modifiers, dateLib.options, dateLib), onClick: handleDayClick(day, modifiers), onBlur: handleDayBlur(day, modifiers), onFocus: handleDayFocus(day, modifiers), onKeyDown: handleDayKeyDown(day, modifiers), onMouseEnter: handleDayMouseEnter(day, modifiers), onMouseLeave: handleDayMouseLeave(day, modifiers) }, formatDay2(date, dateLib.options, dateLib)) : !modifiers.hidden && formatDay2(day.date, dateLib.options, dateLib));
18317
+ return React67__default.createElement(components.Day, { key: `${day.isoDate}_${day.displayMonthId}`, day, modifiers, className: className2.join(" "), style: style2, role: "gridcell", "aria-selected": modifiers.selected || void 0, "aria-label": ariaLabel, "data-day": day.isoDate, "data-month": day.outside ? day.dateMonthId : void 0, "data-selected": modifiers.selected || void 0, "data-disabled": modifiers.disabled || void 0, "data-hidden": modifiers.hidden || void 0, "data-outside": day.outside || void 0, "data-focused": modifiers.focused || void 0, "data-today": modifiers.today || void 0 }, !modifiers.hidden && isInteractive ? React67__default.createElement(components.DayButton, { className: classNames[UI.DayButton], style: styles == null ? void 0 : styles[UI.DayButton], type: "button", day, modifiers, disabled: !modifiers.focused && modifiers.disabled || void 0, "aria-disabled": modifiers.focused && modifiers.disabled || void 0, tabIndex: isFocusTarget(day) ? 0 : -1, "aria-label": labelDayButton2(date, modifiers, dateLib.options, dateLib), onClick: handleDayClick(day, modifiers), onBlur: handleDayBlur(day, modifiers), onFocus: handleDayFocus(day, modifiers), onKeyDown: handleDayKeyDown(day, modifiers), onMouseEnter: handleDayMouseEnter(day, modifiers), onMouseLeave: handleDayMouseLeave(day, modifiers) }, formatDay2(date, dateLib.options, dateLib)) : !modifiers.hidden && formatDay2(day.date, dateLib.options, dateLib));
18293
18318
  })
18294
18319
  );
18295
18320
  }))
@@ -18297,7 +18322,7 @@ function DayPicker(initialProps) {
18297
18322
  );
18298
18323
  })
18299
18324
  ),
18300
- props.footer && React66__default.createElement(components.Footer, { className: classNames[UI.Footer], style: styles == null ? void 0 : styles[UI.Footer], role: "status", "aria-live": "polite" }, props.footer)
18325
+ props.footer && React67__default.createElement(components.Footer, { className: classNames[UI.Footer], style: styles == null ? void 0 : styles[UI.Footer], role: "status", "aria-live": "polite" }, props.footer)
18301
18326
  )
18302
18327
  );
18303
18328
  }
@@ -18540,8 +18565,8 @@ function CalendarDayButton({
18540
18565
  ...props
18541
18566
  }) {
18542
18567
  const defaultClassNames = getDefaultClassNames();
18543
- const ref = React66.useRef(null);
18544
- React66.useEffect(() => {
18568
+ const ref = React67.useRef(null);
18569
+ React67.useEffect(() => {
18545
18570
  var _a;
18546
18571
  if (modifiers.focused) (_a = ref.current) == null ? void 0 : _a.focus();
18547
18572
  }, [modifiers.focused]);
@@ -18618,15 +18643,15 @@ var TimeDropdowns = (props) => {
18618
18643
  triggerClassName,
18619
18644
  density = "normal"
18620
18645
  } = props;
18621
- const minuteOptions = React66.useMemo(
18646
+ const minuteOptions = React67.useMemo(
18622
18647
  () => buildMinuteOptions(minuteStep),
18623
18648
  [minuteStep]
18624
18649
  );
18625
- const secondOptions = React66.useMemo(
18650
+ const secondOptions = React67.useMemo(
18626
18651
  () => buildSecondOptions(secondStep),
18627
18652
  [secondStep]
18628
18653
  );
18629
- const hourOptions = React66.useMemo(
18654
+ const hourOptions = React67.useMemo(
18630
18655
  () => use12Hour ? buildHourOptions12() : buildHourOptions24(),
18631
18656
  [use12Hour]
18632
18657
  );
@@ -18965,7 +18990,7 @@ function parseRawToDate(rawDigits, kind) {
18965
18990
  function meterSafeDigits(masked) {
18966
18991
  return masked.replace(/\D+/g, "");
18967
18992
  }
18968
- var ShadcnDateVariant = React66.forwardRef(function ShadcnDateVariant2(props, ref) {
18993
+ var ShadcnDateVariant = React67.forwardRef(function ShadcnDateVariant2(props, ref) {
18969
18994
  const {
18970
18995
  // variant base bits
18971
18996
  value,
@@ -18998,10 +19023,10 @@ var ShadcnDateVariant = React66.forwardRef(function ShadcnDateVariant2(props, re
18998
19023
  const resolvedMask = inputMask != null ? inputMask : kindConfig.mask;
18999
19024
  const defaultShowCalendar = kind === "date" || kind === "datetime";
19000
19025
  const showCalendar = typeof showCalendarProp === "boolean" ? showCalendarProp : defaultShowCalendar;
19001
- const [internalOpen, setInternalOpen] = React66.useState(false);
19026
+ const [internalOpen, setInternalOpen] = React67.useState(false);
19002
19027
  const isControlledOpen = open !== void 0;
19003
19028
  const currentOpen = isControlledOpen ? !!open : internalOpen;
19004
- const handleOpenChange = React66.useCallback(
19029
+ const handleOpenChange = React67.useCallback(
19005
19030
  (next) => {
19006
19031
  if (!isControlledOpen) {
19007
19032
  setInternalOpen(next);
@@ -19011,7 +19036,7 @@ var ShadcnDateVariant = React66.forwardRef(function ShadcnDateVariant2(props, re
19011
19036
  [isControlledOpen, onOpenChange]
19012
19037
  );
19013
19038
  const { single, range } = normalizeValueForMode(value, mode);
19014
- const displayValue = React66.useMemo(() => {
19039
+ const displayValue = React67.useMemo(() => {
19015
19040
  if (mode === "single") {
19016
19041
  return formatDisplaySingle(single, singlePattern);
19017
19042
  }
@@ -19022,12 +19047,12 @@ var ShadcnDateVariant = React66.forwardRef(function ShadcnDateVariant2(props, re
19022
19047
  rangeSeparator
19023
19048
  );
19024
19049
  }, [mode, single, range, singlePattern, formatRange, rangeSeparator]);
19025
- const [localText, setLocalText] = React66.useState(displayValue);
19026
- React66.useEffect(() => {
19050
+ const [localText, setLocalText] = React67.useState(displayValue);
19051
+ React67.useEffect(() => {
19027
19052
  setLocalText(displayValue);
19028
19053
  }, [displayValue]);
19029
19054
  const showTimeDropdowns = mode === "single" && (kind === "datetime" || kind === "time" || kind === "hour");
19030
- const handleSelect = React66.useCallback(
19055
+ const handleSelect = React67.useCallback(
19031
19056
  (next) => {
19032
19057
  let nextValue;
19033
19058
  let nextRange;
@@ -19077,7 +19102,7 @@ var ShadcnDateVariant = React66.forwardRef(function ShadcnDateVariant2(props, re
19077
19102
  },
19078
19103
  [mode, stayOpenOnSelect, onValue, handleOpenChange, kind, single]
19079
19104
  );
19080
- const handleTimeChange = React66.useCallback(
19105
+ const handleTimeChange = React67.useCallback(
19081
19106
  (next) => {
19082
19107
  if (!next) {
19083
19108
  const detail2 = {
@@ -19108,7 +19133,7 @@ var ShadcnDateVariant = React66.forwardRef(function ShadcnDateVariant2(props, re
19108
19133
  },
19109
19134
  [mode, kind, onValue]
19110
19135
  );
19111
- const handleClear = React66.useCallback(
19136
+ const handleClear = React67.useCallback(
19112
19137
  (ev) => {
19113
19138
  ev.preventDefault();
19114
19139
  ev.stopPropagation();
@@ -19127,7 +19152,7 @@ var ShadcnDateVariant = React66.forwardRef(function ShadcnDateVariant2(props, re
19127
19152
  );
19128
19153
  const hasValue = hasSelection(value);
19129
19154
  const placeholderText = typeof placeholder === "string" ? placeholder : mode === "range" ? "Select date range" : "Select date";
19130
- const handleInputChange = React66.useCallback(
19155
+ const handleInputChange = React67.useCallback(
19131
19156
  (event) => {
19132
19157
  var _a, _b, _c;
19133
19158
  if (mode !== "single") return;
@@ -19314,7 +19339,7 @@ function resolveBasePadding2(size, density) {
19314
19339
  }
19315
19340
  return { px, py };
19316
19341
  }
19317
- var Textarea = React66.forwardRef(
19342
+ var Textarea = React67.forwardRef(
19318
19343
  function Textarea2(rawProps, forwardedRef) {
19319
19344
  const {
19320
19345
  // layout wrapper
@@ -19362,8 +19387,8 @@ var Textarea = React66.forwardRef(
19362
19387
  } = rawProps;
19363
19388
  const sizeKey = size != null ? size : "md";
19364
19389
  const densityKey = density != null ? density : "normal";
19365
- const innerRef = React66.useRef(null);
19366
- React66.useImperativeHandle(
19390
+ const innerRef = React67.useRef(null);
19391
+ React67.useImperativeHandle(
19367
19392
  forwardedRef,
19368
19393
  () => innerRef.current,
19369
19394
  []
@@ -19384,11 +19409,11 @@ var Textarea = React66.forwardRef(
19384
19409
  const baseIconGap = iconGap != null ? iconGap : 1;
19385
19410
  const leadingGap = leadingIconSpacing != null ? leadingIconSpacing : baseIconGap;
19386
19411
  const trailingGap = trailingIconSpacing != null ? trailingIconSpacing : baseIconGap;
19387
- const leadingIconsRef = React66.useRef(null);
19388
- const trailingIconsRef = React66.useRef(null);
19389
- const [leadingIconsWidth, setLeadingIconsWidth] = React66.useState(0);
19390
- const [trailingIconsWidth, setTrailingIconsWidth] = React66.useState(0);
19391
- const measureIconWidths = React66.useCallback(() => {
19412
+ const leadingIconsRef = React67.useRef(null);
19413
+ const trailingIconsRef = React67.useRef(null);
19414
+ const [leadingIconsWidth, setLeadingIconsWidth] = React67.useState(0);
19415
+ const [trailingIconsWidth, setTrailingIconsWidth] = React67.useState(0);
19416
+ const measureIconWidths = React67.useCallback(() => {
19392
19417
  if (typeof window === "undefined") return;
19393
19418
  const lead = leadingIconsRef.current;
19394
19419
  const trail = trailingIconsRef.current;
@@ -19405,7 +19430,7 @@ var Textarea = React66.forwardRef(
19405
19430
  setTrailingIconsWidth(0);
19406
19431
  }
19407
19432
  }, []);
19408
- React66.useLayoutEffect(() => {
19433
+ React67.useLayoutEffect(() => {
19409
19434
  if (typeof window === "undefined" || typeof MutationObserver === "undefined") {
19410
19435
  measureIconWidths();
19411
19436
  return;
@@ -19434,10 +19459,10 @@ var Textarea = React66.forwardRef(
19434
19459
  measureIconWidths();
19435
19460
  return () => observers.forEach((o3) => o3.disconnect());
19436
19461
  }, [measureIconWidths, hasLeadingIcons, hasTrailingIcons]);
19437
- const [rowHeight, setRowHeight] = React66.useState(null);
19462
+ const [rowHeight, setRowHeight] = React67.useState(null);
19438
19463
  const baseMinRows = Math.max(minRowsProp != null ? minRowsProp : 1, 1);
19439
- const [rows, setRows] = React66.useState(baseMinRows);
19440
- React66.useLayoutEffect(() => {
19464
+ const [rows, setRows] = React67.useState(baseMinRows);
19465
+ React67.useLayoutEffect(() => {
19441
19466
  if (typeof window === "undefined") return;
19442
19467
  const el = innerRef.current;
19443
19468
  if (!el) return;
@@ -19453,7 +19478,7 @@ var Textarea = React66.forwardRef(
19453
19478
  setRows(baseMinRows);
19454
19479
  }
19455
19480
  }, [sizeKey, densityKey, baseMinRows]);
19456
- const recomputeHeight = React66.useCallback(() => {
19481
+ const recomputeHeight = React67.useCallback(() => {
19457
19482
  if (!autoResize) return;
19458
19483
  if (!innerRef.current) return;
19459
19484
  if (!rowHeight) return;
@@ -19475,7 +19500,7 @@ var Textarea = React66.forwardRef(
19475
19500
  el.style.height = `${nextHeight}px`;
19476
19501
  setRows(nextRows);
19477
19502
  }, [autoResize, rowHeight, baseMinRows, maxRows]);
19478
- React66.useLayoutEffect(() => {
19503
+ React67.useLayoutEffect(() => {
19479
19504
  recomputeHeight();
19480
19505
  }, [recomputeHeight, rest.value, rest.defaultValue]);
19481
19506
  const { px: pxDefault, py: pyDefault } = resolveBasePadding2(size, density);
@@ -19545,19 +19570,19 @@ var Textarea = React66.forwardRef(
19545
19570
  const focusTextarea = () => {
19546
19571
  if (innerRef.current) innerRef.current.focus();
19547
19572
  };
19548
- const handleFocus = React66.useCallback(
19573
+ const handleFocus = React67.useCallback(
19549
19574
  (event) => {
19550
19575
  onFocus == null ? void 0 : onFocus(event);
19551
19576
  },
19552
19577
  [onFocus]
19553
19578
  );
19554
- const handleBlur = React66.useCallback(
19579
+ const handleBlur = React67.useCallback(
19555
19580
  (event) => {
19556
19581
  onBlur == null ? void 0 : onBlur(event);
19557
19582
  },
19558
19583
  [onBlur]
19559
19584
  );
19560
- const handleChange = React66.useCallback(
19585
+ const handleChange = React67.useCallback(
19561
19586
  (event) => {
19562
19587
  onChange == null ? void 0 : onChange(event);
19563
19588
  recomputeHeight();
@@ -19734,7 +19759,7 @@ function splitIntoTokens(raw, sep) {
19734
19759
  }
19735
19760
  return acc.map((t4) => t4.trim()).filter((t4) => t4.length > 0);
19736
19761
  }
19737
- var ShadcnChipsVariant = React66.forwardRef(function ShadcnChipsVariant2(props, ref) {
19762
+ var ShadcnChipsVariant = React67.forwardRef(function ShadcnChipsVariant2(props, ref) {
19738
19763
  var _a;
19739
19764
  const {
19740
19765
  // variant base bits
@@ -19771,20 +19796,20 @@ var ShadcnChipsVariant = React66.forwardRef(function ShadcnChipsVariant2(props,
19771
19796
  ...restTextProps
19772
19797
  } = props;
19773
19798
  const hasInvalidIncomingValue = value !== void 0 && !Array.isArray(value);
19774
- React66.useEffect(() => {
19799
+ React67.useEffect(() => {
19775
19800
  if (!hasInvalidIncomingValue) return;
19776
19801
  console.warn(
19777
19802
  "[form-palette] ShadcnChipsVariant expected `value` to be `string[] | undefined`; received:",
19778
19803
  value
19779
19804
  );
19780
19805
  }, [hasInvalidIncomingValue, value]);
19781
- const chips = React66.useMemo(
19806
+ const chips = React67.useMemo(
19782
19807
  () => Array.isArray(value) ? value : [],
19783
19808
  [value]
19784
19809
  );
19785
19810
  const hasChips = chips.length > 0;
19786
- const [inputText, setInputText] = React66.useState("");
19787
- const emitChange = React66.useCallback(
19811
+ const [inputText, setInputText] = React67.useState("");
19812
+ const emitChange = React67.useCallback(
19788
19813
  (nextChips, meta) => {
19789
19814
  const detail = {
19790
19815
  source: "variant",
@@ -19799,7 +19824,7 @@ var ShadcnChipsVariant = React66.forwardRef(function ShadcnChipsVariant2(props,
19799
19824
  },
19800
19825
  [onValue]
19801
19826
  );
19802
- const commitFromRaw = React66.useCallback(
19827
+ const commitFromRaw = React67.useCallback(
19803
19828
  (raw) => {
19804
19829
  const tokens = splitIntoTokens(raw, separators);
19805
19830
  if (!tokens.length) return;
@@ -19820,7 +19845,7 @@ var ShadcnChipsVariant = React66.forwardRef(function ShadcnChipsVariant2(props,
19820
19845
  },
19821
19846
  [chips, separators, allowDuplicates, maxChips, emitChange, onAddChips]
19822
19847
  );
19823
- const handleRemoveAt = React66.useCallback(
19848
+ const handleRemoveAt = React67.useCallback(
19824
19849
  (index) => {
19825
19850
  if (index < 0 || index >= chips.length) return;
19826
19851
  const removed = [chips[index]];
@@ -19830,7 +19855,7 @@ var ShadcnChipsVariant = React66.forwardRef(function ShadcnChipsVariant2(props,
19830
19855
  },
19831
19856
  [chips, emitChange, onRemoveChips]
19832
19857
  );
19833
- const handleClear = React66.useCallback(
19858
+ const handleClear = React67.useCallback(
19834
19859
  (ev) => {
19835
19860
  ev == null ? void 0 : ev.preventDefault();
19836
19861
  ev == null ? void 0 : ev.stopPropagation();
@@ -19841,7 +19866,7 @@ var ShadcnChipsVariant = React66.forwardRef(function ShadcnChipsVariant2(props,
19841
19866
  },
19842
19867
  [chips, emitChange, onRemoveChips]
19843
19868
  );
19844
- const handleEntryChange = React66.useCallback(
19869
+ const handleEntryChange = React67.useCallback(
19845
19870
  (event) => {
19846
19871
  var _a2;
19847
19872
  const next = (_a2 = event.target.value) != null ? _a2 : "";
@@ -19849,7 +19874,7 @@ var ShadcnChipsVariant = React66.forwardRef(function ShadcnChipsVariant2(props,
19849
19874
  },
19850
19875
  []
19851
19876
  );
19852
- const handleEntryKeyDown = React66.useCallback(
19877
+ const handleEntryKeyDown = React67.useCallback(
19853
19878
  (event) => {
19854
19879
  const key = event.key;
19855
19880
  if (key === "Enter" && addOnEnter) {
@@ -19880,7 +19905,7 @@ var ShadcnChipsVariant = React66.forwardRef(function ShadcnChipsVariant2(props,
19880
19905
  handleRemoveAt
19881
19906
  ]
19882
19907
  );
19883
- const handleEntryBlur = React66.useCallback(
19908
+ const handleEntryBlur = React67.useCallback(
19884
19909
  (event) => {
19885
19910
  if (addOnBlur && inputText.trim().length) {
19886
19911
  commitFromRaw(inputText);
@@ -19892,10 +19917,12 @@ var ShadcnChipsVariant = React66.forwardRef(function ShadcnChipsVariant2(props,
19892
19917
  [addOnBlur, inputText, commitFromRaw, restTextProps]
19893
19918
  );
19894
19919
  const effectivePlaceholder = placeholder != null ? placeholder : hasChips ? "" : "Add item\u2026";
19920
+ const defaultMaxVisible = !textareaMode && placement !== "below" ? 3 : void 0;
19921
+ const effectiveMaxVisibleChips = maxVisibleChips !== void 0 ? maxVisibleChips : defaultMaxVisible;
19895
19922
  let visibleChips = chips;
19896
19923
  let hiddenCount = 0;
19897
- if (typeof maxVisibleChips === "number" && maxVisibleChips > 0 && chips.length > maxVisibleChips) {
19898
- visibleChips = chips.slice(0, maxVisibleChips);
19924
+ if (typeof effectiveMaxVisibleChips === "number" && effectiveMaxVisibleChips > 0 && chips.length > effectiveMaxVisibleChips) {
19925
+ visibleChips = chips.slice(0, effectiveMaxVisibleChips);
19899
19926
  hiddenCount = chips.length - visibleChips.length;
19900
19927
  }
19901
19928
  const maxWidthStyle = maxChipWidth !== void 0 ? {
@@ -19905,7 +19932,7 @@ var ShadcnChipsVariant = React66.forwardRef(function ShadcnChipsVariant2(props,
19905
19932
  const baseRemoveClasses = textareaMode ? "cursor-pointer text-[16px] opacity-70 hover:opacity-100 mt-0.5" : "cursor-pointer text-[16px] opacity-70 hover:opacity-100";
19906
19933
  const chipNodes = visibleChips.map((chip, index) => {
19907
19934
  if (renderChip) {
19908
- return /* @__PURE__ */ jsx(React66.Fragment, { children: renderChip(chip, index, {
19935
+ return /* @__PURE__ */ jsx(React67.Fragment, { children: renderChip(chip, index, {
19909
19936
  remove: () => handleRemoveAt(index),
19910
19937
  chips
19911
19938
  }) }, `${chip}-${index}`);
@@ -19954,25 +19981,69 @@ var ShadcnChipsVariant = React66.forwardRef(function ShadcnChipsVariant2(props,
19954
19981
  );
19955
19982
  });
19956
19983
  if (hiddenCount > 0) {
19957
- const defaultOverflow = /* @__PURE__ */ jsxs(
19958
- "span",
19959
- {
19960
- className: cn(
19961
- baseChipClasses,
19962
- "cursor-default",
19963
- chipClassName
19964
- ),
19965
- "data-slot": "chip-overflow",
19966
- children: [
19967
- "+",
19968
- hiddenCount,
19969
- " more"
19970
- ]
19971
- }
19972
- );
19984
+ const hiddenChips = chips.slice(effectiveMaxVisibleChips != null ? effectiveMaxVisibleChips : 0);
19985
+ const defaultOverflow = /* @__PURE__ */ jsxs(Popover, { children: [
19986
+ /* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs(
19987
+ "button",
19988
+ {
19989
+ type: "button",
19990
+ className: cn(
19991
+ baseChipClasses,
19992
+ "cursor-pointer font-semibold bg-primary/10 text-primary hover:bg-primary/20",
19993
+ chipClassName
19994
+ ),
19995
+ "data-slot": "chip-overflow",
19996
+ children: [
19997
+ "+",
19998
+ hiddenCount,
19999
+ " more"
20000
+ ]
20001
+ }
20002
+ ) }),
20003
+ /* @__PURE__ */ jsxs(PopoverContent, { className: "p-3 w-64 max-h-60 overflow-y-auto", align: "start", children: [
20004
+ /* @__PURE__ */ jsx("div", { className: "text-xs font-bold text-muted-foreground uppercase tracking-wider mb-2", children: "Hidden Chips" }),
20005
+ /* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-1.5", children: hiddenChips.map((chip, hiddenIdx) => {
20006
+ const actualIndex = (effectiveMaxVisibleChips != null ? effectiveMaxVisibleChips : 0) + hiddenIdx;
20007
+ let label = chip;
20008
+ if (typeof maxChipChars === "number" && maxChipChars > 0 && label.length > maxChipChars) {
20009
+ label = label.slice(0, maxChipChars) + "\u2026";
20010
+ }
20011
+ return /* @__PURE__ */ jsxs(
20012
+ "div",
20013
+ {
20014
+ className: cn(baseChipClasses, chipClassName, "max-w-full"),
20015
+ children: [
20016
+ /* @__PURE__ */ jsx(
20017
+ "span",
20018
+ {
20019
+ className: cn("truncate", chipLabelClassName),
20020
+ style: maxWidthStyle,
20021
+ children: label
20022
+ }
20023
+ ),
20024
+ /* @__PURE__ */ jsx(
20025
+ "span",
20026
+ {
20027
+ className: cn(baseRemoveClasses, chipRemoveClassName),
20028
+ onClick: (e4) => {
20029
+ e4.preventDefault();
20030
+ e4.stopPropagation();
20031
+ handleRemoveAt(actualIndex);
20032
+ },
20033
+ "aria-hidden": "true",
20034
+ children: /* @__PURE__ */ jsx(X, { size: 14 })
20035
+ }
20036
+ )
20037
+ ]
20038
+ },
20039
+ `${chip}-${actualIndex}`
20040
+ );
20041
+ }) })
20042
+ ] })
20043
+ ] });
19973
20044
  const node = (_a = renderOverflowChip == null ? void 0 : renderOverflowChip(hiddenCount, chips)) != null ? _a : defaultOverflow;
19974
20045
  chipNodes.push(
19975
- /* @__PURE__ */ jsx(React66.Fragment, { children: node }, "__overflow")
20046
+ /* @__PURE__ */ jsx(React67.Fragment, { children: node }, "__overflow")
19976
20047
  );
19977
20048
  }
19978
20049
  const effectivePlacement = textareaMode ? placement != null ? placement : "inline" : placement != null ? placement : "inline";
@@ -20166,7 +20237,7 @@ var chipVariant = {
20166
20237
  tags: ["chips", "multi-select", "tags"]
20167
20238
  }
20168
20239
  };
20169
- var ShadcnTextareaVariant = React66.forwardRef(function ShadcnTextareaVariant2(props, ref) {
20240
+ var ShadcnTextareaVariant = React67.forwardRef(function ShadcnTextareaVariant2(props, ref) {
20170
20241
  const {
20171
20242
  value,
20172
20243
  onValue,
@@ -20174,7 +20245,7 @@ var ShadcnTextareaVariant = React66.forwardRef(function ShadcnTextareaVariant2(p
20174
20245
  // everything else goes straight to the UI Textarea
20175
20246
  ...rest
20176
20247
  } = props;
20177
- const handleChange = React66.useCallback(
20248
+ const handleChange = React67.useCallback(
20178
20249
  (event) => {
20179
20250
  var _a;
20180
20251
  const next = (_a = event.target.value) != null ? _a : "";
@@ -20269,7 +20340,7 @@ function switchThumbSize(size) {
20269
20340
  if (size === "lg") return "size-5";
20270
20341
  return "size-4";
20271
20342
  }
20272
- var ShadcnToggleVariant = React66.forwardRef(function ShadcnToggleVariant2(props, _ref) {
20343
+ var ShadcnToggleVariant = React67.forwardRef(function ShadcnToggleVariant2(props, _ref) {
20273
20344
  const {
20274
20345
  // variant bits
20275
20346
  value,
@@ -20291,7 +20362,7 @@ var ShadcnToggleVariant = React66.forwardRef(function ShadcnToggleVariant2(props
20291
20362
  ...restSwitchProps
20292
20363
  } = props;
20293
20364
  const checked = !!value;
20294
- const handleToggle = React66.useCallback(
20365
+ const handleToggle = React67.useCallback(
20295
20366
  (next) => {
20296
20367
  const nextVal = Boolean(next);
20297
20368
  const detail = {
@@ -20817,7 +20888,7 @@ var InnerShadcnRadioVariant = (props, ref) => {
20817
20888
  ...restGroupProps
20818
20889
  } = props;
20819
20890
  const hasError = !!error;
20820
- const normalized = React66.useMemo(
20891
+ const normalized = React67.useMemo(
20821
20892
  () => normalizeItems(
20822
20893
  items != null ? items : options,
20823
20894
  mappers,
@@ -20848,14 +20919,14 @@ var InnerShadcnRadioVariant = (props, ref) => {
20848
20919
  optionTagOnClick
20849
20920
  ]
20850
20921
  );
20851
- const selectedString = React66.useMemo(() => {
20922
+ const selectedString = React67.useMemo(() => {
20852
20923
  if (value === void 0) return void 0;
20853
20924
  const found = normalized.find(
20854
20925
  (item) => isEqualValue(item.value, value)
20855
20926
  );
20856
20927
  return found ? String(found.value) : void 0;
20857
20928
  }, [normalized, value]);
20858
- const handleSelect = React66.useCallback(
20929
+ const handleSelect = React67.useCallback(
20859
20930
  (next, selectedRaw) => {
20860
20931
  if (!onValue || disabled) return;
20861
20932
  const detail = {
@@ -20869,7 +20940,7 @@ var InnerShadcnRadioVariant = (props, ref) => {
20869
20940
  },
20870
20941
  [onValue, disabled]
20871
20942
  );
20872
- const handleRadioChange = React66.useCallback(
20943
+ const handleRadioChange = React67.useCallback(
20873
20944
  (raw) => {
20874
20945
  var _a;
20875
20946
  const found = normalized.find((item) => String(item.value) === raw);
@@ -21011,7 +21082,7 @@ var InnerShadcnRadioVariant = (props, ref) => {
21011
21082
  }
21012
21083
  );
21013
21084
  };
21014
- var ShadcnRadioVariant = React66.forwardRef(
21085
+ var ShadcnRadioVariant = React67.forwardRef(
21015
21086
  InnerShadcnRadioVariant
21016
21087
  );
21017
21088
 
@@ -21271,7 +21342,7 @@ var InnerShadcnCheckboxVariant = (props, ref) => {
21271
21342
  } = props;
21272
21343
  const hasError = !!error;
21273
21344
  const isSingle = !!single;
21274
- const normalized = React66.useMemo(
21345
+ const normalized = React67.useMemo(
21275
21346
  () => normalizeItems2(
21276
21347
  items != null ? items : options,
21277
21348
  mappers,
@@ -21374,14 +21445,14 @@ var InnerShadcnCheckboxVariant = (props, ref) => {
21374
21445
  }
21375
21446
  );
21376
21447
  }
21377
- const normalizedByValueKey = React66.useMemo(() => {
21448
+ const normalizedByValueKey = React67.useMemo(() => {
21378
21449
  const lookup = /* @__PURE__ */ new Map();
21379
21450
  normalized.forEach((item) => {
21380
21451
  lookup.set(valueLookupKey(item.value), item);
21381
21452
  });
21382
21453
  return lookup;
21383
21454
  }, [normalized]);
21384
- const groupValue = React66.useMemo(() => {
21455
+ const groupValue = React67.useMemo(() => {
21385
21456
  const source = asGroupValue(value);
21386
21457
  if (!(source == null ? void 0 : source.length)) return source;
21387
21458
  return source.map((entry) => {
@@ -21419,21 +21490,21 @@ var InnerShadcnCheckboxVariant = (props, ref) => {
21419
21490
  labelTextSizeClass: labelTextSize2(size),
21420
21491
  descriptionTextSizeClass: descriptionTextSize2(size)
21421
21492
  });
21422
- const hasAnyTristate = React66.useMemo(
21493
+ const hasAnyTristate = React67.useMemo(
21423
21494
  () => normalized.some((item) => {
21424
21495
  var _a, _b;
21425
21496
  return (_b = (_a = item.tristate) != null ? _a : tristateDefault) != null ? _b : false;
21426
21497
  }),
21427
21498
  [normalized, tristateDefault]
21428
21499
  );
21429
- const findEntryIndex = React66.useCallback(
21500
+ const findEntryIndex = React67.useCallback(
21430
21501
  (val) => {
21431
21502
  if (!groupValue) return -1;
21432
21503
  return groupValue.findIndex((e4) => isEqualValue2(e4.value, val));
21433
21504
  },
21434
21505
  [groupValue]
21435
21506
  );
21436
- const getEntryState = React66.useCallback(
21507
+ const getEntryState = React67.useCallback(
21437
21508
  (val) => {
21438
21509
  const idx = findEntryIndex(val);
21439
21510
  if (!groupValue || idx === -1) return "none";
@@ -21441,7 +21512,7 @@ var InnerShadcnCheckboxVariant = (props, ref) => {
21441
21512
  },
21442
21513
  [groupValue, findEntryIndex]
21443
21514
  );
21444
- const updateGroupValue = React66.useCallback(
21515
+ const updateGroupValue = React67.useCallback(
21445
21516
  (itemValue, nextInternal, effectiveTristate) => {
21446
21517
  if (!onValue || disabled) return;
21447
21518
  const currentList = groupValue ? [...groupValue] : [];
@@ -21671,7 +21742,7 @@ var InnerShadcnCheckboxVariant = (props, ref) => {
21671
21742
  }
21672
21743
  );
21673
21744
  };
21674
- var ShadcnCheckboxVariant = React66.forwardRef(
21745
+ var ShadcnCheckboxVariant = React67.forwardRef(
21675
21746
  InnerShadcnCheckboxVariant
21676
21747
  );
21677
21748
 
@@ -21694,6 +21765,155 @@ var checkboxModule = {
21694
21765
  tags: ["checkbox", "group", "boolean", "tri-state"]
21695
21766
  }
21696
21767
  };
21768
+ function ScrollArea({
21769
+ className,
21770
+ children,
21771
+ ...props
21772
+ }) {
21773
+ return /* @__PURE__ */ jsxs(
21774
+ ScrollAreaPrimitive2.Root,
21775
+ {
21776
+ "data-slot": "scroll-area",
21777
+ className: cn("relative", className),
21778
+ ...props,
21779
+ children: [
21780
+ /* @__PURE__ */ jsx(
21781
+ ScrollAreaPrimitive2.Viewport,
21782
+ {
21783
+ "data-slot": "scroll-area-viewport",
21784
+ className: "focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1",
21785
+ children
21786
+ }
21787
+ ),
21788
+ /* @__PURE__ */ jsx(ScrollBar, {}),
21789
+ /* @__PURE__ */ jsx(ScrollAreaPrimitive2.Corner, {})
21790
+ ]
21791
+ }
21792
+ );
21793
+ }
21794
+ function ScrollBar({
21795
+ className,
21796
+ orientation = "vertical",
21797
+ ...props
21798
+ }) {
21799
+ return /* @__PURE__ */ jsx(
21800
+ ScrollAreaPrimitive2.ScrollAreaScrollbar,
21801
+ {
21802
+ "data-slot": "scroll-area-scrollbar",
21803
+ orientation,
21804
+ className: cn(
21805
+ "flex touch-none p-px transition-colors select-none",
21806
+ orientation === "vertical" && "h-full w-2.5 border-l border-l-transparent",
21807
+ orientation === "horizontal" && "h-2.5 flex-col border-t border-t-transparent",
21808
+ className
21809
+ ),
21810
+ ...props,
21811
+ children: /* @__PURE__ */ jsx(
21812
+ ScrollAreaPrimitive2.ScrollAreaThumb,
21813
+ {
21814
+ "data-slot": "scroll-area-thumb",
21815
+ className: "bg-border relative flex-1 rounded-full"
21816
+ }
21817
+ )
21818
+ }
21819
+ );
21820
+ }
21821
+ function VirtualScroll({
21822
+ className,
21823
+ rootProps,
21824
+ scrollbarProps,
21825
+ style,
21826
+ components,
21827
+ ...props
21828
+ }) {
21829
+ const Scroller = React67.useMemo(() => {
21830
+ return React67.forwardRef((scrollerProps, ref) => {
21831
+ return /* @__PURE__ */ jsx(
21832
+ ScrollAreaPrimitive2.Viewport,
21833
+ {
21834
+ ...scrollerProps,
21835
+ ref,
21836
+ "data-slot": "scroll-area-viewport",
21837
+ className: "focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1"
21838
+ }
21839
+ );
21840
+ });
21841
+ }, []);
21842
+ const combinedComponents = React67.useMemo(() => {
21843
+ return {
21844
+ ...components,
21845
+ Scroller
21846
+ };
21847
+ }, [components, Scroller]);
21848
+ return /* @__PURE__ */ jsxs(
21849
+ ScrollAreaPrimitive2.Root,
21850
+ {
21851
+ "data-slot": "scroll-area",
21852
+ className,
21853
+ ...rootProps,
21854
+ style: { ...style, position: "relative" },
21855
+ children: [
21856
+ /* @__PURE__ */ jsx(
21857
+ Virtuoso,
21858
+ {
21859
+ ...props,
21860
+ components: combinedComponents
21861
+ }
21862
+ ),
21863
+ /* @__PURE__ */ jsx(ScrollBar, { ...scrollbarProps }),
21864
+ /* @__PURE__ */ jsx(ScrollAreaPrimitive2.Corner, {})
21865
+ ]
21866
+ }
21867
+ );
21868
+ }
21869
+ function VirtualScrollGrid({
21870
+ className,
21871
+ rootProps,
21872
+ scrollbarProps,
21873
+ style,
21874
+ components,
21875
+ ...props
21876
+ }) {
21877
+ const Scroller = React67.useMemo(() => {
21878
+ return React67.forwardRef((scrollerProps, ref) => {
21879
+ return /* @__PURE__ */ jsx(
21880
+ ScrollAreaPrimitive2.Viewport,
21881
+ {
21882
+ ...scrollerProps,
21883
+ ref,
21884
+ "data-slot": "scroll-area-viewport",
21885
+ className: "focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1"
21886
+ }
21887
+ );
21888
+ });
21889
+ }, []);
21890
+ const combinedComponents = React67.useMemo(() => {
21891
+ return {
21892
+ ...components,
21893
+ Scroller
21894
+ };
21895
+ }, [components, Scroller]);
21896
+ return /* @__PURE__ */ jsxs(
21897
+ ScrollAreaPrimitive2.Root,
21898
+ {
21899
+ "data-slot": "scroll-area",
21900
+ className,
21901
+ ...rootProps,
21902
+ style: { ...style, position: "relative" },
21903
+ children: [
21904
+ /* @__PURE__ */ jsx(
21905
+ VirtuosoGrid,
21906
+ {
21907
+ ...props,
21908
+ components: combinedComponents
21909
+ }
21910
+ ),
21911
+ /* @__PURE__ */ jsx(ScrollBar, { ...scrollbarProps }),
21912
+ /* @__PURE__ */ jsx(ScrollAreaPrimitive2.Corner, {})
21913
+ ]
21914
+ }
21915
+ );
21916
+ }
21697
21917
  function normalizeOptions(opts, config) {
21698
21918
  return globalNormalizeOptions(opts, config);
21699
21919
  }
@@ -21718,7 +21938,7 @@ function triggerPadding(density) {
21718
21938
  return "py-1.5";
21719
21939
  }
21720
21940
  }
21721
- var ShadcnSelectVariant = React66.forwardRef(function ShadcnSelectVariant2(props, _ref) {
21941
+ var ShadcnSelectVariant = React67.forwardRef(function ShadcnSelectVariant2(props, _ref) {
21722
21942
  var _a, _b;
21723
21943
  const {
21724
21944
  value,
@@ -21750,6 +21970,7 @@ var ShadcnSelectVariant = React66.forwardRef(function ShadcnSelectVariant2(props
21750
21970
  clearable,
21751
21971
  placeholder,
21752
21972
  className,
21973
+ style,
21753
21974
  triggerClassName,
21754
21975
  contentClassName,
21755
21976
  renderOption,
@@ -21776,9 +21997,9 @@ var ShadcnSelectVariant = React66.forwardRef(function ShadcnSelectVariant2(props
21776
21997
  virtualScroll = true
21777
21998
  } = props;
21778
21999
  const isButtonMode = mode === "button";
21779
- const [open, setOpen] = React66.useState(false);
21780
- const [query, setQuery] = React66.useState("");
21781
- const items = React66.useMemo(
22000
+ const [open, setOpen] = React67.useState(false);
22001
+ const [query, setQuery] = React67.useState("");
22002
+ const items = React67.useMemo(
21782
22003
  () => normalizeOptions(options != null ? options : [], {
21783
22004
  autoCap,
21784
22005
  optionLabel,
@@ -21814,7 +22035,7 @@ var ShadcnSelectVariant = React66.forwardRef(function ShadcnSelectVariant2(props
21814
22035
  ]
21815
22036
  );
21816
22037
  const normalizedValue = value === "" || value == null ? void 0 : value;
21817
- const valueMap = React66.useMemo(() => {
22038
+ const valueMap = React67.useMemo(() => {
21818
22039
  const map = /* @__PURE__ */ new Map();
21819
22040
  for (const item of items) {
21820
22041
  map.set(String(item.value), item.value);
@@ -21824,7 +22045,7 @@ var ShadcnSelectVariant = React66.forwardRef(function ShadcnSelectVariant2(props
21824
22045
  const selectedItem = normalizedValue == null ? null : (_a = items.find(
21825
22046
  (it) => String(it.value) === String(normalizedValue)
21826
22047
  )) != null ? _a : null;
21827
- const filteredItems = React66.useMemo(() => {
22048
+ const filteredItems = React67.useMemo(() => {
21828
22049
  if (!query) return items;
21829
22050
  const q2 = query.toLowerCase();
21830
22051
  return items.filter((it) => it.labelText.toLowerCase().includes(q2));
@@ -21836,7 +22057,7 @@ var ShadcnSelectVariant = React66.forwardRef(function ShadcnSelectVariant2(props
21836
22057
  listMaxHeight,
21837
22058
  Math.max(estimatedRowHeight, filteredItems.length * estimatedRowHeight)
21838
22059
  );
21839
- const handleChange = React66.useCallback(
22060
+ const handleChange = React67.useCallback(
21840
22061
  (rawKey) => {
21841
22062
  var _a2, _b2, _c, _d;
21842
22063
  if (!onValue || rawKey === "") return;
@@ -21885,7 +22106,7 @@ var ShadcnSelectVariant = React66.forwardRef(function ShadcnSelectVariant2(props
21885
22106
  "focus-within:border-ring focus-within:ring-ring/50 focus-within:ring-[3px]",
21886
22107
  "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive"
21887
22108
  );
21888
- const ButtonModeTrigger = React66.useMemo(() => {
22109
+ const ButtonModeTrigger = React67.useMemo(() => {
21889
22110
  if (!isButtonMode) return null;
21890
22111
  const selectedValue = value;
21891
22112
  const renderable = button != null ? button : children;
@@ -21960,8 +22181,10 @@ var ShadcnSelectVariant = React66.forwardRef(function ShadcnSelectVariant2(props
21960
22181
  heightCls,
21961
22182
  padCls,
21962
22183
  hasControls && joinControls && extendBoxToControls ? "border-none shadow-none focus:ring-0 focus:outline-none" : "",
21963
- triggerClassName
22184
+ triggerClassName,
22185
+ !joinControls && className
21964
22186
  ),
22187
+ style: !joinControls ? style : void 0,
21965
22188
  children: /* @__PURE__ */ jsxs("div", { className: "flex w-full items-center justify-between gap-2", children: [
21966
22189
  /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 items-center gap-2", children: [
21967
22190
  hasLeadingIcons && /* @__PURE__ */ jsx(
@@ -22044,7 +22267,7 @@ var ShadcnSelectVariant = React66.forwardRef(function ShadcnSelectVariant2(props
22044
22267
  filteredItems.length === 0 ? /* @__PURE__ */ jsx("div", { className: "px-2 py-1.5 text-xs text-muted-foreground", children: emptySearchText != null ? emptySearchText : "No results found" }) : useVirtualization ? (
22045
22268
  // CASE 3: normal list, virtualized
22046
22269
  /* @__PURE__ */ jsx(
22047
- Virtuoso,
22270
+ VirtualScroll,
22048
22271
  {
22049
22272
  style: { height: listHeight },
22050
22273
  data: filteredItems,
@@ -22107,7 +22330,7 @@ var ShadcnSelectVariant = React66.forwardRef(function ShadcnSelectVariant2(props
22107
22330
  }
22108
22331
  }
22109
22332
  )
22110
- ) : /* @__PURE__ */ jsx("div", { className: "max-h-60 overflow-auto", children: filteredItems.map((item, index) => {
22333
+ ) : /* @__PURE__ */ jsx(ScrollArea, { className: "max-h-60", children: /* @__PURE__ */ jsx("div", { children: filteredItems.map((item, index) => {
22111
22334
  var _a2, _b2;
22112
22335
  const optionNode = /* @__PURE__ */ jsx(
22113
22336
  SelectItem,
@@ -22162,7 +22385,7 @@ var ShadcnSelectVariant = React66.forwardRef(function ShadcnSelectVariant2(props
22162
22385
  setQuery("");
22163
22386
  }
22164
22387
  });
22165
- }) })
22388
+ }) }) })
22166
22389
  )
22167
22390
  ] })
22168
22391
  ]
@@ -22175,8 +22398,7 @@ var ShadcnSelectVariant = React66.forwardRef(function ShadcnSelectVariant2(props
22175
22398
  "data-slot": "select-field",
22176
22399
  className: cn(
22177
22400
  "w-full",
22178
- disabled && "opacity-50 cursor-not-allowed",
22179
- className
22401
+ disabled && "opacity-50 cursor-not-allowed"
22180
22402
  ),
22181
22403
  "aria-disabled": disabled || void 0,
22182
22404
  "aria-invalid": error ? "true" : void 0,
@@ -22206,6 +22428,7 @@ var ShadcnSelectVariant = React66.forwardRef(function ShadcnSelectVariant2(props
22206
22428
  "div",
22207
22429
  {
22208
22430
  className: groupClassName,
22431
+ style,
22209
22432
  "data-slot": "select-group",
22210
22433
  "data-disabled": disabled ? "true" : "false",
22211
22434
  children: [
@@ -22251,8 +22474,7 @@ var ShadcnSelectVariant = React66.forwardRef(function ShadcnSelectVariant2(props
22251
22474
  "data-slot": "select-field",
22252
22475
  className: cn(
22253
22476
  "flex items-stretch w-full",
22254
- disabled && "opacity-50 cursor-not-allowed",
22255
- className
22477
+ disabled && "opacity-50 cursor-not-allowed"
22256
22478
  ),
22257
22479
  "aria-disabled": disabled || void 0,
22258
22480
  "aria-invalid": error ? "true" : void 0,
@@ -22310,10 +22532,10 @@ var SelectionSummary = ({
22310
22532
  placeholder,
22311
22533
  onRemoveValue
22312
22534
  }) => {
22313
- const containerRef = React66.useRef(null);
22314
- const [visibleCount, setVisibleCount] = React66.useState(0);
22315
- const [moreOpen, setMoreOpen] = React66.useState(false);
22316
- React66.useLayoutEffect(() => {
22535
+ const containerRef = React67.useRef(null);
22536
+ const [visibleCount, setVisibleCount] = React67.useState(0);
22537
+ const [moreOpen, setMoreOpen] = React67.useState(false);
22538
+ React67.useLayoutEffect(() => {
22317
22539
  const el = containerRef.current;
22318
22540
  if (!el) return;
22319
22541
  const computeVisibleItems = () => {
@@ -22361,7 +22583,7 @@ var SelectionSummary = ({
22361
22583
  ref: containerRef,
22362
22584
  className: "flex items-center w-full overflow-hidden whitespace-nowrap",
22363
22585
  children: [
22364
- visibleItems.map((item, index) => /* @__PURE__ */ jsxs(React66.Fragment, { children: [
22586
+ visibleItems.map((item, index) => /* @__PURE__ */ jsxs(React67.Fragment, { children: [
22365
22587
  /* @__PURE__ */ jsx("span", { className: "truncate flex-shrink-0", children: item.labelNode }),
22366
22588
  index < visibleItems.length - 1 && /* @__PURE__ */ jsx("span", { className: "text-muted-foreground mr-1", children: "," })
22367
22589
  ] }, item.key)),
@@ -22442,7 +22664,7 @@ function removeSelectValue(current, valueToRemove) {
22442
22664
  return current.filter((v2) => String(v2) !== target);
22443
22665
  }
22444
22666
 
22445
- // src/presets/shadcn-variants/multiselect.tsx
22667
+ // src/presets/shadcn/variants/multiselect.tsx
22446
22668
  var import_lodash = __toESM(require_lodash());
22447
22669
  function normalizeOptions2(opts, config) {
22448
22670
  return globalNormalizeOptions(opts, config);
@@ -22468,7 +22690,7 @@ function triggerPadding2(density) {
22468
22690
  return "py-1.5";
22469
22691
  }
22470
22692
  }
22471
- var ShadcnMultiSelectVariant = React66.forwardRef(function ShadcnMultiSelectVariant2(props, _ref) {
22693
+ var ShadcnMultiSelectVariant = React67.forwardRef(function ShadcnMultiSelectVariant2(props, _ref) {
22472
22694
  var _a;
22473
22695
  const {
22474
22696
  value,
@@ -22531,9 +22753,9 @@ var ShadcnMultiSelectVariant = React66.forwardRef(function ShadcnMultiSelectVari
22531
22753
  selectedBadgeClassName,
22532
22754
  selectedBadgePlacement = "end"
22533
22755
  } = props;
22534
- const [open, setOpen] = React66.useState(false);
22535
- const [query, setQuery] = React66.useState("");
22536
- const { items, keyedItems } = React66.useMemo(() => {
22756
+ const [open, setOpen] = React67.useState(false);
22757
+ const [query, setQuery] = React67.useState("");
22758
+ const { items, keyedItems } = React67.useMemo(() => {
22537
22759
  const items2 = normalizeOptions2(options != null ? options : [], {
22538
22760
  autoCap,
22539
22761
  optionLabel,
@@ -22568,24 +22790,24 @@ var ShadcnMultiSelectVariant = React66.forwardRef(function ShadcnMultiSelectVari
22568
22790
  optionTagBgColor,
22569
22791
  optionTagOnClick
22570
22792
  ]);
22571
- const selectedValues = React66.useMemo(
22793
+ const selectedValues = React67.useMemo(
22572
22794
  () => new Set(value != null ? value : []),
22573
22795
  [value]
22574
22796
  );
22575
- const selectedItems = React66.useMemo(
22797
+ const selectedItems = React67.useMemo(
22576
22798
  () => items.filter((it) => selectedValues.has(it.value)),
22577
22799
  [items, selectedValues]
22578
22800
  );
22579
- const filteredItems = React66.useMemo(() => {
22801
+ const filteredItems = React67.useMemo(() => {
22580
22802
  if (!query) return items;
22581
22803
  const q2 = query.toLowerCase();
22582
22804
  return items.filter((it) => it.labelText.toLowerCase().includes(q2));
22583
22805
  }, [items, query]);
22584
- const selectableItems = React66.useMemo(
22806
+ const selectableItems = React67.useMemo(
22585
22807
  () => items.filter((it) => !it.disabled),
22586
22808
  [items]
22587
22809
  );
22588
- const allSelectableValues = React66.useMemo(
22810
+ const allSelectableValues = React67.useMemo(
22589
22811
  () => new Set(selectableItems.map((it) => it.value)),
22590
22812
  [selectableItems]
22591
22813
  );
@@ -22605,7 +22827,7 @@ var ShadcnMultiSelectVariant = React66.forwardRef(function ShadcnMultiSelectVari
22605
22827
  filteredItems.length * estimatedRowHeight + headerHeight + footerHeight
22606
22828
  )
22607
22829
  );
22608
- const handleToggleValue = React66.useCallback(
22830
+ const handleToggleValue = React67.useCallback(
22609
22831
  (primitive) => {
22610
22832
  if (!onValue || disabled || readOnly) return;
22611
22833
  const current = value != null ? value : [];
@@ -22639,7 +22861,7 @@ var ShadcnMultiSelectVariant = React66.forwardRef(function ShadcnMultiSelectVari
22639
22861
  },
22640
22862
  [onValue, value, disabled, readOnly, keyedItems]
22641
22863
  );
22642
- const handleSelectAll = React66.useCallback(() => {
22864
+ const handleSelectAll = React67.useCallback(() => {
22643
22865
  if (!onValue || disabled || readOnly) return;
22644
22866
  const current = value != null ? value : [];
22645
22867
  const allSelectableArr = Array.from(allSelectableValues);
@@ -22680,7 +22902,7 @@ var ShadcnMultiSelectVariant = React66.forwardRef(function ShadcnMultiSelectVari
22680
22902
  selectedValues,
22681
22903
  keyedItems
22682
22904
  ]);
22683
- const handleClearAll = React66.useCallback(() => {
22905
+ const handleClearAll = React67.useCallback(() => {
22684
22906
  if (!onValue || disabled || readOnly) return;
22685
22907
  const detail = {
22686
22908
  source: "variant",
@@ -22732,7 +22954,7 @@ var ShadcnMultiSelectVariant = React66.forwardRef(function ShadcnMultiSelectVari
22732
22954
  const hasLeadingControl = !!leadingControl;
22733
22955
  const hasTrailingControl = !!trailingControl;
22734
22956
  const hasControls = hasLeadingControl || hasTrailingControl;
22735
- const makeCheckboxNode = React66.useCallback(
22957
+ const makeCheckboxNode = React67.useCallback(
22736
22958
  (opts) => {
22737
22959
  if (renderCheckbox) {
22738
22960
  return renderCheckbox(opts);
@@ -22828,7 +23050,7 @@ var ShadcnMultiSelectVariant = React66.forwardRef(function ShadcnMultiSelectVari
22828
23050
  ] })
22829
23051
  }
22830
23052
  );
22831
- const ButtonModeTrigger = React66.useMemo(() => {
23053
+ const ButtonModeTrigger = React67.useMemo(() => {
22832
23054
  if (mode !== "button") return null;
22833
23055
  const selectedCount = selectedItems.length;
22834
23056
  const content = (() => {
@@ -22933,7 +23155,7 @@ var ShadcnMultiSelectVariant = React66.forwardRef(function ShadcnMultiSelectVari
22933
23155
  }
22934
23156
  ) }),
22935
23157
  /* @__PURE__ */ jsx("div", { className: "py-1", children: /* @__PURE__ */ jsx(
22936
- Virtuoso,
23158
+ VirtualScroll,
22937
23159
  {
22938
23160
  style: { height: listHeight },
22939
23161
  data: filteredItems,
@@ -23197,7 +23419,7 @@ function Slider({
23197
23419
  max: max2 = 100,
23198
23420
  ...props
23199
23421
  }) {
23200
- const _values = React66.useMemo(
23422
+ const _values = React67.useMemo(
23201
23423
  () => Array.isArray(value) ? value : Array.isArray(defaultValue) ? defaultValue : [min2, max2],
23202
23424
  [value, defaultValue, min2, max2]
23203
23425
  );
@@ -23276,7 +23498,7 @@ function clampToRange(v2, min2, max2) {
23276
23498
  if (v2 > max2) return max2;
23277
23499
  return v2;
23278
23500
  }
23279
- var ShadcnSliderVariant = React66.forwardRef(function ShadcnSliderVariant2(props, _ref) {
23501
+ var ShadcnSliderVariant = React67.forwardRef(function ShadcnSliderVariant2(props, _ref) {
23280
23502
  const {
23281
23503
  value,
23282
23504
  onValue,
@@ -23315,7 +23537,7 @@ var ShadcnSliderVariant = React66.forwardRef(function ShadcnSliderVariant2(props
23315
23537
  } = props;
23316
23538
  const numericValue = typeof value === "number" ? value : min2;
23317
23539
  const isDisabled = !!(disabled || readOnly);
23318
- const handleChange = React66.useCallback(
23540
+ const handleChange = React67.useCallback(
23319
23541
  (vals) => {
23320
23542
  if (!onValue) return;
23321
23543
  const next = clampToRange(vals[0], min2, max2);
@@ -23330,7 +23552,7 @@ var ShadcnSliderVariant = React66.forwardRef(function ShadcnSliderVariant2(props
23330
23552
  [onValue, min2, max2]
23331
23553
  );
23332
23554
  const stepAmount = controlStep != null ? controlStep : step;
23333
- const applyStep = React66.useCallback(
23555
+ const applyStep = React67.useCallback(
23334
23556
  (direction) => {
23335
23557
  if (!onValue || isDisabled) return;
23336
23558
  const current = typeof value === "number" ? value : min2;
@@ -23788,7 +24010,7 @@ function getGapPx(el) {
23788
24010
  const g2 = cs.columnGap && cs.columnGap !== "normal" ? cs.columnGap : cs.gap;
23789
24011
  return parsePx(g2);
23790
24012
  }
23791
- var ShadcnKeyValueVariant = React66.forwardRef(function ShadcnKeyValueVariant2(props, _ref) {
24013
+ var ShadcnKeyValueVariant = React67.forwardRef(function ShadcnKeyValueVariant2(props, _ref) {
23792
24014
  const {
23793
24015
  value,
23794
24016
  onValue,
@@ -23813,14 +24035,14 @@ var ShadcnKeyValueVariant = React66.forwardRef(function ShadcnKeyValueVariant2(p
23813
24035
  renderChip
23814
24036
  } = props;
23815
24037
  const isDisabled = disabled || readOnly;
23816
- const items = React66.useMemo(() => mapToItems(value), [value]);
23817
- const [dialogOpen, setDialogOpen] = React66.useState(false);
23818
- const [editingIndex, setEditingIndex] = React66.useState(null);
23819
- const [draft, setDraft] = React66.useState({ key: "", value: "" });
24038
+ const items = React67.useMemo(() => mapToItems(value), [value]);
24039
+ const [dialogOpen, setDialogOpen] = React67.useState(false);
24040
+ const [editingIndex, setEditingIndex] = React67.useState(null);
24041
+ const [draft, setDraft] = React67.useState({ key: "", value: "" });
23820
24042
  const canAdd = items.length < max2;
23821
24043
  const canDelete = items.length > min2;
23822
24044
  const hasItems = items.length > 0;
23823
- const commitItems = React66.useCallback(
24045
+ const commitItems = React67.useCallback(
23824
24046
  (next, meta) => {
23825
24047
  if (!onValue) return;
23826
24048
  const nextMap = itemsToMap(next);
@@ -23834,13 +24056,13 @@ var ShadcnKeyValueVariant = React66.forwardRef(function ShadcnKeyValueVariant2(p
23834
24056
  },
23835
24057
  [onValue]
23836
24058
  );
23837
- const openForNew = React66.useCallback(() => {
24059
+ const openForNew = React67.useCallback(() => {
23838
24060
  if (isDisabled || !canAdd) return;
23839
24061
  setEditingIndex(null);
23840
24062
  setDraft({ key: "", value: "" });
23841
24063
  setDialogOpen(true);
23842
24064
  }, [isDisabled, canAdd]);
23843
- const openForEdit = React66.useCallback(
24065
+ const openForEdit = React67.useCallback(
23844
24066
  (index) => {
23845
24067
  if (isDisabled) return;
23846
24068
  const item = items[index];
@@ -23851,7 +24073,7 @@ var ShadcnKeyValueVariant = React66.forwardRef(function ShadcnKeyValueVariant2(p
23851
24073
  },
23852
24074
  [isDisabled, items]
23853
24075
  );
23854
- const handleDelete = React66.useCallback(() => {
24076
+ const handleDelete = React67.useCallback(() => {
23855
24077
  if (editingIndex == null) return;
23856
24078
  if (!canDelete) return;
23857
24079
  const next = items.slice();
@@ -23862,7 +24084,7 @@ var ShadcnKeyValueVariant = React66.forwardRef(function ShadcnKeyValueVariant2(p
23862
24084
  index: editingIndex
23863
24085
  });
23864
24086
  }, [editingIndex, items, canDelete, commitItems]);
23865
- const handleSubmit = React66.useCallback(() => {
24087
+ const handleSubmit = React67.useCallback(() => {
23866
24088
  const trimmedKey = draft.key.trim();
23867
24089
  const trimmedValue = draft.value;
23868
24090
  if (!trimmedKey) return;
@@ -23884,7 +24106,7 @@ var ShadcnKeyValueVariant = React66.forwardRef(function ShadcnKeyValueVariant2(p
23884
24106
  index: editingIndex != null ? editingIndex : next.length - 1
23885
24107
  });
23886
24108
  }, [draft, items, editingIndex, canAdd, commitItems]);
23887
- const handleQuickRemove = React66.useCallback(
24109
+ const handleQuickRemove = React67.useCallback(
23888
24110
  (index) => {
23889
24111
  if (isDisabled || !canDelete) return;
23890
24112
  const next = items.slice();
@@ -23893,21 +24115,21 @@ var ShadcnKeyValueVariant = React66.forwardRef(function ShadcnKeyValueVariant2(p
23893
24115
  },
23894
24116
  [isDisabled, canDelete, items, commitItems]
23895
24117
  );
23896
- const [listOpen, setListOpen] = React66.useState(false);
23897
- const openList = React66.useCallback(() => {
24118
+ const [listOpen, setListOpen] = React67.useState(false);
24119
+ const openList = React67.useCallback(() => {
23898
24120
  if (isDisabled) return;
23899
24121
  setListOpen(true);
23900
24122
  }, [isDisabled]);
23901
- const wrapRef = React66.useRef(null);
23902
- const leftRef = React66.useRef(null);
23903
- const moreMeasureRef = React66.useRef(null);
23904
- const chipRefs = React66.useRef([]);
24123
+ const wrapRef = React67.useRef(null);
24124
+ const leftRef = React67.useRef(null);
24125
+ const moreMeasureRef = React67.useRef(null);
24126
+ const chipRefs = React67.useRef([]);
23905
24127
  chipRefs.current = items.map((_2, i3) => {
23906
24128
  var _a;
23907
24129
  return (_a = chipRefs.current[i3]) != null ? _a : null;
23908
24130
  });
23909
- const [visibleCount, setVisibleCount] = React66.useState(() => items.length);
23910
- const recomputeVisible = React66.useCallback(() => {
24131
+ const [visibleCount, setVisibleCount] = React67.useState(() => items.length);
24132
+ const recomputeVisible = React67.useCallback(() => {
23911
24133
  var _a, _b;
23912
24134
  const leftEl = leftRef.current;
23913
24135
  if (!leftEl) {
@@ -23956,10 +24178,10 @@ var ShadcnKeyValueVariant = React66.forwardRef(function ShadcnKeyValueVariant2(p
23956
24178
  }
23957
24179
  setVisibleCount(best);
23958
24180
  }, [items.length]);
23959
- React66.useLayoutEffect(() => {
24181
+ React67.useLayoutEffect(() => {
23960
24182
  recomputeVisible();
23961
24183
  }, [recomputeVisible, items, size, density, showValue]);
23962
- React66.useEffect(() => {
24184
+ React67.useEffect(() => {
23963
24185
  const el = leftRef.current;
23964
24186
  if (!el) return;
23965
24187
  const ro = new ResizeObserver(() => recomputeVisible());
@@ -24166,7 +24388,7 @@ var ShadcnKeyValueVariant = React66.forwardRef(function ShadcnKeyValueVariant2(p
24166
24388
  }
24167
24389
  )
24168
24390
  ] }),
24169
- items.length === 0 ? /* @__PURE__ */ jsx("div", { className: "rounded-md border border-border/50 px-3 py-6 text-center text-sm text-muted-foreground", children: emptyLabel }) : /* @__PURE__ */ jsx("div", { className: "max-h-64 overflow-auto rounded-md border border-border/50", children: /* @__PURE__ */ jsx("div", { className: "divide-y divide-border/50", children: items.map((pair, index) => /* @__PURE__ */ jsxs(
24391
+ items.length === 0 ? /* @__PURE__ */ jsx("div", { className: "rounded-md border border-border/50 px-3 py-6 text-center text-sm text-muted-foreground", children: emptyLabel }) : /* @__PURE__ */ jsx(ScrollArea, { className: "max-h-64 rounded-md border border-border/50", children: /* @__PURE__ */ jsx("div", { className: "divide-y divide-border/50", children: items.map((pair, index) => /* @__PURE__ */ jsxs(
24170
24392
  "div",
24171
24393
  {
24172
24394
  className: "flex items-center justify-between gap-2 px-2 py-1.5",
@@ -24349,7 +24571,7 @@ var keyValueModule = {
24349
24571
  label: ""
24350
24572
  }
24351
24573
  };
24352
- var ShadcnCustomVariant = React66.forwardRef(function ShadcnCustomVariant2(props, ref) {
24574
+ var ShadcnCustomVariant = React67.forwardRef(function ShadcnCustomVariant2(props, ref) {
24353
24575
  const {
24354
24576
  // Variant base props we care about:
24355
24577
  value,
@@ -24385,7 +24607,7 @@ var ShadcnCustomVariant = React66.forwardRef(function ShadcnCustomVariant2(props
24385
24607
  }
24386
24608
  const isDisabled = !!disabled;
24387
24609
  const isReadOnly = !!readOnly;
24388
- const handleChange = React66.useCallback(
24610
+ const handleChange = React67.useCallback(
24389
24611
  (...args) => {
24390
24612
  var _a;
24391
24613
  if (!onValue) return;
@@ -24490,7 +24712,7 @@ function triggerHeight3(size) {
24490
24712
  return "min-h-9 text-sm";
24491
24713
  }
24492
24714
  }
24493
- var ShadcnTreeSelectVariant = React66.forwardRef(function ShadcnTreeSelectVariant2(props, ref) {
24715
+ var ShadcnTreeSelectVariant = React67.forwardRef(function ShadcnTreeSelectVariant2(props, ref) {
24494
24716
  const {
24495
24717
  value,
24496
24718
  onValue,
@@ -24550,14 +24772,14 @@ var ShadcnTreeSelectVariant = React66.forwardRef(function ShadcnTreeSelectVarian
24550
24772
  selectedBadgeClassName,
24551
24773
  selectedBadgePlacement = "corner"
24552
24774
  } = props;
24553
- const [open, setOpen] = React66.useState(false);
24554
- const [query, setQuery] = React66.useState("");
24775
+ const [open, setOpen] = React67.useState(false);
24776
+ const [query, setQuery] = React67.useState("");
24555
24777
  const isDisabled = disabled || readOnly;
24556
- const d = React66.useMemo(
24778
+ const d = React67.useMemo(
24557
24779
  () => densityClasses(density),
24558
24780
  [density]
24559
24781
  );
24560
- const tree = React66.useMemo(
24782
+ const tree = React67.useMemo(
24561
24783
  () => normalizeTree(options != null ? options : [], {
24562
24784
  autoCap,
24563
24785
  optionLabel,
@@ -24592,8 +24814,8 @@ var ShadcnTreeSelectVariant = React66.forwardRef(function ShadcnTreeSelectVarian
24592
24814
  optionTagOnClick
24593
24815
  ]
24594
24816
  );
24595
- const allNodesFlat = React66.useMemo(() => flattenTree(tree), [tree]);
24596
- const computedInitialExpanded = React66.useMemo(() => {
24817
+ const allNodesFlat = React67.useMemo(() => flattenTree(tree), [tree]);
24818
+ const computedInitialExpanded = React67.useMemo(() => {
24597
24819
  if (expandAll) {
24598
24820
  return new Set(
24599
24821
  allNodesFlat.filter((n3) => n3.hasChildren).map((n3) => n3.value)
@@ -24604,13 +24826,13 @@ var ShadcnTreeSelectVariant = React66.forwardRef(function ShadcnTreeSelectVarian
24604
24826
  }
24605
24827
  return /* @__PURE__ */ new Set();
24606
24828
  }, [expandAll, defaultExpandedValues, allNodesFlat]);
24607
- const [expanded, setExpanded] = React66.useState(
24829
+ const [expanded, setExpanded] = React67.useState(
24608
24830
  computedInitialExpanded
24609
24831
  );
24610
- React66.useEffect(() => {
24832
+ React67.useEffect(() => {
24611
24833
  setExpanded(computedInitialExpanded);
24612
24834
  }, [computedInitialExpanded]);
24613
- const toggleExpanded = React66.useCallback((key) => {
24835
+ const toggleExpanded = React67.useCallback((key) => {
24614
24836
  setExpanded((prev) => {
24615
24837
  const next = new Set(prev);
24616
24838
  if (next.has(key)) next.delete(key);
@@ -24618,7 +24840,7 @@ var ShadcnTreeSelectVariant = React66.forwardRef(function ShadcnTreeSelectVarian
24618
24840
  return next;
24619
24841
  });
24620
24842
  }, []);
24621
- const displayedNodes = React66.useMemo(() => {
24843
+ const displayedNodes = React67.useMemo(() => {
24622
24844
  if (query) {
24623
24845
  const q2 = query.toLowerCase();
24624
24846
  const matchSet = /* @__PURE__ */ new Set();
@@ -24652,19 +24874,19 @@ var ShadcnTreeSelectVariant = React66.forwardRef(function ShadcnTreeSelectVarian
24652
24874
  displayedNodes.length * estimatedRowHeight
24653
24875
  )
24654
24876
  );
24655
- const selectedValues = React66.useMemo(() => {
24877
+ const selectedValues = React67.useMemo(() => {
24656
24878
  if (value === void 0 || value === null) return [];
24657
24879
  if (Array.isArray(value)) {
24658
24880
  return multiple ? value : value.length ? [value[0]] : [];
24659
24881
  }
24660
24882
  return [value];
24661
24883
  }, [value, multiple]);
24662
- const selectedItems = React66.useMemo(
24884
+ const selectedItems = React67.useMemo(
24663
24885
  () => allNodesFlat.filter((node) => selectedValues.includes(node.value)),
24664
24886
  [allNodesFlat, selectedValues]
24665
24887
  );
24666
24888
  const selectedCount = selectedItems.length;
24667
- const handleToggleValue = React66.useCallback(
24889
+ const handleToggleValue = React67.useCallback(
24668
24890
  (item) => {
24669
24891
  if (isDisabled) return;
24670
24892
  if (leafOnly && item.hasChildren) {
@@ -24707,7 +24929,7 @@ var ShadcnTreeSelectVariant = React66.forwardRef(function ShadcnTreeSelectVarian
24707
24929
  allNodesFlat
24708
24930
  ]
24709
24931
  );
24710
- const handleClear = React66.useCallback(() => {
24932
+ const handleClear = React67.useCallback(() => {
24711
24933
  if (!onValue) return;
24712
24934
  const detail = {
24713
24935
  source: "variant",
@@ -24758,12 +24980,12 @@ var ShadcnTreeSelectVariant = React66.forwardRef(function ShadcnTreeSelectVarian
24758
24980
  ) });
24759
24981
  };
24760
24982
  const triggerContent = renderValue ? renderValue({ selectedItems, placeholder }) : renderDefaultTriggerContent();
24983
+ const triggerPaddingClasses = cn("px-3", d.triggerPy);
24761
24984
  const baseBoxClasses = cn(
24762
- "flex items-center justify-between border-input w-full min-w-0 rounded-md border bg-background text-sm shadow-xs ring-offset-background",
24763
- "placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
24764
- "disabled:cursor-not-allowed disabled:opacity-50",
24765
- "aria-invalid:border-destructive",
24766
- d.triggerPy
24985
+ "flex items-center justify-between w-full min-w-0 text-sm ring-offset-background",
24986
+ "placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",
24987
+ triggerPaddingClasses,
24988
+ hasControls && extendBoxToControls ? "border-none shadow-none focus:outline-none bg-transparent text-left" : "border-input rounded-md border bg-background shadow-xs focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 aria-invalid:border-destructive"
24767
24989
  );
24768
24990
  const DefaultTriggerButton = /* @__PURE__ */ jsx(
24769
24991
  "button",
@@ -24773,7 +24995,7 @@ var ShadcnTreeSelectVariant = React66.forwardRef(function ShadcnTreeSelectVarian
24773
24995
  disabled: isDisabled,
24774
24996
  className: cn(
24775
24997
  triggerHeight3(size),
24776
- hasControls && extendBoxToControls ? "border-none shadow-none focus:outline-none bg-transparent w-full text-left" : baseBoxClasses,
24998
+ baseBoxClasses,
24777
24999
  triggerClassName
24778
25000
  ),
24779
25001
  children: /* @__PURE__ */ jsxs("div", { className: "flex w-full items-center justify-between gap-2 overflow-hidden", children: [
@@ -24815,7 +25037,7 @@ var ShadcnTreeSelectVariant = React66.forwardRef(function ShadcnTreeSelectVarian
24815
25037
  ] })
24816
25038
  }
24817
25039
  );
24818
- const ButtonModeTrigger = React66.useMemo(() => {
25040
+ const ButtonModeTrigger = React67.useMemo(() => {
24819
25041
  if (mode !== "button") return null;
24820
25042
  const ctx = { open, selectedItems, selectedCount };
24821
25043
  const triggerNode = typeof button === "function" ? button(ctx) : button != null ? button : typeof children === "function" ? children(ctx) : children;
@@ -24845,7 +25067,7 @@ var ShadcnTreeSelectVariant = React66.forwardRef(function ShadcnTreeSelectVarian
24845
25067
  badgeEl
24846
25068
  ] });
24847
25069
  };
24848
- if (React66.isValidElement(triggerNode)) {
25070
+ if (React67.isValidElement(triggerNode)) {
24849
25071
  return wrapWithBadge(triggerNode);
24850
25072
  }
24851
25073
  return wrapWithBadge(
@@ -24879,7 +25101,7 @@ var ShadcnTreeSelectVariant = React66.forwardRef(function ShadcnTreeSelectVarian
24879
25101
  emptyLabel && tree.length === 0 && !query && /* @__PURE__ */ jsx("div", { className: "px-4 py-3 text-sm text-center text-muted-foreground", children: emptyLabel }),
24880
25102
  tree.length > 0 && displayedNodes.length === 0 && /* @__PURE__ */ jsx("div", { className: "px-4 py-3 text-sm text-center text-muted-foreground", children: emptySearchText != null ? emptySearchText : "No results found" }),
24881
25103
  displayedNodes.length > 0 && /* @__PURE__ */ jsx(
24882
- Virtuoso,
25104
+ VirtualScroll,
24883
25105
  {
24884
25106
  style: { height: listHeight },
24885
25107
  data: displayedNodes,
@@ -24974,7 +25196,7 @@ var ShadcnTreeSelectVariant = React66.forwardRef(function ShadcnTreeSelectVarian
24974
25196
  );
24975
25197
  const renderer = (_b = item.render) != null ? _b : renderOption;
24976
25198
  if (!renderer) {
24977
- return /* @__PURE__ */ jsx(React66.Fragment, { children: optionNode }, item.key);
25199
+ return /* @__PURE__ */ jsx(React67.Fragment, { children: optionNode }, item.key);
24978
25200
  }
24979
25201
  const rendered = renderer({
24980
25202
  item,
@@ -24985,7 +25207,7 @@ var ShadcnTreeSelectVariant = React66.forwardRef(function ShadcnTreeSelectVarian
24985
25207
  if (!item.disabled) handleToggleValue(item);
24986
25208
  }
24987
25209
  });
24988
- return /* @__PURE__ */ jsx(React66.Fragment, { children: rendered }, item.key);
25210
+ return /* @__PURE__ */ jsx(React67.Fragment, { children: rendered }, item.key);
24989
25211
  }
24990
25212
  }
24991
25213
  )
@@ -25102,62 +25324,28 @@ var treeselect_default = ShadcnTreeSelectVariant;
25102
25324
  // src/variants/core/treeselect.tsx
25103
25325
  var treeselectModule = {
25104
25326
  variant: "treeselect",
25105
- Variant: treeselect_default
25327
+ Variant: treeselect_default,
25328
+ // Layout defaults for this variant
25329
+ defaults: {
25330
+ layout: {
25331
+ labelPlacement: "top",
25332
+ sublabelPlacement: "right",
25333
+ descriptionPlacement: "below",
25334
+ helpTextPlacement: "below",
25335
+ errorTextPlacement: "below",
25336
+ inline: false,
25337
+ fullWidth: true,
25338
+ defaultSize: "md",
25339
+ defaultDensity: "comfortable"
25340
+ }
25341
+ },
25342
+ meta: {
25343
+ label: "TreeSelect",
25344
+ description: "Hierarchical tree selection dropdown with collapsible folders and node tags.",
25345
+ tags: ["tree", "select", "hierarchical", "dropdown", "multiselect"]
25346
+ }
25106
25347
  };
25107
25348
  var treeselect_default2 = treeselectModule;
25108
- function ScrollArea({
25109
- className,
25110
- children,
25111
- ...props
25112
- }) {
25113
- return /* @__PURE__ */ jsxs(
25114
- ScrollAreaPrimitive.Root,
25115
- {
25116
- "data-slot": "scroll-area",
25117
- className: cn("relative", className),
25118
- ...props,
25119
- children: [
25120
- /* @__PURE__ */ jsx(
25121
- ScrollAreaPrimitive.Viewport,
25122
- {
25123
- "data-slot": "scroll-area-viewport",
25124
- className: "focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1",
25125
- children
25126
- }
25127
- ),
25128
- /* @__PURE__ */ jsx(ScrollBar, {}),
25129
- /* @__PURE__ */ jsx(ScrollAreaPrimitive.Corner, {})
25130
- ]
25131
- }
25132
- );
25133
- }
25134
- function ScrollBar({
25135
- className,
25136
- orientation = "vertical",
25137
- ...props
25138
- }) {
25139
- return /* @__PURE__ */ jsx(
25140
- ScrollAreaPrimitive.ScrollAreaScrollbar,
25141
- {
25142
- "data-slot": "scroll-area-scrollbar",
25143
- orientation,
25144
- className: cn(
25145
- "flex touch-none p-px transition-colors select-none",
25146
- orientation === "vertical" && "h-full w-2.5 border-l border-l-transparent",
25147
- orientation === "horizontal" && "h-2.5 flex-col border-t border-t-transparent",
25148
- className
25149
- ),
25150
- ...props,
25151
- children: /* @__PURE__ */ jsx(
25152
- ScrollAreaPrimitive.ScrollAreaThumb,
25153
- {
25154
- "data-slot": "scroll-area-thumb",
25155
- className: "bg-border relative flex-1 rounded-full"
25156
- }
25157
- )
25158
- }
25159
- );
25160
- }
25161
25349
  function fileId() {
25162
25350
  return `file_${Math.random().toString(36).slice(2)}`;
25163
25351
  }
@@ -25310,8 +25498,8 @@ function mergeHandlers(a3, b2) {
25310
25498
  };
25311
25499
  }
25312
25500
  var FileThumbnail = ({ item }) => {
25313
- const [preview, setPreview] = React66.useState(null);
25314
- React66.useEffect(() => {
25501
+ const [preview, setPreview] = React67.useState(null);
25502
+ React67.useEffect(() => {
25315
25503
  var _a;
25316
25504
  const isImage2 = ((_a = item.type) == null ? void 0 : _a.startsWith("image/")) || item.name.match(/\.(jpg|jpeg|png|gif|webp)$/i);
25317
25505
  if (!isImage2) return;
@@ -25333,7 +25521,7 @@ var FileThumbnail = ({ item }) => {
25333
25521
  }
25334
25522
  ) : /* @__PURE__ */ jsx(File2, { className: "h-4 w-4 text-muted-foreground/50" }) });
25335
25523
  };
25336
- var ShadcnFileVariant = React66.forwardRef(function ShadcnFileVariant2(props, ref) {
25524
+ var ShadcnFileVariant = React67.forwardRef(function ShadcnFileVariant2(props, ref) {
25337
25525
  const {
25338
25526
  value,
25339
25527
  onValue,
@@ -25387,18 +25575,18 @@ var ShadcnFileVariant = React66.forwardRef(function ShadcnFileVariant2(props, re
25387
25575
  } = props;
25388
25576
  const joinControls = mode === "default" ? joinControlsProp != null ? joinControlsProp : true : false;
25389
25577
  const extendBoxToControls = mode === "default" ? extendBoxToControlsProp != null ? extendBoxToControlsProp : true : false;
25390
- const items = React66.useMemo(() => {
25578
+ const items = React67.useMemo(() => {
25391
25579
  var _a;
25392
25580
  const raw = (_a = toArray(value)) != null ? _a : [];
25393
25581
  return raw.map(normaliseFileLike);
25394
25582
  }, [value]);
25395
25583
  const isDisabled = Boolean(disabled || readOnly);
25396
- const [dragOver, setDragOver] = React66.useState(false);
25397
- const [selectedIds, setSelectedIds] = React66.useState(
25584
+ const [dragOver, setDragOver] = React67.useState(false);
25585
+ const [selectedIds, setSelectedIds] = React67.useState(
25398
25586
  () => /* @__PURE__ */ new Set()
25399
25587
  );
25400
- const [popoverOpen, setPopoverOpen] = React66.useState(false);
25401
- const fileInputRef = React66.useRef(null);
25588
+ const [popoverOpen, setPopoverOpen] = React67.useState(false);
25589
+ const fileInputRef = React67.useRef(null);
25402
25590
  const den = densityTokens(density);
25403
25591
  const heightCls = triggerHeight4(size);
25404
25592
  const chipHeightCls = chipHeight(size);
@@ -25407,7 +25595,7 @@ var ShadcnFileVariant = React66.forwardRef(function ShadcnFileVariant2(props, re
25407
25595
  const resolvedTrailingIcons = (trailingIcons == null ? void 0 : trailingIcons.length) ? trailingIcons : [];
25408
25596
  const hasExternalControls = !!leadingControl || !!trailingControl;
25409
25597
  const COLLAPSE_LIMIT = 2;
25410
- const emitChange = React66.useCallback(
25598
+ const emitChange = React67.useCallback(
25411
25599
  (nextItems, meta) => {
25412
25600
  var _a;
25413
25601
  const nextValues = nextItems.map(fileItemToValue);
@@ -25421,7 +25609,7 @@ var ShadcnFileVariant = React66.forwardRef(function ShadcnFileVariant2(props, re
25421
25609
  },
25422
25610
  [multiple, onValue]
25423
25611
  );
25424
- const handleAddItems = React66.useCallback(
25612
+ const handleAddItems = React67.useCallback(
25425
25613
  (incoming, from) => {
25426
25614
  if (isDisabled) return;
25427
25615
  let next = multiple ? [...items] : [];
@@ -25458,7 +25646,7 @@ var ShadcnFileVariant = React66.forwardRef(function ShadcnFileVariant2(props, re
25458
25646
  onFilesAdded
25459
25647
  ]
25460
25648
  );
25461
- const handleRemove = React66.useCallback(
25649
+ const handleRemove = React67.useCallback(
25462
25650
  (id) => {
25463
25651
  const next = items.filter((i3) => i3.id !== id);
25464
25652
  emitChange(next, { action: "remove", id });
@@ -25470,7 +25658,7 @@ var ShadcnFileVariant = React66.forwardRef(function ShadcnFileVariant2(props, re
25470
25658
  },
25471
25659
  [emitChange, items, selectedIds]
25472
25660
  );
25473
- const handleBulkRemove = React66.useCallback(() => {
25661
+ const handleBulkRemove = React67.useCallback(() => {
25474
25662
  const next = items.filter((i3) => !selectedIds.has(i3.id));
25475
25663
  emitChange(next, {
25476
25664
  action: "bulk-remove",
@@ -25478,7 +25666,7 @@ var ShadcnFileVariant = React66.forwardRef(function ShadcnFileVariant2(props, re
25478
25666
  });
25479
25667
  setSelectedIds(/* @__PURE__ */ new Set());
25480
25668
  }, [emitChange, items, selectedIds]);
25481
- const openPicker = React66.useCallback(async () => {
25669
+ const openPicker = React67.useCallback(async () => {
25482
25670
  var _a;
25483
25671
  if (isDisabled) return;
25484
25672
  let resolvedLoader = customLoader != null ? customLoader : custom && getPaletteUtil("customLoader");
@@ -25517,14 +25705,14 @@ var ShadcnFileVariant = React66.forwardRef(function ShadcnFileVariant2(props, re
25517
25705
  mergeMode,
25518
25706
  multiple
25519
25707
  ]);
25520
- const onDragOver = React66.useCallback(
25708
+ const onDragOver = React67.useCallback(
25521
25709
  (e4) => {
25522
25710
  e4.preventDefault();
25523
25711
  if (!isDisabled) setDragOver(true);
25524
25712
  },
25525
25713
  [isDisabled]
25526
25714
  );
25527
- const onDrop = React66.useCallback(
25715
+ const onDrop = React67.useCallback(
25528
25716
  (e4) => {
25529
25717
  var _a;
25530
25718
  e4.preventDefault();
@@ -25542,15 +25730,15 @@ var ShadcnFileVariant = React66.forwardRef(function ShadcnFileVariant2(props, re
25542
25730
  }
25543
25731
  e4.target.value = "";
25544
25732
  };
25545
- const FileChip = React66.useCallback(
25733
+ const FileChip = React67.useCallback(
25546
25734
  ({
25547
25735
  item,
25548
25736
  condensed = false
25549
25737
  }) => {
25550
25738
  const name = formatFileName ? formatFileName(item) : item.name;
25551
- const [preview, setPreview] = React66.useState(null);
25552
- const [isOpen, setIsOpen] = React66.useState(false);
25553
- React66.useEffect(() => {
25739
+ const [preview, setPreview] = React67.useState(null);
25740
+ const [isOpen, setIsOpen] = React67.useState(false);
25741
+ React67.useEffect(() => {
25554
25742
  var _a;
25555
25743
  const isImage2 = ((_a = item.type) == null ? void 0 : _a.startsWith("image/")) || item.name.match(/\.(jpg|jpeg|png|gif|webp)$/i);
25556
25744
  if (!isImage2) {
@@ -25657,7 +25845,7 @@ var ShadcnFileVariant = React66.forwardRef(function ShadcnFileVariant2(props, re
25657
25845
  ]
25658
25846
  );
25659
25847
  const selectedCount = items.length;
25660
- const resolveButtonTriggerElement = React66.useCallback(() => {
25848
+ const resolveButtonTriggerElement = React67.useCallback(() => {
25661
25849
  const ctx = {
25662
25850
  open: popoverOpen,
25663
25851
  items,
@@ -25687,7 +25875,7 @@ var ShadcnFileVariant = React66.forwardRef(function ShadcnFileVariant2(props, re
25687
25875
  );
25688
25876
  const child = el.props.children;
25689
25877
  if (selectedBadgePlacement === "end") {
25690
- return React66.cloneElement(el, {
25878
+ return React67.cloneElement(el, {
25691
25879
  className: nextClass,
25692
25880
  children: /* @__PURE__ */ jsxs("span", { className: "inline-flex items-center gap-2", children: [
25693
25881
  /* @__PURE__ */ jsx("span", { className: "min-w-0", children: child }),
@@ -25695,7 +25883,7 @@ var ShadcnFileVariant = React66.forwardRef(function ShadcnFileVariant2(props, re
25695
25883
  ] })
25696
25884
  });
25697
25885
  }
25698
- return React66.cloneElement(el, {
25886
+ return React67.cloneElement(el, {
25699
25887
  className: nextClass,
25700
25888
  children: /* @__PURE__ */ jsxs(Fragment, { children: [
25701
25889
  child,
@@ -25703,7 +25891,7 @@ var ShadcnFileVariant = React66.forwardRef(function ShadcnFileVariant2(props, re
25703
25891
  ] })
25704
25892
  });
25705
25893
  };
25706
- const withDnD = (el) => React66.cloneElement(el, {
25894
+ const withDnD = (el) => React67.cloneElement(el, {
25707
25895
  onDragOver: mergeHandlers(
25708
25896
  el.props.onDragOver,
25709
25897
  onDragOver
@@ -25714,7 +25902,7 @@ var ShadcnFileVariant = React66.forwardRef(function ShadcnFileVariant2(props, re
25714
25902
  ),
25715
25903
  onDrop: mergeHandlers(el.props.onDrop, onDrop)
25716
25904
  });
25717
- if (React66.isValidElement(rawNode)) {
25905
+ if (React67.isValidElement(rawNode)) {
25718
25906
  return withDnD(injectBadgeIntoElement(rawNode));
25719
25907
  }
25720
25908
  const fallback = /* @__PURE__ */ jsxs(
@@ -25770,7 +25958,7 @@ var ShadcnFileVariant = React66.forwardRef(function ShadcnFileVariant2(props, re
25770
25958
  selectedCount,
25771
25959
  triggerClassName
25772
25960
  ]);
25773
- const TriggerRegion = React66.useMemo(() => {
25961
+ const TriggerRegion = React67.useMemo(() => {
25774
25962
  if (showDropArea) {
25775
25963
  if (renderDropArea)
25776
25964
  return renderDropArea({ openPicker, isDragging: dragOver });
@@ -26230,7 +26418,7 @@ var toggleVariants = cva(
26230
26418
  }
26231
26419
  }
26232
26420
  );
26233
- var ToggleGroupContext = React66.createContext({
26421
+ var ToggleGroupContext = React67.createContext({
26234
26422
  size: "default",
26235
26423
  variant: "default",
26236
26424
  spacing: 0
@@ -26267,7 +26455,7 @@ function ToggleGroupItem({
26267
26455
  size,
26268
26456
  ...props
26269
26457
  }) {
26270
- const context = React66.useContext(ToggleGroupContext);
26458
+ const context = React67.useContext(ToggleGroupContext);
26271
26459
  return /* @__PURE__ */ jsx(
26272
26460
  ToggleGroupPrimitive.Item,
26273
26461
  {
@@ -26458,7 +26646,7 @@ function normalizeOption(input, {
26458
26646
  raw: input
26459
26647
  };
26460
26648
  }
26461
- var ShadcnToggleVariant3 = React66.forwardRef(function ShadcnToggleVariant4(props, ref) {
26649
+ var ShadcnToggleVariant3 = React67.forwardRef(function ShadcnToggleVariant4(props, ref) {
26462
26650
  const {
26463
26651
  value,
26464
26652
  onValue,
@@ -26495,7 +26683,7 @@ var ShadcnToggleVariant3 = React66.forwardRef(function ShadcnToggleVariant4(prop
26495
26683
  const isDisabled = Boolean(disabled || readOnly);
26496
26684
  const toggleSize = mapSizeToToggleSize(size);
26497
26685
  const currentValue = normalizeValue(value, multiple);
26498
- const normalizedOptions = React66.useMemo(
26686
+ const normalizedOptions = React67.useMemo(
26499
26687
  () => options.map(
26500
26688
  (opt) => normalizeOption(
26501
26689
  opt,
@@ -26535,7 +26723,7 @@ var ShadcnToggleVariant3 = React66.forwardRef(function ShadcnToggleVariant4(prop
26535
26723
  autoCap
26536
26724
  ]
26537
26725
  );
26538
- const handleChange = React66.useCallback(
26726
+ const handleChange = React67.useCallback(
26539
26727
  (val) => {
26540
26728
  if (readOnly) return;
26541
26729
  if (!onValue) return;
@@ -26572,7 +26760,7 @@ var ShadcnToggleVariant3 = React66.forwardRef(function ShadcnToggleVariant4(prop
26572
26760
  fullWidth && layout === "vertical" && "[&>*]:w-full",
26573
26761
  className
26574
26762
  );
26575
- const groupStyle = React66.useMemo(() => {
26763
+ const groupStyle = React67.useMemo(() => {
26576
26764
  const style = {};
26577
26765
  if (layout === "grid") {
26578
26766
  style.gridTemplateColumns = `repeat(${gridCols}, minmax(0, 1fr))`;
@@ -26713,29 +26901,29 @@ function ShadcnEditorVariant(props) {
26713
26901
  theme = "auto",
26714
26902
  themeTarget = "nearest"
26715
26903
  } = props;
26716
- const mountRef = React66.useRef(null);
26717
- const editorRef = React66.useRef(null);
26718
- const formatRef = React66.useRef(format2);
26719
- const onValueRef = React66.useRef(onValue);
26720
- const syncingRef = React66.useRef(false);
26721
- const loadedRef = React66.useRef(false);
26722
- const lastContentRef = React66.useRef(value != null ? value : "");
26723
- const [autoDark, setAutoDark] = React66.useState(false);
26904
+ const mountRef = React67.useRef(null);
26905
+ const editorRef = React67.useRef(null);
26906
+ const formatRef = React67.useRef(format2);
26907
+ const onValueRef = React67.useRef(onValue);
26908
+ const syncingRef = React67.useRef(false);
26909
+ const loadedRef = React67.useRef(false);
26910
+ const lastContentRef = React67.useRef(value != null ? value : "");
26911
+ const [autoDark, setAutoDark] = React67.useState(false);
26724
26912
  formatRef.current = format2;
26725
26913
  onValueRef.current = onValue;
26726
26914
  if (value !== void 0) lastContentRef.current = value;
26727
26915
  const effectiveReadOnly = Boolean(disabled || readOnly);
26728
26916
  const effectiveTheme = theme === "auto" ? autoDark ? "dark" : "light" : theme;
26729
- const readContent = React66.useCallback((ed) => {
26917
+ const readContent = React67.useCallback((ed) => {
26730
26918
  var _a, _b;
26731
26919
  return formatRef.current === "markdown" ? (_a = ed.getMarkdown()) != null ? _a : "" : (_b = ed.getHTML()) != null ? _b : "";
26732
26920
  }, []);
26733
- const emit = React66.useCallback((next) => {
26921
+ const emit = React67.useCallback((next) => {
26734
26922
  var _a;
26735
26923
  const detail = { source: "user", raw: next };
26736
26924
  (_a = onValueRef.current) == null ? void 0 : _a.call(onValueRef, next, detail);
26737
26925
  }, []);
26738
- const structuralKey = React66.useMemo(() => {
26926
+ const structuralKey = React67.useMemo(() => {
26739
26927
  const hideModeSwitch = toolbar === "none" || pastePlainText;
26740
26928
  return JSON.stringify({
26741
26929
  toolbar,
@@ -26744,7 +26932,7 @@ function ShadcnEditorVariant(props) {
26744
26932
  effectiveTheme
26745
26933
  });
26746
26934
  }, [toolbar, useCommandShortcut, pastePlainText, effectiveTheme]);
26747
- React66.useEffect(() => {
26935
+ React67.useEffect(() => {
26748
26936
  if (theme !== "auto") return;
26749
26937
  if (typeof document === "undefined") return;
26750
26938
  const host = mountRef.current;
@@ -26769,7 +26957,7 @@ function ShadcnEditorVariant(props) {
26769
26957
  }
26770
26958
  return () => observer.disconnect();
26771
26959
  }, [theme, themeTarget]);
26772
- React66.useEffect(() => {
26960
+ React67.useEffect(() => {
26773
26961
  var _a;
26774
26962
  const el = mountRef.current;
26775
26963
  if (!el) return;
@@ -26840,29 +27028,29 @@ function ShadcnEditorVariant(props) {
26840
27028
  editorRef.current = null;
26841
27029
  };
26842
27030
  }, [structuralKey]);
26843
- React66.useEffect(() => {
27031
+ React67.useEffect(() => {
26844
27032
  const ed = editorRef.current;
26845
27033
  if (!ed) return;
26846
27034
  if (typeof ed.setHeight === "function") ed.setHeight(height);
26847
27035
  }, [height]);
26848
- React66.useEffect(() => {
27036
+ React67.useEffect(() => {
26849
27037
  const ed = editorRef.current;
26850
27038
  if (!ed) return;
26851
27039
  if (typeof ed.setPlaceholder === "function")
26852
27040
  ed.setPlaceholder(placeholder);
26853
27041
  }, [placeholder]);
26854
- React66.useEffect(() => {
27042
+ React67.useEffect(() => {
26855
27043
  const ed = editorRef.current;
26856
27044
  if (!ed) return;
26857
27045
  if (typeof ed.changeMode === "function") ed.changeMode(editType);
26858
27046
  }, [editType]);
26859
- React66.useEffect(() => {
27047
+ React67.useEffect(() => {
26860
27048
  const ed = editorRef.current;
26861
27049
  if (!ed) return;
26862
27050
  if (typeof ed.changePreviewStyle === "function")
26863
27051
  ed.changePreviewStyle(previewStyle);
26864
27052
  }, [previewStyle]);
26865
- React66.useEffect(() => {
27053
+ React67.useEffect(() => {
26866
27054
  var _a, _b, _c, _d;
26867
27055
  const ed = editorRef.current;
26868
27056
  if (!ed) return;
@@ -26880,7 +27068,7 @@ function ShadcnEditorVariant(props) {
26880
27068
  syncingRef.current = false;
26881
27069
  });
26882
27070
  }, [value, format2]);
26883
- React66.useEffect(() => {
27071
+ React67.useEffect(() => {
26884
27072
  if (!pastePlainText) return;
26885
27073
  const host = mountRef.current;
26886
27074
  if (!host) return;
@@ -27384,10 +27572,10 @@ function JsonEditorMain(props) {
27384
27572
  className,
27385
27573
  contentClassName
27386
27574
  } = props;
27387
- const directChildPaths = React66.useMemo(() => {
27575
+ const directChildPaths = React67.useMemo(() => {
27388
27576
  return getDirectChildPaths(route, allPaths);
27389
27577
  }, [route, allPaths]);
27390
- const rows = React66.useMemo(() => {
27578
+ const rows = React67.useMemo(() => {
27391
27579
  return resolveLayoutForParent({
27392
27580
  parent: route,
27393
27581
  childPaths: directChildPaths,
@@ -27395,7 +27583,7 @@ function JsonEditorMain(props) {
27395
27583
  filters
27396
27584
  });
27397
27585
  }, [route, directChildPaths, layout, filters]);
27398
- const effectiveRows = React66.useMemo(() => {
27586
+ const effectiveRows = React67.useMemo(() => {
27399
27587
  const hasAny = rows.some((r5) => {
27400
27588
  var _a;
27401
27589
  return (_a = r5.fields) == null ? void 0 : _a.length;
@@ -28571,7 +28759,7 @@ function JsonEditorRawPanel(props) {
28571
28759
  const canEditRaw = (_b = permissions == null ? void 0 : permissions.canEditRaw) != null ? _b : false;
28572
28760
  if (!canViewRaw) return null;
28573
28761
  const viewOnly = !!disabled || !!readOnly || !canEditRaw;
28574
- const onCopy = React66.useCallback(async () => {
28762
+ const onCopy = React67.useCallback(async () => {
28575
28763
  try {
28576
28764
  await navigator.clipboard.writeText(
28577
28765
  JSON.stringify(root != null ? root : {}, null, 2)
@@ -28665,17 +28853,17 @@ function collectAllPaths(value, prefix = "", out = []) {
28665
28853
  }
28666
28854
  function useControllable(opts) {
28667
28855
  const { value, defaultValue, onChange } = opts;
28668
- const [inner, setInner] = React66.useState(defaultValue);
28856
+ const [inner, setInner] = React67.useState(defaultValue);
28669
28857
  const isControlled = value !== void 0;
28670
28858
  const state = isControlled ? value : inner;
28671
- const setState = React66.useCallback(
28859
+ const setState = React67.useCallback(
28672
28860
  (next) => {
28673
28861
  if (!isControlled) setInner(next);
28674
28862
  onChange == null ? void 0 : onChange(next);
28675
28863
  },
28676
28864
  [isControlled, onChange]
28677
28865
  );
28678
- React66.useEffect(() => {
28866
+ React67.useEffect(() => {
28679
28867
  if (!isControlled) return;
28680
28868
  setInner(value);
28681
28869
  }, [isControlled]);
@@ -28690,7 +28878,7 @@ function callCallbacks(callbacks, action, nextRoot, ctx) {
28690
28878
  const meta = { action, route: ctx.route, path, parent, key };
28691
28879
  (_b = callbacks.onEdit) == null ? void 0 : _b.call(callbacks, nextRoot, meta);
28692
28880
  }
28693
- var JsonEditor = React66.forwardRef(function JsonEditorEditor(props, ref) {
28881
+ var JsonEditor = React67.forwardRef(function JsonEditorEditor(props, ref) {
28694
28882
  var _a, _b;
28695
28883
  const {
28696
28884
  root,
@@ -28720,16 +28908,16 @@ var JsonEditor = React66.forwardRef(function JsonEditorEditor(props, ref) {
28720
28908
  } = props;
28721
28909
  const canViewRaw = (_a = permissions == null ? void 0 : permissions.canViewRaw) != null ? _a : true;
28722
28910
  const canEditRaw = (_b = permissions == null ? void 0 : permissions.canEditRaw) != null ? _b : false;
28723
- const routes = React66.useMemo(
28911
+ const routes = React67.useMemo(
28724
28912
  () => buildJsonRoutes(root, void 0, filters),
28725
28913
  [root, filters]
28726
28914
  );
28727
- const allPaths = React66.useMemo(() => {
28915
+ const allPaths = React67.useMemo(() => {
28728
28916
  const list = collectAllPaths(root, "", []);
28729
28917
  const seen = /* @__PURE__ */ new Set();
28730
28918
  return list.filter((p2) => seen.has(p2) ? false : (seen.add(p2), true));
28731
28919
  }, [root]);
28732
- const computedInitialRoute = React66.useMemo(() => {
28920
+ const computedInitialRoute = React67.useMemo(() => {
28733
28921
  var _a2, _b2;
28734
28922
  const explicit = routeProp != null ? routeProp : defaultRoute;
28735
28923
  if (explicit !== void 0) return explicit;
@@ -28745,25 +28933,25 @@ var JsonEditor = React66.forwardRef(function JsonEditorEditor(props, ref) {
28745
28933
  defaultValue: defaultViewMode,
28746
28934
  onChange: onViewModeChange
28747
28935
  });
28748
- React66.useEffect(() => {
28936
+ React67.useEffect(() => {
28749
28937
  if (!canViewRaw && (viewMode === "raw" || viewMode === "split")) {
28750
28938
  setViewMode("visual");
28751
28939
  }
28752
28940
  }, [canViewRaw, setViewMode, viewMode]);
28753
- const fileInputRef = React66.useRef(null);
28754
- const contentRef = React66.useRef(null);
28755
- const [rawWidth, setRawWidth] = React66.useState(420);
28756
- const [isResizing, setIsResizing] = React66.useState(false);
28757
- const startXRef = React66.useRef(0);
28758
- const startWRef = React66.useRef(0);
28759
- const clampRawWidth = React66.useCallback((w2) => {
28941
+ const fileInputRef = React67.useRef(null);
28942
+ const contentRef = React67.useRef(null);
28943
+ const [rawWidth, setRawWidth] = React67.useState(420);
28944
+ const [isResizing, setIsResizing] = React67.useState(false);
28945
+ const startXRef = React67.useRef(0);
28946
+ const startWRef = React67.useRef(0);
28947
+ const clampRawWidth = React67.useCallback((w2) => {
28760
28948
  var _a2, _b2;
28761
28949
  const containerW = (_b2 = (_a2 = contentRef.current) == null ? void 0 : _a2.getBoundingClientRect().width) != null ? _b2 : 0;
28762
28950
  const min2 = 260;
28763
28951
  const max2 = containerW ? Math.max(min2, Math.min(900, containerW - 240)) : 900;
28764
28952
  return Math.max(min2, Math.min(max2, w2));
28765
28953
  }, []);
28766
- const onResizePointerDown = React66.useCallback(
28954
+ const onResizePointerDown = React67.useCallback(
28767
28955
  (e4) => {
28768
28956
  if (e4.button !== 0 && e4.pointerType === "mouse") return;
28769
28957
  setIsResizing(true);
@@ -28775,7 +28963,7 @@ var JsonEditor = React66.forwardRef(function JsonEditorEditor(props, ref) {
28775
28963
  },
28776
28964
  [rawWidth]
28777
28965
  );
28778
- const onResizePointerMove = React66.useCallback(
28966
+ const onResizePointerMove = React67.useCallback(
28779
28967
  (e4) => {
28780
28968
  if (!isResizing) return;
28781
28969
  const dx = e4.clientX - startXRef.current;
@@ -28784,7 +28972,7 @@ var JsonEditor = React66.forwardRef(function JsonEditorEditor(props, ref) {
28784
28972
  },
28785
28973
  [clampRawWidth, isResizing]
28786
28974
  );
28787
- const stopResizing = React66.useCallback(
28975
+ const stopResizing = React67.useCallback(
28788
28976
  (e4) => {
28789
28977
  if (!isResizing) return;
28790
28978
  setIsResizing(false);
@@ -28795,14 +28983,14 @@ var JsonEditor = React66.forwardRef(function JsonEditorEditor(props, ref) {
28795
28983
  },
28796
28984
  [isResizing]
28797
28985
  );
28798
- const loadFile = React66.useCallback(() => {
28986
+ const loadFile = React67.useCallback(() => {
28799
28987
  var _a2;
28800
28988
  (_a2 = fileInputRef.current) == null ? void 0 : _a2.click();
28801
28989
  }, []);
28802
- const close = React66.useCallback(() => {
28990
+ const close = React67.useCallback(() => {
28803
28991
  onClose == null ? void 0 : onClose();
28804
28992
  }, [onClose]);
28805
- const onFilePicked = React66.useCallback(
28993
+ const onFilePicked = React67.useCallback(
28806
28994
  async (e4) => {
28807
28995
  var _a2;
28808
28996
  const file = (_a2 = e4.target.files) == null ? void 0 : _a2[0];
@@ -28822,7 +29010,7 @@ var JsonEditor = React66.forwardRef(function JsonEditorEditor(props, ref) {
28822
29010
  },
28823
29011
  [callbacks, onRoot, route]
28824
29012
  );
28825
- const breadcrumb = React66.useMemo(() => {
29013
+ const breadcrumb = React67.useMemo(() => {
28826
29014
  const segs = splitPath(route);
28827
29015
  const parts = [];
28828
29016
  const rootNode = {
@@ -28849,7 +29037,7 @@ var JsonEditor = React66.forwardRef(function JsonEditorEditor(props, ref) {
28849
29037
  }) : prettifyLabel2(s3);
28850
29038
  parts.push({ path: acc, label });
28851
29039
  }
28852
- return /* @__PURE__ */ jsx("div", { className: "flex items-center gap-1 text-sm text-muted-foreground", children: parts.map((p2, idx) => /* @__PURE__ */ jsxs(React66.Fragment, { children: [
29040
+ return /* @__PURE__ */ jsx("div", { className: "flex items-center gap-1 text-sm text-muted-foreground", children: parts.map((p2, idx) => /* @__PURE__ */ jsxs(React67.Fragment, { children: [
28853
29041
  /* @__PURE__ */ jsx(
28854
29042
  Button2,
28855
29043
  {
@@ -28864,7 +29052,7 @@ var JsonEditor = React66.forwardRef(function JsonEditorEditor(props, ref) {
28864
29052
  idx < parts.length - 1 ? /* @__PURE__ */ jsx("span", { className: "opacity-60", children: "/" }) : null
28865
29053
  ] }, p2.path || "root")) });
28866
29054
  }, [route, routes, renderRouteLabel, setRoute]);
28867
- const routeTitle = React66.useMemo(() => {
29055
+ const routeTitle = React67.useMemo(() => {
28868
29056
  if (!route) return "Config.json";
28869
29057
  const key = lastSegment(route);
28870
29058
  if (renderRouteLabel) {
@@ -28880,7 +29068,7 @@ var JsonEditor = React66.forwardRef(function JsonEditorEditor(props, ref) {
28880
29068
  }
28881
29069
  return prettifyLabel2(key);
28882
29070
  }, [route, renderRouteLabel]);
28883
- const viewControls = React66.useMemo(() => {
29071
+ const viewControls = React67.useMemo(() => {
28884
29072
  return /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1 rounded-md border p-1", children: [
28885
29073
  /* @__PURE__ */ jsxs(
28886
29074
  Button2,
@@ -28923,7 +29111,7 @@ var JsonEditor = React66.forwardRef(function JsonEditorEditor(props, ref) {
28923
29111
  ) : null
28924
29112
  ] });
28925
29113
  }, [canViewRaw, setViewMode, viewMode]);
28926
- const header = React66.useMemo(() => {
29114
+ const header = React67.useMemo(() => {
28927
29115
  const ctx = {
28928
29116
  title: /* @__PURE__ */ jsx("div", { className: "min-w-0 flex items-center gap-2", children: /* @__PURE__ */ jsx("div", { className: "truncate font-medium", children: headerTitle != null ? headerTitle : "JSON Editor" }) }),
28929
29117
  viewControls,
@@ -28975,7 +29163,7 @@ var JsonEditor = React66.forwardRef(function JsonEditorEditor(props, ref) {
28975
29163
  showClose,
28976
29164
  viewControls
28977
29165
  ]);
28978
- const onVisualRoot = React66.useCallback(
29166
+ const onVisualRoot = React67.useCallback(
28979
29167
  (nextRoot, detail) => {
28980
29168
  onRoot(nextRoot, detail);
28981
29169
  const d = detail;
@@ -28987,14 +29175,14 @@ var JsonEditor = React66.forwardRef(function JsonEditorEditor(props, ref) {
28987
29175
  },
28988
29176
  [callbacks, onRoot, route]
28989
29177
  );
28990
- const onRawRoot = React66.useCallback(
29178
+ const onRawRoot = React67.useCallback(
28991
29179
  (nextRoot, detail) => {
28992
29180
  onRoot(nextRoot, detail);
28993
29181
  callCallbacks(callbacks, "edit-raw", nextRoot, { route, path: "" });
28994
29182
  },
28995
29183
  [callbacks, onRoot, route]
28996
29184
  );
28997
- React66.useImperativeHandle(
29185
+ React67.useImperativeHandle(
28998
29186
  ref,
28999
29187
  () => ({
29000
29188
  loadFile,
@@ -29116,7 +29304,7 @@ function triggerHeightCls(size) {
29116
29304
  return "h-9 text-sm";
29117
29305
  }
29118
29306
  }
29119
- var ShadcnJsonEditorVariant = React66.forwardRef(function ShadcnJsonEditorVariant2(props, ref) {
29307
+ var ShadcnJsonEditorVariant = React67.forwardRef(function ShadcnJsonEditorVariant2(props, ref) {
29120
29308
  var _a;
29121
29309
  const {
29122
29310
  mode = "popover",
@@ -29163,15 +29351,15 @@ var ShadcnJsonEditorVariant = React66.forwardRef(function ShadcnJsonEditorVarian
29163
29351
  extendBoxToControls = true,
29164
29352
  triggerClassName
29165
29353
  } = props;
29166
- const editorRef = React66.useRef(null);
29167
- const root = React66.useMemo(() => {
29354
+ const editorRef = React67.useRef(null);
29355
+ const root = React67.useMemo(() => {
29168
29356
  if ("root" in props) return props.root;
29169
29357
  const v2 = props.value;
29170
29358
  if (isPlainObject6(v2)) return v2;
29171
29359
  if (v2 == null) return {};
29172
29360
  return {};
29173
29361
  }, [props]);
29174
- const emitRoot = React66.useCallback(
29362
+ const emitRoot = React67.useCallback(
29175
29363
  (nextRoot, detail) => {
29176
29364
  var _a2, _b;
29177
29365
  if ("onRoot" in props) {
@@ -29182,9 +29370,9 @@ var ShadcnJsonEditorVariant = React66.forwardRef(function ShadcnJsonEditorVarian
29182
29370
  },
29183
29371
  [props]
29184
29372
  );
29185
- const [openInner, setOpenInner] = React66.useState(false);
29373
+ const [openInner, setOpenInner] = React67.useState(false);
29186
29374
  const open = openProp != null ? openProp : openInner;
29187
- const setOpen = React66.useCallback(
29375
+ const setOpen = React67.useCallback(
29188
29376
  (next) => {
29189
29377
  if (openProp === void 0) setOpenInner(next);
29190
29378
  onOpenChange == null ? void 0 : onOpenChange(next);
@@ -29192,11 +29380,11 @@ var ShadcnJsonEditorVariant = React66.forwardRef(function ShadcnJsonEditorVarian
29192
29380
  },
29193
29381
  [openProp, onOpenChange, onClose]
29194
29382
  );
29195
- const close = React66.useCallback(() => setOpen(false), [setOpen]);
29196
- const doOpen = React66.useCallback(() => setOpen(true), [setOpen]);
29197
- const toggle = React66.useCallback(() => setOpen(!open), [setOpen, open]);
29198
- const [expanded, setExpanded] = React66.useState();
29199
- React66.useImperativeHandle(
29383
+ const close = React67.useCallback(() => setOpen(false), [setOpen]);
29384
+ const doOpen = React67.useCallback(() => setOpen(true), [setOpen]);
29385
+ const toggle = React67.useCallback(() => setOpen(!open), [setOpen, open]);
29386
+ const [expanded, setExpanded] = React67.useState();
29387
+ React67.useImperativeHandle(
29200
29388
  ref,
29201
29389
  () => ({
29202
29390
  open: doOpen,
@@ -30593,19 +30781,19 @@ function createListerRuntime(opts) {
30593
30781
  selectors
30594
30782
  };
30595
30783
  }
30596
- var ListerContext = React66.createContext(
30784
+ var ListerContext = React67.createContext(
30597
30785
  null
30598
30786
  );
30599
30787
  function ListerProvider({
30600
30788
  children,
30601
30789
  ...opts
30602
30790
  }) {
30603
- const runtimeRef = React66.useRef(null);
30604
- const [, forceUpdate] = React66.useReducer((x2) => x2 + 1, 0);
30791
+ const runtimeRef = React67.useRef(null);
30792
+ const [, forceUpdate] = React67.useReducer((x2) => x2 + 1, 0);
30605
30793
  if (!runtimeRef.current) {
30606
30794
  runtimeRef.current = createListerRuntime(opts);
30607
30795
  }
30608
- React66.useEffect(() => {
30796
+ React67.useEffect(() => {
30609
30797
  const runtime = runtimeRef.current;
30610
30798
  if (!runtime) return;
30611
30799
  const unsub = runtime.subscribe(() => {
@@ -30616,7 +30804,7 @@ function ListerProvider({
30616
30804
  return /* @__PURE__ */ jsx(ListerContext.Provider, { value: runtimeRef.current, children });
30617
30805
  }
30618
30806
  function useListerRuntime() {
30619
- const ctx = React66.useContext(ListerContext);
30807
+ const ctx = React67.useContext(ListerContext);
30620
30808
  if (!ctx)
30621
30809
  throw new Error(
30622
30810
  "useListerRuntime must be used within <ListerProvider>"
@@ -30653,14 +30841,14 @@ function ListerFiltersButton(props) {
30653
30841
  const hasFilters = options.length > 0;
30654
30842
  if (!hasFilters) return null;
30655
30843
  const ctx = actions.getFilterCtx(id);
30656
- const [openGroups, setOpenGroups] = React66.useState(
30844
+ const [openGroups, setOpenGroups] = React67.useState(
30657
30845
  {}
30658
30846
  );
30659
30847
  const toggleGroup = (key) => {
30660
30848
  setOpenGroups((m2) => ({ ...m2, [key]: !m2[key] }));
30661
30849
  };
30662
30850
  const selectedIds = asArray(session == null ? void 0 : session.selectedFilterValues);
30663
- const appliedCount = React66.useMemo(() => {
30851
+ const appliedCount = React67.useMemo(() => {
30664
30852
  var _a2;
30665
30853
  const patch = (_a2 = session == null ? void 0 : session.filtersPatch) != null ? _a2 : {};
30666
30854
  return Object.keys(patch).length;
@@ -31171,7 +31359,7 @@ function normalizeIconifyInput(icon) {
31171
31359
  }
31172
31360
  function OptionIcon(props) {
31173
31361
  const { icon, className } = props;
31174
- if (React66.isValidElement(icon)) {
31362
+ if (React67.isValidElement(icon)) {
31175
31363
  return /* @__PURE__ */ jsx("span", { className: cn("shrink-0", className), children: icon });
31176
31364
  }
31177
31365
  if (isSvgSnippetString(icon)) {
@@ -31224,7 +31412,7 @@ function OptionList(props) {
31224
31412
  const options = (_a = selectors.visibleOptions(id)) != null ? _a : [];
31225
31413
  const draft = s3 == null ? void 0 : s3.draftValue;
31226
31414
  const isMulti = (s3 == null ? void 0 : s3.mode) === "multiple";
31227
- const isSelected = React66.useCallback(
31415
+ const isSelected = React67.useCallback(
31228
31416
  (value) => {
31229
31417
  if (isMulti) return Array.isArray(draft) && draft.includes(value);
31230
31418
  return draft === value;
@@ -31232,19 +31420,19 @@ function OptionList(props) {
31232
31420
  [draft, isMulti]
31233
31421
  );
31234
31422
  if (s3 == null ? void 0 : s3.errorCode) {
31235
- return /* @__PURE__ */ jsx("div", { className: cn("h-full min-h-0 overflow-y-auto", className), children: /* @__PURE__ */ jsxs("div", { className: "px-3 py-4 text-sm opacity-70", children: [
31423
+ return /* @__PURE__ */ jsx(ScrollArea, { className: cn("h-full min-h-0", className), children: /* @__PURE__ */ jsxs("div", { className: "px-3 py-4 text-sm opacity-70", children: [
31236
31424
  "Error: ",
31237
31425
  String(s3.errorCode)
31238
31426
  ] }) });
31239
31427
  }
31240
31428
  if ((s3 == null ? void 0 : s3.loading) && !((_b = s3 == null ? void 0 : s3.optionsList) == null ? void 0 : _b.length)) {
31241
- return /* @__PURE__ */ jsx("div", { className: cn("h-full min-h-0 overflow-y-auto", className), children: /* @__PURE__ */ jsx("div", { className: "px-3 py-4 text-sm opacity-70", children: "Loading\u2026" }) });
31429
+ return /* @__PURE__ */ jsx(ScrollArea, { className: cn("h-full min-h-0", className), children: /* @__PURE__ */ jsx("div", { className: "px-3 py-4 text-sm opacity-70", children: "Loading\u2026" }) });
31242
31430
  }
31243
31431
  if (!options.length) {
31244
- return /* @__PURE__ */ jsx("div", { className: cn("h-full min-h-0 overflow-y-auto", className), children: /* @__PURE__ */ jsx("div", { className: "px-3 py-4 text-sm opacity-70", children: "No results" }) });
31432
+ return /* @__PURE__ */ jsx(ScrollArea, { className: cn("h-full min-h-0", className), children: /* @__PURE__ */ jsx("div", { className: "px-3 py-4 text-sm opacity-70", children: "No results" }) });
31245
31433
  }
31246
31434
  return /* @__PURE__ */ jsx("div", { className: cn("h-full min-h-0 overflow-hidden", className), children: /* @__PURE__ */ jsx("div", { className: "h-full min-h-0 p-1", children: /* @__PURE__ */ jsx(
31247
- Virtuoso,
31435
+ VirtualScroll,
31248
31436
  {
31249
31437
  style: { height: "100%", minHeight: 0 },
31250
31438
  data: options,
@@ -31291,13 +31479,13 @@ function OptionList(props) {
31291
31479
  }
31292
31480
  function useLister() {
31293
31481
  const runtime = useListerRuntime();
31294
- const [state, setState] = React66.useState(runtime.getState());
31295
- React66.useEffect(() => {
31482
+ const [state, setState] = React67.useState(runtime.getState());
31483
+ React67.useEffect(() => {
31296
31484
  return runtime.subscribe(() => {
31297
31485
  setState(runtime.getState());
31298
31486
  });
31299
31487
  }, [runtime]);
31300
- return React66.useMemo(
31488
+ return React67.useMemo(
31301
31489
  () => ({
31302
31490
  api: runtime.api,
31303
31491
  actions: runtime.actions,
@@ -31440,7 +31628,7 @@ var defaultHost = {
31440
31628
  }
31441
31629
  };
31442
31630
 
31443
- // src/presets/shadcn-variants/lister/patch.ts
31631
+ // src/presets/shadcn/variants/lister/patch.ts
31444
31632
  function makeInlineDef(args) {
31445
31633
  const mapping = {
31446
31634
  optionValue: (raw, ctx) => pick(raw, args.optionValue, ctx),
@@ -31636,25 +31824,25 @@ function ListerInner(props) {
31636
31824
  panelClassName
31637
31825
  } = props;
31638
31826
  const { api, actions, store } = useLister();
31639
- const ownerKeyRef = React66.useRef(
31827
+ const ownerKeyRef = React67.useRef(
31640
31828
  (_a = openOptions == null ? void 0 : openOptions.ownerKey) != null ? _a : createRuntimeKey("lister_owner")
31641
31829
  );
31642
- React66.useEffect(() => {
31830
+ React67.useEffect(() => {
31643
31831
  const next = openOptions == null ? void 0 : openOptions.ownerKey;
31644
31832
  if (next) ownerKeyRef.current = next;
31645
31833
  }, [openOptions]);
31646
31834
  const session = findSessionByOwner(store, ownerKeyRef.current);
31647
31835
  const sessionId = session == null ? void 0 : session.sessionId;
31648
31836
  const isOpen = !!(session == null ? void 0 : session.isOpen);
31649
- const [selectedOptions, setSelectedOptions] = React66.useState(
31837
+ const [selectedOptions, setSelectedOptions] = React67.useState(
31650
31838
  null
31651
31839
  );
31652
- const openingRef = React66.useRef(false);
31840
+ const openingRef = React67.useRef(false);
31653
31841
  const mode = modeProp != null ? modeProp : "single";
31654
31842
  const confirm = mode === "multiple" ? true : !!confirmProp;
31655
31843
  const disabledTrigger = !!(disabled || readOnly);
31656
31844
  const hasValue = mode === "multiple" ? Array.isArray(value) && value.length > 0 : value != null && value !== "";
31657
- React66.useEffect(() => {
31845
+ React67.useEffect(() => {
31658
31846
  if (!hasValue) {
31659
31847
  setSelectedOptions(null);
31660
31848
  return;
@@ -31690,7 +31878,7 @@ function ListerInner(props) {
31690
31878
  alive = false;
31691
31879
  };
31692
31880
  }, [api, def, filters, mode, value, hasValue]);
31693
- const openSession = React66.useCallback(async () => {
31881
+ const openSession = React67.useCallback(async () => {
31694
31882
  var _a2, _b2;
31695
31883
  console.log(openingRef.current);
31696
31884
  if (disabledTrigger) return;
@@ -31731,7 +31919,7 @@ function ListerInner(props) {
31731
31919
  permissions,
31732
31920
  value
31733
31921
  ]);
31734
- const clear = React66.useCallback(() => {
31922
+ const clear = React67.useCallback(() => {
31735
31923
  if (disabledTrigger) return;
31736
31924
  onValue(void 0, {
31737
31925
  action: "clear",
@@ -31739,7 +31927,7 @@ function ListerInner(props) {
31739
31927
  });
31740
31928
  setSelectedOptions(null);
31741
31929
  }, [disabledTrigger, onValue]);
31742
- const display = React66.useMemo(() => {
31930
+ const display = React67.useMemo(() => {
31743
31931
  return buildLabelsFromOptions({
31744
31932
  mode,
31745
31933
  value,
@@ -31748,7 +31936,7 @@ function ListerInner(props) {
31748
31936
  maxItems: maxDisplayItems
31749
31937
  });
31750
31938
  }, [maxDisplayItems, mode, placeholder, selectedOptions, value]);
31751
- const triggerCtx = React66.useMemo(
31939
+ const triggerCtx = React67.useMemo(
31752
31940
  () => ({
31753
31941
  mode,
31754
31942
  value,
@@ -31874,7 +32062,7 @@ function ListerInner(props) {
31874
32062
  }
31875
32063
  );
31876
32064
  const userTriggerEl = renderTrigger ? renderTrigger(triggerCtx) : null;
31877
- const TriggerNode = renderTrigger && React66.isValidElement(userTriggerEl) ? React66.cloneElement(userTriggerEl, {
32065
+ const TriggerNode = renderTrigger && React67.isValidElement(userTriggerEl) ? React67.cloneElement(userTriggerEl, {
31878
32066
  className: cn(
31879
32067
  (_b = userTriggerEl.props) == null ? void 0 : _b.className,
31880
32068
  className
@@ -32100,11 +32288,11 @@ function ListerResolvedInner(props) {
32100
32288
  } = props;
32101
32289
  const isStandaloneInline = !def && endpoint != null;
32102
32290
  const shouldInferOptionValue = isStandaloneInline && optionValue === void 0;
32103
- const [resolvedOptionValue, setResolvedOptionValue] = React66.useState(() => optionValue != null ? optionValue : "id");
32104
- React66.useEffect(() => {
32291
+ const [resolvedOptionValue, setResolvedOptionValue] = React67.useState(() => optionValue != null ? optionValue : "id");
32292
+ React67.useEffect(() => {
32105
32293
  if (optionValue !== void 0) setResolvedOptionValue(optionValue);
32106
32294
  }, [optionValue]);
32107
- React66.useEffect(() => {
32295
+ React67.useEffect(() => {
32108
32296
  if (!shouldInferOptionValue) return;
32109
32297
  if (!endpoint) return;
32110
32298
  let alive = true;
@@ -32156,7 +32344,7 @@ function ListerResolvedInner(props) {
32156
32344
  const inlineExists = endpoint !== void 0 || method !== void 0 || buildRequest !== void 0 || selector !== void 0 || resolvedOptionValue !== void 0 || // ✅ KEEP THIS (your rule)
32157
32345
  optionLabel !== void 0 || optionIcon !== void 0 || optionDescription !== void 0 || optionDisabled !== void 0 || optionGroup !== void 0 || optionMeta !== void 0 || // ✅ include search override as "inline patch" signal too
32158
32346
  search !== void 0;
32159
- const finalDef = React66.useMemo(() => {
32347
+ const finalDef = React67.useMemo(() => {
32160
32348
  const baseDef = def;
32161
32349
  if (!inlineExists) return baseDef;
32162
32350
  if (!baseDef) {
@@ -32211,7 +32399,7 @@ function ListerResolvedInner(props) {
32211
32399
  optionMeta,
32212
32400
  search
32213
32401
  ]);
32214
- const openOptions = React66.useMemo(() => {
32402
+ const openOptions = React67.useMemo(() => {
32215
32403
  return {
32216
32404
  title,
32217
32405
  searchMode,
@@ -32465,24 +32653,24 @@ function IconPickerPanel(props) {
32465
32653
  maxRender = 2500
32466
32654
  } = props;
32467
32655
  const den = densityTokens2(density);
32468
- const groups = React66.useMemo(() => {
32656
+ const groups = React67.useMemo(() => {
32469
32657
  const base = groupsProp != null ? groupsProp : [];
32470
32658
  if (!(allowedGroupIds == null ? void 0 : allowedGroupIds.length)) return base;
32471
32659
  const allowed = base.filter((g2) => allowedGroupIds.includes(g2.id));
32472
32660
  return allowed.length ? allowed : base;
32473
32661
  }, [allowedGroupIds, groupsProp]);
32474
- const prefixes = React66.useMemo(() => {
32662
+ const prefixes = React67.useMemo(() => {
32475
32663
  return uniq2(groups.flatMap((g2) => g2.prefixes).filter(Boolean));
32476
32664
  }, [groups]);
32477
- const [selectedGroupId, setSelectedGroupId] = React66.useState(() => {
32665
+ const [selectedGroupId, setSelectedGroupId] = React67.useState(() => {
32478
32666
  var _a;
32479
32667
  return (_a = groups[0]) == null ? void 0 : _a.id;
32480
32668
  });
32481
- const [searchQuery, setSearchQuery] = React66.useState("");
32482
- const [loading, setLoading] = React66.useState(false);
32483
- const [error, setError] = React66.useState(null);
32484
- const [allIcons, setAllIcons] = React66.useState([]);
32485
- React66.useEffect(() => {
32669
+ const [searchQuery, setSearchQuery] = React67.useState("");
32670
+ const [loading, setLoading] = React67.useState(false);
32671
+ const [error, setError] = React67.useState(null);
32672
+ const [allIcons, setAllIcons] = React67.useState([]);
32673
+ React67.useEffect(() => {
32486
32674
  setSelectedGroupId((prev) => {
32487
32675
  var _a, _b;
32488
32676
  if (!prev) return (_a = groups[0]) == null ? void 0 : _a.id;
@@ -32490,7 +32678,7 @@ function IconPickerPanel(props) {
32490
32678
  return exists ? prev : (_b = groups[0]) == null ? void 0 : _b.id;
32491
32679
  });
32492
32680
  }, [groups]);
32493
- React66.useEffect(() => {
32681
+ React67.useEffect(() => {
32494
32682
  const controller = new AbortController();
32495
32683
  let mounted = true;
32496
32684
  const load = async () => {
@@ -32532,15 +32720,15 @@ function IconPickerPanel(props) {
32532
32720
  controller.abort();
32533
32721
  };
32534
32722
  }, [prefixes, url]);
32535
- const selectedGroup = React66.useMemo(
32723
+ const selectedGroup = React67.useMemo(
32536
32724
  () => groups.find((g2) => g2.id === selectedGroupId),
32537
32725
  [groups, selectedGroupId]
32538
32726
  );
32539
- const selectedGroupPrefixes = React66.useMemo(() => {
32727
+ const selectedGroupPrefixes = React67.useMemo(() => {
32540
32728
  if (!selectedGroup) return void 0;
32541
32729
  return new Set(selectedGroup.prefixes);
32542
32730
  }, [selectedGroup]);
32543
- const filteredIcons = React66.useMemo(() => {
32731
+ const filteredIcons = React67.useMemo(() => {
32544
32732
  const q2 = searchQuery.trim().toLowerCase();
32545
32733
  let list = allIcons;
32546
32734
  if (selectedGroupPrefixes) {
@@ -32556,7 +32744,7 @@ function IconPickerPanel(props) {
32556
32744
  }
32557
32745
  return list;
32558
32746
  }, [allIcons, searchQuery, selectedGroupPrefixes]);
32559
- const limitedIcons = React66.useMemo(() => {
32747
+ const limitedIcons = React67.useMemo(() => {
32560
32748
  if (filteredIcons.length <= maxRender) return filteredIcons;
32561
32749
  return filteredIcons.slice(0, maxRender);
32562
32750
  }, [filteredIcons, maxRender]);
@@ -32570,7 +32758,7 @@ function IconPickerPanel(props) {
32570
32758
  value.includes(iconName) ? value.filter((x2) => x2 !== iconName) : [...value, iconName]
32571
32759
  );
32572
32760
  };
32573
- const GridComponents = React66.useMemo(
32761
+ const GridComponents = React67.useMemo(
32574
32762
  () => ({
32575
32763
  List: (p2) => /* @__PURE__ */ jsx(
32576
32764
  "div",
@@ -32583,8 +32771,11 @@ function IconPickerPanel(props) {
32583
32771
  }),
32584
32772
  []
32585
32773
  );
32586
- const gridHeightStyle = React66.useMemo(
32587
- () => ({ height: "50vh" }),
32774
+ const gridHeightStyle = React67.useMemo(
32775
+ () => ({
32776
+ height: "320px",
32777
+ maxHeight: "calc(var(--radix-popper-available-height) - 140px)"
32778
+ }),
32588
32779
  []
32589
32780
  );
32590
32781
  return /* @__PURE__ */ jsxs("div", { className: "flex flex-col", children: [
@@ -32641,7 +32832,7 @@ function IconPickerPanel(props) {
32641
32832
  " results (refine search to narrow)."
32642
32833
  ] }),
32643
32834
  /* @__PURE__ */ jsx(
32644
- VirtuosoGrid,
32835
+ VirtualScrollGrid,
32645
32836
  {
32646
32837
  style: gridHeightStyle,
32647
32838
  data: limitedIcons,
@@ -32708,7 +32899,7 @@ function IconPickerPanel(props) {
32708
32899
  )
32709
32900
  ] });
32710
32901
  }
32711
- var ShadcnIconVariant = React66.forwardRef(function ShadcnIconVariant2(props, ref) {
32902
+ var ShadcnIconVariant = React67.forwardRef(function ShadcnIconVariant2(props, ref) {
32712
32903
  var _a, _b;
32713
32904
  const {
32714
32905
  value,
@@ -32760,12 +32951,12 @@ var ShadcnIconVariant = React66.forwardRef(function ShadcnIconVariant2(props, re
32760
32951
  const resolvedLeadingIcons = (leadingIcons == null ? void 0 : leadingIcons.length) ? leadingIcons : icon ? [icon] : [];
32761
32952
  const resolvedTrailingIcons = (trailingIcons == null ? void 0 : trailingIcons.length) ? trailingIcons : [];
32762
32953
  const hasExternalControls = !!leadingControl || !!trailingControl;
32763
- const [popoverOpen, setPopoverOpen] = React66.useState(false);
32764
- const selected = React66.useMemo(() => {
32954
+ const [popoverOpen, setPopoverOpen] = React67.useState(false);
32955
+ const selected = React67.useMemo(() => {
32765
32956
  if (multiple) return Array.isArray(value) ? value.filter(Boolean) : [];
32766
32957
  return typeof value === "string" && value ? [value] : [];
32767
32958
  }, [multiple, value]);
32768
- const emit = React66.useCallback(
32959
+ const emit = React67.useCallback(
32769
32960
  (nextArr, meta) => {
32770
32961
  var _a2, _b2;
32771
32962
  if (!onValue) return;
@@ -32787,7 +32978,7 @@ var ShadcnIconVariant = React66.forwardRef(function ShadcnIconVariant2(props, re
32787
32978
  },
32788
32979
  [multiple, onValue]
32789
32980
  );
32790
- const Chip = React66.useCallback(
32981
+ const Chip = React67.useCallback(
32791
32982
  ({ iconName }) => {
32792
32983
  var _a2;
32793
32984
  const short = (_a2 = iconName.split(":")[1]) != null ? _a2 : iconName;
@@ -32850,7 +33041,7 @@ var ShadcnIconVariant = React66.forwardRef(function ShadcnIconVariant2(props, re
32850
33041
  [chipHeightCls, den.chipGap, den.chipPad, emit, selected]
32851
33042
  );
32852
33043
  const selectedCount = selected.length;
32853
- const resolveButtonTriggerElement = React66.useCallback(() => {
33044
+ const resolveButtonTriggerElement = React67.useCallback(() => {
32854
33045
  const ctx = {
32855
33046
  open: popoverOpen,
32856
33047
  items: selected,
@@ -32880,7 +33071,7 @@ var ShadcnIconVariant = React66.forwardRef(function ShadcnIconVariant2(props, re
32880
33071
  );
32881
33072
  const child = el.props.children;
32882
33073
  if (selectedBadgePlacement === "end") {
32883
- return React66.cloneElement(el, {
33074
+ return React67.cloneElement(el, {
32884
33075
  className: nextClass,
32885
33076
  children: /* @__PURE__ */ jsxs("span", { className: "inline-flex items-center gap-2", children: [
32886
33077
  /* @__PURE__ */ jsx("span", { className: "min-w-0", children: child }),
@@ -32888,7 +33079,7 @@ var ShadcnIconVariant = React66.forwardRef(function ShadcnIconVariant2(props, re
32888
33079
  ] })
32889
33080
  });
32890
33081
  }
32891
- return React66.cloneElement(el, {
33082
+ return React67.cloneElement(el, {
32892
33083
  className: nextClass,
32893
33084
  children: /* @__PURE__ */ jsxs(Fragment, { children: [
32894
33085
  child,
@@ -32896,7 +33087,7 @@ var ShadcnIconVariant = React66.forwardRef(function ShadcnIconVariant2(props, re
32896
33087
  ] })
32897
33088
  });
32898
33089
  };
32899
- const withNoopDnD = (el) => React66.cloneElement(el, {
33090
+ const withNoopDnD = (el) => React67.cloneElement(el, {
32900
33091
  // keep event-merging parity with file variant (no-op, but safe)
32901
33092
  onDragOver: mergeHandlers2(
32902
33093
  el.props.onDragOver,
@@ -32913,7 +33104,7 @@ var ShadcnIconVariant = React66.forwardRef(function ShadcnIconVariant2(props, re
32913
33104
  }
32914
33105
  )
32915
33106
  });
32916
- if (React66.isValidElement(rawNode))
33107
+ if (React67.isValidElement(rawNode))
32917
33108
  return withNoopDnD(injectBadgeIntoElement(rawNode));
32918
33109
  const fallback = /* @__PURE__ */ jsxs(
32919
33110
  "button",
@@ -32961,7 +33152,7 @@ var ShadcnIconVariant = React66.forwardRef(function ShadcnIconVariant2(props, re
32961
33152
  triggerClassName
32962
33153
  ]);
32963
33154
  const COLLAPSE_LIMIT = 2;
32964
- const TriggerRegion = React66.useMemo(() => {
33155
+ const TriggerRegion = React67.useMemo(() => {
32965
33156
  const hasItems = selected.length > 0;
32966
33157
  const visibleItems = selected.slice(0, COLLAPSE_LIMIT);
32967
33158
  const hiddenCount = selected.length - COLLAPSE_LIMIT;
@@ -33049,11 +33240,11 @@ var ShadcnIconVariant = React66.forwardRef(function ShadcnIconVariant2(props, re
33049
33240
  PopoverContent,
33050
33241
  {
33051
33242
  className: cn(
33052
- "w-(--radix-popover-trigger-width) p-0 max-h-(--radix-popper-available-height)",
33243
+ "w-(--radix-popover-trigger-width) p-0 max-h-(--radix-popper-available-height) overflow-hidden flex flex-col",
33053
33244
  popoverClassName
33054
33245
  ),
33055
33246
  align: "start",
33056
- children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col", children: [
33247
+ children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col flex-1 min-h-0", children: [
33057
33248
  /* @__PURE__ */ jsxs(
33058
33249
  "div",
33059
33250
  {
@@ -33333,8 +33524,8 @@ function isFileLikeString(s3) {
33333
33524
  return FILE_EXT_RE.test(v2);
33334
33525
  }
33335
33526
  function useImagePreview(value) {
33336
- const [src, setSrc] = React66.useState(null);
33337
- React66.useEffect(() => {
33527
+ const [src, setSrc] = React67.useState(null);
33528
+ React67.useEffect(() => {
33338
33529
  if (!value) {
33339
33530
  setSrc(null);
33340
33531
  return;
@@ -33352,7 +33543,7 @@ var ImageThumb = ({ image }) => {
33352
33543
  const src = useImagePreview(image);
33353
33544
  return /* @__PURE__ */ jsx("div", { className: "relative flex h-8 w-8 shrink-0 items-center justify-center overflow-hidden rounded-sm border bg-muted/50", children: src ? /* @__PURE__ */ jsx("img", { src, alt: "", className: "h-full w-full object-cover" }) : /* @__PURE__ */ jsx(Image, { className: "h-4 w-4 text-muted-foreground/50" }) });
33354
33545
  };
33355
- var ShadcnImageIconVariant = React66.forwardRef(function ShadcnImageIconVariant2(props, ref) {
33546
+ var ShadcnImageIconVariant = React67.forwardRef(function ShadcnImageIconVariant2(props, ref) {
33356
33547
  const {
33357
33548
  value,
33358
33549
  onValue,
@@ -33409,7 +33600,7 @@ var ShadcnImageIconVariant = React66.forwardRef(function ShadcnImageIconVariant2
33409
33600
  const regIcon = getPaletteUtil("iconPicker");
33410
33601
  const resolvedIconUrl = iconUrl != null ? iconUrl : regIcon == null ? void 0 : regIcon.url;
33411
33602
  const resolvedIconGroups = iconGroups != null ? iconGroups : regIcon == null ? void 0 : regIcon.groups;
33412
- const effectiveIconGroups = React66.useMemo(() => {
33603
+ const effectiveIconGroups = React67.useMemo(() => {
33413
33604
  const groups = resolvedIconGroups != null ? resolvedIconGroups : DEFAULT_GROUPS;
33414
33605
  const allowed = toArray(allowedIconGroupIds).filter(
33415
33606
  Boolean
@@ -33418,7 +33609,7 @@ var ShadcnImageIconVariant = React66.forwardRef(function ShadcnImageIconVariant2
33418
33609
  const filtered = groups.filter((g2) => allowed.includes(g2.id));
33419
33610
  return filtered.length ? filtered : groups;
33420
33611
  }, [resolvedIconGroups, allowedIconGroupIds]);
33421
- const allowedIconPrefixes = React66.useMemo(() => {
33612
+ const allowedIconPrefixes = React67.useMemo(() => {
33422
33613
  var _a;
33423
33614
  const set = /* @__PURE__ */ new Set();
33424
33615
  for (const g2 of effectiveIconGroups) {
@@ -33426,7 +33617,7 @@ var ShadcnImageIconVariant = React66.forwardRef(function ShadcnImageIconVariant2
33426
33617
  }
33427
33618
  return set;
33428
33619
  }, [effectiveIconGroups]);
33429
- const isIconString = React66.useCallback(
33620
+ const isIconString = React67.useCallback(
33430
33621
  (raw) => {
33431
33622
  var _a;
33432
33623
  const s3 = raw.trim();
@@ -33438,7 +33629,7 @@ var ShadcnImageIconVariant = React66.forwardRef(function ShadcnImageIconVariant2
33438
33629
  },
33439
33630
  [allowedIconPrefixes]
33440
33631
  );
33441
- const normaliseImageIconInput = React66.useCallback(
33632
+ const normaliseImageIconInput = React67.useCallback(
33442
33633
  (v2) => {
33443
33634
  var _a;
33444
33635
  if (v2 == null) return null;
@@ -33479,25 +33670,25 @@ var ShadcnImageIconVariant = React66.forwardRef(function ShadcnImageIconVariant2
33479
33670
  const resolvedLeadingIcons = (leadingIcons == null ? void 0 : leadingIcons.length) ? leadingIcons : icon ? [icon] : [];
33480
33671
  const resolvedTrailingIcons = (trailingIcons == null ? void 0 : trailingIcons.length) ? trailingIcons : [];
33481
33672
  const hasExternalControls = !!leadingControl || !!trailingControl;
33482
- const [popoverOpen, setPopoverOpen] = React66.useState(false);
33483
- const [tab, setTab] = React66.useState("icon");
33484
- const list = React66.useMemo(() => {
33673
+ const [popoverOpen, setPopoverOpen] = React67.useState(false);
33674
+ const [tab, setTab] = React67.useState("icon");
33675
+ const list = React67.useMemo(() => {
33485
33676
  const raw = multiple ? toArray(value) : value != null ? [value] : [];
33486
33677
  return raw.map(normaliseImageIconInput).filter(Boolean);
33487
33678
  }, [multiple, normaliseImageIconInput, value]);
33488
- const iconsSelected = React66.useMemo(() => {
33679
+ const iconsSelected = React67.useMemo(() => {
33489
33680
  return list.filter((x2) => x2.kind === "icon").map((x2) => x2.icon);
33490
33681
  }, [list]);
33491
- const imagesSelected = React66.useMemo(() => {
33682
+ const imagesSelected = React67.useMemo(() => {
33492
33683
  return list.filter((x2) => x2.kind === "image");
33493
33684
  }, [list]);
33494
- const toFieldRaw = React66.useCallback(
33685
+ const toFieldRaw = React67.useCallback(
33495
33686
  (x2) => {
33496
33687
  return x2.kind === "icon" ? x2.icon : x2.image;
33497
33688
  },
33498
33689
  []
33499
33690
  );
33500
- const emit = React66.useCallback(
33691
+ const emit = React67.useCallback(
33501
33692
  (nextList, meta) => {
33502
33693
  var _a, _b;
33503
33694
  if (!onValue) return;
@@ -33526,7 +33717,7 @@ var ShadcnImageIconVariant = React66.forwardRef(function ShadcnImageIconVariant2
33526
33717
  emit(next, { action: "remove", index: idx });
33527
33718
  };
33528
33719
  const clearAll = () => emit([], { action: "clear" });
33529
- const Chip = React66.useCallback(
33720
+ const Chip = React67.useCallback(
33530
33721
  ({ item, index }) => {
33531
33722
  var _a, _b, _c;
33532
33723
  const label = item.kind === "icon" ? (_a = item.icon.split(":")[1]) != null ? _a : item.icon : (_c = item.name) != null ? _c : typeof item.image === "string" ? (_b = item.image.split(/[\\/]/).pop()) != null ? _b : item.image : item.image.name;
@@ -33577,7 +33768,7 @@ var ShadcnImageIconVariant = React66.forwardRef(function ShadcnImageIconVariant2
33577
33768
  [chipHeightCls, den.chipGap, den.chipPad, removeAt]
33578
33769
  );
33579
33770
  const selectedCount = list.length;
33580
- const resolveButtonTriggerElement = React66.useCallback(() => {
33771
+ const resolveButtonTriggerElement = React67.useCallback(() => {
33581
33772
  const ctx = {
33582
33773
  open: popoverOpen,
33583
33774
  items: list,
@@ -33607,7 +33798,7 @@ var ShadcnImageIconVariant = React66.forwardRef(function ShadcnImageIconVariant2
33607
33798
  );
33608
33799
  const child = el.props.children;
33609
33800
  if (selectedBadgePlacement === "end") {
33610
- return React66.cloneElement(el, {
33801
+ return React67.cloneElement(el, {
33611
33802
  className: nextClass,
33612
33803
  children: /* @__PURE__ */ jsxs("span", { className: "inline-flex items-center gap-2", children: [
33613
33804
  /* @__PURE__ */ jsx("span", { className: "min-w-0", children: child }),
@@ -33615,7 +33806,7 @@ var ShadcnImageIconVariant = React66.forwardRef(function ShadcnImageIconVariant2
33615
33806
  ] })
33616
33807
  });
33617
33808
  }
33618
- return React66.cloneElement(el, {
33809
+ return React67.cloneElement(el, {
33619
33810
  className: nextClass,
33620
33811
  children: /* @__PURE__ */ jsxs(Fragment, { children: [
33621
33812
  child,
@@ -33623,7 +33814,7 @@ var ShadcnImageIconVariant = React66.forwardRef(function ShadcnImageIconVariant2
33623
33814
  ] })
33624
33815
  });
33625
33816
  };
33626
- if (React66.isValidElement(rawNode))
33817
+ if (React67.isValidElement(rawNode))
33627
33818
  return injectBadgeIntoElement(rawNode);
33628
33819
  return /* @__PURE__ */ jsxs(
33629
33820
  "button",
@@ -33655,12 +33846,12 @@ var ShadcnImageIconVariant = React66.forwardRef(function ShadcnImageIconVariant2
33655
33846
  selectedCount,
33656
33847
  triggerClassName
33657
33848
  ]);
33658
- const [dragOver, setDragOver] = React66.useState(false);
33659
- const fileInputRef = React66.useRef(null);
33660
- const [imgSelectedIds, setImgSelectedIds] = React66.useState(
33849
+ const [dragOver, setDragOver] = React67.useState(false);
33850
+ const fileInputRef = React67.useRef(null);
33851
+ const [imgSelectedIds, setImgSelectedIds] = React67.useState(
33661
33852
  () => /* @__PURE__ */ new Set()
33662
33853
  );
33663
- const imageItems = React66.useMemo(() => {
33854
+ const imageItems = React67.useMemo(() => {
33664
33855
  return imagesSelected.map((x2) => normaliseFileLike2(x2.image));
33665
33856
  }, [imagesSelected]);
33666
33857
  const canAddMore = (nextCount) => {
@@ -33723,7 +33914,7 @@ var ShadcnImageIconVariant = React66.forwardRef(function ShadcnImageIconVariant2
33723
33914
  setImagesFromItems(next, { from });
33724
33915
  }
33725
33916
  };
33726
- const openImagePicker = React66.useCallback(async () => {
33917
+ const openImagePicker = React67.useCallback(async () => {
33727
33918
  var _a;
33728
33919
  if (isDisabled) return;
33729
33920
  const resolvedLoader = typeof customLoader == "function" ? customLoader : customLoader ? getPaletteUtil("customLoader") : void 0;
@@ -33748,14 +33939,14 @@ var ShadcnImageIconVariant = React66.forwardRef(function ShadcnImageIconVariant2
33748
33939
  }
33749
33940
  (_a = fileInputRef.current) == null ? void 0 : _a.click();
33750
33941
  }, [accept, customLoader, imageItems, isDisabled, mergeMode, multiple]);
33751
- const onDragOver = React66.useCallback(
33942
+ const onDragOver = React67.useCallback(
33752
33943
  (e4) => {
33753
33944
  e4.preventDefault();
33754
33945
  if (!isDisabled) setDragOver(true);
33755
33946
  },
33756
33947
  [isDisabled]
33757
33948
  );
33758
- const onDrop = React66.useCallback(
33949
+ const onDrop = React67.useCallback(
33759
33950
  (e4) => {
33760
33951
  var _a;
33761
33952
  e4.preventDefault();
@@ -33804,7 +33995,7 @@ var ShadcnImageIconVariant = React66.forwardRef(function ShadcnImageIconVariant2
33804
33995
  if (icons[0]) setPopoverOpen(false);
33805
33996
  }
33806
33997
  };
33807
- const TriggerRegion = React66.useMemo(() => {
33998
+ const TriggerRegion = React67.useMemo(() => {
33808
33999
  const COLLAPSE_LIMIT = 2;
33809
34000
  const hasItems = list.length > 0;
33810
34001
  const visibleItems = list.slice(0, COLLAPSE_LIMIT);
@@ -33899,11 +34090,11 @@ var ShadcnImageIconVariant = React66.forwardRef(function ShadcnImageIconVariant2
33899
34090
  PopoverContent,
33900
34091
  {
33901
34092
  className: cn(
33902
- "w-(--radix-popover-trigger-width) p-0 max-h-(--radix-popper-available-height)",
34093
+ "w-(--radix-popover-trigger-width) p-0 max-h-(--radix-popper-available-height) overflow-hidden flex flex-col",
33903
34094
  popoverClassName
33904
34095
  ),
33905
34096
  align: "start",
33906
- children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col", children: [
34097
+ children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col flex-1 min-h-0", children: [
33907
34098
  /* @__PURE__ */ jsxs(
33908
34099
  "div",
33909
34100
  {
@@ -34555,6 +34746,70 @@ function buildLayoutGraph(args) {
34555
34746
  }
34556
34747
  };
34557
34748
  }
34749
+ var ThemeContext = React67.createContext(null);
34750
+ function ThemeProvider({ theme, children }) {
34751
+ const outerTheme = React67.useContext(ThemeContext);
34752
+ const mergedTheme = React67.useMemo(() => {
34753
+ if (!outerTheme) return theme;
34754
+ return mergeThemes(outerTheme, theme);
34755
+ }, [outerTheme, theme]);
34756
+ return /* @__PURE__ */ jsx(ThemeContext.Provider, { value: mergedTheme, children });
34757
+ }
34758
+ var PaletteThemeProvider = ThemeProvider;
34759
+ function usePaletteTheme() {
34760
+ var _a;
34761
+ return (_a = React67.useContext(ThemeContext)) != null ? _a : {};
34762
+ }
34763
+ function mergeThemes(outer, inner) {
34764
+ var _a;
34765
+ const merged = {
34766
+ defaultProps: { ...outer.defaultProps, ...inner.defaultProps },
34767
+ classes: mergeClasses2(outer.classes, inner.classes),
34768
+ styles: mergeStyleObjects(outer.styles, inner.styles),
34769
+ variants: { ...outer.variants }
34770
+ };
34771
+ if (inner.variants) {
34772
+ for (const key of Object.keys(inner.variants)) {
34773
+ const variantKey = key;
34774
+ const innerVar = inner.variants[variantKey];
34775
+ const outerVar = (_a = outer.variants) == null ? void 0 : _a[variantKey];
34776
+ if (innerVar) {
34777
+ merged.variants[variantKey] = {
34778
+ defaultProps: { ...outerVar == null ? void 0 : outerVar.defaultProps, ...innerVar.defaultProps },
34779
+ classes: mergeClasses2(outerVar == null ? void 0 : outerVar.classes, innerVar.classes),
34780
+ styles: mergeStyleObjects(outerVar == null ? void 0 : outerVar.styles, innerVar.styles)
34781
+ };
34782
+ }
34783
+ }
34784
+ }
34785
+ return merged;
34786
+ }
34787
+ function mergeClasses2(outer, inner) {
34788
+ if (!outer && !inner) return void 0;
34789
+ if (!outer) return inner;
34790
+ if (!inner) return outer;
34791
+ const result = { ...outer };
34792
+ for (const key of Object.keys(inner)) {
34793
+ const outerVal = outer[key];
34794
+ const innerVal = inner[key];
34795
+ if (outerVal && innerVal) {
34796
+ result[key] = `${outerVal} ${innerVal}`;
34797
+ } else if (innerVal) {
34798
+ result[key] = innerVal;
34799
+ }
34800
+ }
34801
+ return result;
34802
+ }
34803
+ function mergeStyleObjects(outer, inner) {
34804
+ if (!outer && !inner) return void 0;
34805
+ if (!outer) return inner;
34806
+ if (!inner) return outer;
34807
+ const result = { ...outer };
34808
+ for (const key of Object.keys(inner)) {
34809
+ result[key] = { ...outer[key], ...inner[key] };
34810
+ }
34811
+ return result;
34812
+ }
34558
34813
  function normalizeValidateResult(result) {
34559
34814
  if (result === void 0 || result === null || result === true) return [];
34560
34815
  if (result === false) return ["Invalid value."];
@@ -34576,7 +34831,7 @@ function resolveLayoutForField(defaults, overrides, props, variantResolve) {
34576
34831
  ...overrides
34577
34832
  };
34578
34833
  }
34579
- function renderHelperSlot(root, slot, classes) {
34834
+ function renderHelperSlot(root, slot, classes, styles) {
34580
34835
  const placement = slot.placement;
34581
34836
  switch (slot.id) {
34582
34837
  case "sublabel":
@@ -34587,6 +34842,7 @@ function renderHelperSlot(root, slot, classes) {
34587
34842
  "text-xs text-muted-foreground",
34588
34843
  classes == null ? void 0 : classes.sublabel
34589
34844
  ),
34845
+ style: styles == null ? void 0 : styles.sublabel,
34590
34846
  "data-slot": `sublabel-${placement}`,
34591
34847
  children: slot.content
34592
34848
  },
@@ -34600,6 +34856,7 @@ function renderHelperSlot(root, slot, classes) {
34600
34856
  "text-xs text-muted-foreground",
34601
34857
  classes == null ? void 0 : classes.description
34602
34858
  ),
34859
+ style: styles == null ? void 0 : styles.description,
34603
34860
  "data-slot": `description-${placement}`,
34604
34861
  children: slot.content
34605
34862
  },
@@ -34613,6 +34870,7 @@ function renderHelperSlot(root, slot, classes) {
34613
34870
  "text-xs text-muted-foreground",
34614
34871
  classes == null ? void 0 : classes.helpText
34615
34872
  ),
34873
+ style: styles == null ? void 0 : styles.helpText,
34616
34874
  "data-slot": `helptext-${placement}`,
34617
34875
  children: slot.content
34618
34876
  },
@@ -34623,6 +34881,7 @@ function renderHelperSlot(root, slot, classes) {
34623
34881
  FieldError,
34624
34882
  {
34625
34883
  className: cn("text-xs text-destructive", classes == null ? void 0 : classes.error),
34884
+ style: styles == null ? void 0 : styles.error,
34626
34885
  "data-slot": `error-${placement}`,
34627
34886
  children: slot.content
34628
34887
  },
@@ -34633,6 +34892,7 @@ function renderHelperSlot(root, slot, classes) {
34633
34892
  "div",
34634
34893
  {
34635
34894
  className: cn("flex items-center gap-1", classes == null ? void 0 : classes.tags),
34895
+ style: (styles == null ? void 0 : styles.tags) || (styles == null ? void 0 : styles.tag),
34636
34896
  "data-slot": `tags-${placement}`,
34637
34897
  children: slot.content
34638
34898
  },
@@ -34642,29 +34902,66 @@ function renderHelperSlot(root, slot, classes) {
34642
34902
  return null;
34643
34903
  }
34644
34904
  }
34645
- function getClasses(props) {
34905
+ function getClasses(props, themeClasses, variantThemeClasses) {
34646
34906
  var _a;
34647
34907
  const legacy = (_a = props.classes) != null ? _a : {};
34648
34908
  return {
34649
- root: cn(legacy.root, props.className) || void 0,
34650
- labelRow: cn(legacy.labelRow, props.labelRowClassName) || void 0,
34651
- inlineRow: cn(legacy.inlineRow, props.inlineRowClassName) || void 0,
34652
- label: cn(legacy.label, props.labelClassName) || void 0,
34653
- sublabel: cn(legacy.sublabel, props.sublabelClassName) || void 0,
34654
- description: cn(legacy.description, props.descriptionClassName) || void 0,
34655
- helpText: cn(legacy.helpText, props.helpTextClassName) || void 0,
34656
- error: cn(legacy.error, props.errorClassName) || void 0,
34657
- group: cn(legacy.group, props.groupClassName) || void 0,
34658
- content: cn(legacy.content, props.contentClassName) || void 0,
34659
- variant: cn(legacy.variant, props.variantClassName) || void 0,
34660
- inlineInputColumn: cn(legacy.inlineInputColumn, props.inlineInputColumnClassName) || void 0,
34661
- inlineLabelColumn: cn(legacy.inlineLabelColumn, props.inlineLabelColumnClassName) || void 0,
34662
- required: cn(legacy.required, props.requiredClassName) || void 0,
34663
- tag: cn(legacy.tag, props.tagClassName) || void 0
34909
+ root: cn(themeClasses == null ? void 0 : themeClasses.root, variantThemeClasses == null ? void 0 : variantThemeClasses.root, legacy.root, props.className) || void 0,
34910
+ labelRow: cn(themeClasses == null ? void 0 : themeClasses.labelRow, variantThemeClasses == null ? void 0 : variantThemeClasses.labelRow, legacy.labelRow, props.labelRowClassName) || void 0,
34911
+ inlineRow: cn(themeClasses == null ? void 0 : themeClasses.inlineRow, variantThemeClasses == null ? void 0 : variantThemeClasses.inlineRow, legacy.inlineRow, props.inlineRowClassName) || void 0,
34912
+ label: cn(themeClasses == null ? void 0 : themeClasses.label, variantThemeClasses == null ? void 0 : variantThemeClasses.label, legacy.label, props.labelClassName) || void 0,
34913
+ sublabel: cn(themeClasses == null ? void 0 : themeClasses.sublabel, variantThemeClasses == null ? void 0 : variantThemeClasses.sublabel, legacy.sublabel, props.sublabelClassName) || void 0,
34914
+ description: cn(themeClasses == null ? void 0 : themeClasses.description, variantThemeClasses == null ? void 0 : variantThemeClasses.description, legacy.description, props.descriptionClassName) || void 0,
34915
+ helpText: cn(themeClasses == null ? void 0 : themeClasses.helpText, variantThemeClasses == null ? void 0 : variantThemeClasses.helpText, legacy.helpText, props.helpTextClassName) || void 0,
34916
+ error: cn(themeClasses == null ? void 0 : themeClasses.error, variantThemeClasses == null ? void 0 : variantThemeClasses.error, legacy.error, props.errorClassName) || void 0,
34917
+ group: cn(themeClasses == null ? void 0 : themeClasses.group, variantThemeClasses == null ? void 0 : variantThemeClasses.group, legacy.group, props.groupClassName) || void 0,
34918
+ content: cn(themeClasses == null ? void 0 : themeClasses.content, variantThemeClasses == null ? void 0 : variantThemeClasses.content, legacy.content, props.contentClassName) || void 0,
34919
+ variant: cn(themeClasses == null ? void 0 : themeClasses.variant, variantThemeClasses == null ? void 0 : variantThemeClasses.variant, legacy.variant, props.variantClassName) || void 0,
34920
+ inlineInputColumn: cn(themeClasses == null ? void 0 : themeClasses.inlineInputColumn, variantThemeClasses == null ? void 0 : variantThemeClasses.inlineInputColumn, legacy.inlineInputColumn, props.inlineInputColumnClassName) || void 0,
34921
+ inlineLabelColumn: cn(themeClasses == null ? void 0 : themeClasses.inlineLabelColumn, variantThemeClasses == null ? void 0 : variantThemeClasses.inlineLabelColumn, legacy.inlineLabelColumn, props.inlineLabelColumnClassName) || void 0,
34922
+ required: cn(themeClasses == null ? void 0 : themeClasses.required, variantThemeClasses == null ? void 0 : variantThemeClasses.required, legacy.required, props.requiredClassName) || void 0,
34923
+ tag: cn(themeClasses == null ? void 0 : themeClasses.tag, variantThemeClasses == null ? void 0 : variantThemeClasses.tag, legacy.tag, props.tagClassName) || void 0
34664
34924
  };
34665
34925
  }
34926
+ function mergeStyles(propsStyles, themeStyles, variantThemeStyles) {
34927
+ const keys = [
34928
+ "root",
34929
+ "labelRow",
34930
+ "inlineRow",
34931
+ "label",
34932
+ "sublabel",
34933
+ "description",
34934
+ "helpText",
34935
+ "error",
34936
+ "group",
34937
+ "content",
34938
+ "variant",
34939
+ "inlineInputColumn",
34940
+ "inlineLabelColumn",
34941
+ "required",
34942
+ "tag"
34943
+ ];
34944
+ const result = {};
34945
+ for (const key of keys) {
34946
+ const s3 = {
34947
+ ...themeStyles == null ? void 0 : themeStyles[key],
34948
+ ...variantThemeStyles == null ? void 0 : variantThemeStyles[key],
34949
+ ...propsStyles == null ? void 0 : propsStyles[key]
34950
+ };
34951
+ if (Object.keys(s3).length > 0) {
34952
+ result[key] = s3;
34953
+ }
34954
+ }
34955
+ return result;
34956
+ }
34666
34957
  function InputField(props) {
34667
- var _a, _b, _c, _d, _e, _f, _g;
34958
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m;
34959
+ const theme = usePaletteTheme();
34960
+ const mergedProps = {
34961
+ ...theme.defaultProps,
34962
+ ...props.variant ? (_b = (_a = theme.variants) == null ? void 0 : _a[props.variant]) == null ? void 0 : _b.defaultProps : void 0,
34963
+ ...props
34964
+ };
34668
34965
  const {
34669
34966
  variant,
34670
34967
  onSubmit,
@@ -34709,7 +35006,7 @@ function InputField(props) {
34709
35006
  classes: _depreciated,
34710
35007
  // Everything else → forwarded to variant
34711
35008
  ...rest
34712
- } = props;
35009
+ } = mergedProps;
34713
35010
  const module2 = getVariant(variant);
34714
35011
  if (!module2) {
34715
35012
  {
@@ -34721,8 +35018,13 @@ function InputField(props) {
34721
35018
  }
34722
35019
  return null;
34723
35020
  }
34724
- const classes = getClasses(props);
34725
- const layout = React66.useMemo(() => {
35021
+ const themeClasses = theme.classes;
35022
+ const themeVariantClasses = variant ? (_d = (_c = theme.variants) == null ? void 0 : _c[variant]) == null ? void 0 : _d.classes : void 0;
35023
+ const classes = getClasses(mergedProps, themeClasses, themeVariantClasses);
35024
+ const themeStyles = theme.styles;
35025
+ const themeVariantStyles = variant ? (_f = (_e = theme.variants) == null ? void 0 : _e[variant]) == null ? void 0 : _f.styles : void 0;
35026
+ const mergedStyles = mergeStyles(mergedProps.styles, themeStyles, themeVariantStyles);
35027
+ const layout = React67.useMemo(() => {
34726
35028
  var _a2;
34727
35029
  const defaultsLayout = (_a2 = module2.defaults) == null ? void 0 : _a2.layout;
34728
35030
  const overrides = {};
@@ -34753,7 +35055,7 @@ function InputField(props) {
34753
35055
  return resolveLayoutForField(
34754
35056
  defaultsLayout,
34755
35057
  overrides,
34756
- props,
35058
+ mergedProps,
34757
35059
  module2.resolveLayout
34758
35060
  );
34759
35061
  }, [
@@ -34766,11 +35068,11 @@ function InputField(props) {
34766
35068
  tagPlacement,
34767
35069
  inline,
34768
35070
  fullWidth,
34769
- props
35071
+ mergedProps
34770
35072
  ]);
34771
- const effectiveSize = (_c = size != null ? size : (_b = (_a = module2.defaults) == null ? void 0 : _a.layout) == null ? void 0 : _b.defaultSize) != null ? _c : void 0;
34772
- const effectiveDensity = (_f = density != null ? density : (_e = (_d = module2.defaults) == null ? void 0 : _d.layout) == null ? void 0 : _e.defaultDensity) != null ? _f : void 0;
34773
- const validate = React66.useCallback(
35073
+ const effectiveSize = (_i = size != null ? size : (_h = (_g = module2.defaults) == null ? void 0 : _g.layout) == null ? void 0 : _h.defaultSize) != null ? _i : void 0;
35074
+ const effectiveDensity = (_l = density != null ? density : (_k = (_j = module2.defaults) == null ? void 0 : _j.layout) == null ? void 0 : _k.defaultDensity) != null ? _l : void 0;
35075
+ const validate = React67.useCallback(
34774
35076
  (value2, field2, form, _report) => {
34775
35077
  var _a2;
34776
35078
  const messages = [];
@@ -34810,7 +35112,7 @@ function InputField(props) {
34810
35112
  const { value: fieldValue, setValue, error, ref, key } = field;
34811
35113
  const Variant = module2.Variant;
34812
35114
  const visualError = (errorText != null ? errorText : error) || "";
34813
- const handleValueChange = React66.useCallback(
35115
+ const handleValueChange = React67.useCallback(
34814
35116
  (next, detail) => {
34815
35117
  let finalValue = next;
34816
35118
  let defaultPrevented = false;
@@ -34859,7 +35161,7 @@ function InputField(props) {
34859
35161
  hostVariantClass,
34860
35162
  classes == null ? void 0 : classes.variant
34861
35163
  ) || void 0;
34862
- const tagsContent = React66.useMemo(() => {
35164
+ const tagsContent = React67.useMemo(() => {
34863
35165
  const items = tags != null ? tags : [];
34864
35166
  if (!items.length) return null;
34865
35167
  return /* @__PURE__ */ jsx(Fragment, { children: items.map((tag, index) => /* @__PURE__ */ jsxs(
@@ -34883,7 +35185,7 @@ function InputField(props) {
34883
35185
  index
34884
35186
  )) });
34885
35187
  }, [tags, classes == null ? void 0 : classes.tag]);
34886
- const graph = React66.useMemo(
35188
+ const graph = React67.useMemo(
34887
35189
  () => buildLayoutGraph({
34888
35190
  layout,
34889
35191
  sublabel,
@@ -34927,15 +35229,15 @@ function InputField(props) {
34927
35229
  "[container-type:normal]",
34928
35230
  "[container-name:none]",
34929
35231
  classes == null ? void 0 : classes.group
34930
- ) : (_g = classes == null ? void 0 : classes.group) != null ? _g : void 0;
35232
+ ) : (_m = classes == null ? void 0 : classes.group) != null ? _m : void 0;
34931
35233
  const inlineFieldContentClass = isCompactInline ? cn("flex-none w-auto", classes == null ? void 0 : classes.content) : cn("w-full", classes == null ? void 0 : classes.content);
34932
- const inlineInputColumn = /* @__PURE__ */ jsxs("div", { className: inlineInputColClass, children: [
35234
+ const inlineInputColumn = /* @__PURE__ */ jsxs("div", { className: inlineInputColClass, style: mergedStyles.inlineInputColumn, children: [
34933
35235
  graph.getSlotsFor("input", "above").render(
34934
35236
  (slots) => slots.map(
34935
- (slot) => renderHelperSlot("input", slot, classes)
35237
+ (slot) => renderHelperSlot("input", slot, classes, mergedStyles)
34936
35238
  )
34937
35239
  ),
34938
- /* @__PURE__ */ jsx(FieldGroup, { className: inlineFieldGroupClass, children: /* @__PURE__ */ jsx(FieldContent, { className: inlineFieldContentClass, children: /* @__PURE__ */ jsx(
35240
+ /* @__PURE__ */ jsx(FieldGroup, { className: inlineFieldGroupClass, style: mergedStyles.group, children: /* @__PURE__ */ jsx(FieldContent, { className: inlineFieldContentClass, style: mergedStyles.content, children: /* @__PURE__ */ jsx(
34939
35241
  Variant,
34940
35242
  {
34941
35243
  ...rest,
@@ -34949,19 +35251,20 @@ function InputField(props) {
34949
35251
  readOnly: readOnlyProp,
34950
35252
  size: effectiveSize,
34951
35253
  density: effectiveDensity,
34952
- className: mergedVariantClass
35254
+ className: mergedVariantClass,
35255
+ style: { ...mergedStyles.variant, ...rest.style }
34953
35256
  }
34954
35257
  ) }) }),
34955
35258
  graph.getSlotsFor("input", "below").render(
34956
35259
  (slots) => slots.map(
34957
- (slot) => renderHelperSlot("input", slot, classes)
35260
+ (slot) => renderHelperSlot("input", slot, classes, mergedStyles)
34958
35261
  )
34959
35262
  )
34960
35263
  ] });
34961
- const inlineLabelColumn = inlineLabelSide === "hidden" || !hasAnyLabelBlockContent ? null : /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col gap-0", inlineLabelColClass), children: [
35264
+ const inlineLabelColumn = inlineLabelSide === "hidden" || !hasAnyLabelBlockContent ? null : /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col gap-0", inlineLabelColClass), style: mergedStyles.inlineLabelColumn, children: [
34962
35265
  graph.getSlotsFor("label", "above").render(
34963
35266
  (slots) => slots.map(
34964
- (slot) => renderHelperSlot("label", slot, classes)
35267
+ (slot) => renderHelperSlot("label", slot, classes, mergedStyles)
34965
35268
  )
34966
35269
  ),
34967
35270
  hasLabelRowContent && /* @__PURE__ */ jsxs(
@@ -34971,10 +35274,11 @@ function InputField(props) {
34971
35274
  "flex items-baseline justify-between gap-1",
34972
35275
  classes == null ? void 0 : classes.labelRow
34973
35276
  ),
35277
+ style: mergedStyles.labelRow,
34974
35278
  "data-slot": "label-row",
34975
35279
  children: [
34976
35280
  graph.getSlotsFor("label", "left").render((slots) => /* @__PURE__ */ jsx("div", { className: "flex items-baseline gap-1", children: slots.map(
34977
- (slot) => renderHelperSlot("label", slot, classes)
35281
+ (slot) => renderHelperSlot("label", slot, classes, mergedStyles)
34978
35282
  ) })),
34979
35283
  label && /* @__PURE__ */ jsx(
34980
35284
  FieldLabel,
@@ -34984,6 +35288,7 @@ function InputField(props) {
34984
35288
  "text-sm font-medium text-foreground",
34985
35289
  classes == null ? void 0 : classes.label
34986
35290
  ),
35291
+ style: mergedStyles.label,
34987
35292
  children: /* @__PURE__ */ jsxs(FieldTitle, { children: [
34988
35293
  label,
34989
35294
  " ",
@@ -34994,6 +35299,7 @@ function InputField(props) {
34994
35299
  "text-destructive",
34995
35300
  classes == null ? void 0 : classes.required
34996
35301
  ),
35302
+ style: mergedStyles.required,
34997
35303
  children: "*"
34998
35304
  }
34999
35305
  ) : ""
@@ -35001,14 +35307,14 @@ function InputField(props) {
35001
35307
  }
35002
35308
  ),
35003
35309
  graph.getSlotsFor("label", "right").render((slots) => /* @__PURE__ */ jsx("div", { className: "flex items-baseline gap-1", children: slots.map(
35004
- (slot) => renderHelperSlot("label", slot, classes)
35310
+ (slot) => renderHelperSlot("label", slot, classes, mergedStyles)
35005
35311
  ) }))
35006
35312
  ]
35007
35313
  }
35008
35314
  ),
35009
35315
  graph.getSlotsFor("label", "below").render(
35010
35316
  (slots) => slots.map(
35011
- (slot) => renderHelperSlot("label", slot, classes)
35317
+ (slot) => renderHelperSlot("label", slot, classes, mergedStyles)
35012
35318
  )
35013
35319
  )
35014
35320
  ] });
@@ -35022,14 +35328,14 @@ function InputField(props) {
35022
35328
  hasStackedLabelBlock && hasLabelRowContent && "mt-0.5",
35023
35329
  classes == null ? void 0 : classes.group
35024
35330
  );
35025
- const Element = contain ? "div" : React66.Fragment;
35331
+ const Element = contain ? "div" : React67.Fragment;
35026
35332
  const attrs = (a3 = "l") => contain ? a3 === "l" ? { className: "p-4 border-b border-input" } : { className: "px-4 pt-2 pb-4" } : {};
35027
35333
  return /* @__PURE__ */ jsx(
35028
35334
  Field,
35029
35335
  {
35030
35336
  className: rootClassName,
35031
35337
  ref,
35032
- style,
35338
+ style: { ...mergedStyles.root, ...style },
35033
35339
  "data-variant": String(variant),
35034
35340
  "data-label-placement": lp != null ? lp : void 0,
35035
35341
  "data-sublabel-placement": sp != null ? sp : void 0,
@@ -35041,7 +35347,7 @@ function InputField(props) {
35041
35347
  "data-fullwidth": layout.fullWidth ? "true" : "false",
35042
35348
  children: isInline ? (
35043
35349
  // INLINE MODE: label + control on the same row
35044
- /* @__PURE__ */ jsx("div", { className: inlineRowClassName, "data-slot": "inline-row", children: inlineLabelSide === "right" ? /* @__PURE__ */ jsxs(Fragment, { children: [
35350
+ /* @__PURE__ */ jsx("div", { className: inlineRowClassName, style: mergedStyles.inlineRow, "data-slot": "inline-row", children: inlineLabelSide === "right" ? /* @__PURE__ */ jsxs(Fragment, { children: [
35045
35351
  inlineInputColumn,
35046
35352
  inlineLabelColumn
35047
35353
  ] }) : inlineLabelSide === "hidden" ? /* @__PURE__ */ jsx(Fragment, { children: inlineInputColumn }) : /* @__PURE__ */ jsxs(Fragment, { children: [
@@ -35057,7 +35363,8 @@ function InputField(props) {
35057
35363
  (slot) => renderHelperSlot(
35058
35364
  "label",
35059
35365
  slot,
35060
- classes
35366
+ classes,
35367
+ mergedStyles
35061
35368
  )
35062
35369
  )
35063
35370
  ),
@@ -35068,13 +35375,15 @@ function InputField(props) {
35068
35375
  "flex items-baseline justify-between gap-1",
35069
35376
  classes == null ? void 0 : classes.labelRow
35070
35377
  ),
35378
+ style: mergedStyles.labelRow,
35071
35379
  "data-slot": "label-row",
35072
35380
  children: [
35073
35381
  graph.getSlotsFor("label", "left").render((slots) => /* @__PURE__ */ jsx("div", { className: "flex items-baseline gap-1", children: slots.map(
35074
35382
  (slot) => renderHelperSlot(
35075
35383
  "label",
35076
35384
  slot,
35077
- classes
35385
+ classes,
35386
+ mergedStyles
35078
35387
  )
35079
35388
  ) })),
35080
35389
  label && /* @__PURE__ */ jsx(
@@ -35085,6 +35394,7 @@ function InputField(props) {
35085
35394
  "text-sm font-medium text-foreground",
35086
35395
  classes == null ? void 0 : classes.label
35087
35396
  ),
35397
+ style: mergedStyles.label,
35088
35398
  children: /* @__PURE__ */ jsxs(FieldTitle, { children: [
35089
35399
  label,
35090
35400
  " ",
@@ -35095,6 +35405,7 @@ function InputField(props) {
35095
35405
  "text-destructive",
35096
35406
  classes == null ? void 0 : classes.required
35097
35407
  ),
35408
+ style: mergedStyles.required,
35098
35409
  children: "*"
35099
35410
  }
35100
35411
  ) : ""
@@ -35105,7 +35416,8 @@ function InputField(props) {
35105
35416
  (slot) => renderHelperSlot(
35106
35417
  "label",
35107
35418
  slot,
35108
- classes
35419
+ classes,
35420
+ mergedStyles
35109
35421
  )
35110
35422
  ) }))
35111
35423
  ]
@@ -35116,7 +35428,8 @@ function InputField(props) {
35116
35428
  (slot) => renderHelperSlot(
35117
35429
  "label",
35118
35430
  slot,
35119
- classes
35431
+ classes,
35432
+ mergedStyles
35120
35433
  )
35121
35434
  )
35122
35435
  )
@@ -35124,13 +35437,14 @@ function InputField(props) {
35124
35437
  /* @__PURE__ */ jsxs(Element, { ...attrs("i"), children: [
35125
35438
  graph.getSlotsFor("input", "above").render(
35126
35439
  (slots) => slots.map(
35127
- (slot) => renderHelperSlot("input", slot, classes)
35440
+ (slot) => renderHelperSlot("input", slot, classes, mergedStyles)
35128
35441
  )
35129
35442
  ),
35130
- /* @__PURE__ */ jsx(FieldGroup, { className: stackedGroupClassName, children: /* @__PURE__ */ jsx(
35443
+ /* @__PURE__ */ jsx(FieldGroup, { className: stackedGroupClassName, style: mergedStyles.group, children: /* @__PURE__ */ jsx(
35131
35444
  FieldContent,
35132
35445
  {
35133
35446
  className: cn("w-full", classes == null ? void 0 : classes.content),
35447
+ style: mergedStyles.content,
35134
35448
  children: /* @__PURE__ */ jsx(
35135
35449
  Variant,
35136
35450
  {
@@ -35145,14 +35459,15 @@ function InputField(props) {
35145
35459
  readOnly: readOnlyProp,
35146
35460
  size: effectiveSize,
35147
35461
  density: effectiveDensity,
35148
- className: mergedVariantClass
35462
+ className: mergedVariantClass,
35463
+ style: { ...mergedStyles.variant, ...rest.style }
35149
35464
  }
35150
35465
  )
35151
35466
  }
35152
35467
  ) }),
35153
35468
  graph.getSlotsFor("input", "below").render(
35154
35469
  (slots) => slots.map(
35155
- (slot) => renderHelperSlot("input", slot, classes)
35470
+ (slot) => renderHelperSlot("input", slot, classes, mergedStyles)
35156
35471
  )
35157
35472
  )
35158
35473
  ] })
@@ -35453,6 +35768,6 @@ lucide-react/dist/esm/lucide-react.js:
35453
35768
  *)
35454
35769
  */
35455
35770
 
35456
- export { CoreProvider, ErrorStrip, CoreShell as Form, CoreRoot as FormRoot, Input, InputField, InputMask, InputNumber, Textarea, createAxiosAdapter, createInertiaAdapter, getAdapter, getPaletteUtil, getVariant, hasAdapter, listVariants, localAdapter, mapErrorBag, mapZodError, registerAdapter, registerAllAdapters, registerAxiosAdapter, registerCoreVariants, registerInertiaAdapter, registerKnownAdapter, registerPaletteUtil, registerVariant, useButton, useCore, useCoreContext, useField, useOptionalField };
35771
+ export { CoreProvider, ErrorStrip, CoreShell as Form, CoreRoot as FormRoot, Input, InputField, InputMask, InputNumber, PaletteThemeProvider, Textarea, ThemeProvider, createAxiosAdapter, createInertiaAdapter, getAdapter, getPaletteUtil, getVariant, hasAdapter, listVariants, localAdapter, mapErrorBag, mapZodError, registerAdapter, registerAllAdapters, registerAxiosAdapter, registerCoreVariants, registerInertiaAdapter, registerKnownAdapter, registerPaletteUtil, registerVariant, useButton, useCore, useCoreContext, useField, useOptionalField, usePaletteTheme };
35457
35772
  //# sourceMappingURL=index.mjs.map
35458
35773
  //# sourceMappingURL=index.mjs.map