@ai-matrx/design-system 0.10.1 → 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 +64 -74
- package/README.md +20 -1
- package/dist/index.cjs +399 -297
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +106 -30
- package/dist/index.d.ts +106 -30
- package/dist/index.js +436 -331
- package/dist/index.js.map +1 -1
- package/dist/styles.css +10 -59
- package/dist/tokens.css +0 -5
- package/package.json +6 -2
package/dist/index.js
CHANGED
|
@@ -711,8 +711,6 @@ Button.displayName = "Button";
|
|
|
711
711
|
// src/motion.ts
|
|
712
712
|
var MOTION_OVERLAY = "matrx-motion-overlay";
|
|
713
713
|
var MOTION_DIALOG = "matrx-motion-dialog";
|
|
714
|
-
var CENTERED_DIALOG = "matrx-dialog-centered";
|
|
715
|
-
var POPPER_OFFSET = "matrx-popper-offset";
|
|
716
714
|
var MOTION_BOTTOM_SHEET = "matrx-motion-bottom-sheet";
|
|
717
715
|
var MOTION_POPPER = "matrx-motion-popper";
|
|
718
716
|
var MOTION_SHEET = {
|
|
@@ -817,7 +815,7 @@ var AlertDialogContent = React7.forwardRef(({ className, children, container, an
|
|
|
817
815
|
ref,
|
|
818
816
|
"data-slot": "alert-dialog-content",
|
|
819
817
|
className: cn(
|
|
820
|
-
|
|
818
|
+
"fixed left-[50%] top-[50%] z-[10000] grid min-w-0 w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg",
|
|
821
819
|
// Ruling 3 — never taller than the viewport, always scrollable, and
|
|
822
820
|
// the footer stays reachable via --dialog-pad like Dialog's.
|
|
823
821
|
"max-h-[85dvh] overflow-y-auto overscroll-contain [--dialog-pad:1.5rem] overflow-x-clip [overflow-wrap:anywhere] [&>*]:min-w-0 [&>*]:max-w-full",
|
|
@@ -1158,7 +1156,7 @@ var Command = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
1158
1156
|
}
|
|
1159
1157
|
));
|
|
1160
1158
|
Command.displayName = CommandPrimitive.displayName;
|
|
1161
|
-
var DIALOG_DESKTOP_CLASSES =
|
|
1159
|
+
var DIALOG_DESKTOP_CLASSES = "fixed left-[50%] top-[50%] z-[10000] grid min-w-0 w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 overflow-x-clip border bg-background p-6 shadow-lg [overflow-wrap:anywhere] [&>*]:min-w-0 [&>*]:max-w-full sm:rounded-lg";
|
|
1162
1160
|
var DIALOG_MOBILE_SHEET_CLASSES = "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 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";
|
|
1163
1161
|
var DIALOG_MOBILE_SHEET_OVERRIDE = "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";
|
|
1164
1162
|
var CommandDialogContent = React13.forwardRef(({ className, children, container, ...props }, ref) => {
|
|
@@ -1302,10 +1300,122 @@ var CommandShortcut = ({
|
|
|
1302
1300
|
};
|
|
1303
1301
|
CommandShortcut.displayName = "CommandShortcut";
|
|
1304
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
|
+
|
|
1305
1415
|
// src/context-menu.tsx
|
|
1306
1416
|
import * as ContextMenuPrimitive from "@radix-ui/react-context-menu";
|
|
1307
|
-
import * as
|
|
1308
|
-
import { jsx as
|
|
1417
|
+
import * as React15 from "react";
|
|
1418
|
+
import { jsx as jsx18, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
1309
1419
|
var ContextMenu = ContextMenuPrimitive.Root;
|
|
1310
1420
|
var ContextMenuTrigger = ContextMenuPrimitive.Trigger;
|
|
1311
1421
|
var ContextMenuGroup = ContextMenuPrimitive.Group;
|
|
@@ -1315,7 +1425,7 @@ var ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;
|
|
|
1315
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";
|
|
1316
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";
|
|
1317
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";
|
|
1318
|
-
var ContextMenuSubTrigger =
|
|
1428
|
+
var ContextMenuSubTrigger = React15.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs8(
|
|
1319
1429
|
ContextMenuPrimitive.SubTrigger,
|
|
1320
1430
|
{
|
|
1321
1431
|
ref,
|
|
@@ -1328,12 +1438,12 @@ var ContextMenuSubTrigger = React14.forwardRef(({ className, inset, children, ..
|
|
|
1328
1438
|
...props,
|
|
1329
1439
|
children: [
|
|
1330
1440
|
children,
|
|
1331
|
-
/* @__PURE__ */
|
|
1441
|
+
/* @__PURE__ */ jsx18(RadixChevronRightIcon, { className: "ml-auto h-4 w-4" })
|
|
1332
1442
|
]
|
|
1333
1443
|
}
|
|
1334
1444
|
));
|
|
1335
1445
|
ContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;
|
|
1336
|
-
var ContextMenuSubContent =
|
|
1446
|
+
var ContextMenuSubContent = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx18(
|
|
1337
1447
|
ContextMenuPrimitive.SubContent,
|
|
1338
1448
|
{
|
|
1339
1449
|
ref,
|
|
@@ -1343,9 +1453,9 @@ var ContextMenuSubContent = React14.forwardRef(({ className, ...props }, ref) =>
|
|
|
1343
1453
|
}
|
|
1344
1454
|
));
|
|
1345
1455
|
ContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;
|
|
1346
|
-
var ContextMenuContent =
|
|
1456
|
+
var ContextMenuContent = React15.forwardRef(({ className, container, ...props }, ref) => {
|
|
1347
1457
|
const portalContainer = usePortalContainer(container);
|
|
1348
|
-
return /* @__PURE__ */
|
|
1458
|
+
return /* @__PURE__ */ jsx18(ContextMenuPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ jsx18(
|
|
1349
1459
|
ContextMenuPrimitive.Content,
|
|
1350
1460
|
{
|
|
1351
1461
|
ref,
|
|
@@ -1356,7 +1466,7 @@ var ContextMenuContent = React14.forwardRef(({ className, container, ...props },
|
|
|
1356
1466
|
) });
|
|
1357
1467
|
});
|
|
1358
1468
|
ContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;
|
|
1359
|
-
var ContextMenuItem =
|
|
1469
|
+
var ContextMenuItem = React15.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx18(
|
|
1360
1470
|
ContextMenuPrimitive.Item,
|
|
1361
1471
|
{
|
|
1362
1472
|
ref,
|
|
@@ -1371,7 +1481,7 @@ var ContextMenuItem = React14.forwardRef(({ className, inset, ...props }, ref) =
|
|
|
1371
1481
|
}
|
|
1372
1482
|
));
|
|
1373
1483
|
ContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName;
|
|
1374
|
-
var ContextMenuCheckboxItem =
|
|
1484
|
+
var ContextMenuCheckboxItem = React15.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs8(
|
|
1375
1485
|
ContextMenuPrimitive.CheckboxItem,
|
|
1376
1486
|
{
|
|
1377
1487
|
ref,
|
|
@@ -1379,13 +1489,13 @@ var ContextMenuCheckboxItem = React14.forwardRef(({ className, children, ...prop
|
|
|
1379
1489
|
className: cn(INDICATOR_ITEM_CLASS, className),
|
|
1380
1490
|
...props,
|
|
1381
1491
|
children: [
|
|
1382
|
-
/* @__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" }) }) }),
|
|
1383
1493
|
children
|
|
1384
1494
|
]
|
|
1385
1495
|
}
|
|
1386
1496
|
));
|
|
1387
1497
|
ContextMenuCheckboxItem.displayName = ContextMenuPrimitive.CheckboxItem.displayName;
|
|
1388
|
-
var ContextMenuRadioItem =
|
|
1498
|
+
var ContextMenuRadioItem = React15.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs8(
|
|
1389
1499
|
ContextMenuPrimitive.RadioItem,
|
|
1390
1500
|
{
|
|
1391
1501
|
ref,
|
|
@@ -1393,13 +1503,13 @@ var ContextMenuRadioItem = React14.forwardRef(({ className, children, ...props }
|
|
|
1393
1503
|
className: cn(INDICATOR_ITEM_CLASS, className),
|
|
1394
1504
|
...props,
|
|
1395
1505
|
children: [
|
|
1396
|
-
/* @__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" }) }) }),
|
|
1397
1507
|
children
|
|
1398
1508
|
]
|
|
1399
1509
|
}
|
|
1400
1510
|
));
|
|
1401
1511
|
ContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName;
|
|
1402
|
-
var ContextMenuLabel =
|
|
1512
|
+
var ContextMenuLabel = React15.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx18(
|
|
1403
1513
|
ContextMenuPrimitive.Label,
|
|
1404
1514
|
{
|
|
1405
1515
|
ref,
|
|
@@ -1413,7 +1523,7 @@ var ContextMenuLabel = React14.forwardRef(({ className, inset, ...props }, ref)
|
|
|
1413
1523
|
}
|
|
1414
1524
|
));
|
|
1415
1525
|
ContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName;
|
|
1416
|
-
var ContextMenuSeparator =
|
|
1526
|
+
var ContextMenuSeparator = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx18(
|
|
1417
1527
|
ContextMenuPrimitive.Separator,
|
|
1418
1528
|
{
|
|
1419
1529
|
ref,
|
|
@@ -1426,7 +1536,7 @@ ContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName;
|
|
|
1426
1536
|
var ContextMenuShortcut = ({
|
|
1427
1537
|
className,
|
|
1428
1538
|
...props
|
|
1429
|
-
}) => /* @__PURE__ */
|
|
1539
|
+
}) => /* @__PURE__ */ jsx18(
|
|
1430
1540
|
"span",
|
|
1431
1541
|
{
|
|
1432
1542
|
"data-slot": "context-menu-shortcut",
|
|
@@ -1438,18 +1548,18 @@ ContextMenuShortcut.displayName = "ContextMenuShortcut";
|
|
|
1438
1548
|
|
|
1439
1549
|
// src/creatable-picker.tsx
|
|
1440
1550
|
import {
|
|
1441
|
-
useRef,
|
|
1442
|
-
useState as
|
|
1551
|
+
useRef as useRef2,
|
|
1552
|
+
useState as useState3
|
|
1443
1553
|
} from "react";
|
|
1444
1554
|
|
|
1445
1555
|
// src/popover.tsx
|
|
1446
1556
|
import * as PopoverPrimitive from "@radix-ui/react-popover";
|
|
1447
|
-
import * as
|
|
1448
|
-
import { jsx as
|
|
1557
|
+
import * as React16 from "react";
|
|
1558
|
+
import { jsx as jsx19 } from "react/jsx-runtime";
|
|
1449
1559
|
var Popover = PopoverPrimitive.Root;
|
|
1450
1560
|
var PopoverTrigger = PopoverPrimitive.Trigger;
|
|
1451
1561
|
var PopoverAnchor = PopoverPrimitive.Anchor;
|
|
1452
|
-
var PopoverContent =
|
|
1562
|
+
var PopoverContent = React16.forwardRef(
|
|
1453
1563
|
({
|
|
1454
1564
|
className,
|
|
1455
1565
|
align = "center",
|
|
@@ -1459,7 +1569,7 @@ var PopoverContent = React15.forwardRef(
|
|
|
1459
1569
|
...props
|
|
1460
1570
|
}, ref) => {
|
|
1461
1571
|
const portalContainer = usePortalContainer(container);
|
|
1462
|
-
return /* @__PURE__ */
|
|
1572
|
+
return /* @__PURE__ */ jsx19(PopoverPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ jsx19(
|
|
1463
1573
|
PopoverPrimitive.Content,
|
|
1464
1574
|
{
|
|
1465
1575
|
ref,
|
|
@@ -1484,7 +1594,7 @@ var PopoverContent = React15.forwardRef(
|
|
|
1484
1594
|
PopoverContent.displayName = PopoverPrimitive.Content.displayName;
|
|
1485
1595
|
|
|
1486
1596
|
// src/creatable-picker.tsx
|
|
1487
|
-
import { jsx as
|
|
1597
|
+
import { jsx as jsx20, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
1488
1598
|
function article(noun) {
|
|
1489
1599
|
return /^[aeiou]/i.test(noun.trim()) ? `an ${noun}` : `a ${noun}`;
|
|
1490
1600
|
}
|
|
@@ -1511,11 +1621,11 @@ function CreatablePicker({
|
|
|
1511
1621
|
renderSelected,
|
|
1512
1622
|
size = "sm"
|
|
1513
1623
|
}) {
|
|
1514
|
-
const [open, setOpen] =
|
|
1515
|
-
const [query, setQuery] =
|
|
1516
|
-
const [busy, setBusy] =
|
|
1517
|
-
const inputRef =
|
|
1518
|
-
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);
|
|
1519
1629
|
const selected = options.find((option) => option.value === value) ?? null;
|
|
1520
1630
|
const groups = [];
|
|
1521
1631
|
for (const option of options) {
|
|
@@ -1559,8 +1669,8 @@ function CreatablePicker({
|
|
|
1559
1669
|
setBusy(false);
|
|
1560
1670
|
}
|
|
1561
1671
|
};
|
|
1562
|
-
return /* @__PURE__ */
|
|
1563
|
-
/* @__PURE__ */
|
|
1672
|
+
return /* @__PURE__ */ jsxs9(Popover, { open, onOpenChange: (next) => next ? setOpen(true) : close(), children: [
|
|
1673
|
+
/* @__PURE__ */ jsx20(PopoverTrigger, { asChild: true, disabled, children: /* @__PURE__ */ jsxs9(
|
|
1564
1674
|
"button",
|
|
1565
1675
|
{
|
|
1566
1676
|
type: "button",
|
|
@@ -1574,12 +1684,12 @@ function CreatablePicker({
|
|
|
1574
1684
|
triggerClassName
|
|
1575
1685
|
),
|
|
1576
1686
|
children: [
|
|
1577
|
-
/* @__PURE__ */
|
|
1578
|
-
/* @__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" })
|
|
1579
1689
|
]
|
|
1580
1690
|
}
|
|
1581
1691
|
) }),
|
|
1582
|
-
/* @__PURE__ */
|
|
1692
|
+
/* @__PURE__ */ jsx20(PopoverContent, { align: "start", className: "w-[--radix-popover-trigger-width] min-w-56 p-0", children: /* @__PURE__ */ jsxs9(
|
|
1583
1693
|
Command,
|
|
1584
1694
|
{
|
|
1585
1695
|
filter: (itemValue, search, keywords) => {
|
|
@@ -1587,7 +1697,7 @@ function CreatablePicker({
|
|
|
1587
1697
|
return haystack.includes(search.toLowerCase()) ? 1 : 0;
|
|
1588
1698
|
},
|
|
1589
1699
|
children: [
|
|
1590
|
-
/* @__PURE__ */
|
|
1700
|
+
/* @__PURE__ */ jsx20(
|
|
1591
1701
|
CommandInput,
|
|
1592
1702
|
{
|
|
1593
1703
|
ref: inputRef,
|
|
@@ -1599,13 +1709,13 @@ function CreatablePicker({
|
|
|
1599
1709
|
placeholder: searchPlaceholder ?? `Search or add ${article(noun)}\u2026`
|
|
1600
1710
|
}
|
|
1601
1711
|
),
|
|
1602
|
-
/* @__PURE__ */
|
|
1603
|
-
/* @__PURE__ */
|
|
1604
|
-
groups.map((group) => /* @__PURE__ */
|
|
1712
|
+
/* @__PURE__ */ jsxs9(CommandList, { children: [
|
|
1713
|
+
/* @__PURE__ */ jsx20(CommandEmpty, { children: emptyLabel }),
|
|
1714
|
+
groups.map((group) => /* @__PURE__ */ jsx20(
|
|
1605
1715
|
CommandGroup,
|
|
1606
1716
|
{
|
|
1607
1717
|
...group.heading === void 0 ? {} : { heading: group.heading },
|
|
1608
|
-
children: group.options.map((option) => /* @__PURE__ */
|
|
1718
|
+
children: group.options.map((option) => /* @__PURE__ */ jsxs9(
|
|
1609
1719
|
CommandItem,
|
|
1610
1720
|
{
|
|
1611
1721
|
value: option.label,
|
|
@@ -1616,7 +1726,7 @@ function CreatablePicker({
|
|
|
1616
1726
|
},
|
|
1617
1727
|
className: "gap-2 text-xs",
|
|
1618
1728
|
children: [
|
|
1619
|
-
/* @__PURE__ */
|
|
1729
|
+
/* @__PURE__ */ jsx20(
|
|
1620
1730
|
LucideCheckIcon,
|
|
1621
1731
|
{
|
|
1622
1732
|
className: cn(
|
|
@@ -1625,8 +1735,8 @@ function CreatablePicker({
|
|
|
1625
1735
|
)
|
|
1626
1736
|
}
|
|
1627
1737
|
),
|
|
1628
|
-
/* @__PURE__ */
|
|
1629
|
-
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
|
|
1630
1740
|
]
|
|
1631
1741
|
},
|
|
1632
1742
|
option.value
|
|
@@ -1635,9 +1745,9 @@ function CreatablePicker({
|
|
|
1635
1745
|
group.heading ?? "__ungrouped__"
|
|
1636
1746
|
))
|
|
1637
1747
|
] }),
|
|
1638
|
-
canCreate ? /* @__PURE__ */
|
|
1639
|
-
createExtra && typed && !exactMatch ? /* @__PURE__ */
|
|
1640
|
-
/* @__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(
|
|
1641
1751
|
"button",
|
|
1642
1752
|
{
|
|
1643
1753
|
type: "button",
|
|
@@ -1645,22 +1755,22 @@ function CreatablePicker({
|
|
|
1645
1755
|
onClick: () => void create(typed),
|
|
1646
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",
|
|
1647
1757
|
children: [
|
|
1648
|
-
busy ? /* @__PURE__ */
|
|
1649
|
-
/* @__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` })
|
|
1650
1760
|
]
|
|
1651
1761
|
}
|
|
1652
1762
|
),
|
|
1653
|
-
needsName ? /* @__PURE__ */
|
|
1763
|
+
needsName ? /* @__PURE__ */ jsxs9("p", { className: "px-2 pb-0.5 text-[11px] leading-snug text-muted-foreground", children: [
|
|
1654
1764
|
"Type the name of the ",
|
|
1655
1765
|
noun,
|
|
1656
1766
|
" you want to add \u2014 then this creates it."
|
|
1657
1767
|
] }) : null
|
|
1658
1768
|
] }) : null,
|
|
1659
|
-
footerActions?.length || manageAction ? /* @__PURE__ */
|
|
1769
|
+
footerActions?.length || manageAction ? /* @__PURE__ */ jsxs9("div", { className: "space-y-0.5 border-t border-border p-1", children: [
|
|
1660
1770
|
footerActions?.map((action) => {
|
|
1661
1771
|
const Icon2 = action.icon;
|
|
1662
|
-
return /* @__PURE__ */
|
|
1663
|
-
/* @__PURE__ */
|
|
1772
|
+
return /* @__PURE__ */ jsxs9("div", { children: [
|
|
1773
|
+
/* @__PURE__ */ jsxs9(
|
|
1664
1774
|
"button",
|
|
1665
1775
|
{
|
|
1666
1776
|
type: "button",
|
|
@@ -1670,15 +1780,15 @@ function CreatablePicker({
|
|
|
1670
1780
|
},
|
|
1671
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",
|
|
1672
1782
|
children: [
|
|
1673
|
-
Icon2 ? /* @__PURE__ */
|
|
1674
|
-
/* @__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 })
|
|
1675
1785
|
]
|
|
1676
1786
|
}
|
|
1677
1787
|
),
|
|
1678
|
-
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
|
|
1679
1789
|
] }, action.label);
|
|
1680
1790
|
}),
|
|
1681
|
-
manageAction ? /* @__PURE__ */
|
|
1791
|
+
manageAction ? /* @__PURE__ */ jsxs9(
|
|
1682
1792
|
"a",
|
|
1683
1793
|
{
|
|
1684
1794
|
href: manageAction.href,
|
|
@@ -1687,18 +1797,18 @@ function CreatablePicker({
|
|
|
1687
1797
|
onClick: close,
|
|
1688
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",
|
|
1689
1799
|
children: [
|
|
1690
|
-
/* @__PURE__ */
|
|
1691
|
-
/* @__PURE__ */
|
|
1800
|
+
/* @__PURE__ */ jsx20(ExternalLinkIcon, { className: "size-3.5 shrink-0" }),
|
|
1801
|
+
/* @__PURE__ */ jsx20("span", { className: "min-w-0 truncate", children: manageAction.label })
|
|
1692
1802
|
]
|
|
1693
1803
|
}
|
|
1694
1804
|
) : null
|
|
1695
1805
|
] }) : null,
|
|
1696
|
-
lockedNote ? /* @__PURE__ */
|
|
1697
|
-
/* @__PURE__ */
|
|
1698
|
-
/* @__PURE__ */
|
|
1699
|
-
/* @__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 })
|
|
1700
1810
|
] }),
|
|
1701
|
-
lockedAction ? /* @__PURE__ */
|
|
1811
|
+
lockedAction ? /* @__PURE__ */ jsxs9(
|
|
1702
1812
|
"button",
|
|
1703
1813
|
{
|
|
1704
1814
|
type: "button",
|
|
@@ -1708,8 +1818,8 @@ function CreatablePicker({
|
|
|
1708
1818
|
},
|
|
1709
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",
|
|
1710
1820
|
children: [
|
|
1711
|
-
/* @__PURE__ */
|
|
1712
|
-
/* @__PURE__ */
|
|
1821
|
+
/* @__PURE__ */ jsx20(PlusIcon, { className: "size-3.5 shrink-0" }),
|
|
1822
|
+
/* @__PURE__ */ jsx20("span", { className: "min-w-0 truncate", children: lockedAction.label })
|
|
1713
1823
|
]
|
|
1714
1824
|
}
|
|
1715
1825
|
) : null
|
|
@@ -1724,14 +1834,14 @@ function CreatablePicker({
|
|
|
1724
1834
|
import * as DialogPrimitive2 from "@radix-ui/react-dialog";
|
|
1725
1835
|
import * as VisuallyHidden2 from "@radix-ui/react-visually-hidden";
|
|
1726
1836
|
import { treeContainsComponent as treeContainsComponent3 } from "@ai-matrx/kit/react-tree";
|
|
1727
|
-
import * as
|
|
1728
|
-
import { jsx as
|
|
1837
|
+
import * as React17 from "react";
|
|
1838
|
+
import { jsx as jsx21, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
1729
1839
|
var Dialog = ({
|
|
1730
1840
|
children,
|
|
1731
1841
|
...props
|
|
1732
1842
|
}) => {
|
|
1733
1843
|
const modal = props.modal ?? true;
|
|
1734
|
-
return /* @__PURE__ */
|
|
1844
|
+
return /* @__PURE__ */ jsx21(RadixDialogModalProvider, { modal, children: /* @__PURE__ */ jsx21(DialogPrimitive2.Root, { ...props, modal, children }) });
|
|
1735
1845
|
};
|
|
1736
1846
|
Dialog.displayName = "Dialog";
|
|
1737
1847
|
var DialogTrigger = DialogPrimitive2.Trigger;
|
|
@@ -1741,12 +1851,12 @@ var DialogPortal = ({
|
|
|
1741
1851
|
...props
|
|
1742
1852
|
}) => {
|
|
1743
1853
|
const resolved = usePortalContainer(container);
|
|
1744
|
-
return /* @__PURE__ */
|
|
1854
|
+
return /* @__PURE__ */ jsx21(DialogPrimitive2.Portal, { container: resolved ?? null, ...props });
|
|
1745
1855
|
};
|
|
1746
1856
|
DialogPortal.displayName = "DialogPortal";
|
|
1747
|
-
var DialogContainerContext =
|
|
1748
|
-
var useDialogContainer = () =>
|
|
1749
|
-
var DialogOverlay =
|
|
1857
|
+
var DialogContainerContext = React17.createContext(null);
|
|
1858
|
+
var useDialogContainer = () => React17.useContext(DialogContainerContext);
|
|
1859
|
+
var DialogOverlay = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx21(
|
|
1750
1860
|
DialogPrimitive2.Overlay,
|
|
1751
1861
|
{
|
|
1752
1862
|
ref,
|
|
@@ -1762,9 +1872,9 @@ var DialogOverlay = React16.forwardRef(({ className, ...props }, ref) => /* @__P
|
|
|
1762
1872
|
}
|
|
1763
1873
|
));
|
|
1764
1874
|
DialogOverlay.displayName = DialogPrimitive2.Overlay.displayName;
|
|
1765
|
-
var DialogContentPrimitive =
|
|
1875
|
+
var DialogContentPrimitive = React17.forwardRef((props, ref) => {
|
|
1766
1876
|
const isModal = useRadixDialogModal();
|
|
1767
|
-
return /* @__PURE__ */
|
|
1877
|
+
return /* @__PURE__ */ jsx21(
|
|
1768
1878
|
DialogPrimitive2.Content,
|
|
1769
1879
|
{
|
|
1770
1880
|
...props,
|
|
@@ -1774,10 +1884,10 @@ var DialogContentPrimitive = React16.forwardRef((props, ref) => {
|
|
|
1774
1884
|
);
|
|
1775
1885
|
});
|
|
1776
1886
|
DialogContentPrimitive.displayName = "DialogContentPrimitive";
|
|
1777
|
-
var DIALOG_DESKTOP_CLASSES2 =
|
|
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";
|
|
1778
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";
|
|
1779
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";
|
|
1780
|
-
var DialogContent =
|
|
1890
|
+
var DialogContent = React17.forwardRef(
|
|
1781
1891
|
({
|
|
1782
1892
|
className,
|
|
1783
1893
|
children,
|
|
@@ -1791,10 +1901,10 @@ var DialogContent = React16.forwardRef(
|
|
|
1791
1901
|
const isModal = useRadixDialogModal();
|
|
1792
1902
|
const injectedContainer = usePortalContainer(container);
|
|
1793
1903
|
const asSheet = mobileSheet && isMobile;
|
|
1794
|
-
const [containerEl, setContainerEl] =
|
|
1904
|
+
const [containerEl, setContainerEl] = React17.useState(
|
|
1795
1905
|
null
|
|
1796
1906
|
);
|
|
1797
|
-
const mergedRef =
|
|
1907
|
+
const mergedRef = React17.useCallback(
|
|
1798
1908
|
(node) => {
|
|
1799
1909
|
setContainerEl(node);
|
|
1800
1910
|
if (typeof ref === "function") ref(node);
|
|
@@ -1805,9 +1915,9 @@ var DialogContent = React16.forwardRef(
|
|
|
1805
1915
|
);
|
|
1806
1916
|
const hasTitle = treeContainsComponent3(children, DialogTitle) || treeContainsComponent3(children, DialogPrimitive2.Title);
|
|
1807
1917
|
const hasDescription = treeContainsComponent3(children, DialogDescription) || treeContainsComponent3(children, DialogPrimitive2.Description);
|
|
1808
|
-
return /* @__PURE__ */
|
|
1809
|
-
isModal ? /* @__PURE__ */
|
|
1810
|
-
/* @__PURE__ */
|
|
1918
|
+
return /* @__PURE__ */ jsxs10(DialogPortal, { container, children: [
|
|
1919
|
+
isModal ? /* @__PURE__ */ jsx21(DialogOverlay, {}) : null,
|
|
1920
|
+
/* @__PURE__ */ jsxs10(
|
|
1811
1921
|
DialogContentPrimitive,
|
|
1812
1922
|
{
|
|
1813
1923
|
ref: mergedRef,
|
|
@@ -1826,23 +1936,23 @@ var DialogContent = React16.forwardRef(
|
|
|
1826
1936
|
...hasDescription ? {} : { "aria-describedby": void 0 },
|
|
1827
1937
|
...props,
|
|
1828
1938
|
children: [
|
|
1829
|
-
hasTitle ? null : /* @__PURE__ */
|
|
1830
|
-
/* @__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(
|
|
1831
1941
|
PortalContainerProvider,
|
|
1832
1942
|
{
|
|
1833
1943
|
container: containerEl ?? injectedContainer ?? null,
|
|
1834
1944
|
children
|
|
1835
1945
|
}
|
|
1836
1946
|
) }),
|
|
1837
|
-
showCloseButton ? /* @__PURE__ */
|
|
1947
|
+
showCloseButton ? /* @__PURE__ */ jsxs10(
|
|
1838
1948
|
DialogPrimitive2.Close,
|
|
1839
1949
|
{
|
|
1840
1950
|
"data-slot": "dialog-close",
|
|
1841
1951
|
"aria-label": "Close",
|
|
1842
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",
|
|
1843
1953
|
children: [
|
|
1844
|
-
/* @__PURE__ */
|
|
1845
|
-
/* @__PURE__ */
|
|
1954
|
+
/* @__PURE__ */ jsx21(XIcon, { className: "h-4 w-4" }),
|
|
1955
|
+
/* @__PURE__ */ jsx21("span", { className: "sr-only", children: "Close" })
|
|
1846
1956
|
]
|
|
1847
1957
|
}
|
|
1848
1958
|
) : null
|
|
@@ -1856,7 +1966,7 @@ DialogContent.displayName = DialogPrimitive2.Content.displayName;
|
|
|
1856
1966
|
var DialogHeader = ({
|
|
1857
1967
|
className,
|
|
1858
1968
|
...props
|
|
1859
|
-
}) => /* @__PURE__ */
|
|
1969
|
+
}) => /* @__PURE__ */ jsx21(
|
|
1860
1970
|
"div",
|
|
1861
1971
|
{
|
|
1862
1972
|
"data-slot": "dialog-header",
|
|
@@ -1873,7 +1983,7 @@ DialogHeader.displayName = "DialogHeader";
|
|
|
1873
1983
|
var DialogFooter = ({
|
|
1874
1984
|
className,
|
|
1875
1985
|
...props
|
|
1876
|
-
}) => /* @__PURE__ */
|
|
1986
|
+
}) => /* @__PURE__ */ jsx21(
|
|
1877
1987
|
"div",
|
|
1878
1988
|
{
|
|
1879
1989
|
"data-slot": "dialog-footer",
|
|
@@ -1887,7 +1997,7 @@ var DialogFooter = ({
|
|
|
1887
1997
|
}
|
|
1888
1998
|
);
|
|
1889
1999
|
DialogFooter.displayName = "DialogFooter";
|
|
1890
|
-
var DialogTitle =
|
|
2000
|
+
var DialogTitle = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx21(
|
|
1891
2001
|
DialogPrimitive2.Title,
|
|
1892
2002
|
{
|
|
1893
2003
|
ref,
|
|
@@ -1897,7 +2007,7 @@ var DialogTitle = React16.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
1897
2007
|
}
|
|
1898
2008
|
));
|
|
1899
2009
|
DialogTitle.displayName = DialogPrimitive2.Title.displayName;
|
|
1900
|
-
var DialogDescription =
|
|
2010
|
+
var DialogDescription = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx21(
|
|
1901
2011
|
DialogPrimitive2.Description,
|
|
1902
2012
|
{
|
|
1903
2013
|
ref,
|
|
@@ -1910,8 +2020,8 @@ DialogDescription.displayName = DialogPrimitive2.Description.displayName;
|
|
|
1910
2020
|
|
|
1911
2021
|
// src/dropdown-menu.tsx
|
|
1912
2022
|
import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
|
|
1913
|
-
import * as
|
|
1914
|
-
import { jsx as
|
|
2023
|
+
import * as React18 from "react";
|
|
2024
|
+
import { jsx as jsx22, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
1915
2025
|
var DropdownMenu = DropdownMenuPrimitive.Root;
|
|
1916
2026
|
var DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
|
|
1917
2027
|
var DropdownMenuGroup = DropdownMenuPrimitive.Group;
|
|
@@ -1921,7 +2031,7 @@ var DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
|
|
|
1921
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";
|
|
1922
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";
|
|
1923
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";
|
|
1924
|
-
var DropdownMenuSubTrigger =
|
|
2034
|
+
var DropdownMenuSubTrigger = React18.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs11(
|
|
1925
2035
|
DropdownMenuPrimitive.SubTrigger,
|
|
1926
2036
|
{
|
|
1927
2037
|
ref,
|
|
@@ -1934,12 +2044,12 @@ var DropdownMenuSubTrigger = React17.forwardRef(({ className, inset, children, .
|
|
|
1934
2044
|
...props,
|
|
1935
2045
|
children: [
|
|
1936
2046
|
children,
|
|
1937
|
-
/* @__PURE__ */
|
|
2047
|
+
/* @__PURE__ */ jsx22(RadixChevronRightIcon, { className: "ml-auto h-4 w-4" })
|
|
1938
2048
|
]
|
|
1939
2049
|
}
|
|
1940
2050
|
));
|
|
1941
2051
|
DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
|
|
1942
|
-
var DropdownMenuSubContent =
|
|
2052
|
+
var DropdownMenuSubContent = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx22(
|
|
1943
2053
|
DropdownMenuPrimitive.SubContent,
|
|
1944
2054
|
{
|
|
1945
2055
|
ref,
|
|
@@ -1949,9 +2059,9 @@ var DropdownMenuSubContent = React17.forwardRef(({ className, ...props }, ref) =
|
|
|
1949
2059
|
}
|
|
1950
2060
|
));
|
|
1951
2061
|
DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
|
|
1952
|
-
var DropdownMenuContent =
|
|
2062
|
+
var DropdownMenuContent = React18.forwardRef(({ className, sideOffset = 4, container, ...props }, ref) => {
|
|
1953
2063
|
const portalContainer = usePortalContainer(container);
|
|
1954
|
-
return /* @__PURE__ */
|
|
2064
|
+
return /* @__PURE__ */ jsx22(DropdownMenuPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ jsx22(
|
|
1955
2065
|
DropdownMenuPrimitive.Content,
|
|
1956
2066
|
{
|
|
1957
2067
|
ref,
|
|
@@ -1968,7 +2078,7 @@ var DropdownMenuContent = React17.forwardRef(({ className, sideOffset = 4, conta
|
|
|
1968
2078
|
) });
|
|
1969
2079
|
});
|
|
1970
2080
|
DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
|
|
1971
|
-
var DropdownMenuItem =
|
|
2081
|
+
var DropdownMenuItem = React18.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx22(
|
|
1972
2082
|
DropdownMenuPrimitive.Item,
|
|
1973
2083
|
{
|
|
1974
2084
|
ref,
|
|
@@ -1978,7 +2088,7 @@ var DropdownMenuItem = React17.forwardRef(({ className, inset, ...props }, ref)
|
|
|
1978
2088
|
}
|
|
1979
2089
|
));
|
|
1980
2090
|
DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
|
|
1981
|
-
var DropdownMenuCheckboxItem =
|
|
2091
|
+
var DropdownMenuCheckboxItem = React18.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs11(
|
|
1982
2092
|
DropdownMenuPrimitive.CheckboxItem,
|
|
1983
2093
|
{
|
|
1984
2094
|
ref,
|
|
@@ -1986,13 +2096,13 @@ var DropdownMenuCheckboxItem = React17.forwardRef(({ className, children, ...pro
|
|
|
1986
2096
|
className: cn(MENU_INDICATOR_ITEM_CLASS, className),
|
|
1987
2097
|
...props,
|
|
1988
2098
|
children: [
|
|
1989
|
-
/* @__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" }) }) }),
|
|
1990
2100
|
children
|
|
1991
2101
|
]
|
|
1992
2102
|
}
|
|
1993
2103
|
));
|
|
1994
2104
|
DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
|
|
1995
|
-
var DropdownMenuRadioItem =
|
|
2105
|
+
var DropdownMenuRadioItem = React18.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs11(
|
|
1996
2106
|
DropdownMenuPrimitive.RadioItem,
|
|
1997
2107
|
{
|
|
1998
2108
|
ref,
|
|
@@ -2000,13 +2110,13 @@ var DropdownMenuRadioItem = React17.forwardRef(({ className, children, ...props
|
|
|
2000
2110
|
className: cn(MENU_INDICATOR_ITEM_CLASS, className),
|
|
2001
2111
|
...props,
|
|
2002
2112
|
children: [
|
|
2003
|
-
/* @__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" }) }) }),
|
|
2004
2114
|
children
|
|
2005
2115
|
]
|
|
2006
2116
|
}
|
|
2007
2117
|
));
|
|
2008
2118
|
DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
|
|
2009
|
-
var DropdownMenuLabel =
|
|
2119
|
+
var DropdownMenuLabel = React18.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx22(
|
|
2010
2120
|
DropdownMenuPrimitive.Label,
|
|
2011
2121
|
{
|
|
2012
2122
|
ref,
|
|
@@ -2016,7 +2126,7 @@ var DropdownMenuLabel = React17.forwardRef(({ className, inset, ...props }, ref)
|
|
|
2016
2126
|
}
|
|
2017
2127
|
));
|
|
2018
2128
|
DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
|
|
2019
|
-
var DropdownMenuSeparator =
|
|
2129
|
+
var DropdownMenuSeparator = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx22(
|
|
2020
2130
|
DropdownMenuPrimitive.Separator,
|
|
2021
2131
|
{
|
|
2022
2132
|
ref,
|
|
@@ -2029,7 +2139,7 @@ DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
|
|
|
2029
2139
|
var DropdownMenuShortcut = ({
|
|
2030
2140
|
className,
|
|
2031
2141
|
...props
|
|
2032
|
-
}) => /* @__PURE__ */
|
|
2142
|
+
}) => /* @__PURE__ */ jsx22(
|
|
2033
2143
|
"span",
|
|
2034
2144
|
{
|
|
2035
2145
|
"data-slot": "dropdown-menu-shortcut",
|
|
@@ -2040,8 +2150,8 @@ var DropdownMenuShortcut = ({
|
|
|
2040
2150
|
DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
|
|
2041
2151
|
|
|
2042
2152
|
// src/editable-label.tsx
|
|
2043
|
-
import { useCallback as
|
|
2044
|
-
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";
|
|
2045
2155
|
function EditableLabel({
|
|
2046
2156
|
value,
|
|
2047
2157
|
onCommit,
|
|
@@ -2061,22 +2171,22 @@ function EditableLabel({
|
|
|
2061
2171
|
inputClassName
|
|
2062
2172
|
}) {
|
|
2063
2173
|
const controlled = activation === "controlled";
|
|
2064
|
-
const [internalEditing, setInternalEditing] =
|
|
2174
|
+
const [internalEditing, setInternalEditing] = useState5(false);
|
|
2065
2175
|
const editing = controlled ? !!editingProp : internalEditing;
|
|
2066
|
-
const [draft, setDraft] =
|
|
2067
|
-
const [error, setError] =
|
|
2068
|
-
const [busy, setBusy] =
|
|
2069
|
-
const inputRef =
|
|
2070
|
-
|
|
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(() => {
|
|
2071
2181
|
if (!editing) setDraft(value);
|
|
2072
2182
|
}, [value, editing]);
|
|
2073
|
-
|
|
2183
|
+
useEffect3(() => {
|
|
2074
2184
|
if (editing && inputRef.current) {
|
|
2075
2185
|
inputRef.current.focus();
|
|
2076
2186
|
if (selectOnEdit) inputRef.current.select();
|
|
2077
2187
|
}
|
|
2078
2188
|
}, [editing, selectOnEdit]);
|
|
2079
|
-
const setEditing =
|
|
2189
|
+
const setEditing = useCallback3(
|
|
2080
2190
|
(next) => {
|
|
2081
2191
|
if (controlled) {
|
|
2082
2192
|
onEditingChange?.(next);
|
|
@@ -2087,18 +2197,18 @@ function EditableLabel({
|
|
|
2087
2197
|
},
|
|
2088
2198
|
[controlled, onEditingChange]
|
|
2089
2199
|
);
|
|
2090
|
-
const startEdit =
|
|
2200
|
+
const startEdit = useCallback3(() => {
|
|
2091
2201
|
setDraft(value);
|
|
2092
2202
|
setError(null);
|
|
2093
2203
|
setEditing(true);
|
|
2094
2204
|
}, [value, setEditing]);
|
|
2095
|
-
const cancel =
|
|
2205
|
+
const cancel = useCallback3(() => {
|
|
2096
2206
|
setDraft(value);
|
|
2097
2207
|
setError(null);
|
|
2098
2208
|
setBusy(false);
|
|
2099
2209
|
setEditing(false);
|
|
2100
2210
|
}, [value, setEditing]);
|
|
2101
|
-
const commit =
|
|
2211
|
+
const commit = useCallback3(() => {
|
|
2102
2212
|
if (busy) return;
|
|
2103
2213
|
const trimmed = draft.trim();
|
|
2104
2214
|
const next = trimmed || emptyFallback;
|
|
@@ -2148,8 +2258,8 @@ function EditableLabel({
|
|
|
2148
2258
|
setEditing
|
|
2149
2259
|
]);
|
|
2150
2260
|
if (editing) {
|
|
2151
|
-
return /* @__PURE__ */
|
|
2152
|
-
/* @__PURE__ */
|
|
2261
|
+
return /* @__PURE__ */ jsxs12("span", { className: cn("relative flex min-w-0 flex-1 items-center", className), children: [
|
|
2262
|
+
/* @__PURE__ */ jsx23(
|
|
2153
2263
|
"input",
|
|
2154
2264
|
{
|
|
2155
2265
|
ref: inputRef,
|
|
@@ -2189,12 +2299,12 @@ function EditableLabel({
|
|
|
2189
2299
|
)
|
|
2190
2300
|
}
|
|
2191
2301
|
),
|
|
2192
|
-
busy && /* @__PURE__ */
|
|
2193
|
-
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 })
|
|
2194
2304
|
] });
|
|
2195
2305
|
}
|
|
2196
2306
|
if (controlled) return null;
|
|
2197
|
-
return /* @__PURE__ */
|
|
2307
|
+
return /* @__PURE__ */ jsx23(
|
|
2198
2308
|
"button",
|
|
2199
2309
|
{
|
|
2200
2310
|
type: "button",
|
|
@@ -2228,8 +2338,8 @@ function EditableLabel({
|
|
|
2228
2338
|
}
|
|
2229
2339
|
|
|
2230
2340
|
// src/input.tsx
|
|
2231
|
-
import * as
|
|
2232
|
-
import { jsx as
|
|
2341
|
+
import * as React19 from "react";
|
|
2342
|
+
import { jsx as jsx24, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
2233
2343
|
var getVariantStyles = (variant = "default") => {
|
|
2234
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
|
|
2235
2345
|
file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground
|
|
@@ -2257,9 +2367,9 @@ var getVariantStyles = (variant = "default") => {
|
|
|
2257
2367
|
return baseStyles;
|
|
2258
2368
|
}
|
|
2259
2369
|
};
|
|
2260
|
-
var Input =
|
|
2370
|
+
var Input = React19.forwardRef(
|
|
2261
2371
|
({ className, type, variant = "default", ...props }, ref) => {
|
|
2262
|
-
return /* @__PURE__ */
|
|
2372
|
+
return /* @__PURE__ */ jsx24(
|
|
2263
2373
|
"input",
|
|
2264
2374
|
{
|
|
2265
2375
|
type,
|
|
@@ -2271,7 +2381,7 @@ var Input = React18.forwardRef(
|
|
|
2271
2381
|
}
|
|
2272
2382
|
);
|
|
2273
2383
|
Input.displayName = "Input";
|
|
2274
|
-
var EnterInput =
|
|
2384
|
+
var EnterInput = React19.forwardRef(
|
|
2275
2385
|
({ onEnter, ...props }, ref) => {
|
|
2276
2386
|
const handleKeyDown = (e) => {
|
|
2277
2387
|
if (e.key === "Enter" && onEnter) {
|
|
@@ -2279,7 +2389,7 @@ var EnterInput = React18.forwardRef(
|
|
|
2279
2389
|
onEnter();
|
|
2280
2390
|
}
|
|
2281
2391
|
};
|
|
2282
|
-
return /* @__PURE__ */
|
|
2392
|
+
return /* @__PURE__ */ jsx24(
|
|
2283
2393
|
Input,
|
|
2284
2394
|
{
|
|
2285
2395
|
...props,
|
|
@@ -2295,11 +2405,11 @@ var EnterInput = React18.forwardRef(
|
|
|
2295
2405
|
}
|
|
2296
2406
|
);
|
|
2297
2407
|
EnterInput.displayName = "EnterInput";
|
|
2298
|
-
var BasicInput =
|
|
2408
|
+
var BasicInput = React19.forwardRef(
|
|
2299
2409
|
// `variant` is accepted (prop-compatible with Input) but intentionally
|
|
2300
2410
|
// unused — and destructured so it never leaks onto the DOM element.
|
|
2301
2411
|
({ className, type, variant: _variant = "default", ...props }, ref) => {
|
|
2302
|
-
return /* @__PURE__ */
|
|
2412
|
+
return /* @__PURE__ */ jsx24(
|
|
2303
2413
|
"input",
|
|
2304
2414
|
{
|
|
2305
2415
|
type,
|
|
@@ -2314,10 +2424,10 @@ var BasicInput = React18.forwardRef(
|
|
|
2314
2424
|
}
|
|
2315
2425
|
);
|
|
2316
2426
|
BasicInput.displayName = "BasicInput";
|
|
2317
|
-
var InputWithPrefix =
|
|
2318
|
-
return /* @__PURE__ */
|
|
2319
|
-
prefix && /* @__PURE__ */
|
|
2320
|
-
/* @__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(
|
|
2321
2431
|
Input,
|
|
2322
2432
|
{
|
|
2323
2433
|
ref,
|
|
@@ -2331,9 +2441,9 @@ InputWithPrefix.displayName = "InputWithPrefix";
|
|
|
2331
2441
|
|
|
2332
2442
|
// src/label.tsx
|
|
2333
2443
|
import * as LabelPrimitive from "@radix-ui/react-label";
|
|
2334
|
-
import * as
|
|
2335
|
-
import { jsx as
|
|
2336
|
-
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(
|
|
2337
2447
|
LabelPrimitive.Root,
|
|
2338
2448
|
{
|
|
2339
2449
|
ref,
|
|
@@ -2347,8 +2457,8 @@ var Label3 = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ *
|
|
|
2347
2457
|
Label3.displayName = LabelPrimitive.Root.displayName;
|
|
2348
2458
|
|
|
2349
2459
|
// src/overflow-toolbar.tsx
|
|
2350
|
-
import { useLayoutEffect, useMemo, useRef as
|
|
2351
|
-
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";
|
|
2352
2462
|
var GAP_PX = 6;
|
|
2353
2463
|
var TONE = {
|
|
2354
2464
|
default: "border border-border bg-background hover:bg-accent text-foreground",
|
|
@@ -2370,16 +2480,16 @@ function ToolbarButton({
|
|
|
2370
2480
|
action.hideLabel && !action.running ? "w-7 justify-center px-0" : "px-2",
|
|
2371
2481
|
TONE[tone]
|
|
2372
2482
|
);
|
|
2373
|
-
const inner = /* @__PURE__ */
|
|
2374
|
-
/* @__PURE__ */
|
|
2483
|
+
const inner = /* @__PURE__ */ jsxs14(Fragment, { children: [
|
|
2484
|
+
/* @__PURE__ */ jsx26(
|
|
2375
2485
|
Icon2,
|
|
2376
2486
|
{
|
|
2377
2487
|
className: cn("w-3.5 h-3.5 shrink-0", action.running && "matrx-spin")
|
|
2378
2488
|
}
|
|
2379
2489
|
),
|
|
2380
|
-
showLabel && /* @__PURE__ */
|
|
2490
|
+
showLabel && /* @__PURE__ */ jsx26("span", { children: text })
|
|
2381
2491
|
] });
|
|
2382
|
-
const control = action.href && !action.disabled ? /* @__PURE__ */
|
|
2492
|
+
const control = action.href && !action.disabled ? /* @__PURE__ */ jsx26(
|
|
2383
2493
|
"a",
|
|
2384
2494
|
{
|
|
2385
2495
|
href: action.href,
|
|
@@ -2389,7 +2499,7 @@ function ToolbarButton({
|
|
|
2389
2499
|
"aria-label": action.label,
|
|
2390
2500
|
children: inner
|
|
2391
2501
|
}
|
|
2392
|
-
) : /* @__PURE__ */
|
|
2502
|
+
) : /* @__PURE__ */ jsx26(
|
|
2393
2503
|
"button",
|
|
2394
2504
|
{
|
|
2395
2505
|
type: "button",
|
|
@@ -2401,12 +2511,12 @@ function ToolbarButton({
|
|
|
2401
2511
|
}
|
|
2402
2512
|
);
|
|
2403
2513
|
if (enableTooltip && action.hideLabel && renderTooltip) {
|
|
2404
|
-
return /* @__PURE__ */
|
|
2514
|
+
return /* @__PURE__ */ jsx26(Fragment, { children: renderTooltip(control, action.label) });
|
|
2405
2515
|
}
|
|
2406
2516
|
return control;
|
|
2407
2517
|
}
|
|
2408
2518
|
function OverflowTrigger({ ariaLabel }) {
|
|
2409
|
-
return /* @__PURE__ */
|
|
2519
|
+
return /* @__PURE__ */ jsx26(
|
|
2410
2520
|
"button",
|
|
2411
2521
|
{
|
|
2412
2522
|
type: "button",
|
|
@@ -2417,7 +2527,7 @@ function OverflowTrigger({ ariaLabel }) {
|
|
|
2417
2527
|
"inline-flex items-center justify-center h-7 w-7 rounded-md transition-colors",
|
|
2418
2528
|
"border border-border bg-background hover:bg-accent text-foreground"
|
|
2419
2529
|
),
|
|
2420
|
-
children: /* @__PURE__ */
|
|
2530
|
+
children: /* @__PURE__ */ jsx26(MoreHorizontalIcon, { className: "w-3.5 h-3.5" })
|
|
2421
2531
|
}
|
|
2422
2532
|
);
|
|
2423
2533
|
}
|
|
@@ -2433,10 +2543,10 @@ function OverflowToolbar({
|
|
|
2433
2543
|
() => actions.filter((a) => !a.hidden),
|
|
2434
2544
|
[actions]
|
|
2435
2545
|
);
|
|
2436
|
-
const containerRef =
|
|
2437
|
-
const ghostRef =
|
|
2438
|
-
const leadingRef =
|
|
2439
|
-
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);
|
|
2440
2550
|
const signature = visibleActions.map(
|
|
2441
2551
|
(a) => `${a.id}:${a.hideLabel ? 1 : 0}:${a.running ? 1 : 0}:${a.runningLabel ?? ""}:${a.label}`
|
|
2442
2552
|
).join("|");
|
|
@@ -2477,22 +2587,22 @@ function OverflowToolbar({
|
|
|
2477
2587
|
}, [signature, leading != null]);
|
|
2478
2588
|
const shown = visibleActions.slice(0, visibleCount);
|
|
2479
2589
|
const hidden = visibleActions.slice(visibleCount);
|
|
2480
|
-
return /* @__PURE__ */
|
|
2481
|
-
/* @__PURE__ */
|
|
2590
|
+
return /* @__PURE__ */ jsxs14("div", { ref: containerRef, className: cn("relative min-w-0", className), children: [
|
|
2591
|
+
/* @__PURE__ */ jsxs14(
|
|
2482
2592
|
"div",
|
|
2483
2593
|
{
|
|
2484
2594
|
ref: ghostRef,
|
|
2485
2595
|
"aria-hidden": true,
|
|
2486
2596
|
className: "pointer-events-none absolute left-0 top-0 flex items-center gap-1.5 opacity-0",
|
|
2487
2597
|
children: [
|
|
2488
|
-
visibleActions.map((a) => /* @__PURE__ */
|
|
2489
|
-
/* @__PURE__ */
|
|
2598
|
+
visibleActions.map((a) => /* @__PURE__ */ jsx26(ToolbarButton, { action: a }, a.id)),
|
|
2599
|
+
/* @__PURE__ */ jsx26(OverflowTrigger, { ariaLabel: overflowAriaLabel })
|
|
2490
2600
|
]
|
|
2491
2601
|
}
|
|
2492
2602
|
),
|
|
2493
|
-
/* @__PURE__ */
|
|
2494
|
-
leading != null && /* @__PURE__ */
|
|
2495
|
-
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(
|
|
2496
2606
|
ToolbarButton,
|
|
2497
2607
|
{
|
|
2498
2608
|
action: a,
|
|
@@ -2503,7 +2613,7 @@ function OverflowToolbar({
|
|
|
2503
2613
|
)),
|
|
2504
2614
|
hidden.length > 0 && renderOverflowMenu({
|
|
2505
2615
|
actions: hidden,
|
|
2506
|
-
trigger: /* @__PURE__ */
|
|
2616
|
+
trigger: /* @__PURE__ */ jsx26(OverflowTrigger, { ariaLabel: overflowAriaLabel })
|
|
2507
2617
|
})
|
|
2508
2618
|
] })
|
|
2509
2619
|
] });
|
|
@@ -2511,20 +2621,20 @@ function OverflowToolbar({
|
|
|
2511
2621
|
|
|
2512
2622
|
// src/progress.tsx
|
|
2513
2623
|
import * as ProgressPrimitive from "@radix-ui/react-progress";
|
|
2514
|
-
import * as
|
|
2515
|
-
import { jsx as
|
|
2624
|
+
import * as React22 from "react";
|
|
2625
|
+
import { jsx as jsx27 } from "react/jsx-runtime";
|
|
2516
2626
|
var PROGRESS_TONES = {
|
|
2517
2627
|
default: "bg-primary",
|
|
2518
2628
|
success: "bg-success",
|
|
2519
2629
|
warning: "bg-warning",
|
|
2520
2630
|
destructive: "bg-destructive"
|
|
2521
2631
|
};
|
|
2522
|
-
var Progress =
|
|
2632
|
+
var Progress = React22.forwardRef(({ className, tone = "default", indicatorClassName, ...props }, ref) => {
|
|
2523
2633
|
const { value, max } = props;
|
|
2524
2634
|
const ceiling = max ?? 100;
|
|
2525
2635
|
const isIndeterminate = value === null || value === void 0;
|
|
2526
2636
|
const pct = isIndeterminate ? 0 : Math.min(100, Math.max(0, value / ceiling * 100));
|
|
2527
|
-
return /* @__PURE__ */
|
|
2637
|
+
return /* @__PURE__ */ jsx27(
|
|
2528
2638
|
ProgressPrimitive.Root,
|
|
2529
2639
|
{
|
|
2530
2640
|
ref,
|
|
@@ -2534,7 +2644,7 @@ var Progress = React21.forwardRef(({ className, tone = "default", indicatorClass
|
|
|
2534
2644
|
className
|
|
2535
2645
|
),
|
|
2536
2646
|
...props,
|
|
2537
|
-
children: /* @__PURE__ */
|
|
2647
|
+
children: /* @__PURE__ */ jsx27(
|
|
2538
2648
|
ProgressPrimitive.Indicator,
|
|
2539
2649
|
{
|
|
2540
2650
|
"data-slot": "progress-indicator",
|
|
@@ -2554,9 +2664,9 @@ Progress.displayName = ProgressPrimitive.Root.displayName;
|
|
|
2554
2664
|
|
|
2555
2665
|
// src/scroll-area.tsx
|
|
2556
2666
|
import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
|
|
2557
|
-
import * as
|
|
2558
|
-
import { jsx as
|
|
2559
|
-
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(
|
|
2560
2670
|
({
|
|
2561
2671
|
className,
|
|
2562
2672
|
children,
|
|
@@ -2565,7 +2675,7 @@ var ScrollArea = React22.forwardRef(
|
|
|
2565
2675
|
scrollBarClassName,
|
|
2566
2676
|
orientation = "vertical",
|
|
2567
2677
|
...props
|
|
2568
|
-
}, ref) => /* @__PURE__ */
|
|
2678
|
+
}, ref) => /* @__PURE__ */ jsxs15(
|
|
2569
2679
|
ScrollAreaPrimitive.Root,
|
|
2570
2680
|
{
|
|
2571
2681
|
ref,
|
|
@@ -2573,7 +2683,7 @@ var ScrollArea = React22.forwardRef(
|
|
|
2573
2683
|
className: cn("relative overflow-hidden", className),
|
|
2574
2684
|
...props,
|
|
2575
2685
|
children: [
|
|
2576
|
-
/* @__PURE__ */
|
|
2686
|
+
/* @__PURE__ */ jsx28(
|
|
2577
2687
|
ScrollAreaPrimitive.Viewport,
|
|
2578
2688
|
{
|
|
2579
2689
|
ref: viewportRef,
|
|
@@ -2582,14 +2692,14 @@ var ScrollArea = React22.forwardRef(
|
|
|
2582
2692
|
children
|
|
2583
2693
|
}
|
|
2584
2694
|
),
|
|
2585
|
-
/* @__PURE__ */
|
|
2586
|
-
/* @__PURE__ */
|
|
2695
|
+
/* @__PURE__ */ jsx28(ScrollBar, { orientation, className: scrollBarClassName }),
|
|
2696
|
+
/* @__PURE__ */ jsx28(ScrollAreaPrimitive.Corner, {})
|
|
2587
2697
|
]
|
|
2588
2698
|
}
|
|
2589
2699
|
)
|
|
2590
2700
|
);
|
|
2591
2701
|
ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;
|
|
2592
|
-
var ScrollBar =
|
|
2702
|
+
var ScrollBar = React23.forwardRef(({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ jsx28(
|
|
2593
2703
|
ScrollAreaPrimitive.ScrollAreaScrollbar,
|
|
2594
2704
|
{
|
|
2595
2705
|
ref,
|
|
@@ -2602,7 +2712,7 @@ var ScrollBar = React22.forwardRef(({ className, orientation = "vertical", ...pr
|
|
|
2602
2712
|
className
|
|
2603
2713
|
),
|
|
2604
2714
|
...props,
|
|
2605
|
-
children: /* @__PURE__ */
|
|
2715
|
+
children: /* @__PURE__ */ jsx28(
|
|
2606
2716
|
ScrollAreaPrimitive.ScrollAreaThumb,
|
|
2607
2717
|
{
|
|
2608
2718
|
"data-slot": "scroll-area-thumb",
|
|
@@ -2614,7 +2724,7 @@ var ScrollBar = React22.forwardRef(({ className, orientation = "vertical", ...pr
|
|
|
2614
2724
|
ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;
|
|
2615
2725
|
|
|
2616
2726
|
// src/score-ring.tsx
|
|
2617
|
-
import { jsx as
|
|
2727
|
+
import { jsx as jsx29, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
2618
2728
|
var DEFAULT_SCORE_THRESHOLDS = {
|
|
2619
2729
|
good: 75,
|
|
2620
2730
|
warning: 50
|
|
@@ -2645,7 +2755,7 @@ function ScoreRing({
|
|
|
2645
2755
|
const circumference = 2 * Math.PI * radius;
|
|
2646
2756
|
const boundedPct = pct === null ? 0 : Math.max(0, Math.min(100, pct));
|
|
2647
2757
|
const dashOffset = circumference * (1 - boundedPct / 100);
|
|
2648
|
-
return /* @__PURE__ */
|
|
2758
|
+
return /* @__PURE__ */ jsxs16(
|
|
2649
2759
|
"div",
|
|
2650
2760
|
{
|
|
2651
2761
|
className: cn(
|
|
@@ -2656,8 +2766,8 @@ function ScoreRing({
|
|
|
2656
2766
|
role: "img",
|
|
2657
2767
|
"aria-label": `${label ?? "Score"}: ${pct === null ? "not available" : `${pct} out of 100`}`,
|
|
2658
2768
|
children: [
|
|
2659
|
-
/* @__PURE__ */
|
|
2660
|
-
/* @__PURE__ */
|
|
2769
|
+
/* @__PURE__ */ jsxs16("svg", { viewBox: "0 0 100 100", className: "h-full w-full -rotate-90", children: [
|
|
2770
|
+
/* @__PURE__ */ jsx29(
|
|
2661
2771
|
"circle",
|
|
2662
2772
|
{
|
|
2663
2773
|
cx: "50",
|
|
@@ -2668,7 +2778,7 @@ function ScoreRing({
|
|
|
2668
2778
|
fill: "none"
|
|
2669
2779
|
}
|
|
2670
2780
|
),
|
|
2671
|
-
pct !== null ? /* @__PURE__ */
|
|
2781
|
+
pct !== null ? /* @__PURE__ */ jsx29(
|
|
2672
2782
|
"circle",
|
|
2673
2783
|
{
|
|
2674
2784
|
cx: "50",
|
|
@@ -2687,8 +2797,8 @@ function ScoreRing({
|
|
|
2687
2797
|
}
|
|
2688
2798
|
) : null
|
|
2689
2799
|
] }),
|
|
2690
|
-
/* @__PURE__ */
|
|
2691
|
-
/* @__PURE__ */
|
|
2800
|
+
/* @__PURE__ */ jsxs16("div", { className: "absolute flex flex-col items-center justify-center", children: [
|
|
2801
|
+
/* @__PURE__ */ jsx29(
|
|
2692
2802
|
"span",
|
|
2693
2803
|
{
|
|
2694
2804
|
className: cn(
|
|
@@ -2698,7 +2808,7 @@ function ScoreRing({
|
|
|
2698
2808
|
children: pct === null ? "\u2014" : `${pct}${suffix}`
|
|
2699
2809
|
}
|
|
2700
2810
|
),
|
|
2701
|
-
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
|
|
2702
2812
|
] })
|
|
2703
2813
|
]
|
|
2704
2814
|
}
|
|
@@ -2706,7 +2816,7 @@ function ScoreRing({
|
|
|
2706
2816
|
}
|
|
2707
2817
|
|
|
2708
2818
|
// src/segmented-control.tsx
|
|
2709
|
-
import { jsx as
|
|
2819
|
+
import { jsx as jsx30 } from "react/jsx-runtime";
|
|
2710
2820
|
function SegmentedControl({
|
|
2711
2821
|
value,
|
|
2712
2822
|
onValueChange,
|
|
@@ -2721,7 +2831,7 @@ function SegmentedControl({
|
|
|
2721
2831
|
md: "h-9 text-sm",
|
|
2722
2832
|
lg: "h-10 text-base"
|
|
2723
2833
|
};
|
|
2724
|
-
return /* @__PURE__ */
|
|
2834
|
+
return /* @__PURE__ */ jsx30(
|
|
2725
2835
|
"div",
|
|
2726
2836
|
{
|
|
2727
2837
|
className: cn(
|
|
@@ -2732,7 +2842,7 @@ function SegmentedControl({
|
|
|
2732
2842
|
role: "tablist",
|
|
2733
2843
|
children: data.map((option) => {
|
|
2734
2844
|
const isActive = value === option.value;
|
|
2735
|
-
return /* @__PURE__ */
|
|
2845
|
+
return /* @__PURE__ */ jsx30(
|
|
2736
2846
|
"button",
|
|
2737
2847
|
{
|
|
2738
2848
|
type: "button",
|
|
@@ -2759,8 +2869,8 @@ function SegmentedControl({
|
|
|
2759
2869
|
// src/select.tsx
|
|
2760
2870
|
import * as SelectPrimitive from "@radix-ui/react-select";
|
|
2761
2871
|
import { cva as cva4 } from "class-variance-authority";
|
|
2762
|
-
import * as
|
|
2763
|
-
import { jsx as
|
|
2872
|
+
import * as React24 from "react";
|
|
2873
|
+
import { jsx as jsx31, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
2764
2874
|
var Select = SelectPrimitive.Root;
|
|
2765
2875
|
var SelectGroup = SelectPrimitive.Group;
|
|
2766
2876
|
var SelectValue = SelectPrimitive.Value;
|
|
@@ -2779,7 +2889,7 @@ var selectTriggerVariants = cva4(
|
|
|
2779
2889
|
}
|
|
2780
2890
|
}
|
|
2781
2891
|
);
|
|
2782
|
-
var SelectTrigger =
|
|
2892
|
+
var SelectTrigger = React24.forwardRef(({ className, children, hideArrow = false, size, ...props }, ref) => /* @__PURE__ */ jsxs17(
|
|
2783
2893
|
SelectPrimitive.Trigger,
|
|
2784
2894
|
{
|
|
2785
2895
|
ref,
|
|
@@ -2787,12 +2897,12 @@ var SelectTrigger = React23.forwardRef(({ className, children, hideArrow = false
|
|
|
2787
2897
|
...props,
|
|
2788
2898
|
children: [
|
|
2789
2899
|
children,
|
|
2790
|
-
!hideArrow && /* @__PURE__ */
|
|
2900
|
+
!hideArrow && /* @__PURE__ */ jsx31(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx31(RadixChevronDownIcon, { className: "h-4 w-4 opacity-50" }) })
|
|
2791
2901
|
]
|
|
2792
2902
|
}
|
|
2793
2903
|
));
|
|
2794
2904
|
SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
|
|
2795
|
-
var SelectScrollUpButton =
|
|
2905
|
+
var SelectScrollUpButton = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx31(
|
|
2796
2906
|
SelectPrimitive.ScrollUpButton,
|
|
2797
2907
|
{
|
|
2798
2908
|
ref,
|
|
@@ -2801,11 +2911,11 @@ var SelectScrollUpButton = React23.forwardRef(({ className, ...props }, ref) =>
|
|
|
2801
2911
|
className
|
|
2802
2912
|
),
|
|
2803
2913
|
...props,
|
|
2804
|
-
children: /* @__PURE__ */
|
|
2914
|
+
children: /* @__PURE__ */ jsx31(RadixChevronUpIcon, {})
|
|
2805
2915
|
}
|
|
2806
2916
|
));
|
|
2807
2917
|
SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
|
|
2808
|
-
var SelectScrollDownButton =
|
|
2918
|
+
var SelectScrollDownButton = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx31(
|
|
2809
2919
|
SelectPrimitive.ScrollDownButton,
|
|
2810
2920
|
{
|
|
2811
2921
|
ref,
|
|
@@ -2814,11 +2924,11 @@ var SelectScrollDownButton = React23.forwardRef(({ className, ...props }, ref) =
|
|
|
2814
2924
|
className
|
|
2815
2925
|
),
|
|
2816
2926
|
...props,
|
|
2817
|
-
children: /* @__PURE__ */
|
|
2927
|
+
children: /* @__PURE__ */ jsx31(RadixChevronDownIcon, {})
|
|
2818
2928
|
}
|
|
2819
2929
|
));
|
|
2820
2930
|
SelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;
|
|
2821
|
-
var SelectContent =
|
|
2931
|
+
var SelectContent = React24.forwardRef(
|
|
2822
2932
|
({
|
|
2823
2933
|
className,
|
|
2824
2934
|
children,
|
|
@@ -2828,26 +2938,21 @@ var SelectContent = React23.forwardRef(
|
|
|
2828
2938
|
...props
|
|
2829
2939
|
}, ref) => {
|
|
2830
2940
|
const portalContainer = usePortalContainer(container);
|
|
2831
|
-
return /* @__PURE__ */
|
|
2941
|
+
return /* @__PURE__ */ jsx31(SelectPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ jsxs17(
|
|
2832
2942
|
SelectPrimitive.Content,
|
|
2833
2943
|
{
|
|
2834
2944
|
ref,
|
|
2835
2945
|
className: cn(
|
|
2836
2946
|
"relative z-[10001] max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md",
|
|
2837
2947
|
animated && MOTION_POPPER,
|
|
2838
|
-
|
|
2839
|
-
// (POPPER_OFFSET), never Tailwind translate utilities: those compose
|
|
2840
|
-
// with `transform` on a v4 host and are REPLACED by it on a v3 one,
|
|
2841
|
-
// so on v3 the animation ate the gap and the surface snapped 4px at
|
|
2842
|
-
// the end. Same law as the centred dialog card — see motion.ts.
|
|
2843
|
-
position === "popper" && POPPER_OFFSET,
|
|
2948
|
+
position === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
|
|
2844
2949
|
className
|
|
2845
2950
|
),
|
|
2846
2951
|
position,
|
|
2847
2952
|
...props,
|
|
2848
2953
|
children: [
|
|
2849
|
-
/* @__PURE__ */
|
|
2850
|
-
/* @__PURE__ */
|
|
2954
|
+
/* @__PURE__ */ jsx31(SelectScrollUpButton, {}),
|
|
2955
|
+
/* @__PURE__ */ jsx31(
|
|
2851
2956
|
SelectPrimitive.Viewport,
|
|
2852
2957
|
{
|
|
2853
2958
|
className: cn(
|
|
@@ -2857,14 +2962,14 @@ var SelectContent = React23.forwardRef(
|
|
|
2857
2962
|
children
|
|
2858
2963
|
}
|
|
2859
2964
|
),
|
|
2860
|
-
/* @__PURE__ */
|
|
2965
|
+
/* @__PURE__ */ jsx31(SelectScrollDownButton, {})
|
|
2861
2966
|
]
|
|
2862
2967
|
}
|
|
2863
2968
|
) });
|
|
2864
2969
|
}
|
|
2865
2970
|
);
|
|
2866
2971
|
SelectContent.displayName = SelectPrimitive.Content.displayName;
|
|
2867
|
-
var SelectLabel =
|
|
2972
|
+
var SelectLabel = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx31(
|
|
2868
2973
|
SelectPrimitive.Label,
|
|
2869
2974
|
{
|
|
2870
2975
|
ref,
|
|
@@ -2873,7 +2978,7 @@ var SelectLabel = React23.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
2873
2978
|
}
|
|
2874
2979
|
));
|
|
2875
2980
|
SelectLabel.displayName = SelectPrimitive.Label.displayName;
|
|
2876
|
-
var SelectItem =
|
|
2981
|
+
var SelectItem = React24.forwardRef(({ className, children, description, ...props }, ref) => /* @__PURE__ */ jsxs17(
|
|
2877
2982
|
SelectPrimitive.Item,
|
|
2878
2983
|
{
|
|
2879
2984
|
ref,
|
|
@@ -2884,14 +2989,14 @@ var SelectItem = React23.forwardRef(({ className, children, description, ...prop
|
|
|
2884
2989
|
),
|
|
2885
2990
|
...props,
|
|
2886
2991
|
children: [
|
|
2887
|
-
/* @__PURE__ */
|
|
2888
|
-
/* @__PURE__ */
|
|
2889
|
-
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
|
|
2890
2995
|
]
|
|
2891
2996
|
}
|
|
2892
2997
|
));
|
|
2893
2998
|
SelectItem.displayName = SelectPrimitive.Item.displayName;
|
|
2894
|
-
var SelectSeparator =
|
|
2999
|
+
var SelectSeparator = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx31(
|
|
2895
3000
|
SelectPrimitive.Separator,
|
|
2896
3001
|
{
|
|
2897
3002
|
ref,
|
|
@@ -2903,9 +3008,9 @@ SelectSeparator.displayName = SelectPrimitive.Separator.displayName;
|
|
|
2903
3008
|
|
|
2904
3009
|
// src/separator.tsx
|
|
2905
3010
|
import * as SeparatorPrimitive from "@radix-ui/react-separator";
|
|
2906
|
-
import * as
|
|
2907
|
-
import { jsx as
|
|
2908
|
-
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(
|
|
2909
3014
|
SeparatorPrimitive.Root,
|
|
2910
3015
|
{
|
|
2911
3016
|
ref,
|
|
@@ -2925,11 +3030,11 @@ Separator4.displayName = SeparatorPrimitive.Root.displayName;
|
|
|
2925
3030
|
import * as SheetPrimitive from "@radix-ui/react-dialog";
|
|
2926
3031
|
import { treeContainsComponent as treeContainsComponent4 } from "@ai-matrx/kit/react-tree";
|
|
2927
3032
|
import { cva as cva5 } from "class-variance-authority";
|
|
2928
|
-
import * as
|
|
2929
|
-
import { jsx as
|
|
2930
|
-
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) => {
|
|
2931
3036
|
const isModal = useRadixDialogModal();
|
|
2932
|
-
return /* @__PURE__ */
|
|
3037
|
+
return /* @__PURE__ */ jsx33(
|
|
2933
3038
|
SheetPrimitive.Content,
|
|
2934
3039
|
{
|
|
2935
3040
|
...props,
|
|
@@ -2939,15 +3044,15 @@ var SheetContentBase = React25.forwardRef(({ ...props }, ref) => {
|
|
|
2939
3044
|
);
|
|
2940
3045
|
});
|
|
2941
3046
|
SheetContentBase.displayName = "SheetContentBase";
|
|
2942
|
-
var Sheet =
|
|
3047
|
+
var Sheet = React26.forwardRef(({ children, ...props }, _ref) => {
|
|
2943
3048
|
const modal = props.modal ?? true;
|
|
2944
|
-
return /* @__PURE__ */
|
|
3049
|
+
return /* @__PURE__ */ jsx33(RadixDialogModalProvider, { modal, children: /* @__PURE__ */ jsx33(SheetPrimitive.Root, { ...props, modal, children }) });
|
|
2945
3050
|
});
|
|
2946
3051
|
Sheet.displayName = "Sheet";
|
|
2947
3052
|
var SheetTrigger = SheetPrimitive.Trigger;
|
|
2948
3053
|
var SheetClose = SheetPrimitive.Close;
|
|
2949
3054
|
var SheetPortal = SheetPrimitive.Portal;
|
|
2950
|
-
var SheetOverlay =
|
|
3055
|
+
var SheetOverlay = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx33(
|
|
2951
3056
|
SheetPrimitive.Overlay,
|
|
2952
3057
|
{
|
|
2953
3058
|
className: cn(
|
|
@@ -2984,7 +3089,7 @@ var sheetVariants = cva5(
|
|
|
2984
3089
|
}
|
|
2985
3090
|
}
|
|
2986
3091
|
);
|
|
2987
|
-
var SheetDescription =
|
|
3092
|
+
var SheetDescription = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx33(
|
|
2988
3093
|
SheetPrimitive.Description,
|
|
2989
3094
|
{
|
|
2990
3095
|
ref,
|
|
@@ -2993,7 +3098,7 @@ var SheetDescription = React25.forwardRef(({ className, ...props }, ref) => /* @
|
|
|
2993
3098
|
}
|
|
2994
3099
|
));
|
|
2995
3100
|
SheetDescription.displayName = SheetPrimitive.Description.displayName;
|
|
2996
|
-
var SheetContent =
|
|
3101
|
+
var SheetContent = React26.forwardRef(
|
|
2997
3102
|
({
|
|
2998
3103
|
side = "right",
|
|
2999
3104
|
className,
|
|
@@ -3005,9 +3110,9 @@ var SheetContent = React25.forwardRef(
|
|
|
3005
3110
|
...props
|
|
3006
3111
|
}, ref) => {
|
|
3007
3112
|
const hasDescription = treeContainsComponent4(children, SheetDescription) || treeContainsComponent4(children, SheetPrimitive.Description);
|
|
3008
|
-
return /* @__PURE__ */
|
|
3009
|
-
!hideOverlay && /* @__PURE__ */
|
|
3010
|
-
/* @__PURE__ */
|
|
3113
|
+
return /* @__PURE__ */ jsxs18(SheetPortal, { children: [
|
|
3114
|
+
!hideOverlay && /* @__PURE__ */ jsx33(SheetOverlay, { className: overlayClassName }),
|
|
3115
|
+
/* @__PURE__ */ jsxs18(
|
|
3011
3116
|
SheetContentBase,
|
|
3012
3117
|
{
|
|
3013
3118
|
ref,
|
|
@@ -3019,9 +3124,9 @@ var SheetContent = React25.forwardRef(
|
|
|
3019
3124
|
...hasDescription ? {} : { "aria-describedby": void 0 },
|
|
3020
3125
|
...props,
|
|
3021
3126
|
children: [
|
|
3022
|
-
!hideCloseButton && /* @__PURE__ */
|
|
3023
|
-
/* @__PURE__ */
|
|
3024
|
-
/* @__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" })
|
|
3025
3130
|
] }),
|
|
3026
3131
|
children
|
|
3027
3132
|
]
|
|
@@ -3034,7 +3139,7 @@ SheetContent.displayName = SheetPrimitive.Content.displayName;
|
|
|
3034
3139
|
var SheetHeader = ({
|
|
3035
3140
|
className,
|
|
3036
3141
|
...props
|
|
3037
|
-
}) => /* @__PURE__ */
|
|
3142
|
+
}) => /* @__PURE__ */ jsx33(
|
|
3038
3143
|
"div",
|
|
3039
3144
|
{
|
|
3040
3145
|
className: cn(
|
|
@@ -3048,7 +3153,7 @@ SheetHeader.displayName = "SheetHeader";
|
|
|
3048
3153
|
var SheetFooter = ({
|
|
3049
3154
|
className,
|
|
3050
3155
|
...props
|
|
3051
|
-
}) => /* @__PURE__ */
|
|
3156
|
+
}) => /* @__PURE__ */ jsx33(
|
|
3052
3157
|
"div",
|
|
3053
3158
|
{
|
|
3054
3159
|
className: cn(
|
|
@@ -3059,7 +3164,7 @@ var SheetFooter = ({
|
|
|
3059
3164
|
}
|
|
3060
3165
|
);
|
|
3061
3166
|
SheetFooter.displayName = "SheetFooter";
|
|
3062
|
-
var SheetTitle =
|
|
3167
|
+
var SheetTitle = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx33(
|
|
3063
3168
|
SheetPrimitive.Title,
|
|
3064
3169
|
{
|
|
3065
3170
|
ref,
|
|
@@ -3070,9 +3175,9 @@ var SheetTitle = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
3070
3175
|
SheetTitle.displayName = SheetPrimitive.Title.displayName;
|
|
3071
3176
|
|
|
3072
3177
|
// src/skeleton.tsx
|
|
3073
|
-
import { jsx as
|
|
3178
|
+
import { jsx as jsx34 } from "react/jsx-runtime";
|
|
3074
3179
|
function Skeleton({ className, animated = true, ...props }) {
|
|
3075
|
-
return /* @__PURE__ */
|
|
3180
|
+
return /* @__PURE__ */ jsx34(
|
|
3076
3181
|
"div",
|
|
3077
3182
|
{
|
|
3078
3183
|
"data-slot": "skeleton",
|
|
@@ -3088,8 +3193,8 @@ function Skeleton({ className, animated = true, ...props }) {
|
|
|
3088
3193
|
|
|
3089
3194
|
// src/switch.tsx
|
|
3090
3195
|
import * as SwitchPrimitives from "@radix-ui/react-switch";
|
|
3091
|
-
import * as
|
|
3092
|
-
import { jsx as
|
|
3196
|
+
import * as React27 from "react";
|
|
3197
|
+
import { jsx as jsx35 } from "react/jsx-runtime";
|
|
3093
3198
|
var SWITCH_SIZES = {
|
|
3094
3199
|
sm: {
|
|
3095
3200
|
root: "h-4 w-9 border-border data-[state=unchecked]:bg-input",
|
|
@@ -3100,7 +3205,7 @@ var SWITCH_SIZES = {
|
|
|
3100
3205
|
thumb: "h-4 w-4 data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0"
|
|
3101
3206
|
}
|
|
3102
3207
|
};
|
|
3103
|
-
var Switch =
|
|
3208
|
+
var Switch = React27.forwardRef(({ className, size = "md", ...props }, ref) => /* @__PURE__ */ jsx35(
|
|
3104
3209
|
SwitchPrimitives.Root,
|
|
3105
3210
|
{
|
|
3106
3211
|
ref,
|
|
@@ -3111,7 +3216,7 @@ var Switch = React26.forwardRef(({ className, size = "md", ...props }, ref) => /
|
|
|
3111
3216
|
className
|
|
3112
3217
|
),
|
|
3113
3218
|
...props,
|
|
3114
|
-
children: /* @__PURE__ */
|
|
3219
|
+
children: /* @__PURE__ */ jsx35(
|
|
3115
3220
|
SwitchPrimitives.Thumb,
|
|
3116
3221
|
{
|
|
3117
3222
|
"data-slot": "switch-thumb",
|
|
@@ -3126,30 +3231,30 @@ var Switch = React26.forwardRef(({ className, size = "md", ...props }, ref) => /
|
|
|
3126
3231
|
Switch.displayName = SwitchPrimitives.Root.displayName;
|
|
3127
3232
|
|
|
3128
3233
|
// src/tabbed-bottom-sheet.tsx
|
|
3129
|
-
import { useState as
|
|
3130
|
-
import { jsx as
|
|
3234
|
+
import { useState as useState7 } from "react";
|
|
3235
|
+
import { jsx as jsx36, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
3131
3236
|
function TabbedBottomSheet({
|
|
3132
3237
|
open,
|
|
3133
3238
|
onOpenChange,
|
|
3134
3239
|
title,
|
|
3135
3240
|
tabs
|
|
3136
3241
|
}) {
|
|
3137
|
-
const [selectedTabId, setSelectedTabId] =
|
|
3138
|
-
const [wasOpen, setWasOpen] =
|
|
3242
|
+
const [selectedTabId, setSelectedTabId] = useState7(null);
|
|
3243
|
+
const [wasOpen, setWasOpen] = useState7(open);
|
|
3139
3244
|
if (open !== wasOpen) {
|
|
3140
3245
|
setWasOpen(open);
|
|
3141
3246
|
if (open) setSelectedTabId(null);
|
|
3142
3247
|
}
|
|
3143
3248
|
const selectedTab = selectedTabId ? tabs.find((tab) => tab.id === selectedTabId) : null;
|
|
3144
|
-
return /* @__PURE__ */
|
|
3249
|
+
return /* @__PURE__ */ jsx36(
|
|
3145
3250
|
BottomSheet,
|
|
3146
3251
|
{
|
|
3147
3252
|
open,
|
|
3148
3253
|
onOpenChange,
|
|
3149
3254
|
title,
|
|
3150
3255
|
size: "full",
|
|
3151
|
-
children: /* @__PURE__ */
|
|
3152
|
-
/* @__PURE__ */
|
|
3256
|
+
children: /* @__PURE__ */ jsxs19("div", { className: "matrx-mobile-sheet flex min-h-0 flex-1 flex-col", children: [
|
|
3257
|
+
/* @__PURE__ */ jsx36(
|
|
3153
3258
|
BottomSheetHeader,
|
|
3154
3259
|
{
|
|
3155
3260
|
title: selectedTab ? selectedTab.label : title,
|
|
@@ -3157,19 +3262,19 @@ function TabbedBottomSheet({
|
|
|
3157
3262
|
onBack: () => setSelectedTabId(null)
|
|
3158
3263
|
}
|
|
3159
3264
|
),
|
|
3160
|
-
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) => {
|
|
3161
3266
|
const Icon2 = tab.icon;
|
|
3162
|
-
return /* @__PURE__ */
|
|
3267
|
+
return /* @__PURE__ */ jsx36("li", { children: /* @__PURE__ */ jsxs19(
|
|
3163
3268
|
"button",
|
|
3164
3269
|
{
|
|
3165
3270
|
type: "button",
|
|
3166
3271
|
onClick: () => setSelectedTabId(tab.id),
|
|
3167
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",
|
|
3168
3273
|
children: [
|
|
3169
|
-
Icon2 ? /* @__PURE__ */
|
|
3170
|
-
/* @__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 }),
|
|
3171
3276
|
tab.trailing,
|
|
3172
|
-
/* @__PURE__ */
|
|
3277
|
+
/* @__PURE__ */ jsx36(ChevronRightIcon, { className: "h-5 w-5 shrink-0 text-muted-foreground" })
|
|
3173
3278
|
]
|
|
3174
3279
|
}
|
|
3175
3280
|
) }, tab.id);
|
|
@@ -3180,19 +3285,19 @@ function TabbedBottomSheet({
|
|
|
3180
3285
|
}
|
|
3181
3286
|
|
|
3182
3287
|
// src/table.tsx
|
|
3183
|
-
import * as
|
|
3184
|
-
import { jsx as
|
|
3288
|
+
import * as React28 from "react";
|
|
3289
|
+
import { jsx as jsx37 } from "react/jsx-runtime";
|
|
3185
3290
|
var TABLE_SIZES = {
|
|
3186
3291
|
sm: { head: "px-2", cell: "p-2" },
|
|
3187
3292
|
md: { head: "px-3", cell: "p-3" }
|
|
3188
3293
|
};
|
|
3189
|
-
var TableSizeContext =
|
|
3294
|
+
var TableSizeContext = React28.createContext("md");
|
|
3190
3295
|
function useTableSize() {
|
|
3191
|
-
return
|
|
3296
|
+
return React28.useContext(TableSizeContext);
|
|
3192
3297
|
}
|
|
3193
|
-
var Table =
|
|
3298
|
+
var Table = React28.forwardRef(
|
|
3194
3299
|
({ className, size = "md", wrap = true, wrapperClassName, ...props }, ref) => {
|
|
3195
|
-
const table = /* @__PURE__ */
|
|
3300
|
+
const table = /* @__PURE__ */ jsx37(
|
|
3196
3301
|
"table",
|
|
3197
3302
|
{
|
|
3198
3303
|
ref,
|
|
@@ -3202,7 +3307,7 @@ var Table = React27.forwardRef(
|
|
|
3202
3307
|
...props
|
|
3203
3308
|
}
|
|
3204
3309
|
);
|
|
3205
|
-
return /* @__PURE__ */
|
|
3310
|
+
return /* @__PURE__ */ jsx37(TableSizeContext.Provider, { value: size, children: wrap ? /* @__PURE__ */ jsx37(
|
|
3206
3311
|
"div",
|
|
3207
3312
|
{
|
|
3208
3313
|
"data-slot": "table-wrapper",
|
|
@@ -3213,7 +3318,7 @@ var Table = React27.forwardRef(
|
|
|
3213
3318
|
}
|
|
3214
3319
|
);
|
|
3215
3320
|
Table.displayName = "Table";
|
|
3216
|
-
var TableHeader =
|
|
3321
|
+
var TableHeader = React28.forwardRef(({ className, sticky = false, ...props }, ref) => /* @__PURE__ */ jsx37(
|
|
3217
3322
|
"thead",
|
|
3218
3323
|
{
|
|
3219
3324
|
ref,
|
|
@@ -3227,7 +3332,7 @@ var TableHeader = React27.forwardRef(({ className, sticky = false, ...props }, r
|
|
|
3227
3332
|
}
|
|
3228
3333
|
));
|
|
3229
3334
|
TableHeader.displayName = "TableHeader";
|
|
3230
|
-
var TableBody =
|
|
3335
|
+
var TableBody = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx37(
|
|
3231
3336
|
"tbody",
|
|
3232
3337
|
{
|
|
3233
3338
|
ref,
|
|
@@ -3237,7 +3342,7 @@ var TableBody = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE_
|
|
|
3237
3342
|
}
|
|
3238
3343
|
));
|
|
3239
3344
|
TableBody.displayName = "TableBody";
|
|
3240
|
-
var TableFooter =
|
|
3345
|
+
var TableFooter = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx37(
|
|
3241
3346
|
"tfoot",
|
|
3242
3347
|
{
|
|
3243
3348
|
ref,
|
|
@@ -3250,7 +3355,7 @@ var TableFooter = React27.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
3250
3355
|
}
|
|
3251
3356
|
));
|
|
3252
3357
|
TableFooter.displayName = "TableFooter";
|
|
3253
|
-
var TableRow =
|
|
3358
|
+
var TableRow = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx37(
|
|
3254
3359
|
"tr",
|
|
3255
3360
|
{
|
|
3256
3361
|
ref,
|
|
@@ -3263,9 +3368,9 @@ var TableRow = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
3263
3368
|
}
|
|
3264
3369
|
));
|
|
3265
3370
|
TableRow.displayName = "TableRow";
|
|
3266
|
-
var TableHead =
|
|
3371
|
+
var TableHead = React28.forwardRef(({ className, ...props }, ref) => {
|
|
3267
3372
|
const size = useTableSize();
|
|
3268
|
-
return /* @__PURE__ */
|
|
3373
|
+
return /* @__PURE__ */ jsx37(
|
|
3269
3374
|
"th",
|
|
3270
3375
|
{
|
|
3271
3376
|
ref,
|
|
@@ -3280,9 +3385,9 @@ var TableHead = React27.forwardRef(({ className, ...props }, ref) => {
|
|
|
3280
3385
|
);
|
|
3281
3386
|
});
|
|
3282
3387
|
TableHead.displayName = "TableHead";
|
|
3283
|
-
var TableCell =
|
|
3388
|
+
var TableCell = React28.forwardRef(({ className, ...props }, ref) => {
|
|
3284
3389
|
const size = useTableSize();
|
|
3285
|
-
return /* @__PURE__ */
|
|
3390
|
+
return /* @__PURE__ */ jsx37(
|
|
3286
3391
|
"td",
|
|
3287
3392
|
{
|
|
3288
3393
|
ref,
|
|
@@ -3297,7 +3402,7 @@ var TableCell = React27.forwardRef(({ className, ...props }, ref) => {
|
|
|
3297
3402
|
);
|
|
3298
3403
|
});
|
|
3299
3404
|
TableCell.displayName = "TableCell";
|
|
3300
|
-
var TableCaption =
|
|
3405
|
+
var TableCaption = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx37(
|
|
3301
3406
|
"caption",
|
|
3302
3407
|
{
|
|
3303
3408
|
ref,
|
|
@@ -3310,11 +3415,11 @@ TableCaption.displayName = "TableCaption";
|
|
|
3310
3415
|
|
|
3311
3416
|
// src/tabs.tsx
|
|
3312
3417
|
import * as TabsPrimitive from "@radix-ui/react-tabs";
|
|
3313
|
-
import * as
|
|
3314
|
-
import { jsx as
|
|
3418
|
+
import * as React29 from "react";
|
|
3419
|
+
import { jsx as jsx38 } from "react/jsx-runtime";
|
|
3315
3420
|
var Tabs = TabsPrimitive.Root;
|
|
3316
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";
|
|
3317
|
-
var TabsList =
|
|
3422
|
+
var TabsList = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx38(
|
|
3318
3423
|
TabsPrimitive.List,
|
|
3319
3424
|
{
|
|
3320
3425
|
ref,
|
|
@@ -3327,7 +3432,7 @@ var TabsList = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
3327
3432
|
}
|
|
3328
3433
|
));
|
|
3329
3434
|
TabsList.displayName = TabsPrimitive.List.displayName;
|
|
3330
|
-
var TabsTrigger =
|
|
3435
|
+
var TabsTrigger = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx38(
|
|
3331
3436
|
TabsPrimitive.Trigger,
|
|
3332
3437
|
{
|
|
3333
3438
|
ref,
|
|
@@ -3341,7 +3446,7 @@ var TabsTrigger = React28.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
3341
3446
|
}
|
|
3342
3447
|
));
|
|
3343
3448
|
TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
|
|
3344
|
-
var TabsTriggerCore =
|
|
3449
|
+
var TabsTriggerCore = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx38(
|
|
3345
3450
|
TabsPrimitive.Trigger,
|
|
3346
3451
|
{
|
|
3347
3452
|
ref,
|
|
@@ -3351,7 +3456,7 @@ var TabsTriggerCore = React28.forwardRef(({ className, ...props }, ref) => /* @_
|
|
|
3351
3456
|
}
|
|
3352
3457
|
));
|
|
3353
3458
|
TabsTriggerCore.displayName = TabsPrimitive.Trigger.displayName;
|
|
3354
|
-
var TabsContent =
|
|
3459
|
+
var TabsContent = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx38(
|
|
3355
3460
|
TabsPrimitive.Content,
|
|
3356
3461
|
{
|
|
3357
3462
|
ref,
|
|
@@ -3367,8 +3472,8 @@ var TabsContent = React28.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
3367
3472
|
TabsContent.displayName = TabsPrimitive.Content.displayName;
|
|
3368
3473
|
|
|
3369
3474
|
// src/textarea.tsx
|
|
3370
|
-
import * as
|
|
3371
|
-
import { jsx as
|
|
3475
|
+
import * as React30 from "react";
|
|
3476
|
+
import { jsx as jsx39, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
3372
3477
|
var FILL_HEIGHT_REGEX = /(?:^|\s)(h-full|h-dvh|flex-1|grow)(?:\s|$)/;
|
|
3373
3478
|
var FILL_WIDTH_REGEX = /(?:^|\s)(w-full|w-screen)(?:\s|$)/;
|
|
3374
3479
|
function getStretchClasses(className) {
|
|
@@ -3381,7 +3486,7 @@ function getStretchClasses(className) {
|
|
|
3381
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";
|
|
3382
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";
|
|
3383
3488
|
function useAutoGrow(ref, value, autoGrow = false, minHeight, maxHeight) {
|
|
3384
|
-
|
|
3489
|
+
React30.useEffect(() => {
|
|
3385
3490
|
if (!autoGrow || !ref.current) return;
|
|
3386
3491
|
const textarea = ref.current;
|
|
3387
3492
|
textarea.style.height = "auto";
|
|
@@ -3397,8 +3502,8 @@ function useAutoGrow(ref, value, autoGrow = false, minHeight, maxHeight) {
|
|
|
3397
3502
|
}, [value, autoGrow, minHeight, maxHeight, ref]);
|
|
3398
3503
|
}
|
|
3399
3504
|
function useMergedTextareaRef(forwarded) {
|
|
3400
|
-
const internal =
|
|
3401
|
-
const callback =
|
|
3505
|
+
const internal = React30.useRef(null);
|
|
3506
|
+
const callback = React30.useCallback(
|
|
3402
3507
|
(node) => {
|
|
3403
3508
|
internal.current = node;
|
|
3404
3509
|
if (typeof forwarded === "function") forwarded(node);
|
|
@@ -3415,13 +3520,13 @@ function boxStyle(minHeight, maxHeight) {
|
|
|
3415
3520
|
maxHeight: maxHeight ? `${maxHeight}px` : void 0
|
|
3416
3521
|
};
|
|
3417
3522
|
}
|
|
3418
|
-
var Textarea =
|
|
3523
|
+
var Textarea = React30.forwardRef(
|
|
3419
3524
|
({ className, autoGrow, minHeight, maxHeight, wrapperClassName, ...props }, forwarded) => {
|
|
3420
3525
|
const { ref, callback } = useMergedTextareaRef(forwarded);
|
|
3421
3526
|
const stretchClasses = getStretchClasses(className);
|
|
3422
3527
|
const needsWrapper = Boolean(wrapperClassName || stretchClasses);
|
|
3423
3528
|
useAutoGrow(ref, props.value, autoGrow, minHeight, maxHeight);
|
|
3424
|
-
const textarea = /* @__PURE__ */
|
|
3529
|
+
const textarea = /* @__PURE__ */ jsx39(
|
|
3425
3530
|
"textarea",
|
|
3426
3531
|
{
|
|
3427
3532
|
ref: callback,
|
|
@@ -3437,15 +3542,15 @@ var Textarea = React29.forwardRef(
|
|
|
3437
3542
|
}
|
|
3438
3543
|
);
|
|
3439
3544
|
if (!needsWrapper) return textarea;
|
|
3440
|
-
return /* @__PURE__ */
|
|
3545
|
+
return /* @__PURE__ */ jsx39("div", { className: cn(stretchClasses, wrapperClassName), children: textarea });
|
|
3441
3546
|
}
|
|
3442
3547
|
);
|
|
3443
3548
|
Textarea.displayName = "Textarea";
|
|
3444
|
-
var BasicTextarea =
|
|
3549
|
+
var BasicTextarea = React30.forwardRef(
|
|
3445
3550
|
({ className, autoGrow, minHeight, maxHeight, ...props }, forwarded) => {
|
|
3446
3551
|
const { ref, callback } = useMergedTextareaRef(forwarded);
|
|
3447
3552
|
useAutoGrow(ref, props.value, autoGrow, minHeight, maxHeight);
|
|
3448
|
-
return /* @__PURE__ */
|
|
3553
|
+
return /* @__PURE__ */ jsx39(
|
|
3449
3554
|
"textarea",
|
|
3450
3555
|
{
|
|
3451
3556
|
ref: callback,
|
|
@@ -3463,7 +3568,7 @@ var BasicTextarea = React29.forwardRef(
|
|
|
3463
3568
|
}
|
|
3464
3569
|
);
|
|
3465
3570
|
BasicTextarea.displayName = "BasicTextarea";
|
|
3466
|
-
var TextareaWithPrefix =
|
|
3571
|
+
var TextareaWithPrefix = React30.forwardRef(
|
|
3467
3572
|
({
|
|
3468
3573
|
prefix,
|
|
3469
3574
|
className,
|
|
@@ -3475,13 +3580,13 @@ var TextareaWithPrefix = React29.forwardRef(
|
|
|
3475
3580
|
}, forwarded) => {
|
|
3476
3581
|
const { ref, callback } = useMergedTextareaRef(forwarded);
|
|
3477
3582
|
useAutoGrow(ref, props.value, autoGrow, minHeight, maxHeight);
|
|
3478
|
-
return /* @__PURE__ */
|
|
3583
|
+
return /* @__PURE__ */ jsxs20(
|
|
3479
3584
|
"div",
|
|
3480
3585
|
{
|
|
3481
3586
|
className: cn("relative", getStretchClasses(className), wrapperClassName),
|
|
3482
3587
|
children: [
|
|
3483
|
-
prefix ? /* @__PURE__ */
|
|
3484
|
-
/* @__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(
|
|
3485
3590
|
"textarea",
|
|
3486
3591
|
{
|
|
3487
3592
|
ref: callback,
|
|
@@ -3505,16 +3610,16 @@ var TextareaWithPrefix = React29.forwardRef(
|
|
|
3505
3610
|
TextareaWithPrefix.displayName = "TextareaWithPrefix";
|
|
3506
3611
|
|
|
3507
3612
|
// src/use-scroll-fade.ts
|
|
3508
|
-
import { useCallback as
|
|
3613
|
+
import { useCallback as useCallback5, useEffect as useEffect5, useRef as useRef6, useState as useState8 } from "react";
|
|
3509
3614
|
var EPSILON = 2;
|
|
3510
3615
|
function useScrollFade() {
|
|
3511
|
-
const [state, setState] =
|
|
3616
|
+
const [state, setState] = useState8({
|
|
3512
3617
|
top: false,
|
|
3513
3618
|
bottom: false
|
|
3514
3619
|
});
|
|
3515
|
-
const nodeRef =
|
|
3516
|
-
const cleanupRef =
|
|
3517
|
-
const measure =
|
|
3620
|
+
const nodeRef = useRef6(null);
|
|
3621
|
+
const cleanupRef = useRef6(null);
|
|
3622
|
+
const measure = useCallback5(() => {
|
|
3518
3623
|
const el = nodeRef.current;
|
|
3519
3624
|
if (!el) return;
|
|
3520
3625
|
const overflowing = el.scrollHeight - el.clientHeight > EPSILON;
|
|
@@ -3526,7 +3631,7 @@ function useScrollFade() {
|
|
|
3526
3631
|
(prev) => prev.top === next.top && prev.bottom === next.bottom ? prev : next
|
|
3527
3632
|
);
|
|
3528
3633
|
}, []);
|
|
3529
|
-
const ref =
|
|
3634
|
+
const ref = useCallback5(
|
|
3530
3635
|
(node) => {
|
|
3531
3636
|
cleanupRef.current?.();
|
|
3532
3637
|
cleanupRef.current = null;
|
|
@@ -3546,7 +3651,7 @@ function useScrollFade() {
|
|
|
3546
3651
|
},
|
|
3547
3652
|
[measure]
|
|
3548
3653
|
);
|
|
3549
|
-
|
|
3654
|
+
useEffect5(() => () => cleanupRef.current?.(), []);
|
|
3550
3655
|
return {
|
|
3551
3656
|
ref,
|
|
3552
3657
|
state,
|
|
@@ -3560,14 +3665,14 @@ function useScrollFade() {
|
|
|
3560
3665
|
|
|
3561
3666
|
// src/hover-card.tsx
|
|
3562
3667
|
import * as HoverCardPrimitive from "@radix-ui/react-hover-card";
|
|
3563
|
-
import * as
|
|
3564
|
-
import { jsx as
|
|
3668
|
+
import * as React31 from "react";
|
|
3669
|
+
import { jsx as jsx40 } from "react/jsx-runtime";
|
|
3565
3670
|
var HoverCard = HoverCardPrimitive.Root;
|
|
3566
3671
|
var HoverCardTrigger = HoverCardPrimitive.Trigger;
|
|
3567
|
-
var HoverCardContent =
|
|
3672
|
+
var HoverCardContent = React31.forwardRef(
|
|
3568
3673
|
({ className, align = "center", sideOffset = 4, container, animated = true, ...props }, ref) => {
|
|
3569
3674
|
const resolved = usePortalContainer(container);
|
|
3570
|
-
return /* @__PURE__ */
|
|
3675
|
+
return /* @__PURE__ */ jsx40(HoverCardPrimitive.Portal, { container: resolved ?? null, children: /* @__PURE__ */ jsx40(
|
|
3571
3676
|
HoverCardPrimitive.Content,
|
|
3572
3677
|
{
|
|
3573
3678
|
ref,
|
|
@@ -3588,9 +3693,9 @@ HoverCardContent.displayName = HoverCardPrimitive.Content.displayName;
|
|
|
3588
3693
|
|
|
3589
3694
|
// src/radio-group.tsx
|
|
3590
3695
|
import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
|
|
3591
|
-
import * as
|
|
3592
|
-
import { jsx as
|
|
3593
|
-
var RadioGroupSizeContext =
|
|
3696
|
+
import * as React32 from "react";
|
|
3697
|
+
import { jsx as jsx41 } from "react/jsx-runtime";
|
|
3698
|
+
var RadioGroupSizeContext = React32.createContext("md");
|
|
3594
3699
|
var CONTROL_CLASSES = {
|
|
3595
3700
|
sm: "h-3.5 w-3.5",
|
|
3596
3701
|
md: "h-4 w-4",
|
|
@@ -3601,7 +3706,7 @@ var DOT_CLASSES = {
|
|
|
3601
3706
|
md: "h-1.5 w-1.5",
|
|
3602
3707
|
lg: "h-2 w-2"
|
|
3603
3708
|
};
|
|
3604
|
-
var RadioGroup3 =
|
|
3709
|
+
var RadioGroup3 = React32.forwardRef(({ className, size = "md", ...props }, ref) => /* @__PURE__ */ jsx41(RadioGroupSizeContext.Provider, { value: size, children: /* @__PURE__ */ jsx41(
|
|
3605
3710
|
RadioGroupPrimitive.Root,
|
|
3606
3711
|
{
|
|
3607
3712
|
ref,
|
|
@@ -3611,10 +3716,10 @@ var RadioGroup3 = React31.forwardRef(({ className, size = "md", ...props }, ref)
|
|
|
3611
3716
|
}
|
|
3612
3717
|
) }));
|
|
3613
3718
|
RadioGroup3.displayName = RadioGroupPrimitive.Root.displayName;
|
|
3614
|
-
var RadioGroupItem =
|
|
3615
|
-
const groupSize =
|
|
3719
|
+
var RadioGroupItem = React32.forwardRef(({ className, size, ...props }, ref) => {
|
|
3720
|
+
const groupSize = React32.useContext(RadioGroupSizeContext);
|
|
3616
3721
|
const resolved = size ?? groupSize;
|
|
3617
|
-
return /* @__PURE__ */
|
|
3722
|
+
return /* @__PURE__ */ jsx41(
|
|
3618
3723
|
RadioGroupPrimitive.Item,
|
|
3619
3724
|
{
|
|
3620
3725
|
ref,
|
|
@@ -3631,7 +3736,7 @@ var RadioGroupItem = React31.forwardRef(({ className, size, ...props }, ref) =>
|
|
|
3631
3736
|
className
|
|
3632
3737
|
),
|
|
3633
3738
|
...props,
|
|
3634
|
-
children: /* @__PURE__ */
|
|
3739
|
+
children: /* @__PURE__ */ jsx41(RadioGroupPrimitive.Indicator, { className: "flex items-center justify-center", children: /* @__PURE__ */ jsx41(
|
|
3635
3740
|
"div",
|
|
3636
3741
|
{
|
|
3637
3742
|
className: cn("rounded-full bg-primary-foreground", DOT_CLASSES[resolved])
|
|
@@ -3644,7 +3749,7 @@ RadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;
|
|
|
3644
3749
|
|
|
3645
3750
|
// src/resizable.tsx
|
|
3646
3751
|
import { Group as Group4, Panel, Separator as Separator5 } from "react-resizable-panels";
|
|
3647
|
-
import { jsx as
|
|
3752
|
+
import { jsx as jsx42 } from "react/jsx-runtime";
|
|
3648
3753
|
var HANDLE_SIZES = {
|
|
3649
3754
|
xs: "w-0.5 [&[aria-orientation=horizontal]]:h-0.5 [&[aria-orientation=horizontal]]:w-full",
|
|
3650
3755
|
sm: "w-1 [&[aria-orientation=horizontal]]:h-1 [&[aria-orientation=horizontal]]:w-full",
|
|
@@ -3658,7 +3763,7 @@ var HANDLE_SIZES = {
|
|
|
3658
3763
|
var ResizablePanelGroup = ({
|
|
3659
3764
|
className,
|
|
3660
3765
|
...props
|
|
3661
|
-
}) => /* @__PURE__ */
|
|
3766
|
+
}) => /* @__PURE__ */ jsx42(
|
|
3662
3767
|
Group4,
|
|
3663
3768
|
{
|
|
3664
3769
|
"data-slot": "resizable-group",
|
|
@@ -3673,7 +3778,7 @@ var ResizableHandle = ({
|
|
|
3673
3778
|
size = "xs",
|
|
3674
3779
|
className,
|
|
3675
3780
|
...props
|
|
3676
|
-
}) => /* @__PURE__ */
|
|
3781
|
+
}) => /* @__PURE__ */ jsx42(
|
|
3677
3782
|
Separator5,
|
|
3678
3783
|
{
|
|
3679
3784
|
"data-slot": "resizable-handle",
|
|
@@ -3693,15 +3798,15 @@ var ResizableHandle = ({
|
|
|
3693
3798
|
className
|
|
3694
3799
|
),
|
|
3695
3800
|
...props,
|
|
3696
|
-
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
|
|
3697
3802
|
}
|
|
3698
3803
|
);
|
|
3699
3804
|
ResizableHandle.displayName = "ResizableHandle";
|
|
3700
3805
|
|
|
3701
3806
|
// src/slider.tsx
|
|
3702
3807
|
import * as SliderPrimitive from "@radix-ui/react-slider";
|
|
3703
|
-
import * as
|
|
3704
|
-
import { jsx as
|
|
3808
|
+
import * as React33 from "react";
|
|
3809
|
+
import { jsx as jsx43, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
3705
3810
|
var TRACK_CLASSES = {
|
|
3706
3811
|
sm: "h-1",
|
|
3707
3812
|
md: "h-1.5",
|
|
@@ -3712,12 +3817,12 @@ var THUMB_CLASSES = {
|
|
|
3712
3817
|
md: "h-4 w-4",
|
|
3713
3818
|
lg: "h-5 w-5"
|
|
3714
3819
|
};
|
|
3715
|
-
var Slider =
|
|
3820
|
+
var Slider = React33.forwardRef(({ className, size = "md", ...props }, ref) => {
|
|
3716
3821
|
const thumbCount = Math.max(
|
|
3717
3822
|
1,
|
|
3718
3823
|
(props.value ?? props.defaultValue ?? [0]).length
|
|
3719
3824
|
);
|
|
3720
|
-
return /* @__PURE__ */
|
|
3825
|
+
return /* @__PURE__ */ jsxs21(
|
|
3721
3826
|
SliderPrimitive.Root,
|
|
3722
3827
|
{
|
|
3723
3828
|
ref,
|
|
@@ -3729,7 +3834,7 @@ var Slider = React32.forwardRef(({ className, size = "md", ...props }, ref) => {
|
|
|
3729
3834
|
),
|
|
3730
3835
|
...props,
|
|
3731
3836
|
children: [
|
|
3732
|
-
/* @__PURE__ */
|
|
3837
|
+
/* @__PURE__ */ jsx43(
|
|
3733
3838
|
SliderPrimitive.Track,
|
|
3734
3839
|
{
|
|
3735
3840
|
"data-slot": "slider-track",
|
|
@@ -3738,7 +3843,7 @@ var Slider = React32.forwardRef(({ className, size = "md", ...props }, ref) => {
|
|
|
3738
3843
|
TRACK_CLASSES[size],
|
|
3739
3844
|
"data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5"
|
|
3740
3845
|
),
|
|
3741
|
-
children: /* @__PURE__ */
|
|
3846
|
+
children: /* @__PURE__ */ jsx43(
|
|
3742
3847
|
SliderPrimitive.Range,
|
|
3743
3848
|
{
|
|
3744
3849
|
"data-slot": "slider-range",
|
|
@@ -3747,7 +3852,7 @@ var Slider = React32.forwardRef(({ className, size = "md", ...props }, ref) => {
|
|
|
3747
3852
|
)
|
|
3748
3853
|
}
|
|
3749
3854
|
),
|
|
3750
|
-
Array.from({ length: thumbCount }, (_, index) => /* @__PURE__ */
|
|
3855
|
+
Array.from({ length: thumbCount }, (_, index) => /* @__PURE__ */ jsx43(
|
|
3751
3856
|
SliderPrimitive.Thumb,
|
|
3752
3857
|
{
|
|
3753
3858
|
"data-slot": "slider-thumb",
|
|
@@ -3774,8 +3879,8 @@ Slider.displayName = SliderPrimitive.Root.displayName;
|
|
|
3774
3879
|
import * as ToggleGroupPrimitive from "@radix-ui/react-toggle-group";
|
|
3775
3880
|
import * as TogglePrimitive from "@radix-ui/react-toggle";
|
|
3776
3881
|
import { cva as cva6 } from "class-variance-authority";
|
|
3777
|
-
import * as
|
|
3778
|
-
import { jsx as
|
|
3882
|
+
import * as React34 from "react";
|
|
3883
|
+
import { jsx as jsx44 } from "react/jsx-runtime";
|
|
3779
3884
|
var toggleVariants = cva6(
|
|
3780
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",
|
|
3781
3886
|
{
|
|
@@ -3796,7 +3901,7 @@ var toggleVariants = cva6(
|
|
|
3796
3901
|
}
|
|
3797
3902
|
}
|
|
3798
3903
|
);
|
|
3799
|
-
var Toggle =
|
|
3904
|
+
var Toggle = React34.forwardRef(({ className, variant, size, ...props }, ref) => /* @__PURE__ */ jsx44(
|
|
3800
3905
|
TogglePrimitive.Root,
|
|
3801
3906
|
{
|
|
3802
3907
|
ref,
|
|
@@ -3806,21 +3911,21 @@ var Toggle = React33.forwardRef(({ className, variant, size, ...props }, ref) =>
|
|
|
3806
3911
|
}
|
|
3807
3912
|
));
|
|
3808
3913
|
Toggle.displayName = TogglePrimitive.Root.displayName;
|
|
3809
|
-
var ToggleGroupContext =
|
|
3810
|
-
var ToggleGroup =
|
|
3914
|
+
var ToggleGroupContext = React34.createContext({ size: "default", variant: "default" });
|
|
3915
|
+
var ToggleGroup = React34.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */ jsx44(
|
|
3811
3916
|
ToggleGroupPrimitive.Root,
|
|
3812
3917
|
{
|
|
3813
3918
|
ref,
|
|
3814
3919
|
"data-slot": "toggle-group",
|
|
3815
3920
|
className: cn("flex items-center justify-center gap-1", className),
|
|
3816
3921
|
...props,
|
|
3817
|
-
children: /* @__PURE__ */
|
|
3922
|
+
children: /* @__PURE__ */ jsx44(ToggleGroupContext.Provider, { value: { variant, size }, children })
|
|
3818
3923
|
}
|
|
3819
3924
|
));
|
|
3820
3925
|
ToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName;
|
|
3821
|
-
var ToggleGroupItem =
|
|
3822
|
-
const context =
|
|
3823
|
-
return /* @__PURE__ */
|
|
3926
|
+
var ToggleGroupItem = React34.forwardRef(({ className, children, variant, size, ...props }, ref) => {
|
|
3927
|
+
const context = React34.useContext(ToggleGroupContext);
|
|
3928
|
+
return /* @__PURE__ */ jsx44(
|
|
3824
3929
|
ToggleGroupPrimitive.Item,
|
|
3825
3930
|
{
|
|
3826
3931
|
ref,
|
|
@@ -3841,14 +3946,14 @@ ToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName;
|
|
|
3841
3946
|
|
|
3842
3947
|
// src/tooltip.tsx
|
|
3843
3948
|
import * as TooltipPrimitive from "@radix-ui/react-tooltip";
|
|
3844
|
-
import * as
|
|
3845
|
-
import { jsx as
|
|
3949
|
+
import * as React35 from "react";
|
|
3950
|
+
import { jsx as jsx45 } from "react/jsx-runtime";
|
|
3846
3951
|
var TooltipProvider = TooltipPrimitive.Provider;
|
|
3847
3952
|
var Tooltip = TooltipPrimitive.Root;
|
|
3848
3953
|
var TooltipTrigger = TooltipPrimitive.Trigger;
|
|
3849
|
-
var TooltipContent =
|
|
3954
|
+
var TooltipContent = React35.forwardRef(({ className, sideOffset = 4, container, animated = true, ...props }, ref) => {
|
|
3850
3955
|
const resolved = usePortalContainer(container);
|
|
3851
|
-
return /* @__PURE__ */
|
|
3956
|
+
return /* @__PURE__ */ jsx45(TooltipPrimitive.Portal, { container: resolved ?? null, children: /* @__PURE__ */ jsx45(
|
|
3852
3957
|
TooltipPrimitive.Content,
|
|
3853
3958
|
{
|
|
3854
3959
|
ref,
|
|
@@ -3896,7 +4001,6 @@ export {
|
|
|
3896
4001
|
BottomSheetFooter,
|
|
3897
4002
|
BottomSheetHeader,
|
|
3898
4003
|
Button,
|
|
3899
|
-
CENTERED_DIALOG,
|
|
3900
4004
|
Card,
|
|
3901
4005
|
CardAction,
|
|
3902
4006
|
CardContent,
|
|
@@ -3917,6 +4021,8 @@ export {
|
|
|
3917
4021
|
CommandList,
|
|
3918
4022
|
CommandSeparator,
|
|
3919
4023
|
CommandShortcut,
|
|
4024
|
+
ConfirmDialog,
|
|
4025
|
+
ConfirmDialogHost,
|
|
3920
4026
|
ContextMenu,
|
|
3921
4027
|
ContextMenuCheckboxItem,
|
|
3922
4028
|
ContextMenuContent,
|
|
@@ -3990,7 +4096,6 @@ export {
|
|
|
3990
4096
|
MOTION_SHEET,
|
|
3991
4097
|
MOTION_SPIN,
|
|
3992
4098
|
OverflowToolbar,
|
|
3993
|
-
POPPER_OFFSET,
|
|
3994
4099
|
Popover,
|
|
3995
4100
|
PopoverAnchor,
|
|
3996
4101
|
PopoverContent,
|