@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,32 @@
|
|
|
1
|
+
import { jsxs as r, jsx as e } from "react/jsx-runtime";
|
|
2
|
+
import { cn as c } from "../../../../lib/utils.js";
|
|
3
|
+
function h({ className: i, brand: l, title: t, description: a, aside: s, footer: d, children: m, ...n }) {
|
|
4
|
+
return /* @__PURE__ */ r(
|
|
5
|
+
"div",
|
|
6
|
+
{
|
|
7
|
+
"data-slot": "auth-shell",
|
|
8
|
+
className: c("grid min-h-[640px] overflow-hidden rounded-xl border border-border bg-card lg:grid-cols-[1fr_420px]", i),
|
|
9
|
+
...n,
|
|
10
|
+
children: [
|
|
11
|
+
/* @__PURE__ */ r("div", { className: "relative hidden bg-primary/5 p-10 lg:block", children: [
|
|
12
|
+
/* @__PURE__ */ e("div", { className: "absolute inset-0 bg-[radial-gradient(circle_at_20%_20%,hsl(var(--primary)/0.18),transparent_30%),radial-gradient(circle_at_80%_10%,hsl(var(--muted-foreground)/0.12),transparent_28%)]" }),
|
|
13
|
+
/* @__PURE__ */ r("div", { className: "relative flex h-full flex-col justify-between", children: [
|
|
14
|
+
/* @__PURE__ */ r("div", { children: [
|
|
15
|
+
l && /* @__PURE__ */ e("div", { className: "mb-12 text-lg font-semibold text-foreground", children: l }),
|
|
16
|
+
t && /* @__PURE__ */ e("h2", { className: "max-w-md text-3xl font-semibold tracking-tight text-foreground", children: t }),
|
|
17
|
+
a && /* @__PURE__ */ e("p", { className: "mt-4 max-w-md text-sm leading-relaxed text-muted-foreground", children: a })
|
|
18
|
+
] }),
|
|
19
|
+
s
|
|
20
|
+
] })
|
|
21
|
+
] }),
|
|
22
|
+
/* @__PURE__ */ r("div", { className: "flex flex-col justify-center p-6 sm:p-10", children: [
|
|
23
|
+
/* @__PURE__ */ e("div", { className: "mx-auto w-full max-w-sm", children: m }),
|
|
24
|
+
d && /* @__PURE__ */ e("div", { className: "mx-auto mt-8 w-full max-w-sm text-center text-xs text-muted-foreground", children: d })
|
|
25
|
+
] })
|
|
26
|
+
]
|
|
27
|
+
}
|
|
28
|
+
);
|
|
29
|
+
}
|
|
30
|
+
export {
|
|
31
|
+
h as AuthShell
|
|
32
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export interface BoardToolbarProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
searchValue?: string;
|
|
4
|
+
defaultSearchValue?: string;
|
|
5
|
+
searchPlaceholder?: string;
|
|
6
|
+
onSearchChange?: (value: string) => void;
|
|
7
|
+
filters?: React.ReactNode;
|
|
8
|
+
groupBy?: React.ReactNode;
|
|
9
|
+
actions?: React.ReactNode;
|
|
10
|
+
}
|
|
11
|
+
declare function BoardToolbar({ className, searchValue, defaultSearchValue, searchPlaceholder, onSearchChange, filters, groupBy, actions, children, ...props }: BoardToolbarProps): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
export { BoardToolbar };
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { jsxs as e, jsx as r } from "react/jsx-runtime";
|
|
2
|
+
import { Search as p, SlidersHorizontal as u } from "lucide-react";
|
|
3
|
+
import { cn as x } from "../../../../lib/utils.js";
|
|
4
|
+
import { Button as g } from "../../form/button/button.js";
|
|
5
|
+
import { InputWrapper as b, Input as h } from "../../form/input/input.js";
|
|
6
|
+
function y({
|
|
7
|
+
className: a,
|
|
8
|
+
searchValue: o,
|
|
9
|
+
defaultSearchValue: t,
|
|
10
|
+
searchPlaceholder: s = "搜索卡片",
|
|
11
|
+
onSearchChange: i,
|
|
12
|
+
filters: m,
|
|
13
|
+
groupBy: n,
|
|
14
|
+
actions: l,
|
|
15
|
+
children: c,
|
|
16
|
+
...d
|
|
17
|
+
}) {
|
|
18
|
+
return /* @__PURE__ */ e("div", { "data-slot": "board-toolbar", className: x("flex flex-col gap-3 rounded-lg border border-border bg-card p-3 lg:flex-row lg:items-center lg:justify-between", a), ...d, children: [
|
|
19
|
+
/* @__PURE__ */ e("div", { className: "flex min-w-0 flex-1 flex-col gap-2 sm:flex-row sm:flex-wrap sm:items-center", children: [
|
|
20
|
+
/* @__PURE__ */ e(b, { className: "sm:w-72", children: [
|
|
21
|
+
/* @__PURE__ */ r(p, { className: "size-4" }),
|
|
22
|
+
/* @__PURE__ */ r(
|
|
23
|
+
h,
|
|
24
|
+
{
|
|
25
|
+
value: o,
|
|
26
|
+
defaultValue: t,
|
|
27
|
+
placeholder: s,
|
|
28
|
+
onChange: (f) => i?.(f.target.value)
|
|
29
|
+
}
|
|
30
|
+
)
|
|
31
|
+
] }),
|
|
32
|
+
m ?? /* @__PURE__ */ e(g, { type: "button", variant: "outline", size: "sm", children: [
|
|
33
|
+
/* @__PURE__ */ r(u, { className: "size-3.5" }),
|
|
34
|
+
"筛选"
|
|
35
|
+
] }),
|
|
36
|
+
n,
|
|
37
|
+
c
|
|
38
|
+
] }),
|
|
39
|
+
l && /* @__PURE__ */ r("div", { className: "flex shrink-0 flex-wrap items-center gap-2", children: l })
|
|
40
|
+
] });
|
|
41
|
+
}
|
|
42
|
+
export {
|
|
43
|
+
y as BoardToolbar
|
|
44
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export interface ChartCardProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> {
|
|
3
|
+
title: React.ReactNode;
|
|
4
|
+
description?: React.ReactNode;
|
|
5
|
+
toolbar?: React.ReactNode;
|
|
6
|
+
legend?: React.ReactNode;
|
|
7
|
+
footer?: React.ReactNode;
|
|
8
|
+
loading?: boolean;
|
|
9
|
+
empty?: boolean;
|
|
10
|
+
emptyText?: React.ReactNode;
|
|
11
|
+
minHeight?: number;
|
|
12
|
+
}
|
|
13
|
+
declare function ChartCard({ className, title, description, toolbar, legend, footer, loading, empty, emptyText, minHeight, children, ...props }: ChartCardProps): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export { ChartCard };
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { jsxs as r, jsx as e } from "react/jsx-runtime";
|
|
2
|
+
import { BarChart3 as u } from "lucide-react";
|
|
3
|
+
import { cn as N } from "../../../../lib/utils.js";
|
|
4
|
+
import { Card as C, CardHeader as v, CardTitle as j, CardToolbar as w, CardContent as y, CardFooter as g } from "../../data-display/card/card.js";
|
|
5
|
+
import { Skeleton as k } from "../../data-display/skeleton/skeleton.js";
|
|
6
|
+
import { TitleHelp as H } from "../../feedback/title-help/title-help.js";
|
|
7
|
+
function S({
|
|
8
|
+
className: c,
|
|
9
|
+
title: m,
|
|
10
|
+
description: n,
|
|
11
|
+
toolbar: l,
|
|
12
|
+
legend: i,
|
|
13
|
+
footer: t,
|
|
14
|
+
loading: a,
|
|
15
|
+
empty: s,
|
|
16
|
+
emptyText: d = "暂无图表数据",
|
|
17
|
+
minHeight: h = 260,
|
|
18
|
+
children: f,
|
|
19
|
+
...o
|
|
20
|
+
}) {
|
|
21
|
+
return /* @__PURE__ */ r(
|
|
22
|
+
C,
|
|
23
|
+
{
|
|
24
|
+
"data-slot": "chart-card",
|
|
25
|
+
className: N("card-surface overflow-hidden", c),
|
|
26
|
+
...o,
|
|
27
|
+
children: [
|
|
28
|
+
/* @__PURE__ */ r(v, { className: "items-center", children: [
|
|
29
|
+
/* @__PURE__ */ e("div", { className: "min-w-0 space-y-1", children: /* @__PURE__ */ e(j, { children: /* @__PURE__ */ e(H, { help: n, children: m }) }) }),
|
|
30
|
+
(i || l) && /* @__PURE__ */ r(w, { className: "shrink-0 flex-wrap justify-end", children: [
|
|
31
|
+
i,
|
|
32
|
+
l
|
|
33
|
+
] })
|
|
34
|
+
] }),
|
|
35
|
+
/* @__PURE__ */ e(y, { className: "flex min-h-0 flex-1", children: /* @__PURE__ */ r(
|
|
36
|
+
"div",
|
|
37
|
+
{
|
|
38
|
+
className: "relative min-h-0 w-full flex-1",
|
|
39
|
+
style: { minHeight: `max(${h}px, var(--dk-chart-min-height))` },
|
|
40
|
+
children: [
|
|
41
|
+
a && /* @__PURE__ */ e("div", { className: "absolute inset-0 flex flex-col justify-end gap-2", children: [56, 82, 44, 68, 92, 61, 75].map((x, p) => /* @__PURE__ */ e(
|
|
42
|
+
k,
|
|
43
|
+
{
|
|
44
|
+
className: "w-full",
|
|
45
|
+
style: { height: `${x / 3}px` }
|
|
46
|
+
},
|
|
47
|
+
p
|
|
48
|
+
)) }),
|
|
49
|
+
!a && s && /* @__PURE__ */ r("div", { className: "flex h-full min-h-[inherit] flex-col items-center justify-center gap-2 text-center text-muted-foreground", children: [
|
|
50
|
+
/* @__PURE__ */ e(u, { className: "size-8" }),
|
|
51
|
+
/* @__PURE__ */ e("div", { className: "text-sm", children: d })
|
|
52
|
+
] }),
|
|
53
|
+
!a && !s && f
|
|
54
|
+
]
|
|
55
|
+
}
|
|
56
|
+
) }),
|
|
57
|
+
t && /* @__PURE__ */ e(g, { children: t })
|
|
58
|
+
]
|
|
59
|
+
}
|
|
60
|
+
);
|
|
61
|
+
}
|
|
62
|
+
export {
|
|
63
|
+
S as ChartCard
|
|
64
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export interface ChartToolbarOption {
|
|
3
|
+
value: string;
|
|
4
|
+
label: React.ReactNode;
|
|
5
|
+
}
|
|
6
|
+
export interface ChartToolbarProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
7
|
+
ranges?: ChartToolbarOption[];
|
|
8
|
+
activeRange?: string;
|
|
9
|
+
onRangeChange?: (value: string) => void;
|
|
10
|
+
metrics?: ChartToolbarOption[];
|
|
11
|
+
activeMetric?: string;
|
|
12
|
+
onMetricChange?: (value: string) => void;
|
|
13
|
+
onRefresh?: () => void;
|
|
14
|
+
actions?: React.ReactNode;
|
|
15
|
+
}
|
|
16
|
+
declare function ChartToolbar({ className, ranges, activeRange, onRangeChange, metrics, activeMetric, onMetricChange, onRefresh, actions, children, ...props }: ChartToolbarProps): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
export { ChartToolbar };
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { jsxs as i, jsx as r } from "react/jsx-runtime";
|
|
2
|
+
import { RefreshCw as f } from "lucide-react";
|
|
3
|
+
import { cn as h } from "../../../../lib/utils.js";
|
|
4
|
+
import { Button as c } from "../../form/button/button.js";
|
|
5
|
+
function k({
|
|
6
|
+
className: t,
|
|
7
|
+
ranges: a,
|
|
8
|
+
activeRange: o,
|
|
9
|
+
onRangeChange: e,
|
|
10
|
+
metrics: n,
|
|
11
|
+
activeMetric: d,
|
|
12
|
+
onMetricChange: m,
|
|
13
|
+
onRefresh: l,
|
|
14
|
+
actions: u,
|
|
15
|
+
children: p,
|
|
16
|
+
...b
|
|
17
|
+
}) {
|
|
18
|
+
return /* @__PURE__ */ i("div", { "data-slot": "chart-toolbar", className: h("flex flex-wrap items-center gap-2", t), ...b, children: [
|
|
19
|
+
n && /* @__PURE__ */ r(s, { options: n, activeValue: d, onChange: m }),
|
|
20
|
+
a && /* @__PURE__ */ r(s, { options: a, activeValue: o, onChange: e }),
|
|
21
|
+
p,
|
|
22
|
+
l && /* @__PURE__ */ i(c, { type: "button", variant: "outline", size: "sm", onClick: l, children: [
|
|
23
|
+
/* @__PURE__ */ r(f, { className: "size-3.5" }),
|
|
24
|
+
"刷新"
|
|
25
|
+
] }),
|
|
26
|
+
u
|
|
27
|
+
] });
|
|
28
|
+
}
|
|
29
|
+
function s({
|
|
30
|
+
options: t,
|
|
31
|
+
activeValue: a,
|
|
32
|
+
onChange: o
|
|
33
|
+
}) {
|
|
34
|
+
return /* @__PURE__ */ r("div", { className: "flex rounded-md border border-border bg-background p-0.5", children: t.map((e) => /* @__PURE__ */ r(
|
|
35
|
+
c,
|
|
36
|
+
{
|
|
37
|
+
type: "button",
|
|
38
|
+
variant: a === e.value ? "secondary" : "ghost",
|
|
39
|
+
size: "sm",
|
|
40
|
+
onClick: () => o?.(e.value),
|
|
41
|
+
children: e.label
|
|
42
|
+
},
|
|
43
|
+
e.value
|
|
44
|
+
)) });
|
|
45
|
+
}
|
|
46
|
+
export {
|
|
47
|
+
k as ChartToolbar
|
|
48
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export type DataSectionState = 'idle' | 'loading' | 'empty' | 'error';
|
|
3
|
+
export interface DataSectionProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> {
|
|
4
|
+
title?: React.ReactNode;
|
|
5
|
+
description?: React.ReactNode;
|
|
6
|
+
toolbar?: React.ReactNode;
|
|
7
|
+
actions?: React.ReactNode;
|
|
8
|
+
state?: DataSectionState;
|
|
9
|
+
emptyTitle?: React.ReactNode;
|
|
10
|
+
emptyDescription?: React.ReactNode;
|
|
11
|
+
errorTitle?: React.ReactNode;
|
|
12
|
+
errorDescription?: React.ReactNode;
|
|
13
|
+
onRetry?: () => void;
|
|
14
|
+
footer?: React.ReactNode;
|
|
15
|
+
}
|
|
16
|
+
declare function DataSection({ className, title, description, toolbar, actions, state, emptyTitle, emptyDescription, errorTitle, errorDescription, onRetry, footer, children, ...props }: DataSectionProps): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
export { DataSection };
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { jsxs as r, jsx as e } from "react/jsx-runtime";
|
|
2
|
+
import { Inbox as g, AlertCircle as C } from "lucide-react";
|
|
3
|
+
import { cn as o } from "../../../../lib/utils.js";
|
|
4
|
+
import { Button as b } from "../../form/button/button.js";
|
|
5
|
+
import { Card as y, CardHeader as k, CardTitle as w, CardToolbar as z, CardContent as j, CardFooter as S } from "../../data-display/card/card.js";
|
|
6
|
+
import { Skeleton as s } from "../../data-display/skeleton/skeleton.js";
|
|
7
|
+
import { TitleHelp as D } from "../../feedback/title-help/title-help.js";
|
|
8
|
+
function E({
|
|
9
|
+
className: i,
|
|
10
|
+
title: a,
|
|
11
|
+
description: c,
|
|
12
|
+
toolbar: n,
|
|
13
|
+
actions: l,
|
|
14
|
+
state: d = "idle",
|
|
15
|
+
emptyTitle: p = "暂无数据",
|
|
16
|
+
emptyDescription: f = "当前筛选条件下没有可展示的内容。",
|
|
17
|
+
errorTitle: u = "加载失败",
|
|
18
|
+
errorDescription: N = "数据请求未完成,请稍后重试。",
|
|
19
|
+
onRetry: t,
|
|
20
|
+
footer: m,
|
|
21
|
+
children: x,
|
|
22
|
+
...v
|
|
23
|
+
}) {
|
|
24
|
+
return /* @__PURE__ */ r(y, { "data-slot": "data-section", className: o("card-surface overflow-hidden", i), ...v, children: [
|
|
25
|
+
(a || c || l) && /* @__PURE__ */ r(k, { className: "items-center gap-3", children: [
|
|
26
|
+
/* @__PURE__ */ e("div", { className: "min-w-0 space-y-1", children: a && /* @__PURE__ */ e(w, { children: /* @__PURE__ */ e(D, { help: c, children: a }) }) }),
|
|
27
|
+
l && /* @__PURE__ */ e(z, { className: "shrink-0", children: l })
|
|
28
|
+
] }),
|
|
29
|
+
n && /* @__PURE__ */ e("div", { className: "border-b border-border p-[var(--dk-card-padding)]", children: n }),
|
|
30
|
+
/* @__PURE__ */ r(j, { className: o("p-0", d !== "idle" && "p-6"), children: [
|
|
31
|
+
d === "loading" && /* @__PURE__ */ e(T, {}),
|
|
32
|
+
d === "empty" && /* @__PURE__ */ e(h, { icon: /* @__PURE__ */ e(g, { className: "size-5" }), title: p, description: f }),
|
|
33
|
+
d === "error" && /* @__PURE__ */ e(
|
|
34
|
+
h,
|
|
35
|
+
{
|
|
36
|
+
icon: /* @__PURE__ */ e(C, { className: "size-5" }),
|
|
37
|
+
title: u,
|
|
38
|
+
description: N,
|
|
39
|
+
action: t && /* @__PURE__ */ e(b, { onClick: t, size: "sm", variant: "outline", children: "重试" })
|
|
40
|
+
}
|
|
41
|
+
),
|
|
42
|
+
d === "idle" && x
|
|
43
|
+
] }),
|
|
44
|
+
m && /* @__PURE__ */ e(S, { children: m })
|
|
45
|
+
] });
|
|
46
|
+
}
|
|
47
|
+
function T() {
|
|
48
|
+
return /* @__PURE__ */ e("div", { className: "space-y-3", children: [0, 1, 2].map((i) => /* @__PURE__ */ r("div", { className: "flex items-center gap-3", children: [
|
|
49
|
+
/* @__PURE__ */ e(s, { className: "size-9 rounded-md" }),
|
|
50
|
+
/* @__PURE__ */ r("div", { className: "flex-1 space-y-2", children: [
|
|
51
|
+
/* @__PURE__ */ e(s, { className: "h-3 w-2/5" }),
|
|
52
|
+
/* @__PURE__ */ e(s, { className: "h-3 w-3/5" })
|
|
53
|
+
] })
|
|
54
|
+
] }, i)) });
|
|
55
|
+
}
|
|
56
|
+
function h({
|
|
57
|
+
icon: i,
|
|
58
|
+
title: a,
|
|
59
|
+
description: c,
|
|
60
|
+
action: n
|
|
61
|
+
}) {
|
|
62
|
+
return /* @__PURE__ */ r("div", { className: "flex min-h-52 flex-col items-center justify-center gap-3 text-center", children: [
|
|
63
|
+
/* @__PURE__ */ e("div", { className: "flex size-10 items-center justify-center rounded-full bg-muted text-muted-foreground", children: i }),
|
|
64
|
+
/* @__PURE__ */ r("div", { className: "space-y-1", children: [
|
|
65
|
+
/* @__PURE__ */ e("div", { className: "font-medium text-foreground", children: a }),
|
|
66
|
+
/* @__PURE__ */ e("div", { className: "max-w-sm text-sm text-muted-foreground", children: c })
|
|
67
|
+
] }),
|
|
68
|
+
n
|
|
69
|
+
] });
|
|
70
|
+
}
|
|
71
|
+
export {
|
|
72
|
+
E as DataSection
|
|
73
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export interface DescriptionItem {
|
|
3
|
+
label: React.ReactNode;
|
|
4
|
+
value: React.ReactNode;
|
|
5
|
+
span?: 1 | 2 | 3;
|
|
6
|
+
}
|
|
7
|
+
export interface DescriptionGridProps extends React.HTMLAttributes<HTMLDListElement> {
|
|
8
|
+
items: DescriptionItem[];
|
|
9
|
+
columns?: 1 | 2 | 3;
|
|
10
|
+
}
|
|
11
|
+
declare function DescriptionGrid({ className, items, columns, ...props }: DescriptionGridProps): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
export { DescriptionGrid };
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { jsx as o, jsxs as i } from "react/jsx-runtime";
|
|
2
|
+
import { cn as e } from "../../../../lib/utils.js";
|
|
3
|
+
function m({ className: s, items: l, columns: d = 3, ...a }) {
|
|
4
|
+
return /* @__PURE__ */ o(
|
|
5
|
+
"dl",
|
|
6
|
+
{
|
|
7
|
+
"data-slot": "description-grid",
|
|
8
|
+
className: e(
|
|
9
|
+
"grid overflow-hidden rounded-lg border border-border bg-card",
|
|
10
|
+
d === 1 && "grid-cols-1",
|
|
11
|
+
d === 2 && "grid-cols-1 md:grid-cols-2",
|
|
12
|
+
d === 3 && "grid-cols-1 md:grid-cols-2 xl:grid-cols-3",
|
|
13
|
+
s
|
|
14
|
+
),
|
|
15
|
+
...a,
|
|
16
|
+
children: l.map((r, c) => /* @__PURE__ */ i(
|
|
17
|
+
"div",
|
|
18
|
+
{
|
|
19
|
+
className: e(
|
|
20
|
+
"border-b border-border p-4 last:border-b-0 md:border-r md:last:border-r-0",
|
|
21
|
+
r.span === 2 && "md:col-span-2",
|
|
22
|
+
r.span === 3 && "md:col-span-2 xl:col-span-3"
|
|
23
|
+
),
|
|
24
|
+
children: [
|
|
25
|
+
/* @__PURE__ */ o("dt", { className: "text-xs font-medium text-muted-foreground", children: r.label }),
|
|
26
|
+
/* @__PURE__ */ o("dd", { className: "mt-1 text-sm text-foreground", children: r.value })
|
|
27
|
+
]
|
|
28
|
+
},
|
|
29
|
+
c
|
|
30
|
+
))
|
|
31
|
+
}
|
|
32
|
+
);
|
|
33
|
+
}
|
|
34
|
+
export {
|
|
35
|
+
m as DescriptionGrid
|
|
36
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export interface DetailHeaderField {
|
|
3
|
+
label: React.ReactNode;
|
|
4
|
+
value: React.ReactNode;
|
|
5
|
+
}
|
|
6
|
+
export interface DetailHeaderProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> {
|
|
7
|
+
title: React.ReactNode;
|
|
8
|
+
description?: React.ReactNode;
|
|
9
|
+
eyebrow?: React.ReactNode;
|
|
10
|
+
icon?: React.ComponentType<{
|
|
11
|
+
className?: string;
|
|
12
|
+
}>;
|
|
13
|
+
status?: React.ReactNode;
|
|
14
|
+
fields?: DetailHeaderField[];
|
|
15
|
+
tags?: React.ReactNode[];
|
|
16
|
+
actions?: React.ReactNode;
|
|
17
|
+
}
|
|
18
|
+
declare function DetailHeader({ className, title, description, eyebrow, icon: Icon, status, fields, tags, actions, children, ...props }: DetailHeaderProps): import("react/jsx-runtime").JSX.Element;
|
|
19
|
+
export { DetailHeader };
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { jsx as e, jsxs as r } from "react/jsx-runtime";
|
|
2
|
+
import { cn as g } from "../../../../lib/utils.js";
|
|
3
|
+
import { Badge as n } from "../../data-display/badge/badge.js";
|
|
4
|
+
import { Card as u, CardContent as N } from "../../data-display/card/card.js";
|
|
5
|
+
import { TitleHelp as v } from "../../feedback/title-help/title-help.js";
|
|
6
|
+
function z({
|
|
7
|
+
className: o,
|
|
8
|
+
title: p,
|
|
9
|
+
description: x,
|
|
10
|
+
eyebrow: l,
|
|
11
|
+
icon: d,
|
|
12
|
+
status: t,
|
|
13
|
+
fields: s,
|
|
14
|
+
tags: c,
|
|
15
|
+
actions: m,
|
|
16
|
+
children: h,
|
|
17
|
+
...f
|
|
18
|
+
}) {
|
|
19
|
+
return /* @__PURE__ */ e(u, { "data-slot": "detail-header", className: g("card-surface", o), ...f, children: /* @__PURE__ */ r(N, { className: "space-y-5", children: [
|
|
20
|
+
/* @__PURE__ */ r("div", { className: "flex flex-col gap-4 md:flex-row md:items-center md:justify-between", children: [
|
|
21
|
+
/* @__PURE__ */ r("div", { className: "flex min-w-0 items-center gap-3", children: [
|
|
22
|
+
d && /* @__PURE__ */ e("div", { className: "flex size-12 shrink-0 items-center justify-center rounded-xl bg-primary/10 text-primary", children: /* @__PURE__ */ e(d, { className: "size-6" }) }),
|
|
23
|
+
/* @__PURE__ */ r("div", { className: "min-w-0 space-y-2", children: [
|
|
24
|
+
l && /* @__PURE__ */ e("div", { className: "text-xs font-medium uppercase tracking-wider text-muted-foreground", children: l }),
|
|
25
|
+
/* @__PURE__ */ r("div", { className: "flex flex-wrap items-center gap-2", children: [
|
|
26
|
+
/* @__PURE__ */ e("h2", { className: "text-xl font-semibold tracking-tight text-foreground", children: /* @__PURE__ */ e(v, { help: x, children: p }) }),
|
|
27
|
+
t && /* @__PURE__ */ e(n, { appearance: "light", children: t })
|
|
28
|
+
] }),
|
|
29
|
+
c && /* @__PURE__ */ e("div", { className: "flex flex-wrap gap-2", children: c.map((a, i) => /* @__PURE__ */ e(n, { variant: "secondary", appearance: "light", size: "sm", children: a }, i)) })
|
|
30
|
+
] })
|
|
31
|
+
] }),
|
|
32
|
+
m && /* @__PURE__ */ e("div", { className: "flex shrink-0 flex-wrap items-center gap-2", children: m })
|
|
33
|
+
] }),
|
|
34
|
+
s && /* @__PURE__ */ e("div", { className: "grid gap-3 border-t border-border pt-4 sm:grid-cols-2 lg:grid-cols-4", children: s.map((a, i) => /* @__PURE__ */ r("div", { children: [
|
|
35
|
+
/* @__PURE__ */ e("div", { className: "text-xs text-muted-foreground", children: a.label }),
|
|
36
|
+
/* @__PURE__ */ e("div", { className: "mt-1 text-sm font-medium text-foreground", children: a.value })
|
|
37
|
+
] }, i)) }),
|
|
38
|
+
h
|
|
39
|
+
] }) });
|
|
40
|
+
}
|
|
41
|
+
export {
|
|
42
|
+
z as DetailHeader
|
|
43
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export interface FilterPanelProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
summary?: React.ReactNode;
|
|
4
|
+
actions?: React.ReactNode;
|
|
5
|
+
footer?: React.ReactNode;
|
|
6
|
+
}
|
|
7
|
+
export interface FilterPanelGridProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
8
|
+
columns?: 1 | 2 | 3 | 4;
|
|
9
|
+
}
|
|
10
|
+
export interface FilterPanelFieldProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
11
|
+
label: React.ReactNode;
|
|
12
|
+
labelFor?: string;
|
|
13
|
+
hint?: React.ReactNode;
|
|
14
|
+
}
|
|
15
|
+
declare function FilterPanel({ className, summary, actions, footer, children, ...props }: FilterPanelProps): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
declare function FilterPanelGrid({ className, columns, ...props }: FilterPanelGridProps): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
declare function FilterPanelField({ className, label, labelFor, hint, children, ...props }: FilterPanelFieldProps): import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
export { FilterPanel, FilterPanelField, FilterPanelGrid };
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { jsxs as t, jsx as l, Fragment as c } from "react/jsx-runtime";
|
|
2
|
+
import { cn as o } from "../../../../lib/utils.js";
|
|
3
|
+
import { Label as n } from "../../form/label/label.js";
|
|
4
|
+
const g = {
|
|
5
|
+
1: "grid-cols-1",
|
|
6
|
+
2: "grid-cols-1 lg:grid-cols-2",
|
|
7
|
+
3: "grid-cols-1 md:grid-cols-2 xl:grid-cols-3",
|
|
8
|
+
4: "grid-cols-1 sm:grid-cols-2 xl:grid-cols-4"
|
|
9
|
+
};
|
|
10
|
+
function v({
|
|
11
|
+
className: d,
|
|
12
|
+
summary: r,
|
|
13
|
+
actions: e,
|
|
14
|
+
footer: a,
|
|
15
|
+
children: i,
|
|
16
|
+
...s
|
|
17
|
+
}) {
|
|
18
|
+
return /* @__PURE__ */ t(
|
|
19
|
+
"div",
|
|
20
|
+
{
|
|
21
|
+
"data-slot": "filter-panel",
|
|
22
|
+
className: o(
|
|
23
|
+
"card-surface rounded-[var(--dk-radius-card)] border border-border p-[var(--dk-filter-padding)]",
|
|
24
|
+
d
|
|
25
|
+
),
|
|
26
|
+
...s,
|
|
27
|
+
children: [
|
|
28
|
+
/* @__PURE__ */ l("div", { "data-slot": "filter-panel-body", className: "grid gap-[var(--dk-filter-gap)]", children: i }),
|
|
29
|
+
(r || e || a) && /* @__PURE__ */ l(
|
|
30
|
+
"div",
|
|
31
|
+
{
|
|
32
|
+
"data-slot": "filter-panel-footer",
|
|
33
|
+
className: "mt-[var(--dk-filter-gap)] flex flex-wrap items-center justify-end gap-[var(--dk-control-gap)] border-t border-border pt-[var(--dk-filter-gap)]",
|
|
34
|
+
children: a ?? /* @__PURE__ */ t(c, { children: [
|
|
35
|
+
r && /* @__PURE__ */ l("div", { className: "mr-1 text-xs text-muted-foreground", children: r }),
|
|
36
|
+
e
|
|
37
|
+
] })
|
|
38
|
+
}
|
|
39
|
+
)
|
|
40
|
+
]
|
|
41
|
+
}
|
|
42
|
+
);
|
|
43
|
+
}
|
|
44
|
+
function x({
|
|
45
|
+
className: d,
|
|
46
|
+
columns: r = 4,
|
|
47
|
+
...e
|
|
48
|
+
}) {
|
|
49
|
+
return /* @__PURE__ */ l(
|
|
50
|
+
"div",
|
|
51
|
+
{
|
|
52
|
+
"data-slot": "filter-panel-grid",
|
|
53
|
+
className: o("grid gap-[var(--dk-filter-gap)]", g[r], d),
|
|
54
|
+
...e
|
|
55
|
+
}
|
|
56
|
+
);
|
|
57
|
+
}
|
|
58
|
+
function u({
|
|
59
|
+
className: d,
|
|
60
|
+
label: r,
|
|
61
|
+
labelFor: e,
|
|
62
|
+
hint: a,
|
|
63
|
+
children: i,
|
|
64
|
+
...s
|
|
65
|
+
}) {
|
|
66
|
+
return /* @__PURE__ */ t(
|
|
67
|
+
"div",
|
|
68
|
+
{
|
|
69
|
+
"data-slot": "filter-panel-field",
|
|
70
|
+
className: o("space-y-[calc(var(--dk-control-gap)*0.75)]", d),
|
|
71
|
+
...s,
|
|
72
|
+
children: [
|
|
73
|
+
/* @__PURE__ */ t("div", { className: "flex items-center justify-between gap-2", children: [
|
|
74
|
+
/* @__PURE__ */ l(n, { htmlFor: e, className: "text-xs", children: r }),
|
|
75
|
+
a && /* @__PURE__ */ l("div", { className: "text-xs text-muted-foreground", children: a })
|
|
76
|
+
] }),
|
|
77
|
+
i
|
|
78
|
+
]
|
|
79
|
+
}
|
|
80
|
+
);
|
|
81
|
+
}
|
|
82
|
+
export {
|
|
83
|
+
v as FilterPanel,
|
|
84
|
+
u as FilterPanelField,
|
|
85
|
+
x as FilterPanelGrid
|
|
86
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export interface FilterToolbarProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
searchValue?: string;
|
|
4
|
+
defaultSearchValue?: string;
|
|
5
|
+
searchPlaceholder?: string;
|
|
6
|
+
onSearchChange?: (value: string) => void;
|
|
7
|
+
onReset?: () => void;
|
|
8
|
+
filters?: React.ReactNode;
|
|
9
|
+
viewSwitcher?: React.ReactNode;
|
|
10
|
+
actions?: React.ReactNode;
|
|
11
|
+
primaryAction?: React.ReactNode;
|
|
12
|
+
}
|
|
13
|
+
declare function FilterToolbar({ className, searchValue, defaultSearchValue, searchPlaceholder, onSearchChange, onReset, filters, viewSwitcher, actions, primaryAction, children, ...props }: FilterToolbarProps): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export { FilterToolbar };
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { jsxs as e, jsx as r } from "react/jsx-runtime";
|
|
2
|
+
import { Search as b, X as g } from "lucide-react";
|
|
3
|
+
import { cn as h } from "../../../../lib/utils.js";
|
|
4
|
+
import { Button as v } from "../../form/button/button.js";
|
|
5
|
+
import { InputWrapper as w, Input as N } from "../../form/input/input.js";
|
|
6
|
+
function B({
|
|
7
|
+
className: d,
|
|
8
|
+
searchValue: l,
|
|
9
|
+
defaultSearchValue: o,
|
|
10
|
+
searchPlaceholder: n = "搜索",
|
|
11
|
+
onSearchChange: s,
|
|
12
|
+
onReset: t,
|
|
13
|
+
filters: c,
|
|
14
|
+
viewSwitcher: m,
|
|
15
|
+
actions: a,
|
|
16
|
+
primaryAction: i,
|
|
17
|
+
children: f,
|
|
18
|
+
...p
|
|
19
|
+
}) {
|
|
20
|
+
const x = l !== void 0 || o !== void 0 || s;
|
|
21
|
+
return /* @__PURE__ */ e(
|
|
22
|
+
"div",
|
|
23
|
+
{
|
|
24
|
+
"data-slot": "filter-toolbar",
|
|
25
|
+
className: h("flex flex-col gap-3 rounded-lg border border-border bg-card p-3 md:flex-row md:items-center md:justify-between", d),
|
|
26
|
+
...p,
|
|
27
|
+
children: [
|
|
28
|
+
/* @__PURE__ */ e("div", { className: "flex min-w-0 flex-1 flex-col gap-2 sm:flex-row sm:flex-wrap sm:items-center", children: [
|
|
29
|
+
x && /* @__PURE__ */ e(w, { className: "min-w-0 sm:w-64", children: [
|
|
30
|
+
/* @__PURE__ */ r(b, { className: "size-4" }),
|
|
31
|
+
/* @__PURE__ */ r(
|
|
32
|
+
N,
|
|
33
|
+
{
|
|
34
|
+
value: l,
|
|
35
|
+
defaultValue: o,
|
|
36
|
+
placeholder: n,
|
|
37
|
+
onChange: (u) => s?.(u.target.value)
|
|
38
|
+
}
|
|
39
|
+
)
|
|
40
|
+
] }),
|
|
41
|
+
c,
|
|
42
|
+
f,
|
|
43
|
+
t && /* @__PURE__ */ e(v, { type: "button", variant: "ghost", size: "sm", onClick: t, children: [
|
|
44
|
+
/* @__PURE__ */ r(g, { className: "size-3.5" }),
|
|
45
|
+
"重置"
|
|
46
|
+
] })
|
|
47
|
+
] }),
|
|
48
|
+
(m || a || i) && /* @__PURE__ */ e("div", { className: "flex shrink-0 flex-wrap items-center gap-2", children: [
|
|
49
|
+
m,
|
|
50
|
+
a,
|
|
51
|
+
i
|
|
52
|
+
] })
|
|
53
|
+
]
|
|
54
|
+
}
|
|
55
|
+
);
|
|
56
|
+
}
|
|
57
|
+
export {
|
|
58
|
+
B as FilterToolbar
|
|
59
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export interface ForgotPasswordFormProps extends Omit<React.FormHTMLAttributes<HTMLFormElement>, 'title'> {
|
|
3
|
+
title?: React.ReactNode;
|
|
4
|
+
description?: React.ReactNode;
|
|
5
|
+
submitText?: React.ReactNode;
|
|
6
|
+
backAction?: React.ReactNode;
|
|
7
|
+
}
|
|
8
|
+
declare function ForgotPasswordForm({ className, title, description, submitText, backAction, ...props }: ForgotPasswordFormProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export { ForgotPasswordForm };
|