@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.
Files changed (231) hide show
  1. package/README.md +128 -0
  2. package/dist/app/background-decor.d.ts +1 -0
  3. package/dist/app/background-decor.js +38 -0
  4. package/dist/app/container.d.ts +12 -0
  5. package/dist/app/container.js +29 -0
  6. package/dist/app/demo1-shell.d.ts +43 -0
  7. package/dist/app/demo1-shell.js +616 -0
  8. package/dist/app/tweak-panel.d.ts +22 -0
  9. package/dist/app/tweak-panel.js +182 -0
  10. package/dist/components/apexcharts.css +101 -0
  11. package/dist/components/scrollable.css +120 -0
  12. package/dist/config/settings.config.d.ts +2 -0
  13. package/dist/config/settings.config.js +33 -0
  14. package/dist/config/types.d.ts +50 -0
  15. package/dist/config.reui.css +337 -0
  16. package/dist/demos/demo1.css +176 -0
  17. package/dist/index.d.ts +14 -0
  18. package/dist/index.js +484 -0
  19. package/dist/kit/components/chart/chart/chart.d.ts +57 -0
  20. package/dist/kit/components/chart/chart/chart.js +206 -0
  21. package/dist/kit/components/composite/action-bar/action-bar.d.ts +10 -0
  22. package/dist/kit/components/composite/action-bar/action-bar.js +38 -0
  23. package/dist/kit/components/composite/action-card/action-card.d.ts +13 -0
  24. package/dist/kit/components/composite/action-card/action-card.js +35 -0
  25. package/dist/kit/components/composite/activity-feed/activity-feed.d.ts +17 -0
  26. package/dist/kit/components/composite/activity-feed/activity-feed.js +26 -0
  27. package/dist/kit/components/composite/alert-card/alert-card.d.ts +10 -0
  28. package/dist/kit/components/composite/alert-card/alert-card.js +37 -0
  29. package/dist/kit/components/composite/approval-flow/approval-flow.d.ts +51 -0
  30. package/dist/kit/components/composite/approval-flow/approval-flow.js +185 -0
  31. package/dist/kit/components/composite/auth-shell/auth-shell.d.ts +10 -0
  32. package/dist/kit/components/composite/auth-shell/auth-shell.js +32 -0
  33. package/dist/kit/components/composite/board-toolbar/board-toolbar.d.ts +12 -0
  34. package/dist/kit/components/composite/board-toolbar/board-toolbar.js +44 -0
  35. package/dist/kit/components/composite/chart-card/chart-card.d.ts +14 -0
  36. package/dist/kit/components/composite/chart-card/chart-card.js +64 -0
  37. package/dist/kit/components/composite/chart-toolbar/chart-toolbar.d.ts +17 -0
  38. package/dist/kit/components/composite/chart-toolbar/chart-toolbar.js +48 -0
  39. package/dist/kit/components/composite/data-section/data-section.d.ts +17 -0
  40. package/dist/kit/components/composite/data-section/data-section.js +73 -0
  41. package/dist/kit/components/composite/description-grid/description-grid.d.ts +12 -0
  42. package/dist/kit/components/composite/description-grid/description-grid.js +36 -0
  43. package/dist/kit/components/composite/detail-header/detail-header.d.ts +19 -0
  44. package/dist/kit/components/composite/detail-header/detail-header.js +43 -0
  45. package/dist/kit/components/composite/filter-panel/filter-panel.d.ts +18 -0
  46. package/dist/kit/components/composite/filter-panel/filter-panel.js +86 -0
  47. package/dist/kit/components/composite/filter-toolbar/filter-toolbar.d.ts +14 -0
  48. package/dist/kit/components/composite/filter-toolbar/filter-toolbar.js +59 -0
  49. package/dist/kit/components/composite/forgot-password-form/forgot-password-form.d.ts +9 -0
  50. package/dist/kit/components/composite/forgot-password-form/forgot-password-form.js +34 -0
  51. package/dist/kit/components/composite/form-section/form-section.d.ts +9 -0
  52. package/dist/kit/components/composite/form-section/form-section.js +16 -0
  53. package/dist/kit/components/composite/kanban-board/kanban-board.d.ts +50 -0
  54. package/dist/kit/components/composite/kanban-board/kanban-board.js +55 -0
  55. package/dist/kit/components/composite/login-card/login-card.d.ts +33 -0
  56. package/dist/kit/components/composite/login-card/login-card.js +138 -0
  57. package/dist/kit/components/composite/message-list-card/message-list-card.d.ts +20 -0
  58. package/dist/kit/components/composite/message-list-card/message-list-card.js +83 -0
  59. package/dist/kit/components/composite/metric-card/metric-card.d.ts +18 -0
  60. package/dist/kit/components/composite/metric-card/metric-card.js +37 -0
  61. package/dist/kit/components/composite/milestone-card/milestone-card.d.ts +12 -0
  62. package/dist/kit/components/composite/milestone-card/milestone-card.js +33 -0
  63. package/dist/kit/components/composite/oauth-login-buttons/oauth-login-buttons.d.ts +14 -0
  64. package/dist/kit/components/composite/oauth-login-buttons/oauth-login-buttons.js +32 -0
  65. package/dist/kit/components/composite/page-header/page-header.d.ts +12 -0
  66. package/dist/kit/components/composite/page-header/page-header.js +66 -0
  67. package/dist/kit/components/composite/profile-card/profile-card.d.ts +16 -0
  68. package/dist/kit/components/composite/profile-card/profile-card.js +28 -0
  69. package/dist/kit/components/composite/progress-card/progress-card.d.ts +16 -0
  70. package/dist/kit/components/composite/progress-card/progress-card.js +23 -0
  71. package/dist/kit/components/composite/project-card/project-card.d.ts +17 -0
  72. package/dist/kit/components/composite/project-card/project-card.js +46 -0
  73. package/dist/kit/components/composite/shortcut-card/shortcut-card.d.ts +13 -0
  74. package/dist/kit/components/composite/shortcut-card/shortcut-card.js +35 -0
  75. package/dist/kit/components/composite/sprint-summary/sprint-summary.d.ts +15 -0
  76. package/dist/kit/components/composite/sprint-summary/sprint-summary.js +43 -0
  77. package/dist/kit/components/composite/state-panel/state-panel.d.ts +12 -0
  78. package/dist/kit/components/composite/state-panel/state-panel.js +79 -0
  79. package/dist/kit/components/composite/summary-card/summary-card.d.ts +15 -0
  80. package/dist/kit/components/composite/summary-card/summary-card.js +25 -0
  81. package/dist/kit/components/composite/task-card/task-card.d.ts +14 -0
  82. package/dist/kit/components/composite/task-card/task-card.js +49 -0
  83. package/dist/kit/components/composite/timeline/timeline.d.ts +46 -0
  84. package/dist/kit/components/composite/timeline/timeline.js +176 -0
  85. package/dist/kit/components/composite/todo-card/todo-card.d.ts +26 -0
  86. package/dist/kit/components/composite/todo-card/todo-card.js +101 -0
  87. package/dist/kit/components/data-display/avatar/avatar.d.ts +12 -0
  88. package/dist/kit/components/data-display/avatar/avatar.js +61 -0
  89. package/dist/kit/components/data-display/avatar-group/avatar-group.d.ts +22 -0
  90. package/dist/kit/components/data-display/avatar-group/avatar-group.js +184 -0
  91. package/dist/kit/components/data-display/badge/badge.d.ts +29 -0
  92. package/dist/kit/components/data-display/badge/badge.js +203 -0
  93. package/dist/kit/components/data-display/card/card.d.ts +15 -0
  94. package/dist/kit/components/data-display/card/card.js +119 -0
  95. package/dist/kit/components/data-display/data-grid/data-grid-column-filter.d.ts +15 -0
  96. package/dist/kit/components/data-display/data-grid/data-grid-column-filter.js +74 -0
  97. package/dist/kit/components/data-display/data-grid/data-grid-column-header.d.ts +12 -0
  98. package/dist/kit/components/data-display/data-grid/data-grid-column-header.js +171 -0
  99. package/dist/kit/components/data-display/data-grid/data-grid-column-visibility.d.ts +7 -0
  100. package/dist/kit/components/data-display/data-grid/data-grid-column-visibility.js +24 -0
  101. package/dist/kit/components/data-display/data-grid/data-grid-pagination.d.ts +15 -0
  102. package/dist/kit/components/data-display/data-grid/data-grid-pagination.js +132 -0
  103. package/dist/kit/components/data-display/data-grid/data-grid-table-dnd-rows.d.ts +9 -0
  104. package/dist/kit/components/data-display/data-grid/data-grid-table-dnd-rows.js +61 -0
  105. package/dist/kit/components/data-display/data-grid/data-grid-table-dnd.d.ts +5 -0
  106. package/dist/kit/components/data-display/data-grid/data-grid-table-dnd.js +86 -0
  107. package/dist/kit/components/data-display/data-grid/data-grid-table.d.ts +59 -0
  108. package/dist/kit/components/data-display/data-grid/data-grid-table.js +356 -0
  109. package/dist/kit/components/data-display/data-grid/data-grid.d.ts +87 -0
  110. package/dist/kit/components/data-display/data-grid/data-grid.js +87 -0
  111. package/dist/kit/components/data-display/kbd/kbd.d.ts +8 -0
  112. package/dist/kit/components/data-display/kbd/kbd.js +27 -0
  113. package/dist/kit/components/data-display/money-amount/money-amount.d.ts +27 -0
  114. package/dist/kit/components/data-display/money-amount/money-amount.js +91 -0
  115. package/dist/kit/components/data-display/progress/progress.d.ts +6 -0
  116. package/dist/kit/components/data-display/progress/progress.js +29 -0
  117. package/dist/kit/components/data-display/skeleton/skeleton.d.ts +3 -0
  118. package/dist/kit/components/data-display/skeleton/skeleton.js +8 -0
  119. package/dist/kit/components/data-display/sliding-number/sliding-number.d.ts +7 -0
  120. package/dist/kit/components/data-display/sliding-number/sliding-number.js +41 -0
  121. package/dist/kit/components/data-display/stepper/stepper.d.ts +61 -0
  122. package/dist/kit/components/data-display/stepper/stepper.js +230 -0
  123. package/dist/kit/components/data-display/table/table.d.ts +28 -0
  124. package/dist/kit/components/data-display/table/table.js +156 -0
  125. package/dist/kit/components/decorative/aurora-background/aurora-background.d.ts +7 -0
  126. package/dist/kit/components/decorative/aurora-background/aurora-background.js +60 -0
  127. package/dist/kit/components/decorative/grid-background/grid-background.d.ts +22 -0
  128. package/dist/kit/components/decorative/grid-background/grid-background.js +46 -0
  129. package/dist/kit/components/decorative/shimmering-text/shimmering-text.d.ts +29 -0
  130. package/dist/kit/components/decorative/shimmering-text/shimmering-text.js +64 -0
  131. package/dist/kit/components/decorative/text-reveal/text-reveal.d.ts +17 -0
  132. package/dist/kit/components/decorative/text-reveal/text-reveal.js +277 -0
  133. package/dist/kit/components/feedback/alert/alert.d.ts +21 -0
  134. package/dist/kit/components/feedback/alert/alert.js +236 -0
  135. package/dist/kit/components/feedback/alert-dialog/alert-dialog.d.ts +16 -0
  136. package/dist/kit/components/feedback/alert-dialog/alert-dialog.js +117 -0
  137. package/dist/kit/components/feedback/context-menu/context-menu.d.ts +24 -0
  138. package/dist/kit/components/feedback/context-menu/context-menu.js +183 -0
  139. package/dist/kit/components/feedback/dialog/dialog.d.ts +22 -0
  140. package/dist/kit/components/feedback/dialog/dialog.js +120 -0
  141. package/dist/kit/components/feedback/drawer/drawer.d.ts +13 -0
  142. package/dist/kit/components/feedback/drawer/drawer.js +76 -0
  143. package/dist/kit/components/feedback/dropdown-menu/dropdown-menu.d.ts +25 -0
  144. package/dist/kit/components/feedback/dropdown-menu/dropdown-menu.js +200 -0
  145. package/dist/kit/components/feedback/hover-card/hover-card.d.ts +6 -0
  146. package/dist/kit/components/feedback/hover-card/hover-card.js +34 -0
  147. package/dist/kit/components/feedback/popover/popover.d.ts +6 -0
  148. package/dist/kit/components/feedback/popover/popover.js +34 -0
  149. package/dist/kit/components/feedback/sheet/sheet.d.ts +22 -0
  150. package/dist/kit/components/feedback/sheet/sheet.js +128 -0
  151. package/dist/kit/components/feedback/sonner/sonner.d.ts +5 -0
  152. package/dist/kit/components/feedback/sonner/sonner.js +21 -0
  153. package/dist/kit/components/feedback/title-help/title-help.d.ts +10 -0
  154. package/dist/kit/components/feedback/title-help/title-help.js +44 -0
  155. package/dist/kit/components/feedback/tooltip/tooltip.d.ts +11 -0
  156. package/dist/kit/components/feedback/tooltip/tooltip.js +49 -0
  157. package/dist/kit/components/form/button/button.d.ts +23 -0
  158. package/dist/kit/components/form/button/button.js +380 -0
  159. package/dist/kit/components/form/calendar/calendar.d.ts +4 -0
  160. package/dist/kit/components/form/calendar/calendar.js +47 -0
  161. package/dist/kit/components/form/checkbox/checkbox.d.ts +8 -0
  162. package/dist/kit/components/form/checkbox/checkbox.js +39 -0
  163. package/dist/kit/components/form/command/command.d.ts +21 -0
  164. package/dist/kit/components/form/command/command.js +116 -0
  165. package/dist/kit/components/form/datefield/datefield.d.ts +14 -0
  166. package/dist/kit/components/form/datefield/datefield.js +74 -0
  167. package/dist/kit/components/form/file-upload/file-upload.d.ts +56 -0
  168. package/dist/kit/components/form/file-upload/file-upload.js +338 -0
  169. package/dist/kit/components/form/form/form.d.ts +24 -0
  170. package/dist/kit/components/form/form/form.js +86 -0
  171. package/dist/kit/components/form/input/input.d.ts +22 -0
  172. package/dist/kit/components/form/input/input.js +182 -0
  173. package/dist/kit/components/form/label/label.d.ts +8 -0
  174. package/dist/kit/components/form/label/label.js +28 -0
  175. package/dist/kit/components/form/radio-group/radio-group.d.ts +13 -0
  176. package/dist/kit/components/form/radio-group/radio-group.js +79 -0
  177. package/dist/kit/components/form/select/select.d.ts +25 -0
  178. package/dist/kit/components/form/select/select.js +194 -0
  179. package/dist/kit/components/form/slider/slider.d.ts +5 -0
  180. package/dist/kit/components/form/slider/slider.js +34 -0
  181. package/dist/kit/components/form/switch/switch.d.ts +20 -0
  182. package/dist/kit/components/form/switch/switch.js +158 -0
  183. package/dist/kit/components/form/textarea/textarea.d.ts +7 -0
  184. package/dist/kit/components/form/textarea/textarea.js +34 -0
  185. package/dist/kit/components/form/toggle/toggle.d.ts +9 -0
  186. package/dist/kit/components/form/toggle/toggle.js +36 -0
  187. package/dist/kit/components/form/toggle-group/toggle-group.d.ts +7 -0
  188. package/dist/kit/components/form/toggle-group/toggle-group.js +62 -0
  189. package/dist/kit/components/index.d.ts +108 -0
  190. package/dist/kit/components/layout/accordion/accordion.d.ts +13 -0
  191. package/dist/kit/components/layout/accordion/accordion.js +124 -0
  192. package/dist/kit/components/layout/aspect-ratio/aspect-ratio.d.ts +4 -0
  193. package/dist/kit/components/layout/aspect-ratio/aspect-ratio.js +8 -0
  194. package/dist/kit/components/layout/collapsible/collapsible.d.ts +6 -0
  195. package/dist/kit/components/layout/collapsible/collapsible.js +32 -0
  196. package/dist/kit/components/layout/resizable/resizable.d.ts +24 -0
  197. package/dist/kit/components/layout/resizable/resizable.js +32 -0
  198. package/dist/kit/components/layout/scroll-area/scroll-area.d.ts +8 -0
  199. package/dist/kit/components/layout/scroll-area/scroll-area.js +48 -0
  200. package/dist/kit/components/layout/separator/separator.d.ts +4 -0
  201. package/dist/kit/components/layout/separator/separator.js +23 -0
  202. package/dist/kit/components/navigation/accordion-menu/accordion-menu.d.ts +51 -0
  203. package/dist/kit/components/navigation/accordion-menu/accordion-menu.js +290 -0
  204. package/dist/kit/components/navigation/breadcrumb/breadcrumb.d.ts +13 -0
  205. package/dist/kit/components/navigation/breadcrumb/breadcrumb.js +76 -0
  206. package/dist/kit/components/navigation/menubar/menubar.d.ts +25 -0
  207. package/dist/kit/components/navigation/menubar/menubar.js +218 -0
  208. package/dist/kit/components/navigation/navigation-menu/navigation-menu.d.ts +14 -0
  209. package/dist/kit/components/navigation/navigation-menu/navigation-menu.js +137 -0
  210. package/dist/kit/components/navigation/pagination/pagination.d.ts +6 -0
  211. package/dist/kit/components/navigation/pagination/pagination.js +38 -0
  212. package/dist/kit/components/navigation/scrollspy/scrollspy.d.ts +14 -0
  213. package/dist/kit/components/navigation/scrollspy/scrollspy.js +84 -0
  214. package/dist/kit/components/navigation/tabs/tabs.d.ts +16 -0
  215. package/dist/kit/components/navigation/tabs/tabs.js +172 -0
  216. package/dist/kit/themes/theme-toggle.d.ts +1 -0
  217. package/dist/kit/themes/theme-toggle.js +56 -0
  218. package/dist/kit/tokens/chart-palette.d.ts +1 -0
  219. package/dist/kit/tokens/chart-palette.js +12 -0
  220. package/dist/lib/utils.d.ts +8 -0
  221. package/dist/lib/utils.js +8 -0
  222. package/dist/providers/demokit-provider.d.ts +4 -0
  223. package/dist/providers/demokit-provider.js +9 -0
  224. package/dist/providers/settings-provider.d.ts +15 -0
  225. package/dist/providers/settings-provider.js +78 -0
  226. package/dist/providers/theme-provider.d.ts +4 -0
  227. package/dist/providers/theme-provider.js +9 -0
  228. package/dist/providers/tooltips-provider.d.ts +4 -0
  229. package/dist/providers/tooltips-provider.js +8 -0
  230. package/dist/styles.css +237 -0
  231. 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 };