@mdigital_ui/ui 0.2.6 → 0.2.8
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/LICENSE +21 -0
- package/README.md +1023 -341
- package/dist/accordion/index.js +3 -3
- package/dist/avatar/index.js +4 -0
- package/dist/avatar/index.js.map +1 -0
- package/dist/badge/index.js +3 -3
- package/dist/breadcrumbs/index.js +5 -5
- package/dist/button/index.js +4 -4
- package/dist/button-group/index.js +2 -2
- package/dist/card/index.js +2 -2
- package/dist/carousel/index.js +2 -2
- package/dist/cascader/index.js +2 -2
- package/dist/chart/index.js +2 -2
- package/dist/checkbox/index.js +3 -3
- package/dist/checkbox-group/index.js +2 -2
- package/dist/{chunk-GFQXGLFD.js → chunk-22MY7IWD.js} +82 -62
- package/dist/chunk-22MY7IWD.js.map +1 -0
- package/dist/{chunk-IRNJZ754.js → chunk-2J57G7XG.js} +76 -18
- package/dist/chunk-2J57G7XG.js.map +1 -0
- package/dist/{chunk-SOIF4SHB.js → chunk-2NYVRAG4.js} +24 -15
- package/dist/chunk-2NYVRAG4.js.map +1 -0
- package/dist/{chunk-3WVJE5MF.js → chunk-2OUGJBXK.js} +19 -12
- package/dist/chunk-2OUGJBXK.js.map +1 -0
- package/dist/{chunk-JFGLDCAK.js → chunk-2REG4OUB.js} +19 -7
- package/dist/chunk-2REG4OUB.js.map +1 -0
- package/dist/{chunk-YII4K64U.js → chunk-2WZVD7P3.js} +36 -10
- package/dist/chunk-2WZVD7P3.js.map +1 -0
- package/dist/chunk-3HBMVZF5.js +72 -0
- package/dist/chunk-3HBMVZF5.js.map +1 -0
- package/dist/{chunk-7ODPSHIQ.js → chunk-3UCZ4GMN.js} +10 -4
- package/dist/chunk-3UCZ4GMN.js.map +1 -0
- package/dist/{chunk-QVCGNOBE.js → chunk-43RDFTC5.js} +78 -31
- package/dist/chunk-43RDFTC5.js.map +1 -0
- package/dist/{chunk-7YPX6NJK.js → chunk-4LSKRZOT.js} +12 -7
- package/dist/chunk-4LSKRZOT.js.map +1 -0
- package/dist/chunk-5PUATOLR.js +127 -0
- package/dist/chunk-5PUATOLR.js.map +1 -0
- package/dist/{chunk-6IPISGTP.js → chunk-7UCNBMCV.js} +102 -27
- package/dist/chunk-7UCNBMCV.js.map +1 -0
- package/dist/{chunk-Y2CXG3PT.js → chunk-C5YO5VZS.js} +8 -8
- package/dist/chunk-C5YO5VZS.js.map +1 -0
- package/dist/chunk-CLLNXRYZ.js +234 -0
- package/dist/chunk-CLLNXRYZ.js.map +1 -0
- package/dist/{chunk-INH7KYCK.js → chunk-CMGCJXE5.js} +275 -95
- package/dist/chunk-CMGCJXE5.js.map +1 -0
- package/dist/{chunk-MDY3HCRC.js → chunk-CPDVBHA3.js} +47 -18
- package/dist/chunk-CPDVBHA3.js.map +1 -0
- package/dist/{chunk-6MYKJE6A.js → chunk-CSRMVLPR.js} +109 -27
- package/dist/chunk-CSRMVLPR.js.map +1 -0
- package/dist/{chunk-IHKPZOE5.js → chunk-DQQLJ5C5.js} +6 -4
- package/dist/chunk-DQQLJ5C5.js.map +1 -0
- package/dist/{chunk-555KXZRK.js → chunk-EGNF7BRT.js} +6 -4
- package/dist/chunk-EGNF7BRT.js.map +1 -0
- package/dist/{chunk-7BUNJYZO.js → chunk-FEMHXG2P.js} +22 -6
- package/dist/chunk-FEMHXG2P.js.map +1 -0
- package/dist/chunk-FIGSNRWY.js +382 -0
- package/dist/chunk-FIGSNRWY.js.map +1 -0
- package/dist/{chunk-JGQOEAWL.js → chunk-FVTMKQUE.js} +5 -3
- package/dist/chunk-FVTMKQUE.js.map +1 -0
- package/dist/chunk-H47C2ENJ.js +215 -0
- package/dist/chunk-H47C2ENJ.js.map +1 -0
- package/dist/{chunk-77YTCM7G.js → chunk-HEV27FUK.js} +75 -32
- package/dist/chunk-HEV27FUK.js.map +1 -0
- package/dist/chunk-HWFI4GJE.js +130 -0
- package/dist/chunk-HWFI4GJE.js.map +1 -0
- package/dist/{chunk-DV5J5NLI.js → chunk-ILQQTKD4.js} +8 -5
- package/dist/chunk-ILQQTKD4.js.map +1 -0
- package/dist/{chunk-AVPPV5OM.js → chunk-IMGVPMHJ.js} +6 -4
- package/dist/chunk-IMGVPMHJ.js.map +1 -0
- package/dist/{chunk-23BPDLT4.js → chunk-ITZBSE5F.js} +42 -22
- package/dist/chunk-ITZBSE5F.js.map +1 -0
- package/dist/{chunk-HBEJ4S2Y.js → chunk-JIREY2VB.js} +19 -13
- package/dist/chunk-JIREY2VB.js.map +1 -0
- package/dist/{chunk-L6EVOPWH.js → chunk-JZ5F6XDO.js} +6 -4
- package/dist/chunk-JZ5F6XDO.js.map +1 -0
- package/dist/{chunk-TWZ5LXLL.js → chunk-KPI7MN5V.js} +45 -16
- package/dist/chunk-KPI7MN5V.js.map +1 -0
- package/dist/{chunk-GGREAJO5.js → chunk-KTHWXHDN.js} +10 -5
- package/dist/chunk-KTHWXHDN.js.map +1 -0
- package/dist/{chunk-TUTOU4X6.js → chunk-LK4EPTNG.js} +13 -142
- package/dist/chunk-LK4EPTNG.js.map +1 -0
- package/dist/{chunk-35K7N4JT.js → chunk-LMR7TKDJ.js} +17 -6
- package/dist/chunk-LMR7TKDJ.js.map +1 -0
- package/dist/{chunk-BYWYC7RC.js → chunk-MRFCITKK.js} +19 -10
- package/dist/chunk-MRFCITKK.js.map +1 -0
- package/dist/{chunk-TG2AECIN.js → chunk-MXDTUN3V.js} +22 -9
- package/dist/chunk-MXDTUN3V.js.map +1 -0
- package/dist/{chunk-PQZB43VJ.js → chunk-N32VWE6V.js} +38 -23
- package/dist/chunk-N32VWE6V.js.map +1 -0
- package/dist/{chunk-NZA526GC.js → chunk-N3ZVPIFC.js} +16 -13
- package/dist/chunk-N3ZVPIFC.js.map +1 -0
- package/dist/{chunk-2OGZENFC.js → chunk-NGYLRX6F.js} +2 -16
- package/dist/chunk-NGYLRX6F.js.map +1 -0
- package/dist/{chunk-NQB4V5P7.js → chunk-PHQOHVG3.js} +5 -5
- package/dist/chunk-PHQOHVG3.js.map +1 -0
- package/dist/{chunk-SYDNDYZJ.js → chunk-PXOHJJBE.js} +22 -9
- package/dist/chunk-PXOHJJBE.js.map +1 -0
- package/dist/{chunk-HWSLJGT7.js → chunk-Q57THXIU.js} +28 -10
- package/dist/chunk-Q57THXIU.js.map +1 -0
- package/dist/{chunk-22FIGRGO.js → chunk-QF3NJUUG.js} +31 -7
- package/dist/chunk-QF3NJUUG.js.map +1 -0
- package/dist/{chunk-CPPFXCNB.js → chunk-QKSDVYKF.js} +4 -4
- package/dist/chunk-QKSDVYKF.js.map +1 -0
- package/dist/{chunk-7TN4PGYF.js → chunk-REKWBXAQ.js} +49 -33
- package/dist/chunk-REKWBXAQ.js.map +1 -0
- package/dist/{chunk-DP6AWUH5.js → chunk-ROA7BYGB.js} +49 -19
- package/dist/chunk-ROA7BYGB.js.map +1 -0
- package/dist/{chunk-XG3KLPPS.js → chunk-RPIJ2KY7.js} +9 -4
- package/dist/chunk-RPIJ2KY7.js.map +1 -0
- package/dist/{chunk-C2MZL644.js → chunk-RW4RW4DV.js} +80 -30
- package/dist/chunk-RW4RW4DV.js.map +1 -0
- package/dist/chunk-RYKVZFGB.js +607 -0
- package/dist/chunk-RYKVZFGB.js.map +1 -0
- package/dist/chunk-SAVEKACZ.js +552 -0
- package/dist/chunk-SAVEKACZ.js.map +1 -0
- package/dist/{chunk-SMVVCZNM.js → chunk-SGRACNBP.js} +12 -7
- package/dist/chunk-SGRACNBP.js.map +1 -0
- package/dist/chunk-UUP7YGOS.js +299 -0
- package/dist/chunk-UUP7YGOS.js.map +1 -0
- package/dist/chunk-VY3X4SDU.js +143 -0
- package/dist/chunk-VY3X4SDU.js.map +1 -0
- package/dist/{chunk-SGMIDNPI.js → chunk-W3ES3UPV.js} +73 -19
- package/dist/chunk-W3ES3UPV.js.map +1 -0
- package/dist/{chunk-EFMKUCGX.js → chunk-WTGCXWNX.js} +8 -5
- package/dist/chunk-WTGCXWNX.js.map +1 -0
- package/dist/chunk-WUBMNJGC.js +141 -0
- package/dist/chunk-WUBMNJGC.js.map +1 -0
- package/dist/{chunk-O2VJ6KP4.js → chunk-X5SCI7KH.js} +190 -142
- package/dist/chunk-X5SCI7KH.js.map +1 -0
- package/dist/{chunk-ARK3EROZ.js → chunk-YAAV7FQG.js} +20 -12
- package/dist/chunk-YAAV7FQG.js.map +1 -0
- package/dist/{chunk-MLNIKNLI.js → chunk-YFK2DHCY.js} +57 -11
- package/dist/chunk-YFK2DHCY.js.map +1 -0
- package/dist/{chunk-R2FZO7AM.js → chunk-YTUB2Q7P.js} +26 -9
- package/dist/chunk-YTUB2Q7P.js.map +1 -0
- package/dist/clipboard/index.js +2 -2
- package/dist/collapse/index.js +2 -2
- package/dist/command/index.js +3 -3
- package/dist/context-menu/index.js +4 -0
- package/dist/context-menu/index.js.map +1 -0
- package/dist/date-picker/index.js +4 -4
- package/dist/descriptions/index.js +2 -2
- package/dist/divider/index.js +4 -0
- package/dist/divider/index.js.map +1 -0
- package/dist/drawer/index.js +2 -2
- package/dist/dropdown/index.js +4 -4
- package/dist/empty/index.js +2 -2
- package/dist/fetching-overlay/index.js +4 -4
- package/dist/grid/index.js +2 -2
- package/dist/image/index.js +2 -2
- package/dist/index.d.ts +1249 -168
- package/dist/index.js +63 -883
- package/dist/index.js.map +1 -1
- package/dist/input/index.js +4 -4
- package/dist/input-group/index.js +2 -2
- package/dist/input-otp/index.js +2 -2
- package/dist/input-password/index.js +5 -5
- package/dist/kbd/index.js +3 -3
- package/dist/modal/index.js +2 -2
- package/dist/multi-select/index.js +4 -4
- package/dist/notification/index.js +3 -3
- package/dist/pagination/index.js +2 -2
- package/dist/popover/index.js +3 -3
- package/dist/progress/index.js +2 -2
- package/dist/radio/index.js +3 -3
- package/dist/radio-group/index.js +2 -2
- package/dist/rating/index.js +2 -2
- package/dist/ribbon/index.js +2 -2
- package/dist/select/index.js +5 -5
- package/dist/skeleton/index.js +3 -3
- package/dist/slider/index.js +2 -2
- package/dist/spinner/index.js +3 -3
- package/dist/stepper/index.js +2 -2
- package/dist/styles/base.css +204 -99
- package/dist/styles/global.css +1330 -721
- package/dist/styles/themes/dark.css +3 -1
- package/dist/styles/themes/light.css +3 -1
- package/dist/styles/themes/presets/corporate.css +126 -0
- package/dist/styles/themes/presets/minimal.css +126 -0
- package/dist/styles/themes/presets/vibrant.css +126 -0
- package/dist/switch/index.js +3 -3
- package/dist/table/index.js +10 -10
- package/dist/tabs/index.js +3 -3
- package/dist/tag/index.js +5 -0
- package/dist/tag/index.js.map +1 -0
- package/dist/textarea/index.js +2 -2
- package/dist/theme/index.js +3 -0
- package/dist/theme/index.js.map +1 -0
- package/dist/toggle/index.js +2 -2
- package/dist/toggle-group/index.js +2 -2
- package/dist/tooltip/index.js +3 -3
- package/dist/transfer/index.js +4 -4
- package/dist/tree/index.js +2 -2
- package/dist/tree-select/index.js +5 -5
- package/dist/upload/index.js +2 -2
- package/package.json +439 -66
- package/dist/chunk-22FIGRGO.js.map +0 -1
- package/dist/chunk-23BPDLT4.js.map +0 -1
- package/dist/chunk-2OGZENFC.js.map +0 -1
- package/dist/chunk-35K7N4JT.js.map +0 -1
- package/dist/chunk-3QKPSJTV.js +0 -120
- package/dist/chunk-3QKPSJTV.js.map +0 -1
- package/dist/chunk-3WVJE5MF.js.map +0 -1
- package/dist/chunk-555KXZRK.js.map +0 -1
- package/dist/chunk-6IPISGTP.js.map +0 -1
- package/dist/chunk-6MYKJE6A.js.map +0 -1
- package/dist/chunk-6PFBSVLK.js +0 -39
- package/dist/chunk-6PFBSVLK.js.map +0 -1
- package/dist/chunk-77YTCM7G.js.map +0 -1
- package/dist/chunk-7BUNJYZO.js.map +0 -1
- package/dist/chunk-7ODPSHIQ.js.map +0 -1
- package/dist/chunk-7TN4PGYF.js.map +0 -1
- package/dist/chunk-7YPX6NJK.js.map +0 -1
- package/dist/chunk-ARK3EROZ.js.map +0 -1
- package/dist/chunk-AVPPV5OM.js.map +0 -1
- package/dist/chunk-BYWYC7RC.js.map +0 -1
- package/dist/chunk-C2MZL644.js.map +0 -1
- package/dist/chunk-CPPFXCNB.js.map +0 -1
- package/dist/chunk-DP6AWUH5.js.map +0 -1
- package/dist/chunk-DV5J5NLI.js.map +0 -1
- package/dist/chunk-EFMKUCGX.js.map +0 -1
- package/dist/chunk-GFQXGLFD.js.map +0 -1
- package/dist/chunk-GGREAJO5.js.map +0 -1
- package/dist/chunk-GH3CNX5N.js +0 -178
- package/dist/chunk-GH3CNX5N.js.map +0 -1
- package/dist/chunk-HBEJ4S2Y.js.map +0 -1
- package/dist/chunk-HWSLJGT7.js.map +0 -1
- package/dist/chunk-IHKPZOE5.js.map +0 -1
- package/dist/chunk-INH7KYCK.js.map +0 -1
- package/dist/chunk-IRNJZ754.js.map +0 -1
- package/dist/chunk-IUUEYOMN.js +0 -470
- package/dist/chunk-IUUEYOMN.js.map +0 -1
- package/dist/chunk-JFGLDCAK.js.map +0 -1
- package/dist/chunk-JGQOEAWL.js.map +0 -1
- package/dist/chunk-L6EVOPWH.js.map +0 -1
- package/dist/chunk-LSQLUYTD.js +0 -192
- package/dist/chunk-LSQLUYTD.js.map +0 -1
- package/dist/chunk-MDY3HCRC.js.map +0 -1
- package/dist/chunk-MLNIKNLI.js.map +0 -1
- package/dist/chunk-NQB4V5P7.js.map +0 -1
- package/dist/chunk-NZA526GC.js.map +0 -1
- package/dist/chunk-O2VJ6KP4.js.map +0 -1
- package/dist/chunk-PQZB43VJ.js.map +0 -1
- package/dist/chunk-QVCGNOBE.js.map +0 -1
- package/dist/chunk-R2FZO7AM.js.map +0 -1
- package/dist/chunk-SGMIDNPI.js.map +0 -1
- package/dist/chunk-SMVVCZNM.js.map +0 -1
- package/dist/chunk-SOIF4SHB.js.map +0 -1
- package/dist/chunk-SYDNDYZJ.js.map +0 -1
- package/dist/chunk-TG2AECIN.js.map +0 -1
- package/dist/chunk-TIMRHEKH.js +0 -452
- package/dist/chunk-TIMRHEKH.js.map +0 -1
- package/dist/chunk-TUTOU4X6.js.map +0 -1
- package/dist/chunk-TWZ5LXLL.js.map +0 -1
- package/dist/chunk-XG3KLPPS.js.map +0 -1
- package/dist/chunk-Y2CXG3PT.js.map +0 -1
- package/dist/chunk-YII4K64U.js.map +0 -1
package/dist/chunk-GH3CNX5N.js
DELETED
|
@@ -1,178 +0,0 @@
|
|
|
1
|
-
import { cn } from './chunk-2OGZENFC.js';
|
|
2
|
-
import { cva } from 'class-variance-authority';
|
|
3
|
-
import React from 'react';
|
|
4
|
-
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
5
|
-
|
|
6
|
-
var tableVariants = cva("w-full border-separate border-spacing-0", {
|
|
7
|
-
variants: {
|
|
8
|
-
bordered: {
|
|
9
|
-
true: "border border-border",
|
|
10
|
-
false: ""
|
|
11
|
-
},
|
|
12
|
-
rounded: {
|
|
13
|
-
true: "rounded-lg",
|
|
14
|
-
false: ""
|
|
15
|
-
}
|
|
16
|
-
},
|
|
17
|
-
compoundVariants: [
|
|
18
|
-
{ bordered: true, rounded: true, class: "overflow-hidden" }
|
|
19
|
-
],
|
|
20
|
-
defaultVariants: {
|
|
21
|
-
bordered: true,
|
|
22
|
-
rounded: true
|
|
23
|
-
}
|
|
24
|
-
});
|
|
25
|
-
var labelCellVariants = cva(
|
|
26
|
-
"font-semibold text-text-primary border-b border-r border-border",
|
|
27
|
-
{
|
|
28
|
-
variants: {
|
|
29
|
-
size: {
|
|
30
|
-
xs: "py-1 px-2 text-[10px]",
|
|
31
|
-
sm: "py-2 px-3 text-xs",
|
|
32
|
-
md: "py-3 px-4 text-sm",
|
|
33
|
-
lg: "py-4 px-5 text-base"
|
|
34
|
-
},
|
|
35
|
-
color: {
|
|
36
|
-
default: "bg-surface",
|
|
37
|
-
primary: "bg-primary/10",
|
|
38
|
-
secondary: "bg-secondary/10",
|
|
39
|
-
accent: "bg-accent/10",
|
|
40
|
-
success: "bg-success/10",
|
|
41
|
-
error: "bg-error/10",
|
|
42
|
-
warning: "bg-warning/10",
|
|
43
|
-
info: "bg-info/10"
|
|
44
|
-
}
|
|
45
|
-
},
|
|
46
|
-
defaultVariants: {
|
|
47
|
-
size: "md",
|
|
48
|
-
color: "default"
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
);
|
|
52
|
-
var valueCellVariants = cva(
|
|
53
|
-
"text-text-primary border-b border-r border-border bg-background",
|
|
54
|
-
{
|
|
55
|
-
variants: {
|
|
56
|
-
size: {
|
|
57
|
-
xs: "py-1 px-2 text-[10px]",
|
|
58
|
-
sm: "py-2 px-3 text-xs",
|
|
59
|
-
md: "py-3 px-4 text-sm",
|
|
60
|
-
lg: "py-4 px-5 text-base"
|
|
61
|
-
}
|
|
62
|
-
},
|
|
63
|
-
defaultVariants: {
|
|
64
|
-
size: "md"
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
);
|
|
68
|
-
var Descriptions = React.memo(
|
|
69
|
-
({
|
|
70
|
-
items,
|
|
71
|
-
column = 3,
|
|
72
|
-
color = "default",
|
|
73
|
-
size = "md",
|
|
74
|
-
layout = "horizontal",
|
|
75
|
-
bordered = true,
|
|
76
|
-
rounded = true,
|
|
77
|
-
className
|
|
78
|
-
}) => {
|
|
79
|
-
const rows = [];
|
|
80
|
-
let currentRow = [];
|
|
81
|
-
let currentSpan = 0;
|
|
82
|
-
items.forEach((item) => {
|
|
83
|
-
const itemSpan = item.span || 1;
|
|
84
|
-
if (currentSpan + itemSpan > column) {
|
|
85
|
-
rows.push(currentRow);
|
|
86
|
-
currentRow = [item];
|
|
87
|
-
currentSpan = itemSpan;
|
|
88
|
-
} else {
|
|
89
|
-
currentRow.push(item);
|
|
90
|
-
currentSpan += itemSpan;
|
|
91
|
-
}
|
|
92
|
-
});
|
|
93
|
-
if (currentRow.length > 0) {
|
|
94
|
-
rows.push(currentRow);
|
|
95
|
-
}
|
|
96
|
-
if (layout === "vertical") {
|
|
97
|
-
return /* @__PURE__ */ jsx("table", { className: cn(tableVariants({ bordered, rounded }), className), children: /* @__PURE__ */ jsx("tbody", { children: rows.map((row, rowIndex) => {
|
|
98
|
-
const isLastRow = rowIndex === rows.length - 1;
|
|
99
|
-
let colPosition = 0;
|
|
100
|
-
const itemsAtRightEdge = row.map((item) => {
|
|
101
|
-
const span = item.span || 1;
|
|
102
|
-
colPosition += span;
|
|
103
|
-
return colPosition >= column;
|
|
104
|
-
});
|
|
105
|
-
return /* @__PURE__ */ jsxs(React.Fragment, { children: [
|
|
106
|
-
/* @__PURE__ */ jsx("tr", { children: row.map((item, itemIndex) => /* @__PURE__ */ jsx(
|
|
107
|
-
"th",
|
|
108
|
-
{
|
|
109
|
-
colSpan: item.span || 1,
|
|
110
|
-
className: cn(
|
|
111
|
-
labelCellVariants({ size, color }),
|
|
112
|
-
itemsAtRightEdge[itemIndex] && "border-r-0"
|
|
113
|
-
),
|
|
114
|
-
children: item.label
|
|
115
|
-
},
|
|
116
|
-
`${item.key}-label`
|
|
117
|
-
)) }),
|
|
118
|
-
/* @__PURE__ */ jsx("tr", { children: row.map((item, itemIndex) => /* @__PURE__ */ jsx(
|
|
119
|
-
"td",
|
|
120
|
-
{
|
|
121
|
-
colSpan: item.span || 1,
|
|
122
|
-
className: cn(
|
|
123
|
-
valueCellVariants({ size }),
|
|
124
|
-
itemsAtRightEdge[itemIndex] && "border-r-0",
|
|
125
|
-
isLastRow && "border-b-0"
|
|
126
|
-
),
|
|
127
|
-
children: item.children
|
|
128
|
-
},
|
|
129
|
-
`${item.key}-value`
|
|
130
|
-
)) })
|
|
131
|
-
] }, rowIndex);
|
|
132
|
-
}) }) });
|
|
133
|
-
}
|
|
134
|
-
return /* @__PURE__ */ jsx("table", { className: cn(tableVariants({ bordered, rounded }), className), children: /* @__PURE__ */ jsx("tbody", { children: rows.map((row, rowIndex) => {
|
|
135
|
-
const isLastRow = rowIndex === rows.length - 1;
|
|
136
|
-
let colPosition = 0;
|
|
137
|
-
const valueAtRightEdge = row.map((item) => {
|
|
138
|
-
const span = item.span || 1;
|
|
139
|
-
colPosition += span * 2;
|
|
140
|
-
return colPosition >= column * 2;
|
|
141
|
-
});
|
|
142
|
-
return /* @__PURE__ */ jsx("tr", { children: row.map((item, itemIndex) => {
|
|
143
|
-
const itemSpan = item.span || 1;
|
|
144
|
-
const valueColSpan = itemSpan * 2 - 1;
|
|
145
|
-
return /* @__PURE__ */ jsxs(React.Fragment, { children: [
|
|
146
|
-
/* @__PURE__ */ jsx(
|
|
147
|
-
"th",
|
|
148
|
-
{
|
|
149
|
-
className: cn(
|
|
150
|
-
labelCellVariants({ size, color }),
|
|
151
|
-
isLastRow && "border-b-0"
|
|
152
|
-
),
|
|
153
|
-
children: item.label
|
|
154
|
-
}
|
|
155
|
-
),
|
|
156
|
-
/* @__PURE__ */ jsx(
|
|
157
|
-
"td",
|
|
158
|
-
{
|
|
159
|
-
colSpan: valueColSpan,
|
|
160
|
-
className: cn(
|
|
161
|
-
valueCellVariants({ size }),
|
|
162
|
-
valueAtRightEdge[itemIndex] && "border-r-0",
|
|
163
|
-
isLastRow && "border-b-0"
|
|
164
|
-
),
|
|
165
|
-
children: item.children
|
|
166
|
-
}
|
|
167
|
-
)
|
|
168
|
-
] }, item.key);
|
|
169
|
-
}) }, rowIndex);
|
|
170
|
-
}) }) });
|
|
171
|
-
}
|
|
172
|
-
);
|
|
173
|
-
Descriptions.displayName = "Descriptions";
|
|
174
|
-
var descriptions_default = Descriptions;
|
|
175
|
-
|
|
176
|
-
export { descriptions_default };
|
|
177
|
-
//# sourceMappingURL=chunk-GH3CNX5N.js.map
|
|
178
|
-
//# sourceMappingURL=chunk-GH3CNX5N.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/descriptions/index.tsx"],"names":[],"mappings":";;;;;AAMA,IAAM,aAAA,GAAgB,IAAI,yCAAA,EAA2C;AAAA,EACnE,QAAA,EAAU;AAAA,IACR,QAAA,EAAU;AAAA,MACR,IAAA,EAAM,sBAAA;AAAA,MACN,KAAA,EAAO;AAAA,KACT;AAAA,IACA,OAAA,EAAS;AAAA,MACP,IAAA,EAAM,YAAA;AAAA,MACN,KAAA,EAAO;AAAA;AACT,GACF;AAAA,EACA,gBAAA,EAAkB;AAAA,IAChB,EAAE,QAAA,EAAU,IAAA,EAAM,OAAA,EAAS,IAAA,EAAM,OAAO,iBAAA;AAAkB,GAC5D;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,QAAA,EAAU,IAAA;AAAA,IACV,OAAA,EAAS;AAAA;AAEb,CAAC,CAAA;AAED,IAAM,iBAAA,GAAoB,GAAA;AAAA,EACxB,iEAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,uBAAA;AAAA,QACJ,EAAA,EAAI,mBAAA;AAAA,QACJ,EAAA,EAAI,mBAAA;AAAA,QACJ,EAAA,EAAI;AAAA,OACN;AAAA,MACA,KAAA,EAAO;AAAA,QACL,OAAA,EAAS,YAAA;AAAA,QACT,OAAA,EAAS,eAAA;AAAA,QACT,SAAA,EAAW,iBAAA;AAAA,QACX,MAAA,EAAQ,cAAA;AAAA,QACR,OAAA,EAAS,eAAA;AAAA,QACT,KAAA,EAAO,aAAA;AAAA,QACP,OAAA,EAAS,eAAA;AAAA,QACT,IAAA,EAAM;AAAA;AACR,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM,IAAA;AAAA,MACN,KAAA,EAAO;AAAA;AACT;AAEJ,CAAA;AAEA,IAAM,iBAAA,GAAoB,GAAA;AAAA,EACxB,iEAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,uBAAA;AAAA,QACJ,EAAA,EAAI,mBAAA;AAAA,QACJ,EAAA,EAAI,mBAAA;AAAA,QACJ,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM;AAAA;AACR;AAEJ,CAAA;AAEA,IAAM,eAAe,KAAA,CAAM,IAAA;AAAA,EACzB,CAAC;AAAA,IACC,KAAA;AAAA,IACA,MAAA,GAAS,CAAA;AAAA,IACT,KAAA,GAAQ,SAAA;AAAA,IACR,IAAA,GAAO,IAAA;AAAA,IACP,MAAA,GAAS,YAAA;AAAA,IACT,QAAA,GAAW,IAAA;AAAA,IACX,OAAA,GAAU,IAAA;AAAA,IACV;AAAA,GACF,KAAM;AAEJ,IAAA,MAAM,OAA6B,EAAC;AACpC,IAAA,IAAI,aAAiC,EAAC;AACtC,IAAA,IAAI,WAAA,GAAc,CAAA;AAElB,IAAA,KAAA,CAAM,OAAA,CAAQ,CAAC,IAAA,KAAS;AACtB,MAAA,MAAM,QAAA,GAAW,KAAK,IAAA,IAAQ,CAAA;AAE9B,MAAA,IAAI,WAAA,GAAc,WAAW,MAAA,EAAQ;AACnC,QAAA,IAAA,CAAK,KAAK,UAAU,CAAA;AACpB,QAAA,UAAA,GAAa,CAAC,IAAI,CAAA;AAClB,QAAA,WAAA,GAAc,QAAA;AAAA,MAChB,CAAA,MAAO;AACL,QAAA,UAAA,CAAW,KAAK,IAAI,CAAA;AACpB,QAAA,WAAA,IAAe,QAAA;AAAA,MACjB;AAAA,IACF,CAAC,CAAA;AAED,IAAA,IAAI,UAAA,CAAW,SAAS,CAAA,EAAG;AACzB,MAAA,IAAA,CAAK,KAAK,UAAU,CAAA;AAAA,IACtB;AAEA,IAAA,IAAI,WAAW,UAAA,EAAY;AACzB,MAAA,2BACG,OAAA,EAAA,EAAM,SAAA,EAAW,GAAG,aAAA,CAAc,EAAE,UAAU,OAAA,EAAS,CAAA,EAAG,SAAS,GAClE,QAAA,kBAAA,GAAA,CAAC,OAAA,EAAA,EACE,eAAK,GAAA,CAAI,CAAC,KAAK,QAAA,KAAa;AAC3B,QAAA,MAAM,SAAA,GAAY,QAAA,KAAa,IAAA,CAAK,MAAA,GAAS,CAAA;AAG7C,QAAA,IAAI,WAAA,GAAc,CAAA;AAClB,QAAA,MAAM,gBAAA,GAAmB,GAAA,CAAI,GAAA,CAAI,CAAC,IAAA,KAAS;AACzC,UAAA,MAAM,IAAA,GAAO,KAAK,IAAA,IAAQ,CAAA;AAC1B,UAAA,WAAA,IAAe,IAAA;AACf,UAAA,OAAO,WAAA,IAAe,MAAA;AAAA,QACxB,CAAC,CAAA;AAED,QAAA,uBACE,IAAA,CAAC,KAAA,CAAM,QAAA,EAAN,EACC,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,IAAA,EAAA,EACE,QAAA,EAAA,GAAA,CAAI,GAAA,CAAI,CAAC,MAAM,SAAA,qBACd,GAAA;AAAA,YAAC,IAAA;AAAA,YAAA;AAAA,cAEC,OAAA,EAAS,KAAK,IAAA,IAAQ,CAAA;AAAA,cACtB,SAAA,EAAW,EAAA;AAAA,gBACT,iBAAA,CAAkB,EAAE,IAAA,EAAM,KAAA,EAAO,CAAA;AAAA,gBACjC,gBAAA,CAAiB,SAAS,CAAA,IAAK;AAAA,eACjC;AAAA,cAEC,QAAA,EAAA,IAAA,CAAK;AAAA,aAAA;AAAA,YAPD,CAAA,EAAG,KAAK,GAAG,CAAA,MAAA;AAAA,WASnB,CAAA,EACH,CAAA;AAAA,8BACC,IAAA,EAAA,EACE,QAAA,EAAA,GAAA,CAAI,GAAA,CAAI,CAAC,MAAM,SAAA,qBACd,GAAA;AAAA,YAAC,IAAA;AAAA,YAAA;AAAA,cAEC,OAAA,EAAS,KAAK,IAAA,IAAQ,CAAA;AAAA,cACtB,SAAA,EAAW,EAAA;AAAA,gBACT,iBAAA,CAAkB,EAAE,IAAA,EAAM,CAAA;AAAA,gBAC1B,gBAAA,CAAiB,SAAS,CAAA,IAAK,YAAA;AAAA,gBAC/B,SAAA,IAAa;AAAA,eACf;AAAA,cAEC,QAAA,EAAA,IAAA,CAAK;AAAA,aAAA;AAAA,YARD,CAAA,EAAG,KAAK,GAAG,CAAA,MAAA;AAAA,WAUnB,CAAA,EACH;AAAA,SAAA,EAAA,EA7BmB,QA8BrB,CAAA;AAAA,MAEJ,CAAC,GACH,CAAA,EACF,CAAA;AAAA,IAEJ;AAGA,IAAA,2BACG,OAAA,EAAA,EAAM,SAAA,EAAW,GAAG,aAAA,CAAc,EAAE,UAAU,OAAA,EAAS,CAAA,EAAG,SAAS,GAClE,QAAA,kBAAA,GAAA,CAAC,OAAA,EAAA,EACE,eAAK,GAAA,CAAI,CAAC,KAAK,QAAA,KAAa;AAC3B,MAAA,MAAM,SAAA,GAAY,QAAA,KAAa,IAAA,CAAK,MAAA,GAAS,CAAA;AAG7C,MAAA,IAAI,WAAA,GAAc,CAAA;AAClB,MAAA,MAAM,gBAAA,GAAmB,GAAA,CAAI,GAAA,CAAI,CAAC,IAAA,KAAS;AACzC,QAAA,MAAM,IAAA,GAAO,KAAK,IAAA,IAAQ,CAAA;AAC1B,QAAA,WAAA,IAAe,IAAA,GAAO,CAAA;AACtB,QAAA,OAAO,eAAe,MAAA,GAAS,CAAA;AAAA,MACjC,CAAC,CAAA;AAED,MAAA,2BACG,IAAA,EAAA,EACE,QAAA,EAAA,GAAA,CAAI,GAAA,CAAI,CAAC,MAAM,SAAA,KAAc;AAC5B,QAAA,MAAM,QAAA,GAAW,KAAK,IAAA,IAAQ,CAAA;AAC9B,QAAA,MAAM,YAAA,GAAe,WAAW,CAAA,GAAI,CAAA;AAEpC,QAAA,uBACE,IAAA,CAAC,KAAA,CAAM,QAAA,EAAN,EACC,QAAA,EAAA;AAAA,0BAAA,GAAA;AAAA,YAAC,IAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,EAAA;AAAA,gBACT,iBAAA,CAAkB,EAAE,IAAA,EAAM,KAAA,EAAO,CAAA;AAAA,gBACjC,SAAA,IAAa;AAAA,eACf;AAAA,cAEC,QAAA,EAAA,IAAA,CAAK;AAAA;AAAA,WACR;AAAA,0BACA,GAAA;AAAA,YAAC,IAAA;AAAA,YAAA;AAAA,cACC,OAAA,EAAS,YAAA;AAAA,cACT,SAAA,EAAW,EAAA;AAAA,gBACT,iBAAA,CAAkB,EAAE,IAAA,EAAM,CAAA;AAAA,gBAC1B,gBAAA,CAAiB,SAAS,CAAA,IAAK,YAAA;AAAA,gBAC/B,SAAA,IAAa;AAAA,eACf;AAAA,cAEC,QAAA,EAAA,IAAA,CAAK;AAAA;AAAA;AACR,SAAA,EAAA,EAlBmB,KAAK,GAmB1B,CAAA;AAAA,MAEJ,CAAC,KA3BM,QA4BT,CAAA;AAAA,IAEJ,CAAC,GACH,CAAA,EACF,CAAA;AAAA,EAEJ;AACF,CAAA;AAEA,YAAA,CAAa,WAAA,GAAc,cAAA;AAG3B,IAAO,oBAAA,GAAQ","file":"chunk-GH3CNX5N.js","sourcesContent":["import { cva } from 'class-variance-authority'\nimport React from 'react'\n\nimport { cn } from '../utils'\nimport type { DescriptionsItem, DescriptionsProps } from './types'\n\nconst tableVariants = cva('w-full border-separate border-spacing-0', {\n variants: {\n bordered: {\n true: 'border border-border',\n false: '',\n },\n rounded: {\n true: 'rounded-lg',\n false: '',\n },\n },\n compoundVariants: [\n { bordered: true, rounded: true, class: 'overflow-hidden' },\n ],\n defaultVariants: {\n bordered: true,\n rounded: true,\n },\n})\n\nconst labelCellVariants = cva(\n 'font-semibold text-text-primary border-b border-r border-border',\n {\n variants: {\n size: {\n xs: 'py-1 px-2 text-[10px]',\n sm: 'py-2 px-3 text-xs',\n md: 'py-3 px-4 text-sm',\n lg: 'py-4 px-5 text-base',\n },\n color: {\n default: 'bg-surface',\n primary: 'bg-primary/10',\n secondary: 'bg-secondary/10',\n accent: 'bg-accent/10',\n success: 'bg-success/10',\n error: 'bg-error/10',\n warning: 'bg-warning/10',\n info: 'bg-info/10',\n },\n },\n defaultVariants: {\n size: 'md',\n color: 'default',\n },\n },\n)\n\nconst valueCellVariants = cva(\n 'text-text-primary border-b border-r border-border bg-background',\n {\n variants: {\n size: {\n xs: 'py-1 px-2 text-[10px]',\n sm: 'py-2 px-3 text-xs',\n md: 'py-3 px-4 text-sm',\n lg: 'py-4 px-5 text-base',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n },\n)\n\nconst Descriptions = React.memo<DescriptionsProps>(\n ({\n items,\n column = 3,\n color = 'default',\n size = 'md',\n layout = 'horizontal',\n bordered = true,\n rounded = true,\n className,\n }) => {\n // Split items into rows based on column count and span\n const rows: DescriptionsItem[][] = []\n let currentRow: DescriptionsItem[] = []\n let currentSpan = 0\n\n items.forEach((item) => {\n const itemSpan = item.span || 1\n\n if (currentSpan + itemSpan > column) {\n rows.push(currentRow)\n currentRow = [item]\n currentSpan = itemSpan\n } else {\n currentRow.push(item)\n currentSpan += itemSpan\n }\n })\n\n if (currentRow.length > 0) {\n rows.push(currentRow)\n }\n\n if (layout === 'vertical') {\n return (\n <table className={cn(tableVariants({ bordered, rounded }), className)}>\n <tbody>\n {rows.map((row, rowIndex) => {\n const isLastRow = rowIndex === rows.length - 1\n\n // Calculate which items reach the right edge\n let colPosition = 0\n const itemsAtRightEdge = row.map((item) => {\n const span = item.span || 1\n colPosition += span\n return colPosition >= column\n })\n\n return (\n <React.Fragment key={rowIndex}>\n <tr>\n {row.map((item, itemIndex) => (\n <th\n key={`${item.key}-label`}\n colSpan={item.span || 1}\n className={cn(\n labelCellVariants({ size, color }),\n itemsAtRightEdge[itemIndex] && 'border-r-0',\n )}\n >\n {item.label}\n </th>\n ))}\n </tr>\n <tr>\n {row.map((item, itemIndex) => (\n <td\n key={`${item.key}-value`}\n colSpan={item.span || 1}\n className={cn(\n valueCellVariants({ size }),\n itemsAtRightEdge[itemIndex] && 'border-r-0',\n isLastRow && 'border-b-0',\n )}\n >\n {item.children}\n </td>\n ))}\n </tr>\n </React.Fragment>\n )\n })}\n </tbody>\n </table>\n )\n }\n\n // Horizontal layout\n return (\n <table className={cn(tableVariants({ bordered, rounded }), className)}>\n <tbody>\n {rows.map((row, rowIndex) => {\n const isLastRow = rowIndex === rows.length - 1\n\n // Calculate which value cells reach the right edge\n let colPosition = 0\n const valueAtRightEdge = row.map((item) => {\n const span = item.span || 1\n colPosition += span * 2 // Each item takes label + value columns\n return colPosition >= column * 2\n })\n\n return (\n <tr key={rowIndex}>\n {row.map((item, itemIndex) => {\n const itemSpan = item.span || 1\n const valueColSpan = itemSpan * 2 - 1\n\n return (\n <React.Fragment key={item.key}>\n <th\n className={cn(\n labelCellVariants({ size, color }),\n isLastRow && 'border-b-0',\n )}\n >\n {item.label}\n </th>\n <td\n colSpan={valueColSpan}\n className={cn(\n valueCellVariants({ size }),\n valueAtRightEdge[itemIndex] && 'border-r-0',\n isLastRow && 'border-b-0',\n )}\n >\n {item.children}\n </td>\n </React.Fragment>\n )\n })}\n </tr>\n )\n })}\n </tbody>\n </table>\n )\n },\n)\n\nDescriptions.displayName = 'Descriptions'\n\nexport type * from './types'\nexport default Descriptions\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/transfer/utils.ts","../src/transfer/index.tsx"],"names":[],"mappings":"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","file":"chunk-HBEJ4S2Y.js","sourcesContent":["import { cva } from 'class-variance-authority'\n\nexport const transferHeaderVariants = cva(\n 'flex items-center justify-between px-4 py-2 border-b border-border bg-surface',\n)\n\nexport const transferBodyVariants = cva('overflow-y-auto')\n\nexport const transferItemVariants = cva(\n 'flex items-center gap-2 px-4 py-2 cursor-pointer transition-colors hover:bg-surface',\n {\n variants: {\n selected: {\n true: 'bg-primary/10',\n false: '',\n },\n disabled: {\n true: 'opacity-50 cursor-not-allowed hover:bg-transparent',\n false: '',\n },\n },\n defaultVariants: {\n selected: false,\n disabled: false,\n },\n },\n)\n\nexport const transferButtonVariants = cva('flex flex-col gap-2')\n\nexport const transferActionButtonVariants = cva(\n 'flex items-center justify-center p-2 rounded-md border border-border bg-background text-text-secondary hover:bg-primary hover:text-white hover:border-primary transition-colors disabled:opacity-50 disabled:cursor-not-allowed disabled:hover:bg-background disabled:hover:text-text-secondary disabled:hover:border-border',\n)\n\nexport const filterItems = (items: any[], searchValue: string): any[] => {\n if (!searchValue) return items\n\n const lowerSearch = searchValue.toLowerCase()\n return items.filter(\n (item) =>\n item.label.toLowerCase().includes(lowerSearch) ||\n item.description?.toLowerCase().includes(lowerSearch),\n )\n}\n\nexport const getItemsByKeys = (items: any[], keys: string[]): any[] => {\n return items.filter((item) => keys.includes(item.key))\n}\n\nexport const getEnabledItems = (items: any[]): any[] => {\n return items.filter((item) => !item.disabled)\n}\n","import {\n ChevronLeft,\n ChevronRight,\n ChevronsLeft,\n ChevronsRight,\n Search,\n} from 'lucide-react'\nimport React from 'react'\n\nimport Checkbox from '../checkbox'\nimport {\n cn,\n getValidationStatus,\n iconSizes,\n statusMessageVariants,\n} from '../utils'\nimport type { TransferItem, TransferListProps, TransferProps } from './types'\nimport {\n filterItems,\n getEnabledItems,\n getItemsByKeys,\n transferActionButtonVariants,\n transferBodyVariants,\n transferButtonVariants,\n transferHeaderVariants,\n transferItemVariants,\n} from './utils'\n\nconst TransferList = React.memo<TransferListProps>(\n ({\n title,\n dataSource,\n selectedKeys,\n disabled = false,\n showSearch = false,\n searchPlaceholder = 'Search...',\n listHeight = 300,\n showSelectAll = true,\n onItemSelect,\n onItemSelectAll,\n onSearch,\n render,\n footer,\n }) => {\n const [searchValue, setSearchValue] = React.useState('')\n\n const filteredData = React.useMemo(\n () => filterItems(dataSource, searchValue),\n [dataSource, searchValue],\n )\n\n const enabledItems = React.useMemo(\n () => getEnabledItems(filteredData),\n [filteredData],\n )\n\n const selectedCount = React.useMemo(\n () =>\n filteredData.filter((item) => selectedKeys.includes(item.key)).length,\n [filteredData, selectedKeys],\n )\n\n const allChecked =\n enabledItems.length > 0 && selectedCount === enabledItems.length\n const indeterminate =\n selectedCount > 0 && selectedCount < enabledItems.length\n\n const handleSearchChange = React.useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const value = e.target.value\n setSearchValue(value)\n onSearch?.(value)\n },\n [onSearch],\n )\n\n const handleSelectAll = React.useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const checked = e.target.checked\n const keys = enabledItems.map((item) => item.key)\n onItemSelectAll(keys, checked)\n },\n [enabledItems, onItemSelectAll],\n )\n\n const handleItemSelect = React.useCallback(\n (item: TransferItem) => {\n if (item.disabled) return\n const checked = !selectedKeys.includes(item.key)\n onItemSelect(item.key, checked)\n },\n [selectedKeys, onItemSelect],\n )\n\n return (\n <div className=\"flex flex-col border border-border rounded-lg bg-card overflow-hidden min-w-72\">\n {/* Header */}\n <div className={transferHeaderVariants()}>\n <div className=\"flex items-center gap-2 flex-1\">\n {showSelectAll && (\n <Checkbox\n checked={allChecked}\n indeterminate={indeterminate}\n onChange={handleSelectAll}\n disabled={disabled || enabledItems.length === 0}\n size=\"sm\"\n />\n )}\n <span className=\"text-sm font-medium text-text-primary\">\n {title}\n <span className=\"text-text-secondary ml-1\">\n ({selectedCount}/{filteredData.length})\n </span>\n </span>\n </div>\n </div>\n\n {/* Search */}\n {showSearch && (\n <div className=\"p-2 border-b border-border\">\n <div className=\"relative\">\n <Search className=\"absolute left-2 top-1/2 -translate-y-1/2 w-4 h-4 text-text-secondary\" />\n <input\n type=\"text\"\n className=\"w-full pl-8 pr-3 py-1.5 text-sm bg-background border border-border rounded-md outline-none focus:border-primary transition-colors\"\n placeholder={searchPlaceholder}\n value={searchValue}\n onChange={handleSearchChange}\n disabled={disabled}\n />\n </div>\n </div>\n )}\n\n {/* Body */}\n <div\n className={transferBodyVariants()}\n style={{ height: listHeight }}\n >\n {filteredData.length === 0 ? (\n <div className=\"flex items-center justify-center h-full text-sm text-text-secondary\">\n No data\n </div>\n ) : (\n filteredData.map((item) => (\n <div\n key={item.key}\n className={cn(\n transferItemVariants({\n selected: selectedKeys.includes(item.key),\n disabled: !!item.disabled || disabled,\n }),\n )}\n onClick={() => handleItemSelect(item)}\n >\n <Checkbox\n checked={selectedKeys.includes(item.key)}\n disabled={!!item.disabled || disabled}\n size=\"sm\"\n onChange={() => {}} // Handled by parent click\n />\n {render ? (\n render(item)\n ) : (\n <div className=\"flex-1 min-w-0\">\n <div className=\"text-sm text-text-primary truncate\">\n {item.label}\n </div>\n {item.description && (\n <div className=\"text-xs text-text-secondary truncate\">\n {item.description}\n </div>\n )}\n </div>\n )}\n </div>\n ))\n )}\n </div>\n\n {/* Footer */}\n {footer && (\n <div className=\"px-4 py-2 border-t border-border bg-surface text-sm text-text-secondary\">\n {footer}\n </div>\n )}\n </div>\n )\n },\n)\n\nTransferList.displayName = 'TransferList'\n\nexport const Transfer = React.memo<TransferProps>(\n ({\n dataSource = [],\n targetKeys,\n defaultTargetKeys = [],\n titles = ['Source', 'Target'],\n size = 'md',\n showSearch = false,\n searchPlaceholder = 'Search...',\n listHeight = 300,\n showSelectAll = true,\n oneWay = false,\n disabled = false,\n render,\n footer,\n onChange,\n onSelectChange,\n onSearch,\n label,\n helperText,\n error,\n warning,\n info,\n success,\n className,\n ref,\n }) => {\n const [internalTargetKeys, setInternalTargetKeys] =\n React.useState<string[]>(defaultTargetKeys)\n const [leftSelectedKeys, setLeftSelectedKeys] = React.useState<string[]>([])\n const [rightSelectedKeys, setRightSelectedKeys] = React.useState<string[]>(\n [],\n )\n\n const currentTargetKeys =\n targetKeys !== undefined ? targetKeys : internalTargetKeys\n\n const { status, message: helperMessage } = getValidationStatus({\n error,\n warning,\n info,\n success,\n helperText,\n })\n\n // Split data into source and target\n const leftDataSource = React.useMemo(\n () => dataSource.filter((item) => !currentTargetKeys.includes(item.key)),\n [dataSource, currentTargetKeys],\n )\n\n const rightDataSource = React.useMemo(\n () => getItemsByKeys(dataSource, currentTargetKeys),\n [dataSource, currentTargetKeys],\n )\n\n const handleLeftItemSelect = React.useCallback(\n (key: string, checked: boolean) => {\n const newKeys = checked\n ? [...leftSelectedKeys, key]\n : leftSelectedKeys.filter((k) => k !== key)\n setLeftSelectedKeys(newKeys)\n onSelectChange?.(newKeys, rightSelectedKeys)\n },\n [leftSelectedKeys, rightSelectedKeys, onSelectChange],\n )\n\n const handleRightItemSelect = React.useCallback(\n (key: string, checked: boolean) => {\n const newKeys = checked\n ? [...rightSelectedKeys, key]\n : rightSelectedKeys.filter((k) => k !== key)\n setRightSelectedKeys(newKeys)\n onSelectChange?.(leftSelectedKeys, newKeys)\n },\n [leftSelectedKeys, rightSelectedKeys, onSelectChange],\n )\n\n const handleLeftSelectAll = React.useCallback(\n (keys: string[], checked: boolean) => {\n const newKeys = checked ? keys : []\n setLeftSelectedKeys(newKeys)\n onSelectChange?.(newKeys, rightSelectedKeys)\n },\n [rightSelectedKeys, onSelectChange],\n )\n\n const handleRightSelectAll = React.useCallback(\n (keys: string[], checked: boolean) => {\n const newKeys = checked ? keys : []\n setRightSelectedKeys(newKeys)\n onSelectChange?.(leftSelectedKeys, newKeys)\n },\n [leftSelectedKeys, onSelectChange],\n )\n\n const moveToRight = React.useCallback(() => {\n const newTargetKeys = [...currentTargetKeys, ...leftSelectedKeys]\n\n if (targetKeys === undefined) {\n setInternalTargetKeys(newTargetKeys)\n }\n\n onChange?.(newTargetKeys, 'right', leftSelectedKeys)\n setLeftSelectedKeys([])\n }, [currentTargetKeys, leftSelectedKeys, targetKeys, onChange])\n\n const moveToLeft = React.useCallback(() => {\n const newTargetKeys = currentTargetKeys.filter(\n (key) => !rightSelectedKeys.includes(key),\n )\n\n if (targetKeys === undefined) {\n setInternalTargetKeys(newTargetKeys)\n }\n\n onChange?.(newTargetKeys, 'left', rightSelectedKeys)\n setRightSelectedKeys([])\n }, [currentTargetKeys, rightSelectedKeys, targetKeys, onChange])\n\n const moveAllToRight = React.useCallback(() => {\n const enabledLeftItems = getEnabledItems(leftDataSource)\n const keysToMove = enabledLeftItems.map((item) => item.key)\n const newTargetKeys = [...currentTargetKeys, ...keysToMove]\n\n if (targetKeys === undefined) {\n setInternalTargetKeys(newTargetKeys)\n }\n\n onChange?.(newTargetKeys, 'right', keysToMove)\n setLeftSelectedKeys([])\n }, [leftDataSource, currentTargetKeys, targetKeys, onChange])\n\n const moveAllToLeft = React.useCallback(() => {\n const enabledRightItems = getEnabledItems(rightDataSource)\n const keysToMove = enabledRightItems.map((item) => item.key)\n const newTargetKeys = currentTargetKeys.filter(\n (key) => !keysToMove.includes(key),\n )\n\n if (targetKeys === undefined) {\n setInternalTargetKeys(newTargetKeys)\n }\n\n onChange?.(newTargetKeys, 'left', keysToMove)\n setRightSelectedKeys([])\n }, [rightDataSource, currentTargetKeys, targetKeys, onChange])\n\n const leftFooter = footer?.({ direction: 'left' })\n const rightFooter = footer?.({ direction: 'right' })\n\n return (\n <div ref={ref}>\n {label && (\n <label className=\"block mb-2\">\n <span className=\"text-sm font-medium text-text-secondary\">{label}</span>\n </label>\n )}\n\n <div className={cn('flex items-center gap-4', className)}>\n {/* Left List */}\n <TransferList\n title={titles[0]}\n dataSource={leftDataSource}\n selectedKeys={leftSelectedKeys}\n disabled={disabled}\n showSearch={showSearch}\n searchPlaceholder={searchPlaceholder}\n listHeight={listHeight}\n showSelectAll={showSelectAll}\n direction=\"left\"\n onItemSelect={handleLeftItemSelect}\n onItemSelectAll={handleLeftSelectAll}\n onSearch={(value) => onSearch?.('left', value)}\n render={render}\n footer={leftFooter}\n size={size}\n />\n\n {/* Action Buttons */}\n <div className={transferButtonVariants()}>\n <button\n type=\"button\"\n className={transferActionButtonVariants()}\n onClick={moveToRight}\n disabled={disabled || leftSelectedKeys.length === 0}\n title=\"Move selected to right\"\n >\n <ChevronRight className={iconSizes[size]} />\n </button>\n {!oneWay && (\n <button\n type=\"button\"\n className={transferActionButtonVariants()}\n onClick={moveToLeft}\n disabled={disabled || rightSelectedKeys.length === 0}\n title=\"Move selected to left\"\n >\n <ChevronLeft className={iconSizes[size]} />\n </button>\n )}\n <button\n type=\"button\"\n className={transferActionButtonVariants()}\n onClick={moveAllToRight}\n disabled={disabled || leftDataSource.length === 0}\n title=\"Move all to right\"\n >\n <ChevronsRight className={iconSizes[size]} />\n </button>\n {!oneWay && (\n <button\n type=\"button\"\n className={transferActionButtonVariants()}\n onClick={moveAllToLeft}\n disabled={disabled || rightDataSource.length === 0}\n title=\"Move all to left\"\n >\n <ChevronsLeft className={iconSizes[size]} />\n </button>\n )}\n </div>\n\n {/* Right List */}\n <TransferList\n title={titles[1]}\n dataSource={rightDataSource}\n selectedKeys={rightSelectedKeys}\n disabled={disabled}\n showSearch={showSearch}\n searchPlaceholder={searchPlaceholder}\n listHeight={listHeight}\n showSelectAll={showSelectAll}\n direction=\"right\"\n onItemSelect={handleRightItemSelect}\n onItemSelectAll={handleRightSelectAll}\n onSearch={(value) => onSearch?.('right', value)}\n render={render}\n footer={rightFooter}\n size={size}\n />\n </div>\n\n {helperMessage && (\n <p className={cn(statusMessageVariants({ status }), 'mt-1')}>\n {helperMessage}\n </p>\n )}\n </div>\n )\n },\n)\n\nTransfer.displayName = 'Transfer'\n\nexport type * from './types'\nexport type * from './types'\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/tree/index.tsx"],"names":[],"mappings":";;;;;;AAOA,IAAM,gBAAA,GAAmB,GAAA;AAAA,EACvB,sGAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,SAAA;AAAA,QACJ,EAAA,EAAI,SAAA;AAAA,QACJ,EAAA,EAAI,WAAA;AAAA,QACJ,EAAA,EAAI;AAAA,OACN;AAAA,MACA,QAAA,EAAU;AAAA,QACR,IAAA,EAAM,+BAAA;AAAA,QACN,KAAA,EAAO;AAAA,OACT;AAAA,MACA,QAAA,EAAU;AAAA,QACR,IAAA,EAAM,4BAAA;AAAA,QACN,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM,IAAA;AAAA,MACN,QAAA,EAAU,KAAA;AAAA,MACV,QAAA,EAAU;AAAA;AACZ;AAEJ,CAAA;AAEA,IAAM,SAAA,GAAY;AAAA,EAChB,EAAA,EAAI,SAAA;AAAA,EACJ,EAAA,EAAI,aAAA;AAAA,EACJ,EAAA,EAAI,SAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAEA,IAAM,OAAO,KAAA,CAAM,IAAA;AAAA,EACjB,CAAC;AAAA,IACC,IAAA;AAAA,IACA,sBAAsB,EAAC;AAAA,IACvB,YAAA;AAAA,IACA,QAAA;AAAA,IACA,SAAA,GAAY,KAAA;AAAA,IACZ,WAAA;AAAA,IACA,qBAAqB,EAAC;AAAA,IACtB,OAAA;AAAA,IACA,UAAA,GAAa,IAAA;AAAA,IACb,YAAA;AAAA,IACA,sBAAsB,EAAC;AAAA,IACvB,QAAA;AAAA,IACA,QAAA,GAAW,KAAA;AAAA,IACX,IAAA,GAAO,IAAA;AAAA,IACP,QAAA,GAAW,KAAA;AAAA,IACX,QAAA,GAAW,IAAA;AAAA,IACX,gBAAA,GAAmB,KAAA;AAAA,IACnB;AAAA,GACF,KAAM;AACJ,IAAA,MAAM,CAAC,oBAAA,EAAsB,uBAAuB,CAAA,GAAI,KAAA,CAAM,SAE5D,gBAAA,GAAmB,UAAA,CAAW,IAAI,CAAA,GAAI,mBAAmB,CAAA;AAC3D,IAAA,MAAM,CAAC,mBAAA,EAAqB,sBAAsB,CAAA,GAChD,KAAA,CAAM,SAAmB,kBAAkB,CAAA;AAC7C,IAAA,MAAM,CAAC,oBAAA,EAAsB,uBAAuB,CAAA,GAClD,KAAA,CAAM,SAAmB,mBAAmB,CAAA;AAE9C,IAAA,MAAM,mBAAA,GACJ,YAAA,KAAiB,MAAA,GAAY,YAAA,GAAe,oBAAA;AAC9C,IAAA,MAAM,kBAAA,GACJ,WAAA,KAAgB,MAAA,GAAY,WAAA,GAAc,mBAAA;AAC5C,IAAA,MAAM,mBAAA,GACJ,YAAA,KAAiB,MAAA,GAAY,YAAA,GAAe,oBAAA;AAE9C,IAAA,SAAS,WAAW,KAAA,EAA6B;AAC/C,MAAA,MAAM,OAAiB,EAAC;AACxB,MAAA,MAAM,QAAA,GAAW,CAAC,KAAA,KAAsB;AACtC,QAAA,KAAA,CAAM,OAAA,CAAQ,CAAC,IAAA,KAAS;AACtB,UAAA,IAAA,CAAK,IAAA,CAAK,KAAK,GAAG,CAAA;AAClB,UAAA,IAAI,KAAK,QAAA,EAAU;AACjB,YAAA,QAAA,CAAS,KAAK,QAAQ,CAAA;AAAA,UACxB;AAAA,QACF,CAAC,CAAA;AAAA,MACH,CAAA;AACA,MAAA,QAAA,CAAS,KAAK,CAAA;AACd,MAAA,OAAO,IAAA;AAAA,IACT;AAEA,IAAA,MAAM,cAAA,GAAiB,KAAA,CAAM,WAAA,CAAY,CAAC,IAAA,KAA6B;AACrE,MAAA,MAAM,OAAiB,EAAC;AAExB,MAAA,MAAM,QAAA,GAAW,CAAC,CAAA,KAAgB;AAChC,QAAA,IAAI,CAAC,EAAE,QAAA,IAAY,CAAA,CAAE,SAAS,MAAA,KAAW,CAAA,IAAK,EAAE,MAAA,EAAQ;AACtD,UAAA,IAAA,CAAK,IAAA,CAAK,EAAE,GAAG,CAAA;AAAA,QACjB,CAAA,MAAO;AACL,UAAA,CAAA,CAAE,SAAS,OAAA,CAAQ,CAAC,KAAA,KAAU,QAAA,CAAS,KAAK,CAAC,CAAA;AAAA,QAC/C;AAAA,MACF,CAAA;AAEA,MAAA,QAAA,CAAS,IAAI,CAAA;AACb,MAAA,OAAO,IAAA;AAAA,IACT,CAAA,EAAG,EAAE,CAAA;AAEL,IAAA,MAAM,eAAe,KAAA,CAAM,WAAA;AAAA,MACzB,CAAC,GAAA,KAAiC;AAChC,QAAA,MAAM,QAAA,GAAW,CAAC,KAAA,KAAuC;AACvD,UAAA,KAAA,MAAW,QAAQ,KAAA,EAAO;AACxB,YAAA,IAAI,IAAA,CAAK,GAAA,KAAQ,GAAA,EAAK,OAAO,IAAA;AAC7B,YAAA,IAAI,KAAK,QAAA,EAAU;AACjB,cAAA,MAAM,KAAA,GAAQ,QAAA,CAAS,IAAA,CAAK,QAAQ,CAAA;AACpC,cAAA,IAAI,OAAO,OAAO,KAAA;AAAA,YACpB;AAAA,UACF;AACA,UAAA,OAAO,IAAA;AAAA,QACT,CAAA;AACA,QAAA,OAAO,SAAS,IAAI,CAAA;AAAA,MACtB,CAAA;AAAA,MACA,CAAC,IAAI;AAAA,KACP;AAEA,IAAA,MAAM,kBAAkB,KAAA,CAAM,WAAA;AAAA,MAC5B,CAAC,IAAA,KAA+B;AAC9B,QAAA,OAAO,IAAA,CACJ,GAAA,CAAI,CAAC,GAAA,KAAQ,YAAA,CAAa,GAAG,CAAC,CAAA,CAC9B,MAAA,CAAO,CAAC,IAAA,KAA2B,IAAA,KAAS,IAAI,CAAA;AAAA,MACrD,CAAA;AAAA,MACA,CAAC,YAAY;AAAA,KACf;AAEA,IAAA,MAAM,gBAAgB,KAAA,CAAM,WAAA;AAAA,MAC1B,CAAC,IAAA,KAAiE;AAChE,QAAA,IAAI,CAAC,KAAK,QAAA,IAAY,IAAA,CAAK,SAAS,MAAA,KAAW,CAAA,IAAK,KAAK,MAAA,EAAQ;AAC/D,UAAA,OAAO;AAAA,YACL,OAAA,EAAS,kBAAA,CAAmB,QAAA,CAAS,IAAA,CAAK,GAAG,CAAA;AAAA,YAC7C,aAAA,EAAe;AAAA,WACjB;AAAA,QACF;AAEA,QAAA,MAAM,QAAA,GAAW,eAAe,IAAI,CAAA;AACpC,QAAA,MAAM,eAAe,QAAA,CAAS,MAAA;AAAA,UAAO,CAAC,GAAA,KACpC,kBAAA,CAAmB,QAAA,CAAS,GAAG;AAAA,SACjC,CAAE,MAAA;AAEF,QAAA,OAAO;AAAA,UACL,OAAA,EAAS,YAAA,KAAiB,QAAA,CAAS,MAAA,IAAU,SAAS,MAAA,GAAS,CAAA;AAAA,UAC/D,aAAA,EAAe,YAAA,GAAe,CAAA,IAAK,YAAA,GAAe,QAAA,CAAS;AAAA,SAC7D;AAAA,MACF,CAAA;AAAA,MACA,CAAC,oBAAoB,cAAc;AAAA,KACrC;AAEA,IAAA,MAAM,eAAe,KAAA,CAAM,WAAA;AAAA,MACzB,CAAC,GAAA,KAAgB;AACf,QAAA,MAAM,eAAA,GAAkB,mBAAA,CAAoB,QAAA,CAAS,GAAG,IACpD,mBAAA,CAAoB,MAAA,CAAO,CAAC,CAAA,KAAM,MAAM,GAAG,CAAA,GAC3C,CAAC,GAAG,qBAAqB,GAAG,CAAA;AAEhC,QAAA,IAAI,iBAAiB,MAAA,EAAW;AAC9B,UAAA,uBAAA,CAAwB,eAAe,CAAA;AAAA,QACzC;AACA,QAAA,QAAA,GAAW,eAAe,CAAA;AAAA,MAC5B,CAAA;AAAA,MACA,CAAC,mBAAA,EAAqB,YAAA,EAAc,QAAQ;AAAA,KAC9C;AAEA,IAAA,MAAM,cAAc,KAAA,CAAM,WAAA;AAAA,MACxB,CAAC,MAAgB,OAAA,KAAqB;AACpC,QAAA,IAAI,QAAA,IAAY,KAAK,QAAA,EAAU;AAE/B,QAAA,MAAM,QAAA,GAAW,eAAe,IAAI,CAAA;AACpC,QAAA,IAAI,cAAA;AAEJ,QAAA,IAAI,OAAA,EAAS;AAEX,UAAA,MAAM,YAAY,QAAA,CAAS,MAAA;AAAA,YACzB,CAAC,GAAA,KAAQ,CAAC,kBAAA,CAAmB,SAAS,GAAG;AAAA,WAC3C;AACA,UAAA,cAAA,GAAiB,CAAC,GAAG,kBAAA,EAAoB,GAAG,SAAS,CAAA;AAAA,QACvD,CAAA,MAAO;AAEL,UAAA,cAAA,GAAiB,kBAAA,CAAmB,MAAA;AAAA,YAClC,CAAC,GAAA,KAAQ,CAAC,QAAA,CAAS,SAAS,GAAG;AAAA,WACjC;AAAA,QACF;AAEA,QAAA,IAAI,gBAAgB,MAAA,EAAW;AAC7B,UAAA,sBAAA,CAAuB,cAAc,CAAA;AAAA,QACvC;AAEA,QAAA,MAAM,YAAA,GAAe,gBAAgB,cAAc,CAAA;AACnD,QAAA,OAAA,GAAU,cAAA,EAAgB;AAAA,UACxB,OAAA;AAAA,UACA,IAAA;AAAA,UACA;AAAA,SACD,CAAA;AAAA,MACH,CAAA;AAAA,MACA;AAAA,QACE,QAAA;AAAA,QACA,cAAA;AAAA,QACA,kBAAA;AAAA,QACA,WAAA;AAAA,QACA,OAAA;AAAA,QACA;AAAA;AACF,KACF;AAEA,IAAA,MAAM,eAAe,KAAA,CAAM,WAAA;AAAA,MACzB,CAAC,IAAA,KAAmB;AAClB,QAAA,IAAI,QAAA,IAAY,IAAA,CAAK,QAAA,IAAY,CAAC,UAAA,EAAY;AAE9C,QAAA,MAAM,UAAA,GAAa,mBAAA,CAAoB,QAAA,CAAS,IAAA,CAAK,GAAG,CAAA;AACxD,QAAA,MAAM,eAAA,GAAkB,UAAA,GACpB,mBAAA,CAAoB,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,KAAM,IAAA,CAAK,GAAG,CAAA,GAChD,CAAC,GAAG,mBAAA,EAAqB,KAAK,GAAG,CAAA;AAErC,QAAA,IAAI,iBAAiB,MAAA,EAAW;AAC9B,UAAA,uBAAA,CAAwB,eAAe,CAAA;AAAA,QACzC;AAEA,QAAA,QAAA,GAAW,eAAA,EAAiB;AAAA,UAC1B,UAAU,CAAC,UAAA;AAAA,UACX;AAAA,SACD,CAAA;AAAA,MACH,CAAA;AAAA,MACA,CAAC,QAAA,EAAU,UAAA,EAAY,mBAAA,EAAqB,cAAc,QAAQ;AAAA,KACpE;AAEA,IAAA,MAAM,cAAc,KAAA,CAAM,WAAA;AAAA,MACxB,CACE,KAAA,EACA,KAAA,GAAgB,CAAA,KAC6B;AAC7C,QAAA,MAAM,SAAmD,EAAC;AAE1D,QAAA,KAAA,CAAM,OAAA,CAAQ,CAAC,IAAA,KAAS;AACtB,UAAA,MAAA,CAAO,IAAA,CAAK,EAAE,IAAA,EAAM,KAAA,EAAO,CAAA;AAE3B,UAAA,MAAM,WAAA,GACJ,KAAK,QAAA,IAAY,IAAA,CAAK,SAAS,MAAA,GAAS,CAAA,IAAK,CAAC,IAAA,CAAK,MAAA;AACrD,UAAA,MAAM,UAAA,GAAa,mBAAA,CAAoB,QAAA,CAAS,IAAA,CAAK,GAAG,CAAA;AAExD,UAAA,IAAI,eAAe,UAAA,EAAY;AAC7B,YAAA,MAAA,CAAO,KAAK,GAAG,WAAA,CAAY,KAAK,QAAA,EAAW,KAAA,GAAQ,CAAC,CAAC,CAAA;AAAA,UACvD;AAAA,QACF,CAAC,CAAA;AAED,QAAA,OAAO,MAAA;AAAA,MACT,CAAA;AAAA,MACA,CAAC,mBAAmB;AAAA,KACtB;AAEA,IAAA,MAAM,YAAY,KAAA,CAAM,OAAA;AAAA,MACtB,MAAM,YAAY,IAAI,CAAA;AAAA,MACtB,CAAC,MAAM,WAAW;AAAA,KACpB;AAEA,IAAA,MAAM,aAAa,KAAA,CAAM,WAAA;AAAA,MACvB,CACE,MACA,KAAA,KACoB;AACpB,QAAA,MAAM,EAAE,IAAA,EAAM,KAAA,EAAM,GAAI,IAAA;AACxB,QAAA,MAAM,WAAA,GACJ,KAAK,QAAA,IAAY,IAAA,CAAK,SAAS,MAAA,GAAS,CAAA,IAAK,CAAC,IAAA,CAAK,MAAA;AACrD,QAAA,MAAM,UAAA,GAAa,mBAAA,CAAoB,QAAA,CAAS,IAAA,CAAK,GAAG,CAAA;AACxD,QAAA,MAAM,UAAA,GAAa,mBAAA,CAAoB,QAAA,CAAS,IAAA,CAAK,GAAG,CAAA;AACxD,QAAA,MAAM,UAAA,GAAa,SAAA,GAAY,aAAA,CAAc,IAAI,CAAA,GAAI,IAAA;AAErD,QAAA,uBACE,GAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YAEC,SAAA,EAAU,8DAAA;AAAA,YAEV,QAAA,kBAAA,IAAA;AAAA,cAAC,KAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAW,EAAA;AAAA,kBACT,gBAAA,CAAiB;AAAA,oBACf,IAAA;AAAA,oBACA,QAAA,EAAU,CAAC,CAAC,IAAA,CAAK,QAAA;AAAA,oBACjB,QAAA,EAAU;AAAA,mBACX,CAAA;AAAA,kBACD;AAAA,iBACF;AAAA,gBAGC,QAAA,EAAA;AAAA,kBAAA,KAAA,CAAM,IAAA,CAAK,EAAE,MAAA,EAAQ,KAAA,EAAO,CAAA,CAAE,GAAA,CAAI,CAAC,CAAA,EAAG,CAAA,KAAM;AAE3C,oBAAA,MAAM,cAAA,GACJ,QAAA,IACA,SAAA,CAAU,KAAA,CAAM,KAAA,GAAQ,CAAC,CAAA,CAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,KAAA,KAAU,CAAC,CAAA;AAEtD,oBAAA,uBACE,GAAA;AAAA,sBAAC,MAAA;AAAA,sBAAA;AAAA,wBAEC,SAAA,EAAU,wCAAA;AAAA,wBAGT,QAAA,EAAA,cAAA,oBACC,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,gFAAA,EAAiF;AAAA,uBAAA;AAAA,sBAL9F;AAAA,qBAOP;AAAA,kBAEJ,CAAC,CAAA;AAAA,kBAGA,WAAA,mBACC,GAAA;AAAA,oBAAC,QAAA;AAAA,oBAAA;AAAA,sBACC,IAAA,EAAK,QAAA;AAAA,sBACL,OAAA,EAAS,CAAC,CAAA,KAAM;AACd,wBAAA,CAAA,CAAE,eAAA,EAAgB;AAClB,wBAAA,YAAA,CAAa,KAAK,GAAG,CAAA;AAAA,sBACvB,CAAA;AAAA,sBACA,SAAA,EAAU,4DAAA;AAAA,sBACV,QAAA,EAAU,YAAY,IAAA,CAAK,QAAA;AAAA,sBAE3B,QAAA,kBAAA,GAAA;AAAA,wBAAC,YAAA;AAAA,wBAAA;AAAA,0BACC,SAAA,EAAW,EAAA;AAAA,4BACT,UAAU,IAAI,CAAA;AAAA,4BACd,4CAAA;AAAA,4BACA,UAAA,IAAc;AAAA;AAChB;AAAA;AACF;AAAA,mBACF,uBAEC,MAAA,EAAA,EAAK,SAAA,EAAW,GAAG,UAAA,EAAY,SAAA,CAAU,IAAI,CAAC,CAAA,EAAG,CAAA;AAAA,kBAInD,SAAA,oBACC,IAAA;AAAA,oBAAC,KAAA;AAAA,oBAAA;AAAA,sBACC,OAAA,EAAS,CAAC,CAAA,KAAM;AACd,wBAAA,CAAA,CAAE,eAAA,EAAgB;AAClB,wBAAA,WAAA,CAAY,IAAA,EAAM,CAAC,UAAA,EAAY,OAAO,CAAA;AAAA,sBACxC,CAAA;AAAA,sBACA,SAAA,EAAW,EAAA;AAAA,wBACT,6GAAA;AAAA,wBACA,UAAA,EAAY,UACR,2BAAA,GACA,eAAA;AAAA,wBAAA,CACH,QAAA,IAAY,KAAK,QAAA,KAChB;AAAA,uBACJ;AAAA,sBAEC,QAAA,EAAA;AAAA,wBAAA,UAAA,EAAY,OAAA,oBACX,GAAA,CAAC,KAAA,EAAA,EAAM,SAAA,EAAU,4DAAA,EAA6D,CAAA;AAAA,wBAE/E,UAAA,EAAY,iBAAiB,CAAC,UAAA,EAAY,2BACzC,GAAA,CAAC,KAAA,EAAA,EAAM,WAAU,yDAAA,EAA0D;AAAA;AAAA;AAAA,mBAE/E;AAAA,kBAID,QAAA,IAAY,KAAK,IAAA,oBAChB,GAAA,CAAC,UAAK,SAAA,EAAU,UAAA,EAAY,eAAK,IAAA,EAAK,CAAA;AAAA,kCAIxC,GAAA;AAAA,oBAAC,MAAA;AAAA,oBAAA;AAAA,sBACC,OAAA,EAAS,MAAM,YAAA,CAAa,IAAI,CAAA;AAAA,sBAChC,SAAA,EAAU,iBAAA;AAAA,sBAET,QAAA,EAAA,IAAA,CAAK;AAAA;AAAA;AACR;AAAA;AAAA;AACF,WAAA;AAAA,UA7FK,IAAA,CAAK;AAAA,SA8FZ;AAAA,MAEJ,CAAA;AAAA,MACA;AAAA,QACE,mBAAA;AAAA,QACA,mBAAA;AAAA,QACA,SAAA;AAAA,QACA,aAAA;AAAA,QACA,IAAA;AAAA,QACA,SAAA;AAAA,QACA,QAAA;AAAA,QACA,YAAA;AAAA,QACA,WAAA;AAAA,QACA,YAAA;AAAA,QACA,QAAA;AAAA,QACA,QAAA;AAAA,QACA;AAAA;AACF,KACF;AAEA,IAAA,2BACG,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,QAAA,EAAU,SAAS,CAAA,EACnC,QAAA,EAAA,SAAA,CAAU,GAAA,CAAI,CAAC,MAAM,KAAA,KAAU,UAAA,CAAW,IAAA,EAAM,KAAK,CAAC,CAAA,EACzD,CAAA;AAAA,EAEJ;AACF,CAAA;AAEA,IAAA,CAAK,WAAA,GAAc,MAAA;AAGnB,IAAO,YAAA,GAAQ","file":"chunk-HWSLJGT7.js","sourcesContent":["import { cva } from 'class-variance-authority'\nimport { Check, ChevronRight, Minus } from 'lucide-react'\nimport React from 'react'\n\nimport { cn } from '../utils'\nimport type { TreeNode, TreeProps } from './types'\n\nconst treeItemVariants = cva(\n 'flex items-center gap-2 px-2 rounded cursor-pointer select-none transition-all duration-200 ease-out',\n {\n variants: {\n size: {\n xs: 'text-xs',\n sm: 'text-sm',\n md: 'text-base',\n lg: 'text-lg',\n },\n disabled: {\n true: 'opacity-50 cursor-not-allowed',\n false: 'hover:bg-surface',\n },\n selected: {\n true: 'bg-primary/10 text-primary',\n false: 'text-text-primary',\n },\n },\n defaultVariants: {\n size: 'md',\n disabled: false,\n selected: false,\n },\n },\n)\n\nconst iconSizes = {\n xs: 'h-3 w-3',\n sm: 'h-3.5 w-3.5',\n md: 'h-4 w-4',\n lg: 'h-5 w-5',\n}\n\nconst Tree = React.memo<TreeProps>(\n ({\n data,\n defaultExpandedKeys = [],\n expandedKeys,\n onExpand,\n checkable = false,\n checkedKeys,\n defaultCheckedKeys = [],\n onCheck,\n selectable = true,\n selectedKeys,\n defaultSelectedKeys = [],\n onSelect,\n disabled = false,\n size = 'md',\n showLine = false,\n showIcon = true,\n defaultExpandAll = false,\n className,\n }) => {\n const [internalExpandedKeys, setInternalExpandedKeys] = React.useState<\n string[]\n >(defaultExpandAll ? getAllKeys(data) : defaultExpandedKeys)\n const [internalCheckedKeys, setInternalCheckedKeys] =\n React.useState<string[]>(defaultCheckedKeys)\n const [internalSelectedKeys, setInternalSelectedKeys] =\n React.useState<string[]>(defaultSelectedKeys)\n\n const currentExpandedKeys =\n expandedKeys !== undefined ? expandedKeys : internalExpandedKeys\n const currentCheckedKeys =\n checkedKeys !== undefined ? checkedKeys : internalCheckedKeys\n const currentSelectedKeys =\n selectedKeys !== undefined ? selectedKeys : internalSelectedKeys\n\n function getAllKeys(nodes: TreeNode[]): string[] {\n const keys: string[] = []\n const traverse = (items: TreeNode[]) => {\n items.forEach((item) => {\n keys.push(item.key)\n if (item.children) {\n traverse(item.children)\n }\n })\n }\n traverse(nodes)\n return keys\n }\n\n const getAllLeafKeys = React.useCallback((node: TreeNode): string[] => {\n const keys: string[] = []\n\n const traverse = (n: TreeNode) => {\n if (!n.children || n.children.length === 0 || n.isLeaf) {\n keys.push(n.key)\n } else {\n n.children.forEach((child) => traverse(child))\n }\n }\n\n traverse(node)\n return keys\n }, [])\n\n const getNodeByKey = React.useCallback(\n (key: string): TreeNode | null => {\n const traverse = (nodes: TreeNode[]): TreeNode | null => {\n for (const node of nodes) {\n if (node.key === key) return node\n if (node.children) {\n const found = traverse(node.children)\n if (found) return found\n }\n }\n return null\n }\n return traverse(data)\n },\n [data],\n )\n\n const getCheckedNodes = React.useCallback(\n (keys: string[]): TreeNode[] => {\n return keys\n .map((key) => getNodeByKey(key))\n .filter((node): node is TreeNode => node !== null)\n },\n [getNodeByKey],\n )\n\n const getCheckState = React.useCallback(\n (node: TreeNode): { checked: boolean; indeterminate: boolean } => {\n if (!node.children || node.children.length === 0 || node.isLeaf) {\n return {\n checked: currentCheckedKeys.includes(node.key),\n indeterminate: false,\n }\n }\n\n const leafKeys = getAllLeafKeys(node)\n const checkedCount = leafKeys.filter((key) =>\n currentCheckedKeys.includes(key),\n ).length\n\n return {\n checked: checkedCount === leafKeys.length && leafKeys.length > 0,\n indeterminate: checkedCount > 0 && checkedCount < leafKeys.length,\n }\n },\n [currentCheckedKeys, getAllLeafKeys],\n )\n\n const handleExpand = React.useCallback(\n (key: string) => {\n const newExpandedKeys = currentExpandedKeys.includes(key)\n ? currentExpandedKeys.filter((k) => k !== key)\n : [...currentExpandedKeys, key]\n\n if (expandedKeys === undefined) {\n setInternalExpandedKeys(newExpandedKeys)\n }\n onExpand?.(newExpandedKeys)\n },\n [currentExpandedKeys, expandedKeys, onExpand],\n )\n\n const handleCheck = React.useCallback(\n (node: TreeNode, checked: boolean) => {\n if (disabled || node.disabled) return\n\n const leafKeys = getAllLeafKeys(node)\n let newCheckedKeys: string[]\n\n if (checked) {\n // Add all leaf keys that aren't already checked\n const keysToAdd = leafKeys.filter(\n (key) => !currentCheckedKeys.includes(key),\n )\n newCheckedKeys = [...currentCheckedKeys, ...keysToAdd]\n } else {\n // Remove all leaf keys\n newCheckedKeys = currentCheckedKeys.filter(\n (key) => !leafKeys.includes(key),\n )\n }\n\n if (checkedKeys === undefined) {\n setInternalCheckedKeys(newCheckedKeys)\n }\n\n const checkedNodes = getCheckedNodes(newCheckedKeys)\n onCheck?.(newCheckedKeys, {\n checked,\n node,\n checkedNodes,\n })\n },\n [\n disabled,\n getAllLeafKeys,\n currentCheckedKeys,\n checkedKeys,\n onCheck,\n getCheckedNodes,\n ],\n )\n\n const handleSelect = React.useCallback(\n (node: TreeNode) => {\n if (disabled || node.disabled || !selectable) return\n\n const isSelected = currentSelectedKeys.includes(node.key)\n const newSelectedKeys = isSelected\n ? currentSelectedKeys.filter((k) => k !== node.key)\n : [...currentSelectedKeys, node.key]\n\n if (selectedKeys === undefined) {\n setInternalSelectedKeys(newSelectedKeys)\n }\n\n onSelect?.(newSelectedKeys, {\n selected: !isSelected,\n node,\n })\n },\n [disabled, selectable, currentSelectedKeys, selectedKeys, onSelect],\n )\n\n const flattenTree = React.useCallback(\n (\n nodes: TreeNode[],\n level: number = 0,\n ): Array<{ node: TreeNode; level: number }> => {\n const result: Array<{ node: TreeNode; level: number }> = []\n\n nodes.forEach((node) => {\n result.push({ node, level })\n\n const hasChildren =\n node.children && node.children.length > 0 && !node.isLeaf\n const isExpanded = currentExpandedKeys.includes(node.key)\n\n if (hasChildren && isExpanded) {\n result.push(...flattenTree(node.children!, level + 1))\n }\n })\n\n return result\n },\n [currentExpandedKeys],\n )\n\n const flatNodes = React.useMemo(\n () => flattenTree(data),\n [data, flattenTree],\n )\n\n const renderNode = React.useCallback(\n (\n item: { node: TreeNode; level: number },\n index: number,\n ): React.ReactNode => {\n const { node, level } = item\n const hasChildren =\n node.children && node.children.length > 0 && !node.isLeaf\n const isExpanded = currentExpandedKeys.includes(node.key)\n const isSelected = currentSelectedKeys.includes(node.key)\n const checkState = checkable ? getCheckState(node) : null\n\n return (\n <div\n key={node.key}\n className=\"relative animate-in fade-in slide-in-from-top-1 duration-200\"\n >\n <div\n className={cn(\n treeItemVariants({\n size,\n disabled: !!node.disabled,\n selected: isSelected,\n }),\n className,\n )}\n >\n {/* Indentation units with vertical lines */}\n {Array.from({ length: level }).map((_, i) => {\n // Check if this indent level should have a vertical line\n const shouldDrawLine =\n showLine &&\n flatNodes.slice(index + 1).some((n) => n.level === i)\n\n return (\n <span\n key={i}\n className=\"relative inline-block w-4 h-6 shrink-0\"\n >\n {/* Vertical line connecting siblings */}\n {shouldDrawLine && (\n <span className=\"absolute top-0 left-1/2 bottom-0 h-full border-l border-border -translate-x-px\" />\n )}\n </span>\n )\n })}\n\n {/* Expand/Collapse Icon */}\n {hasChildren ? (\n <button\n type=\"button\"\n onClick={(e) => {\n e.stopPropagation()\n handleExpand(node.key)\n }}\n className=\"shrink-0 hover:text-primary transition-colors duration-200\"\n disabled={disabled || node.disabled}\n >\n <ChevronRight\n className={cn(\n iconSizes[size],\n 'transition-transform duration-300 ease-out',\n isExpanded && 'rotate-90',\n )}\n />\n </button>\n ) : (\n <span className={cn('shrink-0', iconSizes[size])} />\n )}\n\n {/* Checkbox */}\n {checkable && (\n <div\n onClick={(e) => {\n e.stopPropagation()\n handleCheck(node, !checkState?.checked)\n }}\n className={cn(\n 'w-4 h-4 border rounded flex items-center justify-center shrink-0 cursor-pointer transition-all duration-200',\n checkState?.checked\n ? 'bg-primary border-primary'\n : 'border-border',\n (disabled || node.disabled) &&\n 'opacity-50 cursor-not-allowed',\n )}\n >\n {checkState?.checked && (\n <Check className=\"h-3 w-3 text-background animate-in zoom-in-50 duration-200\" />\n )}\n {checkState?.indeterminate && !checkState?.checked && (\n <Minus className=\"h-3 w-3 text-primary animate-in zoom-in-50 duration-200\" />\n )}\n </div>\n )}\n\n {/* Icon */}\n {showIcon && node.icon && (\n <span className=\"shrink-0\">{node.icon}</span>\n )}\n\n {/* Label */}\n <span\n onClick={() => handleSelect(node)}\n className=\"flex-1 truncate\"\n >\n {node.label}\n </span>\n </div>\n </div>\n )\n },\n [\n currentExpandedKeys,\n currentSelectedKeys,\n checkable,\n getCheckState,\n size,\n className,\n disabled,\n handleExpand,\n handleCheck,\n handleSelect,\n showIcon,\n showLine,\n flatNodes,\n ],\n )\n\n return (\n <div className={cn('w-full', className)}>\n {flatNodes.map((item, index) => renderNode(item, index))}\n </div>\n )\n },\n)\n\nTree.displayName = 'Tree'\n\nexport type * from './types'\nexport default Tree\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/fetching-overlay/index.tsx"],"names":[],"mappings":";;;;;AAcA,IAAM,eAAA,GAAkB,KAAA,CAAM,IAAA,CAA2B,CAAC;AAAA,EACxD,UAAA;AAAA,EACA,IAAA,GAAO,IAAA;AAAA,EACP,UAAA,GAAa,IAAA;AAAA,EACb,eAAA,GAAkB,EAAA;AAAA,EAClB,SAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,+EAAA;AAAA,QACA,UAAA,IAAc,4BAAA;AAAA,QACd,aAAa,aAAA,GAAgB,+BAAA;AAAA,QAC7B;AAAA,OACF;AAAA,MACA,KAAA,EAAO,aAAa,EAAE,eAAA,EAAiB,iBAAiB,eAAA,GAAkB,GAAG,KAAI,GAAI,MAAA;AAAA,MAErF,QAAA,kBAAA,GAAA;AAAA,QAAC,OAAA;AAAA,QAAA;AAAA,UACC,IAAA;AAAA,UACA,SAAA,EAAU,gDAAA;AAAA,UACT,GAAG;AAAA;AAAA;AACN;AAAA,GACF;AAEJ,CAAC,CAAA;AAED,eAAA,CAAgB,WAAA,GAAc,iBAAA;AAE9B,IAAO,wBAAA,GAAQ","file":"chunk-IHKPZOE5.js","sourcesContent":["'use client'\n\nimport React from 'react'\n\nimport { Spinner } from '../spinner'\nimport { SpinnerProps } from '../spinner/types'\nimport { cn } from '../utils'\n\ninterface FetchingOverlayProps extends SpinnerProps {\n isFetching: boolean\n fullscreen?: boolean\n backdropOpacity?: number\n}\n\nconst FetchingOverlay = React.memo<FetchingOverlayProps>(({\n isFetching,\n size = 'lg',\n fullscreen = true,\n backdropOpacity = 30,\n className,\n ...rest\n}) => {\n return (\n <div\n className={cn(\n 'absolute inset-0 flex items-center justify-center transition-all duration-300',\n fullscreen && 'fixed w-full h-screen z-50',\n isFetching ? 'opacity-100' : 'opacity-0 pointer-events-none',\n className,\n )}\n style={isFetching ? { backgroundColor: `rgba(0, 0, 0, ${backdropOpacity / 100})` } : undefined}\n >\n <Spinner\n size={size}\n className=\"transition-transform duration-300 animate-spin\"\n {...rest}\n />\n </div>\n )\n})\n\nFetchingOverlay.displayName = 'FetchingOverlay'\n\nexport default FetchingOverlay\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/upload/utils.ts","../src/upload/index.tsx"],"names":["UploadIcon","ImageIcon"],"mappings":"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","file":"chunk-INH7KYCK.js","sourcesContent":["import { cva } from 'class-variance-authority'\n\nimport { UploadFile } from './types'\n\nexport const uploadButtonVariants = cva(\n 'inline-flex cursor-pointer outline-none border items-center justify-center gap-2 font-medium rounded-md disabled:opacity-50 disabled:cursor-not-allowed transition-colors',\n {\n variants: {\n color: {\n primary: 'border-primary text-white bg-primary hover:bg-primary/90',\n secondary:\n 'border-secondary text-white bg-secondary hover:bg-secondary/90',\n success: 'border-success text-white bg-success hover:bg-success/90',\n error: 'border-error text-white bg-error hover:bg-error/90',\n accent: 'border-accent text-white bg-accent hover:bg-accent/90',\n warning: 'border-warning text-white bg-warning hover:bg-warning/90',\n info: 'border-info text-white bg-info hover:bg-info/90',\n },\n size: {\n xs: 'h-(--button-height-xs) px-(--button-padding-x-xs) text-xs',\n sm: 'h-(--button-height-sm) px-(--button-padding-x-sm) text-sm',\n md: 'h-(--button-height-md) px-(--button-padding-x-md) text-base',\n lg: 'h-(--button-height-lg) px-(--button-padding-x-lg) text-lg',\n },\n },\n defaultVariants: {\n color: 'primary',\n size: 'md',\n },\n },\n)\n\nexport const uploadDropzoneVariants = cva(\n 'relative border-2 border-dashed rounded-lg transition-all duration-200 cursor-pointer',\n {\n variants: {\n status: {\n default:\n 'border-border bg-surface/50 hover:border-primary hover:bg-primary/5',\n dragActive: 'border-primary bg-primary/10',\n error: 'border-error bg-error/5',\n disabled: 'border-border bg-surface/30 cursor-not-allowed opacity-50',\n },\n size: {\n xs: 'p-2',\n sm: 'p-4',\n md: 'p-6',\n lg: 'p-8',\n },\n },\n defaultVariants: {\n status: 'default',\n size: 'md',\n },\n },\n)\n\nexport const uploadDraggerVariants = cva(\n 'relative border-2 border-dashed rounded-lg transition-all duration-200 cursor-pointer flex flex-col items-center justify-center gap-2',\n {\n variants: {\n status: {\n default:\n 'border-border bg-surface/50 hover:border-primary hover:bg-primary/5',\n dragActive: 'border-primary bg-primary/10 scale-[1.02]',\n error: 'border-error bg-error/5',\n disabled: 'border-border bg-surface/30 cursor-not-allowed opacity-50',\n },\n size: {\n xs: 'min-h-[100px] p-3',\n sm: 'min-h-[120px] p-4',\n md: 'min-h-[160px] p-6',\n lg: 'min-h-[200px] p-8',\n },\n },\n defaultVariants: {\n status: 'default',\n size: 'md',\n },\n },\n)\n\nexport const uploadAvatarVariants = cva(\n 'relative overflow-hidden rounded-full border-2 border-dashed cursor-pointer transition-all duration-200 flex items-center justify-center',\n {\n variants: {\n status: {\n default: 'border-border bg-surface/50 hover:border-primary',\n dragActive: 'border-primary bg-primary/10',\n error: 'border-error bg-error/5',\n disabled: 'border-border bg-surface/30 cursor-not-allowed opacity-50',\n },\n size: {\n xs: 'w-12 h-12',\n sm: 'w-16 h-16',\n md: 'w-24 h-24',\n lg: 'w-32 h-32',\n },\n },\n defaultVariants: {\n status: 'default',\n size: 'md',\n },\n },\n)\n\nexport const uploadPictureVariants = cva(\n 'relative overflow-hidden rounded-md border-2 border-dashed cursor-pointer transition-all duration-200 flex items-center justify-center',\n {\n variants: {\n status: {\n default: 'border-border bg-surface/50 hover:border-primary',\n dragActive: 'border-primary bg-primary/10',\n error: 'border-error bg-error/5',\n disabled: 'border-border bg-surface/30 cursor-not-allowed opacity-50',\n },\n size: {\n xs: 'w-16 h-16',\n sm: 'w-24 h-24',\n md: 'w-32 h-32',\n lg: 'w-40 h-40',\n },\n },\n defaultVariants: {\n status: 'default',\n size: 'md',\n },\n },\n)\n\nexport const formatFileSize = (bytes: number): string => {\n if (bytes === 0) return '0 Bytes'\n const k = 1024\n const sizes = ['Bytes', 'KB', 'MB', 'GB']\n const i = Math.floor(Math.log(bytes) / Math.log(k))\n return Math.round((bytes / Math.pow(k, i)) * 100) / 100 + ' ' + sizes[i]\n}\n\nexport const getFileExtension = (filename: string): string => {\n return filename.slice(((filename.lastIndexOf('.') - 1) >>> 0) + 2)\n}\n\nexport const isImageFile = (file: File | UploadFile): boolean => {\n const type = file.type || ''\n return type.startsWith('image/')\n}\n\nexport const generateUID = (): string => {\n return `upload-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`\n}\n","import {\n AlertCircle,\n CheckCircle,\n File,\n Image as ImageIcon,\n Loader2,\n Upload as UploadIcon,\n X,\n} from 'lucide-react'\nimport React from 'react'\n\nimport {\n cn,\n getValidationStatus,\n iconSizes,\n statusMessageVariants,\n} from '../utils'\nimport type { UploadFile, UploadProps } from './types'\nimport {\n formatFileSize,\n generateUID,\n isImageFile,\n uploadAvatarVariants,\n uploadButtonVariants,\n uploadDraggerVariants,\n uploadDropzoneVariants,\n uploadPictureVariants,\n} from './utils'\n\nconst Upload = React.memo<UploadProps>(\n ({\n variant = 'button',\n size = 'md',\n color = 'primary',\n label,\n helperText,\n error,\n warning,\n info,\n success,\n accept,\n multiple = false,\n maxSize,\n maxCount,\n fileList,\n defaultFileList = [],\n showUploadList = true,\n listType = 'text',\n disabled = false,\n buttonText = 'Upload File',\n dragText = 'Click or drag file to this area to upload',\n dragHint = 'Support for a single or bulk upload',\n onChange,\n onRemove,\n beforeUpload,\n customRequest,\n onError,\n className,\n ref,\n ...props\n }) => {\n const [internalFileList, setInternalFileList] =\n React.useState<UploadFile[]>(defaultFileList)\n const [dragActive, setDragActive] = React.useState(false)\n const inputRef = React.useRef<HTMLInputElement>(null)\n\n const currentFileList = fileList !== undefined ? fileList : internalFileList\n\n const { status, message: helperMessage } = getValidationStatus({\n error,\n warning,\n info,\n success,\n helperText,\n })\n\n const validateFile = React.useCallback(\n (file: File): string | null => {\n if (maxSize && file.size > maxSize) {\n return `File size exceeds ${formatFileSize(maxSize)}`\n }\n if (maxCount && currentFileList.length >= maxCount) {\n return `Maximum ${maxCount} file${maxCount > 1 ? 's' : ''} allowed`\n }\n return null\n },\n [maxSize, maxCount, currentFileList.length],\n )\n\n const handleFiles = React.useCallback(\n async (files: FileList | null) => {\n if (!files || files.length === 0) return\n\n const newFiles: UploadFile[] = []\n\n for (let i = 0; i < files.length; i++) {\n const file = files[i]\n if (!file) continue\n\n // Validate file\n const validationError = validateFile(file)\n if (validationError) {\n onError?.(validationError, file)\n continue\n }\n\n // Check beforeUpload\n if (beforeUpload) {\n const shouldUpload = await beforeUpload(file)\n if (!shouldUpload) continue\n }\n\n const uploadFile: UploadFile = {\n uid: generateUID(),\n name: file.name,\n size: file.size,\n type: file.type,\n status: 'uploading',\n percent: 0,\n }\n\n // Add to list\n newFiles.push(uploadFile)\n\n // Handle upload\n if (customRequest) {\n customRequest({\n file,\n onProgress: (percent) => {\n setInternalFileList((prev) =>\n prev.map((f) =>\n f.uid === uploadFile.uid ? { ...f, percent } : f,\n ),\n )\n },\n onSuccess: (response) => {\n setInternalFileList((prev) =>\n prev.map((f) =>\n f.uid === uploadFile.uid\n ? {\n ...f,\n status: 'done' as const,\n percent: 100,\n response,\n }\n : f,\n ),\n )\n },\n onError: (err) => {\n setInternalFileList((prev) =>\n prev.map((f) =>\n f.uid === uploadFile.uid\n ? { ...f, status: 'error' as const, error: err }\n : f,\n ),\n )\n },\n })\n } else {\n // Create preview URL for images\n if (file && isImageFile(file)) {\n uploadFile.thumbUrl = URL.createObjectURL(file)\n }\n uploadFile.status = 'done'\n uploadFile.percent = 100\n }\n }\n\n const updatedList = multiple\n ? [...currentFileList, ...newFiles]\n : newFiles\n\n if (fileList === undefined) {\n setInternalFileList(updatedList)\n }\n onChange?.(updatedList)\n },\n [\n validateFile,\n beforeUpload,\n customRequest,\n onError,\n multiple,\n currentFileList,\n fileList,\n onChange,\n ],\n )\n\n const handleInputChange = React.useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n handleFiles(e.target.files)\n // Reset input value to allow uploading the same file again\n e.target.value = ''\n },\n [handleFiles],\n )\n\n const handleRemove = React.useCallback(\n (file: UploadFile) => {\n const updatedList = currentFileList.filter((f) => f.uid !== file.uid)\n if (fileList === undefined) {\n setInternalFileList(updatedList)\n }\n onRemove?.(file)\n onChange?.(updatedList)\n },\n [currentFileList, fileList, onRemove, onChange],\n )\n\n const handleClick = React.useCallback(() => {\n if (!disabled) {\n inputRef.current?.click()\n }\n }, [disabled])\n\n const handleDragEnter = React.useCallback((e: React.DragEvent) => {\n e.preventDefault()\n e.stopPropagation()\n setDragActive(true)\n }, [])\n\n const handleDragLeave = React.useCallback((e: React.DragEvent) => {\n e.preventDefault()\n e.stopPropagation()\n setDragActive(false)\n }, [])\n\n const handleDragOver = React.useCallback((e: React.DragEvent) => {\n e.preventDefault()\n e.stopPropagation()\n }, [])\n\n const handleDrop = React.useCallback(\n (e: React.DragEvent) => {\n e.preventDefault()\n e.stopPropagation()\n setDragActive(false)\n\n if (!disabled) {\n handleFiles(e.dataTransfer.files)\n }\n },\n [disabled, handleFiles],\n )\n\n const renderFileList = () => {\n if (!showUploadList || currentFileList.length === 0) return null\n\n if (listType === 'picture-card') {\n return (\n <div className=\"flex flex-wrap gap-2 mt-2\">\n {currentFileList.map((file) => (\n <div\n key={file.uid}\n className=\"relative w-24 h-24 rounded-md border border-border overflow-hidden group\"\n >\n {file.thumbUrl ? (\n <img\n src={file.thumbUrl}\n alt={file.name}\n className=\"w-full h-full object-cover\"\n />\n ) : (\n <div className=\"w-full h-full flex items-center justify-center bg-surface\">\n <File className=\"w-8 h-8 text-text-secondary\" />\n </div>\n )}\n <div className=\"absolute inset-0 bg-black/50 opacity-0 group-hover:opacity-100 transition-opacity flex items-center justify-center\">\n <button\n type=\"button\"\n onClick={() => handleRemove(file)}\n className=\"text-white hover:text-error transition-colors\"\n >\n <X className={iconSizes[size]} />\n </button>\n </div>\n {file.status === 'uploading' && (\n <div className=\"absolute inset-0 bg-black/30 flex items-center justify-center\">\n <Loader2 className=\"w-6 h-6 text-white animate-spin\" />\n </div>\n )}\n </div>\n ))}\n </div>\n )\n }\n\n return (\n <div className=\"mt-2 space-y-1\">\n {currentFileList.map((file) => (\n <div\n key={file.uid}\n className=\"flex items-center justify-between p-2 rounded-md bg-surface hover:bg-surface/80 transition-colors\"\n >\n <div className=\"flex items-center gap-2 flex-1 min-w-0\">\n {listType === 'picture' && file.thumbUrl ? (\n <img\n src={file.thumbUrl}\n alt={file.name}\n className=\"w-8 h-8 rounded object-cover\"\n />\n ) : (\n <File\n className={cn('text-text-secondary shrink-0', iconSizes[size])}\n />\n )}\n <div className=\"flex-1 min-w-0\">\n <p className=\"text-sm text-text-primary truncate\">\n {file.name}\n </p>\n <p className=\"text-xs text-text-secondary\">\n {formatFileSize(file.size)}\n {file.status === 'uploading' &&\n file.percent !== undefined && (\n <span> - {file.percent}%</span>\n )}\n </p>\n </div>\n </div>\n <div className=\"flex items-center gap-2\">\n {file.status === 'uploading' && (\n <Loader2\n className={cn('text-primary animate-spin', iconSizes[size])}\n />\n )}\n {file.status === 'done' && (\n <CheckCircle\n className={cn('text-success', iconSizes[size])}\n />\n )}\n {file.status === 'error' && (\n <AlertCircle className={cn('text-error', iconSizes[size])} />\n )}\n <button\n type=\"button\"\n onClick={() => handleRemove(file)}\n className=\"text-text-secondary hover:text-error transition-colors\"\n >\n <X className={iconSizes[size]} />\n </button>\n </div>\n </div>\n ))}\n </div>\n )\n }\n\n const currentFile = currentFileList[0]\n\n const renderUploadArea = () => {\n const dragStatus = dragActive\n ? 'dragActive'\n : disabled\n ? 'disabled'\n : status === 'error'\n ? 'error'\n : 'default'\n\n switch (variant) {\n case 'button':\n return (\n <button\n type=\"button\"\n onClick={handleClick}\n disabled={disabled}\n className={cn(uploadButtonVariants({ color, size }), className)}\n >\n <UploadIcon className={iconSizes[size]} />\n {buttonText}\n </button>\n )\n\n case 'dropzone':\n return (\n <div\n onClick={handleClick}\n onDragEnter={handleDragEnter}\n onDragLeave={handleDragLeave}\n onDragOver={handleDragOver}\n onDrop={handleDrop}\n className={cn(\n uploadDropzoneVariants({ status: dragStatus, size }),\n className,\n )}\n >\n <div className=\"flex items-center gap-3\">\n <UploadIcon\n className={cn('text-text-secondary', iconSizes[size])}\n />\n <div>\n <p className=\"text-sm text-text-primary font-medium\">\n {dragText}\n </p>\n {dragHint && (\n <p className=\"text-xs text-text-secondary mt-0.5\">{dragHint}</p>\n )}\n </div>\n </div>\n </div>\n )\n\n case 'dragger':\n return (\n <div\n onClick={handleClick}\n onDragEnter={handleDragEnter}\n onDragLeave={handleDragLeave}\n onDragOver={handleDragOver}\n onDrop={handleDrop}\n className={cn(\n uploadDraggerVariants({ status: dragStatus, size }),\n className,\n )}\n >\n <UploadIcon className=\"w-10 h-10 text-primary\" />\n <p className=\"text-base font-medium text-text-primary\">\n {dragText}\n </p>\n {dragHint && (\n <p className=\"text-sm text-text-secondary\">{dragHint}</p>\n )}\n </div>\n )\n\n case 'avatar':\n return (\n <div\n onClick={handleClick}\n onDragEnter={handleDragEnter}\n onDragLeave={handleDragLeave}\n onDragOver={handleDragOver}\n onDrop={handleDrop}\n className={cn(\n uploadAvatarVariants({ status: dragStatus, size }),\n className,\n )}\n >\n {currentFile?.thumbUrl ? (\n <img\n src={currentFile.thumbUrl}\n alt=\"avatar\"\n className=\"w-full h-full object-cover\"\n />\n ) : (\n <ImageIcon className=\"w-8 h-8 text-text-secondary\" />\n )}\n </div>\n )\n\n case 'picture':\n return (\n <div\n onClick={handleClick}\n onDragEnter={handleDragEnter}\n onDragLeave={handleDragLeave}\n onDragOver={handleDragOver}\n onDrop={handleDrop}\n className={cn(\n uploadPictureVariants({ status: dragStatus, size }),\n className,\n )}\n >\n {currentFile?.thumbUrl ? (\n <img\n src={currentFile.thumbUrl}\n alt=\"preview\"\n className=\"w-full h-full object-cover\"\n />\n ) : (\n <ImageIcon className=\"w-8 h-8 text-text-secondary\" />\n )}\n </div>\n )\n\n default:\n return null\n }\n }\n\n return (\n <div\n ref={ref}\n className=\"w-full\"\n >\n <input\n ref={inputRef}\n type=\"file\"\n accept={accept}\n multiple={multiple}\n onChange={handleInputChange}\n disabled={disabled}\n className=\"hidden\"\n {...props}\n />\n\n {label && (\n <label className=\"block mb-1\">\n <span className=\"text-sm font-medium text-text-secondary\">{label}</span>\n </label>\n )}\n\n {renderUploadArea()}\n {renderFileList()}\n\n {helperMessage && (\n <p className={cn(statusMessageVariants({ status }), 'mt-1')}>\n {helperMessage}\n </p>\n )}\n </div>\n )\n },\n)\n\nUpload.displayName = 'Upload'\n\nexport type * from './types'\nexport default Upload\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/modal/index.tsx"],"names":["ModalHeader","ModalFooter","ModalTitle","ModalDescription"],"mappings":"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","file":"chunk-IRNJZ754.js","sourcesContent":["import * as DialogPrimitive from '@radix-ui/react-dialog'\nimport { cva } from 'class-variance-authority'\nimport { XIcon } from 'lucide-react'\nimport * as React from 'react'\n\nimport { cn } from '../utils'\nimport type { ComposedModalProps, ModalColor, ModalSize } from './types'\n\nfunction Modal({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Root>) {\n return (\n <DialogPrimitive.Root\n data-slot=\"modal\"\n {...props}\n />\n )\n}\n\nfunction ModalTrigger({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Trigger>) {\n return (\n <DialogPrimitive.Trigger\n data-slot=\"modal-trigger\"\n {...props}\n />\n )\n}\n\nfunction ModalPortal({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Portal>) {\n return (\n <DialogPrimitive.Portal\n data-slot=\"modal-portal\"\n {...props}\n />\n )\n}\n\nfunction ModalClose({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Close>) {\n return (\n <DialogPrimitive.Close\n data-slot=\"modal-close\"\n {...props}\n />\n )\n}\n\nconst modalOverlayVariants = cva(\n '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/20 backdrop-blur-sm',\n {\n variants: {\n opacity: {\n light: 'bg-opacity-30',\n medium: 'bg-opacity-50',\n heavy: 'bg-opacity-70',\n },\n },\n defaultVariants: {\n opacity: 'medium',\n },\n },\n)\n\nfunction ModalOverlay({\n className,\n opacity = 'medium',\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Overlay> & {\n opacity?: 'light' | 'medium' | 'heavy'\n}) {\n return (\n <DialogPrimitive.Overlay\n data-slot=\"modal-overlay\"\n className={cn(modalOverlayVariants({ opacity }), className)}\n {...props}\n />\n )\n}\n\nconst modalContentVariants = cva(\n 'bg-background 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 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] rounded-md border duration-200',\n {\n variants: {\n size: {\n xs: 'max-w-(--modal-max-width-xs) gap-(--modal-gap-xs) p-(--modal-padding-xs) sm:max-w-(--modal-max-width-xs)',\n sm: 'max-w-(--modal-max-width-sm) gap-(--modal-gap-sm) p-(--modal-padding-sm) sm:max-w-(--modal-max-width-sm)',\n md: 'max-w-(--modal-max-width-md) gap-(--modal-gap-md) p-(--modal-padding-md) sm:max-w-(--modal-max-width-md)',\n lg: 'max-w-(--modal-max-width-lg) gap-(--modal-gap-lg) p-(--modal-padding-lg) sm:max-w-(--modal-max-width-lg)',\n },\n color: {\n default: 'border-border',\n primary: 'border-primary border-l-4',\n secondary: 'border-secondary border-l-4',\n accent: 'border-accent border-l-4',\n success: 'border-success border-l-4',\n error: 'border-error border-l-4',\n warning: 'border-warning border-l-4',\n info: 'border-info border-l-4',\n },\n centered: {\n true: 'text-center',\n false: '',\n },\n },\n defaultVariants: {\n size: 'md',\n color: 'default',\n centered: false,\n },\n },\n)\n\nconst modalCloseVariants = cva(\n 'absolute right-4 rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:outline-hidden focus:ring-2 focus:ring-primary focus:ring-offset-2 disabled:pointer-events-none text-text-secondary hover:text-text-primary [&_svg]:pointer-events-none [&_svg]:shrink-0',\n {\n variants: {\n size: {\n xs: 'top-3 [&_svg]:size-3.5',\n sm: 'top-3 [&_svg]:size-3.5',\n md: 'top-4 [&_svg]:size-4',\n lg: 'top-6 [&_svg]:size-5',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n },\n)\n\nfunction ModalContent({\n className,\n children,\n showCloseButton = true,\n size = 'md',\n color = 'default',\n centered = false,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Content> & {\n showCloseButton?: boolean\n size?: ModalSize\n color?: ModalColor\n centered?: boolean\n}) {\n return (\n <ModalPortal data-slot=\"modal-portal\">\n <ModalOverlay />\n <DialogPrimitive.Content\n data-slot=\"modal-content\"\n className={cn(\n modalContentVariants({ size, color, centered }),\n className,\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close\n data-slot=\"modal-close\"\n className={modalCloseVariants({ size })}\n >\n <XIcon />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Content>\n </ModalPortal>\n )\n}\n\nconst modalHeaderVariants = cva('flex flex-col text-text-primary', {\n variants: {\n size: {\n xs: 'gap-1.5',\n sm: 'gap-1.5',\n md: 'gap-2',\n lg: 'gap-3',\n },\n color: {\n default: '',\n primary: 'border-l-primary',\n secondary: 'border-l-secondary',\n success: 'border-l-success',\n error: 'border-l-error',\n accent: 'border-l-accent',\n warning: 'border-l-warning',\n info: 'border-l-info',\n },\n },\n defaultVariants: {\n size: 'md',\n color: 'default',\n },\n})\n\n// Performance optimization: Memoize Modal subcomponents to prevent unnecessary\n// re-renders when modal state changes but subcomponent props haven't changed\nconst ModalHeader = React.memo<\n React.ComponentProps<'div'> & {\n size?: ModalSize\n color?: ModalColor\n }\n>(function ModalHeader({\n className,\n size = 'md',\n color = 'default',\n ...props\n}) {\n return (\n <div\n data-slot=\"modal-header\"\n className={cn(modalHeaderVariants({ size, color }), className)}\n {...props}\n />\n )\n})\n\nconst modalFooterVariants = cva(\n 'flex flex-col-reverse sm:flex-row sm:justify-end',\n {\n variants: {\n size: {\n xs: 'gap-1.5',\n sm: 'gap-1.5',\n md: 'gap-2',\n lg: 'gap-3',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n },\n)\n\nconst ModalFooter = React.memo<\n React.ComponentProps<'div'> & {\n size?: ModalSize\n }\n>(function ModalFooter({ className, size = 'md', ...props }) {\n return (\n <div\n data-slot=\"modal-footer\"\n className={cn(modalFooterVariants({ size }), className)}\n {...props}\n />\n )\n})\n\nconst modalTitleVariants = cva('leading-none font-semibold text-text-primary', {\n variants: {\n size: {\n xs: 'text-base',\n sm: 'text-base',\n md: 'text-lg',\n lg: 'text-2xl',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n})\n\nconst ModalTitle = React.memo<\n React.ComponentProps<typeof DialogPrimitive.Title> & {\n size?: ModalSize\n }\n>(function ModalTitle({ className, size = 'md', ...props }) {\n return (\n <DialogPrimitive.Title\n data-slot=\"modal-title\"\n className={cn(modalTitleVariants({ size }), className)}\n {...props}\n />\n )\n})\n\nconst modalDescriptionVariants = cva('text-text-secondary', {\n variants: {\n size: {\n xs: 'text-xs',\n sm: 'text-xs',\n md: 'text-sm',\n lg: 'text-base',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n})\n\nconst ModalDescription = React.memo<\n React.ComponentProps<typeof DialogPrimitive.Description> & {\n size?: ModalSize\n }\n>(function ModalDescription({ className, size = 'md', ...props }) {\n return (\n <DialogPrimitive.Description\n data-slot=\"modal-description\"\n className={cn(modalDescriptionVariants({ size }), className)}\n {...props}\n />\n )\n})\n\nfunction ComposedModal({\n open,\n onOpenChange,\n title,\n description,\n children,\n footer,\n size = 'md',\n color = 'default',\n centered = false,\n showCloseButton = true,\n hideHeader = false,\n hideFooter = false,\n className,\n contentClassName,\n}: ComposedModalProps) {\n return (\n <Modal\n open={open}\n onOpenChange={onOpenChange}\n >\n <ModalContent\n size={size}\n color={color}\n centered={centered}\n showCloseButton={showCloseButton}\n className={contentClassName}\n >\n {!hideHeader && (title || description) && (\n <ModalHeader\n size={size}\n color={color}\n className={className}\n >\n {title && <ModalTitle size={size}>{title}</ModalTitle>}\n {description && (\n <ModalDescription size={size}>{description}</ModalDescription>\n )}\n </ModalHeader>\n )}\n {children}\n {!hideFooter && footer && (\n <ModalFooter size={size}>{footer}</ModalFooter>\n )}\n </ModalContent>\n </Modal>\n )\n}\n\nexport type * from './types'\nexport {\n Modal,\n ModalClose,\n ModalContent,\n ModalDescription,\n ModalFooter,\n ModalHeader,\n ModalOverlay,\n ModalPortal,\n ModalTitle,\n ModalTrigger,\n}\nexport default ComposedModal\n"]}
|