adminium 1.0.2 → 1.0.4
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.cjs +2704 -171
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +322 -2
- package/dist/index.d.ts +322 -2
- package/dist/index.js +2599 -161
- package/dist/index.js.map +1 -1
- package/dist/styles/adminium.css +1194 -3
- package/dist/styles/global.css +65 -0
- package/package.json +2 -1
package/dist/index.cjs
CHANGED
|
@@ -10,12 +10,20 @@ var jsxRuntime = require('react/jsx-runtime');
|
|
|
10
10
|
var radixUi = require('radix-ui');
|
|
11
11
|
var vaul = require('vaul');
|
|
12
12
|
var HoverCardPrimitive = require('@radix-ui/react-hover-card');
|
|
13
|
-
var
|
|
13
|
+
var cmdk = require('cmdk');
|
|
14
|
+
var React4 = require('react');
|
|
14
15
|
var react = require('motion/react');
|
|
16
|
+
var RechartsPrimitive = require('recharts');
|
|
15
17
|
var CheckboxPrimitive = require('@radix-ui/react-checkbox');
|
|
16
18
|
var reactTable = require('@tanstack/react-table');
|
|
17
19
|
var DropdownMenuPrimitive = require('@radix-ui/react-dropdown-menu');
|
|
20
|
+
var core = require('@dnd-kit/core');
|
|
21
|
+
var sortable = require('@dnd-kit/sortable');
|
|
22
|
+
var utilities = require('@dnd-kit/utilities');
|
|
23
|
+
var reactDayPicker = require('react-day-picker');
|
|
24
|
+
var reactAriaComponents = require('react-aria-components');
|
|
18
25
|
var SeparatorPrimitive = require('@radix-ui/react-separator');
|
|
26
|
+
var inputOtp = require('input-otp');
|
|
19
27
|
|
|
20
28
|
function _interopNamespace(e) {
|
|
21
29
|
if (e && e.__esModule) return e;
|
|
@@ -37,7 +45,8 @@ function _interopNamespace(e) {
|
|
|
37
45
|
|
|
38
46
|
var SlotPrimitive2__namespace = /*#__PURE__*/_interopNamespace(SlotPrimitive2);
|
|
39
47
|
var HoverCardPrimitive__namespace = /*#__PURE__*/_interopNamespace(HoverCardPrimitive);
|
|
40
|
-
var
|
|
48
|
+
var React4__namespace = /*#__PURE__*/_interopNamespace(React4);
|
|
49
|
+
var RechartsPrimitive__namespace = /*#__PURE__*/_interopNamespace(RechartsPrimitive);
|
|
41
50
|
var CheckboxPrimitive__namespace = /*#__PURE__*/_interopNamespace(CheckboxPrimitive);
|
|
42
51
|
var DropdownMenuPrimitive__namespace = /*#__PURE__*/_interopNamespace(DropdownMenuPrimitive);
|
|
43
52
|
var SeparatorPrimitive__namespace = /*#__PURE__*/_interopNamespace(SeparatorPrimitive);
|
|
@@ -1223,6 +1232,156 @@ function SheetDescription({ className, ...props }) {
|
|
|
1223
1232
|
}
|
|
1224
1233
|
);
|
|
1225
1234
|
}
|
|
1235
|
+
function Command({
|
|
1236
|
+
className,
|
|
1237
|
+
...props
|
|
1238
|
+
}) {
|
|
1239
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1240
|
+
cmdk.Command,
|
|
1241
|
+
{
|
|
1242
|
+
"data-slot": "command",
|
|
1243
|
+
className: cn(
|
|
1244
|
+
"flex size-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",
|
|
1245
|
+
className
|
|
1246
|
+
),
|
|
1247
|
+
...props
|
|
1248
|
+
}
|
|
1249
|
+
);
|
|
1250
|
+
}
|
|
1251
|
+
function CommandDialog({ children, className, ...props }) {
|
|
1252
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Dialog, { ...props, children: /* @__PURE__ */ jsxRuntime.jsxs(DialogContent, { className: cn("overflow-hidden p-0 shadow-lg", className), children: [
|
|
1253
|
+
/* @__PURE__ */ jsxRuntime.jsx(DialogTitle, { className: "hidden" }),
|
|
1254
|
+
/* @__PURE__ */ jsxRuntime.jsx(Command, { className: "[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:size-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:size-5", children })
|
|
1255
|
+
] }) });
|
|
1256
|
+
}
|
|
1257
|
+
function CommandInput({
|
|
1258
|
+
className,
|
|
1259
|
+
...props
|
|
1260
|
+
}) {
|
|
1261
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1262
|
+
"div",
|
|
1263
|
+
{
|
|
1264
|
+
className: "flex items-center border-b border-border px-3",
|
|
1265
|
+
"cmdk-input-wrapper": "",
|
|
1266
|
+
"data-slot": "command-input-wrapper",
|
|
1267
|
+
children: [
|
|
1268
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Search, { className: "me-2 size-4 shrink-0 opacity-50" }),
|
|
1269
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1270
|
+
cmdk.Command.Input,
|
|
1271
|
+
{
|
|
1272
|
+
"data-slot": "command-input",
|
|
1273
|
+
className: cn(
|
|
1274
|
+
"flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-hidden text-foreground placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",
|
|
1275
|
+
className
|
|
1276
|
+
),
|
|
1277
|
+
...props
|
|
1278
|
+
}
|
|
1279
|
+
)
|
|
1280
|
+
]
|
|
1281
|
+
}
|
|
1282
|
+
);
|
|
1283
|
+
}
|
|
1284
|
+
function CommandList({
|
|
1285
|
+
className,
|
|
1286
|
+
...props
|
|
1287
|
+
}) {
|
|
1288
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1289
|
+
cmdk.Command.List,
|
|
1290
|
+
{
|
|
1291
|
+
"data-slot": "command-list",
|
|
1292
|
+
className: cn("max-h-75 overflow-y-auto overflow-x-hidden", className),
|
|
1293
|
+
...props
|
|
1294
|
+
}
|
|
1295
|
+
);
|
|
1296
|
+
}
|
|
1297
|
+
function CommandEmpty({
|
|
1298
|
+
...props
|
|
1299
|
+
}) {
|
|
1300
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1301
|
+
cmdk.Command.Empty,
|
|
1302
|
+
{
|
|
1303
|
+
"data-slot": "command-empty",
|
|
1304
|
+
className: "py-6 text-center text-sm",
|
|
1305
|
+
...props
|
|
1306
|
+
}
|
|
1307
|
+
);
|
|
1308
|
+
}
|
|
1309
|
+
function CommandGroup({
|
|
1310
|
+
className,
|
|
1311
|
+
...props
|
|
1312
|
+
}) {
|
|
1313
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1314
|
+
cmdk.Command.Group,
|
|
1315
|
+
{
|
|
1316
|
+
"data-slot": "command-group",
|
|
1317
|
+
className: cn(
|
|
1318
|
+
"overflow-hidden p-1.5 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",
|
|
1319
|
+
className
|
|
1320
|
+
),
|
|
1321
|
+
...props
|
|
1322
|
+
}
|
|
1323
|
+
);
|
|
1324
|
+
}
|
|
1325
|
+
function CommandSeparator({
|
|
1326
|
+
className,
|
|
1327
|
+
...props
|
|
1328
|
+
}) {
|
|
1329
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1330
|
+
cmdk.Command.Separator,
|
|
1331
|
+
{
|
|
1332
|
+
"data-slot": "command-separator",
|
|
1333
|
+
className: cn("-mx-1.5 h-px bg-border", className),
|
|
1334
|
+
...props
|
|
1335
|
+
}
|
|
1336
|
+
);
|
|
1337
|
+
}
|
|
1338
|
+
function CommandItem({
|
|
1339
|
+
className,
|
|
1340
|
+
...props
|
|
1341
|
+
}) {
|
|
1342
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1343
|
+
cmdk.Command.Item,
|
|
1344
|
+
{
|
|
1345
|
+
"data-slot": "command-item",
|
|
1346
|
+
className: cn(
|
|
1347
|
+
"relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm text-foreground outline-hidden data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
|
|
1348
|
+
className
|
|
1349
|
+
),
|
|
1350
|
+
...props
|
|
1351
|
+
}
|
|
1352
|
+
);
|
|
1353
|
+
}
|
|
1354
|
+
function CommandShortcut({
|
|
1355
|
+
className,
|
|
1356
|
+
...props
|
|
1357
|
+
}) {
|
|
1358
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1359
|
+
"span",
|
|
1360
|
+
{
|
|
1361
|
+
"data-slot": "command-shortcut",
|
|
1362
|
+
className: cn(
|
|
1363
|
+
"ms-auto text-xs tracking-widest text-muted-foreground",
|
|
1364
|
+
className
|
|
1365
|
+
),
|
|
1366
|
+
...props
|
|
1367
|
+
}
|
|
1368
|
+
);
|
|
1369
|
+
}
|
|
1370
|
+
function CommandCheck({
|
|
1371
|
+
icon: Icon = lucideReact.Check,
|
|
1372
|
+
className,
|
|
1373
|
+
...props
|
|
1374
|
+
}) {
|
|
1375
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1376
|
+
Icon,
|
|
1377
|
+
{
|
|
1378
|
+
"data-slot": "command-check",
|
|
1379
|
+
"data-check": "true",
|
|
1380
|
+
className: cn("ms-auto size-4 text-primary", className),
|
|
1381
|
+
...props
|
|
1382
|
+
}
|
|
1383
|
+
);
|
|
1384
|
+
}
|
|
1226
1385
|
var avatarStatusVariants = classVarianceAuthority.cva(
|
|
1227
1386
|
"flex items-center rounded-full size-2 border-2 border-background",
|
|
1228
1387
|
{
|
|
@@ -1311,11 +1470,11 @@ function AvatarStatus({
|
|
|
1311
1470
|
}
|
|
1312
1471
|
);
|
|
1313
1472
|
}
|
|
1314
|
-
var AvatarGroupContext =
|
|
1473
|
+
var AvatarGroupContext = React4__namespace.createContext(
|
|
1315
1474
|
null
|
|
1316
1475
|
);
|
|
1317
1476
|
var StaggeredContent = ({ content }) => {
|
|
1318
|
-
const children =
|
|
1477
|
+
const children = React4__namespace.Children.toArray(content);
|
|
1319
1478
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1320
1479
|
react.motion.div,
|
|
1321
1480
|
{
|
|
@@ -1358,7 +1517,14 @@ function AvatarGroup({
|
|
|
1358
1517
|
tooltipClassName,
|
|
1359
1518
|
animation
|
|
1360
1519
|
};
|
|
1361
|
-
return /* @__PURE__ */ jsxRuntime.jsx(AvatarGroupContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1520
|
+
return /* @__PURE__ */ jsxRuntime.jsx(AvatarGroupContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1521
|
+
"div",
|
|
1522
|
+
{
|
|
1523
|
+
"data-slot": "avatar-group",
|
|
1524
|
+
className: cn("flex -space-x-2.5", className),
|
|
1525
|
+
children
|
|
1526
|
+
}
|
|
1527
|
+
) });
|
|
1362
1528
|
}
|
|
1363
1529
|
function AvatarGroupItem({
|
|
1364
1530
|
children,
|
|
@@ -1366,8 +1532,8 @@ function AvatarGroupItem({
|
|
|
1366
1532
|
tooltipClassName,
|
|
1367
1533
|
animation: itemAnimation
|
|
1368
1534
|
}) {
|
|
1369
|
-
const context =
|
|
1370
|
-
const [hoveredIndex, setHoveredIndex] =
|
|
1535
|
+
const context = React4__namespace.useContext(AvatarGroupContext);
|
|
1536
|
+
const [hoveredIndex, setHoveredIndex] = React4__namespace.useState(false);
|
|
1371
1537
|
const springConfig = { stiffness: 100, damping: 5 };
|
|
1372
1538
|
const x = react.useMotionValue(0);
|
|
1373
1539
|
const animation = itemAnimation || context?.animation || "default";
|
|
@@ -1380,13 +1546,13 @@ function AvatarGroupItem({
|
|
|
1380
1546
|
react.useTransform(x, [-100, 100], [-50, 50]),
|
|
1381
1547
|
springConfig
|
|
1382
1548
|
);
|
|
1383
|
-
const tooltipChild =
|
|
1384
|
-
(child) =>
|
|
1549
|
+
const tooltipChild = React4__namespace.Children.toArray(children).find(
|
|
1550
|
+
(child) => React4__namespace.isValidElement(child) && child.type === AvatarGroupTooltip
|
|
1385
1551
|
);
|
|
1386
|
-
const otherChildren =
|
|
1387
|
-
(child) => !(
|
|
1552
|
+
const otherChildren = React4__namespace.Children.toArray(children).filter(
|
|
1553
|
+
(child) => !(React4__namespace.isValidElement(child) && child.type === AvatarGroupTooltip)
|
|
1388
1554
|
);
|
|
1389
|
-
const tooltipContent = tooltipChild &&
|
|
1555
|
+
const tooltipContent = tooltipChild && React4__namespace.isValidElement(tooltipChild) ? tooltipChild.props.children : null;
|
|
1390
1556
|
const handleMouseMove = (event) => {
|
|
1391
1557
|
const halfWidth = event.target.offsetWidth / 2;
|
|
1392
1558
|
x.set(event.nativeEvent.offsetX - halfWidth);
|
|
@@ -1532,9 +1698,251 @@ function AvatarGroupTooltip({
|
|
|
1532
1698
|
}
|
|
1533
1699
|
);
|
|
1534
1700
|
}
|
|
1535
|
-
var
|
|
1701
|
+
var THEMES = { light: "", dark: ".dark" };
|
|
1702
|
+
var ChartContext = React4__namespace.createContext(null);
|
|
1703
|
+
var chartContainerClasses = [
|
|
1704
|
+
"[&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground",
|
|
1705
|
+
"[&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50",
|
|
1706
|
+
"[&_.recharts-curve.recharts-tooltip-cursor]:stroke-border",
|
|
1707
|
+
"[&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border",
|
|
1708
|
+
"[&_.recharts-radial-bar-background-sector]:fill-muted",
|
|
1709
|
+
"[&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted",
|
|
1710
|
+
"[&_.recharts-reference-line_[stroke='#ccc']]:stroke-border",
|
|
1711
|
+
"flex aspect-video justify-center text-xs",
|
|
1712
|
+
"[&_.recharts-dot[stroke='#fff']]:stroke-transparent",
|
|
1713
|
+
"[&_.recharts-layer]:outline-hidden",
|
|
1714
|
+
"[&_.recharts-sector]:outline-hidden",
|
|
1715
|
+
"[&_.recharts-sector[stroke='#fff']]:stroke-transparent",
|
|
1716
|
+
"[&_.recharts-surface]:outline-hidden"
|
|
1717
|
+
].join(" ");
|
|
1718
|
+
function useChart() {
|
|
1719
|
+
const context = React4__namespace.useContext(ChartContext);
|
|
1720
|
+
if (!context) {
|
|
1721
|
+
throw new Error("useChart must be used within a <ChartContainer />");
|
|
1722
|
+
}
|
|
1723
|
+
return context;
|
|
1724
|
+
}
|
|
1725
|
+
function ChartContainer({
|
|
1726
|
+
id,
|
|
1727
|
+
className,
|
|
1728
|
+
children,
|
|
1729
|
+
config,
|
|
1730
|
+
...props
|
|
1731
|
+
}) {
|
|
1732
|
+
const uniqueId = React4__namespace.useId();
|
|
1733
|
+
const chartId = `chart-${id || uniqueId.replace(/:/g, "")}`;
|
|
1734
|
+
return /* @__PURE__ */ jsxRuntime.jsx(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1735
|
+
"div",
|
|
1736
|
+
{
|
|
1737
|
+
"data-slot": "chart",
|
|
1738
|
+
"data-chart": chartId,
|
|
1739
|
+
className: cn(chartContainerClasses, className),
|
|
1740
|
+
...props,
|
|
1741
|
+
children: [
|
|
1742
|
+
/* @__PURE__ */ jsxRuntime.jsx(ChartStyle, { id: chartId, config }),
|
|
1743
|
+
/* @__PURE__ */ jsxRuntime.jsx(RechartsPrimitive__namespace.ResponsiveContainer, { children })
|
|
1744
|
+
]
|
|
1745
|
+
}
|
|
1746
|
+
) });
|
|
1747
|
+
}
|
|
1748
|
+
function ChartStyle({ id, config }) {
|
|
1749
|
+
const colorConfig = Object.entries(config).filter(
|
|
1750
|
+
([, itemConfig]) => itemConfig.theme || itemConfig.color
|
|
1751
|
+
);
|
|
1752
|
+
if (!colorConfig.length) {
|
|
1753
|
+
return null;
|
|
1754
|
+
}
|
|
1755
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1756
|
+
"style",
|
|
1757
|
+
{
|
|
1758
|
+
dangerouslySetInnerHTML: {
|
|
1759
|
+
__html: Object.entries(THEMES).map(
|
|
1760
|
+
([theme, prefix]) => `
|
|
1761
|
+
${prefix} [data-chart=${id}] {
|
|
1762
|
+
${colorConfig.map(([key, itemConfig]) => {
|
|
1763
|
+
const color = itemConfig.theme?.[theme] || itemConfig.color;
|
|
1764
|
+
return color ? ` --color-${key}: ${color};` : null;
|
|
1765
|
+
}).join("\n")}
|
|
1766
|
+
}
|
|
1767
|
+
`
|
|
1768
|
+
).join("\n")
|
|
1769
|
+
}
|
|
1770
|
+
}
|
|
1771
|
+
);
|
|
1772
|
+
}
|
|
1773
|
+
var ChartTooltip = RechartsPrimitive__namespace.Tooltip;
|
|
1774
|
+
function ChartTooltipContent({
|
|
1775
|
+
active,
|
|
1776
|
+
payload,
|
|
1777
|
+
className,
|
|
1778
|
+
indicator = "dot",
|
|
1779
|
+
hideLabel = false,
|
|
1780
|
+
hideIndicator = false,
|
|
1781
|
+
label,
|
|
1782
|
+
labelFormatter,
|
|
1783
|
+
labelClassName,
|
|
1784
|
+
formatter,
|
|
1785
|
+
color,
|
|
1786
|
+
nameKey,
|
|
1787
|
+
labelKey
|
|
1788
|
+
}) {
|
|
1789
|
+
const { config } = useChart();
|
|
1790
|
+
const tooltipLabel = React4__namespace.useMemo(() => {
|
|
1791
|
+
if (hideLabel || !payload?.length) {
|
|
1792
|
+
return null;
|
|
1793
|
+
}
|
|
1794
|
+
const [item] = payload;
|
|
1795
|
+
const key = `${labelKey || item?.dataKey || item?.name || "value"}`;
|
|
1796
|
+
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
1797
|
+
const value = !labelKey && typeof label === "string" ? config[label]?.label || label : itemConfig?.label;
|
|
1798
|
+
if (labelFormatter) {
|
|
1799
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("font-medium", labelClassName), children: labelFormatter(value, payload) });
|
|
1800
|
+
}
|
|
1801
|
+
if (!value) {
|
|
1802
|
+
return null;
|
|
1803
|
+
}
|
|
1804
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("font-medium", labelClassName), children: value });
|
|
1805
|
+
}, [
|
|
1806
|
+
label,
|
|
1807
|
+
labelFormatter,
|
|
1808
|
+
payload,
|
|
1809
|
+
hideLabel,
|
|
1810
|
+
labelClassName,
|
|
1811
|
+
config,
|
|
1812
|
+
labelKey
|
|
1813
|
+
]);
|
|
1814
|
+
if (!active || !payload?.length) {
|
|
1815
|
+
return null;
|
|
1816
|
+
}
|
|
1817
|
+
const nestLabel = payload.length === 1 && indicator !== "dot";
|
|
1818
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1819
|
+
"div",
|
|
1820
|
+
{
|
|
1821
|
+
className: cn(
|
|
1822
|
+
"border-border/50 bg-background grid min-w-32 items-start gap-1.5 rounded-lg border px-2.5 py-1.5 text-xs shadow-xl",
|
|
1823
|
+
className
|
|
1824
|
+
),
|
|
1825
|
+
children: [
|
|
1826
|
+
!nestLabel ? tooltipLabel : null,
|
|
1827
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid gap-1.5", children: payload.map((item, index) => {
|
|
1828
|
+
const key = `${nameKey || item.name || item.dataKey || "value"}`;
|
|
1829
|
+
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
1830
|
+
const indicatorColor = color || item.payload.fill || item.color;
|
|
1831
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1832
|
+
"div",
|
|
1833
|
+
{
|
|
1834
|
+
className: cn(
|
|
1835
|
+
"[&>svg]:text-muted-foreground flex w-full flex-wrap items-stretch gap-2 [&>svg]:size-2.5",
|
|
1836
|
+
indicator === "dot" && "items-center"
|
|
1837
|
+
),
|
|
1838
|
+
children: formatter && item?.value !== void 0 && item.name ? formatter(item.value, item.name, item, index, item.payload) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1839
|
+
itemConfig?.icon ? /* @__PURE__ */ jsxRuntime.jsx(itemConfig.icon, {}) : !hideIndicator && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1840
|
+
"div",
|
|
1841
|
+
{
|
|
1842
|
+
className: cn(
|
|
1843
|
+
"shrink-0 rounded-sm border-(--color-border) bg-(--color-bg)",
|
|
1844
|
+
{
|
|
1845
|
+
"size-2.5": indicator === "dot",
|
|
1846
|
+
"w-1": indicator === "line",
|
|
1847
|
+
"w-0 border-2 border-dashed bg-transparent": indicator === "dashed",
|
|
1848
|
+
"my-0.5": nestLabel && indicator === "dashed"
|
|
1849
|
+
}
|
|
1850
|
+
),
|
|
1851
|
+
style: {
|
|
1852
|
+
"--color-bg": indicatorColor,
|
|
1853
|
+
"--color-border": indicatorColor
|
|
1854
|
+
}
|
|
1855
|
+
}
|
|
1856
|
+
),
|
|
1857
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1858
|
+
"div",
|
|
1859
|
+
{
|
|
1860
|
+
className: cn(
|
|
1861
|
+
"flex flex-1 justify-between leading-none",
|
|
1862
|
+
nestLabel ? "items-end" : "items-center"
|
|
1863
|
+
),
|
|
1864
|
+
children: [
|
|
1865
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid gap-1.5", children: [
|
|
1866
|
+
nestLabel ? tooltipLabel : null,
|
|
1867
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground", children: itemConfig?.label || item.name })
|
|
1868
|
+
] }),
|
|
1869
|
+
item.value != null && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-foreground font-mono font-medium tabular-nums", children: item.value.toLocaleString() })
|
|
1870
|
+
]
|
|
1871
|
+
}
|
|
1872
|
+
)
|
|
1873
|
+
] })
|
|
1874
|
+
},
|
|
1875
|
+
item.dataKey
|
|
1876
|
+
);
|
|
1877
|
+
}) })
|
|
1878
|
+
]
|
|
1879
|
+
}
|
|
1880
|
+
);
|
|
1881
|
+
}
|
|
1882
|
+
var ChartLegend = RechartsPrimitive__namespace.Legend;
|
|
1883
|
+
function ChartLegendContent({
|
|
1884
|
+
className,
|
|
1885
|
+
hideIcon = false,
|
|
1886
|
+
payload,
|
|
1887
|
+
verticalAlign = "bottom",
|
|
1888
|
+
nameKey
|
|
1889
|
+
}) {
|
|
1890
|
+
const { config } = useChart();
|
|
1891
|
+
if (!payload?.length) {
|
|
1892
|
+
return null;
|
|
1893
|
+
}
|
|
1894
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1895
|
+
"div",
|
|
1896
|
+
{
|
|
1897
|
+
className: cn(
|
|
1898
|
+
"flex items-center justify-center gap-4",
|
|
1899
|
+
verticalAlign === "top" ? "pb-3" : "pt-3",
|
|
1900
|
+
className
|
|
1901
|
+
),
|
|
1902
|
+
children: payload.map((item) => {
|
|
1903
|
+
const key = `${nameKey || item.dataKey || "value"}`;
|
|
1904
|
+
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
1905
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1906
|
+
"div",
|
|
1907
|
+
{
|
|
1908
|
+
className: cn(
|
|
1909
|
+
"[&>svg]:text-muted-foreground flex items-center gap-1.5 [&>svg]:size-3"
|
|
1910
|
+
),
|
|
1911
|
+
children: [
|
|
1912
|
+
itemConfig?.icon && !hideIcon ? /* @__PURE__ */ jsxRuntime.jsx(itemConfig.icon, {}) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
1913
|
+
"div",
|
|
1914
|
+
{
|
|
1915
|
+
className: "size-2 shrink-0 rounded-sm",
|
|
1916
|
+
style: {
|
|
1917
|
+
backgroundColor: item.color
|
|
1918
|
+
}
|
|
1919
|
+
}
|
|
1920
|
+
),
|
|
1921
|
+
itemConfig?.label
|
|
1922
|
+
]
|
|
1923
|
+
},
|
|
1924
|
+
item.value
|
|
1925
|
+
);
|
|
1926
|
+
})
|
|
1927
|
+
}
|
|
1928
|
+
);
|
|
1929
|
+
}
|
|
1930
|
+
function getPayloadConfigFromPayload(config, payload, key) {
|
|
1931
|
+
if (typeof payload !== "object" || payload === null) {
|
|
1932
|
+
return void 0;
|
|
1933
|
+
}
|
|
1934
|
+
const payloadPayload = "payload" in payload && typeof payload.payload === "object" && payload.payload !== null ? payload.payload : void 0;
|
|
1935
|
+
let configLabelKey = key;
|
|
1936
|
+
if (key in payload && typeof payload[key] === "string") {
|
|
1937
|
+
configLabelKey = payload[key];
|
|
1938
|
+
} else if (payloadPayload && key in payloadPayload && typeof payloadPayload[key] === "string") {
|
|
1939
|
+
configLabelKey = payloadPayload[key];
|
|
1940
|
+
}
|
|
1941
|
+
return configLabelKey in config ? config[configLabelKey] : config[key];
|
|
1942
|
+
}
|
|
1943
|
+
var DataGridContext = React4.createContext(void 0);
|
|
1536
1944
|
function useDataGrid() {
|
|
1537
|
-
const context =
|
|
1945
|
+
const context = React4.useContext(DataGridContext);
|
|
1538
1946
|
if (!context) {
|
|
1539
1947
|
throw new Error("useDataGrid must be used within a DataGridProvider");
|
|
1540
1948
|
}
|
|
@@ -2064,7 +2472,7 @@ function DataGridTable() {
|
|
|
2064
2472
|
colIndex
|
|
2065
2473
|
);
|
|
2066
2474
|
}) }, rowIndex)) : table.getRowModel().rows.length ? table.getRowModel().rows.map((row, index) => {
|
|
2067
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2475
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(React4.Fragment, { children: [
|
|
2068
2476
|
/* @__PURE__ */ jsxRuntime.jsx(DataGridTableBodyRow, { row, children: row.getVisibleCells().map((cell, colIndex) => {
|
|
2069
2477
|
return /* @__PURE__ */ jsxRuntime.jsx(DataGridTableBodyRowCell, { cell, children: reactTable.flexRender(
|
|
2070
2478
|
cell.column.columnDef.cell,
|
|
@@ -2520,7 +2928,7 @@ function DataGridColumnHeader({
|
|
|
2520
2928
|
}
|
|
2521
2929
|
return headerLabel();
|
|
2522
2930
|
}
|
|
2523
|
-
var SelectContext =
|
|
2931
|
+
var SelectContext = React4__namespace.createContext({ indicatorPosition: "left", indicator: null, indicatorVisibility: true });
|
|
2524
2932
|
var Select = ({
|
|
2525
2933
|
indicatorPosition = "left",
|
|
2526
2934
|
indicatorVisibility = true,
|
|
@@ -2674,7 +3082,7 @@ function SelectItem({
|
|
|
2674
3082
|
children,
|
|
2675
3083
|
...props
|
|
2676
3084
|
}) {
|
|
2677
|
-
const { indicatorPosition, indicatorVisibility, indicator } =
|
|
3085
|
+
const { indicatorPosition, indicatorVisibility, indicator } = React4__namespace.useContext(SelectContext);
|
|
2678
3086
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2679
3087
|
radixUi.Select.Item,
|
|
2680
3088
|
{
|
|
@@ -2686,7 +3094,7 @@ function SelectItem({
|
|
|
2686
3094
|
),
|
|
2687
3095
|
...props,
|
|
2688
3096
|
children: [
|
|
2689
|
-
indicatorVisibility && (indicator &&
|
|
3097
|
+
indicatorVisibility && (indicator && React4.isValidElement(indicator) ? indicator : /* @__PURE__ */ jsxRuntime.jsx(
|
|
2690
3098
|
"span",
|
|
2691
3099
|
{
|
|
2692
3100
|
className: cn(
|
|
@@ -2706,7 +3114,7 @@ function SelectIndicator({
|
|
|
2706
3114
|
className,
|
|
2707
3115
|
...props
|
|
2708
3116
|
}) {
|
|
2709
|
-
const { indicatorPosition } =
|
|
3117
|
+
const { indicatorPosition } = React4__namespace.useContext(SelectContext);
|
|
2710
3118
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2711
3119
|
"span",
|
|
2712
3120
|
{
|
|
@@ -2930,61 +3338,492 @@ function DataGridColumnVisibility({
|
|
|
2930
3338
|
] })
|
|
2931
3339
|
] });
|
|
2932
3340
|
}
|
|
2933
|
-
var
|
|
2934
|
-
|
|
2935
|
-
{
|
|
2936
|
-
|
|
2937
|
-
|
|
2938
|
-
|
|
2939
|
-
|
|
2940
|
-
|
|
2941
|
-
|
|
2942
|
-
|
|
2943
|
-
|
|
2944
|
-
|
|
2945
|
-
|
|
2946
|
-
|
|
2947
|
-
|
|
2948
|
-
|
|
2949
|
-
|
|
2950
|
-
|
|
2951
|
-
|
|
2952
|
-
|
|
2953
|
-
|
|
2954
|
-
|
|
2955
|
-
|
|
2956
|
-
|
|
2957
|
-
|
|
2958
|
-
|
|
2959
|
-
|
|
2960
|
-
|
|
2961
|
-
|
|
2962
|
-
|
|
2963
|
-
|
|
3341
|
+
var KanbanContext = React4__namespace.createContext({
|
|
3342
|
+
columns: {},
|
|
3343
|
+
setColumns: () => {
|
|
3344
|
+
},
|
|
3345
|
+
getItemId: () => "",
|
|
3346
|
+
columnIds: [],
|
|
3347
|
+
activeId: null,
|
|
3348
|
+
setActiveId: () => {
|
|
3349
|
+
},
|
|
3350
|
+
findContainer: () => void 0,
|
|
3351
|
+
isColumn: () => false
|
|
3352
|
+
});
|
|
3353
|
+
var ColumnContext = React4__namespace.createContext({
|
|
3354
|
+
attributes: {},
|
|
3355
|
+
listeners: void 0,
|
|
3356
|
+
isDragging: false,
|
|
3357
|
+
disabled: false
|
|
3358
|
+
});
|
|
3359
|
+
var ItemContext = React4__namespace.createContext({
|
|
3360
|
+
listeners: void 0,
|
|
3361
|
+
isDragging: false,
|
|
3362
|
+
disabled: false
|
|
3363
|
+
});
|
|
3364
|
+
var dropAnimationConfig = {
|
|
3365
|
+
...core.defaultDropAnimation,
|
|
3366
|
+
sideEffects: core.defaultDropAnimationSideEffects({
|
|
3367
|
+
styles: {
|
|
3368
|
+
active: {
|
|
3369
|
+
opacity: "0.4"
|
|
3370
|
+
}
|
|
3371
|
+
}
|
|
3372
|
+
})
|
|
3373
|
+
};
|
|
3374
|
+
function Kanban({
|
|
3375
|
+
value,
|
|
3376
|
+
onValueChange,
|
|
3377
|
+
getItemValue,
|
|
3378
|
+
children,
|
|
3379
|
+
className,
|
|
3380
|
+
onMove
|
|
3381
|
+
}) {
|
|
3382
|
+
const columns = value;
|
|
3383
|
+
const setColumns = onValueChange;
|
|
3384
|
+
const [activeId, setActiveId] = React4__namespace.useState(null);
|
|
3385
|
+
const sensors = core.useSensors(
|
|
3386
|
+
core.useSensor(core.PointerSensor, {
|
|
3387
|
+
activationConstraint: {
|
|
3388
|
+
distance: 10
|
|
2964
3389
|
}
|
|
3390
|
+
}),
|
|
3391
|
+
core.useSensor(core.KeyboardSensor, {
|
|
3392
|
+
coordinateGetter: sortable.sortableKeyboardCoordinates
|
|
3393
|
+
})
|
|
3394
|
+
);
|
|
3395
|
+
const columnIds = React4__namespace.useMemo(() => Object.keys(columns), [columns]);
|
|
3396
|
+
const isColumn = React4__namespace.useCallback(
|
|
3397
|
+
(id) => columnIds.includes(id),
|
|
3398
|
+
[columnIds]
|
|
3399
|
+
);
|
|
3400
|
+
const findContainer = React4__namespace.useCallback(
|
|
3401
|
+
(id) => {
|
|
3402
|
+
if (isColumn(id)) return id;
|
|
3403
|
+
return columnIds.find(
|
|
3404
|
+
(key) => columns[key].some((item) => getItemValue(item) === id)
|
|
3405
|
+
);
|
|
2965
3406
|
},
|
|
2966
|
-
|
|
2967
|
-
|
|
2968
|
-
|
|
2969
|
-
|
|
2970
|
-
|
|
2971
|
-
|
|
2972
|
-
|
|
2973
|
-
{
|
|
2974
|
-
|
|
2975
|
-
|
|
2976
|
-
|
|
2977
|
-
|
|
2978
|
-
|
|
2979
|
-
|
|
2980
|
-
|
|
2981
|
-
|
|
2982
|
-
|
|
2983
|
-
|
|
2984
|
-
|
|
2985
|
-
|
|
2986
|
-
|
|
2987
|
-
|
|
3407
|
+
[columns, columnIds, getItemValue, isColumn]
|
|
3408
|
+
);
|
|
3409
|
+
const handleDragStart = React4__namespace.useCallback((event) => {
|
|
3410
|
+
setActiveId(event.active.id);
|
|
3411
|
+
}, []);
|
|
3412
|
+
const handleDragOver = React4__namespace.useCallback(
|
|
3413
|
+
(event) => {
|
|
3414
|
+
if (onMove) {
|
|
3415
|
+
return;
|
|
3416
|
+
}
|
|
3417
|
+
const { active, over } = event;
|
|
3418
|
+
if (!over) return;
|
|
3419
|
+
if (isColumn(active.id)) return;
|
|
3420
|
+
const activeContainer = findContainer(active.id);
|
|
3421
|
+
const overContainer = findContainer(over.id);
|
|
3422
|
+
if (!activeContainer || !overContainer || activeContainer === overContainer) {
|
|
3423
|
+
return;
|
|
3424
|
+
}
|
|
3425
|
+
const activeItems = [...columns[activeContainer]];
|
|
3426
|
+
const overItems = [...columns[overContainer]];
|
|
3427
|
+
const activeIndex = activeItems.findIndex(
|
|
3428
|
+
(item) => getItemValue(item) === active.id
|
|
3429
|
+
);
|
|
3430
|
+
const overIndex = isColumn(over.id) ? overItems.length : overItems.findIndex((item) => getItemValue(item) === over.id);
|
|
3431
|
+
const [movedItem] = activeItems.splice(activeIndex, 1);
|
|
3432
|
+
overItems.splice(overIndex, 0, movedItem);
|
|
3433
|
+
setColumns({
|
|
3434
|
+
...columns,
|
|
3435
|
+
[activeContainer]: activeItems,
|
|
3436
|
+
[overContainer]: overItems
|
|
3437
|
+
});
|
|
3438
|
+
},
|
|
3439
|
+
[findContainer, getItemValue, isColumn, setColumns, columns, onMove]
|
|
3440
|
+
);
|
|
3441
|
+
const handleDragEnd = React4__namespace.useCallback(
|
|
3442
|
+
(event) => {
|
|
3443
|
+
const { active, over } = event;
|
|
3444
|
+
setActiveId(null);
|
|
3445
|
+
if (!over) return;
|
|
3446
|
+
if (onMove && !isColumn(active.id)) {
|
|
3447
|
+
const activeContainer2 = findContainer(active.id);
|
|
3448
|
+
const overContainer2 = findContainer(over.id);
|
|
3449
|
+
if (activeContainer2 && overContainer2) {
|
|
3450
|
+
const activeIndex = columns[activeContainer2].findIndex(
|
|
3451
|
+
(item) => getItemValue(item) === active.id
|
|
3452
|
+
);
|
|
3453
|
+
const overIndex = isColumn(over.id) ? columns[overContainer2].length : columns[overContainer2].findIndex(
|
|
3454
|
+
(item) => getItemValue(item) === over.id
|
|
3455
|
+
);
|
|
3456
|
+
onMove({
|
|
3457
|
+
event,
|
|
3458
|
+
activeContainer: activeContainer2,
|
|
3459
|
+
activeIndex,
|
|
3460
|
+
overContainer: overContainer2,
|
|
3461
|
+
overIndex
|
|
3462
|
+
});
|
|
3463
|
+
}
|
|
3464
|
+
return;
|
|
3465
|
+
}
|
|
3466
|
+
if (isColumn(active.id) && isColumn(over.id)) {
|
|
3467
|
+
const activeIndex = columnIds.indexOf(active.id);
|
|
3468
|
+
const overIndex = columnIds.indexOf(over.id);
|
|
3469
|
+
if (activeIndex !== overIndex) {
|
|
3470
|
+
const newOrder = sortable.arrayMove(
|
|
3471
|
+
Object.keys(columns),
|
|
3472
|
+
activeIndex,
|
|
3473
|
+
overIndex
|
|
3474
|
+
);
|
|
3475
|
+
const newColumns = {};
|
|
3476
|
+
newOrder.forEach((key) => {
|
|
3477
|
+
newColumns[key] = columns[key];
|
|
3478
|
+
});
|
|
3479
|
+
setColumns(newColumns);
|
|
3480
|
+
}
|
|
3481
|
+
return;
|
|
3482
|
+
}
|
|
3483
|
+
const activeContainer = findContainer(active.id);
|
|
3484
|
+
const overContainer = findContainer(over.id);
|
|
3485
|
+
if (activeContainer && overContainer && activeContainer === overContainer) {
|
|
3486
|
+
const container = activeContainer;
|
|
3487
|
+
const activeIndex = columns[container].findIndex(
|
|
3488
|
+
(item) => getItemValue(item) === active.id
|
|
3489
|
+
);
|
|
3490
|
+
const overIndex = columns[container].findIndex(
|
|
3491
|
+
(item) => getItemValue(item) === over.id
|
|
3492
|
+
);
|
|
3493
|
+
if (activeIndex !== overIndex) {
|
|
3494
|
+
setColumns({
|
|
3495
|
+
...columns,
|
|
3496
|
+
[container]: sortable.arrayMove(columns[container], activeIndex, overIndex)
|
|
3497
|
+
});
|
|
3498
|
+
}
|
|
3499
|
+
}
|
|
3500
|
+
},
|
|
3501
|
+
[
|
|
3502
|
+
columnIds,
|
|
3503
|
+
columns,
|
|
3504
|
+
findContainer,
|
|
3505
|
+
getItemValue,
|
|
3506
|
+
isColumn,
|
|
3507
|
+
setColumns,
|
|
3508
|
+
onMove
|
|
3509
|
+
]
|
|
3510
|
+
);
|
|
3511
|
+
const contextValue = React4__namespace.useMemo(
|
|
3512
|
+
() => ({
|
|
3513
|
+
columns,
|
|
3514
|
+
setColumns,
|
|
3515
|
+
getItemId: getItemValue,
|
|
3516
|
+
columnIds,
|
|
3517
|
+
activeId,
|
|
3518
|
+
setActiveId,
|
|
3519
|
+
findContainer,
|
|
3520
|
+
isColumn
|
|
3521
|
+
}),
|
|
3522
|
+
[
|
|
3523
|
+
columns,
|
|
3524
|
+
setColumns,
|
|
3525
|
+
getItemValue,
|
|
3526
|
+
columnIds,
|
|
3527
|
+
activeId,
|
|
3528
|
+
findContainer,
|
|
3529
|
+
isColumn
|
|
3530
|
+
]
|
|
3531
|
+
);
|
|
3532
|
+
return /* @__PURE__ */ jsxRuntime.jsx(KanbanContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3533
|
+
core.DndContext,
|
|
3534
|
+
{
|
|
3535
|
+
sensors,
|
|
3536
|
+
onDragStart: handleDragStart,
|
|
3537
|
+
onDragOver: handleDragOver,
|
|
3538
|
+
onDragEnd: handleDragEnd,
|
|
3539
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3540
|
+
"div",
|
|
3541
|
+
{
|
|
3542
|
+
"data-slot": "kanban",
|
|
3543
|
+
"data-dragging": activeId !== null,
|
|
3544
|
+
className: cn(className),
|
|
3545
|
+
children
|
|
3546
|
+
}
|
|
3547
|
+
)
|
|
3548
|
+
}
|
|
3549
|
+
) });
|
|
3550
|
+
}
|
|
3551
|
+
function KanbanBoard({ children, className }) {
|
|
3552
|
+
const { columnIds } = React4__namespace.useContext(KanbanContext);
|
|
3553
|
+
return /* @__PURE__ */ jsxRuntime.jsx(sortable.SortableContext, { items: columnIds, strategy: sortable.rectSortingStrategy, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3554
|
+
"div",
|
|
3555
|
+
{
|
|
3556
|
+
"data-slot": "kanban-board",
|
|
3557
|
+
className: cn("grid auto-rows-fr gap-4", className),
|
|
3558
|
+
children
|
|
3559
|
+
}
|
|
3560
|
+
) });
|
|
3561
|
+
}
|
|
3562
|
+
function KanbanColumn({
|
|
3563
|
+
value,
|
|
3564
|
+
className,
|
|
3565
|
+
children,
|
|
3566
|
+
disabled
|
|
3567
|
+
}) {
|
|
3568
|
+
const {
|
|
3569
|
+
setNodeRef,
|
|
3570
|
+
transform,
|
|
3571
|
+
transition,
|
|
3572
|
+
attributes,
|
|
3573
|
+
listeners,
|
|
3574
|
+
isDragging: isSortableDragging
|
|
3575
|
+
} = sortable.useSortable({
|
|
3576
|
+
id: value,
|
|
3577
|
+
disabled
|
|
3578
|
+
});
|
|
3579
|
+
const { activeId, isColumn } = React4__namespace.useContext(KanbanContext);
|
|
3580
|
+
const isColumnDragging = activeId ? isColumn(activeId) : false;
|
|
3581
|
+
const style = {
|
|
3582
|
+
transition,
|
|
3583
|
+
transform: utilities.CSS.Translate.toString(transform)
|
|
3584
|
+
};
|
|
3585
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3586
|
+
ColumnContext.Provider,
|
|
3587
|
+
{
|
|
3588
|
+
value: { attributes, listeners, isDragging: isColumnDragging, disabled },
|
|
3589
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3590
|
+
"div",
|
|
3591
|
+
{
|
|
3592
|
+
"data-slot": "kanban-column",
|
|
3593
|
+
"data-value": value,
|
|
3594
|
+
"data-dragging": isSortableDragging,
|
|
3595
|
+
"data-disabled": disabled,
|
|
3596
|
+
ref: setNodeRef,
|
|
3597
|
+
style,
|
|
3598
|
+
className: cn(
|
|
3599
|
+
"group/kanban-column flex flex-col",
|
|
3600
|
+
isSortableDragging && "opacity-50",
|
|
3601
|
+
disabled && "opacity-50",
|
|
3602
|
+
className
|
|
3603
|
+
),
|
|
3604
|
+
children
|
|
3605
|
+
}
|
|
3606
|
+
)
|
|
3607
|
+
}
|
|
3608
|
+
);
|
|
3609
|
+
}
|
|
3610
|
+
function KanbanColumnHandle({
|
|
3611
|
+
asChild,
|
|
3612
|
+
className,
|
|
3613
|
+
children,
|
|
3614
|
+
cursor = true
|
|
3615
|
+
}) {
|
|
3616
|
+
const { attributes, listeners, isDragging, disabled } = React4__namespace.useContext(ColumnContext);
|
|
3617
|
+
const Comp = asChild ? SlotPrimitive2.Slot : "div";
|
|
3618
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3619
|
+
Comp,
|
|
3620
|
+
{
|
|
3621
|
+
"data-slot": "kanban-column-handle",
|
|
3622
|
+
"data-dragging": isDragging,
|
|
3623
|
+
"data-disabled": disabled,
|
|
3624
|
+
...attributes,
|
|
3625
|
+
...listeners,
|
|
3626
|
+
className: cn(
|
|
3627
|
+
"opacity-0 transition-opacity group-hover/kanban-column:opacity-100",
|
|
3628
|
+
cursor && (isDragging ? "cursor-grabbing!" : "cursor-grab!"),
|
|
3629
|
+
className
|
|
3630
|
+
),
|
|
3631
|
+
children
|
|
3632
|
+
}
|
|
3633
|
+
);
|
|
3634
|
+
}
|
|
3635
|
+
function KanbanItem({
|
|
3636
|
+
value,
|
|
3637
|
+
asChild = false,
|
|
3638
|
+
className,
|
|
3639
|
+
children,
|
|
3640
|
+
disabled
|
|
3641
|
+
}) {
|
|
3642
|
+
const {
|
|
3643
|
+
setNodeRef,
|
|
3644
|
+
transform,
|
|
3645
|
+
transition,
|
|
3646
|
+
attributes,
|
|
3647
|
+
listeners,
|
|
3648
|
+
isDragging: isSortableDragging
|
|
3649
|
+
} = sortable.useSortable({
|
|
3650
|
+
id: value,
|
|
3651
|
+
disabled
|
|
3652
|
+
});
|
|
3653
|
+
const { activeId, isColumn } = React4__namespace.useContext(KanbanContext);
|
|
3654
|
+
const isItemDragging = activeId ? !isColumn(activeId) : false;
|
|
3655
|
+
const style = {
|
|
3656
|
+
transition,
|
|
3657
|
+
transform: utilities.CSS.Translate.toString(transform)
|
|
3658
|
+
};
|
|
3659
|
+
const Comp = asChild ? SlotPrimitive2.Slot : "div";
|
|
3660
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3661
|
+
ItemContext.Provider,
|
|
3662
|
+
{
|
|
3663
|
+
value: { listeners, isDragging: isItemDragging, disabled },
|
|
3664
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3665
|
+
Comp,
|
|
3666
|
+
{
|
|
3667
|
+
"data-slot": "kanban-item",
|
|
3668
|
+
"data-value": value,
|
|
3669
|
+
"data-dragging": isSortableDragging,
|
|
3670
|
+
"data-disabled": disabled,
|
|
3671
|
+
ref: setNodeRef,
|
|
3672
|
+
style,
|
|
3673
|
+
...attributes,
|
|
3674
|
+
className: cn(
|
|
3675
|
+
isSortableDragging && "opacity-50",
|
|
3676
|
+
disabled && "opacity-50",
|
|
3677
|
+
className
|
|
3678
|
+
),
|
|
3679
|
+
children
|
|
3680
|
+
}
|
|
3681
|
+
)
|
|
3682
|
+
}
|
|
3683
|
+
);
|
|
3684
|
+
}
|
|
3685
|
+
function KanbanItemHandle({
|
|
3686
|
+
asChild,
|
|
3687
|
+
className,
|
|
3688
|
+
children,
|
|
3689
|
+
cursor = true
|
|
3690
|
+
}) {
|
|
3691
|
+
const { listeners, isDragging, disabled } = React4__namespace.useContext(ItemContext);
|
|
3692
|
+
const Comp = asChild ? SlotPrimitive2.Slot : "div";
|
|
3693
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3694
|
+
Comp,
|
|
3695
|
+
{
|
|
3696
|
+
"data-slot": "kanban-item-handle",
|
|
3697
|
+
"data-dragging": isDragging,
|
|
3698
|
+
"data-disabled": disabled,
|
|
3699
|
+
...listeners,
|
|
3700
|
+
className: cn(
|
|
3701
|
+
cursor && (isDragging ? "cursor-grabbing!" : "cursor-grab!"),
|
|
3702
|
+
className
|
|
3703
|
+
),
|
|
3704
|
+
children
|
|
3705
|
+
}
|
|
3706
|
+
);
|
|
3707
|
+
}
|
|
3708
|
+
function KanbanColumnContent({
|
|
3709
|
+
value,
|
|
3710
|
+
className,
|
|
3711
|
+
children
|
|
3712
|
+
}) {
|
|
3713
|
+
const { columns, getItemId } = React4__namespace.useContext(KanbanContext);
|
|
3714
|
+
const itemIds = React4__namespace.useMemo(
|
|
3715
|
+
() => columns[value].map(getItemId),
|
|
3716
|
+
[columns, getItemId, value]
|
|
3717
|
+
);
|
|
3718
|
+
return /* @__PURE__ */ jsxRuntime.jsx(sortable.SortableContext, { items: itemIds, strategy: sortable.verticalListSortingStrategy, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3719
|
+
"div",
|
|
3720
|
+
{
|
|
3721
|
+
"data-slot": "kanban-column-content",
|
|
3722
|
+
className: cn("flex flex-col gap-2", className),
|
|
3723
|
+
children
|
|
3724
|
+
}
|
|
3725
|
+
) });
|
|
3726
|
+
}
|
|
3727
|
+
function KanbanOverlay({ children, className }) {
|
|
3728
|
+
const { activeId, isColumn } = React4__namespace.useContext(KanbanContext);
|
|
3729
|
+
const [dimensions, setDimensions] = React4__namespace.useState(null);
|
|
3730
|
+
React4__namespace.useEffect(() => {
|
|
3731
|
+
if (activeId) {
|
|
3732
|
+
const element = document.querySelector(
|
|
3733
|
+
`[data-slot="kanban-${isColumn(activeId) ? "column" : "item"}"][data-value="${activeId}"]`
|
|
3734
|
+
);
|
|
3735
|
+
if (element) {
|
|
3736
|
+
const rect = element.getBoundingClientRect();
|
|
3737
|
+
setDimensions({ width: rect.width, height: rect.height });
|
|
3738
|
+
}
|
|
3739
|
+
} else {
|
|
3740
|
+
setDimensions(null);
|
|
3741
|
+
}
|
|
3742
|
+
}, [activeId, isColumn]);
|
|
3743
|
+
const style = {
|
|
3744
|
+
width: dimensions?.width,
|
|
3745
|
+
height: dimensions?.height
|
|
3746
|
+
};
|
|
3747
|
+
const content = React4__namespace.useMemo(() => {
|
|
3748
|
+
if (!activeId) return null;
|
|
3749
|
+
if (typeof children === "function") {
|
|
3750
|
+
return children({
|
|
3751
|
+
value: activeId,
|
|
3752
|
+
variant: isColumn(activeId) ? "column" : "item"
|
|
3753
|
+
});
|
|
3754
|
+
}
|
|
3755
|
+
return children;
|
|
3756
|
+
}, [activeId, children, isColumn]);
|
|
3757
|
+
return /* @__PURE__ */ jsxRuntime.jsx(core.DragOverlay, { dropAnimation: dropAnimationConfig, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3758
|
+
"div",
|
|
3759
|
+
{
|
|
3760
|
+
"data-slot": "kanban-overlay",
|
|
3761
|
+
"data-dragging": true,
|
|
3762
|
+
style,
|
|
3763
|
+
className: cn(
|
|
3764
|
+
"pointer-events-none",
|
|
3765
|
+
className,
|
|
3766
|
+
activeId ? "cursor-grabbing!" : ""
|
|
3767
|
+
),
|
|
3768
|
+
children: content
|
|
3769
|
+
}
|
|
3770
|
+
) });
|
|
3771
|
+
}
|
|
3772
|
+
var badgeVariants = classVarianceAuthority.cva(
|
|
3773
|
+
"inline-flex items-center justify-center border border-transparent font-medium focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 [&_svg]:-ms-px [&_svg]:shrink-0",
|
|
3774
|
+
{
|
|
3775
|
+
variants: {
|
|
3776
|
+
variant: {
|
|
3777
|
+
primary: "bg-primary text-primary-foreground",
|
|
3778
|
+
secondary: "bg-secondary text-secondary-foreground",
|
|
3779
|
+
success: "bg-[var(--color-success-accent,var(--color-green-500))] text-[var(--color-success-foreground,var(--color-white))]",
|
|
3780
|
+
warning: "bg-[var(--color-warning-accent,var(--color-yellow-500))] text-[var(--color-warning-foreground,var(--color-white))]",
|
|
3781
|
+
info: "bg-[var(--color-info-accent,var(--color-violet-500))] text-[var(--color-info-foreground,var(--color-white))]",
|
|
3782
|
+
outline: "bg-transparent border border-border text-secondary-foreground",
|
|
3783
|
+
destructive: "bg-destructive text-destructive-foreground"
|
|
3784
|
+
},
|
|
3785
|
+
appearance: {
|
|
3786
|
+
default: "",
|
|
3787
|
+
light: "",
|
|
3788
|
+
outline: "",
|
|
3789
|
+
ghost: "border-transparent bg-transparent"
|
|
3790
|
+
},
|
|
3791
|
+
disabled: {
|
|
3792
|
+
true: "opacity-50 pointer-events-none"
|
|
3793
|
+
},
|
|
3794
|
+
size: {
|
|
3795
|
+
lg: "rounded-md px-[0.5rem] h-7 min-w-7 gap-1.5 text-xs [&_svg]:size-3.5",
|
|
3796
|
+
md: "rounded-md px-[0.45rem] h-6 min-w-6 gap-1.5 text-xs [&_svg]:size-3.5 ",
|
|
3797
|
+
sm: "rounded-sm px-[0.325rem] h-5 min-w-5 gap-1 text-[0.6875rem] leading-[0.75rem] [&_svg]:size-3",
|
|
3798
|
+
xs: "rounded-sm px-[0.25rem] h-4 min-w-4 gap-1 text-[0.625rem] leading-[0.5rem] [&_svg]:size-3"
|
|
3799
|
+
},
|
|
3800
|
+
shape: {
|
|
3801
|
+
default: "",
|
|
3802
|
+
circle: "rounded-full"
|
|
3803
|
+
}
|
|
3804
|
+
},
|
|
3805
|
+
compoundVariants: [
|
|
3806
|
+
/* Light */
|
|
3807
|
+
{
|
|
3808
|
+
variant: "primary",
|
|
3809
|
+
appearance: "light",
|
|
3810
|
+
className: "text-[var(--color-primary-accent,var(--color-blue-700))] bg-[var(--color-primary-soft,var(--color-blue-50))] dark:bg-[var(--color-primary-soft,var(--color-blue-950))] dark:text-[var(--color-primary-soft,var(--color-blue-600))]"
|
|
3811
|
+
},
|
|
3812
|
+
{
|
|
3813
|
+
variant: "secondary",
|
|
3814
|
+
appearance: "light",
|
|
3815
|
+
className: "bg-secondary dark:bg-secondary/50 text-secondary-foreground"
|
|
3816
|
+
},
|
|
3817
|
+
{
|
|
3818
|
+
variant: "success",
|
|
3819
|
+
appearance: "light",
|
|
3820
|
+
className: "text-[var(--color-success-accent,var(--color-green-800))] bg-[var(--color-success-soft,var(--color-green-100))] dark:bg-[var(--color-success-soft,var(--color-green-950))] dark:text-[var(--color-success-soft,var(--color-green-600))]"
|
|
3821
|
+
},
|
|
3822
|
+
{
|
|
3823
|
+
variant: "warning",
|
|
3824
|
+
appearance: "light",
|
|
3825
|
+
className: "text-[var(--color-warning-accent,var(--color-yellow-700))] bg-[var(--color-warning-soft,var(--color-yellow-100))] dark:bg-[var(--color-warning-soft,var(--color-yellow-950))] dark:text-[var(--color-warning-soft,var(--color-yellow-600))]"
|
|
3826
|
+
},
|
|
2988
3827
|
{
|
|
2989
3828
|
variant: "info",
|
|
2990
3829
|
appearance: "light",
|
|
@@ -3130,46 +3969,532 @@ function BadgeDot({ className, ...props }) {
|
|
|
3130
3969
|
}
|
|
3131
3970
|
);
|
|
3132
3971
|
}
|
|
3133
|
-
|
|
3134
|
-
|
|
3135
|
-
|
|
3136
|
-
|
|
3137
|
-
|
|
3138
|
-
|
|
3139
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3140
|
-
"ol",
|
|
3141
|
-
{
|
|
3142
|
-
"data-slot": "breadcrumb-list",
|
|
3143
|
-
className: cn(
|
|
3144
|
-
"flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground",
|
|
3145
|
-
className
|
|
3146
|
-
),
|
|
3147
|
-
...props
|
|
3972
|
+
var accordionRootVariants = classVarianceAuthority.cva("", {
|
|
3973
|
+
variants: {
|
|
3974
|
+
variant: {
|
|
3975
|
+
default: "",
|
|
3976
|
+
outline: "space-y-2",
|
|
3977
|
+
solid: "space-y-2"
|
|
3148
3978
|
}
|
|
3149
|
-
|
|
3150
|
-
|
|
3151
|
-
|
|
3979
|
+
},
|
|
3980
|
+
defaultVariants: {
|
|
3981
|
+
variant: "default"
|
|
3982
|
+
}
|
|
3983
|
+
});
|
|
3984
|
+
var accordionItemVariants = classVarianceAuthority.cva("", {
|
|
3985
|
+
variants: {
|
|
3986
|
+
variant: {
|
|
3987
|
+
default: "border-b border-border",
|
|
3988
|
+
outline: "border border-border rounded-lg px-4",
|
|
3989
|
+
solid: "rounded-lg bg-accent/70 px-4"
|
|
3990
|
+
}
|
|
3991
|
+
},
|
|
3992
|
+
defaultVariants: {
|
|
3993
|
+
variant: "default"
|
|
3994
|
+
}
|
|
3995
|
+
});
|
|
3996
|
+
var accordionTriggerVariants = classVarianceAuthority.cva(
|
|
3997
|
+
"flex flex-1 items-center justify-between py-4 gap-2.5 text-foreground font-medium transition-all [&[data-state=open]>svg]:rotate-180 cursor-pointer",
|
|
3998
|
+
{
|
|
3999
|
+
variants: {
|
|
4000
|
+
variant: {
|
|
4001
|
+
default: "",
|
|
4002
|
+
outline: "",
|
|
4003
|
+
solid: ""
|
|
4004
|
+
},
|
|
4005
|
+
indicator: {
|
|
4006
|
+
arrow: "",
|
|
4007
|
+
plus: "[&>svg>path:last-child]:origin-center [&>svg>path:last-child]:transition-all [&>svg>path:last-child]:duration-200 [&[data-state=open]>svg>path:last-child]:rotate-90 [&[data-state=open]>svg>path:last-child]:opacity-0 [&[data-state=open]>svg]:rotate-180",
|
|
4008
|
+
none: ""
|
|
4009
|
+
}
|
|
4010
|
+
},
|
|
4011
|
+
defaultVariants: {
|
|
4012
|
+
variant: "default",
|
|
4013
|
+
indicator: "arrow"
|
|
4014
|
+
}
|
|
4015
|
+
}
|
|
4016
|
+
);
|
|
4017
|
+
var accordionContentVariants = classVarianceAuthority.cva(
|
|
4018
|
+
"overflow-hidden text-sm text-accent-foreground transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",
|
|
4019
|
+
{
|
|
4020
|
+
variants: {
|
|
4021
|
+
variant: {
|
|
4022
|
+
default: "",
|
|
4023
|
+
outline: "",
|
|
4024
|
+
solid: ""
|
|
4025
|
+
}
|
|
4026
|
+
},
|
|
4027
|
+
defaultVariants: {
|
|
4028
|
+
variant: "default"
|
|
4029
|
+
}
|
|
4030
|
+
}
|
|
4031
|
+
);
|
|
4032
|
+
var AccordionContext = React4__namespace.createContext({
|
|
4033
|
+
variant: "default",
|
|
4034
|
+
indicator: "arrow"
|
|
4035
|
+
});
|
|
4036
|
+
function Accordion(props) {
|
|
4037
|
+
const {
|
|
4038
|
+
className,
|
|
4039
|
+
variant = "default",
|
|
4040
|
+
indicator = "arrow",
|
|
4041
|
+
children,
|
|
4042
|
+
...rest
|
|
4043
|
+
} = props;
|
|
3152
4044
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3153
|
-
|
|
4045
|
+
AccordionContext.Provider,
|
|
3154
4046
|
{
|
|
3155
|
-
|
|
3156
|
-
|
|
3157
|
-
|
|
4047
|
+
value: { variant: variant || "default", indicator },
|
|
4048
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
4049
|
+
radixUi.Accordion.Root,
|
|
4050
|
+
{
|
|
4051
|
+
"data-slot": "accordion",
|
|
4052
|
+
className: cn(accordionRootVariants({ variant }), className),
|
|
4053
|
+
...rest,
|
|
4054
|
+
children
|
|
4055
|
+
}
|
|
4056
|
+
)
|
|
3158
4057
|
}
|
|
3159
4058
|
);
|
|
3160
4059
|
}
|
|
3161
|
-
function
|
|
3162
|
-
|
|
3163
|
-
|
|
3164
|
-
...props
|
|
3165
|
-
}) {
|
|
3166
|
-
const Comp = asChild ? radixUi.Slot.Slot : "a";
|
|
4060
|
+
function AccordionItem(props) {
|
|
4061
|
+
const { className, children, ...rest } = props;
|
|
4062
|
+
const { variant } = React4__namespace.useContext(AccordionContext);
|
|
3167
4063
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3168
|
-
|
|
4064
|
+
radixUi.Accordion.Item,
|
|
3169
4065
|
{
|
|
3170
|
-
"data-slot": "
|
|
3171
|
-
className: cn(
|
|
3172
|
-
...
|
|
4066
|
+
"data-slot": "accordion-item",
|
|
4067
|
+
className: cn(accordionItemVariants({ variant }), className),
|
|
4068
|
+
...rest,
|
|
4069
|
+
children
|
|
4070
|
+
}
|
|
4071
|
+
);
|
|
4072
|
+
}
|
|
4073
|
+
function AccordionTrigger(props) {
|
|
4074
|
+
const { className, children, ...rest } = props;
|
|
4075
|
+
const { variant, indicator } = React4__namespace.useContext(AccordionContext);
|
|
4076
|
+
return /* @__PURE__ */ jsxRuntime.jsx(radixUi.Accordion.Header, { className: "flex", children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
4077
|
+
radixUi.Accordion.Trigger,
|
|
4078
|
+
{
|
|
4079
|
+
"data-slot": "accordion-trigger",
|
|
4080
|
+
className: cn(
|
|
4081
|
+
accordionTriggerVariants({ variant, indicator }),
|
|
4082
|
+
className
|
|
4083
|
+
),
|
|
4084
|
+
...rest,
|
|
4085
|
+
children: [
|
|
4086
|
+
children,
|
|
4087
|
+
indicator === "plus" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
4088
|
+
lucideReact.Plus,
|
|
4089
|
+
{
|
|
4090
|
+
className: "size-4 shrink-0 transition-transform duration-200",
|
|
4091
|
+
strokeWidth: 1
|
|
4092
|
+
}
|
|
4093
|
+
),
|
|
4094
|
+
indicator === "arrow" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
4095
|
+
lucideReact.ChevronDown,
|
|
4096
|
+
{
|
|
4097
|
+
className: "size-4 shrink-0 transition-transform duration-200",
|
|
4098
|
+
strokeWidth: 1
|
|
4099
|
+
}
|
|
4100
|
+
)
|
|
4101
|
+
]
|
|
4102
|
+
}
|
|
4103
|
+
) });
|
|
4104
|
+
}
|
|
4105
|
+
function AccordionContent(props) {
|
|
4106
|
+
const { className, children, ...rest } = props;
|
|
4107
|
+
const { variant } = React4__namespace.useContext(AccordionContext);
|
|
4108
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4109
|
+
radixUi.Accordion.Content,
|
|
4110
|
+
{
|
|
4111
|
+
"data-slot": "accordion-content",
|
|
4112
|
+
className: cn(accordionContentVariants({ variant }), className),
|
|
4113
|
+
...rest,
|
|
4114
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "pb-5 pt-0", children })
|
|
4115
|
+
}
|
|
4116
|
+
);
|
|
4117
|
+
}
|
|
4118
|
+
var AccordionMenuContext = React4__namespace.createContext({
|
|
4119
|
+
matchPath: () => false,
|
|
4120
|
+
selectedValue: "",
|
|
4121
|
+
setSelectedValue: () => {
|
|
4122
|
+
},
|
|
4123
|
+
nestedStates: {},
|
|
4124
|
+
setNestedStates: () => {
|
|
4125
|
+
}
|
|
4126
|
+
});
|
|
4127
|
+
function AccordionMenu({
|
|
4128
|
+
className,
|
|
4129
|
+
matchPath = () => false,
|
|
4130
|
+
classNames,
|
|
4131
|
+
children,
|
|
4132
|
+
selectedValue,
|
|
4133
|
+
onItemClick,
|
|
4134
|
+
...props
|
|
4135
|
+
}) {
|
|
4136
|
+
const [internalSelectedValue, setInternalSelectedValue] = React4__namespace.useState(selectedValue);
|
|
4137
|
+
React4__namespace.useEffect(() => {
|
|
4138
|
+
setInternalSelectedValue(selectedValue);
|
|
4139
|
+
}, [selectedValue]);
|
|
4140
|
+
const [nestedStates, setNestedStates] = React4__namespace.useState({});
|
|
4141
|
+
React4__namespace.useEffect(() => {
|
|
4142
|
+
const getActiveChain = (nodes, chain2 = []) => {
|
|
4143
|
+
let result = [];
|
|
4144
|
+
React4__namespace.Children.forEach(nodes, (node) => {
|
|
4145
|
+
if (React4__namespace.isValidElement(node)) {
|
|
4146
|
+
const { value, children: nodeChildren } = node.props;
|
|
4147
|
+
const newChain = value ? [...chain2, value] : chain2;
|
|
4148
|
+
if (value && (value === selectedValue || matchPath(value))) {
|
|
4149
|
+
result = newChain;
|
|
4150
|
+
} else if (nodeChildren) {
|
|
4151
|
+
const childChain = getActiveChain(nodeChildren, newChain);
|
|
4152
|
+
if (childChain.length > 0) {
|
|
4153
|
+
result = childChain;
|
|
4154
|
+
}
|
|
4155
|
+
}
|
|
4156
|
+
}
|
|
4157
|
+
});
|
|
4158
|
+
return result;
|
|
4159
|
+
};
|
|
4160
|
+
const chain = getActiveChain(children);
|
|
4161
|
+
const trimmedChain = chain.length > 1 ? chain.slice(0, chain.length - 1) : chain;
|
|
4162
|
+
const mapping = {};
|
|
4163
|
+
if (trimmedChain.length > 0) {
|
|
4164
|
+
if (props.type === "multiple") {
|
|
4165
|
+
mapping["root"] = trimmedChain;
|
|
4166
|
+
} else {
|
|
4167
|
+
mapping["root"] = trimmedChain[0];
|
|
4168
|
+
for (let i = 0; i < trimmedChain.length - 1; i++) {
|
|
4169
|
+
mapping[trimmedChain[i]] = trimmedChain[i + 1];
|
|
4170
|
+
}
|
|
4171
|
+
}
|
|
4172
|
+
}
|
|
4173
|
+
setNestedStates(mapping);
|
|
4174
|
+
}, [selectedValue]);
|
|
4175
|
+
const multipleValue = Array.isArray(nestedStates["root"]) ? nestedStates["root"] : typeof nestedStates["root"] === "string" ? [nestedStates["root"]] : [];
|
|
4176
|
+
const singleValue = nestedStates["root"] ?? "";
|
|
4177
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4178
|
+
AccordionMenuContext.Provider,
|
|
4179
|
+
{
|
|
4180
|
+
value: {
|
|
4181
|
+
matchPath,
|
|
4182
|
+
selectedValue: internalSelectedValue,
|
|
4183
|
+
setSelectedValue: setInternalSelectedValue,
|
|
4184
|
+
classNames,
|
|
4185
|
+
onItemClick,
|
|
4186
|
+
nestedStates,
|
|
4187
|
+
setNestedStates
|
|
4188
|
+
},
|
|
4189
|
+
children: props.type === "single" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
4190
|
+
radixUi.Accordion.Root,
|
|
4191
|
+
{
|
|
4192
|
+
"data-slot": "accordion-menu",
|
|
4193
|
+
value: singleValue,
|
|
4194
|
+
className: cn("w-full", classNames?.root, className),
|
|
4195
|
+
onValueChange: (value) => setNestedStates((prev) => ({ ...prev, root: value })),
|
|
4196
|
+
...props,
|
|
4197
|
+
role: "menu",
|
|
4198
|
+
children
|
|
4199
|
+
}
|
|
4200
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
4201
|
+
radixUi.Accordion.Root,
|
|
4202
|
+
{
|
|
4203
|
+
"data-slot": "accordion-menu",
|
|
4204
|
+
value: multipleValue,
|
|
4205
|
+
className: cn("w-full", classNames?.root, className),
|
|
4206
|
+
onValueChange: (value) => setNestedStates((prev) => ({ ...prev, root: value })),
|
|
4207
|
+
...props,
|
|
4208
|
+
role: "menu",
|
|
4209
|
+
children
|
|
4210
|
+
}
|
|
4211
|
+
)
|
|
4212
|
+
}
|
|
4213
|
+
);
|
|
4214
|
+
}
|
|
4215
|
+
function AccordionMenuGroup({
|
|
4216
|
+
children,
|
|
4217
|
+
className,
|
|
4218
|
+
...props
|
|
4219
|
+
}) {
|
|
4220
|
+
const { classNames } = React4__namespace.useContext(AccordionMenuContext);
|
|
4221
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4222
|
+
"div",
|
|
4223
|
+
{
|
|
4224
|
+
"data-slot": "accordion-menu-group",
|
|
4225
|
+
role: "group",
|
|
4226
|
+
className: cn("space-y-0.5", classNames?.group, className),
|
|
4227
|
+
...props,
|
|
4228
|
+
children
|
|
4229
|
+
}
|
|
4230
|
+
);
|
|
4231
|
+
}
|
|
4232
|
+
function AccordionMenuLabel({
|
|
4233
|
+
children,
|
|
4234
|
+
className,
|
|
4235
|
+
...props
|
|
4236
|
+
}) {
|
|
4237
|
+
const { classNames } = React4__namespace.useContext(AccordionMenuContext);
|
|
4238
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4239
|
+
"div",
|
|
4240
|
+
{
|
|
4241
|
+
"data-slot": "accordion-menu-label",
|
|
4242
|
+
role: "presentation",
|
|
4243
|
+
className: cn(
|
|
4244
|
+
"px-2 py-1.5 text-xs font-medium text-muted-foreground",
|
|
4245
|
+
classNames?.label,
|
|
4246
|
+
className
|
|
4247
|
+
),
|
|
4248
|
+
...props,
|
|
4249
|
+
children
|
|
4250
|
+
}
|
|
4251
|
+
);
|
|
4252
|
+
}
|
|
4253
|
+
function AccordionMenuSeparator({
|
|
4254
|
+
className,
|
|
4255
|
+
...props
|
|
4256
|
+
}) {
|
|
4257
|
+
const { classNames } = React4__namespace.useContext(AccordionMenuContext);
|
|
4258
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4259
|
+
"div",
|
|
4260
|
+
{
|
|
4261
|
+
"data-slot": "accordion-menu-separator",
|
|
4262
|
+
role: "separator",
|
|
4263
|
+
className: cn("my-1 h-px bg-border", classNames?.separator, className),
|
|
4264
|
+
...props
|
|
4265
|
+
}
|
|
4266
|
+
);
|
|
4267
|
+
}
|
|
4268
|
+
var itemVariants = classVarianceAuthority.cva(
|
|
4269
|
+
"relative cursor-pointer select-none flex w-full text-start items-center text-foreground rounded-lg gap-2 px-2 py-1.5 text-sm outline-hidden transition-colors hover:bg-accent hover:text-accent-foreground data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground disabled:opacity-50 disabled:bg-transparent focus-visible:bg-accent focus-visible:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:opacity-60 [&_svg:not([class*=size-])]:size-4 [&_svg]:shrink-0 [&_a]:flex [&>a]:w-full [&>a]:items-center [&>a]:gap-2",
|
|
4270
|
+
{
|
|
4271
|
+
variants: {
|
|
4272
|
+
variant: {
|
|
4273
|
+
default: "",
|
|
4274
|
+
destructive: "text-destructive hover:text-destructive focus:text-destructive hover:bg-destructive/5 focus:bg-destructive/5 data-[active=true]:bg-destructive/5"
|
|
4275
|
+
}
|
|
4276
|
+
},
|
|
4277
|
+
defaultVariants: {
|
|
4278
|
+
variant: "default"
|
|
4279
|
+
}
|
|
4280
|
+
}
|
|
4281
|
+
);
|
|
4282
|
+
function AccordionMenuItem({
|
|
4283
|
+
className,
|
|
4284
|
+
children,
|
|
4285
|
+
variant,
|
|
4286
|
+
asChild,
|
|
4287
|
+
onClick,
|
|
4288
|
+
...props
|
|
4289
|
+
}) {
|
|
4290
|
+
const { classNames, selectedValue, matchPath, onItemClick } = React4__namespace.useContext(AccordionMenuContext);
|
|
4291
|
+
return /* @__PURE__ */ jsxRuntime.jsx(radixUi.Accordion.Item, { className: "flex", ...props, children: /* @__PURE__ */ jsxRuntime.jsx(radixUi.Accordion.Header, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex w-full", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
4292
|
+
radixUi.Accordion.Trigger,
|
|
4293
|
+
{
|
|
4294
|
+
role: "menuitem",
|
|
4295
|
+
asChild,
|
|
4296
|
+
"data-slot": "accordion-menu-item",
|
|
4297
|
+
className: cn(
|
|
4298
|
+
itemVariants({ variant }),
|
|
4299
|
+
classNames?.item,
|
|
4300
|
+
className
|
|
4301
|
+
),
|
|
4302
|
+
onClick: (e) => {
|
|
4303
|
+
if (onItemClick) {
|
|
4304
|
+
onItemClick(props.value, e);
|
|
4305
|
+
}
|
|
4306
|
+
if (onClick) {
|
|
4307
|
+
onClick(e);
|
|
4308
|
+
}
|
|
4309
|
+
e.preventDefault();
|
|
4310
|
+
},
|
|
4311
|
+
onKeyDown: (e) => {
|
|
4312
|
+
if (e.key === "Enter") {
|
|
4313
|
+
e.preventDefault();
|
|
4314
|
+
const target = e.currentTarget;
|
|
4315
|
+
const firstChild = target.firstElementChild;
|
|
4316
|
+
if (firstChild) {
|
|
4317
|
+
firstChild.click();
|
|
4318
|
+
}
|
|
4319
|
+
}
|
|
4320
|
+
},
|
|
4321
|
+
"data-selected": matchPath(props.value) || selectedValue === props.value ? "true" : void 0,
|
|
4322
|
+
children
|
|
4323
|
+
}
|
|
4324
|
+
) }) }) });
|
|
4325
|
+
}
|
|
4326
|
+
function AccordionMenuSub({
|
|
4327
|
+
className,
|
|
4328
|
+
children,
|
|
4329
|
+
...props
|
|
4330
|
+
}) {
|
|
4331
|
+
const { classNames } = React4__namespace.useContext(AccordionMenuContext);
|
|
4332
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4333
|
+
radixUi.Accordion.Item,
|
|
4334
|
+
{
|
|
4335
|
+
"data-slot": "accordion-menu-sub",
|
|
4336
|
+
className: cn(classNames?.sub, className),
|
|
4337
|
+
...props,
|
|
4338
|
+
children
|
|
4339
|
+
}
|
|
4340
|
+
);
|
|
4341
|
+
}
|
|
4342
|
+
function AccordionMenuSubTrigger({
|
|
4343
|
+
className,
|
|
4344
|
+
children
|
|
4345
|
+
}) {
|
|
4346
|
+
const { classNames } = React4__namespace.useContext(AccordionMenuContext);
|
|
4347
|
+
return /* @__PURE__ */ jsxRuntime.jsx(radixUi.Accordion.Header, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex", children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
4348
|
+
radixUi.Accordion.Trigger,
|
|
4349
|
+
{
|
|
4350
|
+
role: "menuitem",
|
|
4351
|
+
"aria-haspopup": "true",
|
|
4352
|
+
"data-slot": "accordion-menu-sub-trigger",
|
|
4353
|
+
className: cn(
|
|
4354
|
+
itemVariants({ variant: "default" }),
|
|
4355
|
+
classNames?.subTrigger,
|
|
4356
|
+
className
|
|
4357
|
+
),
|
|
4358
|
+
children: [
|
|
4359
|
+
children,
|
|
4360
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4361
|
+
lucideReact.ChevronDown,
|
|
4362
|
+
{
|
|
4363
|
+
"data-slot": "accordion-menu-sub-indicator",
|
|
4364
|
+
className: cn(
|
|
4365
|
+
"ms-auto size-3.5! shrink-0 text-muted-foreground transition-transform duration-200 [[data-state=open]>&]:-rotate-180"
|
|
4366
|
+
)
|
|
4367
|
+
}
|
|
4368
|
+
)
|
|
4369
|
+
]
|
|
4370
|
+
}
|
|
4371
|
+
) }) });
|
|
4372
|
+
}
|
|
4373
|
+
function AccordionMenuSubContent({
|
|
4374
|
+
className,
|
|
4375
|
+
children,
|
|
4376
|
+
type,
|
|
4377
|
+
collapsible,
|
|
4378
|
+
defaultValue,
|
|
4379
|
+
parentValue,
|
|
4380
|
+
...props
|
|
4381
|
+
}) {
|
|
4382
|
+
const { nestedStates, setNestedStates, classNames } = React4__namespace.useContext(AccordionMenuContext);
|
|
4383
|
+
let currentValue;
|
|
4384
|
+
if (type === "multiple") {
|
|
4385
|
+
const stateValue = nestedStates[parentValue];
|
|
4386
|
+
if (Array.isArray(stateValue)) {
|
|
4387
|
+
currentValue = stateValue;
|
|
4388
|
+
} else if (typeof stateValue === "string") {
|
|
4389
|
+
currentValue = [stateValue];
|
|
4390
|
+
} else if (defaultValue) {
|
|
4391
|
+
currentValue = Array.isArray(defaultValue) ? defaultValue : [defaultValue];
|
|
4392
|
+
} else {
|
|
4393
|
+
currentValue = [];
|
|
4394
|
+
}
|
|
4395
|
+
} else {
|
|
4396
|
+
currentValue = nestedStates[parentValue] ?? defaultValue ?? "";
|
|
4397
|
+
}
|
|
4398
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4399
|
+
radixUi.Accordion.Content,
|
|
4400
|
+
{
|
|
4401
|
+
"data-slot": "accordion-menu-sub-content",
|
|
4402
|
+
className: cn(
|
|
4403
|
+
"ps-5",
|
|
4404
|
+
"overflow-hidden transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",
|
|
4405
|
+
classNames?.subContent,
|
|
4406
|
+
className
|
|
4407
|
+
),
|
|
4408
|
+
...props,
|
|
4409
|
+
children: type === "multiple" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
4410
|
+
radixUi.Accordion.Root,
|
|
4411
|
+
{
|
|
4412
|
+
className: cn("w-full py-0.5", classNames?.subWrapper),
|
|
4413
|
+
type: "multiple",
|
|
4414
|
+
value: currentValue,
|
|
4415
|
+
role: "menu",
|
|
4416
|
+
"data-slot": "accordion-menu-sub-wrapper",
|
|
4417
|
+
onValueChange: (value) => {
|
|
4418
|
+
const newValue = Array.isArray(value) ? value : [value];
|
|
4419
|
+
setNestedStates((prev) => ({ ...prev, [parentValue]: newValue }));
|
|
4420
|
+
},
|
|
4421
|
+
children
|
|
4422
|
+
}
|
|
4423
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
4424
|
+
radixUi.Accordion.Root,
|
|
4425
|
+
{
|
|
4426
|
+
className: cn("w-full py-0.5", classNames?.subWrapper),
|
|
4427
|
+
type: "single",
|
|
4428
|
+
collapsible,
|
|
4429
|
+
value: currentValue,
|
|
4430
|
+
role: "menu",
|
|
4431
|
+
"data-slot": "accordion-menu-sub-wrapper",
|
|
4432
|
+
onValueChange: (value) => setNestedStates((prev) => ({ ...prev, [parentValue]: value })),
|
|
4433
|
+
children
|
|
4434
|
+
}
|
|
4435
|
+
)
|
|
4436
|
+
}
|
|
4437
|
+
);
|
|
4438
|
+
}
|
|
4439
|
+
function AccordionMenuIndicator({
|
|
4440
|
+
className,
|
|
4441
|
+
...props
|
|
4442
|
+
}) {
|
|
4443
|
+
const { classNames } = React4__namespace.useContext(AccordionMenuContext);
|
|
4444
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4445
|
+
"span",
|
|
4446
|
+
{
|
|
4447
|
+
"aria-hidden": "true",
|
|
4448
|
+
"data-slot": "accordion-menu-indicator",
|
|
4449
|
+
className: cn(
|
|
4450
|
+
"ms-auto flex items-center font-medium",
|
|
4451
|
+
classNames?.indicator,
|
|
4452
|
+
className
|
|
4453
|
+
),
|
|
4454
|
+
...props
|
|
4455
|
+
}
|
|
4456
|
+
);
|
|
4457
|
+
}
|
|
4458
|
+
function Breadcrumb({
|
|
4459
|
+
...props
|
|
4460
|
+
}) {
|
|
4461
|
+
return /* @__PURE__ */ jsxRuntime.jsx("nav", { "data-slot": "breadcrumb", "aria-label": "breadcrumb", ...props });
|
|
4462
|
+
}
|
|
4463
|
+
function BreadcrumbList({ className, ...props }) {
|
|
4464
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4465
|
+
"ol",
|
|
4466
|
+
{
|
|
4467
|
+
"data-slot": "breadcrumb-list",
|
|
4468
|
+
className: cn(
|
|
4469
|
+
"flex flex-wrap items-center gap-1.5 wrap-break-word text-sm text-muted-foreground",
|
|
4470
|
+
className
|
|
4471
|
+
),
|
|
4472
|
+
...props
|
|
4473
|
+
}
|
|
4474
|
+
);
|
|
4475
|
+
}
|
|
4476
|
+
function BreadcrumbItem({ className, ...props }) {
|
|
4477
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4478
|
+
"li",
|
|
4479
|
+
{
|
|
4480
|
+
"data-slot": "breadcrumb-item",
|
|
4481
|
+
className: cn("inline-flex items-center gap-1.5", className),
|
|
4482
|
+
...props
|
|
4483
|
+
}
|
|
4484
|
+
);
|
|
4485
|
+
}
|
|
4486
|
+
function BreadcrumbLink({
|
|
4487
|
+
asChild,
|
|
4488
|
+
className,
|
|
4489
|
+
...props
|
|
4490
|
+
}) {
|
|
4491
|
+
const Comp = asChild ? radixUi.Slot.Slot : "a";
|
|
4492
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4493
|
+
Comp,
|
|
4494
|
+
{
|
|
4495
|
+
"data-slot": "breadcrumb-link",
|
|
4496
|
+
className: cn("transition-colors hover:text-foreground", className),
|
|
4497
|
+
...props
|
|
3173
4498
|
}
|
|
3174
4499
|
);
|
|
3175
4500
|
}
|
|
@@ -3218,6 +4543,40 @@ var BreadcrumbEllipsis = ({
|
|
|
3218
4543
|
]
|
|
3219
4544
|
}
|
|
3220
4545
|
);
|
|
4546
|
+
function Collapsible({
|
|
4547
|
+
...props
|
|
4548
|
+
}) {
|
|
4549
|
+
return /* @__PURE__ */ jsxRuntime.jsx(radixUi.Collapsible.Root, { "data-slot": "collapsible", ...props });
|
|
4550
|
+
}
|
|
4551
|
+
function CollapsibleTrigger({
|
|
4552
|
+
...props
|
|
4553
|
+
}) {
|
|
4554
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4555
|
+
radixUi.Collapsible.CollapsibleTrigger,
|
|
4556
|
+
{
|
|
4557
|
+
"data-slot": "collapsible-trigger",
|
|
4558
|
+
...props
|
|
4559
|
+
}
|
|
4560
|
+
);
|
|
4561
|
+
}
|
|
4562
|
+
function CollapsibleContent({
|
|
4563
|
+
className,
|
|
4564
|
+
children,
|
|
4565
|
+
...props
|
|
4566
|
+
}) {
|
|
4567
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4568
|
+
radixUi.Collapsible.CollapsibleContent,
|
|
4569
|
+
{
|
|
4570
|
+
"data-slot": "collapsible-content",
|
|
4571
|
+
className: cn(
|
|
4572
|
+
"overflow-hidden transition-all data-[state=closed]:animate-collapsible-up data-[state=open]:animate-collapsible-down",
|
|
4573
|
+
className
|
|
4574
|
+
),
|
|
4575
|
+
...props,
|
|
4576
|
+
children
|
|
4577
|
+
}
|
|
4578
|
+
);
|
|
4579
|
+
}
|
|
3221
4580
|
var tabsListVariantConfig = {
|
|
3222
4581
|
variant: {
|
|
3223
4582
|
default: "bg-accent p-1",
|
|
@@ -3335,7 +4694,7 @@ var tabsContentVariants = classVarianceAuthority.cva(
|
|
|
3335
4694
|
}
|
|
3336
4695
|
}
|
|
3337
4696
|
);
|
|
3338
|
-
var TabsContext =
|
|
4697
|
+
var TabsContext = React4__namespace.createContext({
|
|
3339
4698
|
variant: "default",
|
|
3340
4699
|
size: "md"
|
|
3341
4700
|
});
|
|
@@ -3371,7 +4730,7 @@ function TabsTrigger({
|
|
|
3371
4730
|
className,
|
|
3372
4731
|
...props
|
|
3373
4732
|
}) {
|
|
3374
|
-
const { variant, size } =
|
|
4733
|
+
const { variant, size } = React4__namespace.useContext(TabsContext);
|
|
3375
4734
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3376
4735
|
radixUi.Tabs.Trigger,
|
|
3377
4736
|
{
|
|
@@ -3395,12 +4754,12 @@ function TabsContent({
|
|
|
3395
4754
|
}
|
|
3396
4755
|
);
|
|
3397
4756
|
}
|
|
3398
|
-
var CardContext =
|
|
4757
|
+
var CardContext = React4__namespace.createContext({
|
|
3399
4758
|
variant: "default"
|
|
3400
4759
|
// Default value
|
|
3401
4760
|
});
|
|
3402
4761
|
var useCardContext = () => {
|
|
3403
|
-
const context =
|
|
4762
|
+
const context = React4__namespace.useContext(CardContext);
|
|
3404
4763
|
return context;
|
|
3405
4764
|
};
|
|
3406
4765
|
var cardVariants = classVarianceAuthority.cva(
|
|
@@ -4008,10 +5367,356 @@ function InputWrapper({
|
|
|
4008
5367
|
}
|
|
4009
5368
|
);
|
|
4010
5369
|
}
|
|
4011
|
-
|
|
4012
|
-
|
|
4013
|
-
|
|
4014
|
-
|
|
5370
|
+
function ContextMenu({
|
|
5371
|
+
...props
|
|
5372
|
+
}) {
|
|
5373
|
+
return /* @__PURE__ */ jsxRuntime.jsx(radixUi.ContextMenu.Root, { "data-slot": "context-menu", ...props });
|
|
5374
|
+
}
|
|
5375
|
+
function ContextMenuTrigger({
|
|
5376
|
+
...props
|
|
5377
|
+
}) {
|
|
5378
|
+
return /* @__PURE__ */ jsxRuntime.jsx(radixUi.ContextMenu.Trigger, { "data-slot": "context-menu-trigger", ...props });
|
|
5379
|
+
}
|
|
5380
|
+
function ContextMenuGroup({
|
|
5381
|
+
...props
|
|
5382
|
+
}) {
|
|
5383
|
+
return /* @__PURE__ */ jsxRuntime.jsx(radixUi.ContextMenu.Group, { "data-slot": "context-menu-group", ...props });
|
|
5384
|
+
}
|
|
5385
|
+
function ContextMenuPortal({
|
|
5386
|
+
...props
|
|
5387
|
+
}) {
|
|
5388
|
+
return /* @__PURE__ */ jsxRuntime.jsx(radixUi.ContextMenu.Portal, { "data-slot": "context-menu-portal", ...props });
|
|
5389
|
+
}
|
|
5390
|
+
function ContextMenuSub({
|
|
5391
|
+
...props
|
|
5392
|
+
}) {
|
|
5393
|
+
return /* @__PURE__ */ jsxRuntime.jsx(radixUi.ContextMenu.Sub, { "data-slot": "context-menu-sub", ...props });
|
|
5394
|
+
}
|
|
5395
|
+
function ContextMenuRadioGroup({
|
|
5396
|
+
...props
|
|
5397
|
+
}) {
|
|
5398
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
5399
|
+
radixUi.ContextMenu.RadioGroup,
|
|
5400
|
+
{
|
|
5401
|
+
"data-slot": "context-menu-radio-group",
|
|
5402
|
+
...props
|
|
5403
|
+
}
|
|
5404
|
+
);
|
|
5405
|
+
}
|
|
5406
|
+
function ContextMenuSubTrigger({
|
|
5407
|
+
className,
|
|
5408
|
+
inset,
|
|
5409
|
+
children,
|
|
5410
|
+
...props
|
|
5411
|
+
}) {
|
|
5412
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
5413
|
+
radixUi.ContextMenu.SubTrigger,
|
|
5414
|
+
{
|
|
5415
|
+
"data-slot": "context-menu-sub-trigger",
|
|
5416
|
+
className: cn(
|
|
5417
|
+
"flex cursor-default gap-2 select-none items-center rounded-md px-2 py-1.5 text-sm outline-hidden",
|
|
5418
|
+
"focus:bg-accent focus:text-foreground",
|
|
5419
|
+
"data-[state=open]:bg-accent data-[state=open]:text-foreground",
|
|
5420
|
+
"[&>svg]:pointer-events-none [&_svg:not([role=img]):not([class*=text-])]:opacity-60 [&>svg]:size-4 [&>svg]:shrink-0",
|
|
5421
|
+
inset && "ps-8",
|
|
5422
|
+
className
|
|
5423
|
+
),
|
|
5424
|
+
...props,
|
|
5425
|
+
children: [
|
|
5426
|
+
children,
|
|
5427
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5428
|
+
lucideReact.ChevronRight,
|
|
5429
|
+
{
|
|
5430
|
+
"data-slot": "context-menu-sub-trigger-indicator",
|
|
5431
|
+
className: "ms-auto size-3.5! rtl:rotate-180"
|
|
5432
|
+
}
|
|
5433
|
+
)
|
|
5434
|
+
]
|
|
5435
|
+
}
|
|
5436
|
+
);
|
|
5437
|
+
}
|
|
5438
|
+
function ContextMenuSubContent({
|
|
5439
|
+
className,
|
|
5440
|
+
...props
|
|
5441
|
+
}) {
|
|
5442
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
5443
|
+
radixUi.ContextMenu.SubContent,
|
|
5444
|
+
{
|
|
5445
|
+
"data-slot": "context-menu-sub-content",
|
|
5446
|
+
className: cn(
|
|
5447
|
+
"space-y-0.5 z-50 min-w-32 overflow-hidden shadow-md shadow-black/5 rounded-md border border-border bg-popover text-popover-foreground p-2 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
|
|
5448
|
+
className
|
|
5449
|
+
),
|
|
5450
|
+
...props
|
|
5451
|
+
}
|
|
5452
|
+
);
|
|
5453
|
+
}
|
|
5454
|
+
function ContextMenuContent({
|
|
5455
|
+
className,
|
|
5456
|
+
...props
|
|
5457
|
+
}) {
|
|
5458
|
+
return /* @__PURE__ */ jsxRuntime.jsx(radixUi.ContextMenu.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
5459
|
+
radixUi.ContextMenu.Content,
|
|
5460
|
+
{
|
|
5461
|
+
"data-slot": "context-menu-content",
|
|
5462
|
+
className: cn(
|
|
5463
|
+
"space-y-0.5 z-50 min-w-32 overflow-hidden rounded-md border border-border bg-popover p-2 text-popover-foreground shadow-md shadow-black/5 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
|
|
5464
|
+
className
|
|
5465
|
+
),
|
|
5466
|
+
...props
|
|
5467
|
+
}
|
|
5468
|
+
) });
|
|
5469
|
+
}
|
|
5470
|
+
function ContextMenuItem({
|
|
5471
|
+
className,
|
|
5472
|
+
inset,
|
|
5473
|
+
variant,
|
|
5474
|
+
...props
|
|
5475
|
+
}) {
|
|
5476
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
5477
|
+
radixUi.ContextMenu.Item,
|
|
5478
|
+
{
|
|
5479
|
+
"data-slot": "context-menu-item",
|
|
5480
|
+
className: cn(
|
|
5481
|
+
"text-foreground relative flex cursor-default select-none items-center gap-2 rounded-md px-2 py-1.5 text-sm outline-hidden transition-colors data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([role=img]):not([class*=text-])]:opacity-60 [&_svg:not([class*=size-])]:size-4 [&_svg]:shrink-0",
|
|
5482
|
+
"focus:bg-accent focus:text-foreground",
|
|
5483
|
+
"data-[active=true]:bg-accent data-[active=true]:text-accent-foreground",
|
|
5484
|
+
inset && "ps-8",
|
|
5485
|
+
variant === "destructive" && "text-destructive hover:text-destructive focus:text-destructive hover:bg-destructive/5 focus:bg-destructive/5 data-[active=true]:bg-destructive/5",
|
|
5486
|
+
className
|
|
5487
|
+
),
|
|
5488
|
+
...props
|
|
5489
|
+
}
|
|
5490
|
+
);
|
|
5491
|
+
}
|
|
5492
|
+
function ContextMenuCheckboxItem({
|
|
5493
|
+
className,
|
|
5494
|
+
children,
|
|
5495
|
+
checked,
|
|
5496
|
+
...props
|
|
5497
|
+
}) {
|
|
5498
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
5499
|
+
radixUi.ContextMenu.CheckboxItem,
|
|
5500
|
+
{
|
|
5501
|
+
"data-slot": "context-menu-checkbox-item",
|
|
5502
|
+
className: cn(
|
|
5503
|
+
"relative flex cursor-default select-none items-center rounded-md py-1.5 ps-8 pe-2 text-sm outline-hidden transition-colors focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
|
|
5504
|
+
className
|
|
5505
|
+
),
|
|
5506
|
+
checked,
|
|
5507
|
+
...props,
|
|
5508
|
+
children: [
|
|
5509
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute start-2 flex size-3.5 items-center text-muted-foreground justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(radixUi.ContextMenu.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { className: "size-4 text-primary" }) }) }),
|
|
5510
|
+
children
|
|
5511
|
+
]
|
|
5512
|
+
}
|
|
5513
|
+
);
|
|
5514
|
+
}
|
|
5515
|
+
function ContextMenuRadioItem({
|
|
5516
|
+
className,
|
|
5517
|
+
children,
|
|
5518
|
+
...props
|
|
5519
|
+
}) {
|
|
5520
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
5521
|
+
radixUi.ContextMenu.RadioItem,
|
|
5522
|
+
{
|
|
5523
|
+
"data-slot": "context-menu-radio-item",
|
|
5524
|
+
className: cn(
|
|
5525
|
+
"relative flex cursor-default select-none items-center rounded-md py-1.5 ps-6 pe-2 text-sm outline-hidden transition-colors focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
|
|
5526
|
+
className
|
|
5527
|
+
),
|
|
5528
|
+
...props,
|
|
5529
|
+
children: [
|
|
5530
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute start-1.5 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(radixUi.ContextMenu.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Circle, { className: "size-1.5 fill-primary stroke-primary" }) }) }),
|
|
5531
|
+
children
|
|
5532
|
+
]
|
|
5533
|
+
}
|
|
5534
|
+
);
|
|
5535
|
+
}
|
|
5536
|
+
function ContextMenuLabel({
|
|
5537
|
+
className,
|
|
5538
|
+
inset,
|
|
5539
|
+
...props
|
|
5540
|
+
}) {
|
|
5541
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
5542
|
+
radixUi.ContextMenu.Label,
|
|
5543
|
+
{
|
|
5544
|
+
"data-slot": "context-menu-label",
|
|
5545
|
+
className: cn(
|
|
5546
|
+
"px-2 py-1.5 text-xs text-muted-foreground font-medium",
|
|
5547
|
+
inset && "ps-8",
|
|
5548
|
+
className
|
|
5549
|
+
),
|
|
5550
|
+
...props
|
|
5551
|
+
}
|
|
5552
|
+
);
|
|
5553
|
+
}
|
|
5554
|
+
function ContextMenuSeparator({
|
|
5555
|
+
className,
|
|
5556
|
+
...props
|
|
5557
|
+
}) {
|
|
5558
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
5559
|
+
radixUi.ContextMenu.Separator,
|
|
5560
|
+
{
|
|
5561
|
+
"data-slot": "context-menu-separator",
|
|
5562
|
+
className: cn("-mx-2 my-1.5 h-px bg-muted", className),
|
|
5563
|
+
...props
|
|
5564
|
+
}
|
|
5565
|
+
);
|
|
5566
|
+
}
|
|
5567
|
+
function ContextMenuShortcut({
|
|
5568
|
+
className,
|
|
5569
|
+
...props
|
|
5570
|
+
}) {
|
|
5571
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
5572
|
+
"span",
|
|
5573
|
+
{
|
|
5574
|
+
"data-slot": "context-menu-shortcut",
|
|
5575
|
+
className: cn("ms-auto text-xs tracking-widest opacity-60", className),
|
|
5576
|
+
...props
|
|
5577
|
+
}
|
|
5578
|
+
);
|
|
5579
|
+
}
|
|
5580
|
+
var dayButtonClasses = [
|
|
5581
|
+
"cursor-pointer relative flex size-8 items-center justify-center",
|
|
5582
|
+
"whitespace-nowrap rounded-md p-0 text-foreground",
|
|
5583
|
+
"transition-colors duration-200",
|
|
5584
|
+
"group-[[data-selected]:not(.range-middle)]:[transition-property:color,background-color,border-radius,box-shadow]",
|
|
5585
|
+
"group-[[data-selected]:not(.range-middle)]:duration-150",
|
|
5586
|
+
"group-data-disabled:pointer-events-none",
|
|
5587
|
+
"focus-visible:z-10",
|
|
5588
|
+
"hover:not-in-data-selected:bg-accent",
|
|
5589
|
+
"group-data-selected:bg-primary",
|
|
5590
|
+
"hover:not-in-data-selected:text-foreground",
|
|
5591
|
+
"group-data-selected:text-primary-foreground",
|
|
5592
|
+
"group-data-disabled:text-foreground/30 group-data-disabled:line-through",
|
|
5593
|
+
"group-data-outside:text-foreground/30",
|
|
5594
|
+
"group-data-selected:group-data-outside:text-primary-foreground",
|
|
5595
|
+
"outline-none focus-visible:ring-ring/50 focus-visible:ring",
|
|
5596
|
+
"group-[.range-start:not(.range-end)]:rounded-e-none",
|
|
5597
|
+
"group-[.range-end:not(.range-start)]:rounded-s-none",
|
|
5598
|
+
"group-[.range-middle]:rounded-none",
|
|
5599
|
+
"group-[.range-middle]:group-data-selected:bg-accent",
|
|
5600
|
+
"group-[.range-middle]:group-data-selected:text-foreground"
|
|
5601
|
+
].join(" ");
|
|
5602
|
+
function Calendar({
|
|
5603
|
+
className,
|
|
5604
|
+
classNames,
|
|
5605
|
+
showOutsideDays = true,
|
|
5606
|
+
...props
|
|
5607
|
+
}) {
|
|
5608
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
5609
|
+
reactDayPicker.DayPicker,
|
|
5610
|
+
{
|
|
5611
|
+
"data-slot": "calendar",
|
|
5612
|
+
showOutsideDays,
|
|
5613
|
+
className: cn("p-3", className),
|
|
5614
|
+
classNames: {
|
|
5615
|
+
months: "relative flex flex-col sm:flex-row gap-4",
|
|
5616
|
+
month: "w-full",
|
|
5617
|
+
month_caption: "relative mx-10 mb-1 flex h-8 items-center justify-center z-20",
|
|
5618
|
+
caption_label: "text-sm font-medium",
|
|
5619
|
+
nav: "absolute top-0 flex w-full justify-between z-10",
|
|
5620
|
+
button_previous: cn(
|
|
5621
|
+
buttonVariants({ variant: "ghost" }),
|
|
5622
|
+
"size-8 text-muted-foreground/80 hover:text-foreground p-0"
|
|
5623
|
+
),
|
|
5624
|
+
button_next: cn(
|
|
5625
|
+
buttonVariants({ variant: "ghost" }),
|
|
5626
|
+
"size-8 text-muted-foreground/80 hover:text-foreground p-0"
|
|
5627
|
+
),
|
|
5628
|
+
weekday: "size-8 p-0 text-xs font-medium text-muted-foreground/80",
|
|
5629
|
+
day_button: dayButtonClasses,
|
|
5630
|
+
day: "group size-8 px-0 py-px text-sm",
|
|
5631
|
+
range_start: "range-start",
|
|
5632
|
+
range_end: "range-end",
|
|
5633
|
+
range_middle: "range-middle",
|
|
5634
|
+
today: "*:after:pointer-events-none *:after:absolute *:after:bottom-1 *:after:start-1/2 *:after:z-10 *:after:size-0.75 *:after:-translate-x-1/2 rtl:*:after:translate-x-1/2 *:after:rounded-full *:after:bg-primary [&[data-selected]:not(.range-middle)>*]:after:bg-background [&[data-disabled]>*]:after:bg-foreground/30 *:after:transition-colors",
|
|
5635
|
+
outside: "text-muted-foreground data-selected:bg-accent/50 data-selected:text-muted-foreground",
|
|
5636
|
+
hidden: "invisible",
|
|
5637
|
+
week_number: "size-8 p-0 text-xs font-medium text-muted-foreground/80",
|
|
5638
|
+
...classNames
|
|
5639
|
+
},
|
|
5640
|
+
components: {
|
|
5641
|
+
Chevron: (chevronProps) => {
|
|
5642
|
+
if (chevronProps.orientation === "left") {
|
|
5643
|
+
return /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronLeft, { className: "size-4 rtl:rotate-180" });
|
|
5644
|
+
}
|
|
5645
|
+
return /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRight, { className: "size-4 rtl:rotate-180" });
|
|
5646
|
+
}
|
|
5647
|
+
},
|
|
5648
|
+
...props
|
|
5649
|
+
}
|
|
5650
|
+
);
|
|
5651
|
+
}
|
|
5652
|
+
function DateField({
|
|
5653
|
+
className,
|
|
5654
|
+
children,
|
|
5655
|
+
...props
|
|
5656
|
+
}) {
|
|
5657
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
5658
|
+
reactAriaComponents.DateField,
|
|
5659
|
+
{
|
|
5660
|
+
className: reactAriaComponents.composeRenderProps(className, (className2) => cn(className2)),
|
|
5661
|
+
"data-slot": "datefield",
|
|
5662
|
+
...props,
|
|
5663
|
+
children
|
|
5664
|
+
}
|
|
5665
|
+
);
|
|
5666
|
+
}
|
|
5667
|
+
function TimeField({
|
|
5668
|
+
className,
|
|
5669
|
+
children,
|
|
5670
|
+
...props
|
|
5671
|
+
}) {
|
|
5672
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
5673
|
+
reactAriaComponents.TimeField,
|
|
5674
|
+
{
|
|
5675
|
+
className: reactAriaComponents.composeRenderProps(className, (className2) => cn(className2)),
|
|
5676
|
+
"data-slot": "datefield",
|
|
5677
|
+
...props,
|
|
5678
|
+
children
|
|
5679
|
+
}
|
|
5680
|
+
);
|
|
5681
|
+
}
|
|
5682
|
+
function DateSegment({ className, ...props }) {
|
|
5683
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
5684
|
+
reactAriaComponents.DateSegment,
|
|
5685
|
+
{
|
|
5686
|
+
className: reactAriaComponents.composeRenderProps(
|
|
5687
|
+
className,
|
|
5688
|
+
(className2) => cn(
|
|
5689
|
+
"text-foreground inline-flex rounded px-0.5 caret-transparent outline-hidden data-[type=literal]:text-muted-foreground/70 data-[type=literal]:px-0 data-placeholder:text-muted-foreground/70 data-invalid:data-focused:bg-destructive data-invalid:data-placeholder:text-destructive data-invalid:text-destructive data-invalid:data-focused:data-placeholder:text-destructive-foreground data-invalid:data-focused:text-destructive-foreground data-focused:bg-accent data-focused:data-placeholder:text-foreground data-focused:text-foreground data-disabled:cursor-not-allowed data-disabled:opacity-50",
|
|
5690
|
+
className2
|
|
5691
|
+
)
|
|
5692
|
+
),
|
|
5693
|
+
...props
|
|
5694
|
+
}
|
|
5695
|
+
);
|
|
5696
|
+
}
|
|
5697
|
+
var dateInputStyles = "relative inline-flex items-center overflow-hidden whitespace-nowrap data-focus-within:ring-ring/30 data-focus-within:border-ring data-focus-within:outline-none data-focus-within:ring-[3px] data-focus-within:has-aria-invalid:ring-destructive/20 dark:data-focus-within:has-aria-invalid:ring-destructive/40 data-focus-within:has-aria-invalid:border-destructive";
|
|
5698
|
+
function DateInput({
|
|
5699
|
+
className,
|
|
5700
|
+
variant = "md",
|
|
5701
|
+
...props
|
|
5702
|
+
}) {
|
|
5703
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
5704
|
+
reactAriaComponents.DateInput,
|
|
5705
|
+
{
|
|
5706
|
+
"data-slot": "input",
|
|
5707
|
+
className: reactAriaComponents.composeRenderProps(
|
|
5708
|
+
className,
|
|
5709
|
+
(className2) => cn(inputVariants({ variant }), dateInputStyles, className2)
|
|
5710
|
+
),
|
|
5711
|
+
...props,
|
|
5712
|
+
children: (segment) => /* @__PURE__ */ jsxRuntime.jsx(DateSegment, { segment })
|
|
5713
|
+
}
|
|
5714
|
+
);
|
|
5715
|
+
}
|
|
5716
|
+
var labelVariants = classVarianceAuthority.cva(
|
|
5717
|
+
"text-sm leading-none text-foreground peer-disabled:cursor-not-allowed peer-disabled:opacity-50",
|
|
5718
|
+
{
|
|
5719
|
+
variants: {
|
|
4015
5720
|
variant: {
|
|
4016
5721
|
primary: "font-medium",
|
|
4017
5722
|
secondary: "font-normal"
|
|
@@ -4036,11 +5741,12 @@ function Label2({
|
|
|
4036
5741
|
}
|
|
4037
5742
|
);
|
|
4038
5743
|
}
|
|
4039
|
-
var Separator2 =
|
|
5744
|
+
var Separator2 = React4__namespace.forwardRef(
|
|
4040
5745
|
({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
4041
5746
|
SeparatorPrimitive__namespace.Root,
|
|
4042
5747
|
{
|
|
4043
5748
|
ref,
|
|
5749
|
+
"data-slot": "separator",
|
|
4044
5750
|
decorative,
|
|
4045
5751
|
orientation,
|
|
4046
5752
|
className: cn(
|
|
@@ -4239,7 +5945,7 @@ function FieldError({
|
|
|
4239
5945
|
errors,
|
|
4240
5946
|
...props
|
|
4241
5947
|
}) {
|
|
4242
|
-
const content =
|
|
5948
|
+
const content = React4.useMemo(() => {
|
|
4243
5949
|
if (children) {
|
|
4244
5950
|
return children;
|
|
4245
5951
|
}
|
|
@@ -4267,38 +5973,208 @@ function FieldError({
|
|
|
4267
5973
|
}
|
|
4268
5974
|
);
|
|
4269
5975
|
}
|
|
4270
|
-
|
|
4271
|
-
|
|
4272
|
-
|
|
4273
|
-
|
|
4274
|
-
|
|
4275
|
-
|
|
4276
|
-
|
|
4277
|
-
|
|
4278
|
-
|
|
4279
|
-
|
|
4280
|
-
|
|
4281
|
-
|
|
4282
|
-
|
|
4283
|
-
|
|
4284
|
-
|
|
4285
|
-
|
|
4286
|
-
|
|
4287
|
-
|
|
4288
|
-
|
|
4289
|
-
|
|
4290
|
-
|
|
4291
|
-
|
|
4292
|
-
|
|
4293
|
-
|
|
4294
|
-
|
|
4295
|
-
|
|
4296
|
-
|
|
4297
|
-
|
|
4298
|
-
|
|
4299
|
-
|
|
4300
|
-
|
|
4301
|
-
|
|
5976
|
+
function InputOTP({
|
|
5977
|
+
className,
|
|
5978
|
+
containerClassName,
|
|
5979
|
+
...props
|
|
5980
|
+
}) {
|
|
5981
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
5982
|
+
inputOtp.OTPInput,
|
|
5983
|
+
{
|
|
5984
|
+
"data-slot": "input-otp",
|
|
5985
|
+
containerClassName: cn(
|
|
5986
|
+
"flex items-center gap-2 has-disabled:opacity-50",
|
|
5987
|
+
containerClassName
|
|
5988
|
+
),
|
|
5989
|
+
className: cn("disabled:cursor-not-allowed", className),
|
|
5990
|
+
...props
|
|
5991
|
+
}
|
|
5992
|
+
);
|
|
5993
|
+
}
|
|
5994
|
+
function InputOTPGroup({ className, ...props }) {
|
|
5995
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
5996
|
+
"div",
|
|
5997
|
+
{
|
|
5998
|
+
"data-slot": "input-otp-group",
|
|
5999
|
+
className: cn("flex items-center", className),
|
|
6000
|
+
...props
|
|
6001
|
+
}
|
|
6002
|
+
);
|
|
6003
|
+
}
|
|
6004
|
+
function InputOTPSlot({
|
|
6005
|
+
index,
|
|
6006
|
+
className,
|
|
6007
|
+
...props
|
|
6008
|
+
}) {
|
|
6009
|
+
const inputOTPContext = React4__namespace.useContext(inputOtp.OTPInputContext);
|
|
6010
|
+
const { char, hasFakeCaret, isActive } = inputOTPContext?.slots[index] ?? {};
|
|
6011
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
6012
|
+
"div",
|
|
6013
|
+
{
|
|
6014
|
+
"data-slot": "input-otp-slot",
|
|
6015
|
+
"data-active": isActive,
|
|
6016
|
+
className: cn(
|
|
6017
|
+
"data-[active=true]:border-ring data-[active=true]:ring-ring/50 data-[active=true]:aria-invalid:ring-destructive/20 dark:data-[active=true]:aria-invalid:ring-destructive/40 aria-invalid:border-destructive data-[active=true]:aria-invalid:border-destructive dark:bg-input/30 border-input relative flex size-9 items-center justify-center border-y border-r text-sm shadow-xs transition-all outline-none first:rounded-l-md first:border-l last:rounded-r-md data-[active=true]:z-10 data-[active=true]:ring-[3px]",
|
|
6018
|
+
className
|
|
6019
|
+
),
|
|
6020
|
+
...props,
|
|
6021
|
+
children: [
|
|
6022
|
+
char,
|
|
6023
|
+
hasFakeCaret && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "animate-caret-blink bg-foreground h-4 w-px duration-1000" }) })
|
|
6024
|
+
]
|
|
6025
|
+
}
|
|
6026
|
+
);
|
|
6027
|
+
}
|
|
6028
|
+
function InputOTPSeparator({ ...props }) {
|
|
6029
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { "data-slot": "input-otp-separator", role: "separator", ...props, children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.MinusIcon, {}) });
|
|
6030
|
+
}
|
|
6031
|
+
var radioGroupVariants = classVarianceAuthority.cva("grid gap-2.5", {
|
|
6032
|
+
variants: {
|
|
6033
|
+
variant: {
|
|
6034
|
+
primary: "",
|
|
6035
|
+
mono: ""
|
|
6036
|
+
},
|
|
6037
|
+
size: {
|
|
6038
|
+
sm: "",
|
|
6039
|
+
md: "",
|
|
6040
|
+
lg: ""
|
|
6041
|
+
}
|
|
6042
|
+
},
|
|
6043
|
+
defaultVariants: {
|
|
6044
|
+
variant: "primary",
|
|
6045
|
+
size: "md"
|
|
6046
|
+
}
|
|
6047
|
+
});
|
|
6048
|
+
var RadioGroupContext = React4__namespace.createContext({ variant: "primary", size: "md" });
|
|
6049
|
+
function RadioGroup2({
|
|
6050
|
+
className,
|
|
6051
|
+
variant,
|
|
6052
|
+
size,
|
|
6053
|
+
...props
|
|
6054
|
+
}) {
|
|
6055
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
6056
|
+
RadioGroupContext.Provider,
|
|
6057
|
+
{
|
|
6058
|
+
value: { variant: variant ?? "primary", size: size ?? "md" },
|
|
6059
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
6060
|
+
radixUi.RadioGroup.Root,
|
|
6061
|
+
{
|
|
6062
|
+
"data-slot": "radio-group",
|
|
6063
|
+
className: cn(radioGroupVariants({ variant, size }), className),
|
|
6064
|
+
...props
|
|
6065
|
+
}
|
|
6066
|
+
)
|
|
6067
|
+
}
|
|
6068
|
+
);
|
|
6069
|
+
}
|
|
6070
|
+
var radioItemVariants = classVarianceAuthority.cva(
|
|
6071
|
+
"peer aspect-square rounded-full border outline-hidden ring-offset-background focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive/60 aria-invalid:ring-destructive/10 dark:aria-invalid:border-destructive dark:aria-invalid:ring-destructive/20 [[data-invalid=true]_&]:border-destructive/60 [[data-invalid=true]_&]:ring-destructive/10 dark:[[data-invalid=true]_&]:border-destructive dark:[[data-invalid=true]_&]:ring-destructive/20 border-input text-primary data-[state=checked]:bg-primary data-[state=checked]:border-primary data-[state=checked]:text-primary-foreground",
|
|
6072
|
+
{
|
|
6073
|
+
variants: {
|
|
6074
|
+
size: {
|
|
6075
|
+
sm: "size-4.5 [&_svg]:size-2",
|
|
6076
|
+
md: "size-5 [&_svg]:size-2.5",
|
|
6077
|
+
lg: "size-5.5 [&_svg]:size-3"
|
|
6078
|
+
}
|
|
6079
|
+
},
|
|
6080
|
+
defaultVariants: {
|
|
6081
|
+
size: "md"
|
|
6082
|
+
}
|
|
6083
|
+
}
|
|
6084
|
+
);
|
|
6085
|
+
function RadioGroupItem({
|
|
6086
|
+
className,
|
|
6087
|
+
size,
|
|
6088
|
+
...props
|
|
6089
|
+
}) {
|
|
6090
|
+
const { size: contextSize } = React4__namespace.useContext(RadioGroupContext);
|
|
6091
|
+
const effectiveSize = size ?? contextSize;
|
|
6092
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
6093
|
+
radixUi.RadioGroup.Item,
|
|
6094
|
+
{
|
|
6095
|
+
"data-slot": "radio-group-item",
|
|
6096
|
+
className: cn(radioItemVariants({ size: effectiveSize }), className),
|
|
6097
|
+
...props,
|
|
6098
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
6099
|
+
radixUi.RadioGroup.Indicator,
|
|
6100
|
+
{
|
|
6101
|
+
"data-slot": "radio-group-indicator",
|
|
6102
|
+
className: "flex items-center justify-center",
|
|
6103
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Circle, { className: "fill-current text-current" })
|
|
6104
|
+
}
|
|
6105
|
+
)
|
|
6106
|
+
}
|
|
6107
|
+
);
|
|
6108
|
+
}
|
|
6109
|
+
function Slider({
|
|
6110
|
+
className,
|
|
6111
|
+
children,
|
|
6112
|
+
...props
|
|
6113
|
+
}) {
|
|
6114
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
6115
|
+
radixUi.Slider.Root,
|
|
6116
|
+
{
|
|
6117
|
+
"data-slot": "slider",
|
|
6118
|
+
className: cn(
|
|
6119
|
+
"relative flex h-4 w-full touch-none select-none items-center data-disabled:cursor-not-allowed data-disabled:opacity-50",
|
|
6120
|
+
className
|
|
6121
|
+
),
|
|
6122
|
+
...props,
|
|
6123
|
+
children: [
|
|
6124
|
+
/* @__PURE__ */ jsxRuntime.jsx(radixUi.Slider.Track, { className: "relative h-1.5 w-full overflow-hidden rounded-full bg-accent", children: /* @__PURE__ */ jsxRuntime.jsx(radixUi.Slider.Range, { className: "absolute h-full bg-primary" }) }),
|
|
6125
|
+
children
|
|
6126
|
+
]
|
|
6127
|
+
}
|
|
6128
|
+
);
|
|
6129
|
+
}
|
|
6130
|
+
function SliderThumb({
|
|
6131
|
+
className,
|
|
6132
|
+
...props
|
|
6133
|
+
}) {
|
|
6134
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
6135
|
+
radixUi.Slider.Thumb,
|
|
6136
|
+
{
|
|
6137
|
+
"data-slot": "slider-thumb",
|
|
6138
|
+
className: cn(
|
|
6139
|
+
"box-content block size-4 shrink-0 cursor-pointer rounded-full border-2 border-primary bg-primary-foreground shadow-xs shadow-black/5 outline-hidden",
|
|
6140
|
+
className
|
|
6141
|
+
),
|
|
6142
|
+
...props
|
|
6143
|
+
}
|
|
6144
|
+
);
|
|
6145
|
+
}
|
|
6146
|
+
var SwitchContext = React4__namespace.createContext({
|
|
6147
|
+
permanent: false
|
|
6148
|
+
});
|
|
6149
|
+
var useSwitchContext = () => {
|
|
6150
|
+
const context = React4__namespace.useContext(SwitchContext);
|
|
6151
|
+
if (!context) {
|
|
6152
|
+
throw new Error("SwitchIndicator must be used within a Switch component");
|
|
6153
|
+
}
|
|
6154
|
+
return context;
|
|
6155
|
+
};
|
|
6156
|
+
var switchShapes = {
|
|
6157
|
+
pill: "rounded-full",
|
|
6158
|
+
square: "rounded-md"
|
|
6159
|
+
};
|
|
6160
|
+
var switchSizes = {
|
|
6161
|
+
xs: "h-4 w-7",
|
|
6162
|
+
sm: "h-5 w-8",
|
|
6163
|
+
md: "h-6 w-10",
|
|
6164
|
+
lg: "h-8 w-14",
|
|
6165
|
+
xl: "h-9 w-16"
|
|
6166
|
+
};
|
|
6167
|
+
var switchVariants = classVarianceAuthority.cva(
|
|
6168
|
+
`
|
|
6169
|
+
relative peer inline-flex shrink-0 cursor-pointer items-center rounded-full transition-colors
|
|
6170
|
+
focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background
|
|
6171
|
+
disabled:cursor-not-allowed disabled:opacity-50 data-[state=unchecked]:bg-input
|
|
6172
|
+
aria-invalid:border aria-invalid:border-destructive/60 aria-invalid:ring-destructive/10 dark:aria-invalid:border-destructive dark:aria-invalid:ring-destructive/20
|
|
6173
|
+
[[data-invalid=true]_&]:border [[data-invalid=true]_&]:border-destructive/60 [[data-invalid=true]_&]:ring-destructive/10 dark:[[data-invalid=true]_&]:border-destructive dark:[[data-invalid=true]_&]:ring-destructive/20
|
|
6174
|
+
`,
|
|
6175
|
+
{
|
|
6176
|
+
variants: {
|
|
6177
|
+
shape: switchShapes,
|
|
4302
6178
|
size: switchSizes,
|
|
4303
6179
|
permanent: {
|
|
4304
6180
|
true: "bg-input",
|
|
@@ -4438,6 +6314,43 @@ function SwitchIndicator({
|
|
|
4438
6314
|
}
|
|
4439
6315
|
);
|
|
4440
6316
|
}
|
|
6317
|
+
var textareaVariants = classVarianceAuthority.cva(
|
|
6318
|
+
`
|
|
6319
|
+
w-full bg-background border border-input shadow-xs shadow-black/5 transition-[color,box-shadow]
|
|
6320
|
+
text-foreground placeholder:text-muted-foreground/80
|
|
6321
|
+
focus-visible:border-ring focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/30
|
|
6322
|
+
disabled:cursor-not-allowed disabled:opacity-50
|
|
6323
|
+
[&[readonly]]:bg-muted/80 [&[readonly]]:cursor-not-allowed
|
|
6324
|
+
aria-invalid:border-destructive/60 aria-invalid:ring-destructive/10
|
|
6325
|
+
dark:aria-invalid:border-destructive dark:aria-invalid:ring-destructive/20
|
|
6326
|
+
`,
|
|
6327
|
+
{
|
|
6328
|
+
variants: {
|
|
6329
|
+
variant: {
|
|
6330
|
+
sm: "px-2.5 py-2.5 text-xs rounded-md",
|
|
6331
|
+
md: "px-3 py-3 text-[0.8125rem] leading-[var(--text-sm--line-height)] rounded-md",
|
|
6332
|
+
lg: "px-4 py-4 text-sm rounded-md"
|
|
6333
|
+
}
|
|
6334
|
+
},
|
|
6335
|
+
defaultVariants: {
|
|
6336
|
+
variant: "md"
|
|
6337
|
+
}
|
|
6338
|
+
}
|
|
6339
|
+
);
|
|
6340
|
+
function Textarea({
|
|
6341
|
+
className,
|
|
6342
|
+
variant,
|
|
6343
|
+
...props
|
|
6344
|
+
}) {
|
|
6345
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
6346
|
+
"textarea",
|
|
6347
|
+
{
|
|
6348
|
+
"data-slot": "textarea",
|
|
6349
|
+
className: cn(textareaVariants({ variant }), className),
|
|
6350
|
+
...props
|
|
6351
|
+
}
|
|
6352
|
+
);
|
|
6353
|
+
}
|
|
4441
6354
|
function ScrollArea({
|
|
4442
6355
|
className,
|
|
4443
6356
|
viewportClassName,
|
|
@@ -4497,10 +6410,10 @@ function Scrollspy({
|
|
|
4497
6410
|
dataAttribute = "scrollspy",
|
|
4498
6411
|
history = true
|
|
4499
6412
|
}) {
|
|
4500
|
-
const selfRef =
|
|
4501
|
-
const anchorElementsRef =
|
|
4502
|
-
const prevIdTracker =
|
|
4503
|
-
const setActiveSection =
|
|
6413
|
+
const selfRef = React4.useRef(null);
|
|
6414
|
+
const anchorElementsRef = React4.useRef(null);
|
|
6415
|
+
const prevIdTracker = React4.useRef(null);
|
|
6416
|
+
const setActiveSection = React4.useCallback(
|
|
4504
6417
|
(sectionId, force = false) => {
|
|
4505
6418
|
if (!sectionId) return;
|
|
4506
6419
|
anchorElementsRef.current?.forEach((item) => {
|
|
@@ -4519,7 +6432,7 @@ function Scrollspy({
|
|
|
4519
6432
|
},
|
|
4520
6433
|
[anchorElementsRef, dataAttribute, history, onUpdate]
|
|
4521
6434
|
);
|
|
4522
|
-
const handleScroll =
|
|
6435
|
+
const handleScroll = React4.useCallback(() => {
|
|
4523
6436
|
if (!anchorElementsRef.current || anchorElementsRef.current.length === 0)
|
|
4524
6437
|
return;
|
|
4525
6438
|
const scrollElement = targetRef?.current === document ? window : targetRef?.current;
|
|
@@ -4557,7 +6470,7 @@ function Scrollspy({
|
|
|
4557
6470
|
}
|
|
4558
6471
|
});
|
|
4559
6472
|
}, [anchorElementsRef, targetRef, dataAttribute, offset, setActiveSection]);
|
|
4560
|
-
const scrollTo =
|
|
6473
|
+
const scrollTo = React4.useCallback(
|
|
4561
6474
|
(anchorElement) => (event) => {
|
|
4562
6475
|
if (event) event.preventDefault();
|
|
4563
6476
|
const sectionId = anchorElement.getAttribute(`data-${dataAttribute}-anchor`)?.replace("#", "") || null;
|
|
@@ -4584,7 +6497,7 @@ function Scrollspy({
|
|
|
4584
6497
|
},
|
|
4585
6498
|
[dataAttribute, offset, smooth, targetRef, setActiveSection]
|
|
4586
6499
|
);
|
|
4587
|
-
const scrollToHashSection =
|
|
6500
|
+
const scrollToHashSection = React4.useCallback(() => {
|
|
4588
6501
|
const hash = CSS.escape(window.location.hash.replace("#", ""));
|
|
4589
6502
|
if (hash) {
|
|
4590
6503
|
const targetElement = document.querySelector(
|
|
@@ -4595,7 +6508,7 @@ function Scrollspy({
|
|
|
4595
6508
|
}
|
|
4596
6509
|
}
|
|
4597
6510
|
}, [dataAttribute, scrollTo]);
|
|
4598
|
-
|
|
6511
|
+
React4.useEffect(() => {
|
|
4599
6512
|
if (selfRef.current) {
|
|
4600
6513
|
anchorElementsRef.current = Array.from(
|
|
4601
6514
|
selfRef.current.querySelectorAll(`[data-${dataAttribute}-anchor]`)
|
|
@@ -4714,27 +6627,474 @@ function ToolbarActions({
|
|
|
4714
6627
|
}
|
|
4715
6628
|
);
|
|
4716
6629
|
}
|
|
4717
|
-
|
|
4718
|
-
|
|
4719
|
-
|
|
4720
|
-
|
|
6630
|
+
function Progress({
|
|
6631
|
+
className,
|
|
6632
|
+
indicatorClassName,
|
|
6633
|
+
value,
|
|
6634
|
+
...props
|
|
6635
|
+
}) {
|
|
6636
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
6637
|
+
radixUi.Progress.Root,
|
|
6638
|
+
{
|
|
6639
|
+
"data-slot": "progress",
|
|
6640
|
+
className: cn(
|
|
6641
|
+
"relative h-1.5 w-full overflow-hidden rounded-full bg-secondary",
|
|
6642
|
+
className
|
|
6643
|
+
),
|
|
6644
|
+
...props,
|
|
6645
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
6646
|
+
radixUi.Progress.Indicator,
|
|
6647
|
+
{
|
|
6648
|
+
"data-slot": "progress-indicator",
|
|
6649
|
+
className: cn(
|
|
6650
|
+
"h-full w-full flex-1 bg-primary transition-all",
|
|
6651
|
+
indicatorClassName
|
|
6652
|
+
),
|
|
6653
|
+
style: { transform: `translateX(-${100 - (value || 0)}%)` }
|
|
6654
|
+
}
|
|
6655
|
+
)
|
|
6656
|
+
}
|
|
6657
|
+
);
|
|
6658
|
+
}
|
|
6659
|
+
function ProgressCircle({
|
|
6660
|
+
className,
|
|
6661
|
+
indicatorClassName,
|
|
6662
|
+
trackClassName,
|
|
6663
|
+
value = 0,
|
|
6664
|
+
size = 48,
|
|
6665
|
+
strokeWidth = 4,
|
|
6666
|
+
children,
|
|
6667
|
+
...props
|
|
6668
|
+
}) {
|
|
6669
|
+
const radius = (size - strokeWidth) / 2;
|
|
6670
|
+
const circumference = radius * 2 * Math.PI;
|
|
6671
|
+
const offset = circumference - value / 100 * circumference;
|
|
6672
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
6673
|
+
"div",
|
|
6674
|
+
{
|
|
6675
|
+
"data-slot": "progress-circle",
|
|
6676
|
+
role: "progressbar",
|
|
6677
|
+
"aria-valuenow": value,
|
|
6678
|
+
"aria-valuemin": 0,
|
|
6679
|
+
"aria-valuemax": 100,
|
|
6680
|
+
className: cn(
|
|
6681
|
+
"relative inline-flex items-center justify-center",
|
|
6682
|
+
className
|
|
6683
|
+
),
|
|
6684
|
+
style: { width: size, height: size },
|
|
6685
|
+
...props,
|
|
6686
|
+
children: [
|
|
6687
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
6688
|
+
"svg",
|
|
6689
|
+
{
|
|
6690
|
+
className: "absolute inset-0 -rotate-90",
|
|
6691
|
+
width: size,
|
|
6692
|
+
height: size,
|
|
6693
|
+
viewBox: `0 0 ${size} ${size}`,
|
|
6694
|
+
children: [
|
|
6695
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6696
|
+
"circle",
|
|
6697
|
+
{
|
|
6698
|
+
"data-slot": "progress-circle-track",
|
|
6699
|
+
cx: size / 2,
|
|
6700
|
+
cy: size / 2,
|
|
6701
|
+
r: radius,
|
|
6702
|
+
stroke: "currentColor",
|
|
6703
|
+
strokeWidth,
|
|
6704
|
+
fill: "none",
|
|
6705
|
+
className: cn("text-secondary", trackClassName)
|
|
6706
|
+
}
|
|
6707
|
+
),
|
|
6708
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6709
|
+
"circle",
|
|
6710
|
+
{
|
|
6711
|
+
"data-slot": "progress-circle-indicator",
|
|
6712
|
+
cx: size / 2,
|
|
6713
|
+
cy: size / 2,
|
|
6714
|
+
r: radius,
|
|
6715
|
+
stroke: "currentColor",
|
|
6716
|
+
strokeWidth,
|
|
6717
|
+
fill: "none",
|
|
6718
|
+
strokeDasharray: circumference,
|
|
6719
|
+
strokeDashoffset: offset,
|
|
6720
|
+
strokeLinecap: "round",
|
|
6721
|
+
className: cn(
|
|
6722
|
+
"text-primary transition-all duration-300 ease-in-out",
|
|
6723
|
+
indicatorClassName
|
|
6724
|
+
)
|
|
6725
|
+
}
|
|
6726
|
+
)
|
|
6727
|
+
]
|
|
6728
|
+
}
|
|
6729
|
+
),
|
|
6730
|
+
children && /* @__PURE__ */ jsxRuntime.jsx(
|
|
6731
|
+
"div",
|
|
6732
|
+
{
|
|
6733
|
+
"data-slot": "progress-circle-content",
|
|
6734
|
+
className: "relative z-10 flex items-center justify-center text-sm font-medium",
|
|
6735
|
+
children
|
|
6736
|
+
}
|
|
6737
|
+
)
|
|
6738
|
+
]
|
|
6739
|
+
}
|
|
6740
|
+
);
|
|
6741
|
+
}
|
|
6742
|
+
function ProgressRadial({
|
|
6743
|
+
className,
|
|
6744
|
+
value = 0,
|
|
6745
|
+
size = 120,
|
|
6746
|
+
strokeWidth = 8,
|
|
6747
|
+
startAngle = -90,
|
|
6748
|
+
endAngle = 90,
|
|
6749
|
+
showLabel = false,
|
|
6750
|
+
trackClassName,
|
|
6751
|
+
indicatorClassName,
|
|
6752
|
+
children,
|
|
6753
|
+
...props
|
|
6754
|
+
}) {
|
|
6755
|
+
const radius = (size - strokeWidth) / 2;
|
|
6756
|
+
const angleRange = endAngle - startAngle;
|
|
6757
|
+
const progressAngle = value / 100 * angleRange;
|
|
6758
|
+
const toRadians = (degrees) => degrees * Math.PI / 180;
|
|
6759
|
+
const startX = size / 2 + radius * Math.cos(toRadians(startAngle));
|
|
6760
|
+
const startY = size / 2 + radius * Math.sin(toRadians(startAngle));
|
|
6761
|
+
const endX = size / 2 + radius * Math.cos(toRadians(startAngle + progressAngle));
|
|
6762
|
+
const endY = size / 2 + radius * Math.sin(toRadians(startAngle + progressAngle));
|
|
6763
|
+
const largeArc = progressAngle > 180 ? 1 : 0;
|
|
6764
|
+
const pathData = [
|
|
6765
|
+
"M",
|
|
6766
|
+
startX,
|
|
6767
|
+
startY,
|
|
6768
|
+
"A",
|
|
6769
|
+
radius,
|
|
6770
|
+
radius,
|
|
6771
|
+
0,
|
|
6772
|
+
largeArc,
|
|
6773
|
+
1,
|
|
6774
|
+
endX,
|
|
6775
|
+
endY
|
|
6776
|
+
].join(" ");
|
|
6777
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
6778
|
+
"div",
|
|
6779
|
+
{
|
|
6780
|
+
"data-slot": "progress-radial",
|
|
6781
|
+
role: "progressbar",
|
|
6782
|
+
"aria-valuenow": value,
|
|
6783
|
+
"aria-valuemin": 0,
|
|
6784
|
+
"aria-valuemax": 100,
|
|
6785
|
+
className: cn(
|
|
6786
|
+
"relative inline-flex items-center justify-center",
|
|
6787
|
+
className
|
|
6788
|
+
),
|
|
6789
|
+
style: { width: size, height: size },
|
|
6790
|
+
...props,
|
|
6791
|
+
children: [
|
|
6792
|
+
/* @__PURE__ */ jsxRuntime.jsxs("svg", { width: size, height: size, viewBox: `0 0 ${size} ${size}`, children: [
|
|
6793
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6794
|
+
"path",
|
|
6795
|
+
{
|
|
6796
|
+
d: [
|
|
6797
|
+
"M",
|
|
6798
|
+
size / 2 + radius * Math.cos(toRadians(startAngle)),
|
|
6799
|
+
size / 2 + radius * Math.sin(toRadians(startAngle)),
|
|
6800
|
+
"A",
|
|
6801
|
+
radius,
|
|
6802
|
+
radius,
|
|
6803
|
+
0,
|
|
6804
|
+
angleRange > 180 ? 1 : 0,
|
|
6805
|
+
1,
|
|
6806
|
+
size / 2 + radius * Math.cos(toRadians(endAngle)),
|
|
6807
|
+
size / 2 + radius * Math.sin(toRadians(endAngle))
|
|
6808
|
+
].join(" "),
|
|
6809
|
+
stroke: "currentColor",
|
|
6810
|
+
strokeWidth,
|
|
6811
|
+
fill: "none",
|
|
6812
|
+
strokeLinecap: "round",
|
|
6813
|
+
className: cn("text-secondary", trackClassName)
|
|
6814
|
+
}
|
|
6815
|
+
),
|
|
6816
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6817
|
+
"path",
|
|
6818
|
+
{
|
|
6819
|
+
d: pathData,
|
|
6820
|
+
stroke: "currentColor",
|
|
6821
|
+
strokeWidth,
|
|
6822
|
+
fill: "none",
|
|
6823
|
+
strokeLinecap: "round",
|
|
6824
|
+
className: cn(
|
|
6825
|
+
"text-primary transition-all duration-300 ease-in-out",
|
|
6826
|
+
indicatorClassName
|
|
6827
|
+
)
|
|
6828
|
+
}
|
|
6829
|
+
)
|
|
6830
|
+
] }),
|
|
6831
|
+
(showLabel || children) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute inset-0 flex items-center justify-center", children: children || /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-lg font-bold", children: [
|
|
6832
|
+
value,
|
|
6833
|
+
"%"
|
|
6834
|
+
] }) })
|
|
6835
|
+
]
|
|
6836
|
+
}
|
|
6837
|
+
);
|
|
6838
|
+
}
|
|
6839
|
+
function NavigationMenu({
|
|
6840
|
+
className,
|
|
6841
|
+
children,
|
|
6842
|
+
viewport = true,
|
|
6843
|
+
...props
|
|
6844
|
+
}) {
|
|
6845
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
6846
|
+
radixUi.NavigationMenu.Root,
|
|
6847
|
+
{
|
|
6848
|
+
"data-slot": "navigation-menu",
|
|
6849
|
+
"data-viewport": viewport,
|
|
6850
|
+
className: cn(
|
|
6851
|
+
"group/navigation-menu relative flex max-w-max flex-1 items-center justify-center",
|
|
6852
|
+
className
|
|
6853
|
+
),
|
|
6854
|
+
...props,
|
|
6855
|
+
children: [
|
|
6856
|
+
children,
|
|
6857
|
+
viewport && /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuViewport, {})
|
|
6858
|
+
]
|
|
6859
|
+
}
|
|
6860
|
+
);
|
|
6861
|
+
}
|
|
6862
|
+
function NavigationMenuList({
|
|
6863
|
+
className,
|
|
6864
|
+
...props
|
|
6865
|
+
}) {
|
|
6866
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
6867
|
+
radixUi.NavigationMenu.List,
|
|
6868
|
+
{
|
|
6869
|
+
"data-slot": "navigation-menu-list",
|
|
6870
|
+
className: cn(
|
|
6871
|
+
"group flex flex-1 list-none items-center justify-center gap-1",
|
|
6872
|
+
className
|
|
6873
|
+
),
|
|
6874
|
+
...props
|
|
6875
|
+
}
|
|
6876
|
+
);
|
|
6877
|
+
}
|
|
6878
|
+
function NavigationMenuItem({
|
|
6879
|
+
className,
|
|
6880
|
+
...props
|
|
6881
|
+
}) {
|
|
6882
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
6883
|
+
radixUi.NavigationMenu.Item,
|
|
6884
|
+
{
|
|
6885
|
+
"data-slot": "navigation-menu-item",
|
|
6886
|
+
className: cn("relative", className),
|
|
6887
|
+
...props
|
|
6888
|
+
}
|
|
6889
|
+
);
|
|
6890
|
+
}
|
|
6891
|
+
var navigationMenuTriggerStyle = classVarianceAuthority.cva(
|
|
6892
|
+
"cursor-pointer group inline-flex h-9 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground disabled:pointer-events-none disabled:opacity-50 data-[active=true]:bg-accent/50 data-[state=open]:bg-accent/50 data-[active=true]:text-accent-foreground ring-ring/10 dark:ring-ring/20 dark:outline-ring/40 outline-ring/50 transition-[color,box-shadow] focus-visible:ring-4 focus-visible:outline-1"
|
|
6893
|
+
);
|
|
6894
|
+
function NavigationMenuTrigger({
|
|
6895
|
+
className,
|
|
6896
|
+
children,
|
|
6897
|
+
...props
|
|
6898
|
+
}) {
|
|
6899
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
6900
|
+
radixUi.NavigationMenu.Trigger,
|
|
6901
|
+
{
|
|
6902
|
+
"data-slot": "navigation-menu-trigger",
|
|
6903
|
+
className: cn(navigationMenuTriggerStyle(), className),
|
|
6904
|
+
...props,
|
|
6905
|
+
children: [
|
|
6906
|
+
children,
|
|
6907
|
+
" ",
|
|
6908
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6909
|
+
lucideReact.ChevronDownIcon,
|
|
6910
|
+
{
|
|
6911
|
+
className: "relative top-px ms-1 size-3.5 opacity-60 transition duration-300 group-data-[state=open]:rotate-180",
|
|
6912
|
+
"aria-hidden": "true"
|
|
6913
|
+
}
|
|
6914
|
+
)
|
|
6915
|
+
]
|
|
6916
|
+
}
|
|
6917
|
+
);
|
|
6918
|
+
}
|
|
6919
|
+
function NavigationMenuContent({
|
|
6920
|
+
className,
|
|
6921
|
+
...props
|
|
6922
|
+
}) {
|
|
6923
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
6924
|
+
radixUi.NavigationMenu.Content,
|
|
6925
|
+
{
|
|
6926
|
+
"data-slot": "navigation-menu-content",
|
|
6927
|
+
className: cn(
|
|
6928
|
+
"data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52! data-[motion=from-start]:slide-in-from-left-52! data-[motion=to-end]:slide-out-to-right-52! data-[motion=to-start]:slide-out-to-left-52! top-0 left-0 w-full p-2 pr-2.5 md:absolute md:w-auto",
|
|
6929
|
+
"group-data-[viewport=false]/navigation-menu:bg-popover group-data-[viewport=false]/navigation-menu:data-[state=open]:animate-in group-data-[viewport=false]/navigation-menu:data-[state=closed]:animate-out group-data-[viewport=false]/navigation-menu:data-[state=closed]:zoom-out-95 group-data-[viewport=false]/navigation-menu:data-[state=open]:zoom-in-95 group-data-[viewport=false]/navigation-menu:data-[state=open]:fade-in-0 group-data-[viewport=false]/navigation-menu:data-[state=closed]:fade-out-0 group-data-[viewport=false]/navigation-menu:top-full group-data-[viewport=false]/navigation-menu:mt-1.5 group-data-[viewport=false]/navigation-menu:overflow-hidden group-data-[viewport=false]/navigation-menu:rounded-md group-data-[viewport=false]/navigation-menu:border group-data-[viewport=false]/navigation-menu:shadow group-data-[viewport=false]/navigation-menu:duration-200 **:data-[slot=navigation-menu-link]:focus:ring-0 **:data-[slot=navigation-menu-link]:focus:outline-none",
|
|
6930
|
+
className
|
|
6931
|
+
),
|
|
6932
|
+
...props
|
|
6933
|
+
}
|
|
6934
|
+
);
|
|
6935
|
+
}
|
|
6936
|
+
function NavigationMenuViewport({
|
|
6937
|
+
className,
|
|
6938
|
+
...props
|
|
6939
|
+
}) {
|
|
6940
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
6941
|
+
"div",
|
|
6942
|
+
{
|
|
6943
|
+
className: cn(
|
|
6944
|
+
"absolute top-full right-0 isolate z-50 flex items-center justify-center"
|
|
6945
|
+
),
|
|
6946
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
6947
|
+
radixUi.NavigationMenu.Viewport,
|
|
6948
|
+
{
|
|
6949
|
+
"data-slot": "navigation-menu-viewport",
|
|
6950
|
+
className: cn(
|
|
6951
|
+
"shadow-md shadow-black/5 rounded-md border border-border bg-popover text-popover-foreground p-1.5 origin-top-center data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 relative mt-1.5 h-(--radix-navigation-menu-viewport-height) w-full overflow-hidden md:w-(--radix-navigation-menu-viewport-width)",
|
|
6952
|
+
className
|
|
6953
|
+
),
|
|
6954
|
+
...props
|
|
6955
|
+
}
|
|
6956
|
+
)
|
|
6957
|
+
}
|
|
6958
|
+
);
|
|
6959
|
+
}
|
|
6960
|
+
function NavigationMenuLink({
|
|
6961
|
+
className,
|
|
6962
|
+
...props
|
|
6963
|
+
}) {
|
|
6964
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
6965
|
+
radixUi.NavigationMenu.Link,
|
|
6966
|
+
{
|
|
6967
|
+
"data-slot": "navigation-menu-link",
|
|
6968
|
+
className: cn(
|
|
6969
|
+
"hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground data-[active=true]:bg-accent/50 data-[active=true]:text-accent-foreground ring-ring/10 dark:ring-ring/20 dark:outline-ring/40 outline-ring/50 flex flex-col gap-1 rounded-md p-2 text-sm transition-[color,box-shadow] focus-visible:ring-4 focus-visible:outline-1",
|
|
6970
|
+
className
|
|
6971
|
+
),
|
|
6972
|
+
...props
|
|
6973
|
+
}
|
|
6974
|
+
);
|
|
6975
|
+
}
|
|
6976
|
+
function NavigationMenuIndicator({
|
|
6977
|
+
className,
|
|
6978
|
+
...props
|
|
6979
|
+
}) {
|
|
6980
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
6981
|
+
radixUi.NavigationMenu.Indicator,
|
|
6982
|
+
{
|
|
6983
|
+
"data-slot": "navigation-menu-indicator",
|
|
6984
|
+
className: cn(
|
|
6985
|
+
"data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in top-full z-10 flex h-1.5 items-end justify-center overflow-hidden",
|
|
6986
|
+
className
|
|
6987
|
+
),
|
|
6988
|
+
...props,
|
|
6989
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "bg-border relative top-[60%] h-2 w-2 rotate-45 rounded-ts-md shadow-md" })
|
|
6990
|
+
}
|
|
6991
|
+
);
|
|
6992
|
+
}
|
|
6993
|
+
function Pagination({ className, ...props }) {
|
|
6994
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
6995
|
+
"nav",
|
|
6996
|
+
{
|
|
6997
|
+
"data-slot": "pagination",
|
|
6998
|
+
role: "navigation",
|
|
6999
|
+
"aria-label": "pagination",
|
|
7000
|
+
className: cn("mx-auto flex w-full justify-center", className),
|
|
7001
|
+
...props
|
|
7002
|
+
}
|
|
7003
|
+
);
|
|
7004
|
+
}
|
|
7005
|
+
function PaginationContent({
|
|
7006
|
+
className,
|
|
7007
|
+
...props
|
|
7008
|
+
}) {
|
|
7009
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
7010
|
+
"ul",
|
|
7011
|
+
{
|
|
7012
|
+
"data-slot": "pagination-content",
|
|
7013
|
+
className: cn("flex flex-row items-center gap-1", className),
|
|
7014
|
+
...props
|
|
7015
|
+
}
|
|
7016
|
+
);
|
|
7017
|
+
}
|
|
7018
|
+
function PaginationItem({ className, ...props }) {
|
|
7019
|
+
return /* @__PURE__ */ jsxRuntime.jsx("li", { "data-slot": "pagination-item", className, ...props });
|
|
7020
|
+
}
|
|
7021
|
+
function PaginationEllipsis({
|
|
7022
|
+
className,
|
|
7023
|
+
...props
|
|
7024
|
+
}) {
|
|
7025
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
7026
|
+
"span",
|
|
7027
|
+
{
|
|
7028
|
+
"data-slot": "pagination-ellipsis",
|
|
7029
|
+
"aria-hidden": true,
|
|
7030
|
+
className: cn("flex size-9 items-center justify-center", className),
|
|
7031
|
+
...props,
|
|
7032
|
+
children: [
|
|
7033
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.MoreHorizontal, { className: "size-4" }),
|
|
7034
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "More pages" })
|
|
7035
|
+
]
|
|
7036
|
+
}
|
|
7037
|
+
);
|
|
7038
|
+
}
|
|
7039
|
+
var TimelineItem = React4__namespace.forwardRef(
|
|
7040
|
+
({ line, icon: Icon, children, removeSpace, className }, ref) => {
|
|
7041
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref, className: cn("flex items-start relative", className), children: [
|
|
7042
|
+
line && /* @__PURE__ */ jsxRuntime.jsx(
|
|
7043
|
+
"div",
|
|
7044
|
+
{
|
|
7045
|
+
className: cn(
|
|
7046
|
+
"w-9 start-0 top-9 absolute bottom-0",
|
|
7047
|
+
"translate-x-1/2 rtl:-translate-x-1/2",
|
|
7048
|
+
"border-s border-s-input"
|
|
7049
|
+
)
|
|
7050
|
+
}
|
|
7051
|
+
),
|
|
7052
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center justify-center shrink-0 rounded-full bg-accent/60 border border-input size-9 text-secondary-foreground", children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { size: 16, className: "text-base" }) }),
|
|
7053
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("ps-2.5 text-base grow", !removeSpace && "mb-7"), children })
|
|
7054
|
+
] });
|
|
7055
|
+
}
|
|
7056
|
+
);
|
|
7057
|
+
TimelineItem.displayName = "TimelineItem";
|
|
7058
|
+
var kbdVariants = classVarianceAuthority.cva(
|
|
7059
|
+
"inline-flex items-center justify-center font-mono rounded-md",
|
|
7060
|
+
{
|
|
7061
|
+
variants: {
|
|
7062
|
+
variant: {
|
|
7063
|
+
default: "bg-accent border border-border text-accent-foreground",
|
|
7064
|
+
outline: "text-accent-foreground border border-input"
|
|
7065
|
+
},
|
|
7066
|
+
size: {
|
|
7067
|
+
md: "h-7 min-w-7 px-1.5 text-xs [&_svg]:size-3.5",
|
|
7068
|
+
sm: "h-6 min-w-6 px-1 text-xs leading-3 [&_svg]:size-3",
|
|
7069
|
+
xs: "h-5 min-w-5 px-1 text-xs leading-3 [&_svg]:size-3"
|
|
7070
|
+
}
|
|
7071
|
+
},
|
|
7072
|
+
defaultVariants: {
|
|
7073
|
+
variant: "default",
|
|
7074
|
+
size: "md"
|
|
7075
|
+
}
|
|
7076
|
+
}
|
|
7077
|
+
);
|
|
7078
|
+
function Kbd({
|
|
7079
|
+
className,
|
|
7080
|
+
variant,
|
|
7081
|
+
size,
|
|
7082
|
+
...props
|
|
7083
|
+
}) {
|
|
7084
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
7085
|
+
"kbd",
|
|
7086
|
+
{
|
|
7087
|
+
"data-slot": "kbd",
|
|
7088
|
+
className: cn(kbdVariants({ variant, size }), className),
|
|
7089
|
+
...props
|
|
7090
|
+
}
|
|
4721
7091
|
);
|
|
4722
|
-
React__namespace.useEffect(() => {
|
|
4723
|
-
const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
|
|
4724
|
-
const onChange = () => {
|
|
4725
|
-
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
|
|
4726
|
-
};
|
|
4727
|
-
mql.addEventListener("change", onChange);
|
|
4728
|
-
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
|
|
4729
|
-
return () => mql.removeEventListener("change", onChange);
|
|
4730
|
-
}, []);
|
|
4731
|
-
return !!isMobile;
|
|
4732
7092
|
}
|
|
4733
7093
|
function useCopyToClipboard({
|
|
4734
7094
|
timeout = 2e3,
|
|
4735
7095
|
onCopy
|
|
4736
7096
|
} = {}) {
|
|
4737
|
-
const [isCopied, setIsCopied] =
|
|
7097
|
+
const [isCopied, setIsCopied] = React4__namespace.useState(false);
|
|
4738
7098
|
const copyToClipboard = (value) => {
|
|
4739
7099
|
if (typeof window === "undefined" || !navigator.clipboard.writeText) {
|
|
4740
7100
|
return;
|
|
@@ -4752,14 +7112,105 @@ function useCopyToClipboard({
|
|
|
4752
7112
|
};
|
|
4753
7113
|
return { isCopied, copyToClipboard };
|
|
4754
7114
|
}
|
|
7115
|
+
var codeVariants = classVarianceAuthority.cva("relative rounded-md font-mono font-medium", {
|
|
7116
|
+
variants: {
|
|
7117
|
+
variant: {
|
|
7118
|
+
default: "bg-muted text-muted-foreground",
|
|
7119
|
+
destructive: "bg-destructive/10 text-destructive",
|
|
7120
|
+
outline: "border border-border bg-background text-foreground"
|
|
7121
|
+
},
|
|
7122
|
+
size: {
|
|
7123
|
+
default: "text-sm px-2.5 py-1.5",
|
|
7124
|
+
sm: "text-xs px-2 py-1.5",
|
|
7125
|
+
lg: "text-base px-3 py-1.5"
|
|
7126
|
+
}
|
|
7127
|
+
},
|
|
7128
|
+
defaultVariants: {
|
|
7129
|
+
variant: "default",
|
|
7130
|
+
size: "default"
|
|
7131
|
+
}
|
|
7132
|
+
});
|
|
7133
|
+
function Code({
|
|
7134
|
+
className,
|
|
7135
|
+
variant,
|
|
7136
|
+
size,
|
|
7137
|
+
asChild = false,
|
|
7138
|
+
showCopyButton = false,
|
|
7139
|
+
copyText,
|
|
7140
|
+
children,
|
|
7141
|
+
...props
|
|
7142
|
+
}) {
|
|
7143
|
+
const { isCopied, copyToClipboard } = useCopyToClipboard();
|
|
7144
|
+
const Comp = asChild ? SlotPrimitive2.Slot : "code";
|
|
7145
|
+
const textToCopy = copyText || (typeof children === "string" ? children : "");
|
|
7146
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
7147
|
+
"span",
|
|
7148
|
+
{
|
|
7149
|
+
className: cn("inline-flex items-center gap-2", className),
|
|
7150
|
+
"data-slot": "code",
|
|
7151
|
+
children: [
|
|
7152
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7153
|
+
Comp,
|
|
7154
|
+
{
|
|
7155
|
+
"data-slot": "code-panel",
|
|
7156
|
+
className: cn(codeVariants({ variant, size })),
|
|
7157
|
+
...props,
|
|
7158
|
+
children
|
|
7159
|
+
}
|
|
7160
|
+
),
|
|
7161
|
+
showCopyButton && textToCopy && /* @__PURE__ */ jsxRuntime.jsx(
|
|
7162
|
+
Button,
|
|
7163
|
+
{
|
|
7164
|
+
mode: "icon",
|
|
7165
|
+
size: "sm",
|
|
7166
|
+
variant: "ghost",
|
|
7167
|
+
"aria-label": isCopied ? "Copied" : "Copy to clipboard",
|
|
7168
|
+
className: "size-4 p-0 opacity-60 hover:opacity-100",
|
|
7169
|
+
onClick: () => copyToClipboard(textToCopy),
|
|
7170
|
+
children: isCopied ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { className: "size-3" }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Copy, { className: "size-3" })
|
|
7171
|
+
}
|
|
7172
|
+
)
|
|
7173
|
+
]
|
|
7174
|
+
}
|
|
7175
|
+
);
|
|
7176
|
+
}
|
|
7177
|
+
var MOBILE_BREAKPOINT = 992;
|
|
7178
|
+
function useIsMobile() {
|
|
7179
|
+
const [isMobile, setIsMobile] = React4__namespace.useState(
|
|
7180
|
+
void 0
|
|
7181
|
+
);
|
|
7182
|
+
React4__namespace.useEffect(() => {
|
|
7183
|
+
const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
|
|
7184
|
+
const onChange = () => {
|
|
7185
|
+
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
|
|
7186
|
+
};
|
|
7187
|
+
mql.addEventListener("change", onChange);
|
|
7188
|
+
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
|
|
7189
|
+
return () => mql.removeEventListener("change", onChange);
|
|
7190
|
+
}, []);
|
|
7191
|
+
return !!isMobile;
|
|
7192
|
+
}
|
|
4755
7193
|
function useMounted() {
|
|
4756
|
-
const [mounted, setMounted] =
|
|
4757
|
-
|
|
7194
|
+
const [mounted, setMounted] = React4__namespace.useState(false);
|
|
7195
|
+
React4__namespace.useEffect(() => {
|
|
4758
7196
|
setMounted(true);
|
|
4759
7197
|
}, []);
|
|
4760
7198
|
return mounted;
|
|
4761
7199
|
}
|
|
4762
7200
|
|
|
7201
|
+
exports.Accordion = Accordion;
|
|
7202
|
+
exports.AccordionContent = AccordionContent;
|
|
7203
|
+
exports.AccordionItem = AccordionItem;
|
|
7204
|
+
exports.AccordionMenu = AccordionMenu;
|
|
7205
|
+
exports.AccordionMenuGroup = AccordionMenuGroup;
|
|
7206
|
+
exports.AccordionMenuIndicator = AccordionMenuIndicator;
|
|
7207
|
+
exports.AccordionMenuItem = AccordionMenuItem;
|
|
7208
|
+
exports.AccordionMenuLabel = AccordionMenuLabel;
|
|
7209
|
+
exports.AccordionMenuSeparator = AccordionMenuSeparator;
|
|
7210
|
+
exports.AccordionMenuSub = AccordionMenuSub;
|
|
7211
|
+
exports.AccordionMenuSubContent = AccordionMenuSubContent;
|
|
7212
|
+
exports.AccordionMenuSubTrigger = AccordionMenuSubTrigger;
|
|
7213
|
+
exports.AccordionTrigger = AccordionTrigger;
|
|
4763
7214
|
exports.Alert = Alert;
|
|
4764
7215
|
exports.AlertContent = AlertContent;
|
|
4765
7216
|
exports.AlertDescription = AlertDescription;
|
|
@@ -4798,6 +7249,7 @@ exports.BreadcrumbPage = BreadcrumbPage;
|
|
|
4798
7249
|
exports.BreadcrumbSeparator = BreadcrumbSeparator;
|
|
4799
7250
|
exports.Button = Button;
|
|
4800
7251
|
exports.ButtonArrow = ButtonArrow;
|
|
7252
|
+
exports.Calendar = Calendar;
|
|
4801
7253
|
exports.Card = Card;
|
|
4802
7254
|
exports.CardContent = CardContent;
|
|
4803
7255
|
exports.CardDescription = CardDescription;
|
|
@@ -4807,7 +7259,42 @@ exports.CardHeading = CardHeading;
|
|
|
4807
7259
|
exports.CardTable = CardTable;
|
|
4808
7260
|
exports.CardTitle = CardTitle;
|
|
4809
7261
|
exports.CardToolbar = CardToolbar;
|
|
7262
|
+
exports.ChartContainer = ChartContainer;
|
|
7263
|
+
exports.ChartLegend = ChartLegend;
|
|
7264
|
+
exports.ChartLegendContent = ChartLegendContent;
|
|
7265
|
+
exports.ChartStyle = ChartStyle;
|
|
7266
|
+
exports.ChartTooltip = ChartTooltip;
|
|
7267
|
+
exports.ChartTooltipContent = ChartTooltipContent;
|
|
4810
7268
|
exports.Checkbox = Checkbox;
|
|
7269
|
+
exports.Code = Code;
|
|
7270
|
+
exports.Collapsible = Collapsible;
|
|
7271
|
+
exports.CollapsibleContent = CollapsibleContent;
|
|
7272
|
+
exports.CollapsibleTrigger = CollapsibleTrigger;
|
|
7273
|
+
exports.Command = Command;
|
|
7274
|
+
exports.CommandCheck = CommandCheck;
|
|
7275
|
+
exports.CommandDialog = CommandDialog;
|
|
7276
|
+
exports.CommandEmpty = CommandEmpty;
|
|
7277
|
+
exports.CommandGroup = CommandGroup;
|
|
7278
|
+
exports.CommandInput = CommandInput;
|
|
7279
|
+
exports.CommandItem = CommandItem;
|
|
7280
|
+
exports.CommandList = CommandList;
|
|
7281
|
+
exports.CommandSeparator = CommandSeparator;
|
|
7282
|
+
exports.CommandShortcut = CommandShortcut;
|
|
7283
|
+
exports.ContextMenu = ContextMenu;
|
|
7284
|
+
exports.ContextMenuCheckboxItem = ContextMenuCheckboxItem;
|
|
7285
|
+
exports.ContextMenuContent = ContextMenuContent;
|
|
7286
|
+
exports.ContextMenuGroup = ContextMenuGroup;
|
|
7287
|
+
exports.ContextMenuItem = ContextMenuItem;
|
|
7288
|
+
exports.ContextMenuLabel = ContextMenuLabel;
|
|
7289
|
+
exports.ContextMenuPortal = ContextMenuPortal;
|
|
7290
|
+
exports.ContextMenuRadioGroup = ContextMenuRadioGroup;
|
|
7291
|
+
exports.ContextMenuRadioItem = ContextMenuRadioItem;
|
|
7292
|
+
exports.ContextMenuSeparator = ContextMenuSeparator;
|
|
7293
|
+
exports.ContextMenuShortcut = ContextMenuShortcut;
|
|
7294
|
+
exports.ContextMenuSub = ContextMenuSub;
|
|
7295
|
+
exports.ContextMenuSubContent = ContextMenuSubContent;
|
|
7296
|
+
exports.ContextMenuSubTrigger = ContextMenuSubTrigger;
|
|
7297
|
+
exports.ContextMenuTrigger = ContextMenuTrigger;
|
|
4811
7298
|
exports.DataGrid = DataGrid;
|
|
4812
7299
|
exports.DataGridColumnHeader = DataGridColumnHeader;
|
|
4813
7300
|
exports.DataGridColumnVisibility = DataGridColumnVisibility;
|
|
@@ -4831,6 +7318,9 @@ exports.DataGridTableLoader = DataGridTableLoader;
|
|
|
4831
7318
|
exports.DataGridTableRowSelect = DataGridTableRowSelect;
|
|
4832
7319
|
exports.DataGridTableRowSelectAll = DataGridTableRowSelectAll;
|
|
4833
7320
|
exports.DataGridTableRowSpacer = DataGridTableRowSpacer;
|
|
7321
|
+
exports.DateField = DateField;
|
|
7322
|
+
exports.DateInput = DateInput;
|
|
7323
|
+
exports.DateSegment = DateSegment;
|
|
4834
7324
|
exports.Dialog = Dialog;
|
|
4835
7325
|
exports.DialogBody = DialogBody;
|
|
4836
7326
|
exports.DialogClose = DialogClose;
|
|
@@ -4884,11 +7374,41 @@ exports.Icons = Icons;
|
|
|
4884
7374
|
exports.Input = Input;
|
|
4885
7375
|
exports.InputAddon = InputAddon;
|
|
4886
7376
|
exports.InputGroup = InputGroup;
|
|
7377
|
+
exports.InputOTP = InputOTP;
|
|
7378
|
+
exports.InputOTPGroup = InputOTPGroup;
|
|
7379
|
+
exports.InputOTPSeparator = InputOTPSeparator;
|
|
7380
|
+
exports.InputOTPSlot = InputOTPSlot;
|
|
4887
7381
|
exports.InputWrapper = InputWrapper;
|
|
7382
|
+
exports.Kanban = Kanban;
|
|
7383
|
+
exports.KanbanBoard = KanbanBoard;
|
|
7384
|
+
exports.KanbanColumn = KanbanColumn;
|
|
7385
|
+
exports.KanbanColumnContent = KanbanColumnContent;
|
|
7386
|
+
exports.KanbanColumnHandle = KanbanColumnHandle;
|
|
7387
|
+
exports.KanbanItem = KanbanItem;
|
|
7388
|
+
exports.KanbanItemHandle = KanbanItemHandle;
|
|
7389
|
+
exports.KanbanOverlay = KanbanOverlay;
|
|
7390
|
+
exports.Kbd = Kbd;
|
|
4888
7391
|
exports.Label = Label2;
|
|
7392
|
+
exports.NavigationMenu = NavigationMenu;
|
|
7393
|
+
exports.NavigationMenuContent = NavigationMenuContent;
|
|
7394
|
+
exports.NavigationMenuIndicator = NavigationMenuIndicator;
|
|
7395
|
+
exports.NavigationMenuItem = NavigationMenuItem;
|
|
7396
|
+
exports.NavigationMenuLink = NavigationMenuLink;
|
|
7397
|
+
exports.NavigationMenuList = NavigationMenuList;
|
|
7398
|
+
exports.NavigationMenuTrigger = NavigationMenuTrigger;
|
|
7399
|
+
exports.NavigationMenuViewport = NavigationMenuViewport;
|
|
7400
|
+
exports.Pagination = Pagination;
|
|
7401
|
+
exports.PaginationContent = PaginationContent;
|
|
7402
|
+
exports.PaginationEllipsis = PaginationEllipsis;
|
|
7403
|
+
exports.PaginationItem = PaginationItem;
|
|
4889
7404
|
exports.Popover = Popover;
|
|
4890
7405
|
exports.PopoverContent = PopoverContent;
|
|
4891
7406
|
exports.PopoverTrigger = PopoverTrigger;
|
|
7407
|
+
exports.Progress = Progress;
|
|
7408
|
+
exports.ProgressCircle = ProgressCircle;
|
|
7409
|
+
exports.ProgressRadial = ProgressRadial;
|
|
7410
|
+
exports.RadioGroup = RadioGroup2;
|
|
7411
|
+
exports.RadioGroupItem = RadioGroupItem;
|
|
4892
7412
|
exports.ScrollArea = ScrollArea;
|
|
4893
7413
|
exports.ScrollBar = ScrollBar;
|
|
4894
7414
|
exports.Scrollspy = Scrollspy;
|
|
@@ -4916,6 +7436,8 @@ exports.SheetPortal = SheetPortal;
|
|
|
4916
7436
|
exports.SheetTitle = SheetTitle;
|
|
4917
7437
|
exports.SheetTrigger = SheetTrigger;
|
|
4918
7438
|
exports.Skeleton = Skeleton;
|
|
7439
|
+
exports.Slider = Slider;
|
|
7440
|
+
exports.SliderThumb = SliderThumb;
|
|
4919
7441
|
exports.Spinner = Spinner;
|
|
4920
7442
|
exports.Switch = Switch;
|
|
4921
7443
|
exports.SwitchIndicator = SwitchIndicator;
|
|
@@ -4924,6 +7446,9 @@ exports.Tabs = Tabs;
|
|
|
4924
7446
|
exports.TabsContent = TabsContent;
|
|
4925
7447
|
exports.TabsList = TabsList;
|
|
4926
7448
|
exports.TabsTrigger = TabsTrigger;
|
|
7449
|
+
exports.Textarea = Textarea;
|
|
7450
|
+
exports.TimeField = TimeField;
|
|
7451
|
+
exports.TimelineItem = TimelineItem;
|
|
4927
7452
|
exports.Toolbar = Toolbar;
|
|
4928
7453
|
exports.ToolbarActions = ToolbarActions;
|
|
4929
7454
|
exports.ToolbarDescription = ToolbarDescription;
|
|
@@ -4934,14 +7459,22 @@ exports.badgeVariants = badgeVariants;
|
|
|
4934
7459
|
exports.buttonVariantConfig = buttonVariantConfig;
|
|
4935
7460
|
exports.buttonVariants = buttonVariants;
|
|
4936
7461
|
exports.cn = cn;
|
|
7462
|
+
exports.codeVariants = codeVariants;
|
|
7463
|
+
exports.dateInputStyles = dateInputStyles;
|
|
4937
7464
|
exports.headings = headings;
|
|
4938
7465
|
exports.inputAddonVariants = inputAddonVariants;
|
|
4939
7466
|
exports.inputVariants = inputVariants;
|
|
7467
|
+
exports.kbdVariants = kbdVariants;
|
|
4940
7468
|
exports.labelVariants = labelVariants;
|
|
7469
|
+
exports.navigationMenuTriggerStyle = navigationMenuTriggerStyle;
|
|
7470
|
+
exports.radioGroupVariants = radioGroupVariants;
|
|
7471
|
+
exports.radioItemVariants = radioItemVariants;
|
|
4941
7472
|
exports.selectTriggerVariants = selectTriggerVariants;
|
|
4942
7473
|
exports.switchShapes = switchShapes;
|
|
4943
7474
|
exports.switchSizes = switchSizes;
|
|
4944
7475
|
exports.tabsListVariantConfig = tabsListVariantConfig;
|
|
7476
|
+
exports.textareaVariants = textareaVariants;
|
|
7477
|
+
exports.useChart = useChart;
|
|
4945
7478
|
exports.useCopyToClipboard = useCopyToClipboard;
|
|
4946
7479
|
exports.useDataGrid = useDataGrid;
|
|
4947
7480
|
exports.useIsMobile = useIsMobile;
|