@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/{core-DQr56obQ.d.mts → core-ClbfF5iz.d.mts} +4 -0
- package/dist/{core-Cg8uXa6v.d.ts → core-Uq5vFxo3.d.ts} +4 -0
- package/dist/extra.d.mts +2 -2
- package/dist/extra.d.ts +2 -2
- package/dist/extra.js +1030 -775
- package/dist/extra.js.map +1 -1
- package/dist/extra.mjs +953 -698
- package/dist/extra.mjs.map +1 -1
- package/dist/index.d.mts +40 -3
- package/dist/index.d.ts +40 -3
- package/dist/index.js +1069 -751
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +990 -675
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as
|
|
2
|
-
import
|
|
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 =
|
|
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
|
|
5612
|
-
|
|
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 =
|
|
9180
|
-
const bucketRef =
|
|
9181
|
-
const uncaughtRef =
|
|
9182
|
-
const errorsRef =
|
|
9183
|
-
const buttonRef =
|
|
9184
|
-
const activeButtonNameRef =
|
|
9185
|
-
const [hasUncaughtErrors, setHasUncaughtErrors] =
|
|
9186
|
-
const originalRef =
|
|
9187
|
-
const propsRef =
|
|
9188
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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] =
|
|
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
|
-
|
|
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 =
|
|
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] =
|
|
10290
|
-
const [disabled, setDisabledState] =
|
|
10290
|
+
const [loading, setLoadingState] = React67.useState(false);
|
|
10291
|
+
const [disabled, setDisabledState] = React67.useState(
|
|
10291
10292
|
Boolean(disabledProp)
|
|
10292
10293
|
);
|
|
10293
|
-
const ref =
|
|
10294
|
-
const optsRef =
|
|
10295
|
-
|
|
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 =
|
|
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
|
-
|
|
10329
|
+
React67.useEffect(() => {
|
|
10329
10330
|
if (!buttonRef.current) return;
|
|
10330
10331
|
buttonRef.current.name = name;
|
|
10331
10332
|
}, [name]);
|
|
10332
|
-
|
|
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 =
|
|
10400
|
-
const stateRef =
|
|
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] =
|
|
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
|
-
|
|
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] =
|
|
10418
|
+
const [error, setErrorState] = React67.useState(
|
|
10418
10419
|
stateRef.current.error
|
|
10419
10420
|
);
|
|
10420
|
-
const [loading, setLoadingState] =
|
|
10421
|
+
const [loading, setLoadingState] = React67.useState(
|
|
10421
10422
|
stateRef.current.loading
|
|
10422
10423
|
);
|
|
10423
|
-
const [required, setRequired] =
|
|
10424
|
+
const [required, setRequired] = React67.useState(
|
|
10424
10425
|
Boolean(requiredProp)
|
|
10425
10426
|
);
|
|
10426
|
-
const [disabled, setDisabled] =
|
|
10427
|
+
const [disabled, setDisabled] = React67.useState(
|
|
10427
10428
|
Boolean(disabledProp)
|
|
10428
10429
|
);
|
|
10429
|
-
const [readOnly, setReadOnly] =
|
|
10430
|
+
const [readOnly, setReadOnly] = React67.useState(
|
|
10430
10431
|
Boolean(readOnlyProp)
|
|
10431
10432
|
);
|
|
10432
|
-
const id =
|
|
10433
|
-
const keyRef =
|
|
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 =
|
|
10442
|
+
const bindIdRef = React67.useRef(
|
|
10442
10443
|
rawBindId && rawBindId.trim() || keyRef.current
|
|
10443
10444
|
);
|
|
10444
|
-
const fieldRef =
|
|
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
|
-
|
|
10548
|
+
React67.useEffect(() => {
|
|
10548
10549
|
setRequired(requiredProp);
|
|
10549
10550
|
if (field) {
|
|
10550
10551
|
field.required = requiredProp;
|
|
10551
10552
|
}
|
|
10552
10553
|
}, [requiredProp, field]);
|
|
10553
|
-
|
|
10554
|
+
React67.useEffect(() => {
|
|
10554
10555
|
setDisabled(disabledProp);
|
|
10555
10556
|
}, [disabledProp]);
|
|
10556
|
-
|
|
10557
|
+
React67.useEffect(() => {
|
|
10557
10558
|
setReadOnly(readOnlyProp);
|
|
10558
10559
|
}, [readOnlyProp]);
|
|
10559
|
-
|
|
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 =
|
|
10675
|
-
const [valueState, setValueState] =
|
|
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
|
-
|
|
10679
|
+
React67.useEffect(() => {
|
|
10679
10680
|
if (isControlled) {
|
|
10680
10681
|
setValueState(valueProp);
|
|
10681
10682
|
}
|
|
10682
10683
|
}, [isControlled, valueProp]);
|
|
10683
|
-
const [error, setErrorState] =
|
|
10684
|
-
const [loading, setLoadingState] =
|
|
10685
|
-
const [required, setRequired] =
|
|
10686
|
-
const [disabled, setDisabled] =
|
|
10687
|
-
const [readOnly, setReadOnly] =
|
|
10688
|
-
const originalRef =
|
|
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 =
|
|
10692
|
-
const keyRef =
|
|
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 =
|
|
10703
|
+
const bindIdRef = React67.useRef("");
|
|
10703
10704
|
if (!bindIdRef.current) {
|
|
10704
10705
|
bindIdRef.current = rawBindId && rawBindId.trim() || keyRef.current;
|
|
10705
10706
|
}
|
|
10706
|
-
|
|
10707
|
+
React67.useEffect(() => {
|
|
10707
10708
|
setRequired(requiredProp);
|
|
10708
10709
|
}, [requiredProp]);
|
|
10709
|
-
|
|
10710
|
+
React67.useEffect(() => {
|
|
10710
10711
|
setDisabled(disabledProp);
|
|
10711
10712
|
}, [disabledProp]);
|
|
10712
|
-
|
|
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 =
|
|
10811
|
-
|
|
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 =
|
|
10819
|
-
|
|
10820
|
-
const props =
|
|
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 =
|
|
10836
|
-
const firstNonMaskPos =
|
|
10837
|
-
const lastRequiredNonMaskPos =
|
|
10838
|
-
const tests =
|
|
10839
|
-
const buffer =
|
|
10840
|
-
const len =
|
|
10841
|
-
const oldVal =
|
|
10842
|
-
const focus =
|
|
10843
|
-
const focusText =
|
|
10844
|
-
const isValueChecked =
|
|
10845
|
-
const partialPosition =
|
|
10846
|
-
const defaultBuffer =
|
|
10847
|
-
const caretTimeoutId =
|
|
10848
|
-
const androidChrome =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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
|
-
|
|
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
|
-
|
|
11317
|
+
React67.useEffect(() => {
|
|
11317
11318
|
if (!elementRef.current) return;
|
|
11318
11319
|
}, []);
|
|
11319
|
-
|
|
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 =
|
|
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 =
|
|
11531
|
-
|
|
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 =
|
|
11553
|
-
const trailingIconsRef =
|
|
11554
|
-
const [leadingIconsWidth, setLeadingIconsWidth] =
|
|
11555
|
-
const [trailingIconsWidth, setTrailingIconsWidth] =
|
|
11556
|
-
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
12410
|
-
|
|
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 =
|
|
12431
|
+
const locale = React67.useMemo(
|
|
12426
12432
|
() => resolveLocale(props.locale),
|
|
12427
12433
|
[props.locale]
|
|
12428
12434
|
);
|
|
12429
|
-
const decimalSep =
|
|
12435
|
+
const decimalSep = React67.useMemo(
|
|
12430
12436
|
() => getDecimalSeparator(locale),
|
|
12431
12437
|
[locale]
|
|
12432
12438
|
);
|
|
12433
|
-
const allowMinus =
|
|
12439
|
+
const allowMinus = React67.useMemo(
|
|
12434
12440
|
() => props.min == null || props.min < 0,
|
|
12435
12441
|
[props.min]
|
|
12436
12442
|
);
|
|
12437
|
-
const fmtOptions =
|
|
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 =
|
|
12459
|
-
|
|
12460
|
-
const [display, setDisplay] =
|
|
12461
|
-
const [focused, setFocused] =
|
|
12462
|
-
const toEditableFromNumber =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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
|
-
|
|
12563
|
+
React67.useEffect(() => {
|
|
12558
12564
|
var _a2;
|
|
12559
12565
|
syncFromPropsValue((_a2 = props.value) != null ? _a2 : null);
|
|
12560
12566
|
}, []);
|
|
12561
|
-
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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] =
|
|
13270
|
-
|
|
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] =
|
|
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
|
-
|
|
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] =
|
|
13327
|
+
const [local, setLocal] = React67.useState(
|
|
13303
13328
|
() => computeDisplayFromValue(value, country, keepCharPositions)
|
|
13304
13329
|
);
|
|
13305
|
-
|
|
13330
|
+
React67.useEffect(() => {
|
|
13306
13331
|
setLocal(computeDisplayFromValue(value, country, keepCharPositions));
|
|
13307
13332
|
}, [value, country, keepCharPositions]);
|
|
13308
|
-
const handleInputChange =
|
|
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 =
|
|
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 =
|
|
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] =
|
|
13443
|
-
const [pickerOpen, setPickerOpen] =
|
|
13444
|
-
|
|
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 =
|
|
13472
|
+
const pickerRef = React67.useRef(null);
|
|
13448
13473
|
const effectiveColor = normalizeColorForPicker(local || value);
|
|
13449
13474
|
const showError = Boolean(error);
|
|
13450
|
-
const openSystemPicker =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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] =
|
|
13855
|
+
const [revealed, setRevealed] = React67.useState(
|
|
13831
13856
|
Boolean(defaultRevealed)
|
|
13832
13857
|
);
|
|
13833
|
-
const normalizedStrength =
|
|
13858
|
+
const normalizedStrength = React67.useMemo(
|
|
13834
13859
|
() => normalizeStrengthOptions(strengthMeter),
|
|
13835
13860
|
[strengthMeter]
|
|
13836
13861
|
);
|
|
13837
|
-
const effectiveRuleDefinitions =
|
|
13862
|
+
const effectiveRuleDefinitions = React67.useMemo(
|
|
13838
13863
|
() => getMergedRuleDefinitions(ruleDefinitions),
|
|
13839
13864
|
[ruleDefinitions]
|
|
13840
13865
|
);
|
|
13841
|
-
const meterState =
|
|
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 =
|
|
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 =
|
|
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
|
|
16533
|
+
return React67__default.createElement("button", { ...props });
|
|
16509
16534
|
}
|
|
16510
16535
|
function CaptionLabel(props) {
|
|
16511
|
-
return
|
|
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
|
-
|
|
16542
|
+
React67__default.createElement(
|
|
16518
16543
|
"svg",
|
|
16519
16544
|
{ className, width: size, height: size, viewBox: "0 0 24 24" },
|
|
16520
|
-
orientation === "up" &&
|
|
16521
|
-
orientation === "down" &&
|
|
16522
|
-
orientation === "left" &&
|
|
16523
|
-
orientation === "right" &&
|
|
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
|
|
16554
|
+
return React67__default.createElement("td", { ...tdProps });
|
|
16530
16555
|
}
|
|
16531
16556
|
function DayButton(props) {
|
|
16532
16557
|
const { day, modifiers, ...buttonProps } = props;
|
|
16533
|
-
const ref =
|
|
16534
|
-
|
|
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
|
|
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
|
|
16627
|
+
return React67__default.createElement(
|
|
16603
16628
|
"span",
|
|
16604
16629
|
{ "data-disabled": selectProps.disabled, className: classNames[UI.DropdownRoot] },
|
|
16605
|
-
|
|
16606
|
-
|
|
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
|
-
|
|
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
|
|
16640
|
+
return React67__default.createElement("div", { ...props });
|
|
16616
16641
|
}
|
|
16617
16642
|
function Footer(props) {
|
|
16618
|
-
return
|
|
16643
|
+
return React67__default.createElement("div", { ...props });
|
|
16619
16644
|
}
|
|
16620
16645
|
function Month(props) {
|
|
16621
16646
|
const { calendarMonth, displayIndex, ...divProps } = props;
|
|
16622
|
-
return
|
|
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
|
|
16651
|
+
return React67__default.createElement("div", { ...divProps });
|
|
16627
16652
|
}
|
|
16628
16653
|
function MonthGrid(props) {
|
|
16629
|
-
return
|
|
16654
|
+
return React67__default.createElement("table", { ...props });
|
|
16630
16655
|
}
|
|
16631
16656
|
function Months(props) {
|
|
16632
|
-
return
|
|
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
|
|
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
|
|
16686
|
+
return React67__default.createElement(
|
|
16662
16687
|
"nav",
|
|
16663
16688
|
{ ...navProps },
|
|
16664
|
-
|
|
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
|
-
|
|
16692
|
+
React67__default.createElement(components.Chevron, { disabled: previousMonth ? void 0 : true, className: classNames[UI.Chevron], orientation: "left" })
|
|
16668
16693
|
),
|
|
16669
|
-
|
|
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
|
-
|
|
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
|
|
16703
|
+
return React67__default.createElement(components.Button, { ...props });
|
|
16679
16704
|
}
|
|
16680
16705
|
function Option(props) {
|
|
16681
|
-
return
|
|
16706
|
+
return React67__default.createElement("option", { ...props });
|
|
16682
16707
|
}
|
|
16683
16708
|
function PreviousMonthButton(props) {
|
|
16684
16709
|
const { components } = useDayPicker();
|
|
16685
|
-
return
|
|
16710
|
+
return React67__default.createElement(components.Button, { ...props });
|
|
16686
16711
|
}
|
|
16687
16712
|
function Root3(props) {
|
|
16688
16713
|
const { rootRef, ...rest } = props;
|
|
16689
|
-
return
|
|
16714
|
+
return React67__default.createElement("div", { ...rest, ref: rootRef });
|
|
16690
16715
|
}
|
|
16691
16716
|
function Select2(props) {
|
|
16692
|
-
return
|
|
16717
|
+
return React67__default.createElement("select", { ...props });
|
|
16693
16718
|
}
|
|
16694
16719
|
function Week(props) {
|
|
16695
16720
|
const { week, ...trProps } = props;
|
|
16696
|
-
return
|
|
16721
|
+
return React67__default.createElement("tr", { ...trProps });
|
|
16697
16722
|
}
|
|
16698
16723
|
function Weekday(props) {
|
|
16699
|
-
return
|
|
16724
|
+
return React67__default.createElement("th", { ...props });
|
|
16700
16725
|
}
|
|
16701
16726
|
function Weekdays(props) {
|
|
16702
|
-
return
|
|
16727
|
+
return React67__default.createElement(
|
|
16703
16728
|
"thead",
|
|
16704
16729
|
{ "aria-hidden": true },
|
|
16705
|
-
|
|
16730
|
+
React67__default.createElement("tr", { ...props })
|
|
16706
16731
|
);
|
|
16707
16732
|
}
|
|
16708
16733
|
function WeekNumber(props) {
|
|
16709
16734
|
const { week, ...thProps } = props;
|
|
16710
|
-
return
|
|
16735
|
+
return React67__default.createElement("th", { ...thProps });
|
|
16711
16736
|
}
|
|
16712
16737
|
function WeekNumberHeader(props) {
|
|
16713
|
-
return
|
|
16738
|
+
return React67__default.createElement("th", { ...props });
|
|
16714
16739
|
}
|
|
16715
16740
|
function Weeks(props) {
|
|
16716
|
-
return
|
|
16741
|
+
return React67__default.createElement("tbody", { ...props });
|
|
16717
16742
|
}
|
|
16718
16743
|
function YearsDropdown(props) {
|
|
16719
16744
|
const { components } = useDayPicker();
|
|
16720
|
-
return
|
|
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
|
|
18232
|
+
return React67__default.createElement(
|
|
18208
18233
|
dayPickerContext.Provider,
|
|
18209
18234
|
{ value: contextValue },
|
|
18210
|
-
|
|
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
|
-
|
|
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 &&
|
|
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
|
|
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 &&
|
|
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
|
-
|
|
18257
|
+
React67__default.createElement(components.Chevron, { disabled: previousMonth ? void 0 : true, className: classNames[UI.Chevron], orientation: props.dir === "rtl" ? "right" : "left" })
|
|
18233
18258
|
),
|
|
18234
|
-
|
|
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" ?
|
|
18239
|
-
const yearControl = captionLayout === "dropdown" || captionLayout === "dropdown-years" ?
|
|
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
|
-
|
|
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
|
-
) :
|
|
18256
|
-
navLayout === "around" && !props.hideNavigation && displayIndex === numberOfMonths - 1 &&
|
|
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
|
-
|
|
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 &&
|
|
18262
|
-
|
|
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 &&
|
|
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 &&
|
|
18269
|
-
weekdays.map((weekday) =>
|
|
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
|
-
|
|
18272
|
-
return
|
|
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 &&
|
|
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
|
|
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 &&
|
|
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 =
|
|
18544
|
-
|
|
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 =
|
|
18646
|
+
const minuteOptions = React67.useMemo(
|
|
18622
18647
|
() => buildMinuteOptions(minuteStep),
|
|
18623
18648
|
[minuteStep]
|
|
18624
18649
|
);
|
|
18625
|
-
const secondOptions =
|
|
18650
|
+
const secondOptions = React67.useMemo(
|
|
18626
18651
|
() => buildSecondOptions(secondStep),
|
|
18627
18652
|
[secondStep]
|
|
18628
18653
|
);
|
|
18629
|
-
const hourOptions =
|
|
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 =
|
|
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] =
|
|
19026
|
+
const [internalOpen, setInternalOpen] = React67.useState(false);
|
|
19002
19027
|
const isControlledOpen = open !== void 0;
|
|
19003
19028
|
const currentOpen = isControlledOpen ? !!open : internalOpen;
|
|
19004
|
-
const handleOpenChange =
|
|
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 =
|
|
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] =
|
|
19026
|
-
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
19366
|
-
|
|
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 =
|
|
19388
|
-
const trailingIconsRef =
|
|
19389
|
-
const [leadingIconsWidth, setLeadingIconsWidth] =
|
|
19390
|
-
const [trailingIconsWidth, setTrailingIconsWidth] =
|
|
19391
|
-
const measureIconWidths =
|
|
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
|
-
|
|
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] =
|
|
19462
|
+
const [rowHeight, setRowHeight] = React67.useState(null);
|
|
19438
19463
|
const baseMinRows = Math.max(minRowsProp != null ? minRowsProp : 1, 1);
|
|
19439
|
-
const [rows, setRows] =
|
|
19440
|
-
|
|
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 =
|
|
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
|
-
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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
|
-
|
|
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 =
|
|
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] =
|
|
19787
|
-
const emitChange =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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
|
|
19898
|
-
visibleChips = chips.slice(0,
|
|
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(
|
|
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
|
|
19958
|
-
|
|
19959
|
-
{
|
|
19960
|
-
|
|
19961
|
-
|
|
19962
|
-
"
|
|
19963
|
-
|
|
19964
|
-
|
|
19965
|
-
|
|
19966
|
-
|
|
19967
|
-
|
|
19968
|
-
|
|
19969
|
-
|
|
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(
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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] =
|
|
21780
|
-
const [query, setQuery] =
|
|
21781
|
-
const items =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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
|
-
|
|
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(
|
|
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 =
|
|
22314
|
-
const [visibleCount, setVisibleCount] =
|
|
22315
|
-
const [moreOpen, setMoreOpen] =
|
|
22316
|
-
|
|
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(
|
|
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
|
|
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 =
|
|
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] =
|
|
22535
|
-
const [query, setQuery] =
|
|
22536
|
-
const { items, keyedItems } =
|
|
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 =
|
|
22793
|
+
const selectedValues = React67.useMemo(
|
|
22572
22794
|
() => new Set(value != null ? value : []),
|
|
22573
22795
|
[value]
|
|
22574
22796
|
);
|
|
22575
|
-
const selectedItems =
|
|
22797
|
+
const selectedItems = React67.useMemo(
|
|
22576
22798
|
() => items.filter((it) => selectedValues.has(it.value)),
|
|
22577
22799
|
[items, selectedValues]
|
|
22578
22800
|
);
|
|
22579
|
-
const filteredItems =
|
|
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 =
|
|
22806
|
+
const selectableItems = React67.useMemo(
|
|
22585
22807
|
() => items.filter((it) => !it.disabled),
|
|
22586
22808
|
[items]
|
|
22587
22809
|
);
|
|
22588
|
-
const allSelectableValues =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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
|
-
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
23817
|
-
const [dialogOpen, setDialogOpen] =
|
|
23818
|
-
const [editingIndex, setEditingIndex] =
|
|
23819
|
-
const [draft, setDraft] =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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] =
|
|
23897
|
-
const openList =
|
|
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 =
|
|
23902
|
-
const leftRef =
|
|
23903
|
-
const moreMeasureRef =
|
|
23904
|
-
const chipRefs =
|
|
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] =
|
|
23910
|
-
const recomputeVisible =
|
|
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
|
-
|
|
24181
|
+
React67.useLayoutEffect(() => {
|
|
23960
24182
|
recomputeVisible();
|
|
23961
24183
|
}, [recomputeVisible, items, size, density, showValue]);
|
|
23962
|
-
|
|
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(
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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] =
|
|
24554
|
-
const [query, setQuery] =
|
|
24775
|
+
const [open, setOpen] = React67.useState(false);
|
|
24776
|
+
const [query, setQuery] = React67.useState("");
|
|
24555
24777
|
const isDisabled = disabled || readOnly;
|
|
24556
|
-
const d =
|
|
24778
|
+
const d = React67.useMemo(
|
|
24557
24779
|
() => densityClasses(density),
|
|
24558
24780
|
[density]
|
|
24559
24781
|
);
|
|
24560
|
-
const tree =
|
|
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 =
|
|
24596
|
-
const computedInitialExpanded =
|
|
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] =
|
|
24829
|
+
const [expanded, setExpanded] = React67.useState(
|
|
24608
24830
|
computedInitialExpanded
|
|
24609
24831
|
);
|
|
24610
|
-
|
|
24832
|
+
React67.useEffect(() => {
|
|
24611
24833
|
setExpanded(computedInitialExpanded);
|
|
24612
24834
|
}, [computedInitialExpanded]);
|
|
24613
|
-
const toggleExpanded =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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
|
|
24763
|
-
"placeholder:text-muted-foreground
|
|
24764
|
-
|
|
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
|
-
|
|
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 =
|
|
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 (
|
|
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
|
-
|
|
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(
|
|
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(
|
|
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] =
|
|
25314
|
-
|
|
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 =
|
|
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 =
|
|
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] =
|
|
25397
|
-
const [selectedIds, setSelectedIds] =
|
|
25584
|
+
const [dragOver, setDragOver] = React67.useState(false);
|
|
25585
|
+
const [selectedIds, setSelectedIds] = React67.useState(
|
|
25398
25586
|
() => /* @__PURE__ */ new Set()
|
|
25399
25587
|
);
|
|
25400
|
-
const [popoverOpen, setPopoverOpen] =
|
|
25401
|
-
const fileInputRef =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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] =
|
|
25552
|
-
const [isOpen, setIsOpen] =
|
|
25553
|
-
|
|
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 =
|
|
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
|
|
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
|
|
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) =>
|
|
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 (
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
26717
|
-
const editorRef =
|
|
26718
|
-
const formatRef =
|
|
26719
|
-
const onValueRef =
|
|
26720
|
-
const syncingRef =
|
|
26721
|
-
const loadedRef =
|
|
26722
|
-
const lastContentRef =
|
|
26723
|
-
const [autoDark, setAutoDark] =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 =
|
|
27575
|
+
const directChildPaths = React67.useMemo(() => {
|
|
27388
27576
|
return getDirectChildPaths(route, allPaths);
|
|
27389
27577
|
}, [route, allPaths]);
|
|
27390
|
-
const rows =
|
|
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 =
|
|
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 =
|
|
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] =
|
|
28856
|
+
const [inner, setInner] = React67.useState(defaultValue);
|
|
28669
28857
|
const isControlled = value !== void 0;
|
|
28670
28858
|
const state = isControlled ? value : inner;
|
|
28671
|
-
const setState =
|
|
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
|
-
|
|
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 =
|
|
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 =
|
|
28911
|
+
const routes = React67.useMemo(
|
|
28724
28912
|
() => buildJsonRoutes(root, void 0, filters),
|
|
28725
28913
|
[root, filters]
|
|
28726
28914
|
);
|
|
28727
|
-
const allPaths =
|
|
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 =
|
|
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
|
-
|
|
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 =
|
|
28754
|
-
const contentRef =
|
|
28755
|
-
const [rawWidth, setRawWidth] =
|
|
28756
|
-
const [isResizing, setIsResizing] =
|
|
28757
|
-
const startXRef =
|
|
28758
|
-
const startWRef =
|
|
28759
|
-
const clampRawWidth =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
28986
|
+
const loadFile = React67.useCallback(() => {
|
|
28799
28987
|
var _a2;
|
|
28800
28988
|
(_a2 = fileInputRef.current) == null ? void 0 : _a2.click();
|
|
28801
28989
|
}, []);
|
|
28802
|
-
const close =
|
|
28990
|
+
const close = React67.useCallback(() => {
|
|
28803
28991
|
onClose == null ? void 0 : onClose();
|
|
28804
28992
|
}, [onClose]);
|
|
28805
|
-
const onFilePicked =
|
|
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 =
|
|
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(
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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
|
-
|
|
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 =
|
|
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 =
|
|
29167
|
-
const root =
|
|
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 =
|
|
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] =
|
|
29373
|
+
const [openInner, setOpenInner] = React67.useState(false);
|
|
29186
29374
|
const open = openProp != null ? openProp : openInner;
|
|
29187
|
-
const setOpen =
|
|
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 =
|
|
29196
|
-
const doOpen =
|
|
29197
|
-
const toggle =
|
|
29198
|
-
const [expanded, setExpanded] =
|
|
29199
|
-
|
|
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 =
|
|
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 =
|
|
30604
|
-
const [, forceUpdate] =
|
|
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
|
-
|
|
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 =
|
|
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] =
|
|
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 =
|
|
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 (
|
|
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 =
|
|
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(
|
|
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(
|
|
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(
|
|
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
|
-
|
|
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] =
|
|
31295
|
-
|
|
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
|
|
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
|
|
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 =
|
|
31827
|
+
const ownerKeyRef = React67.useRef(
|
|
31640
31828
|
(_a = openOptions == null ? void 0 : openOptions.ownerKey) != null ? _a : createRuntimeKey("lister_owner")
|
|
31641
31829
|
);
|
|
31642
|
-
|
|
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] =
|
|
31837
|
+
const [selectedOptions, setSelectedOptions] = React67.useState(
|
|
31650
31838
|
null
|
|
31651
31839
|
);
|
|
31652
|
-
const openingRef =
|
|
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
|
-
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 &&
|
|
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] =
|
|
32104
|
-
|
|
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
|
-
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
32662
|
+
const prefixes = React67.useMemo(() => {
|
|
32475
32663
|
return uniq2(groups.flatMap((g2) => g2.prefixes).filter(Boolean));
|
|
32476
32664
|
}, [groups]);
|
|
32477
|
-
const [selectedGroupId, setSelectedGroupId] =
|
|
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] =
|
|
32482
|
-
const [loading, setLoading] =
|
|
32483
|
-
const [error, setError] =
|
|
32484
|
-
const [allIcons, setAllIcons] =
|
|
32485
|
-
|
|
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
|
-
|
|
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 =
|
|
32723
|
+
const selectedGroup = React67.useMemo(
|
|
32536
32724
|
() => groups.find((g2) => g2.id === selectedGroupId),
|
|
32537
32725
|
[groups, selectedGroupId]
|
|
32538
32726
|
);
|
|
32539
|
-
const selectedGroupPrefixes =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
32587
|
-
() => ({
|
|
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
|
-
|
|
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 =
|
|
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] =
|
|
32764
|
-
const selected =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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
|
|
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
|
|
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) =>
|
|
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 (
|
|
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 =
|
|
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] =
|
|
33337
|
-
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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] =
|
|
33483
|
-
const [tab, setTab] =
|
|
33484
|
-
const list =
|
|
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 =
|
|
33679
|
+
const iconsSelected = React67.useMemo(() => {
|
|
33489
33680
|
return list.filter((x2) => x2.kind === "icon").map((x2) => x2.icon);
|
|
33490
33681
|
}, [list]);
|
|
33491
|
-
const imagesSelected =
|
|
33682
|
+
const imagesSelected = React67.useMemo(() => {
|
|
33492
33683
|
return list.filter((x2) => x2.kind === "image");
|
|
33493
33684
|
}, [list]);
|
|
33494
|
-
const toFieldRaw =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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
|
|
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
|
|
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 (
|
|
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] =
|
|
33659
|
-
const fileInputRef =
|
|
33660
|
-
const [imgSelectedIds, setImgSelectedIds] =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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
|
-
} =
|
|
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
|
|
34725
|
-
const
|
|
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
|
-
|
|
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
|
-
|
|
35071
|
+
mergedProps
|
|
34770
35072
|
]);
|
|
34771
|
-
const effectiveSize = (
|
|
34772
|
-
const effectiveDensity = (
|
|
34773
|
-
const validate =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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
|
-
) : (
|
|
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" :
|
|
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
|