@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,206 @@
|
|
|
1
|
+
import { jsx as o, jsxs as h, Fragment as P } from "react/jsx-runtime";
|
|
2
|
+
import * as f from "react";
|
|
3
|
+
import { cn as l } from "../../../../lib/utils.js";
|
|
4
|
+
import * as w from "recharts";
|
|
5
|
+
const y = f.createContext(null);
|
|
6
|
+
function j() {
|
|
7
|
+
const s = f.useContext(y);
|
|
8
|
+
if (!s)
|
|
9
|
+
throw new Error("useChart must be used within a <ChartContainer />");
|
|
10
|
+
return s;
|
|
11
|
+
}
|
|
12
|
+
const T = f.forwardRef(({ id: s, className: e, children: t, config: r, ...a }, i) => {
|
|
13
|
+
const d = f.useId(), c = `chart-${s || d.replace(/:/g, "")}`;
|
|
14
|
+
return /* @__PURE__ */ o(y.Provider, { value: { config: r }, children: /* @__PURE__ */ h(
|
|
15
|
+
"div",
|
|
16
|
+
{
|
|
17
|
+
"data-slot": "chart",
|
|
18
|
+
"data-chart": c,
|
|
19
|
+
ref: i,
|
|
20
|
+
className: l(
|
|
21
|
+
"[&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border flex aspect-video justify-center text-xs [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-sector]:outline-hidden [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-surface]:outline-hidden",
|
|
22
|
+
e
|
|
23
|
+
),
|
|
24
|
+
...a,
|
|
25
|
+
children: [
|
|
26
|
+
/* @__PURE__ */ o(I, { id: c, config: r }),
|
|
27
|
+
/* @__PURE__ */ o(w.ResponsiveContainer, { children: t })
|
|
28
|
+
]
|
|
29
|
+
}
|
|
30
|
+
) });
|
|
31
|
+
});
|
|
32
|
+
T.displayName = "Chart";
|
|
33
|
+
const I = ({ id: s, config: e }) => {
|
|
34
|
+
const t = Object.entries(e).filter(([, r]) => r.color);
|
|
35
|
+
return t.length ? /* @__PURE__ */ o(
|
|
36
|
+
"style",
|
|
37
|
+
{
|
|
38
|
+
dangerouslySetInnerHTML: {
|
|
39
|
+
__html: `
|
|
40
|
+
[data-chart=${s}] {
|
|
41
|
+
${t.map(([r, a]) => {
|
|
42
|
+
const i = a.color;
|
|
43
|
+
return i ? ` --color-${r}: ${i};` : null;
|
|
44
|
+
}).join(`
|
|
45
|
+
`)}
|
|
46
|
+
}
|
|
47
|
+
`
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
) : null;
|
|
51
|
+
}, E = w.Tooltip, K = f.forwardRef(
|
|
52
|
+
({
|
|
53
|
+
active: s,
|
|
54
|
+
payload: e,
|
|
55
|
+
className: t,
|
|
56
|
+
indicator: r = "dot",
|
|
57
|
+
hideLabel: a = !1,
|
|
58
|
+
hideIndicator: i = !1,
|
|
59
|
+
label: d,
|
|
60
|
+
labelFormatter: c,
|
|
61
|
+
labelClassName: m,
|
|
62
|
+
formatter: g,
|
|
63
|
+
color: L,
|
|
64
|
+
nameKey: $,
|
|
65
|
+
labelKey: x
|
|
66
|
+
}, R) => {
|
|
67
|
+
const { config: p } = j(), N = f.useMemo(() => {
|
|
68
|
+
if (a || !e?.length)
|
|
69
|
+
return null;
|
|
70
|
+
const [n] = e, b = `${x || n.dataKey || n.name || "value"}`, C = _(p, n, b), u = !x && typeof d == "string" ? p[d]?.label || d : C?.label;
|
|
71
|
+
return c ? /* @__PURE__ */ o("div", { className: l("font-medium", m), children: c(u, e) }) : u ? /* @__PURE__ */ o("div", { className: l("font-medium", m), children: u }) : null;
|
|
72
|
+
}, [d, c, e, a, m, p, x]);
|
|
73
|
+
if (!s || !e?.length)
|
|
74
|
+
return null;
|
|
75
|
+
const v = e.length === 1 && r !== "dot";
|
|
76
|
+
return /* @__PURE__ */ h(
|
|
77
|
+
"div",
|
|
78
|
+
{
|
|
79
|
+
ref: R,
|
|
80
|
+
className: l(
|
|
81
|
+
"border-border/50 bg-background grid min-w-[8rem] items-start gap-1.5 rounded-lg border px-2.5 py-1.5 text-xs shadow-xl",
|
|
82
|
+
t
|
|
83
|
+
),
|
|
84
|
+
children: [
|
|
85
|
+
v ? null : N,
|
|
86
|
+
/* @__PURE__ */ o("div", { className: "grid gap-1.5", children: e.map((n, b) => {
|
|
87
|
+
const C = `${$ || n.name || n.dataKey || "value"}`, u = _(p, n, C), k = L || n.payload.fill || n.color;
|
|
88
|
+
return /* @__PURE__ */ o(
|
|
89
|
+
"div",
|
|
90
|
+
{
|
|
91
|
+
className: l(
|
|
92
|
+
"[&>svg]:text-muted-foreground flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5",
|
|
93
|
+
r === "dot" && "items-center"
|
|
94
|
+
),
|
|
95
|
+
children: g && n?.value !== void 0 && n.name ? g(n.value, n.name, n, b, n.payload) : /* @__PURE__ */ h(P, { children: [
|
|
96
|
+
u?.icon ? /* @__PURE__ */ o(u.icon, {}) : !i && /* @__PURE__ */ o(
|
|
97
|
+
"div",
|
|
98
|
+
{
|
|
99
|
+
className: l("shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)", {
|
|
100
|
+
"h-2.5 w-2.5": r === "dot",
|
|
101
|
+
"w-1": r === "line",
|
|
102
|
+
"w-0 border-[1.5px] border-dashed bg-transparent": r === "dashed",
|
|
103
|
+
"my-0.5": v && r === "dashed"
|
|
104
|
+
}),
|
|
105
|
+
style: {
|
|
106
|
+
"--color-bg": k,
|
|
107
|
+
"--color-border": k
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
),
|
|
111
|
+
/* @__PURE__ */ h(
|
|
112
|
+
"div",
|
|
113
|
+
{
|
|
114
|
+
className: l(
|
|
115
|
+
"flex flex-1 justify-between leading-none",
|
|
116
|
+
v ? "items-end" : "items-center"
|
|
117
|
+
),
|
|
118
|
+
children: [
|
|
119
|
+
/* @__PURE__ */ h("div", { className: "grid gap-1.5", children: [
|
|
120
|
+
v ? N : null,
|
|
121
|
+
/* @__PURE__ */ o("span", { className: "text-muted-foreground", children: u?.label || n.name })
|
|
122
|
+
] }),
|
|
123
|
+
n.value && /* @__PURE__ */ o("span", { className: "text-foreground font-mono font-medium tabular-nums", children: n.value.toLocaleString() })
|
|
124
|
+
]
|
|
125
|
+
}
|
|
126
|
+
)
|
|
127
|
+
] })
|
|
128
|
+
},
|
|
129
|
+
n.dataKey
|
|
130
|
+
);
|
|
131
|
+
}) })
|
|
132
|
+
]
|
|
133
|
+
}
|
|
134
|
+
);
|
|
135
|
+
}
|
|
136
|
+
);
|
|
137
|
+
K.displayName = "ChartTooltip";
|
|
138
|
+
const H = w.Legend;
|
|
139
|
+
function O({
|
|
140
|
+
className: s,
|
|
141
|
+
children: e,
|
|
142
|
+
prefix: t = "单位:",
|
|
143
|
+
...r
|
|
144
|
+
}) {
|
|
145
|
+
return /* @__PURE__ */ h(
|
|
146
|
+
"span",
|
|
147
|
+
{
|
|
148
|
+
"data-slot": "chart-unit",
|
|
149
|
+
className: l("inline-flex items-baseline gap-0.5 text-xs font-normal text-muted-foreground", s),
|
|
150
|
+
...r,
|
|
151
|
+
children: [
|
|
152
|
+
/* @__PURE__ */ o("span", { children: t }),
|
|
153
|
+
/* @__PURE__ */ o("span", { children: e })
|
|
154
|
+
]
|
|
155
|
+
}
|
|
156
|
+
);
|
|
157
|
+
}
|
|
158
|
+
const S = f.forwardRef(({ className: s, hideIcon: e = !1, payload: t, verticalAlign: r = "bottom", nameKey: a }, i) => {
|
|
159
|
+
const { config: d } = j();
|
|
160
|
+
return t?.length ? /* @__PURE__ */ o(
|
|
161
|
+
"div",
|
|
162
|
+
{
|
|
163
|
+
ref: i,
|
|
164
|
+
className: l("flex items-center justify-center gap-4", r === "top" ? "pb-3" : "pt-3", s),
|
|
165
|
+
children: t.map((c) => {
|
|
166
|
+
const m = `${a || c.dataKey || "value"}`, g = _(d, c, m);
|
|
167
|
+
return /* @__PURE__ */ h(
|
|
168
|
+
"div",
|
|
169
|
+
{
|
|
170
|
+
className: l("[&>svg]:text-muted-foreground flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3"),
|
|
171
|
+
children: [
|
|
172
|
+
g?.icon && !e ? /* @__PURE__ */ o(g.icon, {}) : /* @__PURE__ */ o(
|
|
173
|
+
"div",
|
|
174
|
+
{
|
|
175
|
+
className: "h-2 w-2 shrink-0 rounded-[2px]",
|
|
176
|
+
style: {
|
|
177
|
+
backgroundColor: c.color
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
),
|
|
181
|
+
g?.label
|
|
182
|
+
]
|
|
183
|
+
},
|
|
184
|
+
c.value
|
|
185
|
+
);
|
|
186
|
+
})
|
|
187
|
+
}
|
|
188
|
+
) : null;
|
|
189
|
+
});
|
|
190
|
+
S.displayName = "ChartLegend";
|
|
191
|
+
function _(s, e, t) {
|
|
192
|
+
if (typeof e != "object" || e === null)
|
|
193
|
+
return;
|
|
194
|
+
const r = "payload" in e && typeof e.payload == "object" && e.payload !== null ? e.payload : void 0;
|
|
195
|
+
let a = t;
|
|
196
|
+
return t in e && typeof e[t] == "string" ? a = e[t] : r && t in r && typeof r[t] == "string" && (a = r[t]), a in s ? s[a] : s[t];
|
|
197
|
+
}
|
|
198
|
+
export {
|
|
199
|
+
T as ChartContainer,
|
|
200
|
+
H as ChartLegend,
|
|
201
|
+
S as ChartLegendContent,
|
|
202
|
+
I as ChartStyle,
|
|
203
|
+
E as ChartTooltip,
|
|
204
|
+
K as ChartTooltipContent,
|
|
205
|
+
O as ChartUnit
|
|
206
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export interface ActionBarProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
summary?: React.ReactNode;
|
|
4
|
+
secondaryActions?: React.ReactNode;
|
|
5
|
+
actions?: React.ReactNode;
|
|
6
|
+
sticky?: boolean;
|
|
7
|
+
align?: 'start' | 'between' | 'end';
|
|
8
|
+
}
|
|
9
|
+
declare function ActionBar({ className, summary, secondaryActions, actions, sticky, align, children, ...props }: ActionBarProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export { ActionBar };
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { jsxs as o, jsx as a } from "react/jsx-runtime";
|
|
2
|
+
import { cn as f } from "../../../../lib/utils.js";
|
|
3
|
+
function x({
|
|
4
|
+
className: d,
|
|
5
|
+
summary: t,
|
|
6
|
+
secondaryActions: r,
|
|
7
|
+
actions: s,
|
|
8
|
+
sticky: i,
|
|
9
|
+
align: e = "between",
|
|
10
|
+
children: m,
|
|
11
|
+
...n
|
|
12
|
+
}) {
|
|
13
|
+
return /* @__PURE__ */ o(
|
|
14
|
+
"div",
|
|
15
|
+
{
|
|
16
|
+
"data-slot": "action-bar",
|
|
17
|
+
className: f(
|
|
18
|
+
"flex flex-col gap-3 rounded-lg border border-border bg-card p-3 shadow-sm sm:flex-row sm:items-center",
|
|
19
|
+
e === "between" && "sm:justify-between",
|
|
20
|
+
e === "start" && "sm:justify-start",
|
|
21
|
+
e === "end" && "sm:justify-end",
|
|
22
|
+
i && "sticky bottom-4 z-20",
|
|
23
|
+
d
|
|
24
|
+
),
|
|
25
|
+
...n,
|
|
26
|
+
children: [
|
|
27
|
+
(t || m) && /* @__PURE__ */ a("div", { className: "min-w-0 flex-1 text-sm text-muted-foreground", children: t ?? m }),
|
|
28
|
+
(r || s) && /* @__PURE__ */ o("div", { className: "flex shrink-0 flex-wrap items-center gap-2", children: [
|
|
29
|
+
r,
|
|
30
|
+
s
|
|
31
|
+
] })
|
|
32
|
+
]
|
|
33
|
+
}
|
|
34
|
+
);
|
|
35
|
+
}
|
|
36
|
+
export {
|
|
37
|
+
x as ActionBar
|
|
38
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export interface ActionCardProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> {
|
|
3
|
+
title: React.ReactNode;
|
|
4
|
+
description?: React.ReactNode;
|
|
5
|
+
icon?: React.ComponentType<{
|
|
6
|
+
className?: string;
|
|
7
|
+
}>;
|
|
8
|
+
action?: React.ReactNode;
|
|
9
|
+
secondaryAction?: React.ReactNode;
|
|
10
|
+
tone?: 'default' | 'primary' | 'muted';
|
|
11
|
+
}
|
|
12
|
+
declare function ActionCard({ className, title, description, icon: Icon, action, secondaryAction, tone, children, ...props }: ActionCardProps): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
export { ActionCard };
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { jsx as e, jsxs as r } from "react/jsx-runtime";
|
|
2
|
+
import { cn as f } from "../../../../lib/utils.js";
|
|
3
|
+
import { Card as o, CardContent as p } from "../../data-display/card/card.js";
|
|
4
|
+
import { TitleHelp as x } from "../../feedback/title-help/title-help.js";
|
|
5
|
+
function y({ className: t, title: l, description: c, icon: i, action: a, secondaryAction: s, tone: m = "default", children: d, ...n }) {
|
|
6
|
+
return /* @__PURE__ */ e(
|
|
7
|
+
o,
|
|
8
|
+
{
|
|
9
|
+
"data-slot": "action-card",
|
|
10
|
+
className: f(
|
|
11
|
+
"card-surface",
|
|
12
|
+
m === "primary" && "border-primary/30 bg-primary/5",
|
|
13
|
+
m === "muted" && "bg-muted/50",
|
|
14
|
+
t
|
|
15
|
+
),
|
|
16
|
+
...n,
|
|
17
|
+
children: /* @__PURE__ */ r(p, { className: "flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between", children: [
|
|
18
|
+
/* @__PURE__ */ r("div", { className: "flex min-w-0 items-center gap-3", children: [
|
|
19
|
+
i && /* @__PURE__ */ e("div", { className: "flex size-10 shrink-0 items-center justify-center rounded-lg bg-primary/10 text-primary", children: /* @__PURE__ */ e(i, { className: "size-5" }) }),
|
|
20
|
+
/* @__PURE__ */ r("div", { className: "space-y-1", children: [
|
|
21
|
+
/* @__PURE__ */ e("div", { className: "font-medium text-foreground", children: /* @__PURE__ */ e(x, { help: c, children: l }) }),
|
|
22
|
+
d
|
|
23
|
+
] })
|
|
24
|
+
] }),
|
|
25
|
+
(a || s) && /* @__PURE__ */ r("div", { className: "flex shrink-0 flex-wrap items-center gap-2", children: [
|
|
26
|
+
s,
|
|
27
|
+
a
|
|
28
|
+
] })
|
|
29
|
+
] })
|
|
30
|
+
}
|
|
31
|
+
);
|
|
32
|
+
}
|
|
33
|
+
export {
|
|
34
|
+
y as ActionCard
|
|
35
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export interface ActivityFeedItem {
|
|
3
|
+
id: React.Key;
|
|
4
|
+
actor: React.ReactNode;
|
|
5
|
+
action: React.ReactNode;
|
|
6
|
+
time?: React.ReactNode;
|
|
7
|
+
description?: React.ReactNode;
|
|
8
|
+
avatarSrc?: string;
|
|
9
|
+
avatarFallback?: string;
|
|
10
|
+
meta?: React.ReactNode;
|
|
11
|
+
}
|
|
12
|
+
export interface ActivityFeedProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
13
|
+
items: ActivityFeedItem[];
|
|
14
|
+
renderItem?: (item: ActivityFeedItem) => React.ReactNode;
|
|
15
|
+
}
|
|
16
|
+
declare function ActivityFeed({ className, items, renderItem, ...props }: ActivityFeedProps): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
export { ActivityFeed };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { jsx as e, jsxs as r } from "react/jsx-runtime";
|
|
2
|
+
import * as l from "react";
|
|
3
|
+
import { cn as i } from "../../../../lib/utils.js";
|
|
4
|
+
import { Avatar as n, AvatarImage as o, AvatarFallback as m } from "../../data-display/avatar/avatar.js";
|
|
5
|
+
function v({ className: t, items: s, renderItem: d, ...c }) {
|
|
6
|
+
return /* @__PURE__ */ e("div", { "data-slot": "activity-feed", className: i("divide-y divide-border rounded-lg border border-border bg-card", t), ...c, children: s.map(
|
|
7
|
+
(a) => d ? /* @__PURE__ */ e(l.Fragment, { children: d(a) }, a.id) : /* @__PURE__ */ r("div", { className: "flex items-start gap-3 p-4", children: [
|
|
8
|
+
/* @__PURE__ */ r(n, { className: "size-9", children: [
|
|
9
|
+
a.avatarSrc && /* @__PURE__ */ e(o, { src: a.avatarSrc, alt: "" }),
|
|
10
|
+
/* @__PURE__ */ e(m, { children: a.avatarFallback ?? "DK" })
|
|
11
|
+
] }),
|
|
12
|
+
/* @__PURE__ */ r("div", { className: "min-w-0 flex-1 space-y-1", children: [
|
|
13
|
+
/* @__PURE__ */ r("div", { className: "flex flex-wrap items-center gap-x-1 gap-y-0.5 text-sm", children: [
|
|
14
|
+
/* @__PURE__ */ e("span", { className: "font-medium text-foreground", children: a.actor }),
|
|
15
|
+
/* @__PURE__ */ e("span", { className: "text-muted-foreground", children: a.action }),
|
|
16
|
+
a.time && /* @__PURE__ */ e("span", { className: "ml-auto text-xs text-muted-foreground", children: a.time })
|
|
17
|
+
] }),
|
|
18
|
+
a.description && /* @__PURE__ */ e("div", { className: "text-sm leading-relaxed text-muted-foreground", children: a.description }),
|
|
19
|
+
a.meta && /* @__PURE__ */ e("div", { className: "text-xs text-muted-foreground", children: a.meta })
|
|
20
|
+
] })
|
|
21
|
+
] }, a.id)
|
|
22
|
+
) });
|
|
23
|
+
}
|
|
24
|
+
export {
|
|
25
|
+
v as ActivityFeed
|
|
26
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export type AlertCardSeverity = 'info' | 'success' | 'warning' | 'destructive';
|
|
3
|
+
export interface AlertCardProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> {
|
|
4
|
+
title: React.ReactNode;
|
|
5
|
+
description?: React.ReactNode;
|
|
6
|
+
severity?: AlertCardSeverity;
|
|
7
|
+
actions?: React.ReactNode;
|
|
8
|
+
}
|
|
9
|
+
declare function AlertCard({ className, title, description, severity, actions, children, ...props }: AlertCardProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export { AlertCard };
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { jsx as r, jsxs as a } from "react/jsx-runtime";
|
|
2
|
+
import { AlertCircle as d, TriangleAlert as v, CheckCircle2 as f, Info as g } from "lucide-react";
|
|
3
|
+
import { cn as u } from "../../../../lib/utils.js";
|
|
4
|
+
import { Card as x, CardContent as N } from "../../data-display/card/card.js";
|
|
5
|
+
const p = {
|
|
6
|
+
info: {
|
|
7
|
+
icon: g,
|
|
8
|
+
className: "border-primary/25 bg-primary/5 text-primary"
|
|
9
|
+
},
|
|
10
|
+
success: {
|
|
11
|
+
icon: f,
|
|
12
|
+
className: "border-[var(--color-success-soft,var(--color-green-200))] bg-[var(--color-success-soft,var(--color-green-50))] text-[var(--color-success-accent,var(--color-green-700))]"
|
|
13
|
+
},
|
|
14
|
+
warning: {
|
|
15
|
+
icon: v,
|
|
16
|
+
className: "border-[var(--color-warning-soft,var(--color-yellow-200))] bg-[var(--color-warning-soft,var(--color-yellow-50))] text-[var(--color-warning-accent,var(--color-yellow-700))]"
|
|
17
|
+
},
|
|
18
|
+
destructive: {
|
|
19
|
+
icon: d,
|
|
20
|
+
className: "border-destructive/20 bg-destructive/5 text-destructive"
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
function C({ className: s, title: t, description: e, severity: l = "info", actions: o, children: n, ...i }) {
|
|
24
|
+
const c = p[l], m = c.icon;
|
|
25
|
+
return /* @__PURE__ */ r(x, { "data-slot": "alert-card", className: u("border", c.className, s), ...i, children: /* @__PURE__ */ a(N, { className: "flex items-start gap-3", children: [
|
|
26
|
+
/* @__PURE__ */ r(m, { className: "mt-0.5 size-5 shrink-0" }),
|
|
27
|
+
/* @__PURE__ */ a("div", { className: "min-w-0 flex-1 space-y-1", children: [
|
|
28
|
+
/* @__PURE__ */ r("div", { className: "font-medium text-foreground", children: t }),
|
|
29
|
+
e && /* @__PURE__ */ r("div", { className: "text-sm leading-relaxed text-muted-foreground", children: e }),
|
|
30
|
+
n
|
|
31
|
+
] }),
|
|
32
|
+
o && /* @__PURE__ */ r("div", { className: "flex shrink-0 items-center gap-2", children: o })
|
|
33
|
+
] }) });
|
|
34
|
+
}
|
|
35
|
+
export {
|
|
36
|
+
C as AlertCard
|
|
37
|
+
};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export type ApprovalFlowStatus = 'started' | 'approved' | 'processing' | 'pending' | 'rejected';
|
|
3
|
+
export interface ApprovalFlowTab {
|
|
4
|
+
value: string;
|
|
5
|
+
label: React.ReactNode;
|
|
6
|
+
count?: React.ReactNode;
|
|
7
|
+
}
|
|
8
|
+
export interface ApprovalFlowParticipant {
|
|
9
|
+
id: React.Key;
|
|
10
|
+
name: React.ReactNode;
|
|
11
|
+
avatarSrc?: string;
|
|
12
|
+
avatarFallback?: React.ReactNode;
|
|
13
|
+
avatarAlt?: string;
|
|
14
|
+
}
|
|
15
|
+
export interface ApprovalFlowItem {
|
|
16
|
+
id: React.Key;
|
|
17
|
+
actor: React.ReactNode;
|
|
18
|
+
time?: React.ReactNode;
|
|
19
|
+
avatarSrc?: string;
|
|
20
|
+
avatarFallback?: React.ReactNode;
|
|
21
|
+
status?: ApprovalFlowStatus;
|
|
22
|
+
statusLabel?: React.ReactNode;
|
|
23
|
+
comment?: React.ReactNode;
|
|
24
|
+
rule?: React.ReactNode;
|
|
25
|
+
participants?: ApprovalFlowParticipant[];
|
|
26
|
+
}
|
|
27
|
+
export interface ApprovalFlowProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
28
|
+
tabs?: ApprovalFlowTab[];
|
|
29
|
+
activeTab?: string;
|
|
30
|
+
defaultActiveTab?: string;
|
|
31
|
+
onTabChange?: (value: string) => void;
|
|
32
|
+
items?: ApprovalFlowItem[];
|
|
33
|
+
renderItem?: (item: ApprovalFlowItem, index: number) => React.ReactNode;
|
|
34
|
+
listClassName?: string;
|
|
35
|
+
empty?: React.ReactNode;
|
|
36
|
+
}
|
|
37
|
+
export interface ApprovalFlowStepProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> {
|
|
38
|
+
actor: React.ReactNode;
|
|
39
|
+
time?: React.ReactNode;
|
|
40
|
+
avatarSrc?: string;
|
|
41
|
+
avatarFallback?: React.ReactNode;
|
|
42
|
+
status?: ApprovalFlowStatus;
|
|
43
|
+
statusLabel?: React.ReactNode;
|
|
44
|
+
comment?: React.ReactNode;
|
|
45
|
+
rule?: React.ReactNode;
|
|
46
|
+
participants?: ApprovalFlowParticipant[];
|
|
47
|
+
isLast?: boolean;
|
|
48
|
+
}
|
|
49
|
+
declare function ApprovalFlow({ className, tabs, activeTab, defaultActiveTab, onTabChange, items, renderItem, listClassName, empty, children, ...props }: ApprovalFlowProps): import("react/jsx-runtime").JSX.Element;
|
|
50
|
+
declare function ApprovalFlowStep({ className, actor, time, avatarSrc, avatarFallback, status, statusLabel, comment, rule, participants, isLast, ...props }: ApprovalFlowStepProps): import("react/jsx-runtime").JSX.Element;
|
|
51
|
+
export { ApprovalFlow, ApprovalFlowStep };
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import { jsxs as l, jsx as e } from "react/jsx-runtime";
|
|
2
|
+
import * as w from "react";
|
|
3
|
+
import { X as z, Clock3 as C, Check as k } from "lucide-react";
|
|
4
|
+
import { cn as d } from "../../../../lib/utils.js";
|
|
5
|
+
import { Avatar as y, AvatarImage as A, AvatarFallback as F, AvatarIndicator as j } from "../../data-display/avatar/avatar.js";
|
|
6
|
+
import { Badge as S } from "../../data-display/badge/badge.js";
|
|
7
|
+
const U = {
|
|
8
|
+
started: {
|
|
9
|
+
label: "发起审批",
|
|
10
|
+
textClassName: "text-success",
|
|
11
|
+
indicatorClassName: "bg-success text-success-foreground",
|
|
12
|
+
Icon: k
|
|
13
|
+
},
|
|
14
|
+
approved: {
|
|
15
|
+
label: "已通过",
|
|
16
|
+
textClassName: "text-success",
|
|
17
|
+
indicatorClassName: "bg-success text-success-foreground",
|
|
18
|
+
Icon: k
|
|
19
|
+
},
|
|
20
|
+
processing: {
|
|
21
|
+
label: "审批中",
|
|
22
|
+
textClassName: "text-warning",
|
|
23
|
+
indicatorClassName: "bg-warning text-warning-foreground",
|
|
24
|
+
Icon: C
|
|
25
|
+
},
|
|
26
|
+
pending: {
|
|
27
|
+
label: "待审批",
|
|
28
|
+
textClassName: "text-muted-foreground",
|
|
29
|
+
indicatorClassName: "bg-muted text-muted-foreground",
|
|
30
|
+
Icon: C
|
|
31
|
+
},
|
|
32
|
+
rejected: {
|
|
33
|
+
label: "已拒绝",
|
|
34
|
+
textClassName: "text-destructive",
|
|
35
|
+
indicatorClassName: "bg-destructive text-destructive-foreground",
|
|
36
|
+
Icon: z
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
function D({
|
|
40
|
+
className: s,
|
|
41
|
+
tabs: t,
|
|
42
|
+
activeTab: c,
|
|
43
|
+
defaultActiveTab: a,
|
|
44
|
+
onTabChange: n,
|
|
45
|
+
items: m = [],
|
|
46
|
+
renderItem: x,
|
|
47
|
+
listClassName: g,
|
|
48
|
+
empty: f,
|
|
49
|
+
children: o,
|
|
50
|
+
...p
|
|
51
|
+
}) {
|
|
52
|
+
const [h, i] = w.useState(() => a ?? t?.[0]?.value), v = c ?? h;
|
|
53
|
+
function r(u) {
|
|
54
|
+
i(u), n?.(u);
|
|
55
|
+
}
|
|
56
|
+
return /* @__PURE__ */ l(
|
|
57
|
+
"div",
|
|
58
|
+
{
|
|
59
|
+
"data-slot": "approval-flow",
|
|
60
|
+
className: d(
|
|
61
|
+
"flex w-full flex-col gap-[var(--dk-card-inner-gap)] bg-card p-[var(--dk-card-padding)] text-card-foreground",
|
|
62
|
+
s
|
|
63
|
+
),
|
|
64
|
+
...p,
|
|
65
|
+
children: [
|
|
66
|
+
t && t.length > 0 && /* @__PURE__ */ e(B, { tabs: t, activeTab: v, onTabChange: r }),
|
|
67
|
+
/* @__PURE__ */ l("div", { "data-slot": "approval-flow-list", className: d("flex min-w-0 flex-col", g), children: [
|
|
68
|
+
o,
|
|
69
|
+
!o && m.map((u, b) => {
|
|
70
|
+
const { id: N, ...T } = u;
|
|
71
|
+
return x ? /* @__PURE__ */ e(w.Fragment, { children: x(u, b) }, N) : /* @__PURE__ */ e(M, { ...T, isLast: b === m.length - 1 }, N);
|
|
72
|
+
})
|
|
73
|
+
] }),
|
|
74
|
+
!o && m.length === 0 && /* @__PURE__ */ e("div", { className: "rounded-[var(--dk-radius-control)] bg-muted p-4 text-center text-sm text-muted-foreground", children: f ?? "暂无审批记录" })
|
|
75
|
+
]
|
|
76
|
+
}
|
|
77
|
+
);
|
|
78
|
+
}
|
|
79
|
+
function B({
|
|
80
|
+
tabs: s,
|
|
81
|
+
activeTab: t,
|
|
82
|
+
onTabChange: c
|
|
83
|
+
}) {
|
|
84
|
+
return /* @__PURE__ */ e(
|
|
85
|
+
"div",
|
|
86
|
+
{
|
|
87
|
+
role: "tablist",
|
|
88
|
+
"aria-label": "审批分类",
|
|
89
|
+
className: "flex min-h-12 w-full items-center gap-5 overflow-x-auto border-b border-border bg-card",
|
|
90
|
+
children: s.map((a) => {
|
|
91
|
+
const n = a.value === t;
|
|
92
|
+
return /* @__PURE__ */ l(
|
|
93
|
+
"button",
|
|
94
|
+
{
|
|
95
|
+
type: "button",
|
|
96
|
+
role: "tab",
|
|
97
|
+
"aria-selected": n,
|
|
98
|
+
onClick: () => c(a.value),
|
|
99
|
+
className: d(
|
|
100
|
+
"relative flex h-12 shrink-0 items-center gap-1 text-sm leading-[22px] transition-colors",
|
|
101
|
+
n ? "font-medium text-foreground" : "font-normal text-muted-foreground hover:text-primary"
|
|
102
|
+
),
|
|
103
|
+
children: [
|
|
104
|
+
/* @__PURE__ */ e("span", { children: a.label }),
|
|
105
|
+
a.count !== void 0 && /* @__PURE__ */ e(S, { variant: "primary", appearance: "light", size: "xs", shape: "circle", children: a.count }),
|
|
106
|
+
n && /* @__PURE__ */ e("span", { className: "absolute inset-x-0 bottom-0 h-0.5 bg-primary" })
|
|
107
|
+
]
|
|
108
|
+
},
|
|
109
|
+
a.value
|
|
110
|
+
);
|
|
111
|
+
})
|
|
112
|
+
}
|
|
113
|
+
);
|
|
114
|
+
}
|
|
115
|
+
function M({
|
|
116
|
+
className: s,
|
|
117
|
+
actor: t,
|
|
118
|
+
time: c,
|
|
119
|
+
avatarSrc: a,
|
|
120
|
+
avatarFallback: n,
|
|
121
|
+
status: m = "pending",
|
|
122
|
+
statusLabel: x,
|
|
123
|
+
comment: g,
|
|
124
|
+
rule: f,
|
|
125
|
+
participants: o,
|
|
126
|
+
isLast: p = !1,
|
|
127
|
+
...h
|
|
128
|
+
}) {
|
|
129
|
+
const i = U[m], v = i.Icon;
|
|
130
|
+
return /* @__PURE__ */ l("div", { "data-slot": "approval-flow-step", className: d("flex min-w-0 gap-2", s), ...h, children: [
|
|
131
|
+
/* @__PURE__ */ l("div", { className: "flex shrink-0 flex-col items-center self-stretch", children: [
|
|
132
|
+
/* @__PURE__ */ l(y, { className: "size-11", children: [
|
|
133
|
+
a && /* @__PURE__ */ e(A, { src: a, alt: typeof t == "string" ? t : "" }),
|
|
134
|
+
/* @__PURE__ */ e(F, { className: "border-card bg-primary text-base text-primary-foreground", children: n ?? I(t) }),
|
|
135
|
+
/* @__PURE__ */ e(
|
|
136
|
+
j,
|
|
137
|
+
{
|
|
138
|
+
className: d(
|
|
139
|
+
"-bottom-0.5 -right-0.5 size-4 rounded-full border border-card",
|
|
140
|
+
i.indicatorClassName
|
|
141
|
+
),
|
|
142
|
+
children: /* @__PURE__ */ e(v, { className: "size-2.5", strokeWidth: 3 })
|
|
143
|
+
}
|
|
144
|
+
)
|
|
145
|
+
] }),
|
|
146
|
+
!p && /* @__PURE__ */ e("div", { "data-slot": "approval-flow-line", className: "mt-1 min-h-8 w-px flex-1 bg-border" })
|
|
147
|
+
] }),
|
|
148
|
+
/* @__PURE__ */ l("div", { "data-slot": "approval-flow-step-content", className: d("min-w-0 flex-1", !p && "pb-8"), children: [
|
|
149
|
+
/* @__PURE__ */ l("div", { className: "flex min-w-0 items-center justify-between gap-3", children: [
|
|
150
|
+
/* @__PURE__ */ e("div", { className: "min-w-0 truncate text-sm font-medium leading-[22px] text-foreground", children: t }),
|
|
151
|
+
c && /* @__PURE__ */ e("time", { className: "shrink-0 text-xs leading-5 text-muted-foreground", children: c })
|
|
152
|
+
] }),
|
|
153
|
+
/* @__PURE__ */ e("div", { className: d("truncate text-[13px] leading-[22px]", i.textClassName), children: x ?? i.label }),
|
|
154
|
+
f && /* @__PURE__ */ e("div", { className: "truncate text-[13px] leading-[22px] text-muted-foreground", children: f }),
|
|
155
|
+
o && o.length > 0 && /* @__PURE__ */ e("div", { className: "mt-1 flex min-w-0 gap-1 overflow-x-auto", children: o.map((r) => /* @__PURE__ */ l(
|
|
156
|
+
"span",
|
|
157
|
+
{
|
|
158
|
+
className: "inline-flex h-6 max-w-40 shrink-0 items-center gap-1 rounded-full bg-muted px-1.5 text-[13px] leading-[22px] text-foreground",
|
|
159
|
+
children: [
|
|
160
|
+
/* @__PURE__ */ l(y, { className: "size-3.5", children: [
|
|
161
|
+
r.avatarSrc && /* @__PURE__ */ e(
|
|
162
|
+
A,
|
|
163
|
+
{
|
|
164
|
+
src: r.avatarSrc,
|
|
165
|
+
alt: r.avatarAlt ?? (typeof r.name == "string" ? r.name : "")
|
|
166
|
+
}
|
|
167
|
+
),
|
|
168
|
+
/* @__PURE__ */ e(F, { className: "border-0 bg-card text-[10px] text-muted-foreground", children: r.avatarFallback ?? I(r.name) })
|
|
169
|
+
] }),
|
|
170
|
+
/* @__PURE__ */ e("span", { className: "truncate", children: r.name })
|
|
171
|
+
]
|
|
172
|
+
},
|
|
173
|
+
r.id
|
|
174
|
+
)) }),
|
|
175
|
+
g && /* @__PURE__ */ e("div", { className: "mt-1 rounded-[var(--dk-radius-control)] bg-muted p-2 text-[13px] leading-[22px] text-muted-foreground", children: g })
|
|
176
|
+
] })
|
|
177
|
+
] });
|
|
178
|
+
}
|
|
179
|
+
function I(s) {
|
|
180
|
+
return typeof s == "string" && s.trim().length > 0 ? s.trim().slice(0, 1).toUpperCase() : "F";
|
|
181
|
+
}
|
|
182
|
+
export {
|
|
183
|
+
D as ApprovalFlow,
|
|
184
|
+
M as ApprovalFlowStep
|
|
185
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export interface AuthShellProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> {
|
|
3
|
+
brand?: React.ReactNode;
|
|
4
|
+
title?: React.ReactNode;
|
|
5
|
+
description?: React.ReactNode;
|
|
6
|
+
aside?: React.ReactNode;
|
|
7
|
+
footer?: React.ReactNode;
|
|
8
|
+
}
|
|
9
|
+
declare function AuthShell({ className, brand, title, description, aside, footer, children, ...props }: AuthShellProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export { AuthShell };
|