@timeax/form-palette 0.2.1 → 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 +976 -721
- package/dist/extra.js.map +1 -1
- package/dist/extra.mjs +899 -644
- 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 +1015 -697
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +936 -621
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/extra.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as
|
|
2
|
-
import
|
|
1
|
+
import * as React76 from 'react';
|
|
2
|
+
import React76__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 { createPortal } from 'react-dom';
|
|
5
5
|
import Draggable from 'react-draggable';
|
|
@@ -10,7 +10,7 @@ import { Slot } from '@radix-ui/react-slot';
|
|
|
10
10
|
import * as SwitchPrimitive from '@radix-ui/react-switch';
|
|
11
11
|
import * as RadioGroupPrimitive from '@radix-ui/react-radio-group';
|
|
12
12
|
import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
|
|
13
|
-
import * as
|
|
13
|
+
import * as ScrollAreaPrimitive2 from '@radix-ui/react-scroll-area';
|
|
14
14
|
import { Virtuoso, VirtuosoGrid } from 'react-virtuoso';
|
|
15
15
|
import * as SliderPrimitive from '@radix-ui/react-slider';
|
|
16
16
|
import * as DialogPrimitive from '@radix-ui/react-dialog';
|
|
@@ -6628,19 +6628,19 @@ function createListerRuntime(opts) {
|
|
|
6628
6628
|
selectors
|
|
6629
6629
|
};
|
|
6630
6630
|
}
|
|
6631
|
-
var ListerContext =
|
|
6631
|
+
var ListerContext = React76.createContext(
|
|
6632
6632
|
null
|
|
6633
6633
|
);
|
|
6634
6634
|
function ListerProvider({
|
|
6635
6635
|
children,
|
|
6636
6636
|
...opts
|
|
6637
6637
|
}) {
|
|
6638
|
-
const runtimeRef =
|
|
6639
|
-
const [, forceUpdate] =
|
|
6638
|
+
const runtimeRef = React76.useRef(null);
|
|
6639
|
+
const [, forceUpdate] = React76.useReducer((x2) => x2 + 1, 0);
|
|
6640
6640
|
if (!runtimeRef.current) {
|
|
6641
6641
|
runtimeRef.current = createListerRuntime(opts);
|
|
6642
6642
|
}
|
|
6643
|
-
|
|
6643
|
+
React76.useEffect(() => {
|
|
6644
6644
|
const runtime = runtimeRef.current;
|
|
6645
6645
|
if (!runtime) return;
|
|
6646
6646
|
const unsub = runtime.subscribe(() => {
|
|
@@ -6651,7 +6651,7 @@ function ListerProvider({
|
|
|
6651
6651
|
return /* @__PURE__ */ jsx(ListerContext.Provider, { value: runtimeRef.current, children });
|
|
6652
6652
|
}
|
|
6653
6653
|
function useListerRuntime() {
|
|
6654
|
-
const ctx =
|
|
6654
|
+
const ctx = React76.useContext(ListerContext);
|
|
6655
6655
|
if (!ctx)
|
|
6656
6656
|
throw new Error(
|
|
6657
6657
|
"useListerRuntime must be used within <ListerProvider>"
|
|
@@ -9730,17 +9730,17 @@ var focusEl = (el) => {
|
|
|
9730
9730
|
}
|
|
9731
9731
|
};
|
|
9732
9732
|
function useUpdateEffect(effect, deps) {
|
|
9733
|
-
const mounted =
|
|
9734
|
-
|
|
9733
|
+
const mounted = React76.useRef(false);
|
|
9734
|
+
React76.useEffect(() => {
|
|
9735
9735
|
if (mounted.current) {
|
|
9736
9736
|
return effect();
|
|
9737
9737
|
}
|
|
9738
9738
|
mounted.current = true;
|
|
9739
9739
|
}, deps);
|
|
9740
9740
|
}
|
|
9741
|
-
var InputMask =
|
|
9742
|
-
|
|
9743
|
-
const props =
|
|
9741
|
+
var InputMask = React76.memo(
|
|
9742
|
+
React76.forwardRef((inProps, ref) => {
|
|
9743
|
+
const props = React76.useMemo(
|
|
9744
9744
|
() => ({
|
|
9745
9745
|
autoClear: true,
|
|
9746
9746
|
autoFocus: false,
|
|
@@ -9755,20 +9755,20 @@ var InputMask = React74.memo(
|
|
|
9755
9755
|
}),
|
|
9756
9756
|
[inProps]
|
|
9757
9757
|
);
|
|
9758
|
-
const elementRef =
|
|
9759
|
-
const firstNonMaskPos =
|
|
9760
|
-
const lastRequiredNonMaskPos =
|
|
9761
|
-
const tests =
|
|
9762
|
-
const buffer =
|
|
9763
|
-
const len =
|
|
9764
|
-
const oldVal =
|
|
9765
|
-
const focus =
|
|
9766
|
-
const focusText =
|
|
9767
|
-
const isValueChecked =
|
|
9768
|
-
const partialPosition =
|
|
9769
|
-
const defaultBuffer =
|
|
9770
|
-
const caretTimeoutId =
|
|
9771
|
-
const androidChrome =
|
|
9758
|
+
const elementRef = React76.useRef(null);
|
|
9759
|
+
const firstNonMaskPos = React76.useRef(null);
|
|
9760
|
+
const lastRequiredNonMaskPos = React76.useRef(0);
|
|
9761
|
+
const tests = React76.useRef([]);
|
|
9762
|
+
const buffer = React76.useRef([]);
|
|
9763
|
+
const len = React76.useRef(0);
|
|
9764
|
+
const oldVal = React76.useRef(null);
|
|
9765
|
+
const focus = React76.useRef(false);
|
|
9766
|
+
const focusText = React76.useRef(null);
|
|
9767
|
+
const isValueChecked = React76.useRef(null);
|
|
9768
|
+
const partialPosition = React76.useRef(null);
|
|
9769
|
+
const defaultBuffer = React76.useRef(null);
|
|
9770
|
+
const caretTimeoutId = React76.useRef(null);
|
|
9771
|
+
const androidChrome = React76.useRef(false);
|
|
9772
9772
|
const caret = (first, last) => {
|
|
9773
9773
|
var _a, _b;
|
|
9774
9774
|
let range;
|
|
@@ -9803,7 +9803,7 @@ var InputMask = React74.memo(
|
|
|
9803
9803
|
}
|
|
9804
9804
|
return { begin, end };
|
|
9805
9805
|
};
|
|
9806
|
-
const getPlaceholder =
|
|
9806
|
+
const getPlaceholder = React76.useCallback(
|
|
9807
9807
|
(i4) => {
|
|
9808
9808
|
var _a;
|
|
9809
9809
|
const slotChar2 = (_a = props.slotChar) != null ? _a : "_";
|
|
@@ -10073,7 +10073,7 @@ var InputMask = React74.memo(
|
|
|
10073
10073
|
});
|
|
10074
10074
|
}
|
|
10075
10075
|
};
|
|
10076
|
-
const getUnmaskedValue =
|
|
10076
|
+
const getUnmaskedValue = React76.useCallback(() => {
|
|
10077
10077
|
const unmaskedBuffer = [];
|
|
10078
10078
|
for (let i4 = 0; i4 < buffer.current.length; i4++) {
|
|
10079
10079
|
const c2 = buffer.current[i4];
|
|
@@ -10128,7 +10128,7 @@ var InputMask = React74.memo(
|
|
|
10128
10128
|
}
|
|
10129
10129
|
return pos;
|
|
10130
10130
|
};
|
|
10131
|
-
const isValueUpdated =
|
|
10131
|
+
const isValueUpdated = React76.useCallback(() => {
|
|
10132
10132
|
var _a, _b, _c, _d;
|
|
10133
10133
|
const elVal = (_b = (_a = elementRef.current) == null ? void 0 : _a.value) != null ? _b : "";
|
|
10134
10134
|
return props.unmask ? ((_c = props.value) != null ? _c : "") !== getUnmaskedValue() : defaultBuffer.current !== elVal && elVal !== ((_d = props.value) != null ? _d : "");
|
|
@@ -10228,7 +10228,7 @@ var InputMask = React74.memo(
|
|
|
10228
10228
|
const onInput = (event) => {
|
|
10229
10229
|
androidChrome.current ? handleAndroidInput(event) : handleInputChange(event);
|
|
10230
10230
|
};
|
|
10231
|
-
|
|
10231
|
+
React76.useImperativeHandle(
|
|
10232
10232
|
ref,
|
|
10233
10233
|
() => ({
|
|
10234
10234
|
focus: () => focusEl(elementRef.current),
|
|
@@ -10236,10 +10236,10 @@ var InputMask = React74.memo(
|
|
|
10236
10236
|
}),
|
|
10237
10237
|
[]
|
|
10238
10238
|
);
|
|
10239
|
-
|
|
10239
|
+
React76.useEffect(() => {
|
|
10240
10240
|
if (!elementRef.current) return;
|
|
10241
10241
|
}, []);
|
|
10242
|
-
|
|
10242
|
+
React76.useEffect(() => {
|
|
10243
10243
|
init();
|
|
10244
10244
|
updateValue();
|
|
10245
10245
|
}, []);
|
|
@@ -10273,6 +10273,7 @@ var InputMask = React74.memo(
|
|
|
10273
10273
|
onKeyPress: l2,
|
|
10274
10274
|
onInput: m2,
|
|
10275
10275
|
className,
|
|
10276
|
+
invalid,
|
|
10276
10277
|
...restInputProps
|
|
10277
10278
|
} = props;
|
|
10278
10279
|
return /* @__PURE__ */ jsx(
|
|
@@ -10294,6 +10295,7 @@ var InputMask = React74.memo(
|
|
|
10294
10295
|
onKeyPress,
|
|
10295
10296
|
onInput,
|
|
10296
10297
|
onPaste: (e4) => handleInputChange(e4, true),
|
|
10298
|
+
"aria-invalid": invalid ? "true" : void 0,
|
|
10297
10299
|
...restInputProps
|
|
10298
10300
|
}
|
|
10299
10301
|
);
|
|
@@ -10387,7 +10389,7 @@ function resolveSizeDensityClasses(size, density) {
|
|
|
10387
10389
|
}
|
|
10388
10390
|
return { heightCls, textCls, densityCls };
|
|
10389
10391
|
}
|
|
10390
|
-
var Input =
|
|
10392
|
+
var Input = React76.forwardRef(
|
|
10391
10393
|
function Input2(rawProps, forwardedRef) {
|
|
10392
10394
|
const {
|
|
10393
10395
|
// base
|
|
@@ -10397,6 +10399,7 @@ var Input = React74.forwardRef(
|
|
|
10397
10399
|
disabled,
|
|
10398
10400
|
readOnly,
|
|
10399
10401
|
required,
|
|
10402
|
+
invalid,
|
|
10400
10403
|
// size / density
|
|
10401
10404
|
size = "md",
|
|
10402
10405
|
density = "normal",
|
|
@@ -10450,8 +10453,8 @@ var Input = React74.forwardRef(
|
|
|
10450
10453
|
const sizeKey = size != null ? size : "md";
|
|
10451
10454
|
const densityKey = density != null ? density : "normal";
|
|
10452
10455
|
const isMasked = Boolean(mask);
|
|
10453
|
-
const innerRef =
|
|
10454
|
-
|
|
10456
|
+
const innerRef = React76.useRef(null);
|
|
10457
|
+
React76.useImperativeHandle(
|
|
10455
10458
|
forwardedRef,
|
|
10456
10459
|
() => innerRef.current,
|
|
10457
10460
|
[]
|
|
@@ -10472,11 +10475,11 @@ var Input = React74.forwardRef(
|
|
|
10472
10475
|
const baseIconGap = iconGap != null ? iconGap : 4;
|
|
10473
10476
|
const leadingGap = leadingIconSpacing != null ? leadingIconSpacing : baseIconGap;
|
|
10474
10477
|
const trailingGap = trailingIconSpacing != null ? trailingIconSpacing : baseIconGap;
|
|
10475
|
-
const leadingIconsRef =
|
|
10476
|
-
const trailingIconsRef =
|
|
10477
|
-
const [leadingIconsWidth, setLeadingIconsWidth] =
|
|
10478
|
-
const [trailingIconsWidth, setTrailingIconsWidth] =
|
|
10479
|
-
|
|
10478
|
+
const leadingIconsRef = React76.useRef(null);
|
|
10479
|
+
const trailingIconsRef = React76.useRef(null);
|
|
10480
|
+
const [leadingIconsWidth, setLeadingIconsWidth] = React76.useState(0);
|
|
10481
|
+
const [trailingIconsWidth, setTrailingIconsWidth] = React76.useState(0);
|
|
10482
|
+
React76.useLayoutEffect(() => {
|
|
10480
10483
|
if (typeof window === "undefined") return;
|
|
10481
10484
|
if (typeof ResizeObserver === "undefined") return;
|
|
10482
10485
|
const leadingEl = leadingIconsRef.current;
|
|
@@ -10551,7 +10554,7 @@ var Input = React74.forwardRef(
|
|
|
10551
10554
|
inputClassName
|
|
10552
10555
|
);
|
|
10553
10556
|
const maskMode = unmask === true || unmask === "raw" ? "raw" : "masked";
|
|
10554
|
-
const handleFocus =
|
|
10557
|
+
const handleFocus = React76.useCallback(
|
|
10555
10558
|
(event) => {
|
|
10556
10559
|
onFocus == null ? void 0 : onFocus(event);
|
|
10557
10560
|
if (!prefix && !suffix) return;
|
|
@@ -10579,7 +10582,7 @@ var Input = React74.forwardRef(
|
|
|
10579
10582
|
const placeholder = typeof mask === "string" && mask ? mask : rest.placeholder;
|
|
10580
10583
|
const hasCustomPadding = typeof px === "number" || typeof py === "number" || typeof ps === "number" || typeof pe2 === "number" || typeof pb === "number";
|
|
10581
10584
|
const hasKeyFilter = !!keyFilter;
|
|
10582
|
-
const handleKeyDownWrapped =
|
|
10585
|
+
const handleKeyDownWrapped = React76.useCallback(
|
|
10583
10586
|
(event) => {
|
|
10584
10587
|
if (hasKeyFilter && keyFilterOn === "keydown" && !event.ctrlKey && !event.metaKey && !event.altKey && event.key && event.key.length === 1) {
|
|
10585
10588
|
const inputEl = event.currentTarget;
|
|
@@ -10596,7 +10599,7 @@ var Input = React74.forwardRef(
|
|
|
10596
10599
|
},
|
|
10597
10600
|
[hasKeyFilter, keyFilterOn, keyFilter, onKeyDown]
|
|
10598
10601
|
);
|
|
10599
|
-
const handleKeyPressWrapped =
|
|
10602
|
+
const handleKeyPressWrapped = React76.useCallback(
|
|
10600
10603
|
(event) => {
|
|
10601
10604
|
if (hasKeyFilter && keyFilterOn === "keypress" && !event.ctrlKey && !event.metaKey && !event.altKey && event.key && event.key.length === 1) {
|
|
10602
10605
|
const inputEl = event.currentTarget;
|
|
@@ -10613,7 +10616,7 @@ var Input = React74.forwardRef(
|
|
|
10613
10616
|
},
|
|
10614
10617
|
[hasKeyFilter, keyFilterOn, keyFilter, onKeyPress]
|
|
10615
10618
|
);
|
|
10616
|
-
const handleBeforeInputWrapped =
|
|
10619
|
+
const handleBeforeInputWrapped = React76.useCallback(
|
|
10617
10620
|
(event) => {
|
|
10618
10621
|
if (hasKeyFilter && keyFilterOn === "beforeinput" && (event == null ? void 0 : event.nativeEvent)) {
|
|
10619
10622
|
const inputEl = event.currentTarget;
|
|
@@ -10634,7 +10637,7 @@ var Input = React74.forwardRef(
|
|
|
10634
10637
|
},
|
|
10635
10638
|
[hasKeyFilter, keyFilterOn, keyFilter, onBeforeInput]
|
|
10636
10639
|
);
|
|
10637
|
-
const handlePasteWrapped =
|
|
10640
|
+
const handlePasteWrapped = React76.useCallback(
|
|
10638
10641
|
(event) => {
|
|
10639
10642
|
var _a, _b;
|
|
10640
10643
|
if (hasKeyFilter && keyFilterOnPaste) {
|
|
@@ -10685,6 +10688,7 @@ var Input = React74.forwardRef(
|
|
|
10685
10688
|
onBeforeInput: handleBeforeInputWrapped,
|
|
10686
10689
|
onPaste: handlePasteWrapped,
|
|
10687
10690
|
"aria-required": required ? "true" : void 0,
|
|
10691
|
+
"aria-invalid": invalid ? "true" : void 0,
|
|
10688
10692
|
"data-size": sizeKey,
|
|
10689
10693
|
"data-density": densityKey,
|
|
10690
10694
|
placeholder,
|
|
@@ -10738,6 +10742,7 @@ var Input = React74.forwardRef(
|
|
|
10738
10742
|
disabled,
|
|
10739
10743
|
readOnly,
|
|
10740
10744
|
"aria-required": required ? "true" : void 0,
|
|
10745
|
+
"aria-invalid": invalid ? "true" : void 0,
|
|
10741
10746
|
"data-size": sizeKey,
|
|
10742
10747
|
"data-density": densityKey,
|
|
10743
10748
|
placeholder,
|
|
@@ -11032,7 +11037,7 @@ function stripAffixes(value, prefix, suffix) {
|
|
|
11032
11037
|
if (suffix && out.endsWith(suffix)) out = out.slice(0, -suffix.length);
|
|
11033
11038
|
return out;
|
|
11034
11039
|
}
|
|
11035
|
-
var ShadcnTextVariant =
|
|
11040
|
+
var ShadcnTextVariant = React76.forwardRef(function ShadcnTextVariant2(props, forwardedRef) {
|
|
11036
11041
|
const {
|
|
11037
11042
|
// form-level props
|
|
11038
11043
|
value,
|
|
@@ -11080,7 +11085,7 @@ var ShadcnTextVariant = React74.forwardRef(function ShadcnTextVariant2(props, fo
|
|
|
11080
11085
|
...rest
|
|
11081
11086
|
} = props;
|
|
11082
11087
|
const isMasked = Boolean(mask);
|
|
11083
|
-
const handlePlainChange =
|
|
11088
|
+
const handlePlainChange = React76.useCallback(
|
|
11084
11089
|
(e4) => {
|
|
11085
11090
|
var _a;
|
|
11086
11091
|
const displayed = (_a = e4.target.value) != null ? _a : "";
|
|
@@ -11111,7 +11116,7 @@ var ShadcnTextVariant = React74.forwardRef(function ShadcnTextVariant2(props, fo
|
|
|
11111
11116
|
},
|
|
11112
11117
|
[onValue, prefix, suffix, stripPrefix, stripSuffix]
|
|
11113
11118
|
);
|
|
11114
|
-
const handleMaskedChange =
|
|
11119
|
+
const handleMaskedChange = React76.useCallback(
|
|
11115
11120
|
(e4) => {
|
|
11116
11121
|
var _a, _b, _c;
|
|
11117
11122
|
const maskedValue = (_a = e4.value) != null ? _a : "";
|
|
@@ -11329,8 +11334,8 @@ function normalizeEditable(raw, locale, decimalSep, allowMinus) {
|
|
|
11329
11334
|
if (t4 === decimalSep) t4 = "0" + decimalSep;
|
|
11330
11335
|
return t4;
|
|
11331
11336
|
}
|
|
11332
|
-
var InputNumber =
|
|
11333
|
-
|
|
11337
|
+
var InputNumber = React76.memo(
|
|
11338
|
+
React76.forwardRef((inProps, ref) => {
|
|
11334
11339
|
var _a;
|
|
11335
11340
|
const props = {
|
|
11336
11341
|
allowEmpty: true,
|
|
@@ -11345,19 +11350,19 @@ var InputNumber = React74.memo(
|
|
|
11345
11350
|
type: "text",
|
|
11346
11351
|
...inProps
|
|
11347
11352
|
};
|
|
11348
|
-
const locale =
|
|
11353
|
+
const locale = React76.useMemo(
|
|
11349
11354
|
() => resolveLocale(props.locale),
|
|
11350
11355
|
[props.locale]
|
|
11351
11356
|
);
|
|
11352
|
-
const decimalSep =
|
|
11357
|
+
const decimalSep = React76.useMemo(
|
|
11353
11358
|
() => getDecimalSeparator(locale),
|
|
11354
11359
|
[locale]
|
|
11355
11360
|
);
|
|
11356
|
-
const allowMinus =
|
|
11361
|
+
const allowMinus = React76.useMemo(
|
|
11357
11362
|
() => props.min == null || props.min < 0,
|
|
11358
11363
|
[props.min]
|
|
11359
11364
|
);
|
|
11360
|
-
const fmtOptions =
|
|
11365
|
+
const fmtOptions = React76.useMemo(() => {
|
|
11361
11366
|
return {
|
|
11362
11367
|
localeMatcher: props.localeMatcher,
|
|
11363
11368
|
style: props.mode,
|
|
@@ -11378,22 +11383,22 @@ var InputNumber = React74.memo(
|
|
|
11378
11383
|
props.maxFractionDigits,
|
|
11379
11384
|
props.roundingMode
|
|
11380
11385
|
]);
|
|
11381
|
-
const inputRef =
|
|
11382
|
-
|
|
11383
|
-
const [display, setDisplay] =
|
|
11384
|
-
const [focused, setFocused] =
|
|
11385
|
-
const toEditableFromNumber =
|
|
11386
|
+
const inputRef = React76.useRef(null);
|
|
11387
|
+
React76.useImperativeHandle(ref, () => inputRef.current);
|
|
11388
|
+
const [display, setDisplay] = React76.useState("");
|
|
11389
|
+
const [focused, setFocused] = React76.useState(false);
|
|
11390
|
+
const toEditableFromNumber = React76.useCallback(
|
|
11386
11391
|
(n3) => {
|
|
11387
11392
|
const s3 = String(n3);
|
|
11388
11393
|
return decimalSep === "." ? s3 : s3.replace(".", decimalSep);
|
|
11389
11394
|
},
|
|
11390
11395
|
[decimalSep]
|
|
11391
11396
|
);
|
|
11392
|
-
const clampModel =
|
|
11397
|
+
const clampModel = React76.useCallback(
|
|
11393
11398
|
(n3) => clampToLimits(n3, props.min, props.max),
|
|
11394
11399
|
[props.min, props.max]
|
|
11395
11400
|
);
|
|
11396
|
-
const emit =
|
|
11401
|
+
const emit = React76.useCallback(
|
|
11397
11402
|
(event, value2) => {
|
|
11398
11403
|
var _a2, _b, _c;
|
|
11399
11404
|
const safeValue = sanitizeNumberish(value2);
|
|
@@ -11428,7 +11433,7 @@ var InputNumber = React74.memo(
|
|
|
11428
11433
|
}
|
|
11429
11434
|
});
|
|
11430
11435
|
};
|
|
11431
|
-
const formatFromModel =
|
|
11436
|
+
const formatFromModel = React76.useCallback(
|
|
11432
11437
|
(n3) => {
|
|
11433
11438
|
const safeNumber = sanitizeNumberish(n3);
|
|
11434
11439
|
if (safeNumber == null) return "";
|
|
@@ -11451,7 +11456,7 @@ var InputNumber = React74.memo(
|
|
|
11451
11456
|
toEditableFromNumber
|
|
11452
11457
|
]
|
|
11453
11458
|
);
|
|
11454
|
-
const getModelFromDisplay =
|
|
11459
|
+
const getModelFromDisplay = React76.useCallback(
|
|
11455
11460
|
(text) => {
|
|
11456
11461
|
const stripped = stripAffixes2(text, props.prefix, props.suffix);
|
|
11457
11462
|
const withoutGroup = stripGrouping(stripped, locale);
|
|
@@ -11463,7 +11468,7 @@ var InputNumber = React74.memo(
|
|
|
11463
11468
|
},
|
|
11464
11469
|
[props.prefix, props.suffix, locale, decimalSep, clampModel]
|
|
11465
11470
|
);
|
|
11466
|
-
const syncFromPropsValue =
|
|
11471
|
+
const syncFromPropsValue = React76.useCallback(
|
|
11467
11472
|
(v2) => {
|
|
11468
11473
|
const safeValue = sanitizeNumberish(v2);
|
|
11469
11474
|
if (safeValue == null) {
|
|
@@ -11477,11 +11482,11 @@ var InputNumber = React74.memo(
|
|
|
11477
11482
|
},
|
|
11478
11483
|
[clampModel, focused, toEditableFromNumber, formatFromModel]
|
|
11479
11484
|
);
|
|
11480
|
-
|
|
11485
|
+
React76.useEffect(() => {
|
|
11481
11486
|
var _a2;
|
|
11482
11487
|
syncFromPropsValue((_a2 = props.value) != null ? _a2 : null);
|
|
11483
11488
|
}, []);
|
|
11484
|
-
|
|
11489
|
+
React76.useEffect(() => {
|
|
11485
11490
|
var _a2;
|
|
11486
11491
|
if (focused) return;
|
|
11487
11492
|
syncFromPropsValue((_a2 = props.value) != null ? _a2 : null);
|
|
@@ -11574,6 +11579,25 @@ var InputNumber = React74.memo(
|
|
|
11574
11579
|
value,
|
|
11575
11580
|
icon,
|
|
11576
11581
|
iconGap,
|
|
11582
|
+
// Destructure to prevent leakage:
|
|
11583
|
+
locale: _locale,
|
|
11584
|
+
localeMatcher,
|
|
11585
|
+
mode,
|
|
11586
|
+
currency,
|
|
11587
|
+
currencyDisplay,
|
|
11588
|
+
useGrouping,
|
|
11589
|
+
minFractionDigits,
|
|
11590
|
+
maxFractionDigits,
|
|
11591
|
+
roundingMode,
|
|
11592
|
+
min: min2,
|
|
11593
|
+
max: max2,
|
|
11594
|
+
step,
|
|
11595
|
+
allowEmpty,
|
|
11596
|
+
format: format2,
|
|
11597
|
+
invalid,
|
|
11598
|
+
onValueChange,
|
|
11599
|
+
onChange,
|
|
11600
|
+
onValue,
|
|
11577
11601
|
...passThroughProps
|
|
11578
11602
|
} = props;
|
|
11579
11603
|
return (
|
|
@@ -12036,7 +12060,7 @@ var X = createLucideIcon("x", __iconNode37);
|
|
|
12036
12060
|
function sanitizeNumberish2(value) {
|
|
12037
12061
|
return typeof value === "number" && Number.isFinite(value) ? value : null;
|
|
12038
12062
|
}
|
|
12039
|
-
var ShadcnNumberVariant =
|
|
12063
|
+
var ShadcnNumberVariant = React76__default.forwardRef(function ShadcnNumberVariant2(props, forwardedRef) {
|
|
12040
12064
|
const {
|
|
12041
12065
|
showButtons,
|
|
12042
12066
|
buttonLayout = "stacked",
|
|
@@ -12054,7 +12078,7 @@ var ShadcnNumberVariant = React74__default.forwardRef(function ShadcnNumberVaria
|
|
|
12054
12078
|
id,
|
|
12055
12079
|
inputId
|
|
12056
12080
|
} = rest;
|
|
12057
|
-
const handleChange =
|
|
12081
|
+
const handleChange = React76__default.useCallback(
|
|
12058
12082
|
(e4) => {
|
|
12059
12083
|
const safeValue = sanitizeNumberish2(e4.value);
|
|
12060
12084
|
if (onValueChange) {
|
|
@@ -12067,7 +12091,7 @@ var ShadcnNumberVariant = React74__default.forwardRef(function ShadcnNumberVaria
|
|
|
12067
12091
|
},
|
|
12068
12092
|
[onValueChange]
|
|
12069
12093
|
);
|
|
12070
|
-
const handleStep =
|
|
12094
|
+
const handleStep = React76__default.useCallback(
|
|
12071
12095
|
(direction, originalEvent) => {
|
|
12072
12096
|
var _a, _b;
|
|
12073
12097
|
if (disabled) return;
|
|
@@ -12597,7 +12621,7 @@ var CountrySelect = ({
|
|
|
12597
12621
|
}) })
|
|
12598
12622
|
] }) });
|
|
12599
12623
|
};
|
|
12600
|
-
var ShadcnPhoneVariant =
|
|
12624
|
+
var ShadcnPhoneVariant = React76.forwardRef(function ShadcnPhoneVariant2(props, ref) {
|
|
12601
12625
|
const {
|
|
12602
12626
|
countries: countriesProp,
|
|
12603
12627
|
defaultCountry,
|
|
@@ -12622,8 +12646,8 @@ var ShadcnPhoneVariant = React74.forwardRef(function ShadcnPhoneVariant2(props,
|
|
|
12622
12646
|
} = props;
|
|
12623
12647
|
let DEFAULT_COUNTRIES2 = getGlobalCountryList();
|
|
12624
12648
|
const defaultCountries = countriesProp && countriesProp.length > 0 ? countriesProp : DEFAULT_COUNTRIES2;
|
|
12625
|
-
const [countries, setLoadedCountries] =
|
|
12626
|
-
|
|
12649
|
+
const [countries, setLoadedCountries] = React76.useState(defaultCountries);
|
|
12650
|
+
React76.useEffect(() => {
|
|
12627
12651
|
if (countriesProp == null ? void 0 : countriesProp.length) return;
|
|
12628
12652
|
const list = getPaletteUtil("countries");
|
|
12629
12653
|
if (list == null ? void 0 : list.length) {
|
|
@@ -12636,7 +12660,7 @@ var ShadcnPhoneVariant = React74.forwardRef(function ShadcnPhoneVariant2(props,
|
|
|
12636
12660
|
});
|
|
12637
12661
|
}
|
|
12638
12662
|
}, []);
|
|
12639
|
-
const [country, setCountry] =
|
|
12663
|
+
const [country, setCountry] = React76.useState(() => {
|
|
12640
12664
|
var _a;
|
|
12641
12665
|
if (defaultCountry) {
|
|
12642
12666
|
const found = countries.find((c2) => c2.code === defaultCountry);
|
|
@@ -12644,7 +12668,7 @@ var ShadcnPhoneVariant = React74.forwardRef(function ShadcnPhoneVariant2(props,
|
|
|
12644
12668
|
}
|
|
12645
12669
|
return (_a = countries[0]) != null ? _a : DEFAULT_COUNTRIES2[0];
|
|
12646
12670
|
});
|
|
12647
|
-
|
|
12671
|
+
React76.useEffect(() => {
|
|
12648
12672
|
setCountry((prev) => {
|
|
12649
12673
|
var _a;
|
|
12650
12674
|
if (defaultCountry) {
|
|
@@ -12655,13 +12679,13 @@ var ShadcnPhoneVariant = React74.forwardRef(function ShadcnPhoneVariant2(props,
|
|
|
12655
12679
|
return (_a = stillThere != null ? stillThere : countries[0]) != null ? _a : prev;
|
|
12656
12680
|
});
|
|
12657
12681
|
}, [countries, defaultCountry]);
|
|
12658
|
-
const [local, setLocal] =
|
|
12682
|
+
const [local, setLocal] = React76.useState(
|
|
12659
12683
|
() => computeDisplayFromValue(value, country, keepCharPositions)
|
|
12660
12684
|
);
|
|
12661
|
-
|
|
12685
|
+
React76.useEffect(() => {
|
|
12662
12686
|
setLocal(computeDisplayFromValue(value, country, keepCharPositions));
|
|
12663
12687
|
}, [value, country, keepCharPositions]);
|
|
12664
|
-
const handleInputChange =
|
|
12688
|
+
const handleInputChange = React76.useCallback(
|
|
12665
12689
|
(event) => {
|
|
12666
12690
|
var _a;
|
|
12667
12691
|
const rawInput = (_a = event.target.value) != null ? _a : "";
|
|
@@ -12687,7 +12711,7 @@ var ShadcnPhoneVariant = React74.forwardRef(function ShadcnPhoneVariant2(props,
|
|
|
12687
12711
|
},
|
|
12688
12712
|
[country, valueMode, keepCharPositions, onValue]
|
|
12689
12713
|
);
|
|
12690
|
-
const handleCountryChange =
|
|
12714
|
+
const handleCountryChange = React76.useCallback(
|
|
12691
12715
|
(nextCode) => {
|
|
12692
12716
|
var _a;
|
|
12693
12717
|
const nextCountry = (_a = countries.find((c2) => c2.code === nextCode)) != null ? _a : countries[0];
|
|
@@ -12774,7 +12798,7 @@ function normalizeColorForPicker(value) {
|
|
|
12774
12798
|
}
|
|
12775
12799
|
return "#000000";
|
|
12776
12800
|
}
|
|
12777
|
-
var ShadcnColorVariant =
|
|
12801
|
+
var ShadcnColorVariant = React76.forwardRef(function ShadcnColorVariant2(props, ref) {
|
|
12778
12802
|
const {
|
|
12779
12803
|
// variant contract
|
|
12780
12804
|
value,
|
|
@@ -12795,22 +12819,22 @@ var ShadcnColorVariant = React74.forwardRef(function ShadcnColorVariant2(props,
|
|
|
12795
12819
|
// everything else → Input (size, density, className, icons, etc.)
|
|
12796
12820
|
...restTextProps
|
|
12797
12821
|
} = props;
|
|
12798
|
-
const [local, setLocal] =
|
|
12799
|
-
const [pickerOpen, setPickerOpen] =
|
|
12800
|
-
|
|
12822
|
+
const [local, setLocal] = React76.useState(value != null ? value : "");
|
|
12823
|
+
const [pickerOpen, setPickerOpen] = React76.useState(false);
|
|
12824
|
+
React76.useEffect(() => {
|
|
12801
12825
|
setLocal(value != null ? value : "");
|
|
12802
12826
|
}, [value]);
|
|
12803
|
-
const pickerRef =
|
|
12827
|
+
const pickerRef = React76.useRef(null);
|
|
12804
12828
|
const effectiveColor = normalizeColorForPicker(local || value);
|
|
12805
12829
|
const showError = Boolean(error);
|
|
12806
|
-
const openSystemPicker =
|
|
12830
|
+
const openSystemPicker = React76.useCallback(() => {
|
|
12807
12831
|
setPickerOpen(true);
|
|
12808
12832
|
window.setTimeout(() => {
|
|
12809
12833
|
var _a;
|
|
12810
12834
|
(_a = pickerRef.current) == null ? void 0 : _a.click();
|
|
12811
12835
|
}, 0);
|
|
12812
12836
|
}, []);
|
|
12813
|
-
const handleTextChange =
|
|
12837
|
+
const handleTextChange = React76.useCallback(
|
|
12814
12838
|
(event) => {
|
|
12815
12839
|
var _a;
|
|
12816
12840
|
const next = (_a = event.target.value) != null ? _a : "";
|
|
@@ -12827,7 +12851,7 @@ var ShadcnColorVariant = React74.forwardRef(function ShadcnColorVariant2(props,
|
|
|
12827
12851
|
},
|
|
12828
12852
|
[onValue]
|
|
12829
12853
|
);
|
|
12830
|
-
const handlePickerChange =
|
|
12854
|
+
const handlePickerChange = React76.useCallback(
|
|
12831
12855
|
(event) => {
|
|
12832
12856
|
var _a;
|
|
12833
12857
|
const next = (_a = event.target.value) != null ? _a : "";
|
|
@@ -12845,7 +12869,7 @@ var ShadcnColorVariant = React74.forwardRef(function ShadcnColorVariant2(props,
|
|
|
12845
12869
|
},
|
|
12846
12870
|
[onValue]
|
|
12847
12871
|
);
|
|
12848
|
-
const handlePickerBlur =
|
|
12872
|
+
const handlePickerBlur = React76.useCallback(() => {
|
|
12849
12873
|
setPickerOpen(false);
|
|
12850
12874
|
}, []);
|
|
12851
12875
|
const leadingControl = showPreview ? /* @__PURE__ */ jsx(
|
|
@@ -13147,7 +13171,7 @@ function meterColor(score) {
|
|
|
13147
13171
|
if (score === 3) return "bg-amber-500";
|
|
13148
13172
|
return "bg-emerald-500";
|
|
13149
13173
|
}
|
|
13150
|
-
var ShadcnPasswordVariant =
|
|
13174
|
+
var ShadcnPasswordVariant = React76.forwardRef(function ShadcnPasswordVariant2(props, ref) {
|
|
13151
13175
|
var _a, _b;
|
|
13152
13176
|
const {
|
|
13153
13177
|
// base variant bits
|
|
@@ -13183,18 +13207,18 @@ var ShadcnPasswordVariant = React74.forwardRef(function ShadcnPasswordVariant2(p
|
|
|
13183
13207
|
// everything else from Shadcn text UI
|
|
13184
13208
|
...restTextProps
|
|
13185
13209
|
} = props;
|
|
13186
|
-
const [revealed, setRevealed] =
|
|
13210
|
+
const [revealed, setRevealed] = React76.useState(
|
|
13187
13211
|
Boolean(defaultRevealed)
|
|
13188
13212
|
);
|
|
13189
|
-
const normalizedStrength =
|
|
13213
|
+
const normalizedStrength = React76.useMemo(
|
|
13190
13214
|
() => normalizeStrengthOptions(strengthMeter),
|
|
13191
13215
|
[strengthMeter]
|
|
13192
13216
|
);
|
|
13193
|
-
const effectiveRuleDefinitions =
|
|
13217
|
+
const effectiveRuleDefinitions = React76.useMemo(
|
|
13194
13218
|
() => getMergedRuleDefinitions(ruleDefinitions),
|
|
13195
13219
|
[ruleDefinitions]
|
|
13196
13220
|
);
|
|
13197
|
-
const meterState =
|
|
13221
|
+
const meterState = React76.useMemo(() => {
|
|
13198
13222
|
if (!normalizedStrength) return null;
|
|
13199
13223
|
const v2 = value != null ? value : "";
|
|
13200
13224
|
return computeMeterState(
|
|
@@ -13204,14 +13228,14 @@ var ShadcnPasswordVariant = React74.forwardRef(function ShadcnPasswordVariant2(p
|
|
|
13204
13228
|
ruleUses
|
|
13205
13229
|
);
|
|
13206
13230
|
}, [normalizedStrength, value, ruleUses, effectiveRuleDefinitions]);
|
|
13207
|
-
const handleToggleReveal =
|
|
13231
|
+
const handleToggleReveal = React76.useCallback(() => {
|
|
13208
13232
|
setRevealed((prev) => {
|
|
13209
13233
|
const next = !prev;
|
|
13210
13234
|
onRevealChange == null ? void 0 : onRevealChange(next);
|
|
13211
13235
|
return next;
|
|
13212
13236
|
});
|
|
13213
13237
|
}, [onRevealChange]);
|
|
13214
|
-
const handleChange =
|
|
13238
|
+
const handleChange = React76.useCallback(
|
|
13215
13239
|
(event) => {
|
|
13216
13240
|
var _a2;
|
|
13217
13241
|
const next = (_a2 = event.target.value) != null ? _a2 : "";
|
|
@@ -15861,38 +15885,38 @@ __export(custom_components_exports, {
|
|
|
15861
15885
|
YearsDropdown: () => YearsDropdown
|
|
15862
15886
|
});
|
|
15863
15887
|
function Button(props) {
|
|
15864
|
-
return
|
|
15888
|
+
return React76__default.createElement("button", { ...props });
|
|
15865
15889
|
}
|
|
15866
15890
|
function CaptionLabel(props) {
|
|
15867
|
-
return
|
|
15891
|
+
return React76__default.createElement("span", { ...props });
|
|
15868
15892
|
}
|
|
15869
15893
|
function Chevron(props) {
|
|
15870
15894
|
const { size = 24, orientation = "left", className } = props;
|
|
15871
15895
|
return (
|
|
15872
15896
|
// biome-ignore lint/a11y/noSvgWithoutTitle: handled by the parent component
|
|
15873
|
-
|
|
15897
|
+
React76__default.createElement(
|
|
15874
15898
|
"svg",
|
|
15875
15899
|
{ className, width: size, height: size, viewBox: "0 0 24 24" },
|
|
15876
|
-
orientation === "up" &&
|
|
15877
|
-
orientation === "down" &&
|
|
15878
|
-
orientation === "left" &&
|
|
15879
|
-
orientation === "right" &&
|
|
15900
|
+
orientation === "up" && React76__default.createElement("polygon", { points: "6.77 17 12.5 11.43 18.24 17 20 15.28 12.5 8 5 15.28" }),
|
|
15901
|
+
orientation === "down" && React76__default.createElement("polygon", { points: "6.77 8 12.5 13.57 18.24 8 20 9.72 12.5 17 5 9.72" }),
|
|
15902
|
+
orientation === "left" && React76__default.createElement("polygon", { points: "16 18.112 9.81111111 12 16 5.87733333 14.0888889 4 6 12 14.0888889 20" }),
|
|
15903
|
+
orientation === "right" && React76__default.createElement("polygon", { points: "8 18.112 14.18888889 12 8 5.87733333 9.91111111 4 18 12 9.91111111 20" })
|
|
15880
15904
|
)
|
|
15881
15905
|
);
|
|
15882
15906
|
}
|
|
15883
15907
|
function Day(props) {
|
|
15884
15908
|
const { day, modifiers, ...tdProps } = props;
|
|
15885
|
-
return
|
|
15909
|
+
return React76__default.createElement("td", { ...tdProps });
|
|
15886
15910
|
}
|
|
15887
15911
|
function DayButton(props) {
|
|
15888
15912
|
const { day, modifiers, ...buttonProps } = props;
|
|
15889
|
-
const ref =
|
|
15890
|
-
|
|
15913
|
+
const ref = React76__default.useRef(null);
|
|
15914
|
+
React76__default.useEffect(() => {
|
|
15891
15915
|
var _a;
|
|
15892
15916
|
if (modifiers.focused)
|
|
15893
15917
|
(_a = ref.current) == null ? void 0 : _a.focus();
|
|
15894
15918
|
}, [modifiers.focused]);
|
|
15895
|
-
return
|
|
15919
|
+
return React76__default.createElement("button", { ref, ...buttonProps });
|
|
15896
15920
|
}
|
|
15897
15921
|
|
|
15898
15922
|
// ../../node_modules/react-day-picker/dist/esm/UI.js
|
|
@@ -15955,37 +15979,37 @@ function Dropdown(props) {
|
|
|
15955
15979
|
const { options, className, components, classNames, ...selectProps } = props;
|
|
15956
15980
|
const cssClassSelect = [classNames[UI.Dropdown], className].join(" ");
|
|
15957
15981
|
const selectedOption = options == null ? void 0 : options.find(({ value }) => value === selectProps.value);
|
|
15958
|
-
return
|
|
15982
|
+
return React76__default.createElement(
|
|
15959
15983
|
"span",
|
|
15960
15984
|
{ "data-disabled": selectProps.disabled, className: classNames[UI.DropdownRoot] },
|
|
15961
|
-
|
|
15962
|
-
|
|
15985
|
+
React76__default.createElement(components.Select, { className: cssClassSelect, ...selectProps }, options == null ? void 0 : options.map(({ value, label, disabled }) => React76__default.createElement(components.Option, { key: value, value, disabled }, label))),
|
|
15986
|
+
React76__default.createElement(
|
|
15963
15987
|
"span",
|
|
15964
15988
|
{ className: classNames[UI.CaptionLabel], "aria-hidden": true },
|
|
15965
15989
|
selectedOption == null ? void 0 : selectedOption.label,
|
|
15966
|
-
|
|
15990
|
+
React76__default.createElement(components.Chevron, { orientation: "down", size: 18, className: classNames[UI.Chevron] })
|
|
15967
15991
|
)
|
|
15968
15992
|
);
|
|
15969
15993
|
}
|
|
15970
15994
|
function DropdownNav(props) {
|
|
15971
|
-
return
|
|
15995
|
+
return React76__default.createElement("div", { ...props });
|
|
15972
15996
|
}
|
|
15973
15997
|
function Footer(props) {
|
|
15974
|
-
return
|
|
15998
|
+
return React76__default.createElement("div", { ...props });
|
|
15975
15999
|
}
|
|
15976
16000
|
function Month(props) {
|
|
15977
16001
|
const { calendarMonth, displayIndex, ...divProps } = props;
|
|
15978
|
-
return
|
|
16002
|
+
return React76__default.createElement("div", { ...divProps }, props.children);
|
|
15979
16003
|
}
|
|
15980
16004
|
function MonthCaption(props) {
|
|
15981
16005
|
const { calendarMonth, displayIndex, ...divProps } = props;
|
|
15982
|
-
return
|
|
16006
|
+
return React76__default.createElement("div", { ...divProps });
|
|
15983
16007
|
}
|
|
15984
16008
|
function MonthGrid(props) {
|
|
15985
|
-
return
|
|
16009
|
+
return React76__default.createElement("table", { ...props });
|
|
15986
16010
|
}
|
|
15987
16011
|
function Months(props) {
|
|
15988
|
-
return
|
|
16012
|
+
return React76__default.createElement("div", { ...props });
|
|
15989
16013
|
}
|
|
15990
16014
|
var dayPickerContext = createContext(void 0);
|
|
15991
16015
|
function useDayPicker() {
|
|
@@ -15999,7 +16023,7 @@ function useDayPicker() {
|
|
|
15999
16023
|
// ../../node_modules/react-day-picker/dist/esm/components/MonthsDropdown.js
|
|
16000
16024
|
function MonthsDropdown(props) {
|
|
16001
16025
|
const { components } = useDayPicker();
|
|
16002
|
-
return
|
|
16026
|
+
return React76__default.createElement(components.Dropdown, { ...props });
|
|
16003
16027
|
}
|
|
16004
16028
|
function Nav(props) {
|
|
16005
16029
|
const { onPreviousClick, onNextClick, previousMonth, nextMonth, ...navProps } = props;
|
|
@@ -16014,66 +16038,66 @@ function Nav(props) {
|
|
|
16014
16038
|
onPreviousClick == null ? void 0 : onPreviousClick(e4);
|
|
16015
16039
|
}
|
|
16016
16040
|
}, [previousMonth, onPreviousClick]);
|
|
16017
|
-
return
|
|
16041
|
+
return React76__default.createElement(
|
|
16018
16042
|
"nav",
|
|
16019
16043
|
{ ...navProps },
|
|
16020
|
-
|
|
16044
|
+
React76__default.createElement(
|
|
16021
16045
|
components.PreviousMonthButton,
|
|
16022
16046
|
{ type: "button", className: classNames[UI.PreviousMonthButton], tabIndex: previousMonth ? void 0 : -1, "aria-disabled": previousMonth ? void 0 : true, "aria-label": labelPrevious2(previousMonth), onClick: handlePreviousClick },
|
|
16023
|
-
|
|
16047
|
+
React76__default.createElement(components.Chevron, { disabled: previousMonth ? void 0 : true, className: classNames[UI.Chevron], orientation: "left" })
|
|
16024
16048
|
),
|
|
16025
|
-
|
|
16049
|
+
React76__default.createElement(
|
|
16026
16050
|
components.NextMonthButton,
|
|
16027
16051
|
{ type: "button", className: classNames[UI.NextMonthButton], tabIndex: nextMonth ? void 0 : -1, "aria-disabled": nextMonth ? void 0 : true, "aria-label": labelNext2(nextMonth), onClick: handleNextClick },
|
|
16028
|
-
|
|
16052
|
+
React76__default.createElement(components.Chevron, { disabled: nextMonth ? void 0 : true, orientation: "right", className: classNames[UI.Chevron] })
|
|
16029
16053
|
)
|
|
16030
16054
|
);
|
|
16031
16055
|
}
|
|
16032
16056
|
function NextMonthButton(props) {
|
|
16033
16057
|
const { components } = useDayPicker();
|
|
16034
|
-
return
|
|
16058
|
+
return React76__default.createElement(components.Button, { ...props });
|
|
16035
16059
|
}
|
|
16036
16060
|
function Option(props) {
|
|
16037
|
-
return
|
|
16061
|
+
return React76__default.createElement("option", { ...props });
|
|
16038
16062
|
}
|
|
16039
16063
|
function PreviousMonthButton(props) {
|
|
16040
16064
|
const { components } = useDayPicker();
|
|
16041
|
-
return
|
|
16065
|
+
return React76__default.createElement(components.Button, { ...props });
|
|
16042
16066
|
}
|
|
16043
16067
|
function Root4(props) {
|
|
16044
16068
|
const { rootRef, ...rest } = props;
|
|
16045
|
-
return
|
|
16069
|
+
return React76__default.createElement("div", { ...rest, ref: rootRef });
|
|
16046
16070
|
}
|
|
16047
16071
|
function Select2(props) {
|
|
16048
|
-
return
|
|
16072
|
+
return React76__default.createElement("select", { ...props });
|
|
16049
16073
|
}
|
|
16050
16074
|
function Week(props) {
|
|
16051
16075
|
const { week, ...trProps } = props;
|
|
16052
|
-
return
|
|
16076
|
+
return React76__default.createElement("tr", { ...trProps });
|
|
16053
16077
|
}
|
|
16054
16078
|
function Weekday(props) {
|
|
16055
|
-
return
|
|
16079
|
+
return React76__default.createElement("th", { ...props });
|
|
16056
16080
|
}
|
|
16057
16081
|
function Weekdays(props) {
|
|
16058
|
-
return
|
|
16082
|
+
return React76__default.createElement(
|
|
16059
16083
|
"thead",
|
|
16060
16084
|
{ "aria-hidden": true },
|
|
16061
|
-
|
|
16085
|
+
React76__default.createElement("tr", { ...props })
|
|
16062
16086
|
);
|
|
16063
16087
|
}
|
|
16064
16088
|
function WeekNumber(props) {
|
|
16065
16089
|
const { week, ...thProps } = props;
|
|
16066
|
-
return
|
|
16090
|
+
return React76__default.createElement("th", { ...thProps });
|
|
16067
16091
|
}
|
|
16068
16092
|
function WeekNumberHeader(props) {
|
|
16069
|
-
return
|
|
16093
|
+
return React76__default.createElement("th", { ...props });
|
|
16070
16094
|
}
|
|
16071
16095
|
function Weeks(props) {
|
|
16072
|
-
return
|
|
16096
|
+
return React76__default.createElement("tbody", { ...props });
|
|
16073
16097
|
}
|
|
16074
16098
|
function YearsDropdown(props) {
|
|
16075
16099
|
const { components } = useDayPicker();
|
|
16076
|
-
return
|
|
16100
|
+
return React76__default.createElement(components.Dropdown, { ...props });
|
|
16077
16101
|
}
|
|
16078
16102
|
|
|
16079
16103
|
// ../../node_modules/react-day-picker/dist/esm/utils/rangeIncludesDate.js
|
|
@@ -17560,18 +17584,18 @@ function DayPicker(initialProps) {
|
|
|
17560
17584
|
labels,
|
|
17561
17585
|
formatters: formatters2
|
|
17562
17586
|
};
|
|
17563
|
-
return
|
|
17587
|
+
return React76__default.createElement(
|
|
17564
17588
|
dayPickerContext.Provider,
|
|
17565
17589
|
{ value: contextValue },
|
|
17566
|
-
|
|
17590
|
+
React76__default.createElement(
|
|
17567
17591
|
components.Root,
|
|
17568
17592
|
{ 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 },
|
|
17569
|
-
|
|
17593
|
+
React76__default.createElement(
|
|
17570
17594
|
components.Months,
|
|
17571
17595
|
{ className: classNames[UI.Months], style: styles == null ? void 0 : styles[UI.Months] },
|
|
17572
|
-
!props.hideNavigation && !navLayout &&
|
|
17596
|
+
!props.hideNavigation && !navLayout && React76__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 }),
|
|
17573
17597
|
months.map((calendarMonth, displayIndex) => {
|
|
17574
|
-
return
|
|
17598
|
+
return React76__default.createElement(
|
|
17575
17599
|
components.Month,
|
|
17576
17600
|
{
|
|
17577
17601
|
"data-animated-month": props.animate ? "true" : void 0,
|
|
@@ -17582,21 +17606,21 @@ function DayPicker(initialProps) {
|
|
|
17582
17606
|
displayIndex,
|
|
17583
17607
|
calendarMonth
|
|
17584
17608
|
},
|
|
17585
|
-
navLayout === "around" && !props.hideNavigation && displayIndex === 0 &&
|
|
17609
|
+
navLayout === "around" && !props.hideNavigation && displayIndex === 0 && React76__default.createElement(
|
|
17586
17610
|
components.PreviousMonthButton,
|
|
17587
17611
|
{ 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 },
|
|
17588
|
-
|
|
17612
|
+
React76__default.createElement(components.Chevron, { disabled: previousMonth ? void 0 : true, className: classNames[UI.Chevron], orientation: props.dir === "rtl" ? "right" : "left" })
|
|
17589
17613
|
),
|
|
17590
|
-
|
|
17614
|
+
React76__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")) ? React76__default.createElement(
|
|
17591
17615
|
components.DropdownNav,
|
|
17592
17616
|
{ className: classNames[UI.Dropdowns], style: styles == null ? void 0 : styles[UI.Dropdowns] },
|
|
17593
17617
|
(() => {
|
|
17594
|
-
const monthControl = captionLayout === "dropdown" || captionLayout === "dropdown-months" ?
|
|
17595
|
-
const yearControl = captionLayout === "dropdown" || captionLayout === "dropdown-years" ?
|
|
17618
|
+
const monthControl = captionLayout === "dropdown" || captionLayout === "dropdown-months" ? React76__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) }) : React76__default.createElement("span", { key: "month" }, formatMonthDropdown2(calendarMonth.date, dateLib));
|
|
17619
|
+
const yearControl = captionLayout === "dropdown" || captionLayout === "dropdown-years" ? React76__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) }) : React76__default.createElement("span", { key: "year" }, formatYearDropdown2(calendarMonth.date, dateLib));
|
|
17596
17620
|
const controls = dateLib.getMonthYearOrder() === "year-first" ? [yearControl, monthControl] : [monthControl, yearControl];
|
|
17597
17621
|
return controls;
|
|
17598
17622
|
})(),
|
|
17599
|
-
|
|
17623
|
+
React76__default.createElement("span", { role: "status", "aria-live": "polite", style: {
|
|
17600
17624
|
border: 0,
|
|
17601
17625
|
clip: "rect(0 0 0 0)",
|
|
17602
17626
|
height: "1px",
|
|
@@ -17608,27 +17632,27 @@ function DayPicker(initialProps) {
|
|
|
17608
17632
|
whiteSpace: "nowrap",
|
|
17609
17633
|
wordWrap: "normal"
|
|
17610
17634
|
} }, formatCaption2(calendarMonth.date, dateLib.options, dateLib))
|
|
17611
|
-
) :
|
|
17612
|
-
navLayout === "around" && !props.hideNavigation && displayIndex === numberOfMonths - 1 &&
|
|
17635
|
+
) : React76__default.createElement(components.CaptionLabel, { className: classNames[UI.CaptionLabel], role: "status", "aria-live": "polite" }, formatCaption2(calendarMonth.date, dateLib.options, dateLib))),
|
|
17636
|
+
navLayout === "around" && !props.hideNavigation && displayIndex === numberOfMonths - 1 && React76__default.createElement(
|
|
17613
17637
|
components.NextMonthButton,
|
|
17614
17638
|
{ 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 },
|
|
17615
|
-
|
|
17639
|
+
React76__default.createElement(components.Chevron, { disabled: nextMonth ? void 0 : true, className: classNames[UI.Chevron], orientation: props.dir === "rtl" ? "left" : "right" })
|
|
17616
17640
|
),
|
|
17617
|
-
displayIndex === numberOfMonths - 1 && navLayout === "after" && !props.hideNavigation &&
|
|
17618
|
-
|
|
17641
|
+
displayIndex === numberOfMonths - 1 && navLayout === "after" && !props.hideNavigation && React76__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 }),
|
|
17642
|
+
React76__default.createElement(
|
|
17619
17643
|
components.MonthGrid,
|
|
17620
17644
|
{ 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] },
|
|
17621
|
-
!props.hideWeekdays &&
|
|
17645
|
+
!props.hideWeekdays && React76__default.createElement(
|
|
17622
17646
|
components.Weekdays,
|
|
17623
17647
|
{ "data-animated-weekdays": props.animate ? "true" : void 0, className: classNames[UI.Weekdays], style: styles == null ? void 0 : styles[UI.Weekdays] },
|
|
17624
|
-
showWeekNumber &&
|
|
17625
|
-
weekdays.map((weekday) =>
|
|
17648
|
+
showWeekNumber && React76__default.createElement(components.WeekNumberHeader, { "aria-label": labelWeekNumberHeader2(dateLib.options), className: classNames[UI.WeekNumberHeader], style: styles == null ? void 0 : styles[UI.WeekNumberHeader], scope: "col" }, formatWeekNumberHeader2()),
|
|
17649
|
+
weekdays.map((weekday) => React76__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)))
|
|
17626
17650
|
),
|
|
17627
|
-
|
|
17628
|
-
return
|
|
17651
|
+
React76__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) => {
|
|
17652
|
+
return React76__default.createElement(
|
|
17629
17653
|
components.Week,
|
|
17630
17654
|
{ className: classNames[UI.Week], key: week.weekNumber, style: styles == null ? void 0 : styles[UI.Week], week },
|
|
17631
|
-
showWeekNumber &&
|
|
17655
|
+
showWeekNumber && React76__default.createElement(components.WeekNumber, { week, style: styles == null ? void 0 : styles[UI.WeekNumber], "aria-label": labelWeekNumber2(week.weekNumber, {
|
|
17632
17656
|
locale
|
|
17633
17657
|
}), className: classNames[UI.WeekNumber], scope: "row", role: "rowheader" }, formatWeekNumber2(week.weekNumber, dateLib)),
|
|
17634
17658
|
week.days.map((day) => {
|
|
@@ -17645,7 +17669,7 @@ function DayPicker(initialProps) {
|
|
|
17645
17669
|
const style2 = getStyleForModifiers(modifiers, styles, props.modifiersStyles);
|
|
17646
17670
|
const className2 = getClassNamesForModifiers(modifiers, classNames, props.modifiersClassNames);
|
|
17647
17671
|
const ariaLabel = !isInteractive && !modifiers.hidden ? labelGridcell2(date, modifiers, dateLib.options, dateLib) : void 0;
|
|
17648
|
-
return
|
|
17672
|
+
return React76__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 ? React76__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));
|
|
17649
17673
|
})
|
|
17650
17674
|
);
|
|
17651
17675
|
}))
|
|
@@ -17653,7 +17677,7 @@ function DayPicker(initialProps) {
|
|
|
17653
17677
|
);
|
|
17654
17678
|
})
|
|
17655
17679
|
),
|
|
17656
|
-
props.footer &&
|
|
17680
|
+
props.footer && React76__default.createElement(components.Footer, { className: classNames[UI.Footer], style: styles == null ? void 0 : styles[UI.Footer], role: "status", "aria-live": "polite" }, props.footer)
|
|
17657
17681
|
)
|
|
17658
17682
|
);
|
|
17659
17683
|
}
|
|
@@ -17896,8 +17920,8 @@ function CalendarDayButton({
|
|
|
17896
17920
|
...props
|
|
17897
17921
|
}) {
|
|
17898
17922
|
const defaultClassNames = getDefaultClassNames();
|
|
17899
|
-
const ref =
|
|
17900
|
-
|
|
17923
|
+
const ref = React76.useRef(null);
|
|
17924
|
+
React76.useEffect(() => {
|
|
17901
17925
|
var _a;
|
|
17902
17926
|
if (modifiers.focused) (_a = ref.current) == null ? void 0 : _a.focus();
|
|
17903
17927
|
}, [modifiers.focused]);
|
|
@@ -17974,15 +17998,15 @@ var TimeDropdowns = (props) => {
|
|
|
17974
17998
|
triggerClassName,
|
|
17975
17999
|
density = "normal"
|
|
17976
18000
|
} = props;
|
|
17977
|
-
const minuteOptions =
|
|
18001
|
+
const minuteOptions = React76.useMemo(
|
|
17978
18002
|
() => buildMinuteOptions(minuteStep),
|
|
17979
18003
|
[minuteStep]
|
|
17980
18004
|
);
|
|
17981
|
-
const secondOptions =
|
|
18005
|
+
const secondOptions = React76.useMemo(
|
|
17982
18006
|
() => buildSecondOptions(secondStep),
|
|
17983
18007
|
[secondStep]
|
|
17984
18008
|
);
|
|
17985
|
-
const hourOptions =
|
|
18009
|
+
const hourOptions = React76.useMemo(
|
|
17986
18010
|
() => use12Hour ? buildHourOptions12() : buildHourOptions24(),
|
|
17987
18011
|
[use12Hour]
|
|
17988
18012
|
);
|
|
@@ -18321,7 +18345,7 @@ function parseRawToDate(rawDigits, kind) {
|
|
|
18321
18345
|
function meterSafeDigits(masked) {
|
|
18322
18346
|
return masked.replace(/\D+/g, "");
|
|
18323
18347
|
}
|
|
18324
|
-
var ShadcnDateVariant =
|
|
18348
|
+
var ShadcnDateVariant = React76.forwardRef(function ShadcnDateVariant2(props, ref) {
|
|
18325
18349
|
const {
|
|
18326
18350
|
// variant base bits
|
|
18327
18351
|
value,
|
|
@@ -18354,10 +18378,10 @@ var ShadcnDateVariant = React74.forwardRef(function ShadcnDateVariant2(props, re
|
|
|
18354
18378
|
const resolvedMask = inputMask != null ? inputMask : kindConfig.mask;
|
|
18355
18379
|
const defaultShowCalendar = kind === "date" || kind === "datetime";
|
|
18356
18380
|
const showCalendar = typeof showCalendarProp === "boolean" ? showCalendarProp : defaultShowCalendar;
|
|
18357
|
-
const [internalOpen, setInternalOpen] =
|
|
18381
|
+
const [internalOpen, setInternalOpen] = React76.useState(false);
|
|
18358
18382
|
const isControlledOpen = open !== void 0;
|
|
18359
18383
|
const currentOpen = isControlledOpen ? !!open : internalOpen;
|
|
18360
|
-
const handleOpenChange =
|
|
18384
|
+
const handleOpenChange = React76.useCallback(
|
|
18361
18385
|
(next) => {
|
|
18362
18386
|
if (!isControlledOpen) {
|
|
18363
18387
|
setInternalOpen(next);
|
|
@@ -18367,7 +18391,7 @@ var ShadcnDateVariant = React74.forwardRef(function ShadcnDateVariant2(props, re
|
|
|
18367
18391
|
[isControlledOpen, onOpenChange]
|
|
18368
18392
|
);
|
|
18369
18393
|
const { single, range } = normalizeValueForMode(value, mode);
|
|
18370
|
-
const displayValue =
|
|
18394
|
+
const displayValue = React76.useMemo(() => {
|
|
18371
18395
|
if (mode === "single") {
|
|
18372
18396
|
return formatDisplaySingle(single, singlePattern);
|
|
18373
18397
|
}
|
|
@@ -18378,12 +18402,12 @@ var ShadcnDateVariant = React74.forwardRef(function ShadcnDateVariant2(props, re
|
|
|
18378
18402
|
rangeSeparator
|
|
18379
18403
|
);
|
|
18380
18404
|
}, [mode, single, range, singlePattern, formatRange, rangeSeparator]);
|
|
18381
|
-
const [localText, setLocalText] =
|
|
18382
|
-
|
|
18405
|
+
const [localText, setLocalText] = React76.useState(displayValue);
|
|
18406
|
+
React76.useEffect(() => {
|
|
18383
18407
|
setLocalText(displayValue);
|
|
18384
18408
|
}, [displayValue]);
|
|
18385
18409
|
const showTimeDropdowns = mode === "single" && (kind === "datetime" || kind === "time" || kind === "hour");
|
|
18386
|
-
const handleSelect =
|
|
18410
|
+
const handleSelect = React76.useCallback(
|
|
18387
18411
|
(next) => {
|
|
18388
18412
|
let nextValue;
|
|
18389
18413
|
let nextRange;
|
|
@@ -18433,7 +18457,7 @@ var ShadcnDateVariant = React74.forwardRef(function ShadcnDateVariant2(props, re
|
|
|
18433
18457
|
},
|
|
18434
18458
|
[mode, stayOpenOnSelect, onValue, handleOpenChange, kind, single]
|
|
18435
18459
|
);
|
|
18436
|
-
const handleTimeChange =
|
|
18460
|
+
const handleTimeChange = React76.useCallback(
|
|
18437
18461
|
(next) => {
|
|
18438
18462
|
if (!next) {
|
|
18439
18463
|
const detail2 = {
|
|
@@ -18464,7 +18488,7 @@ var ShadcnDateVariant = React74.forwardRef(function ShadcnDateVariant2(props, re
|
|
|
18464
18488
|
},
|
|
18465
18489
|
[mode, kind, onValue]
|
|
18466
18490
|
);
|
|
18467
|
-
const handleClear =
|
|
18491
|
+
const handleClear = React76.useCallback(
|
|
18468
18492
|
(ev) => {
|
|
18469
18493
|
ev.preventDefault();
|
|
18470
18494
|
ev.stopPropagation();
|
|
@@ -18483,7 +18507,7 @@ var ShadcnDateVariant = React74.forwardRef(function ShadcnDateVariant2(props, re
|
|
|
18483
18507
|
);
|
|
18484
18508
|
const hasValue = hasSelection(value);
|
|
18485
18509
|
const placeholderText = typeof placeholder === "string" ? placeholder : mode === "range" ? "Select date range" : "Select date";
|
|
18486
|
-
const handleInputChange =
|
|
18510
|
+
const handleInputChange = React76.useCallback(
|
|
18487
18511
|
(event) => {
|
|
18488
18512
|
var _a, _b, _c;
|
|
18489
18513
|
if (mode !== "single") return;
|
|
@@ -18670,7 +18694,7 @@ function resolveBasePadding2(size, density) {
|
|
|
18670
18694
|
}
|
|
18671
18695
|
return { px, py };
|
|
18672
18696
|
}
|
|
18673
|
-
var Textarea =
|
|
18697
|
+
var Textarea = React76.forwardRef(
|
|
18674
18698
|
function Textarea2(rawProps, forwardedRef) {
|
|
18675
18699
|
const {
|
|
18676
18700
|
// layout wrapper
|
|
@@ -18718,8 +18742,8 @@ var Textarea = React74.forwardRef(
|
|
|
18718
18742
|
} = rawProps;
|
|
18719
18743
|
const sizeKey = size != null ? size : "md";
|
|
18720
18744
|
const densityKey = density != null ? density : "normal";
|
|
18721
|
-
const innerRef =
|
|
18722
|
-
|
|
18745
|
+
const innerRef = React76.useRef(null);
|
|
18746
|
+
React76.useImperativeHandle(
|
|
18723
18747
|
forwardedRef,
|
|
18724
18748
|
() => innerRef.current,
|
|
18725
18749
|
[]
|
|
@@ -18740,11 +18764,11 @@ var Textarea = React74.forwardRef(
|
|
|
18740
18764
|
const baseIconGap = iconGap != null ? iconGap : 1;
|
|
18741
18765
|
const leadingGap = leadingIconSpacing != null ? leadingIconSpacing : baseIconGap;
|
|
18742
18766
|
const trailingGap = trailingIconSpacing != null ? trailingIconSpacing : baseIconGap;
|
|
18743
|
-
const leadingIconsRef =
|
|
18744
|
-
const trailingIconsRef =
|
|
18745
|
-
const [leadingIconsWidth, setLeadingIconsWidth] =
|
|
18746
|
-
const [trailingIconsWidth, setTrailingIconsWidth] =
|
|
18747
|
-
const measureIconWidths =
|
|
18767
|
+
const leadingIconsRef = React76.useRef(null);
|
|
18768
|
+
const trailingIconsRef = React76.useRef(null);
|
|
18769
|
+
const [leadingIconsWidth, setLeadingIconsWidth] = React76.useState(0);
|
|
18770
|
+
const [trailingIconsWidth, setTrailingIconsWidth] = React76.useState(0);
|
|
18771
|
+
const measureIconWidths = React76.useCallback(() => {
|
|
18748
18772
|
if (typeof window === "undefined") return;
|
|
18749
18773
|
const lead = leadingIconsRef.current;
|
|
18750
18774
|
const trail = trailingIconsRef.current;
|
|
@@ -18761,7 +18785,7 @@ var Textarea = React74.forwardRef(
|
|
|
18761
18785
|
setTrailingIconsWidth(0);
|
|
18762
18786
|
}
|
|
18763
18787
|
}, []);
|
|
18764
|
-
|
|
18788
|
+
React76.useLayoutEffect(() => {
|
|
18765
18789
|
if (typeof window === "undefined" || typeof MutationObserver === "undefined") {
|
|
18766
18790
|
measureIconWidths();
|
|
18767
18791
|
return;
|
|
@@ -18790,10 +18814,10 @@ var Textarea = React74.forwardRef(
|
|
|
18790
18814
|
measureIconWidths();
|
|
18791
18815
|
return () => observers.forEach((o3) => o3.disconnect());
|
|
18792
18816
|
}, [measureIconWidths, hasLeadingIcons, hasTrailingIcons]);
|
|
18793
|
-
const [rowHeight, setRowHeight] =
|
|
18817
|
+
const [rowHeight, setRowHeight] = React76.useState(null);
|
|
18794
18818
|
const baseMinRows = Math.max(minRowsProp != null ? minRowsProp : 1, 1);
|
|
18795
|
-
const [rows, setRows] =
|
|
18796
|
-
|
|
18819
|
+
const [rows, setRows] = React76.useState(baseMinRows);
|
|
18820
|
+
React76.useLayoutEffect(() => {
|
|
18797
18821
|
if (typeof window === "undefined") return;
|
|
18798
18822
|
const el = innerRef.current;
|
|
18799
18823
|
if (!el) return;
|
|
@@ -18809,7 +18833,7 @@ var Textarea = React74.forwardRef(
|
|
|
18809
18833
|
setRows(baseMinRows);
|
|
18810
18834
|
}
|
|
18811
18835
|
}, [sizeKey, densityKey, baseMinRows]);
|
|
18812
|
-
const recomputeHeight =
|
|
18836
|
+
const recomputeHeight = React76.useCallback(() => {
|
|
18813
18837
|
if (!autoResize) return;
|
|
18814
18838
|
if (!innerRef.current) return;
|
|
18815
18839
|
if (!rowHeight) return;
|
|
@@ -18831,7 +18855,7 @@ var Textarea = React74.forwardRef(
|
|
|
18831
18855
|
el.style.height = `${nextHeight}px`;
|
|
18832
18856
|
setRows(nextRows);
|
|
18833
18857
|
}, [autoResize, rowHeight, baseMinRows, maxRows]);
|
|
18834
|
-
|
|
18858
|
+
React76.useLayoutEffect(() => {
|
|
18835
18859
|
recomputeHeight();
|
|
18836
18860
|
}, [recomputeHeight, rest.value, rest.defaultValue]);
|
|
18837
18861
|
const { px: pxDefault, py: pyDefault } = resolveBasePadding2(size, density);
|
|
@@ -18901,19 +18925,19 @@ var Textarea = React74.forwardRef(
|
|
|
18901
18925
|
const focusTextarea = () => {
|
|
18902
18926
|
if (innerRef.current) innerRef.current.focus();
|
|
18903
18927
|
};
|
|
18904
|
-
const handleFocus =
|
|
18928
|
+
const handleFocus = React76.useCallback(
|
|
18905
18929
|
(event) => {
|
|
18906
18930
|
onFocus == null ? void 0 : onFocus(event);
|
|
18907
18931
|
},
|
|
18908
18932
|
[onFocus]
|
|
18909
18933
|
);
|
|
18910
|
-
const handleBlur =
|
|
18934
|
+
const handleBlur = React76.useCallback(
|
|
18911
18935
|
(event) => {
|
|
18912
18936
|
onBlur == null ? void 0 : onBlur(event);
|
|
18913
18937
|
},
|
|
18914
18938
|
[onBlur]
|
|
18915
18939
|
);
|
|
18916
|
-
const handleChange =
|
|
18940
|
+
const handleChange = React76.useCallback(
|
|
18917
18941
|
(event) => {
|
|
18918
18942
|
onChange == null ? void 0 : onChange(event);
|
|
18919
18943
|
recomputeHeight();
|
|
@@ -19090,7 +19114,7 @@ function splitIntoTokens(raw, sep) {
|
|
|
19090
19114
|
}
|
|
19091
19115
|
return acc.map((t4) => t4.trim()).filter((t4) => t4.length > 0);
|
|
19092
19116
|
}
|
|
19093
|
-
var ShadcnChipsVariant =
|
|
19117
|
+
var ShadcnChipsVariant = React76.forwardRef(function ShadcnChipsVariant2(props, ref) {
|
|
19094
19118
|
var _a;
|
|
19095
19119
|
const {
|
|
19096
19120
|
// variant base bits
|
|
@@ -19127,20 +19151,20 @@ var ShadcnChipsVariant = React74.forwardRef(function ShadcnChipsVariant2(props,
|
|
|
19127
19151
|
...restTextProps
|
|
19128
19152
|
} = props;
|
|
19129
19153
|
const hasInvalidIncomingValue = value !== void 0 && !Array.isArray(value);
|
|
19130
|
-
|
|
19154
|
+
React76.useEffect(() => {
|
|
19131
19155
|
if (!hasInvalidIncomingValue) return;
|
|
19132
19156
|
console.warn(
|
|
19133
19157
|
"[form-palette] ShadcnChipsVariant expected `value` to be `string[] | undefined`; received:",
|
|
19134
19158
|
value
|
|
19135
19159
|
);
|
|
19136
19160
|
}, [hasInvalidIncomingValue, value]);
|
|
19137
|
-
const chips =
|
|
19161
|
+
const chips = React76.useMemo(
|
|
19138
19162
|
() => Array.isArray(value) ? value : [],
|
|
19139
19163
|
[value]
|
|
19140
19164
|
);
|
|
19141
19165
|
const hasChips = chips.length > 0;
|
|
19142
|
-
const [inputText, setInputText] =
|
|
19143
|
-
const emitChange =
|
|
19166
|
+
const [inputText, setInputText] = React76.useState("");
|
|
19167
|
+
const emitChange = React76.useCallback(
|
|
19144
19168
|
(nextChips, meta) => {
|
|
19145
19169
|
const detail = {
|
|
19146
19170
|
source: "variant",
|
|
@@ -19155,7 +19179,7 @@ var ShadcnChipsVariant = React74.forwardRef(function ShadcnChipsVariant2(props,
|
|
|
19155
19179
|
},
|
|
19156
19180
|
[onValue]
|
|
19157
19181
|
);
|
|
19158
|
-
const commitFromRaw =
|
|
19182
|
+
const commitFromRaw = React76.useCallback(
|
|
19159
19183
|
(raw) => {
|
|
19160
19184
|
const tokens = splitIntoTokens(raw, separators);
|
|
19161
19185
|
if (!tokens.length) return;
|
|
@@ -19176,7 +19200,7 @@ var ShadcnChipsVariant = React74.forwardRef(function ShadcnChipsVariant2(props,
|
|
|
19176
19200
|
},
|
|
19177
19201
|
[chips, separators, allowDuplicates, maxChips, emitChange, onAddChips]
|
|
19178
19202
|
);
|
|
19179
|
-
const handleRemoveAt =
|
|
19203
|
+
const handleRemoveAt = React76.useCallback(
|
|
19180
19204
|
(index) => {
|
|
19181
19205
|
if (index < 0 || index >= chips.length) return;
|
|
19182
19206
|
const removed = [chips[index]];
|
|
@@ -19186,7 +19210,7 @@ var ShadcnChipsVariant = React74.forwardRef(function ShadcnChipsVariant2(props,
|
|
|
19186
19210
|
},
|
|
19187
19211
|
[chips, emitChange, onRemoveChips]
|
|
19188
19212
|
);
|
|
19189
|
-
const handleClear =
|
|
19213
|
+
const handleClear = React76.useCallback(
|
|
19190
19214
|
(ev) => {
|
|
19191
19215
|
ev == null ? void 0 : ev.preventDefault();
|
|
19192
19216
|
ev == null ? void 0 : ev.stopPropagation();
|
|
@@ -19197,7 +19221,7 @@ var ShadcnChipsVariant = React74.forwardRef(function ShadcnChipsVariant2(props,
|
|
|
19197
19221
|
},
|
|
19198
19222
|
[chips, emitChange, onRemoveChips]
|
|
19199
19223
|
);
|
|
19200
|
-
const handleEntryChange =
|
|
19224
|
+
const handleEntryChange = React76.useCallback(
|
|
19201
19225
|
(event) => {
|
|
19202
19226
|
var _a2;
|
|
19203
19227
|
const next = (_a2 = event.target.value) != null ? _a2 : "";
|
|
@@ -19205,7 +19229,7 @@ var ShadcnChipsVariant = React74.forwardRef(function ShadcnChipsVariant2(props,
|
|
|
19205
19229
|
},
|
|
19206
19230
|
[]
|
|
19207
19231
|
);
|
|
19208
|
-
const handleEntryKeyDown =
|
|
19232
|
+
const handleEntryKeyDown = React76.useCallback(
|
|
19209
19233
|
(event) => {
|
|
19210
19234
|
const key = event.key;
|
|
19211
19235
|
if (key === "Enter" && addOnEnter) {
|
|
@@ -19236,7 +19260,7 @@ var ShadcnChipsVariant = React74.forwardRef(function ShadcnChipsVariant2(props,
|
|
|
19236
19260
|
handleRemoveAt
|
|
19237
19261
|
]
|
|
19238
19262
|
);
|
|
19239
|
-
const handleEntryBlur =
|
|
19263
|
+
const handleEntryBlur = React76.useCallback(
|
|
19240
19264
|
(event) => {
|
|
19241
19265
|
if (addOnBlur && inputText.trim().length) {
|
|
19242
19266
|
commitFromRaw(inputText);
|
|
@@ -19248,10 +19272,12 @@ var ShadcnChipsVariant = React74.forwardRef(function ShadcnChipsVariant2(props,
|
|
|
19248
19272
|
[addOnBlur, inputText, commitFromRaw, restTextProps]
|
|
19249
19273
|
);
|
|
19250
19274
|
const effectivePlaceholder = placeholder != null ? placeholder : hasChips ? "" : "Add item\u2026";
|
|
19275
|
+
const defaultMaxVisible = !textareaMode && placement !== "below" ? 3 : void 0;
|
|
19276
|
+
const effectiveMaxVisibleChips = maxVisibleChips !== void 0 ? maxVisibleChips : defaultMaxVisible;
|
|
19251
19277
|
let visibleChips = chips;
|
|
19252
19278
|
let hiddenCount = 0;
|
|
19253
|
-
if (typeof
|
|
19254
|
-
visibleChips = chips.slice(0,
|
|
19279
|
+
if (typeof effectiveMaxVisibleChips === "number" && effectiveMaxVisibleChips > 0 && chips.length > effectiveMaxVisibleChips) {
|
|
19280
|
+
visibleChips = chips.slice(0, effectiveMaxVisibleChips);
|
|
19255
19281
|
hiddenCount = chips.length - visibleChips.length;
|
|
19256
19282
|
}
|
|
19257
19283
|
const maxWidthStyle = maxChipWidth !== void 0 ? {
|
|
@@ -19261,7 +19287,7 @@ var ShadcnChipsVariant = React74.forwardRef(function ShadcnChipsVariant2(props,
|
|
|
19261
19287
|
const baseRemoveClasses = textareaMode ? "cursor-pointer text-[16px] opacity-70 hover:opacity-100 mt-0.5" : "cursor-pointer text-[16px] opacity-70 hover:opacity-100";
|
|
19262
19288
|
const chipNodes = visibleChips.map((chip, index) => {
|
|
19263
19289
|
if (renderChip) {
|
|
19264
|
-
return /* @__PURE__ */ jsx(
|
|
19290
|
+
return /* @__PURE__ */ jsx(React76.Fragment, { children: renderChip(chip, index, {
|
|
19265
19291
|
remove: () => handleRemoveAt(index),
|
|
19266
19292
|
chips
|
|
19267
19293
|
}) }, `${chip}-${index}`);
|
|
@@ -19310,25 +19336,69 @@ var ShadcnChipsVariant = React74.forwardRef(function ShadcnChipsVariant2(props,
|
|
|
19310
19336
|
);
|
|
19311
19337
|
});
|
|
19312
19338
|
if (hiddenCount > 0) {
|
|
19313
|
-
const
|
|
19314
|
-
|
|
19315
|
-
{
|
|
19316
|
-
|
|
19317
|
-
|
|
19318
|
-
"
|
|
19319
|
-
|
|
19320
|
-
|
|
19321
|
-
|
|
19322
|
-
|
|
19323
|
-
|
|
19324
|
-
|
|
19325
|
-
|
|
19326
|
-
|
|
19327
|
-
|
|
19328
|
-
|
|
19339
|
+
const hiddenChips = chips.slice(effectiveMaxVisibleChips != null ? effectiveMaxVisibleChips : 0);
|
|
19340
|
+
const defaultOverflow = /* @__PURE__ */ jsxs(Popover, { children: [
|
|
19341
|
+
/* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs(
|
|
19342
|
+
"button",
|
|
19343
|
+
{
|
|
19344
|
+
type: "button",
|
|
19345
|
+
className: cn(
|
|
19346
|
+
baseChipClasses,
|
|
19347
|
+
"cursor-pointer font-semibold bg-primary/10 text-primary hover:bg-primary/20",
|
|
19348
|
+
chipClassName
|
|
19349
|
+
),
|
|
19350
|
+
"data-slot": "chip-overflow",
|
|
19351
|
+
children: [
|
|
19352
|
+
"+",
|
|
19353
|
+
hiddenCount,
|
|
19354
|
+
" more"
|
|
19355
|
+
]
|
|
19356
|
+
}
|
|
19357
|
+
) }),
|
|
19358
|
+
/* @__PURE__ */ jsxs(PopoverContent, { className: "p-3 w-64 max-h-60 overflow-y-auto", align: "start", children: [
|
|
19359
|
+
/* @__PURE__ */ jsx("div", { className: "text-xs font-bold text-muted-foreground uppercase tracking-wider mb-2", children: "Hidden Chips" }),
|
|
19360
|
+
/* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-1.5", children: hiddenChips.map((chip, hiddenIdx) => {
|
|
19361
|
+
const actualIndex = (effectiveMaxVisibleChips != null ? effectiveMaxVisibleChips : 0) + hiddenIdx;
|
|
19362
|
+
let label = chip;
|
|
19363
|
+
if (typeof maxChipChars === "number" && maxChipChars > 0 && label.length > maxChipChars) {
|
|
19364
|
+
label = label.slice(0, maxChipChars) + "\u2026";
|
|
19365
|
+
}
|
|
19366
|
+
return /* @__PURE__ */ jsxs(
|
|
19367
|
+
"div",
|
|
19368
|
+
{
|
|
19369
|
+
className: cn(baseChipClasses, chipClassName, "max-w-full"),
|
|
19370
|
+
children: [
|
|
19371
|
+
/* @__PURE__ */ jsx(
|
|
19372
|
+
"span",
|
|
19373
|
+
{
|
|
19374
|
+
className: cn("truncate", chipLabelClassName),
|
|
19375
|
+
style: maxWidthStyle,
|
|
19376
|
+
children: label
|
|
19377
|
+
}
|
|
19378
|
+
),
|
|
19379
|
+
/* @__PURE__ */ jsx(
|
|
19380
|
+
"span",
|
|
19381
|
+
{
|
|
19382
|
+
className: cn(baseRemoveClasses, chipRemoveClassName),
|
|
19383
|
+
onClick: (e4) => {
|
|
19384
|
+
e4.preventDefault();
|
|
19385
|
+
e4.stopPropagation();
|
|
19386
|
+
handleRemoveAt(actualIndex);
|
|
19387
|
+
},
|
|
19388
|
+
"aria-hidden": "true",
|
|
19389
|
+
children: /* @__PURE__ */ jsx(X, { size: 14 })
|
|
19390
|
+
}
|
|
19391
|
+
)
|
|
19392
|
+
]
|
|
19393
|
+
},
|
|
19394
|
+
`${chip}-${actualIndex}`
|
|
19395
|
+
);
|
|
19396
|
+
}) })
|
|
19397
|
+
] })
|
|
19398
|
+
] });
|
|
19329
19399
|
const node = (_a = renderOverflowChip == null ? void 0 : renderOverflowChip(hiddenCount, chips)) != null ? _a : defaultOverflow;
|
|
19330
19400
|
chipNodes.push(
|
|
19331
|
-
/* @__PURE__ */ jsx(
|
|
19401
|
+
/* @__PURE__ */ jsx(React76.Fragment, { children: node }, "__overflow")
|
|
19332
19402
|
);
|
|
19333
19403
|
}
|
|
19334
19404
|
const effectivePlacement = textareaMode ? placement != null ? placement : "inline" : placement != null ? placement : "inline";
|
|
@@ -19522,7 +19592,7 @@ var chipVariant = {
|
|
|
19522
19592
|
tags: ["chips", "multi-select", "tags"]
|
|
19523
19593
|
}
|
|
19524
19594
|
};
|
|
19525
|
-
var ShadcnTextareaVariant =
|
|
19595
|
+
var ShadcnTextareaVariant = React76.forwardRef(function ShadcnTextareaVariant2(props, ref) {
|
|
19526
19596
|
const {
|
|
19527
19597
|
value,
|
|
19528
19598
|
onValue,
|
|
@@ -19530,7 +19600,7 @@ var ShadcnTextareaVariant = React74.forwardRef(function ShadcnTextareaVariant2(p
|
|
|
19530
19600
|
// everything else goes straight to the UI Textarea
|
|
19531
19601
|
...rest
|
|
19532
19602
|
} = props;
|
|
19533
|
-
const handleChange =
|
|
19603
|
+
const handleChange = React76.useCallback(
|
|
19534
19604
|
(event) => {
|
|
19535
19605
|
var _a;
|
|
19536
19606
|
const next = (_a = event.target.value) != null ? _a : "";
|
|
@@ -19625,7 +19695,7 @@ function switchThumbSize(size) {
|
|
|
19625
19695
|
if (size === "lg") return "size-5";
|
|
19626
19696
|
return "size-4";
|
|
19627
19697
|
}
|
|
19628
|
-
var ShadcnToggleVariant =
|
|
19698
|
+
var ShadcnToggleVariant = React76.forwardRef(function ShadcnToggleVariant2(props, _ref) {
|
|
19629
19699
|
const {
|
|
19630
19700
|
// variant bits
|
|
19631
19701
|
value,
|
|
@@ -19647,7 +19717,7 @@ var ShadcnToggleVariant = React74.forwardRef(function ShadcnToggleVariant2(props
|
|
|
19647
19717
|
...restSwitchProps
|
|
19648
19718
|
} = props;
|
|
19649
19719
|
const checked = !!value;
|
|
19650
|
-
const handleToggle =
|
|
19720
|
+
const handleToggle = React76.useCallback(
|
|
19651
19721
|
(next) => {
|
|
19652
19722
|
const nextVal = Boolean(next);
|
|
19653
19723
|
const detail = {
|
|
@@ -20173,7 +20243,7 @@ var InnerShadcnRadioVariant = (props, ref) => {
|
|
|
20173
20243
|
...restGroupProps
|
|
20174
20244
|
} = props;
|
|
20175
20245
|
const hasError = !!error;
|
|
20176
|
-
const normalized =
|
|
20246
|
+
const normalized = React76.useMemo(
|
|
20177
20247
|
() => normalizeItems(
|
|
20178
20248
|
items != null ? items : options,
|
|
20179
20249
|
mappers,
|
|
@@ -20204,14 +20274,14 @@ var InnerShadcnRadioVariant = (props, ref) => {
|
|
|
20204
20274
|
optionTagOnClick
|
|
20205
20275
|
]
|
|
20206
20276
|
);
|
|
20207
|
-
const selectedString =
|
|
20277
|
+
const selectedString = React76.useMemo(() => {
|
|
20208
20278
|
if (value === void 0) return void 0;
|
|
20209
20279
|
const found = normalized.find(
|
|
20210
20280
|
(item) => isEqualValue(item.value, value)
|
|
20211
20281
|
);
|
|
20212
20282
|
return found ? String(found.value) : void 0;
|
|
20213
20283
|
}, [normalized, value]);
|
|
20214
|
-
const handleSelect =
|
|
20284
|
+
const handleSelect = React76.useCallback(
|
|
20215
20285
|
(next, selectedRaw) => {
|
|
20216
20286
|
if (!onValue || disabled) return;
|
|
20217
20287
|
const detail = {
|
|
@@ -20225,7 +20295,7 @@ var InnerShadcnRadioVariant = (props, ref) => {
|
|
|
20225
20295
|
},
|
|
20226
20296
|
[onValue, disabled]
|
|
20227
20297
|
);
|
|
20228
|
-
const handleRadioChange =
|
|
20298
|
+
const handleRadioChange = React76.useCallback(
|
|
20229
20299
|
(raw) => {
|
|
20230
20300
|
var _a;
|
|
20231
20301
|
const found = normalized.find((item) => String(item.value) === raw);
|
|
@@ -20367,7 +20437,7 @@ var InnerShadcnRadioVariant = (props, ref) => {
|
|
|
20367
20437
|
}
|
|
20368
20438
|
);
|
|
20369
20439
|
};
|
|
20370
|
-
var ShadcnRadioVariant =
|
|
20440
|
+
var ShadcnRadioVariant = React76.forwardRef(
|
|
20371
20441
|
InnerShadcnRadioVariant
|
|
20372
20442
|
);
|
|
20373
20443
|
|
|
@@ -20627,7 +20697,7 @@ var InnerShadcnCheckboxVariant = (props, ref) => {
|
|
|
20627
20697
|
} = props;
|
|
20628
20698
|
const hasError = !!error;
|
|
20629
20699
|
const isSingle = !!single;
|
|
20630
|
-
const normalized =
|
|
20700
|
+
const normalized = React76.useMemo(
|
|
20631
20701
|
() => normalizeItems2(
|
|
20632
20702
|
items != null ? items : options,
|
|
20633
20703
|
mappers,
|
|
@@ -20730,14 +20800,14 @@ var InnerShadcnCheckboxVariant = (props, ref) => {
|
|
|
20730
20800
|
}
|
|
20731
20801
|
);
|
|
20732
20802
|
}
|
|
20733
|
-
const normalizedByValueKey =
|
|
20803
|
+
const normalizedByValueKey = React76.useMemo(() => {
|
|
20734
20804
|
const lookup = /* @__PURE__ */ new Map();
|
|
20735
20805
|
normalized.forEach((item) => {
|
|
20736
20806
|
lookup.set(valueLookupKey(item.value), item);
|
|
20737
20807
|
});
|
|
20738
20808
|
return lookup;
|
|
20739
20809
|
}, [normalized]);
|
|
20740
|
-
const groupValue =
|
|
20810
|
+
const groupValue = React76.useMemo(() => {
|
|
20741
20811
|
const source = asGroupValue(value);
|
|
20742
20812
|
if (!(source == null ? void 0 : source.length)) return source;
|
|
20743
20813
|
return source.map((entry) => {
|
|
@@ -20775,21 +20845,21 @@ var InnerShadcnCheckboxVariant = (props, ref) => {
|
|
|
20775
20845
|
labelTextSizeClass: labelTextSize2(size),
|
|
20776
20846
|
descriptionTextSizeClass: descriptionTextSize2(size)
|
|
20777
20847
|
});
|
|
20778
|
-
const hasAnyTristate =
|
|
20848
|
+
const hasAnyTristate = React76.useMemo(
|
|
20779
20849
|
() => normalized.some((item) => {
|
|
20780
20850
|
var _a, _b;
|
|
20781
20851
|
return (_b = (_a = item.tristate) != null ? _a : tristateDefault) != null ? _b : false;
|
|
20782
20852
|
}),
|
|
20783
20853
|
[normalized, tristateDefault]
|
|
20784
20854
|
);
|
|
20785
|
-
const findEntryIndex =
|
|
20855
|
+
const findEntryIndex = React76.useCallback(
|
|
20786
20856
|
(val) => {
|
|
20787
20857
|
if (!groupValue) return -1;
|
|
20788
20858
|
return groupValue.findIndex((e4) => isEqualValue2(e4.value, val));
|
|
20789
20859
|
},
|
|
20790
20860
|
[groupValue]
|
|
20791
20861
|
);
|
|
20792
|
-
const getEntryState =
|
|
20862
|
+
const getEntryState = React76.useCallback(
|
|
20793
20863
|
(val) => {
|
|
20794
20864
|
const idx = findEntryIndex(val);
|
|
20795
20865
|
if (!groupValue || idx === -1) return "none";
|
|
@@ -20797,7 +20867,7 @@ var InnerShadcnCheckboxVariant = (props, ref) => {
|
|
|
20797
20867
|
},
|
|
20798
20868
|
[groupValue, findEntryIndex]
|
|
20799
20869
|
);
|
|
20800
|
-
const updateGroupValue =
|
|
20870
|
+
const updateGroupValue = React76.useCallback(
|
|
20801
20871
|
(itemValue, nextInternal, effectiveTristate) => {
|
|
20802
20872
|
if (!onValue || disabled) return;
|
|
20803
20873
|
const currentList = groupValue ? [...groupValue] : [];
|
|
@@ -21027,7 +21097,7 @@ var InnerShadcnCheckboxVariant = (props, ref) => {
|
|
|
21027
21097
|
}
|
|
21028
21098
|
);
|
|
21029
21099
|
};
|
|
21030
|
-
var ShadcnCheckboxVariant =
|
|
21100
|
+
var ShadcnCheckboxVariant = React76.forwardRef(
|
|
21031
21101
|
InnerShadcnCheckboxVariant
|
|
21032
21102
|
);
|
|
21033
21103
|
|
|
@@ -21056,14 +21126,14 @@ function ScrollArea({
|
|
|
21056
21126
|
...props
|
|
21057
21127
|
}) {
|
|
21058
21128
|
return /* @__PURE__ */ jsxs(
|
|
21059
|
-
|
|
21129
|
+
ScrollAreaPrimitive2.Root,
|
|
21060
21130
|
{
|
|
21061
21131
|
"data-slot": "scroll-area",
|
|
21062
21132
|
className: cn("relative", className),
|
|
21063
21133
|
...props,
|
|
21064
21134
|
children: [
|
|
21065
21135
|
/* @__PURE__ */ jsx(
|
|
21066
|
-
|
|
21136
|
+
ScrollAreaPrimitive2.Viewport,
|
|
21067
21137
|
{
|
|
21068
21138
|
"data-slot": "scroll-area-viewport",
|
|
21069
21139
|
className: "focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1",
|
|
@@ -21071,7 +21141,7 @@ function ScrollArea({
|
|
|
21071
21141
|
}
|
|
21072
21142
|
),
|
|
21073
21143
|
/* @__PURE__ */ jsx(ScrollBar, {}),
|
|
21074
|
-
/* @__PURE__ */ jsx(
|
|
21144
|
+
/* @__PURE__ */ jsx(ScrollAreaPrimitive2.Corner, {})
|
|
21075
21145
|
]
|
|
21076
21146
|
}
|
|
21077
21147
|
);
|
|
@@ -21082,7 +21152,7 @@ function ScrollBar({
|
|
|
21082
21152
|
...props
|
|
21083
21153
|
}) {
|
|
21084
21154
|
return /* @__PURE__ */ jsx(
|
|
21085
|
-
|
|
21155
|
+
ScrollAreaPrimitive2.ScrollAreaScrollbar,
|
|
21086
21156
|
{
|
|
21087
21157
|
"data-slot": "scroll-area-scrollbar",
|
|
21088
21158
|
orientation,
|
|
@@ -21094,7 +21164,7 @@ function ScrollBar({
|
|
|
21094
21164
|
),
|
|
21095
21165
|
...props,
|
|
21096
21166
|
children: /* @__PURE__ */ jsx(
|
|
21097
|
-
|
|
21167
|
+
ScrollAreaPrimitive2.ScrollAreaThumb,
|
|
21098
21168
|
{
|
|
21099
21169
|
"data-slot": "scroll-area-thumb",
|
|
21100
21170
|
className: "bg-border relative flex-1 rounded-full"
|
|
@@ -21103,6 +21173,102 @@ function ScrollBar({
|
|
|
21103
21173
|
}
|
|
21104
21174
|
);
|
|
21105
21175
|
}
|
|
21176
|
+
function VirtualScroll({
|
|
21177
|
+
className,
|
|
21178
|
+
rootProps,
|
|
21179
|
+
scrollbarProps,
|
|
21180
|
+
style,
|
|
21181
|
+
components,
|
|
21182
|
+
...props
|
|
21183
|
+
}) {
|
|
21184
|
+
const Scroller = React76.useMemo(() => {
|
|
21185
|
+
return React76.forwardRef((scrollerProps, ref) => {
|
|
21186
|
+
return /* @__PURE__ */ jsx(
|
|
21187
|
+
ScrollAreaPrimitive2.Viewport,
|
|
21188
|
+
{
|
|
21189
|
+
...scrollerProps,
|
|
21190
|
+
ref,
|
|
21191
|
+
"data-slot": "scroll-area-viewport",
|
|
21192
|
+
className: "focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1"
|
|
21193
|
+
}
|
|
21194
|
+
);
|
|
21195
|
+
});
|
|
21196
|
+
}, []);
|
|
21197
|
+
const combinedComponents = React76.useMemo(() => {
|
|
21198
|
+
return {
|
|
21199
|
+
...components,
|
|
21200
|
+
Scroller
|
|
21201
|
+
};
|
|
21202
|
+
}, [components, Scroller]);
|
|
21203
|
+
return /* @__PURE__ */ jsxs(
|
|
21204
|
+
ScrollAreaPrimitive2.Root,
|
|
21205
|
+
{
|
|
21206
|
+
"data-slot": "scroll-area",
|
|
21207
|
+
className,
|
|
21208
|
+
...rootProps,
|
|
21209
|
+
style: { ...style, position: "relative" },
|
|
21210
|
+
children: [
|
|
21211
|
+
/* @__PURE__ */ jsx(
|
|
21212
|
+
Virtuoso,
|
|
21213
|
+
{
|
|
21214
|
+
...props,
|
|
21215
|
+
components: combinedComponents
|
|
21216
|
+
}
|
|
21217
|
+
),
|
|
21218
|
+
/* @__PURE__ */ jsx(ScrollBar, { ...scrollbarProps }),
|
|
21219
|
+
/* @__PURE__ */ jsx(ScrollAreaPrimitive2.Corner, {})
|
|
21220
|
+
]
|
|
21221
|
+
}
|
|
21222
|
+
);
|
|
21223
|
+
}
|
|
21224
|
+
function VirtualScrollGrid({
|
|
21225
|
+
className,
|
|
21226
|
+
rootProps,
|
|
21227
|
+
scrollbarProps,
|
|
21228
|
+
style,
|
|
21229
|
+
components,
|
|
21230
|
+
...props
|
|
21231
|
+
}) {
|
|
21232
|
+
const Scroller = React76.useMemo(() => {
|
|
21233
|
+
return React76.forwardRef((scrollerProps, ref) => {
|
|
21234
|
+
return /* @__PURE__ */ jsx(
|
|
21235
|
+
ScrollAreaPrimitive2.Viewport,
|
|
21236
|
+
{
|
|
21237
|
+
...scrollerProps,
|
|
21238
|
+
ref,
|
|
21239
|
+
"data-slot": "scroll-area-viewport",
|
|
21240
|
+
className: "focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1"
|
|
21241
|
+
}
|
|
21242
|
+
);
|
|
21243
|
+
});
|
|
21244
|
+
}, []);
|
|
21245
|
+
const combinedComponents = React76.useMemo(() => {
|
|
21246
|
+
return {
|
|
21247
|
+
...components,
|
|
21248
|
+
Scroller
|
|
21249
|
+
};
|
|
21250
|
+
}, [components, Scroller]);
|
|
21251
|
+
return /* @__PURE__ */ jsxs(
|
|
21252
|
+
ScrollAreaPrimitive2.Root,
|
|
21253
|
+
{
|
|
21254
|
+
"data-slot": "scroll-area",
|
|
21255
|
+
className,
|
|
21256
|
+
...rootProps,
|
|
21257
|
+
style: { ...style, position: "relative" },
|
|
21258
|
+
children: [
|
|
21259
|
+
/* @__PURE__ */ jsx(
|
|
21260
|
+
VirtuosoGrid,
|
|
21261
|
+
{
|
|
21262
|
+
...props,
|
|
21263
|
+
components: combinedComponents
|
|
21264
|
+
}
|
|
21265
|
+
),
|
|
21266
|
+
/* @__PURE__ */ jsx(ScrollBar, { ...scrollbarProps }),
|
|
21267
|
+
/* @__PURE__ */ jsx(ScrollAreaPrimitive2.Corner, {})
|
|
21268
|
+
]
|
|
21269
|
+
}
|
|
21270
|
+
);
|
|
21271
|
+
}
|
|
21106
21272
|
function normalizeOptions(opts, config) {
|
|
21107
21273
|
return globalNormalizeOptions(opts, config);
|
|
21108
21274
|
}
|
|
@@ -21127,7 +21293,7 @@ function triggerPadding(density) {
|
|
|
21127
21293
|
return "py-1.5";
|
|
21128
21294
|
}
|
|
21129
21295
|
}
|
|
21130
|
-
var ShadcnSelectVariant =
|
|
21296
|
+
var ShadcnSelectVariant = React76.forwardRef(function ShadcnSelectVariant2(props, _ref) {
|
|
21131
21297
|
var _a, _b;
|
|
21132
21298
|
const {
|
|
21133
21299
|
value,
|
|
@@ -21159,6 +21325,7 @@ var ShadcnSelectVariant = React74.forwardRef(function ShadcnSelectVariant2(props
|
|
|
21159
21325
|
clearable,
|
|
21160
21326
|
placeholder,
|
|
21161
21327
|
className,
|
|
21328
|
+
style,
|
|
21162
21329
|
triggerClassName,
|
|
21163
21330
|
contentClassName,
|
|
21164
21331
|
renderOption,
|
|
@@ -21185,9 +21352,9 @@ var ShadcnSelectVariant = React74.forwardRef(function ShadcnSelectVariant2(props
|
|
|
21185
21352
|
virtualScroll = true
|
|
21186
21353
|
} = props;
|
|
21187
21354
|
const isButtonMode = mode === "button";
|
|
21188
|
-
const [open, setOpen] =
|
|
21189
|
-
const [query, setQuery] =
|
|
21190
|
-
const items =
|
|
21355
|
+
const [open, setOpen] = React76.useState(false);
|
|
21356
|
+
const [query, setQuery] = React76.useState("");
|
|
21357
|
+
const items = React76.useMemo(
|
|
21191
21358
|
() => normalizeOptions(options != null ? options : [], {
|
|
21192
21359
|
autoCap,
|
|
21193
21360
|
optionLabel,
|
|
@@ -21223,7 +21390,7 @@ var ShadcnSelectVariant = React74.forwardRef(function ShadcnSelectVariant2(props
|
|
|
21223
21390
|
]
|
|
21224
21391
|
);
|
|
21225
21392
|
const normalizedValue = value === "" || value == null ? void 0 : value;
|
|
21226
|
-
const valueMap =
|
|
21393
|
+
const valueMap = React76.useMemo(() => {
|
|
21227
21394
|
const map = /* @__PURE__ */ new Map();
|
|
21228
21395
|
for (const item of items) {
|
|
21229
21396
|
map.set(String(item.value), item.value);
|
|
@@ -21233,7 +21400,7 @@ var ShadcnSelectVariant = React74.forwardRef(function ShadcnSelectVariant2(props
|
|
|
21233
21400
|
const selectedItem = normalizedValue == null ? null : (_a = items.find(
|
|
21234
21401
|
(it) => String(it.value) === String(normalizedValue)
|
|
21235
21402
|
)) != null ? _a : null;
|
|
21236
|
-
const filteredItems =
|
|
21403
|
+
const filteredItems = React76.useMemo(() => {
|
|
21237
21404
|
if (!query) return items;
|
|
21238
21405
|
const q2 = query.toLowerCase();
|
|
21239
21406
|
return items.filter((it) => it.labelText.toLowerCase().includes(q2));
|
|
@@ -21245,7 +21412,7 @@ var ShadcnSelectVariant = React74.forwardRef(function ShadcnSelectVariant2(props
|
|
|
21245
21412
|
listMaxHeight,
|
|
21246
21413
|
Math.max(estimatedRowHeight, filteredItems.length * estimatedRowHeight)
|
|
21247
21414
|
);
|
|
21248
|
-
const handleChange =
|
|
21415
|
+
const handleChange = React76.useCallback(
|
|
21249
21416
|
(rawKey) => {
|
|
21250
21417
|
var _a2, _b2, _c, _d;
|
|
21251
21418
|
if (!onValue || rawKey === "") return;
|
|
@@ -21294,7 +21461,7 @@ var ShadcnSelectVariant = React74.forwardRef(function ShadcnSelectVariant2(props
|
|
|
21294
21461
|
"focus-within:border-ring focus-within:ring-ring/50 focus-within:ring-[3px]",
|
|
21295
21462
|
"aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive"
|
|
21296
21463
|
);
|
|
21297
|
-
const ButtonModeTrigger =
|
|
21464
|
+
const ButtonModeTrigger = React76.useMemo(() => {
|
|
21298
21465
|
if (!isButtonMode) return null;
|
|
21299
21466
|
const selectedValue = value;
|
|
21300
21467
|
const renderable = button != null ? button : children;
|
|
@@ -21369,8 +21536,10 @@ var ShadcnSelectVariant = React74.forwardRef(function ShadcnSelectVariant2(props
|
|
|
21369
21536
|
heightCls,
|
|
21370
21537
|
padCls,
|
|
21371
21538
|
hasControls && joinControls && extendBoxToControls ? "border-none shadow-none focus:ring-0 focus:outline-none" : "",
|
|
21372
|
-
triggerClassName
|
|
21539
|
+
triggerClassName,
|
|
21540
|
+
!joinControls && className
|
|
21373
21541
|
),
|
|
21542
|
+
style: !joinControls ? style : void 0,
|
|
21374
21543
|
children: /* @__PURE__ */ jsxs("div", { className: "flex w-full items-center justify-between gap-2", children: [
|
|
21375
21544
|
/* @__PURE__ */ jsxs("div", { className: "flex min-w-0 items-center gap-2", children: [
|
|
21376
21545
|
hasLeadingIcons && /* @__PURE__ */ jsx(
|
|
@@ -21453,7 +21622,7 @@ var ShadcnSelectVariant = React74.forwardRef(function ShadcnSelectVariant2(props
|
|
|
21453
21622
|
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 ? (
|
|
21454
21623
|
// CASE 3: normal list, virtualized
|
|
21455
21624
|
/* @__PURE__ */ jsx(
|
|
21456
|
-
|
|
21625
|
+
VirtualScroll,
|
|
21457
21626
|
{
|
|
21458
21627
|
style: { height: listHeight },
|
|
21459
21628
|
data: filteredItems,
|
|
@@ -21584,8 +21753,7 @@ var ShadcnSelectVariant = React74.forwardRef(function ShadcnSelectVariant2(props
|
|
|
21584
21753
|
"data-slot": "select-field",
|
|
21585
21754
|
className: cn(
|
|
21586
21755
|
"w-full",
|
|
21587
|
-
disabled && "opacity-50 cursor-not-allowed"
|
|
21588
|
-
className
|
|
21756
|
+
disabled && "opacity-50 cursor-not-allowed"
|
|
21589
21757
|
),
|
|
21590
21758
|
"aria-disabled": disabled || void 0,
|
|
21591
21759
|
"aria-invalid": error ? "true" : void 0,
|
|
@@ -21615,6 +21783,7 @@ var ShadcnSelectVariant = React74.forwardRef(function ShadcnSelectVariant2(props
|
|
|
21615
21783
|
"div",
|
|
21616
21784
|
{
|
|
21617
21785
|
className: groupClassName,
|
|
21786
|
+
style,
|
|
21618
21787
|
"data-slot": "select-group",
|
|
21619
21788
|
"data-disabled": disabled ? "true" : "false",
|
|
21620
21789
|
children: [
|
|
@@ -21660,8 +21829,7 @@ var ShadcnSelectVariant = React74.forwardRef(function ShadcnSelectVariant2(props
|
|
|
21660
21829
|
"data-slot": "select-field",
|
|
21661
21830
|
className: cn(
|
|
21662
21831
|
"flex items-stretch w-full",
|
|
21663
|
-
disabled && "opacity-50 cursor-not-allowed"
|
|
21664
|
-
className
|
|
21832
|
+
disabled && "opacity-50 cursor-not-allowed"
|
|
21665
21833
|
),
|
|
21666
21834
|
"aria-disabled": disabled || void 0,
|
|
21667
21835
|
"aria-invalid": error ? "true" : void 0,
|
|
@@ -21719,10 +21887,10 @@ var SelectionSummary = ({
|
|
|
21719
21887
|
placeholder,
|
|
21720
21888
|
onRemoveValue
|
|
21721
21889
|
}) => {
|
|
21722
|
-
const containerRef =
|
|
21723
|
-
const [visibleCount, setVisibleCount] =
|
|
21724
|
-
const [moreOpen, setMoreOpen] =
|
|
21725
|
-
|
|
21890
|
+
const containerRef = React76.useRef(null);
|
|
21891
|
+
const [visibleCount, setVisibleCount] = React76.useState(0);
|
|
21892
|
+
const [moreOpen, setMoreOpen] = React76.useState(false);
|
|
21893
|
+
React76.useLayoutEffect(() => {
|
|
21726
21894
|
const el = containerRef.current;
|
|
21727
21895
|
if (!el) return;
|
|
21728
21896
|
const computeVisibleItems = () => {
|
|
@@ -21770,7 +21938,7 @@ var SelectionSummary = ({
|
|
|
21770
21938
|
ref: containerRef,
|
|
21771
21939
|
className: "flex items-center w-full overflow-hidden whitespace-nowrap",
|
|
21772
21940
|
children: [
|
|
21773
|
-
visibleItems.map((item, index) => /* @__PURE__ */ jsxs(
|
|
21941
|
+
visibleItems.map((item, index) => /* @__PURE__ */ jsxs(React76.Fragment, { children: [
|
|
21774
21942
|
/* @__PURE__ */ jsx("span", { className: "truncate flex-shrink-0", children: item.labelNode }),
|
|
21775
21943
|
index < visibleItems.length - 1 && /* @__PURE__ */ jsx("span", { className: "text-muted-foreground mr-1", children: "," })
|
|
21776
21944
|
] }, item.key)),
|
|
@@ -21851,7 +22019,7 @@ function removeSelectValue(current, valueToRemove) {
|
|
|
21851
22019
|
return current.filter((v2) => String(v2) !== target);
|
|
21852
22020
|
}
|
|
21853
22021
|
|
|
21854
|
-
// src/presets/shadcn
|
|
22022
|
+
// src/presets/shadcn/variants/multiselect.tsx
|
|
21855
22023
|
var import_lodash = __toESM(require_lodash());
|
|
21856
22024
|
function normalizeOptions2(opts, config) {
|
|
21857
22025
|
return globalNormalizeOptions(opts, config);
|
|
@@ -21877,7 +22045,7 @@ function triggerPadding2(density) {
|
|
|
21877
22045
|
return "py-1.5";
|
|
21878
22046
|
}
|
|
21879
22047
|
}
|
|
21880
|
-
var ShadcnMultiSelectVariant =
|
|
22048
|
+
var ShadcnMultiSelectVariant = React76.forwardRef(function ShadcnMultiSelectVariant2(props, _ref) {
|
|
21881
22049
|
var _a;
|
|
21882
22050
|
const {
|
|
21883
22051
|
value,
|
|
@@ -21940,9 +22108,9 @@ var ShadcnMultiSelectVariant = React74.forwardRef(function ShadcnMultiSelectVari
|
|
|
21940
22108
|
selectedBadgeClassName,
|
|
21941
22109
|
selectedBadgePlacement = "end"
|
|
21942
22110
|
} = props;
|
|
21943
|
-
const [open, setOpen] =
|
|
21944
|
-
const [query, setQuery] =
|
|
21945
|
-
const { items, keyedItems } =
|
|
22111
|
+
const [open, setOpen] = React76.useState(false);
|
|
22112
|
+
const [query, setQuery] = React76.useState("");
|
|
22113
|
+
const { items, keyedItems } = React76.useMemo(() => {
|
|
21946
22114
|
const items2 = normalizeOptions2(options != null ? options : [], {
|
|
21947
22115
|
autoCap,
|
|
21948
22116
|
optionLabel,
|
|
@@ -21977,24 +22145,24 @@ var ShadcnMultiSelectVariant = React74.forwardRef(function ShadcnMultiSelectVari
|
|
|
21977
22145
|
optionTagBgColor,
|
|
21978
22146
|
optionTagOnClick
|
|
21979
22147
|
]);
|
|
21980
|
-
const selectedValues =
|
|
22148
|
+
const selectedValues = React76.useMemo(
|
|
21981
22149
|
() => new Set(value != null ? value : []),
|
|
21982
22150
|
[value]
|
|
21983
22151
|
);
|
|
21984
|
-
const selectedItems =
|
|
22152
|
+
const selectedItems = React76.useMemo(
|
|
21985
22153
|
() => items.filter((it) => selectedValues.has(it.value)),
|
|
21986
22154
|
[items, selectedValues]
|
|
21987
22155
|
);
|
|
21988
|
-
const filteredItems =
|
|
22156
|
+
const filteredItems = React76.useMemo(() => {
|
|
21989
22157
|
if (!query) return items;
|
|
21990
22158
|
const q2 = query.toLowerCase();
|
|
21991
22159
|
return items.filter((it) => it.labelText.toLowerCase().includes(q2));
|
|
21992
22160
|
}, [items, query]);
|
|
21993
|
-
const selectableItems =
|
|
22161
|
+
const selectableItems = React76.useMemo(
|
|
21994
22162
|
() => items.filter((it) => !it.disabled),
|
|
21995
22163
|
[items]
|
|
21996
22164
|
);
|
|
21997
|
-
const allSelectableValues =
|
|
22165
|
+
const allSelectableValues = React76.useMemo(
|
|
21998
22166
|
() => new Set(selectableItems.map((it) => it.value)),
|
|
21999
22167
|
[selectableItems]
|
|
22000
22168
|
);
|
|
@@ -22014,7 +22182,7 @@ var ShadcnMultiSelectVariant = React74.forwardRef(function ShadcnMultiSelectVari
|
|
|
22014
22182
|
filteredItems.length * estimatedRowHeight + headerHeight + footerHeight
|
|
22015
22183
|
)
|
|
22016
22184
|
);
|
|
22017
|
-
const handleToggleValue =
|
|
22185
|
+
const handleToggleValue = React76.useCallback(
|
|
22018
22186
|
(primitive) => {
|
|
22019
22187
|
if (!onValue || disabled || readOnly) return;
|
|
22020
22188
|
const current = value != null ? value : [];
|
|
@@ -22048,7 +22216,7 @@ var ShadcnMultiSelectVariant = React74.forwardRef(function ShadcnMultiSelectVari
|
|
|
22048
22216
|
},
|
|
22049
22217
|
[onValue, value, disabled, readOnly, keyedItems]
|
|
22050
22218
|
);
|
|
22051
|
-
const handleSelectAll =
|
|
22219
|
+
const handleSelectAll = React76.useCallback(() => {
|
|
22052
22220
|
if (!onValue || disabled || readOnly) return;
|
|
22053
22221
|
const current = value != null ? value : [];
|
|
22054
22222
|
const allSelectableArr = Array.from(allSelectableValues);
|
|
@@ -22089,7 +22257,7 @@ var ShadcnMultiSelectVariant = React74.forwardRef(function ShadcnMultiSelectVari
|
|
|
22089
22257
|
selectedValues,
|
|
22090
22258
|
keyedItems
|
|
22091
22259
|
]);
|
|
22092
|
-
const handleClearAll =
|
|
22260
|
+
const handleClearAll = React76.useCallback(() => {
|
|
22093
22261
|
if (!onValue || disabled || readOnly) return;
|
|
22094
22262
|
const detail = {
|
|
22095
22263
|
source: "variant",
|
|
@@ -22141,7 +22309,7 @@ var ShadcnMultiSelectVariant = React74.forwardRef(function ShadcnMultiSelectVari
|
|
|
22141
22309
|
const hasLeadingControl = !!leadingControl;
|
|
22142
22310
|
const hasTrailingControl = !!trailingControl;
|
|
22143
22311
|
const hasControls = hasLeadingControl || hasTrailingControl;
|
|
22144
|
-
const makeCheckboxNode =
|
|
22312
|
+
const makeCheckboxNode = React76.useCallback(
|
|
22145
22313
|
(opts) => {
|
|
22146
22314
|
if (renderCheckbox) {
|
|
22147
22315
|
return renderCheckbox(opts);
|
|
@@ -22237,7 +22405,7 @@ var ShadcnMultiSelectVariant = React74.forwardRef(function ShadcnMultiSelectVari
|
|
|
22237
22405
|
] })
|
|
22238
22406
|
}
|
|
22239
22407
|
);
|
|
22240
|
-
const ButtonModeTrigger =
|
|
22408
|
+
const ButtonModeTrigger = React76.useMemo(() => {
|
|
22241
22409
|
if (mode !== "button") return null;
|
|
22242
22410
|
const selectedCount = selectedItems.length;
|
|
22243
22411
|
const content = (() => {
|
|
@@ -22342,7 +22510,7 @@ var ShadcnMultiSelectVariant = React74.forwardRef(function ShadcnMultiSelectVari
|
|
|
22342
22510
|
}
|
|
22343
22511
|
) }),
|
|
22344
22512
|
/* @__PURE__ */ jsx("div", { className: "py-1", children: /* @__PURE__ */ jsx(
|
|
22345
|
-
|
|
22513
|
+
VirtualScroll,
|
|
22346
22514
|
{
|
|
22347
22515
|
style: { height: listHeight },
|
|
22348
22516
|
data: filteredItems,
|
|
@@ -22606,7 +22774,7 @@ function Slider({
|
|
|
22606
22774
|
max: max2 = 100,
|
|
22607
22775
|
...props
|
|
22608
22776
|
}) {
|
|
22609
|
-
const _values =
|
|
22777
|
+
const _values = React76.useMemo(
|
|
22610
22778
|
() => Array.isArray(value) ? value : Array.isArray(defaultValue) ? defaultValue : [min2, max2],
|
|
22611
22779
|
[value, defaultValue, min2, max2]
|
|
22612
22780
|
);
|
|
@@ -22685,7 +22853,7 @@ function clampToRange(v2, min2, max2) {
|
|
|
22685
22853
|
if (v2 > max2) return max2;
|
|
22686
22854
|
return v2;
|
|
22687
22855
|
}
|
|
22688
|
-
var ShadcnSliderVariant =
|
|
22856
|
+
var ShadcnSliderVariant = React76.forwardRef(function ShadcnSliderVariant2(props, _ref) {
|
|
22689
22857
|
const {
|
|
22690
22858
|
value,
|
|
22691
22859
|
onValue,
|
|
@@ -22724,7 +22892,7 @@ var ShadcnSliderVariant = React74.forwardRef(function ShadcnSliderVariant2(props
|
|
|
22724
22892
|
} = props;
|
|
22725
22893
|
const numericValue = typeof value === "number" ? value : min2;
|
|
22726
22894
|
const isDisabled = !!(disabled || readOnly);
|
|
22727
|
-
const handleChange =
|
|
22895
|
+
const handleChange = React76.useCallback(
|
|
22728
22896
|
(vals) => {
|
|
22729
22897
|
if (!onValue) return;
|
|
22730
22898
|
const next = clampToRange(vals[0], min2, max2);
|
|
@@ -22739,7 +22907,7 @@ var ShadcnSliderVariant = React74.forwardRef(function ShadcnSliderVariant2(props
|
|
|
22739
22907
|
[onValue, min2, max2]
|
|
22740
22908
|
);
|
|
22741
22909
|
const stepAmount = controlStep != null ? controlStep : step;
|
|
22742
|
-
const applyStep =
|
|
22910
|
+
const applyStep = React76.useCallback(
|
|
22743
22911
|
(direction) => {
|
|
22744
22912
|
if (!onValue || isDisabled) return;
|
|
22745
22913
|
const current = typeof value === "number" ? value : min2;
|
|
@@ -23197,7 +23365,7 @@ function getGapPx(el) {
|
|
|
23197
23365
|
const g2 = cs.columnGap && cs.columnGap !== "normal" ? cs.columnGap : cs.gap;
|
|
23198
23366
|
return parsePx(g2);
|
|
23199
23367
|
}
|
|
23200
|
-
var ShadcnKeyValueVariant =
|
|
23368
|
+
var ShadcnKeyValueVariant = React76.forwardRef(function ShadcnKeyValueVariant2(props, _ref) {
|
|
23201
23369
|
const {
|
|
23202
23370
|
value,
|
|
23203
23371
|
onValue,
|
|
@@ -23222,14 +23390,14 @@ var ShadcnKeyValueVariant = React74.forwardRef(function ShadcnKeyValueVariant2(p
|
|
|
23222
23390
|
renderChip
|
|
23223
23391
|
} = props;
|
|
23224
23392
|
const isDisabled = disabled || readOnly;
|
|
23225
|
-
const items =
|
|
23226
|
-
const [dialogOpen, setDialogOpen] =
|
|
23227
|
-
const [editingIndex, setEditingIndex] =
|
|
23228
|
-
const [draft, setDraft] =
|
|
23393
|
+
const items = React76.useMemo(() => mapToItems(value), [value]);
|
|
23394
|
+
const [dialogOpen, setDialogOpen] = React76.useState(false);
|
|
23395
|
+
const [editingIndex, setEditingIndex] = React76.useState(null);
|
|
23396
|
+
const [draft, setDraft] = React76.useState({ key: "", value: "" });
|
|
23229
23397
|
const canAdd = items.length < max2;
|
|
23230
23398
|
const canDelete = items.length > min2;
|
|
23231
23399
|
const hasItems = items.length > 0;
|
|
23232
|
-
const commitItems =
|
|
23400
|
+
const commitItems = React76.useCallback(
|
|
23233
23401
|
(next, meta) => {
|
|
23234
23402
|
if (!onValue) return;
|
|
23235
23403
|
const nextMap = itemsToMap(next);
|
|
@@ -23243,13 +23411,13 @@ var ShadcnKeyValueVariant = React74.forwardRef(function ShadcnKeyValueVariant2(p
|
|
|
23243
23411
|
},
|
|
23244
23412
|
[onValue]
|
|
23245
23413
|
);
|
|
23246
|
-
const openForNew =
|
|
23414
|
+
const openForNew = React76.useCallback(() => {
|
|
23247
23415
|
if (isDisabled || !canAdd) return;
|
|
23248
23416
|
setEditingIndex(null);
|
|
23249
23417
|
setDraft({ key: "", value: "" });
|
|
23250
23418
|
setDialogOpen(true);
|
|
23251
23419
|
}, [isDisabled, canAdd]);
|
|
23252
|
-
const openForEdit =
|
|
23420
|
+
const openForEdit = React76.useCallback(
|
|
23253
23421
|
(index) => {
|
|
23254
23422
|
if (isDisabled) return;
|
|
23255
23423
|
const item = items[index];
|
|
@@ -23260,7 +23428,7 @@ var ShadcnKeyValueVariant = React74.forwardRef(function ShadcnKeyValueVariant2(p
|
|
|
23260
23428
|
},
|
|
23261
23429
|
[isDisabled, items]
|
|
23262
23430
|
);
|
|
23263
|
-
const handleDelete =
|
|
23431
|
+
const handleDelete = React76.useCallback(() => {
|
|
23264
23432
|
if (editingIndex == null) return;
|
|
23265
23433
|
if (!canDelete) return;
|
|
23266
23434
|
const next = items.slice();
|
|
@@ -23271,7 +23439,7 @@ var ShadcnKeyValueVariant = React74.forwardRef(function ShadcnKeyValueVariant2(p
|
|
|
23271
23439
|
index: editingIndex
|
|
23272
23440
|
});
|
|
23273
23441
|
}, [editingIndex, items, canDelete, commitItems]);
|
|
23274
|
-
const handleSubmit =
|
|
23442
|
+
const handleSubmit = React76.useCallback(() => {
|
|
23275
23443
|
const trimmedKey = draft.key.trim();
|
|
23276
23444
|
const trimmedValue = draft.value;
|
|
23277
23445
|
if (!trimmedKey) return;
|
|
@@ -23293,7 +23461,7 @@ var ShadcnKeyValueVariant = React74.forwardRef(function ShadcnKeyValueVariant2(p
|
|
|
23293
23461
|
index: editingIndex != null ? editingIndex : next.length - 1
|
|
23294
23462
|
});
|
|
23295
23463
|
}, [draft, items, editingIndex, canAdd, commitItems]);
|
|
23296
|
-
const handleQuickRemove =
|
|
23464
|
+
const handleQuickRemove = React76.useCallback(
|
|
23297
23465
|
(index) => {
|
|
23298
23466
|
if (isDisabled || !canDelete) return;
|
|
23299
23467
|
const next = items.slice();
|
|
@@ -23302,21 +23470,21 @@ var ShadcnKeyValueVariant = React74.forwardRef(function ShadcnKeyValueVariant2(p
|
|
|
23302
23470
|
},
|
|
23303
23471
|
[isDisabled, canDelete, items, commitItems]
|
|
23304
23472
|
);
|
|
23305
|
-
const [listOpen, setListOpen] =
|
|
23306
|
-
const openList =
|
|
23473
|
+
const [listOpen, setListOpen] = React76.useState(false);
|
|
23474
|
+
const openList = React76.useCallback(() => {
|
|
23307
23475
|
if (isDisabled) return;
|
|
23308
23476
|
setListOpen(true);
|
|
23309
23477
|
}, [isDisabled]);
|
|
23310
|
-
const wrapRef =
|
|
23311
|
-
const leftRef =
|
|
23312
|
-
const moreMeasureRef =
|
|
23313
|
-
const chipRefs =
|
|
23478
|
+
const wrapRef = React76.useRef(null);
|
|
23479
|
+
const leftRef = React76.useRef(null);
|
|
23480
|
+
const moreMeasureRef = React76.useRef(null);
|
|
23481
|
+
const chipRefs = React76.useRef([]);
|
|
23314
23482
|
chipRefs.current = items.map((_2, i3) => {
|
|
23315
23483
|
var _a;
|
|
23316
23484
|
return (_a = chipRefs.current[i3]) != null ? _a : null;
|
|
23317
23485
|
});
|
|
23318
|
-
const [visibleCount, setVisibleCount] =
|
|
23319
|
-
const recomputeVisible =
|
|
23486
|
+
const [visibleCount, setVisibleCount] = React76.useState(() => items.length);
|
|
23487
|
+
const recomputeVisible = React76.useCallback(() => {
|
|
23320
23488
|
var _a, _b;
|
|
23321
23489
|
const leftEl = leftRef.current;
|
|
23322
23490
|
if (!leftEl) {
|
|
@@ -23365,10 +23533,10 @@ var ShadcnKeyValueVariant = React74.forwardRef(function ShadcnKeyValueVariant2(p
|
|
|
23365
23533
|
}
|
|
23366
23534
|
setVisibleCount(best);
|
|
23367
23535
|
}, [items.length]);
|
|
23368
|
-
|
|
23536
|
+
React76.useLayoutEffect(() => {
|
|
23369
23537
|
recomputeVisible();
|
|
23370
23538
|
}, [recomputeVisible, items, size, density, showValue]);
|
|
23371
|
-
|
|
23539
|
+
React76.useEffect(() => {
|
|
23372
23540
|
const el = leftRef.current;
|
|
23373
23541
|
if (!el) return;
|
|
23374
23542
|
const ro = new ResizeObserver(() => recomputeVisible());
|
|
@@ -23758,7 +23926,7 @@ var keyValueModule = {
|
|
|
23758
23926
|
label: ""
|
|
23759
23927
|
}
|
|
23760
23928
|
};
|
|
23761
|
-
var ShadcnCustomVariant =
|
|
23929
|
+
var ShadcnCustomVariant = React76.forwardRef(function ShadcnCustomVariant2(props, ref) {
|
|
23762
23930
|
const {
|
|
23763
23931
|
// Variant base props we care about:
|
|
23764
23932
|
value,
|
|
@@ -23794,7 +23962,7 @@ var ShadcnCustomVariant = React74.forwardRef(function ShadcnCustomVariant2(props
|
|
|
23794
23962
|
}
|
|
23795
23963
|
const isDisabled = !!disabled;
|
|
23796
23964
|
const isReadOnly = !!readOnly;
|
|
23797
|
-
const handleChange =
|
|
23965
|
+
const handleChange = React76.useCallback(
|
|
23798
23966
|
(...args) => {
|
|
23799
23967
|
var _a;
|
|
23800
23968
|
if (!onValue) return;
|
|
@@ -23899,7 +24067,7 @@ function triggerHeight3(size) {
|
|
|
23899
24067
|
return "min-h-9 text-sm";
|
|
23900
24068
|
}
|
|
23901
24069
|
}
|
|
23902
|
-
var ShadcnTreeSelectVariant =
|
|
24070
|
+
var ShadcnTreeSelectVariant = React76.forwardRef(function ShadcnTreeSelectVariant2(props, ref) {
|
|
23903
24071
|
const {
|
|
23904
24072
|
value,
|
|
23905
24073
|
onValue,
|
|
@@ -23959,14 +24127,14 @@ var ShadcnTreeSelectVariant = React74.forwardRef(function ShadcnTreeSelectVarian
|
|
|
23959
24127
|
selectedBadgeClassName,
|
|
23960
24128
|
selectedBadgePlacement = "corner"
|
|
23961
24129
|
} = props;
|
|
23962
|
-
const [open, setOpen] =
|
|
23963
|
-
const [query, setQuery] =
|
|
24130
|
+
const [open, setOpen] = React76.useState(false);
|
|
24131
|
+
const [query, setQuery] = React76.useState("");
|
|
23964
24132
|
const isDisabled = disabled || readOnly;
|
|
23965
|
-
const d =
|
|
24133
|
+
const d = React76.useMemo(
|
|
23966
24134
|
() => densityClasses(density),
|
|
23967
24135
|
[density]
|
|
23968
24136
|
);
|
|
23969
|
-
const tree =
|
|
24137
|
+
const tree = React76.useMemo(
|
|
23970
24138
|
() => normalizeTree(options != null ? options : [], {
|
|
23971
24139
|
autoCap,
|
|
23972
24140
|
optionLabel,
|
|
@@ -24001,8 +24169,8 @@ var ShadcnTreeSelectVariant = React74.forwardRef(function ShadcnTreeSelectVarian
|
|
|
24001
24169
|
optionTagOnClick
|
|
24002
24170
|
]
|
|
24003
24171
|
);
|
|
24004
|
-
const allNodesFlat =
|
|
24005
|
-
const computedInitialExpanded =
|
|
24172
|
+
const allNodesFlat = React76.useMemo(() => flattenTree(tree), [tree]);
|
|
24173
|
+
const computedInitialExpanded = React76.useMemo(() => {
|
|
24006
24174
|
if (expandAll) {
|
|
24007
24175
|
return new Set(
|
|
24008
24176
|
allNodesFlat.filter((n3) => n3.hasChildren).map((n3) => n3.value)
|
|
@@ -24013,13 +24181,13 @@ var ShadcnTreeSelectVariant = React74.forwardRef(function ShadcnTreeSelectVarian
|
|
|
24013
24181
|
}
|
|
24014
24182
|
return /* @__PURE__ */ new Set();
|
|
24015
24183
|
}, [expandAll, defaultExpandedValues, allNodesFlat]);
|
|
24016
|
-
const [expanded, setExpanded] =
|
|
24184
|
+
const [expanded, setExpanded] = React76.useState(
|
|
24017
24185
|
computedInitialExpanded
|
|
24018
24186
|
);
|
|
24019
|
-
|
|
24187
|
+
React76.useEffect(() => {
|
|
24020
24188
|
setExpanded(computedInitialExpanded);
|
|
24021
24189
|
}, [computedInitialExpanded]);
|
|
24022
|
-
const toggleExpanded =
|
|
24190
|
+
const toggleExpanded = React76.useCallback((key) => {
|
|
24023
24191
|
setExpanded((prev) => {
|
|
24024
24192
|
const next = new Set(prev);
|
|
24025
24193
|
if (next.has(key)) next.delete(key);
|
|
@@ -24027,7 +24195,7 @@ var ShadcnTreeSelectVariant = React74.forwardRef(function ShadcnTreeSelectVarian
|
|
|
24027
24195
|
return next;
|
|
24028
24196
|
});
|
|
24029
24197
|
}, []);
|
|
24030
|
-
const displayedNodes =
|
|
24198
|
+
const displayedNodes = React76.useMemo(() => {
|
|
24031
24199
|
if (query) {
|
|
24032
24200
|
const q2 = query.toLowerCase();
|
|
24033
24201
|
const matchSet = /* @__PURE__ */ new Set();
|
|
@@ -24061,19 +24229,19 @@ var ShadcnTreeSelectVariant = React74.forwardRef(function ShadcnTreeSelectVarian
|
|
|
24061
24229
|
displayedNodes.length * estimatedRowHeight
|
|
24062
24230
|
)
|
|
24063
24231
|
);
|
|
24064
|
-
const selectedValues =
|
|
24232
|
+
const selectedValues = React76.useMemo(() => {
|
|
24065
24233
|
if (value === void 0 || value === null) return [];
|
|
24066
24234
|
if (Array.isArray(value)) {
|
|
24067
24235
|
return multiple ? value : value.length ? [value[0]] : [];
|
|
24068
24236
|
}
|
|
24069
24237
|
return [value];
|
|
24070
24238
|
}, [value, multiple]);
|
|
24071
|
-
const selectedItems =
|
|
24239
|
+
const selectedItems = React76.useMemo(
|
|
24072
24240
|
() => allNodesFlat.filter((node) => selectedValues.includes(node.value)),
|
|
24073
24241
|
[allNodesFlat, selectedValues]
|
|
24074
24242
|
);
|
|
24075
24243
|
const selectedCount = selectedItems.length;
|
|
24076
|
-
const handleToggleValue =
|
|
24244
|
+
const handleToggleValue = React76.useCallback(
|
|
24077
24245
|
(item) => {
|
|
24078
24246
|
if (isDisabled) return;
|
|
24079
24247
|
if (leafOnly && item.hasChildren) {
|
|
@@ -24116,7 +24284,7 @@ var ShadcnTreeSelectVariant = React74.forwardRef(function ShadcnTreeSelectVarian
|
|
|
24116
24284
|
allNodesFlat
|
|
24117
24285
|
]
|
|
24118
24286
|
);
|
|
24119
|
-
const handleClear =
|
|
24287
|
+
const handleClear = React76.useCallback(() => {
|
|
24120
24288
|
if (!onValue) return;
|
|
24121
24289
|
const detail = {
|
|
24122
24290
|
source: "variant",
|
|
@@ -24167,12 +24335,12 @@ var ShadcnTreeSelectVariant = React74.forwardRef(function ShadcnTreeSelectVarian
|
|
|
24167
24335
|
) });
|
|
24168
24336
|
};
|
|
24169
24337
|
const triggerContent = renderValue ? renderValue({ selectedItems, placeholder }) : renderDefaultTriggerContent();
|
|
24338
|
+
const triggerPaddingClasses = cn("px-3", d.triggerPy);
|
|
24170
24339
|
const baseBoxClasses = cn(
|
|
24171
|
-
"flex items-center justify-between
|
|
24172
|
-
"placeholder:text-muted-foreground
|
|
24173
|
-
|
|
24174
|
-
"aria-invalid:border-destructive"
|
|
24175
|
-
d.triggerPy
|
|
24340
|
+
"flex items-center justify-between w-full min-w-0 text-sm ring-offset-background",
|
|
24341
|
+
"placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",
|
|
24342
|
+
triggerPaddingClasses,
|
|
24343
|
+
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"
|
|
24176
24344
|
);
|
|
24177
24345
|
const DefaultTriggerButton = /* @__PURE__ */ jsx(
|
|
24178
24346
|
"button",
|
|
@@ -24182,7 +24350,7 @@ var ShadcnTreeSelectVariant = React74.forwardRef(function ShadcnTreeSelectVarian
|
|
|
24182
24350
|
disabled: isDisabled,
|
|
24183
24351
|
className: cn(
|
|
24184
24352
|
triggerHeight3(size),
|
|
24185
|
-
|
|
24353
|
+
baseBoxClasses,
|
|
24186
24354
|
triggerClassName
|
|
24187
24355
|
),
|
|
24188
24356
|
children: /* @__PURE__ */ jsxs("div", { className: "flex w-full items-center justify-between gap-2 overflow-hidden", children: [
|
|
@@ -24224,7 +24392,7 @@ var ShadcnTreeSelectVariant = React74.forwardRef(function ShadcnTreeSelectVarian
|
|
|
24224
24392
|
] })
|
|
24225
24393
|
}
|
|
24226
24394
|
);
|
|
24227
|
-
const ButtonModeTrigger =
|
|
24395
|
+
const ButtonModeTrigger = React76.useMemo(() => {
|
|
24228
24396
|
if (mode !== "button") return null;
|
|
24229
24397
|
const ctx = { open, selectedItems, selectedCount };
|
|
24230
24398
|
const triggerNode = typeof button === "function" ? button(ctx) : button != null ? button : typeof children === "function" ? children(ctx) : children;
|
|
@@ -24254,7 +24422,7 @@ var ShadcnTreeSelectVariant = React74.forwardRef(function ShadcnTreeSelectVarian
|
|
|
24254
24422
|
badgeEl
|
|
24255
24423
|
] });
|
|
24256
24424
|
};
|
|
24257
|
-
if (
|
|
24425
|
+
if (React76.isValidElement(triggerNode)) {
|
|
24258
24426
|
return wrapWithBadge(triggerNode);
|
|
24259
24427
|
}
|
|
24260
24428
|
return wrapWithBadge(
|
|
@@ -24288,7 +24456,7 @@ var ShadcnTreeSelectVariant = React74.forwardRef(function ShadcnTreeSelectVarian
|
|
|
24288
24456
|
emptyLabel && tree.length === 0 && !query && /* @__PURE__ */ jsx("div", { className: "px-4 py-3 text-sm text-center text-muted-foreground", children: emptyLabel }),
|
|
24289
24457
|
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" }),
|
|
24290
24458
|
displayedNodes.length > 0 && /* @__PURE__ */ jsx(
|
|
24291
|
-
|
|
24459
|
+
VirtualScroll,
|
|
24292
24460
|
{
|
|
24293
24461
|
style: { height: listHeight },
|
|
24294
24462
|
data: displayedNodes,
|
|
@@ -24383,7 +24551,7 @@ var ShadcnTreeSelectVariant = React74.forwardRef(function ShadcnTreeSelectVarian
|
|
|
24383
24551
|
);
|
|
24384
24552
|
const renderer = (_b = item.render) != null ? _b : renderOption;
|
|
24385
24553
|
if (!renderer) {
|
|
24386
|
-
return /* @__PURE__ */ jsx(
|
|
24554
|
+
return /* @__PURE__ */ jsx(React76.Fragment, { children: optionNode }, item.key);
|
|
24387
24555
|
}
|
|
24388
24556
|
const rendered = renderer({
|
|
24389
24557
|
item,
|
|
@@ -24394,7 +24562,7 @@ var ShadcnTreeSelectVariant = React74.forwardRef(function ShadcnTreeSelectVarian
|
|
|
24394
24562
|
if (!item.disabled) handleToggleValue(item);
|
|
24395
24563
|
}
|
|
24396
24564
|
});
|
|
24397
|
-
return /* @__PURE__ */ jsx(
|
|
24565
|
+
return /* @__PURE__ */ jsx(React76.Fragment, { children: rendered }, item.key);
|
|
24398
24566
|
}
|
|
24399
24567
|
}
|
|
24400
24568
|
)
|
|
@@ -24511,7 +24679,26 @@ var treeselect_default = ShadcnTreeSelectVariant;
|
|
|
24511
24679
|
// src/variants/core/treeselect.tsx
|
|
24512
24680
|
var treeselectModule = {
|
|
24513
24681
|
variant: "treeselect",
|
|
24514
|
-
Variant: treeselect_default
|
|
24682
|
+
Variant: treeselect_default,
|
|
24683
|
+
// Layout defaults for this variant
|
|
24684
|
+
defaults: {
|
|
24685
|
+
layout: {
|
|
24686
|
+
labelPlacement: "top",
|
|
24687
|
+
sublabelPlacement: "right",
|
|
24688
|
+
descriptionPlacement: "below",
|
|
24689
|
+
helpTextPlacement: "below",
|
|
24690
|
+
errorTextPlacement: "below",
|
|
24691
|
+
inline: false,
|
|
24692
|
+
fullWidth: true,
|
|
24693
|
+
defaultSize: "md",
|
|
24694
|
+
defaultDensity: "comfortable"
|
|
24695
|
+
}
|
|
24696
|
+
},
|
|
24697
|
+
meta: {
|
|
24698
|
+
label: "TreeSelect",
|
|
24699
|
+
description: "Hierarchical tree selection dropdown with collapsible folders and node tags.",
|
|
24700
|
+
tags: ["tree", "select", "hierarchical", "dropdown", "multiselect"]
|
|
24701
|
+
}
|
|
24515
24702
|
};
|
|
24516
24703
|
var treeselect_default2 = treeselectModule;
|
|
24517
24704
|
function fileId() {
|
|
@@ -24666,8 +24853,8 @@ function mergeHandlers(a3, b2) {
|
|
|
24666
24853
|
};
|
|
24667
24854
|
}
|
|
24668
24855
|
var FileThumbnail = ({ item }) => {
|
|
24669
|
-
const [preview, setPreview] =
|
|
24670
|
-
|
|
24856
|
+
const [preview, setPreview] = React76.useState(null);
|
|
24857
|
+
React76.useEffect(() => {
|
|
24671
24858
|
var _a;
|
|
24672
24859
|
const isImage2 = ((_a = item.type) == null ? void 0 : _a.startsWith("image/")) || item.name.match(/\.(jpg|jpeg|png|gif|webp)$/i);
|
|
24673
24860
|
if (!isImage2) return;
|
|
@@ -24689,7 +24876,7 @@ var FileThumbnail = ({ item }) => {
|
|
|
24689
24876
|
}
|
|
24690
24877
|
) : /* @__PURE__ */ jsx(File2, { className: "h-4 w-4 text-muted-foreground/50" }) });
|
|
24691
24878
|
};
|
|
24692
|
-
var ShadcnFileVariant =
|
|
24879
|
+
var ShadcnFileVariant = React76.forwardRef(function ShadcnFileVariant2(props, ref) {
|
|
24693
24880
|
const {
|
|
24694
24881
|
value,
|
|
24695
24882
|
onValue,
|
|
@@ -24743,18 +24930,18 @@ var ShadcnFileVariant = React74.forwardRef(function ShadcnFileVariant2(props, re
|
|
|
24743
24930
|
} = props;
|
|
24744
24931
|
const joinControls = mode === "default" ? joinControlsProp != null ? joinControlsProp : true : false;
|
|
24745
24932
|
const extendBoxToControls = mode === "default" ? extendBoxToControlsProp != null ? extendBoxToControlsProp : true : false;
|
|
24746
|
-
const items =
|
|
24933
|
+
const items = React76.useMemo(() => {
|
|
24747
24934
|
var _a;
|
|
24748
24935
|
const raw = (_a = toArray2(value)) != null ? _a : [];
|
|
24749
24936
|
return raw.map(normaliseFileLike);
|
|
24750
24937
|
}, [value]);
|
|
24751
24938
|
const isDisabled = Boolean(disabled || readOnly);
|
|
24752
|
-
const [dragOver, setDragOver] =
|
|
24753
|
-
const [selectedIds, setSelectedIds] =
|
|
24939
|
+
const [dragOver, setDragOver] = React76.useState(false);
|
|
24940
|
+
const [selectedIds, setSelectedIds] = React76.useState(
|
|
24754
24941
|
() => /* @__PURE__ */ new Set()
|
|
24755
24942
|
);
|
|
24756
|
-
const [popoverOpen, setPopoverOpen] =
|
|
24757
|
-
const fileInputRef =
|
|
24943
|
+
const [popoverOpen, setPopoverOpen] = React76.useState(false);
|
|
24944
|
+
const fileInputRef = React76.useRef(null);
|
|
24758
24945
|
const den = densityTokens(density);
|
|
24759
24946
|
const heightCls = triggerHeight4(size);
|
|
24760
24947
|
const chipHeightCls = chipHeight(size);
|
|
@@ -24763,7 +24950,7 @@ var ShadcnFileVariant = React74.forwardRef(function ShadcnFileVariant2(props, re
|
|
|
24763
24950
|
const resolvedTrailingIcons = (trailingIcons == null ? void 0 : trailingIcons.length) ? trailingIcons : [];
|
|
24764
24951
|
const hasExternalControls = !!leadingControl || !!trailingControl;
|
|
24765
24952
|
const COLLAPSE_LIMIT = 2;
|
|
24766
|
-
const emitChange =
|
|
24953
|
+
const emitChange = React76.useCallback(
|
|
24767
24954
|
(nextItems, meta) => {
|
|
24768
24955
|
var _a;
|
|
24769
24956
|
const nextValues = nextItems.map(fileItemToValue);
|
|
@@ -24777,7 +24964,7 @@ var ShadcnFileVariant = React74.forwardRef(function ShadcnFileVariant2(props, re
|
|
|
24777
24964
|
},
|
|
24778
24965
|
[multiple, onValue]
|
|
24779
24966
|
);
|
|
24780
|
-
const handleAddItems =
|
|
24967
|
+
const handleAddItems = React76.useCallback(
|
|
24781
24968
|
(incoming, from) => {
|
|
24782
24969
|
if (isDisabled) return;
|
|
24783
24970
|
let next = multiple ? [...items] : [];
|
|
@@ -24814,7 +25001,7 @@ var ShadcnFileVariant = React74.forwardRef(function ShadcnFileVariant2(props, re
|
|
|
24814
25001
|
onFilesAdded
|
|
24815
25002
|
]
|
|
24816
25003
|
);
|
|
24817
|
-
const handleRemove =
|
|
25004
|
+
const handleRemove = React76.useCallback(
|
|
24818
25005
|
(id) => {
|
|
24819
25006
|
const next = items.filter((i3) => i3.id !== id);
|
|
24820
25007
|
emitChange(next, { action: "remove", id });
|
|
@@ -24826,7 +25013,7 @@ var ShadcnFileVariant = React74.forwardRef(function ShadcnFileVariant2(props, re
|
|
|
24826
25013
|
},
|
|
24827
25014
|
[emitChange, items, selectedIds]
|
|
24828
25015
|
);
|
|
24829
|
-
const handleBulkRemove =
|
|
25016
|
+
const handleBulkRemove = React76.useCallback(() => {
|
|
24830
25017
|
const next = items.filter((i3) => !selectedIds.has(i3.id));
|
|
24831
25018
|
emitChange(next, {
|
|
24832
25019
|
action: "bulk-remove",
|
|
@@ -24834,7 +25021,7 @@ var ShadcnFileVariant = React74.forwardRef(function ShadcnFileVariant2(props, re
|
|
|
24834
25021
|
});
|
|
24835
25022
|
setSelectedIds(/* @__PURE__ */ new Set());
|
|
24836
25023
|
}, [emitChange, items, selectedIds]);
|
|
24837
|
-
const openPicker =
|
|
25024
|
+
const openPicker = React76.useCallback(async () => {
|
|
24838
25025
|
var _a;
|
|
24839
25026
|
if (isDisabled) return;
|
|
24840
25027
|
let resolvedLoader = customLoader != null ? customLoader : custom && getPaletteUtil("customLoader");
|
|
@@ -24873,14 +25060,14 @@ var ShadcnFileVariant = React74.forwardRef(function ShadcnFileVariant2(props, re
|
|
|
24873
25060
|
mergeMode,
|
|
24874
25061
|
multiple
|
|
24875
25062
|
]);
|
|
24876
|
-
const onDragOver =
|
|
25063
|
+
const onDragOver = React76.useCallback(
|
|
24877
25064
|
(e4) => {
|
|
24878
25065
|
e4.preventDefault();
|
|
24879
25066
|
if (!isDisabled) setDragOver(true);
|
|
24880
25067
|
},
|
|
24881
25068
|
[isDisabled]
|
|
24882
25069
|
);
|
|
24883
|
-
const onDrop =
|
|
25070
|
+
const onDrop = React76.useCallback(
|
|
24884
25071
|
(e4) => {
|
|
24885
25072
|
var _a;
|
|
24886
25073
|
e4.preventDefault();
|
|
@@ -24898,15 +25085,15 @@ var ShadcnFileVariant = React74.forwardRef(function ShadcnFileVariant2(props, re
|
|
|
24898
25085
|
}
|
|
24899
25086
|
e4.target.value = "";
|
|
24900
25087
|
};
|
|
24901
|
-
const FileChip =
|
|
25088
|
+
const FileChip = React76.useCallback(
|
|
24902
25089
|
({
|
|
24903
25090
|
item,
|
|
24904
25091
|
condensed = false
|
|
24905
25092
|
}) => {
|
|
24906
25093
|
const name = formatFileName ? formatFileName(item) : item.name;
|
|
24907
|
-
const [preview, setPreview] =
|
|
24908
|
-
const [isOpen, setIsOpen] =
|
|
24909
|
-
|
|
25094
|
+
const [preview, setPreview] = React76.useState(null);
|
|
25095
|
+
const [isOpen, setIsOpen] = React76.useState(false);
|
|
25096
|
+
React76.useEffect(() => {
|
|
24910
25097
|
var _a;
|
|
24911
25098
|
const isImage2 = ((_a = item.type) == null ? void 0 : _a.startsWith("image/")) || item.name.match(/\.(jpg|jpeg|png|gif|webp)$/i);
|
|
24912
25099
|
if (!isImage2) {
|
|
@@ -25013,7 +25200,7 @@ var ShadcnFileVariant = React74.forwardRef(function ShadcnFileVariant2(props, re
|
|
|
25013
25200
|
]
|
|
25014
25201
|
);
|
|
25015
25202
|
const selectedCount = items.length;
|
|
25016
|
-
const resolveButtonTriggerElement =
|
|
25203
|
+
const resolveButtonTriggerElement = React76.useCallback(() => {
|
|
25017
25204
|
const ctx = {
|
|
25018
25205
|
open: popoverOpen,
|
|
25019
25206
|
items,
|
|
@@ -25043,7 +25230,7 @@ var ShadcnFileVariant = React74.forwardRef(function ShadcnFileVariant2(props, re
|
|
|
25043
25230
|
);
|
|
25044
25231
|
const child = el.props.children;
|
|
25045
25232
|
if (selectedBadgePlacement === "end") {
|
|
25046
|
-
return
|
|
25233
|
+
return React76.cloneElement(el, {
|
|
25047
25234
|
className: nextClass,
|
|
25048
25235
|
children: /* @__PURE__ */ jsxs("span", { className: "inline-flex items-center gap-2", children: [
|
|
25049
25236
|
/* @__PURE__ */ jsx("span", { className: "min-w-0", children: child }),
|
|
@@ -25051,7 +25238,7 @@ var ShadcnFileVariant = React74.forwardRef(function ShadcnFileVariant2(props, re
|
|
|
25051
25238
|
] })
|
|
25052
25239
|
});
|
|
25053
25240
|
}
|
|
25054
|
-
return
|
|
25241
|
+
return React76.cloneElement(el, {
|
|
25055
25242
|
className: nextClass,
|
|
25056
25243
|
children: /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
25057
25244
|
child,
|
|
@@ -25059,7 +25246,7 @@ var ShadcnFileVariant = React74.forwardRef(function ShadcnFileVariant2(props, re
|
|
|
25059
25246
|
] })
|
|
25060
25247
|
});
|
|
25061
25248
|
};
|
|
25062
|
-
const withDnD = (el) =>
|
|
25249
|
+
const withDnD = (el) => React76.cloneElement(el, {
|
|
25063
25250
|
onDragOver: mergeHandlers(
|
|
25064
25251
|
el.props.onDragOver,
|
|
25065
25252
|
onDragOver
|
|
@@ -25070,7 +25257,7 @@ var ShadcnFileVariant = React74.forwardRef(function ShadcnFileVariant2(props, re
|
|
|
25070
25257
|
),
|
|
25071
25258
|
onDrop: mergeHandlers(el.props.onDrop, onDrop)
|
|
25072
25259
|
});
|
|
25073
|
-
if (
|
|
25260
|
+
if (React76.isValidElement(rawNode)) {
|
|
25074
25261
|
return withDnD(injectBadgeIntoElement(rawNode));
|
|
25075
25262
|
}
|
|
25076
25263
|
const fallback = /* @__PURE__ */ jsxs(
|
|
@@ -25126,7 +25313,7 @@ var ShadcnFileVariant = React74.forwardRef(function ShadcnFileVariant2(props, re
|
|
|
25126
25313
|
selectedCount,
|
|
25127
25314
|
triggerClassName
|
|
25128
25315
|
]);
|
|
25129
|
-
const TriggerRegion =
|
|
25316
|
+
const TriggerRegion = React76.useMemo(() => {
|
|
25130
25317
|
if (showDropArea) {
|
|
25131
25318
|
if (renderDropArea)
|
|
25132
25319
|
return renderDropArea({ openPicker, isDragging: dragOver });
|
|
@@ -25586,7 +25773,7 @@ var toggleVariants = cva(
|
|
|
25586
25773
|
}
|
|
25587
25774
|
}
|
|
25588
25775
|
);
|
|
25589
|
-
var ToggleGroupContext =
|
|
25776
|
+
var ToggleGroupContext = React76.createContext({
|
|
25590
25777
|
size: "default",
|
|
25591
25778
|
variant: "default",
|
|
25592
25779
|
spacing: 0
|
|
@@ -25623,7 +25810,7 @@ function ToggleGroupItem({
|
|
|
25623
25810
|
size,
|
|
25624
25811
|
...props
|
|
25625
25812
|
}) {
|
|
25626
|
-
const context =
|
|
25813
|
+
const context = React76.useContext(ToggleGroupContext);
|
|
25627
25814
|
return /* @__PURE__ */ jsx(
|
|
25628
25815
|
ToggleGroupPrimitive.Item,
|
|
25629
25816
|
{
|
|
@@ -25814,7 +26001,7 @@ function normalizeOption(input, {
|
|
|
25814
26001
|
raw: input
|
|
25815
26002
|
};
|
|
25816
26003
|
}
|
|
25817
|
-
var ShadcnToggleVariant3 =
|
|
26004
|
+
var ShadcnToggleVariant3 = React76.forwardRef(function ShadcnToggleVariant4(props, ref) {
|
|
25818
26005
|
const {
|
|
25819
26006
|
value,
|
|
25820
26007
|
onValue,
|
|
@@ -25851,7 +26038,7 @@ var ShadcnToggleVariant3 = React74.forwardRef(function ShadcnToggleVariant4(prop
|
|
|
25851
26038
|
const isDisabled = Boolean(disabled || readOnly);
|
|
25852
26039
|
const toggleSize = mapSizeToToggleSize(size);
|
|
25853
26040
|
const currentValue = normalizeValue(value, multiple);
|
|
25854
|
-
const normalizedOptions =
|
|
26041
|
+
const normalizedOptions = React76.useMemo(
|
|
25855
26042
|
() => options.map(
|
|
25856
26043
|
(opt) => normalizeOption(
|
|
25857
26044
|
opt,
|
|
@@ -25891,7 +26078,7 @@ var ShadcnToggleVariant3 = React74.forwardRef(function ShadcnToggleVariant4(prop
|
|
|
25891
26078
|
autoCap
|
|
25892
26079
|
]
|
|
25893
26080
|
);
|
|
25894
|
-
const handleChange =
|
|
26081
|
+
const handleChange = React76.useCallback(
|
|
25895
26082
|
(val) => {
|
|
25896
26083
|
if (readOnly) return;
|
|
25897
26084
|
if (!onValue) return;
|
|
@@ -25928,7 +26115,7 @@ var ShadcnToggleVariant3 = React74.forwardRef(function ShadcnToggleVariant4(prop
|
|
|
25928
26115
|
fullWidth && layout === "vertical" && "[&>*]:w-full",
|
|
25929
26116
|
className
|
|
25930
26117
|
);
|
|
25931
|
-
const groupStyle =
|
|
26118
|
+
const groupStyle = React76.useMemo(() => {
|
|
25932
26119
|
const style = {};
|
|
25933
26120
|
if (layout === "grid") {
|
|
25934
26121
|
style.gridTemplateColumns = `repeat(${gridCols}, minmax(0, 1fr))`;
|
|
@@ -26069,29 +26256,29 @@ function ShadcnEditorVariant(props) {
|
|
|
26069
26256
|
theme = "auto",
|
|
26070
26257
|
themeTarget = "nearest"
|
|
26071
26258
|
} = props;
|
|
26072
|
-
const mountRef =
|
|
26073
|
-
const editorRef =
|
|
26074
|
-
const formatRef =
|
|
26075
|
-
const onValueRef =
|
|
26076
|
-
const syncingRef =
|
|
26077
|
-
const loadedRef =
|
|
26078
|
-
const lastContentRef =
|
|
26079
|
-
const [autoDark, setAutoDark] =
|
|
26259
|
+
const mountRef = React76.useRef(null);
|
|
26260
|
+
const editorRef = React76.useRef(null);
|
|
26261
|
+
const formatRef = React76.useRef(format2);
|
|
26262
|
+
const onValueRef = React76.useRef(onValue);
|
|
26263
|
+
const syncingRef = React76.useRef(false);
|
|
26264
|
+
const loadedRef = React76.useRef(false);
|
|
26265
|
+
const lastContentRef = React76.useRef(value != null ? value : "");
|
|
26266
|
+
const [autoDark, setAutoDark] = React76.useState(false);
|
|
26080
26267
|
formatRef.current = format2;
|
|
26081
26268
|
onValueRef.current = onValue;
|
|
26082
26269
|
if (value !== void 0) lastContentRef.current = value;
|
|
26083
26270
|
const effectiveReadOnly = Boolean(disabled || readOnly);
|
|
26084
26271
|
const effectiveTheme = theme === "auto" ? autoDark ? "dark" : "light" : theme;
|
|
26085
|
-
const readContent =
|
|
26272
|
+
const readContent = React76.useCallback((ed) => {
|
|
26086
26273
|
var _a, _b;
|
|
26087
26274
|
return formatRef.current === "markdown" ? (_a = ed.getMarkdown()) != null ? _a : "" : (_b = ed.getHTML()) != null ? _b : "";
|
|
26088
26275
|
}, []);
|
|
26089
|
-
const emit =
|
|
26276
|
+
const emit = React76.useCallback((next) => {
|
|
26090
26277
|
var _a;
|
|
26091
26278
|
const detail = { source: "user", raw: next };
|
|
26092
26279
|
(_a = onValueRef.current) == null ? void 0 : _a.call(onValueRef, next, detail);
|
|
26093
26280
|
}, []);
|
|
26094
|
-
const structuralKey =
|
|
26281
|
+
const structuralKey = React76.useMemo(() => {
|
|
26095
26282
|
const hideModeSwitch = toolbar === "none" || pastePlainText;
|
|
26096
26283
|
return JSON.stringify({
|
|
26097
26284
|
toolbar,
|
|
@@ -26100,7 +26287,7 @@ function ShadcnEditorVariant(props) {
|
|
|
26100
26287
|
effectiveTheme
|
|
26101
26288
|
});
|
|
26102
26289
|
}, [toolbar, useCommandShortcut, pastePlainText, effectiveTheme]);
|
|
26103
|
-
|
|
26290
|
+
React76.useEffect(() => {
|
|
26104
26291
|
if (theme !== "auto") return;
|
|
26105
26292
|
if (typeof document === "undefined") return;
|
|
26106
26293
|
const host = mountRef.current;
|
|
@@ -26125,7 +26312,7 @@ function ShadcnEditorVariant(props) {
|
|
|
26125
26312
|
}
|
|
26126
26313
|
return () => observer.disconnect();
|
|
26127
26314
|
}, [theme, themeTarget]);
|
|
26128
|
-
|
|
26315
|
+
React76.useEffect(() => {
|
|
26129
26316
|
var _a;
|
|
26130
26317
|
const el = mountRef.current;
|
|
26131
26318
|
if (!el) return;
|
|
@@ -26196,29 +26383,29 @@ function ShadcnEditorVariant(props) {
|
|
|
26196
26383
|
editorRef.current = null;
|
|
26197
26384
|
};
|
|
26198
26385
|
}, [structuralKey]);
|
|
26199
|
-
|
|
26386
|
+
React76.useEffect(() => {
|
|
26200
26387
|
const ed = editorRef.current;
|
|
26201
26388
|
if (!ed) return;
|
|
26202
26389
|
if (typeof ed.setHeight === "function") ed.setHeight(height);
|
|
26203
26390
|
}, [height]);
|
|
26204
|
-
|
|
26391
|
+
React76.useEffect(() => {
|
|
26205
26392
|
const ed = editorRef.current;
|
|
26206
26393
|
if (!ed) return;
|
|
26207
26394
|
if (typeof ed.setPlaceholder === "function")
|
|
26208
26395
|
ed.setPlaceholder(placeholder);
|
|
26209
26396
|
}, [placeholder]);
|
|
26210
|
-
|
|
26397
|
+
React76.useEffect(() => {
|
|
26211
26398
|
const ed = editorRef.current;
|
|
26212
26399
|
if (!ed) return;
|
|
26213
26400
|
if (typeof ed.changeMode === "function") ed.changeMode(editType);
|
|
26214
26401
|
}, [editType]);
|
|
26215
|
-
|
|
26402
|
+
React76.useEffect(() => {
|
|
26216
26403
|
const ed = editorRef.current;
|
|
26217
26404
|
if (!ed) return;
|
|
26218
26405
|
if (typeof ed.changePreviewStyle === "function")
|
|
26219
26406
|
ed.changePreviewStyle(previewStyle);
|
|
26220
26407
|
}, [previewStyle]);
|
|
26221
|
-
|
|
26408
|
+
React76.useEffect(() => {
|
|
26222
26409
|
var _a, _b, _c, _d;
|
|
26223
26410
|
const ed = editorRef.current;
|
|
26224
26411
|
if (!ed) return;
|
|
@@ -26236,7 +26423,7 @@ function ShadcnEditorVariant(props) {
|
|
|
26236
26423
|
syncingRef.current = false;
|
|
26237
26424
|
});
|
|
26238
26425
|
}, [value, format2]);
|
|
26239
|
-
|
|
26426
|
+
React76.useEffect(() => {
|
|
26240
26427
|
if (!pastePlainText) return;
|
|
26241
26428
|
const host = mountRef.current;
|
|
26242
26429
|
if (!host) return;
|
|
@@ -26720,10 +26907,10 @@ function JsonEditorMain(props) {
|
|
|
26720
26907
|
className,
|
|
26721
26908
|
contentClassName
|
|
26722
26909
|
} = props;
|
|
26723
|
-
const directChildPaths =
|
|
26910
|
+
const directChildPaths = React76.useMemo(() => {
|
|
26724
26911
|
return getDirectChildPaths(route, allPaths);
|
|
26725
26912
|
}, [route, allPaths]);
|
|
26726
|
-
const rows =
|
|
26913
|
+
const rows = React76.useMemo(() => {
|
|
26727
26914
|
return resolveLayoutForParent({
|
|
26728
26915
|
parent: route,
|
|
26729
26916
|
childPaths: directChildPaths,
|
|
@@ -26731,7 +26918,7 @@ function JsonEditorMain(props) {
|
|
|
26731
26918
|
filters
|
|
26732
26919
|
});
|
|
26733
26920
|
}, [route, directChildPaths, layout, filters]);
|
|
26734
|
-
const effectiveRows =
|
|
26921
|
+
const effectiveRows = React76.useMemo(() => {
|
|
26735
26922
|
const hasAny = rows.some((r5) => {
|
|
26736
26923
|
var _a;
|
|
26737
26924
|
return (_a = r5.fields) == null ? void 0 : _a.length;
|
|
@@ -27907,7 +28094,7 @@ function JsonEditorRawPanel(props) {
|
|
|
27907
28094
|
const canEditRaw = (_b = permissions == null ? void 0 : permissions.canEditRaw) != null ? _b : false;
|
|
27908
28095
|
if (!canViewRaw) return null;
|
|
27909
28096
|
const viewOnly = !!disabled || !!readOnly || !canEditRaw;
|
|
27910
|
-
const onCopy =
|
|
28097
|
+
const onCopy = React76.useCallback(async () => {
|
|
27911
28098
|
try {
|
|
27912
28099
|
await navigator.clipboard.writeText(
|
|
27913
28100
|
JSON.stringify(root != null ? root : {}, null, 2)
|
|
@@ -28001,17 +28188,17 @@ function collectAllPaths(value, prefix = "", out = []) {
|
|
|
28001
28188
|
}
|
|
28002
28189
|
function useControllable(opts) {
|
|
28003
28190
|
const { value, defaultValue, onChange } = opts;
|
|
28004
|
-
const [inner, setInner] =
|
|
28191
|
+
const [inner, setInner] = React76.useState(defaultValue);
|
|
28005
28192
|
const isControlled = value !== void 0;
|
|
28006
28193
|
const state = isControlled ? value : inner;
|
|
28007
|
-
const setState =
|
|
28194
|
+
const setState = React76.useCallback(
|
|
28008
28195
|
(next) => {
|
|
28009
28196
|
if (!isControlled) setInner(next);
|
|
28010
28197
|
onChange == null ? void 0 : onChange(next);
|
|
28011
28198
|
},
|
|
28012
28199
|
[isControlled, onChange]
|
|
28013
28200
|
);
|
|
28014
|
-
|
|
28201
|
+
React76.useEffect(() => {
|
|
28015
28202
|
if (!isControlled) return;
|
|
28016
28203
|
setInner(value);
|
|
28017
28204
|
}, [isControlled]);
|
|
@@ -28026,7 +28213,7 @@ function callCallbacks(callbacks, action, nextRoot, ctx) {
|
|
|
28026
28213
|
const meta = { action, route: ctx.route, path, parent, key };
|
|
28027
28214
|
(_b = callbacks.onEdit) == null ? void 0 : _b.call(callbacks, nextRoot, meta);
|
|
28028
28215
|
}
|
|
28029
|
-
var JsonEditor =
|
|
28216
|
+
var JsonEditor = React76.forwardRef(function JsonEditorEditor(props, ref) {
|
|
28030
28217
|
var _a, _b;
|
|
28031
28218
|
const {
|
|
28032
28219
|
root,
|
|
@@ -28056,16 +28243,16 @@ var JsonEditor = React74.forwardRef(function JsonEditorEditor(props, ref) {
|
|
|
28056
28243
|
} = props;
|
|
28057
28244
|
const canViewRaw = (_a = permissions == null ? void 0 : permissions.canViewRaw) != null ? _a : true;
|
|
28058
28245
|
const canEditRaw = (_b = permissions == null ? void 0 : permissions.canEditRaw) != null ? _b : false;
|
|
28059
|
-
const routes =
|
|
28246
|
+
const routes = React76.useMemo(
|
|
28060
28247
|
() => buildJsonRoutes(root, void 0, filters),
|
|
28061
28248
|
[root, filters]
|
|
28062
28249
|
);
|
|
28063
|
-
const allPaths =
|
|
28250
|
+
const allPaths = React76.useMemo(() => {
|
|
28064
28251
|
const list = collectAllPaths(root, "", []);
|
|
28065
28252
|
const seen = /* @__PURE__ */ new Set();
|
|
28066
28253
|
return list.filter((p2) => seen.has(p2) ? false : (seen.add(p2), true));
|
|
28067
28254
|
}, [root]);
|
|
28068
|
-
const computedInitialRoute =
|
|
28255
|
+
const computedInitialRoute = React76.useMemo(() => {
|
|
28069
28256
|
var _a2, _b2;
|
|
28070
28257
|
const explicit = routeProp != null ? routeProp : defaultRoute;
|
|
28071
28258
|
if (explicit !== void 0) return explicit;
|
|
@@ -28081,25 +28268,25 @@ var JsonEditor = React74.forwardRef(function JsonEditorEditor(props, ref) {
|
|
|
28081
28268
|
defaultValue: defaultViewMode,
|
|
28082
28269
|
onChange: onViewModeChange
|
|
28083
28270
|
});
|
|
28084
|
-
|
|
28271
|
+
React76.useEffect(() => {
|
|
28085
28272
|
if (!canViewRaw && (viewMode === "raw" || viewMode === "split")) {
|
|
28086
28273
|
setViewMode("visual");
|
|
28087
28274
|
}
|
|
28088
28275
|
}, [canViewRaw, setViewMode, viewMode]);
|
|
28089
|
-
const fileInputRef =
|
|
28090
|
-
const contentRef =
|
|
28091
|
-
const [rawWidth, setRawWidth] =
|
|
28092
|
-
const [isResizing, setIsResizing] =
|
|
28093
|
-
const startXRef =
|
|
28094
|
-
const startWRef =
|
|
28095
|
-
const clampRawWidth =
|
|
28276
|
+
const fileInputRef = React76.useRef(null);
|
|
28277
|
+
const contentRef = React76.useRef(null);
|
|
28278
|
+
const [rawWidth, setRawWidth] = React76.useState(420);
|
|
28279
|
+
const [isResizing, setIsResizing] = React76.useState(false);
|
|
28280
|
+
const startXRef = React76.useRef(0);
|
|
28281
|
+
const startWRef = React76.useRef(0);
|
|
28282
|
+
const clampRawWidth = React76.useCallback((w2) => {
|
|
28096
28283
|
var _a2, _b2;
|
|
28097
28284
|
const containerW = (_b2 = (_a2 = contentRef.current) == null ? void 0 : _a2.getBoundingClientRect().width) != null ? _b2 : 0;
|
|
28098
28285
|
const min2 = 260;
|
|
28099
28286
|
const max2 = containerW ? Math.max(min2, Math.min(900, containerW - 240)) : 900;
|
|
28100
28287
|
return Math.max(min2, Math.min(max2, w2));
|
|
28101
28288
|
}, []);
|
|
28102
|
-
const onResizePointerDown =
|
|
28289
|
+
const onResizePointerDown = React76.useCallback(
|
|
28103
28290
|
(e4) => {
|
|
28104
28291
|
if (e4.button !== 0 && e4.pointerType === "mouse") return;
|
|
28105
28292
|
setIsResizing(true);
|
|
@@ -28111,7 +28298,7 @@ var JsonEditor = React74.forwardRef(function JsonEditorEditor(props, ref) {
|
|
|
28111
28298
|
},
|
|
28112
28299
|
[rawWidth]
|
|
28113
28300
|
);
|
|
28114
|
-
const onResizePointerMove =
|
|
28301
|
+
const onResizePointerMove = React76.useCallback(
|
|
28115
28302
|
(e4) => {
|
|
28116
28303
|
if (!isResizing) return;
|
|
28117
28304
|
const dx = e4.clientX - startXRef.current;
|
|
@@ -28120,7 +28307,7 @@ var JsonEditor = React74.forwardRef(function JsonEditorEditor(props, ref) {
|
|
|
28120
28307
|
},
|
|
28121
28308
|
[clampRawWidth, isResizing]
|
|
28122
28309
|
);
|
|
28123
|
-
const stopResizing =
|
|
28310
|
+
const stopResizing = React76.useCallback(
|
|
28124
28311
|
(e4) => {
|
|
28125
28312
|
if (!isResizing) return;
|
|
28126
28313
|
setIsResizing(false);
|
|
@@ -28131,14 +28318,14 @@ var JsonEditor = React74.forwardRef(function JsonEditorEditor(props, ref) {
|
|
|
28131
28318
|
},
|
|
28132
28319
|
[isResizing]
|
|
28133
28320
|
);
|
|
28134
|
-
const loadFile =
|
|
28321
|
+
const loadFile = React76.useCallback(() => {
|
|
28135
28322
|
var _a2;
|
|
28136
28323
|
(_a2 = fileInputRef.current) == null ? void 0 : _a2.click();
|
|
28137
28324
|
}, []);
|
|
28138
|
-
const close =
|
|
28325
|
+
const close = React76.useCallback(() => {
|
|
28139
28326
|
onClose == null ? void 0 : onClose();
|
|
28140
28327
|
}, [onClose]);
|
|
28141
|
-
const onFilePicked =
|
|
28328
|
+
const onFilePicked = React76.useCallback(
|
|
28142
28329
|
async (e4) => {
|
|
28143
28330
|
var _a2;
|
|
28144
28331
|
const file = (_a2 = e4.target.files) == null ? void 0 : _a2[0];
|
|
@@ -28158,7 +28345,7 @@ var JsonEditor = React74.forwardRef(function JsonEditorEditor(props, ref) {
|
|
|
28158
28345
|
},
|
|
28159
28346
|
[callbacks, onRoot, route]
|
|
28160
28347
|
);
|
|
28161
|
-
const breadcrumb =
|
|
28348
|
+
const breadcrumb = React76.useMemo(() => {
|
|
28162
28349
|
const segs = splitPath(route);
|
|
28163
28350
|
const parts = [];
|
|
28164
28351
|
const rootNode = {
|
|
@@ -28185,7 +28372,7 @@ var JsonEditor = React74.forwardRef(function JsonEditorEditor(props, ref) {
|
|
|
28185
28372
|
}) : prettifyLabel2(s3);
|
|
28186
28373
|
parts.push({ path: acc, label });
|
|
28187
28374
|
}
|
|
28188
|
-
return /* @__PURE__ */ jsx("div", { className: "flex items-center gap-1 text-sm text-muted-foreground", children: parts.map((p2, idx) => /* @__PURE__ */ jsxs(
|
|
28375
|
+
return /* @__PURE__ */ jsx("div", { className: "flex items-center gap-1 text-sm text-muted-foreground", children: parts.map((p2, idx) => /* @__PURE__ */ jsxs(React76.Fragment, { children: [
|
|
28189
28376
|
/* @__PURE__ */ jsx(
|
|
28190
28377
|
Button2,
|
|
28191
28378
|
{
|
|
@@ -28200,7 +28387,7 @@ var JsonEditor = React74.forwardRef(function JsonEditorEditor(props, ref) {
|
|
|
28200
28387
|
idx < parts.length - 1 ? /* @__PURE__ */ jsx("span", { className: "opacity-60", children: "/" }) : null
|
|
28201
28388
|
] }, p2.path || "root")) });
|
|
28202
28389
|
}, [route, routes, renderRouteLabel, setRoute]);
|
|
28203
|
-
const routeTitle =
|
|
28390
|
+
const routeTitle = React76.useMemo(() => {
|
|
28204
28391
|
if (!route) return "Config.json";
|
|
28205
28392
|
const key = lastSegment(route);
|
|
28206
28393
|
if (renderRouteLabel) {
|
|
@@ -28216,7 +28403,7 @@ var JsonEditor = React74.forwardRef(function JsonEditorEditor(props, ref) {
|
|
|
28216
28403
|
}
|
|
28217
28404
|
return prettifyLabel2(key);
|
|
28218
28405
|
}, [route, renderRouteLabel]);
|
|
28219
|
-
const viewControls =
|
|
28406
|
+
const viewControls = React76.useMemo(() => {
|
|
28220
28407
|
return /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1 rounded-md border p-1", children: [
|
|
28221
28408
|
/* @__PURE__ */ jsxs(
|
|
28222
28409
|
Button2,
|
|
@@ -28259,7 +28446,7 @@ var JsonEditor = React74.forwardRef(function JsonEditorEditor(props, ref) {
|
|
|
28259
28446
|
) : null
|
|
28260
28447
|
] });
|
|
28261
28448
|
}, [canViewRaw, setViewMode, viewMode]);
|
|
28262
|
-
const header =
|
|
28449
|
+
const header = React76.useMemo(() => {
|
|
28263
28450
|
const ctx = {
|
|
28264
28451
|
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" }) }),
|
|
28265
28452
|
viewControls,
|
|
@@ -28311,7 +28498,7 @@ var JsonEditor = React74.forwardRef(function JsonEditorEditor(props, ref) {
|
|
|
28311
28498
|
showClose,
|
|
28312
28499
|
viewControls
|
|
28313
28500
|
]);
|
|
28314
|
-
const onVisualRoot =
|
|
28501
|
+
const onVisualRoot = React76.useCallback(
|
|
28315
28502
|
(nextRoot, detail) => {
|
|
28316
28503
|
onRoot(nextRoot, detail);
|
|
28317
28504
|
const d = detail;
|
|
@@ -28323,14 +28510,14 @@ var JsonEditor = React74.forwardRef(function JsonEditorEditor(props, ref) {
|
|
|
28323
28510
|
},
|
|
28324
28511
|
[callbacks, onRoot, route]
|
|
28325
28512
|
);
|
|
28326
|
-
const onRawRoot =
|
|
28513
|
+
const onRawRoot = React76.useCallback(
|
|
28327
28514
|
(nextRoot, detail) => {
|
|
28328
28515
|
onRoot(nextRoot, detail);
|
|
28329
28516
|
callCallbacks(callbacks, "edit-raw", nextRoot, { route, path: "" });
|
|
28330
28517
|
},
|
|
28331
28518
|
[callbacks, onRoot, route]
|
|
28332
28519
|
);
|
|
28333
|
-
|
|
28520
|
+
React76.useImperativeHandle(
|
|
28334
28521
|
ref,
|
|
28335
28522
|
() => ({
|
|
28336
28523
|
loadFile,
|
|
@@ -28452,7 +28639,7 @@ function triggerHeightCls(size) {
|
|
|
28452
28639
|
return "h-9 text-sm";
|
|
28453
28640
|
}
|
|
28454
28641
|
}
|
|
28455
|
-
var ShadcnJsonEditorVariant =
|
|
28642
|
+
var ShadcnJsonEditorVariant = React76.forwardRef(function ShadcnJsonEditorVariant2(props, ref) {
|
|
28456
28643
|
var _a;
|
|
28457
28644
|
const {
|
|
28458
28645
|
mode = "popover",
|
|
@@ -28499,15 +28686,15 @@ var ShadcnJsonEditorVariant = React74.forwardRef(function ShadcnJsonEditorVarian
|
|
|
28499
28686
|
extendBoxToControls = true,
|
|
28500
28687
|
triggerClassName
|
|
28501
28688
|
} = props;
|
|
28502
|
-
const editorRef =
|
|
28503
|
-
const root =
|
|
28689
|
+
const editorRef = React76.useRef(null);
|
|
28690
|
+
const root = React76.useMemo(() => {
|
|
28504
28691
|
if ("root" in props) return props.root;
|
|
28505
28692
|
const v2 = props.value;
|
|
28506
28693
|
if (isPlainObject5(v2)) return v2;
|
|
28507
28694
|
if (v2 == null) return {};
|
|
28508
28695
|
return {};
|
|
28509
28696
|
}, [props]);
|
|
28510
|
-
const emitRoot =
|
|
28697
|
+
const emitRoot = React76.useCallback(
|
|
28511
28698
|
(nextRoot, detail) => {
|
|
28512
28699
|
var _a2, _b;
|
|
28513
28700
|
if ("onRoot" in props) {
|
|
@@ -28518,9 +28705,9 @@ var ShadcnJsonEditorVariant = React74.forwardRef(function ShadcnJsonEditorVarian
|
|
|
28518
28705
|
},
|
|
28519
28706
|
[props]
|
|
28520
28707
|
);
|
|
28521
|
-
const [openInner, setOpenInner] =
|
|
28708
|
+
const [openInner, setOpenInner] = React76.useState(false);
|
|
28522
28709
|
const open = openProp != null ? openProp : openInner;
|
|
28523
|
-
const setOpen =
|
|
28710
|
+
const setOpen = React76.useCallback(
|
|
28524
28711
|
(next) => {
|
|
28525
28712
|
if (openProp === void 0) setOpenInner(next);
|
|
28526
28713
|
onOpenChange == null ? void 0 : onOpenChange(next);
|
|
@@ -28528,11 +28715,11 @@ var ShadcnJsonEditorVariant = React74.forwardRef(function ShadcnJsonEditorVarian
|
|
|
28528
28715
|
},
|
|
28529
28716
|
[openProp, onOpenChange, onClose]
|
|
28530
28717
|
);
|
|
28531
|
-
const close =
|
|
28532
|
-
const doOpen =
|
|
28533
|
-
const toggle =
|
|
28534
|
-
const [expanded, setExpanded] =
|
|
28535
|
-
|
|
28718
|
+
const close = React76.useCallback(() => setOpen(false), [setOpen]);
|
|
28719
|
+
const doOpen = React76.useCallback(() => setOpen(true), [setOpen]);
|
|
28720
|
+
const toggle = React76.useCallback(() => setOpen(!open), [setOpen, open]);
|
|
28721
|
+
const [expanded, setExpanded] = React76.useState();
|
|
28722
|
+
React76.useImperativeHandle(
|
|
28536
28723
|
ref,
|
|
28537
28724
|
() => ({
|
|
28538
28725
|
open: doOpen,
|
|
@@ -28978,7 +29165,7 @@ var defaultHost = {
|
|
|
28978
29165
|
}
|
|
28979
29166
|
};
|
|
28980
29167
|
|
|
28981
|
-
// src/presets/shadcn
|
|
29168
|
+
// src/presets/shadcn/variants/lister/patch.ts
|
|
28982
29169
|
function makeInlineDef(args) {
|
|
28983
29170
|
const mapping = {
|
|
28984
29171
|
optionValue: (raw, ctx) => pick(raw, args.optionValue, ctx),
|
|
@@ -29089,7 +29276,7 @@ function normalizeIconifyInput(icon) {
|
|
|
29089
29276
|
}
|
|
29090
29277
|
function OptionIcon(props) {
|
|
29091
29278
|
const { icon, className } = props;
|
|
29092
|
-
if (
|
|
29279
|
+
if (React76.isValidElement(icon)) {
|
|
29093
29280
|
return /* @__PURE__ */ jsx("span", { className: cn("shrink-0", className), children: icon });
|
|
29094
29281
|
}
|
|
29095
29282
|
if (isSvgSnippetString(icon)) {
|
|
@@ -29142,7 +29329,7 @@ function OptionList(props) {
|
|
|
29142
29329
|
const options = (_a = selectors.visibleOptions(id)) != null ? _a : [];
|
|
29143
29330
|
const draft = s3 == null ? void 0 : s3.draftValue;
|
|
29144
29331
|
const isMulti = (s3 == null ? void 0 : s3.mode) === "multiple";
|
|
29145
|
-
const isSelected =
|
|
29332
|
+
const isSelected = React76.useCallback(
|
|
29146
29333
|
(value) => {
|
|
29147
29334
|
if (isMulti) return Array.isArray(draft) && draft.includes(value);
|
|
29148
29335
|
return draft === value;
|
|
@@ -29162,7 +29349,7 @@ function OptionList(props) {
|
|
|
29162
29349
|
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" }) });
|
|
29163
29350
|
}
|
|
29164
29351
|
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(
|
|
29165
|
-
|
|
29352
|
+
VirtualScroll,
|
|
29166
29353
|
{
|
|
29167
29354
|
style: { height: "100%", minHeight: 0 },
|
|
29168
29355
|
data: options,
|
|
@@ -29361,25 +29548,25 @@ function ListerInner(props) {
|
|
|
29361
29548
|
panelClassName
|
|
29362
29549
|
} = props;
|
|
29363
29550
|
const { api, actions, store } = useLister();
|
|
29364
|
-
const ownerKeyRef =
|
|
29551
|
+
const ownerKeyRef = React76.useRef(
|
|
29365
29552
|
(_a = openOptions == null ? void 0 : openOptions.ownerKey) != null ? _a : createRuntimeKey("lister_owner")
|
|
29366
29553
|
);
|
|
29367
|
-
|
|
29554
|
+
React76.useEffect(() => {
|
|
29368
29555
|
const next = openOptions == null ? void 0 : openOptions.ownerKey;
|
|
29369
29556
|
if (next) ownerKeyRef.current = next;
|
|
29370
29557
|
}, [openOptions]);
|
|
29371
29558
|
const session = findSessionByOwner(store, ownerKeyRef.current);
|
|
29372
29559
|
const sessionId = session == null ? void 0 : session.sessionId;
|
|
29373
29560
|
const isOpen = !!(session == null ? void 0 : session.isOpen);
|
|
29374
|
-
const [selectedOptions, setSelectedOptions] =
|
|
29561
|
+
const [selectedOptions, setSelectedOptions] = React76.useState(
|
|
29375
29562
|
null
|
|
29376
29563
|
);
|
|
29377
|
-
const openingRef =
|
|
29564
|
+
const openingRef = React76.useRef(false);
|
|
29378
29565
|
const mode = modeProp != null ? modeProp : "single";
|
|
29379
29566
|
const confirm = mode === "multiple" ? true : !!confirmProp;
|
|
29380
29567
|
const disabledTrigger = !!(disabled || readOnly);
|
|
29381
29568
|
const hasValue = mode === "multiple" ? Array.isArray(value) && value.length > 0 : value != null && value !== "";
|
|
29382
|
-
|
|
29569
|
+
React76.useEffect(() => {
|
|
29383
29570
|
if (!hasValue) {
|
|
29384
29571
|
setSelectedOptions(null);
|
|
29385
29572
|
return;
|
|
@@ -29415,7 +29602,7 @@ function ListerInner(props) {
|
|
|
29415
29602
|
alive = false;
|
|
29416
29603
|
};
|
|
29417
29604
|
}, [api, def, filters, mode, value, hasValue]);
|
|
29418
|
-
const openSession =
|
|
29605
|
+
const openSession = React76.useCallback(async () => {
|
|
29419
29606
|
var _a2, _b2;
|
|
29420
29607
|
console.log(openingRef.current);
|
|
29421
29608
|
if (disabledTrigger) return;
|
|
@@ -29456,7 +29643,7 @@ function ListerInner(props) {
|
|
|
29456
29643
|
permissions,
|
|
29457
29644
|
value
|
|
29458
29645
|
]);
|
|
29459
|
-
const clear =
|
|
29646
|
+
const clear = React76.useCallback(() => {
|
|
29460
29647
|
if (disabledTrigger) return;
|
|
29461
29648
|
onValue(void 0, {
|
|
29462
29649
|
action: "clear",
|
|
@@ -29464,7 +29651,7 @@ function ListerInner(props) {
|
|
|
29464
29651
|
});
|
|
29465
29652
|
setSelectedOptions(null);
|
|
29466
29653
|
}, [disabledTrigger, onValue]);
|
|
29467
|
-
const display =
|
|
29654
|
+
const display = React76.useMemo(() => {
|
|
29468
29655
|
return buildLabelsFromOptions({
|
|
29469
29656
|
mode,
|
|
29470
29657
|
value,
|
|
@@ -29473,7 +29660,7 @@ function ListerInner(props) {
|
|
|
29473
29660
|
maxItems: maxDisplayItems
|
|
29474
29661
|
});
|
|
29475
29662
|
}, [maxDisplayItems, mode, placeholder, selectedOptions, value]);
|
|
29476
|
-
const triggerCtx =
|
|
29663
|
+
const triggerCtx = React76.useMemo(
|
|
29477
29664
|
() => ({
|
|
29478
29665
|
mode,
|
|
29479
29666
|
value,
|
|
@@ -29599,7 +29786,7 @@ function ListerInner(props) {
|
|
|
29599
29786
|
}
|
|
29600
29787
|
);
|
|
29601
29788
|
const userTriggerEl = renderTrigger ? renderTrigger(triggerCtx) : null;
|
|
29602
|
-
const TriggerNode = renderTrigger &&
|
|
29789
|
+
const TriggerNode = renderTrigger && React76.isValidElement(userTriggerEl) ? React76.cloneElement(userTriggerEl, {
|
|
29603
29790
|
className: cn(
|
|
29604
29791
|
(_b = userTriggerEl.props) == null ? void 0 : _b.className,
|
|
29605
29792
|
className
|
|
@@ -29825,11 +30012,11 @@ function ListerResolvedInner(props) {
|
|
|
29825
30012
|
} = props;
|
|
29826
30013
|
const isStandaloneInline = !def && endpoint != null;
|
|
29827
30014
|
const shouldInferOptionValue = isStandaloneInline && optionValue === void 0;
|
|
29828
|
-
const [resolvedOptionValue, setResolvedOptionValue] =
|
|
29829
|
-
|
|
30015
|
+
const [resolvedOptionValue, setResolvedOptionValue] = React76.useState(() => optionValue != null ? optionValue : "id");
|
|
30016
|
+
React76.useEffect(() => {
|
|
29830
30017
|
if (optionValue !== void 0) setResolvedOptionValue(optionValue);
|
|
29831
30018
|
}, [optionValue]);
|
|
29832
|
-
|
|
30019
|
+
React76.useEffect(() => {
|
|
29833
30020
|
if (!shouldInferOptionValue) return;
|
|
29834
30021
|
if (!endpoint) return;
|
|
29835
30022
|
let alive = true;
|
|
@@ -29881,7 +30068,7 @@ function ListerResolvedInner(props) {
|
|
|
29881
30068
|
const inlineExists = endpoint !== void 0 || method !== void 0 || buildRequest !== void 0 || selector !== void 0 || resolvedOptionValue !== void 0 || // ✅ KEEP THIS (your rule)
|
|
29882
30069
|
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
|
|
29883
30070
|
search !== void 0;
|
|
29884
|
-
const finalDef =
|
|
30071
|
+
const finalDef = React76.useMemo(() => {
|
|
29885
30072
|
const baseDef = def;
|
|
29886
30073
|
if (!inlineExists) return baseDef;
|
|
29887
30074
|
if (!baseDef) {
|
|
@@ -29936,7 +30123,7 @@ function ListerResolvedInner(props) {
|
|
|
29936
30123
|
optionMeta,
|
|
29937
30124
|
search
|
|
29938
30125
|
]);
|
|
29939
|
-
const openOptions =
|
|
30126
|
+
const openOptions = React76.useMemo(() => {
|
|
29940
30127
|
return {
|
|
29941
30128
|
title,
|
|
29942
30129
|
searchMode,
|
|
@@ -30190,24 +30377,24 @@ function IconPickerPanel(props) {
|
|
|
30190
30377
|
maxRender = 2500
|
|
30191
30378
|
} = props;
|
|
30192
30379
|
const den = densityTokens2(density);
|
|
30193
|
-
const groups =
|
|
30380
|
+
const groups = React76.useMemo(() => {
|
|
30194
30381
|
const base = groupsProp != null ? groupsProp : [];
|
|
30195
30382
|
if (!(allowedGroupIds == null ? void 0 : allowedGroupIds.length)) return base;
|
|
30196
30383
|
const allowed = base.filter((g2) => allowedGroupIds.includes(g2.id));
|
|
30197
30384
|
return allowed.length ? allowed : base;
|
|
30198
30385
|
}, [allowedGroupIds, groupsProp]);
|
|
30199
|
-
const prefixes =
|
|
30386
|
+
const prefixes = React76.useMemo(() => {
|
|
30200
30387
|
return uniq2(groups.flatMap((g2) => g2.prefixes).filter(Boolean));
|
|
30201
30388
|
}, [groups]);
|
|
30202
|
-
const [selectedGroupId, setSelectedGroupId] =
|
|
30389
|
+
const [selectedGroupId, setSelectedGroupId] = React76.useState(() => {
|
|
30203
30390
|
var _a;
|
|
30204
30391
|
return (_a = groups[0]) == null ? void 0 : _a.id;
|
|
30205
30392
|
});
|
|
30206
|
-
const [searchQuery, setSearchQuery] =
|
|
30207
|
-
const [loading, setLoading] =
|
|
30208
|
-
const [error, setError] =
|
|
30209
|
-
const [allIcons, setAllIcons] =
|
|
30210
|
-
|
|
30393
|
+
const [searchQuery, setSearchQuery] = React76.useState("");
|
|
30394
|
+
const [loading, setLoading] = React76.useState(false);
|
|
30395
|
+
const [error, setError] = React76.useState(null);
|
|
30396
|
+
const [allIcons, setAllIcons] = React76.useState([]);
|
|
30397
|
+
React76.useEffect(() => {
|
|
30211
30398
|
setSelectedGroupId((prev) => {
|
|
30212
30399
|
var _a, _b;
|
|
30213
30400
|
if (!prev) return (_a = groups[0]) == null ? void 0 : _a.id;
|
|
@@ -30215,7 +30402,7 @@ function IconPickerPanel(props) {
|
|
|
30215
30402
|
return exists ? prev : (_b = groups[0]) == null ? void 0 : _b.id;
|
|
30216
30403
|
});
|
|
30217
30404
|
}, [groups]);
|
|
30218
|
-
|
|
30405
|
+
React76.useEffect(() => {
|
|
30219
30406
|
const controller = new AbortController();
|
|
30220
30407
|
let mounted = true;
|
|
30221
30408
|
const load = async () => {
|
|
@@ -30257,15 +30444,15 @@ function IconPickerPanel(props) {
|
|
|
30257
30444
|
controller.abort();
|
|
30258
30445
|
};
|
|
30259
30446
|
}, [prefixes, url]);
|
|
30260
|
-
const selectedGroup =
|
|
30447
|
+
const selectedGroup = React76.useMemo(
|
|
30261
30448
|
() => groups.find((g2) => g2.id === selectedGroupId),
|
|
30262
30449
|
[groups, selectedGroupId]
|
|
30263
30450
|
);
|
|
30264
|
-
const selectedGroupPrefixes =
|
|
30451
|
+
const selectedGroupPrefixes = React76.useMemo(() => {
|
|
30265
30452
|
if (!selectedGroup) return void 0;
|
|
30266
30453
|
return new Set(selectedGroup.prefixes);
|
|
30267
30454
|
}, [selectedGroup]);
|
|
30268
|
-
const filteredIcons =
|
|
30455
|
+
const filteredIcons = React76.useMemo(() => {
|
|
30269
30456
|
const q2 = searchQuery.trim().toLowerCase();
|
|
30270
30457
|
let list = allIcons;
|
|
30271
30458
|
if (selectedGroupPrefixes) {
|
|
@@ -30281,7 +30468,7 @@ function IconPickerPanel(props) {
|
|
|
30281
30468
|
}
|
|
30282
30469
|
return list;
|
|
30283
30470
|
}, [allIcons, searchQuery, selectedGroupPrefixes]);
|
|
30284
|
-
const limitedIcons =
|
|
30471
|
+
const limitedIcons = React76.useMemo(() => {
|
|
30285
30472
|
if (filteredIcons.length <= maxRender) return filteredIcons;
|
|
30286
30473
|
return filteredIcons.slice(0, maxRender);
|
|
30287
30474
|
}, [filteredIcons, maxRender]);
|
|
@@ -30295,7 +30482,7 @@ function IconPickerPanel(props) {
|
|
|
30295
30482
|
value.includes(iconName) ? value.filter((x2) => x2 !== iconName) : [...value, iconName]
|
|
30296
30483
|
);
|
|
30297
30484
|
};
|
|
30298
|
-
const GridComponents =
|
|
30485
|
+
const GridComponents = React76.useMemo(
|
|
30299
30486
|
() => ({
|
|
30300
30487
|
List: (p2) => /* @__PURE__ */ jsx(
|
|
30301
30488
|
"div",
|
|
@@ -30308,8 +30495,11 @@ function IconPickerPanel(props) {
|
|
|
30308
30495
|
}),
|
|
30309
30496
|
[]
|
|
30310
30497
|
);
|
|
30311
|
-
const gridHeightStyle =
|
|
30312
|
-
() => ({
|
|
30498
|
+
const gridHeightStyle = React76.useMemo(
|
|
30499
|
+
() => ({
|
|
30500
|
+
height: "320px",
|
|
30501
|
+
maxHeight: "calc(var(--radix-popper-available-height) - 140px)"
|
|
30502
|
+
}),
|
|
30313
30503
|
[]
|
|
30314
30504
|
);
|
|
30315
30505
|
return /* @__PURE__ */ jsxs("div", { className: "flex flex-col", children: [
|
|
@@ -30366,7 +30556,7 @@ function IconPickerPanel(props) {
|
|
|
30366
30556
|
" results (refine search to narrow)."
|
|
30367
30557
|
] }),
|
|
30368
30558
|
/* @__PURE__ */ jsx(
|
|
30369
|
-
|
|
30559
|
+
VirtualScrollGrid,
|
|
30370
30560
|
{
|
|
30371
30561
|
style: gridHeightStyle,
|
|
30372
30562
|
data: limitedIcons,
|
|
@@ -30433,7 +30623,7 @@ function IconPickerPanel(props) {
|
|
|
30433
30623
|
)
|
|
30434
30624
|
] });
|
|
30435
30625
|
}
|
|
30436
|
-
var ShadcnIconVariant =
|
|
30626
|
+
var ShadcnIconVariant = React76.forwardRef(function ShadcnIconVariant2(props, ref) {
|
|
30437
30627
|
var _a, _b;
|
|
30438
30628
|
const {
|
|
30439
30629
|
value,
|
|
@@ -30485,12 +30675,12 @@ var ShadcnIconVariant = React74.forwardRef(function ShadcnIconVariant2(props, re
|
|
|
30485
30675
|
const resolvedLeadingIcons = (leadingIcons == null ? void 0 : leadingIcons.length) ? leadingIcons : icon ? [icon] : [];
|
|
30486
30676
|
const resolvedTrailingIcons = (trailingIcons == null ? void 0 : trailingIcons.length) ? trailingIcons : [];
|
|
30487
30677
|
const hasExternalControls = !!leadingControl || !!trailingControl;
|
|
30488
|
-
const [popoverOpen, setPopoverOpen] =
|
|
30489
|
-
const selected =
|
|
30678
|
+
const [popoverOpen, setPopoverOpen] = React76.useState(false);
|
|
30679
|
+
const selected = React76.useMemo(() => {
|
|
30490
30680
|
if (multiple) return Array.isArray(value) ? value.filter(Boolean) : [];
|
|
30491
30681
|
return typeof value === "string" && value ? [value] : [];
|
|
30492
30682
|
}, [multiple, value]);
|
|
30493
|
-
const emit =
|
|
30683
|
+
const emit = React76.useCallback(
|
|
30494
30684
|
(nextArr, meta) => {
|
|
30495
30685
|
var _a2, _b2;
|
|
30496
30686
|
if (!onValue) return;
|
|
@@ -30512,7 +30702,7 @@ var ShadcnIconVariant = React74.forwardRef(function ShadcnIconVariant2(props, re
|
|
|
30512
30702
|
},
|
|
30513
30703
|
[multiple, onValue]
|
|
30514
30704
|
);
|
|
30515
|
-
const Chip =
|
|
30705
|
+
const Chip = React76.useCallback(
|
|
30516
30706
|
({ iconName }) => {
|
|
30517
30707
|
var _a2;
|
|
30518
30708
|
const short = (_a2 = iconName.split(":")[1]) != null ? _a2 : iconName;
|
|
@@ -30575,7 +30765,7 @@ var ShadcnIconVariant = React74.forwardRef(function ShadcnIconVariant2(props, re
|
|
|
30575
30765
|
[chipHeightCls, den.chipGap, den.chipPad, emit, selected]
|
|
30576
30766
|
);
|
|
30577
30767
|
const selectedCount = selected.length;
|
|
30578
|
-
const resolveButtonTriggerElement =
|
|
30768
|
+
const resolveButtonTriggerElement = React76.useCallback(() => {
|
|
30579
30769
|
const ctx = {
|
|
30580
30770
|
open: popoverOpen,
|
|
30581
30771
|
items: selected,
|
|
@@ -30605,7 +30795,7 @@ var ShadcnIconVariant = React74.forwardRef(function ShadcnIconVariant2(props, re
|
|
|
30605
30795
|
);
|
|
30606
30796
|
const child = el.props.children;
|
|
30607
30797
|
if (selectedBadgePlacement === "end") {
|
|
30608
|
-
return
|
|
30798
|
+
return React76.cloneElement(el, {
|
|
30609
30799
|
className: nextClass,
|
|
30610
30800
|
children: /* @__PURE__ */ jsxs("span", { className: "inline-flex items-center gap-2", children: [
|
|
30611
30801
|
/* @__PURE__ */ jsx("span", { className: "min-w-0", children: child }),
|
|
@@ -30613,7 +30803,7 @@ var ShadcnIconVariant = React74.forwardRef(function ShadcnIconVariant2(props, re
|
|
|
30613
30803
|
] })
|
|
30614
30804
|
});
|
|
30615
30805
|
}
|
|
30616
|
-
return
|
|
30806
|
+
return React76.cloneElement(el, {
|
|
30617
30807
|
className: nextClass,
|
|
30618
30808
|
children: /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
30619
30809
|
child,
|
|
@@ -30621,7 +30811,7 @@ var ShadcnIconVariant = React74.forwardRef(function ShadcnIconVariant2(props, re
|
|
|
30621
30811
|
] })
|
|
30622
30812
|
});
|
|
30623
30813
|
};
|
|
30624
|
-
const withNoopDnD = (el) =>
|
|
30814
|
+
const withNoopDnD = (el) => React76.cloneElement(el, {
|
|
30625
30815
|
// keep event-merging parity with file variant (no-op, but safe)
|
|
30626
30816
|
onDragOver: mergeHandlers2(
|
|
30627
30817
|
el.props.onDragOver,
|
|
@@ -30638,7 +30828,7 @@ var ShadcnIconVariant = React74.forwardRef(function ShadcnIconVariant2(props, re
|
|
|
30638
30828
|
}
|
|
30639
30829
|
)
|
|
30640
30830
|
});
|
|
30641
|
-
if (
|
|
30831
|
+
if (React76.isValidElement(rawNode))
|
|
30642
30832
|
return withNoopDnD(injectBadgeIntoElement(rawNode));
|
|
30643
30833
|
const fallback = /* @__PURE__ */ jsxs(
|
|
30644
30834
|
"button",
|
|
@@ -30686,7 +30876,7 @@ var ShadcnIconVariant = React74.forwardRef(function ShadcnIconVariant2(props, re
|
|
|
30686
30876
|
triggerClassName
|
|
30687
30877
|
]);
|
|
30688
30878
|
const COLLAPSE_LIMIT = 2;
|
|
30689
|
-
const TriggerRegion =
|
|
30879
|
+
const TriggerRegion = React76.useMemo(() => {
|
|
30690
30880
|
const hasItems = selected.length > 0;
|
|
30691
30881
|
const visibleItems = selected.slice(0, COLLAPSE_LIMIT);
|
|
30692
30882
|
const hiddenCount = selected.length - COLLAPSE_LIMIT;
|
|
@@ -30774,11 +30964,11 @@ var ShadcnIconVariant = React74.forwardRef(function ShadcnIconVariant2(props, re
|
|
|
30774
30964
|
PopoverContent,
|
|
30775
30965
|
{
|
|
30776
30966
|
className: cn(
|
|
30777
|
-
"w-(--radix-popover-trigger-width) p-0 max-h-(--radix-popper-available-height)",
|
|
30967
|
+
"w-(--radix-popover-trigger-width) p-0 max-h-(--radix-popper-available-height) overflow-hidden flex flex-col",
|
|
30778
30968
|
popoverClassName
|
|
30779
30969
|
),
|
|
30780
30970
|
align: "start",
|
|
30781
|
-
children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col", children: [
|
|
30971
|
+
children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col flex-1 min-h-0", children: [
|
|
30782
30972
|
/* @__PURE__ */ jsxs(
|
|
30783
30973
|
"div",
|
|
30784
30974
|
{
|
|
@@ -31058,8 +31248,8 @@ function isFileLikeString(s3) {
|
|
|
31058
31248
|
return FILE_EXT_RE.test(v2);
|
|
31059
31249
|
}
|
|
31060
31250
|
function useImagePreview(value) {
|
|
31061
|
-
const [src, setSrc] =
|
|
31062
|
-
|
|
31251
|
+
const [src, setSrc] = React76.useState(null);
|
|
31252
|
+
React76.useEffect(() => {
|
|
31063
31253
|
if (!value) {
|
|
31064
31254
|
setSrc(null);
|
|
31065
31255
|
return;
|
|
@@ -31077,7 +31267,7 @@ var ImageThumb = ({ image }) => {
|
|
|
31077
31267
|
const src = useImagePreview(image);
|
|
31078
31268
|
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" }) });
|
|
31079
31269
|
};
|
|
31080
|
-
var ShadcnImageIconVariant =
|
|
31270
|
+
var ShadcnImageIconVariant = React76.forwardRef(function ShadcnImageIconVariant2(props, ref) {
|
|
31081
31271
|
const {
|
|
31082
31272
|
value,
|
|
31083
31273
|
onValue,
|
|
@@ -31134,7 +31324,7 @@ var ShadcnImageIconVariant = React74.forwardRef(function ShadcnImageIconVariant2
|
|
|
31134
31324
|
const regIcon = getPaletteUtil("iconPicker");
|
|
31135
31325
|
const resolvedIconUrl = iconUrl != null ? iconUrl : regIcon == null ? void 0 : regIcon.url;
|
|
31136
31326
|
const resolvedIconGroups = iconGroups != null ? iconGroups : regIcon == null ? void 0 : regIcon.groups;
|
|
31137
|
-
const effectiveIconGroups =
|
|
31327
|
+
const effectiveIconGroups = React76.useMemo(() => {
|
|
31138
31328
|
const groups = resolvedIconGroups != null ? resolvedIconGroups : DEFAULT_GROUPS;
|
|
31139
31329
|
const allowed = toArray2(allowedIconGroupIds).filter(
|
|
31140
31330
|
Boolean
|
|
@@ -31143,7 +31333,7 @@ var ShadcnImageIconVariant = React74.forwardRef(function ShadcnImageIconVariant2
|
|
|
31143
31333
|
const filtered = groups.filter((g2) => allowed.includes(g2.id));
|
|
31144
31334
|
return filtered.length ? filtered : groups;
|
|
31145
31335
|
}, [resolvedIconGroups, allowedIconGroupIds]);
|
|
31146
|
-
const allowedIconPrefixes =
|
|
31336
|
+
const allowedIconPrefixes = React76.useMemo(() => {
|
|
31147
31337
|
var _a;
|
|
31148
31338
|
const set = /* @__PURE__ */ new Set();
|
|
31149
31339
|
for (const g2 of effectiveIconGroups) {
|
|
@@ -31151,7 +31341,7 @@ var ShadcnImageIconVariant = React74.forwardRef(function ShadcnImageIconVariant2
|
|
|
31151
31341
|
}
|
|
31152
31342
|
return set;
|
|
31153
31343
|
}, [effectiveIconGroups]);
|
|
31154
|
-
const isIconString =
|
|
31344
|
+
const isIconString = React76.useCallback(
|
|
31155
31345
|
(raw) => {
|
|
31156
31346
|
var _a;
|
|
31157
31347
|
const s3 = raw.trim();
|
|
@@ -31163,7 +31353,7 @@ var ShadcnImageIconVariant = React74.forwardRef(function ShadcnImageIconVariant2
|
|
|
31163
31353
|
},
|
|
31164
31354
|
[allowedIconPrefixes]
|
|
31165
31355
|
);
|
|
31166
|
-
const normaliseImageIconInput =
|
|
31356
|
+
const normaliseImageIconInput = React76.useCallback(
|
|
31167
31357
|
(v2) => {
|
|
31168
31358
|
var _a;
|
|
31169
31359
|
if (v2 == null) return null;
|
|
@@ -31204,25 +31394,25 @@ var ShadcnImageIconVariant = React74.forwardRef(function ShadcnImageIconVariant2
|
|
|
31204
31394
|
const resolvedLeadingIcons = (leadingIcons == null ? void 0 : leadingIcons.length) ? leadingIcons : icon ? [icon] : [];
|
|
31205
31395
|
const resolvedTrailingIcons = (trailingIcons == null ? void 0 : trailingIcons.length) ? trailingIcons : [];
|
|
31206
31396
|
const hasExternalControls = !!leadingControl || !!trailingControl;
|
|
31207
|
-
const [popoverOpen, setPopoverOpen] =
|
|
31208
|
-
const [tab, setTab] =
|
|
31209
|
-
const list =
|
|
31397
|
+
const [popoverOpen, setPopoverOpen] = React76.useState(false);
|
|
31398
|
+
const [tab, setTab] = React76.useState("icon");
|
|
31399
|
+
const list = React76.useMemo(() => {
|
|
31210
31400
|
const raw = multiple ? toArray2(value) : value != null ? [value] : [];
|
|
31211
31401
|
return raw.map(normaliseImageIconInput).filter(Boolean);
|
|
31212
31402
|
}, [multiple, normaliseImageIconInput, value]);
|
|
31213
|
-
const iconsSelected =
|
|
31403
|
+
const iconsSelected = React76.useMemo(() => {
|
|
31214
31404
|
return list.filter((x2) => x2.kind === "icon").map((x2) => x2.icon);
|
|
31215
31405
|
}, [list]);
|
|
31216
|
-
const imagesSelected =
|
|
31406
|
+
const imagesSelected = React76.useMemo(() => {
|
|
31217
31407
|
return list.filter((x2) => x2.kind === "image");
|
|
31218
31408
|
}, [list]);
|
|
31219
|
-
const toFieldRaw =
|
|
31409
|
+
const toFieldRaw = React76.useCallback(
|
|
31220
31410
|
(x2) => {
|
|
31221
31411
|
return x2.kind === "icon" ? x2.icon : x2.image;
|
|
31222
31412
|
},
|
|
31223
31413
|
[]
|
|
31224
31414
|
);
|
|
31225
|
-
const emit =
|
|
31415
|
+
const emit = React76.useCallback(
|
|
31226
31416
|
(nextList, meta) => {
|
|
31227
31417
|
var _a, _b;
|
|
31228
31418
|
if (!onValue) return;
|
|
@@ -31251,7 +31441,7 @@ var ShadcnImageIconVariant = React74.forwardRef(function ShadcnImageIconVariant2
|
|
|
31251
31441
|
emit(next, { action: "remove", index: idx });
|
|
31252
31442
|
};
|
|
31253
31443
|
const clearAll = () => emit([], { action: "clear" });
|
|
31254
|
-
const Chip =
|
|
31444
|
+
const Chip = React76.useCallback(
|
|
31255
31445
|
({ item, index }) => {
|
|
31256
31446
|
var _a, _b, _c;
|
|
31257
31447
|
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;
|
|
@@ -31302,7 +31492,7 @@ var ShadcnImageIconVariant = React74.forwardRef(function ShadcnImageIconVariant2
|
|
|
31302
31492
|
[chipHeightCls, den.chipGap, den.chipPad, removeAt]
|
|
31303
31493
|
);
|
|
31304
31494
|
const selectedCount = list.length;
|
|
31305
|
-
const resolveButtonTriggerElement =
|
|
31495
|
+
const resolveButtonTriggerElement = React76.useCallback(() => {
|
|
31306
31496
|
const ctx = {
|
|
31307
31497
|
open: popoverOpen,
|
|
31308
31498
|
items: list,
|
|
@@ -31332,7 +31522,7 @@ var ShadcnImageIconVariant = React74.forwardRef(function ShadcnImageIconVariant2
|
|
|
31332
31522
|
);
|
|
31333
31523
|
const child = el.props.children;
|
|
31334
31524
|
if (selectedBadgePlacement === "end") {
|
|
31335
|
-
return
|
|
31525
|
+
return React76.cloneElement(el, {
|
|
31336
31526
|
className: nextClass,
|
|
31337
31527
|
children: /* @__PURE__ */ jsxs("span", { className: "inline-flex items-center gap-2", children: [
|
|
31338
31528
|
/* @__PURE__ */ jsx("span", { className: "min-w-0", children: child }),
|
|
@@ -31340,7 +31530,7 @@ var ShadcnImageIconVariant = React74.forwardRef(function ShadcnImageIconVariant2
|
|
|
31340
31530
|
] })
|
|
31341
31531
|
});
|
|
31342
31532
|
}
|
|
31343
|
-
return
|
|
31533
|
+
return React76.cloneElement(el, {
|
|
31344
31534
|
className: nextClass,
|
|
31345
31535
|
children: /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
31346
31536
|
child,
|
|
@@ -31348,7 +31538,7 @@ var ShadcnImageIconVariant = React74.forwardRef(function ShadcnImageIconVariant2
|
|
|
31348
31538
|
] })
|
|
31349
31539
|
});
|
|
31350
31540
|
};
|
|
31351
|
-
if (
|
|
31541
|
+
if (React76.isValidElement(rawNode))
|
|
31352
31542
|
return injectBadgeIntoElement(rawNode);
|
|
31353
31543
|
return /* @__PURE__ */ jsxs(
|
|
31354
31544
|
"button",
|
|
@@ -31380,12 +31570,12 @@ var ShadcnImageIconVariant = React74.forwardRef(function ShadcnImageIconVariant2
|
|
|
31380
31570
|
selectedCount,
|
|
31381
31571
|
triggerClassName
|
|
31382
31572
|
]);
|
|
31383
|
-
const [dragOver, setDragOver] =
|
|
31384
|
-
const fileInputRef =
|
|
31385
|
-
const [imgSelectedIds, setImgSelectedIds] =
|
|
31573
|
+
const [dragOver, setDragOver] = React76.useState(false);
|
|
31574
|
+
const fileInputRef = React76.useRef(null);
|
|
31575
|
+
const [imgSelectedIds, setImgSelectedIds] = React76.useState(
|
|
31386
31576
|
() => /* @__PURE__ */ new Set()
|
|
31387
31577
|
);
|
|
31388
|
-
const imageItems =
|
|
31578
|
+
const imageItems = React76.useMemo(() => {
|
|
31389
31579
|
return imagesSelected.map((x2) => normaliseFileLike2(x2.image));
|
|
31390
31580
|
}, [imagesSelected]);
|
|
31391
31581
|
const canAddMore = (nextCount) => {
|
|
@@ -31448,7 +31638,7 @@ var ShadcnImageIconVariant = React74.forwardRef(function ShadcnImageIconVariant2
|
|
|
31448
31638
|
setImagesFromItems(next, { from });
|
|
31449
31639
|
}
|
|
31450
31640
|
};
|
|
31451
|
-
const openImagePicker =
|
|
31641
|
+
const openImagePicker = React76.useCallback(async () => {
|
|
31452
31642
|
var _a;
|
|
31453
31643
|
if (isDisabled) return;
|
|
31454
31644
|
const resolvedLoader = typeof customLoader == "function" ? customLoader : customLoader ? getPaletteUtil("customLoader") : void 0;
|
|
@@ -31473,14 +31663,14 @@ var ShadcnImageIconVariant = React74.forwardRef(function ShadcnImageIconVariant2
|
|
|
31473
31663
|
}
|
|
31474
31664
|
(_a = fileInputRef.current) == null ? void 0 : _a.click();
|
|
31475
31665
|
}, [accept, customLoader, imageItems, isDisabled, mergeMode, multiple]);
|
|
31476
|
-
const onDragOver =
|
|
31666
|
+
const onDragOver = React76.useCallback(
|
|
31477
31667
|
(e4) => {
|
|
31478
31668
|
e4.preventDefault();
|
|
31479
31669
|
if (!isDisabled) setDragOver(true);
|
|
31480
31670
|
},
|
|
31481
31671
|
[isDisabled]
|
|
31482
31672
|
);
|
|
31483
|
-
const onDrop =
|
|
31673
|
+
const onDrop = React76.useCallback(
|
|
31484
31674
|
(e4) => {
|
|
31485
31675
|
var _a;
|
|
31486
31676
|
e4.preventDefault();
|
|
@@ -31529,7 +31719,7 @@ var ShadcnImageIconVariant = React74.forwardRef(function ShadcnImageIconVariant2
|
|
|
31529
31719
|
if (icons[0]) setPopoverOpen(false);
|
|
31530
31720
|
}
|
|
31531
31721
|
};
|
|
31532
|
-
const TriggerRegion =
|
|
31722
|
+
const TriggerRegion = React76.useMemo(() => {
|
|
31533
31723
|
const COLLAPSE_LIMIT = 2;
|
|
31534
31724
|
const hasItems = list.length > 0;
|
|
31535
31725
|
const visibleItems = list.slice(0, COLLAPSE_LIMIT);
|
|
@@ -31624,11 +31814,11 @@ var ShadcnImageIconVariant = React74.forwardRef(function ShadcnImageIconVariant2
|
|
|
31624
31814
|
PopoverContent,
|
|
31625
31815
|
{
|
|
31626
31816
|
className: cn(
|
|
31627
|
-
"w-(--radix-popover-trigger-width) p-0 max-h-(--radix-popper-available-height)",
|
|
31817
|
+
"w-(--radix-popover-trigger-width) p-0 max-h-(--radix-popper-available-height) overflow-hidden flex flex-col",
|
|
31628
31818
|
popoverClassName
|
|
31629
31819
|
),
|
|
31630
31820
|
align: "start",
|
|
31631
|
-
children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col", children: [
|
|
31821
|
+
children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col flex-1 min-h-0", children: [
|
|
31632
31822
|
/* @__PURE__ */ jsxs(
|
|
31633
31823
|
"div",
|
|
31634
31824
|
{
|
|
@@ -32280,7 +32470,7 @@ function buildLayoutGraph(args) {
|
|
|
32280
32470
|
}
|
|
32281
32471
|
};
|
|
32282
32472
|
}
|
|
32283
|
-
var CoreContextReact =
|
|
32473
|
+
var CoreContextReact = React76__default.createContext(
|
|
32284
32474
|
null
|
|
32285
32475
|
);
|
|
32286
32476
|
function useCoreContext() {
|
|
@@ -32312,41 +32502,41 @@ function useField(options) {
|
|
|
32312
32502
|
onValueChange,
|
|
32313
32503
|
onSubmit
|
|
32314
32504
|
} = options;
|
|
32315
|
-
const ref =
|
|
32316
|
-
const stateRef =
|
|
32505
|
+
const ref = React76.useRef(null);
|
|
32506
|
+
const stateRef = React76.useRef({
|
|
32317
32507
|
value: defaultValue,
|
|
32318
32508
|
error: "",
|
|
32319
32509
|
loading: false,
|
|
32320
32510
|
original: getOriginalValue ? getOriginalValue(defaultValue) : defaultValue
|
|
32321
32511
|
});
|
|
32322
|
-
const [valueState, setValueState] =
|
|
32512
|
+
const [valueState, setValueState] = React76.useState(
|
|
32323
32513
|
stateRef.current.value
|
|
32324
32514
|
);
|
|
32325
32515
|
const isControlled = valueProp !== void 0;
|
|
32326
32516
|
const value = isControlled ? valueProp : valueState;
|
|
32327
|
-
|
|
32517
|
+
React76.useEffect(() => {
|
|
32328
32518
|
if (isControlled && valueProp !== stateRef.current.value) {
|
|
32329
32519
|
stateRef.current.value = valueProp;
|
|
32330
32520
|
setValueState(valueProp);
|
|
32331
32521
|
}
|
|
32332
32522
|
}, [isControlled, valueProp]);
|
|
32333
|
-
const [error, setErrorState] =
|
|
32523
|
+
const [error, setErrorState] = React76.useState(
|
|
32334
32524
|
stateRef.current.error
|
|
32335
32525
|
);
|
|
32336
|
-
const [loading, setLoadingState] =
|
|
32526
|
+
const [loading, setLoadingState] = React76.useState(
|
|
32337
32527
|
stateRef.current.loading
|
|
32338
32528
|
);
|
|
32339
|
-
const [required, setRequired] =
|
|
32529
|
+
const [required, setRequired] = React76.useState(
|
|
32340
32530
|
Boolean(requiredProp)
|
|
32341
32531
|
);
|
|
32342
|
-
const [disabled, setDisabled] =
|
|
32532
|
+
const [disabled, setDisabled] = React76.useState(
|
|
32343
32533
|
Boolean(disabledProp)
|
|
32344
32534
|
);
|
|
32345
|
-
const [readOnly, setReadOnly] =
|
|
32535
|
+
const [readOnly, setReadOnly] = React76.useState(
|
|
32346
32536
|
Boolean(readOnlyProp)
|
|
32347
32537
|
);
|
|
32348
|
-
const id =
|
|
32349
|
-
const keyRef =
|
|
32538
|
+
const id = React76.useId();
|
|
32539
|
+
const keyRef = React76.useRef(
|
|
32350
32540
|
(() => {
|
|
32351
32541
|
if (rawName && rawName.trim()) return `${rawName.trim()}-${id}`;
|
|
32352
32542
|
if (rawBindId && rawBindId.trim())
|
|
@@ -32354,10 +32544,10 @@ function useField(options) {
|
|
|
32354
32544
|
return `field-${Math.random().toString(36).slice(2)}-${id}`;
|
|
32355
32545
|
})()
|
|
32356
32546
|
);
|
|
32357
|
-
const bindIdRef =
|
|
32547
|
+
const bindIdRef = React76.useRef(
|
|
32358
32548
|
rawBindId && rawBindId.trim() || keyRef.current
|
|
32359
32549
|
);
|
|
32360
|
-
const fieldRef =
|
|
32550
|
+
const fieldRef = React76.useRef(null);
|
|
32361
32551
|
if (!fieldRef.current) {
|
|
32362
32552
|
const key = keyRef.current;
|
|
32363
32553
|
const bindId = bindIdRef.current;
|
|
@@ -32460,19 +32650,19 @@ function useField(options) {
|
|
|
32460
32650
|
fieldRef.current = f2;
|
|
32461
32651
|
}
|
|
32462
32652
|
const field = fieldRef.current;
|
|
32463
|
-
|
|
32653
|
+
React76.useEffect(() => {
|
|
32464
32654
|
setRequired(requiredProp);
|
|
32465
32655
|
if (field) {
|
|
32466
32656
|
field.required = requiredProp;
|
|
32467
32657
|
}
|
|
32468
32658
|
}, [requiredProp, field]);
|
|
32469
|
-
|
|
32659
|
+
React76.useEffect(() => {
|
|
32470
32660
|
setDisabled(disabledProp);
|
|
32471
32661
|
}, [disabledProp]);
|
|
32472
|
-
|
|
32662
|
+
React76.useEffect(() => {
|
|
32473
32663
|
setReadOnly(readOnlyProp);
|
|
32474
32664
|
}, [readOnlyProp]);
|
|
32475
|
-
|
|
32665
|
+
React76.useEffect(() => {
|
|
32476
32666
|
if (!field) return;
|
|
32477
32667
|
form.addField(field);
|
|
32478
32668
|
return () => {
|
|
@@ -32587,25 +32777,25 @@ function useOptionalField(options) {
|
|
|
32587
32777
|
getOriginalValue,
|
|
32588
32778
|
onValueChange
|
|
32589
32779
|
} = options;
|
|
32590
|
-
const ref =
|
|
32591
|
-
const [valueState, setValueState] =
|
|
32780
|
+
const ref = React76.useRef(null);
|
|
32781
|
+
const [valueState, setValueState] = React76.useState(defaultValue);
|
|
32592
32782
|
const isControlled = valueProp !== void 0;
|
|
32593
32783
|
const value = isControlled ? valueProp : valueState;
|
|
32594
|
-
|
|
32784
|
+
React76.useEffect(() => {
|
|
32595
32785
|
if (isControlled) {
|
|
32596
32786
|
setValueState(valueProp);
|
|
32597
32787
|
}
|
|
32598
32788
|
}, [isControlled, valueProp]);
|
|
32599
|
-
const [error, setErrorState] =
|
|
32600
|
-
const [loading, setLoadingState] =
|
|
32601
|
-
const [required, setRequired] =
|
|
32602
|
-
const [disabled, setDisabled] =
|
|
32603
|
-
const [readOnly, setReadOnly] =
|
|
32604
|
-
const originalRef =
|
|
32789
|
+
const [error, setErrorState] = React76.useState("");
|
|
32790
|
+
const [loading, setLoadingState] = React76.useState(false);
|
|
32791
|
+
const [required, setRequired] = React76.useState(requiredProp);
|
|
32792
|
+
const [disabled, setDisabled] = React76.useState(disabledProp);
|
|
32793
|
+
const [readOnly, setReadOnly] = React76.useState(readOnlyProp);
|
|
32794
|
+
const originalRef = React76.useRef(
|
|
32605
32795
|
getOriginalValue ? getOriginalValue(defaultValue) : defaultValue
|
|
32606
32796
|
);
|
|
32607
|
-
const id =
|
|
32608
|
-
const keyRef =
|
|
32797
|
+
const id = React76.useId();
|
|
32798
|
+
const keyRef = React76.useRef("");
|
|
32609
32799
|
if (!keyRef.current) {
|
|
32610
32800
|
if (rawName && rawName.trim()) {
|
|
32611
32801
|
keyRef.current = `${rawName.trim()}-${id}`;
|
|
@@ -32615,17 +32805,17 @@ function useOptionalField(options) {
|
|
|
32615
32805
|
keyRef.current = `field-${Math.random().toString(36).slice(2)}-${id}`;
|
|
32616
32806
|
}
|
|
32617
32807
|
}
|
|
32618
|
-
const bindIdRef =
|
|
32808
|
+
const bindIdRef = React76.useRef("");
|
|
32619
32809
|
if (!bindIdRef.current) {
|
|
32620
32810
|
bindIdRef.current = rawBindId && rawBindId.trim() || keyRef.current;
|
|
32621
32811
|
}
|
|
32622
|
-
|
|
32812
|
+
React76.useEffect(() => {
|
|
32623
32813
|
setRequired(requiredProp);
|
|
32624
32814
|
}, [requiredProp]);
|
|
32625
|
-
|
|
32815
|
+
React76.useEffect(() => {
|
|
32626
32816
|
setDisabled(disabledProp);
|
|
32627
32817
|
}, [disabledProp]);
|
|
32628
|
-
|
|
32818
|
+
React76.useEffect(() => {
|
|
32629
32819
|
setReadOnly(readOnlyProp);
|
|
32630
32820
|
}, [readOnlyProp]);
|
|
32631
32821
|
function setValue(next, variant = "direct") {
|
|
@@ -32701,6 +32891,11 @@ function useOptionalField(options) {
|
|
|
32701
32891
|
}
|
|
32702
32892
|
};
|
|
32703
32893
|
}
|
|
32894
|
+
var ThemeContext = React76.createContext(null);
|
|
32895
|
+
function usePaletteTheme() {
|
|
32896
|
+
var _a;
|
|
32897
|
+
return (_a = React76.useContext(ThemeContext)) != null ? _a : {};
|
|
32898
|
+
}
|
|
32704
32899
|
function normalizeValidateResult(result) {
|
|
32705
32900
|
if (result === void 0 || result === null || result === true) return [];
|
|
32706
32901
|
if (result === false) return ["Invalid value."];
|
|
@@ -32722,7 +32917,7 @@ function resolveLayoutForField(defaults, overrides, props, variantResolve) {
|
|
|
32722
32917
|
...overrides
|
|
32723
32918
|
};
|
|
32724
32919
|
}
|
|
32725
|
-
function renderHelperSlot(root, slot, classes) {
|
|
32920
|
+
function renderHelperSlot(root, slot, classes, styles) {
|
|
32726
32921
|
const placement = slot.placement;
|
|
32727
32922
|
switch (slot.id) {
|
|
32728
32923
|
case "sublabel":
|
|
@@ -32733,6 +32928,7 @@ function renderHelperSlot(root, slot, classes) {
|
|
|
32733
32928
|
"text-xs text-muted-foreground",
|
|
32734
32929
|
classes == null ? void 0 : classes.sublabel
|
|
32735
32930
|
),
|
|
32931
|
+
style: styles == null ? void 0 : styles.sublabel,
|
|
32736
32932
|
"data-slot": `sublabel-${placement}`,
|
|
32737
32933
|
children: slot.content
|
|
32738
32934
|
},
|
|
@@ -32746,6 +32942,7 @@ function renderHelperSlot(root, slot, classes) {
|
|
|
32746
32942
|
"text-xs text-muted-foreground",
|
|
32747
32943
|
classes == null ? void 0 : classes.description
|
|
32748
32944
|
),
|
|
32945
|
+
style: styles == null ? void 0 : styles.description,
|
|
32749
32946
|
"data-slot": `description-${placement}`,
|
|
32750
32947
|
children: slot.content
|
|
32751
32948
|
},
|
|
@@ -32759,6 +32956,7 @@ function renderHelperSlot(root, slot, classes) {
|
|
|
32759
32956
|
"text-xs text-muted-foreground",
|
|
32760
32957
|
classes == null ? void 0 : classes.helpText
|
|
32761
32958
|
),
|
|
32959
|
+
style: styles == null ? void 0 : styles.helpText,
|
|
32762
32960
|
"data-slot": `helptext-${placement}`,
|
|
32763
32961
|
children: slot.content
|
|
32764
32962
|
},
|
|
@@ -32769,6 +32967,7 @@ function renderHelperSlot(root, slot, classes) {
|
|
|
32769
32967
|
FieldError,
|
|
32770
32968
|
{
|
|
32771
32969
|
className: cn("text-xs text-destructive", classes == null ? void 0 : classes.error),
|
|
32970
|
+
style: styles == null ? void 0 : styles.error,
|
|
32772
32971
|
"data-slot": `error-${placement}`,
|
|
32773
32972
|
children: slot.content
|
|
32774
32973
|
},
|
|
@@ -32779,6 +32978,7 @@ function renderHelperSlot(root, slot, classes) {
|
|
|
32779
32978
|
"div",
|
|
32780
32979
|
{
|
|
32781
32980
|
className: cn("flex items-center gap-1", classes == null ? void 0 : classes.tags),
|
|
32981
|
+
style: (styles == null ? void 0 : styles.tags) || (styles == null ? void 0 : styles.tag),
|
|
32782
32982
|
"data-slot": `tags-${placement}`,
|
|
32783
32983
|
children: slot.content
|
|
32784
32984
|
},
|
|
@@ -32788,29 +32988,66 @@ function renderHelperSlot(root, slot, classes) {
|
|
|
32788
32988
|
return null;
|
|
32789
32989
|
}
|
|
32790
32990
|
}
|
|
32791
|
-
function getClasses(props) {
|
|
32991
|
+
function getClasses(props, themeClasses, variantThemeClasses) {
|
|
32792
32992
|
var _a;
|
|
32793
32993
|
const legacy = (_a = props.classes) != null ? _a : {};
|
|
32794
32994
|
return {
|
|
32795
|
-
root: cn(legacy.root, props.className) || void 0,
|
|
32796
|
-
labelRow: cn(legacy.labelRow, props.labelRowClassName) || void 0,
|
|
32797
|
-
inlineRow: cn(legacy.inlineRow, props.inlineRowClassName) || void 0,
|
|
32798
|
-
label: cn(legacy.label, props.labelClassName) || void 0,
|
|
32799
|
-
sublabel: cn(legacy.sublabel, props.sublabelClassName) || void 0,
|
|
32800
|
-
description: cn(legacy.description, props.descriptionClassName) || void 0,
|
|
32801
|
-
helpText: cn(legacy.helpText, props.helpTextClassName) || void 0,
|
|
32802
|
-
error: cn(legacy.error, props.errorClassName) || void 0,
|
|
32803
|
-
group: cn(legacy.group, props.groupClassName) || void 0,
|
|
32804
|
-
content: cn(legacy.content, props.contentClassName) || void 0,
|
|
32805
|
-
variant: cn(legacy.variant, props.variantClassName) || void 0,
|
|
32806
|
-
inlineInputColumn: cn(legacy.inlineInputColumn, props.inlineInputColumnClassName) || void 0,
|
|
32807
|
-
inlineLabelColumn: cn(legacy.inlineLabelColumn, props.inlineLabelColumnClassName) || void 0,
|
|
32808
|
-
required: cn(legacy.required, props.requiredClassName) || void 0,
|
|
32809
|
-
tag: cn(legacy.tag, props.tagClassName) || void 0
|
|
32995
|
+
root: cn(themeClasses == null ? void 0 : themeClasses.root, variantThemeClasses == null ? void 0 : variantThemeClasses.root, legacy.root, props.className) || void 0,
|
|
32996
|
+
labelRow: cn(themeClasses == null ? void 0 : themeClasses.labelRow, variantThemeClasses == null ? void 0 : variantThemeClasses.labelRow, legacy.labelRow, props.labelRowClassName) || void 0,
|
|
32997
|
+
inlineRow: cn(themeClasses == null ? void 0 : themeClasses.inlineRow, variantThemeClasses == null ? void 0 : variantThemeClasses.inlineRow, legacy.inlineRow, props.inlineRowClassName) || void 0,
|
|
32998
|
+
label: cn(themeClasses == null ? void 0 : themeClasses.label, variantThemeClasses == null ? void 0 : variantThemeClasses.label, legacy.label, props.labelClassName) || void 0,
|
|
32999
|
+
sublabel: cn(themeClasses == null ? void 0 : themeClasses.sublabel, variantThemeClasses == null ? void 0 : variantThemeClasses.sublabel, legacy.sublabel, props.sublabelClassName) || void 0,
|
|
33000
|
+
description: cn(themeClasses == null ? void 0 : themeClasses.description, variantThemeClasses == null ? void 0 : variantThemeClasses.description, legacy.description, props.descriptionClassName) || void 0,
|
|
33001
|
+
helpText: cn(themeClasses == null ? void 0 : themeClasses.helpText, variantThemeClasses == null ? void 0 : variantThemeClasses.helpText, legacy.helpText, props.helpTextClassName) || void 0,
|
|
33002
|
+
error: cn(themeClasses == null ? void 0 : themeClasses.error, variantThemeClasses == null ? void 0 : variantThemeClasses.error, legacy.error, props.errorClassName) || void 0,
|
|
33003
|
+
group: cn(themeClasses == null ? void 0 : themeClasses.group, variantThemeClasses == null ? void 0 : variantThemeClasses.group, legacy.group, props.groupClassName) || void 0,
|
|
33004
|
+
content: cn(themeClasses == null ? void 0 : themeClasses.content, variantThemeClasses == null ? void 0 : variantThemeClasses.content, legacy.content, props.contentClassName) || void 0,
|
|
33005
|
+
variant: cn(themeClasses == null ? void 0 : themeClasses.variant, variantThemeClasses == null ? void 0 : variantThemeClasses.variant, legacy.variant, props.variantClassName) || void 0,
|
|
33006
|
+
inlineInputColumn: cn(themeClasses == null ? void 0 : themeClasses.inlineInputColumn, variantThemeClasses == null ? void 0 : variantThemeClasses.inlineInputColumn, legacy.inlineInputColumn, props.inlineInputColumnClassName) || void 0,
|
|
33007
|
+
inlineLabelColumn: cn(themeClasses == null ? void 0 : themeClasses.inlineLabelColumn, variantThemeClasses == null ? void 0 : variantThemeClasses.inlineLabelColumn, legacy.inlineLabelColumn, props.inlineLabelColumnClassName) || void 0,
|
|
33008
|
+
required: cn(themeClasses == null ? void 0 : themeClasses.required, variantThemeClasses == null ? void 0 : variantThemeClasses.required, legacy.required, props.requiredClassName) || void 0,
|
|
33009
|
+
tag: cn(themeClasses == null ? void 0 : themeClasses.tag, variantThemeClasses == null ? void 0 : variantThemeClasses.tag, legacy.tag, props.tagClassName) || void 0
|
|
32810
33010
|
};
|
|
32811
33011
|
}
|
|
33012
|
+
function mergeStyles(propsStyles, themeStyles, variantThemeStyles) {
|
|
33013
|
+
const keys = [
|
|
33014
|
+
"root",
|
|
33015
|
+
"labelRow",
|
|
33016
|
+
"inlineRow",
|
|
33017
|
+
"label",
|
|
33018
|
+
"sublabel",
|
|
33019
|
+
"description",
|
|
33020
|
+
"helpText",
|
|
33021
|
+
"error",
|
|
33022
|
+
"group",
|
|
33023
|
+
"content",
|
|
33024
|
+
"variant",
|
|
33025
|
+
"inlineInputColumn",
|
|
33026
|
+
"inlineLabelColumn",
|
|
33027
|
+
"required",
|
|
33028
|
+
"tag"
|
|
33029
|
+
];
|
|
33030
|
+
const result = {};
|
|
33031
|
+
for (const key of keys) {
|
|
33032
|
+
const s3 = {
|
|
33033
|
+
...themeStyles == null ? void 0 : themeStyles[key],
|
|
33034
|
+
...variantThemeStyles == null ? void 0 : variantThemeStyles[key],
|
|
33035
|
+
...propsStyles == null ? void 0 : propsStyles[key]
|
|
33036
|
+
};
|
|
33037
|
+
if (Object.keys(s3).length > 0) {
|
|
33038
|
+
result[key] = s3;
|
|
33039
|
+
}
|
|
33040
|
+
}
|
|
33041
|
+
return result;
|
|
33042
|
+
}
|
|
32812
33043
|
function InputField(props) {
|
|
32813
|
-
var _a, _b, _c, _d, _e, _f, _g;
|
|
33044
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m;
|
|
33045
|
+
const theme = usePaletteTheme();
|
|
33046
|
+
const mergedProps = {
|
|
33047
|
+
...theme.defaultProps,
|
|
33048
|
+
...props.variant ? (_b = (_a = theme.variants) == null ? void 0 : _a[props.variant]) == null ? void 0 : _b.defaultProps : void 0,
|
|
33049
|
+
...props
|
|
33050
|
+
};
|
|
32814
33051
|
const {
|
|
32815
33052
|
variant,
|
|
32816
33053
|
onSubmit,
|
|
@@ -32855,7 +33092,7 @@ function InputField(props) {
|
|
|
32855
33092
|
classes: _depreciated,
|
|
32856
33093
|
// Everything else → forwarded to variant
|
|
32857
33094
|
...rest
|
|
32858
|
-
} =
|
|
33095
|
+
} = mergedProps;
|
|
32859
33096
|
const module2 = getVariant(variant);
|
|
32860
33097
|
if (!module2) {
|
|
32861
33098
|
{
|
|
@@ -32867,8 +33104,13 @@ function InputField(props) {
|
|
|
32867
33104
|
}
|
|
32868
33105
|
return null;
|
|
32869
33106
|
}
|
|
32870
|
-
const
|
|
32871
|
-
const
|
|
33107
|
+
const themeClasses = theme.classes;
|
|
33108
|
+
const themeVariantClasses = variant ? (_d = (_c = theme.variants) == null ? void 0 : _c[variant]) == null ? void 0 : _d.classes : void 0;
|
|
33109
|
+
const classes = getClasses(mergedProps, themeClasses, themeVariantClasses);
|
|
33110
|
+
const themeStyles = theme.styles;
|
|
33111
|
+
const themeVariantStyles = variant ? (_f = (_e = theme.variants) == null ? void 0 : _e[variant]) == null ? void 0 : _f.styles : void 0;
|
|
33112
|
+
const mergedStyles = mergeStyles(mergedProps.styles, themeStyles, themeVariantStyles);
|
|
33113
|
+
const layout = React76.useMemo(() => {
|
|
32872
33114
|
var _a2;
|
|
32873
33115
|
const defaultsLayout = (_a2 = module2.defaults) == null ? void 0 : _a2.layout;
|
|
32874
33116
|
const overrides = {};
|
|
@@ -32899,7 +33141,7 @@ function InputField(props) {
|
|
|
32899
33141
|
return resolveLayoutForField(
|
|
32900
33142
|
defaultsLayout,
|
|
32901
33143
|
overrides,
|
|
32902
|
-
|
|
33144
|
+
mergedProps,
|
|
32903
33145
|
module2.resolveLayout
|
|
32904
33146
|
);
|
|
32905
33147
|
}, [
|
|
@@ -32912,11 +33154,11 @@ function InputField(props) {
|
|
|
32912
33154
|
tagPlacement,
|
|
32913
33155
|
inline,
|
|
32914
33156
|
fullWidth,
|
|
32915
|
-
|
|
33157
|
+
mergedProps
|
|
32916
33158
|
]);
|
|
32917
|
-
const effectiveSize = (
|
|
32918
|
-
const effectiveDensity = (
|
|
32919
|
-
const validate =
|
|
33159
|
+
const effectiveSize = (_i = size != null ? size : (_h = (_g = module2.defaults) == null ? void 0 : _g.layout) == null ? void 0 : _h.defaultSize) != null ? _i : void 0;
|
|
33160
|
+
const effectiveDensity = (_l = density != null ? density : (_k = (_j = module2.defaults) == null ? void 0 : _j.layout) == null ? void 0 : _k.defaultDensity) != null ? _l : void 0;
|
|
33161
|
+
const validate = React76.useCallback(
|
|
32920
33162
|
(value2, field2, form, _report) => {
|
|
32921
33163
|
var _a2;
|
|
32922
33164
|
const messages = [];
|
|
@@ -32956,7 +33198,7 @@ function InputField(props) {
|
|
|
32956
33198
|
const { value: fieldValue, setValue, error, ref, key } = field;
|
|
32957
33199
|
const Variant = module2.Variant;
|
|
32958
33200
|
const visualError = (errorText != null ? errorText : error) || "";
|
|
32959
|
-
const handleValueChange =
|
|
33201
|
+
const handleValueChange = React76.useCallback(
|
|
32960
33202
|
(next, detail) => {
|
|
32961
33203
|
let finalValue = next;
|
|
32962
33204
|
let defaultPrevented = false;
|
|
@@ -33005,7 +33247,7 @@ function InputField(props) {
|
|
|
33005
33247
|
hostVariantClass,
|
|
33006
33248
|
classes == null ? void 0 : classes.variant
|
|
33007
33249
|
) || void 0;
|
|
33008
|
-
const tagsContent =
|
|
33250
|
+
const tagsContent = React76.useMemo(() => {
|
|
33009
33251
|
const items = tags != null ? tags : [];
|
|
33010
33252
|
if (!items.length) return null;
|
|
33011
33253
|
return /* @__PURE__ */ jsx(Fragment, { children: items.map((tag, index) => /* @__PURE__ */ jsxs(
|
|
@@ -33029,7 +33271,7 @@ function InputField(props) {
|
|
|
33029
33271
|
index
|
|
33030
33272
|
)) });
|
|
33031
33273
|
}, [tags, classes == null ? void 0 : classes.tag]);
|
|
33032
|
-
const graph =
|
|
33274
|
+
const graph = React76.useMemo(
|
|
33033
33275
|
() => buildLayoutGraph({
|
|
33034
33276
|
layout,
|
|
33035
33277
|
sublabel,
|
|
@@ -33073,15 +33315,15 @@ function InputField(props) {
|
|
|
33073
33315
|
"[container-type:normal]",
|
|
33074
33316
|
"[container-name:none]",
|
|
33075
33317
|
classes == null ? void 0 : classes.group
|
|
33076
|
-
) : (
|
|
33318
|
+
) : (_m = classes == null ? void 0 : classes.group) != null ? _m : void 0;
|
|
33077
33319
|
const inlineFieldContentClass = isCompactInline ? cn("flex-none w-auto", classes == null ? void 0 : classes.content) : cn("w-full", classes == null ? void 0 : classes.content);
|
|
33078
|
-
const inlineInputColumn = /* @__PURE__ */ jsxs("div", { className: inlineInputColClass, children: [
|
|
33320
|
+
const inlineInputColumn = /* @__PURE__ */ jsxs("div", { className: inlineInputColClass, style: mergedStyles.inlineInputColumn, children: [
|
|
33079
33321
|
graph.getSlotsFor("input", "above").render(
|
|
33080
33322
|
(slots) => slots.map(
|
|
33081
|
-
(slot) => renderHelperSlot("input", slot, classes)
|
|
33323
|
+
(slot) => renderHelperSlot("input", slot, classes, mergedStyles)
|
|
33082
33324
|
)
|
|
33083
33325
|
),
|
|
33084
|
-
/* @__PURE__ */ jsx(FieldGroup, { className: inlineFieldGroupClass, children: /* @__PURE__ */ jsx(FieldContent, { className: inlineFieldContentClass, children: /* @__PURE__ */ jsx(
|
|
33326
|
+
/* @__PURE__ */ jsx(FieldGroup, { className: inlineFieldGroupClass, style: mergedStyles.group, children: /* @__PURE__ */ jsx(FieldContent, { className: inlineFieldContentClass, style: mergedStyles.content, children: /* @__PURE__ */ jsx(
|
|
33085
33327
|
Variant,
|
|
33086
33328
|
{
|
|
33087
33329
|
...rest,
|
|
@@ -33095,19 +33337,20 @@ function InputField(props) {
|
|
|
33095
33337
|
readOnly: readOnlyProp,
|
|
33096
33338
|
size: effectiveSize,
|
|
33097
33339
|
density: effectiveDensity,
|
|
33098
|
-
className: mergedVariantClass
|
|
33340
|
+
className: mergedVariantClass,
|
|
33341
|
+
style: { ...mergedStyles.variant, ...rest.style }
|
|
33099
33342
|
}
|
|
33100
33343
|
) }) }),
|
|
33101
33344
|
graph.getSlotsFor("input", "below").render(
|
|
33102
33345
|
(slots) => slots.map(
|
|
33103
|
-
(slot) => renderHelperSlot("input", slot, classes)
|
|
33346
|
+
(slot) => renderHelperSlot("input", slot, classes, mergedStyles)
|
|
33104
33347
|
)
|
|
33105
33348
|
)
|
|
33106
33349
|
] });
|
|
33107
|
-
const inlineLabelColumn = inlineLabelSide === "hidden" || !hasAnyLabelBlockContent ? null : /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col gap-0", inlineLabelColClass), children: [
|
|
33350
|
+
const inlineLabelColumn = inlineLabelSide === "hidden" || !hasAnyLabelBlockContent ? null : /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col gap-0", inlineLabelColClass), style: mergedStyles.inlineLabelColumn, children: [
|
|
33108
33351
|
graph.getSlotsFor("label", "above").render(
|
|
33109
33352
|
(slots) => slots.map(
|
|
33110
|
-
(slot) => renderHelperSlot("label", slot, classes)
|
|
33353
|
+
(slot) => renderHelperSlot("label", slot, classes, mergedStyles)
|
|
33111
33354
|
)
|
|
33112
33355
|
),
|
|
33113
33356
|
hasLabelRowContent && /* @__PURE__ */ jsxs(
|
|
@@ -33117,10 +33360,11 @@ function InputField(props) {
|
|
|
33117
33360
|
"flex items-baseline justify-between gap-1",
|
|
33118
33361
|
classes == null ? void 0 : classes.labelRow
|
|
33119
33362
|
),
|
|
33363
|
+
style: mergedStyles.labelRow,
|
|
33120
33364
|
"data-slot": "label-row",
|
|
33121
33365
|
children: [
|
|
33122
33366
|
graph.getSlotsFor("label", "left").render((slots) => /* @__PURE__ */ jsx("div", { className: "flex items-baseline gap-1", children: slots.map(
|
|
33123
|
-
(slot) => renderHelperSlot("label", slot, classes)
|
|
33367
|
+
(slot) => renderHelperSlot("label", slot, classes, mergedStyles)
|
|
33124
33368
|
) })),
|
|
33125
33369
|
label && /* @__PURE__ */ jsx(
|
|
33126
33370
|
FieldLabel,
|
|
@@ -33130,6 +33374,7 @@ function InputField(props) {
|
|
|
33130
33374
|
"text-sm font-medium text-foreground",
|
|
33131
33375
|
classes == null ? void 0 : classes.label
|
|
33132
33376
|
),
|
|
33377
|
+
style: mergedStyles.label,
|
|
33133
33378
|
children: /* @__PURE__ */ jsxs(FieldTitle, { children: [
|
|
33134
33379
|
label,
|
|
33135
33380
|
" ",
|
|
@@ -33140,6 +33385,7 @@ function InputField(props) {
|
|
|
33140
33385
|
"text-destructive",
|
|
33141
33386
|
classes == null ? void 0 : classes.required
|
|
33142
33387
|
),
|
|
33388
|
+
style: mergedStyles.required,
|
|
33143
33389
|
children: "*"
|
|
33144
33390
|
}
|
|
33145
33391
|
) : ""
|
|
@@ -33147,14 +33393,14 @@ function InputField(props) {
|
|
|
33147
33393
|
}
|
|
33148
33394
|
),
|
|
33149
33395
|
graph.getSlotsFor("label", "right").render((slots) => /* @__PURE__ */ jsx("div", { className: "flex items-baseline gap-1", children: slots.map(
|
|
33150
|
-
(slot) => renderHelperSlot("label", slot, classes)
|
|
33396
|
+
(slot) => renderHelperSlot("label", slot, classes, mergedStyles)
|
|
33151
33397
|
) }))
|
|
33152
33398
|
]
|
|
33153
33399
|
}
|
|
33154
33400
|
),
|
|
33155
33401
|
graph.getSlotsFor("label", "below").render(
|
|
33156
33402
|
(slots) => slots.map(
|
|
33157
|
-
(slot) => renderHelperSlot("label", slot, classes)
|
|
33403
|
+
(slot) => renderHelperSlot("label", slot, classes, mergedStyles)
|
|
33158
33404
|
)
|
|
33159
33405
|
)
|
|
33160
33406
|
] });
|
|
@@ -33168,14 +33414,14 @@ function InputField(props) {
|
|
|
33168
33414
|
hasStackedLabelBlock && hasLabelRowContent && "mt-0.5",
|
|
33169
33415
|
classes == null ? void 0 : classes.group
|
|
33170
33416
|
);
|
|
33171
|
-
const Element = contain ? "div" :
|
|
33417
|
+
const Element = contain ? "div" : React76.Fragment;
|
|
33172
33418
|
const attrs = (a3 = "l") => contain ? a3 === "l" ? { className: "p-4 border-b border-input" } : { className: "px-4 pt-2 pb-4" } : {};
|
|
33173
33419
|
return /* @__PURE__ */ jsx(
|
|
33174
33420
|
Field,
|
|
33175
33421
|
{
|
|
33176
33422
|
className: rootClassName,
|
|
33177
33423
|
ref,
|
|
33178
|
-
style,
|
|
33424
|
+
style: { ...mergedStyles.root, ...style },
|
|
33179
33425
|
"data-variant": String(variant),
|
|
33180
33426
|
"data-label-placement": lp != null ? lp : void 0,
|
|
33181
33427
|
"data-sublabel-placement": sp != null ? sp : void 0,
|
|
@@ -33187,7 +33433,7 @@ function InputField(props) {
|
|
|
33187
33433
|
"data-fullwidth": layout.fullWidth ? "true" : "false",
|
|
33188
33434
|
children: isInline ? (
|
|
33189
33435
|
// INLINE MODE: label + control on the same row
|
|
33190
|
-
/* @__PURE__ */ jsx("div", { className: inlineRowClassName, "data-slot": "inline-row", children: inlineLabelSide === "right" ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
33436
|
+
/* @__PURE__ */ jsx("div", { className: inlineRowClassName, style: mergedStyles.inlineRow, "data-slot": "inline-row", children: inlineLabelSide === "right" ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
33191
33437
|
inlineInputColumn,
|
|
33192
33438
|
inlineLabelColumn
|
|
33193
33439
|
] }) : inlineLabelSide === "hidden" ? /* @__PURE__ */ jsx(Fragment, { children: inlineInputColumn }) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
@@ -33203,7 +33449,8 @@ function InputField(props) {
|
|
|
33203
33449
|
(slot) => renderHelperSlot(
|
|
33204
33450
|
"label",
|
|
33205
33451
|
slot,
|
|
33206
|
-
classes
|
|
33452
|
+
classes,
|
|
33453
|
+
mergedStyles
|
|
33207
33454
|
)
|
|
33208
33455
|
)
|
|
33209
33456
|
),
|
|
@@ -33214,13 +33461,15 @@ function InputField(props) {
|
|
|
33214
33461
|
"flex items-baseline justify-between gap-1",
|
|
33215
33462
|
classes == null ? void 0 : classes.labelRow
|
|
33216
33463
|
),
|
|
33464
|
+
style: mergedStyles.labelRow,
|
|
33217
33465
|
"data-slot": "label-row",
|
|
33218
33466
|
children: [
|
|
33219
33467
|
graph.getSlotsFor("label", "left").render((slots) => /* @__PURE__ */ jsx("div", { className: "flex items-baseline gap-1", children: slots.map(
|
|
33220
33468
|
(slot) => renderHelperSlot(
|
|
33221
33469
|
"label",
|
|
33222
33470
|
slot,
|
|
33223
|
-
classes
|
|
33471
|
+
classes,
|
|
33472
|
+
mergedStyles
|
|
33224
33473
|
)
|
|
33225
33474
|
) })),
|
|
33226
33475
|
label && /* @__PURE__ */ jsx(
|
|
@@ -33231,6 +33480,7 @@ function InputField(props) {
|
|
|
33231
33480
|
"text-sm font-medium text-foreground",
|
|
33232
33481
|
classes == null ? void 0 : classes.label
|
|
33233
33482
|
),
|
|
33483
|
+
style: mergedStyles.label,
|
|
33234
33484
|
children: /* @__PURE__ */ jsxs(FieldTitle, { children: [
|
|
33235
33485
|
label,
|
|
33236
33486
|
" ",
|
|
@@ -33241,6 +33491,7 @@ function InputField(props) {
|
|
|
33241
33491
|
"text-destructive",
|
|
33242
33492
|
classes == null ? void 0 : classes.required
|
|
33243
33493
|
),
|
|
33494
|
+
style: mergedStyles.required,
|
|
33244
33495
|
children: "*"
|
|
33245
33496
|
}
|
|
33246
33497
|
) : ""
|
|
@@ -33251,7 +33502,8 @@ function InputField(props) {
|
|
|
33251
33502
|
(slot) => renderHelperSlot(
|
|
33252
33503
|
"label",
|
|
33253
33504
|
slot,
|
|
33254
|
-
classes
|
|
33505
|
+
classes,
|
|
33506
|
+
mergedStyles
|
|
33255
33507
|
)
|
|
33256
33508
|
) }))
|
|
33257
33509
|
]
|
|
@@ -33262,7 +33514,8 @@ function InputField(props) {
|
|
|
33262
33514
|
(slot) => renderHelperSlot(
|
|
33263
33515
|
"label",
|
|
33264
33516
|
slot,
|
|
33265
|
-
classes
|
|
33517
|
+
classes,
|
|
33518
|
+
mergedStyles
|
|
33266
33519
|
)
|
|
33267
33520
|
)
|
|
33268
33521
|
)
|
|
@@ -33270,13 +33523,14 @@ function InputField(props) {
|
|
|
33270
33523
|
/* @__PURE__ */ jsxs(Element, { ...attrs("i"), children: [
|
|
33271
33524
|
graph.getSlotsFor("input", "above").render(
|
|
33272
33525
|
(slots) => slots.map(
|
|
33273
|
-
(slot) => renderHelperSlot("input", slot, classes)
|
|
33526
|
+
(slot) => renderHelperSlot("input", slot, classes, mergedStyles)
|
|
33274
33527
|
)
|
|
33275
33528
|
),
|
|
33276
|
-
/* @__PURE__ */ jsx(FieldGroup, { className: stackedGroupClassName, children: /* @__PURE__ */ jsx(
|
|
33529
|
+
/* @__PURE__ */ jsx(FieldGroup, { className: stackedGroupClassName, style: mergedStyles.group, children: /* @__PURE__ */ jsx(
|
|
33277
33530
|
FieldContent,
|
|
33278
33531
|
{
|
|
33279
33532
|
className: cn("w-full", classes == null ? void 0 : classes.content),
|
|
33533
|
+
style: mergedStyles.content,
|
|
33280
33534
|
children: /* @__PURE__ */ jsx(
|
|
33281
33535
|
Variant,
|
|
33282
33536
|
{
|
|
@@ -33291,14 +33545,15 @@ function InputField(props) {
|
|
|
33291
33545
|
readOnly: readOnlyProp,
|
|
33292
33546
|
size: effectiveSize,
|
|
33293
33547
|
density: effectiveDensity,
|
|
33294
|
-
className: mergedVariantClass
|
|
33548
|
+
className: mergedVariantClass,
|
|
33549
|
+
style: { ...mergedStyles.variant, ...rest.style }
|
|
33295
33550
|
}
|
|
33296
33551
|
)
|
|
33297
33552
|
}
|
|
33298
33553
|
) }),
|
|
33299
33554
|
graph.getSlotsFor("input", "below").render(
|
|
33300
33555
|
(slots) => slots.map(
|
|
33301
|
-
(slot) => renderHelperSlot("input", slot, classes)
|
|
33556
|
+
(slot) => renderHelperSlot("input", slot, classes, mergedStyles)
|
|
33302
33557
|
)
|
|
33303
33558
|
)
|
|
33304
33559
|
] })
|
|
@@ -33337,14 +33592,14 @@ function ListerFiltersButton(props) {
|
|
|
33337
33592
|
const hasFilters = options.length > 0;
|
|
33338
33593
|
if (!hasFilters) return null;
|
|
33339
33594
|
const ctx = actions.getFilterCtx(id);
|
|
33340
|
-
const [openGroups, setOpenGroups] =
|
|
33595
|
+
const [openGroups, setOpenGroups] = React76.useState(
|
|
33341
33596
|
{}
|
|
33342
33597
|
);
|
|
33343
33598
|
const toggleGroup = (key) => {
|
|
33344
33599
|
setOpenGroups((m2) => ({ ...m2, [key]: !m2[key] }));
|
|
33345
33600
|
};
|
|
33346
33601
|
const selectedIds = asArray(session == null ? void 0 : session.selectedFilterValues);
|
|
33347
|
-
const appliedCount =
|
|
33602
|
+
const appliedCount = React76.useMemo(() => {
|
|
33348
33603
|
var _a2;
|
|
33349
33604
|
const patch = (_a2 = session == null ? void 0 : session.filtersPatch) != null ? _a2 : {};
|
|
33350
33605
|
return Object.keys(patch).length;
|
|
@@ -33860,8 +34115,8 @@ function computeDefaultPos(idx) {
|
|
|
33860
34115
|
return { x: x2, y: y2 };
|
|
33861
34116
|
}
|
|
33862
34117
|
function usePortalRoot(id = "__timeax_lister_ui__") {
|
|
33863
|
-
const [el, setEl] =
|
|
33864
|
-
|
|
34118
|
+
const [el, setEl] = React76.useState(null);
|
|
34119
|
+
React76.useEffect(() => {
|
|
33865
34120
|
if (typeof document === "undefined") return;
|
|
33866
34121
|
const existing = document.getElementById(id);
|
|
33867
34122
|
const node = existing != null ? existing : document.createElement("div");
|
|
@@ -33878,7 +34133,7 @@ function usePortalRoot(id = "__timeax_lister_ui__") {
|
|
|
33878
34133
|
}
|
|
33879
34134
|
function ListerUI() {
|
|
33880
34135
|
const { state } = useLister();
|
|
33881
|
-
const positionsRef =
|
|
34136
|
+
const positionsRef = React76.useRef(
|
|
33882
34137
|
/* @__PURE__ */ new Map()
|
|
33883
34138
|
);
|
|
33884
34139
|
const portalRoot = usePortalRoot();
|
|
@@ -33905,14 +34160,14 @@ function ListerSessionPanel(props) {
|
|
|
33905
34160
|
const idx = Math.max(0, state.order.indexOf(id));
|
|
33906
34161
|
const isActive = state.activeId === id;
|
|
33907
34162
|
const draggable = (session == null ? void 0 : session.draggable) !== false;
|
|
33908
|
-
const nodeRef =
|
|
33909
|
-
const [defaultPos] =
|
|
34163
|
+
const nodeRef = React76.useRef(null);
|
|
34164
|
+
const [defaultPos] = React76.useState(() => {
|
|
33910
34165
|
const saved = positionsRef.current.get(id);
|
|
33911
34166
|
if (saved) return saved;
|
|
33912
34167
|
const p2 = session == null ? void 0 : session.position;
|
|
33913
34168
|
return p2 && typeof p2.x === "number" && typeof p2.y === "number" ? { x: p2.x, y: p2.y } : computeDefaultPos(idx);
|
|
33914
34169
|
});
|
|
33915
|
-
|
|
34170
|
+
React76.useEffect(() => {
|
|
33916
34171
|
if (!positionsRef.current.has(id)) {
|
|
33917
34172
|
positionsRef.current.set(id, defaultPos);
|
|
33918
34173
|
}
|
|
@@ -34003,13 +34258,13 @@ function ListerSessionPanel(props) {
|
|
|
34003
34258
|
}
|
|
34004
34259
|
function useLister() {
|
|
34005
34260
|
const runtime = useListerRuntime();
|
|
34006
|
-
const [state, setState] =
|
|
34007
|
-
|
|
34261
|
+
const [state, setState] = React76.useState(runtime.getState());
|
|
34262
|
+
React76.useEffect(() => {
|
|
34008
34263
|
return runtime.subscribe(() => {
|
|
34009
34264
|
setState(runtime.getState());
|
|
34010
34265
|
});
|
|
34011
34266
|
}, [runtime]);
|
|
34012
|
-
return
|
|
34267
|
+
return React76.useMemo(
|
|
34013
34268
|
() => ({
|
|
34014
34269
|
api: runtime.api,
|
|
34015
34270
|
actions: runtime.actions,
|
|
@@ -34066,43 +34321,43 @@ function useData(opts, deps = []) {
|
|
|
34066
34321
|
const enabled = (_a = opts.enabled) != null ? _a : true;
|
|
34067
34322
|
const debounceMs = (_b = opts.debounceMs) != null ? _b : 300;
|
|
34068
34323
|
const http = (_c = opts.http) != null ? _c : defaultHttpClient;
|
|
34069
|
-
const [data, setData] =
|
|
34324
|
+
const [data, setData] = React76.useState(() => {
|
|
34070
34325
|
var _a2;
|
|
34071
34326
|
return (_a2 = opts.initial) != null ? _a2 : [];
|
|
34072
34327
|
});
|
|
34073
|
-
const [res, setRes] =
|
|
34074
|
-
const [loading, setLoading] =
|
|
34075
|
-
const [error, setError] =
|
|
34076
|
-
const dataRef =
|
|
34077
|
-
|
|
34328
|
+
const [res, setRes] = React76.useState();
|
|
34329
|
+
const [loading, setLoading] = React76.useState(false);
|
|
34330
|
+
const [error, setError] = React76.useState(void 0);
|
|
34331
|
+
const dataRef = React76.useRef(data);
|
|
34332
|
+
React76.useEffect(() => {
|
|
34078
34333
|
dataRef.current = data;
|
|
34079
34334
|
}, [data]);
|
|
34080
|
-
const [query, _setQuery] =
|
|
34081
|
-
const [searchMode, _setSearchMode] =
|
|
34335
|
+
const [query, _setQuery] = React76.useState("");
|
|
34336
|
+
const [searchMode, _setSearchMode] = React76.useState(
|
|
34082
34337
|
(_d = opts.searchMode) != null ? _d : "remote"
|
|
34083
34338
|
);
|
|
34084
|
-
const [searchTarget, _setSearchTarget] =
|
|
34085
|
-
const [filters, _setFilters] =
|
|
34339
|
+
const [searchTarget, _setSearchTarget] = React76.useState(() => defaultSearchTarget(opts.search));
|
|
34340
|
+
const [filters, _setFilters] = React76.useState(
|
|
34086
34341
|
opts.filters
|
|
34087
34342
|
);
|
|
34088
|
-
const inflight =
|
|
34343
|
+
const inflight = React76.useMemo(
|
|
34089
34344
|
() => createInFlight(debounceMs),
|
|
34090
34345
|
[debounceMs]
|
|
34091
34346
|
);
|
|
34092
|
-
const inflightKeyRef =
|
|
34347
|
+
const inflightKeyRef = React76.useRef(
|
|
34093
34348
|
(_e = opts.id) != null ? _e : createRuntimeKey("data")
|
|
34094
34349
|
);
|
|
34095
|
-
|
|
34350
|
+
React76.useEffect(() => {
|
|
34096
34351
|
if (opts.id) inflightKeyRef.current = opts.id;
|
|
34097
34352
|
}, [opts.id]);
|
|
34098
|
-
|
|
34353
|
+
React76.useEffect(() => {
|
|
34099
34354
|
return () => {
|
|
34100
34355
|
inflight.clear(inflightKeyRef.current);
|
|
34101
34356
|
};
|
|
34102
34357
|
}, [inflight]);
|
|
34103
34358
|
const selectionMode = (_g = (_f = opts.selection) == null ? void 0 : _f.mode) != null ? _g : "none";
|
|
34104
34359
|
const selectionPrune = (_i = (_h = opts.selection) == null ? void 0 : _h.prune) != null ? _i : "never";
|
|
34105
|
-
const getItemKey =
|
|
34360
|
+
const getItemKey = React76.useMemo(() => {
|
|
34106
34361
|
var _a2;
|
|
34107
34362
|
const key = (_a2 = opts.selection) == null ? void 0 : _a2.key;
|
|
34108
34363
|
if (!key) {
|
|
@@ -34123,11 +34378,11 @@ function useData(opts, deps = []) {
|
|
|
34123
34378
|
return isKey(v2) ? v2 : null;
|
|
34124
34379
|
};
|
|
34125
34380
|
}, [(_j = opts.selection) == null ? void 0 : _j.key]);
|
|
34126
|
-
const [selectedIdsArr, setSelectedIdsArr] =
|
|
34127
|
-
const selectedCacheRef =
|
|
34128
|
-
const didMountRef =
|
|
34129
|
-
const skipNextModeEffectRef =
|
|
34130
|
-
const dataById =
|
|
34381
|
+
const [selectedIdsArr, setSelectedIdsArr] = React76.useState([]);
|
|
34382
|
+
const selectedCacheRef = React76.useRef(/* @__PURE__ */ new Map());
|
|
34383
|
+
const didMountRef = React76.useRef(false);
|
|
34384
|
+
const skipNextModeEffectRef = React76.useRef(false);
|
|
34385
|
+
const dataById = React76.useMemo(() => {
|
|
34131
34386
|
const map = /* @__PURE__ */ new Map();
|
|
34132
34387
|
if (selectionMode === "none") return map;
|
|
34133
34388
|
for (const item of data) {
|
|
@@ -34137,10 +34392,10 @@ function useData(opts, deps = []) {
|
|
|
34137
34392
|
}
|
|
34138
34393
|
return map;
|
|
34139
34394
|
}, [data, getItemKey, selectionMode]);
|
|
34140
|
-
const normalizeIds =
|
|
34395
|
+
const normalizeIds = React76.useCallback((v2) => {
|
|
34141
34396
|
return Array.isArray(v2) ? v2 : [v2];
|
|
34142
34397
|
}, []);
|
|
34143
|
-
const commitSelectedCache =
|
|
34398
|
+
const commitSelectedCache = React76.useCallback(
|
|
34144
34399
|
(list) => {
|
|
34145
34400
|
if (selectionMode === "none") return;
|
|
34146
34401
|
for (const item of list) {
|
|
@@ -34151,7 +34406,7 @@ function useData(opts, deps = []) {
|
|
|
34151
34406
|
},
|
|
34152
34407
|
[getItemKey, selectionMode]
|
|
34153
34408
|
);
|
|
34154
|
-
const fetchImpl =
|
|
34409
|
+
const fetchImpl = React76.useCallback(
|
|
34155
34410
|
async (override2) => {
|
|
34156
34411
|
var _a2, _b2, _c2, _d2, _e2, _f2, _g2, _h2, _i2;
|
|
34157
34412
|
if (!enabled) return dataRef.current;
|
|
@@ -34234,14 +34489,14 @@ function useData(opts, deps = []) {
|
|
|
34234
34489
|
getItemKey
|
|
34235
34490
|
]
|
|
34236
34491
|
);
|
|
34237
|
-
const refresh =
|
|
34492
|
+
const refresh = React76.useCallback(async () => {
|
|
34238
34493
|
return fetchImpl();
|
|
34239
34494
|
}, [fetchImpl]);
|
|
34240
|
-
const override =
|
|
34495
|
+
const override = React76.useCallback((newData) => {
|
|
34241
34496
|
setData(newData);
|
|
34242
34497
|
}, []);
|
|
34243
|
-
const setQuery =
|
|
34244
|
-
const setSearchMode =
|
|
34498
|
+
const setQuery = React76.useCallback((q2) => _setQuery(q2), []);
|
|
34499
|
+
const setSearchMode = React76.useCallback(
|
|
34245
34500
|
(m2) => {
|
|
34246
34501
|
inflight.abort(inflightKeyRef.current);
|
|
34247
34502
|
if (m2 === "remote" || m2 === "hybrid") {
|
|
@@ -34260,27 +34515,27 @@ function useData(opts, deps = []) {
|
|
|
34260
34515
|
},
|
|
34261
34516
|
[fetchImpl, inflight]
|
|
34262
34517
|
);
|
|
34263
|
-
const setSearchTarget =
|
|
34518
|
+
const setSearchTarget = React76.useCallback((t4) => {
|
|
34264
34519
|
_setSearchTarget(t4);
|
|
34265
34520
|
}, []);
|
|
34266
|
-
const setFilters =
|
|
34521
|
+
const setFilters = React76.useCallback(
|
|
34267
34522
|
(next) => _setFilters(next),
|
|
34268
34523
|
[]
|
|
34269
34524
|
);
|
|
34270
|
-
const patchFilters =
|
|
34525
|
+
const patchFilters = React76.useCallback((patch) => {
|
|
34271
34526
|
_setFilters((prev) => ({
|
|
34272
34527
|
...prev != null ? prev : {},
|
|
34273
34528
|
...patch
|
|
34274
34529
|
}));
|
|
34275
34530
|
}, []);
|
|
34276
|
-
const clearFilters =
|
|
34531
|
+
const clearFilters = React76.useCallback(() => _setFilters(void 0), []);
|
|
34277
34532
|
const fetchOnMount = (_k = opts.fetchOnMount) != null ? _k : !opts.initial;
|
|
34278
|
-
|
|
34533
|
+
React76.useEffect(() => {
|
|
34279
34534
|
if (!enabled) return;
|
|
34280
34535
|
if (!fetchOnMount) return;
|
|
34281
34536
|
void fetchImpl();
|
|
34282
34537
|
}, deps);
|
|
34283
|
-
|
|
34538
|
+
React76.useEffect(() => {
|
|
34284
34539
|
if (!enabled) return;
|
|
34285
34540
|
if (!didMountRef.current) {
|
|
34286
34541
|
didMountRef.current = true;
|
|
@@ -34299,14 +34554,14 @@ function useData(opts, deps = []) {
|
|
|
34299
34554
|
inflight.abort(key);
|
|
34300
34555
|
};
|
|
34301
34556
|
}, [enabled, fetchImpl, inflight, query, searchMode, searchTarget]);
|
|
34302
|
-
|
|
34557
|
+
React76.useEffect(() => {
|
|
34303
34558
|
if (!enabled) return;
|
|
34304
34559
|
if (opts.autoFetchOnFilterChange === false) return;
|
|
34305
34560
|
if (!didMountRef.current) return;
|
|
34306
34561
|
if (searchMode !== "remote" && searchMode !== "hybrid") return;
|
|
34307
34562
|
void fetchImpl();
|
|
34308
34563
|
}, [enabled, fetchImpl, filters, opts.autoFetchOnFilterChange, searchMode]);
|
|
34309
|
-
const visible =
|
|
34564
|
+
const visible = React76.useMemo(() => {
|
|
34310
34565
|
if (searchMode !== "local" && searchMode !== "hybrid") return data;
|
|
34311
34566
|
const payload = buildSearchPayloadFromTarget(searchTarget);
|
|
34312
34567
|
let list = data;
|
|
@@ -34333,24 +34588,24 @@ function useData(opts, deps = []) {
|
|
|
34333
34588
|
(item) => stringifyForSearch(item).toLowerCase().includes(ql)
|
|
34334
34589
|
);
|
|
34335
34590
|
}, [data, getItemKey, query, searchMode, searchTarget]);
|
|
34336
|
-
const selectedIds =
|
|
34591
|
+
const selectedIds = React76.useMemo(() => {
|
|
34337
34592
|
var _a2;
|
|
34338
34593
|
if (selectionMode === "none") return null;
|
|
34339
34594
|
if (selectionMode === "single") return (_a2 = selectedIdsArr[0]) != null ? _a2 : null;
|
|
34340
34595
|
return selectedIdsArr;
|
|
34341
34596
|
}, [selectionMode, selectedIdsArr]);
|
|
34342
|
-
const isSelected =
|
|
34597
|
+
const isSelected = React76.useCallback(
|
|
34343
34598
|
(id) => {
|
|
34344
34599
|
if (selectionMode === "none") return false;
|
|
34345
34600
|
return selectedIdsArr.includes(id);
|
|
34346
34601
|
},
|
|
34347
34602
|
[selectedIdsArr, selectionMode]
|
|
34348
34603
|
);
|
|
34349
|
-
const clearSelection =
|
|
34604
|
+
const clearSelection = React76.useCallback(() => {
|
|
34350
34605
|
if (selectionMode === "none") return;
|
|
34351
34606
|
setSelectedIdsArr([]);
|
|
34352
34607
|
}, [selectionMode]);
|
|
34353
|
-
const select =
|
|
34608
|
+
const select = React76.useCallback(
|
|
34354
34609
|
(idOrIds) => {
|
|
34355
34610
|
if (selectionMode === "none") return;
|
|
34356
34611
|
const ids = normalizeIds(idOrIds).filter(isKey);
|
|
@@ -34367,7 +34622,7 @@ function useData(opts, deps = []) {
|
|
|
34367
34622
|
},
|
|
34368
34623
|
[dataById, normalizeIds, selectionMode]
|
|
34369
34624
|
);
|
|
34370
|
-
const deselect =
|
|
34625
|
+
const deselect = React76.useCallback(
|
|
34371
34626
|
(idOrIds) => {
|
|
34372
34627
|
if (selectionMode === "none") return;
|
|
34373
34628
|
const ids = new Set(normalizeIds(idOrIds).filter(isKey));
|
|
@@ -34380,7 +34635,7 @@ function useData(opts, deps = []) {
|
|
|
34380
34635
|
},
|
|
34381
34636
|
[normalizeIds, selectionMode]
|
|
34382
34637
|
);
|
|
34383
|
-
const toggle =
|
|
34638
|
+
const toggle = React76.useCallback(
|
|
34384
34639
|
(id) => {
|
|
34385
34640
|
if (selectionMode === "none") return;
|
|
34386
34641
|
const hit = dataById.get(id);
|
|
@@ -34398,7 +34653,7 @@ function useData(opts, deps = []) {
|
|
|
34398
34653
|
},
|
|
34399
34654
|
[dataById, selectionMode]
|
|
34400
34655
|
);
|
|
34401
|
-
const selected =
|
|
34656
|
+
const selected = React76.useMemo(() => {
|
|
34402
34657
|
var _a2, _b2, _c2, _d2;
|
|
34403
34658
|
if (selectionMode === "none") return null;
|
|
34404
34659
|
if (selectionMode === "single") {
|
|
@@ -34413,8 +34668,8 @@ function useData(opts, deps = []) {
|
|
|
34413
34668
|
}
|
|
34414
34669
|
return out;
|
|
34415
34670
|
}, [dataById, selectedIdsArr, selectionMode]);
|
|
34416
|
-
const getSelection =
|
|
34417
|
-
|
|
34671
|
+
const getSelection = React76.useCallback(() => selected, [selected]);
|
|
34672
|
+
React76.useEffect(() => {
|
|
34418
34673
|
if (selectionMode === "none") {
|
|
34419
34674
|
setSelectedIdsArr([]);
|
|
34420
34675
|
return;
|