@demokit-ui/demokit 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +128 -0
- package/dist/app/background-decor.d.ts +1 -0
- package/dist/app/background-decor.js +38 -0
- package/dist/app/container.d.ts +12 -0
- package/dist/app/container.js +29 -0
- package/dist/app/demo1-shell.d.ts +43 -0
- package/dist/app/demo1-shell.js +616 -0
- package/dist/app/tweak-panel.d.ts +22 -0
- package/dist/app/tweak-panel.js +182 -0
- package/dist/components/apexcharts.css +101 -0
- package/dist/components/scrollable.css +120 -0
- package/dist/config/settings.config.d.ts +2 -0
- package/dist/config/settings.config.js +33 -0
- package/dist/config/types.d.ts +50 -0
- package/dist/config.reui.css +337 -0
- package/dist/demos/demo1.css +176 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.js +484 -0
- package/dist/kit/components/chart/chart/chart.d.ts +57 -0
- package/dist/kit/components/chart/chart/chart.js +206 -0
- package/dist/kit/components/composite/action-bar/action-bar.d.ts +10 -0
- package/dist/kit/components/composite/action-bar/action-bar.js +38 -0
- package/dist/kit/components/composite/action-card/action-card.d.ts +13 -0
- package/dist/kit/components/composite/action-card/action-card.js +35 -0
- package/dist/kit/components/composite/activity-feed/activity-feed.d.ts +17 -0
- package/dist/kit/components/composite/activity-feed/activity-feed.js +26 -0
- package/dist/kit/components/composite/alert-card/alert-card.d.ts +10 -0
- package/dist/kit/components/composite/alert-card/alert-card.js +37 -0
- package/dist/kit/components/composite/approval-flow/approval-flow.d.ts +51 -0
- package/dist/kit/components/composite/approval-flow/approval-flow.js +185 -0
- package/dist/kit/components/composite/auth-shell/auth-shell.d.ts +10 -0
- package/dist/kit/components/composite/auth-shell/auth-shell.js +32 -0
- package/dist/kit/components/composite/board-toolbar/board-toolbar.d.ts +12 -0
- package/dist/kit/components/composite/board-toolbar/board-toolbar.js +44 -0
- package/dist/kit/components/composite/chart-card/chart-card.d.ts +14 -0
- package/dist/kit/components/composite/chart-card/chart-card.js +64 -0
- package/dist/kit/components/composite/chart-toolbar/chart-toolbar.d.ts +17 -0
- package/dist/kit/components/composite/chart-toolbar/chart-toolbar.js +48 -0
- package/dist/kit/components/composite/data-section/data-section.d.ts +17 -0
- package/dist/kit/components/composite/data-section/data-section.js +73 -0
- package/dist/kit/components/composite/description-grid/description-grid.d.ts +12 -0
- package/dist/kit/components/composite/description-grid/description-grid.js +36 -0
- package/dist/kit/components/composite/detail-header/detail-header.d.ts +19 -0
- package/dist/kit/components/composite/detail-header/detail-header.js +43 -0
- package/dist/kit/components/composite/filter-panel/filter-panel.d.ts +18 -0
- package/dist/kit/components/composite/filter-panel/filter-panel.js +86 -0
- package/dist/kit/components/composite/filter-toolbar/filter-toolbar.d.ts +14 -0
- package/dist/kit/components/composite/filter-toolbar/filter-toolbar.js +59 -0
- package/dist/kit/components/composite/forgot-password-form/forgot-password-form.d.ts +9 -0
- package/dist/kit/components/composite/forgot-password-form/forgot-password-form.js +34 -0
- package/dist/kit/components/composite/form-section/form-section.d.ts +9 -0
- package/dist/kit/components/composite/form-section/form-section.js +16 -0
- package/dist/kit/components/composite/kanban-board/kanban-board.d.ts +50 -0
- package/dist/kit/components/composite/kanban-board/kanban-board.js +55 -0
- package/dist/kit/components/composite/login-card/login-card.d.ts +33 -0
- package/dist/kit/components/composite/login-card/login-card.js +138 -0
- package/dist/kit/components/composite/message-list-card/message-list-card.d.ts +20 -0
- package/dist/kit/components/composite/message-list-card/message-list-card.js +83 -0
- package/dist/kit/components/composite/metric-card/metric-card.d.ts +18 -0
- package/dist/kit/components/composite/metric-card/metric-card.js +37 -0
- package/dist/kit/components/composite/milestone-card/milestone-card.d.ts +12 -0
- package/dist/kit/components/composite/milestone-card/milestone-card.js +33 -0
- package/dist/kit/components/composite/oauth-login-buttons/oauth-login-buttons.d.ts +14 -0
- package/dist/kit/components/composite/oauth-login-buttons/oauth-login-buttons.js +32 -0
- package/dist/kit/components/composite/page-header/page-header.d.ts +12 -0
- package/dist/kit/components/composite/page-header/page-header.js +66 -0
- package/dist/kit/components/composite/profile-card/profile-card.d.ts +16 -0
- package/dist/kit/components/composite/profile-card/profile-card.js +28 -0
- package/dist/kit/components/composite/progress-card/progress-card.d.ts +16 -0
- package/dist/kit/components/composite/progress-card/progress-card.js +23 -0
- package/dist/kit/components/composite/project-card/project-card.d.ts +17 -0
- package/dist/kit/components/composite/project-card/project-card.js +46 -0
- package/dist/kit/components/composite/shortcut-card/shortcut-card.d.ts +13 -0
- package/dist/kit/components/composite/shortcut-card/shortcut-card.js +35 -0
- package/dist/kit/components/composite/sprint-summary/sprint-summary.d.ts +15 -0
- package/dist/kit/components/composite/sprint-summary/sprint-summary.js +43 -0
- package/dist/kit/components/composite/state-panel/state-panel.d.ts +12 -0
- package/dist/kit/components/composite/state-panel/state-panel.js +79 -0
- package/dist/kit/components/composite/summary-card/summary-card.d.ts +15 -0
- package/dist/kit/components/composite/summary-card/summary-card.js +25 -0
- package/dist/kit/components/composite/task-card/task-card.d.ts +14 -0
- package/dist/kit/components/composite/task-card/task-card.js +49 -0
- package/dist/kit/components/composite/timeline/timeline.d.ts +46 -0
- package/dist/kit/components/composite/timeline/timeline.js +176 -0
- package/dist/kit/components/composite/todo-card/todo-card.d.ts +26 -0
- package/dist/kit/components/composite/todo-card/todo-card.js +101 -0
- package/dist/kit/components/data-display/avatar/avatar.d.ts +12 -0
- package/dist/kit/components/data-display/avatar/avatar.js +61 -0
- package/dist/kit/components/data-display/avatar-group/avatar-group.d.ts +22 -0
- package/dist/kit/components/data-display/avatar-group/avatar-group.js +184 -0
- package/dist/kit/components/data-display/badge/badge.d.ts +29 -0
- package/dist/kit/components/data-display/badge/badge.js +203 -0
- package/dist/kit/components/data-display/card/card.d.ts +15 -0
- package/dist/kit/components/data-display/card/card.js +119 -0
- package/dist/kit/components/data-display/data-grid/data-grid-column-filter.d.ts +15 -0
- package/dist/kit/components/data-display/data-grid/data-grid-column-filter.js +74 -0
- package/dist/kit/components/data-display/data-grid/data-grid-column-header.d.ts +12 -0
- package/dist/kit/components/data-display/data-grid/data-grid-column-header.js +171 -0
- package/dist/kit/components/data-display/data-grid/data-grid-column-visibility.d.ts +7 -0
- package/dist/kit/components/data-display/data-grid/data-grid-column-visibility.js +24 -0
- package/dist/kit/components/data-display/data-grid/data-grid-pagination.d.ts +15 -0
- package/dist/kit/components/data-display/data-grid/data-grid-pagination.js +132 -0
- package/dist/kit/components/data-display/data-grid/data-grid-table-dnd-rows.d.ts +9 -0
- package/dist/kit/components/data-display/data-grid/data-grid-table-dnd-rows.js +61 -0
- package/dist/kit/components/data-display/data-grid/data-grid-table-dnd.d.ts +5 -0
- package/dist/kit/components/data-display/data-grid/data-grid-table-dnd.js +86 -0
- package/dist/kit/components/data-display/data-grid/data-grid-table.d.ts +59 -0
- package/dist/kit/components/data-display/data-grid/data-grid-table.js +356 -0
- package/dist/kit/components/data-display/data-grid/data-grid.d.ts +87 -0
- package/dist/kit/components/data-display/data-grid/data-grid.js +87 -0
- package/dist/kit/components/data-display/kbd/kbd.d.ts +8 -0
- package/dist/kit/components/data-display/kbd/kbd.js +27 -0
- package/dist/kit/components/data-display/money-amount/money-amount.d.ts +27 -0
- package/dist/kit/components/data-display/money-amount/money-amount.js +91 -0
- package/dist/kit/components/data-display/progress/progress.d.ts +6 -0
- package/dist/kit/components/data-display/progress/progress.js +29 -0
- package/dist/kit/components/data-display/skeleton/skeleton.d.ts +3 -0
- package/dist/kit/components/data-display/skeleton/skeleton.js +8 -0
- package/dist/kit/components/data-display/sliding-number/sliding-number.d.ts +7 -0
- package/dist/kit/components/data-display/sliding-number/sliding-number.js +41 -0
- package/dist/kit/components/data-display/stepper/stepper.d.ts +61 -0
- package/dist/kit/components/data-display/stepper/stepper.js +230 -0
- package/dist/kit/components/data-display/table/table.d.ts +28 -0
- package/dist/kit/components/data-display/table/table.js +156 -0
- package/dist/kit/components/decorative/aurora-background/aurora-background.d.ts +7 -0
- package/dist/kit/components/decorative/aurora-background/aurora-background.js +60 -0
- package/dist/kit/components/decorative/grid-background/grid-background.d.ts +22 -0
- package/dist/kit/components/decorative/grid-background/grid-background.js +46 -0
- package/dist/kit/components/decorative/shimmering-text/shimmering-text.d.ts +29 -0
- package/dist/kit/components/decorative/shimmering-text/shimmering-text.js +64 -0
- package/dist/kit/components/decorative/text-reveal/text-reveal.d.ts +17 -0
- package/dist/kit/components/decorative/text-reveal/text-reveal.js +277 -0
- package/dist/kit/components/feedback/alert/alert.d.ts +21 -0
- package/dist/kit/components/feedback/alert/alert.js +236 -0
- package/dist/kit/components/feedback/alert-dialog/alert-dialog.d.ts +16 -0
- package/dist/kit/components/feedback/alert-dialog/alert-dialog.js +117 -0
- package/dist/kit/components/feedback/context-menu/context-menu.d.ts +24 -0
- package/dist/kit/components/feedback/context-menu/context-menu.js +183 -0
- package/dist/kit/components/feedback/dialog/dialog.d.ts +22 -0
- package/dist/kit/components/feedback/dialog/dialog.js +120 -0
- package/dist/kit/components/feedback/drawer/drawer.d.ts +13 -0
- package/dist/kit/components/feedback/drawer/drawer.js +76 -0
- package/dist/kit/components/feedback/dropdown-menu/dropdown-menu.d.ts +25 -0
- package/dist/kit/components/feedback/dropdown-menu/dropdown-menu.js +200 -0
- package/dist/kit/components/feedback/hover-card/hover-card.d.ts +6 -0
- package/dist/kit/components/feedback/hover-card/hover-card.js +34 -0
- package/dist/kit/components/feedback/popover/popover.d.ts +6 -0
- package/dist/kit/components/feedback/popover/popover.js +34 -0
- package/dist/kit/components/feedback/sheet/sheet.d.ts +22 -0
- package/dist/kit/components/feedback/sheet/sheet.js +128 -0
- package/dist/kit/components/feedback/sonner/sonner.d.ts +5 -0
- package/dist/kit/components/feedback/sonner/sonner.js +21 -0
- package/dist/kit/components/feedback/title-help/title-help.d.ts +10 -0
- package/dist/kit/components/feedback/title-help/title-help.js +44 -0
- package/dist/kit/components/feedback/tooltip/tooltip.d.ts +11 -0
- package/dist/kit/components/feedback/tooltip/tooltip.js +49 -0
- package/dist/kit/components/form/button/button.d.ts +23 -0
- package/dist/kit/components/form/button/button.js +380 -0
- package/dist/kit/components/form/calendar/calendar.d.ts +4 -0
- package/dist/kit/components/form/calendar/calendar.js +47 -0
- package/dist/kit/components/form/checkbox/checkbox.d.ts +8 -0
- package/dist/kit/components/form/checkbox/checkbox.js +39 -0
- package/dist/kit/components/form/command/command.d.ts +21 -0
- package/dist/kit/components/form/command/command.js +116 -0
- package/dist/kit/components/form/datefield/datefield.d.ts +14 -0
- package/dist/kit/components/form/datefield/datefield.js +74 -0
- package/dist/kit/components/form/file-upload/file-upload.d.ts +56 -0
- package/dist/kit/components/form/file-upload/file-upload.js +338 -0
- package/dist/kit/components/form/form/form.d.ts +24 -0
- package/dist/kit/components/form/form/form.js +86 -0
- package/dist/kit/components/form/input/input.d.ts +22 -0
- package/dist/kit/components/form/input/input.js +182 -0
- package/dist/kit/components/form/label/label.d.ts +8 -0
- package/dist/kit/components/form/label/label.js +28 -0
- package/dist/kit/components/form/radio-group/radio-group.d.ts +13 -0
- package/dist/kit/components/form/radio-group/radio-group.js +79 -0
- package/dist/kit/components/form/select/select.d.ts +25 -0
- package/dist/kit/components/form/select/select.js +194 -0
- package/dist/kit/components/form/slider/slider.d.ts +5 -0
- package/dist/kit/components/form/slider/slider.js +34 -0
- package/dist/kit/components/form/switch/switch.d.ts +20 -0
- package/dist/kit/components/form/switch/switch.js +158 -0
- package/dist/kit/components/form/textarea/textarea.d.ts +7 -0
- package/dist/kit/components/form/textarea/textarea.js +34 -0
- package/dist/kit/components/form/toggle/toggle.d.ts +9 -0
- package/dist/kit/components/form/toggle/toggle.js +36 -0
- package/dist/kit/components/form/toggle-group/toggle-group.d.ts +7 -0
- package/dist/kit/components/form/toggle-group/toggle-group.js +62 -0
- package/dist/kit/components/index.d.ts +108 -0
- package/dist/kit/components/layout/accordion/accordion.d.ts +13 -0
- package/dist/kit/components/layout/accordion/accordion.js +124 -0
- package/dist/kit/components/layout/aspect-ratio/aspect-ratio.d.ts +4 -0
- package/dist/kit/components/layout/aspect-ratio/aspect-ratio.js +8 -0
- package/dist/kit/components/layout/collapsible/collapsible.d.ts +6 -0
- package/dist/kit/components/layout/collapsible/collapsible.js +32 -0
- package/dist/kit/components/layout/resizable/resizable.d.ts +24 -0
- package/dist/kit/components/layout/resizable/resizable.js +32 -0
- package/dist/kit/components/layout/scroll-area/scroll-area.d.ts +8 -0
- package/dist/kit/components/layout/scroll-area/scroll-area.js +48 -0
- package/dist/kit/components/layout/separator/separator.d.ts +4 -0
- package/dist/kit/components/layout/separator/separator.js +23 -0
- package/dist/kit/components/navigation/accordion-menu/accordion-menu.d.ts +51 -0
- package/dist/kit/components/navigation/accordion-menu/accordion-menu.js +290 -0
- package/dist/kit/components/navigation/breadcrumb/breadcrumb.d.ts +13 -0
- package/dist/kit/components/navigation/breadcrumb/breadcrumb.js +76 -0
- package/dist/kit/components/navigation/menubar/menubar.d.ts +25 -0
- package/dist/kit/components/navigation/menubar/menubar.js +218 -0
- package/dist/kit/components/navigation/navigation-menu/navigation-menu.d.ts +14 -0
- package/dist/kit/components/navigation/navigation-menu/navigation-menu.js +137 -0
- package/dist/kit/components/navigation/pagination/pagination.d.ts +6 -0
- package/dist/kit/components/navigation/pagination/pagination.js +38 -0
- package/dist/kit/components/navigation/scrollspy/scrollspy.d.ts +14 -0
- package/dist/kit/components/navigation/scrollspy/scrollspy.js +84 -0
- package/dist/kit/components/navigation/tabs/tabs.d.ts +16 -0
- package/dist/kit/components/navigation/tabs/tabs.js +172 -0
- package/dist/kit/themes/theme-toggle.d.ts +1 -0
- package/dist/kit/themes/theme-toggle.js +56 -0
- package/dist/kit/tokens/chart-palette.d.ts +1 -0
- package/dist/kit/tokens/chart-palette.js +12 -0
- package/dist/lib/utils.d.ts +8 -0
- package/dist/lib/utils.js +8 -0
- package/dist/providers/demokit-provider.d.ts +4 -0
- package/dist/providers/demokit-provider.js +9 -0
- package/dist/providers/settings-provider.d.ts +15 -0
- package/dist/providers/settings-provider.js +78 -0
- package/dist/providers/theme-provider.d.ts +4 -0
- package/dist/providers/theme-provider.js +9 -0
- package/dist/providers/tooltips-provider.d.ts +4 -0
- package/dist/providers/tooltips-provider.js +8 -0
- package/dist/styles.css +237 -0
- package/package.json +72 -0
|
@@ -0,0 +1,356 @@
|
|
|
1
|
+
import { jsxs as b, jsx as o, Fragment as x } from "react/jsx-runtime";
|
|
2
|
+
import { Fragment as L } from "react";
|
|
3
|
+
import { Checkbox as m } from "../../form/checkbox/checkbox.js";
|
|
4
|
+
import { useDataGrid as s } from "./data-grid.js";
|
|
5
|
+
import { flexRender as p } from "@tanstack/react-table";
|
|
6
|
+
import { cva as h } from "class-variance-authority";
|
|
7
|
+
import { cn as c } from "../../../../lib/utils.js";
|
|
8
|
+
const w = h("", {
|
|
9
|
+
variants: {
|
|
10
|
+
size: {
|
|
11
|
+
dense: "px-2.5 h-8",
|
|
12
|
+
default: "px-4"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
defaultVariants: {
|
|
16
|
+
size: "default"
|
|
17
|
+
}
|
|
18
|
+
}), f = h("", {
|
|
19
|
+
variants: {
|
|
20
|
+
size: {
|
|
21
|
+
dense: "px-2.5 py-2",
|
|
22
|
+
default: "px-4 py-3"
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
defaultVariants: {
|
|
26
|
+
size: "default"
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
function y(t) {
|
|
30
|
+
const e = t.getIsPinned();
|
|
31
|
+
return {
|
|
32
|
+
left: e === "left" ? `${t.getStart("left")}px` : void 0,
|
|
33
|
+
right: e === "right" ? `${t.getAfter("right")}px` : void 0,
|
|
34
|
+
position: e ? "sticky" : "relative",
|
|
35
|
+
width: t.getSize(),
|
|
36
|
+
zIndex: e ? 1 : 0
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
function R({ children: t }) {
|
|
40
|
+
const { props: e } = s();
|
|
41
|
+
return /* @__PURE__ */ o(
|
|
42
|
+
"table",
|
|
43
|
+
{
|
|
44
|
+
"data-slot": "data-grid-table",
|
|
45
|
+
className: c(
|
|
46
|
+
"w-full align-middle caption-bottom text-left rtl:text-right text-foreground font-normal text-sm",
|
|
47
|
+
!e.tableLayout?.columnsDraggable && "border-separate border-spacing-0",
|
|
48
|
+
e.tableLayout?.width === "fixed" ? "table-fixed" : "table-auto",
|
|
49
|
+
e.tableClassNames?.base
|
|
50
|
+
),
|
|
51
|
+
children: t
|
|
52
|
+
}
|
|
53
|
+
);
|
|
54
|
+
}
|
|
55
|
+
function N({ children: t }) {
|
|
56
|
+
const { props: e } = s();
|
|
57
|
+
return /* @__PURE__ */ o(
|
|
58
|
+
"thead",
|
|
59
|
+
{
|
|
60
|
+
className: c(
|
|
61
|
+
e.tableClassNames?.header,
|
|
62
|
+
e.tableLayout?.headerSticky && e.tableClassNames?.headerSticky
|
|
63
|
+
),
|
|
64
|
+
children: t
|
|
65
|
+
}
|
|
66
|
+
);
|
|
67
|
+
}
|
|
68
|
+
function S({
|
|
69
|
+
children: t,
|
|
70
|
+
headerGroup: e
|
|
71
|
+
}) {
|
|
72
|
+
const { props: l } = s();
|
|
73
|
+
return /* @__PURE__ */ o(
|
|
74
|
+
"tr",
|
|
75
|
+
{
|
|
76
|
+
className: c(
|
|
77
|
+
"bg-muted/40",
|
|
78
|
+
l.tableLayout?.headerBorder && "[&>th]:border-b",
|
|
79
|
+
l.tableLayout?.cellBorder && "[&_>:last-child]:border-e-0",
|
|
80
|
+
l.tableLayout?.stripped && "bg-transparent",
|
|
81
|
+
l.tableLayout?.headerBackground === !1 && "bg-transparent",
|
|
82
|
+
l.tableClassNames?.headerRow
|
|
83
|
+
),
|
|
84
|
+
children: t
|
|
85
|
+
},
|
|
86
|
+
e.id
|
|
87
|
+
);
|
|
88
|
+
}
|
|
89
|
+
function z({
|
|
90
|
+
children: t,
|
|
91
|
+
header: e,
|
|
92
|
+
dndRef: l,
|
|
93
|
+
dndStyle: d
|
|
94
|
+
}) {
|
|
95
|
+
const { props: a } = s(), { column: n } = e, r = n.getIsPinned(), i = r === "left" && n.getIsLastColumn("left"), u = r === "right" && n.getIsFirstColumn("right"), g = w({
|
|
96
|
+
size: a.tableLayout?.dense ? "dense" : "default"
|
|
97
|
+
});
|
|
98
|
+
return /* @__PURE__ */ o(
|
|
99
|
+
"th",
|
|
100
|
+
{
|
|
101
|
+
ref: l,
|
|
102
|
+
style: {
|
|
103
|
+
...a.tableLayout?.width === "fixed" && {
|
|
104
|
+
width: `${e.getSize()}px`
|
|
105
|
+
},
|
|
106
|
+
...a.tableLayout?.columnsPinnable && n.getCanPin() && y(n),
|
|
107
|
+
...d || null
|
|
108
|
+
},
|
|
109
|
+
"data-pinned": r || void 0,
|
|
110
|
+
"data-last-col": i ? "left" : u ? "right" : void 0,
|
|
111
|
+
className: c(
|
|
112
|
+
"relative h-10 text-left rtl:text-right align-middle font-normal text-accent-foreground [&:has([role=checkbox])]:pe-0",
|
|
113
|
+
g,
|
|
114
|
+
a.tableLayout?.cellBorder && "border-e",
|
|
115
|
+
a.tableLayout?.columnsResizable && n.getCanResize() && "truncate",
|
|
116
|
+
a.tableLayout?.columnsPinnable && n.getCanPin() && "[&:not([data-pinned]):has(+[data-pinned])_div.cursor-col-resize:last-child]:opacity-0 [&[data-last-col=left]_div.cursor-col-resize:last-child]:opacity-0 [&[data-pinned=left][data-last-col=left]]:border-e! [&[data-pinned=right]:last-child_div.cursor-col-resize:last-child]:opacity-0 [&[data-pinned=right][data-last-col=right]]:border-s! [&[data-pinned][data-last-col]]:border-border data-pinned:bg-muted/90 data-pinned:backdrop-blur-xs",
|
|
117
|
+
e.column.columnDef.meta?.headerClassName,
|
|
118
|
+
n.getIndex() === 0 || n.getIndex() === e.headerGroup.headers.length - 1 ? a.tableClassNames?.edgeCell : ""
|
|
119
|
+
),
|
|
120
|
+
children: t
|
|
121
|
+
},
|
|
122
|
+
e.id
|
|
123
|
+
);
|
|
124
|
+
}
|
|
125
|
+
function v({ header: t }) {
|
|
126
|
+
const { column: e } = t;
|
|
127
|
+
return /* @__PURE__ */ o(
|
|
128
|
+
"div",
|
|
129
|
+
{
|
|
130
|
+
onDoubleClick: () => e.resetSize(),
|
|
131
|
+
onMouseDown: t.getResizeHandler(),
|
|
132
|
+
onTouchStart: t.getResizeHandler(),
|
|
133
|
+
className: "absolute top-0 h-full w-4 cursor-col-resize user-select-none touch-none -end-2 z-10 flex justify-center before:absolute before:w-px before:inset-y-0 before:bg-border before:-translate-x-px"
|
|
134
|
+
}
|
|
135
|
+
);
|
|
136
|
+
}
|
|
137
|
+
function D() {
|
|
138
|
+
return /* @__PURE__ */ o("tbody", { "aria-hidden": "true", className: "h-2" });
|
|
139
|
+
}
|
|
140
|
+
function k({ children: t }) {
|
|
141
|
+
const { props: e } = s();
|
|
142
|
+
return /* @__PURE__ */ o(
|
|
143
|
+
"tbody",
|
|
144
|
+
{
|
|
145
|
+
className: c(
|
|
146
|
+
"[&_tr:last-child]:border-0",
|
|
147
|
+
e.tableLayout?.rowRounded && "[&_td:first-child]:rounded-s-lg [&_td:last-child]:rounded-e-lg",
|
|
148
|
+
e.tableClassNames?.body
|
|
149
|
+
),
|
|
150
|
+
children: t
|
|
151
|
+
}
|
|
152
|
+
);
|
|
153
|
+
}
|
|
154
|
+
function P({ children: t }) {
|
|
155
|
+
const { table: e, props: l } = s();
|
|
156
|
+
return /* @__PURE__ */ o(
|
|
157
|
+
"tr",
|
|
158
|
+
{
|
|
159
|
+
className: c(
|
|
160
|
+
"hover:bg-muted/40 data-[state=selected]:bg-muted/50",
|
|
161
|
+
l.onRowClick && "cursor-pointer",
|
|
162
|
+
!l.tableLayout?.stripped && l.tableLayout?.rowBorder && "border-b border-border [&:not(:last-child)>td]:border-b",
|
|
163
|
+
l.tableLayout?.cellBorder && "[&_>:last-child]:border-e-0",
|
|
164
|
+
l.tableLayout?.stripped && "odd:bg-muted/90 hover:bg-transparent odd:hover:bg-muted",
|
|
165
|
+
e.options.enableRowSelection && "[&_>:first-child]:relative",
|
|
166
|
+
l.tableClassNames?.bodyRow
|
|
167
|
+
),
|
|
168
|
+
children: t
|
|
169
|
+
}
|
|
170
|
+
);
|
|
171
|
+
}
|
|
172
|
+
function B({ children: t, column: e }) {
|
|
173
|
+
const { props: l, table: d } = s(), a = f({
|
|
174
|
+
size: l.tableLayout?.dense ? "dense" : "default"
|
|
175
|
+
});
|
|
176
|
+
return /* @__PURE__ */ o(
|
|
177
|
+
"td",
|
|
178
|
+
{
|
|
179
|
+
className: c(
|
|
180
|
+
"align-middle",
|
|
181
|
+
a,
|
|
182
|
+
l.tableLayout?.cellBorder && "border-e",
|
|
183
|
+
l.tableLayout?.columnsResizable && e.getCanResize() && "truncate",
|
|
184
|
+
e.columnDef.meta?.cellClassName,
|
|
185
|
+
l.tableLayout?.columnsPinnable && e.getCanPin() && '[&[data-pinned=left][data-last-col=left]]:border-e! [&[data-pinned=right][data-last-col=right]]:border-s! [&[data-pinned][data-last-col]]:border-border data-pinned:bg-background/90 data-pinned:backdrop-blur-xs"',
|
|
186
|
+
e.getIndex() === 0 || e.getIndex() === d.getVisibleFlatColumns().length - 1 ? l.tableClassNames?.edgeCell : ""
|
|
187
|
+
),
|
|
188
|
+
children: t
|
|
189
|
+
}
|
|
190
|
+
);
|
|
191
|
+
}
|
|
192
|
+
function I({
|
|
193
|
+
children: t,
|
|
194
|
+
row: e,
|
|
195
|
+
dndRef: l,
|
|
196
|
+
dndStyle: d
|
|
197
|
+
}) {
|
|
198
|
+
const { props: a, table: n } = s();
|
|
199
|
+
return /* @__PURE__ */ o(
|
|
200
|
+
"tr",
|
|
201
|
+
{
|
|
202
|
+
ref: l,
|
|
203
|
+
style: { ...d || null },
|
|
204
|
+
"data-state": n.options.enableRowSelection && e.getIsSelected() ? "selected" : void 0,
|
|
205
|
+
onClick: () => a.onRowClick && a.onRowClick(e.original),
|
|
206
|
+
className: c(
|
|
207
|
+
"hover:bg-muted/40 data-[state=selected]:bg-muted/50",
|
|
208
|
+
a.onRowClick && "cursor-pointer",
|
|
209
|
+
!a.tableLayout?.stripped && a.tableLayout?.rowBorder && "border-b border-border [&:not(:last-child)>td]:border-b",
|
|
210
|
+
a.tableLayout?.cellBorder && "[&_>:last-child]:border-e-0",
|
|
211
|
+
a.tableLayout?.stripped && "odd:bg-muted/90 hover:bg-transparent odd:hover:bg-muted",
|
|
212
|
+
n.options.enableRowSelection && "[&_>:first-child]:relative",
|
|
213
|
+
a.tableClassNames?.bodyRow
|
|
214
|
+
),
|
|
215
|
+
children: t
|
|
216
|
+
}
|
|
217
|
+
);
|
|
218
|
+
}
|
|
219
|
+
function G({ row: t }) {
|
|
220
|
+
const { props: e, table: l } = s();
|
|
221
|
+
return /* @__PURE__ */ o("tr", { className: c(e.tableLayout?.rowBorder && "[&:not(:last-child)>td]:border-b"), children: /* @__PURE__ */ o("td", { colSpan: t.getVisibleCells().length, children: l.getAllColumns().find((d) => d.columnDef.meta?.expandedContent)?.columnDef.meta?.expandedContent?.(t.original) }) });
|
|
222
|
+
}
|
|
223
|
+
function T({
|
|
224
|
+
children: t,
|
|
225
|
+
cell: e,
|
|
226
|
+
dndRef: l,
|
|
227
|
+
dndStyle: d
|
|
228
|
+
}) {
|
|
229
|
+
const { props: a } = s(), { column: n, row: r } = e, i = n.getIsPinned(), u = i === "left" && n.getIsLastColumn("left"), g = i === "right" && n.getIsFirstColumn("right"), C = f({
|
|
230
|
+
size: a.tableLayout?.dense ? "dense" : "default"
|
|
231
|
+
});
|
|
232
|
+
return /* @__PURE__ */ o(
|
|
233
|
+
"td",
|
|
234
|
+
{
|
|
235
|
+
ref: l,
|
|
236
|
+
...a.tableLayout?.columnsDraggable && !i ? { cell: e } : {},
|
|
237
|
+
style: {
|
|
238
|
+
...a.tableLayout?.columnsPinnable && n.getCanPin() && y(n),
|
|
239
|
+
...d || null
|
|
240
|
+
},
|
|
241
|
+
"data-pinned": i || void 0,
|
|
242
|
+
"data-last-col": u ? "left" : g ? "right" : void 0,
|
|
243
|
+
className: c(
|
|
244
|
+
"align-middle",
|
|
245
|
+
C,
|
|
246
|
+
a.tableLayout?.cellBorder && "border-e",
|
|
247
|
+
a.tableLayout?.columnsResizable && n.getCanResize() && "truncate",
|
|
248
|
+
e.column.columnDef.meta?.cellClassName,
|
|
249
|
+
a.tableLayout?.columnsPinnable && n.getCanPin() && '[&[data-pinned=left][data-last-col=left]]:border-e! [&[data-pinned=right][data-last-col=right]]:border-s! [&[data-pinned][data-last-col]]:border-border data-pinned:bg-background/90 data-pinned:backdrop-blur-xs"',
|
|
250
|
+
n.getIndex() === 0 || n.getIndex() === r.getVisibleCells().length - 1 ? a.tableClassNames?.edgeCell : ""
|
|
251
|
+
),
|
|
252
|
+
children: t
|
|
253
|
+
},
|
|
254
|
+
e.id
|
|
255
|
+
);
|
|
256
|
+
}
|
|
257
|
+
function _() {
|
|
258
|
+
const { table: t, props: e } = s(), l = t.getAllColumns().length;
|
|
259
|
+
return /* @__PURE__ */ o("tr", { children: /* @__PURE__ */ o("td", { colSpan: l, className: "text-center text-muted-foreground py-6", children: e.emptyMessage || "No data available" }) });
|
|
260
|
+
}
|
|
261
|
+
function E() {
|
|
262
|
+
const { props: t } = s();
|
|
263
|
+
return /* @__PURE__ */ o("div", { className: "absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2", children: /* @__PURE__ */ b("div", { className: "text-muted-foreground bg-card flex items-center gap-2 px-4 py-2 font-medium leading-none text-sm border shadow-xs rounded-md", children: [
|
|
264
|
+
/* @__PURE__ */ b(
|
|
265
|
+
"svg",
|
|
266
|
+
{
|
|
267
|
+
className: "animate-spin -ml-1 h-5 w-5 text-muted-foreground",
|
|
268
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
269
|
+
fill: "none",
|
|
270
|
+
viewBox: "0 0 24 24",
|
|
271
|
+
children: [
|
|
272
|
+
/* @__PURE__ */ o("circle", { className: "opacity-25", cx: "12", cy: "12", r: "10", stroke: "currentColor", strokeWidth: "3" }),
|
|
273
|
+
/* @__PURE__ */ o(
|
|
274
|
+
"path",
|
|
275
|
+
{
|
|
276
|
+
className: "opacity-75",
|
|
277
|
+
fill: "currentColor",
|
|
278
|
+
d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"
|
|
279
|
+
}
|
|
280
|
+
)
|
|
281
|
+
]
|
|
282
|
+
}
|
|
283
|
+
),
|
|
284
|
+
t.loadingMessage || "Loading..."
|
|
285
|
+
] }) });
|
|
286
|
+
}
|
|
287
|
+
function W({ row: t, size: e }) {
|
|
288
|
+
return /* @__PURE__ */ b(x, { children: [
|
|
289
|
+
/* @__PURE__ */ o(
|
|
290
|
+
"div",
|
|
291
|
+
{
|
|
292
|
+
className: c("hidden absolute top-0 bottom-0 start-0 w-[2px] bg-primary", t.getIsSelected() && "block")
|
|
293
|
+
}
|
|
294
|
+
),
|
|
295
|
+
/* @__PURE__ */ o(
|
|
296
|
+
m,
|
|
297
|
+
{
|
|
298
|
+
checked: t.getIsSelected(),
|
|
299
|
+
onCheckedChange: (l) => t.toggleSelected(!!l),
|
|
300
|
+
"aria-label": "Select row",
|
|
301
|
+
size: e ?? "sm",
|
|
302
|
+
className: "align-[inherit]"
|
|
303
|
+
}
|
|
304
|
+
)
|
|
305
|
+
] });
|
|
306
|
+
}
|
|
307
|
+
function q({ size: t }) {
|
|
308
|
+
const { table: e, recordCount: l, isLoading: d } = s();
|
|
309
|
+
return /* @__PURE__ */ o(
|
|
310
|
+
m,
|
|
311
|
+
{
|
|
312
|
+
checked: e.getIsAllPageRowsSelected() || e.getIsSomePageRowsSelected() && "indeterminate",
|
|
313
|
+
disabled: d || l === 0,
|
|
314
|
+
onCheckedChange: (a) => e.toggleAllPageRowsSelected(!!a),
|
|
315
|
+
"aria-label": "Select all",
|
|
316
|
+
size: t,
|
|
317
|
+
className: "align-[inherit]"
|
|
318
|
+
}
|
|
319
|
+
);
|
|
320
|
+
}
|
|
321
|
+
function J() {
|
|
322
|
+
const { table: t, isLoading: e, props: l } = s(), d = t.getState().pagination;
|
|
323
|
+
return /* @__PURE__ */ b(R, { children: [
|
|
324
|
+
/* @__PURE__ */ o(N, { children: t.getHeaderGroups().map((a, n) => /* @__PURE__ */ o(S, { headerGroup: a, children: a.headers.map((r, i) => {
|
|
325
|
+
const { column: u } = r;
|
|
326
|
+
return /* @__PURE__ */ b(z, { header: r, children: [
|
|
327
|
+
r.isPlaceholder ? null : p(r.column.columnDef.header, r.getContext()),
|
|
328
|
+
l.tableLayout?.columnsResizable && u.getCanResize() && /* @__PURE__ */ o(v, { header: r })
|
|
329
|
+
] }, i);
|
|
330
|
+
}) }, n)) }),
|
|
331
|
+
(l.tableLayout?.stripped || !l.tableLayout?.rowBorder) && /* @__PURE__ */ o(D, {}),
|
|
332
|
+
/* @__PURE__ */ o(k, { children: l.loadingMode === "skeleton" && e && d?.pageSize ? Array.from({ length: d.pageSize }).map((a, n) => /* @__PURE__ */ o(P, { children: t.getVisibleFlatColumns().map((r, i) => /* @__PURE__ */ o(B, { column: r, children: r.columnDef.meta?.skeleton }, i)) }, n)) : t.getRowModel().rows.length ? t.getRowModel().rows.map((a, n) => /* @__PURE__ */ b(L, { children: [
|
|
333
|
+
/* @__PURE__ */ o(I, { row: a, children: a.getVisibleCells().map((r, i) => /* @__PURE__ */ o(T, { cell: r, children: p(r.column.columnDef.cell, r.getContext()) }, i)) }, n),
|
|
334
|
+
a.getIsExpanded() && /* @__PURE__ */ o(G, { row: a })
|
|
335
|
+
] }, a.id)) : /* @__PURE__ */ o(_, {}) })
|
|
336
|
+
] });
|
|
337
|
+
}
|
|
338
|
+
export {
|
|
339
|
+
J as DataGridTable,
|
|
340
|
+
R as DataGridTableBase,
|
|
341
|
+
k as DataGridTableBody,
|
|
342
|
+
I as DataGridTableBodyRow,
|
|
343
|
+
T as DataGridTableBodyRowCell,
|
|
344
|
+
G as DataGridTableBodyRowExpandded,
|
|
345
|
+
P as DataGridTableBodyRowSkeleton,
|
|
346
|
+
B as DataGridTableBodyRowSkeletonCell,
|
|
347
|
+
_ as DataGridTableEmpty,
|
|
348
|
+
N as DataGridTableHead,
|
|
349
|
+
S as DataGridTableHeadRow,
|
|
350
|
+
z as DataGridTableHeadRowCell,
|
|
351
|
+
v as DataGridTableHeadRowCellResize,
|
|
352
|
+
E as DataGridTableLoader,
|
|
353
|
+
W as DataGridTableRowSelect,
|
|
354
|
+
q as DataGridTableRowSelectAll,
|
|
355
|
+
D as DataGridTableRowSpacer
|
|
356
|
+
};
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { ColumnFiltersState, RowData, SortingState, Table } from '@tanstack/react-table';
|
|
3
|
+
declare module '@tanstack/react-table' {
|
|
4
|
+
interface ColumnMeta<TData extends RowData, TValue> {
|
|
5
|
+
headerTitle?: string;
|
|
6
|
+
headerClassName?: string;
|
|
7
|
+
cellClassName?: string;
|
|
8
|
+
skeleton?: ReactNode;
|
|
9
|
+
expandedContent?: (row: TData) => ReactNode;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
export type DataGridApiFetchParams = {
|
|
13
|
+
pageIndex: number;
|
|
14
|
+
pageSize: number;
|
|
15
|
+
sorting?: SortingState;
|
|
16
|
+
filters?: ColumnFiltersState;
|
|
17
|
+
searchQuery?: string;
|
|
18
|
+
};
|
|
19
|
+
export type DataGridApiResponse<T> = {
|
|
20
|
+
data: T[];
|
|
21
|
+
empty: boolean;
|
|
22
|
+
pagination: {
|
|
23
|
+
total: number;
|
|
24
|
+
page: number;
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
export interface DataGridContextProps<TData extends object> {
|
|
28
|
+
props: DataGridProps<TData>;
|
|
29
|
+
table: Table<TData>;
|
|
30
|
+
recordCount: number;
|
|
31
|
+
isLoading: boolean;
|
|
32
|
+
}
|
|
33
|
+
export type DataGridRequestParams = {
|
|
34
|
+
pageIndex: number;
|
|
35
|
+
pageSize: number;
|
|
36
|
+
sorting?: SortingState;
|
|
37
|
+
columnFilters?: ColumnFiltersState;
|
|
38
|
+
};
|
|
39
|
+
export interface DataGridProps<TData extends object> {
|
|
40
|
+
className?: string;
|
|
41
|
+
table?: Table<TData>;
|
|
42
|
+
recordCount: number;
|
|
43
|
+
children?: ReactNode;
|
|
44
|
+
onRowClick?: (row: TData) => void;
|
|
45
|
+
isLoading?: boolean;
|
|
46
|
+
loadingMode?: 'skeleton' | 'spinner';
|
|
47
|
+
loadingMessage?: ReactNode | string;
|
|
48
|
+
emptyMessage?: ReactNode | string;
|
|
49
|
+
tableLayout?: {
|
|
50
|
+
dense?: boolean;
|
|
51
|
+
cellBorder?: boolean;
|
|
52
|
+
rowBorder?: boolean;
|
|
53
|
+
rowRounded?: boolean;
|
|
54
|
+
stripped?: boolean;
|
|
55
|
+
headerBackground?: boolean;
|
|
56
|
+
headerBorder?: boolean;
|
|
57
|
+
headerSticky?: boolean;
|
|
58
|
+
width?: 'auto' | 'fixed';
|
|
59
|
+
columnsVisibility?: boolean;
|
|
60
|
+
columnsResizable?: boolean;
|
|
61
|
+
columnsPinnable?: boolean;
|
|
62
|
+
columnsMovable?: boolean;
|
|
63
|
+
columnsDraggable?: boolean;
|
|
64
|
+
rowsDraggable?: boolean;
|
|
65
|
+
};
|
|
66
|
+
tableClassNames?: {
|
|
67
|
+
base?: string;
|
|
68
|
+
header?: string;
|
|
69
|
+
headerRow?: string;
|
|
70
|
+
headerSticky?: string;
|
|
71
|
+
body?: string;
|
|
72
|
+
bodyRow?: string;
|
|
73
|
+
footer?: string;
|
|
74
|
+
edgeCell?: string;
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
declare function useDataGrid(): DataGridContextProps<any>;
|
|
78
|
+
declare function DataGridProvider<TData extends object>({ children, table, ...props }: DataGridProps<TData> & {
|
|
79
|
+
table: Table<TData>;
|
|
80
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
81
|
+
declare function DataGrid<TData extends object>({ children, table, ...props }: DataGridProps<TData>): import("react/jsx-runtime").JSX.Element;
|
|
82
|
+
declare function DataGridContainer({ children, className, border, }: {
|
|
83
|
+
children: ReactNode;
|
|
84
|
+
className?: string;
|
|
85
|
+
border?: boolean;
|
|
86
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
87
|
+
export { useDataGrid, DataGridProvider, DataGrid, DataGridContainer };
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { jsx as o } from "react/jsx-runtime";
|
|
2
|
+
import { useContext as l, createContext as i } from "react";
|
|
3
|
+
import { cn as n } from "../../../../lib/utils.js";
|
|
4
|
+
const d = i(void 0);
|
|
5
|
+
function m() {
|
|
6
|
+
const r = l(d);
|
|
7
|
+
if (!r)
|
|
8
|
+
throw new Error("useDataGrid must be used within a DataGridProvider");
|
|
9
|
+
return r;
|
|
10
|
+
}
|
|
11
|
+
function u({
|
|
12
|
+
children: r,
|
|
13
|
+
table: a,
|
|
14
|
+
...e
|
|
15
|
+
}) {
|
|
16
|
+
return /* @__PURE__ */ o(
|
|
17
|
+
d.Provider,
|
|
18
|
+
{
|
|
19
|
+
value: {
|
|
20
|
+
props: e,
|
|
21
|
+
table: a,
|
|
22
|
+
recordCount: e.recordCount,
|
|
23
|
+
isLoading: e.isLoading || !1
|
|
24
|
+
},
|
|
25
|
+
children: r
|
|
26
|
+
}
|
|
27
|
+
);
|
|
28
|
+
}
|
|
29
|
+
function g({ children: r, table: a, ...e }) {
|
|
30
|
+
const t = {
|
|
31
|
+
loadingMode: "skeleton",
|
|
32
|
+
tableLayout: {
|
|
33
|
+
dense: !1,
|
|
34
|
+
cellBorder: !1,
|
|
35
|
+
rowBorder: !0,
|
|
36
|
+
rowRounded: !1,
|
|
37
|
+
stripped: !1,
|
|
38
|
+
headerSticky: !1,
|
|
39
|
+
headerBackground: !0,
|
|
40
|
+
headerBorder: !0,
|
|
41
|
+
width: "fixed",
|
|
42
|
+
columnsVisibility: !1,
|
|
43
|
+
columnsResizable: !1,
|
|
44
|
+
columnsPinnable: !1,
|
|
45
|
+
columnsMovable: !1,
|
|
46
|
+
columnsDraggable: !1,
|
|
47
|
+
rowsDraggable: !1
|
|
48
|
+
},
|
|
49
|
+
tableClassNames: {
|
|
50
|
+
base: "",
|
|
51
|
+
header: "",
|
|
52
|
+
headerRow: "",
|
|
53
|
+
headerSticky: "sticky top-0 z-10 bg-background/90 backdrop-blur-xs",
|
|
54
|
+
body: "",
|
|
55
|
+
bodyRow: "",
|
|
56
|
+
footer: "",
|
|
57
|
+
edgeCell: ""
|
|
58
|
+
}
|
|
59
|
+
}, s = {
|
|
60
|
+
...t,
|
|
61
|
+
...e,
|
|
62
|
+
tableLayout: {
|
|
63
|
+
...t.tableLayout,
|
|
64
|
+
...e.tableLayout || {}
|
|
65
|
+
},
|
|
66
|
+
tableClassNames: {
|
|
67
|
+
...t.tableClassNames,
|
|
68
|
+
...e.tableClassNames || {}
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
if (!a)
|
|
72
|
+
throw new Error('DataGrid requires a "table" prop');
|
|
73
|
+
return /* @__PURE__ */ o(u, { table: a, ...s, children: r });
|
|
74
|
+
}
|
|
75
|
+
function w({
|
|
76
|
+
children: r,
|
|
77
|
+
className: a,
|
|
78
|
+
border: e = !0
|
|
79
|
+
}) {
|
|
80
|
+
return /* @__PURE__ */ o("div", { "data-slot": "data-grid", className: n("grid w-full", e && "border border-border rounded-lg", a), children: r });
|
|
81
|
+
}
|
|
82
|
+
export {
|
|
83
|
+
g as DataGrid,
|
|
84
|
+
w as DataGridContainer,
|
|
85
|
+
u as DataGridProvider,
|
|
86
|
+
m as useDataGrid
|
|
87
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { VariantProps } from 'class-variance-authority';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
declare const kbdVariants: (props?: ({
|
|
4
|
+
variant?: "default" | "outline" | null | undefined;
|
|
5
|
+
size?: "sm" | "md" | "xs" | null | undefined;
|
|
6
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
7
|
+
declare function Kbd({ className, variant, size, ...props }: React.ComponentProps<'kbd'> & VariantProps<typeof kbdVariants>): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export { Kbd, kbdVariants };
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { jsx as i } from "react/jsx-runtime";
|
|
2
|
+
import { cn as o } from "../../../../lib/utils.js";
|
|
3
|
+
import { cva as a } from "class-variance-authority";
|
|
4
|
+
const d = a("inline-flex items-center justify-center font-mono rounded-md", {
|
|
5
|
+
variants: {
|
|
6
|
+
variant: {
|
|
7
|
+
default: "bg-accent border border-border text-accent-foreground",
|
|
8
|
+
outline: "text-accent-foreground border border-input"
|
|
9
|
+
},
|
|
10
|
+
size: {
|
|
11
|
+
md: "h-7 min-w-7 px-1.5 text-xs [&_svg]:size-3.5",
|
|
12
|
+
sm: "h-6 min-w-6 px-1 text-[0.75rem] leading-[0.75rem] [&_svg]:size-3",
|
|
13
|
+
xs: "h-5 min-w-5 px-1 text-[0.6875rem] leading-[0.75rem] [&_svg]:size-3"
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
defaultVariants: {
|
|
17
|
+
variant: "default",
|
|
18
|
+
size: "md"
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
function x({ className: e, variant: t, size: r, ...n }) {
|
|
22
|
+
return /* @__PURE__ */ i("kbd", { "data-slot": "kbd", className: o(d({ variant: t, size: r }), e), ...n });
|
|
23
|
+
}
|
|
24
|
+
export {
|
|
25
|
+
x as Kbd,
|
|
26
|
+
d as kbdVariants
|
|
27
|
+
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
type MoneyUnit = 'auto' | 'yuan' | 'wan' | 'yi';
|
|
3
|
+
type ResolvedMoneyUnit = Exclude<MoneyUnit, 'auto'>;
|
|
4
|
+
declare const MONEY_UNIT_LABELS: Record<ResolvedMoneyUnit, string>;
|
|
5
|
+
export type FormattedMoneyAmount = {
|
|
6
|
+
raw: number;
|
|
7
|
+
value: number;
|
|
8
|
+
displayValue: string;
|
|
9
|
+
unit: string;
|
|
10
|
+
unitKey: ResolvedMoneyUnit;
|
|
11
|
+
text: string;
|
|
12
|
+
};
|
|
13
|
+
export type FormatMoneyAmountOptions = {
|
|
14
|
+
unit?: MoneyUnit;
|
|
15
|
+
precision?: number;
|
|
16
|
+
keepTrailingZeros?: boolean;
|
|
17
|
+
locale?: string;
|
|
18
|
+
};
|
|
19
|
+
export type MoneyAmountProps = Omit<React.ComponentProps<'span'>, 'children'> & FormatMoneyAmountOptions & {
|
|
20
|
+
value: number | string | null | undefined;
|
|
21
|
+
fallback?: React.ReactNode;
|
|
22
|
+
valueClassName?: string;
|
|
23
|
+
unitClassName?: string;
|
|
24
|
+
};
|
|
25
|
+
declare function formatMoneyAmount(value: number | string | null | undefined, { unit, precision, keepTrailingZeros, locale, }?: FormatMoneyAmountOptions): FormattedMoneyAmount | null;
|
|
26
|
+
declare function MoneyAmount({ value, unit, precision, keepTrailingZeros, locale, fallback, className, valueClassName, unitClassName, ...props }: MoneyAmountProps): import("react/jsx-runtime").JSX.Element;
|
|
27
|
+
export { MoneyAmount, formatMoneyAmount, MONEY_UNIT_LABELS };
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { jsx as f, jsxs as d } from "react/jsx-runtime";
|
|
2
|
+
import { cn as l } from "../../../../lib/utils.js";
|
|
3
|
+
const N = {
|
|
4
|
+
yuan: "元",
|
|
5
|
+
wan: "万元",
|
|
6
|
+
yi: "亿元"
|
|
7
|
+
}, y = {
|
|
8
|
+
yuan: 1,
|
|
9
|
+
wan: 1e4,
|
|
10
|
+
yi: 1e8
|
|
11
|
+
};
|
|
12
|
+
function p(n) {
|
|
13
|
+
if (typeof n == "number")
|
|
14
|
+
return Number.isFinite(n) ? n : null;
|
|
15
|
+
if (typeof n != "string")
|
|
16
|
+
return null;
|
|
17
|
+
const e = n.replace(/[,\s¥¥]/g, ""), t = Number(e);
|
|
18
|
+
return Number.isFinite(t) ? t : null;
|
|
19
|
+
}
|
|
20
|
+
function b(n, e) {
|
|
21
|
+
if (e !== "auto")
|
|
22
|
+
return e;
|
|
23
|
+
const t = Math.abs(n);
|
|
24
|
+
return t >= y.yi ? "yi" : t >= y.wan ? "wan" : "yuan";
|
|
25
|
+
}
|
|
26
|
+
function x(n, {
|
|
27
|
+
unit: e = "auto",
|
|
28
|
+
precision: t = 2,
|
|
29
|
+
keepTrailingZeros: m = !1,
|
|
30
|
+
locale: c = "zh-CN"
|
|
31
|
+
} = {}) {
|
|
32
|
+
const a = p(n);
|
|
33
|
+
if (a === null)
|
|
34
|
+
return null;
|
|
35
|
+
const o = b(a, e), u = a / y[o], i = new Intl.NumberFormat(c, {
|
|
36
|
+
minimumFractionDigits: m ? t : 0,
|
|
37
|
+
maximumFractionDigits: t
|
|
38
|
+
}).format(u), r = N[o];
|
|
39
|
+
return {
|
|
40
|
+
raw: a,
|
|
41
|
+
value: u,
|
|
42
|
+
displayValue: i,
|
|
43
|
+
unit: r,
|
|
44
|
+
unitKey: o,
|
|
45
|
+
text: `${i}${r}`
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
function M({
|
|
49
|
+
value: n,
|
|
50
|
+
unit: e = "auto",
|
|
51
|
+
precision: t = 2,
|
|
52
|
+
keepTrailingZeros: m = !1,
|
|
53
|
+
locale: c = "zh-CN",
|
|
54
|
+
fallback: a = "-",
|
|
55
|
+
className: o,
|
|
56
|
+
valueClassName: u,
|
|
57
|
+
unitClassName: i,
|
|
58
|
+
...r
|
|
59
|
+
}) {
|
|
60
|
+
const s = x(n, {
|
|
61
|
+
unit: e,
|
|
62
|
+
precision: t,
|
|
63
|
+
keepTrailingZeros: m,
|
|
64
|
+
locale: c
|
|
65
|
+
});
|
|
66
|
+
return s ? /* @__PURE__ */ d(
|
|
67
|
+
"span",
|
|
68
|
+
{
|
|
69
|
+
"data-slot": "money-amount",
|
|
70
|
+
"aria-label": s.text,
|
|
71
|
+
className: l("inline-flex items-baseline gap-1 tabular-nums", o),
|
|
72
|
+
...r,
|
|
73
|
+
children: [
|
|
74
|
+
/* @__PURE__ */ f("span", { "data-slot": "money-amount-value", className: l("font-mono", u), children: s.displayValue }),
|
|
75
|
+
/* @__PURE__ */ f(
|
|
76
|
+
"span",
|
|
77
|
+
{
|
|
78
|
+
"data-slot": "money-amount-unit",
|
|
79
|
+
className: l("text-[0.68em] font-normal text-muted-foreground", i),
|
|
80
|
+
children: s.unit
|
|
81
|
+
}
|
|
82
|
+
)
|
|
83
|
+
]
|
|
84
|
+
}
|
|
85
|
+
) : /* @__PURE__ */ f("span", { "data-slot": "money-amount", className: l("text-muted-foreground", o), ...r, children: a });
|
|
86
|
+
}
|
|
87
|
+
export {
|
|
88
|
+
N as MONEY_UNIT_LABELS,
|
|
89
|
+
M as MoneyAmount,
|
|
90
|
+
x as formatMoneyAmount
|
|
91
|
+
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Progress as ProgressPrimitive } from 'radix-ui';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
declare function Progress({ className, indicatorClassName, value, ...props }: React.ComponentProps<typeof ProgressPrimitive.Root> & {
|
|
4
|
+
indicatorClassName?: string;
|
|
5
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
export { Progress };
|