@demokit-ui/demokit 0.1.0 → 0.1.1

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 (189) hide show
  1. package/README.md +3 -0
  2. package/dist/app/demo1-shell.js +195 -188
  3. package/dist/app/tweak-panel.js +20 -4
  4. package/dist/index.js +811 -479
  5. package/dist/kit/components/chart/chart/chart.examples.d.ts +13 -0
  6. package/dist/kit/components/chart/chart/chart.examples.js +390 -0
  7. package/dist/kit/components/composite/action-bar/action-bar.examples.d.ts +2 -0
  8. package/dist/kit/components/composite/action-bar/action-bar.examples.js +35 -0
  9. package/dist/kit/components/composite/action-card/action-card.examples.d.ts +2 -0
  10. package/dist/kit/components/composite/action-card/action-card.examples.js +34 -0
  11. package/dist/kit/components/composite/activity-feed/activity-feed.examples.d.ts +2 -0
  12. package/dist/kit/components/composite/activity-feed/activity-feed.examples.js +44 -0
  13. package/dist/kit/components/composite/alert-card/alert-card.examples.d.ts +2 -0
  14. package/dist/kit/components/composite/alert-card/alert-card.examples.js +18 -0
  15. package/dist/kit/components/composite/approval-flow/approval-flow.examples.d.ts +2 -0
  16. package/dist/kit/components/composite/approval-flow/approval-flow.examples.js +70 -0
  17. package/dist/kit/components/composite/auth-shell/auth-shell.examples.d.ts +2 -0
  18. package/dist/kit/components/composite/auth-shell/auth-shell.examples.js +23 -0
  19. package/dist/kit/components/composite/board-toolbar/board-toolbar.examples.d.ts +2 -0
  20. package/dist/kit/components/composite/board-toolbar/board-toolbar.examples.js +32 -0
  21. package/dist/kit/components/composite/chart-card/chart-card.examples.d.ts +3 -0
  22. package/dist/kit/components/composite/chart-card/chart-card.examples.js +58 -0
  23. package/dist/kit/components/composite/chart-toolbar/chart-toolbar.examples.d.ts +2 -0
  24. package/dist/kit/components/composite/chart-toolbar/chart-toolbar.examples.js +39 -0
  25. package/dist/kit/components/composite/data-section/data-section.examples.d.ts +3 -0
  26. package/dist/kit/components/composite/data-section/data-section.examples.js +48 -0
  27. package/dist/kit/components/composite/description-grid/description-grid.examples.d.ts +2 -0
  28. package/dist/kit/components/composite/description-grid/description-grid.examples.js +30 -0
  29. package/dist/kit/components/composite/detail-header/detail-header.examples.d.ts +2 -0
  30. package/dist/kit/components/composite/detail-header/detail-header.examples.js +37 -0
  31. package/dist/kit/components/composite/filter-panel/filter-panel.examples.d.ts +2 -0
  32. package/dist/kit/components/composite/filter-panel/filter-panel.examples.js +63 -0
  33. package/dist/kit/components/composite/filter-toolbar/filter-toolbar.examples.d.ts +2 -0
  34. package/dist/kit/components/composite/filter-toolbar/filter-toolbar.examples.js +39 -0
  35. package/dist/kit/components/composite/forgot-password-form/forgot-password-form.examples.d.ts +2 -0
  36. package/dist/kit/components/composite/forgot-password-form/forgot-password-form.examples.js +19 -0
  37. package/dist/kit/components/composite/form-section/form-section.examples.d.ts +2 -0
  38. package/dist/kit/components/composite/form-section/form-section.examples.js +40 -0
  39. package/dist/kit/components/composite/kanban-board/kanban-board.examples.d.ts +2 -0
  40. package/dist/kit/components/composite/kanban-board/kanban-board.examples.js +72 -0
  41. package/dist/kit/components/composite/login-card/login-card.examples.d.ts +3 -0
  42. package/dist/kit/components/composite/login-card/login-card.examples.js +30 -0
  43. package/dist/kit/components/composite/message-list-card/message-list-card.examples.d.ts +2 -0
  44. package/dist/kit/components/composite/message-list-card/message-list-card.examples.js +56 -0
  45. package/dist/kit/components/composite/metric-card/metric-card.examples.d.ts +2 -0
  46. package/dist/kit/components/composite/metric-card/metric-card.examples.js +50 -0
  47. package/dist/kit/components/composite/milestone-card/milestone-card.examples.d.ts +2 -0
  48. package/dist/kit/components/composite/milestone-card/milestone-card.examples.js +54 -0
  49. package/dist/kit/components/composite/oauth-login-buttons/oauth-login-buttons.examples.d.ts +2 -0
  50. package/dist/kit/components/composite/oauth-login-buttons/oauth-login-buttons.examples.js +24 -0
  51. package/dist/kit/components/composite/page-header/page-header.examples.d.ts +3 -0
  52. package/dist/kit/components/composite/page-header/page-header.examples.js +56 -0
  53. package/dist/kit/components/composite/profile-card/profile-card.examples.d.ts +2 -0
  54. package/dist/kit/components/composite/profile-card/profile-card.examples.js +45 -0
  55. package/dist/kit/components/composite/progress-card/progress-card.examples.d.ts +2 -0
  56. package/dist/kit/components/composite/progress-card/progress-card.examples.js +42 -0
  57. package/dist/kit/components/composite/project-card/project-card.examples.d.ts +2 -0
  58. package/dist/kit/components/composite/project-card/project-card.examples.js +48 -0
  59. package/dist/kit/components/composite/shortcut-card/shortcut-card.examples.d.ts +2 -0
  60. package/dist/kit/components/composite/shortcut-card/shortcut-card.examples.js +18 -0
  61. package/dist/kit/components/composite/sprint-summary/sprint-summary.examples.d.ts +2 -0
  62. package/dist/kit/components/composite/sprint-summary/sprint-summary.examples.js +27 -0
  63. package/dist/kit/components/composite/state-panel/state-panel.examples.d.ts +2 -0
  64. package/dist/kit/components/composite/state-panel/state-panel.examples.js +48 -0
  65. package/dist/kit/components/composite/summary-card/summary-card.examples.d.ts +2 -0
  66. package/dist/kit/components/composite/summary-card/summary-card.examples.js +32 -0
  67. package/dist/kit/components/composite/task-card/task-card.examples.d.ts +2 -0
  68. package/dist/kit/components/composite/task-card/task-card.examples.js +39 -0
  69. package/dist/kit/components/composite/timeline/timeline.examples.d.ts +2 -0
  70. package/dist/kit/components/composite/timeline/timeline.examples.js +75 -0
  71. package/dist/kit/components/composite/todo-card/todo-card.examples.d.ts +2 -0
  72. package/dist/kit/components/composite/todo-card/todo-card.examples.js +42 -0
  73. package/dist/kit/components/data-display/avatar/avatar.examples.d.ts +7 -0
  74. package/dist/kit/components/data-display/avatar/avatar.examples.js +48 -0
  75. package/dist/kit/components/data-display/avatar-group/avatar-group.examples.d.ts +3 -0
  76. package/dist/kit/components/data-display/avatar-group/avatar-group.examples.js +35 -0
  77. package/dist/kit/components/data-display/badge/badge.examples.d.ts +9 -0
  78. package/dist/kit/components/data-display/badge/badge.examples.js +57 -0
  79. package/dist/kit/components/data-display/card/card.examples.d.ts +16 -0
  80. package/dist/kit/components/data-display/card/card.examples.js +72 -0
  81. package/dist/kit/components/data-display/data-grid/data-grid.examples.d.ts +2 -0
  82. package/dist/kit/components/data-display/data-grid/data-grid.examples.js +92 -0
  83. package/dist/kit/components/data-display/kbd/kbd.examples.d.ts +3 -0
  84. package/dist/kit/components/data-display/kbd/kbd.examples.js +43 -0
  85. package/dist/kit/components/data-display/money-amount/money-amount.examples.d.ts +1 -0
  86. package/dist/kit/components/data-display/money-amount/money-amount.examples.js +26 -0
  87. package/dist/kit/components/data-display/progress/progress.examples.d.ts +3 -0
  88. package/dist/kit/components/data-display/progress/progress.examples.js +45 -0
  89. package/dist/kit/components/data-display/skeleton/skeleton.examples.d.ts +3 -0
  90. package/dist/kit/components/data-display/skeleton/skeleton.examples.js +37 -0
  91. package/dist/kit/components/data-display/sliding-number/sliding-number.examples.d.ts +3 -0
  92. package/dist/kit/components/data-display/sliding-number/sliding-number.examples.js +42 -0
  93. package/dist/kit/components/data-display/stepper/stepper.examples.d.ts +2 -0
  94. package/dist/kit/components/data-display/stepper/stepper.examples.js +28 -0
  95. package/dist/kit/components/data-display/table/table.examples.d.ts +4 -0
  96. package/dist/kit/components/data-display/table/table.examples.js +78 -0
  97. package/dist/kit/components/decorative/aurora-background/aurora-background.examples.d.ts +2 -0
  98. package/dist/kit/components/decorative/aurora-background/aurora-background.examples.js +22 -0
  99. package/dist/kit/components/decorative/grid-background/grid-background.examples.d.ts +4 -0
  100. package/dist/kit/components/decorative/grid-background/grid-background.examples.js +42 -0
  101. package/dist/kit/components/decorative/shimmering-text/shimmering-text.examples.d.ts +4 -0
  102. package/dist/kit/components/decorative/shimmering-text/shimmering-text.examples.js +54 -0
  103. package/dist/kit/components/decorative/text-reveal/text-reveal.examples.d.ts +2 -0
  104. package/dist/kit/components/decorative/text-reveal/text-reveal.examples.js +46 -0
  105. package/dist/kit/components/feedback/alert/alert.examples.d.ts +2 -0
  106. package/dist/kit/components/feedback/alert/alert.examples.js +37 -0
  107. package/dist/kit/components/feedback/alert-dialog/alert-dialog.examples.d.ts +2 -0
  108. package/dist/kit/components/feedback/alert-dialog/alert-dialog.examples.js +28 -0
  109. package/dist/kit/components/feedback/context-menu/context-menu.examples.d.ts +2 -0
  110. package/dist/kit/components/feedback/context-menu/context-menu.examples.js +33 -0
  111. package/dist/kit/components/feedback/dialog/dialog.examples.d.ts +2 -0
  112. package/dist/kit/components/feedback/dialog/dialog.examples.js +51 -0
  113. package/dist/kit/components/feedback/drawer/drawer.examples.d.ts +2 -0
  114. package/dist/kit/components/feedback/drawer/drawer.examples.js +29 -0
  115. package/dist/kit/components/feedback/dropdown-menu/dropdown-menu.examples.d.ts +3 -0
  116. package/dist/kit/components/feedback/dropdown-menu/dropdown-menu.examples.js +54 -0
  117. package/dist/kit/components/feedback/hover-card/hover-card.examples.d.ts +2 -0
  118. package/dist/kit/components/feedback/hover-card/hover-card.examples.js +27 -0
  119. package/dist/kit/components/feedback/popover/popover.examples.d.ts +2 -0
  120. package/dist/kit/components/feedback/popover/popover.examples.js +42 -0
  121. package/dist/kit/components/feedback/sheet/sheet.examples.d.ts +2 -0
  122. package/dist/kit/components/feedback/sheet/sheet.examples.js +39 -0
  123. package/dist/kit/components/feedback/sonner/sonner.examples.d.ts +3 -0
  124. package/dist/kit/components/feedback/sonner/sonner.examples.js +49 -0
  125. package/dist/kit/components/feedback/title-help/title-help.examples.d.ts +1 -0
  126. package/dist/kit/components/feedback/title-help/title-help.examples.js +25 -0
  127. package/dist/kit/components/feedback/tooltip/tooltip.examples.d.ts +3 -0
  128. package/dist/kit/components/feedback/tooltip/tooltip.examples.js +44 -0
  129. package/dist/kit/components/form/button/button.examples.d.ts +13 -0
  130. package/dist/kit/components/form/button/button.examples.js +84 -0
  131. package/dist/kit/components/form/calendar/calendar.examples.d.ts +2 -0
  132. package/dist/kit/components/form/calendar/calendar.examples.js +23 -0
  133. package/dist/kit/components/form/checkbox/checkbox.examples.d.ts +4 -0
  134. package/dist/kit/components/form/checkbox/checkbox.examples.js +72 -0
  135. package/dist/kit/components/form/command/command.examples.d.ts +3 -0
  136. package/dist/kit/components/form/command/command.examples.js +52 -0
  137. package/dist/kit/components/form/datefield/datefield.examples.d.ts +2 -0
  138. package/dist/kit/components/form/datefield/datefield.examples.js +19 -0
  139. package/dist/kit/components/form/file-upload/file-upload.examples.d.ts +1 -0
  140. package/dist/kit/components/form/file-upload/file-upload.examples.js +18 -0
  141. package/dist/kit/components/form/form/form.examples.d.ts +2 -0
  142. package/dist/kit/components/form/form/form.examples.js +77 -0
  143. package/dist/kit/components/form/input/input.examples.d.ts +5 -0
  144. package/dist/kit/components/form/input/input.examples.js +64 -0
  145. package/dist/kit/components/form/label/label.examples.d.ts +4 -0
  146. package/dist/kit/components/form/label/label.examples.js +49 -0
  147. package/dist/kit/components/form/radio-group/radio-group.examples.d.ts +3 -0
  148. package/dist/kit/components/form/radio-group/radio-group.examples.js +40 -0
  149. package/dist/kit/components/form/select/select.examples.d.ts +3 -0
  150. package/dist/kit/components/form/select/select.examples.js +58 -0
  151. package/dist/kit/components/form/slider/slider.examples.d.ts +3 -0
  152. package/dist/kit/components/form/slider/slider.examples.js +46 -0
  153. package/dist/kit/components/form/switch/switch.examples.d.ts +3 -0
  154. package/dist/kit/components/form/switch/switch.examples.js +37 -0
  155. package/dist/kit/components/form/textarea/textarea.examples.d.ts +3 -0
  156. package/dist/kit/components/form/textarea/textarea.examples.js +49 -0
  157. package/dist/kit/components/form/toggle/toggle.examples.d.ts +3 -0
  158. package/dist/kit/components/form/toggle/toggle.examples.js +33 -0
  159. package/dist/kit/components/form/toggle-group/toggle-group.examples.d.ts +4 -0
  160. package/dist/kit/components/form/toggle-group/toggle-group.examples.js +46 -0
  161. package/dist/kit/components/index.d.ts +91 -0
  162. package/dist/kit/components/layout/accordion/accordion.examples.d.ts +2 -0
  163. package/dist/kit/components/layout/accordion/accordion.examples.js +34 -0
  164. package/dist/kit/components/layout/aspect-ratio/aspect-ratio.examples.d.ts +3 -0
  165. package/dist/kit/components/layout/aspect-ratio/aspect-ratio.examples.js +29 -0
  166. package/dist/kit/components/layout/collapsible/collapsible.examples.d.ts +2 -0
  167. package/dist/kit/components/layout/collapsible/collapsible.examples.js +28 -0
  168. package/dist/kit/components/layout/resizable/resizable.examples.d.ts +2 -0
  169. package/dist/kit/components/layout/resizable/resizable.examples.js +26 -0
  170. package/dist/kit/components/layout/scroll-area/scroll-area.examples.d.ts +2 -0
  171. package/dist/kit/components/layout/scroll-area/scroll-area.examples.js +16 -0
  172. package/dist/kit/components/layout/separator/separator.examples.d.ts +3 -0
  173. package/dist/kit/components/layout/separator/separator.examples.js +35 -0
  174. package/dist/kit/components/navigation/accordion-menu/accordion-menu.examples.d.ts +2 -0
  175. package/dist/kit/components/navigation/accordion-menu/accordion-menu.examples.js +36 -0
  176. package/dist/kit/components/navigation/breadcrumb/breadcrumb.examples.d.ts +3 -0
  177. package/dist/kit/components/navigation/breadcrumb/breadcrumb.examples.js +39 -0
  178. package/dist/kit/components/navigation/menubar/menubar.examples.d.ts +2 -0
  179. package/dist/kit/components/navigation/menubar/menubar.examples.js +54 -0
  180. package/dist/kit/components/navigation/navigation-menu/navigation-menu.examples.d.ts +2 -0
  181. package/dist/kit/components/navigation/navigation-menu/navigation-menu.examples.js +31 -0
  182. package/dist/kit/components/navigation/pagination/pagination.examples.d.ts +2 -0
  183. package/dist/kit/components/navigation/pagination/pagination.examples.js +42 -0
  184. package/dist/kit/components/navigation/scrollspy/scrollspy.examples.d.ts +2 -0
  185. package/dist/kit/components/navigation/scrollspy/scrollspy.examples.js +68 -0
  186. package/dist/kit/components/navigation/tabs/tabs.examples.d.ts +5 -0
  187. package/dist/kit/components/navigation/tabs/tabs.examples.js +43 -0
  188. package/dist/styles.css +29 -12
  189. package/package.json +1 -1
