@ai-matrx/design-system 0.10.0 → 0.11.0
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/CHANGELOG.md +85 -2
- package/README.md +20 -1
- package/dist/index.cjs +395 -284
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +105 -1
- package/dist/index.d.ts +105 -1
- package/dist/index.js +432 -318
- package/dist/index.js.map +1 -1
- package/package.json +6 -2
package/dist/index.js
CHANGED
|
@@ -1300,10 +1300,122 @@ var CommandShortcut = ({
|
|
|
1300
1300
|
};
|
|
1301
1301
|
CommandShortcut.displayName = "CommandShortcut";
|
|
1302
1302
|
|
|
1303
|
+
// src/confirm-dialog.tsx
|
|
1304
|
+
import { jsx as jsx16, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
1305
|
+
function ConfirmDialog({
|
|
1306
|
+
open,
|
|
1307
|
+
onOpenChange,
|
|
1308
|
+
title,
|
|
1309
|
+
description,
|
|
1310
|
+
content,
|
|
1311
|
+
contentClassName,
|
|
1312
|
+
confirmLabel = "Confirm",
|
|
1313
|
+
cancelLabel = "Cancel",
|
|
1314
|
+
variant = "default",
|
|
1315
|
+
busy = false,
|
|
1316
|
+
confirmDisabled = false,
|
|
1317
|
+
portalContainer,
|
|
1318
|
+
onConfirm
|
|
1319
|
+
}) {
|
|
1320
|
+
return /* @__PURE__ */ jsx16(AlertDialog, { open, onOpenChange, children: /* @__PURE__ */ jsxs7(
|
|
1321
|
+
AlertDialogContent,
|
|
1322
|
+
{
|
|
1323
|
+
className: contentClassName,
|
|
1324
|
+
...portalContainer === void 0 ? {} : { container: portalContainer },
|
|
1325
|
+
children: [
|
|
1326
|
+
/* @__PURE__ */ jsxs7(AlertDialogHeader, { children: [
|
|
1327
|
+
/* @__PURE__ */ jsx16(AlertDialogTitle, { children: title }),
|
|
1328
|
+
description ? /* @__PURE__ */ jsx16(AlertDialogDescription, { children: description }) : null
|
|
1329
|
+
] }),
|
|
1330
|
+
content ?? null,
|
|
1331
|
+
/* @__PURE__ */ jsxs7(AlertDialogFooter, { children: [
|
|
1332
|
+
cancelLabel === null ? null : /* @__PURE__ */ jsx16(AlertDialogCancel, { className: "max-lg:min-h-11", disabled: busy, children: cancelLabel }),
|
|
1333
|
+
/* @__PURE__ */ jsxs7(
|
|
1334
|
+
AlertDialogAction,
|
|
1335
|
+
{
|
|
1336
|
+
disabled: busy || confirmDisabled,
|
|
1337
|
+
onClick: (event) => {
|
|
1338
|
+
event.preventDefault();
|
|
1339
|
+
void onConfirm();
|
|
1340
|
+
},
|
|
1341
|
+
className: cn(
|
|
1342
|
+
"max-lg:min-h-11",
|
|
1343
|
+
// One source of button appearance: the destructive look comes
|
|
1344
|
+
// from `buttonVariants`, not a second hand-written copy of it.
|
|
1345
|
+
// tailwind-merge makes it WIN over the default variant classes.
|
|
1346
|
+
variant === "destructive" && buttonVariants({ variant: "destructive" })
|
|
1347
|
+
),
|
|
1348
|
+
children: [
|
|
1349
|
+
busy ? /* @__PURE__ */ jsx16(Loader2Icon, { className: cn("mr-2 h-4 w-4", MOTION_SPIN) }) : null,
|
|
1350
|
+
confirmLabel
|
|
1351
|
+
]
|
|
1352
|
+
}
|
|
1353
|
+
)
|
|
1354
|
+
] })
|
|
1355
|
+
]
|
|
1356
|
+
}
|
|
1357
|
+
) });
|
|
1358
|
+
}
|
|
1359
|
+
|
|
1360
|
+
// src/confirm-host.tsx
|
|
1361
|
+
import {
|
|
1362
|
+
_registerHost,
|
|
1363
|
+
_unregisterHost
|
|
1364
|
+
} from "@ai-matrx/kit/confirm-opener";
|
|
1365
|
+
import * as React14 from "react";
|
|
1366
|
+
import { jsx as jsx17 } from "react/jsx-runtime";
|
|
1367
|
+
function ConfirmDialogHost() {
|
|
1368
|
+
const [active, setActive] = React14.useState(null);
|
|
1369
|
+
const [tick, setTick] = React14.useState(0);
|
|
1370
|
+
const queueRef = React14.useRef([]);
|
|
1371
|
+
React14.useEffect(() => {
|
|
1372
|
+
const controller = {
|
|
1373
|
+
show: (opts, resolve) => {
|
|
1374
|
+
queueRef.current.push({ opts, resolve });
|
|
1375
|
+
setTick((n) => n + 1);
|
|
1376
|
+
}
|
|
1377
|
+
};
|
|
1378
|
+
_registerHost(controller);
|
|
1379
|
+
return () => _unregisterHost(controller);
|
|
1380
|
+
}, []);
|
|
1381
|
+
React14.useEffect(() => {
|
|
1382
|
+
if (active === null && queueRef.current.length > 0) {
|
|
1383
|
+
setActive(queueRef.current.shift());
|
|
1384
|
+
}
|
|
1385
|
+
}, [active, tick]);
|
|
1386
|
+
const handleConfirm = React14.useCallback(() => {
|
|
1387
|
+
if (!active) return;
|
|
1388
|
+
active.resolve(true);
|
|
1389
|
+
setActive(null);
|
|
1390
|
+
}, [active]);
|
|
1391
|
+
const handleOpenChange = React14.useCallback(
|
|
1392
|
+
(open) => {
|
|
1393
|
+
if (!open && active) {
|
|
1394
|
+
active.resolve(false);
|
|
1395
|
+
setActive(null);
|
|
1396
|
+
}
|
|
1397
|
+
},
|
|
1398
|
+
[active]
|
|
1399
|
+
);
|
|
1400
|
+
return /* @__PURE__ */ jsx17(
|
|
1401
|
+
ConfirmDialog,
|
|
1402
|
+
{
|
|
1403
|
+
open: !!active,
|
|
1404
|
+
onOpenChange: handleOpenChange,
|
|
1405
|
+
title: active?.opts.title ?? "",
|
|
1406
|
+
description: active?.opts.description,
|
|
1407
|
+
confirmLabel: active?.opts.confirmLabel,
|
|
1408
|
+
cancelLabel: active?.opts.cancelLabel,
|
|
1409
|
+
variant: active?.opts.variant,
|
|
1410
|
+
onConfirm: handleConfirm
|
|
1411
|
+
}
|
|
1412
|
+
);
|
|
1413
|
+
}
|
|
1414
|
+
|
|
1303
1415
|
// src/context-menu.tsx
|
|
1304
1416
|
import * as ContextMenuPrimitive from "@radix-ui/react-context-menu";
|
|
1305
|
-
import * as
|
|
1306
|
-
import { jsx as
|
|
1417
|
+
import * as React15 from "react";
|
|
1418
|
+
import { jsx as jsx18, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
1307
1419
|
var ContextMenu = ContextMenuPrimitive.Root;
|
|
1308
1420
|
var ContextMenuTrigger = ContextMenuPrimitive.Trigger;
|
|
1309
1421
|
var ContextMenuGroup = ContextMenuPrimitive.Group;
|
|
@@ -1313,7 +1425,7 @@ var ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;
|
|
|
1313
1425
|
var SURFACE_CLASS = "z-50 min-w-[8rem] max-h-[var(--radix-context-menu-content-available-height)] overflow-y-auto overflow-x-hidden overscroll-contain rounded-md border bg-popover p-1 text-popover-foreground";
|
|
1314
1426
|
var ITEM_CLASS = "relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50";
|
|
1315
1427
|
var INDICATOR_ITEM_CLASS = "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50";
|
|
1316
|
-
var ContextMenuSubTrigger =
|
|
1428
|
+
var ContextMenuSubTrigger = React15.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs8(
|
|
1317
1429
|
ContextMenuPrimitive.SubTrigger,
|
|
1318
1430
|
{
|
|
1319
1431
|
ref,
|
|
@@ -1326,12 +1438,12 @@ var ContextMenuSubTrigger = React14.forwardRef(({ className, inset, children, ..
|
|
|
1326
1438
|
...props,
|
|
1327
1439
|
children: [
|
|
1328
1440
|
children,
|
|
1329
|
-
/* @__PURE__ */
|
|
1441
|
+
/* @__PURE__ */ jsx18(RadixChevronRightIcon, { className: "ml-auto h-4 w-4" })
|
|
1330
1442
|
]
|
|
1331
1443
|
}
|
|
1332
1444
|
));
|
|
1333
1445
|
ContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;
|
|
1334
|
-
var ContextMenuSubContent =
|
|
1446
|
+
var ContextMenuSubContent = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx18(
|
|
1335
1447
|
ContextMenuPrimitive.SubContent,
|
|
1336
1448
|
{
|
|
1337
1449
|
ref,
|
|
@@ -1341,9 +1453,9 @@ var ContextMenuSubContent = React14.forwardRef(({ className, ...props }, ref) =>
|
|
|
1341
1453
|
}
|
|
1342
1454
|
));
|
|
1343
1455
|
ContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;
|
|
1344
|
-
var ContextMenuContent =
|
|
1456
|
+
var ContextMenuContent = React15.forwardRef(({ className, container, ...props }, ref) => {
|
|
1345
1457
|
const portalContainer = usePortalContainer(container);
|
|
1346
|
-
return /* @__PURE__ */
|
|
1458
|
+
return /* @__PURE__ */ jsx18(ContextMenuPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ jsx18(
|
|
1347
1459
|
ContextMenuPrimitive.Content,
|
|
1348
1460
|
{
|
|
1349
1461
|
ref,
|
|
@@ -1354,7 +1466,7 @@ var ContextMenuContent = React14.forwardRef(({ className, container, ...props },
|
|
|
1354
1466
|
) });
|
|
1355
1467
|
});
|
|
1356
1468
|
ContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;
|
|
1357
|
-
var ContextMenuItem =
|
|
1469
|
+
var ContextMenuItem = React15.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx18(
|
|
1358
1470
|
ContextMenuPrimitive.Item,
|
|
1359
1471
|
{
|
|
1360
1472
|
ref,
|
|
@@ -1369,7 +1481,7 @@ var ContextMenuItem = React14.forwardRef(({ className, inset, ...props }, ref) =
|
|
|
1369
1481
|
}
|
|
1370
1482
|
));
|
|
1371
1483
|
ContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName;
|
|
1372
|
-
var ContextMenuCheckboxItem =
|
|
1484
|
+
var ContextMenuCheckboxItem = React15.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs8(
|
|
1373
1485
|
ContextMenuPrimitive.CheckboxItem,
|
|
1374
1486
|
{
|
|
1375
1487
|
ref,
|
|
@@ -1377,13 +1489,13 @@ var ContextMenuCheckboxItem = React14.forwardRef(({ className, children, ...prop
|
|
|
1377
1489
|
className: cn(INDICATOR_ITEM_CLASS, className),
|
|
1378
1490
|
...props,
|
|
1379
1491
|
children: [
|
|
1380
|
-
/* @__PURE__ */
|
|
1492
|
+
/* @__PURE__ */ jsx18("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx18(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx18(CheckIcon, { className: "h-4 w-4" }) }) }),
|
|
1381
1493
|
children
|
|
1382
1494
|
]
|
|
1383
1495
|
}
|
|
1384
1496
|
));
|
|
1385
1497
|
ContextMenuCheckboxItem.displayName = ContextMenuPrimitive.CheckboxItem.displayName;
|
|
1386
|
-
var ContextMenuRadioItem =
|
|
1498
|
+
var ContextMenuRadioItem = React15.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs8(
|
|
1387
1499
|
ContextMenuPrimitive.RadioItem,
|
|
1388
1500
|
{
|
|
1389
1501
|
ref,
|
|
@@ -1391,13 +1503,13 @@ var ContextMenuRadioItem = React14.forwardRef(({ className, children, ...props }
|
|
|
1391
1503
|
className: cn(INDICATOR_ITEM_CLASS, className),
|
|
1392
1504
|
...props,
|
|
1393
1505
|
children: [
|
|
1394
|
-
/* @__PURE__ */
|
|
1506
|
+
/* @__PURE__ */ jsx18("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx18(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx18(DotFilledIcon, { className: "h-4 w-4 fill-current" }) }) }),
|
|
1395
1507
|
children
|
|
1396
1508
|
]
|
|
1397
1509
|
}
|
|
1398
1510
|
));
|
|
1399
1511
|
ContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName;
|
|
1400
|
-
var ContextMenuLabel =
|
|
1512
|
+
var ContextMenuLabel = React15.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx18(
|
|
1401
1513
|
ContextMenuPrimitive.Label,
|
|
1402
1514
|
{
|
|
1403
1515
|
ref,
|
|
@@ -1411,7 +1523,7 @@ var ContextMenuLabel = React14.forwardRef(({ className, inset, ...props }, ref)
|
|
|
1411
1523
|
}
|
|
1412
1524
|
));
|
|
1413
1525
|
ContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName;
|
|
1414
|
-
var ContextMenuSeparator =
|
|
1526
|
+
var ContextMenuSeparator = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx18(
|
|
1415
1527
|
ContextMenuPrimitive.Separator,
|
|
1416
1528
|
{
|
|
1417
1529
|
ref,
|
|
@@ -1424,7 +1536,7 @@ ContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName;
|
|
|
1424
1536
|
var ContextMenuShortcut = ({
|
|
1425
1537
|
className,
|
|
1426
1538
|
...props
|
|
1427
|
-
}) => /* @__PURE__ */
|
|
1539
|
+
}) => /* @__PURE__ */ jsx18(
|
|
1428
1540
|
"span",
|
|
1429
1541
|
{
|
|
1430
1542
|
"data-slot": "context-menu-shortcut",
|
|
@@ -1436,18 +1548,18 @@ ContextMenuShortcut.displayName = "ContextMenuShortcut";
|
|
|
1436
1548
|
|
|
1437
1549
|
// src/creatable-picker.tsx
|
|
1438
1550
|
import {
|
|
1439
|
-
useRef,
|
|
1440
|
-
useState as
|
|
1551
|
+
useRef as useRef2,
|
|
1552
|
+
useState as useState3
|
|
1441
1553
|
} from "react";
|
|
1442
1554
|
|
|
1443
1555
|
// src/popover.tsx
|
|
1444
1556
|
import * as PopoverPrimitive from "@radix-ui/react-popover";
|
|
1445
|
-
import * as
|
|
1446
|
-
import { jsx as
|
|
1557
|
+
import * as React16 from "react";
|
|
1558
|
+
import { jsx as jsx19 } from "react/jsx-runtime";
|
|
1447
1559
|
var Popover = PopoverPrimitive.Root;
|
|
1448
1560
|
var PopoverTrigger = PopoverPrimitive.Trigger;
|
|
1449
1561
|
var PopoverAnchor = PopoverPrimitive.Anchor;
|
|
1450
|
-
var PopoverContent =
|
|
1562
|
+
var PopoverContent = React16.forwardRef(
|
|
1451
1563
|
({
|
|
1452
1564
|
className,
|
|
1453
1565
|
align = "center",
|
|
@@ -1457,7 +1569,7 @@ var PopoverContent = React15.forwardRef(
|
|
|
1457
1569
|
...props
|
|
1458
1570
|
}, ref) => {
|
|
1459
1571
|
const portalContainer = usePortalContainer(container);
|
|
1460
|
-
return /* @__PURE__ */
|
|
1572
|
+
return /* @__PURE__ */ jsx19(PopoverPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ jsx19(
|
|
1461
1573
|
PopoverPrimitive.Content,
|
|
1462
1574
|
{
|
|
1463
1575
|
ref,
|
|
@@ -1482,7 +1594,7 @@ var PopoverContent = React15.forwardRef(
|
|
|
1482
1594
|
PopoverContent.displayName = PopoverPrimitive.Content.displayName;
|
|
1483
1595
|
|
|
1484
1596
|
// src/creatable-picker.tsx
|
|
1485
|
-
import { jsx as
|
|
1597
|
+
import { jsx as jsx20, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
1486
1598
|
function article(noun) {
|
|
1487
1599
|
return /^[aeiou]/i.test(noun.trim()) ? `an ${noun}` : `a ${noun}`;
|
|
1488
1600
|
}
|
|
@@ -1509,11 +1621,11 @@ function CreatablePicker({
|
|
|
1509
1621
|
renderSelected,
|
|
1510
1622
|
size = "sm"
|
|
1511
1623
|
}) {
|
|
1512
|
-
const [open, setOpen] =
|
|
1513
|
-
const [query, setQuery] =
|
|
1514
|
-
const [busy, setBusy] =
|
|
1515
|
-
const inputRef =
|
|
1516
|
-
const [needsName, setNeedsName] =
|
|
1624
|
+
const [open, setOpen] = useState3(false);
|
|
1625
|
+
const [query, setQuery] = useState3("");
|
|
1626
|
+
const [busy, setBusy] = useState3(false);
|
|
1627
|
+
const inputRef = useRef2(null);
|
|
1628
|
+
const [needsName, setNeedsName] = useState3(false);
|
|
1517
1629
|
const selected = options.find((option) => option.value === value) ?? null;
|
|
1518
1630
|
const groups = [];
|
|
1519
1631
|
for (const option of options) {
|
|
@@ -1557,8 +1669,8 @@ function CreatablePicker({
|
|
|
1557
1669
|
setBusy(false);
|
|
1558
1670
|
}
|
|
1559
1671
|
};
|
|
1560
|
-
return /* @__PURE__ */
|
|
1561
|
-
/* @__PURE__ */
|
|
1672
|
+
return /* @__PURE__ */ jsxs9(Popover, { open, onOpenChange: (next) => next ? setOpen(true) : close(), children: [
|
|
1673
|
+
/* @__PURE__ */ jsx20(PopoverTrigger, { asChild: true, disabled, children: /* @__PURE__ */ jsxs9(
|
|
1562
1674
|
"button",
|
|
1563
1675
|
{
|
|
1564
1676
|
type: "button",
|
|
@@ -1572,12 +1684,12 @@ function CreatablePicker({
|
|
|
1572
1684
|
triggerClassName
|
|
1573
1685
|
),
|
|
1574
1686
|
children: [
|
|
1575
|
-
/* @__PURE__ */
|
|
1576
|
-
/* @__PURE__ */
|
|
1687
|
+
/* @__PURE__ */ jsx20("span", { className: "min-w-0 flex-1 truncate", children: selected ? renderSelected ?? selected.render ?? selected.label : /* @__PURE__ */ jsx20("span", { className: "text-muted-foreground", children: loading ? "Loading\u2026" : placeholder }) }),
|
|
1688
|
+
/* @__PURE__ */ jsx20(ChevronsUpDownIcon, { className: "size-3.5 shrink-0 opacity-50" })
|
|
1577
1689
|
]
|
|
1578
1690
|
}
|
|
1579
1691
|
) }),
|
|
1580
|
-
/* @__PURE__ */
|
|
1692
|
+
/* @__PURE__ */ jsx20(PopoverContent, { align: "start", className: "w-[--radix-popover-trigger-width] min-w-56 p-0", children: /* @__PURE__ */ jsxs9(
|
|
1581
1693
|
Command,
|
|
1582
1694
|
{
|
|
1583
1695
|
filter: (itemValue, search, keywords) => {
|
|
@@ -1585,7 +1697,7 @@ function CreatablePicker({
|
|
|
1585
1697
|
return haystack.includes(search.toLowerCase()) ? 1 : 0;
|
|
1586
1698
|
},
|
|
1587
1699
|
children: [
|
|
1588
|
-
/* @__PURE__ */
|
|
1700
|
+
/* @__PURE__ */ jsx20(
|
|
1589
1701
|
CommandInput,
|
|
1590
1702
|
{
|
|
1591
1703
|
ref: inputRef,
|
|
@@ -1597,13 +1709,13 @@ function CreatablePicker({
|
|
|
1597
1709
|
placeholder: searchPlaceholder ?? `Search or add ${article(noun)}\u2026`
|
|
1598
1710
|
}
|
|
1599
1711
|
),
|
|
1600
|
-
/* @__PURE__ */
|
|
1601
|
-
/* @__PURE__ */
|
|
1602
|
-
groups.map((group) => /* @__PURE__ */
|
|
1712
|
+
/* @__PURE__ */ jsxs9(CommandList, { children: [
|
|
1713
|
+
/* @__PURE__ */ jsx20(CommandEmpty, { children: emptyLabel }),
|
|
1714
|
+
groups.map((group) => /* @__PURE__ */ jsx20(
|
|
1603
1715
|
CommandGroup,
|
|
1604
1716
|
{
|
|
1605
1717
|
...group.heading === void 0 ? {} : { heading: group.heading },
|
|
1606
|
-
children: group.options.map((option) => /* @__PURE__ */
|
|
1718
|
+
children: group.options.map((option) => /* @__PURE__ */ jsxs9(
|
|
1607
1719
|
CommandItem,
|
|
1608
1720
|
{
|
|
1609
1721
|
value: option.label,
|
|
@@ -1614,7 +1726,7 @@ function CreatablePicker({
|
|
|
1614
1726
|
},
|
|
1615
1727
|
className: "gap-2 text-xs",
|
|
1616
1728
|
children: [
|
|
1617
|
-
/* @__PURE__ */
|
|
1729
|
+
/* @__PURE__ */ jsx20(
|
|
1618
1730
|
LucideCheckIcon,
|
|
1619
1731
|
{
|
|
1620
1732
|
className: cn(
|
|
@@ -1623,8 +1735,8 @@ function CreatablePicker({
|
|
|
1623
1735
|
)
|
|
1624
1736
|
}
|
|
1625
1737
|
),
|
|
1626
|
-
/* @__PURE__ */
|
|
1627
|
-
option.hint ? /* @__PURE__ */
|
|
1738
|
+
/* @__PURE__ */ jsx20("span", { className: "min-w-0 flex-1 truncate", children: option.render ?? option.label }),
|
|
1739
|
+
option.hint ? /* @__PURE__ */ jsx20("span", { className: "shrink-0 text-[10px] text-muted-foreground", children: option.hint }) : null
|
|
1628
1740
|
]
|
|
1629
1741
|
},
|
|
1630
1742
|
option.value
|
|
@@ -1633,9 +1745,9 @@ function CreatablePicker({
|
|
|
1633
1745
|
group.heading ?? "__ungrouped__"
|
|
1634
1746
|
))
|
|
1635
1747
|
] }),
|
|
1636
|
-
canCreate ? /* @__PURE__ */
|
|
1637
|
-
createExtra && typed && !exactMatch ? /* @__PURE__ */
|
|
1638
|
-
/* @__PURE__ */
|
|
1748
|
+
canCreate ? /* @__PURE__ */ jsxs9("div", { className: "space-y-1 border-t border-border p-1", children: [
|
|
1749
|
+
createExtra && typed && !exactMatch ? /* @__PURE__ */ jsx20("div", { className: "px-1 pt-0.5", children: typeof createExtra === "function" ? createExtra(typed) : createExtra }) : null,
|
|
1750
|
+
/* @__PURE__ */ jsxs9(
|
|
1639
1751
|
"button",
|
|
1640
1752
|
{
|
|
1641
1753
|
type: "button",
|
|
@@ -1643,22 +1755,22 @@ function CreatablePicker({
|
|
|
1643
1755
|
onClick: () => void create(typed),
|
|
1644
1756
|
className: "flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-left text-xs text-muted-foreground transition-colors hover:bg-accent hover:text-foreground disabled:opacity-50",
|
|
1645
1757
|
children: [
|
|
1646
|
-
busy ? /* @__PURE__ */
|
|
1647
|
-
/* @__PURE__ */
|
|
1758
|
+
busy ? /* @__PURE__ */ jsx20(Loader2Icon, { className: "size-3.5 shrink-0 matrx-spin" }) : /* @__PURE__ */ jsx20(PlusIcon, { className: "size-3.5 shrink-0" }),
|
|
1759
|
+
/* @__PURE__ */ jsx20("span", { className: "min-w-0 truncate", children: typed && !exactMatch ? `Create \u201C${typed}\u201D` : `Add ${article(noun)}\u2026` })
|
|
1648
1760
|
]
|
|
1649
1761
|
}
|
|
1650
1762
|
),
|
|
1651
|
-
needsName ? /* @__PURE__ */
|
|
1763
|
+
needsName ? /* @__PURE__ */ jsxs9("p", { className: "px-2 pb-0.5 text-[11px] leading-snug text-muted-foreground", children: [
|
|
1652
1764
|
"Type the name of the ",
|
|
1653
1765
|
noun,
|
|
1654
1766
|
" you want to add \u2014 then this creates it."
|
|
1655
1767
|
] }) : null
|
|
1656
1768
|
] }) : null,
|
|
1657
|
-
footerActions?.length || manageAction ? /* @__PURE__ */
|
|
1769
|
+
footerActions?.length || manageAction ? /* @__PURE__ */ jsxs9("div", { className: "space-y-0.5 border-t border-border p-1", children: [
|
|
1658
1770
|
footerActions?.map((action) => {
|
|
1659
1771
|
const Icon2 = action.icon;
|
|
1660
|
-
return /* @__PURE__ */
|
|
1661
|
-
/* @__PURE__ */
|
|
1772
|
+
return /* @__PURE__ */ jsxs9("div", { children: [
|
|
1773
|
+
/* @__PURE__ */ jsxs9(
|
|
1662
1774
|
"button",
|
|
1663
1775
|
{
|
|
1664
1776
|
type: "button",
|
|
@@ -1668,15 +1780,15 @@ function CreatablePicker({
|
|
|
1668
1780
|
},
|
|
1669
1781
|
className: "flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-left text-xs text-muted-foreground transition-colors hover:bg-accent hover:text-foreground",
|
|
1670
1782
|
children: [
|
|
1671
|
-
Icon2 ? /* @__PURE__ */
|
|
1672
|
-
/* @__PURE__ */
|
|
1783
|
+
Icon2 ? /* @__PURE__ */ jsx20(Icon2, { className: "size-3.5 shrink-0" }) : null,
|
|
1784
|
+
/* @__PURE__ */ jsx20("span", { className: "min-w-0 truncate", children: action.label })
|
|
1673
1785
|
]
|
|
1674
1786
|
}
|
|
1675
1787
|
),
|
|
1676
|
-
action.note ? /* @__PURE__ */
|
|
1788
|
+
action.note ? /* @__PURE__ */ jsx20("p", { className: "px-2 pb-1 text-[10px] leading-snug text-muted-foreground", children: action.note }) : null
|
|
1677
1789
|
] }, action.label);
|
|
1678
1790
|
}),
|
|
1679
|
-
manageAction ? /* @__PURE__ */
|
|
1791
|
+
manageAction ? /* @__PURE__ */ jsxs9(
|
|
1680
1792
|
"a",
|
|
1681
1793
|
{
|
|
1682
1794
|
href: manageAction.href,
|
|
@@ -1685,18 +1797,18 @@ function CreatablePicker({
|
|
|
1685
1797
|
onClick: close,
|
|
1686
1798
|
className: "flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-left text-xs text-muted-foreground transition-colors hover:bg-accent hover:text-foreground",
|
|
1687
1799
|
children: [
|
|
1688
|
-
/* @__PURE__ */
|
|
1689
|
-
/* @__PURE__ */
|
|
1800
|
+
/* @__PURE__ */ jsx20(ExternalLinkIcon, { className: "size-3.5 shrink-0" }),
|
|
1801
|
+
/* @__PURE__ */ jsx20("span", { className: "min-w-0 truncate", children: manageAction.label })
|
|
1690
1802
|
]
|
|
1691
1803
|
}
|
|
1692
1804
|
) : null
|
|
1693
1805
|
] }) : null,
|
|
1694
|
-
lockedNote ? /* @__PURE__ */
|
|
1695
|
-
/* @__PURE__ */
|
|
1696
|
-
/* @__PURE__ */
|
|
1697
|
-
/* @__PURE__ */
|
|
1806
|
+
lockedNote ? /* @__PURE__ */ jsxs9("div", { className: "space-y-1 border-t border-border p-2", children: [
|
|
1807
|
+
/* @__PURE__ */ jsxs9("p", { className: "flex gap-1.5 text-[11px] leading-snug text-muted-foreground", children: [
|
|
1808
|
+
/* @__PURE__ */ jsx20(LockIcon, { className: "mt-px size-3 shrink-0" }),
|
|
1809
|
+
/* @__PURE__ */ jsx20("span", { children: lockedNote })
|
|
1698
1810
|
] }),
|
|
1699
|
-
lockedAction ? /* @__PURE__ */
|
|
1811
|
+
lockedAction ? /* @__PURE__ */ jsxs9(
|
|
1700
1812
|
"button",
|
|
1701
1813
|
{
|
|
1702
1814
|
type: "button",
|
|
@@ -1706,8 +1818,8 @@ function CreatablePicker({
|
|
|
1706
1818
|
},
|
|
1707
1819
|
className: "flex w-full items-center gap-2 rounded-sm px-1 py-1 text-left text-xs font-medium text-primary transition-colors hover:bg-accent",
|
|
1708
1820
|
children: [
|
|
1709
|
-
/* @__PURE__ */
|
|
1710
|
-
/* @__PURE__ */
|
|
1821
|
+
/* @__PURE__ */ jsx20(PlusIcon, { className: "size-3.5 shrink-0" }),
|
|
1822
|
+
/* @__PURE__ */ jsx20("span", { className: "min-w-0 truncate", children: lockedAction.label })
|
|
1711
1823
|
]
|
|
1712
1824
|
}
|
|
1713
1825
|
) : null
|
|
@@ -1722,14 +1834,14 @@ function CreatablePicker({
|
|
|
1722
1834
|
import * as DialogPrimitive2 from "@radix-ui/react-dialog";
|
|
1723
1835
|
import * as VisuallyHidden2 from "@radix-ui/react-visually-hidden";
|
|
1724
1836
|
import { treeContainsComponent as treeContainsComponent3 } from "@ai-matrx/kit/react-tree";
|
|
1725
|
-
import * as
|
|
1726
|
-
import { jsx as
|
|
1837
|
+
import * as React17 from "react";
|
|
1838
|
+
import { jsx as jsx21, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
1727
1839
|
var Dialog = ({
|
|
1728
1840
|
children,
|
|
1729
1841
|
...props
|
|
1730
1842
|
}) => {
|
|
1731
1843
|
const modal = props.modal ?? true;
|
|
1732
|
-
return /* @__PURE__ */
|
|
1844
|
+
return /* @__PURE__ */ jsx21(RadixDialogModalProvider, { modal, children: /* @__PURE__ */ jsx21(DialogPrimitive2.Root, { ...props, modal, children }) });
|
|
1733
1845
|
};
|
|
1734
1846
|
Dialog.displayName = "Dialog";
|
|
1735
1847
|
var DialogTrigger = DialogPrimitive2.Trigger;
|
|
@@ -1739,12 +1851,12 @@ var DialogPortal = ({
|
|
|
1739
1851
|
...props
|
|
1740
1852
|
}) => {
|
|
1741
1853
|
const resolved = usePortalContainer(container);
|
|
1742
|
-
return /* @__PURE__ */
|
|
1854
|
+
return /* @__PURE__ */ jsx21(DialogPrimitive2.Portal, { container: resolved ?? null, ...props });
|
|
1743
1855
|
};
|
|
1744
1856
|
DialogPortal.displayName = "DialogPortal";
|
|
1745
|
-
var DialogContainerContext =
|
|
1746
|
-
var useDialogContainer = () =>
|
|
1747
|
-
var DialogOverlay =
|
|
1857
|
+
var DialogContainerContext = React17.createContext(null);
|
|
1858
|
+
var useDialogContainer = () => React17.useContext(DialogContainerContext);
|
|
1859
|
+
var DialogOverlay = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx21(
|
|
1748
1860
|
DialogPrimitive2.Overlay,
|
|
1749
1861
|
{
|
|
1750
1862
|
ref,
|
|
@@ -1760,9 +1872,9 @@ var DialogOverlay = React16.forwardRef(({ className, ...props }, ref) => /* @__P
|
|
|
1760
1872
|
}
|
|
1761
1873
|
));
|
|
1762
1874
|
DialogOverlay.displayName = DialogPrimitive2.Overlay.displayName;
|
|
1763
|
-
var DialogContentPrimitive =
|
|
1875
|
+
var DialogContentPrimitive = React17.forwardRef((props, ref) => {
|
|
1764
1876
|
const isModal = useRadixDialogModal();
|
|
1765
|
-
return /* @__PURE__ */
|
|
1877
|
+
return /* @__PURE__ */ jsx21(
|
|
1766
1878
|
DialogPrimitive2.Content,
|
|
1767
1879
|
{
|
|
1768
1880
|
...props,
|
|
@@ -1775,7 +1887,7 @@ DialogContentPrimitive.displayName = "DialogContentPrimitive";
|
|
|
1775
1887
|
var DIALOG_DESKTOP_CLASSES2 = "fixed left-[50%] top-[50%] z-[10000] grid min-w-0 w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 max-h-[85dvh] overflow-y-auto overscroll-contain [--dialog-pad:1.5rem] overflow-x-clip border bg-background p-6 shadow-lg [overflow-wrap:anywhere] [&>*]:min-w-0 [&>*]:max-w-full sm:rounded-lg";
|
|
1776
1888
|
var DIALOG_MOBILE_SHEET_CLASSES2 = "matrx-mobile-sheet fixed inset-x-0 bottom-0 left-0 right-0 top-auto z-[10000] flex min-w-0 flex-col w-full max-w-full max-h-[90dvh] translate-x-0 translate-y-0 gap-4 [--dialog-pad:1rem] overflow-x-clip border-t bg-background p-4 pb-safe shadow-lg [overflow-wrap:anywhere] [&>*]:min-w-0 [&>*]:max-w-full rounded-t-2xl rounded-b-none overflow-y-auto overscroll-contain";
|
|
1777
1889
|
var DIALOG_MOBILE_SHEET_OVERRIDE2 = "inset-x-0 bottom-0 left-0 right-0 top-auto translate-x-0 translate-y-0 w-full max-w-full max-h-[90dvh] rounded-b-none rounded-t-2xl overflow-y-auto";
|
|
1778
|
-
var DialogContent =
|
|
1890
|
+
var DialogContent = React17.forwardRef(
|
|
1779
1891
|
({
|
|
1780
1892
|
className,
|
|
1781
1893
|
children,
|
|
@@ -1789,10 +1901,10 @@ var DialogContent = React16.forwardRef(
|
|
|
1789
1901
|
const isModal = useRadixDialogModal();
|
|
1790
1902
|
const injectedContainer = usePortalContainer(container);
|
|
1791
1903
|
const asSheet = mobileSheet && isMobile;
|
|
1792
|
-
const [containerEl, setContainerEl] =
|
|
1904
|
+
const [containerEl, setContainerEl] = React17.useState(
|
|
1793
1905
|
null
|
|
1794
1906
|
);
|
|
1795
|
-
const mergedRef =
|
|
1907
|
+
const mergedRef = React17.useCallback(
|
|
1796
1908
|
(node) => {
|
|
1797
1909
|
setContainerEl(node);
|
|
1798
1910
|
if (typeof ref === "function") ref(node);
|
|
@@ -1803,9 +1915,9 @@ var DialogContent = React16.forwardRef(
|
|
|
1803
1915
|
);
|
|
1804
1916
|
const hasTitle = treeContainsComponent3(children, DialogTitle) || treeContainsComponent3(children, DialogPrimitive2.Title);
|
|
1805
1917
|
const hasDescription = treeContainsComponent3(children, DialogDescription) || treeContainsComponent3(children, DialogPrimitive2.Description);
|
|
1806
|
-
return /* @__PURE__ */
|
|
1807
|
-
isModal ? /* @__PURE__ */
|
|
1808
|
-
/* @__PURE__ */
|
|
1918
|
+
return /* @__PURE__ */ jsxs10(DialogPortal, { container, children: [
|
|
1919
|
+
isModal ? /* @__PURE__ */ jsx21(DialogOverlay, {}) : null,
|
|
1920
|
+
/* @__PURE__ */ jsxs10(
|
|
1809
1921
|
DialogContentPrimitive,
|
|
1810
1922
|
{
|
|
1811
1923
|
ref: mergedRef,
|
|
@@ -1824,23 +1936,23 @@ var DialogContent = React16.forwardRef(
|
|
|
1824
1936
|
...hasDescription ? {} : { "aria-describedby": void 0 },
|
|
1825
1937
|
...props,
|
|
1826
1938
|
children: [
|
|
1827
|
-
hasTitle ? null : /* @__PURE__ */
|
|
1828
|
-
/* @__PURE__ */
|
|
1939
|
+
hasTitle ? null : /* @__PURE__ */ jsx21(VisuallyHidden2.Root, { children: /* @__PURE__ */ jsx21(DialogPrimitive2.Title, { children: "Dialog" }) }),
|
|
1940
|
+
/* @__PURE__ */ jsx21(DialogContainerContext.Provider, { value: containerEl, children: /* @__PURE__ */ jsx21(
|
|
1829
1941
|
PortalContainerProvider,
|
|
1830
1942
|
{
|
|
1831
1943
|
container: containerEl ?? injectedContainer ?? null,
|
|
1832
1944
|
children
|
|
1833
1945
|
}
|
|
1834
1946
|
) }),
|
|
1835
|
-
showCloseButton ? /* @__PURE__ */
|
|
1947
|
+
showCloseButton ? /* @__PURE__ */ jsxs10(
|
|
1836
1948
|
DialogPrimitive2.Close,
|
|
1837
1949
|
{
|
|
1838
1950
|
"data-slot": "dialog-close",
|
|
1839
1951
|
"aria-label": "Close",
|
|
1840
1952
|
className: "absolute right-2 top-4 flex h-11 w-11 items-center justify-center rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground sm:right-4 lg:h-10 lg:w-10",
|
|
1841
1953
|
children: [
|
|
1842
|
-
/* @__PURE__ */
|
|
1843
|
-
/* @__PURE__ */
|
|
1954
|
+
/* @__PURE__ */ jsx21(XIcon, { className: "h-4 w-4" }),
|
|
1955
|
+
/* @__PURE__ */ jsx21("span", { className: "sr-only", children: "Close" })
|
|
1844
1956
|
]
|
|
1845
1957
|
}
|
|
1846
1958
|
) : null
|
|
@@ -1854,7 +1966,7 @@ DialogContent.displayName = DialogPrimitive2.Content.displayName;
|
|
|
1854
1966
|
var DialogHeader = ({
|
|
1855
1967
|
className,
|
|
1856
1968
|
...props
|
|
1857
|
-
}) => /* @__PURE__ */
|
|
1969
|
+
}) => /* @__PURE__ */ jsx21(
|
|
1858
1970
|
"div",
|
|
1859
1971
|
{
|
|
1860
1972
|
"data-slot": "dialog-header",
|
|
@@ -1871,7 +1983,7 @@ DialogHeader.displayName = "DialogHeader";
|
|
|
1871
1983
|
var DialogFooter = ({
|
|
1872
1984
|
className,
|
|
1873
1985
|
...props
|
|
1874
|
-
}) => /* @__PURE__ */
|
|
1986
|
+
}) => /* @__PURE__ */ jsx21(
|
|
1875
1987
|
"div",
|
|
1876
1988
|
{
|
|
1877
1989
|
"data-slot": "dialog-footer",
|
|
@@ -1885,7 +1997,7 @@ var DialogFooter = ({
|
|
|
1885
1997
|
}
|
|
1886
1998
|
);
|
|
1887
1999
|
DialogFooter.displayName = "DialogFooter";
|
|
1888
|
-
var DialogTitle =
|
|
2000
|
+
var DialogTitle = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx21(
|
|
1889
2001
|
DialogPrimitive2.Title,
|
|
1890
2002
|
{
|
|
1891
2003
|
ref,
|
|
@@ -1895,7 +2007,7 @@ var DialogTitle = React16.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
1895
2007
|
}
|
|
1896
2008
|
));
|
|
1897
2009
|
DialogTitle.displayName = DialogPrimitive2.Title.displayName;
|
|
1898
|
-
var DialogDescription =
|
|
2010
|
+
var DialogDescription = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx21(
|
|
1899
2011
|
DialogPrimitive2.Description,
|
|
1900
2012
|
{
|
|
1901
2013
|
ref,
|
|
@@ -1908,8 +2020,8 @@ DialogDescription.displayName = DialogPrimitive2.Description.displayName;
|
|
|
1908
2020
|
|
|
1909
2021
|
// src/dropdown-menu.tsx
|
|
1910
2022
|
import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
|
|
1911
|
-
import * as
|
|
1912
|
-
import { jsx as
|
|
2023
|
+
import * as React18 from "react";
|
|
2024
|
+
import { jsx as jsx22, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
1913
2025
|
var DropdownMenu = DropdownMenuPrimitive.Root;
|
|
1914
2026
|
var DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
|
|
1915
2027
|
var DropdownMenuGroup = DropdownMenuPrimitive.Group;
|
|
@@ -1919,7 +2031,7 @@ var DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
|
|
|
1919
2031
|
var MENU_SURFACE_CLASS = "z-[10001] min-w-[8rem] max-h-[var(--radix-dropdown-menu-content-available-height)] overflow-y-auto overflow-x-hidden overscroll-contain rounded-md border bg-popover p-1 text-popover-foreground";
|
|
1920
2032
|
var MENU_ITEM_CLASS = "relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50";
|
|
1921
2033
|
var MENU_INDICATOR_ITEM_CLASS = "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50";
|
|
1922
|
-
var DropdownMenuSubTrigger =
|
|
2034
|
+
var DropdownMenuSubTrigger = React18.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs11(
|
|
1923
2035
|
DropdownMenuPrimitive.SubTrigger,
|
|
1924
2036
|
{
|
|
1925
2037
|
ref,
|
|
@@ -1932,12 +2044,12 @@ var DropdownMenuSubTrigger = React17.forwardRef(({ className, inset, children, .
|
|
|
1932
2044
|
...props,
|
|
1933
2045
|
children: [
|
|
1934
2046
|
children,
|
|
1935
|
-
/* @__PURE__ */
|
|
2047
|
+
/* @__PURE__ */ jsx22(RadixChevronRightIcon, { className: "ml-auto h-4 w-4" })
|
|
1936
2048
|
]
|
|
1937
2049
|
}
|
|
1938
2050
|
));
|
|
1939
2051
|
DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
|
|
1940
|
-
var DropdownMenuSubContent =
|
|
2052
|
+
var DropdownMenuSubContent = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx22(
|
|
1941
2053
|
DropdownMenuPrimitive.SubContent,
|
|
1942
2054
|
{
|
|
1943
2055
|
ref,
|
|
@@ -1947,9 +2059,9 @@ var DropdownMenuSubContent = React17.forwardRef(({ className, ...props }, ref) =
|
|
|
1947
2059
|
}
|
|
1948
2060
|
));
|
|
1949
2061
|
DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
|
|
1950
|
-
var DropdownMenuContent =
|
|
2062
|
+
var DropdownMenuContent = React18.forwardRef(({ className, sideOffset = 4, container, ...props }, ref) => {
|
|
1951
2063
|
const portalContainer = usePortalContainer(container);
|
|
1952
|
-
return /* @__PURE__ */
|
|
2064
|
+
return /* @__PURE__ */ jsx22(DropdownMenuPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ jsx22(
|
|
1953
2065
|
DropdownMenuPrimitive.Content,
|
|
1954
2066
|
{
|
|
1955
2067
|
ref,
|
|
@@ -1966,7 +2078,7 @@ var DropdownMenuContent = React17.forwardRef(({ className, sideOffset = 4, conta
|
|
|
1966
2078
|
) });
|
|
1967
2079
|
});
|
|
1968
2080
|
DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
|
|
1969
|
-
var DropdownMenuItem =
|
|
2081
|
+
var DropdownMenuItem = React18.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx22(
|
|
1970
2082
|
DropdownMenuPrimitive.Item,
|
|
1971
2083
|
{
|
|
1972
2084
|
ref,
|
|
@@ -1976,7 +2088,7 @@ var DropdownMenuItem = React17.forwardRef(({ className, inset, ...props }, ref)
|
|
|
1976
2088
|
}
|
|
1977
2089
|
));
|
|
1978
2090
|
DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
|
|
1979
|
-
var DropdownMenuCheckboxItem =
|
|
2091
|
+
var DropdownMenuCheckboxItem = React18.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs11(
|
|
1980
2092
|
DropdownMenuPrimitive.CheckboxItem,
|
|
1981
2093
|
{
|
|
1982
2094
|
ref,
|
|
@@ -1984,13 +2096,13 @@ var DropdownMenuCheckboxItem = React17.forwardRef(({ className, children, ...pro
|
|
|
1984
2096
|
className: cn(MENU_INDICATOR_ITEM_CLASS, className),
|
|
1985
2097
|
...props,
|
|
1986
2098
|
children: [
|
|
1987
|
-
/* @__PURE__ */
|
|
2099
|
+
/* @__PURE__ */ jsx22("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx22(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx22(CheckIcon, { className: "h-4 w-4" }) }) }),
|
|
1988
2100
|
children
|
|
1989
2101
|
]
|
|
1990
2102
|
}
|
|
1991
2103
|
));
|
|
1992
2104
|
DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
|
|
1993
|
-
var DropdownMenuRadioItem =
|
|
2105
|
+
var DropdownMenuRadioItem = React18.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs11(
|
|
1994
2106
|
DropdownMenuPrimitive.RadioItem,
|
|
1995
2107
|
{
|
|
1996
2108
|
ref,
|
|
@@ -1998,13 +2110,13 @@ var DropdownMenuRadioItem = React17.forwardRef(({ className, children, ...props
|
|
|
1998
2110
|
className: cn(MENU_INDICATOR_ITEM_CLASS, className),
|
|
1999
2111
|
...props,
|
|
2000
2112
|
children: [
|
|
2001
|
-
/* @__PURE__ */
|
|
2113
|
+
/* @__PURE__ */ jsx22("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx22(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx22(DotFilledIcon, { className: "h-4 w-4 fill-current" }) }) }),
|
|
2002
2114
|
children
|
|
2003
2115
|
]
|
|
2004
2116
|
}
|
|
2005
2117
|
));
|
|
2006
2118
|
DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
|
|
2007
|
-
var DropdownMenuLabel =
|
|
2119
|
+
var DropdownMenuLabel = React18.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx22(
|
|
2008
2120
|
DropdownMenuPrimitive.Label,
|
|
2009
2121
|
{
|
|
2010
2122
|
ref,
|
|
@@ -2014,7 +2126,7 @@ var DropdownMenuLabel = React17.forwardRef(({ className, inset, ...props }, ref)
|
|
|
2014
2126
|
}
|
|
2015
2127
|
));
|
|
2016
2128
|
DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
|
|
2017
|
-
var DropdownMenuSeparator =
|
|
2129
|
+
var DropdownMenuSeparator = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx22(
|
|
2018
2130
|
DropdownMenuPrimitive.Separator,
|
|
2019
2131
|
{
|
|
2020
2132
|
ref,
|
|
@@ -2027,7 +2139,7 @@ DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
|
|
|
2027
2139
|
var DropdownMenuShortcut = ({
|
|
2028
2140
|
className,
|
|
2029
2141
|
...props
|
|
2030
|
-
}) => /* @__PURE__ */
|
|
2142
|
+
}) => /* @__PURE__ */ jsx22(
|
|
2031
2143
|
"span",
|
|
2032
2144
|
{
|
|
2033
2145
|
"data-slot": "dropdown-menu-shortcut",
|
|
@@ -2038,8 +2150,8 @@ var DropdownMenuShortcut = ({
|
|
|
2038
2150
|
DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
|
|
2039
2151
|
|
|
2040
2152
|
// src/editable-label.tsx
|
|
2041
|
-
import { useCallback as
|
|
2042
|
-
import { jsx as
|
|
2153
|
+
import { useCallback as useCallback3, useEffect as useEffect3, useRef as useRef3, useState as useState5 } from "react";
|
|
2154
|
+
import { jsx as jsx23, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
2043
2155
|
function EditableLabel({
|
|
2044
2156
|
value,
|
|
2045
2157
|
onCommit,
|
|
@@ -2059,22 +2171,22 @@ function EditableLabel({
|
|
|
2059
2171
|
inputClassName
|
|
2060
2172
|
}) {
|
|
2061
2173
|
const controlled = activation === "controlled";
|
|
2062
|
-
const [internalEditing, setInternalEditing] =
|
|
2174
|
+
const [internalEditing, setInternalEditing] = useState5(false);
|
|
2063
2175
|
const editing = controlled ? !!editingProp : internalEditing;
|
|
2064
|
-
const [draft, setDraft] =
|
|
2065
|
-
const [error, setError] =
|
|
2066
|
-
const [busy, setBusy] =
|
|
2067
|
-
const inputRef =
|
|
2068
|
-
|
|
2176
|
+
const [draft, setDraft] = useState5(value);
|
|
2177
|
+
const [error, setError] = useState5(null);
|
|
2178
|
+
const [busy, setBusy] = useState5(false);
|
|
2179
|
+
const inputRef = useRef3(null);
|
|
2180
|
+
useEffect3(() => {
|
|
2069
2181
|
if (!editing) setDraft(value);
|
|
2070
2182
|
}, [value, editing]);
|
|
2071
|
-
|
|
2183
|
+
useEffect3(() => {
|
|
2072
2184
|
if (editing && inputRef.current) {
|
|
2073
2185
|
inputRef.current.focus();
|
|
2074
2186
|
if (selectOnEdit) inputRef.current.select();
|
|
2075
2187
|
}
|
|
2076
2188
|
}, [editing, selectOnEdit]);
|
|
2077
|
-
const setEditing =
|
|
2189
|
+
const setEditing = useCallback3(
|
|
2078
2190
|
(next) => {
|
|
2079
2191
|
if (controlled) {
|
|
2080
2192
|
onEditingChange?.(next);
|
|
@@ -2085,18 +2197,18 @@ function EditableLabel({
|
|
|
2085
2197
|
},
|
|
2086
2198
|
[controlled, onEditingChange]
|
|
2087
2199
|
);
|
|
2088
|
-
const startEdit =
|
|
2200
|
+
const startEdit = useCallback3(() => {
|
|
2089
2201
|
setDraft(value);
|
|
2090
2202
|
setError(null);
|
|
2091
2203
|
setEditing(true);
|
|
2092
2204
|
}, [value, setEditing]);
|
|
2093
|
-
const cancel =
|
|
2205
|
+
const cancel = useCallback3(() => {
|
|
2094
2206
|
setDraft(value);
|
|
2095
2207
|
setError(null);
|
|
2096
2208
|
setBusy(false);
|
|
2097
2209
|
setEditing(false);
|
|
2098
2210
|
}, [value, setEditing]);
|
|
2099
|
-
const commit =
|
|
2211
|
+
const commit = useCallback3(() => {
|
|
2100
2212
|
if (busy) return;
|
|
2101
2213
|
const trimmed = draft.trim();
|
|
2102
2214
|
const next = trimmed || emptyFallback;
|
|
@@ -2146,8 +2258,8 @@ function EditableLabel({
|
|
|
2146
2258
|
setEditing
|
|
2147
2259
|
]);
|
|
2148
2260
|
if (editing) {
|
|
2149
|
-
return /* @__PURE__ */
|
|
2150
|
-
/* @__PURE__ */
|
|
2261
|
+
return /* @__PURE__ */ jsxs12("span", { className: cn("relative flex min-w-0 flex-1 items-center", className), children: [
|
|
2262
|
+
/* @__PURE__ */ jsx23(
|
|
2151
2263
|
"input",
|
|
2152
2264
|
{
|
|
2153
2265
|
ref: inputRef,
|
|
@@ -2187,12 +2299,12 @@ function EditableLabel({
|
|
|
2187
2299
|
)
|
|
2188
2300
|
}
|
|
2189
2301
|
),
|
|
2190
|
-
busy && /* @__PURE__ */
|
|
2191
|
-
error && /* @__PURE__ */
|
|
2302
|
+
busy && /* @__PURE__ */ jsx23(Loader2Icon, { className: "absolute right-1 h-3.5 w-3.5 matrx-spin text-muted-foreground" }),
|
|
2303
|
+
error && /* @__PURE__ */ jsx23("span", { className: "absolute left-0 top-full mt-0.5 whitespace-nowrap text-xs text-destructive", children: error })
|
|
2192
2304
|
] });
|
|
2193
2305
|
}
|
|
2194
2306
|
if (controlled) return null;
|
|
2195
|
-
return /* @__PURE__ */
|
|
2307
|
+
return /* @__PURE__ */ jsx23(
|
|
2196
2308
|
"button",
|
|
2197
2309
|
{
|
|
2198
2310
|
type: "button",
|
|
@@ -2226,8 +2338,8 @@ function EditableLabel({
|
|
|
2226
2338
|
}
|
|
2227
2339
|
|
|
2228
2340
|
// src/input.tsx
|
|
2229
|
-
import * as
|
|
2230
|
-
import { jsx as
|
|
2341
|
+
import * as React19 from "react";
|
|
2342
|
+
import { jsx as jsx24, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
2231
2343
|
var getVariantStyles = (variant = "default") => {
|
|
2232
2344
|
const baseStyles = `flex h-10 w-full border border-border bg-background text-foreground shadow-input rounded-md px-3 py-2 text-sm file:border-0 file:bg-transparent
|
|
2233
2345
|
file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground
|
|
@@ -2255,9 +2367,9 @@ var getVariantStyles = (variant = "default") => {
|
|
|
2255
2367
|
return baseStyles;
|
|
2256
2368
|
}
|
|
2257
2369
|
};
|
|
2258
|
-
var Input =
|
|
2370
|
+
var Input = React19.forwardRef(
|
|
2259
2371
|
({ className, type, variant = "default", ...props }, ref) => {
|
|
2260
|
-
return /* @__PURE__ */
|
|
2372
|
+
return /* @__PURE__ */ jsx24(
|
|
2261
2373
|
"input",
|
|
2262
2374
|
{
|
|
2263
2375
|
type,
|
|
@@ -2269,7 +2381,7 @@ var Input = React18.forwardRef(
|
|
|
2269
2381
|
}
|
|
2270
2382
|
);
|
|
2271
2383
|
Input.displayName = "Input";
|
|
2272
|
-
var EnterInput =
|
|
2384
|
+
var EnterInput = React19.forwardRef(
|
|
2273
2385
|
({ onEnter, ...props }, ref) => {
|
|
2274
2386
|
const handleKeyDown = (e) => {
|
|
2275
2387
|
if (e.key === "Enter" && onEnter) {
|
|
@@ -2277,7 +2389,7 @@ var EnterInput = React18.forwardRef(
|
|
|
2277
2389
|
onEnter();
|
|
2278
2390
|
}
|
|
2279
2391
|
};
|
|
2280
|
-
return /* @__PURE__ */
|
|
2392
|
+
return /* @__PURE__ */ jsx24(
|
|
2281
2393
|
Input,
|
|
2282
2394
|
{
|
|
2283
2395
|
...props,
|
|
@@ -2293,11 +2405,11 @@ var EnterInput = React18.forwardRef(
|
|
|
2293
2405
|
}
|
|
2294
2406
|
);
|
|
2295
2407
|
EnterInput.displayName = "EnterInput";
|
|
2296
|
-
var BasicInput =
|
|
2408
|
+
var BasicInput = React19.forwardRef(
|
|
2297
2409
|
// `variant` is accepted (prop-compatible with Input) but intentionally
|
|
2298
2410
|
// unused — and destructured so it never leaks onto the DOM element.
|
|
2299
2411
|
({ className, type, variant: _variant = "default", ...props }, ref) => {
|
|
2300
|
-
return /* @__PURE__ */
|
|
2412
|
+
return /* @__PURE__ */ jsx24(
|
|
2301
2413
|
"input",
|
|
2302
2414
|
{
|
|
2303
2415
|
type,
|
|
@@ -2312,10 +2424,10 @@ var BasicInput = React18.forwardRef(
|
|
|
2312
2424
|
}
|
|
2313
2425
|
);
|
|
2314
2426
|
BasicInput.displayName = "BasicInput";
|
|
2315
|
-
var InputWithPrefix =
|
|
2316
|
-
return /* @__PURE__ */
|
|
2317
|
-
prefix && /* @__PURE__ */
|
|
2318
|
-
/* @__PURE__ */
|
|
2427
|
+
var InputWithPrefix = React19.forwardRef(({ prefix, className, wrapperClassName, ...props }, ref) => {
|
|
2428
|
+
return /* @__PURE__ */ jsxs13("div", { className: cn("relative", wrapperClassName), children: [
|
|
2429
|
+
prefix && /* @__PURE__ */ jsx24("div", { className: "absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground", children: prefix }),
|
|
2430
|
+
/* @__PURE__ */ jsx24(
|
|
2319
2431
|
Input,
|
|
2320
2432
|
{
|
|
2321
2433
|
ref,
|
|
@@ -2329,9 +2441,9 @@ InputWithPrefix.displayName = "InputWithPrefix";
|
|
|
2329
2441
|
|
|
2330
2442
|
// src/label.tsx
|
|
2331
2443
|
import * as LabelPrimitive from "@radix-ui/react-label";
|
|
2332
|
-
import * as
|
|
2333
|
-
import { jsx as
|
|
2334
|
-
var Label3 =
|
|
2444
|
+
import * as React20 from "react";
|
|
2445
|
+
import { jsx as jsx25 } from "react/jsx-runtime";
|
|
2446
|
+
var Label3 = React20.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx25(
|
|
2335
2447
|
LabelPrimitive.Root,
|
|
2336
2448
|
{
|
|
2337
2449
|
ref,
|
|
@@ -2345,8 +2457,8 @@ var Label3 = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ *
|
|
|
2345
2457
|
Label3.displayName = LabelPrimitive.Root.displayName;
|
|
2346
2458
|
|
|
2347
2459
|
// src/overflow-toolbar.tsx
|
|
2348
|
-
import { useLayoutEffect, useMemo, useRef as
|
|
2349
|
-
import { Fragment, jsx as
|
|
2460
|
+
import { useLayoutEffect, useMemo, useRef as useRef4, useState as useState6 } from "react";
|
|
2461
|
+
import { Fragment, jsx as jsx26, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
2350
2462
|
var GAP_PX = 6;
|
|
2351
2463
|
var TONE = {
|
|
2352
2464
|
default: "border border-border bg-background hover:bg-accent text-foreground",
|
|
@@ -2368,16 +2480,16 @@ function ToolbarButton({
|
|
|
2368
2480
|
action.hideLabel && !action.running ? "w-7 justify-center px-0" : "px-2",
|
|
2369
2481
|
TONE[tone]
|
|
2370
2482
|
);
|
|
2371
|
-
const inner = /* @__PURE__ */
|
|
2372
|
-
/* @__PURE__ */
|
|
2483
|
+
const inner = /* @__PURE__ */ jsxs14(Fragment, { children: [
|
|
2484
|
+
/* @__PURE__ */ jsx26(
|
|
2373
2485
|
Icon2,
|
|
2374
2486
|
{
|
|
2375
2487
|
className: cn("w-3.5 h-3.5 shrink-0", action.running && "matrx-spin")
|
|
2376
2488
|
}
|
|
2377
2489
|
),
|
|
2378
|
-
showLabel && /* @__PURE__ */
|
|
2490
|
+
showLabel && /* @__PURE__ */ jsx26("span", { children: text })
|
|
2379
2491
|
] });
|
|
2380
|
-
const control = action.href && !action.disabled ? /* @__PURE__ */
|
|
2492
|
+
const control = action.href && !action.disabled ? /* @__PURE__ */ jsx26(
|
|
2381
2493
|
"a",
|
|
2382
2494
|
{
|
|
2383
2495
|
href: action.href,
|
|
@@ -2387,7 +2499,7 @@ function ToolbarButton({
|
|
|
2387
2499
|
"aria-label": action.label,
|
|
2388
2500
|
children: inner
|
|
2389
2501
|
}
|
|
2390
|
-
) : /* @__PURE__ */
|
|
2502
|
+
) : /* @__PURE__ */ jsx26(
|
|
2391
2503
|
"button",
|
|
2392
2504
|
{
|
|
2393
2505
|
type: "button",
|
|
@@ -2399,12 +2511,12 @@ function ToolbarButton({
|
|
|
2399
2511
|
}
|
|
2400
2512
|
);
|
|
2401
2513
|
if (enableTooltip && action.hideLabel && renderTooltip) {
|
|
2402
|
-
return /* @__PURE__ */
|
|
2514
|
+
return /* @__PURE__ */ jsx26(Fragment, { children: renderTooltip(control, action.label) });
|
|
2403
2515
|
}
|
|
2404
2516
|
return control;
|
|
2405
2517
|
}
|
|
2406
2518
|
function OverflowTrigger({ ariaLabel }) {
|
|
2407
|
-
return /* @__PURE__ */
|
|
2519
|
+
return /* @__PURE__ */ jsx26(
|
|
2408
2520
|
"button",
|
|
2409
2521
|
{
|
|
2410
2522
|
type: "button",
|
|
@@ -2415,7 +2527,7 @@ function OverflowTrigger({ ariaLabel }) {
|
|
|
2415
2527
|
"inline-flex items-center justify-center h-7 w-7 rounded-md transition-colors",
|
|
2416
2528
|
"border border-border bg-background hover:bg-accent text-foreground"
|
|
2417
2529
|
),
|
|
2418
|
-
children: /* @__PURE__ */
|
|
2530
|
+
children: /* @__PURE__ */ jsx26(MoreHorizontalIcon, { className: "w-3.5 h-3.5" })
|
|
2419
2531
|
}
|
|
2420
2532
|
);
|
|
2421
2533
|
}
|
|
@@ -2431,10 +2543,10 @@ function OverflowToolbar({
|
|
|
2431
2543
|
() => actions.filter((a) => !a.hidden),
|
|
2432
2544
|
[actions]
|
|
2433
2545
|
);
|
|
2434
|
-
const containerRef =
|
|
2435
|
-
const ghostRef =
|
|
2436
|
-
const leadingRef =
|
|
2437
|
-
const [visibleCount, setVisibleCount] =
|
|
2546
|
+
const containerRef = useRef4(null);
|
|
2547
|
+
const ghostRef = useRef4(null);
|
|
2548
|
+
const leadingRef = useRef4(null);
|
|
2549
|
+
const [visibleCount, setVisibleCount] = useState6(visibleActions.length);
|
|
2438
2550
|
const signature = visibleActions.map(
|
|
2439
2551
|
(a) => `${a.id}:${a.hideLabel ? 1 : 0}:${a.running ? 1 : 0}:${a.runningLabel ?? ""}:${a.label}`
|
|
2440
2552
|
).join("|");
|
|
@@ -2475,22 +2587,22 @@ function OverflowToolbar({
|
|
|
2475
2587
|
}, [signature, leading != null]);
|
|
2476
2588
|
const shown = visibleActions.slice(0, visibleCount);
|
|
2477
2589
|
const hidden = visibleActions.slice(visibleCount);
|
|
2478
|
-
return /* @__PURE__ */
|
|
2479
|
-
/* @__PURE__ */
|
|
2590
|
+
return /* @__PURE__ */ jsxs14("div", { ref: containerRef, className: cn("relative min-w-0", className), children: [
|
|
2591
|
+
/* @__PURE__ */ jsxs14(
|
|
2480
2592
|
"div",
|
|
2481
2593
|
{
|
|
2482
2594
|
ref: ghostRef,
|
|
2483
2595
|
"aria-hidden": true,
|
|
2484
2596
|
className: "pointer-events-none absolute left-0 top-0 flex items-center gap-1.5 opacity-0",
|
|
2485
2597
|
children: [
|
|
2486
|
-
visibleActions.map((a) => /* @__PURE__ */
|
|
2487
|
-
/* @__PURE__ */
|
|
2598
|
+
visibleActions.map((a) => /* @__PURE__ */ jsx26(ToolbarButton, { action: a }, a.id)),
|
|
2599
|
+
/* @__PURE__ */ jsx26(OverflowTrigger, { ariaLabel: overflowAriaLabel })
|
|
2488
2600
|
]
|
|
2489
2601
|
}
|
|
2490
2602
|
),
|
|
2491
|
-
/* @__PURE__ */
|
|
2492
|
-
leading != null && /* @__PURE__ */
|
|
2493
|
-
shown.map((a) => /* @__PURE__ */
|
|
2603
|
+
/* @__PURE__ */ jsxs14("div", { className: "flex items-center justify-end gap-1.5", children: [
|
|
2604
|
+
leading != null && /* @__PURE__ */ jsx26("span", { ref: leadingRef, className: "shrink-0", children: leading }),
|
|
2605
|
+
shown.map((a) => /* @__PURE__ */ jsx26(
|
|
2494
2606
|
ToolbarButton,
|
|
2495
2607
|
{
|
|
2496
2608
|
action: a,
|
|
@@ -2501,7 +2613,7 @@ function OverflowToolbar({
|
|
|
2501
2613
|
)),
|
|
2502
2614
|
hidden.length > 0 && renderOverflowMenu({
|
|
2503
2615
|
actions: hidden,
|
|
2504
|
-
trigger: /* @__PURE__ */
|
|
2616
|
+
trigger: /* @__PURE__ */ jsx26(OverflowTrigger, { ariaLabel: overflowAriaLabel })
|
|
2505
2617
|
})
|
|
2506
2618
|
] })
|
|
2507
2619
|
] });
|
|
@@ -2509,20 +2621,20 @@ function OverflowToolbar({
|
|
|
2509
2621
|
|
|
2510
2622
|
// src/progress.tsx
|
|
2511
2623
|
import * as ProgressPrimitive from "@radix-ui/react-progress";
|
|
2512
|
-
import * as
|
|
2513
|
-
import { jsx as
|
|
2624
|
+
import * as React22 from "react";
|
|
2625
|
+
import { jsx as jsx27 } from "react/jsx-runtime";
|
|
2514
2626
|
var PROGRESS_TONES = {
|
|
2515
2627
|
default: "bg-primary",
|
|
2516
2628
|
success: "bg-success",
|
|
2517
2629
|
warning: "bg-warning",
|
|
2518
2630
|
destructive: "bg-destructive"
|
|
2519
2631
|
};
|
|
2520
|
-
var Progress =
|
|
2632
|
+
var Progress = React22.forwardRef(({ className, tone = "default", indicatorClassName, ...props }, ref) => {
|
|
2521
2633
|
const { value, max } = props;
|
|
2522
2634
|
const ceiling = max ?? 100;
|
|
2523
2635
|
const isIndeterminate = value === null || value === void 0;
|
|
2524
2636
|
const pct = isIndeterminate ? 0 : Math.min(100, Math.max(0, value / ceiling * 100));
|
|
2525
|
-
return /* @__PURE__ */
|
|
2637
|
+
return /* @__PURE__ */ jsx27(
|
|
2526
2638
|
ProgressPrimitive.Root,
|
|
2527
2639
|
{
|
|
2528
2640
|
ref,
|
|
@@ -2532,7 +2644,7 @@ var Progress = React21.forwardRef(({ className, tone = "default", indicatorClass
|
|
|
2532
2644
|
className
|
|
2533
2645
|
),
|
|
2534
2646
|
...props,
|
|
2535
|
-
children: /* @__PURE__ */
|
|
2647
|
+
children: /* @__PURE__ */ jsx27(
|
|
2536
2648
|
ProgressPrimitive.Indicator,
|
|
2537
2649
|
{
|
|
2538
2650
|
"data-slot": "progress-indicator",
|
|
@@ -2552,9 +2664,9 @@ Progress.displayName = ProgressPrimitive.Root.displayName;
|
|
|
2552
2664
|
|
|
2553
2665
|
// src/scroll-area.tsx
|
|
2554
2666
|
import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
|
|
2555
|
-
import * as
|
|
2556
|
-
import { jsx as
|
|
2557
|
-
var ScrollArea =
|
|
2667
|
+
import * as React23 from "react";
|
|
2668
|
+
import { jsx as jsx28, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
2669
|
+
var ScrollArea = React23.forwardRef(
|
|
2558
2670
|
({
|
|
2559
2671
|
className,
|
|
2560
2672
|
children,
|
|
@@ -2563,7 +2675,7 @@ var ScrollArea = React22.forwardRef(
|
|
|
2563
2675
|
scrollBarClassName,
|
|
2564
2676
|
orientation = "vertical",
|
|
2565
2677
|
...props
|
|
2566
|
-
}, ref) => /* @__PURE__ */
|
|
2678
|
+
}, ref) => /* @__PURE__ */ jsxs15(
|
|
2567
2679
|
ScrollAreaPrimitive.Root,
|
|
2568
2680
|
{
|
|
2569
2681
|
ref,
|
|
@@ -2571,7 +2683,7 @@ var ScrollArea = React22.forwardRef(
|
|
|
2571
2683
|
className: cn("relative overflow-hidden", className),
|
|
2572
2684
|
...props,
|
|
2573
2685
|
children: [
|
|
2574
|
-
/* @__PURE__ */
|
|
2686
|
+
/* @__PURE__ */ jsx28(
|
|
2575
2687
|
ScrollAreaPrimitive.Viewport,
|
|
2576
2688
|
{
|
|
2577
2689
|
ref: viewportRef,
|
|
@@ -2580,14 +2692,14 @@ var ScrollArea = React22.forwardRef(
|
|
|
2580
2692
|
children
|
|
2581
2693
|
}
|
|
2582
2694
|
),
|
|
2583
|
-
/* @__PURE__ */
|
|
2584
|
-
/* @__PURE__ */
|
|
2695
|
+
/* @__PURE__ */ jsx28(ScrollBar, { orientation, className: scrollBarClassName }),
|
|
2696
|
+
/* @__PURE__ */ jsx28(ScrollAreaPrimitive.Corner, {})
|
|
2585
2697
|
]
|
|
2586
2698
|
}
|
|
2587
2699
|
)
|
|
2588
2700
|
);
|
|
2589
2701
|
ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;
|
|
2590
|
-
var ScrollBar =
|
|
2702
|
+
var ScrollBar = React23.forwardRef(({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ jsx28(
|
|
2591
2703
|
ScrollAreaPrimitive.ScrollAreaScrollbar,
|
|
2592
2704
|
{
|
|
2593
2705
|
ref,
|
|
@@ -2600,7 +2712,7 @@ var ScrollBar = React22.forwardRef(({ className, orientation = "vertical", ...pr
|
|
|
2600
2712
|
className
|
|
2601
2713
|
),
|
|
2602
2714
|
...props,
|
|
2603
|
-
children: /* @__PURE__ */
|
|
2715
|
+
children: /* @__PURE__ */ jsx28(
|
|
2604
2716
|
ScrollAreaPrimitive.ScrollAreaThumb,
|
|
2605
2717
|
{
|
|
2606
2718
|
"data-slot": "scroll-area-thumb",
|
|
@@ -2612,7 +2724,7 @@ var ScrollBar = React22.forwardRef(({ className, orientation = "vertical", ...pr
|
|
|
2612
2724
|
ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;
|
|
2613
2725
|
|
|
2614
2726
|
// src/score-ring.tsx
|
|
2615
|
-
import { jsx as
|
|
2727
|
+
import { jsx as jsx29, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
2616
2728
|
var DEFAULT_SCORE_THRESHOLDS = {
|
|
2617
2729
|
good: 75,
|
|
2618
2730
|
warning: 50
|
|
@@ -2643,7 +2755,7 @@ function ScoreRing({
|
|
|
2643
2755
|
const circumference = 2 * Math.PI * radius;
|
|
2644
2756
|
const boundedPct = pct === null ? 0 : Math.max(0, Math.min(100, pct));
|
|
2645
2757
|
const dashOffset = circumference * (1 - boundedPct / 100);
|
|
2646
|
-
return /* @__PURE__ */
|
|
2758
|
+
return /* @__PURE__ */ jsxs16(
|
|
2647
2759
|
"div",
|
|
2648
2760
|
{
|
|
2649
2761
|
className: cn(
|
|
@@ -2654,8 +2766,8 @@ function ScoreRing({
|
|
|
2654
2766
|
role: "img",
|
|
2655
2767
|
"aria-label": `${label ?? "Score"}: ${pct === null ? "not available" : `${pct} out of 100`}`,
|
|
2656
2768
|
children: [
|
|
2657
|
-
/* @__PURE__ */
|
|
2658
|
-
/* @__PURE__ */
|
|
2769
|
+
/* @__PURE__ */ jsxs16("svg", { viewBox: "0 0 100 100", className: "h-full w-full -rotate-90", children: [
|
|
2770
|
+
/* @__PURE__ */ jsx29(
|
|
2659
2771
|
"circle",
|
|
2660
2772
|
{
|
|
2661
2773
|
cx: "50",
|
|
@@ -2666,7 +2778,7 @@ function ScoreRing({
|
|
|
2666
2778
|
fill: "none"
|
|
2667
2779
|
}
|
|
2668
2780
|
),
|
|
2669
|
-
pct !== null ? /* @__PURE__ */
|
|
2781
|
+
pct !== null ? /* @__PURE__ */ jsx29(
|
|
2670
2782
|
"circle",
|
|
2671
2783
|
{
|
|
2672
2784
|
cx: "50",
|
|
@@ -2685,8 +2797,8 @@ function ScoreRing({
|
|
|
2685
2797
|
}
|
|
2686
2798
|
) : null
|
|
2687
2799
|
] }),
|
|
2688
|
-
/* @__PURE__ */
|
|
2689
|
-
/* @__PURE__ */
|
|
2800
|
+
/* @__PURE__ */ jsxs16("div", { className: "absolute flex flex-col items-center justify-center", children: [
|
|
2801
|
+
/* @__PURE__ */ jsx29(
|
|
2690
2802
|
"span",
|
|
2691
2803
|
{
|
|
2692
2804
|
className: cn(
|
|
@@ -2696,7 +2808,7 @@ function ScoreRing({
|
|
|
2696
2808
|
children: pct === null ? "\u2014" : `${pct}${suffix}`
|
|
2697
2809
|
}
|
|
2698
2810
|
),
|
|
2699
|
-
label ? /* @__PURE__ */
|
|
2811
|
+
label ? /* @__PURE__ */ jsx29("span", { className: "max-w-[74px] truncate text-[9px] font-semibold uppercase tracking-wide text-muted-foreground", children: label }) : null
|
|
2700
2812
|
] })
|
|
2701
2813
|
]
|
|
2702
2814
|
}
|
|
@@ -2704,7 +2816,7 @@ function ScoreRing({
|
|
|
2704
2816
|
}
|
|
2705
2817
|
|
|
2706
2818
|
// src/segmented-control.tsx
|
|
2707
|
-
import { jsx as
|
|
2819
|
+
import { jsx as jsx30 } from "react/jsx-runtime";
|
|
2708
2820
|
function SegmentedControl({
|
|
2709
2821
|
value,
|
|
2710
2822
|
onValueChange,
|
|
@@ -2719,7 +2831,7 @@ function SegmentedControl({
|
|
|
2719
2831
|
md: "h-9 text-sm",
|
|
2720
2832
|
lg: "h-10 text-base"
|
|
2721
2833
|
};
|
|
2722
|
-
return /* @__PURE__ */
|
|
2834
|
+
return /* @__PURE__ */ jsx30(
|
|
2723
2835
|
"div",
|
|
2724
2836
|
{
|
|
2725
2837
|
className: cn(
|
|
@@ -2730,7 +2842,7 @@ function SegmentedControl({
|
|
|
2730
2842
|
role: "tablist",
|
|
2731
2843
|
children: data.map((option) => {
|
|
2732
2844
|
const isActive = value === option.value;
|
|
2733
|
-
return /* @__PURE__ */
|
|
2845
|
+
return /* @__PURE__ */ jsx30(
|
|
2734
2846
|
"button",
|
|
2735
2847
|
{
|
|
2736
2848
|
type: "button",
|
|
@@ -2757,8 +2869,8 @@ function SegmentedControl({
|
|
|
2757
2869
|
// src/select.tsx
|
|
2758
2870
|
import * as SelectPrimitive from "@radix-ui/react-select";
|
|
2759
2871
|
import { cva as cva4 } from "class-variance-authority";
|
|
2760
|
-
import * as
|
|
2761
|
-
import { jsx as
|
|
2872
|
+
import * as React24 from "react";
|
|
2873
|
+
import { jsx as jsx31, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
2762
2874
|
var Select = SelectPrimitive.Root;
|
|
2763
2875
|
var SelectGroup = SelectPrimitive.Group;
|
|
2764
2876
|
var SelectValue = SelectPrimitive.Value;
|
|
@@ -2777,7 +2889,7 @@ var selectTriggerVariants = cva4(
|
|
|
2777
2889
|
}
|
|
2778
2890
|
}
|
|
2779
2891
|
);
|
|
2780
|
-
var SelectTrigger =
|
|
2892
|
+
var SelectTrigger = React24.forwardRef(({ className, children, hideArrow = false, size, ...props }, ref) => /* @__PURE__ */ jsxs17(
|
|
2781
2893
|
SelectPrimitive.Trigger,
|
|
2782
2894
|
{
|
|
2783
2895
|
ref,
|
|
@@ -2785,12 +2897,12 @@ var SelectTrigger = React23.forwardRef(({ className, children, hideArrow = false
|
|
|
2785
2897
|
...props,
|
|
2786
2898
|
children: [
|
|
2787
2899
|
children,
|
|
2788
|
-
!hideArrow && /* @__PURE__ */
|
|
2900
|
+
!hideArrow && /* @__PURE__ */ jsx31(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx31(RadixChevronDownIcon, { className: "h-4 w-4 opacity-50" }) })
|
|
2789
2901
|
]
|
|
2790
2902
|
}
|
|
2791
2903
|
));
|
|
2792
2904
|
SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
|
|
2793
|
-
var SelectScrollUpButton =
|
|
2905
|
+
var SelectScrollUpButton = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx31(
|
|
2794
2906
|
SelectPrimitive.ScrollUpButton,
|
|
2795
2907
|
{
|
|
2796
2908
|
ref,
|
|
@@ -2799,11 +2911,11 @@ var SelectScrollUpButton = React23.forwardRef(({ className, ...props }, ref) =>
|
|
|
2799
2911
|
className
|
|
2800
2912
|
),
|
|
2801
2913
|
...props,
|
|
2802
|
-
children: /* @__PURE__ */
|
|
2914
|
+
children: /* @__PURE__ */ jsx31(RadixChevronUpIcon, {})
|
|
2803
2915
|
}
|
|
2804
2916
|
));
|
|
2805
2917
|
SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
|
|
2806
|
-
var SelectScrollDownButton =
|
|
2918
|
+
var SelectScrollDownButton = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx31(
|
|
2807
2919
|
SelectPrimitive.ScrollDownButton,
|
|
2808
2920
|
{
|
|
2809
2921
|
ref,
|
|
@@ -2812,11 +2924,11 @@ var SelectScrollDownButton = React23.forwardRef(({ className, ...props }, ref) =
|
|
|
2812
2924
|
className
|
|
2813
2925
|
),
|
|
2814
2926
|
...props,
|
|
2815
|
-
children: /* @__PURE__ */
|
|
2927
|
+
children: /* @__PURE__ */ jsx31(RadixChevronDownIcon, {})
|
|
2816
2928
|
}
|
|
2817
2929
|
));
|
|
2818
2930
|
SelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;
|
|
2819
|
-
var SelectContent =
|
|
2931
|
+
var SelectContent = React24.forwardRef(
|
|
2820
2932
|
({
|
|
2821
2933
|
className,
|
|
2822
2934
|
children,
|
|
@@ -2826,7 +2938,7 @@ var SelectContent = React23.forwardRef(
|
|
|
2826
2938
|
...props
|
|
2827
2939
|
}, ref) => {
|
|
2828
2940
|
const portalContainer = usePortalContainer(container);
|
|
2829
|
-
return /* @__PURE__ */
|
|
2941
|
+
return /* @__PURE__ */ jsx31(SelectPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ jsxs17(
|
|
2830
2942
|
SelectPrimitive.Content,
|
|
2831
2943
|
{
|
|
2832
2944
|
ref,
|
|
@@ -2839,8 +2951,8 @@ var SelectContent = React23.forwardRef(
|
|
|
2839
2951
|
position,
|
|
2840
2952
|
...props,
|
|
2841
2953
|
children: [
|
|
2842
|
-
/* @__PURE__ */
|
|
2843
|
-
/* @__PURE__ */
|
|
2954
|
+
/* @__PURE__ */ jsx31(SelectScrollUpButton, {}),
|
|
2955
|
+
/* @__PURE__ */ jsx31(
|
|
2844
2956
|
SelectPrimitive.Viewport,
|
|
2845
2957
|
{
|
|
2846
2958
|
className: cn(
|
|
@@ -2850,14 +2962,14 @@ var SelectContent = React23.forwardRef(
|
|
|
2850
2962
|
children
|
|
2851
2963
|
}
|
|
2852
2964
|
),
|
|
2853
|
-
/* @__PURE__ */
|
|
2965
|
+
/* @__PURE__ */ jsx31(SelectScrollDownButton, {})
|
|
2854
2966
|
]
|
|
2855
2967
|
}
|
|
2856
2968
|
) });
|
|
2857
2969
|
}
|
|
2858
2970
|
);
|
|
2859
2971
|
SelectContent.displayName = SelectPrimitive.Content.displayName;
|
|
2860
|
-
var SelectLabel =
|
|
2972
|
+
var SelectLabel = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx31(
|
|
2861
2973
|
SelectPrimitive.Label,
|
|
2862
2974
|
{
|
|
2863
2975
|
ref,
|
|
@@ -2866,7 +2978,7 @@ var SelectLabel = React23.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
2866
2978
|
}
|
|
2867
2979
|
));
|
|
2868
2980
|
SelectLabel.displayName = SelectPrimitive.Label.displayName;
|
|
2869
|
-
var SelectItem =
|
|
2981
|
+
var SelectItem = React24.forwardRef(({ className, children, description, ...props }, ref) => /* @__PURE__ */ jsxs17(
|
|
2870
2982
|
SelectPrimitive.Item,
|
|
2871
2983
|
{
|
|
2872
2984
|
ref,
|
|
@@ -2877,14 +2989,14 @@ var SelectItem = React23.forwardRef(({ className, children, description, ...prop
|
|
|
2877
2989
|
),
|
|
2878
2990
|
...props,
|
|
2879
2991
|
children: [
|
|
2880
|
-
/* @__PURE__ */
|
|
2881
|
-
/* @__PURE__ */
|
|
2882
|
-
description ? /* @__PURE__ */
|
|
2992
|
+
/* @__PURE__ */ jsx31("span", { className: "absolute right-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx31(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx31(CheckIcon, { className: "h-4 w-4" }) }) }),
|
|
2993
|
+
/* @__PURE__ */ jsx31(SelectPrimitive.ItemText, { children }),
|
|
2994
|
+
description ? /* @__PURE__ */ jsx31("span", { className: "block text-xs leading-snug text-muted-foreground", children: description }) : null
|
|
2883
2995
|
]
|
|
2884
2996
|
}
|
|
2885
2997
|
));
|
|
2886
2998
|
SelectItem.displayName = SelectPrimitive.Item.displayName;
|
|
2887
|
-
var SelectSeparator =
|
|
2999
|
+
var SelectSeparator = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx31(
|
|
2888
3000
|
SelectPrimitive.Separator,
|
|
2889
3001
|
{
|
|
2890
3002
|
ref,
|
|
@@ -2896,9 +3008,9 @@ SelectSeparator.displayName = SelectPrimitive.Separator.displayName;
|
|
|
2896
3008
|
|
|
2897
3009
|
// src/separator.tsx
|
|
2898
3010
|
import * as SeparatorPrimitive from "@radix-ui/react-separator";
|
|
2899
|
-
import * as
|
|
2900
|
-
import { jsx as
|
|
2901
|
-
var Separator4 =
|
|
3011
|
+
import * as React25 from "react";
|
|
3012
|
+
import { jsx as jsx32 } from "react/jsx-runtime";
|
|
3013
|
+
var Separator4 = React25.forwardRef(({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ jsx32(
|
|
2902
3014
|
SeparatorPrimitive.Root,
|
|
2903
3015
|
{
|
|
2904
3016
|
ref,
|
|
@@ -2918,11 +3030,11 @@ Separator4.displayName = SeparatorPrimitive.Root.displayName;
|
|
|
2918
3030
|
import * as SheetPrimitive from "@radix-ui/react-dialog";
|
|
2919
3031
|
import { treeContainsComponent as treeContainsComponent4 } from "@ai-matrx/kit/react-tree";
|
|
2920
3032
|
import { cva as cva5 } from "class-variance-authority";
|
|
2921
|
-
import * as
|
|
2922
|
-
import { jsx as
|
|
2923
|
-
var SheetContentBase =
|
|
3033
|
+
import * as React26 from "react";
|
|
3034
|
+
import { jsx as jsx33, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
3035
|
+
var SheetContentBase = React26.forwardRef(({ ...props }, ref) => {
|
|
2924
3036
|
const isModal = useRadixDialogModal();
|
|
2925
|
-
return /* @__PURE__ */
|
|
3037
|
+
return /* @__PURE__ */ jsx33(
|
|
2926
3038
|
SheetPrimitive.Content,
|
|
2927
3039
|
{
|
|
2928
3040
|
...props,
|
|
@@ -2932,15 +3044,15 @@ var SheetContentBase = React25.forwardRef(({ ...props }, ref) => {
|
|
|
2932
3044
|
);
|
|
2933
3045
|
});
|
|
2934
3046
|
SheetContentBase.displayName = "SheetContentBase";
|
|
2935
|
-
var Sheet =
|
|
3047
|
+
var Sheet = React26.forwardRef(({ children, ...props }, _ref) => {
|
|
2936
3048
|
const modal = props.modal ?? true;
|
|
2937
|
-
return /* @__PURE__ */
|
|
3049
|
+
return /* @__PURE__ */ jsx33(RadixDialogModalProvider, { modal, children: /* @__PURE__ */ jsx33(SheetPrimitive.Root, { ...props, modal, children }) });
|
|
2938
3050
|
});
|
|
2939
3051
|
Sheet.displayName = "Sheet";
|
|
2940
3052
|
var SheetTrigger = SheetPrimitive.Trigger;
|
|
2941
3053
|
var SheetClose = SheetPrimitive.Close;
|
|
2942
3054
|
var SheetPortal = SheetPrimitive.Portal;
|
|
2943
|
-
var SheetOverlay =
|
|
3055
|
+
var SheetOverlay = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx33(
|
|
2944
3056
|
SheetPrimitive.Overlay,
|
|
2945
3057
|
{
|
|
2946
3058
|
className: cn(
|
|
@@ -2977,7 +3089,7 @@ var sheetVariants = cva5(
|
|
|
2977
3089
|
}
|
|
2978
3090
|
}
|
|
2979
3091
|
);
|
|
2980
|
-
var SheetDescription =
|
|
3092
|
+
var SheetDescription = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx33(
|
|
2981
3093
|
SheetPrimitive.Description,
|
|
2982
3094
|
{
|
|
2983
3095
|
ref,
|
|
@@ -2986,7 +3098,7 @@ var SheetDescription = React25.forwardRef(({ className, ...props }, ref) => /* @
|
|
|
2986
3098
|
}
|
|
2987
3099
|
));
|
|
2988
3100
|
SheetDescription.displayName = SheetPrimitive.Description.displayName;
|
|
2989
|
-
var SheetContent =
|
|
3101
|
+
var SheetContent = React26.forwardRef(
|
|
2990
3102
|
({
|
|
2991
3103
|
side = "right",
|
|
2992
3104
|
className,
|
|
@@ -2998,9 +3110,9 @@ var SheetContent = React25.forwardRef(
|
|
|
2998
3110
|
...props
|
|
2999
3111
|
}, ref) => {
|
|
3000
3112
|
const hasDescription = treeContainsComponent4(children, SheetDescription) || treeContainsComponent4(children, SheetPrimitive.Description);
|
|
3001
|
-
return /* @__PURE__ */
|
|
3002
|
-
!hideOverlay && /* @__PURE__ */
|
|
3003
|
-
/* @__PURE__ */
|
|
3113
|
+
return /* @__PURE__ */ jsxs18(SheetPortal, { children: [
|
|
3114
|
+
!hideOverlay && /* @__PURE__ */ jsx33(SheetOverlay, { className: overlayClassName }),
|
|
3115
|
+
/* @__PURE__ */ jsxs18(
|
|
3004
3116
|
SheetContentBase,
|
|
3005
3117
|
{
|
|
3006
3118
|
ref,
|
|
@@ -3012,9 +3124,9 @@ var SheetContent = React25.forwardRef(
|
|
|
3012
3124
|
...hasDescription ? {} : { "aria-describedby": void 0 },
|
|
3013
3125
|
...props,
|
|
3014
3126
|
children: [
|
|
3015
|
-
!hideCloseButton && /* @__PURE__ */
|
|
3016
|
-
/* @__PURE__ */
|
|
3017
|
-
/* @__PURE__ */
|
|
3127
|
+
!hideCloseButton && /* @__PURE__ */ jsxs18(SheetPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary", children: [
|
|
3128
|
+
/* @__PURE__ */ jsx33(Cross2Icon, { className: "h-4 w-4" }),
|
|
3129
|
+
/* @__PURE__ */ jsx33("span", { className: "sr-only", children: "Close" })
|
|
3018
3130
|
] }),
|
|
3019
3131
|
children
|
|
3020
3132
|
]
|
|
@@ -3027,7 +3139,7 @@ SheetContent.displayName = SheetPrimitive.Content.displayName;
|
|
|
3027
3139
|
var SheetHeader = ({
|
|
3028
3140
|
className,
|
|
3029
3141
|
...props
|
|
3030
|
-
}) => /* @__PURE__ */
|
|
3142
|
+
}) => /* @__PURE__ */ jsx33(
|
|
3031
3143
|
"div",
|
|
3032
3144
|
{
|
|
3033
3145
|
className: cn(
|
|
@@ -3041,7 +3153,7 @@ SheetHeader.displayName = "SheetHeader";
|
|
|
3041
3153
|
var SheetFooter = ({
|
|
3042
3154
|
className,
|
|
3043
3155
|
...props
|
|
3044
|
-
}) => /* @__PURE__ */
|
|
3156
|
+
}) => /* @__PURE__ */ jsx33(
|
|
3045
3157
|
"div",
|
|
3046
3158
|
{
|
|
3047
3159
|
className: cn(
|
|
@@ -3052,7 +3164,7 @@ var SheetFooter = ({
|
|
|
3052
3164
|
}
|
|
3053
3165
|
);
|
|
3054
3166
|
SheetFooter.displayName = "SheetFooter";
|
|
3055
|
-
var SheetTitle =
|
|
3167
|
+
var SheetTitle = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx33(
|
|
3056
3168
|
SheetPrimitive.Title,
|
|
3057
3169
|
{
|
|
3058
3170
|
ref,
|
|
@@ -3063,9 +3175,9 @@ var SheetTitle = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
3063
3175
|
SheetTitle.displayName = SheetPrimitive.Title.displayName;
|
|
3064
3176
|
|
|
3065
3177
|
// src/skeleton.tsx
|
|
3066
|
-
import { jsx as
|
|
3178
|
+
import { jsx as jsx34 } from "react/jsx-runtime";
|
|
3067
3179
|
function Skeleton({ className, animated = true, ...props }) {
|
|
3068
|
-
return /* @__PURE__ */
|
|
3180
|
+
return /* @__PURE__ */ jsx34(
|
|
3069
3181
|
"div",
|
|
3070
3182
|
{
|
|
3071
3183
|
"data-slot": "skeleton",
|
|
@@ -3081,8 +3193,8 @@ function Skeleton({ className, animated = true, ...props }) {
|
|
|
3081
3193
|
|
|
3082
3194
|
// src/switch.tsx
|
|
3083
3195
|
import * as SwitchPrimitives from "@radix-ui/react-switch";
|
|
3084
|
-
import * as
|
|
3085
|
-
import { jsx as
|
|
3196
|
+
import * as React27 from "react";
|
|
3197
|
+
import { jsx as jsx35 } from "react/jsx-runtime";
|
|
3086
3198
|
var SWITCH_SIZES = {
|
|
3087
3199
|
sm: {
|
|
3088
3200
|
root: "h-4 w-9 border-border data-[state=unchecked]:bg-input",
|
|
@@ -3093,7 +3205,7 @@ var SWITCH_SIZES = {
|
|
|
3093
3205
|
thumb: "h-4 w-4 data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0"
|
|
3094
3206
|
}
|
|
3095
3207
|
};
|
|
3096
|
-
var Switch =
|
|
3208
|
+
var Switch = React27.forwardRef(({ className, size = "md", ...props }, ref) => /* @__PURE__ */ jsx35(
|
|
3097
3209
|
SwitchPrimitives.Root,
|
|
3098
3210
|
{
|
|
3099
3211
|
ref,
|
|
@@ -3104,7 +3216,7 @@ var Switch = React26.forwardRef(({ className, size = "md", ...props }, ref) => /
|
|
|
3104
3216
|
className
|
|
3105
3217
|
),
|
|
3106
3218
|
...props,
|
|
3107
|
-
children: /* @__PURE__ */
|
|
3219
|
+
children: /* @__PURE__ */ jsx35(
|
|
3108
3220
|
SwitchPrimitives.Thumb,
|
|
3109
3221
|
{
|
|
3110
3222
|
"data-slot": "switch-thumb",
|
|
@@ -3119,30 +3231,30 @@ var Switch = React26.forwardRef(({ className, size = "md", ...props }, ref) => /
|
|
|
3119
3231
|
Switch.displayName = SwitchPrimitives.Root.displayName;
|
|
3120
3232
|
|
|
3121
3233
|
// src/tabbed-bottom-sheet.tsx
|
|
3122
|
-
import { useState as
|
|
3123
|
-
import { jsx as
|
|
3234
|
+
import { useState as useState7 } from "react";
|
|
3235
|
+
import { jsx as jsx36, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
3124
3236
|
function TabbedBottomSheet({
|
|
3125
3237
|
open,
|
|
3126
3238
|
onOpenChange,
|
|
3127
3239
|
title,
|
|
3128
3240
|
tabs
|
|
3129
3241
|
}) {
|
|
3130
|
-
const [selectedTabId, setSelectedTabId] =
|
|
3131
|
-
const [wasOpen, setWasOpen] =
|
|
3242
|
+
const [selectedTabId, setSelectedTabId] = useState7(null);
|
|
3243
|
+
const [wasOpen, setWasOpen] = useState7(open);
|
|
3132
3244
|
if (open !== wasOpen) {
|
|
3133
3245
|
setWasOpen(open);
|
|
3134
3246
|
if (open) setSelectedTabId(null);
|
|
3135
3247
|
}
|
|
3136
3248
|
const selectedTab = selectedTabId ? tabs.find((tab) => tab.id === selectedTabId) : null;
|
|
3137
|
-
return /* @__PURE__ */
|
|
3249
|
+
return /* @__PURE__ */ jsx36(
|
|
3138
3250
|
BottomSheet,
|
|
3139
3251
|
{
|
|
3140
3252
|
open,
|
|
3141
3253
|
onOpenChange,
|
|
3142
3254
|
title,
|
|
3143
3255
|
size: "full",
|
|
3144
|
-
children: /* @__PURE__ */
|
|
3145
|
-
/* @__PURE__ */
|
|
3256
|
+
children: /* @__PURE__ */ jsxs19("div", { className: "matrx-mobile-sheet flex min-h-0 flex-1 flex-col", children: [
|
|
3257
|
+
/* @__PURE__ */ jsx36(
|
|
3146
3258
|
BottomSheetHeader,
|
|
3147
3259
|
{
|
|
3148
3260
|
title: selectedTab ? selectedTab.label : title,
|
|
@@ -3150,19 +3262,19 @@ function TabbedBottomSheet({
|
|
|
3150
3262
|
onBack: () => setSelectedTabId(null)
|
|
3151
3263
|
}
|
|
3152
3264
|
),
|
|
3153
|
-
selectedTab ? /* @__PURE__ */
|
|
3265
|
+
selectedTab ? /* @__PURE__ */ jsx36("div", { className: "flex min-h-0 flex-1 flex-col overflow-hidden pb-safe", children: selectedTab.content }) : /* @__PURE__ */ jsx36(BottomSheetBody, { children: /* @__PURE__ */ jsx36("ul", { className: "divide-y divide-border", children: tabs.map((tab) => {
|
|
3154
3266
|
const Icon2 = tab.icon;
|
|
3155
|
-
return /* @__PURE__ */
|
|
3267
|
+
return /* @__PURE__ */ jsx36("li", { children: /* @__PURE__ */ jsxs19(
|
|
3156
3268
|
"button",
|
|
3157
3269
|
{
|
|
3158
3270
|
type: "button",
|
|
3159
3271
|
onClick: () => setSelectedTabId(tab.id),
|
|
3160
3272
|
className: "flex w-full items-center gap-3 px-4 py-3.5 text-left transition-colors hover:bg-muted/60 active:bg-muted",
|
|
3161
3273
|
children: [
|
|
3162
|
-
Icon2 ? /* @__PURE__ */
|
|
3163
|
-
/* @__PURE__ */
|
|
3274
|
+
Icon2 ? /* @__PURE__ */ jsx36(Icon2, { className: "h-5 w-5 shrink-0 text-muted-foreground" }) : null,
|
|
3275
|
+
/* @__PURE__ */ jsx36("span", { className: "min-w-0 flex-1 text-base text-foreground", children: tab.label }),
|
|
3164
3276
|
tab.trailing,
|
|
3165
|
-
/* @__PURE__ */
|
|
3277
|
+
/* @__PURE__ */ jsx36(ChevronRightIcon, { className: "h-5 w-5 shrink-0 text-muted-foreground" })
|
|
3166
3278
|
]
|
|
3167
3279
|
}
|
|
3168
3280
|
) }, tab.id);
|
|
@@ -3173,19 +3285,19 @@ function TabbedBottomSheet({
|
|
|
3173
3285
|
}
|
|
3174
3286
|
|
|
3175
3287
|
// src/table.tsx
|
|
3176
|
-
import * as
|
|
3177
|
-
import { jsx as
|
|
3288
|
+
import * as React28 from "react";
|
|
3289
|
+
import { jsx as jsx37 } from "react/jsx-runtime";
|
|
3178
3290
|
var TABLE_SIZES = {
|
|
3179
3291
|
sm: { head: "px-2", cell: "p-2" },
|
|
3180
3292
|
md: { head: "px-3", cell: "p-3" }
|
|
3181
3293
|
};
|
|
3182
|
-
var TableSizeContext =
|
|
3294
|
+
var TableSizeContext = React28.createContext("md");
|
|
3183
3295
|
function useTableSize() {
|
|
3184
|
-
return
|
|
3296
|
+
return React28.useContext(TableSizeContext);
|
|
3185
3297
|
}
|
|
3186
|
-
var Table =
|
|
3298
|
+
var Table = React28.forwardRef(
|
|
3187
3299
|
({ className, size = "md", wrap = true, wrapperClassName, ...props }, ref) => {
|
|
3188
|
-
const table = /* @__PURE__ */
|
|
3300
|
+
const table = /* @__PURE__ */ jsx37(
|
|
3189
3301
|
"table",
|
|
3190
3302
|
{
|
|
3191
3303
|
ref,
|
|
@@ -3195,7 +3307,7 @@ var Table = React27.forwardRef(
|
|
|
3195
3307
|
...props
|
|
3196
3308
|
}
|
|
3197
3309
|
);
|
|
3198
|
-
return /* @__PURE__ */
|
|
3310
|
+
return /* @__PURE__ */ jsx37(TableSizeContext.Provider, { value: size, children: wrap ? /* @__PURE__ */ jsx37(
|
|
3199
3311
|
"div",
|
|
3200
3312
|
{
|
|
3201
3313
|
"data-slot": "table-wrapper",
|
|
@@ -3206,7 +3318,7 @@ var Table = React27.forwardRef(
|
|
|
3206
3318
|
}
|
|
3207
3319
|
);
|
|
3208
3320
|
Table.displayName = "Table";
|
|
3209
|
-
var TableHeader =
|
|
3321
|
+
var TableHeader = React28.forwardRef(({ className, sticky = false, ...props }, ref) => /* @__PURE__ */ jsx37(
|
|
3210
3322
|
"thead",
|
|
3211
3323
|
{
|
|
3212
3324
|
ref,
|
|
@@ -3220,7 +3332,7 @@ var TableHeader = React27.forwardRef(({ className, sticky = false, ...props }, r
|
|
|
3220
3332
|
}
|
|
3221
3333
|
));
|
|
3222
3334
|
TableHeader.displayName = "TableHeader";
|
|
3223
|
-
var TableBody =
|
|
3335
|
+
var TableBody = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx37(
|
|
3224
3336
|
"tbody",
|
|
3225
3337
|
{
|
|
3226
3338
|
ref,
|
|
@@ -3230,7 +3342,7 @@ var TableBody = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE_
|
|
|
3230
3342
|
}
|
|
3231
3343
|
));
|
|
3232
3344
|
TableBody.displayName = "TableBody";
|
|
3233
|
-
var TableFooter =
|
|
3345
|
+
var TableFooter = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx37(
|
|
3234
3346
|
"tfoot",
|
|
3235
3347
|
{
|
|
3236
3348
|
ref,
|
|
@@ -3243,7 +3355,7 @@ var TableFooter = React27.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
3243
3355
|
}
|
|
3244
3356
|
));
|
|
3245
3357
|
TableFooter.displayName = "TableFooter";
|
|
3246
|
-
var TableRow =
|
|
3358
|
+
var TableRow = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx37(
|
|
3247
3359
|
"tr",
|
|
3248
3360
|
{
|
|
3249
3361
|
ref,
|
|
@@ -3256,9 +3368,9 @@ var TableRow = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
3256
3368
|
}
|
|
3257
3369
|
));
|
|
3258
3370
|
TableRow.displayName = "TableRow";
|
|
3259
|
-
var TableHead =
|
|
3371
|
+
var TableHead = React28.forwardRef(({ className, ...props }, ref) => {
|
|
3260
3372
|
const size = useTableSize();
|
|
3261
|
-
return /* @__PURE__ */
|
|
3373
|
+
return /* @__PURE__ */ jsx37(
|
|
3262
3374
|
"th",
|
|
3263
3375
|
{
|
|
3264
3376
|
ref,
|
|
@@ -3273,9 +3385,9 @@ var TableHead = React27.forwardRef(({ className, ...props }, ref) => {
|
|
|
3273
3385
|
);
|
|
3274
3386
|
});
|
|
3275
3387
|
TableHead.displayName = "TableHead";
|
|
3276
|
-
var TableCell =
|
|
3388
|
+
var TableCell = React28.forwardRef(({ className, ...props }, ref) => {
|
|
3277
3389
|
const size = useTableSize();
|
|
3278
|
-
return /* @__PURE__ */
|
|
3390
|
+
return /* @__PURE__ */ jsx37(
|
|
3279
3391
|
"td",
|
|
3280
3392
|
{
|
|
3281
3393
|
ref,
|
|
@@ -3290,7 +3402,7 @@ var TableCell = React27.forwardRef(({ className, ...props }, ref) => {
|
|
|
3290
3402
|
);
|
|
3291
3403
|
});
|
|
3292
3404
|
TableCell.displayName = "TableCell";
|
|
3293
|
-
var TableCaption =
|
|
3405
|
+
var TableCaption = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx37(
|
|
3294
3406
|
"caption",
|
|
3295
3407
|
{
|
|
3296
3408
|
ref,
|
|
@@ -3303,11 +3415,11 @@ TableCaption.displayName = "TableCaption";
|
|
|
3303
3415
|
|
|
3304
3416
|
// src/tabs.tsx
|
|
3305
3417
|
import * as TabsPrimitive from "@radix-ui/react-tabs";
|
|
3306
|
-
import * as
|
|
3307
|
-
import { jsx as
|
|
3418
|
+
import * as React29 from "react";
|
|
3419
|
+
import { jsx as jsx38 } from "react/jsx-runtime";
|
|
3308
3420
|
var Tabs = TabsPrimitive.Root;
|
|
3309
3421
|
var TABS_TRIGGER_BASE = "inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm";
|
|
3310
|
-
var TabsList =
|
|
3422
|
+
var TabsList = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx38(
|
|
3311
3423
|
TabsPrimitive.List,
|
|
3312
3424
|
{
|
|
3313
3425
|
ref,
|
|
@@ -3320,7 +3432,7 @@ var TabsList = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
3320
3432
|
}
|
|
3321
3433
|
));
|
|
3322
3434
|
TabsList.displayName = TabsPrimitive.List.displayName;
|
|
3323
|
-
var TabsTrigger =
|
|
3435
|
+
var TabsTrigger = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx38(
|
|
3324
3436
|
TabsPrimitive.Trigger,
|
|
3325
3437
|
{
|
|
3326
3438
|
ref,
|
|
@@ -3334,7 +3446,7 @@ var TabsTrigger = React28.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
3334
3446
|
}
|
|
3335
3447
|
));
|
|
3336
3448
|
TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
|
|
3337
|
-
var TabsTriggerCore =
|
|
3449
|
+
var TabsTriggerCore = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx38(
|
|
3338
3450
|
TabsPrimitive.Trigger,
|
|
3339
3451
|
{
|
|
3340
3452
|
ref,
|
|
@@ -3344,7 +3456,7 @@ var TabsTriggerCore = React28.forwardRef(({ className, ...props }, ref) => /* @_
|
|
|
3344
3456
|
}
|
|
3345
3457
|
));
|
|
3346
3458
|
TabsTriggerCore.displayName = TabsPrimitive.Trigger.displayName;
|
|
3347
|
-
var TabsContent =
|
|
3459
|
+
var TabsContent = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx38(
|
|
3348
3460
|
TabsPrimitive.Content,
|
|
3349
3461
|
{
|
|
3350
3462
|
ref,
|
|
@@ -3360,8 +3472,8 @@ var TabsContent = React28.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
3360
3472
|
TabsContent.displayName = TabsPrimitive.Content.displayName;
|
|
3361
3473
|
|
|
3362
3474
|
// src/textarea.tsx
|
|
3363
|
-
import * as
|
|
3364
|
-
import { jsx as
|
|
3475
|
+
import * as React30 from "react";
|
|
3476
|
+
import { jsx as jsx39, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
3365
3477
|
var FILL_HEIGHT_REGEX = /(?:^|\s)(h-full|h-dvh|flex-1|grow)(?:\s|$)/;
|
|
3366
3478
|
var FILL_WIDTH_REGEX = /(?:^|\s)(w-full|w-screen)(?:\s|$)/;
|
|
3367
3479
|
function getStretchClasses(className) {
|
|
@@ -3374,7 +3486,7 @@ function getStretchClasses(className) {
|
|
|
3374
3486
|
var TEXTAREA_ELEVATED_CLASS = "flex h-auto w-full rounded-md border border-input bg-background px-3 py-2 text-sm text-foreground shadow-textarea transition duration-400 placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-[2px] focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50";
|
|
3375
3487
|
var TEXTAREA_CONTROL_CLASS = "flex w-full rounded-md border border-input bg-transparent px-3 py-2 text-sm text-foreground shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50";
|
|
3376
3488
|
function useAutoGrow(ref, value, autoGrow = false, minHeight, maxHeight) {
|
|
3377
|
-
|
|
3489
|
+
React30.useEffect(() => {
|
|
3378
3490
|
if (!autoGrow || !ref.current) return;
|
|
3379
3491
|
const textarea = ref.current;
|
|
3380
3492
|
textarea.style.height = "auto";
|
|
@@ -3390,8 +3502,8 @@ function useAutoGrow(ref, value, autoGrow = false, minHeight, maxHeight) {
|
|
|
3390
3502
|
}, [value, autoGrow, minHeight, maxHeight, ref]);
|
|
3391
3503
|
}
|
|
3392
3504
|
function useMergedTextareaRef(forwarded) {
|
|
3393
|
-
const internal =
|
|
3394
|
-
const callback =
|
|
3505
|
+
const internal = React30.useRef(null);
|
|
3506
|
+
const callback = React30.useCallback(
|
|
3395
3507
|
(node) => {
|
|
3396
3508
|
internal.current = node;
|
|
3397
3509
|
if (typeof forwarded === "function") forwarded(node);
|
|
@@ -3408,13 +3520,13 @@ function boxStyle(minHeight, maxHeight) {
|
|
|
3408
3520
|
maxHeight: maxHeight ? `${maxHeight}px` : void 0
|
|
3409
3521
|
};
|
|
3410
3522
|
}
|
|
3411
|
-
var Textarea =
|
|
3523
|
+
var Textarea = React30.forwardRef(
|
|
3412
3524
|
({ className, autoGrow, minHeight, maxHeight, wrapperClassName, ...props }, forwarded) => {
|
|
3413
3525
|
const { ref, callback } = useMergedTextareaRef(forwarded);
|
|
3414
3526
|
const stretchClasses = getStretchClasses(className);
|
|
3415
3527
|
const needsWrapper = Boolean(wrapperClassName || stretchClasses);
|
|
3416
3528
|
useAutoGrow(ref, props.value, autoGrow, minHeight, maxHeight);
|
|
3417
|
-
const textarea = /* @__PURE__ */
|
|
3529
|
+
const textarea = /* @__PURE__ */ jsx39(
|
|
3418
3530
|
"textarea",
|
|
3419
3531
|
{
|
|
3420
3532
|
ref: callback,
|
|
@@ -3430,15 +3542,15 @@ var Textarea = React29.forwardRef(
|
|
|
3430
3542
|
}
|
|
3431
3543
|
);
|
|
3432
3544
|
if (!needsWrapper) return textarea;
|
|
3433
|
-
return /* @__PURE__ */
|
|
3545
|
+
return /* @__PURE__ */ jsx39("div", { className: cn(stretchClasses, wrapperClassName), children: textarea });
|
|
3434
3546
|
}
|
|
3435
3547
|
);
|
|
3436
3548
|
Textarea.displayName = "Textarea";
|
|
3437
|
-
var BasicTextarea =
|
|
3549
|
+
var BasicTextarea = React30.forwardRef(
|
|
3438
3550
|
({ className, autoGrow, minHeight, maxHeight, ...props }, forwarded) => {
|
|
3439
3551
|
const { ref, callback } = useMergedTextareaRef(forwarded);
|
|
3440
3552
|
useAutoGrow(ref, props.value, autoGrow, minHeight, maxHeight);
|
|
3441
|
-
return /* @__PURE__ */
|
|
3553
|
+
return /* @__PURE__ */ jsx39(
|
|
3442
3554
|
"textarea",
|
|
3443
3555
|
{
|
|
3444
3556
|
ref: callback,
|
|
@@ -3456,7 +3568,7 @@ var BasicTextarea = React29.forwardRef(
|
|
|
3456
3568
|
}
|
|
3457
3569
|
);
|
|
3458
3570
|
BasicTextarea.displayName = "BasicTextarea";
|
|
3459
|
-
var TextareaWithPrefix =
|
|
3571
|
+
var TextareaWithPrefix = React30.forwardRef(
|
|
3460
3572
|
({
|
|
3461
3573
|
prefix,
|
|
3462
3574
|
className,
|
|
@@ -3468,13 +3580,13 @@ var TextareaWithPrefix = React29.forwardRef(
|
|
|
3468
3580
|
}, forwarded) => {
|
|
3469
3581
|
const { ref, callback } = useMergedTextareaRef(forwarded);
|
|
3470
3582
|
useAutoGrow(ref, props.value, autoGrow, minHeight, maxHeight);
|
|
3471
|
-
return /* @__PURE__ */
|
|
3583
|
+
return /* @__PURE__ */ jsxs20(
|
|
3472
3584
|
"div",
|
|
3473
3585
|
{
|
|
3474
3586
|
className: cn("relative", getStretchClasses(className), wrapperClassName),
|
|
3475
3587
|
children: [
|
|
3476
|
-
prefix ? /* @__PURE__ */
|
|
3477
|
-
/* @__PURE__ */
|
|
3588
|
+
prefix ? /* @__PURE__ */ jsx39("div", { className: "pointer-events-none absolute left-3 top-3 z-10 text-muted-foreground", children: prefix }) : null,
|
|
3589
|
+
/* @__PURE__ */ jsx39(
|
|
3478
3590
|
"textarea",
|
|
3479
3591
|
{
|
|
3480
3592
|
ref: callback,
|
|
@@ -3498,16 +3610,16 @@ var TextareaWithPrefix = React29.forwardRef(
|
|
|
3498
3610
|
TextareaWithPrefix.displayName = "TextareaWithPrefix";
|
|
3499
3611
|
|
|
3500
3612
|
// src/use-scroll-fade.ts
|
|
3501
|
-
import { useCallback as
|
|
3613
|
+
import { useCallback as useCallback5, useEffect as useEffect5, useRef as useRef6, useState as useState8 } from "react";
|
|
3502
3614
|
var EPSILON = 2;
|
|
3503
3615
|
function useScrollFade() {
|
|
3504
|
-
const [state, setState] =
|
|
3616
|
+
const [state, setState] = useState8({
|
|
3505
3617
|
top: false,
|
|
3506
3618
|
bottom: false
|
|
3507
3619
|
});
|
|
3508
|
-
const nodeRef =
|
|
3509
|
-
const cleanupRef =
|
|
3510
|
-
const measure =
|
|
3620
|
+
const nodeRef = useRef6(null);
|
|
3621
|
+
const cleanupRef = useRef6(null);
|
|
3622
|
+
const measure = useCallback5(() => {
|
|
3511
3623
|
const el = nodeRef.current;
|
|
3512
3624
|
if (!el) return;
|
|
3513
3625
|
const overflowing = el.scrollHeight - el.clientHeight > EPSILON;
|
|
@@ -3519,7 +3631,7 @@ function useScrollFade() {
|
|
|
3519
3631
|
(prev) => prev.top === next.top && prev.bottom === next.bottom ? prev : next
|
|
3520
3632
|
);
|
|
3521
3633
|
}, []);
|
|
3522
|
-
const ref =
|
|
3634
|
+
const ref = useCallback5(
|
|
3523
3635
|
(node) => {
|
|
3524
3636
|
cleanupRef.current?.();
|
|
3525
3637
|
cleanupRef.current = null;
|
|
@@ -3539,7 +3651,7 @@ function useScrollFade() {
|
|
|
3539
3651
|
},
|
|
3540
3652
|
[measure]
|
|
3541
3653
|
);
|
|
3542
|
-
|
|
3654
|
+
useEffect5(() => () => cleanupRef.current?.(), []);
|
|
3543
3655
|
return {
|
|
3544
3656
|
ref,
|
|
3545
3657
|
state,
|
|
@@ -3553,14 +3665,14 @@ function useScrollFade() {
|
|
|
3553
3665
|
|
|
3554
3666
|
// src/hover-card.tsx
|
|
3555
3667
|
import * as HoverCardPrimitive from "@radix-ui/react-hover-card";
|
|
3556
|
-
import * as
|
|
3557
|
-
import { jsx as
|
|
3668
|
+
import * as React31 from "react";
|
|
3669
|
+
import { jsx as jsx40 } from "react/jsx-runtime";
|
|
3558
3670
|
var HoverCard = HoverCardPrimitive.Root;
|
|
3559
3671
|
var HoverCardTrigger = HoverCardPrimitive.Trigger;
|
|
3560
|
-
var HoverCardContent =
|
|
3672
|
+
var HoverCardContent = React31.forwardRef(
|
|
3561
3673
|
({ className, align = "center", sideOffset = 4, container, animated = true, ...props }, ref) => {
|
|
3562
3674
|
const resolved = usePortalContainer(container);
|
|
3563
|
-
return /* @__PURE__ */
|
|
3675
|
+
return /* @__PURE__ */ jsx40(HoverCardPrimitive.Portal, { container: resolved ?? null, children: /* @__PURE__ */ jsx40(
|
|
3564
3676
|
HoverCardPrimitive.Content,
|
|
3565
3677
|
{
|
|
3566
3678
|
ref,
|
|
@@ -3581,9 +3693,9 @@ HoverCardContent.displayName = HoverCardPrimitive.Content.displayName;
|
|
|
3581
3693
|
|
|
3582
3694
|
// src/radio-group.tsx
|
|
3583
3695
|
import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
|
|
3584
|
-
import * as
|
|
3585
|
-
import { jsx as
|
|
3586
|
-
var RadioGroupSizeContext =
|
|
3696
|
+
import * as React32 from "react";
|
|
3697
|
+
import { jsx as jsx41 } from "react/jsx-runtime";
|
|
3698
|
+
var RadioGroupSizeContext = React32.createContext("md");
|
|
3587
3699
|
var CONTROL_CLASSES = {
|
|
3588
3700
|
sm: "h-3.5 w-3.5",
|
|
3589
3701
|
md: "h-4 w-4",
|
|
@@ -3594,7 +3706,7 @@ var DOT_CLASSES = {
|
|
|
3594
3706
|
md: "h-1.5 w-1.5",
|
|
3595
3707
|
lg: "h-2 w-2"
|
|
3596
3708
|
};
|
|
3597
|
-
var RadioGroup3 =
|
|
3709
|
+
var RadioGroup3 = React32.forwardRef(({ className, size = "md", ...props }, ref) => /* @__PURE__ */ jsx41(RadioGroupSizeContext.Provider, { value: size, children: /* @__PURE__ */ jsx41(
|
|
3598
3710
|
RadioGroupPrimitive.Root,
|
|
3599
3711
|
{
|
|
3600
3712
|
ref,
|
|
@@ -3604,10 +3716,10 @@ var RadioGroup3 = React31.forwardRef(({ className, size = "md", ...props }, ref)
|
|
|
3604
3716
|
}
|
|
3605
3717
|
) }));
|
|
3606
3718
|
RadioGroup3.displayName = RadioGroupPrimitive.Root.displayName;
|
|
3607
|
-
var RadioGroupItem =
|
|
3608
|
-
const groupSize =
|
|
3719
|
+
var RadioGroupItem = React32.forwardRef(({ className, size, ...props }, ref) => {
|
|
3720
|
+
const groupSize = React32.useContext(RadioGroupSizeContext);
|
|
3609
3721
|
const resolved = size ?? groupSize;
|
|
3610
|
-
return /* @__PURE__ */
|
|
3722
|
+
return /* @__PURE__ */ jsx41(
|
|
3611
3723
|
RadioGroupPrimitive.Item,
|
|
3612
3724
|
{
|
|
3613
3725
|
ref,
|
|
@@ -3624,7 +3736,7 @@ var RadioGroupItem = React31.forwardRef(({ className, size, ...props }, ref) =>
|
|
|
3624
3736
|
className
|
|
3625
3737
|
),
|
|
3626
3738
|
...props,
|
|
3627
|
-
children: /* @__PURE__ */
|
|
3739
|
+
children: /* @__PURE__ */ jsx41(RadioGroupPrimitive.Indicator, { className: "flex items-center justify-center", children: /* @__PURE__ */ jsx41(
|
|
3628
3740
|
"div",
|
|
3629
3741
|
{
|
|
3630
3742
|
className: cn("rounded-full bg-primary-foreground", DOT_CLASSES[resolved])
|
|
@@ -3637,7 +3749,7 @@ RadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;
|
|
|
3637
3749
|
|
|
3638
3750
|
// src/resizable.tsx
|
|
3639
3751
|
import { Group as Group4, Panel, Separator as Separator5 } from "react-resizable-panels";
|
|
3640
|
-
import { jsx as
|
|
3752
|
+
import { jsx as jsx42 } from "react/jsx-runtime";
|
|
3641
3753
|
var HANDLE_SIZES = {
|
|
3642
3754
|
xs: "w-0.5 [&[aria-orientation=horizontal]]:h-0.5 [&[aria-orientation=horizontal]]:w-full",
|
|
3643
3755
|
sm: "w-1 [&[aria-orientation=horizontal]]:h-1 [&[aria-orientation=horizontal]]:w-full",
|
|
@@ -3651,7 +3763,7 @@ var HANDLE_SIZES = {
|
|
|
3651
3763
|
var ResizablePanelGroup = ({
|
|
3652
3764
|
className,
|
|
3653
3765
|
...props
|
|
3654
|
-
}) => /* @__PURE__ */
|
|
3766
|
+
}) => /* @__PURE__ */ jsx42(
|
|
3655
3767
|
Group4,
|
|
3656
3768
|
{
|
|
3657
3769
|
"data-slot": "resizable-group",
|
|
@@ -3666,7 +3778,7 @@ var ResizableHandle = ({
|
|
|
3666
3778
|
size = "xs",
|
|
3667
3779
|
className,
|
|
3668
3780
|
...props
|
|
3669
|
-
}) => /* @__PURE__ */
|
|
3781
|
+
}) => /* @__PURE__ */ jsx42(
|
|
3670
3782
|
Separator5,
|
|
3671
3783
|
{
|
|
3672
3784
|
"data-slot": "resizable-handle",
|
|
@@ -3686,15 +3798,15 @@ var ResizableHandle = ({
|
|
|
3686
3798
|
className
|
|
3687
3799
|
),
|
|
3688
3800
|
...props,
|
|
3689
|
-
children: withHandle ? /* @__PURE__ */
|
|
3801
|
+
children: withHandle ? /* @__PURE__ */ jsx42("div", { className: "z-10 flex h-8 w-4 items-center justify-center rounded-sm border bg-border group-aria-[orientation=horizontal]/handle:h-4 group-aria-[orientation=horizontal]/handle:w-8", children: /* @__PURE__ */ jsx42(DragHandleDots2Icon, { className: "h-2.5 w-2.5 group-aria-[orientation=horizontal]/handle:rotate-90" }) }) : null
|
|
3690
3802
|
}
|
|
3691
3803
|
);
|
|
3692
3804
|
ResizableHandle.displayName = "ResizableHandle";
|
|
3693
3805
|
|
|
3694
3806
|
// src/slider.tsx
|
|
3695
3807
|
import * as SliderPrimitive from "@radix-ui/react-slider";
|
|
3696
|
-
import * as
|
|
3697
|
-
import { jsx as
|
|
3808
|
+
import * as React33 from "react";
|
|
3809
|
+
import { jsx as jsx43, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
3698
3810
|
var TRACK_CLASSES = {
|
|
3699
3811
|
sm: "h-1",
|
|
3700
3812
|
md: "h-1.5",
|
|
@@ -3705,12 +3817,12 @@ var THUMB_CLASSES = {
|
|
|
3705
3817
|
md: "h-4 w-4",
|
|
3706
3818
|
lg: "h-5 w-5"
|
|
3707
3819
|
};
|
|
3708
|
-
var Slider =
|
|
3820
|
+
var Slider = React33.forwardRef(({ className, size = "md", ...props }, ref) => {
|
|
3709
3821
|
const thumbCount = Math.max(
|
|
3710
3822
|
1,
|
|
3711
3823
|
(props.value ?? props.defaultValue ?? [0]).length
|
|
3712
3824
|
);
|
|
3713
|
-
return /* @__PURE__ */
|
|
3825
|
+
return /* @__PURE__ */ jsxs21(
|
|
3714
3826
|
SliderPrimitive.Root,
|
|
3715
3827
|
{
|
|
3716
3828
|
ref,
|
|
@@ -3722,7 +3834,7 @@ var Slider = React32.forwardRef(({ className, size = "md", ...props }, ref) => {
|
|
|
3722
3834
|
),
|
|
3723
3835
|
...props,
|
|
3724
3836
|
children: [
|
|
3725
|
-
/* @__PURE__ */
|
|
3837
|
+
/* @__PURE__ */ jsx43(
|
|
3726
3838
|
SliderPrimitive.Track,
|
|
3727
3839
|
{
|
|
3728
3840
|
"data-slot": "slider-track",
|
|
@@ -3731,7 +3843,7 @@ var Slider = React32.forwardRef(({ className, size = "md", ...props }, ref) => {
|
|
|
3731
3843
|
TRACK_CLASSES[size],
|
|
3732
3844
|
"data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5"
|
|
3733
3845
|
),
|
|
3734
|
-
children: /* @__PURE__ */
|
|
3846
|
+
children: /* @__PURE__ */ jsx43(
|
|
3735
3847
|
SliderPrimitive.Range,
|
|
3736
3848
|
{
|
|
3737
3849
|
"data-slot": "slider-range",
|
|
@@ -3740,7 +3852,7 @@ var Slider = React32.forwardRef(({ className, size = "md", ...props }, ref) => {
|
|
|
3740
3852
|
)
|
|
3741
3853
|
}
|
|
3742
3854
|
),
|
|
3743
|
-
Array.from({ length: thumbCount }, (_, index) => /* @__PURE__ */
|
|
3855
|
+
Array.from({ length: thumbCount }, (_, index) => /* @__PURE__ */ jsx43(
|
|
3744
3856
|
SliderPrimitive.Thumb,
|
|
3745
3857
|
{
|
|
3746
3858
|
"data-slot": "slider-thumb",
|
|
@@ -3767,8 +3879,8 @@ Slider.displayName = SliderPrimitive.Root.displayName;
|
|
|
3767
3879
|
import * as ToggleGroupPrimitive from "@radix-ui/react-toggle-group";
|
|
3768
3880
|
import * as TogglePrimitive from "@radix-ui/react-toggle";
|
|
3769
3881
|
import { cva as cva6 } from "class-variance-authority";
|
|
3770
|
-
import * as
|
|
3771
|
-
import { jsx as
|
|
3882
|
+
import * as React34 from "react";
|
|
3883
|
+
import { jsx as jsx44 } from "react/jsx-runtime";
|
|
3772
3884
|
var toggleVariants = cva6(
|
|
3773
3885
|
"inline-flex cursor-pointer items-center justify-center gap-2 rounded-md text-sm font-medium transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
|
|
3774
3886
|
{
|
|
@@ -3789,7 +3901,7 @@ var toggleVariants = cva6(
|
|
|
3789
3901
|
}
|
|
3790
3902
|
}
|
|
3791
3903
|
);
|
|
3792
|
-
var Toggle =
|
|
3904
|
+
var Toggle = React34.forwardRef(({ className, variant, size, ...props }, ref) => /* @__PURE__ */ jsx44(
|
|
3793
3905
|
TogglePrimitive.Root,
|
|
3794
3906
|
{
|
|
3795
3907
|
ref,
|
|
@@ -3799,21 +3911,21 @@ var Toggle = React33.forwardRef(({ className, variant, size, ...props }, ref) =>
|
|
|
3799
3911
|
}
|
|
3800
3912
|
));
|
|
3801
3913
|
Toggle.displayName = TogglePrimitive.Root.displayName;
|
|
3802
|
-
var ToggleGroupContext =
|
|
3803
|
-
var ToggleGroup =
|
|
3914
|
+
var ToggleGroupContext = React34.createContext({ size: "default", variant: "default" });
|
|
3915
|
+
var ToggleGroup = React34.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */ jsx44(
|
|
3804
3916
|
ToggleGroupPrimitive.Root,
|
|
3805
3917
|
{
|
|
3806
3918
|
ref,
|
|
3807
3919
|
"data-slot": "toggle-group",
|
|
3808
3920
|
className: cn("flex items-center justify-center gap-1", className),
|
|
3809
3921
|
...props,
|
|
3810
|
-
children: /* @__PURE__ */
|
|
3922
|
+
children: /* @__PURE__ */ jsx44(ToggleGroupContext.Provider, { value: { variant, size }, children })
|
|
3811
3923
|
}
|
|
3812
3924
|
));
|
|
3813
3925
|
ToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName;
|
|
3814
|
-
var ToggleGroupItem =
|
|
3815
|
-
const context =
|
|
3816
|
-
return /* @__PURE__ */
|
|
3926
|
+
var ToggleGroupItem = React34.forwardRef(({ className, children, variant, size, ...props }, ref) => {
|
|
3927
|
+
const context = React34.useContext(ToggleGroupContext);
|
|
3928
|
+
return /* @__PURE__ */ jsx44(
|
|
3817
3929
|
ToggleGroupPrimitive.Item,
|
|
3818
3930
|
{
|
|
3819
3931
|
ref,
|
|
@@ -3834,14 +3946,14 @@ ToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName;
|
|
|
3834
3946
|
|
|
3835
3947
|
// src/tooltip.tsx
|
|
3836
3948
|
import * as TooltipPrimitive from "@radix-ui/react-tooltip";
|
|
3837
|
-
import * as
|
|
3838
|
-
import { jsx as
|
|
3949
|
+
import * as React35 from "react";
|
|
3950
|
+
import { jsx as jsx45 } from "react/jsx-runtime";
|
|
3839
3951
|
var TooltipProvider = TooltipPrimitive.Provider;
|
|
3840
3952
|
var Tooltip = TooltipPrimitive.Root;
|
|
3841
3953
|
var TooltipTrigger = TooltipPrimitive.Trigger;
|
|
3842
|
-
var TooltipContent =
|
|
3954
|
+
var TooltipContent = React35.forwardRef(({ className, sideOffset = 4, container, animated = true, ...props }, ref) => {
|
|
3843
3955
|
const resolved = usePortalContainer(container);
|
|
3844
|
-
return /* @__PURE__ */
|
|
3956
|
+
return /* @__PURE__ */ jsx45(TooltipPrimitive.Portal, { container: resolved ?? null, children: /* @__PURE__ */ jsx45(
|
|
3845
3957
|
TooltipPrimitive.Content,
|
|
3846
3958
|
{
|
|
3847
3959
|
ref,
|
|
@@ -3909,6 +4021,8 @@ export {
|
|
|
3909
4021
|
CommandList,
|
|
3910
4022
|
CommandSeparator,
|
|
3911
4023
|
CommandShortcut,
|
|
4024
|
+
ConfirmDialog,
|
|
4025
|
+
ConfirmDialogHost,
|
|
3912
4026
|
ContextMenu,
|
|
3913
4027
|
ContextMenuCheckboxItem,
|
|
3914
4028
|
ContextMenuContent,
|