@sustaina/shared-ui 1.33.1 → 1.33.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +10 -8
- package/dist/index.d.ts +10 -8
- package/dist/index.js +540 -304
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +385 -150
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -2,8 +2,8 @@ import * as AccordionPrimitive from '@radix-ui/react-accordion';
|
|
|
2
2
|
import clsx2, { clsx } from 'clsx';
|
|
3
3
|
import { twMerge } from 'tailwind-merge';
|
|
4
4
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
5
|
-
import * as
|
|
6
|
-
import
|
|
5
|
+
import * as React26 from 'react';
|
|
6
|
+
import React26__default, { forwardRef, useRef, useMemo, useCallback, useState, isValidElement, useEffect, useLayoutEffect, createElement } from 'react';
|
|
7
7
|
import { CircleX, Undo, Redo, Bold, Italic, Underline, Strikethrough, Code, Pilcrow, Heading1, Heading2, Heading3, List as List$1, ListOrdered, Quote, CodeSquare, Link, Link2Off, Image as Image$1, AlignLeft, AlignCenter, AlignRight, CircleHelp, ChevronDown, X, Check, XIcon, SearchIcon, ChevronRight, CheckIcon, Triangle, CalendarIcon, Search, ChevronUp, PanelLeftIcon, Minimize2, Maximize2, Plus, ChevronLeft, CircleUserRound, MoreVertical, Bug, GripVertical, Info, CircleMinus, Minus } from 'lucide-react';
|
|
8
8
|
import { createPortal } from 'react-dom';
|
|
9
9
|
import * as SelectPrimitive from '@radix-ui/react-select';
|
|
@@ -1203,7 +1203,7 @@ var OPERATOR_LABEL = {
|
|
|
1203
1203
|
containsAll: "Contains all of"
|
|
1204
1204
|
};
|
|
1205
1205
|
var OperatorSelect = ({ row, operators, onChangeOperator, error }) => {
|
|
1206
|
-
|
|
1206
|
+
React26__default.useEffect(() => {
|
|
1207
1207
|
if (!operators.length) return;
|
|
1208
1208
|
if (!operators.includes(row.operator)) {
|
|
1209
1209
|
onChangeOperator(operators[0]);
|
|
@@ -1239,15 +1239,15 @@ function Label2({ className, ...props }) {
|
|
|
1239
1239
|
);
|
|
1240
1240
|
}
|
|
1241
1241
|
var Form = FormProvider;
|
|
1242
|
-
var FormFieldContext =
|
|
1242
|
+
var FormFieldContext = React26.createContext({});
|
|
1243
1243
|
var FormField = ({
|
|
1244
1244
|
...props
|
|
1245
1245
|
}) => {
|
|
1246
1246
|
return /* @__PURE__ */ jsx(FormFieldContext.Provider, { value: { name: props.name }, children: /* @__PURE__ */ jsx(Controller, { ...props }) });
|
|
1247
1247
|
};
|
|
1248
1248
|
var useFormField = () => {
|
|
1249
|
-
const fieldContext =
|
|
1250
|
-
const itemContext =
|
|
1249
|
+
const fieldContext = React26.useContext(FormFieldContext);
|
|
1250
|
+
const itemContext = React26.useContext(FormItemContext);
|
|
1251
1251
|
const { getFieldState } = useFormContext();
|
|
1252
1252
|
const formState = useFormState({ name: fieldContext.name });
|
|
1253
1253
|
const fieldState = getFieldState(fieldContext.name, formState);
|
|
@@ -1264,9 +1264,9 @@ var useFormField = () => {
|
|
|
1264
1264
|
...fieldState
|
|
1265
1265
|
};
|
|
1266
1266
|
};
|
|
1267
|
-
var FormItemContext =
|
|
1267
|
+
var FormItemContext = React26.createContext({});
|
|
1268
1268
|
function FormItem({ className, ...props }) {
|
|
1269
|
-
const id =
|
|
1269
|
+
const id = React26.useId();
|
|
1270
1270
|
return /* @__PURE__ */ jsx(FormItemContext.Provider, { value: { id }, children: /* @__PURE__ */ jsx("div", { "data-slot": "form-item", className: cn("grid gap-2", className), ...props }) });
|
|
1271
1271
|
}
|
|
1272
1272
|
function FormLabel({ className, ...props }) {
|
|
@@ -1370,7 +1370,7 @@ var Spinner = ({ className, variant, size = "default", ...props }) => /* @__PURE
|
|
|
1370
1370
|
]
|
|
1371
1371
|
}
|
|
1372
1372
|
);
|
|
1373
|
-
var InputPrimitive =
|
|
1373
|
+
var InputPrimitive = React26.forwardRef(
|
|
1374
1374
|
({ className, type = "text", ...props }, ref) => {
|
|
1375
1375
|
return /* @__PURE__ */ jsx(
|
|
1376
1376
|
"input",
|
|
@@ -1409,7 +1409,7 @@ var inputVariants = cva("", {
|
|
|
1409
1409
|
appearance: "filled"
|
|
1410
1410
|
}
|
|
1411
1411
|
});
|
|
1412
|
-
var Input =
|
|
1412
|
+
var Input = React26.forwardRef(
|
|
1413
1413
|
({
|
|
1414
1414
|
className,
|
|
1415
1415
|
wrapperClassName,
|
|
@@ -1442,8 +1442,8 @@ var Input = React4.forwardRef(
|
|
|
1442
1442
|
onChange: onChangeProp
|
|
1443
1443
|
} = rest;
|
|
1444
1444
|
const ariaInvalid = invalid ?? ariaInvalidProp;
|
|
1445
|
-
const messageId =
|
|
1446
|
-
const handleChange =
|
|
1445
|
+
const messageId = React26.useId();
|
|
1446
|
+
const handleChange = React26.useCallback(
|
|
1447
1447
|
(event) => {
|
|
1448
1448
|
onChangeProp?.(event);
|
|
1449
1449
|
onValueChange?.(event.target.value);
|
|
@@ -1786,20 +1786,20 @@ function DatePicker({
|
|
|
1786
1786
|
className,
|
|
1787
1787
|
...props
|
|
1788
1788
|
}) {
|
|
1789
|
-
const today =
|
|
1790
|
-
const [displayed, setDisplayed] =
|
|
1789
|
+
const today = React26.useMemo(() => startOfDay(/* @__PURE__ */ new Date()), []);
|
|
1790
|
+
const [displayed, setDisplayed] = React26.useState(
|
|
1791
1791
|
selectedDate ? new Date(selectedDate) : /* @__PURE__ */ new Date()
|
|
1792
1792
|
);
|
|
1793
1793
|
minDate = clampToDay(minDate);
|
|
1794
1794
|
maxDate = clampToDay(maxDate);
|
|
1795
|
-
const disabledSet =
|
|
1795
|
+
const disabledSet = React26.useMemo(() => {
|
|
1796
1796
|
const s = /* @__PURE__ */ new Set();
|
|
1797
1797
|
disabledDates?.forEach((d) => s.add(startOfDay(d).toISOString()));
|
|
1798
1798
|
return s;
|
|
1799
1799
|
}, [disabledDates]);
|
|
1800
1800
|
const displayYear = displayed.getFullYear();
|
|
1801
1801
|
const displayMonth = displayed.getMonth();
|
|
1802
|
-
const weekdays =
|
|
1802
|
+
const weekdays = React26.useMemo(() => {
|
|
1803
1803
|
const labels = [];
|
|
1804
1804
|
for (let i = 0; i < 7; i++) {
|
|
1805
1805
|
const idx = i;
|
|
@@ -1808,7 +1808,7 @@ function DatePicker({
|
|
|
1808
1808
|
}
|
|
1809
1809
|
return labels;
|
|
1810
1810
|
}, [callbacks]);
|
|
1811
|
-
const grid =
|
|
1811
|
+
const grid = React26.useMemo(() => buildCalendarGrid(displayed, true), [displayed]);
|
|
1812
1812
|
const isDateDisabled = (date) => {
|
|
1813
1813
|
const d = startOfDay(date);
|
|
1814
1814
|
if (minDate && d < minDate) return true;
|
|
@@ -1818,7 +1818,7 @@ function DatePicker({
|
|
|
1818
1818
|
};
|
|
1819
1819
|
const minYear = minDate?.getFullYear();
|
|
1820
1820
|
const maxYear = maxDate?.getFullYear();
|
|
1821
|
-
const getMonthLabel =
|
|
1821
|
+
const getMonthLabel = React26.useCallback(
|
|
1822
1822
|
(year, monthIndex) => {
|
|
1823
1823
|
const label = callbacks?.monthLabel?.(year, monthIndex);
|
|
1824
1824
|
if (label === null || label === void 0) {
|
|
@@ -1828,7 +1828,7 @@ function DatePicker({
|
|
|
1828
1828
|
},
|
|
1829
1829
|
[callbacks]
|
|
1830
1830
|
);
|
|
1831
|
-
const getYearLabel =
|
|
1831
|
+
const getYearLabel = React26.useCallback(
|
|
1832
1832
|
(year) => {
|
|
1833
1833
|
const label = callbacks?.yearLabel?.(year);
|
|
1834
1834
|
if (label === null || label === void 0) return String(year);
|
|
@@ -1836,7 +1836,7 @@ function DatePicker({
|
|
|
1836
1836
|
},
|
|
1837
1837
|
[callbacks]
|
|
1838
1838
|
);
|
|
1839
|
-
const clampMonthToBounds =
|
|
1839
|
+
const clampMonthToBounds = React26.useCallback(
|
|
1840
1840
|
(year, monthIndex) => {
|
|
1841
1841
|
let output = monthIndex;
|
|
1842
1842
|
if (typeof minYear === "number" && year === minYear && minDate) {
|
|
@@ -1851,7 +1851,7 @@ function DatePicker({
|
|
|
1851
1851
|
},
|
|
1852
1852
|
[maxDate, minDate, maxYear, minYear]
|
|
1853
1853
|
);
|
|
1854
|
-
const yearOptions =
|
|
1854
|
+
const yearOptions = React26.useMemo(() => {
|
|
1855
1855
|
const fallbackWindow = 50;
|
|
1856
1856
|
const start = typeof minYear === "number" ? minYear : displayYear - fallbackWindow;
|
|
1857
1857
|
const end = typeof maxYear === "number" ? maxYear : displayYear + fallbackWindow;
|
|
@@ -1872,7 +1872,7 @@ function DatePicker({
|
|
|
1872
1872
|
}
|
|
1873
1873
|
return years;
|
|
1874
1874
|
}, [displayYear, maxYear, minYear, selectedDate]);
|
|
1875
|
-
const monthOptions =
|
|
1875
|
+
const monthOptions = React26.useMemo(() => {
|
|
1876
1876
|
const months = Array.from({ length: 12 }, (_, monthIndex) => {
|
|
1877
1877
|
const disabled = typeof minYear === "number" && displayYear === minYear && minDate && monthIndex < minDate.getMonth() || typeof maxYear === "number" && displayYear === maxYear && maxDate && monthIndex > maxDate.getMonth();
|
|
1878
1878
|
return {
|
|
@@ -1891,7 +1891,7 @@ function DatePicker({
|
|
|
1891
1891
|
}
|
|
1892
1892
|
return months.sort((a, b) => a.value - b.value).filter((option, index, arr) => index === 0 || option.value !== arr[index - 1].value);
|
|
1893
1893
|
}, [displayMonth, displayYear, getMonthLabel, maxDate, maxYear, minDate, minYear]);
|
|
1894
|
-
const handleMonthSelect =
|
|
1894
|
+
const handleMonthSelect = React26.useCallback((nextValue) => {
|
|
1895
1895
|
const nextMonth = Number.parseInt(nextValue, 10);
|
|
1896
1896
|
if (Number.isNaN(nextMonth)) return;
|
|
1897
1897
|
setDisplayed((prev) => {
|
|
@@ -1901,7 +1901,7 @@ function DatePicker({
|
|
|
1901
1901
|
return next;
|
|
1902
1902
|
});
|
|
1903
1903
|
}, []);
|
|
1904
|
-
const handleYearSelect =
|
|
1904
|
+
const handleYearSelect = React26.useCallback(
|
|
1905
1905
|
(nextValue) => {
|
|
1906
1906
|
const nextYear = Number.parseInt(nextValue, 10);
|
|
1907
1907
|
if (Number.isNaN(nextYear)) return;
|
|
@@ -2049,14 +2049,14 @@ var DatePicker2 = ({
|
|
|
2049
2049
|
ariaLabel,
|
|
2050
2050
|
...calendarProps
|
|
2051
2051
|
}) => {
|
|
2052
|
-
const [open, setOpen] =
|
|
2053
|
-
const parser =
|
|
2054
|
-
const outputFormatter =
|
|
2055
|
-
const labelFormatter =
|
|
2052
|
+
const [open, setOpen] = React26__default.useState(false);
|
|
2053
|
+
const parser = React26__default.useMemo(() => valueParser ?? defaultValueParser, [valueParser]);
|
|
2054
|
+
const outputFormatter = React26__default.useMemo(() => valueFormatter ?? defaultValueFormatter, [valueFormatter]);
|
|
2055
|
+
const labelFormatter = React26__default.useMemo(
|
|
2056
2056
|
() => displayFormatter ?? defaultDisplayFormatter,
|
|
2057
2057
|
[displayFormatter]
|
|
2058
2058
|
);
|
|
2059
|
-
const parsedValue =
|
|
2059
|
+
const parsedValue = React26__default.useMemo(() => {
|
|
2060
2060
|
if (value === null || value === void 0) return void 0;
|
|
2061
2061
|
if (value instanceof Date) return value;
|
|
2062
2062
|
const parsed = parser(value);
|
|
@@ -2065,26 +2065,26 @@ var DatePicker2 = ({
|
|
|
2065
2065
|
const buttonLabel = parsedValue ? labelFormatter(parsedValue) : placeholder2;
|
|
2066
2066
|
const buttonAriaLabel = ariaLabel ?? (parsedValue ? `Change date, current selection ${labelFormatter(parsedValue)}` : "Open date picker");
|
|
2067
2067
|
const shouldShowClear = allowClear && !disabled && !!parsedValue;
|
|
2068
|
-
const handleClose =
|
|
2069
|
-
const emitChange =
|
|
2068
|
+
const handleClose = React26__default.useCallback(() => setOpen(false), []);
|
|
2069
|
+
const emitChange = React26__default.useCallback(
|
|
2070
2070
|
(next) => {
|
|
2071
2071
|
onChange?.(next);
|
|
2072
2072
|
onValueChange?.(next ? outputFormatter(next) : void 0);
|
|
2073
2073
|
},
|
|
2074
2074
|
[onChange, onValueChange, outputFormatter]
|
|
2075
2075
|
);
|
|
2076
|
-
const handleSelect =
|
|
2076
|
+
const handleSelect = React26__default.useCallback(
|
|
2077
2077
|
(next) => {
|
|
2078
2078
|
emitChange(next);
|
|
2079
2079
|
if (closeOnSelect && next) handleClose();
|
|
2080
2080
|
},
|
|
2081
2081
|
[closeOnSelect, emitChange, handleClose]
|
|
2082
2082
|
);
|
|
2083
|
-
const handleClear =
|
|
2083
|
+
const handleClear = React26__default.useCallback(() => {
|
|
2084
2084
|
emitChange(void 0);
|
|
2085
2085
|
handleClose();
|
|
2086
2086
|
}, [emitChange, handleClose]);
|
|
2087
|
-
const handleOpenChange =
|
|
2087
|
+
const handleOpenChange = React26__default.useCallback(
|
|
2088
2088
|
(nextOpen) => {
|
|
2089
2089
|
if (disabled && nextOpen) return;
|
|
2090
2090
|
setOpen(nextOpen);
|
|
@@ -2274,15 +2274,15 @@ function MonthCal({
|
|
|
2274
2274
|
onYearBackward,
|
|
2275
2275
|
onYearForward
|
|
2276
2276
|
}) {
|
|
2277
|
-
const today =
|
|
2277
|
+
const today = React26.useMemo(() => {
|
|
2278
2278
|
const now = /* @__PURE__ */ new Date();
|
|
2279
2279
|
now.setDate(1);
|
|
2280
2280
|
now.setHours(0, 0, 0, 0);
|
|
2281
2281
|
return now;
|
|
2282
2282
|
}, []);
|
|
2283
|
-
const selectedMonthDate =
|
|
2284
|
-
const min =
|
|
2285
|
-
const max =
|
|
2283
|
+
const selectedMonthDate = React26.useMemo(() => normalizeMonth(selectedDate), [selectedDate]);
|
|
2284
|
+
const min = React26.useMemo(() => normalizeMonth(minDate), [minDate]);
|
|
2285
|
+
const max = React26.useMemo(() => normalizeMonth(maxDate), [maxDate]);
|
|
2286
2286
|
let effectiveMin = min;
|
|
2287
2287
|
if (min && max && min > max) {
|
|
2288
2288
|
effectiveMin = max;
|
|
@@ -2291,10 +2291,10 @@ function MonthCal({
|
|
|
2291
2291
|
const minMonth = effectiveMin?.getMonth();
|
|
2292
2292
|
const maxYear = max?.getFullYear();
|
|
2293
2293
|
const maxMonth = max?.getMonth();
|
|
2294
|
-
const [menuYear, setMenuYear] =
|
|
2294
|
+
const [menuYear, setMenuYear] = React26.useState(
|
|
2295
2295
|
() => selectedMonthDate?.getFullYear() ?? today.getFullYear()
|
|
2296
2296
|
);
|
|
2297
|
-
|
|
2297
|
+
React26.useEffect(() => {
|
|
2298
2298
|
if (selectedMonthDate) {
|
|
2299
2299
|
const year = selectedMonthDate.getFullYear();
|
|
2300
2300
|
if (year !== menuYear) {
|
|
@@ -2302,7 +2302,7 @@ function MonthCal({
|
|
|
2302
2302
|
}
|
|
2303
2303
|
}
|
|
2304
2304
|
}, [selectedMonthDate, menuYear]);
|
|
2305
|
-
|
|
2305
|
+
React26.useEffect(() => {
|
|
2306
2306
|
if (typeof minYear === "number" && menuYear < minYear) {
|
|
2307
2307
|
setMenuYear(minYear);
|
|
2308
2308
|
return;
|
|
@@ -2313,7 +2313,7 @@ function MonthCal({
|
|
|
2313
2313
|
}, [minYear, maxYear, menuYear]);
|
|
2314
2314
|
const disablePrevYear = typeof minYear === "number" ? menuYear <= minYear : false;
|
|
2315
2315
|
const disableNextYear = typeof maxYear === "number" ? menuYear >= maxYear : false;
|
|
2316
|
-
const yearOptions =
|
|
2316
|
+
const yearOptions = React26.useMemo(() => {
|
|
2317
2317
|
const fallbackWindow = 50;
|
|
2318
2318
|
const start = typeof minYear === "number" ? minYear : menuYear - fallbackWindow;
|
|
2319
2319
|
const end = typeof maxYear === "number" ? maxYear : menuYear + fallbackWindow;
|
|
@@ -2327,7 +2327,7 @@ function MonthCal({
|
|
|
2327
2327
|
}
|
|
2328
2328
|
return years;
|
|
2329
2329
|
}, [maxYear, menuYear, minYear]);
|
|
2330
|
-
const formatYearLabel =
|
|
2330
|
+
const formatYearLabel = React26.useCallback(
|
|
2331
2331
|
(year) => {
|
|
2332
2332
|
const raw = callbacks?.yearLabel?.(year);
|
|
2333
2333
|
if (raw === null || raw === void 0) return String(year);
|
|
@@ -2335,7 +2335,7 @@ function MonthCal({
|
|
|
2335
2335
|
},
|
|
2336
2336
|
[callbacks]
|
|
2337
2337
|
);
|
|
2338
|
-
const handleYearSelect =
|
|
2338
|
+
const handleYearSelect = React26.useCallback(
|
|
2339
2339
|
(nextValue) => {
|
|
2340
2340
|
const nextYear = Number.parseInt(nextValue, 10);
|
|
2341
2341
|
if (Number.isNaN(nextYear)) return;
|
|
@@ -2345,7 +2345,7 @@ function MonthCal({
|
|
|
2345
2345
|
},
|
|
2346
2346
|
[maxYear, minYear]
|
|
2347
2347
|
);
|
|
2348
|
-
const disabledPairs =
|
|
2348
|
+
const disabledPairs = React26.useMemo(() => {
|
|
2349
2349
|
if (!disabledDates?.length) return [];
|
|
2350
2350
|
const pairs = [];
|
|
2351
2351
|
disabledDates.forEach((date) => {
|
|
@@ -2490,14 +2490,14 @@ var MonthPicker2 = ({
|
|
|
2490
2490
|
ariaLabel,
|
|
2491
2491
|
...calendarProps
|
|
2492
2492
|
}) => {
|
|
2493
|
-
const [open, setOpen] =
|
|
2494
|
-
const parser =
|
|
2495
|
-
const outputFormatter =
|
|
2496
|
-
const labelFormatter =
|
|
2493
|
+
const [open, setOpen] = React26__default.useState(false);
|
|
2494
|
+
const parser = React26__default.useMemo(() => valueParser ?? defaultValueParser2, [valueParser]);
|
|
2495
|
+
const outputFormatter = React26__default.useMemo(() => valueFormatter ?? defaultValueFormatter2, [valueFormatter]);
|
|
2496
|
+
const labelFormatter = React26__default.useMemo(
|
|
2497
2497
|
() => displayFormatter ?? defaultDisplayFormatter2,
|
|
2498
2498
|
[displayFormatter]
|
|
2499
2499
|
);
|
|
2500
|
-
const parsedValue =
|
|
2500
|
+
const parsedValue = React26__default.useMemo(() => {
|
|
2501
2501
|
if (value === null || value === void 0) return void 0;
|
|
2502
2502
|
if (value instanceof Date) return normalizeMonth2(value);
|
|
2503
2503
|
if (typeof value === "string") {
|
|
@@ -2509,8 +2509,8 @@ var MonthPicker2 = ({
|
|
|
2509
2509
|
const buttonLabel = parsedValue ? labelFormatter(parsedValue) : placeholder2;
|
|
2510
2510
|
const buttonAriaLabel = ariaLabel ?? (parsedValue ? `Change month, current selection ${labelFormatter(parsedValue)}` : "Open month picker");
|
|
2511
2511
|
const shouldShowClear = allowClear && !disabled && !!parsedValue;
|
|
2512
|
-
const handleClose =
|
|
2513
|
-
const emitChange =
|
|
2512
|
+
const handleClose = React26__default.useCallback(() => setOpen(false), []);
|
|
2513
|
+
const emitChange = React26__default.useCallback(
|
|
2514
2514
|
(next) => {
|
|
2515
2515
|
const normalized = next ? normalizeMonth2(next) : void 0;
|
|
2516
2516
|
onChange?.(normalized);
|
|
@@ -2518,18 +2518,18 @@ var MonthPicker2 = ({
|
|
|
2518
2518
|
},
|
|
2519
2519
|
[onChange, onValueChange, outputFormatter]
|
|
2520
2520
|
);
|
|
2521
|
-
const handleSelect =
|
|
2521
|
+
const handleSelect = React26__default.useCallback(
|
|
2522
2522
|
(next) => {
|
|
2523
2523
|
emitChange(next);
|
|
2524
2524
|
if (closeOnSelect && next) handleClose();
|
|
2525
2525
|
},
|
|
2526
2526
|
[closeOnSelect, emitChange, handleClose]
|
|
2527
2527
|
);
|
|
2528
|
-
const handleClear =
|
|
2528
|
+
const handleClear = React26__default.useCallback(() => {
|
|
2529
2529
|
emitChange(void 0);
|
|
2530
2530
|
handleClose();
|
|
2531
2531
|
}, [emitChange, handleClose]);
|
|
2532
|
-
const handleOpenChange =
|
|
2532
|
+
const handleOpenChange = React26__default.useCallback(
|
|
2533
2533
|
(nextOpen) => {
|
|
2534
2534
|
if (disabled && nextOpen) return;
|
|
2535
2535
|
setOpen(nextOpen);
|
|
@@ -3799,7 +3799,7 @@ var AdvanceSearch = ({
|
|
|
3799
3799
|
defaultValues: {}
|
|
3800
3800
|
});
|
|
3801
3801
|
const { handleSubmit, unregister, resetField, getValues, clearErrors, setError } = form;
|
|
3802
|
-
const [operatorErrors, setOperatorErrors] =
|
|
3802
|
+
const [operatorErrors, setOperatorErrors] = React26__default.useState({});
|
|
3803
3803
|
const clearOperatorError = useCallback(
|
|
3804
3804
|
(rowId) => {
|
|
3805
3805
|
setOperatorErrors((prev) => {
|
|
@@ -4217,13 +4217,13 @@ var useControllableState = ({
|
|
|
4217
4217
|
defaultValue,
|
|
4218
4218
|
value
|
|
4219
4219
|
}) => {
|
|
4220
|
-
const [internalValue, setInternalValue] =
|
|
4221
|
-
|
|
4220
|
+
const [internalValue, setInternalValue] = React26.useState(value ?? defaultValue);
|
|
4221
|
+
React26.useEffect(() => {
|
|
4222
4222
|
if (value !== internalValue) {
|
|
4223
4223
|
setInternalValue(value);
|
|
4224
4224
|
}
|
|
4225
4225
|
}, [value]);
|
|
4226
|
-
const updateState =
|
|
4226
|
+
const updateState = React26.useCallback((nextValue) => {
|
|
4227
4227
|
setInternalValue(nextValue);
|
|
4228
4228
|
}, []);
|
|
4229
4229
|
return {
|
|
@@ -4232,6 +4232,7 @@ var useControllableState = ({
|
|
|
4232
4232
|
};
|
|
4233
4233
|
};
|
|
4234
4234
|
var useControllableState_default = useControllableState;
|
|
4235
|
+
var useIsomorphicLayoutEffect = typeof window !== "undefined" ? useLayoutEffect : useEffect;
|
|
4235
4236
|
var HeaderCell = ({
|
|
4236
4237
|
rootClassName,
|
|
4237
4238
|
labelClassName,
|
|
@@ -4429,7 +4430,7 @@ var ColumnSeparator = ({ show, className, ...props }) => {
|
|
|
4429
4430
|
}
|
|
4430
4431
|
);
|
|
4431
4432
|
};
|
|
4432
|
-
var ColumnSeparator_default =
|
|
4433
|
+
var ColumnSeparator_default = React26__default.memo(ColumnSeparator);
|
|
4433
4434
|
var StatusContentSlot = ({
|
|
4434
4435
|
content,
|
|
4435
4436
|
icon,
|
|
@@ -4448,7 +4449,7 @@ var StatusContentSlot = ({
|
|
|
4448
4449
|
content
|
|
4449
4450
|
] });
|
|
4450
4451
|
};
|
|
4451
|
-
var StatusContentSlot_default =
|
|
4452
|
+
var StatusContentSlot_default = React26__default.memo(StatusContentSlot);
|
|
4452
4453
|
var stateOptions = [
|
|
4453
4454
|
"columnFilters",
|
|
4454
4455
|
"globalFilter",
|
|
@@ -5957,8 +5958,8 @@ var DISALLOWED_MARKS = ["bold", "italic", "link"];
|
|
|
5957
5958
|
var SUGGESTION_DEBOUNCE = 200;
|
|
5958
5959
|
var DEFAULT_CHIP_CLASS = "outline-1 outline-muted bg-muted/40 text-foreground";
|
|
5959
5960
|
var TokenView = ({ node, editor, getPos }) => {
|
|
5960
|
-
const [isFocused, setIsFocused] =
|
|
5961
|
-
|
|
5961
|
+
const [isFocused, setIsFocused] = React26__default.useState(false);
|
|
5962
|
+
React26__default.useEffect(() => {
|
|
5962
5963
|
const handler = () => {
|
|
5963
5964
|
const { from, to } = editor.state.selection;
|
|
5964
5965
|
const position = getPos();
|
|
@@ -7078,7 +7079,7 @@ function ToolbarPlugin({
|
|
|
7078
7079
|
isLink: hasLink
|
|
7079
7080
|
}));
|
|
7080
7081
|
}, []);
|
|
7081
|
-
|
|
7082
|
+
React26.useEffect(() => {
|
|
7082
7083
|
return mergeRegister(
|
|
7083
7084
|
editor.registerCommand(
|
|
7084
7085
|
CAN_UNDO_COMMAND,
|
|
@@ -7664,7 +7665,7 @@ function ControlledValuePlugin({
|
|
|
7664
7665
|
trackAppliedValue
|
|
7665
7666
|
}) {
|
|
7666
7667
|
const [editor] = useLexicalComposerContext();
|
|
7667
|
-
|
|
7668
|
+
React26.useEffect(() => {
|
|
7668
7669
|
if (value == null || trackAppliedValue.current === value) {
|
|
7669
7670
|
return;
|
|
7670
7671
|
}
|
|
@@ -7688,14 +7689,14 @@ function ControlledValuePlugin({
|
|
|
7688
7689
|
}
|
|
7689
7690
|
function EditableStatePlugin({ editable }) {
|
|
7690
7691
|
const [editor] = useLexicalComposerContext();
|
|
7691
|
-
|
|
7692
|
+
React26.useEffect(() => {
|
|
7692
7693
|
editor.setEditable(editable);
|
|
7693
7694
|
}, [editor, editable]);
|
|
7694
7695
|
return null;
|
|
7695
7696
|
}
|
|
7696
7697
|
function ImagesPlugin() {
|
|
7697
7698
|
const [editor] = useLexicalComposerContext();
|
|
7698
|
-
|
|
7699
|
+
React26.useEffect(() => {
|
|
7699
7700
|
return editor.registerCommand(
|
|
7700
7701
|
INSERT_IMAGE_COMMAND,
|
|
7701
7702
|
(payload) => {
|
|
@@ -7976,9 +7977,9 @@ var SIDEBAR_WIDTH = "16rem";
|
|
|
7976
7977
|
var SIDEBAR_WIDTH_MOBILE = "18rem";
|
|
7977
7978
|
var SIDEBAR_WIDTH_ICON = "3rem";
|
|
7978
7979
|
var SIDEBAR_KEYBOARD_SHORTCUT = "b";
|
|
7979
|
-
var SidebarContext =
|
|
7980
|
+
var SidebarContext = React26.createContext(null);
|
|
7980
7981
|
function useSidebar() {
|
|
7981
|
-
const context =
|
|
7982
|
+
const context = React26.useContext(SidebarContext);
|
|
7982
7983
|
if (!context) {
|
|
7983
7984
|
throw new Error("useSidebar must be used within a SidebarProvider.");
|
|
7984
7985
|
}
|
|
@@ -7994,10 +7995,10 @@ function SidebarProvider({
|
|
|
7994
7995
|
...props
|
|
7995
7996
|
}) {
|
|
7996
7997
|
const isMobile = useIsMobile();
|
|
7997
|
-
const [openMobile, setOpenMobile] =
|
|
7998
|
-
const [_open, _setOpen] =
|
|
7998
|
+
const [openMobile, setOpenMobile] = React26.useState(false);
|
|
7999
|
+
const [_open, _setOpen] = React26.useState(defaultOpen);
|
|
7999
8000
|
const open = openProp ?? _open;
|
|
8000
|
-
const setOpen =
|
|
8001
|
+
const setOpen = React26.useCallback(
|
|
8001
8002
|
(value) => {
|
|
8002
8003
|
const openState = typeof value === "function" ? value(open) : value;
|
|
8003
8004
|
if (setOpenProp) {
|
|
@@ -8009,10 +8010,10 @@ function SidebarProvider({
|
|
|
8009
8010
|
},
|
|
8010
8011
|
[setOpenProp, open]
|
|
8011
8012
|
);
|
|
8012
|
-
const toggleSidebar =
|
|
8013
|
+
const toggleSidebar = React26.useCallback(() => {
|
|
8013
8014
|
return isMobile ? setOpenMobile((open2) => !open2) : setOpen((open2) => !open2);
|
|
8014
8015
|
}, [isMobile, setOpen, setOpenMobile]);
|
|
8015
|
-
|
|
8016
|
+
React26.useEffect(() => {
|
|
8016
8017
|
const handleKeyDown = (event) => {
|
|
8017
8018
|
if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
|
|
8018
8019
|
event.preventDefault();
|
|
@@ -8023,7 +8024,7 @@ function SidebarProvider({
|
|
|
8023
8024
|
return () => window.removeEventListener("keydown", handleKeyDown);
|
|
8024
8025
|
}, [toggleSidebar]);
|
|
8025
8026
|
const state = open ? "expanded" : "collapsed";
|
|
8026
|
-
const contextValue =
|
|
8027
|
+
const contextValue = React26.useMemo(
|
|
8027
8028
|
() => ({
|
|
8028
8029
|
state,
|
|
8029
8030
|
open,
|
|
@@ -8465,7 +8466,7 @@ function SidebarMenuSkeleton({
|
|
|
8465
8466
|
showIcon = false,
|
|
8466
8467
|
...props
|
|
8467
8468
|
}) {
|
|
8468
|
-
const width =
|
|
8469
|
+
const width = React26.useMemo(() => {
|
|
8469
8470
|
return `${Math.floor(Math.random() * 40) + 50}%`;
|
|
8470
8471
|
}, []);
|
|
8471
8472
|
return /* @__PURE__ */ jsxs(
|
|
@@ -8934,7 +8935,7 @@ function SortableRow({
|
|
|
8934
8935
|
id: value,
|
|
8935
8936
|
disabled: name === "columns.0.id"
|
|
8936
8937
|
});
|
|
8937
|
-
const style =
|
|
8938
|
+
const style = React26.useMemo(
|
|
8938
8939
|
() => ({
|
|
8939
8940
|
transform: CSS.Transform.toString(transform),
|
|
8940
8941
|
transition
|
|
@@ -9336,7 +9337,7 @@ function getCandidateWidths({
|
|
|
9336
9337
|
}
|
|
9337
9338
|
return DEVICE_SIZES;
|
|
9338
9339
|
}
|
|
9339
|
-
var Image2 =
|
|
9340
|
+
var Image2 = React26.forwardRef(function Image3({
|
|
9340
9341
|
src,
|
|
9341
9342
|
alt,
|
|
9342
9343
|
width,
|
|
@@ -9366,34 +9367,34 @@ var Image2 = React4.forwardRef(function Image3({
|
|
|
9366
9367
|
} = imgProps;
|
|
9367
9368
|
const widthNumber = toNumber(width);
|
|
9368
9369
|
const heightNumber = toNumber(height);
|
|
9369
|
-
|
|
9370
|
+
React26.useEffect(() => {
|
|
9370
9371
|
if (!fill && (!widthNumber || !heightNumber)) {
|
|
9371
9372
|
console.warn(
|
|
9372
9373
|
"[Image] When `fill` is false you should provide both `width` and `height` to prevent layout shifts."
|
|
9373
9374
|
);
|
|
9374
9375
|
}
|
|
9375
9376
|
}, [fill, heightNumber, widthNumber]);
|
|
9376
|
-
const candidateWidths =
|
|
9377
|
+
const candidateWidths = React26.useMemo(
|
|
9377
9378
|
() => getCandidateWidths({ width: widthNumber, sizes, fill }),
|
|
9378
9379
|
[fill, sizes, widthNumber]
|
|
9379
9380
|
);
|
|
9380
9381
|
const largestWidth = candidateWidths[candidateWidths.length - 1] ?? widthNumber ?? DEVICE_SIZES[DEVICE_SIZES.length - 1];
|
|
9381
|
-
const computedSrc =
|
|
9382
|
+
const computedSrc = React26.useMemo(() => {
|
|
9382
9383
|
if (unoptimized) {
|
|
9383
9384
|
return src;
|
|
9384
9385
|
}
|
|
9385
9386
|
return loader({ src, width: largestWidth, quality });
|
|
9386
9387
|
}, [largestWidth, loader, quality, src, unoptimized]);
|
|
9387
|
-
const computedSrcSet =
|
|
9388
|
+
const computedSrcSet = React26.useMemo(() => {
|
|
9388
9389
|
if (unoptimized) {
|
|
9389
9390
|
return void 0;
|
|
9390
9391
|
}
|
|
9391
9392
|
return candidateWidths.map((currentWidth) => `${loader({ src, width: currentWidth, quality })} ${currentWidth}w`).join(", ");
|
|
9392
9393
|
}, [candidateWidths, loader, quality, src, unoptimized]);
|
|
9393
9394
|
const sizesValue = sizes ?? (fill ? "100vw" : widthNumber ? `${widthNumber}px` : void 0);
|
|
9394
|
-
const [isLoaded, setIsLoaded] =
|
|
9395
|
-
const internalRef =
|
|
9396
|
-
const setRefs =
|
|
9395
|
+
const [isLoaded, setIsLoaded] = React26.useState(false);
|
|
9396
|
+
const internalRef = React26.useRef(null);
|
|
9397
|
+
const setRefs = React26.useCallback(
|
|
9397
9398
|
(node) => {
|
|
9398
9399
|
internalRef.current = node;
|
|
9399
9400
|
if (!ref) {
|
|
@@ -9407,7 +9408,7 @@ var Image2 = React4.forwardRef(function Image3({
|
|
|
9407
9408
|
},
|
|
9408
9409
|
[ref]
|
|
9409
9410
|
);
|
|
9410
|
-
|
|
9411
|
+
React26.useEffect(() => {
|
|
9411
9412
|
const image = internalRef.current;
|
|
9412
9413
|
if (!image) {
|
|
9413
9414
|
return;
|
|
@@ -9419,7 +9420,7 @@ var Image2 = React4.forwardRef(function Image3({
|
|
|
9419
9420
|
setIsLoaded(false);
|
|
9420
9421
|
}
|
|
9421
9422
|
}, [onLoadingComplete, src]);
|
|
9422
|
-
const handleLoad =
|
|
9423
|
+
const handleLoad = React26.useCallback(
|
|
9423
9424
|
(event) => {
|
|
9424
9425
|
setIsLoaded(true);
|
|
9425
9426
|
onLoadProp?.(event);
|
|
@@ -9431,7 +9432,7 @@ var Image2 = React4.forwardRef(function Image3({
|
|
|
9431
9432
|
const fetchPriority = priority ? "high" : fetchPriorityProp;
|
|
9432
9433
|
const decoding = decodingProp ?? "async";
|
|
9433
9434
|
const resolvedObjectFit = objectFit ?? (fill ? "cover" : void 0);
|
|
9434
|
-
const wrapperStyle =
|
|
9435
|
+
const wrapperStyle = React26.useMemo(
|
|
9435
9436
|
() => ({
|
|
9436
9437
|
position: "relative",
|
|
9437
9438
|
display: fill ? "block" : "inline-block",
|
|
@@ -9441,7 +9442,7 @@ var Image2 = React4.forwardRef(function Image3({
|
|
|
9441
9442
|
}),
|
|
9442
9443
|
[fill, height, width]
|
|
9443
9444
|
);
|
|
9444
|
-
const imageStyle =
|
|
9445
|
+
const imageStyle = React26.useMemo(
|
|
9445
9446
|
() => ({
|
|
9446
9447
|
width: fill ? "100%" : formatDimension(width) ?? void 0,
|
|
9447
9448
|
height: fill ? "100%" : formatDimension(height) ?? void 0,
|
|
@@ -9503,7 +9504,7 @@ var Image2 = React4.forwardRef(function Image3({
|
|
|
9503
9504
|
});
|
|
9504
9505
|
Image2.displayName = "Image";
|
|
9505
9506
|
var ListTable = ({ onTableReady, children }) => {
|
|
9506
|
-
|
|
9507
|
+
React26.useEffect(() => {
|
|
9507
9508
|
if (onTableReady) {
|
|
9508
9509
|
onTableReady({ ready: true });
|
|
9509
9510
|
}
|
|
@@ -9548,7 +9549,7 @@ var ListHeader = ({
|
|
|
9548
9549
|
return /* @__PURE__ */ jsx("div", { "data-testid": "list-header", className: cn("rounded-t-lg px-4 py-2", bgColor, className), children: /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
|
|
9549
9550
|
/* @__PURE__ */ jsxs("div", { className: cn("flex items-center gap-2 text-lg", textClassName), children: [
|
|
9550
9551
|
titleIcon,
|
|
9551
|
-
|
|
9552
|
+
title
|
|
9552
9553
|
] }),
|
|
9553
9554
|
/* @__PURE__ */ jsx("div", { className: "flex items-center gap-2", children: rightActions ?? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
9554
9555
|
onSettingClick && /* @__PURE__ */ jsx(
|
|
@@ -9648,7 +9649,7 @@ var InfoIcon = (props) => {
|
|
|
9648
9649
|
}
|
|
9649
9650
|
);
|
|
9650
9651
|
};
|
|
9651
|
-
var InfoIcon_default =
|
|
9652
|
+
var InfoIcon_default = React26__default.memo(InfoIcon);
|
|
9652
9653
|
var Navbar = ({
|
|
9653
9654
|
className,
|
|
9654
9655
|
title,
|
|
@@ -9780,7 +9781,7 @@ var Navbar = ({
|
|
|
9780
9781
|
}
|
|
9781
9782
|
);
|
|
9782
9783
|
};
|
|
9783
|
-
var navbar_default =
|
|
9784
|
+
var navbar_default = React26__default.memo(Navbar);
|
|
9784
9785
|
var usePreventPageLeaveStore = create((set) => ({
|
|
9785
9786
|
isPreventing: false,
|
|
9786
9787
|
setPreventing: (value) => set({ isPreventing: value })
|
|
@@ -10056,6 +10057,231 @@ var CropperModal = ({
|
|
|
10056
10057
|
}
|
|
10057
10058
|
);
|
|
10058
10059
|
};
|
|
10060
|
+
var REACT_ELEMENT_TYPE_18 = /* @__PURE__ */ Symbol.for("react.element");
|
|
10061
|
+
var REACT_ELEMENT_TYPE_19 = /* @__PURE__ */ Symbol.for("react.transitional.element");
|
|
10062
|
+
var REACT_FRAGMENT_TYPE = /* @__PURE__ */ Symbol.for("react.fragment");
|
|
10063
|
+
function isFragment(object) {
|
|
10064
|
+
return (
|
|
10065
|
+
// Base object type
|
|
10066
|
+
object && typeof object === "object" && // React Element type
|
|
10067
|
+
(object.$$typeof === REACT_ELEMENT_TYPE_18 || object.$$typeof === REACT_ELEMENT_TYPE_19) && // React Fragment type
|
|
10068
|
+
object.type === REACT_FRAGMENT_TYPE
|
|
10069
|
+
);
|
|
10070
|
+
}
|
|
10071
|
+
var isValidText = (val) => ["string", "number"].includes(typeof val);
|
|
10072
|
+
function toArray(children, option = {}) {
|
|
10073
|
+
let ret = [];
|
|
10074
|
+
React26.Children.forEach(children, (child) => {
|
|
10075
|
+
if ((child === void 0 || child === null) && !option.keepEmpty) {
|
|
10076
|
+
return;
|
|
10077
|
+
}
|
|
10078
|
+
if (Array.isArray(child)) {
|
|
10079
|
+
ret = ret.concat(toArray(child));
|
|
10080
|
+
} else if (isFragment(child) && child.props) {
|
|
10081
|
+
ret = ret.concat(toArray(child.props.children, option));
|
|
10082
|
+
} else {
|
|
10083
|
+
ret.push(child);
|
|
10084
|
+
}
|
|
10085
|
+
});
|
|
10086
|
+
return ret;
|
|
10087
|
+
}
|
|
10088
|
+
var MeasureText = React26.forwardRef(({ style, children }, ref) => {
|
|
10089
|
+
const spanRef = React26.useRef(null);
|
|
10090
|
+
React26.useImperativeHandle(ref, () => ({
|
|
10091
|
+
isExceed: () => {
|
|
10092
|
+
const span = spanRef.current;
|
|
10093
|
+
return span.scrollHeight > span.clientHeight;
|
|
10094
|
+
},
|
|
10095
|
+
getHeight: () => spanRef.current.clientHeight
|
|
10096
|
+
}));
|
|
10097
|
+
return /* @__PURE__ */ jsx(
|
|
10098
|
+
"span",
|
|
10099
|
+
{
|
|
10100
|
+
"aria-hidden": true,
|
|
10101
|
+
ref: spanRef,
|
|
10102
|
+
style: {
|
|
10103
|
+
position: "fixed",
|
|
10104
|
+
display: "block",
|
|
10105
|
+
left: 0,
|
|
10106
|
+
top: 0,
|
|
10107
|
+
pointerEvents: "none",
|
|
10108
|
+
...style
|
|
10109
|
+
},
|
|
10110
|
+
children
|
|
10111
|
+
}
|
|
10112
|
+
);
|
|
10113
|
+
});
|
|
10114
|
+
var getNodesLen = (nodeList) => nodeList.reduce((totalLen, node) => totalLen + (isValidText(node) ? String(node).length : 1), 0);
|
|
10115
|
+
function sliceNodes(nodeList, len) {
|
|
10116
|
+
let currLen = 0;
|
|
10117
|
+
const currentNodeList = [];
|
|
10118
|
+
for (let i = 0; i < nodeList.length; i += 1) {
|
|
10119
|
+
if (currLen === len) {
|
|
10120
|
+
return currentNodeList;
|
|
10121
|
+
}
|
|
10122
|
+
const node = nodeList[i];
|
|
10123
|
+
const canCut = isValidText(node);
|
|
10124
|
+
const nodeLen = canCut ? String(node).length : 1;
|
|
10125
|
+
const nextLen = currLen + nodeLen;
|
|
10126
|
+
if (nextLen > len) {
|
|
10127
|
+
const restLen = len - currLen;
|
|
10128
|
+
currentNodeList.push(String(node).slice(0, restLen));
|
|
10129
|
+
return currentNodeList;
|
|
10130
|
+
}
|
|
10131
|
+
currentNodeList.push(node);
|
|
10132
|
+
currLen = nextLen;
|
|
10133
|
+
}
|
|
10134
|
+
return nodeList;
|
|
10135
|
+
}
|
|
10136
|
+
var STATUS_MEASURE_NONE = 0;
|
|
10137
|
+
var STATUS_MEASURE_PREPARE = 1;
|
|
10138
|
+
var STATUS_MEASURE_START = 2;
|
|
10139
|
+
var STATUS_MEASURE_NEED_ELLIPSIS = 3;
|
|
10140
|
+
var STATUS_MEASURE_NO_NEED_ELLIPSIS = 4;
|
|
10141
|
+
var lineClipStyle = {
|
|
10142
|
+
display: "-webkit-box",
|
|
10143
|
+
overflow: "hidden",
|
|
10144
|
+
WebkitBoxOrient: "vertical"
|
|
10145
|
+
};
|
|
10146
|
+
function EllipsisMeasure(props) {
|
|
10147
|
+
const { enableMeasure, width, text, children, rows, expanded, miscDeps, onEllipsis } = props;
|
|
10148
|
+
const nodeList = React26.useMemo(() => toArray(text), [text]);
|
|
10149
|
+
const nodeLen = React26.useMemo(() => getNodesLen(nodeList), [text]);
|
|
10150
|
+
const fullContent = React26.useMemo(() => children(nodeList, false), [text]);
|
|
10151
|
+
const [ellipsisCutIndex, setEllipsisCutIndex] = React26.useState(null);
|
|
10152
|
+
const cutMidRef = React26.useRef(null);
|
|
10153
|
+
const measureWhiteSpaceRef = React26.useRef(null);
|
|
10154
|
+
const needEllipsisRef = React26.useRef(null);
|
|
10155
|
+
const descRowsEllipsisRef = React26.useRef(null);
|
|
10156
|
+
const symbolRowEllipsisRef = React26.useRef(null);
|
|
10157
|
+
const [canEllipsis, setCanEllipsis] = React26.useState(false);
|
|
10158
|
+
const [needEllipsis, setNeedEllipsis] = React26.useState(STATUS_MEASURE_NONE);
|
|
10159
|
+
const [ellipsisHeight, setEllipsisHeight] = React26.useState(0);
|
|
10160
|
+
const [parentWhiteSpace, setParentWhiteSpace] = React26.useState(null);
|
|
10161
|
+
useIsomorphicLayoutEffect(() => {
|
|
10162
|
+
if (enableMeasure && width && nodeLen) {
|
|
10163
|
+
setNeedEllipsis(STATUS_MEASURE_PREPARE);
|
|
10164
|
+
} else {
|
|
10165
|
+
setNeedEllipsis(STATUS_MEASURE_NONE);
|
|
10166
|
+
}
|
|
10167
|
+
}, [width, text, rows, enableMeasure, nodeList]);
|
|
10168
|
+
useIsomorphicLayoutEffect(() => {
|
|
10169
|
+
if (needEllipsis === STATUS_MEASURE_PREPARE) {
|
|
10170
|
+
setNeedEllipsis(STATUS_MEASURE_START);
|
|
10171
|
+
const nextWhiteSpace = measureWhiteSpaceRef.current && getComputedStyle(measureWhiteSpaceRef.current).whiteSpace;
|
|
10172
|
+
setParentWhiteSpace(nextWhiteSpace);
|
|
10173
|
+
} else if (needEllipsis === STATUS_MEASURE_START) {
|
|
10174
|
+
const isOverflow = !!needEllipsisRef.current?.isExceed();
|
|
10175
|
+
setNeedEllipsis(isOverflow ? STATUS_MEASURE_NEED_ELLIPSIS : STATUS_MEASURE_NO_NEED_ELLIPSIS);
|
|
10176
|
+
setEllipsisCutIndex(isOverflow ? [0, nodeLen] : null);
|
|
10177
|
+
setCanEllipsis(isOverflow);
|
|
10178
|
+
const baseRowsEllipsisHeight = needEllipsisRef.current?.getHeight() || 0;
|
|
10179
|
+
const descRowsEllipsisHeight = rows === 1 ? 0 : descRowsEllipsisRef.current?.getHeight() || 0;
|
|
10180
|
+
const symbolRowEllipsisHeight = symbolRowEllipsisRef.current?.getHeight() || 0;
|
|
10181
|
+
const maxRowsHeight = Math.max(
|
|
10182
|
+
baseRowsEllipsisHeight,
|
|
10183
|
+
// height of rows with ellipsis
|
|
10184
|
+
descRowsEllipsisHeight + symbolRowEllipsisHeight
|
|
10185
|
+
);
|
|
10186
|
+
setEllipsisHeight(maxRowsHeight + 1);
|
|
10187
|
+
onEllipsis(isOverflow);
|
|
10188
|
+
}
|
|
10189
|
+
}, [needEllipsis]);
|
|
10190
|
+
const cutMidIndex = ellipsisCutIndex ? Math.ceil((ellipsisCutIndex[0] + ellipsisCutIndex[1]) / 2) : 0;
|
|
10191
|
+
useIsomorphicLayoutEffect(() => {
|
|
10192
|
+
const [minIndex, maxIndex] = ellipsisCutIndex || [0, 0];
|
|
10193
|
+
if (minIndex !== maxIndex) {
|
|
10194
|
+
const midHeight = cutMidRef.current?.getHeight() || 0;
|
|
10195
|
+
const isOverflow = midHeight > ellipsisHeight;
|
|
10196
|
+
let targetMidIndex = cutMidIndex;
|
|
10197
|
+
if (maxIndex - minIndex === 1) {
|
|
10198
|
+
targetMidIndex = isOverflow ? minIndex : maxIndex;
|
|
10199
|
+
}
|
|
10200
|
+
setEllipsisCutIndex(isOverflow ? [minIndex, targetMidIndex] : [targetMidIndex, maxIndex]);
|
|
10201
|
+
}
|
|
10202
|
+
}, [ellipsisCutIndex, cutMidIndex]);
|
|
10203
|
+
const finalContent = React26.useMemo(() => {
|
|
10204
|
+
if (!enableMeasure) {
|
|
10205
|
+
return children(nodeList, false);
|
|
10206
|
+
}
|
|
10207
|
+
if (needEllipsis !== STATUS_MEASURE_NEED_ELLIPSIS || !ellipsisCutIndex || ellipsisCutIndex[0] !== ellipsisCutIndex[1]) {
|
|
10208
|
+
const content = children(nodeList, false);
|
|
10209
|
+
if ([STATUS_MEASURE_NO_NEED_ELLIPSIS, STATUS_MEASURE_NONE].includes(needEllipsis)) {
|
|
10210
|
+
return content;
|
|
10211
|
+
}
|
|
10212
|
+
return /* @__PURE__ */ jsx(
|
|
10213
|
+
"span",
|
|
10214
|
+
{
|
|
10215
|
+
style: {
|
|
10216
|
+
...lineClipStyle,
|
|
10217
|
+
WebkitLineClamp: rows
|
|
10218
|
+
},
|
|
10219
|
+
children: content
|
|
10220
|
+
}
|
|
10221
|
+
);
|
|
10222
|
+
}
|
|
10223
|
+
return children(expanded ? nodeList : sliceNodes(nodeList, ellipsisCutIndex[0]), canEllipsis);
|
|
10224
|
+
}, [expanded, needEllipsis, ellipsisCutIndex, nodeList, ...miscDeps]);
|
|
10225
|
+
const measureStyle = {
|
|
10226
|
+
width,
|
|
10227
|
+
margin: 0,
|
|
10228
|
+
padding: 0,
|
|
10229
|
+
whiteSpace: parentWhiteSpace === "nowrap" ? "normal" : "inherit"
|
|
10230
|
+
};
|
|
10231
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
10232
|
+
finalContent,
|
|
10233
|
+
needEllipsis === STATUS_MEASURE_START && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
10234
|
+
/* @__PURE__ */ jsx(
|
|
10235
|
+
MeasureText,
|
|
10236
|
+
{
|
|
10237
|
+
style: {
|
|
10238
|
+
...measureStyle,
|
|
10239
|
+
...lineClipStyle,
|
|
10240
|
+
WebkitLineClamp: rows
|
|
10241
|
+
},
|
|
10242
|
+
ref: needEllipsisRef,
|
|
10243
|
+
children: fullContent
|
|
10244
|
+
}
|
|
10245
|
+
),
|
|
10246
|
+
/* @__PURE__ */ jsx(
|
|
10247
|
+
MeasureText,
|
|
10248
|
+
{
|
|
10249
|
+
style: {
|
|
10250
|
+
...measureStyle,
|
|
10251
|
+
...lineClipStyle,
|
|
10252
|
+
WebkitLineClamp: rows - 1
|
|
10253
|
+
},
|
|
10254
|
+
ref: descRowsEllipsisRef,
|
|
10255
|
+
children: fullContent
|
|
10256
|
+
}
|
|
10257
|
+
),
|
|
10258
|
+
/* @__PURE__ */ jsx(
|
|
10259
|
+
MeasureText,
|
|
10260
|
+
{
|
|
10261
|
+
style: {
|
|
10262
|
+
...measureStyle,
|
|
10263
|
+
...lineClipStyle,
|
|
10264
|
+
WebkitLineClamp: 1
|
|
10265
|
+
},
|
|
10266
|
+
ref: symbolRowEllipsisRef,
|
|
10267
|
+
children: children([], true)
|
|
10268
|
+
}
|
|
10269
|
+
)
|
|
10270
|
+
] }),
|
|
10271
|
+
needEllipsis === STATUS_MEASURE_NEED_ELLIPSIS && ellipsisCutIndex && ellipsisCutIndex[0] !== ellipsisCutIndex[1] && /* @__PURE__ */ jsx(
|
|
10272
|
+
MeasureText,
|
|
10273
|
+
{
|
|
10274
|
+
style: {
|
|
10275
|
+
...measureStyle,
|
|
10276
|
+
top: 400
|
|
10277
|
+
},
|
|
10278
|
+
ref: cutMidRef,
|
|
10279
|
+
children: children(sliceNodes(nodeList, cutMidIndex), true)
|
|
10280
|
+
}
|
|
10281
|
+
),
|
|
10282
|
+
needEllipsis === STATUS_MEASURE_PREPARE && /* @__PURE__ */ jsx("span", { style: { whiteSpace: "inherit" }, ref: measureWhiteSpaceRef })
|
|
10283
|
+
] });
|
|
10284
|
+
}
|
|
10059
10285
|
var Truncated = ({
|
|
10060
10286
|
children,
|
|
10061
10287
|
className,
|
|
@@ -10065,49 +10291,41 @@ var Truncated = ({
|
|
|
10065
10291
|
tooltipProps,
|
|
10066
10292
|
tooltipContentProps
|
|
10067
10293
|
}) => {
|
|
10068
|
-
const elementRef = useRef(null);
|
|
10069
|
-
const [open, setOpen] = useState(false);
|
|
10070
|
-
const [isTruncated, setIsTruncated] = useState(false);
|
|
10294
|
+
const elementRef = React26.useRef(null);
|
|
10295
|
+
const [open, setOpen] = React26.useState(false);
|
|
10296
|
+
const [isTruncated, setIsTruncated] = React26.useState(false);
|
|
10297
|
+
const [measureWidth, setMeasureWidth] = React26.useState(0);
|
|
10071
10298
|
const Comp = as;
|
|
10072
10299
|
const normalizedChildren = typeof children === "string" ? children.replace(/>/g, ">\u200B") : children;
|
|
10073
10300
|
const lineClampLines = typeof ellipsis === "number" ? ellipsis : typeof ellipsis === "object" ? ellipsis?.lineClamp ?? 3 : null;
|
|
10074
|
-
|
|
10301
|
+
const enableMeasure = Boolean(ellipsis) && !tooltipProps?.disabled;
|
|
10302
|
+
useIsomorphicLayoutEffect(() => {
|
|
10075
10303
|
const el = elementRef.current;
|
|
10076
10304
|
if (!el) return;
|
|
10077
|
-
const
|
|
10078
|
-
if (!ellipsis) {
|
|
10079
|
-
setIsTruncated(false);
|
|
10080
|
-
return;
|
|
10081
|
-
}
|
|
10305
|
+
const updateWidth = () => {
|
|
10082
10306
|
const rect = el.getBoundingClientRect();
|
|
10083
|
-
const width = el.clientWidth || el.offsetWidth || rect.width;
|
|
10084
|
-
|
|
10085
|
-
if (!width || !height) {
|
|
10086
|
-
setIsTruncated(false);
|
|
10087
|
-
return;
|
|
10088
|
-
}
|
|
10089
|
-
const epsilon = 1;
|
|
10090
|
-
const overflowWidth = el.scrollWidth - width > epsilon;
|
|
10091
|
-
const overflowHeight = el.scrollHeight - height > epsilon;
|
|
10092
|
-
setIsTruncated(overflowWidth || overflowHeight);
|
|
10307
|
+
const width = el.clientWidth || el.offsetWidth || rect.width || 0;
|
|
10308
|
+
setMeasureWidth(width);
|
|
10093
10309
|
};
|
|
10094
|
-
|
|
10310
|
+
updateWidth();
|
|
10311
|
+
const resizeObserver = new ResizeObserver(() => requestAnimationFrame(updateWidth));
|
|
10095
10312
|
resizeObserver.observe(el);
|
|
10096
|
-
const mutationObserver = new MutationObserver(() => measure());
|
|
10097
|
-
mutationObserver.observe(el, { childList: true, subtree: true, characterData: true });
|
|
10098
|
-
requestAnimationFrame(measure);
|
|
10099
10313
|
return () => {
|
|
10100
10314
|
resizeObserver.disconnect();
|
|
10101
|
-
mutationObserver.disconnect();
|
|
10102
10315
|
};
|
|
10103
|
-
}, [
|
|
10104
|
-
|
|
10316
|
+
}, []);
|
|
10317
|
+
useIsomorphicLayoutEffect(() => {
|
|
10318
|
+
if (!enableMeasure) {
|
|
10319
|
+
setIsTruncated(false);
|
|
10320
|
+
}
|
|
10321
|
+
}, [enableMeasure]);
|
|
10322
|
+
const truncationClass = React26.useMemo(() => {
|
|
10105
10323
|
if (!ellipsis) return "";
|
|
10106
10324
|
if (typeof ellipsis === "number") return `line-clamp-${ellipsis}`;
|
|
10107
10325
|
if (typeof ellipsis === "object") return `line-clamp-${lineClampLines ?? 3}`;
|
|
10108
10326
|
return "truncate";
|
|
10109
10327
|
}, [ellipsis, lineClampLines]);
|
|
10110
|
-
const clampedStyle = useMemo(() => {
|
|
10328
|
+
const clampedStyle = React26.useMemo(() => {
|
|
10111
10329
|
if (!lineClampLines) return style;
|
|
10112
10330
|
return {
|
|
10113
10331
|
...style,
|
|
@@ -10117,7 +10335,22 @@ var Truncated = ({
|
|
|
10117
10335
|
overflow: "hidden"
|
|
10118
10336
|
};
|
|
10119
10337
|
}, [lineClampLines, style]);
|
|
10120
|
-
const baseContent = /* @__PURE__ */ jsx(Comp, { ref: elementRef, className: cn(truncationClass, className), style: clampedStyle, children:
|
|
10338
|
+
const baseContent = /* @__PURE__ */ jsx(Comp, { ref: elementRef, className: cn(truncationClass, className), style: clampedStyle, children: /* @__PURE__ */ jsx(
|
|
10339
|
+
EllipsisMeasure,
|
|
10340
|
+
{
|
|
10341
|
+
enableMeasure,
|
|
10342
|
+
text: normalizedChildren,
|
|
10343
|
+
width: measureWidth,
|
|
10344
|
+
rows: lineClampLines ?? 1,
|
|
10345
|
+
expanded: false,
|
|
10346
|
+
miscDeps: [truncationClass],
|
|
10347
|
+
onEllipsis: (s) => {
|
|
10348
|
+
console.log("\u{1F680} ~ Truncated ~ s:", s);
|
|
10349
|
+
setIsTruncated(s);
|
|
10350
|
+
},
|
|
10351
|
+
children: () => normalizedChildren
|
|
10352
|
+
}
|
|
10353
|
+
) });
|
|
10121
10354
|
let tooltipContent = normalizedChildren;
|
|
10122
10355
|
if (typeof ellipsis === "object") {
|
|
10123
10356
|
tooltipContent = ellipsis?.content ?? normalizedChildren;
|
|
@@ -10157,7 +10390,7 @@ var Truncated = ({
|
|
|
10157
10390
|
);
|
|
10158
10391
|
};
|
|
10159
10392
|
var truncated_default = Truncated;
|
|
10160
|
-
var InputPrimitive2 =
|
|
10393
|
+
var InputPrimitive2 = React26.forwardRef(
|
|
10161
10394
|
({ className, type = "text", ...props }, ref) => {
|
|
10162
10395
|
return /* @__PURE__ */ jsx(
|
|
10163
10396
|
"input",
|
|
@@ -10196,7 +10429,7 @@ var inputVariants2 = cva("", {
|
|
|
10196
10429
|
appearance: "filled"
|
|
10197
10430
|
}
|
|
10198
10431
|
});
|
|
10199
|
-
var Input2 =
|
|
10432
|
+
var Input2 = React26.forwardRef(
|
|
10200
10433
|
({
|
|
10201
10434
|
className,
|
|
10202
10435
|
wrapperClassName,
|
|
@@ -10229,8 +10462,8 @@ var Input2 = React4.forwardRef(
|
|
|
10229
10462
|
onChange: onChangeProp
|
|
10230
10463
|
} = rest;
|
|
10231
10464
|
const ariaInvalid = invalid ?? ariaInvalidProp;
|
|
10232
|
-
const messageId =
|
|
10233
|
-
const handleChange =
|
|
10465
|
+
const messageId = React26.useId();
|
|
10466
|
+
const handleChange = React26.useCallback(
|
|
10234
10467
|
(event) => {
|
|
10235
10468
|
onChangeProp?.(event);
|
|
10236
10469
|
onValueChange?.(event.target.value);
|
|
@@ -10623,13 +10856,13 @@ var useFieldNames = ({
|
|
|
10623
10856
|
fieldNames
|
|
10624
10857
|
}) => {
|
|
10625
10858
|
const { label: labelFieldKey = "label", value: valueFieldKey = "value" } = fieldNames || {};
|
|
10626
|
-
const getLabelField =
|
|
10859
|
+
const getLabelField = React26__default.useCallback(
|
|
10627
10860
|
(option) => {
|
|
10628
10861
|
return option?.[labelFieldKey];
|
|
10629
10862
|
},
|
|
10630
10863
|
[labelFieldKey]
|
|
10631
10864
|
);
|
|
10632
|
-
const getValueField =
|
|
10865
|
+
const getValueField = React26__default.useCallback(
|
|
10633
10866
|
(option) => {
|
|
10634
10867
|
return option?.[valueFieldKey];
|
|
10635
10868
|
},
|
|
@@ -10650,7 +10883,7 @@ var VirtualizedCommand = ({
|
|
|
10650
10883
|
emptyContent = "No data.",
|
|
10651
10884
|
searchPlaceholder,
|
|
10652
10885
|
value,
|
|
10653
|
-
notFoundContent = "
|
|
10886
|
+
notFoundContent = "No item found.",
|
|
10654
10887
|
showSearch = true,
|
|
10655
10888
|
fieldNames,
|
|
10656
10889
|
disabledOption,
|
|
@@ -10661,11 +10894,11 @@ var VirtualizedCommand = ({
|
|
|
10661
10894
|
onFocus
|
|
10662
10895
|
}) => {
|
|
10663
10896
|
const { getLabelField, getValueField } = useFieldNames_default({ fieldNames });
|
|
10664
|
-
const internalOptions =
|
|
10665
|
-
const [filteredOptions, setFilteredOptions] =
|
|
10666
|
-
const [focusedIndex, setFocusedIndex] =
|
|
10667
|
-
const [isKeyboardNavActive, setIsKeyboardNavActive] =
|
|
10668
|
-
const parentRef =
|
|
10897
|
+
const internalOptions = React26.useMemo(() => options ?? [], [options]);
|
|
10898
|
+
const [filteredOptions, setFilteredOptions] = React26.useState(internalOptions);
|
|
10899
|
+
const [focusedIndex, setFocusedIndex] = React26.useState(0);
|
|
10900
|
+
const [isKeyboardNavActive, setIsKeyboardNavActive] = React26.useState(false);
|
|
10901
|
+
const parentRef = React26.useRef(null);
|
|
10669
10902
|
const virtualizer = useVirtualizer({
|
|
10670
10903
|
count: filteredOptions.length,
|
|
10671
10904
|
getScrollElement: () => parentRef.current,
|
|
@@ -10673,14 +10906,14 @@ var VirtualizedCommand = ({
|
|
|
10673
10906
|
overscan: 2
|
|
10674
10907
|
});
|
|
10675
10908
|
const virtualOptions = virtualizer.getVirtualItems();
|
|
10676
|
-
const dynamicHeight =
|
|
10909
|
+
const dynamicHeight = React26.useMemo(() => {
|
|
10677
10910
|
const contentHeight = filteredOptions.length * ROW_HEIGHT;
|
|
10678
10911
|
if (contentHeight <= 0) {
|
|
10679
10912
|
return MIN_HEIGHT_EMPTY;
|
|
10680
10913
|
}
|
|
10681
10914
|
return Math.max(ROW_HEIGHT, Math.min(height, contentHeight));
|
|
10682
10915
|
}, [filteredOptions.length, height]);
|
|
10683
|
-
const scrollToIndex =
|
|
10916
|
+
const scrollToIndex = React26.useCallback(
|
|
10684
10917
|
(index) => {
|
|
10685
10918
|
virtualizer.scrollToIndex(index, {
|
|
10686
10919
|
align: "center"
|
|
@@ -10688,7 +10921,7 @@ var VirtualizedCommand = ({
|
|
|
10688
10921
|
},
|
|
10689
10922
|
[virtualizer]
|
|
10690
10923
|
);
|
|
10691
|
-
const handleSearch =
|
|
10924
|
+
const handleSearch = React26.useCallback(
|
|
10692
10925
|
(search) => {
|
|
10693
10926
|
setIsKeyboardNavActive(false);
|
|
10694
10927
|
setFilteredOptions(
|
|
@@ -10703,7 +10936,7 @@ var VirtualizedCommand = ({
|
|
|
10703
10936
|
},
|
|
10704
10937
|
[filterOption, getLabelField, internalOptions]
|
|
10705
10938
|
);
|
|
10706
|
-
const handleKeyDown =
|
|
10939
|
+
const handleKeyDown = React26.useCallback(
|
|
10707
10940
|
(event) => {
|
|
10708
10941
|
switch (event.key) {
|
|
10709
10942
|
case "ArrowDown": {
|
|
@@ -10738,7 +10971,7 @@ var VirtualizedCommand = ({
|
|
|
10738
10971
|
},
|
|
10739
10972
|
[filteredOptions, focusedIndex, getValueField, onSelect, scrollToIndex]
|
|
10740
10973
|
);
|
|
10741
|
-
|
|
10974
|
+
React26.useEffect(() => {
|
|
10742
10975
|
if (value) {
|
|
10743
10976
|
const option = filteredOptions.find((option2) => {
|
|
10744
10977
|
const optionValue = getValueField(option2);
|
|
@@ -10852,21 +11085,21 @@ var ComboboxInner = ({
|
|
|
10852
11085
|
showSearch,
|
|
10853
11086
|
...props
|
|
10854
11087
|
}, ref) => {
|
|
10855
|
-
const { getValueField } = useFieldNames_default({ fieldNames });
|
|
10856
|
-
const [open, setOpen] =
|
|
11088
|
+
const { getLabelField, getValueField } = useFieldNames_default({ fieldNames });
|
|
11089
|
+
const [open, setOpen] = React26.useState(false);
|
|
10857
11090
|
const { value: selectedValue, updateState: setSelectedValue } = useControllableState_default({
|
|
10858
11091
|
defaultValue,
|
|
10859
11092
|
value
|
|
10860
11093
|
});
|
|
10861
|
-
const renderValue =
|
|
11094
|
+
const renderValue = React26.useMemo(() => {
|
|
10862
11095
|
if (!selectedValue) return placeholder2;
|
|
10863
11096
|
const selectedOptionFound = options?.find((option) => {
|
|
10864
11097
|
const optionValue = getValueField(option);
|
|
10865
11098
|
return optionValue === selectedValue;
|
|
10866
11099
|
});
|
|
10867
|
-
return selectedOptionFound ?
|
|
10868
|
-
}, [getValueField, options, placeholder2, selectedValue]);
|
|
10869
|
-
const handleSelect =
|
|
11100
|
+
return selectedOptionFound ? getLabelField(selectedOptionFound) : null;
|
|
11101
|
+
}, [getLabelField, getValueField, options, placeholder2, selectedValue]);
|
|
11102
|
+
const handleSelect = React26.useCallback(
|
|
10870
11103
|
(selected, option) => {
|
|
10871
11104
|
setSelectedValue(selected);
|
|
10872
11105
|
setOpen(false);
|
|
@@ -10876,7 +11109,7 @@ var ComboboxInner = ({
|
|
|
10876
11109
|
},
|
|
10877
11110
|
[onSelect, setSelectedValue]
|
|
10878
11111
|
);
|
|
10879
|
-
const handleClear =
|
|
11112
|
+
const handleClear = React26.useCallback(
|
|
10880
11113
|
(event) => {
|
|
10881
11114
|
event.stopPropagation();
|
|
10882
11115
|
setSelectedValue(void 0);
|
|
@@ -10893,9 +11126,11 @@ var ComboboxInner = ({
|
|
|
10893
11126
|
role: "combobox",
|
|
10894
11127
|
"aria-expanded": open,
|
|
10895
11128
|
className: cn(
|
|
10896
|
-
"flex
|
|
10897
|
-
"
|
|
10898
|
-
"
|
|
11129
|
+
"flex items-center justify-between gap-2 rounded-md border bg-white px-3 h-9 text-sm whitespace-nowrap shadow-xs outline-none border-input",
|
|
11130
|
+
"disabled:cursor-not-allowed disabled:opacity-50",
|
|
11131
|
+
"focus-visible:border-ring focus-visible:ring-ring/50",
|
|
11132
|
+
"aria-invalid:ring-destructive/20 aria-invalid:border-destructive",
|
|
11133
|
+
"data-[state=open]:border-ring",
|
|
10899
11134
|
"transition-all",
|
|
10900
11135
|
className
|
|
10901
11136
|
),
|
|
@@ -10960,9 +11195,9 @@ var ComboboxInner = ({
|
|
|
10960
11195
|
)
|
|
10961
11196
|
] });
|
|
10962
11197
|
};
|
|
10963
|
-
var Combobox =
|
|
11198
|
+
var Combobox = React26.forwardRef(ComboboxInner);
|
|
10964
11199
|
var Combobox_default = Combobox;
|
|
10965
11200
|
|
|
10966
|
-
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, ActionMenu, AdvanceSearch_default as AdvanceSearch, arrow_default as ArrowIcon, Button, Checkbox, Collapsible, CollapsibleContent2 as CollapsibleContent, CollapsibleTrigger2 as CollapsibleTrigger, Combobox_default as Combobox, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, CropperModal, CropperModalError, DIALOG_ALERT_I18N_SUBNAMESPACE, DIALOG_ALERT_TEMPLATES, DataTable_default as DataTable, DatePicker2 as DatePicker, Dialog, DialogAlert, DialogAlertProvider, DialogContent, DialogDescription, DialogFooter, DialogTitle, DialogTrigger, ErrorCompression, ErrorCreateCanvas, ErrorGeneratingBlob, ErrorInvalidSVG, ErrorSVGExceedSize, filters_default as FiltersIcon, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, FormulaEditor, GridSettingsModal_default as GridSettingsModal, HeaderCell_default as HeaderCell, Image2 as Image, Input, InputNumber_default as InputNumber, Label2 as Label, List_default as List, container_default as ListContainer, header_default as ListHeader, table_default as ListTable, LookupSelect, MonthPicker2 as MonthPicker, navbar_default as Navbar, not_found_default as NotFoundIcon, Popover, PopoverAnchor, PopoverArrow, PopoverContent, PopoverTrigger, PreventPageLeave_default as PreventPageLeave, RadioGroupItem, RadioGroupRoot, RadioLabel, RichText, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator2 as Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarLayout, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Spinner, calendar_default as SuiCalendarIcon, calendar2_default as SuiCalendarIcon2, check_default as SuiCheckIcon, dots_vertical_default as SuiDotsVerticalIcon, empty_data_default as SuiEmptyDataIcon, expand_default as SuiExpandIcon, filter_default as SuiFilterIcon, setting_default as SuiSettingIcon, triangle_down_default as SuiTriangleDownIcon, warning_default as SuiWarningIcon, Switch, Textarea, Tooltip2 as Tooltip, TooltipArrow, TooltipContent2 as TooltipContent, TooltipProvider2 as TooltipProvider, TooltipTrigger2 as TooltipTrigger, truncated_default as Truncated, ui_exports as UI, VirtualizedCommand_default as VirtualizedCommand, booleanToSelectValue, buildPrefixMap, buttonVariants, cn, compareAlphanumeric, debounce, defaultOperatorShortcuts, defaultOperators, formatISODate, getDialogAlertControls, inputVariants, isDefined, isEmptyObject, isValidParentheses, mapTokensToOutput, parseFormula, parseFormulaToToken, resetVisibleTableState, selectValueToBoolean, spinnerVariants, splitOperators, stripNullishObject, throttle, tokenizeFormulaString, useControllableState_default as useControllableState, useFormField, useGridSettingsStore_default as useGridSettingsStore, useHover_default as useHover, useIntersectionObserver_default as useIntersectionObserver, useMediaQuery_default as useMediaQuery, usePreventPageLeave_default as usePreventPageLeave, usePreventPageLeaveStore_default as usePreventPageLeaveStore, useScreenSize_default as useScreenSize, useSidebar, useTruncated_default as useTruncated, validateTokenPrefixes };
|
|
11201
|
+
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, ActionMenu, AdvanceSearch_default as AdvanceSearch, arrow_default as ArrowIcon, Button, Checkbox, Collapsible, CollapsibleContent2 as CollapsibleContent, CollapsibleTrigger2 as CollapsibleTrigger, Combobox_default as Combobox, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, CropperModal, CropperModalError, DIALOG_ALERT_I18N_SUBNAMESPACE, DIALOG_ALERT_TEMPLATES, DataTable_default as DataTable, DatePicker2 as DatePicker, Dialog, DialogAlert, DialogAlertProvider, DialogContent, DialogDescription, DialogFooter, DialogTitle, DialogTrigger, ErrorCompression, ErrorCreateCanvas, ErrorGeneratingBlob, ErrorInvalidSVG, ErrorSVGExceedSize, filters_default as FiltersIcon, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, FormulaEditor, GridSettingsModal_default as GridSettingsModal, HeaderCell_default as HeaderCell, Image2 as Image, Input, InputNumber_default as InputNumber, Label2 as Label, List_default as List, container_default as ListContainer, header_default as ListHeader, table_default as ListTable, LookupSelect, MonthPicker2 as MonthPicker, navbar_default as Navbar, not_found_default as NotFoundIcon, Popover, PopoverAnchor, PopoverArrow, PopoverContent, PopoverTrigger, PreventPageLeave_default as PreventPageLeave, RadioGroupItem, RadioGroupRoot, RadioLabel, RichText, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator2 as Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarLayout, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Spinner, calendar_default as SuiCalendarIcon, calendar2_default as SuiCalendarIcon2, check_default as SuiCheckIcon, dots_vertical_default as SuiDotsVerticalIcon, empty_data_default as SuiEmptyDataIcon, expand_default as SuiExpandIcon, filter_default as SuiFilterIcon, setting_default as SuiSettingIcon, triangle_down_default as SuiTriangleDownIcon, warning_default as SuiWarningIcon, Switch, Textarea, Tooltip2 as Tooltip, TooltipArrow, TooltipContent2 as TooltipContent, TooltipProvider2 as TooltipProvider, TooltipTrigger2 as TooltipTrigger, truncated_default as Truncated, ui_exports as UI, VirtualizedCommand_default as VirtualizedCommand, booleanToSelectValue, buildPrefixMap, buttonVariants, cn, compareAlphanumeric, debounce, defaultOperatorShortcuts, defaultOperators, formatISODate, getDialogAlertControls, inputVariants, isDefined, isEmptyObject, isValidParentheses, mapTokensToOutput, parseFormula, parseFormulaToToken, resetVisibleTableState, selectValueToBoolean, spinnerVariants, splitOperators, stripNullishObject, throttle, tokenizeFormulaString, useControllableState_default as useControllableState, useFormField, useGridSettingsStore_default as useGridSettingsStore, useHover_default as useHover, useIntersectionObserver_default as useIntersectionObserver, useIsomorphicLayoutEffect, useMediaQuery_default as useMediaQuery, usePreventPageLeave_default as usePreventPageLeave, usePreventPageLeaveStore_default as usePreventPageLeaveStore, useScreenSize_default as useScreenSize, useSidebar, useTruncated_default as useTruncated, validateTokenPrefixes };
|
|
10967
11202
|
//# sourceMappingURL=index.mjs.map
|
|
10968
11203
|
//# sourceMappingURL=index.mjs.map
|