@@ -0,0 +1,26 @@
1
+ import { jsxs as r, jsx as e } from "react/jsx-runtime";
2
+ import { ResizablePanelGroup as t, ResizablePanel as l, ResizableHandle as i } from "./resizable.js";
3
+ function n() {
4
+ return /* @__PURE__ */ r(
5
+ t,
6
+ {
7
+ direction: "horizontal",
8
+ className: "min-h-48 max-w-xl rounded-md border border-border",
9
+ children: [
10
+ /* @__PURE__ */ e(l, { defaultSize: 30, children: /* @__PURE__ */ e("div", { className: "flex h-full items-center justify-center p-3 text-sm text-muted-foreground", children: "侧栏 (30%)" }) }),
11
+ /* @__PURE__ */ e(i, { withHandle: !0 }),
12
+ /* @__PURE__ */ e(l, { defaultSize: 70, children: /* @__PURE__ */ e("div", { className: "flex h-full items-center justify-center p-3 text-sm text-muted-foreground", children: "主内容 (70%) · 拖拽中间分割条试试" }) })
13
+ ]
14
+ }
15
+ );
16
+ }
17
+ function a() {
18
+ return /* @__PURE__ */ e("div", { className: "flex flex-col gap-6", children: /* @__PURE__ */ r("section", { children: [
19
+ /* @__PURE__ */ e("h3", { className: "text-sm font-semibold mb-3", children: "横向双栏" }),
20
+ /* @__PURE__ */ e(n, {})
21
+ ] }) });
22
+ }
23
+ export {
24
+ n as ResizableHorizontal,
25
+ a as ResizableShowcase
26
+ };
@@ -0,0 +1,2 @@
1
+ export declare function ScrollAreaBasic(): import("react/jsx-runtime").JSX.Element;
2
+ export declare function ScrollAreaShowcase(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,16 @@
1
+ import { jsx as e, jsxs as c } from "react/jsx-runtime";
2
+ import { ScrollArea as l } from "./scroll-area.js";
3
+ const s = Array.from({ length: 40 }, (r, o) => `项目 #${o + 1}`);
4
+ function a() {
5
+ return /* @__PURE__ */ e(l, { className: "h-64 w-56 rounded-md border border-border", children: /* @__PURE__ */ e("div", { className: "p-3 space-y-2", children: s.map((r) => /* @__PURE__ */ e("div", { className: "text-sm py-1 px-2 rounded hover:bg-muted", children: r }, r)) }) });
6
+ }
7
+ function m() {
8
+ return /* @__PURE__ */ e("div", { className: "flex flex-col gap-6", children: /* @__PURE__ */ c("section", { children: [
9
+ /* @__PURE__ */ e("h3", { className: "text-sm font-semibold mb-3", children: "纵向滚动列表" }),
10
+ /* @__PURE__ */ e(a, {})
11
+ ] }) });
12
+ }
13
+ export {
14
+ a as ScrollAreaBasic,
15
+ m as ScrollAreaShowcase
16
+ };
@@ -0,0 +1,3 @@
1
+ export declare function SeparatorHorizontal(): import("react/jsx-runtime").JSX.Element;
2
+ export declare function SeparatorVertical(): import("react/jsx-runtime").JSX.Element;
3
+ export declare function SeparatorShowcase(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,35 @@
1
+ import { jsxs as r, jsx as e } from "react/jsx-runtime";
2
+ import { Separator as t } from "./separator.js";
3
+ function a() {
4
+ return /* @__PURE__ */ r("div", { className: "space-y-3 max-w-md", children: [
5
+ /* @__PURE__ */ e("div", { className: "text-sm", children: "上方区域内容" }),
6
+ /* @__PURE__ */ e(t, {}),
7
+ /* @__PURE__ */ e("div", { className: "text-sm text-muted-foreground", children: "下方区域内容" })
8
+ ] });
9
+ }
10
+ function i() {
11
+ return /* @__PURE__ */ r("div", { className: "flex h-6 items-center gap-4 text-sm", children: [
12
+ /* @__PURE__ */ e("span", { children: "全部" }),
13
+ /* @__PURE__ */ e(t, { orientation: "vertical" }),
14
+ /* @__PURE__ */ e("span", { children: "未读" }),
15
+ /* @__PURE__ */ e(t, { orientation: "vertical" }),
16
+ /* @__PURE__ */ e("span", { children: "已收藏" })
17
+ ] });
18
+ }
19
+ function c() {
20
+ return /* @__PURE__ */ r("div", { className: "flex flex-col gap-6", children: [
21
+ /* @__PURE__ */ r("section", { children: [
22
+ /* @__PURE__ */ e("h3", { className: "text-sm font-semibold mb-3", children: "水平" }),
23
+ /* @__PURE__ */ e(a, {})
24
+ ] }),
25
+ /* @__PURE__ */ r("section", { children: [
26
+ /* @__PURE__ */ e("h3", { className: "text-sm font-semibold mb-3", children: "垂直" }),
27
+ /* @__PURE__ */ e(i, {})
28
+ ] })
29
+ ] });
30
+ }
31
+ export {
32
+ a as SeparatorHorizontal,
33
+ c as SeparatorShowcase,
34
+ i as SeparatorVertical
35
+ };
@@ -0,0 +1,2 @@
1
+ export declare function AccordionMenuBasic(): import("react/jsx-runtime").JSX.Element;
2
+ export declare function AccordionMenuShowcase(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,36 @@
1
+ import { jsx as e, jsxs as c } from "react/jsx-runtime";
2
+ import { RiHome2Line as i, RiFolder2Line as l, RiSettings2Line as s } from "@remixicon/react";
3
+ import { AccordionMenu as o, AccordionMenuGroup as n, AccordionMenuLabel as a, AccordionMenuItem as r, AccordionMenuSub as d, AccordionMenuSubTrigger as t, AccordionMenuSubContent as u } from "./accordion-menu.js";
4
+ function m() {
5
+ return /* @__PURE__ */ e("div", { className: "w-64 border border-border rounded-md p-2 bg-card", children: /* @__PURE__ */ e(o, { selectedValue: "/projects", type: "single", collapsible: !0, children: /* @__PURE__ */ c(n, { children: [
6
+ /* @__PURE__ */ e(a, { children: "主菜单" }),
7
+ /* @__PURE__ */ c(r, { value: "/", className: "h-8", children: [
8
+ /* @__PURE__ */ e(i, { className: "size-4" }),
9
+ " 工作台"
10
+ ] }),
11
+ /* @__PURE__ */ c(d, { value: "/projects", children: [
12
+ /* @__PURE__ */ c(t, { className: "h-8", children: [
13
+ /* @__PURE__ */ e(l, { className: "size-4" }),
14
+ " 项目管理"
15
+ ] }),
16
+ /* @__PURE__ */ e(u, { type: "single", collapsible: !0, parentValue: "/projects", className: "ps-6", children: /* @__PURE__ */ c(n, { children: [
17
+ /* @__PURE__ */ e(r, { value: "/projects", className: "h-7 text-[13px]", children: "进行中" }),
18
+ /* @__PURE__ */ e(r, { value: "/projects/archive", className: "h-7 text-[13px]", children: "已归档" })
19
+ ] }) })
20
+ ] }),
21
+ /* @__PURE__ */ c(r, { value: "/settings", className: "h-8", children: [
22
+ /* @__PURE__ */ e(s, { className: "size-4" }),
23
+ " 系统设置"
24
+ ] })
25
+ ] }) }) });
26
+ }
27
+ function N() {
28
+ return /* @__PURE__ */ e("div", { className: "flex flex-col gap-6", children: /* @__PURE__ */ c("section", { children: [
29
+ /* @__PURE__ */ e("h3", { className: "text-sm font-semibold mb-3", children: "侧边栏菜单" }),
30
+ /* @__PURE__ */ e(m, {})
31
+ ] }) });
32
+ }
33
+ export {
34
+ m as AccordionMenuBasic,
35
+ N as AccordionMenuShowcase
36
+ };
@@ -0,0 +1,3 @@
1
+ export declare function BreadcrumbBasic(): import("react/jsx-runtime").JSX.Element;
2
+ export declare function BreadcrumbWithEllipsis(): import("react/jsx-runtime").JSX.Element;
3
+ export declare function BreadcrumbShowcase(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,39 @@
1
+ import { jsx as r, jsxs as c } from "react/jsx-runtime";
2
+ import { Breadcrumb as n, BreadcrumbList as l, BreadcrumbItem as e, BreadcrumbLink as d, BreadcrumbSeparator as i, BreadcrumbPage as h, BreadcrumbEllipsis as m } from "./breadcrumb.js";
3
+ function a() {
4
+ return /* @__PURE__ */ r(n, { children: /* @__PURE__ */ c(l, { children: [
5
+ /* @__PURE__ */ r(e, { children: /* @__PURE__ */ r(d, { href: "#", children: "首页" }) }),
6
+ /* @__PURE__ */ r(i, {}),
7
+ /* @__PURE__ */ r(e, { children: /* @__PURE__ */ r(d, { href: "#", children: "项目" }) }),
8
+ /* @__PURE__ */ r(i, {}),
9
+ /* @__PURE__ */ r(e, { children: /* @__PURE__ */ r(h, { children: "Acme Dashboard" }) })
10
+ ] }) });
11
+ }
12
+ function s() {
13
+ return /* @__PURE__ */ r(n, { children: /* @__PURE__ */ c(l, { children: [
14
+ /* @__PURE__ */ r(e, { children: /* @__PURE__ */ r(d, { href: "#", children: "首页" }) }),
15
+ /* @__PURE__ */ r(i, {}),
16
+ /* @__PURE__ */ r(e, { children: /* @__PURE__ */ r(m, {}) }),
17
+ /* @__PURE__ */ r(i, {}),
18
+ /* @__PURE__ */ r(e, { children: /* @__PURE__ */ r(d, { href: "#", children: "模块" }) }),
19
+ /* @__PURE__ */ r(i, {}),
20
+ /* @__PURE__ */ r(e, { children: /* @__PURE__ */ r(h, { children: "Auth" }) })
21
+ ] }) });
22
+ }
23
+ function u() {
24
+ return /* @__PURE__ */ c("div", { className: "flex flex-col gap-6", children: [
25
+ /* @__PURE__ */ c("section", { children: [
26
+ /* @__PURE__ */ r("h3", { className: "text-sm font-semibold mb-3", children: "基础" }),
27
+ /* @__PURE__ */ r(a, {})
28
+ ] }),
29
+ /* @__PURE__ */ c("section", { children: [
30
+ /* @__PURE__ */ r("h3", { className: "text-sm font-semibold mb-3", children: "带省略" }),
31
+ /* @__PURE__ */ r(s, {})
32
+ ] })
33
+ ] });
34
+ }
35
+ export {
36
+ a as BreadcrumbBasic,
37
+ u as BreadcrumbShowcase,
38
+ s as BreadcrumbWithEllipsis
39
+ };
@@ -0,0 +1,2 @@
1
+ export declare function MenubarBasic(): import("react/jsx-runtime").JSX.Element;
2
+ export declare function MenubarShowcase(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,54 @@
1
+ import { jsxs as r, jsx as e } from "react/jsx-runtime";
2
+ import { Menubar as d, MenubarMenu as i, MenubarTrigger as l, MenubarContent as h, MenubarItem as n, MenubarShortcut as c, MenubarSeparator as a } from "./menubar.js";
3
+ function t() {
4
+ return /* @__PURE__ */ r(d, { children: [
5
+ /* @__PURE__ */ r(i, { children: [
6
+ /* @__PURE__ */ e(l, { children: "文件" }),
7
+ /* @__PURE__ */ r(h, { children: [
8
+ /* @__PURE__ */ r(n, { children: [
9
+ "新建 ",
10
+ /* @__PURE__ */ e(c, { children: "⌘N" })
11
+ ] }),
12
+ /* @__PURE__ */ r(n, { children: [
13
+ "打开 ",
14
+ /* @__PURE__ */ e(c, { children: "⌘O" })
15
+ ] }),
16
+ /* @__PURE__ */ e(a, {}),
17
+ /* @__PURE__ */ r(n, { children: [
18
+ "保存 ",
19
+ /* @__PURE__ */ e(c, { children: "⌘S" })
20
+ ] })
21
+ ] })
22
+ ] }),
23
+ /* @__PURE__ */ r(i, { children: [
24
+ /* @__PURE__ */ e(l, { children: "编辑" }),
25
+ /* @__PURE__ */ r(h, { children: [
26
+ /* @__PURE__ */ r(n, { children: [
27
+ "撤销 ",
28
+ /* @__PURE__ */ e(c, { children: "⌘Z" })
29
+ ] }),
30
+ /* @__PURE__ */ r(n, { children: [
31
+ "重做 ",
32
+ /* @__PURE__ */ e(c, { children: "⇧⌘Z" })
33
+ ] })
34
+ ] })
35
+ ] }),
36
+ /* @__PURE__ */ r(i, { children: [
37
+ /* @__PURE__ */ e(l, { children: "视图" }),
38
+ /* @__PURE__ */ r(h, { children: [
39
+ /* @__PURE__ */ e(n, { children: "全屏" }),
40
+ /* @__PURE__ */ e(n, { children: "切换侧栏" })
41
+ ] })
42
+ ] })
43
+ ] });
44
+ }
45
+ function s() {
46
+ return /* @__PURE__ */ e("div", { className: "flex flex-col gap-6", children: /* @__PURE__ */ r("section", { children: [
47
+ /* @__PURE__ */ e("h3", { className: "text-sm font-semibold mb-3", children: "桌面应用风格菜单条" }),
48
+ /* @__PURE__ */ e(t, {})
49
+ ] }) });
50
+ }
51
+ export {
52
+ t as MenubarBasic,
53
+ s as MenubarShowcase
54
+ };
@@ -0,0 +1,2 @@
1
+ export declare function NavigationMenuBasic(): import("react/jsx-runtime").JSX.Element;
2
+ export declare function NavigationMenuShowcase(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,31 @@
1
+ import { jsx as e, jsxs as i } from "react/jsx-runtime";
2
+ import { NavigationMenu as r, NavigationMenuList as t, NavigationMenuItem as d, NavigationMenuTrigger as a, NavigationMenuContent as o, NavigationMenuLink as n } from "./navigation-menu.js";
3
+ function c() {
4
+ return /* @__PURE__ */ e(r, { children: /* @__PURE__ */ i(t, { children: [
5
+ /* @__PURE__ */ i(d, { children: [
6
+ /* @__PURE__ */ e(a, { children: "产品" }),
7
+ /* @__PURE__ */ e(o, { children: /* @__PURE__ */ i("div", { className: "grid grid-cols-2 gap-3 p-4 w-[400px]", children: [
8
+ /* @__PURE__ */ i(n, { href: "#", className: "block p-3 rounded hover:bg-muted", children: [
9
+ /* @__PURE__ */ e("div", { className: "font-medium", children: "项目管理" }),
10
+ /* @__PURE__ */ e("div", { className: "text-xs text-muted-foreground mt-1", children: "项目 / 任务 / 里程碑" })
11
+ ] }),
12
+ /* @__PURE__ */ i(n, { href: "#", className: "block p-3 rounded hover:bg-muted", children: [
13
+ /* @__PURE__ */ e("div", { className: "font-medium", children: "审核中心" }),
14
+ /* @__PURE__ */ e("div", { className: "text-xs text-muted-foreground mt-1", children: "流程 / 抄送 / 归档" })
15
+ ] })
16
+ ] }) })
17
+ ] }),
18
+ /* @__PURE__ */ e(d, { children: /* @__PURE__ */ e(n, { href: "#", className: "px-4 py-2 hover:bg-muted rounded text-sm font-medium", children: "文档" }) }),
19
+ /* @__PURE__ */ e(d, { children: /* @__PURE__ */ e(n, { href: "#", className: "px-4 py-2 hover:bg-muted rounded text-sm font-medium", children: "定价" }) })
20
+ ] }) });
21
+ }
22
+ function s() {
23
+ return /* @__PURE__ */ e("div", { className: "flex flex-col gap-6", children: /* @__PURE__ */ i("section", { children: [
24
+ /* @__PURE__ */ e("h3", { className: "text-sm font-semibold mb-3", children: "顶部导航(带多列下拉)" }),
25
+ /* @__PURE__ */ e(c, {})
26
+ ] }) });
27
+ }
28
+ export {
29
+ c as NavigationMenuBasic,
30
+ s as NavigationMenuShowcase
31
+ };
@@ -0,0 +1,2 @@
1
+ export declare function PaginationBasic(): import("react/jsx-runtime").JSX.Element;
2
+ export declare function PaginationShowcase(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,42 @@
1
+ import { jsx as i, jsxs as a } from "react/jsx-runtime";
2
+ import { RiArrowLeftSLine as l, RiArrowRightSLine as s } from "@remixicon/react";
3
+ import { cn as m } from "../../../../lib/utils.js";
4
+ import { Pagination as h, PaginationContent as d, PaginationItem as e, PaginationEllipsis as f } from "./pagination.js";
5
+ import { Button as g } from "../../form/button/button.js";
6
+ function r({
7
+ children: n,
8
+ active: t,
9
+ className: o,
10
+ ...c
11
+ }) {
12
+ return /* @__PURE__ */ i(
13
+ g,
14
+ {
15
+ mode: "icon",
16
+ size: "sm",
17
+ variant: t ? "primary" : "ghost",
18
+ className: m("size-8", o),
19
+ ...c,
20
+ children: n
21
+ }
22
+ );
23
+ }
24
+ function p() {
25
+ return /* @__PURE__ */ i(h, { children: /* @__PURE__ */ a(d, { children: [
26
+ /* @__PURE__ */ i(e, { children: /* @__PURE__ */ i(r, { "aria-label": "上一页", children: /* @__PURE__ */ i(l, { className: "size-4" }) }) }),
27
+ [1, 2, 3].map((n) => /* @__PURE__ */ i(e, { children: /* @__PURE__ */ i(r, { active: n === 2, children: n }) }, n)),
28
+ /* @__PURE__ */ i(e, { children: /* @__PURE__ */ i(f, {}) }),
29
+ /* @__PURE__ */ i(e, { children: /* @__PURE__ */ i(r, { children: "20" }) }),
30
+ /* @__PURE__ */ i(e, { children: /* @__PURE__ */ i(r, { "aria-label": "下一页", children: /* @__PURE__ */ i(s, { className: "size-4" }) }) })
31
+ ] }) });
32
+ }
33
+ function z() {
34
+ return /* @__PURE__ */ i("div", { className: "flex flex-col gap-6", children: /* @__PURE__ */ a("section", { children: [
35
+ /* @__PURE__ */ i("h3", { className: "text-sm font-semibold mb-3", children: "基础分页器" }),
36
+ /* @__PURE__ */ i(p, {})
37
+ ] }) });
38
+ }
39
+ export {
40
+ p as PaginationBasic,
41
+ z as PaginationShowcase
42
+ };
@@ -0,0 +1,2 @@
1
+ export declare function ScrollspyBasic(): import("react/jsx-runtime").JSX.Element;
2
+ export declare function ScrollspyShowcase(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,68 @@
1
+ import { jsx as t, jsxs as i } from "react/jsx-runtime";
2
+ import { useRef as l } from "react";
3
+ import { cn as a } from "../../../../lib/utils.js";
4
+ import { Scrollspy as c } from "./scrollspy.js";
5
+ const o = [
6
+ { id: "profile", title: "个人信息", body: "姓名、邮箱、电话、头像等基础资料。用于在平台内识别身份、接收通知。" },
7
+ { id: "security", title: "安全", body: "密码、双因子、登录设备管理。建议开启 2FA 并定期轮换密码。" },
8
+ { id: "notifications", title: "通知", body: "邮件、应用内、短信三个通道的开关 + 频率(即时 / 摘要)。" },
9
+ { id: "privacy", title: "隐私", body: "可见性设置 · 谁能搜到你、谁能看到你的项目。" },
10
+ { id: "billing", title: "计费", body: "订阅计划、发票、支付方式。企业版可切换月付 / 年付。" },
11
+ { id: "team", title: "团队", body: "成员邀请、角色、权限分配。可创建子团队进行二级管理。" },
12
+ { id: "integrations", title: "集成", body: "GitHub / GitLab / Jira / Slack 第三方接入与 Webhook 配置。" },
13
+ { id: "danger", title: "危险区", body: "导出所有数据、转移所有权、删除账户。所有操作不可撤销。" }
14
+ ];
15
+ function s() {
16
+ const r = l(null);
17
+ return /* @__PURE__ */ t(
18
+ "div",
19
+ {
20
+ ref: r,
21
+ className: "h-[480px] overflow-y-auto rounded-xl border border-border bg-card",
22
+ children: /* @__PURE__ */ i("div", { className: "grid grid-cols-[160px_1fr] gap-6 p-6", children: [
23
+ /* @__PURE__ */ t(
24
+ c,
25
+ {
26
+ targetRef: r,
27
+ offset: 80,
28
+ history: !1,
29
+ className: "sticky top-0 self-start space-y-1",
30
+ children: o.map((e) => /* @__PURE__ */ t(
31
+ "a",
32
+ {
33
+ href: `#${e.id}`,
34
+ "data-scrollspy-anchor": e.id,
35
+ className: a(
36
+ "block px-3 py-1.5 rounded text-sm text-foreground/70 hover:bg-muted hover:text-foreground",
37
+ "[&[data-active=true]]:bg-primary/10 [&[data-active=true]]:text-primary [&[data-active=true]]:font-medium"
38
+ ),
39
+ children: e.title
40
+ },
41
+ e.id
42
+ ))
43
+ }
44
+ ),
45
+ /* @__PURE__ */ t("div", { className: "space-y-10", children: o.map((e) => /* @__PURE__ */ i("section", { id: e.id, children: [
46
+ /* @__PURE__ */ t("h3", { className: "text-lg font-semibold text-foreground mb-2", children: e.title }),
47
+ /* @__PURE__ */ t("p", { className: "text-sm text-muted-foreground leading-7", children: e.body }),
48
+ /* @__PURE__ */ t("div", { className: "mt-3 space-y-2", children: [1, 2, 3].map((d) => /* @__PURE__ */ i("div", { className: "text-sm text-muted-foreground leading-7", children: [
49
+ e.title,
50
+ " · 补充说明 ",
51
+ d,
52
+ ":真实业务在此展开多行描述 / 表单 / 子项目。 滚动左侧可联动高亮对应锚点;点击左侧锚点会平滑滚动到对应章节。"
53
+ ] }, d)) })
54
+ ] }, e.id)) })
55
+ ] })
56
+ }
57
+ );
58
+ }
59
+ function u() {
60
+ return /* @__PURE__ */ i("div", { className: "flex flex-col gap-4", children: [
61
+ /* @__PURE__ */ t("div", { className: "text-sm text-muted-foreground", children: "滚动右侧内容区,左侧锚点会自动高亮当前章节。点击锚点可平滑跳转。" }),
62
+ /* @__PURE__ */ t(s, {})
63
+ ] });
64
+ }
65
+ export {
66
+ s as ScrollspyBasic,
67
+ u as ScrollspyShowcase
68
+ };
@@ -0,0 +1,5 @@
1
+ /** Line variant — in-card filter */
2
+ export declare function TabsLine(): import("react/jsx-runtime").JSX.Element;
3
+ /** Button variant — compact chart type switch */
4
+ export declare function TabsButton(): import("react/jsx-runtime").JSX.Element;
5
+ export declare function TabsShowcase(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,43 @@
1
+ import { jsx as e, jsxs as t } from "react/jsx-runtime";
2
+ import { Tabs as l, TabsList as r, TabsTrigger as n, TabsContent as a } from "./tabs.js";
3
+ import { Badge as i } from "../../data-display/badge/badge.js";
4
+ function s() {
5
+ return /* @__PURE__ */ t(l, { defaultValue: "pending", children: [
6
+ /* @__PURE__ */ t(r, { variant: "line", className: "w-full justify-start", children: [
7
+ /* @__PURE__ */ t(n, { value: "pending", className: "gap-1.5", children: [
8
+ "待我审批",
9
+ /* @__PURE__ */ e(i, { variant: "destructive", appearance: "light", size: "xs", children: "7" })
10
+ ] }),
11
+ /* @__PURE__ */ e(n, { value: "done", children: "我已处理" }),
12
+ /* @__PURE__ */ e(n, { value: "mine", children: "我发起的" })
13
+ ] }),
14
+ /* @__PURE__ */ e(a, { value: "pending", className: "pt-4 text-sm text-muted-foreground", children: "待我审批内容占位" }),
15
+ /* @__PURE__ */ e(a, { value: "done", className: "pt-4 text-sm text-muted-foreground", children: "我已处理内容占位" }),
16
+ /* @__PURE__ */ e(a, { value: "mine", className: "pt-4 text-sm text-muted-foreground", children: "我发起的内容占位" })
17
+ ] });
18
+ }
19
+ function d() {
20
+ return /* @__PURE__ */ e(l, { defaultValue: "week", children: /* @__PURE__ */ t(r, { variant: "button", children: [
21
+ /* @__PURE__ */ e(n, { value: "day", children: "日" }),
22
+ /* @__PURE__ */ e(n, { value: "week", children: "周" }),
23
+ /* @__PURE__ */ e(n, { value: "month", children: "月" }),
24
+ /* @__PURE__ */ e(n, { value: "quarter", children: "季" })
25
+ ] }) });
26
+ }
27
+ function m() {
28
+ return /* @__PURE__ */ t("div", { className: "flex flex-col gap-8 max-w-xl", children: [
29
+ /* @__PURE__ */ t("section", { children: [
30
+ /* @__PURE__ */ e("h3", { className: "text-sm font-semibold mb-3", children: "Line variant(卡内筛选)" }),
31
+ /* @__PURE__ */ e(s, {})
32
+ ] }),
33
+ /* @__PURE__ */ t("section", { children: [
34
+ /* @__PURE__ */ e("h3", { className: "text-sm font-semibold mb-3", children: "Button variant(独立切换组)" }),
35
+ /* @__PURE__ */ e(d, {})
36
+ ] })
37
+ ] });
38
+ }
39
+ export {
40
+ d as TabsButton,
41
+ s as TabsLine,
42
+ m as TabsShowcase
43
+ };
package/dist/styles.css CHANGED
@@ -93,7 +93,8 @@
93
93
  gap: var(--dk-page-gap);
94
94
  }
95
95
 
96
- :where(.demo-tweak-scope, .demokit-tweak-scope) [data-slot='page-header']
96
+ :where(.demo-tweak-scope, .demokit-tweak-scope)
97
+ [data-slot='page-header']
97
98
  > :not([hidden])
98
99
  ~ :not([hidden]) {
99
100
  margin-top: 0 !important;
@@ -104,11 +105,13 @@
104
105
  }
105
106
 
106
107
  :where(.demo-tweak-scope, .demokit-tweak-scope) [data-slot='filter-panel-body'],
107
- :where(.demo-tweak-scope, .demokit-tweak-scope) [data-slot='filter-panel-grid'] {
108
+ :where(.demo-tweak-scope, .demokit-tweak-scope)
109
+ [data-slot='filter-panel-grid'] {
108
110
  gap: var(--dk-filter-gap);
109
111
  }
110
112
 
111
- :where(.demo-tweak-scope, .demokit-tweak-scope) [data-slot='filter-panel-footer'] {
113
+ :where(.demo-tweak-scope, .demokit-tweak-scope)
114
+ [data-slot='filter-panel-footer'] {
112
115
  margin-top: var(--dk-filter-gap);
113
116
  padding-top: var(--dk-filter-gap);
114
117
  }
@@ -117,14 +120,16 @@
117
120
  :where(.demo-tweak-scope, .demokit-tweak-scope) [data-slot='input-wrapper'],
118
121
  :where(.demo-tweak-scope, .demokit-tweak-scope) [data-slot='select-trigger'],
119
122
  :where(.demo-tweak-scope, .demokit-tweak-scope) [data-slot='toggle-group'],
120
- :where(.demo-tweak-scope, .demokit-tweak-scope) [data-slot='toggle-group-item'] {
123
+ :where(.demo-tweak-scope, .demokit-tweak-scope)
124
+ [data-slot='toggle-group-item'] {
121
125
  border-radius: var(--dk-radius-control);
122
126
  }
123
127
 
124
128
  :where(.demo-tweak-scope, .demokit-tweak-scope) [data-slot='input'],
125
129
  :where(.demo-tweak-scope, .demokit-tweak-scope) [data-slot='input-wrapper'],
126
130
  :where(.demo-tweak-scope, .demokit-tweak-scope) [data-slot='select-trigger'],
127
- :where(.demo-tweak-scope, .demokit-tweak-scope) [data-slot='toggle-group-item'] {
131
+ :where(.demo-tweak-scope, .demokit-tweak-scope)
132
+ [data-slot='toggle-group-item'] {
128
133
  height: var(--dk-control-height);
129
134
  }
130
135
 
@@ -181,14 +186,20 @@
181
186
  color: var(--muted-foreground);
182
187
  border-radius: 0 6px 6px 0;
183
188
  }
184
- .kit-markdown ul, .kit-markdown ol {
189
+ .kit-markdown ul,
190
+ .kit-markdown ol {
185
191
  padding-inline-start: 1.5rem;
186
192
  margin: 0.5rem 0;
187
193
  }
188
- .kit-markdown li { margin: 0.25rem 0; }
189
- .kit-markdown li > ul, .kit-markdown li > ol { margin: 0.25rem 0; }
194
+ .kit-markdown li {
195
+ margin: 0.25rem 0;
196
+ }
197
+ .kit-markdown li > ul,
198
+ .kit-markdown li > ol {
199
+ margin: 0.25rem 0;
200
+ }
190
201
  .kit-markdown code {
191
- font-family: var(--font-mono, "SF Mono", "Menlo", monospace);
202
+ font-family: var(--font-mono, 'SF Mono', 'Menlo', monospace);
192
203
  background: var(--muted);
193
204
  padding: 0.12rem 0.4rem;
194
205
  border-radius: 4px;
@@ -215,8 +226,11 @@
215
226
  font-size: 13px;
216
227
  width: 100%;
217
228
  }
218
- .kit-markdown thead { background: var(--muted); }
219
- .kit-markdown th, .kit-markdown td {
229
+ .kit-markdown thead {
230
+ background: var(--muted);
231
+ }
232
+ .kit-markdown th,
233
+ .kit-markdown td {
220
234
  border: 1px solid var(--border);
221
235
  padding: 0.5rem 0.75rem;
222
236
  text-align: left;
@@ -234,4 +248,7 @@
234
248
  border-top: 1px solid var(--border);
235
249
  margin: 1.5rem 0;
236
250
  }
237
- .kit-markdown strong { color: var(--foreground); font-weight: 600; }
251
+ .kit-markdown strong {
252
+ color: var(--foreground);
253
+ font-weight: 600;
254
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@demokit-ui/demokit",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "Open-source React component library with provider, styles, and composable UI primitives",
5
5
  "license": "MIT",
6
6
  "repository": {