@evinvest/uikit 0.6.0 → 0.7.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/README.md +10 -2
- package/dist/index.d.ts +1 -40
- package/dist/index.js +594 -757
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/styles/tokens.css +5 -0
package/dist/index.js
CHANGED
|
@@ -1173,168 +1173,6 @@ function Footer({
|
|
|
1173
1173
|
);
|
|
1174
1174
|
}
|
|
1175
1175
|
|
|
1176
|
-
// src/components/header.tsx
|
|
1177
|
-
import * as React23 from "react";
|
|
1178
|
-
import { jsx as jsx14, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
1179
|
-
function Header({
|
|
1180
|
-
nav,
|
|
1181
|
-
cta,
|
|
1182
|
-
mobileCta,
|
|
1183
|
-
tagline = "Quy Nhon Fund",
|
|
1184
|
-
homeHref = "/",
|
|
1185
|
-
className,
|
|
1186
|
-
linkComponent,
|
|
1187
|
-
variant = "marketing",
|
|
1188
|
-
hideNav = false
|
|
1189
|
-
}) {
|
|
1190
|
-
const L = linkComponent ?? "a";
|
|
1191
|
-
const compact = variant === "compact";
|
|
1192
|
-
const [hasScrolled, setHasScrolled] = React23.useState(false);
|
|
1193
|
-
React23.useEffect(() => {
|
|
1194
|
-
if (compact) return;
|
|
1195
|
-
const handleScroll = () => setHasScrolled(window.scrollY > 50);
|
|
1196
|
-
window.addEventListener("scroll", handleScroll);
|
|
1197
|
-
return () => window.removeEventListener("scroll", handleScroll);
|
|
1198
|
-
}, [compact]);
|
|
1199
|
-
return /* @__PURE__ */ jsx14(
|
|
1200
|
-
"header",
|
|
1201
|
-
{
|
|
1202
|
-
"data-slot": "header",
|
|
1203
|
-
"data-variant": variant,
|
|
1204
|
-
className: cn(
|
|
1205
|
-
"fixed top-0 left-0 w-full z-[60] border-b",
|
|
1206
|
-
compact ? (
|
|
1207
|
-
// Fixed 4rem bar (py-3 + the 40px lockup): opaque by default so app
|
|
1208
|
-
// content beneath it never bleeds through.
|
|
1209
|
-
"h-16 bg-main-black/90 backdrop-blur-md border-main-mist/10"
|
|
1210
|
-
) : cn(
|
|
1211
|
-
"transition-all duration-500",
|
|
1212
|
-
hasScrolled ? "bg-main-black/90 backdrop-blur-md border-main-mist/10 py-4" : "bg-transparent border-transparent py-6"
|
|
1213
|
-
),
|
|
1214
|
-
className
|
|
1215
|
-
),
|
|
1216
|
-
children: /* @__PURE__ */ jsxs4(Container, { className: "flex h-full items-center justify-between gap-4", children: [
|
|
1217
|
-
/* @__PURE__ */ jsxs4(
|
|
1218
|
-
L,
|
|
1219
|
-
{
|
|
1220
|
-
href: homeHref,
|
|
1221
|
-
className: "flex items-center gap-3",
|
|
1222
|
-
"aria-label": "EV Investment \u2014 home",
|
|
1223
|
-
children: [
|
|
1224
|
-
/* @__PURE__ */ jsx14(Logo, { className: "w-10 h-10 text-white" }),
|
|
1225
|
-
/* @__PURE__ */ jsxs4("div", { className: "flex flex-col", children: [
|
|
1226
|
-
/* @__PURE__ */ jsx14("span", { className: "font-serif-display font-bold text-lg tracking-wider text-white", children: "EV INVESTMENT" }),
|
|
1227
|
-
/* @__PURE__ */ jsx14("span", { className: "text-[9px] font-mono-tech tracking-[0.3em] text-main-accent-t1 uppercase", children: tagline })
|
|
1228
|
-
] })
|
|
1229
|
-
]
|
|
1230
|
-
}
|
|
1231
|
-
),
|
|
1232
|
-
!hideNav && /* @__PURE__ */ jsx14("nav", { className: "hidden lg:flex items-center gap-6 font-mono-tech text-xs tracking-widest uppercase", children: nav.map((item) => /* @__PURE__ */ jsx14(
|
|
1233
|
-
L,
|
|
1234
|
-
{
|
|
1235
|
-
href: item.href,
|
|
1236
|
-
className: "text-main-mist/80 hover:text-main-accent-t1 transition-colors",
|
|
1237
|
-
children: item.label
|
|
1238
|
-
},
|
|
1239
|
-
item.href
|
|
1240
|
-
)) }),
|
|
1241
|
-
/* @__PURE__ */ jsxs4("div", { className: "flex items-center gap-3", children: [
|
|
1242
|
-
cta,
|
|
1243
|
-
!hideNav && /* @__PURE__ */ jsx14(MobileMenu, { nav, cta: mobileCta ?? cta, linkComponent: L })
|
|
1244
|
-
] })
|
|
1245
|
-
] })
|
|
1246
|
-
}
|
|
1247
|
-
);
|
|
1248
|
-
}
|
|
1249
|
-
function MobileMenu({
|
|
1250
|
-
nav,
|
|
1251
|
-
cta,
|
|
1252
|
-
linkComponent: L
|
|
1253
|
-
}) {
|
|
1254
|
-
const [open, setOpen] = React23.useState(false);
|
|
1255
|
-
React23.useEffect(() => {
|
|
1256
|
-
if (!open) return;
|
|
1257
|
-
document.body.style.overflow = "hidden";
|
|
1258
|
-
const onKeyDown = (e) => {
|
|
1259
|
-
if (e.key === "Escape") setOpen(false);
|
|
1260
|
-
};
|
|
1261
|
-
window.addEventListener("keydown", onKeyDown);
|
|
1262
|
-
return () => {
|
|
1263
|
-
document.body.style.overflow = "";
|
|
1264
|
-
window.removeEventListener("keydown", onKeyDown);
|
|
1265
|
-
};
|
|
1266
|
-
}, [open]);
|
|
1267
|
-
const closeOnNavigation = (e) => {
|
|
1268
|
-
if (e.target.closest("a, button")) setOpen(false);
|
|
1269
|
-
};
|
|
1270
|
-
return /* @__PURE__ */ jsxs4("div", { className: "lg:hidden", children: [
|
|
1271
|
-
/* @__PURE__ */ jsx14(
|
|
1272
|
-
"button",
|
|
1273
|
-
{
|
|
1274
|
-
type: "button",
|
|
1275
|
-
"aria-label": "Open menu",
|
|
1276
|
-
"aria-expanded": open,
|
|
1277
|
-
"aria-haspopup": "menu",
|
|
1278
|
-
onClick: () => setOpen(true),
|
|
1279
|
-
className: "flex size-10 items-center justify-center text-white",
|
|
1280
|
-
children: /* @__PURE__ */ jsx14(
|
|
1281
|
-
"svg",
|
|
1282
|
-
{
|
|
1283
|
-
className: "size-6",
|
|
1284
|
-
viewBox: "0 0 24 24",
|
|
1285
|
-
fill: "none",
|
|
1286
|
-
stroke: "currentColor",
|
|
1287
|
-
strokeWidth: 2,
|
|
1288
|
-
strokeLinecap: "round",
|
|
1289
|
-
strokeLinejoin: "round",
|
|
1290
|
-
children: /* @__PURE__ */ jsx14("path", { d: "M4 6h16M4 12h16M4 18h16" })
|
|
1291
|
-
}
|
|
1292
|
-
)
|
|
1293
|
-
}
|
|
1294
|
-
),
|
|
1295
|
-
open && /* @__PURE__ */ jsx14(Portal, { children: /* @__PURE__ */ jsxs4(
|
|
1296
|
-
"div",
|
|
1297
|
-
{
|
|
1298
|
-
onClick: closeOnNavigation,
|
|
1299
|
-
className: "fixed inset-0 z-[70] flex flex-col bg-main-black px-6 pb-10 duration-200 animate-in fade-in lg:hidden",
|
|
1300
|
-
children: [
|
|
1301
|
-
/* @__PURE__ */ jsx14("div", { className: "flex h-20 shrink-0 items-center justify-end", children: /* @__PURE__ */ jsx14(
|
|
1302
|
-
"button",
|
|
1303
|
-
{
|
|
1304
|
-
type: "button",
|
|
1305
|
-
"aria-label": "Close menu",
|
|
1306
|
-
className: "flex size-10 items-center justify-center text-white",
|
|
1307
|
-
children: /* @__PURE__ */ jsx14(
|
|
1308
|
-
"svg",
|
|
1309
|
-
{
|
|
1310
|
-
className: "size-6",
|
|
1311
|
-
viewBox: "0 0 24 24",
|
|
1312
|
-
fill: "none",
|
|
1313
|
-
stroke: "currentColor",
|
|
1314
|
-
strokeWidth: 2,
|
|
1315
|
-
strokeLinecap: "round",
|
|
1316
|
-
strokeLinejoin: "round",
|
|
1317
|
-
children: /* @__PURE__ */ jsx14("path", { d: "M18 6 6 18M6 6l12 12" })
|
|
1318
|
-
}
|
|
1319
|
-
)
|
|
1320
|
-
}
|
|
1321
|
-
) }),
|
|
1322
|
-
/* @__PURE__ */ jsx14("nav", { className: "flex flex-col font-mono-tech text-sm uppercase tracking-widest duration-300 ease-out animate-in fade-in slide-in-from-top-4", children: nav.map((item) => /* @__PURE__ */ jsx14(
|
|
1323
|
-
L,
|
|
1324
|
-
{
|
|
1325
|
-
href: item.href,
|
|
1326
|
-
className: "border-b border-main-mist/10 py-4 text-main-mist/80 transition-colors hover:text-main-accent-t1",
|
|
1327
|
-
children: item.label
|
|
1328
|
-
},
|
|
1329
|
-
item.href
|
|
1330
|
-
)) }),
|
|
1331
|
-
cta && /* @__PURE__ */ jsx14("div", { className: "mt-8 w-full block", children: cta })
|
|
1332
|
-
]
|
|
1333
|
-
}
|
|
1334
|
-
) })
|
|
1335
|
-
] });
|
|
1336
|
-
}
|
|
1337
|
-
|
|
1338
1176
|
// src/components/input.tsx
|
|
1339
1177
|
import "react";
|
|
1340
1178
|
|
|
@@ -1342,9 +1180,9 @@ import "react";
|
|
|
1342
1180
|
var INPUT_BASE = "file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 aria-invalid:border-destructive";
|
|
1343
1181
|
|
|
1344
1182
|
// src/components/input.tsx
|
|
1345
|
-
import { jsx as
|
|
1183
|
+
import { jsx as jsx14 } from "react/jsx-runtime";
|
|
1346
1184
|
function Input({ className, type, ...props }) {
|
|
1347
|
-
return /* @__PURE__ */
|
|
1185
|
+
return /* @__PURE__ */ jsx14(
|
|
1348
1186
|
"input",
|
|
1349
1187
|
{
|
|
1350
1188
|
type,
|
|
@@ -1362,9 +1200,9 @@ import "react";
|
|
|
1362
1200
|
var TEXTAREA_BASE = "border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 aria-invalid:border-destructive flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm";
|
|
1363
1201
|
|
|
1364
1202
|
// src/components/textarea.tsx
|
|
1365
|
-
import { jsx as
|
|
1203
|
+
import { jsx as jsx15 } from "react/jsx-runtime";
|
|
1366
1204
|
function Textarea({ className, ...props }) {
|
|
1367
|
-
return /* @__PURE__ */
|
|
1205
|
+
return /* @__PURE__ */ jsx15("textarea", { "data-slot": "textarea", className: cn(TEXTAREA_BASE, className), ...props });
|
|
1368
1206
|
}
|
|
1369
1207
|
|
|
1370
1208
|
// src/components/input-group.tsx
|
|
@@ -1391,12 +1229,12 @@ var INPUT_GROUP_INPUT_CONTROL = "flex-1 rounded-none border-0 bg-transparent sha
|
|
|
1391
1229
|
var INPUT_GROUP_TEXTAREA_CONTROL = "flex-1 resize-none rounded-none border-0 bg-transparent py-3 shadow-none focus-visible:ring-0";
|
|
1392
1230
|
|
|
1393
1231
|
// src/components/input-group.tsx
|
|
1394
|
-
import { jsx as
|
|
1232
|
+
import { jsx as jsx16 } from "react/jsx-runtime";
|
|
1395
1233
|
function InputGroup({
|
|
1396
1234
|
className,
|
|
1397
1235
|
...props
|
|
1398
1236
|
}) {
|
|
1399
|
-
return /* @__PURE__ */
|
|
1237
|
+
return /* @__PURE__ */ jsx16(
|
|
1400
1238
|
"div",
|
|
1401
1239
|
{
|
|
1402
1240
|
"data-slot": "input-group",
|
|
@@ -1411,7 +1249,7 @@ function InputGroupAddon({
|
|
|
1411
1249
|
align = "inline-start",
|
|
1412
1250
|
...props
|
|
1413
1251
|
}) {
|
|
1414
|
-
return /* @__PURE__ */
|
|
1252
|
+
return /* @__PURE__ */ jsx16(
|
|
1415
1253
|
"div",
|
|
1416
1254
|
{
|
|
1417
1255
|
role: "group",
|
|
@@ -1437,7 +1275,7 @@ function InputGroupButton({
|
|
|
1437
1275
|
size = "xs",
|
|
1438
1276
|
...props
|
|
1439
1277
|
}) {
|
|
1440
|
-
return /* @__PURE__ */
|
|
1278
|
+
return /* @__PURE__ */ jsx16(
|
|
1441
1279
|
Button,
|
|
1442
1280
|
{
|
|
1443
1281
|
type,
|
|
@@ -1456,7 +1294,7 @@ function InputGroupText({
|
|
|
1456
1294
|
className,
|
|
1457
1295
|
...props
|
|
1458
1296
|
}) {
|
|
1459
|
-
return /* @__PURE__ */
|
|
1297
|
+
return /* @__PURE__ */ jsx16(
|
|
1460
1298
|
"span",
|
|
1461
1299
|
{
|
|
1462
1300
|
className: cn(INPUT_GROUP_TEXT, className),
|
|
@@ -1468,7 +1306,7 @@ function InputGroupInput({
|
|
|
1468
1306
|
className,
|
|
1469
1307
|
...props
|
|
1470
1308
|
}) {
|
|
1471
|
-
return /* @__PURE__ */
|
|
1309
|
+
return /* @__PURE__ */ jsx16(
|
|
1472
1310
|
Input,
|
|
1473
1311
|
{
|
|
1474
1312
|
"data-slot": "input-group-control",
|
|
@@ -1481,7 +1319,7 @@ function InputGroupTextarea({
|
|
|
1481
1319
|
className,
|
|
1482
1320
|
...props
|
|
1483
1321
|
}) {
|
|
1484
|
-
return /* @__PURE__ */
|
|
1322
|
+
return /* @__PURE__ */ jsx16(
|
|
1485
1323
|
Textarea,
|
|
1486
1324
|
{
|
|
1487
1325
|
"data-slot": "input-group-control",
|
|
@@ -1505,13 +1343,13 @@ var separatorOrientations = {
|
|
|
1505
1343
|
};
|
|
1506
1344
|
|
|
1507
1345
|
// src/components/separator.tsx
|
|
1508
|
-
import { jsx as
|
|
1346
|
+
import { jsx as jsx17 } from "react/jsx-runtime";
|
|
1509
1347
|
function Separator({
|
|
1510
1348
|
className,
|
|
1511
1349
|
orientation = "horizontal",
|
|
1512
1350
|
...props
|
|
1513
1351
|
}) {
|
|
1514
|
-
return /* @__PURE__ */
|
|
1352
|
+
return /* @__PURE__ */ jsx17(
|
|
1515
1353
|
"div",
|
|
1516
1354
|
{
|
|
1517
1355
|
role: "separator",
|
|
@@ -1554,9 +1392,9 @@ var ITEM_HEADER = "flex basis-full items-center justify-between gap-2";
|
|
|
1554
1392
|
var ITEM_FOOTER = "flex basis-full items-center justify-between gap-2";
|
|
1555
1393
|
|
|
1556
1394
|
// src/components/item.tsx
|
|
1557
|
-
import { jsx as
|
|
1395
|
+
import { jsx as jsx18 } from "react/jsx-runtime";
|
|
1558
1396
|
function ItemGroup({ className, ...props }) {
|
|
1559
|
-
return /* @__PURE__ */
|
|
1397
|
+
return /* @__PURE__ */ jsx18(
|
|
1560
1398
|
"div",
|
|
1561
1399
|
{
|
|
1562
1400
|
role: "list",
|
|
@@ -1570,7 +1408,7 @@ function ItemSeparator({
|
|
|
1570
1408
|
className,
|
|
1571
1409
|
...props
|
|
1572
1410
|
}) {
|
|
1573
|
-
return /* @__PURE__ */
|
|
1411
|
+
return /* @__PURE__ */ jsx18(
|
|
1574
1412
|
Separator,
|
|
1575
1413
|
{
|
|
1576
1414
|
"data-slot": "item-separator",
|
|
@@ -1588,7 +1426,7 @@ function Item({
|
|
|
1588
1426
|
...props
|
|
1589
1427
|
}) {
|
|
1590
1428
|
const Comp = asChild ? Slot : "div";
|
|
1591
|
-
return /* @__PURE__ */
|
|
1429
|
+
return /* @__PURE__ */ jsx18(
|
|
1592
1430
|
Comp,
|
|
1593
1431
|
{
|
|
1594
1432
|
"data-slot": "item",
|
|
@@ -1604,7 +1442,7 @@ function ItemMedia({
|
|
|
1604
1442
|
variant = "default",
|
|
1605
1443
|
...props
|
|
1606
1444
|
}) {
|
|
1607
|
-
return /* @__PURE__ */
|
|
1445
|
+
return /* @__PURE__ */ jsx18(
|
|
1608
1446
|
"div",
|
|
1609
1447
|
{
|
|
1610
1448
|
"data-slot": "item-media",
|
|
@@ -1618,7 +1456,7 @@ function ItemContent({
|
|
|
1618
1456
|
className,
|
|
1619
1457
|
...props
|
|
1620
1458
|
}) {
|
|
1621
|
-
return /* @__PURE__ */
|
|
1459
|
+
return /* @__PURE__ */ jsx18(
|
|
1622
1460
|
"div",
|
|
1623
1461
|
{
|
|
1624
1462
|
"data-slot": "item-content",
|
|
@@ -1628,7 +1466,7 @@ function ItemContent({
|
|
|
1628
1466
|
);
|
|
1629
1467
|
}
|
|
1630
1468
|
function ItemTitle({ className, ...props }) {
|
|
1631
|
-
return /* @__PURE__ */
|
|
1469
|
+
return /* @__PURE__ */ jsx18(
|
|
1632
1470
|
"div",
|
|
1633
1471
|
{
|
|
1634
1472
|
"data-slot": "item-title",
|
|
@@ -1641,7 +1479,7 @@ function ItemDescription({
|
|
|
1641
1479
|
className,
|
|
1642
1480
|
...props
|
|
1643
1481
|
}) {
|
|
1644
|
-
return /* @__PURE__ */
|
|
1482
|
+
return /* @__PURE__ */ jsx18(
|
|
1645
1483
|
"p",
|
|
1646
1484
|
{
|
|
1647
1485
|
"data-slot": "item-description",
|
|
@@ -1654,7 +1492,7 @@ function ItemActions({
|
|
|
1654
1492
|
className,
|
|
1655
1493
|
...props
|
|
1656
1494
|
}) {
|
|
1657
|
-
return /* @__PURE__ */
|
|
1495
|
+
return /* @__PURE__ */ jsx18(
|
|
1658
1496
|
"div",
|
|
1659
1497
|
{
|
|
1660
1498
|
"data-slot": "item-actions",
|
|
@@ -1667,7 +1505,7 @@ function ItemHeader({
|
|
|
1667
1505
|
className,
|
|
1668
1506
|
...props
|
|
1669
1507
|
}) {
|
|
1670
|
-
return /* @__PURE__ */
|
|
1508
|
+
return /* @__PURE__ */ jsx18(
|
|
1671
1509
|
"div",
|
|
1672
1510
|
{
|
|
1673
1511
|
"data-slot": "item-header",
|
|
@@ -1680,7 +1518,7 @@ function ItemFooter({
|
|
|
1680
1518
|
className,
|
|
1681
1519
|
...props
|
|
1682
1520
|
}) {
|
|
1683
|
-
return /* @__PURE__ */
|
|
1521
|
+
return /* @__PURE__ */ jsx18(
|
|
1684
1522
|
"div",
|
|
1685
1523
|
{
|
|
1686
1524
|
"data-slot": "item-footer",
|
|
@@ -1698,9 +1536,9 @@ var KBD_BASE = "bg-muted text-muted-foreground pointer-events-none inline-flex h
|
|
|
1698
1536
|
var KBD_GROUP_BASE = "inline-flex items-center gap-1";
|
|
1699
1537
|
|
|
1700
1538
|
// src/components/kbd.tsx
|
|
1701
|
-
import { jsx as
|
|
1539
|
+
import { jsx as jsx19 } from "react/jsx-runtime";
|
|
1702
1540
|
function Kbd({ className, ...props }) {
|
|
1703
|
-
return /* @__PURE__ */
|
|
1541
|
+
return /* @__PURE__ */ jsx19(
|
|
1704
1542
|
"kbd",
|
|
1705
1543
|
{
|
|
1706
1544
|
"data-slot": "kbd",
|
|
@@ -1710,7 +1548,7 @@ function Kbd({ className, ...props }) {
|
|
|
1710
1548
|
);
|
|
1711
1549
|
}
|
|
1712
1550
|
function KbdGroup({ className, ...props }) {
|
|
1713
|
-
return /* @__PURE__ */
|
|
1551
|
+
return /* @__PURE__ */ jsx19(
|
|
1714
1552
|
"kbd",
|
|
1715
1553
|
{
|
|
1716
1554
|
"data-slot": "kbd-group",
|
|
@@ -1722,9 +1560,9 @@ function KbdGroup({ className, ...props }) {
|
|
|
1722
1560
|
|
|
1723
1561
|
// src/components/pagination.tsx
|
|
1724
1562
|
import "react";
|
|
1725
|
-
import { jsx as
|
|
1563
|
+
import { jsx as jsx20, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
1726
1564
|
function Pagination({ className, ...props }) {
|
|
1727
|
-
return /* @__PURE__ */
|
|
1565
|
+
return /* @__PURE__ */ jsx20(
|
|
1728
1566
|
"nav",
|
|
1729
1567
|
{
|
|
1730
1568
|
role: "navigation",
|
|
@@ -1739,7 +1577,7 @@ function PaginationContent({
|
|
|
1739
1577
|
className,
|
|
1740
1578
|
...props
|
|
1741
1579
|
}) {
|
|
1742
|
-
return /* @__PURE__ */
|
|
1580
|
+
return /* @__PURE__ */ jsx20(
|
|
1743
1581
|
"ul",
|
|
1744
1582
|
{
|
|
1745
1583
|
"data-slot": "pagination-content",
|
|
@@ -1749,7 +1587,7 @@ function PaginationContent({
|
|
|
1749
1587
|
);
|
|
1750
1588
|
}
|
|
1751
1589
|
function PaginationItem(props) {
|
|
1752
|
-
return /* @__PURE__ */
|
|
1590
|
+
return /* @__PURE__ */ jsx20("li", { "data-slot": "pagination-item", ...props });
|
|
1753
1591
|
}
|
|
1754
1592
|
function PaginationLink({
|
|
1755
1593
|
className,
|
|
@@ -1757,7 +1595,7 @@ function PaginationLink({
|
|
|
1757
1595
|
size = "icon",
|
|
1758
1596
|
...props
|
|
1759
1597
|
}) {
|
|
1760
|
-
return /* @__PURE__ */
|
|
1598
|
+
return /* @__PURE__ */ jsx20(
|
|
1761
1599
|
"a",
|
|
1762
1600
|
{
|
|
1763
1601
|
"aria-current": isActive ? "page" : void 0,
|
|
@@ -1774,9 +1612,9 @@ function PaginationLink({
|
|
|
1774
1612
|
}
|
|
1775
1613
|
);
|
|
1776
1614
|
}
|
|
1777
|
-
var ChevronLeft = () => /* @__PURE__ */
|
|
1778
|
-
var ChevronRight = () => /* @__PURE__ */
|
|
1779
|
-
var MoreHorizontal = () => /* @__PURE__ */
|
|
1615
|
+
var ChevronLeft = () => /* @__PURE__ */ jsx20("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, children: /* @__PURE__ */ jsx20("path", { d: "m15 18-6-6 6-6" }) });
|
|
1616
|
+
var ChevronRight = () => /* @__PURE__ */ jsx20("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, children: /* @__PURE__ */ jsx20("path", { d: "m9 18 6-6-6-6" }) });
|
|
1617
|
+
var MoreHorizontal = () => /* @__PURE__ */ jsxs4(
|
|
1780
1618
|
"svg",
|
|
1781
1619
|
{
|
|
1782
1620
|
className: "size-4",
|
|
@@ -1785,9 +1623,9 @@ var MoreHorizontal = () => /* @__PURE__ */ jsxs5(
|
|
|
1785
1623
|
stroke: "currentColor",
|
|
1786
1624
|
strokeWidth: 2,
|
|
1787
1625
|
children: [
|
|
1788
|
-
/* @__PURE__ */
|
|
1789
|
-
/* @__PURE__ */
|
|
1790
|
-
/* @__PURE__ */
|
|
1626
|
+
/* @__PURE__ */ jsx20("circle", { cx: "12", cy: "12", r: "1" }),
|
|
1627
|
+
/* @__PURE__ */ jsx20("circle", { cx: "19", cy: "12", r: "1" }),
|
|
1628
|
+
/* @__PURE__ */ jsx20("circle", { cx: "5", cy: "12", r: "1" })
|
|
1791
1629
|
]
|
|
1792
1630
|
}
|
|
1793
1631
|
);
|
|
@@ -1795,7 +1633,7 @@ function PaginationPrevious({
|
|
|
1795
1633
|
className,
|
|
1796
1634
|
...props
|
|
1797
1635
|
}) {
|
|
1798
|
-
return /* @__PURE__ */
|
|
1636
|
+
return /* @__PURE__ */ jsxs4(
|
|
1799
1637
|
PaginationLink,
|
|
1800
1638
|
{
|
|
1801
1639
|
"aria-label": "Go to previous page",
|
|
@@ -1803,8 +1641,8 @@ function PaginationPrevious({
|
|
|
1803
1641
|
className: cn("gap-1 px-2.5 sm:pl-2.5", className),
|
|
1804
1642
|
...props,
|
|
1805
1643
|
children: [
|
|
1806
|
-
/* @__PURE__ */
|
|
1807
|
-
/* @__PURE__ */
|
|
1644
|
+
/* @__PURE__ */ jsx20(ChevronLeft, {}),
|
|
1645
|
+
/* @__PURE__ */ jsx20("span", { className: "hidden sm:block", children: "Previous" })
|
|
1808
1646
|
]
|
|
1809
1647
|
}
|
|
1810
1648
|
);
|
|
@@ -1813,7 +1651,7 @@ function PaginationNext({
|
|
|
1813
1651
|
className,
|
|
1814
1652
|
...props
|
|
1815
1653
|
}) {
|
|
1816
|
-
return /* @__PURE__ */
|
|
1654
|
+
return /* @__PURE__ */ jsxs4(
|
|
1817
1655
|
PaginationLink,
|
|
1818
1656
|
{
|
|
1819
1657
|
"aria-label": "Go to next page",
|
|
@@ -1821,8 +1659,8 @@ function PaginationNext({
|
|
|
1821
1659
|
className: cn("gap-1 px-2.5 sm:pr-2.5", className),
|
|
1822
1660
|
...props,
|
|
1823
1661
|
children: [
|
|
1824
|
-
/* @__PURE__ */
|
|
1825
|
-
/* @__PURE__ */
|
|
1662
|
+
/* @__PURE__ */ jsx20("span", { className: "hidden sm:block", children: "Next" }),
|
|
1663
|
+
/* @__PURE__ */ jsx20(ChevronRight, {})
|
|
1826
1664
|
]
|
|
1827
1665
|
}
|
|
1828
1666
|
);
|
|
@@ -1831,7 +1669,7 @@ function PaginationEllipsis({
|
|
|
1831
1669
|
className,
|
|
1832
1670
|
...props
|
|
1833
1671
|
}) {
|
|
1834
|
-
return /* @__PURE__ */
|
|
1672
|
+
return /* @__PURE__ */ jsxs4(
|
|
1835
1673
|
"span",
|
|
1836
1674
|
{
|
|
1837
1675
|
"aria-hidden": true,
|
|
@@ -1839,8 +1677,8 @@ function PaginationEllipsis({
|
|
|
1839
1677
|
className: cn("flex size-9 items-center justify-center", className),
|
|
1840
1678
|
...props,
|
|
1841
1679
|
children: [
|
|
1842
|
-
/* @__PURE__ */
|
|
1843
|
-
/* @__PURE__ */
|
|
1680
|
+
/* @__PURE__ */ jsx20(MoreHorizontal, {}),
|
|
1681
|
+
/* @__PURE__ */ jsx20("span", { className: "sr-only", children: "More pages" })
|
|
1844
1682
|
]
|
|
1845
1683
|
}
|
|
1846
1684
|
);
|
|
@@ -1854,9 +1692,9 @@ var PROGRESS_TRACK = "bg-primary/20 relative h-2 w-full overflow-hidden rounded-
|
|
|
1854
1692
|
var PROGRESS_INDICATOR = "bg-primary h-full w-full flex-1 transition-all";
|
|
1855
1693
|
|
|
1856
1694
|
// src/components/progress.tsx
|
|
1857
|
-
import { jsx as
|
|
1695
|
+
import { jsx as jsx21 } from "react/jsx-runtime";
|
|
1858
1696
|
function Progress({ className, value = 0, ...props }) {
|
|
1859
|
-
return /* @__PURE__ */
|
|
1697
|
+
return /* @__PURE__ */ jsx21(
|
|
1860
1698
|
"div",
|
|
1861
1699
|
{
|
|
1862
1700
|
"data-slot": "progress",
|
|
@@ -1866,7 +1704,7 @@ function Progress({ className, value = 0, ...props }) {
|
|
|
1866
1704
|
"aria-valuemax": 100,
|
|
1867
1705
|
className: cn(PROGRESS_TRACK, className),
|
|
1868
1706
|
...props,
|
|
1869
|
-
children: /* @__PURE__ */
|
|
1707
|
+
children: /* @__PURE__ */ jsx21(
|
|
1870
1708
|
"div",
|
|
1871
1709
|
{
|
|
1872
1710
|
"data-slot": "progress-indicator",
|
|
@@ -1885,9 +1723,9 @@ import "react";
|
|
|
1885
1723
|
var SKELETON_BASE = "bg-accent animate-pulse rounded-md";
|
|
1886
1724
|
|
|
1887
1725
|
// src/components/skeleton.tsx
|
|
1888
|
-
import { jsx as
|
|
1726
|
+
import { jsx as jsx22 } from "react/jsx-runtime";
|
|
1889
1727
|
function Skeleton({ className, ...props }) {
|
|
1890
|
-
return /* @__PURE__ */
|
|
1728
|
+
return /* @__PURE__ */ jsx22(
|
|
1891
1729
|
"div",
|
|
1892
1730
|
{
|
|
1893
1731
|
"data-slot": "skeleton",
|
|
@@ -1899,9 +1737,9 @@ function Skeleton({ className, ...props }) {
|
|
|
1899
1737
|
|
|
1900
1738
|
// src/components/spinner.tsx
|
|
1901
1739
|
import "react";
|
|
1902
|
-
import { jsx as
|
|
1740
|
+
import { jsx as jsx23 } from "react/jsx-runtime";
|
|
1903
1741
|
function Spinner({ className, ...props }) {
|
|
1904
|
-
return /* @__PURE__ */
|
|
1742
|
+
return /* @__PURE__ */ jsx23(
|
|
1905
1743
|
"svg",
|
|
1906
1744
|
{
|
|
1907
1745
|
role: "status",
|
|
@@ -1912,14 +1750,14 @@ function Spinner({ className, ...props }) {
|
|
|
1912
1750
|
stroke: "currentColor",
|
|
1913
1751
|
strokeWidth: 2,
|
|
1914
1752
|
...props,
|
|
1915
|
-
children: /* @__PURE__ */
|
|
1753
|
+
children: /* @__PURE__ */ jsx23("path", { d: "M21 12a9 9 0 1 1-6.219-8.56" })
|
|
1916
1754
|
}
|
|
1917
1755
|
);
|
|
1918
1756
|
}
|
|
1919
1757
|
|
|
1920
1758
|
// src/components/status-screen.tsx
|
|
1921
1759
|
import "react";
|
|
1922
|
-
import { jsx as
|
|
1760
|
+
import { jsx as jsx24, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
1923
1761
|
var ACCENT_TEXT = {
|
|
1924
1762
|
teal: "text-main-accent-t1",
|
|
1925
1763
|
gold: "text-main-accent-t3",
|
|
@@ -1943,15 +1781,15 @@ function statusButtonClass(accent, variant) {
|
|
|
1943
1781
|
return cn(BTN_BASE, variant === "filled" ? BTN_FILLED[accent] : BTN_OUTLINE[accent]);
|
|
1944
1782
|
}
|
|
1945
1783
|
function LogoMark({ className }) {
|
|
1946
|
-
return /* @__PURE__ */
|
|
1947
|
-
/* @__PURE__ */
|
|
1948
|
-
/* @__PURE__ */
|
|
1949
|
-
/* @__PURE__ */
|
|
1950
|
-
/* @__PURE__ */
|
|
1784
|
+
return /* @__PURE__ */ jsx24("svg", { viewBox: "0 0 140 48", className, "aria-hidden": true, children: /* @__PURE__ */ jsxs5("g", { fill: "currentColor", children: [
|
|
1785
|
+
/* @__PURE__ */ jsx24("path", { d: "M0.0437012 47.3326L50.9499 40.5805V22.3378L56.4881 23.6408V37.9071L59.1984 37.5005V24.1147L64.6189 25.1808V37.0269L67.2113 36.553V22.1009L56.606 17.481L43.408 21.864V36.553L0.0437012 47.3326Z" }),
|
|
1786
|
+
/* @__PURE__ */ jsx24("path", { d: "M77.2277 40.5804L85.9478 41.4099L85.8299 0.304321L73.1033 7.17499V26.3654L77.2277 28.2608V40.5804Z" }),
|
|
1787
|
+
/* @__PURE__ */ jsx24("path", { d: "M87.126 0.304321L99.9705 7.29343V42.5943L94.3141 41.8835V9.54417L87.126 5.75347V0.304321Z" }),
|
|
1788
|
+
/* @__PURE__ */ jsx24("path", { d: "M103.034 42.9496L139.682 46.0296L110.104 39.7513V26.8393L103.034 23.0486V42.9496Z" })
|
|
1951
1789
|
] }) });
|
|
1952
1790
|
}
|
|
1953
1791
|
function ArrowLeftIcon({ className }) {
|
|
1954
|
-
return /* @__PURE__ */
|
|
1792
|
+
return /* @__PURE__ */ jsxs5(
|
|
1955
1793
|
"svg",
|
|
1956
1794
|
{
|
|
1957
1795
|
className,
|
|
@@ -1963,8 +1801,8 @@ function ArrowLeftIcon({ className }) {
|
|
|
1963
1801
|
strokeLinejoin: "round",
|
|
1964
1802
|
"aria-hidden": true,
|
|
1965
1803
|
children: [
|
|
1966
|
-
/* @__PURE__ */
|
|
1967
|
-
/* @__PURE__ */
|
|
1804
|
+
/* @__PURE__ */ jsx24("path", { d: "m12 19-7-7 7-7" }),
|
|
1805
|
+
/* @__PURE__ */ jsx24("path", { d: "M19 12H5" })
|
|
1968
1806
|
]
|
|
1969
1807
|
}
|
|
1970
1808
|
);
|
|
@@ -1983,8 +1821,8 @@ function StatusScreen({
|
|
|
1983
1821
|
}) {
|
|
1984
1822
|
const L = linkComponent ?? "a";
|
|
1985
1823
|
const accentText = ACCENT_TEXT[accent];
|
|
1986
|
-
return /* @__PURE__ */
|
|
1987
|
-
/* @__PURE__ */
|
|
1824
|
+
return /* @__PURE__ */ jsxs5("section", { className: "relative flex min-h-screen flex-col items-center justify-center overflow-hidden bg-main-black px-6 py-32 text-center", children: [
|
|
1825
|
+
/* @__PURE__ */ jsx24(
|
|
1988
1826
|
"div",
|
|
1989
1827
|
{
|
|
1990
1828
|
"aria-hidden": true,
|
|
@@ -1994,20 +1832,20 @@ function StatusScreen({
|
|
|
1994
1832
|
)
|
|
1995
1833
|
}
|
|
1996
1834
|
),
|
|
1997
|
-
/* @__PURE__ */
|
|
1998
|
-
/* @__PURE__ */
|
|
1999
|
-
/* @__PURE__ */
|
|
2000
|
-
/* @__PURE__ */
|
|
2001
|
-
/* @__PURE__ */
|
|
1835
|
+
/* @__PURE__ */ jsxs5("div", { className: "relative z-10 flex w-full max-w-2xl flex-col items-center", children: [
|
|
1836
|
+
/* @__PURE__ */ jsx24(LogoMark, { className: cn("mb-7 h-10 w-auto", accentText) }),
|
|
1837
|
+
/* @__PURE__ */ jsx24("p", { className: cn("mb-6 font-mono-tech text-[11px] uppercase tracking-[0.34em]", accentText), children: eyebrow }),
|
|
1838
|
+
/* @__PURE__ */ jsx24("p", { className: cn("font-serif-display text-[110px] font-medium leading-[0.9] sm:text-[180px]", accentText), children: code }),
|
|
1839
|
+
/* @__PURE__ */ jsxs5("h1", { className: "mt-4 font-serif-display text-3xl font-light leading-tight text-white sm:text-5xl", children: [
|
|
2002
1840
|
headlineLead,
|
|
2003
|
-
/* @__PURE__ */
|
|
1841
|
+
/* @__PURE__ */ jsx24("span", { className: cn("font-serif italic", accentText), children: headlineAccent }),
|
|
2004
1842
|
headlineTail
|
|
2005
1843
|
] }),
|
|
2006
|
-
/* @__PURE__ */
|
|
2007
|
-
/* @__PURE__ */
|
|
1844
|
+
/* @__PURE__ */ jsx24("p", { className: "mx-auto mt-5 max-w-md text-sm leading-relaxed text-main-mist/60 sm:text-base", children: subtext }),
|
|
1845
|
+
/* @__PURE__ */ jsxs5("div", { className: "mt-9 flex flex-col items-center gap-3 sm:flex-row", children: [
|
|
2008
1846
|
children,
|
|
2009
|
-
links?.map((link) => /* @__PURE__ */
|
|
2010
|
-
link.leadingArrow ? /* @__PURE__ */
|
|
1847
|
+
links?.map((link) => /* @__PURE__ */ jsxs5(L, { href: link.href, className: statusButtonClass(accent, link.variant ?? "filled"), children: [
|
|
1848
|
+
link.leadingArrow ? /* @__PURE__ */ jsx24(ArrowLeftIcon, { className: "mr-2 h-4 w-4" }) : null,
|
|
2011
1849
|
link.label
|
|
2012
1850
|
] }, link.label))
|
|
2013
1851
|
] })
|
|
@@ -2015,7 +1853,7 @@ function StatusScreen({
|
|
|
2015
1853
|
] });
|
|
2016
1854
|
}
|
|
2017
1855
|
function NotFound({ linkComponent = "a", homeHref = "/", contactHref = "/contact" }) {
|
|
2018
|
-
return /* @__PURE__ */
|
|
1856
|
+
return /* @__PURE__ */ jsx24(
|
|
2019
1857
|
StatusScreen,
|
|
2020
1858
|
{
|
|
2021
1859
|
accent: "teal",
|
|
@@ -2033,7 +1871,7 @@ function NotFound({ linkComponent = "a", homeHref = "/", contactHref = "/contact
|
|
|
2033
1871
|
);
|
|
2034
1872
|
}
|
|
2035
1873
|
function Forbidden({ linkComponent = "a", homeHref = "/", contactHref = "/contact" }) {
|
|
2036
|
-
return /* @__PURE__ */
|
|
1874
|
+
return /* @__PURE__ */ jsx24(
|
|
2037
1875
|
StatusScreen,
|
|
2038
1876
|
{
|
|
2039
1877
|
accent: "gold",
|
|
@@ -2051,7 +1889,7 @@ function Forbidden({ linkComponent = "a", homeHref = "/", contactHref = "/contac
|
|
|
2051
1889
|
);
|
|
2052
1890
|
}
|
|
2053
1891
|
function ServerError({ linkComponent = "a", homeHref = "/", reset }) {
|
|
2054
|
-
return /* @__PURE__ */
|
|
1892
|
+
return /* @__PURE__ */ jsx24(
|
|
2055
1893
|
StatusScreen,
|
|
2056
1894
|
{
|
|
2057
1895
|
accent: "red",
|
|
@@ -2062,7 +1900,7 @@ function ServerError({ linkComponent = "a", homeHref = "/", reset }) {
|
|
|
2062
1900
|
subtext: "Something broke on our end \u2014 not yours. We've been alerted and are restoring service. Please try again in a moment.",
|
|
2063
1901
|
linkComponent,
|
|
2064
1902
|
links: [{ label: "Back to home", href: homeHref, variant: "outline", leadingArrow: true }],
|
|
2065
|
-
children: /* @__PURE__ */
|
|
1903
|
+
children: /* @__PURE__ */ jsx24(
|
|
2066
1904
|
"button",
|
|
2067
1905
|
{
|
|
2068
1906
|
type: "button",
|
|
@@ -2090,14 +1928,14 @@ var TABLE_CELL = "p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr
|
|
|
2090
1928
|
var TABLE_CAPTION = "text-muted-foreground mt-4 text-sm";
|
|
2091
1929
|
|
|
2092
1930
|
// src/components/table.tsx
|
|
2093
|
-
import { jsx as
|
|
1931
|
+
import { jsx as jsx25 } from "react/jsx-runtime";
|
|
2094
1932
|
function Table({ className, ...props }) {
|
|
2095
|
-
return /* @__PURE__ */
|
|
1933
|
+
return /* @__PURE__ */ jsx25(
|
|
2096
1934
|
"div",
|
|
2097
1935
|
{
|
|
2098
1936
|
"data-slot": "table-container",
|
|
2099
1937
|
className: TABLE_CONTAINER,
|
|
2100
|
-
children: /* @__PURE__ */
|
|
1938
|
+
children: /* @__PURE__ */ jsx25(
|
|
2101
1939
|
"table",
|
|
2102
1940
|
{
|
|
2103
1941
|
"data-slot": "table",
|
|
@@ -2112,7 +1950,7 @@ function TableHeader({
|
|
|
2112
1950
|
className,
|
|
2113
1951
|
...props
|
|
2114
1952
|
}) {
|
|
2115
|
-
return /* @__PURE__ */
|
|
1953
|
+
return /* @__PURE__ */ jsx25(
|
|
2116
1954
|
"thead",
|
|
2117
1955
|
{
|
|
2118
1956
|
"data-slot": "table-header",
|
|
@@ -2125,7 +1963,7 @@ function TableBody({
|
|
|
2125
1963
|
className,
|
|
2126
1964
|
...props
|
|
2127
1965
|
}) {
|
|
2128
|
-
return /* @__PURE__ */
|
|
1966
|
+
return /* @__PURE__ */ jsx25(
|
|
2129
1967
|
"tbody",
|
|
2130
1968
|
{
|
|
2131
1969
|
"data-slot": "table-body",
|
|
@@ -2138,7 +1976,7 @@ function TableFooter({
|
|
|
2138
1976
|
className,
|
|
2139
1977
|
...props
|
|
2140
1978
|
}) {
|
|
2141
|
-
return /* @__PURE__ */
|
|
1979
|
+
return /* @__PURE__ */ jsx25(
|
|
2142
1980
|
"tfoot",
|
|
2143
1981
|
{
|
|
2144
1982
|
"data-slot": "table-footer",
|
|
@@ -2148,7 +1986,7 @@ function TableFooter({
|
|
|
2148
1986
|
);
|
|
2149
1987
|
}
|
|
2150
1988
|
function TableRow({ className, ...props }) {
|
|
2151
|
-
return /* @__PURE__ */
|
|
1989
|
+
return /* @__PURE__ */ jsx25(
|
|
2152
1990
|
"tr",
|
|
2153
1991
|
{
|
|
2154
1992
|
"data-slot": "table-row",
|
|
@@ -2158,7 +1996,7 @@ function TableRow({ className, ...props }) {
|
|
|
2158
1996
|
);
|
|
2159
1997
|
}
|
|
2160
1998
|
function TableHead({ className, ...props }) {
|
|
2161
|
-
return /* @__PURE__ */
|
|
1999
|
+
return /* @__PURE__ */ jsx25(
|
|
2162
2000
|
"th",
|
|
2163
2001
|
{
|
|
2164
2002
|
"data-slot": "table-head",
|
|
@@ -2168,7 +2006,7 @@ function TableHead({ className, ...props }) {
|
|
|
2168
2006
|
);
|
|
2169
2007
|
}
|
|
2170
2008
|
function TableCell({ className, ...props }) {
|
|
2171
|
-
return /* @__PURE__ */
|
|
2009
|
+
return /* @__PURE__ */ jsx25(
|
|
2172
2010
|
"td",
|
|
2173
2011
|
{
|
|
2174
2012
|
"data-slot": "table-cell",
|
|
@@ -2181,7 +2019,7 @@ function TableCaption({
|
|
|
2181
2019
|
className,
|
|
2182
2020
|
...props
|
|
2183
2021
|
}) {
|
|
2184
|
-
return /* @__PURE__ */
|
|
2022
|
+
return /* @__PURE__ */ jsx25(
|
|
2185
2023
|
"caption",
|
|
2186
2024
|
{
|
|
2187
2025
|
"data-slot": "table-caption",
|
|
@@ -2192,7 +2030,7 @@ function TableCaption({
|
|
|
2192
2030
|
}
|
|
2193
2031
|
|
|
2194
2032
|
// src/components/accordion.tsx
|
|
2195
|
-
import * as
|
|
2033
|
+
import * as React35 from "react";
|
|
2196
2034
|
|
|
2197
2035
|
// src/generated/accordion.ts
|
|
2198
2036
|
var ACCORDION_ITEM = "border-b last:border-b-0";
|
|
@@ -2202,16 +2040,16 @@ var ACCORDION_CONTENT = "data-[state=closed]:animate-accordion-up data-[state=op
|
|
|
2202
2040
|
var ACCORDION_CONTENT_INNER = "pt-0 pb-4";
|
|
2203
2041
|
|
|
2204
2042
|
// src/components/accordion.tsx
|
|
2205
|
-
import { jsx as
|
|
2206
|
-
var AccordionContext =
|
|
2043
|
+
import { jsx as jsx26, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
2044
|
+
var AccordionContext = React35.createContext(null);
|
|
2207
2045
|
function useAccordion() {
|
|
2208
|
-
const ctx =
|
|
2046
|
+
const ctx = React35.useContext(AccordionContext);
|
|
2209
2047
|
if (!ctx) throw new Error("Accordion parts must be used within <Accordion>");
|
|
2210
2048
|
return ctx;
|
|
2211
2049
|
}
|
|
2212
|
-
var ItemContext =
|
|
2050
|
+
var ItemContext = React35.createContext(null);
|
|
2213
2051
|
function useItemValue() {
|
|
2214
|
-
const value =
|
|
2052
|
+
const value = React35.useContext(ItemContext);
|
|
2215
2053
|
if (value === null)
|
|
2216
2054
|
throw new Error("AccordionTrigger/Content must be used within <AccordionItem>");
|
|
2217
2055
|
return value;
|
|
@@ -2239,7 +2077,7 @@ function Accordion({
|
|
|
2239
2077
|
if (open.includes(v)) setOpen(collapsible ? [] : open);
|
|
2240
2078
|
else setOpen([v]);
|
|
2241
2079
|
};
|
|
2242
|
-
return /* @__PURE__ */
|
|
2080
|
+
return /* @__PURE__ */ jsx26(AccordionContext.Provider, { value: { isOpen, toggle }, children: /* @__PURE__ */ jsx26("div", { "data-slot": "accordion", ...props, children }) });
|
|
2243
2081
|
}
|
|
2244
2082
|
function AccordionItem({
|
|
2245
2083
|
className,
|
|
@@ -2247,7 +2085,7 @@ function AccordionItem({
|
|
|
2247
2085
|
children,
|
|
2248
2086
|
...props
|
|
2249
2087
|
}) {
|
|
2250
|
-
return /* @__PURE__ */
|
|
2088
|
+
return /* @__PURE__ */ jsx26(ItemContext.Provider, { value, children: /* @__PURE__ */ jsx26(
|
|
2251
2089
|
"div",
|
|
2252
2090
|
{
|
|
2253
2091
|
"data-slot": "accordion-item",
|
|
@@ -2266,7 +2104,7 @@ function AccordionTrigger({
|
|
|
2266
2104
|
const { isOpen, toggle } = useAccordion();
|
|
2267
2105
|
const value = useItemValue();
|
|
2268
2106
|
const open = isOpen(value);
|
|
2269
|
-
return /* @__PURE__ */
|
|
2107
|
+
return /* @__PURE__ */ jsx26("h3", { className: ACCORDION_HEADER, "data-slot": "accordion-header", children: /* @__PURE__ */ jsxs6(
|
|
2270
2108
|
"button",
|
|
2271
2109
|
{
|
|
2272
2110
|
type: "button",
|
|
@@ -2281,7 +2119,7 @@ function AccordionTrigger({
|
|
|
2281
2119
|
...props,
|
|
2282
2120
|
children: [
|
|
2283
2121
|
children,
|
|
2284
|
-
/* @__PURE__ */
|
|
2122
|
+
/* @__PURE__ */ jsx26(
|
|
2285
2123
|
"svg",
|
|
2286
2124
|
{
|
|
2287
2125
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -2294,7 +2132,7 @@ function AccordionTrigger({
|
|
|
2294
2132
|
strokeLinecap: "round",
|
|
2295
2133
|
strokeLinejoin: "round",
|
|
2296
2134
|
className: "text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200",
|
|
2297
|
-
children: /* @__PURE__ */
|
|
2135
|
+
children: /* @__PURE__ */ jsx26("path", { d: "m6 9 6 6 6-6" })
|
|
2298
2136
|
}
|
|
2299
2137
|
)
|
|
2300
2138
|
]
|
|
@@ -2309,26 +2147,26 @@ function AccordionContent({
|
|
|
2309
2147
|
const { isOpen } = useAccordion();
|
|
2310
2148
|
const value = useItemValue();
|
|
2311
2149
|
if (!isOpen(value)) return null;
|
|
2312
|
-
return /* @__PURE__ */
|
|
2150
|
+
return /* @__PURE__ */ jsx26(
|
|
2313
2151
|
"div",
|
|
2314
2152
|
{
|
|
2315
2153
|
"data-slot": "accordion-content",
|
|
2316
2154
|
"data-state": "open",
|
|
2317
2155
|
className: ACCORDION_CONTENT,
|
|
2318
2156
|
...props,
|
|
2319
|
-
children: /* @__PURE__ */
|
|
2157
|
+
children: /* @__PURE__ */ jsx26("div", { className: cn(ACCORDION_CONTENT_INNER, className), children })
|
|
2320
2158
|
}
|
|
2321
2159
|
);
|
|
2322
2160
|
}
|
|
2323
2161
|
|
|
2324
2162
|
// src/components/collapsible.tsx
|
|
2325
|
-
import * as
|
|
2326
|
-
import { jsx as
|
|
2327
|
-
var CollapsibleContext =
|
|
2163
|
+
import * as React36 from "react";
|
|
2164
|
+
import { jsx as jsx27 } from "react/jsx-runtime";
|
|
2165
|
+
var CollapsibleContext = React36.createContext(
|
|
2328
2166
|
null
|
|
2329
2167
|
);
|
|
2330
2168
|
function useCollapsible() {
|
|
2331
|
-
const ctx =
|
|
2169
|
+
const ctx = React36.useContext(CollapsibleContext);
|
|
2332
2170
|
if (!ctx) throw new Error("Collapsible parts must be used within <Collapsible>");
|
|
2333
2171
|
return ctx;
|
|
2334
2172
|
}
|
|
@@ -2344,14 +2182,14 @@ function Collapsible({
|
|
|
2344
2182
|
defaultValue: defaultOpen,
|
|
2345
2183
|
...onOpenChange ? { onChange: onOpenChange } : {}
|
|
2346
2184
|
});
|
|
2347
|
-
return /* @__PURE__ */
|
|
2185
|
+
return /* @__PURE__ */ jsx27(CollapsibleContext.Provider, { value: { open: isOpen, setOpen }, children: /* @__PURE__ */ jsx27("div", { "data-slot": "collapsible", "data-state": isOpen ? "open" : "closed", ...props, children }) });
|
|
2348
2186
|
}
|
|
2349
2187
|
function CollapsibleTrigger({
|
|
2350
2188
|
onClick,
|
|
2351
2189
|
...props
|
|
2352
2190
|
}) {
|
|
2353
2191
|
const { open, setOpen } = useCollapsible();
|
|
2354
|
-
return /* @__PURE__ */
|
|
2192
|
+
return /* @__PURE__ */ jsx27(
|
|
2355
2193
|
"button",
|
|
2356
2194
|
{
|
|
2357
2195
|
type: "button",
|
|
@@ -2372,11 +2210,11 @@ function CollapsibleContent({
|
|
|
2372
2210
|
}) {
|
|
2373
2211
|
const { open } = useCollapsible();
|
|
2374
2212
|
if (!open) return null;
|
|
2375
|
-
return /* @__PURE__ */
|
|
2213
|
+
return /* @__PURE__ */ jsx27("div", { "data-slot": "collapsible-content", "data-state": "open", ...props, children });
|
|
2376
2214
|
}
|
|
2377
2215
|
|
|
2378
2216
|
// src/components/tabs.tsx
|
|
2379
|
-
import * as
|
|
2217
|
+
import * as React37 from "react";
|
|
2380
2218
|
|
|
2381
2219
|
// src/generated/tabs.ts
|
|
2382
2220
|
var TABS_ROOT = "flex flex-col gap-2";
|
|
@@ -2385,10 +2223,10 @@ var TABS_TRIGGER = "data-[state=active]:bg-background focus-visible:border-ring
|
|
|
2385
2223
|
var TABS_CONTENT = "flex-1 outline-none";
|
|
2386
2224
|
|
|
2387
2225
|
// src/components/tabs.tsx
|
|
2388
|
-
import { jsx as
|
|
2389
|
-
var TabsContext =
|
|
2226
|
+
import { jsx as jsx28 } from "react/jsx-runtime";
|
|
2227
|
+
var TabsContext = React37.createContext(null);
|
|
2390
2228
|
function useTabs() {
|
|
2391
|
-
const ctx =
|
|
2229
|
+
const ctx = React37.useContext(TabsContext);
|
|
2392
2230
|
if (!ctx) throw new Error("Tabs parts must be used within <Tabs>");
|
|
2393
2231
|
return ctx;
|
|
2394
2232
|
}
|
|
@@ -2406,7 +2244,7 @@ function Tabs({
|
|
|
2406
2244
|
defaultValue,
|
|
2407
2245
|
...onValueChange ? { onChange: onValueChange } : {}
|
|
2408
2246
|
});
|
|
2409
|
-
return /* @__PURE__ */
|
|
2247
|
+
return /* @__PURE__ */ jsx28(TabsContext.Provider, { value: { value: active, setValue, orientation }, children: /* @__PURE__ */ jsx28(
|
|
2410
2248
|
"div",
|
|
2411
2249
|
{
|
|
2412
2250
|
"data-slot": "tabs",
|
|
@@ -2424,12 +2262,12 @@ function TabsList({
|
|
|
2424
2262
|
...props
|
|
2425
2263
|
}) {
|
|
2426
2264
|
const { orientation } = useTabs();
|
|
2427
|
-
const items =
|
|
2265
|
+
const items = React37.Children.toArray(children);
|
|
2428
2266
|
const { activeIndex, setActiveIndex, onKeyDown: rovingKeyDown } = useRovingFocus({
|
|
2429
2267
|
count: items.length,
|
|
2430
2268
|
orientation: orientation === "vertical" ? "vertical" : "horizontal"
|
|
2431
2269
|
});
|
|
2432
|
-
return /* @__PURE__ */
|
|
2270
|
+
return /* @__PURE__ */ jsx28(
|
|
2433
2271
|
"div",
|
|
2434
2272
|
{
|
|
2435
2273
|
role: "tablist",
|
|
@@ -2442,7 +2280,7 @@ function TabsList({
|
|
|
2442
2280
|
},
|
|
2443
2281
|
...props,
|
|
2444
2282
|
children: items.map(
|
|
2445
|
-
(child, index) =>
|
|
2283
|
+
(child, index) => React37.isValidElement(child) ? React37.cloneElement(child, {
|
|
2446
2284
|
__index: index,
|
|
2447
2285
|
__isFocusItem: index === activeIndex,
|
|
2448
2286
|
__onFocusItem: () => setActiveIndex(index)
|
|
@@ -2462,7 +2300,7 @@ function TabsTrigger({
|
|
|
2462
2300
|
}) {
|
|
2463
2301
|
const { value: active, setValue } = useTabs();
|
|
2464
2302
|
const selected = active === value;
|
|
2465
|
-
return /* @__PURE__ */
|
|
2303
|
+
return /* @__PURE__ */ jsx28(
|
|
2466
2304
|
"button",
|
|
2467
2305
|
{
|
|
2468
2306
|
type: "button",
|
|
@@ -2493,7 +2331,7 @@ function TabsContent({
|
|
|
2493
2331
|
}) {
|
|
2494
2332
|
const { value: active } = useTabs();
|
|
2495
2333
|
if (active !== value) return null;
|
|
2496
|
-
return /* @__PURE__ */
|
|
2334
|
+
return /* @__PURE__ */ jsx28(
|
|
2497
2335
|
"div",
|
|
2498
2336
|
{
|
|
2499
2337
|
role: "tabpanel",
|
|
@@ -2522,7 +2360,7 @@ var toggleSizeClasses = {
|
|
|
2522
2360
|
};
|
|
2523
2361
|
|
|
2524
2362
|
// src/components/toggle.tsx
|
|
2525
|
-
import { jsx as
|
|
2363
|
+
import { jsx as jsx29 } from "react/jsx-runtime";
|
|
2526
2364
|
function toggleVariants({
|
|
2527
2365
|
variant = "default",
|
|
2528
2366
|
size = "default",
|
|
@@ -2545,7 +2383,7 @@ function Toggle({
|
|
|
2545
2383
|
defaultValue: defaultPressed,
|
|
2546
2384
|
...onPressedChange ? { onChange: onPressedChange } : {}
|
|
2547
2385
|
});
|
|
2548
|
-
return /* @__PURE__ */
|
|
2386
|
+
return /* @__PURE__ */ jsx29(
|
|
2549
2387
|
"button",
|
|
2550
2388
|
{
|
|
2551
2389
|
type: "button",
|
|
@@ -2563,9 +2401,9 @@ function Toggle({
|
|
|
2563
2401
|
}
|
|
2564
2402
|
|
|
2565
2403
|
// src/components/toggle-group.tsx
|
|
2566
|
-
import * as
|
|
2567
|
-
import { jsx as
|
|
2568
|
-
var ToggleGroupContext =
|
|
2404
|
+
import * as React39 from "react";
|
|
2405
|
+
import { jsx as jsx30 } from "react/jsx-runtime";
|
|
2406
|
+
var ToggleGroupContext = React39.createContext({
|
|
2569
2407
|
variant: "default",
|
|
2570
2408
|
size: "default",
|
|
2571
2409
|
value: [],
|
|
@@ -2592,7 +2430,7 @@ function ToggleGroup({
|
|
|
2592
2430
|
defaultValue: toArray(defaultValue),
|
|
2593
2431
|
onChange: (next) => onValueChange?.(type === "single" ? next[0] ?? "" : next)
|
|
2594
2432
|
});
|
|
2595
|
-
const toggle =
|
|
2433
|
+
const toggle = React39.useCallback(
|
|
2596
2434
|
(itemValue) => {
|
|
2597
2435
|
if (type === "single") {
|
|
2598
2436
|
setSelected(selected.includes(itemValue) ? [] : [itemValue]);
|
|
@@ -2604,7 +2442,7 @@ function ToggleGroup({
|
|
|
2604
2442
|
},
|
|
2605
2443
|
[type, selected, setSelected]
|
|
2606
2444
|
);
|
|
2607
|
-
return /* @__PURE__ */
|
|
2445
|
+
return /* @__PURE__ */ jsx30(
|
|
2608
2446
|
"div",
|
|
2609
2447
|
{
|
|
2610
2448
|
"data-slot": "toggle-group",
|
|
@@ -2615,7 +2453,7 @@ function ToggleGroup({
|
|
|
2615
2453
|
className
|
|
2616
2454
|
),
|
|
2617
2455
|
...props,
|
|
2618
|
-
children: /* @__PURE__ */
|
|
2456
|
+
children: /* @__PURE__ */ jsx30(ToggleGroupContext.Provider, { value: { variant, size, value: selected, toggle }, children })
|
|
2619
2457
|
}
|
|
2620
2458
|
);
|
|
2621
2459
|
}
|
|
@@ -2628,11 +2466,11 @@ function ToggleGroupItem({
|
|
|
2628
2466
|
onClick,
|
|
2629
2467
|
...props
|
|
2630
2468
|
}) {
|
|
2631
|
-
const context =
|
|
2469
|
+
const context = React39.useContext(ToggleGroupContext);
|
|
2632
2470
|
const resolvedVariant = context.variant || variant || "default";
|
|
2633
2471
|
const resolvedSize = context.size || size || "default";
|
|
2634
2472
|
const on = context.value.includes(value);
|
|
2635
|
-
return /* @__PURE__ */
|
|
2473
|
+
return /* @__PURE__ */ jsx30(
|
|
2636
2474
|
"button",
|
|
2637
2475
|
{
|
|
2638
2476
|
type: "button",
|
|
@@ -2658,7 +2496,7 @@ function ToggleGroupItem({
|
|
|
2658
2496
|
|
|
2659
2497
|
// src/components/switch.tsx
|
|
2660
2498
|
import "react";
|
|
2661
|
-
import { jsx as
|
|
2499
|
+
import { jsx as jsx31 } from "react/jsx-runtime";
|
|
2662
2500
|
function Switch({
|
|
2663
2501
|
className,
|
|
2664
2502
|
checked,
|
|
@@ -2674,7 +2512,7 @@ function Switch({
|
|
|
2674
2512
|
...onCheckedChange ? { onChange: onCheckedChange } : {}
|
|
2675
2513
|
});
|
|
2676
2514
|
const state = on ? "checked" : "unchecked";
|
|
2677
|
-
return /* @__PURE__ */
|
|
2515
|
+
return /* @__PURE__ */ jsx31(
|
|
2678
2516
|
"button",
|
|
2679
2517
|
{
|
|
2680
2518
|
type: "button",
|
|
@@ -2692,7 +2530,7 @@ function Switch({
|
|
|
2692
2530
|
setOn(!on);
|
|
2693
2531
|
},
|
|
2694
2532
|
...props,
|
|
2695
|
-
children: /* @__PURE__ */
|
|
2533
|
+
children: /* @__PURE__ */ jsx31(
|
|
2696
2534
|
"span",
|
|
2697
2535
|
{
|
|
2698
2536
|
"data-slot": "switch-thumb",
|
|
@@ -2706,7 +2544,7 @@ function Switch({
|
|
|
2706
2544
|
|
|
2707
2545
|
// src/components/checkbox.tsx
|
|
2708
2546
|
import "react";
|
|
2709
|
-
import { jsx as
|
|
2547
|
+
import { jsx as jsx32 } from "react/jsx-runtime";
|
|
2710
2548
|
function Checkbox({
|
|
2711
2549
|
className,
|
|
2712
2550
|
checked,
|
|
@@ -2722,7 +2560,7 @@ function Checkbox({
|
|
|
2722
2560
|
...onCheckedChange ? { onChange: onCheckedChange } : {}
|
|
2723
2561
|
});
|
|
2724
2562
|
const state = on ? "checked" : "unchecked";
|
|
2725
|
-
return /* @__PURE__ */
|
|
2563
|
+
return /* @__PURE__ */ jsx32(
|
|
2726
2564
|
"button",
|
|
2727
2565
|
{
|
|
2728
2566
|
type: "button",
|
|
@@ -2740,12 +2578,12 @@ function Checkbox({
|
|
|
2740
2578
|
setOn(!on);
|
|
2741
2579
|
},
|
|
2742
2580
|
...props,
|
|
2743
|
-
children: on && /* @__PURE__ */
|
|
2581
|
+
children: on && /* @__PURE__ */ jsx32(
|
|
2744
2582
|
"span",
|
|
2745
2583
|
{
|
|
2746
2584
|
"data-slot": "checkbox-indicator",
|
|
2747
2585
|
className: "flex items-center justify-center text-current transition-none",
|
|
2748
|
-
children: /* @__PURE__ */
|
|
2586
|
+
children: /* @__PURE__ */ jsx32(
|
|
2749
2587
|
"svg",
|
|
2750
2588
|
{
|
|
2751
2589
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -2757,7 +2595,7 @@ function Checkbox({
|
|
|
2757
2595
|
strokeLinejoin: "round",
|
|
2758
2596
|
className: "size-3.5",
|
|
2759
2597
|
"aria-hidden": "true",
|
|
2760
|
-
children: /* @__PURE__ */
|
|
2598
|
+
children: /* @__PURE__ */ jsx32("path", { d: "M20 6 9 17l-5-5" })
|
|
2761
2599
|
}
|
|
2762
2600
|
)
|
|
2763
2601
|
}
|
|
@@ -2767,15 +2605,15 @@ function Checkbox({
|
|
|
2767
2605
|
}
|
|
2768
2606
|
|
|
2769
2607
|
// src/components/radio-group.tsx
|
|
2770
|
-
import * as
|
|
2608
|
+
import * as React42 from "react";
|
|
2771
2609
|
|
|
2772
2610
|
// src/generated/radio-group.ts
|
|
2773
2611
|
var RADIO_GROUP_ROOT = "grid gap-3";
|
|
2774
2612
|
var RADIO_GROUP_ITEM = "border-input text-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 aria-invalid:border-destructive aspect-square size-4 shrink-0 rounded-full border shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50";
|
|
2775
2613
|
|
|
2776
2614
|
// src/components/radio-group.tsx
|
|
2777
|
-
import { jsx as
|
|
2778
|
-
var RadioGroupContext =
|
|
2615
|
+
import { jsx as jsx33 } from "react/jsx-runtime";
|
|
2616
|
+
var RadioGroupContext = React42.createContext(
|
|
2779
2617
|
null
|
|
2780
2618
|
);
|
|
2781
2619
|
function RadioGroup({
|
|
@@ -2792,10 +2630,10 @@ function RadioGroup({
|
|
|
2792
2630
|
defaultValue,
|
|
2793
2631
|
...onValueChange ? { onChange: onValueChange } : {}
|
|
2794
2632
|
});
|
|
2795
|
-
const itemsRef =
|
|
2796
|
-
const [count, setCount] =
|
|
2633
|
+
const itemsRef = React42.useRef([]);
|
|
2634
|
+
const [count, setCount] = React42.useState(0);
|
|
2797
2635
|
const { activeIndex, setActiveIndex, onKeyDown: rovingKeyDown } = useRovingFocus({ count, orientation: "vertical", loop: true });
|
|
2798
|
-
const register =
|
|
2636
|
+
const register = React42.useCallback((el) => {
|
|
2799
2637
|
const list = itemsRef.current;
|
|
2800
2638
|
let index = list.indexOf(el);
|
|
2801
2639
|
if (index === -1) {
|
|
@@ -2805,11 +2643,11 @@ function RadioGroup({
|
|
|
2805
2643
|
}
|
|
2806
2644
|
return index;
|
|
2807
2645
|
}, []);
|
|
2808
|
-
const ctx =
|
|
2646
|
+
const ctx = React42.useMemo(
|
|
2809
2647
|
() => ({ value: current, setValue: setCurrent, register, activeIndex, setActiveIndex }),
|
|
2810
2648
|
[current, setCurrent, register, activeIndex, setActiveIndex]
|
|
2811
2649
|
);
|
|
2812
|
-
return /* @__PURE__ */
|
|
2650
|
+
return /* @__PURE__ */ jsx33(RadioGroupContext.Provider, { value: ctx, children: /* @__PURE__ */ jsx33(
|
|
2813
2651
|
"div",
|
|
2814
2652
|
{
|
|
2815
2653
|
"data-slot": "radio-group",
|
|
@@ -2831,14 +2669,14 @@ function RadioGroupItem({
|
|
|
2831
2669
|
onClick,
|
|
2832
2670
|
...props
|
|
2833
2671
|
}) {
|
|
2834
|
-
const ctx =
|
|
2672
|
+
const ctx = React42.useContext(RadioGroupContext);
|
|
2835
2673
|
if (!ctx) throw new Error("RadioGroupItem must be used within a RadioGroup");
|
|
2836
|
-
const indexRef =
|
|
2674
|
+
const indexRef = React42.useRef(-1);
|
|
2837
2675
|
const checked = ctx.value === value;
|
|
2838
|
-
|
|
2676
|
+
React42.useEffect(() => {
|
|
2839
2677
|
if (checked) ctx.setActiveIndex(indexRef.current);
|
|
2840
2678
|
}, [checked]);
|
|
2841
|
-
return /* @__PURE__ */
|
|
2679
|
+
return /* @__PURE__ */ jsx33(
|
|
2842
2680
|
"button",
|
|
2843
2681
|
{
|
|
2844
2682
|
ref: (el) => {
|
|
@@ -2857,18 +2695,18 @@ function RadioGroupItem({
|
|
|
2857
2695
|
ctx.setValue(value);
|
|
2858
2696
|
},
|
|
2859
2697
|
...props,
|
|
2860
|
-
children: checked ? /* @__PURE__ */
|
|
2698
|
+
children: checked ? /* @__PURE__ */ jsx33(
|
|
2861
2699
|
"span",
|
|
2862
2700
|
{
|
|
2863
2701
|
"data-slot": "radio-group-indicator",
|
|
2864
2702
|
className: "relative flex items-center justify-center",
|
|
2865
|
-
children: /* @__PURE__ */
|
|
2703
|
+
children: /* @__PURE__ */ jsx33(
|
|
2866
2704
|
"svg",
|
|
2867
2705
|
{
|
|
2868
2706
|
className: "fill-primary absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2",
|
|
2869
2707
|
viewBox: "0 0 24 24",
|
|
2870
2708
|
"aria-hidden": "true",
|
|
2871
|
-
children: /* @__PURE__ */
|
|
2709
|
+
children: /* @__PURE__ */ jsx33("circle", { cx: "12", cy: "12", r: "10" })
|
|
2872
2710
|
}
|
|
2873
2711
|
)
|
|
2874
2712
|
}
|
|
@@ -2878,7 +2716,7 @@ function RadioGroupItem({
|
|
|
2878
2716
|
}
|
|
2879
2717
|
|
|
2880
2718
|
// src/components/slider.tsx
|
|
2881
|
-
import * as
|
|
2719
|
+
import * as React43 from "react";
|
|
2882
2720
|
|
|
2883
2721
|
// src/generated/slider.ts
|
|
2884
2722
|
var SLIDER_ROOT = "relative flex w-full touch-none items-center select-none data-[disabled]:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col";
|
|
@@ -2887,7 +2725,7 @@ var SLIDER_RANGE = "bg-primary absolute data-[orientation=horizontal]:h-full dat
|
|
|
2887
2725
|
var SLIDER_THUMB = "border-primary ring-ring/50 block size-4 shrink-0 rounded-full border bg-white shadow-sm transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50";
|
|
2888
2726
|
|
|
2889
2727
|
// src/components/slider.tsx
|
|
2890
|
-
import { jsx as
|
|
2728
|
+
import { jsx as jsx34, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
2891
2729
|
function clampStep(value, min, max, step) {
|
|
2892
2730
|
const clamped = Math.min(max, Math.max(min, value));
|
|
2893
2731
|
if (step <= 0) return clamped;
|
|
@@ -2914,9 +2752,9 @@ function Slider({
|
|
|
2914
2752
|
const current = clampStep(raw, min, max, step);
|
|
2915
2753
|
const span = Math.max(max - min, Number.EPSILON);
|
|
2916
2754
|
const percent = Math.min(100, Math.max(0, (current - min) / span * 100));
|
|
2917
|
-
const trackRef =
|
|
2918
|
-
const draggingRef =
|
|
2919
|
-
const valueFromPointer =
|
|
2755
|
+
const trackRef = React43.useRef(null);
|
|
2756
|
+
const draggingRef = React43.useRef(false);
|
|
2757
|
+
const valueFromPointer = React43.useCallback(
|
|
2920
2758
|
(clientX, clientY) => {
|
|
2921
2759
|
const rect = trackRef.current?.getBoundingClientRect();
|
|
2922
2760
|
if (!rect) return current;
|
|
@@ -2965,7 +2803,7 @@ function Slider({
|
|
|
2965
2803
|
};
|
|
2966
2804
|
const rangeStyle = orientation === "vertical" ? { height: `${percent}%` } : { width: `${percent}%` };
|
|
2967
2805
|
const thumbStyle = orientation === "vertical" ? { position: "absolute", bottom: `${percent}%`, left: "50%", transform: "translate(-50%, 50%)" } : { position: "absolute", left: `${percent}%`, top: "50%", transform: "translate(-50%, -50%)" };
|
|
2968
|
-
return /* @__PURE__ */
|
|
2806
|
+
return /* @__PURE__ */ jsxs7(
|
|
2969
2807
|
"span",
|
|
2970
2808
|
{
|
|
2971
2809
|
"data-slot": "slider",
|
|
@@ -2977,14 +2815,14 @@ function Slider({
|
|
|
2977
2815
|
onPointerMove,
|
|
2978
2816
|
onPointerUp,
|
|
2979
2817
|
children: [
|
|
2980
|
-
/* @__PURE__ */
|
|
2818
|
+
/* @__PURE__ */ jsx34(
|
|
2981
2819
|
"span",
|
|
2982
2820
|
{
|
|
2983
2821
|
ref: trackRef,
|
|
2984
2822
|
"data-slot": "slider-track",
|
|
2985
2823
|
"data-orientation": orientation,
|
|
2986
2824
|
className: SLIDER_TRACK,
|
|
2987
|
-
children: /* @__PURE__ */
|
|
2825
|
+
children: /* @__PURE__ */ jsx34(
|
|
2988
2826
|
"span",
|
|
2989
2827
|
{
|
|
2990
2828
|
"data-slot": "slider-range",
|
|
@@ -2995,7 +2833,7 @@ function Slider({
|
|
|
2995
2833
|
)
|
|
2996
2834
|
}
|
|
2997
2835
|
),
|
|
2998
|
-
/* @__PURE__ */
|
|
2836
|
+
/* @__PURE__ */ jsx34(
|
|
2999
2837
|
"span",
|
|
3000
2838
|
{
|
|
3001
2839
|
"data-slot": "slider-thumb",
|
|
@@ -3030,15 +2868,15 @@ var scrollBarOrientations = {
|
|
|
3030
2868
|
};
|
|
3031
2869
|
|
|
3032
2870
|
// src/components/scroll-area.tsx
|
|
3033
|
-
import { jsx as
|
|
2871
|
+
import { jsx as jsx35, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
3034
2872
|
function ScrollArea({
|
|
3035
2873
|
className,
|
|
3036
2874
|
children,
|
|
3037
2875
|
...props
|
|
3038
2876
|
}) {
|
|
3039
|
-
return /* @__PURE__ */
|
|
3040
|
-
/* @__PURE__ */
|
|
3041
|
-
/* @__PURE__ */
|
|
2877
|
+
return /* @__PURE__ */ jsxs8("div", { "data-slot": "scroll-area", className: cn("relative", className), ...props, children: [
|
|
2878
|
+
/* @__PURE__ */ jsx35("div", { "data-slot": "scroll-area-viewport", className: SCROLL_AREA_VIEWPORT, children }),
|
|
2879
|
+
/* @__PURE__ */ jsx35(ScrollBar, {})
|
|
3042
2880
|
] });
|
|
3043
2881
|
}
|
|
3044
2882
|
function ScrollBar({
|
|
@@ -3046,20 +2884,20 @@ function ScrollBar({
|
|
|
3046
2884
|
orientation = "vertical",
|
|
3047
2885
|
...props
|
|
3048
2886
|
}) {
|
|
3049
|
-
return /* @__PURE__ */
|
|
2887
|
+
return /* @__PURE__ */ jsx35(
|
|
3050
2888
|
"div",
|
|
3051
2889
|
{
|
|
3052
2890
|
"data-slot": "scroll-area-scrollbar",
|
|
3053
2891
|
"data-orientation": orientation,
|
|
3054
2892
|
className: cn(SCROLLBAR_BASE, scrollBarOrientations[orientation], className),
|
|
3055
2893
|
...props,
|
|
3056
|
-
children: /* @__PURE__ */
|
|
2894
|
+
children: /* @__PURE__ */ jsx35("div", { "data-slot": "scroll-area-thumb", className: SCROLL_AREA_THUMB })
|
|
3057
2895
|
}
|
|
3058
2896
|
);
|
|
3059
2897
|
}
|
|
3060
2898
|
|
|
3061
2899
|
// src/components/sidebar.tsx
|
|
3062
|
-
import * as
|
|
2900
|
+
import * as React45 from "react";
|
|
3063
2901
|
|
|
3064
2902
|
// src/generated/sidebar.ts
|
|
3065
2903
|
var SIDEBAR_MENU_BUTTON_BASE = "peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0";
|
|
@@ -3089,12 +2927,12 @@ var SIDEBAR_MENU = "flex w-full min-w-0 flex-col gap-1";
|
|
|
3089
2927
|
var SIDEBAR_MENU_ITEM = "group/menu-item relative";
|
|
3090
2928
|
|
|
3091
2929
|
// src/components/sidebar.tsx
|
|
3092
|
-
import { jsx as
|
|
2930
|
+
import { jsx as jsx36, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
3093
2931
|
var SIDEBAR_WIDTH = "16rem";
|
|
3094
2932
|
var SIDEBAR_WIDTH_ICON = "3rem";
|
|
3095
|
-
var SidebarContext =
|
|
2933
|
+
var SidebarContext = React45.createContext(null);
|
|
3096
2934
|
function useSidebar() {
|
|
3097
|
-
const ctx =
|
|
2935
|
+
const ctx = React45.useContext(SidebarContext);
|
|
3098
2936
|
if (!ctx) throw new Error("useSidebar must be used within a SidebarProvider.");
|
|
3099
2937
|
return ctx;
|
|
3100
2938
|
}
|
|
@@ -3112,16 +2950,16 @@ function SidebarProvider({
|
|
|
3112
2950
|
defaultValue: defaultOpen,
|
|
3113
2951
|
...onOpenChange ? { onChange: onOpenChange } : {}
|
|
3114
2952
|
});
|
|
3115
|
-
const toggleSidebar =
|
|
2953
|
+
const toggleSidebar = React45.useCallback(
|
|
3116
2954
|
() => setOpen(!open),
|
|
3117
2955
|
[open, setOpen]
|
|
3118
2956
|
);
|
|
3119
2957
|
const state = open ? "expanded" : "collapsed";
|
|
3120
|
-
const contextValue =
|
|
2958
|
+
const contextValue = React45.useMemo(
|
|
3121
2959
|
() => ({ state, open, setOpen, toggleSidebar }),
|
|
3122
2960
|
[state, open, setOpen, toggleSidebar]
|
|
3123
2961
|
);
|
|
3124
|
-
return /* @__PURE__ */
|
|
2962
|
+
return /* @__PURE__ */ jsx36(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx36(
|
|
3125
2963
|
"div",
|
|
3126
2964
|
{
|
|
3127
2965
|
"data-slot": "sidebar-wrapper",
|
|
@@ -3146,7 +2984,7 @@ function Sidebar({
|
|
|
3146
2984
|
}) {
|
|
3147
2985
|
const { state } = useSidebar();
|
|
3148
2986
|
if (collapsible === "none") {
|
|
3149
|
-
return /* @__PURE__ */
|
|
2987
|
+
return /* @__PURE__ */ jsx36(
|
|
3150
2988
|
"div",
|
|
3151
2989
|
{
|
|
3152
2990
|
"data-slot": "sidebar",
|
|
@@ -3156,7 +2994,7 @@ function Sidebar({
|
|
|
3156
2994
|
}
|
|
3157
2995
|
);
|
|
3158
2996
|
}
|
|
3159
|
-
return /* @__PURE__ */
|
|
2997
|
+
return /* @__PURE__ */ jsx36(
|
|
3160
2998
|
"div",
|
|
3161
2999
|
{
|
|
3162
3000
|
className: "group peer text-sidebar-foreground hidden md:block",
|
|
@@ -3165,7 +3003,7 @@ function Sidebar({
|
|
|
3165
3003
|
"data-variant": variant,
|
|
3166
3004
|
"data-side": side,
|
|
3167
3005
|
"data-slot": "sidebar",
|
|
3168
|
-
children: /* @__PURE__ */
|
|
3006
|
+
children: /* @__PURE__ */ jsx36(
|
|
3169
3007
|
"div",
|
|
3170
3008
|
{
|
|
3171
3009
|
"data-slot": "sidebar-inner",
|
|
@@ -3184,7 +3022,7 @@ function SidebarTrigger({
|
|
|
3184
3022
|
...props
|
|
3185
3023
|
}) {
|
|
3186
3024
|
const { toggleSidebar } = useSidebar();
|
|
3187
|
-
return /* @__PURE__ */
|
|
3025
|
+
return /* @__PURE__ */ jsxs9(
|
|
3188
3026
|
"button",
|
|
3189
3027
|
{
|
|
3190
3028
|
type: "button",
|
|
@@ -3199,7 +3037,7 @@ function SidebarTrigger({
|
|
|
3199
3037
|
...props,
|
|
3200
3038
|
children: [
|
|
3201
3039
|
children,
|
|
3202
|
-
/* @__PURE__ */
|
|
3040
|
+
/* @__PURE__ */ jsx36("span", { className: "sr-only", children: "Toggle Sidebar" })
|
|
3203
3041
|
]
|
|
3204
3042
|
}
|
|
3205
3043
|
);
|
|
@@ -3209,7 +3047,7 @@ function SidebarRail({
|
|
|
3209
3047
|
...props
|
|
3210
3048
|
}) {
|
|
3211
3049
|
const { toggleSidebar } = useSidebar();
|
|
3212
|
-
return /* @__PURE__ */
|
|
3050
|
+
return /* @__PURE__ */ jsx36(
|
|
3213
3051
|
"button",
|
|
3214
3052
|
{
|
|
3215
3053
|
type: "button",
|
|
@@ -3225,7 +3063,7 @@ function SidebarRail({
|
|
|
3225
3063
|
);
|
|
3226
3064
|
}
|
|
3227
3065
|
function SidebarInset({ className, ...props }) {
|
|
3228
|
-
return /* @__PURE__ */
|
|
3066
|
+
return /* @__PURE__ */ jsx36(
|
|
3229
3067
|
"main",
|
|
3230
3068
|
{
|
|
3231
3069
|
"data-slot": "sidebar-inset",
|
|
@@ -3235,7 +3073,7 @@ function SidebarInset({ className, ...props }) {
|
|
|
3235
3073
|
);
|
|
3236
3074
|
}
|
|
3237
3075
|
function SidebarHeader({ className, ...props }) {
|
|
3238
|
-
return /* @__PURE__ */
|
|
3076
|
+
return /* @__PURE__ */ jsx36(
|
|
3239
3077
|
"div",
|
|
3240
3078
|
{
|
|
3241
3079
|
"data-slot": "sidebar-header",
|
|
@@ -3246,7 +3084,7 @@ function SidebarHeader({ className, ...props }) {
|
|
|
3246
3084
|
);
|
|
3247
3085
|
}
|
|
3248
3086
|
function SidebarFooter({ className, ...props }) {
|
|
3249
|
-
return /* @__PURE__ */
|
|
3087
|
+
return /* @__PURE__ */ jsx36(
|
|
3250
3088
|
"div",
|
|
3251
3089
|
{
|
|
3252
3090
|
"data-slot": "sidebar-footer",
|
|
@@ -3260,7 +3098,7 @@ function SidebarSeparator({
|
|
|
3260
3098
|
className,
|
|
3261
3099
|
...props
|
|
3262
3100
|
}) {
|
|
3263
|
-
return /* @__PURE__ */
|
|
3101
|
+
return /* @__PURE__ */ jsx36(
|
|
3264
3102
|
"div",
|
|
3265
3103
|
{
|
|
3266
3104
|
"data-slot": "sidebar-separator",
|
|
@@ -3272,7 +3110,7 @@ function SidebarSeparator({
|
|
|
3272
3110
|
);
|
|
3273
3111
|
}
|
|
3274
3112
|
function SidebarContent({ className, ...props }) {
|
|
3275
|
-
return /* @__PURE__ */
|
|
3113
|
+
return /* @__PURE__ */ jsx36(
|
|
3276
3114
|
"div",
|
|
3277
3115
|
{
|
|
3278
3116
|
"data-slot": "sidebar-content",
|
|
@@ -3283,7 +3121,7 @@ function SidebarContent({ className, ...props }) {
|
|
|
3283
3121
|
);
|
|
3284
3122
|
}
|
|
3285
3123
|
function SidebarGroup({ className, ...props }) {
|
|
3286
|
-
return /* @__PURE__ */
|
|
3124
|
+
return /* @__PURE__ */ jsx36(
|
|
3287
3125
|
"div",
|
|
3288
3126
|
{
|
|
3289
3127
|
"data-slot": "sidebar-group",
|
|
@@ -3299,7 +3137,7 @@ function SidebarGroupLabel({
|
|
|
3299
3137
|
...props
|
|
3300
3138
|
}) {
|
|
3301
3139
|
const Comp = asChild ? Slot : "div";
|
|
3302
|
-
return /* @__PURE__ */
|
|
3140
|
+
return /* @__PURE__ */ jsx36(
|
|
3303
3141
|
Comp,
|
|
3304
3142
|
{
|
|
3305
3143
|
"data-slot": "sidebar-group-label",
|
|
@@ -3313,7 +3151,7 @@ function SidebarGroupContent({
|
|
|
3313
3151
|
className,
|
|
3314
3152
|
...props
|
|
3315
3153
|
}) {
|
|
3316
|
-
return /* @__PURE__ */
|
|
3154
|
+
return /* @__PURE__ */ jsx36(
|
|
3317
3155
|
"div",
|
|
3318
3156
|
{
|
|
3319
3157
|
"data-slot": "sidebar-group-content",
|
|
@@ -3324,7 +3162,7 @@ function SidebarGroupContent({
|
|
|
3324
3162
|
);
|
|
3325
3163
|
}
|
|
3326
3164
|
function SidebarMenu({ className, ...props }) {
|
|
3327
|
-
return /* @__PURE__ */
|
|
3165
|
+
return /* @__PURE__ */ jsx36(
|
|
3328
3166
|
"ul",
|
|
3329
3167
|
{
|
|
3330
3168
|
"data-slot": "sidebar-menu",
|
|
@@ -3335,7 +3173,7 @@ function SidebarMenu({ className, ...props }) {
|
|
|
3335
3173
|
);
|
|
3336
3174
|
}
|
|
3337
3175
|
function SidebarMenuItem({ className, ...props }) {
|
|
3338
|
-
return /* @__PURE__ */
|
|
3176
|
+
return /* @__PURE__ */ jsx36(
|
|
3339
3177
|
"li",
|
|
3340
3178
|
{
|
|
3341
3179
|
"data-slot": "sidebar-menu-item",
|
|
@@ -3354,7 +3192,7 @@ function SidebarMenuButton({
|
|
|
3354
3192
|
...props
|
|
3355
3193
|
}) {
|
|
3356
3194
|
const Comp = asChild ? Slot : "button";
|
|
3357
|
-
return /* @__PURE__ */
|
|
3195
|
+
return /* @__PURE__ */ jsx36(
|
|
3358
3196
|
Comp,
|
|
3359
3197
|
{
|
|
3360
3198
|
"data-slot": "sidebar-menu-button",
|
|
@@ -3373,7 +3211,7 @@ function SidebarMenuButton({
|
|
|
3373
3211
|
}
|
|
3374
3212
|
|
|
3375
3213
|
// src/components/carousel.tsx
|
|
3376
|
-
import * as
|
|
3214
|
+
import * as React46 from "react";
|
|
3377
3215
|
|
|
3378
3216
|
// src/generated/carousel.ts
|
|
3379
3217
|
var CAROUSEL_CONTENT_VIEWPORT = "overflow-hidden";
|
|
@@ -3392,10 +3230,10 @@ var CAROUSEL_EDGE_FADE_PREV = "pointer-events-none absolute inset-y-0 left-0 w-2
|
|
|
3392
3230
|
var CAROUSEL_EDGE_FADE_NEXT = "pointer-events-none absolute inset-y-0 right-0 w-20 bg-gradient-to-l from-background via-background/60 to-transparent transition-opacity duration-300";
|
|
3393
3231
|
|
|
3394
3232
|
// src/components/carousel.tsx
|
|
3395
|
-
import { Fragment as Fragment3, jsx as
|
|
3396
|
-
var CarouselContext =
|
|
3233
|
+
import { Fragment as Fragment3, jsx as jsx37, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
3234
|
+
var CarouselContext = React46.createContext(null);
|
|
3397
3235
|
function useCarousel() {
|
|
3398
|
-
const context =
|
|
3236
|
+
const context = React46.useContext(CarouselContext);
|
|
3399
3237
|
if (!context) {
|
|
3400
3238
|
throw new Error("useCarousel must be used within a <Carousel />");
|
|
3401
3239
|
}
|
|
@@ -3416,13 +3254,13 @@ function Carousel({
|
|
|
3416
3254
|
defaultValue: defaultIndex,
|
|
3417
3255
|
onChange: onIndexChange
|
|
3418
3256
|
});
|
|
3419
|
-
const [count, setCount] =
|
|
3257
|
+
const [count, setCount] = React46.useState(0);
|
|
3420
3258
|
const canScrollPrev = index > 0;
|
|
3421
3259
|
const canScrollNext = index < count - 1;
|
|
3422
|
-
const scrollPrev =
|
|
3260
|
+
const scrollPrev = React46.useCallback(() => {
|
|
3423
3261
|
if (index > 0) setIndex(index - 1);
|
|
3424
3262
|
}, [index, setIndex]);
|
|
3425
|
-
const scrollNext =
|
|
3263
|
+
const scrollNext = React46.useCallback(() => {
|
|
3426
3264
|
if (index < count - 1) setIndex(index + 1);
|
|
3427
3265
|
}, [index, count, setIndex]);
|
|
3428
3266
|
const handleKeyDown = (event) => {
|
|
@@ -3435,7 +3273,7 @@ function Carousel({
|
|
|
3435
3273
|
}
|
|
3436
3274
|
onKeyDown?.(event);
|
|
3437
3275
|
};
|
|
3438
|
-
return /* @__PURE__ */
|
|
3276
|
+
return /* @__PURE__ */ jsx37(
|
|
3439
3277
|
CarouselContext.Provider,
|
|
3440
3278
|
{
|
|
3441
3279
|
value: {
|
|
@@ -3448,7 +3286,7 @@ function Carousel({
|
|
|
3448
3286
|
canScrollPrev,
|
|
3449
3287
|
canScrollNext
|
|
3450
3288
|
},
|
|
3451
|
-
children: /* @__PURE__ */
|
|
3289
|
+
children: /* @__PURE__ */ jsx37(
|
|
3452
3290
|
"div",
|
|
3453
3291
|
{
|
|
3454
3292
|
onKeyDownCapture: handleKeyDown,
|
|
@@ -3470,12 +3308,12 @@ function CarouselContent({
|
|
|
3470
3308
|
...props
|
|
3471
3309
|
}) {
|
|
3472
3310
|
const { orientation, index, setCount } = useCarousel();
|
|
3473
|
-
const childCount =
|
|
3474
|
-
|
|
3311
|
+
const childCount = React46.Children.count(children);
|
|
3312
|
+
React46.useEffect(() => {
|
|
3475
3313
|
setCount(childCount);
|
|
3476
3314
|
}, [childCount, setCount]);
|
|
3477
3315
|
const transform = orientation === "horizontal" ? `translate3d(-${index * 100}%, 0, 0)` : `translate3d(0, -${index * 100}%, 0)`;
|
|
3478
|
-
return /* @__PURE__ */
|
|
3316
|
+
return /* @__PURE__ */ jsx37("div", { className: CAROUSEL_CONTENT_VIEWPORT, "data-slot": "carousel-content", children: /* @__PURE__ */ jsx37(
|
|
3479
3317
|
"div",
|
|
3480
3318
|
{
|
|
3481
3319
|
className: cn(
|
|
@@ -3494,7 +3332,7 @@ function CarouselItem({
|
|
|
3494
3332
|
...props
|
|
3495
3333
|
}) {
|
|
3496
3334
|
const { orientation } = useCarousel();
|
|
3497
|
-
return /* @__PURE__ */
|
|
3335
|
+
return /* @__PURE__ */ jsx37(
|
|
3498
3336
|
"div",
|
|
3499
3337
|
{
|
|
3500
3338
|
role: "group",
|
|
@@ -3513,8 +3351,8 @@ function CarouselEdgeFade({
|
|
|
3513
3351
|
className
|
|
3514
3352
|
}) {
|
|
3515
3353
|
const { canScrollPrev, canScrollNext } = useCarousel();
|
|
3516
|
-
return /* @__PURE__ */
|
|
3517
|
-
/* @__PURE__ */
|
|
3354
|
+
return /* @__PURE__ */ jsxs10(Fragment3, { children: [
|
|
3355
|
+
/* @__PURE__ */ jsx37(
|
|
3518
3356
|
"div",
|
|
3519
3357
|
{
|
|
3520
3358
|
"aria-hidden": true,
|
|
@@ -3525,7 +3363,7 @@ function CarouselEdgeFade({
|
|
|
3525
3363
|
)
|
|
3526
3364
|
}
|
|
3527
3365
|
),
|
|
3528
|
-
/* @__PURE__ */
|
|
3366
|
+
/* @__PURE__ */ jsx37(
|
|
3529
3367
|
"div",
|
|
3530
3368
|
{
|
|
3531
3369
|
"aria-hidden": true,
|
|
@@ -3545,7 +3383,7 @@ function CarouselPrevious({
|
|
|
3545
3383
|
...props
|
|
3546
3384
|
}) {
|
|
3547
3385
|
const { orientation, scrollPrev, canScrollPrev } = useCarousel();
|
|
3548
|
-
return /* @__PURE__ */
|
|
3386
|
+
return /* @__PURE__ */ jsxs10(
|
|
3549
3387
|
Button,
|
|
3550
3388
|
{
|
|
3551
3389
|
"data-slot": "carousel-previous",
|
|
@@ -3560,7 +3398,7 @@ function CarouselPrevious({
|
|
|
3560
3398
|
onClick: scrollPrev,
|
|
3561
3399
|
...props,
|
|
3562
3400
|
children: [
|
|
3563
|
-
/* @__PURE__ */
|
|
3401
|
+
/* @__PURE__ */ jsx37(
|
|
3564
3402
|
"svg",
|
|
3565
3403
|
{
|
|
3566
3404
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -3571,10 +3409,10 @@ function CarouselPrevious({
|
|
|
3571
3409
|
strokeLinecap: "round",
|
|
3572
3410
|
strokeLinejoin: "round",
|
|
3573
3411
|
"aria-hidden": "true",
|
|
3574
|
-
children: /* @__PURE__ */
|
|
3412
|
+
children: /* @__PURE__ */ jsx37("path", { d: "m15 18-6-6 6-6" })
|
|
3575
3413
|
}
|
|
3576
3414
|
),
|
|
3577
|
-
/* @__PURE__ */
|
|
3415
|
+
/* @__PURE__ */ jsx37("span", { className: "sr-only", children: "Previous slide" })
|
|
3578
3416
|
]
|
|
3579
3417
|
}
|
|
3580
3418
|
);
|
|
@@ -3586,7 +3424,7 @@ function CarouselNext({
|
|
|
3586
3424
|
...props
|
|
3587
3425
|
}) {
|
|
3588
3426
|
const { orientation, scrollNext, canScrollNext } = useCarousel();
|
|
3589
|
-
return /* @__PURE__ */
|
|
3427
|
+
return /* @__PURE__ */ jsxs10(
|
|
3590
3428
|
Button,
|
|
3591
3429
|
{
|
|
3592
3430
|
"data-slot": "carousel-next",
|
|
@@ -3601,7 +3439,7 @@ function CarouselNext({
|
|
|
3601
3439
|
onClick: scrollNext,
|
|
3602
3440
|
...props,
|
|
3603
3441
|
children: [
|
|
3604
|
-
/* @__PURE__ */
|
|
3442
|
+
/* @__PURE__ */ jsx37(
|
|
3605
3443
|
"svg",
|
|
3606
3444
|
{
|
|
3607
3445
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -3612,17 +3450,17 @@ function CarouselNext({
|
|
|
3612
3450
|
strokeLinecap: "round",
|
|
3613
3451
|
strokeLinejoin: "round",
|
|
3614
3452
|
"aria-hidden": "true",
|
|
3615
|
-
children: /* @__PURE__ */
|
|
3453
|
+
children: /* @__PURE__ */ jsx37("path", { d: "m9 18 6-6-6-6" })
|
|
3616
3454
|
}
|
|
3617
3455
|
),
|
|
3618
|
-
/* @__PURE__ */
|
|
3456
|
+
/* @__PURE__ */ jsx37("span", { className: "sr-only", children: "Next slide" })
|
|
3619
3457
|
]
|
|
3620
3458
|
}
|
|
3621
3459
|
);
|
|
3622
3460
|
}
|
|
3623
3461
|
|
|
3624
3462
|
// src/components/input-otp.tsx
|
|
3625
|
-
import * as
|
|
3463
|
+
import * as React47 from "react";
|
|
3626
3464
|
|
|
3627
3465
|
// src/generated/input-otp.ts
|
|
3628
3466
|
var INPUT_OTP_CONTAINER = "relative flex items-center gap-2 has-disabled:opacity-50";
|
|
@@ -3633,10 +3471,10 @@ var INPUT_OTP_SLOT_CARET_WRAPPER = "pointer-events-none absolute inset-0 flex it
|
|
|
3633
3471
|
var INPUT_OTP_SLOT_CARET = "animate-caret-blink bg-foreground h-4 w-px duration-1000";
|
|
3634
3472
|
|
|
3635
3473
|
// src/components/input-otp.tsx
|
|
3636
|
-
import { jsx as
|
|
3637
|
-
var InputOTPContext =
|
|
3474
|
+
import { jsx as jsx38, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
3475
|
+
var InputOTPContext = React47.createContext(null);
|
|
3638
3476
|
function useInputOTP() {
|
|
3639
|
-
const context =
|
|
3477
|
+
const context = React47.useContext(InputOTPContext);
|
|
3640
3478
|
if (!context) {
|
|
3641
3479
|
throw new Error("InputOTP slots must be used within an <InputOTP />");
|
|
3642
3480
|
}
|
|
@@ -3658,16 +3496,16 @@ function InputOTP({
|
|
|
3658
3496
|
defaultValue,
|
|
3659
3497
|
onChange
|
|
3660
3498
|
});
|
|
3661
|
-
const [focused, setFocused] =
|
|
3499
|
+
const [focused, setFocused] = React47.useState(false);
|
|
3662
3500
|
const activeIndex = focused ? Math.min(value.length, maxLength - 1) : -1;
|
|
3663
|
-
return /* @__PURE__ */
|
|
3501
|
+
return /* @__PURE__ */ jsx38(InputOTPContext.Provider, { value: { value, maxLength, activeIndex }, children: /* @__PURE__ */ jsxs11(
|
|
3664
3502
|
"div",
|
|
3665
3503
|
{
|
|
3666
3504
|
"data-slot": "input-otp",
|
|
3667
3505
|
className: cn(INPUT_OTP_CONTAINER, containerClassName),
|
|
3668
3506
|
children: [
|
|
3669
3507
|
children,
|
|
3670
|
-
/* @__PURE__ */
|
|
3508
|
+
/* @__PURE__ */ jsx38(
|
|
3671
3509
|
"input",
|
|
3672
3510
|
{
|
|
3673
3511
|
inputMode: "numeric",
|
|
@@ -3690,7 +3528,7 @@ function InputOTPGroup({
|
|
|
3690
3528
|
className,
|
|
3691
3529
|
...props
|
|
3692
3530
|
}) {
|
|
3693
|
-
return /* @__PURE__ */
|
|
3531
|
+
return /* @__PURE__ */ jsx38(
|
|
3694
3532
|
"div",
|
|
3695
3533
|
{
|
|
3696
3534
|
"data-slot": "input-otp-group",
|
|
@@ -3704,7 +3542,7 @@ function InputOTPSlot({ index, className, ...props }) {
|
|
|
3704
3542
|
const char = value[index];
|
|
3705
3543
|
const isActive = activeIndex === index;
|
|
3706
3544
|
const hasFakeCaret = isActive && char === void 0;
|
|
3707
|
-
return /* @__PURE__ */
|
|
3545
|
+
return /* @__PURE__ */ jsxs11(
|
|
3708
3546
|
"div",
|
|
3709
3547
|
{
|
|
3710
3548
|
"data-slot": "input-otp-slot",
|
|
@@ -3713,13 +3551,13 @@ function InputOTPSlot({ index, className, ...props }) {
|
|
|
3713
3551
|
...props,
|
|
3714
3552
|
children: [
|
|
3715
3553
|
char,
|
|
3716
|
-
hasFakeCaret && /* @__PURE__ */
|
|
3554
|
+
hasFakeCaret && /* @__PURE__ */ jsx38("div", { className: INPUT_OTP_SLOT_CARET_WRAPPER, children: /* @__PURE__ */ jsx38("div", { className: INPUT_OTP_SLOT_CARET }) })
|
|
3717
3555
|
]
|
|
3718
3556
|
}
|
|
3719
3557
|
);
|
|
3720
3558
|
}
|
|
3721
3559
|
function InputOTPSeparator({ ...props }) {
|
|
3722
|
-
return /* @__PURE__ */
|
|
3560
|
+
return /* @__PURE__ */ jsx38("div", { "data-slot": "input-otp-separator", role: "separator", ...props, children: /* @__PURE__ */ jsx38(
|
|
3723
3561
|
"svg",
|
|
3724
3562
|
{
|
|
3725
3563
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -3730,27 +3568,27 @@ function InputOTPSeparator({ ...props }) {
|
|
|
3730
3568
|
strokeLinecap: "round",
|
|
3731
3569
|
strokeLinejoin: "round",
|
|
3732
3570
|
"aria-hidden": "true",
|
|
3733
|
-
children: /* @__PURE__ */
|
|
3571
|
+
children: /* @__PURE__ */ jsx38("path", { d: "M5 12h14" })
|
|
3734
3572
|
}
|
|
3735
3573
|
) });
|
|
3736
3574
|
}
|
|
3737
3575
|
|
|
3738
3576
|
// src/components/tooltip.tsx
|
|
3739
|
-
import * as
|
|
3577
|
+
import * as React48 from "react";
|
|
3740
3578
|
|
|
3741
3579
|
// src/generated/tooltip.ts
|
|
3742
3580
|
var TOOLTIP_CONTENT = "bg-foreground text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit rounded-md px-3 py-1.5 text-xs text-balance";
|
|
3743
3581
|
|
|
3744
3582
|
// src/components/tooltip.tsx
|
|
3745
|
-
import { Fragment as Fragment4, jsx as
|
|
3746
|
-
var TooltipContext =
|
|
3583
|
+
import { Fragment as Fragment4, jsx as jsx39 } from "react/jsx-runtime";
|
|
3584
|
+
var TooltipContext = React48.createContext(null);
|
|
3747
3585
|
function useTooltip() {
|
|
3748
|
-
const ctx =
|
|
3586
|
+
const ctx = React48.useContext(TooltipContext);
|
|
3749
3587
|
if (!ctx) throw new Error("Tooltip parts must be used within <Tooltip>");
|
|
3750
3588
|
return ctx;
|
|
3751
3589
|
}
|
|
3752
3590
|
function TooltipProvider({ children }) {
|
|
3753
|
-
return /* @__PURE__ */
|
|
3591
|
+
return /* @__PURE__ */ jsx39(Fragment4, { children });
|
|
3754
3592
|
}
|
|
3755
3593
|
function Tooltip({ open, defaultOpen = false, onOpenChange, children }) {
|
|
3756
3594
|
const [isOpen, setOpen] = useControllableState({
|
|
@@ -3758,8 +3596,8 @@ function Tooltip({ open, defaultOpen = false, onOpenChange, children }) {
|
|
|
3758
3596
|
defaultValue: defaultOpen,
|
|
3759
3597
|
...onOpenChange ? { onChange: onOpenChange } : {}
|
|
3760
3598
|
});
|
|
3761
|
-
const anchorRef =
|
|
3762
|
-
return /* @__PURE__ */
|
|
3599
|
+
const anchorRef = React48.useRef(null);
|
|
3600
|
+
return /* @__PURE__ */ jsx39(TooltipProvider, { children: /* @__PURE__ */ jsx39(TooltipContext.Provider, { value: { open: isOpen, setOpen, anchorRef }, children }) });
|
|
3763
3601
|
}
|
|
3764
3602
|
function TooltipTrigger({
|
|
3765
3603
|
asChild = false,
|
|
@@ -3771,7 +3609,7 @@ function TooltipTrigger({
|
|
|
3771
3609
|
}) {
|
|
3772
3610
|
const { setOpen, anchorRef } = useTooltip();
|
|
3773
3611
|
const Comp = asChild ? Slot : "button";
|
|
3774
|
-
return /* @__PURE__ */
|
|
3612
|
+
return /* @__PURE__ */ jsx39(
|
|
3775
3613
|
Comp,
|
|
3776
3614
|
{
|
|
3777
3615
|
"data-slot": "tooltip-trigger",
|
|
@@ -3812,7 +3650,7 @@ function TooltipContent({
|
|
|
3812
3650
|
offset: sideOffset
|
|
3813
3651
|
});
|
|
3814
3652
|
if (!isPresent) return null;
|
|
3815
|
-
return /* @__PURE__ */
|
|
3653
|
+
return /* @__PURE__ */ jsx39(Portal, { children: /* @__PURE__ */ jsx39(
|
|
3816
3654
|
"div",
|
|
3817
3655
|
{
|
|
3818
3656
|
"data-slot": "tooltip-content",
|
|
@@ -3829,16 +3667,16 @@ function TooltipContent({
|
|
|
3829
3667
|
}
|
|
3830
3668
|
|
|
3831
3669
|
// src/components/popover.tsx
|
|
3832
|
-
import * as
|
|
3670
|
+
import * as React49 from "react";
|
|
3833
3671
|
|
|
3834
3672
|
// src/generated/popover.ts
|
|
3835
3673
|
var POPOVER_CONTENT = "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 rounded-md border p-4 shadow-md outline-hidden";
|
|
3836
3674
|
|
|
3837
3675
|
// src/components/popover.tsx
|
|
3838
|
-
import { jsx as
|
|
3839
|
-
var PopoverContext =
|
|
3676
|
+
import { jsx as jsx40 } from "react/jsx-runtime";
|
|
3677
|
+
var PopoverContext = React49.createContext(null);
|
|
3840
3678
|
function usePopover() {
|
|
3841
|
-
const ctx =
|
|
3679
|
+
const ctx = React49.useContext(PopoverContext);
|
|
3842
3680
|
if (!ctx) throw new Error("Popover parts must be used within <Popover>");
|
|
3843
3681
|
return ctx;
|
|
3844
3682
|
}
|
|
@@ -3848,13 +3686,13 @@ function Popover({ open, defaultOpen = false, onOpenChange, children }) {
|
|
|
3848
3686
|
defaultValue: defaultOpen,
|
|
3849
3687
|
...onOpenChange ? { onChange: onOpenChange } : {}
|
|
3850
3688
|
});
|
|
3851
|
-
const anchorRef =
|
|
3852
|
-
return /* @__PURE__ */
|
|
3689
|
+
const anchorRef = React49.useRef(null);
|
|
3690
|
+
return /* @__PURE__ */ jsx40(PopoverContext.Provider, { value: { open: isOpen, setOpen, anchorRef }, children });
|
|
3853
3691
|
}
|
|
3854
3692
|
function PopoverTrigger({ asChild = false, onClick, ...props }) {
|
|
3855
3693
|
const { open, setOpen, anchorRef } = usePopover();
|
|
3856
3694
|
const Comp = asChild ? Slot : "button";
|
|
3857
|
-
return /* @__PURE__ */
|
|
3695
|
+
return /* @__PURE__ */ jsx40(
|
|
3858
3696
|
Comp,
|
|
3859
3697
|
{
|
|
3860
3698
|
"data-slot": "popover-trigger",
|
|
@@ -3871,7 +3709,7 @@ function PopoverTrigger({ asChild = false, onClick, ...props }) {
|
|
|
3871
3709
|
function PopoverAnchor({ asChild = false, ...props }) {
|
|
3872
3710
|
const { anchorRef } = usePopover();
|
|
3873
3711
|
const Comp = asChild ? Slot : "div";
|
|
3874
|
-
return /* @__PURE__ */
|
|
3712
|
+
return /* @__PURE__ */ jsx40(
|
|
3875
3713
|
Comp,
|
|
3876
3714
|
{
|
|
3877
3715
|
"data-slot": "popover-anchor",
|
|
@@ -3903,7 +3741,7 @@ function PopoverContent({
|
|
|
3903
3741
|
exclude: [anchorRef]
|
|
3904
3742
|
});
|
|
3905
3743
|
if (!isPresent) return null;
|
|
3906
|
-
return /* @__PURE__ */
|
|
3744
|
+
return /* @__PURE__ */ jsx40(Portal, { children: /* @__PURE__ */ jsx40(
|
|
3907
3745
|
"div",
|
|
3908
3746
|
{
|
|
3909
3747
|
"data-slot": "popover-content",
|
|
@@ -3923,16 +3761,16 @@ function PopoverContent({
|
|
|
3923
3761
|
}
|
|
3924
3762
|
|
|
3925
3763
|
// src/components/hover-card.tsx
|
|
3926
|
-
import * as
|
|
3764
|
+
import * as React50 from "react";
|
|
3927
3765
|
|
|
3928
3766
|
// src/generated/hover-card.ts
|
|
3929
3767
|
var HOVER_CARD_CONTENT = "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-64 rounded-md border p-4 shadow-md outline-hidden";
|
|
3930
3768
|
|
|
3931
3769
|
// src/components/hover-card.tsx
|
|
3932
|
-
import { jsx as
|
|
3933
|
-
var HoverCardContext =
|
|
3770
|
+
import { jsx as jsx41 } from "react/jsx-runtime";
|
|
3771
|
+
var HoverCardContext = React50.createContext(null);
|
|
3934
3772
|
function useHoverCard() {
|
|
3935
|
-
const ctx =
|
|
3773
|
+
const ctx = React50.useContext(HoverCardContext);
|
|
3936
3774
|
if (!ctx) throw new Error("HoverCard parts must be used within <HoverCard>");
|
|
3937
3775
|
return ctx;
|
|
3938
3776
|
}
|
|
@@ -3942,8 +3780,8 @@ function HoverCard({ open, defaultOpen = false, onOpenChange, children }) {
|
|
|
3942
3780
|
defaultValue: defaultOpen,
|
|
3943
3781
|
...onOpenChange ? { onChange: onOpenChange } : {}
|
|
3944
3782
|
});
|
|
3945
|
-
const anchorRef =
|
|
3946
|
-
return /* @__PURE__ */
|
|
3783
|
+
const anchorRef = React50.useRef(null);
|
|
3784
|
+
return /* @__PURE__ */ jsx41(HoverCardContext.Provider, { value: { open: isOpen, setOpen, anchorRef }, children });
|
|
3947
3785
|
}
|
|
3948
3786
|
function HoverCardTrigger({
|
|
3949
3787
|
asChild = false,
|
|
@@ -3953,7 +3791,7 @@ function HoverCardTrigger({
|
|
|
3953
3791
|
}) {
|
|
3954
3792
|
const { setOpen, anchorRef } = useHoverCard();
|
|
3955
3793
|
const Comp = asChild ? Slot : "a";
|
|
3956
|
-
return /* @__PURE__ */
|
|
3794
|
+
return /* @__PURE__ */ jsx41(
|
|
3957
3795
|
Comp,
|
|
3958
3796
|
{
|
|
3959
3797
|
"data-slot": "hover-card-trigger",
|
|
@@ -3988,7 +3826,7 @@ function HoverCardContent({
|
|
|
3988
3826
|
offset: sideOffset
|
|
3989
3827
|
});
|
|
3990
3828
|
if (!isPresent) return null;
|
|
3991
|
-
return /* @__PURE__ */
|
|
3829
|
+
return /* @__PURE__ */ jsx41(Portal, { children: /* @__PURE__ */ jsx41(
|
|
3992
3830
|
"div",
|
|
3993
3831
|
{
|
|
3994
3832
|
"data-slot": "hover-card-content",
|
|
@@ -4005,7 +3843,7 @@ function HoverCardContent({
|
|
|
4005
3843
|
}
|
|
4006
3844
|
|
|
4007
3845
|
// src/components/dropdown-menu.tsx
|
|
4008
|
-
import * as
|
|
3846
|
+
import * as React51 from "react";
|
|
4009
3847
|
|
|
4010
3848
|
// src/generated/dropdown-menu.ts
|
|
4011
3849
|
var DROPDOWN_MENU_CONTENT = "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md";
|
|
@@ -4019,12 +3857,12 @@ var DROPDOWN_MENU_SEPARATOR = "bg-border -mx-1 my-1 h-px";
|
|
|
4019
3857
|
var DROPDOWN_MENU_SHORTCUT = "text-muted-foreground ml-auto text-xs tracking-widest";
|
|
4020
3858
|
|
|
4021
3859
|
// src/components/dropdown-menu.tsx
|
|
4022
|
-
import { jsx as
|
|
4023
|
-
var DropdownMenuContext =
|
|
3860
|
+
import { jsx as jsx42, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
3861
|
+
var DropdownMenuContext = React51.createContext(
|
|
4024
3862
|
null
|
|
4025
3863
|
);
|
|
4026
3864
|
function useDropdownMenu() {
|
|
4027
|
-
const ctx =
|
|
3865
|
+
const ctx = React51.useContext(DropdownMenuContext);
|
|
4028
3866
|
if (!ctx) throw new Error("DropdownMenu parts must be used within <DropdownMenu>");
|
|
4029
3867
|
return ctx;
|
|
4030
3868
|
}
|
|
@@ -4034,16 +3872,16 @@ function DropdownMenu({ open, defaultOpen = false, onOpenChange, children }) {
|
|
|
4034
3872
|
defaultValue: defaultOpen,
|
|
4035
3873
|
...onOpenChange ? { onChange: onOpenChange } : {}
|
|
4036
3874
|
});
|
|
4037
|
-
const anchorRef =
|
|
4038
|
-
return /* @__PURE__ */
|
|
3875
|
+
const anchorRef = React51.useRef(null);
|
|
3876
|
+
return /* @__PURE__ */ jsx42(DropdownMenuContext.Provider, { value: { open: isOpen, setOpen, anchorRef }, children: /* @__PURE__ */ jsx42("div", { "data-slot": "dropdown-menu", children }) });
|
|
4039
3877
|
}
|
|
4040
3878
|
function DropdownMenuPortal({ children }) {
|
|
4041
|
-
return /* @__PURE__ */
|
|
3879
|
+
return /* @__PURE__ */ jsx42(Portal, { children });
|
|
4042
3880
|
}
|
|
4043
3881
|
function DropdownMenuTrigger({ asChild = false, onClick, ...props }) {
|
|
4044
3882
|
const { open, setOpen, anchorRef } = useDropdownMenu();
|
|
4045
3883
|
const Comp = asChild ? Slot : "button";
|
|
4046
|
-
return /* @__PURE__ */
|
|
3884
|
+
return /* @__PURE__ */ jsx42(
|
|
4047
3885
|
Comp,
|
|
4048
3886
|
{
|
|
4049
3887
|
"data-slot": "dropdown-menu-trigger",
|
|
@@ -4079,7 +3917,7 @@ function DropdownMenuContent({
|
|
|
4079
3917
|
onDismiss: () => setOpen(false),
|
|
4080
3918
|
exclude: [anchorRef]
|
|
4081
3919
|
});
|
|
4082
|
-
const contentRef =
|
|
3920
|
+
const contentRef = React51.useRef(null);
|
|
4083
3921
|
const items = () => Array.from(
|
|
4084
3922
|
contentRef.current?.querySelectorAll("[role^='menuitem']") ?? []
|
|
4085
3923
|
).filter((el) => el.getAttribute("data-disabled") === null);
|
|
@@ -4088,13 +3926,13 @@ function DropdownMenuContent({
|
|
|
4088
3926
|
orientation: "vertical",
|
|
4089
3927
|
loop: true
|
|
4090
3928
|
});
|
|
4091
|
-
|
|
3929
|
+
React51.useEffect(() => {
|
|
4092
3930
|
if (!open) return;
|
|
4093
3931
|
items()[activeIndex]?.focus();
|
|
4094
3932
|
}, [open, activeIndex]);
|
|
4095
|
-
const close =
|
|
3933
|
+
const close = React51.useCallback(() => setOpen(false), [setOpen]);
|
|
4096
3934
|
if (!isPresent) return null;
|
|
4097
|
-
return /* @__PURE__ */
|
|
3935
|
+
return /* @__PURE__ */ jsx42(Portal, { children: /* @__PURE__ */ jsx42(DropdownMenuCloseContext.Provider, { value: close, children: /* @__PURE__ */ jsx42(
|
|
4098
3936
|
"div",
|
|
4099
3937
|
{
|
|
4100
3938
|
"data-slot": "dropdown-menu-content",
|
|
@@ -4117,10 +3955,10 @@ function DropdownMenuContent({
|
|
|
4117
3955
|
}
|
|
4118
3956
|
) }) });
|
|
4119
3957
|
}
|
|
4120
|
-
var DropdownMenuCloseContext =
|
|
3958
|
+
var DropdownMenuCloseContext = React51.createContext(() => {
|
|
4121
3959
|
});
|
|
4122
3960
|
function DropdownMenuGroup({ className, ...props }) {
|
|
4123
|
-
return /* @__PURE__ */
|
|
3961
|
+
return /* @__PURE__ */ jsx42("div", { "data-slot": "dropdown-menu-group", role: "group", className, ...props });
|
|
4124
3962
|
}
|
|
4125
3963
|
function DropdownMenuItem({
|
|
4126
3964
|
className,
|
|
@@ -4131,8 +3969,8 @@ function DropdownMenuItem({
|
|
|
4131
3969
|
onKeyDown,
|
|
4132
3970
|
...props
|
|
4133
3971
|
}) {
|
|
4134
|
-
const close =
|
|
4135
|
-
return /* @__PURE__ */
|
|
3972
|
+
const close = React51.useContext(DropdownMenuCloseContext);
|
|
3973
|
+
return /* @__PURE__ */ jsx42(
|
|
4136
3974
|
"div",
|
|
4137
3975
|
{
|
|
4138
3976
|
"data-slot": "dropdown-menu-item",
|
|
@@ -4169,8 +4007,8 @@ function DropdownMenuCheckboxItem({
|
|
|
4169
4007
|
onClick,
|
|
4170
4008
|
...props
|
|
4171
4009
|
}) {
|
|
4172
|
-
const close =
|
|
4173
|
-
return /* @__PURE__ */
|
|
4010
|
+
const close = React51.useContext(DropdownMenuCloseContext);
|
|
4011
|
+
return /* @__PURE__ */ jsxs12(
|
|
4174
4012
|
"div",
|
|
4175
4013
|
{
|
|
4176
4014
|
"data-slot": "dropdown-menu-checkbox-item",
|
|
@@ -4190,13 +4028,13 @@ function DropdownMenuCheckboxItem({
|
|
|
4190
4028
|
},
|
|
4191
4029
|
...props,
|
|
4192
4030
|
children: [
|
|
4193
|
-
/* @__PURE__ */
|
|
4031
|
+
/* @__PURE__ */ jsx42("span", { className: DROPDOWN_MENU_ITEM_INDICATOR, children: checked ? /* @__PURE__ */ jsx42("svg", { className: "size-4", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: /* @__PURE__ */ jsx42("path", { d: "M20 6 9 17l-5-5" }) }) : null }),
|
|
4194
4032
|
children
|
|
4195
4033
|
]
|
|
4196
4034
|
}
|
|
4197
4035
|
);
|
|
4198
4036
|
}
|
|
4199
|
-
var DropdownMenuRadioGroupContext =
|
|
4037
|
+
var DropdownMenuRadioGroupContext = React51.createContext(null);
|
|
4200
4038
|
function DropdownMenuRadioGroup({
|
|
4201
4039
|
className,
|
|
4202
4040
|
value,
|
|
@@ -4204,11 +4042,11 @@ function DropdownMenuRadioGroup({
|
|
|
4204
4042
|
children,
|
|
4205
4043
|
...props
|
|
4206
4044
|
}) {
|
|
4207
|
-
const ctx =
|
|
4045
|
+
const ctx = React51.useMemo(
|
|
4208
4046
|
() => ({ value, setValue: (next) => onValueChange?.(next) }),
|
|
4209
4047
|
[value, onValueChange]
|
|
4210
4048
|
);
|
|
4211
|
-
return /* @__PURE__ */
|
|
4049
|
+
return /* @__PURE__ */ jsx42(DropdownMenuRadioGroupContext.Provider, { value: ctx, children: /* @__PURE__ */ jsx42("div", { "data-slot": "dropdown-menu-radio-group", role: "group", className, ...props, children }) });
|
|
4212
4050
|
}
|
|
4213
4051
|
function DropdownMenuRadioItem({
|
|
4214
4052
|
className,
|
|
@@ -4218,10 +4056,10 @@ function DropdownMenuRadioItem({
|
|
|
4218
4056
|
onClick,
|
|
4219
4057
|
...props
|
|
4220
4058
|
}) {
|
|
4221
|
-
const close =
|
|
4222
|
-
const group =
|
|
4059
|
+
const close = React51.useContext(DropdownMenuCloseContext);
|
|
4060
|
+
const group = React51.useContext(DropdownMenuRadioGroupContext);
|
|
4223
4061
|
const checked = group?.value === value;
|
|
4224
|
-
return /* @__PURE__ */
|
|
4062
|
+
return /* @__PURE__ */ jsxs12(
|
|
4225
4063
|
"div",
|
|
4226
4064
|
{
|
|
4227
4065
|
"data-slot": "dropdown-menu-radio-item",
|
|
@@ -4242,14 +4080,14 @@ function DropdownMenuRadioItem({
|
|
|
4242
4080
|
},
|
|
4243
4081
|
...props,
|
|
4244
4082
|
children: [
|
|
4245
|
-
/* @__PURE__ */
|
|
4083
|
+
/* @__PURE__ */ jsx42("span", { className: DROPDOWN_MENU_ITEM_INDICATOR, children: checked ? /* @__PURE__ */ jsx42("svg", { className: "size-2 fill-current", viewBox: "0 0 24 24", "aria-hidden": "true", children: /* @__PURE__ */ jsx42("circle", { cx: "12", cy: "12", r: "10" }) }) : null }),
|
|
4246
4084
|
children
|
|
4247
4085
|
]
|
|
4248
4086
|
}
|
|
4249
4087
|
);
|
|
4250
4088
|
}
|
|
4251
4089
|
function DropdownMenuLabel({ className, inset, ...props }) {
|
|
4252
|
-
return /* @__PURE__ */
|
|
4090
|
+
return /* @__PURE__ */ jsx42(
|
|
4253
4091
|
"div",
|
|
4254
4092
|
{
|
|
4255
4093
|
"data-slot": "dropdown-menu-label",
|
|
@@ -4260,7 +4098,7 @@ function DropdownMenuLabel({ className, inset, ...props }) {
|
|
|
4260
4098
|
);
|
|
4261
4099
|
}
|
|
4262
4100
|
function DropdownMenuSeparator({ className, ...props }) {
|
|
4263
|
-
return /* @__PURE__ */
|
|
4101
|
+
return /* @__PURE__ */ jsx42(
|
|
4264
4102
|
"div",
|
|
4265
4103
|
{
|
|
4266
4104
|
"data-slot": "dropdown-menu-separator",
|
|
@@ -4271,7 +4109,7 @@ function DropdownMenuSeparator({ className, ...props }) {
|
|
|
4271
4109
|
);
|
|
4272
4110
|
}
|
|
4273
4111
|
function DropdownMenuShortcut({ className, ...props }) {
|
|
4274
|
-
return /* @__PURE__ */
|
|
4112
|
+
return /* @__PURE__ */ jsx42(
|
|
4275
4113
|
"span",
|
|
4276
4114
|
{
|
|
4277
4115
|
"data-slot": "dropdown-menu-shortcut",
|
|
@@ -4280,18 +4118,18 @@ function DropdownMenuShortcut({ className, ...props }) {
|
|
|
4280
4118
|
}
|
|
4281
4119
|
);
|
|
4282
4120
|
}
|
|
4283
|
-
var DropdownMenuSubContext =
|
|
4121
|
+
var DropdownMenuSubContext = React51.createContext(null);
|
|
4284
4122
|
function DropdownMenuSub({ open, defaultOpen = false, onOpenChange, children }) {
|
|
4285
4123
|
const [isOpen, setOpen] = useControllableState({
|
|
4286
4124
|
...open !== void 0 ? { value: open } : {},
|
|
4287
4125
|
defaultValue: defaultOpen,
|
|
4288
4126
|
...onOpenChange ? { onChange: onOpenChange } : {}
|
|
4289
4127
|
});
|
|
4290
|
-
return /* @__PURE__ */
|
|
4128
|
+
return /* @__PURE__ */ jsx42(DropdownMenuSubContext.Provider, { value: { open: isOpen, setOpen }, children: /* @__PURE__ */ jsx42("div", { "data-slot": "dropdown-menu-sub", children }) });
|
|
4291
4129
|
}
|
|
4292
4130
|
function DropdownMenuSubTrigger({ className, inset, children, onClick, ...props }) {
|
|
4293
|
-
const ctx =
|
|
4294
|
-
return /* @__PURE__ */
|
|
4131
|
+
const ctx = React51.useContext(DropdownMenuSubContext);
|
|
4132
|
+
return /* @__PURE__ */ jsxs12(
|
|
4295
4133
|
"div",
|
|
4296
4134
|
{
|
|
4297
4135
|
"data-slot": "dropdown-menu-sub-trigger",
|
|
@@ -4312,15 +4150,15 @@ function DropdownMenuSubTrigger({ className, inset, children, onClick, ...props
|
|
|
4312
4150
|
...props,
|
|
4313
4151
|
children: [
|
|
4314
4152
|
children,
|
|
4315
|
-
/* @__PURE__ */
|
|
4153
|
+
/* @__PURE__ */ jsx42("svg", { className: "ml-auto size-4", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: /* @__PURE__ */ jsx42("path", { d: "m9 18 6-6-6-6" }) })
|
|
4316
4154
|
]
|
|
4317
4155
|
}
|
|
4318
4156
|
);
|
|
4319
4157
|
}
|
|
4320
4158
|
function DropdownMenuSubContent({ className, children, ...props }) {
|
|
4321
|
-
const ctx =
|
|
4159
|
+
const ctx = React51.useContext(DropdownMenuSubContext);
|
|
4322
4160
|
if (!ctx?.open) return null;
|
|
4323
|
-
return /* @__PURE__ */
|
|
4161
|
+
return /* @__PURE__ */ jsx42(
|
|
4324
4162
|
"div",
|
|
4325
4163
|
{
|
|
4326
4164
|
"data-slot": "dropdown-menu-sub-content",
|
|
@@ -4337,7 +4175,7 @@ function DropdownMenuSubContent({ className, children, ...props }) {
|
|
|
4337
4175
|
}
|
|
4338
4176
|
|
|
4339
4177
|
// src/components/context-menu.tsx
|
|
4340
|
-
import * as
|
|
4178
|
+
import * as React52 from "react";
|
|
4341
4179
|
|
|
4342
4180
|
// src/generated/context-menu.ts
|
|
4343
4181
|
var CONTEXT_MENU_CONTENT = "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-(--radix-context-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md";
|
|
@@ -4350,10 +4188,10 @@ var CONTEXT_MENU_SEPARATOR = "bg-border -mx-1 my-1 h-px";
|
|
|
4350
4188
|
var CONTEXT_MENU_SHORTCUT = "text-muted-foreground ml-auto text-xs tracking-widest";
|
|
4351
4189
|
|
|
4352
4190
|
// src/components/context-menu.tsx
|
|
4353
|
-
import { jsx as
|
|
4354
|
-
var ContextMenuContext =
|
|
4191
|
+
import { jsx as jsx43, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
4192
|
+
var ContextMenuContext = React52.createContext(null);
|
|
4355
4193
|
function useContextMenu() {
|
|
4356
|
-
const ctx =
|
|
4194
|
+
const ctx = React52.useContext(ContextMenuContext);
|
|
4357
4195
|
if (!ctx) throw new Error("ContextMenu parts must be used within <ContextMenu>");
|
|
4358
4196
|
return ctx;
|
|
4359
4197
|
}
|
|
@@ -4363,16 +4201,16 @@ function ContextMenu({ open, defaultOpen = false, onOpenChange, children }) {
|
|
|
4363
4201
|
defaultValue: defaultOpen,
|
|
4364
4202
|
...onOpenChange ? { onChange: onOpenChange } : {}
|
|
4365
4203
|
});
|
|
4366
|
-
const [point, setPoint] =
|
|
4367
|
-
return /* @__PURE__ */
|
|
4204
|
+
const [point, setPoint] = React52.useState({ x: 0, y: 0 });
|
|
4205
|
+
return /* @__PURE__ */ jsx43(ContextMenuContext.Provider, { value: { open: isOpen, setOpen, point, setPoint }, children: /* @__PURE__ */ jsx43("div", { "data-slot": "context-menu", children }) });
|
|
4368
4206
|
}
|
|
4369
4207
|
function ContextMenuPortal({ children }) {
|
|
4370
|
-
return /* @__PURE__ */
|
|
4208
|
+
return /* @__PURE__ */ jsx43(Portal, { children });
|
|
4371
4209
|
}
|
|
4372
4210
|
function ContextMenuTrigger({ asChild = false, onContextMenu, ...props }) {
|
|
4373
4211
|
const { setOpen, setPoint } = useContextMenu();
|
|
4374
4212
|
const Comp = asChild ? Slot : "div";
|
|
4375
|
-
return /* @__PURE__ */
|
|
4213
|
+
return /* @__PURE__ */ jsx43(
|
|
4376
4214
|
Comp,
|
|
4377
4215
|
{
|
|
4378
4216
|
"data-slot": "context-menu-trigger",
|
|
@@ -4387,9 +4225,9 @@ function ContextMenuTrigger({ asChild = false, onContextMenu, ...props }) {
|
|
|
4387
4225
|
);
|
|
4388
4226
|
}
|
|
4389
4227
|
function ContextMenuGroup({ className, ...props }) {
|
|
4390
|
-
return /* @__PURE__ */
|
|
4228
|
+
return /* @__PURE__ */ jsx43("div", { "data-slot": "context-menu-group", role: "group", className, ...props });
|
|
4391
4229
|
}
|
|
4392
|
-
var ContextMenuCloseContext =
|
|
4230
|
+
var ContextMenuCloseContext = React52.createContext(() => {
|
|
4393
4231
|
});
|
|
4394
4232
|
function ContextMenuContent({ className, children, ...props }) {
|
|
4395
4233
|
const { open, setOpen, point } = useContextMenu();
|
|
@@ -4398,7 +4236,7 @@ function ContextMenuContent({ className, children, ...props }) {
|
|
|
4398
4236
|
enabled: open,
|
|
4399
4237
|
onDismiss: () => setOpen(false)
|
|
4400
4238
|
});
|
|
4401
|
-
const contentRef =
|
|
4239
|
+
const contentRef = React52.useRef(null);
|
|
4402
4240
|
const items = () => Array.from(
|
|
4403
4241
|
contentRef.current?.querySelectorAll("[role^='menuitem']") ?? []
|
|
4404
4242
|
).filter((el) => el.getAttribute("data-disabled") === null);
|
|
@@ -4407,13 +4245,13 @@ function ContextMenuContent({ className, children, ...props }) {
|
|
|
4407
4245
|
orientation: "vertical",
|
|
4408
4246
|
loop: true
|
|
4409
4247
|
});
|
|
4410
|
-
|
|
4248
|
+
React52.useEffect(() => {
|
|
4411
4249
|
if (!open) return;
|
|
4412
4250
|
items()[activeIndex]?.focus();
|
|
4413
4251
|
}, [open, activeIndex]);
|
|
4414
|
-
const close =
|
|
4252
|
+
const close = React52.useCallback(() => setOpen(false), [setOpen]);
|
|
4415
4253
|
if (!isPresent) return null;
|
|
4416
|
-
return /* @__PURE__ */
|
|
4254
|
+
return /* @__PURE__ */ jsx43(Portal, { children: /* @__PURE__ */ jsx43(ContextMenuCloseContext.Provider, { value: close, children: /* @__PURE__ */ jsx43(
|
|
4417
4255
|
"div",
|
|
4418
4256
|
{
|
|
4419
4257
|
"data-slot": "context-menu-content",
|
|
@@ -4445,8 +4283,8 @@ function ContextMenuItem({
|
|
|
4445
4283
|
onKeyDown,
|
|
4446
4284
|
...props
|
|
4447
4285
|
}) {
|
|
4448
|
-
const close =
|
|
4449
|
-
return /* @__PURE__ */
|
|
4286
|
+
const close = React52.useContext(ContextMenuCloseContext);
|
|
4287
|
+
return /* @__PURE__ */ jsx43(
|
|
4450
4288
|
"div",
|
|
4451
4289
|
{
|
|
4452
4290
|
"data-slot": "context-menu-item",
|
|
@@ -4483,8 +4321,8 @@ function ContextMenuCheckboxItem({
|
|
|
4483
4321
|
onClick,
|
|
4484
4322
|
...props
|
|
4485
4323
|
}) {
|
|
4486
|
-
const close =
|
|
4487
|
-
return /* @__PURE__ */
|
|
4324
|
+
const close = React52.useContext(ContextMenuCloseContext);
|
|
4325
|
+
return /* @__PURE__ */ jsxs13(
|
|
4488
4326
|
"div",
|
|
4489
4327
|
{
|
|
4490
4328
|
"data-slot": "context-menu-checkbox-item",
|
|
@@ -4504,13 +4342,13 @@ function ContextMenuCheckboxItem({
|
|
|
4504
4342
|
},
|
|
4505
4343
|
...props,
|
|
4506
4344
|
children: [
|
|
4507
|
-
/* @__PURE__ */
|
|
4345
|
+
/* @__PURE__ */ jsx43("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: checked ? /* @__PURE__ */ jsx43("svg", { className: "size-4", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: /* @__PURE__ */ jsx43("path", { d: "M20 6 9 17l-5-5" }) }) : null }),
|
|
4508
4346
|
children
|
|
4509
4347
|
]
|
|
4510
4348
|
}
|
|
4511
4349
|
);
|
|
4512
4350
|
}
|
|
4513
|
-
var ContextMenuRadioGroupContext =
|
|
4351
|
+
var ContextMenuRadioGroupContext = React52.createContext(null);
|
|
4514
4352
|
function ContextMenuRadioGroup({
|
|
4515
4353
|
className,
|
|
4516
4354
|
value,
|
|
@@ -4518,11 +4356,11 @@ function ContextMenuRadioGroup({
|
|
|
4518
4356
|
children,
|
|
4519
4357
|
...props
|
|
4520
4358
|
}) {
|
|
4521
|
-
const ctx =
|
|
4359
|
+
const ctx = React52.useMemo(
|
|
4522
4360
|
() => ({ value, setValue: (next) => onValueChange?.(next) }),
|
|
4523
4361
|
[value, onValueChange]
|
|
4524
4362
|
);
|
|
4525
|
-
return /* @__PURE__ */
|
|
4363
|
+
return /* @__PURE__ */ jsx43(ContextMenuRadioGroupContext.Provider, { value: ctx, children: /* @__PURE__ */ jsx43("div", { "data-slot": "context-menu-radio-group", role: "group", className, ...props, children }) });
|
|
4526
4364
|
}
|
|
4527
4365
|
function ContextMenuRadioItem({
|
|
4528
4366
|
className,
|
|
@@ -4532,10 +4370,10 @@ function ContextMenuRadioItem({
|
|
|
4532
4370
|
onClick,
|
|
4533
4371
|
...props
|
|
4534
4372
|
}) {
|
|
4535
|
-
const close =
|
|
4536
|
-
const group =
|
|
4373
|
+
const close = React52.useContext(ContextMenuCloseContext);
|
|
4374
|
+
const group = React52.useContext(ContextMenuRadioGroupContext);
|
|
4537
4375
|
const checked = group?.value === value;
|
|
4538
|
-
return /* @__PURE__ */
|
|
4376
|
+
return /* @__PURE__ */ jsxs13(
|
|
4539
4377
|
"div",
|
|
4540
4378
|
{
|
|
4541
4379
|
"data-slot": "context-menu-radio-item",
|
|
@@ -4556,14 +4394,14 @@ function ContextMenuRadioItem({
|
|
|
4556
4394
|
},
|
|
4557
4395
|
...props,
|
|
4558
4396
|
children: [
|
|
4559
|
-
/* @__PURE__ */
|
|
4397
|
+
/* @__PURE__ */ jsx43("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: checked ? /* @__PURE__ */ jsx43("svg", { className: "size-2 fill-current", viewBox: "0 0 24 24", "aria-hidden": "true", children: /* @__PURE__ */ jsx43("circle", { cx: "12", cy: "12", r: "10" }) }) : null }),
|
|
4560
4398
|
children
|
|
4561
4399
|
]
|
|
4562
4400
|
}
|
|
4563
4401
|
);
|
|
4564
4402
|
}
|
|
4565
4403
|
function ContextMenuLabel({ className, inset, ...props }) {
|
|
4566
|
-
return /* @__PURE__ */
|
|
4404
|
+
return /* @__PURE__ */ jsx43(
|
|
4567
4405
|
"div",
|
|
4568
4406
|
{
|
|
4569
4407
|
"data-slot": "context-menu-label",
|
|
@@ -4574,7 +4412,7 @@ function ContextMenuLabel({ className, inset, ...props }) {
|
|
|
4574
4412
|
);
|
|
4575
4413
|
}
|
|
4576
4414
|
function ContextMenuSeparator({ className, ...props }) {
|
|
4577
|
-
return /* @__PURE__ */
|
|
4415
|
+
return /* @__PURE__ */ jsx43(
|
|
4578
4416
|
"div",
|
|
4579
4417
|
{
|
|
4580
4418
|
"data-slot": "context-menu-separator",
|
|
@@ -4585,7 +4423,7 @@ function ContextMenuSeparator({ className, ...props }) {
|
|
|
4585
4423
|
);
|
|
4586
4424
|
}
|
|
4587
4425
|
function ContextMenuShortcut({ className, ...props }) {
|
|
4588
|
-
return /* @__PURE__ */
|
|
4426
|
+
return /* @__PURE__ */ jsx43(
|
|
4589
4427
|
"span",
|
|
4590
4428
|
{
|
|
4591
4429
|
"data-slot": "context-menu-shortcut",
|
|
@@ -4594,18 +4432,18 @@ function ContextMenuShortcut({ className, ...props }) {
|
|
|
4594
4432
|
}
|
|
4595
4433
|
);
|
|
4596
4434
|
}
|
|
4597
|
-
var ContextMenuSubContext =
|
|
4435
|
+
var ContextMenuSubContext = React52.createContext(null);
|
|
4598
4436
|
function ContextMenuSub({ open, defaultOpen = false, onOpenChange, children }) {
|
|
4599
4437
|
const [isOpen, setOpen] = useControllableState({
|
|
4600
4438
|
...open !== void 0 ? { value: open } : {},
|
|
4601
4439
|
defaultValue: defaultOpen,
|
|
4602
4440
|
...onOpenChange ? { onChange: onOpenChange } : {}
|
|
4603
4441
|
});
|
|
4604
|
-
return /* @__PURE__ */
|
|
4442
|
+
return /* @__PURE__ */ jsx43(ContextMenuSubContext.Provider, { value: { open: isOpen, setOpen }, children: /* @__PURE__ */ jsx43("div", { "data-slot": "context-menu-sub", children }) });
|
|
4605
4443
|
}
|
|
4606
4444
|
function ContextMenuSubTrigger({ className, inset, children, onClick, ...props }) {
|
|
4607
|
-
const ctx =
|
|
4608
|
-
return /* @__PURE__ */
|
|
4445
|
+
const ctx = React52.useContext(ContextMenuSubContext);
|
|
4446
|
+
return /* @__PURE__ */ jsxs13(
|
|
4609
4447
|
"div",
|
|
4610
4448
|
{
|
|
4611
4449
|
"data-slot": "context-menu-sub-trigger",
|
|
@@ -4626,15 +4464,15 @@ function ContextMenuSubTrigger({ className, inset, children, onClick, ...props }
|
|
|
4626
4464
|
...props,
|
|
4627
4465
|
children: [
|
|
4628
4466
|
children,
|
|
4629
|
-
/* @__PURE__ */
|
|
4467
|
+
/* @__PURE__ */ jsx43("svg", { className: "ml-auto", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: /* @__PURE__ */ jsx43("path", { d: "m9 18 6-6-6-6" }) })
|
|
4630
4468
|
]
|
|
4631
4469
|
}
|
|
4632
4470
|
);
|
|
4633
4471
|
}
|
|
4634
4472
|
function ContextMenuSubContent({ className, children, ...props }) {
|
|
4635
|
-
const ctx =
|
|
4473
|
+
const ctx = React52.useContext(ContextMenuSubContext);
|
|
4636
4474
|
if (!ctx?.open) return null;
|
|
4637
|
-
return /* @__PURE__ */
|
|
4475
|
+
return /* @__PURE__ */ jsx43(
|
|
4638
4476
|
"div",
|
|
4639
4477
|
{
|
|
4640
4478
|
"data-slot": "context-menu-sub-content",
|
|
@@ -4651,7 +4489,7 @@ function ContextMenuSubContent({ className, children, ...props }) {
|
|
|
4651
4489
|
}
|
|
4652
4490
|
|
|
4653
4491
|
// src/components/menubar.tsx
|
|
4654
|
-
import * as
|
|
4492
|
+
import * as React53 from "react";
|
|
4655
4493
|
|
|
4656
4494
|
// src/generated/menubar.ts
|
|
4657
4495
|
var MENUBAR_ROOT = "bg-background flex h-9 items-center gap-1 rounded-md border p-1 shadow-xs";
|
|
@@ -4668,16 +4506,16 @@ var MENUBAR_SUB_TRIGGER = "focus:bg-accent focus:text-accent-foreground data-[st
|
|
|
4668
4506
|
var MENUBAR_SUB_CONTENT = "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 absolute z-50 min-w-[8rem] overflow-hidden rounded-md border p-1 shadow-lg";
|
|
4669
4507
|
|
|
4670
4508
|
// src/components/menubar.tsx
|
|
4671
|
-
import { jsx as
|
|
4672
|
-
var MenubarMenuContext =
|
|
4509
|
+
import { jsx as jsx44, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
4510
|
+
var MenubarMenuContext = React53.createContext(null);
|
|
4673
4511
|
function useMenu() {
|
|
4674
|
-
const ctx =
|
|
4512
|
+
const ctx = React53.useContext(MenubarMenuContext);
|
|
4675
4513
|
if (!ctx) throw new Error("Menubar parts must be used within <MenubarMenu>");
|
|
4676
4514
|
return ctx;
|
|
4677
4515
|
}
|
|
4678
|
-
var MenubarRadioGroupContext =
|
|
4516
|
+
var MenubarRadioGroupContext = React53.createContext(null);
|
|
4679
4517
|
function Menubar({ className, ...props }) {
|
|
4680
|
-
return /* @__PURE__ */
|
|
4518
|
+
return /* @__PURE__ */ jsx44(
|
|
4681
4519
|
"div",
|
|
4682
4520
|
{
|
|
4683
4521
|
"data-slot": "menubar",
|
|
@@ -4693,12 +4531,12 @@ function MenubarMenu({ open, defaultOpen = false, onOpenChange, children }) {
|
|
|
4693
4531
|
defaultValue: defaultOpen,
|
|
4694
4532
|
onChange: onOpenChange
|
|
4695
4533
|
});
|
|
4696
|
-
const triggerRef =
|
|
4697
|
-
return /* @__PURE__ */
|
|
4534
|
+
const triggerRef = React53.useRef(null);
|
|
4535
|
+
return /* @__PURE__ */ jsx44(MenubarMenuContext.Provider, { value: { open: isOpen, setOpen, triggerRef }, children: /* @__PURE__ */ jsx44("div", { "data-slot": "menubar-menu", className: "relative", children }) });
|
|
4698
4536
|
}
|
|
4699
4537
|
function MenubarTrigger({ className, onClick, ...props }) {
|
|
4700
4538
|
const { open, setOpen, triggerRef } = useMenu();
|
|
4701
|
-
return /* @__PURE__ */
|
|
4539
|
+
return /* @__PURE__ */ jsx44(
|
|
4702
4540
|
"button",
|
|
4703
4541
|
{
|
|
4704
4542
|
ref: triggerRef,
|
|
@@ -4734,10 +4572,10 @@ function MenubarContent({
|
|
|
4734
4572
|
onDismiss: () => setOpen(false),
|
|
4735
4573
|
exclude: [triggerRef]
|
|
4736
4574
|
});
|
|
4737
|
-
const items =
|
|
4575
|
+
const items = React53.Children.toArray(children);
|
|
4738
4576
|
const { onKeyDown } = useRovingFocus({ count: items.length, orientation: "vertical" });
|
|
4739
4577
|
if (!isPresent) return null;
|
|
4740
|
-
return /* @__PURE__ */
|
|
4578
|
+
return /* @__PURE__ */ jsx44(Portal, { children: /* @__PURE__ */ jsx44(
|
|
4741
4579
|
"div",
|
|
4742
4580
|
{
|
|
4743
4581
|
ref: mergeRefs(presenceRef, floatingRef, dismissRef),
|
|
@@ -4754,7 +4592,7 @@ function MenubarContent({
|
|
|
4754
4592
|
) });
|
|
4755
4593
|
}
|
|
4756
4594
|
function MenubarGroup({ className, ...props }) {
|
|
4757
|
-
return /* @__PURE__ */
|
|
4595
|
+
return /* @__PURE__ */ jsx44("div", { "data-slot": "menubar-group", role: "group", className, ...props });
|
|
4758
4596
|
}
|
|
4759
4597
|
function MenubarItem({
|
|
4760
4598
|
className,
|
|
@@ -4762,7 +4600,7 @@ function MenubarItem({
|
|
|
4762
4600
|
variant = "default",
|
|
4763
4601
|
...props
|
|
4764
4602
|
}) {
|
|
4765
|
-
return /* @__PURE__ */
|
|
4603
|
+
return /* @__PURE__ */ jsx44(
|
|
4766
4604
|
"div",
|
|
4767
4605
|
{
|
|
4768
4606
|
"data-slot": "menubar-item",
|
|
@@ -4781,7 +4619,7 @@ function MenubarCheckboxItem({
|
|
|
4781
4619
|
checked,
|
|
4782
4620
|
...props
|
|
4783
4621
|
}) {
|
|
4784
|
-
return /* @__PURE__ */
|
|
4622
|
+
return /* @__PURE__ */ jsxs14(
|
|
4785
4623
|
"div",
|
|
4786
4624
|
{
|
|
4787
4625
|
"data-slot": "menubar-checkbox-item",
|
|
@@ -4791,7 +4629,7 @@ function MenubarCheckboxItem({
|
|
|
4791
4629
|
className: cn(MENUBAR_CHECKBOX_ITEM, className),
|
|
4792
4630
|
...props,
|
|
4793
4631
|
children: [
|
|
4794
|
-
/* @__PURE__ */
|
|
4632
|
+
/* @__PURE__ */ jsx44("span", { className: MENUBAR_ITEM_INDICATOR, children: checked && /* @__PURE__ */ jsx44(
|
|
4795
4633
|
"svg",
|
|
4796
4634
|
{
|
|
4797
4635
|
className: "size-4",
|
|
@@ -4801,7 +4639,7 @@ function MenubarCheckboxItem({
|
|
|
4801
4639
|
strokeWidth: "2",
|
|
4802
4640
|
strokeLinecap: "round",
|
|
4803
4641
|
strokeLinejoin: "round",
|
|
4804
|
-
children: /* @__PURE__ */
|
|
4642
|
+
children: /* @__PURE__ */ jsx44("path", { d: "M20 6 9 17l-5-5" })
|
|
4805
4643
|
}
|
|
4806
4644
|
) }),
|
|
4807
4645
|
children
|
|
@@ -4821,7 +4659,7 @@ function MenubarRadioGroup({
|
|
|
4821
4659
|
defaultValue,
|
|
4822
4660
|
onChange: onValueChange
|
|
4823
4661
|
});
|
|
4824
|
-
return /* @__PURE__ */
|
|
4662
|
+
return /* @__PURE__ */ jsx44(MenubarRadioGroupContext.Provider, { value: { value: current, onValueChange: setValue }, children: /* @__PURE__ */ jsx44("div", { "data-slot": "menubar-radio-group", role: "group", className, children }) });
|
|
4825
4663
|
}
|
|
4826
4664
|
function MenubarRadioItem({
|
|
4827
4665
|
className,
|
|
@@ -4829,9 +4667,9 @@ function MenubarRadioItem({
|
|
|
4829
4667
|
value,
|
|
4830
4668
|
...props
|
|
4831
4669
|
}) {
|
|
4832
|
-
const ctx =
|
|
4670
|
+
const ctx = React53.useContext(MenubarRadioGroupContext);
|
|
4833
4671
|
const checked = ctx?.value === value;
|
|
4834
|
-
return /* @__PURE__ */
|
|
4672
|
+
return /* @__PURE__ */ jsxs14(
|
|
4835
4673
|
"div",
|
|
4836
4674
|
{
|
|
4837
4675
|
"data-slot": "menubar-radio-item",
|
|
@@ -4842,7 +4680,7 @@ function MenubarRadioItem({
|
|
|
4842
4680
|
onClick: () => ctx?.onValueChange(value),
|
|
4843
4681
|
...props,
|
|
4844
4682
|
children: [
|
|
4845
|
-
/* @__PURE__ */
|
|
4683
|
+
/* @__PURE__ */ jsx44("span", { className: MENUBAR_ITEM_INDICATOR, children: checked && /* @__PURE__ */ jsx44("svg", { className: "size-2 fill-current", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx44("circle", { cx: "12", cy: "12", r: "10" }) }) }),
|
|
4846
4684
|
children
|
|
4847
4685
|
]
|
|
4848
4686
|
}
|
|
@@ -4853,7 +4691,7 @@ function MenubarLabel({
|
|
|
4853
4691
|
inset,
|
|
4854
4692
|
...props
|
|
4855
4693
|
}) {
|
|
4856
|
-
return /* @__PURE__ */
|
|
4694
|
+
return /* @__PURE__ */ jsx44(
|
|
4857
4695
|
"div",
|
|
4858
4696
|
{
|
|
4859
4697
|
"data-slot": "menubar-label",
|
|
@@ -4864,7 +4702,7 @@ function MenubarLabel({
|
|
|
4864
4702
|
);
|
|
4865
4703
|
}
|
|
4866
4704
|
function MenubarSeparator({ className, ...props }) {
|
|
4867
|
-
return /* @__PURE__ */
|
|
4705
|
+
return /* @__PURE__ */ jsx44(
|
|
4868
4706
|
"div",
|
|
4869
4707
|
{
|
|
4870
4708
|
"data-slot": "menubar-separator",
|
|
@@ -4875,7 +4713,7 @@ function MenubarSeparator({ className, ...props }) {
|
|
|
4875
4713
|
);
|
|
4876
4714
|
}
|
|
4877
4715
|
function MenubarShortcut({ className, ...props }) {
|
|
4878
|
-
return /* @__PURE__ */
|
|
4716
|
+
return /* @__PURE__ */ jsx44(
|
|
4879
4717
|
"span",
|
|
4880
4718
|
{
|
|
4881
4719
|
"data-slot": "menubar-shortcut",
|
|
@@ -4884,9 +4722,9 @@ function MenubarShortcut({ className, ...props }) {
|
|
|
4884
4722
|
}
|
|
4885
4723
|
);
|
|
4886
4724
|
}
|
|
4887
|
-
var MenubarSubContext =
|
|
4725
|
+
var MenubarSubContext = React53.createContext(null);
|
|
4888
4726
|
function useSub() {
|
|
4889
|
-
const ctx =
|
|
4727
|
+
const ctx = React53.useContext(MenubarSubContext);
|
|
4890
4728
|
if (!ctx) throw new Error("MenubarSub parts must be used within <MenubarSub>");
|
|
4891
4729
|
return ctx;
|
|
4892
4730
|
}
|
|
@@ -4896,7 +4734,7 @@ function MenubarSub({ open, defaultOpen = false, onOpenChange, children }) {
|
|
|
4896
4734
|
defaultValue: defaultOpen,
|
|
4897
4735
|
onChange: onOpenChange
|
|
4898
4736
|
});
|
|
4899
|
-
return /* @__PURE__ */
|
|
4737
|
+
return /* @__PURE__ */ jsx44(MenubarSubContext.Provider, { value: { open: isOpen, setOpen }, children: /* @__PURE__ */ jsx44("div", { "data-slot": "menubar-sub", className: "relative", children }) });
|
|
4900
4738
|
}
|
|
4901
4739
|
function MenubarSubTrigger({
|
|
4902
4740
|
className,
|
|
@@ -4906,7 +4744,7 @@ function MenubarSubTrigger({
|
|
|
4906
4744
|
...props
|
|
4907
4745
|
}) {
|
|
4908
4746
|
const { open, setOpen } = useSub();
|
|
4909
|
-
return /* @__PURE__ */
|
|
4747
|
+
return /* @__PURE__ */ jsxs14(
|
|
4910
4748
|
"div",
|
|
4911
4749
|
{
|
|
4912
4750
|
"data-slot": "menubar-sub-trigger",
|
|
@@ -4922,7 +4760,7 @@ function MenubarSubTrigger({
|
|
|
4922
4760
|
...props,
|
|
4923
4761
|
children: [
|
|
4924
4762
|
children,
|
|
4925
|
-
/* @__PURE__ */
|
|
4763
|
+
/* @__PURE__ */ jsx44(
|
|
4926
4764
|
"svg",
|
|
4927
4765
|
{
|
|
4928
4766
|
className: "ml-auto h-4 w-4",
|
|
@@ -4932,7 +4770,7 @@ function MenubarSubTrigger({
|
|
|
4932
4770
|
strokeWidth: "2",
|
|
4933
4771
|
strokeLinecap: "round",
|
|
4934
4772
|
strokeLinejoin: "round",
|
|
4935
|
-
children: /* @__PURE__ */
|
|
4773
|
+
children: /* @__PURE__ */ jsx44("path", { d: "m9 18 6-6-6-6" })
|
|
4936
4774
|
}
|
|
4937
4775
|
)
|
|
4938
4776
|
]
|
|
@@ -4943,7 +4781,7 @@ function MenubarSubContent({ className, children, ...props }) {
|
|
|
4943
4781
|
const { open } = useSub();
|
|
4944
4782
|
const { isPresent, ref } = usePresence(open);
|
|
4945
4783
|
if (!isPresent) return null;
|
|
4946
|
-
return /* @__PURE__ */
|
|
4784
|
+
return /* @__PURE__ */ jsx44(
|
|
4947
4785
|
"div",
|
|
4948
4786
|
{
|
|
4949
4787
|
ref,
|
|
@@ -4958,7 +4796,7 @@ function MenubarSubContent({ className, children, ...props }) {
|
|
|
4958
4796
|
}
|
|
4959
4797
|
|
|
4960
4798
|
// src/components/navigation-menu.tsx
|
|
4961
|
-
import * as
|
|
4799
|
+
import * as React54 from "react";
|
|
4962
4800
|
|
|
4963
4801
|
// src/generated/navigation-menu.ts
|
|
4964
4802
|
var NAVIGATION_MENU = "group/navigation-menu relative flex max-w-max flex-1 items-center justify-center";
|
|
@@ -4971,13 +4809,13 @@ var NAVIGATION_MENU_INDICATOR = "data-[state=visible]:animate-in data-[state=hid
|
|
|
4971
4809
|
var NAVIGATION_MENU_VIEWPORT = "origin-top-center bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border shadow md:w-[var(--radix-navigation-menu-viewport-width)]";
|
|
4972
4810
|
|
|
4973
4811
|
// src/components/navigation-menu.tsx
|
|
4974
|
-
import { jsx as
|
|
4812
|
+
import { jsx as jsx45, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
4975
4813
|
function navigationMenuTriggerStyle() {
|
|
4976
4814
|
return NAVIGATION_MENU_TRIGGER_STYLE;
|
|
4977
4815
|
}
|
|
4978
|
-
var NavigationMenuItemContext =
|
|
4816
|
+
var NavigationMenuItemContext = React54.createContext(null);
|
|
4979
4817
|
function useItem() {
|
|
4980
|
-
const ctx =
|
|
4818
|
+
const ctx = React54.useContext(NavigationMenuItemContext);
|
|
4981
4819
|
if (!ctx) throw new Error("NavigationMenu parts must be used within <NavigationMenuItem>");
|
|
4982
4820
|
return ctx;
|
|
4983
4821
|
}
|
|
@@ -4987,7 +4825,7 @@ function NavigationMenu({
|
|
|
4987
4825
|
viewport = true,
|
|
4988
4826
|
...props
|
|
4989
4827
|
}) {
|
|
4990
|
-
return /* @__PURE__ */
|
|
4828
|
+
return /* @__PURE__ */ jsxs15(
|
|
4991
4829
|
"nav",
|
|
4992
4830
|
{
|
|
4993
4831
|
"data-slot": "navigation-menu",
|
|
@@ -5000,13 +4838,13 @@ function NavigationMenu({
|
|
|
5000
4838
|
...props,
|
|
5001
4839
|
children: [
|
|
5002
4840
|
children,
|
|
5003
|
-
viewport && /* @__PURE__ */
|
|
4841
|
+
viewport && /* @__PURE__ */ jsx45(NavigationMenuViewport, {})
|
|
5004
4842
|
]
|
|
5005
4843
|
}
|
|
5006
4844
|
);
|
|
5007
4845
|
}
|
|
5008
4846
|
function NavigationMenuList({ className, ...props }) {
|
|
5009
|
-
return /* @__PURE__ */
|
|
4847
|
+
return /* @__PURE__ */ jsx45(
|
|
5010
4848
|
"ul",
|
|
5011
4849
|
{
|
|
5012
4850
|
"data-slot": "navigation-menu-list",
|
|
@@ -5032,8 +4870,8 @@ function NavigationMenuItem({
|
|
|
5032
4870
|
defaultValue: defaultOpen,
|
|
5033
4871
|
onChange: onOpenChange
|
|
5034
4872
|
});
|
|
5035
|
-
const triggerRef =
|
|
5036
|
-
return /* @__PURE__ */
|
|
4873
|
+
const triggerRef = React54.useRef(null);
|
|
4874
|
+
return /* @__PURE__ */ jsx45(NavigationMenuItemContext.Provider, { value: { open: isOpen, setOpen, triggerRef }, children: /* @__PURE__ */ jsx45("li", { "data-slot": "navigation-menu-item", className: cn(NAVIGATION_MENU_ITEM, className), ...props, children }) });
|
|
5037
4875
|
}
|
|
5038
4876
|
function NavigationMenuTrigger({
|
|
5039
4877
|
className,
|
|
@@ -5042,7 +4880,7 @@ function NavigationMenuTrigger({
|
|
|
5042
4880
|
...props
|
|
5043
4881
|
}) {
|
|
5044
4882
|
const { open, setOpen, triggerRef } = useItem();
|
|
5045
|
-
return /* @__PURE__ */
|
|
4883
|
+
return /* @__PURE__ */ jsxs15(
|
|
5046
4884
|
"button",
|
|
5047
4885
|
{
|
|
5048
4886
|
ref: triggerRef,
|
|
@@ -5058,7 +4896,7 @@ function NavigationMenuTrigger({
|
|
|
5058
4896
|
children: [
|
|
5059
4897
|
children,
|
|
5060
4898
|
" ",
|
|
5061
|
-
/* @__PURE__ */
|
|
4899
|
+
/* @__PURE__ */ jsx45(
|
|
5062
4900
|
"svg",
|
|
5063
4901
|
{
|
|
5064
4902
|
className: "relative top-[1px] ml-1 size-3 transition duration-300 group-data-[state=open]:rotate-180",
|
|
@@ -5069,7 +4907,7 @@ function NavigationMenuTrigger({
|
|
|
5069
4907
|
strokeLinecap: "round",
|
|
5070
4908
|
strokeLinejoin: "round",
|
|
5071
4909
|
"aria-hidden": "true",
|
|
5072
|
-
children: /* @__PURE__ */
|
|
4910
|
+
children: /* @__PURE__ */ jsx45("path", { d: "m6 9 6 6 6-6" })
|
|
5073
4911
|
}
|
|
5074
4912
|
)
|
|
5075
4913
|
]
|
|
@@ -5085,7 +4923,7 @@ function NavigationMenuContent({ className, children, ...props }) {
|
|
|
5085
4923
|
exclude: [triggerRef]
|
|
5086
4924
|
});
|
|
5087
4925
|
if (!isPresent) return null;
|
|
5088
|
-
return /* @__PURE__ */
|
|
4926
|
+
return /* @__PURE__ */ jsx45(
|
|
5089
4927
|
"div",
|
|
5090
4928
|
{
|
|
5091
4929
|
ref: mergeRefs(presenceRef, dismissRef),
|
|
@@ -5101,7 +4939,7 @@ function NavigationMenuContent({ className, children, ...props }) {
|
|
|
5101
4939
|
);
|
|
5102
4940
|
}
|
|
5103
4941
|
function NavigationMenuViewport({ className, ...props }) {
|
|
5104
|
-
return /* @__PURE__ */
|
|
4942
|
+
return /* @__PURE__ */ jsx45("div", { className: "absolute top-full left-0 isolate z-50 flex justify-center", children: /* @__PURE__ */ jsx45(
|
|
5105
4943
|
"div",
|
|
5106
4944
|
{
|
|
5107
4945
|
"data-slot": "navigation-menu-viewport",
|
|
@@ -5119,7 +4957,7 @@ function NavigationMenuLink({
|
|
|
5119
4957
|
...props
|
|
5120
4958
|
}) {
|
|
5121
4959
|
const Comp = asChild ? Slot : "a";
|
|
5122
|
-
return /* @__PURE__ */
|
|
4960
|
+
return /* @__PURE__ */ jsx45(
|
|
5123
4961
|
Comp,
|
|
5124
4962
|
{
|
|
5125
4963
|
"data-slot": "navigation-menu-link",
|
|
@@ -5132,7 +4970,7 @@ function NavigationMenuLink({
|
|
|
5132
4970
|
);
|
|
5133
4971
|
}
|
|
5134
4972
|
function NavigationMenuIndicator({ className, ...props }) {
|
|
5135
|
-
return /* @__PURE__ */
|
|
4973
|
+
return /* @__PURE__ */ jsx45(
|
|
5136
4974
|
"div",
|
|
5137
4975
|
{
|
|
5138
4976
|
"data-slot": "navigation-menu-indicator",
|
|
@@ -5141,13 +4979,13 @@ function NavigationMenuIndicator({ className, ...props }) {
|
|
|
5141
4979
|
className
|
|
5142
4980
|
),
|
|
5143
4981
|
...props,
|
|
5144
|
-
children: /* @__PURE__ */
|
|
4982
|
+
children: /* @__PURE__ */ jsx45("div", { className: "bg-border relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm shadow-md" })
|
|
5145
4983
|
}
|
|
5146
4984
|
);
|
|
5147
4985
|
}
|
|
5148
4986
|
|
|
5149
4987
|
// src/components/dialog.tsx
|
|
5150
|
-
import * as
|
|
4988
|
+
import * as React55 from "react";
|
|
5151
4989
|
|
|
5152
4990
|
// src/generated/dialog.ts
|
|
5153
4991
|
var DIALOG_OVERLAY = "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50";
|
|
@@ -5159,10 +4997,10 @@ var DIALOG_TITLE = "text-lg leading-none font-semibold";
|
|
|
5159
4997
|
var DIALOG_DESCRIPTION = "text-muted-foreground text-sm";
|
|
5160
4998
|
|
|
5161
4999
|
// src/components/dialog.tsx
|
|
5162
|
-
import { Fragment as Fragment5, jsx as
|
|
5163
|
-
var DialogContext =
|
|
5000
|
+
import { Fragment as Fragment5, jsx as jsx46, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
5001
|
+
var DialogContext = React55.createContext(null);
|
|
5164
5002
|
function useDialog() {
|
|
5165
|
-
const ctx =
|
|
5003
|
+
const ctx = React55.useContext(DialogContext);
|
|
5166
5004
|
if (!ctx) throw new Error("Dialog parts must be used within <Dialog>");
|
|
5167
5005
|
return ctx;
|
|
5168
5006
|
}
|
|
@@ -5172,13 +5010,13 @@ function Dialog({ open, defaultOpen = false, onOpenChange, children }) {
|
|
|
5172
5010
|
defaultValue: defaultOpen,
|
|
5173
5011
|
...onOpenChange ? { onChange: onOpenChange } : {}
|
|
5174
5012
|
});
|
|
5175
|
-
const triggerRef =
|
|
5176
|
-
return /* @__PURE__ */
|
|
5013
|
+
const triggerRef = React55.useRef(null);
|
|
5014
|
+
return /* @__PURE__ */ jsx46(DialogContext.Provider, { value: { open: isOpen, setOpen, triggerRef }, children });
|
|
5177
5015
|
}
|
|
5178
5016
|
function DialogTrigger({ asChild = false, onClick, ...props }) {
|
|
5179
5017
|
const { open, setOpen, triggerRef } = useDialog();
|
|
5180
5018
|
const Comp = asChild ? Slot : "button";
|
|
5181
|
-
return /* @__PURE__ */
|
|
5019
|
+
return /* @__PURE__ */ jsx46(
|
|
5182
5020
|
Comp,
|
|
5183
5021
|
{
|
|
5184
5022
|
"data-slot": "dialog-trigger",
|
|
@@ -5193,11 +5031,11 @@ function DialogTrigger({ asChild = false, onClick, ...props }) {
|
|
|
5193
5031
|
);
|
|
5194
5032
|
}
|
|
5195
5033
|
function DialogPortal({ children }) {
|
|
5196
|
-
return /* @__PURE__ */
|
|
5034
|
+
return /* @__PURE__ */ jsx46(Fragment5, { children });
|
|
5197
5035
|
}
|
|
5198
5036
|
function DialogOverlay({ className, ...props }) {
|
|
5199
5037
|
const { open, setOpen } = useDialog();
|
|
5200
|
-
return /* @__PURE__ */
|
|
5038
|
+
return /* @__PURE__ */ jsx46(
|
|
5201
5039
|
"div",
|
|
5202
5040
|
{
|
|
5203
5041
|
"data-slot": "dialog-overlay",
|
|
@@ -5208,7 +5046,7 @@ function DialogOverlay({ className, ...props }) {
|
|
|
5208
5046
|
}
|
|
5209
5047
|
);
|
|
5210
5048
|
}
|
|
5211
|
-
var XIcon = (props) => /* @__PURE__ */
|
|
5049
|
+
var XIcon = (props) => /* @__PURE__ */ jsx46(
|
|
5212
5050
|
"svg",
|
|
5213
5051
|
{
|
|
5214
5052
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -5221,7 +5059,7 @@ var XIcon = (props) => /* @__PURE__ */ jsx47(
|
|
|
5221
5059
|
strokeLinecap: "round",
|
|
5222
5060
|
strokeLinejoin: "round",
|
|
5223
5061
|
...props,
|
|
5224
|
-
children: /* @__PURE__ */
|
|
5062
|
+
children: /* @__PURE__ */ jsx46("path", { d: "M18 6 6 18M6 6l12 12" })
|
|
5225
5063
|
}
|
|
5226
5064
|
);
|
|
5227
5065
|
function DialogContent({
|
|
@@ -5238,7 +5076,7 @@ function DialogContent({
|
|
|
5238
5076
|
onDismiss: () => setOpen(false),
|
|
5239
5077
|
exclude: [triggerRef]
|
|
5240
5078
|
});
|
|
5241
|
-
|
|
5079
|
+
React55.useEffect(() => {
|
|
5242
5080
|
if (!open) return;
|
|
5243
5081
|
const prev = document.body.style.overflow;
|
|
5244
5082
|
document.body.style.overflow = "hidden";
|
|
@@ -5247,9 +5085,9 @@ function DialogContent({
|
|
|
5247
5085
|
};
|
|
5248
5086
|
}, [open]);
|
|
5249
5087
|
if (!isPresent) return null;
|
|
5250
|
-
return /* @__PURE__ */
|
|
5251
|
-
/* @__PURE__ */
|
|
5252
|
-
/* @__PURE__ */
|
|
5088
|
+
return /* @__PURE__ */ jsxs16(Portal, { children: [
|
|
5089
|
+
/* @__PURE__ */ jsx46(DialogOverlay, {}),
|
|
5090
|
+
/* @__PURE__ */ jsxs16(
|
|
5253
5091
|
"div",
|
|
5254
5092
|
{
|
|
5255
5093
|
"data-slot": "dialog-content",
|
|
@@ -5261,7 +5099,7 @@ function DialogContent({
|
|
|
5261
5099
|
...props,
|
|
5262
5100
|
children: [
|
|
5263
5101
|
children,
|
|
5264
|
-
showCloseButton && /* @__PURE__ */
|
|
5102
|
+
showCloseButton && /* @__PURE__ */ jsxs16(
|
|
5265
5103
|
"button",
|
|
5266
5104
|
{
|
|
5267
5105
|
type: "button",
|
|
@@ -5269,8 +5107,8 @@ function DialogContent({
|
|
|
5269
5107
|
onClick: () => setOpen(false),
|
|
5270
5108
|
className: DIALOG_CLOSE,
|
|
5271
5109
|
children: [
|
|
5272
|
-
/* @__PURE__ */
|
|
5273
|
-
/* @__PURE__ */
|
|
5110
|
+
/* @__PURE__ */ jsx46(XIcon, {}),
|
|
5111
|
+
/* @__PURE__ */ jsx46("span", { className: "sr-only", children: "Close" })
|
|
5274
5112
|
]
|
|
5275
5113
|
}
|
|
5276
5114
|
)
|
|
@@ -5282,7 +5120,7 @@ function DialogContent({
|
|
|
5282
5120
|
function DialogClose({ asChild = false, onClick, ...props }) {
|
|
5283
5121
|
const { setOpen } = useDialog();
|
|
5284
5122
|
const Comp = asChild ? Slot : "button";
|
|
5285
|
-
return /* @__PURE__ */
|
|
5123
|
+
return /* @__PURE__ */ jsx46(
|
|
5286
5124
|
Comp,
|
|
5287
5125
|
{
|
|
5288
5126
|
"data-slot": "dialog-close",
|
|
@@ -5295,7 +5133,7 @@ function DialogClose({ asChild = false, onClick, ...props }) {
|
|
|
5295
5133
|
);
|
|
5296
5134
|
}
|
|
5297
5135
|
function DialogHeader({ className, ...props }) {
|
|
5298
|
-
return /* @__PURE__ */
|
|
5136
|
+
return /* @__PURE__ */ jsx46(
|
|
5299
5137
|
"div",
|
|
5300
5138
|
{
|
|
5301
5139
|
"data-slot": "dialog-header",
|
|
@@ -5305,7 +5143,7 @@ function DialogHeader({ className, ...props }) {
|
|
|
5305
5143
|
);
|
|
5306
5144
|
}
|
|
5307
5145
|
function DialogFooter({ className, ...props }) {
|
|
5308
|
-
return /* @__PURE__ */
|
|
5146
|
+
return /* @__PURE__ */ jsx46(
|
|
5309
5147
|
"div",
|
|
5310
5148
|
{
|
|
5311
5149
|
"data-slot": "dialog-footer",
|
|
@@ -5315,7 +5153,7 @@ function DialogFooter({ className, ...props }) {
|
|
|
5315
5153
|
);
|
|
5316
5154
|
}
|
|
5317
5155
|
function DialogTitle({ className, ...props }) {
|
|
5318
|
-
return /* @__PURE__ */
|
|
5156
|
+
return /* @__PURE__ */ jsx46(
|
|
5319
5157
|
"h2",
|
|
5320
5158
|
{
|
|
5321
5159
|
"data-slot": "dialog-title",
|
|
@@ -5325,7 +5163,7 @@ function DialogTitle({ className, ...props }) {
|
|
|
5325
5163
|
);
|
|
5326
5164
|
}
|
|
5327
5165
|
function DialogDescription({ className, ...props }) {
|
|
5328
|
-
return /* @__PURE__ */
|
|
5166
|
+
return /* @__PURE__ */ jsx46(
|
|
5329
5167
|
"p",
|
|
5330
5168
|
{
|
|
5331
5169
|
"data-slot": "dialog-description",
|
|
@@ -5336,7 +5174,7 @@ function DialogDescription({ className, ...props }) {
|
|
|
5336
5174
|
}
|
|
5337
5175
|
|
|
5338
5176
|
// src/components/alert-dialog.tsx
|
|
5339
|
-
import * as
|
|
5177
|
+
import * as React56 from "react";
|
|
5340
5178
|
|
|
5341
5179
|
// src/generated/alert-dialog.ts
|
|
5342
5180
|
var ALERT_DIALOG_OVERLAY = "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50";
|
|
@@ -5347,10 +5185,10 @@ var ALERT_DIALOG_TITLE = "text-lg font-semibold";
|
|
|
5347
5185
|
var ALERT_DIALOG_DESCRIPTION = "text-muted-foreground text-sm";
|
|
5348
5186
|
|
|
5349
5187
|
// src/components/alert-dialog.tsx
|
|
5350
|
-
import { jsx as
|
|
5351
|
-
var AlertDialogContext =
|
|
5188
|
+
import { jsx as jsx47, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
5189
|
+
var AlertDialogContext = React56.createContext(null);
|
|
5352
5190
|
function useAlertDialog() {
|
|
5353
|
-
const ctx =
|
|
5191
|
+
const ctx = React56.useContext(AlertDialogContext);
|
|
5354
5192
|
if (!ctx) throw new Error("AlertDialog parts must be used within <AlertDialog>");
|
|
5355
5193
|
return ctx;
|
|
5356
5194
|
}
|
|
@@ -5360,13 +5198,13 @@ function AlertDialog({ open, defaultOpen = false, onOpenChange, children }) {
|
|
|
5360
5198
|
defaultValue: defaultOpen,
|
|
5361
5199
|
...onOpenChange ? { onChange: onOpenChange } : {}
|
|
5362
5200
|
});
|
|
5363
|
-
const triggerRef =
|
|
5364
|
-
return /* @__PURE__ */
|
|
5201
|
+
const triggerRef = React56.useRef(null);
|
|
5202
|
+
return /* @__PURE__ */ jsx47(AlertDialogContext.Provider, { value: { open: isOpen, setOpen, triggerRef }, children });
|
|
5365
5203
|
}
|
|
5366
5204
|
function AlertDialogTrigger({ asChild = false, onClick, ...props }) {
|
|
5367
5205
|
const { open, setOpen, triggerRef } = useAlertDialog();
|
|
5368
5206
|
const Comp = asChild ? Slot : "button";
|
|
5369
|
-
return /* @__PURE__ */
|
|
5207
|
+
return /* @__PURE__ */ jsx47(
|
|
5370
5208
|
Comp,
|
|
5371
5209
|
{
|
|
5372
5210
|
"data-slot": "alert-dialog-trigger",
|
|
@@ -5382,7 +5220,7 @@ function AlertDialogTrigger({ asChild = false, onClick, ...props }) {
|
|
|
5382
5220
|
}
|
|
5383
5221
|
function AlertDialogOverlay({ className, ...props }) {
|
|
5384
5222
|
const { open, setOpen } = useAlertDialog();
|
|
5385
|
-
return /* @__PURE__ */
|
|
5223
|
+
return /* @__PURE__ */ jsx47(
|
|
5386
5224
|
"div",
|
|
5387
5225
|
{
|
|
5388
5226
|
"data-slot": "alert-dialog-overlay",
|
|
@@ -5403,9 +5241,9 @@ function AlertDialogContent({ className, children, ...props }) {
|
|
|
5403
5241
|
exclude: [triggerRef]
|
|
5404
5242
|
});
|
|
5405
5243
|
if (!isPresent) return null;
|
|
5406
|
-
return /* @__PURE__ */
|
|
5407
|
-
/* @__PURE__ */
|
|
5408
|
-
/* @__PURE__ */
|
|
5244
|
+
return /* @__PURE__ */ jsxs17(Portal, { children: [
|
|
5245
|
+
/* @__PURE__ */ jsx47(AlertDialogOverlay, {}),
|
|
5246
|
+
/* @__PURE__ */ jsx47(
|
|
5409
5247
|
"div",
|
|
5410
5248
|
{
|
|
5411
5249
|
"data-slot": "alert-dialog-content",
|
|
@@ -5421,7 +5259,7 @@ function AlertDialogContent({ className, children, ...props }) {
|
|
|
5421
5259
|
] });
|
|
5422
5260
|
}
|
|
5423
5261
|
function AlertDialogHeader({ className, ...props }) {
|
|
5424
|
-
return /* @__PURE__ */
|
|
5262
|
+
return /* @__PURE__ */ jsx47(
|
|
5425
5263
|
"div",
|
|
5426
5264
|
{
|
|
5427
5265
|
"data-slot": "alert-dialog-header",
|
|
@@ -5431,7 +5269,7 @@ function AlertDialogHeader({ className, ...props }) {
|
|
|
5431
5269
|
);
|
|
5432
5270
|
}
|
|
5433
5271
|
function AlertDialogFooter({ className, ...props }) {
|
|
5434
|
-
return /* @__PURE__ */
|
|
5272
|
+
return /* @__PURE__ */ jsx47(
|
|
5435
5273
|
"div",
|
|
5436
5274
|
{
|
|
5437
5275
|
"data-slot": "alert-dialog-footer",
|
|
@@ -5441,7 +5279,7 @@ function AlertDialogFooter({ className, ...props }) {
|
|
|
5441
5279
|
);
|
|
5442
5280
|
}
|
|
5443
5281
|
function AlertDialogTitle({ className, ...props }) {
|
|
5444
|
-
return /* @__PURE__ */
|
|
5282
|
+
return /* @__PURE__ */ jsx47(
|
|
5445
5283
|
"h2",
|
|
5446
5284
|
{
|
|
5447
5285
|
"data-slot": "alert-dialog-title",
|
|
@@ -5451,7 +5289,7 @@ function AlertDialogTitle({ className, ...props }) {
|
|
|
5451
5289
|
);
|
|
5452
5290
|
}
|
|
5453
5291
|
function AlertDialogDescription({ className, ...props }) {
|
|
5454
|
-
return /* @__PURE__ */
|
|
5292
|
+
return /* @__PURE__ */ jsx47(
|
|
5455
5293
|
"p",
|
|
5456
5294
|
{
|
|
5457
5295
|
"data-slot": "alert-dialog-description",
|
|
@@ -5462,7 +5300,7 @@ function AlertDialogDescription({ className, ...props }) {
|
|
|
5462
5300
|
}
|
|
5463
5301
|
function AlertDialogAction({ className, onClick, ...props }) {
|
|
5464
5302
|
const { setOpen } = useAlertDialog();
|
|
5465
|
-
return /* @__PURE__ */
|
|
5303
|
+
return /* @__PURE__ */ jsx47(
|
|
5466
5304
|
"button",
|
|
5467
5305
|
{
|
|
5468
5306
|
"data-slot": "alert-dialog-action",
|
|
@@ -5477,7 +5315,7 @@ function AlertDialogAction({ className, onClick, ...props }) {
|
|
|
5477
5315
|
}
|
|
5478
5316
|
function AlertDialogCancel({ className, onClick, ...props }) {
|
|
5479
5317
|
const { setOpen } = useAlertDialog();
|
|
5480
|
-
return /* @__PURE__ */
|
|
5318
|
+
return /* @__PURE__ */ jsx47(
|
|
5481
5319
|
"button",
|
|
5482
5320
|
{
|
|
5483
5321
|
"data-slot": "alert-dialog-cancel",
|
|
@@ -5492,7 +5330,7 @@ function AlertDialogCancel({ className, onClick, ...props }) {
|
|
|
5492
5330
|
}
|
|
5493
5331
|
|
|
5494
5332
|
// src/components/sheet.tsx
|
|
5495
|
-
import * as
|
|
5333
|
+
import * as React57 from "react";
|
|
5496
5334
|
|
|
5497
5335
|
// src/generated/sheet.ts
|
|
5498
5336
|
var SHEET_OVERLAY = "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50";
|
|
@@ -5508,10 +5346,10 @@ var SHEET_TITLE = "text-foreground font-semibold";
|
|
|
5508
5346
|
var SHEET_DESCRIPTION = "text-muted-foreground text-sm";
|
|
5509
5347
|
|
|
5510
5348
|
// src/components/sheet.tsx
|
|
5511
|
-
import { jsx as
|
|
5512
|
-
var SheetContext =
|
|
5349
|
+
import { jsx as jsx48, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
5350
|
+
var SheetContext = React57.createContext(null);
|
|
5513
5351
|
function useSheet() {
|
|
5514
|
-
const ctx =
|
|
5352
|
+
const ctx = React57.useContext(SheetContext);
|
|
5515
5353
|
if (!ctx) throw new Error("Sheet parts must be used within <Sheet>");
|
|
5516
5354
|
return ctx;
|
|
5517
5355
|
}
|
|
@@ -5521,13 +5359,13 @@ function Sheet({ open, defaultOpen = false, onOpenChange, children }) {
|
|
|
5521
5359
|
defaultValue: defaultOpen,
|
|
5522
5360
|
...onOpenChange ? { onChange: onOpenChange } : {}
|
|
5523
5361
|
});
|
|
5524
|
-
const triggerRef =
|
|
5525
|
-
return /* @__PURE__ */
|
|
5362
|
+
const triggerRef = React57.useRef(null);
|
|
5363
|
+
return /* @__PURE__ */ jsx48(SheetContext.Provider, { value: { open: isOpen, setOpen, triggerRef }, children });
|
|
5526
5364
|
}
|
|
5527
5365
|
function SheetTrigger({ asChild = false, onClick, ...props }) {
|
|
5528
5366
|
const { open, setOpen, triggerRef } = useSheet();
|
|
5529
5367
|
const Comp = asChild ? Slot : "button";
|
|
5530
|
-
return /* @__PURE__ */
|
|
5368
|
+
return /* @__PURE__ */ jsx48(
|
|
5531
5369
|
Comp,
|
|
5532
5370
|
{
|
|
5533
5371
|
"data-slot": "sheet-trigger",
|
|
@@ -5543,7 +5381,7 @@ function SheetTrigger({ asChild = false, onClick, ...props }) {
|
|
|
5543
5381
|
}
|
|
5544
5382
|
function SheetOverlay({ className, ...props }) {
|
|
5545
5383
|
const { open, setOpen } = useSheet();
|
|
5546
|
-
return /* @__PURE__ */
|
|
5384
|
+
return /* @__PURE__ */ jsx48(
|
|
5547
5385
|
"div",
|
|
5548
5386
|
{
|
|
5549
5387
|
"data-slot": "sheet-overlay",
|
|
@@ -5560,7 +5398,7 @@ var sheetSideClasses = {
|
|
|
5560
5398
|
top: SHEET_SIDE_TOP,
|
|
5561
5399
|
bottom: SHEET_SIDE_BOTTOM
|
|
5562
5400
|
};
|
|
5563
|
-
var XIcon2 = (props) => /* @__PURE__ */
|
|
5401
|
+
var XIcon2 = (props) => /* @__PURE__ */ jsx48(
|
|
5564
5402
|
"svg",
|
|
5565
5403
|
{
|
|
5566
5404
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -5573,7 +5411,7 @@ var XIcon2 = (props) => /* @__PURE__ */ jsx49(
|
|
|
5573
5411
|
strokeLinecap: "round",
|
|
5574
5412
|
strokeLinejoin: "round",
|
|
5575
5413
|
...props,
|
|
5576
|
-
children: /* @__PURE__ */
|
|
5414
|
+
children: /* @__PURE__ */ jsx48("path", { d: "M18 6 6 18M6 6l12 12" })
|
|
5577
5415
|
}
|
|
5578
5416
|
);
|
|
5579
5417
|
function SheetContent({ className, children, side = "right", ...props }) {
|
|
@@ -5586,9 +5424,9 @@ function SheetContent({ className, children, side = "right", ...props }) {
|
|
|
5586
5424
|
exclude: [triggerRef]
|
|
5587
5425
|
});
|
|
5588
5426
|
if (!isPresent) return null;
|
|
5589
|
-
return /* @__PURE__ */
|
|
5590
|
-
/* @__PURE__ */
|
|
5591
|
-
/* @__PURE__ */
|
|
5427
|
+
return /* @__PURE__ */ jsxs18(Portal, { children: [
|
|
5428
|
+
/* @__PURE__ */ jsx48(SheetOverlay, {}),
|
|
5429
|
+
/* @__PURE__ */ jsxs18(
|
|
5592
5430
|
"div",
|
|
5593
5431
|
{
|
|
5594
5432
|
"data-slot": "sheet-content",
|
|
@@ -5600,7 +5438,7 @@ function SheetContent({ className, children, side = "right", ...props }) {
|
|
|
5600
5438
|
...props,
|
|
5601
5439
|
children: [
|
|
5602
5440
|
children,
|
|
5603
|
-
/* @__PURE__ */
|
|
5441
|
+
/* @__PURE__ */ jsxs18(
|
|
5604
5442
|
"button",
|
|
5605
5443
|
{
|
|
5606
5444
|
type: "button",
|
|
@@ -5608,8 +5446,8 @@ function SheetContent({ className, children, side = "right", ...props }) {
|
|
|
5608
5446
|
onClick: () => setOpen(false),
|
|
5609
5447
|
className: SHEET_CLOSE,
|
|
5610
5448
|
children: [
|
|
5611
|
-
/* @__PURE__ */
|
|
5612
|
-
/* @__PURE__ */
|
|
5449
|
+
/* @__PURE__ */ jsx48(XIcon2, { className: "size-4" }),
|
|
5450
|
+
/* @__PURE__ */ jsx48("span", { className: "sr-only", children: "Close" })
|
|
5613
5451
|
]
|
|
5614
5452
|
}
|
|
5615
5453
|
)
|
|
@@ -5621,7 +5459,7 @@ function SheetContent({ className, children, side = "right", ...props }) {
|
|
|
5621
5459
|
function SheetClose({ asChild = false, onClick, ...props }) {
|
|
5622
5460
|
const { setOpen } = useSheet();
|
|
5623
5461
|
const Comp = asChild ? Slot : "button";
|
|
5624
|
-
return /* @__PURE__ */
|
|
5462
|
+
return /* @__PURE__ */ jsx48(
|
|
5625
5463
|
Comp,
|
|
5626
5464
|
{
|
|
5627
5465
|
"data-slot": "sheet-close",
|
|
@@ -5634,7 +5472,7 @@ function SheetClose({ asChild = false, onClick, ...props }) {
|
|
|
5634
5472
|
);
|
|
5635
5473
|
}
|
|
5636
5474
|
function SheetHeader({ className, ...props }) {
|
|
5637
|
-
return /* @__PURE__ */
|
|
5475
|
+
return /* @__PURE__ */ jsx48(
|
|
5638
5476
|
"div",
|
|
5639
5477
|
{
|
|
5640
5478
|
"data-slot": "sheet-header",
|
|
@@ -5644,7 +5482,7 @@ function SheetHeader({ className, ...props }) {
|
|
|
5644
5482
|
);
|
|
5645
5483
|
}
|
|
5646
5484
|
function SheetFooter({ className, ...props }) {
|
|
5647
|
-
return /* @__PURE__ */
|
|
5485
|
+
return /* @__PURE__ */ jsx48(
|
|
5648
5486
|
"div",
|
|
5649
5487
|
{
|
|
5650
5488
|
"data-slot": "sheet-footer",
|
|
@@ -5654,7 +5492,7 @@ function SheetFooter({ className, ...props }) {
|
|
|
5654
5492
|
);
|
|
5655
5493
|
}
|
|
5656
5494
|
function SheetTitle({ className, ...props }) {
|
|
5657
|
-
return /* @__PURE__ */
|
|
5495
|
+
return /* @__PURE__ */ jsx48(
|
|
5658
5496
|
"h2",
|
|
5659
5497
|
{
|
|
5660
5498
|
"data-slot": "sheet-title",
|
|
@@ -5664,7 +5502,7 @@ function SheetTitle({ className, ...props }) {
|
|
|
5664
5502
|
);
|
|
5665
5503
|
}
|
|
5666
5504
|
function SheetDescription({ className, ...props }) {
|
|
5667
|
-
return /* @__PURE__ */
|
|
5505
|
+
return /* @__PURE__ */ jsx48(
|
|
5668
5506
|
"p",
|
|
5669
5507
|
{
|
|
5670
5508
|
"data-slot": "sheet-description",
|
|
@@ -5675,7 +5513,7 @@ function SheetDescription({ className, ...props }) {
|
|
|
5675
5513
|
}
|
|
5676
5514
|
|
|
5677
5515
|
// src/components/drawer.tsx
|
|
5678
|
-
import * as
|
|
5516
|
+
import * as React58 from "react";
|
|
5679
5517
|
|
|
5680
5518
|
// src/generated/drawer.ts
|
|
5681
5519
|
var DRAWER_CONTENT_BASE = "bg-background fixed z-50 flex h-auto border";
|
|
@@ -5693,10 +5531,10 @@ var DRAWER_TITLE = "text-foreground font-semibold";
|
|
|
5693
5531
|
var DRAWER_DESCRIPTION = "text-muted-foreground text-sm";
|
|
5694
5532
|
|
|
5695
5533
|
// src/components/drawer.tsx
|
|
5696
|
-
import { jsx as
|
|
5697
|
-
var DrawerContext =
|
|
5534
|
+
import { jsx as jsx49, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
5535
|
+
var DrawerContext = React58.createContext(null);
|
|
5698
5536
|
function useDrawer() {
|
|
5699
|
-
const ctx =
|
|
5537
|
+
const ctx = React58.useContext(DrawerContext);
|
|
5700
5538
|
if (!ctx) throw new Error("Drawer parts must be used within <Drawer>");
|
|
5701
5539
|
return ctx;
|
|
5702
5540
|
}
|
|
@@ -5712,12 +5550,12 @@ function Drawer({
|
|
|
5712
5550
|
defaultValue: defaultOpen,
|
|
5713
5551
|
...onOpenChange ? { onChange: onOpenChange } : {}
|
|
5714
5552
|
});
|
|
5715
|
-
return /* @__PURE__ */
|
|
5553
|
+
return /* @__PURE__ */ jsx49(DrawerContext.Provider, { value: { open: isOpen, setOpen, direction }, children: /* @__PURE__ */ jsx49("div", { "data-slot": "drawer", children }) });
|
|
5716
5554
|
}
|
|
5717
5555
|
function DrawerTrigger({ asChild = false, onClick, ...props }) {
|
|
5718
5556
|
const { setOpen } = useDrawer();
|
|
5719
5557
|
const Comp = asChild ? Slot : "button";
|
|
5720
|
-
return /* @__PURE__ */
|
|
5558
|
+
return /* @__PURE__ */ jsx49(
|
|
5721
5559
|
Comp,
|
|
5722
5560
|
{
|
|
5723
5561
|
"data-slot": "drawer-trigger",
|
|
@@ -5732,7 +5570,7 @@ function DrawerTrigger({ asChild = false, onClick, ...props }) {
|
|
|
5732
5570
|
function DrawerClose({ asChild = false, onClick, ...props }) {
|
|
5733
5571
|
const { setOpen } = useDrawer();
|
|
5734
5572
|
const Comp = asChild ? Slot : "button";
|
|
5735
|
-
return /* @__PURE__ */
|
|
5573
|
+
return /* @__PURE__ */ jsx49(
|
|
5736
5574
|
Comp,
|
|
5737
5575
|
{
|
|
5738
5576
|
"data-slot": "drawer-close",
|
|
@@ -5747,7 +5585,7 @@ function DrawerClose({ asChild = false, onClick, ...props }) {
|
|
|
5747
5585
|
function DrawerOverlay({ className, ...props }) {
|
|
5748
5586
|
const { open, setOpen } = useDrawer();
|
|
5749
5587
|
if (!open) return null;
|
|
5750
|
-
return /* @__PURE__ */
|
|
5588
|
+
return /* @__PURE__ */ jsx49(
|
|
5751
5589
|
"div",
|
|
5752
5590
|
{
|
|
5753
5591
|
"data-slot": "drawer-overlay",
|
|
@@ -5762,8 +5600,8 @@ function DrawerContent({ className, children, ...props }) {
|
|
|
5762
5600
|
const { open, setOpen, direction } = useDrawer();
|
|
5763
5601
|
const scopeRef = useFocusScope(open);
|
|
5764
5602
|
if (!open) return null;
|
|
5765
|
-
return /* @__PURE__ */
|
|
5766
|
-
/* @__PURE__ */
|
|
5603
|
+
return /* @__PURE__ */ jsxs19(Portal, { children: [
|
|
5604
|
+
/* @__PURE__ */ jsx49(
|
|
5767
5605
|
"div",
|
|
5768
5606
|
{
|
|
5769
5607
|
"data-slot": "drawer-overlay",
|
|
@@ -5771,7 +5609,7 @@ function DrawerContent({ className, children, ...props }) {
|
|
|
5771
5609
|
onClick: () => setOpen(false)
|
|
5772
5610
|
}
|
|
5773
5611
|
),
|
|
5774
|
-
/* @__PURE__ */
|
|
5612
|
+
/* @__PURE__ */ jsxs19(
|
|
5775
5613
|
"div",
|
|
5776
5614
|
{
|
|
5777
5615
|
role: "dialog",
|
|
@@ -5786,7 +5624,7 @@ function DrawerContent({ className, children, ...props }) {
|
|
|
5786
5624
|
className: cn(DRAWER_CONTENT_BASE, drawerDirectionClasses[direction], className),
|
|
5787
5625
|
...props,
|
|
5788
5626
|
children: [
|
|
5789
|
-
direction === "bottom" ? /* @__PURE__ */
|
|
5627
|
+
direction === "bottom" ? /* @__PURE__ */ jsx49(
|
|
5790
5628
|
"div",
|
|
5791
5629
|
{
|
|
5792
5630
|
"data-slot": "drawer-handle",
|
|
@@ -5800,7 +5638,7 @@ function DrawerContent({ className, children, ...props }) {
|
|
|
5800
5638
|
] });
|
|
5801
5639
|
}
|
|
5802
5640
|
function DrawerHeader({ className, ...props }) {
|
|
5803
|
-
return /* @__PURE__ */
|
|
5641
|
+
return /* @__PURE__ */ jsx49(
|
|
5804
5642
|
"div",
|
|
5805
5643
|
{
|
|
5806
5644
|
"data-slot": "drawer-header",
|
|
@@ -5810,7 +5648,7 @@ function DrawerHeader({ className, ...props }) {
|
|
|
5810
5648
|
);
|
|
5811
5649
|
}
|
|
5812
5650
|
function DrawerFooter({ className, ...props }) {
|
|
5813
|
-
return /* @__PURE__ */
|
|
5651
|
+
return /* @__PURE__ */ jsx49(
|
|
5814
5652
|
"div",
|
|
5815
5653
|
{
|
|
5816
5654
|
"data-slot": "drawer-footer",
|
|
@@ -5820,7 +5658,7 @@ function DrawerFooter({ className, ...props }) {
|
|
|
5820
5658
|
);
|
|
5821
5659
|
}
|
|
5822
5660
|
function DrawerTitle({ className, ...props }) {
|
|
5823
|
-
return /* @__PURE__ */
|
|
5661
|
+
return /* @__PURE__ */ jsx49(
|
|
5824
5662
|
"div",
|
|
5825
5663
|
{
|
|
5826
5664
|
"data-slot": "drawer-title",
|
|
@@ -5830,7 +5668,7 @@ function DrawerTitle({ className, ...props }) {
|
|
|
5830
5668
|
);
|
|
5831
5669
|
}
|
|
5832
5670
|
function DrawerDescription({ className, ...props }) {
|
|
5833
|
-
return /* @__PURE__ */
|
|
5671
|
+
return /* @__PURE__ */ jsx49(
|
|
5834
5672
|
"div",
|
|
5835
5673
|
{
|
|
5836
5674
|
"data-slot": "drawer-description",
|
|
@@ -5841,11 +5679,11 @@ function DrawerDescription({ className, ...props }) {
|
|
|
5841
5679
|
}
|
|
5842
5680
|
|
|
5843
5681
|
// src/components/select.tsx
|
|
5844
|
-
import * as
|
|
5845
|
-
import { jsx as
|
|
5846
|
-
var SelectContext =
|
|
5682
|
+
import * as React59 from "react";
|
|
5683
|
+
import { jsx as jsx50, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
5684
|
+
var SelectContext = React59.createContext(null);
|
|
5847
5685
|
function useSelect() {
|
|
5848
|
-
const ctx =
|
|
5686
|
+
const ctx = React59.useContext(SelectContext);
|
|
5849
5687
|
if (!ctx) throw new Error("Select parts must be used within <Select>");
|
|
5850
5688
|
return ctx;
|
|
5851
5689
|
}
|
|
@@ -5868,8 +5706,8 @@ function Select({
|
|
|
5868
5706
|
defaultValue: defaultOpen,
|
|
5869
5707
|
...onOpenChange ? { onChange: onOpenChange } : {}
|
|
5870
5708
|
});
|
|
5871
|
-
const anchorRef =
|
|
5872
|
-
return /* @__PURE__ */
|
|
5709
|
+
const anchorRef = React59.useRef(null);
|
|
5710
|
+
return /* @__PURE__ */ jsx50(
|
|
5873
5711
|
SelectContext.Provider,
|
|
5874
5712
|
{
|
|
5875
5713
|
value: { value: currentValue, setValue, open: isOpen, setOpen, anchorRef },
|
|
@@ -5885,7 +5723,7 @@ function SelectTrigger({
|
|
|
5885
5723
|
...props
|
|
5886
5724
|
}) {
|
|
5887
5725
|
const { open, setOpen, anchorRef } = useSelect();
|
|
5888
|
-
return /* @__PURE__ */
|
|
5726
|
+
return /* @__PURE__ */ jsxs20(
|
|
5889
5727
|
"button",
|
|
5890
5728
|
{
|
|
5891
5729
|
type: "button",
|
|
@@ -5906,7 +5744,7 @@ function SelectTrigger({
|
|
|
5906
5744
|
...props,
|
|
5907
5745
|
children: [
|
|
5908
5746
|
children,
|
|
5909
|
-
/* @__PURE__ */
|
|
5747
|
+
/* @__PURE__ */ jsx50(
|
|
5910
5748
|
"svg",
|
|
5911
5749
|
{
|
|
5912
5750
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -5920,7 +5758,7 @@ function SelectTrigger({
|
|
|
5920
5758
|
strokeLinejoin: "round",
|
|
5921
5759
|
className: "size-4 opacity-50",
|
|
5922
5760
|
"aria-hidden": "true",
|
|
5923
|
-
children: /* @__PURE__ */
|
|
5761
|
+
children: /* @__PURE__ */ jsx50("path", { d: "m6 9 6 6 6-6" })
|
|
5924
5762
|
}
|
|
5925
5763
|
)
|
|
5926
5764
|
]
|
|
@@ -5930,7 +5768,7 @@ function SelectTrigger({
|
|
|
5930
5768
|
function SelectValue({ className, placeholder, ...props }) {
|
|
5931
5769
|
const { value } = useSelect();
|
|
5932
5770
|
const isEmpty = value === "";
|
|
5933
|
-
return /* @__PURE__ */
|
|
5771
|
+
return /* @__PURE__ */ jsx50(
|
|
5934
5772
|
"span",
|
|
5935
5773
|
{
|
|
5936
5774
|
"data-slot": "select-value",
|
|
@@ -5963,13 +5801,13 @@ function SelectContent({
|
|
|
5963
5801
|
onDismiss: () => setOpen(false),
|
|
5964
5802
|
exclude: [anchorRef]
|
|
5965
5803
|
});
|
|
5966
|
-
const items =
|
|
5804
|
+
const items = React59.Children.toArray(children).filter(React59.isValidElement);
|
|
5967
5805
|
const { activeIndex, setActiveIndex, onKeyDown } = useRovingFocus({
|
|
5968
5806
|
count: items.length,
|
|
5969
5807
|
orientation: "vertical"
|
|
5970
5808
|
});
|
|
5971
5809
|
if (!isPresent) return null;
|
|
5972
|
-
return /* @__PURE__ */
|
|
5810
|
+
return /* @__PURE__ */ jsx50(Portal, { children: /* @__PURE__ */ jsx50(
|
|
5973
5811
|
"div",
|
|
5974
5812
|
{
|
|
5975
5813
|
role: "listbox",
|
|
@@ -5985,8 +5823,8 @@ function SelectContent({
|
|
|
5985
5823
|
className
|
|
5986
5824
|
),
|
|
5987
5825
|
...props,
|
|
5988
|
-
children: /* @__PURE__ */
|
|
5989
|
-
(child, index) =>
|
|
5826
|
+
children: /* @__PURE__ */ jsx50("div", { className: "p-1", children: items.map(
|
|
5827
|
+
(child, index) => React59.cloneElement(child, {
|
|
5990
5828
|
__index: index,
|
|
5991
5829
|
__active: index === activeIndex,
|
|
5992
5830
|
__setActive: setActiveIndex
|
|
@@ -6006,7 +5844,7 @@ function SelectItem({
|
|
|
6006
5844
|
}) {
|
|
6007
5845
|
const { value: selectedValue, setValue, setOpen } = useSelect();
|
|
6008
5846
|
const selected = selectedValue === value;
|
|
6009
|
-
return /* @__PURE__ */
|
|
5847
|
+
return /* @__PURE__ */ jsxs20(
|
|
6010
5848
|
"div",
|
|
6011
5849
|
{
|
|
6012
5850
|
role: "option",
|
|
@@ -6031,7 +5869,7 @@ function SelectItem({
|
|
|
6031
5869
|
),
|
|
6032
5870
|
...props,
|
|
6033
5871
|
children: [
|
|
6034
|
-
selected ? /* @__PURE__ */
|
|
5872
|
+
selected ? /* @__PURE__ */ jsx50("span", { className: "absolute right-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx50(
|
|
6035
5873
|
"svg",
|
|
6036
5874
|
{
|
|
6037
5875
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -6045,19 +5883,19 @@ function SelectItem({
|
|
|
6045
5883
|
strokeLinejoin: "round",
|
|
6046
5884
|
className: "size-4",
|
|
6047
5885
|
"aria-hidden": "true",
|
|
6048
|
-
children: /* @__PURE__ */
|
|
5886
|
+
children: /* @__PURE__ */ jsx50("path", { d: "M20 6 9 17l-5-5" })
|
|
6049
5887
|
}
|
|
6050
5888
|
) }) : null,
|
|
6051
|
-
/* @__PURE__ */
|
|
5889
|
+
/* @__PURE__ */ jsx50("span", { children })
|
|
6052
5890
|
]
|
|
6053
5891
|
}
|
|
6054
5892
|
);
|
|
6055
5893
|
}
|
|
6056
5894
|
function SelectGroup({ className, ...props }) {
|
|
6057
|
-
return /* @__PURE__ */
|
|
5895
|
+
return /* @__PURE__ */ jsx50("div", { role: "group", "data-slot": "select-group", className, ...props });
|
|
6058
5896
|
}
|
|
6059
5897
|
function SelectLabel({ className, ...props }) {
|
|
6060
|
-
return /* @__PURE__ */
|
|
5898
|
+
return /* @__PURE__ */ jsx50(
|
|
6061
5899
|
"div",
|
|
6062
5900
|
{
|
|
6063
5901
|
"data-slot": "select-label",
|
|
@@ -6067,7 +5905,7 @@ function SelectLabel({ className, ...props }) {
|
|
|
6067
5905
|
);
|
|
6068
5906
|
}
|
|
6069
5907
|
function SelectSeparator({ className, ...props }) {
|
|
6070
|
-
return /* @__PURE__ */
|
|
5908
|
+
return /* @__PURE__ */ jsx50(
|
|
6071
5909
|
"div",
|
|
6072
5910
|
{
|
|
6073
5911
|
"data-slot": "select-separator",
|
|
@@ -6078,7 +5916,7 @@ function SelectSeparator({ className, ...props }) {
|
|
|
6078
5916
|
}
|
|
6079
5917
|
|
|
6080
5918
|
// src/components/command.tsx
|
|
6081
|
-
import * as
|
|
5919
|
+
import * as React60 from "react";
|
|
6082
5920
|
|
|
6083
5921
|
// src/generated/command.ts
|
|
6084
5922
|
var COMMAND_ROOT = "bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md";
|
|
@@ -6095,10 +5933,10 @@ var COMMAND_SEPARATOR = "bg-border -mx-1 h-px";
|
|
|
6095
5933
|
var COMMAND_SHORTCUT = "text-muted-foreground ml-auto text-xs tracking-widest";
|
|
6096
5934
|
|
|
6097
5935
|
// src/components/command.tsx
|
|
6098
|
-
import { jsx as
|
|
6099
|
-
var CommandContext =
|
|
5936
|
+
import { jsx as jsx51, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
5937
|
+
var CommandContext = React60.createContext(null);
|
|
6100
5938
|
function useCommand() {
|
|
6101
|
-
const ctx =
|
|
5939
|
+
const ctx = React60.useContext(CommandContext);
|
|
6102
5940
|
if (!ctx) throw new Error("Command parts must be used within <Command>");
|
|
6103
5941
|
return ctx;
|
|
6104
5942
|
}
|
|
@@ -6115,7 +5953,7 @@ function Command({
|
|
|
6115
5953
|
defaultValue: defaultSearch,
|
|
6116
5954
|
...onSearchChange ? { onChange: onSearchChange } : {}
|
|
6117
5955
|
});
|
|
6118
|
-
return /* @__PURE__ */
|
|
5956
|
+
return /* @__PURE__ */ jsx51(CommandContext.Provider, { value: { search: currentSearch, setSearch }, children: /* @__PURE__ */ jsx51(
|
|
6119
5957
|
"div",
|
|
6120
5958
|
{
|
|
6121
5959
|
"data-slot": "command",
|
|
@@ -6139,8 +5977,8 @@ function CommandDialog({
|
|
|
6139
5977
|
});
|
|
6140
5978
|
const scopeRef = useFocusScope(isOpen);
|
|
6141
5979
|
if (!isOpen) return null;
|
|
6142
|
-
return /* @__PURE__ */
|
|
6143
|
-
/* @__PURE__ */
|
|
5980
|
+
return /* @__PURE__ */ jsxs21(Portal, { children: [
|
|
5981
|
+
/* @__PURE__ */ jsx51(
|
|
6144
5982
|
"div",
|
|
6145
5983
|
{
|
|
6146
5984
|
"data-slot": "command-overlay",
|
|
@@ -6148,7 +5986,7 @@ function CommandDialog({
|
|
|
6148
5986
|
onClick: () => setOpen(false)
|
|
6149
5987
|
}
|
|
6150
5988
|
),
|
|
6151
|
-
/* @__PURE__ */
|
|
5989
|
+
/* @__PURE__ */ jsx51(
|
|
6152
5990
|
"div",
|
|
6153
5991
|
{
|
|
6154
5992
|
role: "dialog",
|
|
@@ -6159,7 +5997,7 @@ function CommandDialog({
|
|
|
6159
5997
|
if (e.key === "Escape") setOpen(false);
|
|
6160
5998
|
},
|
|
6161
5999
|
className: cn(COMMAND_DIALOG_CONTENT, className),
|
|
6162
|
-
children: /* @__PURE__ */
|
|
6000
|
+
children: /* @__PURE__ */ jsx51(Command, { className: COMMAND_DIALOG_COMMAND, children })
|
|
6163
6001
|
}
|
|
6164
6002
|
)
|
|
6165
6003
|
] });
|
|
@@ -6169,8 +6007,8 @@ function CommandInput({
|
|
|
6169
6007
|
...props
|
|
6170
6008
|
}) {
|
|
6171
6009
|
const { search, setSearch } = useCommand();
|
|
6172
|
-
return /* @__PURE__ */
|
|
6173
|
-
/* @__PURE__ */
|
|
6010
|
+
return /* @__PURE__ */ jsxs21("div", { className: COMMAND_INPUT_WRAPPER, "data-slot": "command-input-wrapper", children: [
|
|
6011
|
+
/* @__PURE__ */ jsxs21(
|
|
6174
6012
|
"svg",
|
|
6175
6013
|
{
|
|
6176
6014
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -6185,12 +6023,12 @@ function CommandInput({
|
|
|
6185
6023
|
className: "size-4 shrink-0 opacity-50",
|
|
6186
6024
|
"aria-hidden": "true",
|
|
6187
6025
|
children: [
|
|
6188
|
-
/* @__PURE__ */
|
|
6189
|
-
/* @__PURE__ */
|
|
6026
|
+
/* @__PURE__ */ jsx51("circle", { cx: "11", cy: "11", r: "8" }),
|
|
6027
|
+
/* @__PURE__ */ jsx51("path", { d: "m21 21-4.3-4.3" })
|
|
6190
6028
|
]
|
|
6191
6029
|
}
|
|
6192
6030
|
),
|
|
6193
|
-
/* @__PURE__ */
|
|
6031
|
+
/* @__PURE__ */ jsx51(
|
|
6194
6032
|
"input",
|
|
6195
6033
|
{
|
|
6196
6034
|
type: "text",
|
|
@@ -6205,7 +6043,7 @@ function CommandInput({
|
|
|
6205
6043
|
] });
|
|
6206
6044
|
}
|
|
6207
6045
|
function CommandList({ className, ...props }) {
|
|
6208
|
-
return /* @__PURE__ */
|
|
6046
|
+
return /* @__PURE__ */ jsx51(
|
|
6209
6047
|
"div",
|
|
6210
6048
|
{
|
|
6211
6049
|
role: "listbox",
|
|
@@ -6219,7 +6057,7 @@ function CommandEmpty({ className, children, ...props }) {
|
|
|
6219
6057
|
const { search } = useCommand();
|
|
6220
6058
|
const hasQuery = search.trim() !== "";
|
|
6221
6059
|
if (!hasQuery) return null;
|
|
6222
|
-
return /* @__PURE__ */
|
|
6060
|
+
return /* @__PURE__ */ jsx51(
|
|
6223
6061
|
"div",
|
|
6224
6062
|
{
|
|
6225
6063
|
"data-slot": "command-empty",
|
|
@@ -6230,7 +6068,7 @@ function CommandEmpty({ className, children, ...props }) {
|
|
|
6230
6068
|
);
|
|
6231
6069
|
}
|
|
6232
6070
|
function CommandGroup({ className, heading, children, ...props }) {
|
|
6233
|
-
return /* @__PURE__ */
|
|
6071
|
+
return /* @__PURE__ */ jsxs21(
|
|
6234
6072
|
"div",
|
|
6235
6073
|
{
|
|
6236
6074
|
role: "group",
|
|
@@ -6238,7 +6076,7 @@ function CommandGroup({ className, heading, children, ...props }) {
|
|
|
6238
6076
|
className: cn(COMMAND_GROUP, className),
|
|
6239
6077
|
...props,
|
|
6240
6078
|
children: [
|
|
6241
|
-
heading ? /* @__PURE__ */
|
|
6079
|
+
heading ? /* @__PURE__ */ jsx51("div", { "data-slot": "command-group-heading", children: heading }) : null,
|
|
6242
6080
|
children
|
|
6243
6081
|
]
|
|
6244
6082
|
}
|
|
@@ -6255,7 +6093,7 @@ function CommandItem({
|
|
|
6255
6093
|
const { search } = useCommand();
|
|
6256
6094
|
const query = search.toLowerCase();
|
|
6257
6095
|
if (query !== "" && !value.toLowerCase().includes(query)) return null;
|
|
6258
|
-
return /* @__PURE__ */
|
|
6096
|
+
return /* @__PURE__ */ jsx51(
|
|
6259
6097
|
"div",
|
|
6260
6098
|
{
|
|
6261
6099
|
role: "option",
|
|
@@ -6273,7 +6111,7 @@ function CommandItem({
|
|
|
6273
6111
|
);
|
|
6274
6112
|
}
|
|
6275
6113
|
function CommandSeparator({ className, ...props }) {
|
|
6276
|
-
return /* @__PURE__ */
|
|
6114
|
+
return /* @__PURE__ */ jsx51(
|
|
6277
6115
|
"div",
|
|
6278
6116
|
{
|
|
6279
6117
|
"data-slot": "command-separator",
|
|
@@ -6283,7 +6121,7 @@ function CommandSeparator({ className, ...props }) {
|
|
|
6283
6121
|
);
|
|
6284
6122
|
}
|
|
6285
6123
|
function CommandShortcut({ className, ...props }) {
|
|
6286
|
-
return /* @__PURE__ */
|
|
6124
|
+
return /* @__PURE__ */ jsx51(
|
|
6287
6125
|
"span",
|
|
6288
6126
|
{
|
|
6289
6127
|
"data-slot": "command-shortcut",
|
|
@@ -6294,7 +6132,7 @@ function CommandShortcut({ className, ...props }) {
|
|
|
6294
6132
|
}
|
|
6295
6133
|
|
|
6296
6134
|
// src/components/chart.tsx
|
|
6297
|
-
import * as
|
|
6135
|
+
import * as React61 from "react";
|
|
6298
6136
|
|
|
6299
6137
|
// src/generated/chart.ts
|
|
6300
6138
|
var CHART_CONTAINER = "flex aspect-video justify-center text-xs [&_.recharts-layer]:outline-hidden [&_.recharts-surface]:outline-hidden [&_svg]:outline-hidden";
|
|
@@ -6302,10 +6140,10 @@ var CHART_TOOLTIP = "border-border/50 bg-background grid min-w-[8rem] items-star
|
|
|
6302
6140
|
var CHART_LEGEND = "flex items-center justify-center gap-4";
|
|
6303
6141
|
|
|
6304
6142
|
// src/components/chart.tsx
|
|
6305
|
-
import { Fragment as Fragment6, jsx as
|
|
6306
|
-
var ChartContext =
|
|
6143
|
+
import { Fragment as Fragment6, jsx as jsx52, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
6144
|
+
var ChartContext = React61.createContext(null);
|
|
6307
6145
|
function useChart() {
|
|
6308
|
-
const context =
|
|
6146
|
+
const context = React61.useContext(ChartContext);
|
|
6309
6147
|
if (!context) {
|
|
6310
6148
|
throw new Error("useChart must be used within a <ChartContainer />");
|
|
6311
6149
|
}
|
|
@@ -6318,9 +6156,9 @@ function ChartContainer({
|
|
|
6318
6156
|
config,
|
|
6319
6157
|
...props
|
|
6320
6158
|
}) {
|
|
6321
|
-
const uniqueId =
|
|
6159
|
+
const uniqueId = React61.useId();
|
|
6322
6160
|
const chartId = `chart-${id || uniqueId.replace(/:/g, "")}`;
|
|
6323
|
-
return /* @__PURE__ */
|
|
6161
|
+
return /* @__PURE__ */ jsx52(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ jsxs22(
|
|
6324
6162
|
"div",
|
|
6325
6163
|
{
|
|
6326
6164
|
"data-slot": "chart",
|
|
@@ -6328,7 +6166,7 @@ function ChartContainer({
|
|
|
6328
6166
|
className: cn(CHART_CONTAINER, className),
|
|
6329
6167
|
...props,
|
|
6330
6168
|
children: [
|
|
6331
|
-
/* @__PURE__ */
|
|
6169
|
+
/* @__PURE__ */ jsx52(ChartStyle, { id: chartId, config }),
|
|
6332
6170
|
children
|
|
6333
6171
|
]
|
|
6334
6172
|
}
|
|
@@ -6339,7 +6177,7 @@ var ChartStyle = ({ id, config }) => {
|
|
|
6339
6177
|
if (!colorConfig.length) {
|
|
6340
6178
|
return null;
|
|
6341
6179
|
}
|
|
6342
|
-
return /* @__PURE__ */
|
|
6180
|
+
return /* @__PURE__ */ jsx52(
|
|
6343
6181
|
"style",
|
|
6344
6182
|
{
|
|
6345
6183
|
dangerouslySetInnerHTML: {
|
|
@@ -6350,7 +6188,7 @@ ${colorConfig.map(([key, itemConfig]) => ` --color-${key}: ${itemConfig.color};
|
|
|
6350
6188
|
}
|
|
6351
6189
|
);
|
|
6352
6190
|
};
|
|
6353
|
-
var ChartTooltip = ({ children }) => /* @__PURE__ */
|
|
6191
|
+
var ChartTooltip = ({ children }) => /* @__PURE__ */ jsx52(Fragment6, { children });
|
|
6354
6192
|
function ChartTooltipContent({
|
|
6355
6193
|
className,
|
|
6356
6194
|
items = [],
|
|
@@ -6363,21 +6201,21 @@ function ChartTooltipContent({
|
|
|
6363
6201
|
if (!items.length) {
|
|
6364
6202
|
return null;
|
|
6365
6203
|
}
|
|
6366
|
-
return /* @__PURE__ */
|
|
6204
|
+
return /* @__PURE__ */ jsxs22(
|
|
6367
6205
|
"div",
|
|
6368
6206
|
{
|
|
6369
6207
|
"data-slot": "chart-tooltip",
|
|
6370
6208
|
className: cn(CHART_TOOLTIP, className),
|
|
6371
6209
|
children: [
|
|
6372
|
-
!hideLabel && label ? /* @__PURE__ */
|
|
6373
|
-
/* @__PURE__ */
|
|
6210
|
+
!hideLabel && label ? /* @__PURE__ */ jsx52("div", { className: cn("font-medium", labelClassName), children: label }) : null,
|
|
6211
|
+
/* @__PURE__ */ jsx52("div", { className: "grid gap-1.5", children: items.map((item, index) => /* @__PURE__ */ jsxs22(
|
|
6374
6212
|
"div",
|
|
6375
6213
|
{
|
|
6376
6214
|
className: cn(
|
|
6377
6215
|
"[&>svg]:text-muted-foreground flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 items-center"
|
|
6378
6216
|
),
|
|
6379
6217
|
children: [
|
|
6380
|
-
!hideIndicator && /* @__PURE__ */
|
|
6218
|
+
!hideIndicator && /* @__PURE__ */ jsx52(
|
|
6381
6219
|
"div",
|
|
6382
6220
|
{
|
|
6383
6221
|
className: "shrink-0 rounded-[2px] h-2.5 w-2.5",
|
|
@@ -6387,9 +6225,9 @@ function ChartTooltipContent({
|
|
|
6387
6225
|
}
|
|
6388
6226
|
}
|
|
6389
6227
|
),
|
|
6390
|
-
/* @__PURE__ */
|
|
6391
|
-
/* @__PURE__ */
|
|
6392
|
-
item.value !== void 0 && /* @__PURE__ */
|
|
6228
|
+
/* @__PURE__ */ jsxs22("div", { className: "flex flex-1 justify-between leading-none items-center", children: [
|
|
6229
|
+
/* @__PURE__ */ jsx52("span", { className: "text-muted-foreground", children: item.label }),
|
|
6230
|
+
item.value !== void 0 && /* @__PURE__ */ jsx52("span", { className: "text-foreground font-mono font-medium tabular-nums", children: item.value })
|
|
6393
6231
|
] })
|
|
6394
6232
|
]
|
|
6395
6233
|
},
|
|
@@ -6399,7 +6237,7 @@ function ChartTooltipContent({
|
|
|
6399
6237
|
}
|
|
6400
6238
|
);
|
|
6401
6239
|
}
|
|
6402
|
-
var ChartLegend = ({ children }) => /* @__PURE__ */
|
|
6240
|
+
var ChartLegend = ({ children }) => /* @__PURE__ */ jsx52(Fragment6, { children });
|
|
6403
6241
|
function ChartLegendContent({
|
|
6404
6242
|
className,
|
|
6405
6243
|
hideIcon = false,
|
|
@@ -6413,19 +6251,19 @@ function ChartLegendContent({
|
|
|
6413
6251
|
if (!rows.length) {
|
|
6414
6252
|
return null;
|
|
6415
6253
|
}
|
|
6416
|
-
return /* @__PURE__ */
|
|
6254
|
+
return /* @__PURE__ */ jsx52(
|
|
6417
6255
|
"div",
|
|
6418
6256
|
{
|
|
6419
6257
|
"data-slot": "chart-legend",
|
|
6420
6258
|
className: cn(CHART_LEGEND, className),
|
|
6421
|
-
children: rows.map((item, index) => /* @__PURE__ */
|
|
6259
|
+
children: rows.map((item, index) => /* @__PURE__ */ jsxs22(
|
|
6422
6260
|
"div",
|
|
6423
6261
|
{
|
|
6424
6262
|
className: cn(
|
|
6425
6263
|
"[&>svg]:text-muted-foreground flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3"
|
|
6426
6264
|
),
|
|
6427
6265
|
children: [
|
|
6428
|
-
!hideIcon && /* @__PURE__ */
|
|
6266
|
+
!hideIcon && /* @__PURE__ */ jsx52(
|
|
6429
6267
|
"div",
|
|
6430
6268
|
{
|
|
6431
6269
|
className: "h-2 w-2 shrink-0 rounded-[2px]",
|
|
@@ -6442,7 +6280,7 @@ function ChartLegendContent({
|
|
|
6442
6280
|
}
|
|
6443
6281
|
|
|
6444
6282
|
// src/components/calendar.tsx
|
|
6445
|
-
import * as
|
|
6283
|
+
import * as React62 from "react";
|
|
6446
6284
|
|
|
6447
6285
|
// src/generated/calendar.ts
|
|
6448
6286
|
var CALENDAR_ROOT = "bg-background p-3 w-fit";
|
|
@@ -6460,7 +6298,7 @@ var CALENDAR_DAY_SELECTED = "bg-primary text-primary-foreground";
|
|
|
6460
6298
|
var CALENDAR_DAY_TODAY = "bg-accent text-accent-foreground rounded-md";
|
|
6461
6299
|
|
|
6462
6300
|
// src/components/calendar.tsx
|
|
6463
|
-
import { jsx as
|
|
6301
|
+
import { jsx as jsx53, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
6464
6302
|
var MONTHS = [
|
|
6465
6303
|
"January",
|
|
6466
6304
|
"February",
|
|
@@ -6479,7 +6317,7 @@ var WEEKDAYS = ["Mo", "Tu", "We", "Th", "Fr", "Sa", "Su"];
|
|
|
6479
6317
|
var CHEVRON_LEFT = "m15 18-6-6 6-6";
|
|
6480
6318
|
var CHEVRON_RIGHT = "m9 18 6-6-6-6";
|
|
6481
6319
|
function Chevron({ d }) {
|
|
6482
|
-
return /* @__PURE__ */
|
|
6320
|
+
return /* @__PURE__ */ jsx53(
|
|
6483
6321
|
"svg",
|
|
6484
6322
|
{
|
|
6485
6323
|
className: "size-4",
|
|
@@ -6493,7 +6331,7 @@ function Chevron({ d }) {
|
|
|
6493
6331
|
strokeLinecap: "round",
|
|
6494
6332
|
strokeLinejoin: "round",
|
|
6495
6333
|
"aria-hidden": true,
|
|
6496
|
-
children: /* @__PURE__ */
|
|
6334
|
+
children: /* @__PURE__ */ jsx53("path", { d })
|
|
6497
6335
|
}
|
|
6498
6336
|
);
|
|
6499
6337
|
}
|
|
@@ -6515,7 +6353,7 @@ function Calendar({
|
|
|
6515
6353
|
today = /* @__PURE__ */ new Date(),
|
|
6516
6354
|
className
|
|
6517
6355
|
}) {
|
|
6518
|
-
const [internal, setInternal] =
|
|
6356
|
+
const [internal, setInternal] = React62.useState(
|
|
6519
6357
|
() => startOfMonth(defaultMonth ?? /* @__PURE__ */ new Date())
|
|
6520
6358
|
);
|
|
6521
6359
|
const view = month ? startOfMonth(month) : internal;
|
|
@@ -6540,38 +6378,38 @@ function Calendar({
|
|
|
6540
6378
|
size: "icon",
|
|
6541
6379
|
className: CALENDAR_NAV_BUTTON
|
|
6542
6380
|
});
|
|
6543
|
-
return /* @__PURE__ */
|
|
6381
|
+
return /* @__PURE__ */ jsxs23(
|
|
6544
6382
|
"div",
|
|
6545
6383
|
{
|
|
6546
6384
|
"data-slot": "calendar",
|
|
6547
6385
|
role: "application",
|
|
6548
6386
|
className: cn(CALENDAR_ROOT, className),
|
|
6549
6387
|
children: [
|
|
6550
|
-
/* @__PURE__ */
|
|
6551
|
-
/* @__PURE__ */
|
|
6388
|
+
/* @__PURE__ */ jsxs23("div", { className: CALENDAR_NAV, children: [
|
|
6389
|
+
/* @__PURE__ */ jsx53(
|
|
6552
6390
|
"button",
|
|
6553
6391
|
{
|
|
6554
6392
|
type: "button",
|
|
6555
6393
|
className: navClass,
|
|
6556
6394
|
"aria-label": "Previous month",
|
|
6557
6395
|
onClick: () => go(-1),
|
|
6558
|
-
children: /* @__PURE__ */
|
|
6396
|
+
children: /* @__PURE__ */ jsx53(Chevron, { d: CHEVRON_LEFT })
|
|
6559
6397
|
}
|
|
6560
6398
|
),
|
|
6561
|
-
/* @__PURE__ */
|
|
6562
|
-
/* @__PURE__ */
|
|
6399
|
+
/* @__PURE__ */ jsx53("div", { className: CALENDAR_CAPTION, children: caption }),
|
|
6400
|
+
/* @__PURE__ */ jsx53(
|
|
6563
6401
|
"button",
|
|
6564
6402
|
{
|
|
6565
6403
|
type: "button",
|
|
6566
6404
|
className: navClass,
|
|
6567
6405
|
"aria-label": "Next month",
|
|
6568
6406
|
onClick: () => go(1),
|
|
6569
|
-
children: /* @__PURE__ */
|
|
6407
|
+
children: /* @__PURE__ */ jsx53(Chevron, { d: CHEVRON_RIGHT })
|
|
6570
6408
|
}
|
|
6571
6409
|
)
|
|
6572
6410
|
] }),
|
|
6573
|
-
/* @__PURE__ */
|
|
6574
|
-
/* @__PURE__ */
|
|
6411
|
+
/* @__PURE__ */ jsxs23("table", { className: CALENDAR_GRID, role: "grid", children: [
|
|
6412
|
+
/* @__PURE__ */ jsx53("thead", { children: /* @__PURE__ */ jsx53("tr", { className: CALENDAR_WEEKDAY_ROW, children: WEEKDAYS.map((wd) => /* @__PURE__ */ jsx53(
|
|
6575
6413
|
"th",
|
|
6576
6414
|
{
|
|
6577
6415
|
scope: "col",
|
|
@@ -6580,9 +6418,9 @@ function Calendar({
|
|
|
6580
6418
|
},
|
|
6581
6419
|
wd
|
|
6582
6420
|
)) }) }),
|
|
6583
|
-
/* @__PURE__ */
|
|
6421
|
+
/* @__PURE__ */ jsx53("tbody", { children: weeks.map((week, wi) => /* @__PURE__ */ jsx53("tr", { className: CALENDAR_WEEK, children: week.map((cell, ci) => {
|
|
6584
6422
|
if (cell === null) {
|
|
6585
|
-
return /* @__PURE__ */
|
|
6423
|
+
return /* @__PURE__ */ jsx53(
|
|
6586
6424
|
"td",
|
|
6587
6425
|
{
|
|
6588
6426
|
className: CALENDAR_DAY_EMPTY
|
|
@@ -6593,13 +6431,13 @@ function Calendar({
|
|
|
6593
6431
|
const date = new Date(year, monthIndex, cell);
|
|
6594
6432
|
const isSelected = sameDay(selected, date);
|
|
6595
6433
|
const isToday = sameDay(today, date);
|
|
6596
|
-
return /* @__PURE__ */
|
|
6434
|
+
return /* @__PURE__ */ jsx53(
|
|
6597
6435
|
"td",
|
|
6598
6436
|
{
|
|
6599
6437
|
role: "gridcell",
|
|
6600
6438
|
"aria-selected": isSelected,
|
|
6601
6439
|
className: CALENDAR_DAY_CELL,
|
|
6602
|
-
children: /* @__PURE__ */
|
|
6440
|
+
children: /* @__PURE__ */ jsx53(
|
|
6603
6441
|
"button",
|
|
6604
6442
|
{
|
|
6605
6443
|
type: "button",
|
|
@@ -6629,7 +6467,7 @@ function Calendar({
|
|
|
6629
6467
|
}
|
|
6630
6468
|
|
|
6631
6469
|
// src/components/sonner.tsx
|
|
6632
|
-
import * as
|
|
6470
|
+
import * as React63 from "react";
|
|
6633
6471
|
|
|
6634
6472
|
// src/generated/sonner.ts
|
|
6635
6473
|
var TOAST_BASE = "pointer-events-auto flex w-full items-start gap-3 rounded-md border p-4 text-sm shadow-lg";
|
|
@@ -6654,7 +6492,7 @@ var TOAST_CONTENT = "flex-1 space-y-1";
|
|
|
6654
6492
|
var TOAST_TITLE = "font-medium";
|
|
6655
6493
|
|
|
6656
6494
|
// src/components/sonner.tsx
|
|
6657
|
-
import { jsx as
|
|
6495
|
+
import { jsx as jsx54, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
6658
6496
|
var DEFAULT_DURATION = 4e3;
|
|
6659
6497
|
var SWIPE_THRESHOLD = 45;
|
|
6660
6498
|
var SWIPE_VELOCITY = 0.11;
|
|
@@ -6719,17 +6557,17 @@ function ToastItem({
|
|
|
6719
6557
|
reportHeight,
|
|
6720
6558
|
removeHeight
|
|
6721
6559
|
}) {
|
|
6722
|
-
const ref =
|
|
6723
|
-
const [height, setHeight] =
|
|
6724
|
-
const remainingRef =
|
|
6725
|
-
const startedRef =
|
|
6726
|
-
const flingRef =
|
|
6560
|
+
const ref = React63.useRef(null);
|
|
6561
|
+
const [height, setHeight] = React63.useState(0);
|
|
6562
|
+
const remainingRef = React63.useRef(t.duration);
|
|
6563
|
+
const startedRef = React63.useRef(0);
|
|
6564
|
+
const flingRef = React63.useRef(
|
|
6727
6565
|
void 0
|
|
6728
6566
|
);
|
|
6729
|
-
const dragRef =
|
|
6567
|
+
const dragRef = React63.useRef(
|
|
6730
6568
|
null
|
|
6731
6569
|
);
|
|
6732
|
-
|
|
6570
|
+
React63.useLayoutEffect(() => {
|
|
6733
6571
|
const el = ref.current;
|
|
6734
6572
|
if (!el) return;
|
|
6735
6573
|
el.style.height = "auto";
|
|
@@ -6740,8 +6578,8 @@ function ToastItem({
|
|
|
6740
6578
|
reportHeight(t.id, h);
|
|
6741
6579
|
}
|
|
6742
6580
|
}, [t.id, t.message, t.description, reportHeight]);
|
|
6743
|
-
|
|
6744
|
-
|
|
6581
|
+
React63.useEffect(() => () => removeHeight(t.id), [t.id, removeHeight]);
|
|
6582
|
+
React63.useEffect(() => {
|
|
6745
6583
|
if (t.duration === Infinity || t.state === "closing" || paused) return;
|
|
6746
6584
|
startedRef.current = Date.now();
|
|
6747
6585
|
const id = setTimeout(() => store.dismiss(t.id), remainingRef.current);
|
|
@@ -6753,7 +6591,7 @@ function ToastItem({
|
|
|
6753
6591
|
);
|
|
6754
6592
|
};
|
|
6755
6593
|
}, [paused, t.id, t.duration, t.state]);
|
|
6756
|
-
|
|
6594
|
+
React63.useEffect(
|
|
6757
6595
|
() => () => {
|
|
6758
6596
|
if (flingRef.current) clearTimeout(flingRef.current);
|
|
6759
6597
|
},
|
|
@@ -6812,7 +6650,7 @@ function ToastItem({
|
|
|
6812
6650
|
);
|
|
6813
6651
|
}
|
|
6814
6652
|
};
|
|
6815
|
-
return /* @__PURE__ */
|
|
6653
|
+
return /* @__PURE__ */ jsxs24(
|
|
6816
6654
|
"li",
|
|
6817
6655
|
{
|
|
6818
6656
|
ref,
|
|
@@ -6840,11 +6678,11 @@ function ToastItem({
|
|
|
6840
6678
|
toastVariantClasses[t.variant]
|
|
6841
6679
|
),
|
|
6842
6680
|
children: [
|
|
6843
|
-
/* @__PURE__ */
|
|
6844
|
-
/* @__PURE__ */
|
|
6845
|
-
t.description ? /* @__PURE__ */
|
|
6681
|
+
/* @__PURE__ */ jsxs24("div", { className: TOAST_CONTENT, children: [
|
|
6682
|
+
/* @__PURE__ */ jsx54("div", { className: TOAST_TITLE, children: t.message }),
|
|
6683
|
+
t.description ? /* @__PURE__ */ jsx54("div", { className: "text-muted-foreground text-sm", children: t.description }) : null
|
|
6846
6684
|
] }),
|
|
6847
|
-
/* @__PURE__ */
|
|
6685
|
+
/* @__PURE__ */ jsx54(
|
|
6848
6686
|
"button",
|
|
6849
6687
|
{
|
|
6850
6688
|
type: "button",
|
|
@@ -6852,7 +6690,7 @@ function ToastItem({
|
|
|
6852
6690
|
"data-slot": "toast-close",
|
|
6853
6691
|
onClick: () => store.dismiss(t.id),
|
|
6854
6692
|
className: TOAST_CLOSE,
|
|
6855
|
-
children: /* @__PURE__ */
|
|
6693
|
+
children: /* @__PURE__ */ jsx54(
|
|
6856
6694
|
"svg",
|
|
6857
6695
|
{
|
|
6858
6696
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -6865,7 +6703,7 @@ function ToastItem({
|
|
|
6865
6703
|
strokeLinecap: "round",
|
|
6866
6704
|
strokeLinejoin: "round",
|
|
6867
6705
|
"aria-hidden": "true",
|
|
6868
|
-
children: /* @__PURE__ */
|
|
6706
|
+
children: /* @__PURE__ */ jsx54("path", { d: "M18 6 6 18M6 6l12 12" })
|
|
6869
6707
|
}
|
|
6870
6708
|
)
|
|
6871
6709
|
}
|
|
@@ -6879,17 +6717,17 @@ function Toaster({
|
|
|
6879
6717
|
className,
|
|
6880
6718
|
...props
|
|
6881
6719
|
}) {
|
|
6882
|
-
const [toasts, setToasts] =
|
|
6883
|
-
const [heights, setHeights] =
|
|
6884
|
-
const [paused, setPaused] =
|
|
6885
|
-
|
|
6720
|
+
const [toasts, setToasts] = React63.useState([]);
|
|
6721
|
+
const [heights, setHeights] = React63.useState(/* @__PURE__ */ new Map());
|
|
6722
|
+
const [paused, setPaused] = React63.useState(false);
|
|
6723
|
+
React63.useEffect(() => store.subscribe(setToasts), []);
|
|
6886
6724
|
const onEnter = () => setPaused(true);
|
|
6887
6725
|
const onLeave = (e) => {
|
|
6888
6726
|
if (!e.currentTarget.contains(e.relatedTarget)) {
|
|
6889
6727
|
setPaused(false);
|
|
6890
6728
|
}
|
|
6891
6729
|
};
|
|
6892
|
-
const reportHeight =
|
|
6730
|
+
const reportHeight = React63.useCallback((id, h) => {
|
|
6893
6731
|
setHeights((prev) => {
|
|
6894
6732
|
if (prev.get(id) === h) return prev;
|
|
6895
6733
|
const next = new Map(prev);
|
|
@@ -6897,7 +6735,7 @@ function Toaster({
|
|
|
6897
6735
|
return next;
|
|
6898
6736
|
});
|
|
6899
6737
|
}, []);
|
|
6900
|
-
const removeHeight =
|
|
6738
|
+
const removeHeight = React63.useCallback((id) => {
|
|
6901
6739
|
setHeights((prev) => {
|
|
6902
6740
|
if (!prev.has(id)) return prev;
|
|
6903
6741
|
const next = new Map(prev);
|
|
@@ -6915,7 +6753,7 @@ function Toaster({
|
|
|
6915
6753
|
sum += heights.get(t.id) ?? 0;
|
|
6916
6754
|
return o;
|
|
6917
6755
|
});
|
|
6918
|
-
return /* @__PURE__ */
|
|
6756
|
+
return /* @__PURE__ */ jsx54(
|
|
6919
6757
|
"ol",
|
|
6920
6758
|
{
|
|
6921
6759
|
"data-slot": "toaster",
|
|
@@ -6936,7 +6774,7 @@ function Toaster({
|
|
|
6936
6774
|
onPointerOut: onLeave,
|
|
6937
6775
|
onFocus: onEnter,
|
|
6938
6776
|
onBlur: onLeave,
|
|
6939
|
-
children: ordered.map((t, i) => /* @__PURE__ */
|
|
6777
|
+
children: ordered.map((t, i) => /* @__PURE__ */ jsx54(
|
|
6940
6778
|
ToastItem,
|
|
6941
6779
|
{
|
|
6942
6780
|
toast: t,
|
|
@@ -6954,7 +6792,7 @@ function Toaster({
|
|
|
6954
6792
|
}
|
|
6955
6793
|
|
|
6956
6794
|
// src/components/form.tsx
|
|
6957
|
-
import * as
|
|
6795
|
+
import * as React64 from "react";
|
|
6958
6796
|
|
|
6959
6797
|
// src/generated/form.ts
|
|
6960
6798
|
var FORM_ITEM = "grid gap-2";
|
|
@@ -6962,21 +6800,21 @@ var FORM_DESCRIPTION = "text-muted-foreground text-sm";
|
|
|
6962
6800
|
var FORM_MESSAGE = "text-destructive text-sm";
|
|
6963
6801
|
|
|
6964
6802
|
// src/components/form.tsx
|
|
6965
|
-
import { jsx as
|
|
6966
|
-
var FormItemContext =
|
|
6803
|
+
import { jsx as jsx55 } from "react/jsx-runtime";
|
|
6804
|
+
var FormItemContext = React64.createContext(null);
|
|
6967
6805
|
function useFormItem() {
|
|
6968
|
-
const ctx =
|
|
6806
|
+
const ctx = React64.useContext(FormItemContext);
|
|
6969
6807
|
if (!ctx) {
|
|
6970
6808
|
throw new Error("Form parts must be used within <FormItem>");
|
|
6971
6809
|
}
|
|
6972
6810
|
return ctx;
|
|
6973
6811
|
}
|
|
6974
6812
|
function Form({ ...props }) {
|
|
6975
|
-
return /* @__PURE__ */
|
|
6813
|
+
return /* @__PURE__ */ jsx55("form", { "data-slot": "form", ...props });
|
|
6976
6814
|
}
|
|
6977
6815
|
function FormItem({ className, ...props }) {
|
|
6978
|
-
const id =
|
|
6979
|
-
const value =
|
|
6816
|
+
const id = React64.useId();
|
|
6817
|
+
const value = React64.useMemo(
|
|
6980
6818
|
() => ({
|
|
6981
6819
|
id,
|
|
6982
6820
|
formItemId: `${id}-form-item`,
|
|
@@ -6985,7 +6823,7 @@ function FormItem({ className, ...props }) {
|
|
|
6985
6823
|
}),
|
|
6986
6824
|
[id]
|
|
6987
6825
|
);
|
|
6988
|
-
return /* @__PURE__ */
|
|
6826
|
+
return /* @__PURE__ */ jsx55(FormItemContext.Provider, { value, children: /* @__PURE__ */ jsx55("div", { "data-slot": "form-item", className: cn(FORM_ITEM, className), ...props }) });
|
|
6989
6827
|
}
|
|
6990
6828
|
function FormLabel({
|
|
6991
6829
|
className,
|
|
@@ -6993,7 +6831,7 @@ function FormLabel({
|
|
|
6993
6831
|
...props
|
|
6994
6832
|
}) {
|
|
6995
6833
|
const { formItemId } = useFormItem();
|
|
6996
|
-
return /* @__PURE__ */
|
|
6834
|
+
return /* @__PURE__ */ jsx55(
|
|
6997
6835
|
Label,
|
|
6998
6836
|
{
|
|
6999
6837
|
"data-slot": "form-label",
|
|
@@ -7009,7 +6847,7 @@ function FormControl({
|
|
|
7009
6847
|
...props
|
|
7010
6848
|
}) {
|
|
7011
6849
|
const { formItemId, formDescriptionId, formMessageId } = useFormItem();
|
|
7012
|
-
return /* @__PURE__ */
|
|
6850
|
+
return /* @__PURE__ */ jsx55(
|
|
7013
6851
|
Slot,
|
|
7014
6852
|
{
|
|
7015
6853
|
"data-slot": "form-control",
|
|
@@ -7022,7 +6860,7 @@ function FormControl({
|
|
|
7022
6860
|
}
|
|
7023
6861
|
function FormDescription({ className, ...props }) {
|
|
7024
6862
|
const { formDescriptionId } = useFormItem();
|
|
7025
|
-
return /* @__PURE__ */
|
|
6863
|
+
return /* @__PURE__ */ jsx55(
|
|
7026
6864
|
"p",
|
|
7027
6865
|
{
|
|
7028
6866
|
"data-slot": "form-description",
|
|
@@ -7037,7 +6875,7 @@ function FormMessage({ className, children, ...props }) {
|
|
|
7037
6875
|
if (!children) {
|
|
7038
6876
|
return null;
|
|
7039
6877
|
}
|
|
7040
|
-
return /* @__PURE__ */
|
|
6878
|
+
return /* @__PURE__ */ jsx55(
|
|
7041
6879
|
"p",
|
|
7042
6880
|
{
|
|
7043
6881
|
"data-slot": "form-message",
|
|
@@ -7050,7 +6888,7 @@ function FormMessage({ className, children, ...props }) {
|
|
|
7050
6888
|
}
|
|
7051
6889
|
|
|
7052
6890
|
// src/components/resizable.tsx
|
|
7053
|
-
import * as
|
|
6891
|
+
import * as React65 from "react";
|
|
7054
6892
|
|
|
7055
6893
|
// src/generated/resizable.ts
|
|
7056
6894
|
var RESIZABLE_GROUP = "flex h-full w-full data-[panel-group-direction=vertical]:flex-col";
|
|
@@ -7059,10 +6897,10 @@ var RESIZABLE_HANDLE = "bg-border focus-visible:ring-ring relative flex w-px ite
|
|
|
7059
6897
|
var RESIZABLE_HANDLE_GRIP = "bg-border z-10 flex h-4 w-3 items-center justify-center rounded-xs border";
|
|
7060
6898
|
|
|
7061
6899
|
// src/components/resizable.tsx
|
|
7062
|
-
import { jsx as
|
|
7063
|
-
var ResizableContext =
|
|
6900
|
+
import { jsx as jsx56, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
6901
|
+
var ResizableContext = React65.createContext(null);
|
|
7064
6902
|
function useResizable() {
|
|
7065
|
-
const ctx =
|
|
6903
|
+
const ctx = React65.useContext(ResizableContext);
|
|
7066
6904
|
if (!ctx)
|
|
7067
6905
|
throw new Error("Resizable parts must be used within a ResizablePanelGroup");
|
|
7068
6906
|
return ctx;
|
|
@@ -7085,9 +6923,9 @@ function ResizablePanelGroup({
|
|
|
7085
6923
|
children,
|
|
7086
6924
|
...props
|
|
7087
6925
|
}) {
|
|
7088
|
-
const [sizes, setSizes] =
|
|
7089
|
-
const groupRef =
|
|
7090
|
-
const register =
|
|
6926
|
+
const [sizes, setSizes] = React65.useState([]);
|
|
6927
|
+
const groupRef = React65.useRef(null);
|
|
6928
|
+
const register = React65.useCallback((index, defaultSize) => {
|
|
7091
6929
|
setSizes((prev) => {
|
|
7092
6930
|
if (prev[index] !== void 0) return prev;
|
|
7093
6931
|
const next = prev.slice();
|
|
@@ -7096,14 +6934,14 @@ function ResizablePanelGroup({
|
|
|
7096
6934
|
return next;
|
|
7097
6935
|
});
|
|
7098
6936
|
}, []);
|
|
7099
|
-
|
|
6937
|
+
React65.useEffect(() => {
|
|
7100
6938
|
if (sizes.length) onLayout?.(sizes);
|
|
7101
6939
|
}, [sizes, onLayout]);
|
|
7102
|
-
const value =
|
|
6940
|
+
const value = React65.useMemo(
|
|
7103
6941
|
() => ({ sizes, setSizes, register, direction, keyboardStep, groupRef }),
|
|
7104
6942
|
[sizes, register, direction, keyboardStep]
|
|
7105
6943
|
);
|
|
7106
|
-
return /* @__PURE__ */
|
|
6944
|
+
return /* @__PURE__ */ jsx56(ResizableContext.Provider, { value, children: /* @__PURE__ */ jsx56(
|
|
7107
6945
|
"div",
|
|
7108
6946
|
{
|
|
7109
6947
|
ref: groupRef,
|
|
@@ -7124,11 +6962,11 @@ function ResizablePanel({
|
|
|
7124
6962
|
...props
|
|
7125
6963
|
}) {
|
|
7126
6964
|
const { sizes, register } = useResizable();
|
|
7127
|
-
|
|
6965
|
+
React65.useEffect(() => {
|
|
7128
6966
|
register(index, defaultSize);
|
|
7129
6967
|
}, [register, index, defaultSize]);
|
|
7130
6968
|
const basis = sizes[index] ?? defaultSize;
|
|
7131
|
-
return /* @__PURE__ */
|
|
6969
|
+
return /* @__PURE__ */ jsx56(
|
|
7132
6970
|
"div",
|
|
7133
6971
|
{
|
|
7134
6972
|
"data-slot": "resizable-panel",
|
|
@@ -7147,12 +6985,12 @@ function ResizableHandle({
|
|
|
7147
6985
|
...props
|
|
7148
6986
|
}) {
|
|
7149
6987
|
const { setSizes, direction, keyboardStep, groupRef } = useResizable();
|
|
7150
|
-
const draggingRef =
|
|
7151
|
-
const resize =
|
|
6988
|
+
const draggingRef = React65.useRef(false);
|
|
6989
|
+
const resize = React65.useCallback(
|
|
7152
6990
|
(delta) => setSizes((prev) => redistribute(prev, index, delta)),
|
|
7153
6991
|
[setSizes, index]
|
|
7154
6992
|
);
|
|
7155
|
-
const onPointerMove =
|
|
6993
|
+
const onPointerMove = React65.useCallback(
|
|
7156
6994
|
(event) => {
|
|
7157
6995
|
if (!draggingRef.current) return;
|
|
7158
6996
|
const rect = groupRef.current?.getBoundingClientRect();
|
|
@@ -7164,7 +7002,7 @@ function ResizableHandle({
|
|
|
7164
7002
|
},
|
|
7165
7003
|
[direction, resize, groupRef]
|
|
7166
7004
|
);
|
|
7167
|
-
const onPointerUp =
|
|
7005
|
+
const onPointerUp = React65.useCallback(() => {
|
|
7168
7006
|
draggingRef.current = false;
|
|
7169
7007
|
window.removeEventListener("pointermove", onPointerMove);
|
|
7170
7008
|
window.removeEventListener("pointerup", onPointerUp);
|
|
@@ -7175,7 +7013,7 @@ function ResizableHandle({
|
|
|
7175
7013
|
window.addEventListener("pointermove", onPointerMove);
|
|
7176
7014
|
window.addEventListener("pointerup", onPointerUp);
|
|
7177
7015
|
};
|
|
7178
|
-
|
|
7016
|
+
React65.useEffect(() => () => onPointerUp(), [onPointerUp]);
|
|
7179
7017
|
const onKeyDown = (event) => {
|
|
7180
7018
|
let delta;
|
|
7181
7019
|
switch (event.key) {
|
|
@@ -7195,7 +7033,7 @@ function ResizableHandle({
|
|
|
7195
7033
|
event.preventDefault();
|
|
7196
7034
|
resize(delta);
|
|
7197
7035
|
};
|
|
7198
|
-
return /* @__PURE__ */
|
|
7036
|
+
return /* @__PURE__ */ jsxs25(
|
|
7199
7037
|
"div",
|
|
7200
7038
|
{
|
|
7201
7039
|
"data-slot": "resizable-handle",
|
|
@@ -7208,7 +7046,7 @@ function ResizableHandle({
|
|
|
7208
7046
|
onKeyDown,
|
|
7209
7047
|
...props,
|
|
7210
7048
|
children: [
|
|
7211
|
-
withHandle && /* @__PURE__ */
|
|
7049
|
+
withHandle && /* @__PURE__ */ jsx56("div", { className: RESIZABLE_HANDLE_GRIP, children: /* @__PURE__ */ jsxs25(
|
|
7212
7050
|
"svg",
|
|
7213
7051
|
{
|
|
7214
7052
|
className: "size-2.5",
|
|
@@ -7223,12 +7061,12 @@ function ResizableHandle({
|
|
|
7223
7061
|
strokeLinejoin: "round",
|
|
7224
7062
|
"aria-hidden": "true",
|
|
7225
7063
|
children: [
|
|
7226
|
-
/* @__PURE__ */
|
|
7227
|
-
/* @__PURE__ */
|
|
7228
|
-
/* @__PURE__ */
|
|
7229
|
-
/* @__PURE__ */
|
|
7230
|
-
/* @__PURE__ */
|
|
7231
|
-
/* @__PURE__ */
|
|
7064
|
+
/* @__PURE__ */ jsx56("circle", { cx: "9", cy: "12", r: "1" }),
|
|
7065
|
+
/* @__PURE__ */ jsx56("circle", { cx: "9", cy: "5", r: "1" }),
|
|
7066
|
+
/* @__PURE__ */ jsx56("circle", { cx: "9", cy: "19", r: "1" }),
|
|
7067
|
+
/* @__PURE__ */ jsx56("circle", { cx: "15", cy: "12", r: "1" }),
|
|
7068
|
+
/* @__PURE__ */ jsx56("circle", { cx: "15", cy: "5", r: "1" }),
|
|
7069
|
+
/* @__PURE__ */ jsx56("circle", { cx: "15", cy: "19", r: "1" })
|
|
7232
7070
|
]
|
|
7233
7071
|
}
|
|
7234
7072
|
) }),
|
|
@@ -7377,7 +7215,6 @@ export {
|
|
|
7377
7215
|
FormItem,
|
|
7378
7216
|
FormLabel,
|
|
7379
7217
|
FormMessage,
|
|
7380
|
-
Header,
|
|
7381
7218
|
HoverCard,
|
|
7382
7219
|
HoverCardContent,
|
|
7383
7220
|
HoverCardTrigger,
|