@kilnonedre/foundation 0.0.13 → 0.0.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +35 -14
- package/dist/index.js +325 -279
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -512,9 +512,11 @@ var isValidURL = (string) => {
|
|
|
512
512
|
// src/util/validator/schema.ts
|
|
513
513
|
import { z } from "zod";
|
|
514
514
|
var emptyToUndefined = (value) => {
|
|
515
|
-
if (typeof value !== "string")
|
|
515
|
+
if (typeof value !== "string") {
|
|
516
|
+
return void 0;
|
|
517
|
+
}
|
|
516
518
|
const v = value.trim();
|
|
517
|
-
return v
|
|
519
|
+
return v || void 0;
|
|
518
520
|
};
|
|
519
521
|
var enumValues = (obj) => Object.values(obj);
|
|
520
522
|
var zTextOptional = (label, min = 1, max = 32) => z.preprocess(
|
|
@@ -1065,7 +1067,7 @@ var CheckboxSingleList = (props) => {
|
|
|
1065
1067
|
};
|
|
1066
1068
|
|
|
1067
1069
|
// src/components/data-table/index.tsx
|
|
1068
|
-
import { useEffect, useMemo as useMemo2, useState } from "react";
|
|
1070
|
+
import { useEffect, useMemo as useMemo2, useState as useState2 } from "react";
|
|
1069
1071
|
import {
|
|
1070
1072
|
flexRender,
|
|
1071
1073
|
getCoreRowModel,
|
|
@@ -1285,6 +1287,67 @@ var TableHeaderText = (props) => {
|
|
|
1285
1287
|
);
|
|
1286
1288
|
};
|
|
1287
1289
|
|
|
1290
|
+
// src/components/data-table/component/table-image/index.tsx
|
|
1291
|
+
import { useState } from "react";
|
|
1292
|
+
import { Eye } from "lucide-react";
|
|
1293
|
+
|
|
1294
|
+
// src/shadcn/components/card.tsx
|
|
1295
|
+
import { jsx as jsx19 } from "react/jsx-runtime";
|
|
1296
|
+
function Card({ className, ...props }) {
|
|
1297
|
+
return /* @__PURE__ */ jsx19(
|
|
1298
|
+
"div",
|
|
1299
|
+
{
|
|
1300
|
+
"data-slot": "card",
|
|
1301
|
+
className: cn(
|
|
1302
|
+
"flex flex-col gap-6 rounded-xl border bg-card py-6 text-card-foreground shadow-sm",
|
|
1303
|
+
className
|
|
1304
|
+
),
|
|
1305
|
+
...props
|
|
1306
|
+
}
|
|
1307
|
+
);
|
|
1308
|
+
}
|
|
1309
|
+
|
|
1310
|
+
// src/components/data-table/component/table-image/index.tsx
|
|
1311
|
+
import { jsx as jsx20, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
1312
|
+
var TableImage = (props) => {
|
|
1313
|
+
const [preview, setPreview] = useState(null);
|
|
1314
|
+
return /* @__PURE__ */ jsxs9("div", { className: "space-y-3", children: [
|
|
1315
|
+
/* @__PURE__ */ jsx20("div", { className: "flex gap-3 overflow-x-auto", children: props.value.map((img, index) => /* @__PURE__ */ jsx20(Card, { className: "group overflow-hidden w-25", children: /* @__PURE__ */ jsxs9("div", { className: "relative aspect-square bg-muted", children: [
|
|
1316
|
+
/* @__PURE__ */ jsx20(
|
|
1317
|
+
"img",
|
|
1318
|
+
{
|
|
1319
|
+
src: img.url,
|
|
1320
|
+
alt: "",
|
|
1321
|
+
className: "h-full w-full object-cover",
|
|
1322
|
+
loading: "lazy"
|
|
1323
|
+
}
|
|
1324
|
+
),
|
|
1325
|
+
/* @__PURE__ */ jsx20("div", { className: "absolute inset-0 flex items-start justify-end p-2 opacity-0 transition group-hover:opacity-100", children: /* @__PURE__ */ jsx20(
|
|
1326
|
+
Button,
|
|
1327
|
+
{
|
|
1328
|
+
size: "icon",
|
|
1329
|
+
variant: "secondary",
|
|
1330
|
+
className: "h-8 w-8",
|
|
1331
|
+
type: "button",
|
|
1332
|
+
onClick: () => setPreview(img),
|
|
1333
|
+
children: /* @__PURE__ */ jsx20(Eye, { className: "h-4 w-4" })
|
|
1334
|
+
}
|
|
1335
|
+
) })
|
|
1336
|
+
] }) }, img.id + index)) }),
|
|
1337
|
+
/* @__PURE__ */ jsx20(Dialog, { open: !!preview, onOpenChange: () => setPreview(null), children: /* @__PURE__ */ jsxs9(DialogContent, { className: "max-w-3xl", children: [
|
|
1338
|
+
/* @__PURE__ */ jsx20(DialogHeader, { children: /* @__PURE__ */ jsx20(DialogTitle, { children: "\u9884\u89C8" }) }),
|
|
1339
|
+
preview && /* @__PURE__ */ jsx20("div", { className: "relative aspect-video w-full overflow-hidden rounded-lg bg-muted", children: /* @__PURE__ */ jsx20(
|
|
1340
|
+
"img",
|
|
1341
|
+
{
|
|
1342
|
+
src: preview.url,
|
|
1343
|
+
alt: "",
|
|
1344
|
+
className: "h-full w-full object-contain"
|
|
1345
|
+
}
|
|
1346
|
+
) })
|
|
1347
|
+
] }) })
|
|
1348
|
+
] });
|
|
1349
|
+
};
|
|
1350
|
+
|
|
1288
1351
|
// src/components/data-table/component/table-pagination/index.tsx
|
|
1289
1352
|
import { useMemo } from "react";
|
|
1290
1353
|
|
|
@@ -1294,9 +1357,9 @@ import {
|
|
|
1294
1357
|
ChevronRightIcon,
|
|
1295
1358
|
MoreHorizontalIcon
|
|
1296
1359
|
} from "lucide-react";
|
|
1297
|
-
import { jsx as
|
|
1360
|
+
import { jsx as jsx21, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
1298
1361
|
function Pagination({ className, ...props }) {
|
|
1299
|
-
return /* @__PURE__ */
|
|
1362
|
+
return /* @__PURE__ */ jsx21(
|
|
1300
1363
|
"nav",
|
|
1301
1364
|
{
|
|
1302
1365
|
role: "navigation",
|
|
@@ -1311,7 +1374,7 @@ function PaginationContent({
|
|
|
1311
1374
|
className,
|
|
1312
1375
|
...props
|
|
1313
1376
|
}) {
|
|
1314
|
-
return /* @__PURE__ */
|
|
1377
|
+
return /* @__PURE__ */ jsx21(
|
|
1315
1378
|
"ul",
|
|
1316
1379
|
{
|
|
1317
1380
|
"data-slot": "pagination-content",
|
|
@@ -1321,7 +1384,7 @@ function PaginationContent({
|
|
|
1321
1384
|
);
|
|
1322
1385
|
}
|
|
1323
1386
|
function PaginationItem({ ...props }) {
|
|
1324
|
-
return /* @__PURE__ */
|
|
1387
|
+
return /* @__PURE__ */ jsx21("li", { "data-slot": "pagination-item", ...props });
|
|
1325
1388
|
}
|
|
1326
1389
|
function PaginationLink({
|
|
1327
1390
|
className,
|
|
@@ -1329,7 +1392,7 @@ function PaginationLink({
|
|
|
1329
1392
|
size = "icon",
|
|
1330
1393
|
...props
|
|
1331
1394
|
}) {
|
|
1332
|
-
return /* @__PURE__ */
|
|
1395
|
+
return /* @__PURE__ */ jsx21(
|
|
1333
1396
|
"a",
|
|
1334
1397
|
{
|
|
1335
1398
|
"aria-current": isActive ? "page" : void 0,
|
|
@@ -1350,7 +1413,7 @@ function PaginationPrevious({
|
|
|
1350
1413
|
className,
|
|
1351
1414
|
...props
|
|
1352
1415
|
}) {
|
|
1353
|
-
return /* @__PURE__ */
|
|
1416
|
+
return /* @__PURE__ */ jsxs10(
|
|
1354
1417
|
PaginationLink,
|
|
1355
1418
|
{
|
|
1356
1419
|
"aria-label": "Go to previous page",
|
|
@@ -1358,8 +1421,8 @@ function PaginationPrevious({
|
|
|
1358
1421
|
className: cn("gap-1 px-2.5 sm:pl-2.5", className),
|
|
1359
1422
|
...props,
|
|
1360
1423
|
children: [
|
|
1361
|
-
/* @__PURE__ */
|
|
1362
|
-
/* @__PURE__ */
|
|
1424
|
+
/* @__PURE__ */ jsx21(ChevronLeftIcon, {}),
|
|
1425
|
+
/* @__PURE__ */ jsx21("span", { className: "hidden sm:block", children: "Previous" })
|
|
1363
1426
|
]
|
|
1364
1427
|
}
|
|
1365
1428
|
);
|
|
@@ -1368,7 +1431,7 @@ function PaginationNext({
|
|
|
1368
1431
|
className,
|
|
1369
1432
|
...props
|
|
1370
1433
|
}) {
|
|
1371
|
-
return /* @__PURE__ */
|
|
1434
|
+
return /* @__PURE__ */ jsxs10(
|
|
1372
1435
|
PaginationLink,
|
|
1373
1436
|
{
|
|
1374
1437
|
"aria-label": "Go to next page",
|
|
@@ -1376,8 +1439,8 @@ function PaginationNext({
|
|
|
1376
1439
|
className: cn("gap-1 px-2.5 sm:pr-2.5", className),
|
|
1377
1440
|
...props,
|
|
1378
1441
|
children: [
|
|
1379
|
-
/* @__PURE__ */
|
|
1380
|
-
/* @__PURE__ */
|
|
1442
|
+
/* @__PURE__ */ jsx21("span", { className: "hidden sm:block", children: "Next" }),
|
|
1443
|
+
/* @__PURE__ */ jsx21(ChevronRightIcon, {})
|
|
1381
1444
|
]
|
|
1382
1445
|
}
|
|
1383
1446
|
);
|
|
@@ -1386,7 +1449,7 @@ function PaginationEllipsis({
|
|
|
1386
1449
|
className,
|
|
1387
1450
|
...props
|
|
1388
1451
|
}) {
|
|
1389
|
-
return /* @__PURE__ */
|
|
1452
|
+
return /* @__PURE__ */ jsxs10(
|
|
1390
1453
|
"span",
|
|
1391
1454
|
{
|
|
1392
1455
|
"aria-hidden": true,
|
|
@@ -1394,8 +1457,8 @@ function PaginationEllipsis({
|
|
|
1394
1457
|
className: cn("flex size-9 items-center justify-center", className),
|
|
1395
1458
|
...props,
|
|
1396
1459
|
children: [
|
|
1397
|
-
/* @__PURE__ */
|
|
1398
|
-
/* @__PURE__ */
|
|
1460
|
+
/* @__PURE__ */ jsx21(MoreHorizontalIcon, { className: "size-4" }),
|
|
1461
|
+
/* @__PURE__ */ jsx21("span", { className: "sr-only", children: "More pages" })
|
|
1399
1462
|
]
|
|
1400
1463
|
}
|
|
1401
1464
|
);
|
|
@@ -1404,21 +1467,21 @@ function PaginationEllipsis({
|
|
|
1404
1467
|
// src/shadcn/components/select.tsx
|
|
1405
1468
|
import { CheckIcon as CheckIcon2, ChevronDownIcon, ChevronUpIcon } from "lucide-react";
|
|
1406
1469
|
import { Select as SelectPrimitive } from "radix-ui";
|
|
1407
|
-
import { jsx as
|
|
1470
|
+
import { jsx as jsx22, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
1408
1471
|
function Select({
|
|
1409
1472
|
...props
|
|
1410
1473
|
}) {
|
|
1411
|
-
return /* @__PURE__ */
|
|
1474
|
+
return /* @__PURE__ */ jsx22(SelectPrimitive.Root, { "data-slot": "select", ...props });
|
|
1412
1475
|
}
|
|
1413
1476
|
function SelectGroup({
|
|
1414
1477
|
...props
|
|
1415
1478
|
}) {
|
|
1416
|
-
return /* @__PURE__ */
|
|
1479
|
+
return /* @__PURE__ */ jsx22(SelectPrimitive.Group, { "data-slot": "select-group", ...props });
|
|
1417
1480
|
}
|
|
1418
1481
|
function SelectValue({
|
|
1419
1482
|
...props
|
|
1420
1483
|
}) {
|
|
1421
|
-
return /* @__PURE__ */
|
|
1484
|
+
return /* @__PURE__ */ jsx22(SelectPrimitive.Value, { "data-slot": "select-value", ...props });
|
|
1422
1485
|
}
|
|
1423
1486
|
function SelectTrigger({
|
|
1424
1487
|
className,
|
|
@@ -1426,7 +1489,7 @@ function SelectTrigger({
|
|
|
1426
1489
|
children,
|
|
1427
1490
|
...props
|
|
1428
1491
|
}) {
|
|
1429
|
-
return /* @__PURE__ */
|
|
1492
|
+
return /* @__PURE__ */ jsxs11(
|
|
1430
1493
|
SelectPrimitive.Trigger,
|
|
1431
1494
|
{
|
|
1432
1495
|
"data-slot": "select-trigger",
|
|
@@ -1438,7 +1501,7 @@ function SelectTrigger({
|
|
|
1438
1501
|
...props,
|
|
1439
1502
|
children: [
|
|
1440
1503
|
children,
|
|
1441
|
-
/* @__PURE__ */
|
|
1504
|
+
/* @__PURE__ */ jsx22(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx22(ChevronDownIcon, { className: "size-4 opacity-50" }) })
|
|
1442
1505
|
]
|
|
1443
1506
|
}
|
|
1444
1507
|
);
|
|
@@ -1450,7 +1513,7 @@ function SelectContent({
|
|
|
1450
1513
|
align = "center",
|
|
1451
1514
|
...props
|
|
1452
1515
|
}) {
|
|
1453
|
-
return /* @__PURE__ */
|
|
1516
|
+
return /* @__PURE__ */ jsx22(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs11(
|
|
1454
1517
|
SelectPrimitive.Content,
|
|
1455
1518
|
{
|
|
1456
1519
|
"data-slot": "select-content",
|
|
@@ -1463,8 +1526,8 @@ function SelectContent({
|
|
|
1463
1526
|
align,
|
|
1464
1527
|
...props,
|
|
1465
1528
|
children: [
|
|
1466
|
-
/* @__PURE__ */
|
|
1467
|
-
/* @__PURE__ */
|
|
1529
|
+
/* @__PURE__ */ jsx22(SelectScrollUpButton, {}),
|
|
1530
|
+
/* @__PURE__ */ jsx22(
|
|
1468
1531
|
SelectPrimitive.Viewport,
|
|
1469
1532
|
{
|
|
1470
1533
|
className: cn(
|
|
@@ -1474,7 +1537,7 @@ function SelectContent({
|
|
|
1474
1537
|
children
|
|
1475
1538
|
}
|
|
1476
1539
|
),
|
|
1477
|
-
/* @__PURE__ */
|
|
1540
|
+
/* @__PURE__ */ jsx22(SelectScrollDownButton, {})
|
|
1478
1541
|
]
|
|
1479
1542
|
}
|
|
1480
1543
|
) });
|
|
@@ -1484,7 +1547,7 @@ function SelectItem({
|
|
|
1484
1547
|
children,
|
|
1485
1548
|
...props
|
|
1486
1549
|
}) {
|
|
1487
|
-
return /* @__PURE__ */
|
|
1550
|
+
return /* @__PURE__ */ jsxs11(
|
|
1488
1551
|
SelectPrimitive.Item,
|
|
1489
1552
|
{
|
|
1490
1553
|
"data-slot": "select-item",
|
|
@@ -1494,15 +1557,15 @@ function SelectItem({
|
|
|
1494
1557
|
),
|
|
1495
1558
|
...props,
|
|
1496
1559
|
children: [
|
|
1497
|
-
/* @__PURE__ */
|
|
1560
|
+
/* @__PURE__ */ jsx22(
|
|
1498
1561
|
"span",
|
|
1499
1562
|
{
|
|
1500
1563
|
"data-slot": "select-item-indicator",
|
|
1501
1564
|
className: "absolute right-2 flex size-3.5 items-center justify-center",
|
|
1502
|
-
children: /* @__PURE__ */
|
|
1565
|
+
children: /* @__PURE__ */ jsx22(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx22(CheckIcon2, { className: "size-4" }) })
|
|
1503
1566
|
}
|
|
1504
1567
|
),
|
|
1505
|
-
/* @__PURE__ */
|
|
1568
|
+
/* @__PURE__ */ jsx22(SelectPrimitive.ItemText, { children })
|
|
1506
1569
|
]
|
|
1507
1570
|
}
|
|
1508
1571
|
);
|
|
@@ -1511,7 +1574,7 @@ function SelectScrollUpButton({
|
|
|
1511
1574
|
className,
|
|
1512
1575
|
...props
|
|
1513
1576
|
}) {
|
|
1514
|
-
return /* @__PURE__ */
|
|
1577
|
+
return /* @__PURE__ */ jsx22(
|
|
1515
1578
|
SelectPrimitive.ScrollUpButton,
|
|
1516
1579
|
{
|
|
1517
1580
|
"data-slot": "select-scroll-up-button",
|
|
@@ -1520,7 +1583,7 @@ function SelectScrollUpButton({
|
|
|
1520
1583
|
className
|
|
1521
1584
|
),
|
|
1522
1585
|
...props,
|
|
1523
|
-
children: /* @__PURE__ */
|
|
1586
|
+
children: /* @__PURE__ */ jsx22(ChevronUpIcon, { className: "size-4" })
|
|
1524
1587
|
}
|
|
1525
1588
|
);
|
|
1526
1589
|
}
|
|
@@ -1528,7 +1591,7 @@ function SelectScrollDownButton({
|
|
|
1528
1591
|
className,
|
|
1529
1592
|
...props
|
|
1530
1593
|
}) {
|
|
1531
|
-
return /* @__PURE__ */
|
|
1594
|
+
return /* @__PURE__ */ jsx22(
|
|
1532
1595
|
SelectPrimitive.ScrollDownButton,
|
|
1533
1596
|
{
|
|
1534
1597
|
"data-slot": "select-scroll-down-button",
|
|
@@ -1537,13 +1600,13 @@ function SelectScrollDownButton({
|
|
|
1537
1600
|
className
|
|
1538
1601
|
),
|
|
1539
1602
|
...props,
|
|
1540
|
-
children: /* @__PURE__ */
|
|
1603
|
+
children: /* @__PURE__ */ jsx22(ChevronDownIcon, { className: "size-4" })
|
|
1541
1604
|
}
|
|
1542
1605
|
);
|
|
1543
1606
|
}
|
|
1544
1607
|
|
|
1545
1608
|
// src/components/data-table/component/table-pagination/index.tsx
|
|
1546
|
-
import { jsx as
|
|
1609
|
+
import { jsx as jsx23, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
1547
1610
|
var buildPages = (current, total) => {
|
|
1548
1611
|
if (total <= 0) return [];
|
|
1549
1612
|
if (total <= 7) {
|
|
@@ -1585,9 +1648,9 @@ var TablePagination = (props) => {
|
|
|
1585
1648
|
() => buildPages(props.currentPage, props.totalPage),
|
|
1586
1649
|
[props]
|
|
1587
1650
|
);
|
|
1588
|
-
return /* @__PURE__ */
|
|
1589
|
-
/* @__PURE__ */
|
|
1590
|
-
/* @__PURE__ */
|
|
1651
|
+
return /* @__PURE__ */ jsxs12("div", { className: "flex w-full items-center gap-8 lg:w-fit", children: [
|
|
1652
|
+
/* @__PURE__ */ jsx23("div", { className: "ml-auto flex items-center gap-2 lg:ml-0", children: /* @__PURE__ */ jsx23(Pagination, { children: /* @__PURE__ */ jsxs12(PaginationContent, { children: [
|
|
1653
|
+
/* @__PURE__ */ jsx23(PaginationItem, { children: /* @__PURE__ */ jsx23(
|
|
1591
1654
|
PaginationPrevious,
|
|
1592
1655
|
{
|
|
1593
1656
|
onClick: () => updateCurrentPage(props.currentPage - 1),
|
|
@@ -1597,9 +1660,9 @@ var TablePagination = (props) => {
|
|
|
1597
1660
|
) }),
|
|
1598
1661
|
pageItems.map((item) => {
|
|
1599
1662
|
if (item.type === "ellipsis") {
|
|
1600
|
-
return /* @__PURE__ */
|
|
1663
|
+
return /* @__PURE__ */ jsx23(PaginationItem, { children: /* @__PURE__ */ jsx23(PaginationEllipsis, {}) }, item.key);
|
|
1601
1664
|
}
|
|
1602
|
-
return /* @__PURE__ */
|
|
1665
|
+
return /* @__PURE__ */ jsx23(PaginationItem, { children: /* @__PURE__ */ jsx23(
|
|
1603
1666
|
PaginationLink,
|
|
1604
1667
|
{
|
|
1605
1668
|
isActive: props.currentPage === item.page,
|
|
@@ -1608,7 +1671,7 @@ var TablePagination = (props) => {
|
|
|
1608
1671
|
}
|
|
1609
1672
|
) }, item.page);
|
|
1610
1673
|
}),
|
|
1611
|
-
/* @__PURE__ */
|
|
1674
|
+
/* @__PURE__ */ jsx23(PaginationItem, { children: /* @__PURE__ */ jsx23(
|
|
1612
1675
|
PaginationNext,
|
|
1613
1676
|
{
|
|
1614
1677
|
onClick: () => updateCurrentPage(props.currentPage + 1),
|
|
@@ -1617,7 +1680,7 @@ var TablePagination = (props) => {
|
|
|
1617
1680
|
}
|
|
1618
1681
|
) })
|
|
1619
1682
|
] }) }) }),
|
|
1620
|
-
/* @__PURE__ */
|
|
1683
|
+
/* @__PURE__ */ jsx23("div", { className: "hidden items-center gap-2 lg:flex", children: /* @__PURE__ */ jsxs12(
|
|
1621
1684
|
Select,
|
|
1622
1685
|
{
|
|
1623
1686
|
value: String(props.size),
|
|
@@ -1625,8 +1688,8 @@ var TablePagination = (props) => {
|
|
|
1625
1688
|
props.onUpdateSize(Number(value));
|
|
1626
1689
|
},
|
|
1627
1690
|
children: [
|
|
1628
|
-
/* @__PURE__ */
|
|
1629
|
-
/* @__PURE__ */
|
|
1691
|
+
/* @__PURE__ */ jsx23(SelectTrigger, { className: "w-20", id: "rows-per-page", children: /* @__PURE__ */ jsx23(SelectValue, {}) }),
|
|
1692
|
+
/* @__PURE__ */ jsx23(SelectContent, { side: "top", children: props.sizeList.map((pageSize) => /* @__PURE__ */ jsxs12(SelectItem, { value: `${pageSize}`, children: [
|
|
1630
1693
|
pageSize,
|
|
1631
1694
|
"/\u9875"
|
|
1632
1695
|
] }, pageSize)) })
|
|
@@ -1637,9 +1700,9 @@ var TablePagination = (props) => {
|
|
|
1637
1700
|
};
|
|
1638
1701
|
|
|
1639
1702
|
// src/components/data-table/component/table-text/index.tsx
|
|
1640
|
-
import { jsx as
|
|
1703
|
+
import { jsx as jsx24 } from "react/jsx-runtime";
|
|
1641
1704
|
var TableText = (props) => {
|
|
1642
|
-
return /* @__PURE__ */
|
|
1705
|
+
return /* @__PURE__ */ jsx24(
|
|
1643
1706
|
"div",
|
|
1644
1707
|
{
|
|
1645
1708
|
className: cn2(
|
|
@@ -1654,21 +1717,21 @@ var TableText = (props) => {
|
|
|
1654
1717
|
// src/shadcn/components/dropdown-menu.tsx
|
|
1655
1718
|
import { CheckIcon as CheckIcon3, ChevronRightIcon as ChevronRightIcon2, CircleIcon } from "lucide-react";
|
|
1656
1719
|
import { DropdownMenu as DropdownMenuPrimitive } from "radix-ui";
|
|
1657
|
-
import { jsx as
|
|
1720
|
+
import { jsx as jsx25, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
1658
1721
|
function DropdownMenu({
|
|
1659
1722
|
...props
|
|
1660
1723
|
}) {
|
|
1661
|
-
return /* @__PURE__ */
|
|
1724
|
+
return /* @__PURE__ */ jsx25(DropdownMenuPrimitive.Root, { "data-slot": "dropdown-menu", ...props });
|
|
1662
1725
|
}
|
|
1663
1726
|
function DropdownMenuPortal({
|
|
1664
1727
|
...props
|
|
1665
1728
|
}) {
|
|
1666
|
-
return /* @__PURE__ */
|
|
1729
|
+
return /* @__PURE__ */ jsx25(DropdownMenuPrimitive.Portal, { "data-slot": "dropdown-menu-portal", ...props });
|
|
1667
1730
|
}
|
|
1668
1731
|
function DropdownMenuTrigger({
|
|
1669
1732
|
...props
|
|
1670
1733
|
}) {
|
|
1671
|
-
return /* @__PURE__ */
|
|
1734
|
+
return /* @__PURE__ */ jsx25(
|
|
1672
1735
|
DropdownMenuPrimitive.Trigger,
|
|
1673
1736
|
{
|
|
1674
1737
|
"data-slot": "dropdown-menu-trigger",
|
|
@@ -1681,7 +1744,7 @@ function DropdownMenuContent({
|
|
|
1681
1744
|
sideOffset = 4,
|
|
1682
1745
|
...props
|
|
1683
1746
|
}) {
|
|
1684
|
-
return /* @__PURE__ */
|
|
1747
|
+
return /* @__PURE__ */ jsx25(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx25(
|
|
1685
1748
|
DropdownMenuPrimitive.Content,
|
|
1686
1749
|
{
|
|
1687
1750
|
"data-slot": "dropdown-menu-content",
|
|
@@ -1700,7 +1763,7 @@ function DropdownMenuItem({
|
|
|
1700
1763
|
variant = "default",
|
|
1701
1764
|
...props
|
|
1702
1765
|
}) {
|
|
1703
|
-
return /* @__PURE__ */
|
|
1766
|
+
return /* @__PURE__ */ jsx25(
|
|
1704
1767
|
DropdownMenuPrimitive.Item,
|
|
1705
1768
|
{
|
|
1706
1769
|
"data-slot": "dropdown-menu-item",
|
|
@@ -1720,7 +1783,7 @@ function DropdownMenuCheckboxItem({
|
|
|
1720
1783
|
checked,
|
|
1721
1784
|
...props
|
|
1722
1785
|
}) {
|
|
1723
|
-
return /* @__PURE__ */
|
|
1786
|
+
return /* @__PURE__ */ jsxs13(
|
|
1724
1787
|
DropdownMenuPrimitive.CheckboxItem,
|
|
1725
1788
|
{
|
|
1726
1789
|
"data-slot": "dropdown-menu-checkbox-item",
|
|
@@ -1731,7 +1794,7 @@ function DropdownMenuCheckboxItem({
|
|
|
1731
1794
|
checked,
|
|
1732
1795
|
...props,
|
|
1733
1796
|
children: [
|
|
1734
|
-
/* @__PURE__ */
|
|
1797
|
+
/* @__PURE__ */ jsx25("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx25(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx25(CheckIcon3, { className: "size-4" }) }) }),
|
|
1735
1798
|
children
|
|
1736
1799
|
]
|
|
1737
1800
|
}
|
|
@@ -1740,7 +1803,7 @@ function DropdownMenuCheckboxItem({
|
|
|
1740
1803
|
function DropdownMenuSub({
|
|
1741
1804
|
...props
|
|
1742
1805
|
}) {
|
|
1743
|
-
return /* @__PURE__ */
|
|
1806
|
+
return /* @__PURE__ */ jsx25(DropdownMenuPrimitive.Sub, { "data-slot": "dropdown-menu-sub", ...props });
|
|
1744
1807
|
}
|
|
1745
1808
|
function DropdownMenuSubTrigger({
|
|
1746
1809
|
className,
|
|
@@ -1748,7 +1811,7 @@ function DropdownMenuSubTrigger({
|
|
|
1748
1811
|
children,
|
|
1749
1812
|
...props
|
|
1750
1813
|
}) {
|
|
1751
|
-
return /* @__PURE__ */
|
|
1814
|
+
return /* @__PURE__ */ jsxs13(
|
|
1752
1815
|
DropdownMenuPrimitive.SubTrigger,
|
|
1753
1816
|
{
|
|
1754
1817
|
"data-slot": "dropdown-menu-sub-trigger",
|
|
@@ -1760,7 +1823,7 @@ function DropdownMenuSubTrigger({
|
|
|
1760
1823
|
...props,
|
|
1761
1824
|
children: [
|
|
1762
1825
|
children,
|
|
1763
|
-
/* @__PURE__ */
|
|
1826
|
+
/* @__PURE__ */ jsx25(ChevronRightIcon2, { className: "ml-auto size-4" })
|
|
1764
1827
|
]
|
|
1765
1828
|
}
|
|
1766
1829
|
);
|
|
@@ -1769,7 +1832,7 @@ function DropdownMenuSubContent({
|
|
|
1769
1832
|
className,
|
|
1770
1833
|
...props
|
|
1771
1834
|
}) {
|
|
1772
|
-
return /* @__PURE__ */
|
|
1835
|
+
return /* @__PURE__ */ jsx25(
|
|
1773
1836
|
DropdownMenuPrimitive.SubContent,
|
|
1774
1837
|
{
|
|
1775
1838
|
"data-slot": "dropdown-menu-sub-content",
|
|
@@ -1785,20 +1848,20 @@ function DropdownMenuSubContent({
|
|
|
1785
1848
|
// src/shadcn/components/sheet.tsx
|
|
1786
1849
|
import { XIcon as XIcon2 } from "lucide-react";
|
|
1787
1850
|
import { Dialog as SheetPrimitive } from "radix-ui";
|
|
1788
|
-
import { jsx as
|
|
1851
|
+
import { jsx as jsx26, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
1789
1852
|
function Sheet({ ...props }) {
|
|
1790
|
-
return /* @__PURE__ */
|
|
1853
|
+
return /* @__PURE__ */ jsx26(SheetPrimitive.Root, { "data-slot": "sheet", ...props });
|
|
1791
1854
|
}
|
|
1792
1855
|
function SheetPortal({
|
|
1793
1856
|
...props
|
|
1794
1857
|
}) {
|
|
1795
|
-
return /* @__PURE__ */
|
|
1858
|
+
return /* @__PURE__ */ jsx26(SheetPrimitive.Portal, { "data-slot": "sheet-portal", ...props });
|
|
1796
1859
|
}
|
|
1797
1860
|
function SheetOverlay({
|
|
1798
1861
|
className,
|
|
1799
1862
|
...props
|
|
1800
1863
|
}) {
|
|
1801
|
-
return /* @__PURE__ */
|
|
1864
|
+
return /* @__PURE__ */ jsx26(
|
|
1802
1865
|
SheetPrimitive.Overlay,
|
|
1803
1866
|
{
|
|
1804
1867
|
"data-slot": "sheet-overlay",
|
|
@@ -1817,9 +1880,9 @@ function SheetContent({
|
|
|
1817
1880
|
showCloseButton = true,
|
|
1818
1881
|
...props
|
|
1819
1882
|
}) {
|
|
1820
|
-
return /* @__PURE__ */
|
|
1821
|
-
/* @__PURE__ */
|
|
1822
|
-
/* @__PURE__ */
|
|
1883
|
+
return /* @__PURE__ */ jsxs14(SheetPortal, { children: [
|
|
1884
|
+
/* @__PURE__ */ jsx26(SheetOverlay, {}),
|
|
1885
|
+
/* @__PURE__ */ jsxs14(
|
|
1823
1886
|
SheetPrimitive.Content,
|
|
1824
1887
|
{
|
|
1825
1888
|
"data-slot": "sheet-content",
|
|
@@ -1834,9 +1897,9 @@ function SheetContent({
|
|
|
1834
1897
|
...props,
|
|
1835
1898
|
children: [
|
|
1836
1899
|
children,
|
|
1837
|
-
showCloseButton && /* @__PURE__ */
|
|
1838
|
-
/* @__PURE__ */
|
|
1839
|
-
/* @__PURE__ */
|
|
1900
|
+
showCloseButton && /* @__PURE__ */ jsxs14(SheetPrimitive.Close, { className: "absolute top-4 right-4 rounded-xs opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none data-[state=open]:bg-secondary", children: [
|
|
1901
|
+
/* @__PURE__ */ jsx26(XIcon2, { className: "size-4" }),
|
|
1902
|
+
/* @__PURE__ */ jsx26("span", { className: "sr-only", children: "Close" })
|
|
1840
1903
|
] })
|
|
1841
1904
|
]
|
|
1842
1905
|
}
|
|
@@ -1844,7 +1907,7 @@ function SheetContent({
|
|
|
1844
1907
|
] });
|
|
1845
1908
|
}
|
|
1846
1909
|
function SheetHeader({ className, ...props }) {
|
|
1847
|
-
return /* @__PURE__ */
|
|
1910
|
+
return /* @__PURE__ */ jsx26(
|
|
1848
1911
|
"div",
|
|
1849
1912
|
{
|
|
1850
1913
|
"data-slot": "sheet-header",
|
|
@@ -1854,7 +1917,7 @@ function SheetHeader({ className, ...props }) {
|
|
|
1854
1917
|
);
|
|
1855
1918
|
}
|
|
1856
1919
|
function SheetFooter({ className, ...props }) {
|
|
1857
|
-
return /* @__PURE__ */
|
|
1920
|
+
return /* @__PURE__ */ jsx26(
|
|
1858
1921
|
"div",
|
|
1859
1922
|
{
|
|
1860
1923
|
"data-slot": "sheet-footer",
|
|
@@ -1867,7 +1930,7 @@ function SheetTitle({
|
|
|
1867
1930
|
className,
|
|
1868
1931
|
...props
|
|
1869
1932
|
}) {
|
|
1870
|
-
return /* @__PURE__ */
|
|
1933
|
+
return /* @__PURE__ */ jsx26(
|
|
1871
1934
|
SheetPrimitive.Title,
|
|
1872
1935
|
{
|
|
1873
1936
|
"data-slot": "sheet-title",
|
|
@@ -1878,14 +1941,14 @@ function SheetTitle({
|
|
|
1878
1941
|
}
|
|
1879
1942
|
|
|
1880
1943
|
// src/shadcn/components/table.tsx
|
|
1881
|
-
import { jsx as
|
|
1944
|
+
import { jsx as jsx27 } from "react/jsx-runtime";
|
|
1882
1945
|
function Table({ className, ...props }) {
|
|
1883
|
-
return /* @__PURE__ */
|
|
1946
|
+
return /* @__PURE__ */ jsx27(
|
|
1884
1947
|
"div",
|
|
1885
1948
|
{
|
|
1886
1949
|
"data-slot": "table-container",
|
|
1887
1950
|
className: "relative w-full overflow-x-auto",
|
|
1888
|
-
children: /* @__PURE__ */
|
|
1951
|
+
children: /* @__PURE__ */ jsx27(
|
|
1889
1952
|
"table",
|
|
1890
1953
|
{
|
|
1891
1954
|
"data-slot": "table",
|
|
@@ -1897,7 +1960,7 @@ function Table({ className, ...props }) {
|
|
|
1897
1960
|
);
|
|
1898
1961
|
}
|
|
1899
1962
|
function TableHeader({ className, ...props }) {
|
|
1900
|
-
return /* @__PURE__ */
|
|
1963
|
+
return /* @__PURE__ */ jsx27(
|
|
1901
1964
|
"thead",
|
|
1902
1965
|
{
|
|
1903
1966
|
"data-slot": "table-header",
|
|
@@ -1907,7 +1970,7 @@ function TableHeader({ className, ...props }) {
|
|
|
1907
1970
|
);
|
|
1908
1971
|
}
|
|
1909
1972
|
function TableBody({ className, ...props }) {
|
|
1910
|
-
return /* @__PURE__ */
|
|
1973
|
+
return /* @__PURE__ */ jsx27(
|
|
1911
1974
|
"tbody",
|
|
1912
1975
|
{
|
|
1913
1976
|
"data-slot": "table-body",
|
|
@@ -1917,7 +1980,7 @@ function TableBody({ className, ...props }) {
|
|
|
1917
1980
|
);
|
|
1918
1981
|
}
|
|
1919
1982
|
function TableRow({ className, ...props }) {
|
|
1920
|
-
return /* @__PURE__ */
|
|
1983
|
+
return /* @__PURE__ */ jsx27(
|
|
1921
1984
|
"tr",
|
|
1922
1985
|
{
|
|
1923
1986
|
"data-slot": "table-row",
|
|
@@ -1930,7 +1993,7 @@ function TableRow({ className, ...props }) {
|
|
|
1930
1993
|
);
|
|
1931
1994
|
}
|
|
1932
1995
|
function TableHead({ className, ...props }) {
|
|
1933
|
-
return /* @__PURE__ */
|
|
1996
|
+
return /* @__PURE__ */ jsx27(
|
|
1934
1997
|
"th",
|
|
1935
1998
|
{
|
|
1936
1999
|
"data-slot": "table-head",
|
|
@@ -1943,7 +2006,7 @@ function TableHead({ className, ...props }) {
|
|
|
1943
2006
|
);
|
|
1944
2007
|
}
|
|
1945
2008
|
function TableCell({ className, ...props }) {
|
|
1946
|
-
return /* @__PURE__ */
|
|
2009
|
+
return /* @__PURE__ */ jsx27(
|
|
1947
2010
|
"td",
|
|
1948
2011
|
{
|
|
1949
2012
|
"data-slot": "table-cell",
|
|
@@ -1957,7 +2020,7 @@ function TableCell({ className, ...props }) {
|
|
|
1957
2020
|
}
|
|
1958
2021
|
|
|
1959
2022
|
// src/components/data-table/index.tsx
|
|
1960
|
-
import { jsx as
|
|
2023
|
+
import { jsx as jsx28, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
1961
2024
|
var buildParams = (page, size, keyword, filters, sorting) => {
|
|
1962
2025
|
const result = { page, size };
|
|
1963
2026
|
if (!isEmpty(keyword)) {
|
|
@@ -1974,23 +2037,23 @@ var buildParams = (page, size, keyword, filters, sorting) => {
|
|
|
1974
2037
|
return result;
|
|
1975
2038
|
};
|
|
1976
2039
|
var DataTable = (props) => {
|
|
1977
|
-
const [data, setData] =
|
|
1978
|
-
const [rowSelection, setRowSelection] =
|
|
1979
|
-
const [columnVisibility, setColumnVisibility] =
|
|
1980
|
-
const [columnFilters, setColumnFilters] =
|
|
1981
|
-
const [sorting, setSorting] =
|
|
2040
|
+
const [data, setData] = useState2(new Array());
|
|
2041
|
+
const [rowSelection, setRowSelection] = useState2({});
|
|
2042
|
+
const [columnVisibility, setColumnVisibility] = useState2({});
|
|
2043
|
+
const [columnFilters, setColumnFilters] = useState2([]);
|
|
2044
|
+
const [sorting, setSorting] = useState2([]);
|
|
1982
2045
|
const sizeList = [10, 20, 30, 40, 50];
|
|
1983
|
-
const [totalPage, setTotalPage] =
|
|
1984
|
-
const [size, setSize] =
|
|
1985
|
-
const [currentPage, setCurrentPage] =
|
|
1986
|
-
const [refreshKey, setRefreshKey] =
|
|
1987
|
-
const [filtersState, setFiltersState] =
|
|
2046
|
+
const [totalPage, setTotalPage] = useState2(0);
|
|
2047
|
+
const [size, setSize] = useState2(sizeList[0]);
|
|
2048
|
+
const [currentPage, setCurrentPage] = useState2(1);
|
|
2049
|
+
const [refreshKey, setRefreshKey] = useState2(0);
|
|
2050
|
+
const [filtersState, setFiltersState] = useState2(
|
|
1988
2051
|
props.filters ?? {}
|
|
1989
2052
|
);
|
|
1990
|
-
const [draftFilters, setDraftFilters] =
|
|
2053
|
+
const [draftFilters, setDraftFilters] = useState2(
|
|
1991
2054
|
props.filters ?? {}
|
|
1992
2055
|
);
|
|
1993
|
-
const [advancedOpen, setAdvancedOpen] =
|
|
2056
|
+
const [advancedOpen, setAdvancedOpen] = useState2(false);
|
|
1994
2057
|
const requestSorting = useMemo2(
|
|
1995
2058
|
() => sorting.map((item) => ({
|
|
1996
2059
|
id: item.id,
|
|
@@ -2095,16 +2158,16 @@ var DataTable = (props) => {
|
|
|
2095
2158
|
getFacetedRowModel: getFacetedRowModel(),
|
|
2096
2159
|
getFacetedUniqueValues: getFacetedUniqueValues()
|
|
2097
2160
|
});
|
|
2098
|
-
return /* @__PURE__ */
|
|
2099
|
-
/* @__PURE__ */
|
|
2100
|
-
/* @__PURE__ */
|
|
2161
|
+
return /* @__PURE__ */ jsxs15("div", { className: "flex w-full flex-col gap-6", children: [
|
|
2162
|
+
/* @__PURE__ */ jsxs15("div", { className: "flex items-center justify-between gap-4 px-4 lg:px-6", children: [
|
|
2163
|
+
/* @__PURE__ */ jsxs15("div", { className: "flex flex-1 items-center gap-2", children: [
|
|
2101
2164
|
props.searchbar?.({
|
|
2102
2165
|
filters: draftFilters,
|
|
2103
2166
|
setFilters: (updater) => setDraftFilters((prev) => updater(prev)),
|
|
2104
2167
|
search: () => syncFilters(draftFilters),
|
|
2105
2168
|
reset: resetFilters
|
|
2106
2169
|
}),
|
|
2107
|
-
props.advancedFilter && /* @__PURE__ */
|
|
2170
|
+
props.advancedFilter && /* @__PURE__ */ jsxs15(
|
|
2108
2171
|
Button,
|
|
2109
2172
|
{
|
|
2110
2173
|
variant: "outline",
|
|
@@ -2114,25 +2177,25 @@ var DataTable = (props) => {
|
|
|
2114
2177
|
setAdvancedOpen(true);
|
|
2115
2178
|
},
|
|
2116
2179
|
children: [
|
|
2117
|
-
/* @__PURE__ */
|
|
2180
|
+
/* @__PURE__ */ jsx28(FilterIcon, {}),
|
|
2118
2181
|
"\u66F4\u591A\u7B5B\u9009"
|
|
2119
2182
|
]
|
|
2120
2183
|
}
|
|
2121
2184
|
),
|
|
2122
|
-
(props.searchbar || props.advancedFilter) && /* @__PURE__ */
|
|
2123
|
-
/* @__PURE__ */
|
|
2185
|
+
(props.searchbar || props.advancedFilter) && /* @__PURE__ */ jsxs15(Button, { variant: "ghost", size: "sm", onClick: resetFilters, children: [
|
|
2186
|
+
/* @__PURE__ */ jsx28(RotateCcwIcon, {}),
|
|
2124
2187
|
"\u91CD\u7F6E"
|
|
2125
2188
|
] })
|
|
2126
2189
|
] }),
|
|
2127
|
-
/* @__PURE__ */
|
|
2128
|
-
/* @__PURE__ */
|
|
2129
|
-
/* @__PURE__ */
|
|
2130
|
-
/* @__PURE__ */
|
|
2131
|
-
/* @__PURE__ */
|
|
2190
|
+
/* @__PURE__ */ jsxs15("div", { className: "flex items-center gap-2", children: [
|
|
2191
|
+
/* @__PURE__ */ jsxs15(DropdownMenu, { children: [
|
|
2192
|
+
/* @__PURE__ */ jsx28(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxs15(Button, { variant: "outline", size: "sm", children: [
|
|
2193
|
+
/* @__PURE__ */ jsx28(ColumnsIcon, {}),
|
|
2194
|
+
/* @__PURE__ */ jsx28(ChevronDownIcon2, {})
|
|
2132
2195
|
] }) }),
|
|
2133
|
-
/* @__PURE__ */
|
|
2196
|
+
/* @__PURE__ */ jsx28(DropdownMenuContent, { align: "end", className: "w-56", children: table.getAllColumns().filter(
|
|
2134
2197
|
(column) => typeof column.accessorFn !== "undefined" && column.getCanHide()
|
|
2135
|
-
).map((column) => /* @__PURE__ */
|
|
2198
|
+
).map((column) => /* @__PURE__ */ jsx28(
|
|
2136
2199
|
DropdownMenuCheckboxItem,
|
|
2137
2200
|
{
|
|
2138
2201
|
checked: column.getIsVisible(),
|
|
@@ -2145,25 +2208,25 @@ var DataTable = (props) => {
|
|
|
2145
2208
|
props.toolbar?.({ refresh })
|
|
2146
2209
|
] })
|
|
2147
2210
|
] }),
|
|
2148
|
-
/* @__PURE__ */
|
|
2149
|
-
/* @__PURE__ */
|
|
2150
|
-
/* @__PURE__ */
|
|
2211
|
+
/* @__PURE__ */ jsxs15("div", { className: "flex flex-col gap-4 overflow-auto px-4 pb-0.5 lg:px-6", children: [
|
|
2212
|
+
/* @__PURE__ */ jsx28("div", { className: "overflow-hidden rounded-lg border", children: /* @__PURE__ */ jsxs15(Table, { children: [
|
|
2213
|
+
/* @__PURE__ */ jsx28(TableHeader, { className: "sticky top-0 z-10 bg-muted", children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ jsx28(TableRow, { children: headerGroup.headers.map((header) => /* @__PURE__ */ jsx28(TableHead, { colSpan: header.colSpan, children: header.isPlaceholder ? null : flexRender(
|
|
2151
2214
|
header.column.columnDef.header,
|
|
2152
2215
|
header.getContext()
|
|
2153
2216
|
) }, header.id)) }, headerGroup.id)) }),
|
|
2154
|
-
/* @__PURE__ */
|
|
2217
|
+
/* @__PURE__ */ jsx28(TableBody, { children: table.getRowModel().rows.length > 0 ? table.getRowModel().rows.map((row) => /* @__PURE__ */ jsx28(TableRow, { children: row.getVisibleCells().map((cell) => /* @__PURE__ */ jsx28(TableCell, { children: flexRender(
|
|
2155
2218
|
cell.column.columnDef.cell,
|
|
2156
2219
|
cell.getContext()
|
|
2157
|
-
) }, cell.id)) }, row.id)) : /* @__PURE__ */
|
|
2220
|
+
) }, cell.id)) }, row.id)) : /* @__PURE__ */ jsx28(TableRow, { children: /* @__PURE__ */ jsx28(
|
|
2158
2221
|
TableCell,
|
|
2159
2222
|
{
|
|
2160
2223
|
colSpan: props.columns.length,
|
|
2161
2224
|
className: "h-24 text-center",
|
|
2162
|
-
children: /* @__PURE__ */
|
|
2225
|
+
children: /* @__PURE__ */ jsx28(TableEmpty, {})
|
|
2163
2226
|
}
|
|
2164
2227
|
) }) })
|
|
2165
2228
|
] }) }),
|
|
2166
|
-
/* @__PURE__ */
|
|
2229
|
+
/* @__PURE__ */ jsx28("div", { className: "flex items-center justify-end px-4", children: /* @__PURE__ */ jsx28(
|
|
2167
2230
|
TablePagination,
|
|
2168
2231
|
{
|
|
2169
2232
|
currentPage,
|
|
@@ -2178,14 +2241,14 @@ var DataTable = (props) => {
|
|
|
2178
2241
|
}
|
|
2179
2242
|
) })
|
|
2180
2243
|
] }),
|
|
2181
|
-
props.advancedFilter && /* @__PURE__ */
|
|
2182
|
-
/* @__PURE__ */
|
|
2183
|
-
/* @__PURE__ */
|
|
2244
|
+
props.advancedFilter && /* @__PURE__ */ jsx28(Sheet, { open: advancedOpen, onOpenChange: setAdvancedOpen, children: /* @__PURE__ */ jsxs15(SheetContent, { className: "flex w-[420px] flex-col p-0", children: [
|
|
2245
|
+
/* @__PURE__ */ jsx28(SheetHeader, { className: "border-b px-6 py-4", children: /* @__PURE__ */ jsx28(SheetTitle, { children: "\u66F4\u591A\u7B5B\u9009" }) }),
|
|
2246
|
+
/* @__PURE__ */ jsx28("div", { className: "flex-1 overflow-y-auto px-6 py-4", children: props.advancedFilter({
|
|
2184
2247
|
draftFilters,
|
|
2185
2248
|
setDraftFilters: (updater) => setDraftFilters((prev) => updater(prev))
|
|
2186
2249
|
}) }),
|
|
2187
|
-
/* @__PURE__ */
|
|
2188
|
-
/* @__PURE__ */
|
|
2250
|
+
/* @__PURE__ */ jsxs15(SheetFooter, { className: "border-t px-6 py-4", children: [
|
|
2251
|
+
/* @__PURE__ */ jsx28(
|
|
2189
2252
|
Button,
|
|
2190
2253
|
{
|
|
2191
2254
|
className: "flex-1",
|
|
@@ -2194,18 +2257,18 @@ var DataTable = (props) => {
|
|
|
2194
2257
|
children: "\u91CD\u7F6E"
|
|
2195
2258
|
}
|
|
2196
2259
|
),
|
|
2197
|
-
/* @__PURE__ */
|
|
2260
|
+
/* @__PURE__ */ jsx28(Button, { className: "flex-1", onClick: confirmAdvanced, children: "\u786E\u8BA4\u7B5B\u9009" })
|
|
2198
2261
|
] })
|
|
2199
2262
|
] }) })
|
|
2200
2263
|
] });
|
|
2201
2264
|
};
|
|
2202
2265
|
|
|
2203
2266
|
// src/components/dialog/index.tsx
|
|
2204
|
-
import { useState as
|
|
2205
|
-
import { jsx as
|
|
2267
|
+
import { useState as useState3 } from "react";
|
|
2268
|
+
import { jsx as jsx29, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
2206
2269
|
var Dialog2 = (props) => {
|
|
2207
|
-
const [open, setOpen] =
|
|
2208
|
-
const [confirmLoading, setConfirmLoading] =
|
|
2270
|
+
const [open, setOpen] = useState3(false);
|
|
2271
|
+
const [confirmLoading, setConfirmLoading] = useState3(false);
|
|
2209
2272
|
const handleConfirm = async () => {
|
|
2210
2273
|
if (!props.onConfirm) {
|
|
2211
2274
|
setOpen(false);
|
|
@@ -2219,14 +2282,14 @@ var Dialog2 = (props) => {
|
|
|
2219
2282
|
setConfirmLoading(false);
|
|
2220
2283
|
}
|
|
2221
2284
|
};
|
|
2222
|
-
return /* @__PURE__ */
|
|
2223
|
-
/* @__PURE__ */
|
|
2224
|
-
/* @__PURE__ */
|
|
2225
|
-
/* @__PURE__ */
|
|
2226
|
-
/* @__PURE__ */
|
|
2227
|
-
/* @__PURE__ */
|
|
2228
|
-
/* @__PURE__ */
|
|
2229
|
-
/* @__PURE__ */
|
|
2285
|
+
return /* @__PURE__ */ jsxs16(Dialog, { open, onOpenChange: setOpen, children: [
|
|
2286
|
+
/* @__PURE__ */ jsx29(DialogTrigger, { asChild: true, children: props.children }),
|
|
2287
|
+
/* @__PURE__ */ jsxs16(DialogContent, { className: "sm:max-w-106.25", children: [
|
|
2288
|
+
/* @__PURE__ */ jsx29(DialogHeader, { children: /* @__PURE__ */ jsx29(DialogTitle, { children: props.title ?? "\u63D0\u793A" }) }),
|
|
2289
|
+
/* @__PURE__ */ jsx29("div", { className: "py-4", children: typeof props.content === "string" ? /* @__PURE__ */ jsx29("div", { children: props.content }) : props.content }),
|
|
2290
|
+
/* @__PURE__ */ jsxs16(DialogFooter, { children: [
|
|
2291
|
+
/* @__PURE__ */ jsx29(DialogClose, { asChild: true, children: /* @__PURE__ */ jsx29(Button2, { variant: EnumVariant.OUTLINE, disabled: confirmLoading, children: props.cancelText ?? "\u53D6\u6D88" }) }),
|
|
2292
|
+
/* @__PURE__ */ jsx29(
|
|
2230
2293
|
Button2,
|
|
2231
2294
|
{
|
|
2232
2295
|
type: "button",
|
|
@@ -2242,7 +2305,7 @@ var Dialog2 = (props) => {
|
|
|
2242
2305
|
};
|
|
2243
2306
|
|
|
2244
2307
|
// src/components/display-table/index.tsx
|
|
2245
|
-
import { useState as
|
|
2308
|
+
import { useState as useState4 } from "react";
|
|
2246
2309
|
import {
|
|
2247
2310
|
flexRender as flexRender2,
|
|
2248
2311
|
getCoreRowModel as getCoreRowModel2,
|
|
@@ -2252,12 +2315,12 @@ import {
|
|
|
2252
2315
|
getSortedRowModel as getSortedRowModel2,
|
|
2253
2316
|
useReactTable as useReactTable2
|
|
2254
2317
|
} from "@tanstack/react-table";
|
|
2255
|
-
import { jsx as
|
|
2318
|
+
import { jsx as jsx30, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
2256
2319
|
var DisplayTable = (props) => {
|
|
2257
|
-
const [rowSelection, setRowSelection] =
|
|
2258
|
-
const [columnVisibility, setColumnVisibility] =
|
|
2259
|
-
const [columnFilters, setColumnFilters] =
|
|
2260
|
-
const [sorting, setSorting] =
|
|
2320
|
+
const [rowSelection, setRowSelection] = useState4({});
|
|
2321
|
+
const [columnVisibility, setColumnVisibility] = useState4({});
|
|
2322
|
+
const [columnFilters, setColumnFilters] = useState4([]);
|
|
2323
|
+
const [sorting, setSorting] = useState4([]);
|
|
2261
2324
|
const table = useReactTable2({
|
|
2262
2325
|
data: props.list ?? [],
|
|
2263
2326
|
columns: props.columns,
|
|
@@ -2283,24 +2346,24 @@ var DisplayTable = (props) => {
|
|
|
2283
2346
|
getFacetedRowModel: getFacetedRowModel2(),
|
|
2284
2347
|
getFacetedUniqueValues: getFacetedUniqueValues2()
|
|
2285
2348
|
});
|
|
2286
|
-
return /* @__PURE__ */
|
|
2287
|
-
/* @__PURE__ */
|
|
2349
|
+
return /* @__PURE__ */ jsx30("div", { className: "overflow-hidden rounded-lg border", children: /* @__PURE__ */ jsxs17(Table, { children: [
|
|
2350
|
+
/* @__PURE__ */ jsx30(TableHeader, { className: "sticky top-0 z-10 bg-muted", children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ jsx30(TableRow, { children: headerGroup.headers.map((header) => /* @__PURE__ */ jsx30(TableHead, { colSpan: header.colSpan, children: header.isPlaceholder ? null : flexRender2(
|
|
2288
2351
|
header.column.columnDef.header,
|
|
2289
2352
|
header.getContext()
|
|
2290
2353
|
) }, header.id)) }, headerGroup.id)) }),
|
|
2291
|
-
/* @__PURE__ */
|
|
2354
|
+
/* @__PURE__ */ jsx30(TableBody, { className: "**:data-[slot=table-cell]:first:w-8", children: table.getRowModel().rows.length ? table.getRowModel().rows.map((row) => /* @__PURE__ */ jsx30(
|
|
2292
2355
|
TableRow,
|
|
2293
2356
|
{
|
|
2294
2357
|
"data-state": row.getIsSelected() && "selected",
|
|
2295
|
-
children: row.getVisibleCells().map((cell) => /* @__PURE__ */
|
|
2358
|
+
children: row.getVisibleCells().map((cell) => /* @__PURE__ */ jsx30(TableCell, { children: flexRender2(cell.column.columnDef.cell, cell.getContext()) }, cell.id))
|
|
2296
2359
|
},
|
|
2297
2360
|
row.id
|
|
2298
|
-
)) : /* @__PURE__ */
|
|
2361
|
+
)) : /* @__PURE__ */ jsx30(TableRow, { children: /* @__PURE__ */ jsx30(
|
|
2299
2362
|
TableCell,
|
|
2300
2363
|
{
|
|
2301
2364
|
colSpan: props.columns.length,
|
|
2302
2365
|
className: "h-24 text-center",
|
|
2303
|
-
children: /* @__PURE__ */
|
|
2366
|
+
children: /* @__PURE__ */ jsx30(TableEmpty, {})
|
|
2304
2367
|
}
|
|
2305
2368
|
) }) })
|
|
2306
2369
|
] }) });
|
|
@@ -2308,7 +2371,7 @@ var DisplayTable = (props) => {
|
|
|
2308
2371
|
|
|
2309
2372
|
// src/components/dropdown-cascader/dropdown-cascader-base.tsx
|
|
2310
2373
|
import { Check } from "lucide-react";
|
|
2311
|
-
import { jsx as
|
|
2374
|
+
import { jsx as jsx31, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
2312
2375
|
var getOptionMap = (options) => {
|
|
2313
2376
|
const map = /* @__PURE__ */ new Map();
|
|
2314
2377
|
const walk = (nodes, parent) => {
|
|
@@ -2332,10 +2395,10 @@ var renderCascaderNodes = (nodes, parentPath, selectedValues, onSelect) => {
|
|
|
2332
2395
|
const isBranch = !!node.children?.length;
|
|
2333
2396
|
const isSelected = selectedValues.includes(node.value);
|
|
2334
2397
|
if (isBranch) {
|
|
2335
|
-
return /* @__PURE__ */
|
|
2336
|
-
/* @__PURE__ */
|
|
2337
|
-
/* @__PURE__ */
|
|
2338
|
-
/* @__PURE__ */
|
|
2398
|
+
return /* @__PURE__ */ jsxs18(DropdownMenuSub, { children: [
|
|
2399
|
+
/* @__PURE__ */ jsx31(DropdownMenuSubTrigger, { disabled: node.disabled, children: node.label }),
|
|
2400
|
+
/* @__PURE__ */ jsx31(DropdownMenuPortal, { children: /* @__PURE__ */ jsxs18(DropdownMenuSubContent, { className: "min-w-56", children: [
|
|
2401
|
+
/* @__PURE__ */ jsxs18(
|
|
2339
2402
|
DropdownMenuItem,
|
|
2340
2403
|
{
|
|
2341
2404
|
disabled: node.disabled,
|
|
@@ -2345,8 +2408,8 @@ var renderCascaderNodes = (nodes, parentPath, selectedValues, onSelect) => {
|
|
|
2345
2408
|
},
|
|
2346
2409
|
className: "flex items-center justify-between",
|
|
2347
2410
|
children: [
|
|
2348
|
-
/* @__PURE__ */
|
|
2349
|
-
isSelected && /* @__PURE__ */
|
|
2411
|
+
/* @__PURE__ */ jsx31("span", { children: node.label }),
|
|
2412
|
+
isSelected && /* @__PURE__ */ jsx31(Check, { className: "size-4" })
|
|
2350
2413
|
]
|
|
2351
2414
|
}
|
|
2352
2415
|
),
|
|
@@ -2359,7 +2422,7 @@ var renderCascaderNodes = (nodes, parentPath, selectedValues, onSelect) => {
|
|
|
2359
2422
|
] }) })
|
|
2360
2423
|
] }, node.value);
|
|
2361
2424
|
}
|
|
2362
|
-
return /* @__PURE__ */
|
|
2425
|
+
return /* @__PURE__ */ jsxs18(
|
|
2363
2426
|
DropdownMenuItem,
|
|
2364
2427
|
{
|
|
2365
2428
|
disabled: node.disabled,
|
|
@@ -2369,8 +2432,8 @@ var renderCascaderNodes = (nodes, parentPath, selectedValues, onSelect) => {
|
|
|
2369
2432
|
},
|
|
2370
2433
|
className: "flex items-center justify-between",
|
|
2371
2434
|
children: [
|
|
2372
|
-
/* @__PURE__ */
|
|
2373
|
-
isSelected && /* @__PURE__ */
|
|
2435
|
+
/* @__PURE__ */ jsx31("span", { children: node.label }),
|
|
2436
|
+
isSelected && /* @__PURE__ */ jsx31(Check, { className: "size-4" })
|
|
2374
2437
|
]
|
|
2375
2438
|
},
|
|
2376
2439
|
node.value
|
|
@@ -2381,7 +2444,7 @@ var renderCascaderNodes = (nodes, parentPath, selectedValues, onSelect) => {
|
|
|
2381
2444
|
// src/components/dropdown-cascader/dropdown-cascader-multi.tsx
|
|
2382
2445
|
import * as React from "react";
|
|
2383
2446
|
import { ChevronDown, X } from "lucide-react";
|
|
2384
|
-
import { jsx as
|
|
2447
|
+
import { jsx as jsx32, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
2385
2448
|
var toggle = (list, value) => {
|
|
2386
2449
|
if (list.includes(value)) {
|
|
2387
2450
|
return list.filter((v) => v !== value);
|
|
@@ -2420,22 +2483,22 @@ var DropdownCascaderMulti = ({
|
|
|
2420
2483
|
value: i.option.value,
|
|
2421
2484
|
label: i.path.map((p) => p.label).join(" / ")
|
|
2422
2485
|
}));
|
|
2423
|
-
return /* @__PURE__ */
|
|
2424
|
-
/* @__PURE__ */
|
|
2486
|
+
return /* @__PURE__ */ jsxs19(DropdownMenu, { open, onOpenChange: setOpen, children: [
|
|
2487
|
+
/* @__PURE__ */ jsx32(DropdownMenuTrigger, { asChild: true, className: "self-start", children: /* @__PURE__ */ jsxs19(
|
|
2425
2488
|
Button,
|
|
2426
2489
|
{
|
|
2427
2490
|
variant: "outline",
|
|
2428
2491
|
className: "h-auto! min-h-9 w-full justify-between px-3",
|
|
2429
2492
|
children: [
|
|
2430
|
-
/* @__PURE__ */
|
|
2493
|
+
/* @__PURE__ */ jsxs19("div", { className: "flex flex-wrap gap-1", children: [
|
|
2431
2494
|
selectedItems.length === 0 && props.placeholder,
|
|
2432
|
-
selectedItems.map((item) => /* @__PURE__ */
|
|
2495
|
+
selectedItems.map((item) => /* @__PURE__ */ jsxs19(
|
|
2433
2496
|
"span",
|
|
2434
2497
|
{
|
|
2435
2498
|
className: "inline-flex items-center gap-1 rounded border px-2 py-0.5 text-xs",
|
|
2436
2499
|
children: [
|
|
2437
2500
|
item.label,
|
|
2438
|
-
/* @__PURE__ */
|
|
2501
|
+
/* @__PURE__ */ jsx32(
|
|
2439
2502
|
"span",
|
|
2440
2503
|
{
|
|
2441
2504
|
role: "button",
|
|
@@ -2457,7 +2520,7 @@ var DropdownCascaderMulti = ({
|
|
|
2457
2520
|
remove(item.value);
|
|
2458
2521
|
}
|
|
2459
2522
|
},
|
|
2460
|
-
children: /* @__PURE__ */
|
|
2523
|
+
children: /* @__PURE__ */ jsx32(X, { className: "size-3" })
|
|
2461
2524
|
}
|
|
2462
2525
|
)
|
|
2463
2526
|
]
|
|
@@ -2465,11 +2528,11 @@ var DropdownCascaderMulti = ({
|
|
|
2465
2528
|
item.value
|
|
2466
2529
|
))
|
|
2467
2530
|
] }),
|
|
2468
|
-
/* @__PURE__ */
|
|
2531
|
+
/* @__PURE__ */ jsx32(ChevronDown, { className: "size-4 opacity-50" })
|
|
2469
2532
|
]
|
|
2470
2533
|
}
|
|
2471
2534
|
) }),
|
|
2472
|
-
/* @__PURE__ */
|
|
2535
|
+
/* @__PURE__ */ jsx32(
|
|
2473
2536
|
DropdownMenuContent,
|
|
2474
2537
|
{
|
|
2475
2538
|
align: "start",
|
|
@@ -2483,7 +2546,7 @@ var DropdownCascaderMulti = ({
|
|
|
2483
2546
|
// src/components/dropdown-cascader/dropdown-cascader-single.tsx
|
|
2484
2547
|
import * as React2 from "react";
|
|
2485
2548
|
import { ChevronDown as ChevronDown2 } from "lucide-react";
|
|
2486
|
-
import { jsx as
|
|
2549
|
+
import { jsx as jsx33, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
2487
2550
|
var DropdownCascaderSingle = (props) => {
|
|
2488
2551
|
const optionMap = React2.useMemo(
|
|
2489
2552
|
() => getOptionMap(props.options),
|
|
@@ -2497,19 +2560,19 @@ var DropdownCascaderSingle = (props) => {
|
|
|
2497
2560
|
setOpen(false);
|
|
2498
2561
|
};
|
|
2499
2562
|
const selectedPath = props.value ? optionMap.get(props.value)?.path.map((i) => i.label).join(" / ") : "";
|
|
2500
|
-
return /* @__PURE__ */
|
|
2501
|
-
/* @__PURE__ */
|
|
2563
|
+
return /* @__PURE__ */ jsxs20(DropdownMenu, { open, onOpenChange: setOpen, children: [
|
|
2564
|
+
/* @__PURE__ */ jsx33(DropdownMenuTrigger, { asChild: true, className: "self-start", children: /* @__PURE__ */ jsxs20(
|
|
2502
2565
|
Button,
|
|
2503
2566
|
{
|
|
2504
2567
|
variant: "outline",
|
|
2505
2568
|
className: "h-auto! min-h-9 w-full justify-between px-3 leading-none",
|
|
2506
2569
|
children: [
|
|
2507
2570
|
selectedPath || props.placeholder,
|
|
2508
|
-
/* @__PURE__ */
|
|
2571
|
+
/* @__PURE__ */ jsx33(ChevronDown2, { className: "size-4 ml-auto opacity-50" })
|
|
2509
2572
|
]
|
|
2510
2573
|
}
|
|
2511
2574
|
) }),
|
|
2512
|
-
/* @__PURE__ */
|
|
2575
|
+
/* @__PURE__ */ jsx33(
|
|
2513
2576
|
DropdownMenuContent,
|
|
2514
2577
|
{
|
|
2515
2578
|
align: "start",
|
|
@@ -2535,12 +2598,12 @@ import { cva as cva5 } from "class-variance-authority";
|
|
|
2535
2598
|
|
|
2536
2599
|
// src/shadcn/components/label.tsx
|
|
2537
2600
|
import { Label as LabelPrimitive } from "radix-ui";
|
|
2538
|
-
import { jsx as
|
|
2601
|
+
import { jsx as jsx34 } from "react/jsx-runtime";
|
|
2539
2602
|
function Label({
|
|
2540
2603
|
className,
|
|
2541
2604
|
...props
|
|
2542
2605
|
}) {
|
|
2543
|
-
return /* @__PURE__ */
|
|
2606
|
+
return /* @__PURE__ */ jsx34(
|
|
2544
2607
|
LabelPrimitive.Root,
|
|
2545
2608
|
{
|
|
2546
2609
|
"data-slot": "label",
|
|
@@ -2555,12 +2618,12 @@ function Label({
|
|
|
2555
2618
|
|
|
2556
2619
|
// src/shadcn/components/separator.tsx
|
|
2557
2620
|
import { Separator as SeparatorPrimitive } from "radix-ui";
|
|
2558
|
-
import { jsx as
|
|
2621
|
+
import { jsx as jsx35 } from "react/jsx-runtime";
|
|
2559
2622
|
|
|
2560
2623
|
// src/shadcn/components/field.tsx
|
|
2561
|
-
import { jsx as
|
|
2624
|
+
import { jsx as jsx36, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
2562
2625
|
function FieldGroup2({ className, ...props }) {
|
|
2563
|
-
return /* @__PURE__ */
|
|
2626
|
+
return /* @__PURE__ */ jsx36(
|
|
2564
2627
|
"div",
|
|
2565
2628
|
{
|
|
2566
2629
|
"data-slot": "field-group",
|
|
@@ -2600,7 +2663,7 @@ function Field({
|
|
|
2600
2663
|
orientation = "vertical",
|
|
2601
2664
|
...props
|
|
2602
2665
|
}) {
|
|
2603
|
-
return /* @__PURE__ */
|
|
2666
|
+
return /* @__PURE__ */ jsx36(
|
|
2604
2667
|
"div",
|
|
2605
2668
|
{
|
|
2606
2669
|
role: "group",
|
|
@@ -2617,7 +2680,7 @@ function FieldLabel({
|
|
|
2617
2680
|
children,
|
|
2618
2681
|
...props
|
|
2619
2682
|
}) {
|
|
2620
|
-
return /* @__PURE__ */
|
|
2683
|
+
return /* @__PURE__ */ jsx36(
|
|
2621
2684
|
Label,
|
|
2622
2685
|
{
|
|
2623
2686
|
"data-slot": "field-label",
|
|
@@ -2628,9 +2691,9 @@ function FieldLabel({
|
|
|
2628
2691
|
className
|
|
2629
2692
|
),
|
|
2630
2693
|
...props,
|
|
2631
|
-
children: /* @__PURE__ */
|
|
2694
|
+
children: /* @__PURE__ */ jsxs21("span", { className: "flex items-center gap-1", children: [
|
|
2632
2695
|
children,
|
|
2633
|
-
required && /* @__PURE__ */
|
|
2696
|
+
required && /* @__PURE__ */ jsx36("span", { className: "text-destructive", children: "*" })
|
|
2634
2697
|
] })
|
|
2635
2698
|
}
|
|
2636
2699
|
);
|
|
@@ -2654,14 +2717,14 @@ function FieldError({
|
|
|
2654
2717
|
if (uniqueErrors?.length == 1) {
|
|
2655
2718
|
return uniqueErrors[0]?.message;
|
|
2656
2719
|
}
|
|
2657
|
-
return /* @__PURE__ */
|
|
2658
|
-
(error, index) => error?.message && /* @__PURE__ */
|
|
2720
|
+
return /* @__PURE__ */ jsx36("ul", { className: "ml-4 flex list-disc flex-col gap-1", children: uniqueErrors.map(
|
|
2721
|
+
(error, index) => error?.message && /* @__PURE__ */ jsx36("li", { children: error.message }, index)
|
|
2659
2722
|
) });
|
|
2660
2723
|
}, [children, errors]);
|
|
2661
2724
|
if (!content) {
|
|
2662
2725
|
return null;
|
|
2663
2726
|
}
|
|
2664
|
-
return /* @__PURE__ */
|
|
2727
|
+
return /* @__PURE__ */ jsx36(
|
|
2665
2728
|
"div",
|
|
2666
2729
|
{
|
|
2667
2730
|
role: "alert",
|
|
@@ -2675,12 +2738,12 @@ function FieldError({
|
|
|
2675
2738
|
|
|
2676
2739
|
// src/shadcn/components/tooltip.tsx
|
|
2677
2740
|
import { Tooltip as TooltipPrimitive } from "radix-ui";
|
|
2678
|
-
import { jsx as
|
|
2741
|
+
import { jsx as jsx37, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
2679
2742
|
function TooltipProvider({
|
|
2680
2743
|
delayDuration = 0,
|
|
2681
2744
|
...props
|
|
2682
2745
|
}) {
|
|
2683
|
-
return /* @__PURE__ */
|
|
2746
|
+
return /* @__PURE__ */ jsx37(
|
|
2684
2747
|
TooltipPrimitive.Provider,
|
|
2685
2748
|
{
|
|
2686
2749
|
"data-slot": "tooltip-provider",
|
|
@@ -2692,12 +2755,12 @@ function TooltipProvider({
|
|
|
2692
2755
|
function Tooltip({
|
|
2693
2756
|
...props
|
|
2694
2757
|
}) {
|
|
2695
|
-
return /* @__PURE__ */
|
|
2758
|
+
return /* @__PURE__ */ jsx37(TooltipPrimitive.Root, { "data-slot": "tooltip", ...props });
|
|
2696
2759
|
}
|
|
2697
2760
|
function TooltipTrigger({
|
|
2698
2761
|
...props
|
|
2699
2762
|
}) {
|
|
2700
|
-
return /* @__PURE__ */
|
|
2763
|
+
return /* @__PURE__ */ jsx37(TooltipPrimitive.Trigger, { "data-slot": "tooltip-trigger", ...props });
|
|
2701
2764
|
}
|
|
2702
2765
|
function TooltipContent({
|
|
2703
2766
|
className,
|
|
@@ -2705,7 +2768,7 @@ function TooltipContent({
|
|
|
2705
2768
|
children,
|
|
2706
2769
|
...props
|
|
2707
2770
|
}) {
|
|
2708
|
-
return /* @__PURE__ */
|
|
2771
|
+
return /* @__PURE__ */ jsx37(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsxs22(
|
|
2709
2772
|
TooltipPrimitive.Content,
|
|
2710
2773
|
{
|
|
2711
2774
|
"data-slot": "tooltip-content",
|
|
@@ -2717,35 +2780,35 @@ function TooltipContent({
|
|
|
2717
2780
|
...props,
|
|
2718
2781
|
children: [
|
|
2719
2782
|
children,
|
|
2720
|
-
/* @__PURE__ */
|
|
2783
|
+
/* @__PURE__ */ jsx37(TooltipPrimitive.Arrow, { className: "z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground" })
|
|
2721
2784
|
]
|
|
2722
2785
|
}
|
|
2723
2786
|
) });
|
|
2724
2787
|
}
|
|
2725
2788
|
|
|
2726
2789
|
// src/components/field-controller/index.tsx
|
|
2727
|
-
import { jsx as
|
|
2790
|
+
import { jsx as jsx38, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
2728
2791
|
var FieldController = ({
|
|
2729
2792
|
required = false,
|
|
2730
2793
|
...props
|
|
2731
2794
|
}) => {
|
|
2732
|
-
return /* @__PURE__ */
|
|
2795
|
+
return /* @__PURE__ */ jsx38(
|
|
2733
2796
|
Controller,
|
|
2734
2797
|
{
|
|
2735
2798
|
name: props.name,
|
|
2736
2799
|
control: props.control,
|
|
2737
|
-
render: ({ field, fieldState }) => /* @__PURE__ */
|
|
2738
|
-
/* @__PURE__ */
|
|
2739
|
-
/* @__PURE__ */
|
|
2740
|
-
props.tip && /* @__PURE__ */
|
|
2741
|
-
/* @__PURE__ */
|
|
2800
|
+
render: ({ field, fieldState }) => /* @__PURE__ */ jsxs23(Field, { "data-invalid": fieldState.invalid, children: [
|
|
2801
|
+
/* @__PURE__ */ jsxs23("div", { className: "flex items-center gap-spacing-xs", children: [
|
|
2802
|
+
/* @__PURE__ */ jsx38(FieldLabel, { htmlFor: props.id, required, children: props.label }),
|
|
2803
|
+
props.tip && /* @__PURE__ */ jsxs23(Tooltip, { children: [
|
|
2804
|
+
/* @__PURE__ */ jsx38(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx38(
|
|
2742
2805
|
CircleQuestionMark,
|
|
2743
2806
|
{
|
|
2744
2807
|
size: "1rem",
|
|
2745
2808
|
className: "text-muted-foreground"
|
|
2746
2809
|
}
|
|
2747
2810
|
) }),
|
|
2748
|
-
/* @__PURE__ */
|
|
2811
|
+
/* @__PURE__ */ jsx38(
|
|
2749
2812
|
TooltipContent,
|
|
2750
2813
|
{
|
|
2751
2814
|
side: "right",
|
|
@@ -2760,16 +2823,16 @@ var FieldController = ({
|
|
|
2760
2823
|
fieldState,
|
|
2761
2824
|
id: props.id
|
|
2762
2825
|
}),
|
|
2763
|
-
fieldState.error && /* @__PURE__ */
|
|
2826
|
+
fieldState.error && /* @__PURE__ */ jsx38(FieldError, { errors: [fieldState.error] })
|
|
2764
2827
|
] })
|
|
2765
2828
|
}
|
|
2766
2829
|
);
|
|
2767
2830
|
};
|
|
2768
2831
|
|
|
2769
2832
|
// src/components/field-group/index.tsx
|
|
2770
|
-
import { jsx as
|
|
2833
|
+
import { jsx as jsx39 } from "react/jsx-runtime";
|
|
2771
2834
|
var FieldGroup = (props) => {
|
|
2772
|
-
return /* @__PURE__ */
|
|
2835
|
+
return /* @__PURE__ */ jsx39(
|
|
2773
2836
|
"div",
|
|
2774
2837
|
{
|
|
2775
2838
|
className: cn2(
|
|
@@ -2782,28 +2845,28 @@ var FieldGroup = (props) => {
|
|
|
2782
2845
|
};
|
|
2783
2846
|
|
|
2784
2847
|
// src/components/text/index.tsx
|
|
2785
|
-
import { jsx as
|
|
2848
|
+
import { jsx as jsx40 } from "react/jsx-runtime";
|
|
2786
2849
|
var Text = (props) => {
|
|
2787
|
-
return /* @__PURE__ */
|
|
2850
|
+
return /* @__PURE__ */ jsx40("div", { className: cn2("", props.className), children: props.children });
|
|
2788
2851
|
};
|
|
2789
2852
|
|
|
2790
2853
|
// src/components/field-plain/index.tsx
|
|
2791
|
-
import { Fragment as Fragment2, jsx as
|
|
2854
|
+
import { Fragment as Fragment2, jsx as jsx41, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
2792
2855
|
var FieldPlain = ({
|
|
2793
2856
|
required = false,
|
|
2794
2857
|
mode = EnumFormMode.VIEW,
|
|
2795
2858
|
...props
|
|
2796
2859
|
}) => {
|
|
2797
2860
|
const label = props.label ?? "-";
|
|
2798
|
-
return /* @__PURE__ */
|
|
2799
|
-
/* @__PURE__ */
|
|
2800
|
-
mode === EnumFormMode.VIEW ? /* @__PURE__ */
|
|
2801
|
-
props.error && /* @__PURE__ */
|
|
2861
|
+
return /* @__PURE__ */ jsx41(Fragment2, { children: /* @__PURE__ */ jsxs24(Field, { "data-invalid": props.invalid, children: [
|
|
2862
|
+
/* @__PURE__ */ jsx41(FieldLabel, { htmlFor: props.id, required, children: props.name }),
|
|
2863
|
+
mode === EnumFormMode.VIEW ? /* @__PURE__ */ jsx41(Text, { children: label }) : props.children,
|
|
2864
|
+
props.error && /* @__PURE__ */ jsx41(FieldError, { errors: [{ message: props.error }] })
|
|
2802
2865
|
] }) });
|
|
2803
2866
|
};
|
|
2804
2867
|
|
|
2805
2868
|
// src/components/field-text/index.tsx
|
|
2806
|
-
import { jsx as
|
|
2869
|
+
import { jsx as jsx42, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
2807
2870
|
var FieldText = ({
|
|
2808
2871
|
id,
|
|
2809
2872
|
name,
|
|
@@ -2813,16 +2876,16 @@ var FieldText = ({
|
|
|
2813
2876
|
render
|
|
2814
2877
|
}) => {
|
|
2815
2878
|
const isEmpty2 = value === "" || value == null;
|
|
2816
|
-
return /* @__PURE__ */
|
|
2817
|
-
/* @__PURE__ */
|
|
2818
|
-
/* @__PURE__ */
|
|
2879
|
+
return /* @__PURE__ */ jsxs25(Field, { children: [
|
|
2880
|
+
/* @__PURE__ */ jsx42(FieldLabel, { htmlFor: id, required, children: name }),
|
|
2881
|
+
/* @__PURE__ */ jsx42("div", { id, className: "text-sm leading-6", children: render ?? (isEmpty2 ? placeholder : value) })
|
|
2819
2882
|
] });
|
|
2820
2883
|
};
|
|
2821
2884
|
|
|
2822
2885
|
// src/components/form-select/index.tsx
|
|
2823
|
-
import { jsx as
|
|
2886
|
+
import { jsx as jsx43, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
2824
2887
|
var FormSelect = (props) => {
|
|
2825
|
-
return /* @__PURE__ */
|
|
2888
|
+
return /* @__PURE__ */ jsxs26(
|
|
2826
2889
|
Select,
|
|
2827
2890
|
{
|
|
2828
2891
|
value: props.value,
|
|
@@ -2835,9 +2898,9 @@ var FormSelect = (props) => {
|
|
|
2835
2898
|
},
|
|
2836
2899
|
"aria-invalid": props.invalid,
|
|
2837
2900
|
children: [
|
|
2838
|
-
/* @__PURE__ */
|
|
2839
|
-
/* @__PURE__ */
|
|
2840
|
-
return /* @__PURE__ */
|
|
2901
|
+
/* @__PURE__ */ jsx43(SelectTrigger, { className: "w-full", children: /* @__PURE__ */ jsx43(SelectValue, {}) }),
|
|
2902
|
+
/* @__PURE__ */ jsx43(SelectContent, { children: /* @__PURE__ */ jsx43(SelectGroup, { children: props.optionList.map((option) => {
|
|
2903
|
+
return /* @__PURE__ */ jsx43(SelectItem, { value: option.value, children: option.label }, option.value);
|
|
2841
2904
|
}) }) })
|
|
2842
2905
|
]
|
|
2843
2906
|
}
|
|
@@ -2860,7 +2923,7 @@ import {
|
|
|
2860
2923
|
ChevronLeftIcon as ChevronLeftIcon2,
|
|
2861
2924
|
ChevronRightIcon as ChevronRightIcon3
|
|
2862
2925
|
} from "lucide-react";
|
|
2863
|
-
import { jsx as
|
|
2926
|
+
import { jsx as jsx44 } from "react/jsx-runtime";
|
|
2864
2927
|
function Calendar({
|
|
2865
2928
|
className,
|
|
2866
2929
|
classNames,
|
|
@@ -2872,7 +2935,7 @@ function Calendar({
|
|
|
2872
2935
|
...props
|
|
2873
2936
|
}) {
|
|
2874
2937
|
const defaultClassNames = getDefaultClassNames();
|
|
2875
|
-
return /* @__PURE__ */
|
|
2938
|
+
return /* @__PURE__ */ jsx44(
|
|
2876
2939
|
DayPicker,
|
|
2877
2940
|
{
|
|
2878
2941
|
showOutsideDays,
|
|
@@ -2972,7 +3035,7 @@ function Calendar({
|
|
|
2972
3035
|
},
|
|
2973
3036
|
components: {
|
|
2974
3037
|
Root: ({ className: className2, rootRef, ...props2 }) => {
|
|
2975
|
-
return /* @__PURE__ */
|
|
3038
|
+
return /* @__PURE__ */ jsx44(
|
|
2976
3039
|
"div",
|
|
2977
3040
|
{
|
|
2978
3041
|
"data-slot": "calendar",
|
|
@@ -2984,10 +3047,10 @@ function Calendar({
|
|
|
2984
3047
|
},
|
|
2985
3048
|
Chevron: ({ className: className2, orientation, ...props2 }) => {
|
|
2986
3049
|
if (orientation === "left") {
|
|
2987
|
-
return /* @__PURE__ */
|
|
3050
|
+
return /* @__PURE__ */ jsx44(ChevronLeftIcon2, { className: cn("size-4", className2), ...props2 });
|
|
2988
3051
|
}
|
|
2989
3052
|
if (orientation === "right") {
|
|
2990
|
-
return /* @__PURE__ */
|
|
3053
|
+
return /* @__PURE__ */ jsx44(
|
|
2991
3054
|
ChevronRightIcon3,
|
|
2992
3055
|
{
|
|
2993
3056
|
className: cn("size-4", className2),
|
|
@@ -2995,11 +3058,11 @@ function Calendar({
|
|
|
2995
3058
|
}
|
|
2996
3059
|
);
|
|
2997
3060
|
}
|
|
2998
|
-
return /* @__PURE__ */
|
|
3061
|
+
return /* @__PURE__ */ jsx44(ChevronDownIcon3, { className: cn("size-4", className2), ...props2 });
|
|
2999
3062
|
},
|
|
3000
3063
|
DayButton: CalendarDayButton,
|
|
3001
3064
|
WeekNumber: ({ children, ...props2 }) => {
|
|
3002
|
-
return /* @__PURE__ */
|
|
3065
|
+
return /* @__PURE__ */ jsx44("td", { ...props2, children: /* @__PURE__ */ jsx44("div", { className: "flex size-(--cell-size) items-center justify-center text-center", children }) });
|
|
3003
3066
|
},
|
|
3004
3067
|
...components
|
|
3005
3068
|
},
|
|
@@ -3018,7 +3081,7 @@ function CalendarDayButton({
|
|
|
3018
3081
|
React3.useEffect(() => {
|
|
3019
3082
|
if (modifiers.focused) ref.current?.focus();
|
|
3020
3083
|
}, [modifiers.focused]);
|
|
3021
|
-
return /* @__PURE__ */
|
|
3084
|
+
return /* @__PURE__ */ jsx44(
|
|
3022
3085
|
Button,
|
|
3023
3086
|
{
|
|
3024
3087
|
ref,
|
|
@@ -3041,16 +3104,16 @@ function CalendarDayButton({
|
|
|
3041
3104
|
|
|
3042
3105
|
// src/shadcn/components/popover.tsx
|
|
3043
3106
|
import { Popover as PopoverPrimitive } from "radix-ui";
|
|
3044
|
-
import { jsx as
|
|
3107
|
+
import { jsx as jsx45 } from "react/jsx-runtime";
|
|
3045
3108
|
function Popover({
|
|
3046
3109
|
...props
|
|
3047
3110
|
}) {
|
|
3048
|
-
return /* @__PURE__ */
|
|
3111
|
+
return /* @__PURE__ */ jsx45(PopoverPrimitive.Root, { "data-slot": "popover", ...props });
|
|
3049
3112
|
}
|
|
3050
3113
|
function PopoverTrigger({
|
|
3051
3114
|
...props
|
|
3052
3115
|
}) {
|
|
3053
|
-
return /* @__PURE__ */
|
|
3116
|
+
return /* @__PURE__ */ jsx45(PopoverPrimitive.Trigger, { "data-slot": "popover-trigger", ...props });
|
|
3054
3117
|
}
|
|
3055
3118
|
function PopoverContent({
|
|
3056
3119
|
className,
|
|
@@ -3058,7 +3121,7 @@ function PopoverContent({
|
|
|
3058
3121
|
sideOffset = 4,
|
|
3059
3122
|
...props
|
|
3060
3123
|
}) {
|
|
3061
|
-
return /* @__PURE__ */
|
|
3124
|
+
return /* @__PURE__ */ jsx45(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx45(
|
|
3062
3125
|
PopoverPrimitive.Content,
|
|
3063
3126
|
{
|
|
3064
3127
|
"data-slot": "popover-content",
|
|
@@ -3074,7 +3137,7 @@ function PopoverContent({
|
|
|
3074
3137
|
}
|
|
3075
3138
|
|
|
3076
3139
|
// src/components/form-time-picker/index.tsx
|
|
3077
|
-
import { jsx as
|
|
3140
|
+
import { jsx as jsx46, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
3078
3141
|
function pad2(n) {
|
|
3079
3142
|
return String(n).padStart(2, "0");
|
|
3080
3143
|
}
|
|
@@ -3094,9 +3157,9 @@ var FormTimePicker = (props) => {
|
|
|
3094
3157
|
const [open, setOpen] = React4.useState(false);
|
|
3095
3158
|
const dateBtnText = props.value ? formatDateTime(props.value, "YYYY-MM-DD") : props.datePlaceholder;
|
|
3096
3159
|
const timeValue = formatTimeHHmmss(props.value);
|
|
3097
|
-
return /* @__PURE__ */
|
|
3098
|
-
/* @__PURE__ */
|
|
3099
|
-
/* @__PURE__ */
|
|
3160
|
+
return /* @__PURE__ */ jsxs27(FieldGroup2, { className: "flex-row gap-2.5", children: [
|
|
3161
|
+
/* @__PURE__ */ jsx46(Field, { children: /* @__PURE__ */ jsxs27(Popover, { open, onOpenChange: setOpen, children: [
|
|
3162
|
+
/* @__PURE__ */ jsx46(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs27(
|
|
3100
3163
|
Button,
|
|
3101
3164
|
{
|
|
3102
3165
|
variant: "outline",
|
|
@@ -3105,17 +3168,17 @@ var FormTimePicker = (props) => {
|
|
|
3105
3168
|
disabled: props.disabled,
|
|
3106
3169
|
className: "w-32 justify-between font-normal",
|
|
3107
3170
|
children: [
|
|
3108
|
-
/* @__PURE__ */
|
|
3109
|
-
/* @__PURE__ */
|
|
3171
|
+
/* @__PURE__ */ jsx46("div", { className: "w-full text-left", children: dateBtnText }),
|
|
3172
|
+
/* @__PURE__ */ jsx46(ChevronDownIcon4, {})
|
|
3110
3173
|
]
|
|
3111
3174
|
}
|
|
3112
3175
|
) }),
|
|
3113
|
-
/* @__PURE__ */
|
|
3176
|
+
/* @__PURE__ */ jsx46(
|
|
3114
3177
|
PopoverContent,
|
|
3115
3178
|
{
|
|
3116
3179
|
className: "w-(--radix-popover-trigger-width) p-0",
|
|
3117
3180
|
align: "start",
|
|
3118
|
-
children: /* @__PURE__ */
|
|
3181
|
+
children: /* @__PURE__ */ jsx46(
|
|
3119
3182
|
Calendar,
|
|
3120
3183
|
{
|
|
3121
3184
|
mode: "single",
|
|
@@ -3139,7 +3202,7 @@ var FormTimePicker = (props) => {
|
|
|
3139
3202
|
}
|
|
3140
3203
|
)
|
|
3141
3204
|
] }) }),
|
|
3142
|
-
/* @__PURE__ */
|
|
3205
|
+
/* @__PURE__ */ jsx46(Field, { className: "w-32", children: /* @__PURE__ */ jsx46(
|
|
3143
3206
|
Input,
|
|
3144
3207
|
{
|
|
3145
3208
|
type: "time",
|
|
@@ -3161,31 +3224,13 @@ var FormTimePicker = (props) => {
|
|
|
3161
3224
|
};
|
|
3162
3225
|
|
|
3163
3226
|
// src/components/media-uploader/index.tsx
|
|
3164
|
-
import { useCallback as useCallback2, useEffect as useEffect3, useRef as useRef2, useState as
|
|
3165
|
-
import { Eye, Loader2, Plus, Trash2 } from "lucide-react";
|
|
3166
|
-
|
|
3167
|
-
// src/shadcn/components/card.tsx
|
|
3168
|
-
import { jsx as jsx45 } from "react/jsx-runtime";
|
|
3169
|
-
function Card({ className, ...props }) {
|
|
3170
|
-
return /* @__PURE__ */ jsx45(
|
|
3171
|
-
"div",
|
|
3172
|
-
{
|
|
3173
|
-
"data-slot": "card",
|
|
3174
|
-
className: cn(
|
|
3175
|
-
"flex flex-col gap-6 rounded-xl border bg-card py-6 text-card-foreground shadow-sm",
|
|
3176
|
-
className
|
|
3177
|
-
),
|
|
3178
|
-
...props
|
|
3179
|
-
}
|
|
3180
|
-
);
|
|
3181
|
-
}
|
|
3182
|
-
|
|
3183
|
-
// src/components/media-uploader/index.tsx
|
|
3184
|
-
import { jsx as jsx46, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
3227
|
+
import { useCallback as useCallback2, useEffect as useEffect3, useRef as useRef2, useState as useState8 } from "react";
|
|
3228
|
+
import { Eye as Eye2, Loader2, Plus, Trash2 } from "lucide-react";
|
|
3229
|
+
import { jsx as jsx47, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
3185
3230
|
var MediaUploader = ({ value = [], ...props }) => {
|
|
3186
3231
|
const inputRef = useRef2(null);
|
|
3187
|
-
const [items, setItems] =
|
|
3188
|
-
const [preview, setPreview] =
|
|
3232
|
+
const [items, setItems] = useState8([]);
|
|
3233
|
+
const [preview, setPreview] = useState8(null);
|
|
3189
3234
|
const readonly = !!props.readonly;
|
|
3190
3235
|
const disabled = !!props.disabled;
|
|
3191
3236
|
const canEdit = !readonly && !disabled;
|
|
@@ -3307,8 +3352,8 @@ var MediaUploader = ({ value = [], ...props }) => {
|
|
|
3307
3352
|
});
|
|
3308
3353
|
};
|
|
3309
3354
|
const showUploadButton = canEdit && (!props.multiple && items.length === 0 || props.multiple);
|
|
3310
|
-
return /* @__PURE__ */
|
|
3311
|
-
/* @__PURE__ */
|
|
3355
|
+
return /* @__PURE__ */ jsxs28("div", { className: cn2("space-y-3", props.className), children: [
|
|
3356
|
+
/* @__PURE__ */ jsx47(
|
|
3312
3357
|
"input",
|
|
3313
3358
|
{
|
|
3314
3359
|
ref: inputRef,
|
|
@@ -3325,19 +3370,19 @@ var MediaUploader = ({ value = [], ...props }) => {
|
|
|
3325
3370
|
}
|
|
3326
3371
|
}
|
|
3327
3372
|
),
|
|
3328
|
-
/* @__PURE__ */
|
|
3329
|
-
items.map((it, index) => /* @__PURE__ */
|
|
3330
|
-
it.url || it.localUrl ? /* @__PURE__ */
|
|
3373
|
+
/* @__PURE__ */ jsx47(ScrollArea, { className: "rounded-lg border", children: /* @__PURE__ */ jsxs28("div", { className: "grid grid-cols-2 gap-3 p-3 sm:grid-cols-3 lg:grid-cols-4", children: [
|
|
3374
|
+
items.map((it, index) => /* @__PURE__ */ jsx47(Card, { className: "group overflow-hidden", children: /* @__PURE__ */ jsxs28("div", { className: "relative aspect-square bg-muted", children: [
|
|
3375
|
+
it.url || it.localUrl ? /* @__PURE__ */ jsx47(
|
|
3331
3376
|
"img",
|
|
3332
3377
|
{
|
|
3333
3378
|
src: it.url ?? it.localUrl,
|
|
3334
3379
|
alt: "",
|
|
3335
3380
|
className: "h-full w-full object-cover"
|
|
3336
3381
|
}
|
|
3337
|
-
) : /* @__PURE__ */
|
|
3338
|
-
it.uploading && /* @__PURE__ */
|
|
3339
|
-
!it.uploading && (it.url || it.localUrl) && /* @__PURE__ */
|
|
3340
|
-
/* @__PURE__ */
|
|
3382
|
+
) : /* @__PURE__ */ jsx47("div", { className: "h-full w-full" }),
|
|
3383
|
+
it.uploading && /* @__PURE__ */ jsx47("div", { className: "absolute inset-0 flex items-center justify-center bg-black/40", children: /* @__PURE__ */ jsx47(Loader2, { className: "h-6 w-6 animate-spin text-white" }) }),
|
|
3384
|
+
!it.uploading && (it.url || it.localUrl) && /* @__PURE__ */ jsxs28("div", { className: "absolute inset-0 flex items-start justify-end gap-2 p-2 opacity-0 transition group-hover:opacity-100", children: [
|
|
3385
|
+
/* @__PURE__ */ jsx47(
|
|
3341
3386
|
Button,
|
|
3342
3387
|
{
|
|
3343
3388
|
size: "icon",
|
|
@@ -3345,10 +3390,10 @@ var MediaUploader = ({ value = [], ...props }) => {
|
|
|
3345
3390
|
className: "h-8 w-8",
|
|
3346
3391
|
onClick: () => setPreview(it),
|
|
3347
3392
|
type: "button",
|
|
3348
|
-
children: /* @__PURE__ */
|
|
3393
|
+
children: /* @__PURE__ */ jsx47(Eye2, { className: "h-4 w-4" })
|
|
3349
3394
|
}
|
|
3350
3395
|
),
|
|
3351
|
-
canEdit && /* @__PURE__ */
|
|
3396
|
+
canEdit && /* @__PURE__ */ jsx47(
|
|
3352
3397
|
Button,
|
|
3353
3398
|
{
|
|
3354
3399
|
size: "icon",
|
|
@@ -3356,25 +3401,25 @@ var MediaUploader = ({ value = [], ...props }) => {
|
|
|
3356
3401
|
className: "h-8 w-8",
|
|
3357
3402
|
onClick: () => remove(it.id),
|
|
3358
3403
|
type: "button",
|
|
3359
|
-
children: /* @__PURE__ */
|
|
3404
|
+
children: /* @__PURE__ */ jsx47(Trash2, { className: "h-4 w-4" })
|
|
3360
3405
|
}
|
|
3361
3406
|
)
|
|
3362
3407
|
] })
|
|
3363
3408
|
] }) }, it.id + index)),
|
|
3364
|
-
showUploadButton && /* @__PURE__ */
|
|
3409
|
+
showUploadButton && /* @__PURE__ */ jsx47(
|
|
3365
3410
|
Card,
|
|
3366
3411
|
{
|
|
3367
3412
|
className: "flex aspect-square cursor-pointer items-center justify-center hover:bg-muted/50",
|
|
3368
3413
|
onClick: () => {
|
|
3369
3414
|
inputRef.current?.click();
|
|
3370
3415
|
},
|
|
3371
|
-
children: /* @__PURE__ */
|
|
3416
|
+
children: /* @__PURE__ */ jsx47(Plus, { className: "h-6 w-6 text-muted-foreground" })
|
|
3372
3417
|
}
|
|
3373
3418
|
)
|
|
3374
3419
|
] }) }),
|
|
3375
|
-
/* @__PURE__ */
|
|
3376
|
-
/* @__PURE__ */
|
|
3377
|
-
preview && /* @__PURE__ */
|
|
3420
|
+
/* @__PURE__ */ jsx47(Dialog, { open: !!preview, onOpenChange: () => setPreview(null), children: /* @__PURE__ */ jsxs28(DialogContent, { className: "max-w-3xl", children: [
|
|
3421
|
+
/* @__PURE__ */ jsx47(DialogHeader, { children: /* @__PURE__ */ jsx47(DialogTitle, { children: "\u9884\u89C8" }) }),
|
|
3422
|
+
preview && /* @__PURE__ */ jsx47("div", { className: "relative aspect-video w-full overflow-hidden rounded-lg bg-muted", children: /* @__PURE__ */ jsx47(
|
|
3378
3423
|
"img",
|
|
3379
3424
|
{
|
|
3380
3425
|
src: preview.url ?? preview.localUrl ?? "",
|
|
@@ -3387,21 +3432,21 @@ var MediaUploader = ({ value = [], ...props }) => {
|
|
|
3387
3432
|
};
|
|
3388
3433
|
|
|
3389
3434
|
// src/components/provider/index.tsx
|
|
3390
|
-
import { jsx as
|
|
3435
|
+
import { jsx as jsx48 } from "react/jsx-runtime";
|
|
3391
3436
|
var Provider = ({ children }) => {
|
|
3392
|
-
return /* @__PURE__ */
|
|
3437
|
+
return /* @__PURE__ */ jsx48(TooltipProvider, { children });
|
|
3393
3438
|
};
|
|
3394
3439
|
|
|
3395
3440
|
// src/render/column/build-column/index.tsx
|
|
3396
|
-
import { jsx as
|
|
3441
|
+
import { jsx as jsx49 } from "react/jsx-runtime";
|
|
3397
3442
|
var buildColumn = () => (props) => {
|
|
3398
3443
|
const { key, label, render } = props;
|
|
3399
3444
|
return {
|
|
3400
3445
|
accessorKey: key,
|
|
3401
|
-
header: () => /* @__PURE__ */
|
|
3446
|
+
header: () => /* @__PURE__ */ jsx49(TableHeaderText, { text: label }),
|
|
3402
3447
|
cell: ({ row }) => {
|
|
3403
3448
|
const value = row.original[key];
|
|
3404
|
-
return render ? render(value, row.original) : /* @__PURE__ */
|
|
3449
|
+
return render ? render(value, row.original) : /* @__PURE__ */ jsx49(TableText, { text: String(value ?? "") });
|
|
3405
3450
|
},
|
|
3406
3451
|
meta: {
|
|
3407
3452
|
label
|
|
@@ -3451,6 +3496,7 @@ export {
|
|
|
3451
3496
|
TableEmpty,
|
|
3452
3497
|
TableFormDialog,
|
|
3453
3498
|
TableHeaderText,
|
|
3499
|
+
TableImage,
|
|
3454
3500
|
TablePagination,
|
|
3455
3501
|
TableText,
|
|
3456
3502
|
Text,
|