@_tc/template-core 0.2.1 → 0.2.2

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 (175) hide show
  1. package/AGENT_README.md +3 -0
  2. package/README.md +43 -1
  3. package/cjs/app/controller/view.js +1 -1
  4. package/cjs/app/middleware.js +1 -1
  5. package/cjs/config/config.default.js +1 -1
  6. package/esm/app/controller/view.js +1 -1
  7. package/esm/app/middleware.js +1 -1
  8. package/esm/config/config.default.js +2 -1
  9. package/fe/_virtual/_rolldown/runtime.js +13 -0
  10. package/fe/packages/react/ui/components/Date/Calendar.js +1 -5
  11. package/fe/packages/react/ui/components/Date/DateTestPage.js +15 -331
  12. package/fe/packages/react/ui/components/Date/LocaleContext.d.ts +1 -0
  13. package/fe/packages/react/ui/components/Date/index.js +2 -2
  14. package/fe/packages/react/ui/components/Date/locales.d.ts +5 -0
  15. package/fe/packages/react/ui/components/Date/locales.js +16 -1
  16. package/fe/packages/react/ui/components/testPage/DemoSection.d.ts +10 -0
  17. package/fe/packages/react/ui/components/testPage/DemoSection.js +73 -0
  18. package/fe/packages/react/ui/components/testPage/MenuTestPage.js +16 -389
  19. package/fe/packages/react/ui/components/testPage/demoRegistry.d.ts +4 -0
  20. package/fe/packages/react/ui/components/testPage/demoRegistry.js +214 -0
  21. package/fe/packages/react/ui/components/testPage/demos/core/BreadcrumbDemo.d.ts +6 -0
  22. package/fe/packages/react/ui/components/testPage/demos/core/BreadcrumbDemo.js +44 -0
  23. package/fe/packages/react/ui/components/testPage/demos/core/BreadcrumbDemo2.js +4 -0
  24. package/fe/packages/react/ui/components/testPage/demos/core/ButtonDemo.d.ts +6 -0
  25. package/fe/packages/react/ui/components/testPage/demos/core/ButtonDemo.js +85 -0
  26. package/fe/packages/react/ui/components/testPage/demos/core/ButtonDemo2.js +4 -0
  27. package/fe/packages/react/ui/components/testPage/demos/core/CardDemo.d.ts +6 -0
  28. package/fe/packages/react/ui/components/testPage/demos/core/CardDemo.js +52 -0
  29. package/fe/packages/react/ui/components/testPage/demos/core/CardDemo2.js +4 -0
  30. package/fe/packages/react/ui/components/testPage/demos/core/CheckboxDemo.d.ts +6 -0
  31. package/fe/packages/react/ui/components/testPage/demos/core/CheckboxDemo.js +41 -0
  32. package/fe/packages/react/ui/components/testPage/demos/core/CheckboxDemo2.js +4 -0
  33. package/fe/packages/react/ui/components/testPage/demos/core/ConfirmDialogDemo.d.ts +6 -0
  34. package/fe/packages/react/ui/components/testPage/demos/core/ConfirmDialogDemo.js +35 -0
  35. package/fe/packages/react/ui/components/testPage/demos/core/ConfirmDialogDemo2.js +4 -0
  36. package/fe/packages/react/ui/components/testPage/demos/core/DataTableDemo.d.ts +6 -0
  37. package/fe/packages/react/ui/components/testPage/demos/core/DataTableDemo.js +243 -0
  38. package/fe/packages/react/ui/components/testPage/demos/core/DataTableDemo2.js +4 -0
  39. package/fe/packages/react/ui/components/testPage/demos/core/DrawerDemo.d.ts +6 -0
  40. package/fe/packages/react/ui/components/testPage/demos/core/DrawerDemo.js +105 -0
  41. package/fe/packages/react/ui/components/testPage/demos/core/DrawerDemo2.js +4 -0
  42. package/fe/packages/react/ui/components/testPage/demos/core/DropdownDemo.d.ts +6 -0
  43. package/fe/packages/react/ui/components/testPage/demos/core/DropdownDemo.js +48 -0
  44. package/fe/packages/react/ui/components/testPage/demos/core/DropdownDemo2.js +4 -0
  45. package/fe/packages/react/ui/components/testPage/demos/core/FormDemo.d.ts +6 -0
  46. package/fe/packages/react/ui/components/testPage/demos/core/FormDemo.js +56 -0
  47. package/fe/packages/react/ui/components/testPage/demos/core/FormDemo2.js +4 -0
  48. package/fe/packages/react/ui/components/testPage/demos/core/ImageUploadDemo.d.ts +6 -0
  49. package/fe/packages/react/ui/components/testPage/demos/core/ImageUploadDemo.js +26 -0
  50. package/fe/packages/react/ui/components/testPage/demos/core/ImageUploadDemo2.js +4 -0
  51. package/fe/packages/react/ui/components/testPage/demos/core/InputDemo.d.ts +6 -0
  52. package/fe/packages/react/ui/components/testPage/demos/core/InputDemo.js +55 -0
  53. package/fe/packages/react/ui/components/testPage/demos/core/InputDemo2.js +4 -0
  54. package/fe/packages/react/ui/components/testPage/demos/core/InputNumberDemo.d.ts +6 -0
  55. package/fe/packages/react/ui/components/testPage/demos/core/InputNumberDemo.js +65 -0
  56. package/fe/packages/react/ui/components/testPage/demos/core/InputNumberDemo2.js +4 -0
  57. package/fe/packages/react/ui/components/testPage/demos/core/LabelDemo.d.ts +6 -0
  58. package/fe/packages/react/ui/components/testPage/demos/core/LabelDemo.js +33 -0
  59. package/fe/packages/react/ui/components/testPage/demos/core/LabelDemo2.js +4 -0
  60. package/fe/packages/react/ui/components/testPage/demos/core/LayoutDemo.d.ts +6 -0
  61. package/fe/packages/react/ui/components/testPage/demos/core/LayoutDemo.js +64 -0
  62. package/fe/packages/react/ui/components/testPage/demos/core/LayoutDemo2.js +4 -0
  63. package/fe/packages/react/ui/components/testPage/demos/core/LoadingDemo.d.ts +6 -0
  64. package/fe/packages/react/ui/components/testPage/demos/core/LoadingDemo.js +32 -0
  65. package/fe/packages/react/ui/components/testPage/demos/core/LoadingDemo2.js +4 -0
  66. package/fe/packages/react/ui/components/testPage/demos/core/MessageDemo.d.ts +6 -0
  67. package/fe/packages/react/ui/components/testPage/demos/core/MessageDemo.js +44 -0
  68. package/fe/packages/react/ui/components/testPage/demos/core/MessageDemo2.js +4 -0
  69. package/fe/packages/react/ui/components/testPage/demos/core/ModalDemo.d.ts +6 -0
  70. package/fe/packages/react/ui/components/testPage/demos/core/ModalDemo.js +61 -0
  71. package/fe/packages/react/ui/components/testPage/demos/core/ModalDemo2.js +4 -0
  72. package/fe/packages/react/ui/components/testPage/demos/core/NotificationDemo.d.ts +6 -0
  73. package/fe/packages/react/ui/components/testPage/demos/core/NotificationDemo.js +50 -0
  74. package/fe/packages/react/ui/components/testPage/demos/core/NotificationDemo2.js +4 -0
  75. package/fe/packages/react/ui/components/testPage/demos/core/PaginationDemo.d.ts +6 -0
  76. package/fe/packages/react/ui/components/testPage/demos/core/PaginationDemo.js +39 -0
  77. package/fe/packages/react/ui/components/testPage/demos/core/PaginationDemo2.js +4 -0
  78. package/fe/packages/react/ui/components/testPage/demos/core/PreviewImageDemo.d.ts +6 -0
  79. package/fe/packages/react/ui/components/testPage/demos/core/PreviewImageDemo.js +22 -0
  80. package/fe/packages/react/ui/components/testPage/demos/core/PreviewImageDemo2.js +4 -0
  81. package/fe/packages/react/ui/components/testPage/demos/core/RadioDemo.d.ts +6 -0
  82. package/fe/packages/react/ui/components/testPage/demos/core/RadioDemo.js +129 -0
  83. package/fe/packages/react/ui/components/testPage/demos/core/RadioDemo2.js +4 -0
  84. package/fe/packages/react/ui/components/testPage/demos/core/SchemaFormDemo.d.ts +6 -0
  85. package/fe/packages/react/ui/components/testPage/demos/core/SchemaFormDemo.js +52 -0
  86. package/fe/packages/react/ui/components/testPage/demos/core/SchemaFormDemo2.js +4 -0
  87. package/fe/packages/react/ui/components/testPage/demos/core/SearchDemo.d.ts +6 -0
  88. package/fe/packages/react/ui/components/testPage/demos/core/SearchDemo.js +52 -0
  89. package/fe/packages/react/ui/components/testPage/demos/core/SearchDemo2.js +4 -0
  90. package/fe/packages/react/ui/components/testPage/demos/core/SelectDemo.d.ts +6 -0
  91. package/fe/packages/react/ui/components/testPage/demos/core/SelectDemo.js +73 -0
  92. package/fe/packages/react/ui/components/testPage/demos/core/SelectDemo2.js +4 -0
  93. package/fe/packages/react/ui/components/testPage/demos/core/SkeletonDemo.d.ts +6 -0
  94. package/fe/packages/react/ui/components/testPage/demos/core/SkeletonDemo.js +46 -0
  95. package/fe/packages/react/ui/components/testPage/demos/core/SkeletonDemo2.js +4 -0
  96. package/fe/packages/react/ui/components/testPage/demos/core/SwitchDemo.d.ts +6 -0
  97. package/fe/packages/react/ui/components/testPage/demos/core/SwitchDemo.js +36 -0
  98. package/fe/packages/react/ui/components/testPage/demos/core/SwitchDemo2.js +4 -0
  99. package/fe/packages/react/ui/components/testPage/demos/core/TableDemo.d.ts +6 -0
  100. package/fe/packages/react/ui/components/testPage/demos/core/TableDemo.js +64 -0
  101. package/fe/packages/react/ui/components/testPage/demos/core/TableDemo2.js +4 -0
  102. package/fe/packages/react/ui/components/testPage/demos/core/TableSearchDemo.d.ts +6 -0
  103. package/fe/packages/react/ui/components/testPage/demos/core/TableSearchDemo.js +74 -0
  104. package/fe/packages/react/ui/components/testPage/demos/core/TableSearchDemo2.js +4 -0
  105. package/fe/packages/react/ui/components/testPage/demos/core/TabsDemo.d.ts +6 -0
  106. package/fe/packages/react/ui/components/testPage/demos/core/TabsDemo.js +56 -0
  107. package/fe/packages/react/ui/components/testPage/demos/core/TabsDemo2.js +4 -0
  108. package/fe/packages/react/ui/components/testPage/demos/core/TextareaDemo.d.ts +6 -0
  109. package/fe/packages/react/ui/components/testPage/demos/core/TextareaDemo.js +30 -0
  110. package/fe/packages/react/ui/components/testPage/demos/core/TextareaDemo2.js +4 -0
  111. package/fe/packages/react/ui/components/testPage/demos/core/ThemeSwitcher.d.ts +6 -0
  112. package/fe/packages/react/ui/components/testPage/demos/core/ThemeSwitcher.js +96 -0
  113. package/fe/packages/react/ui/components/testPage/demos/core/ThemeSwitcher2.js +4 -0
  114. package/fe/packages/react/ui/components/testPage/demos/core/TooltipDemo.d.ts +6 -0
  115. package/fe/packages/react/ui/components/testPage/demos/core/TooltipDemo.js +29 -0
  116. package/fe/packages/react/ui/components/testPage/demos/core/TooltipDemo2.js +4 -0
  117. package/fe/packages/react/ui/components/testPage/demos/core/TreeSelectDemo.d.ts +6 -0
  118. package/fe/packages/react/ui/components/testPage/demos/core/TreeSelectDemo.js +66 -0
  119. package/fe/packages/react/ui/components/testPage/demos/core/TreeSelectDemo2.js +4 -0
  120. package/fe/packages/react/ui/components/testPage/demos/date/DateBasicDemo.d.ts +6 -0
  121. package/fe/packages/react/ui/components/testPage/demos/date/DateBasicDemo.js +31 -0
  122. package/fe/packages/react/ui/components/testPage/demos/date/DateBasicDemo2.js +4 -0
  123. package/fe/packages/react/ui/components/testPage/demos/date/DateControlledDemo.d.ts +6 -0
  124. package/fe/packages/react/ui/components/testPage/demos/date/DateControlledDemo.js +67 -0
  125. package/fe/packages/react/ui/components/testPage/demos/date/DateControlledDemo2.js +4 -0
  126. package/fe/packages/react/ui/components/testPage/demos/date/DateDisabledDateDemo.d.ts +6 -0
  127. package/fe/packages/react/ui/components/testPage/demos/date/DateDisabledDateDemo.js +36 -0
  128. package/fe/packages/react/ui/components/testPage/demos/date/DateDisabledDateDemo2.js +4 -0
  129. package/fe/packages/react/ui/components/testPage/demos/date/DateDisabledDemo.d.ts +6 -0
  130. package/fe/packages/react/ui/components/testPage/demos/date/DateDisabledDemo.js +35 -0
  131. package/fe/packages/react/ui/components/testPage/demos/date/DateDisabledDemo2.js +4 -0
  132. package/fe/packages/react/ui/components/testPage/demos/date/DateFormatDemo.d.ts +6 -0
  133. package/fe/packages/react/ui/components/testPage/demos/date/DateFormatDemo.js +35 -0
  134. package/fe/packages/react/ui/components/testPage/demos/date/DateFormatDemo2.js +4 -0
  135. package/fe/packages/react/ui/components/testPage/demos/date/DateRangeDemo.d.ts +6 -0
  136. package/fe/packages/react/ui/components/testPage/demos/date/DateRangeDemo.js +76 -0
  137. package/fe/packages/react/ui/components/testPage/demos/date/DateRangeDemo2.js +4 -0
  138. package/fe/packages/react/ui/components/testPage/demos/date/DateTimeDemo.d.ts +7 -0
  139. package/fe/packages/react/ui/components/testPage/demos/date/DateTimeDemo.js +60 -0
  140. package/fe/packages/react/ui/components/testPage/demos/date/DateTimeDemo2.js +4 -0
  141. package/fe/packages/react/ui/components/testPage/demos/menu/MenuAccordionDemo.d.ts +7 -0
  142. package/fe/packages/react/ui/components/testPage/demos/menu/MenuAccordionDemo.js +78 -0
  143. package/fe/packages/react/ui/components/testPage/demos/menu/MenuAccordionDemo2.js +4 -0
  144. package/fe/packages/react/ui/components/testPage/demos/menu/MenuClickTriggerDemo.d.ts +7 -0
  145. package/fe/packages/react/ui/components/testPage/demos/menu/MenuClickTriggerDemo.js +79 -0
  146. package/fe/packages/react/ui/components/testPage/demos/menu/MenuClickTriggerDemo2.js +4 -0
  147. package/fe/packages/react/ui/components/testPage/demos/menu/MenuCollapsedDemo.d.ts +7 -0
  148. package/fe/packages/react/ui/components/testPage/demos/menu/MenuCollapsedDemo.js +82 -0
  149. package/fe/packages/react/ui/components/testPage/demos/menu/MenuCollapsedDemo2.js +4 -0
  150. package/fe/packages/react/ui/components/testPage/demos/menu/MenuCollapsedNoIconDemo.d.ts +7 -0
  151. package/fe/packages/react/ui/components/testPage/demos/menu/MenuCollapsedNoIconDemo.js +44 -0
  152. package/fe/packages/react/ui/components/testPage/demos/menu/MenuCollapsedNoIconDemo2.js +4 -0
  153. package/fe/packages/react/ui/components/testPage/demos/menu/MenuJsxDemo.d.ts +7 -0
  154. package/fe/packages/react/ui/components/testPage/demos/menu/MenuJsxDemo.js +64 -0
  155. package/fe/packages/react/ui/components/testPage/demos/menu/MenuJsxDemo2.js +4 -0
  156. package/fe/packages/react/ui/components/testPage/demos/menu/MenuLeftMultipleDemo.d.ts +7 -0
  157. package/fe/packages/react/ui/components/testPage/demos/menu/MenuLeftMultipleDemo.js +81 -0
  158. package/fe/packages/react/ui/components/testPage/demos/menu/MenuLeftMultipleDemo2.js +4 -0
  159. package/fe/packages/react/ui/components/testPage/demos/menu/MenuPopupDemo.d.ts +7 -0
  160. package/fe/packages/react/ui/components/testPage/demos/menu/MenuPopupDemo.js +56 -0
  161. package/fe/packages/react/ui/components/testPage/demos/menu/MenuPopupDemo2.js +4 -0
  162. package/fe/packages/react/ui/components/testPage/demos/menu/MenuStateDemo.d.ts +7 -0
  163. package/fe/packages/react/ui/components/testPage/demos/menu/MenuStateDemo.js +67 -0
  164. package/fe/packages/react/ui/components/testPage/demos/menu/MenuStateDemo2.js +4 -0
  165. package/fe/packages/react/ui/components/testPage/demos/menu/MenuTopDemo.d.ts +7 -0
  166. package/fe/packages/react/ui/components/testPage/demos/menu/MenuTopDemo.js +55 -0
  167. package/fe/packages/react/ui/components/testPage/demos/menu/MenuTopDemo2.js +4 -0
  168. package/fe/packages/react/ui/components/testPage/index.js +30 -1623
  169. package/fe/packages/react/ui/components/testPage/types.d.ts +17 -0
  170. package/fe/packages/react/ui/components/testPage/types.js +0 -0
  171. package/fe/packages/react/ui/i18n/I18nProvider.js +2 -1
  172. package/model/packages/react/ui/components/Date/LocaleContext.d.ts +1 -0
  173. package/model/packages/react/ui/components/Date/locales.d.ts +5 -0
  174. package/package.json +1 -1
  175. package/types/config/config.default.d.ts +6 -0
@@ -0,0 +1,35 @@
1
+ import { __exportAll } from "../../../../../../../_virtual/_rolldown/runtime.js";
2
+ import { DatePicker } from "../../../Date/Date.js";
3
+ import "../../../Date/index.js";
4
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
5
+ //#region packages/react/ui/components/testPage/demos/date/DateFormatDemo.tsx
6
+ var DateFormatDemo_exports = /* @__PURE__ */ __exportAll({
7
+ default: () => DateFormatDemo,
8
+ demoMeta: () => demoMeta
9
+ });
10
+ var demoMeta = {
11
+ title: "7. 自定义格式",
12
+ order: 7,
13
+ contentClassName: "space-y-4"
14
+ };
15
+ function DateFormatDemo() {
16
+ return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs("div", {
17
+ className: "grid grid-cols-2 gap-4",
18
+ children: [/* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("p", {
19
+ className: "text-sm text-muted-foreground mb-2",
20
+ children: "自定义日期格式"
21
+ }), /* @__PURE__ */ jsx(DatePicker, {
22
+ format: "yyyy/MM/dd",
23
+ placeholder: "选择日期 (yyyy/MM/dd)"
24
+ })] }), /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("p", {
25
+ className: "text-sm text-muted-foreground mb-2",
26
+ children: "自定义日期时间格式"
27
+ }), /* @__PURE__ */ jsx(DatePicker, {
28
+ showTime: true,
29
+ format: "yyyy-MM-dd HH:mm:ss",
30
+ placeholder: "选择日期时间 (yyyy-MM-dd HH:mm:ss)"
31
+ })] })]
32
+ }) });
33
+ }
34
+ //#endregion
35
+ export { DateFormatDemo_exports, DateFormatDemo as default, demoMeta };
@@ -0,0 +1,4 @@
1
+ //#region packages/react/ui/components/testPage/demos/date/DateFormatDemo.tsx?raw
2
+ var DateFormatDemo_default = "import { DatePicker } from '@tc/ui-react/components/Date'\nimport type { DemoMeta } from '../../types'\n\nexport const demoMeta = {\n title: '7. 自定义格式',\n order: 7,\n contentClassName: 'space-y-4',\n} satisfies DemoMeta\n\nexport default function DateFormatDemo() {\n return (\n <>\n <div className=\"grid grid-cols-2 gap-4\">\n <div>\n <p className=\"text-sm text-muted-foreground mb-2\">自定义日期格式</p>\n <DatePicker format=\"yyyy/MM/dd\" placeholder=\"选择日期 (yyyy/MM/dd)\" />\n </div>\n <div>\n <p className=\"text-sm text-muted-foreground mb-2\">自定义日期时间格式</p>\n <DatePicker showTime format=\"yyyy-MM-dd HH:mm:ss\" placeholder=\"选择日期时间 (yyyy-MM-dd HH:mm:ss)\" />\n </div>\n </div>\n </>\n )\n}\n";
3
+ //#endregion
4
+ export { DateFormatDemo_default as default };
@@ -0,0 +1,6 @@
1
+ export declare const demoMeta: {
2
+ title: string;
3
+ order: number;
4
+ contentClassName: string;
5
+ };
6
+ export default function DateRangeDemo(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,76 @@
1
+ import { __exportAll } from "../../../../../../../_virtual/_rolldown/runtime.js";
2
+ import { DatePicker } from "../../../Date/Date.js";
3
+ import "../../../Date/index.js";
4
+ import { useState } from "react";
5
+ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
6
+ //#region packages/react/ui/components/testPage/demos/date/DateRangeDemo.tsx
7
+ var DateRangeDemo_exports = /* @__PURE__ */ __exportAll({
8
+ default: () => DateRangeDemo,
9
+ demoMeta: () => demoMeta
10
+ });
11
+ var demoMeta = {
12
+ title: "3. 范围选择 (Range Picker)",
13
+ order: 3,
14
+ contentClassName: "space-y-4"
15
+ };
16
+ function DateRangeDemo() {
17
+ const [rangeWithTime, setRangeWithTime] = useState();
18
+ const [emptyRange, setEmptyRange] = useState();
19
+ return /* @__PURE__ */ jsx(Fragment$1, { children: /* @__PURE__ */ jsxs("div", {
20
+ className: "grid grid-cols-2 gap-8",
21
+ children: [/* @__PURE__ */ jsxs("div", { children: [
22
+ /* @__PURE__ */ jsx("h3", {
23
+ className: "text-sm font-medium mb-2",
24
+ children: "基本范围选择"
25
+ }),
26
+ /* @__PURE__ */ jsx(DatePicker, {
27
+ mode: "range",
28
+ value: emptyRange,
29
+ onChange: (val) => {
30
+ setEmptyRange(val);
31
+ console.log("范围选择:", val);
32
+ },
33
+ placeholder: "选择日期范围"
34
+ }),
35
+ /* @__PURE__ */ jsxs("p", {
36
+ className: "text-sm text-muted-foreground mt-2",
37
+ children: ["值: ", /* @__PURE__ */ jsx("code", {
38
+ className: "text-xs bg-muted px-1 py-0.5 rounded",
39
+ children: JSON.stringify(emptyRange || "未选择")
40
+ })]
41
+ })
42
+ ] }), /* @__PURE__ */ jsxs("div", { children: [
43
+ /* @__PURE__ */ jsx("h3", {
44
+ className: "text-sm font-medium mb-2",
45
+ children: "范围选择 + 时间选择"
46
+ }),
47
+ /* @__PURE__ */ jsx(DatePicker, {
48
+ mode: "range",
49
+ value: rangeWithTime,
50
+ showTime: true,
51
+ onChange: (val) => {
52
+ setRangeWithTime(val);
53
+ console.log("范围时间选择:", val);
54
+ },
55
+ placeholder: "选择日期时间范围"
56
+ }),
57
+ /* @__PURE__ */ jsxs("p", {
58
+ className: "text-sm text-muted-foreground mt-2",
59
+ children: [
60
+ "值:",
61
+ " ",
62
+ /* @__PURE__ */ jsx("code", {
63
+ className: "text-xs bg-muted px-1 py-0.5 rounded",
64
+ children: JSON.stringify(rangeWithTime || "未选择")
65
+ })
66
+ ]
67
+ }),
68
+ /* @__PURE__ */ jsx("p", {
69
+ className: "text-xs text-muted-foreground mt-1",
70
+ children: "选择开始日期后,右侧会显示开始时间选择器;选择结束日期后,会显示结束时间选择器"
71
+ })
72
+ ] })]
73
+ }) });
74
+ }
75
+ //#endregion
76
+ export { DateRangeDemo_exports, DateRangeDemo as default, demoMeta };
@@ -0,0 +1,4 @@
1
+ //#region packages/react/ui/components/testPage/demos/date/DateRangeDemo.tsx?raw
2
+ var DateRangeDemo_default = "import { useState } from 'react'\nimport { DatePicker, type DateChangeStrValue } from '@tc/ui-react/components/Date'\nimport type { DemoMeta } from '../../types'\n\nexport const demoMeta = {\n title: '3. 范围选择 (Range Picker)',\n order: 3,\n contentClassName: 'space-y-4',\n} satisfies DemoMeta\n\nexport default function DateRangeDemo() {\n const [rangeWithTime, setRangeWithTime] = useState<DateChangeStrValue>()\n const [emptyRange, setEmptyRange] = useState<DateChangeStrValue>()\n return (\n <>\n <div className=\"grid grid-cols-2 gap-8\">\n <div>\n <h3 className=\"text-sm font-medium mb-2\">基本范围选择</h3>\n <DatePicker\n mode=\"range\"\n value={emptyRange}\n onChange={(val) => {\n setEmptyRange(val)\n console.log('范围选择:', val)\n }}\n placeholder=\"选择日期范围\"\n />\n <p className=\"text-sm text-muted-foreground mt-2\">\n 值: <code className=\"text-xs bg-muted px-1 py-0.5 rounded\">{JSON.stringify(emptyRange || '未选择')}</code>\n </p>\n </div>\n <div>\n <h3 className=\"text-sm font-medium mb-2\">范围选择 + 时间选择</h3>\n <DatePicker\n mode=\"range\"\n value={rangeWithTime}\n showTime\n onChange={(val) => {\n setRangeWithTime(val)\n console.log('范围时间选择:', val)\n }}\n placeholder=\"选择日期时间范围\"\n />\n <p className=\"text-sm text-muted-foreground mt-2\">\n 值:{' '}\n <code className=\"text-xs bg-muted px-1 py-0.5 rounded\">{JSON.stringify(rangeWithTime || '未选择')}</code>\n </p>\n <p className=\"text-xs text-muted-foreground mt-1\">\n 选择开始日期后,右侧会显示开始时间选择器;选择结束日期后,会显示结束时间选择器\n </p>\n </div>\n </div>\n </>\n )\n}\n";
3
+ //#endregion
4
+ export { DateRangeDemo_default as default };
@@ -0,0 +1,7 @@
1
+ export declare const demoMeta: {
2
+ title: string;
3
+ description: string;
4
+ order: number;
5
+ contentClassName: string;
6
+ };
7
+ export default function DateTimeDemo(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,60 @@
1
+ import { __exportAll } from "../../../../../../../_virtual/_rolldown/runtime.js";
2
+ import { DatePicker } from "../../../Date/Date.js";
3
+ import "../../../Date/index.js";
4
+ import { useState } from "react";
5
+ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
6
+ //#region packages/react/ui/components/testPage/demos/date/DateTimeDemo.tsx
7
+ var DateTimeDemo_exports = /* @__PURE__ */ __exportAll({
8
+ default: () => DateTimeDemo,
9
+ demoMeta: () => demoMeta
10
+ });
11
+ var demoMeta = {
12
+ title: "2. 日期时间选择器 (showTime)",
13
+ description: "时间选择器显示在日历右侧,提供更好的用户体验",
14
+ order: 2,
15
+ contentClassName: "space-y-4"
16
+ };
17
+ function DateTimeDemo() {
18
+ const [dateTime1, setDateTime1] = useState();
19
+ return /* @__PURE__ */ jsx(Fragment$1, { children: /* @__PURE__ */ jsxs("div", {
20
+ className: "grid grid-cols-2 gap-8",
21
+ children: [/* @__PURE__ */ jsxs("div", { children: [
22
+ /* @__PURE__ */ jsx("h3", {
23
+ className: "text-sm font-medium mb-2",
24
+ children: "基本用法 - 单日期时间"
25
+ }),
26
+ /* @__PURE__ */ jsx(DatePicker, {
27
+ showTime: true,
28
+ placeholder: "请选择日期时间"
29
+ }),
30
+ /* @__PURE__ */ jsx("p", {
31
+ className: "text-xs text-muted-foreground mt-2",
32
+ children: "点击输入框打开选择器,时间选择器在右侧显示"
33
+ })
34
+ ] }), /* @__PURE__ */ jsxs("div", { children: [
35
+ /* @__PURE__ */ jsx("h3", {
36
+ className: "text-sm font-medium mb-2",
37
+ children: "受控模式"
38
+ }),
39
+ /* @__PURE__ */ jsx(DatePicker, {
40
+ showTime: true,
41
+ value: dateTime1,
42
+ onChange: (val, date) => {
43
+ setDateTime1(val);
44
+ console.log("选中日期时间:", val);
45
+ console.log("Date 对象:", date);
46
+ },
47
+ placeholder: "受控日期时间选择器"
48
+ }),
49
+ /* @__PURE__ */ jsxs("p", {
50
+ className: "text-sm text-muted-foreground mt-2",
51
+ children: ["选中的值: ", /* @__PURE__ */ jsx("code", {
52
+ className: "text-xs bg-muted px-1 py-0.5 rounded",
53
+ children: String(dateTime1 || "未选择")
54
+ })]
55
+ })
56
+ ] })]
57
+ }) });
58
+ }
59
+ //#endregion
60
+ export { DateTimeDemo_exports, DateTimeDemo as default, demoMeta };
@@ -0,0 +1,4 @@
1
+ //#region packages/react/ui/components/testPage/demos/date/DateTimeDemo.tsx?raw
2
+ var DateTimeDemo_default = "import { useState } from 'react'\nimport { DatePicker, type DateChangeStrValue } from '@tc/ui-react/components/Date'\nimport type { DemoMeta } from '../../types'\n\nexport const demoMeta = {\n title: '2. 日期时间选择器 (showTime)',\n description: '时间选择器显示在日历右侧,提供更好的用户体验',\n order: 2,\n contentClassName: 'space-y-4',\n} satisfies DemoMeta\n\nexport default function DateTimeDemo() {\n const [dateTime1, setDateTime1] = useState<DateChangeStrValue>()\n return (\n <>\n <div className=\"grid grid-cols-2 gap-8\">\n <div>\n <h3 className=\"text-sm font-medium mb-2\">基本用法 - 单日期时间</h3>\n <DatePicker showTime placeholder=\"请选择日期时间\" />\n <p className=\"text-xs text-muted-foreground mt-2\">点击输入框打开选择器,时间选择器在右侧显示</p>\n </div>\n <div>\n <h3 className=\"text-sm font-medium mb-2\">受控模式</h3>\n <DatePicker\n showTime\n value={dateTime1}\n onChange={(val, date) => {\n setDateTime1(val)\n console.log('选中日期时间:', val)\n console.log('Date 对象:', date)\n }}\n placeholder=\"受控日期时间选择器\"\n />\n <p className=\"text-sm text-muted-foreground mt-2\">\n 选中的值: <code className=\"text-xs bg-muted px-1 py-0.5 rounded\">{String(dateTime1 || '未选择')}</code>\n </p>\n </div>\n </div>\n </>\n )\n}\n";
3
+ //#endregion
4
+ export { DateTimeDemo_default as default };
@@ -0,0 +1,7 @@
1
+ export declare const demoMeta: {
2
+ title: string;
3
+ description: string;
4
+ order: number;
5
+ contentClassName: string;
6
+ };
7
+ export default function MenuAccordionDemo(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,78 @@
1
+ import { __exportAll } from "../../../../../../../_virtual/_rolldown/runtime.js";
2
+ import { Menu } from "../../../Menu/Menu.js";
3
+ import "../../../index.js";
4
+ import { useState } from "react";
5
+ import { Fragment as Fragment$1, jsx } from "react/jsx-runtime";
6
+ import { LayoutDashboard, Package, Settings } from "lucide-react";
7
+ //#region packages/react/ui/components/testPage/demos/menu/MenuAccordionDemo.tsx
8
+ var MenuAccordionDemo_exports = /* @__PURE__ */ __exportAll({
9
+ default: () => MenuAccordionDemo,
10
+ demoMeta: () => demoMeta
11
+ });
12
+ var demoMeta = {
13
+ title: "2. 手风琴展开 (accordion)",
14
+ description: "同一层级同时只能展开一个子菜单",
15
+ order: 2,
16
+ contentClassName: "space-y-3"
17
+ };
18
+ var menuItems = [
19
+ {
20
+ key: "dashboard",
21
+ label: "Dashboard",
22
+ icon: /* @__PURE__ */ jsx(LayoutDashboard, { className: "h-4 w-4" })
23
+ },
24
+ {
25
+ key: "products",
26
+ label: "Products",
27
+ icon: /* @__PURE__ */ jsx(Package, { className: "h-4 w-4" }),
28
+ children: [
29
+ {
30
+ key: "products-list",
31
+ label: "All Products"
32
+ },
33
+ {
34
+ key: "products-create",
35
+ label: "Create New"
36
+ },
37
+ {
38
+ key: "products-categories",
39
+ label: "Categories",
40
+ children: [{
41
+ key: "cat-electronics",
42
+ label: "Electronics"
43
+ }, {
44
+ key: "cat-clothing",
45
+ label: "Clothing"
46
+ }]
47
+ }
48
+ ]
49
+ },
50
+ {
51
+ key: "settings",
52
+ label: "Settings",
53
+ icon: /* @__PURE__ */ jsx(Settings, { className: "h-4 w-4" }),
54
+ children: [{
55
+ key: "settings-profile",
56
+ label: "Profile"
57
+ }, {
58
+ key: "settings-billing",
59
+ label: "Billing",
60
+ danger: true
61
+ }]
62
+ }
63
+ ];
64
+ function MenuAccordionDemo() {
65
+ const [accordionKey, setAccordionKey] = useState("dashboard");
66
+ return /* @__PURE__ */ jsx(Fragment$1, { children: /* @__PURE__ */ jsx("div", {
67
+ className: "w-56 border rounded-lg overflow-hidden",
68
+ children: /* @__PURE__ */ jsx(Menu, {
69
+ mode: "left",
70
+ expandMode: "accordion",
71
+ selectedKey: accordionKey,
72
+ onSelect: setAccordionKey,
73
+ items: menuItems
74
+ })
75
+ }) });
76
+ }
77
+ //#endregion
78
+ export { MenuAccordionDemo_exports, MenuAccordionDemo as default, demoMeta };
@@ -0,0 +1,4 @@
1
+ //#region packages/react/ui/components/testPage/demos/menu/MenuAccordionDemo.tsx?raw
2
+ var MenuAccordionDemo_default = "import { useState } from 'react'\nimport { LayoutDashboard, Package, Settings } from 'lucide-react'\nimport { Menu, type MenuItemData } from '@tc/ui-react/components'\nimport type { DemoMeta } from '../../types'\n\n\nexport const demoMeta = {\n title: '2. 手风琴展开 (accordion)',\n description: '同一层级同时只能展开一个子菜单',\n order: 2,\n contentClassName: 'space-y-3',\n} satisfies DemoMeta\n\n// ─── 示例数据 ────────────────────────────────────────────────────────────────\n\nconst menuItems: MenuItemData[] = [\n {\n key: 'dashboard',\n label: 'Dashboard',\n icon: <LayoutDashboard className=\"h-4 w-4\" />,\n },\n {\n key: 'products',\n label: 'Products',\n icon: <Package className=\"h-4 w-4\" />,\n children: [\n { key: 'products-list', label: 'All Products' },\n { key: 'products-create', label: 'Create New' },\n {\n key: 'products-categories',\n label: 'Categories',\n children: [\n { key: 'cat-electronics', label: 'Electronics' },\n { key: 'cat-clothing', label: 'Clothing' },\n ],\n },\n ],\n },\n {\n key: 'settings',\n label: 'Settings',\n icon: <Settings className=\"h-4 w-4\" />,\n children: [\n { key: 'settings-profile', label: 'Profile' },\n { key: 'settings-billing', label: 'Billing', danger: true },\n ],\n },\n]\n\nexport default function MenuAccordionDemo() {\n const [accordionKey, setAccordionKey] = useState('dashboard')\n return (\n <>\n <div className=\"w-56 border rounded-lg overflow-hidden\">\n <Menu mode=\"left\" expandMode=\"accordion\" selectedKey={accordionKey} onSelect={setAccordionKey} items={menuItems} />\n </div>\n </>\n )\n}\n";
3
+ //#endregion
4
+ export { MenuAccordionDemo_default as default };
@@ -0,0 +1,7 @@
1
+ export declare const demoMeta: {
2
+ title: string;
3
+ description: string;
4
+ order: number;
5
+ contentClassName: string;
6
+ };
7
+ export default function MenuClickTriggerDemo(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,79 @@
1
+ import { __exportAll } from "../../../../../../../_virtual/_rolldown/runtime.js";
2
+ import { Menu } from "../../../Menu/Menu.js";
3
+ import "../../../index.js";
4
+ import { useState } from "react";
5
+ import { Fragment as Fragment$1, jsx } from "react/jsx-runtime";
6
+ import { LayoutDashboard, Package, Settings } from "lucide-react";
7
+ //#region packages/react/ui/components/testPage/demos/menu/MenuClickTriggerDemo.tsx
8
+ var MenuClickTriggerDemo_exports = /* @__PURE__ */ __exportAll({
9
+ default: () => MenuClickTriggerDemo,
10
+ demoMeta: () => demoMeta
11
+ });
12
+ var demoMeta = {
13
+ title: "7. Click 触发",
14
+ description: "点击展开子菜单,而非 hover",
15
+ order: 7,
16
+ contentClassName: "space-y-3"
17
+ };
18
+ var menuItems = [
19
+ {
20
+ key: "dashboard",
21
+ label: "Dashboard",
22
+ icon: /* @__PURE__ */ jsx(LayoutDashboard, { className: "h-4 w-4" })
23
+ },
24
+ {
25
+ key: "products",
26
+ label: "Products",
27
+ icon: /* @__PURE__ */ jsx(Package, { className: "h-4 w-4" }),
28
+ children: [
29
+ {
30
+ key: "products-list",
31
+ label: "All Products"
32
+ },
33
+ {
34
+ key: "products-create",
35
+ label: "Create New"
36
+ },
37
+ {
38
+ key: "products-categories",
39
+ label: "Categories",
40
+ children: [{
41
+ key: "cat-electronics",
42
+ label: "Electronics"
43
+ }, {
44
+ key: "cat-clothing",
45
+ label: "Clothing"
46
+ }]
47
+ }
48
+ ]
49
+ },
50
+ {
51
+ key: "settings",
52
+ label: "Settings",
53
+ icon: /* @__PURE__ */ jsx(Settings, { className: "h-4 w-4" }),
54
+ children: [{
55
+ key: "settings-profile",
56
+ label: "Profile"
57
+ }, {
58
+ key: "settings-billing",
59
+ label: "Billing",
60
+ danger: true
61
+ }]
62
+ }
63
+ ];
64
+ function MenuClickTriggerDemo() {
65
+ const [selectedKey, setSelectedKey] = useState("dashboard");
66
+ return /* @__PURE__ */ jsx(Fragment$1, { children: /* @__PURE__ */ jsx("div", {
67
+ className: "w-56 border rounded-lg overflow-hidden",
68
+ children: /* @__PURE__ */ jsx(Menu, {
69
+ mode: "left",
70
+ expandTrigger: "click",
71
+ expandMode: "multiple",
72
+ selectedKey,
73
+ onSelect: setSelectedKey,
74
+ items: menuItems
75
+ })
76
+ }) });
77
+ }
78
+ //#endregion
79
+ export { MenuClickTriggerDemo_exports, MenuClickTriggerDemo as default, demoMeta };
@@ -0,0 +1,4 @@
1
+ //#region packages/react/ui/components/testPage/demos/menu/MenuClickTriggerDemo.tsx?raw
2
+ var MenuClickTriggerDemo_default = "import { useState } from 'react'\nimport { LayoutDashboard, Package, Settings } from 'lucide-react'\nimport { Menu, type MenuItemData } from '@tc/ui-react/components'\nimport type { DemoMeta } from '../../types'\n\n\nexport const demoMeta = {\n title: '7. Click 触发',\n description: '点击展开子菜单,而非 hover',\n order: 7,\n contentClassName: 'space-y-3',\n} satisfies DemoMeta\n\n// ─── 示例数据 ────────────────────────────────────────────────────────────────\n\nconst menuItems: MenuItemData[] = [\n {\n key: 'dashboard',\n label: 'Dashboard',\n icon: <LayoutDashboard className=\"h-4 w-4\" />,\n },\n {\n key: 'products',\n label: 'Products',\n icon: <Package className=\"h-4 w-4\" />,\n children: [\n { key: 'products-list', label: 'All Products' },\n { key: 'products-create', label: 'Create New' },\n {\n key: 'products-categories',\n label: 'Categories',\n children: [\n { key: 'cat-electronics', label: 'Electronics' },\n { key: 'cat-clothing', label: 'Clothing' },\n ],\n },\n ],\n },\n {\n key: 'settings',\n label: 'Settings',\n icon: <Settings className=\"h-4 w-4\" />,\n children: [\n { key: 'settings-profile', label: 'Profile' },\n { key: 'settings-billing', label: 'Billing', danger: true },\n ],\n },\n]\n\nexport default function MenuClickTriggerDemo() {\n const [selectedKey, setSelectedKey] = useState('dashboard')\n return (\n <>\n <div className=\"w-56 border rounded-lg overflow-hidden\">\n <Menu\n mode=\"left\"\n expandTrigger=\"click\"\n expandMode=\"multiple\"\n selectedKey={selectedKey}\n onSelect={setSelectedKey}\n items={menuItems}\n />\n </div>\n </>\n )\n}\n";
3
+ //#endregion
4
+ export { MenuClickTriggerDemo_default as default };
@@ -0,0 +1,7 @@
1
+ export declare const demoMeta: {
2
+ title: string;
3
+ description: string;
4
+ order: number;
5
+ contentClassName: string;
6
+ };
7
+ export default function MenuCollapsedDemo(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,82 @@
1
+ import { __exportAll } from "../../../../../../../_virtual/_rolldown/runtime.js";
2
+ import { Menu } from "../../../Menu/Menu.js";
3
+ import "../../../index.js";
4
+ import { useState } from "react";
5
+ import { Fragment as Fragment$1, jsx } from "react/jsx-runtime";
6
+ import { BarChart3, Bell, FileText, HelpCircle, LayoutDashboard, ShoppingCart, Users } from "lucide-react";
7
+ //#region packages/react/ui/components/testPage/demos/menu/MenuCollapsedDemo.tsx
8
+ var MenuCollapsedDemo_exports = /* @__PURE__ */ __exportAll({
9
+ default: () => MenuCollapsedDemo,
10
+ demoMeta: () => demoMeta
11
+ });
12
+ var demoMeta = {
13
+ title: "3. 折叠模式 (collapsed)",
14
+ description: "收起后仅展示图标,hover 弹出子菜单",
15
+ order: 3,
16
+ contentClassName: "space-y-3"
17
+ };
18
+ var iconMenuItems = [
19
+ {
20
+ key: "dashboard",
21
+ label: "Dashboard",
22
+ icon: /* @__PURE__ */ jsx(LayoutDashboard, { className: "h-4 w-4" })
23
+ },
24
+ {
25
+ key: "users",
26
+ label: "Users",
27
+ icon: /* @__PURE__ */ jsx(Users, { className: "h-4 w-4" }),
28
+ children: [{
29
+ key: "users-list",
30
+ label: "All Users",
31
+ icon: /* @__PURE__ */ jsx(Users, { className: "h-4 w-4" })
32
+ }, {
33
+ key: "users-roles",
34
+ label: "Roles",
35
+ icon: /* @__PURE__ */ jsx(FileText, { className: "h-4 w-4" })
36
+ }]
37
+ },
38
+ {
39
+ key: "analytics",
40
+ label: "Analytics",
41
+ icon: /* @__PURE__ */ jsx(BarChart3, { className: "h-4 w-4" }),
42
+ children: [{
43
+ key: "analytics-overview",
44
+ label: "Overview"
45
+ }, {
46
+ key: "analytics-reports",
47
+ label: "Reports"
48
+ }]
49
+ },
50
+ {
51
+ key: "orders",
52
+ label: "Orders",
53
+ icon: /* @__PURE__ */ jsx(ShoppingCart, { className: "h-4 w-4" })
54
+ },
55
+ {
56
+ key: "notifications",
57
+ label: "Notifications",
58
+ icon: /* @__PURE__ */ jsx(Bell, { className: "h-4 w-4" })
59
+ },
60
+ {
61
+ key: "help",
62
+ label: "Help",
63
+ icon: /* @__PURE__ */ jsx(HelpCircle, { className: "h-4 w-4" })
64
+ }
65
+ ];
66
+ function MenuCollapsedDemo() {
67
+ const [collapsed, setCollapsed] = useState(false);
68
+ const [collapsedKey, setCollapsedKey] = useState("dashboard");
69
+ return /* @__PURE__ */ jsx(Fragment$1, { children: /* @__PURE__ */ jsx("div", {
70
+ className: "border rounded-lg overflow-hidden inline-flex",
71
+ children: /* @__PURE__ */ jsx(Menu, {
72
+ mode: "left",
73
+ selectedKey: collapsedKey,
74
+ onSelect: setCollapsedKey,
75
+ collapsed,
76
+ onCollapse: setCollapsed,
77
+ items: iconMenuItems
78
+ })
79
+ }) });
80
+ }
81
+ //#endregion
82
+ export { MenuCollapsedDemo_exports, MenuCollapsedDemo as default, demoMeta };
@@ -0,0 +1,4 @@
1
+ //#region packages/react/ui/components/testPage/demos/menu/MenuCollapsedDemo.tsx?raw
2
+ var MenuCollapsedDemo_default = "import { useState } from 'react'\nimport { LayoutDashboard, Users, FileText, BarChart3, ShoppingCart, Bell, HelpCircle } from 'lucide-react'\nimport { Menu, type MenuItemData } from '@tc/ui-react/components'\nimport type { DemoMeta } from '../../types'\n\n\nexport const demoMeta = {\n title: '3. 折叠模式 (collapsed)',\n description: '收起后仅展示图标,hover 弹出子菜单',\n order: 3,\n contentClassName: 'space-y-3',\n} satisfies DemoMeta\n\n// ─── 示例数据 ────────────────────────────────────────────────────────────────\n\nconst iconMenuItems: MenuItemData[] = [\n { key: 'dashboard', label: 'Dashboard', icon: <LayoutDashboard className=\"h-4 w-4\" /> },\n {\n key: 'users',\n label: 'Users',\n icon: <Users className=\"h-4 w-4\" />,\n children: [\n { key: 'users-list', label: 'All Users', icon: <Users className=\"h-4 w-4\" /> },\n { key: 'users-roles', label: 'Roles', icon: <FileText className=\"h-4 w-4\" /> },\n ],\n },\n {\n key: 'analytics',\n label: 'Analytics',\n icon: <BarChart3 className=\"h-4 w-4\" />,\n children: [\n { key: 'analytics-overview', label: 'Overview' },\n { key: 'analytics-reports', label: 'Reports' },\n ],\n },\n { key: 'orders', label: 'Orders', icon: <ShoppingCart className=\"h-4 w-4\" /> },\n { key: 'notifications', label: 'Notifications', icon: <Bell className=\"h-4 w-4\" /> },\n { key: 'help', label: 'Help', icon: <HelpCircle className=\"h-4 w-4\" /> },\n]\n\nexport default function MenuCollapsedDemo() {\n const [collapsed, setCollapsed] = useState(false)\n const [collapsedKey, setCollapsedKey] = useState('dashboard')\n return (\n <>\n <div className=\"border rounded-lg overflow-hidden inline-flex\">\n <Menu\n mode=\"left\"\n selectedKey={collapsedKey}\n onSelect={setCollapsedKey}\n collapsed={collapsed}\n onCollapse={setCollapsed}\n items={iconMenuItems}\n />\n </div>\n </>\n )\n}\n";
3
+ //#endregion
4
+ export { MenuCollapsedDemo_default as default };
@@ -0,0 +1,7 @@
1
+ export declare const demoMeta: {
2
+ title: string;
3
+ description: string;
4
+ order: number;
5
+ contentClassName: string;
6
+ };
7
+ export default function MenuCollapsedNoIconDemo(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,44 @@
1
+ import { __exportAll } from "../../../../../../../_virtual/_rolldown/runtime.js";
2
+ import { Menu } from "../../../Menu/Menu.js";
3
+ import "../../../index.js";
4
+ import { Fragment, jsx } from "react/jsx-runtime";
5
+ import { LayoutDashboard, Settings } from "lucide-react";
6
+ //#region packages/react/ui/components/testPage/demos/menu/MenuCollapsedNoIconDemo.tsx
7
+ var MenuCollapsedNoIconDemo_exports = /* @__PURE__ */ __exportAll({
8
+ default: () => MenuCollapsedNoIconDemo,
9
+ demoMeta: () => demoMeta
10
+ });
11
+ var demoMeta = {
12
+ title: "9. 无 icon 折叠",
13
+ description: "收起时无 icon 的菜单项留白占位",
14
+ order: 9,
15
+ contentClassName: "space-y-3"
16
+ };
17
+ function MenuCollapsedNoIconDemo() {
18
+ return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx("div", {
19
+ className: "border rounded-lg overflow-hidden inline-flex",
20
+ children: /* @__PURE__ */ jsx(Menu, {
21
+ mode: "left",
22
+ defaultCollapsed: true,
23
+ expandMode: "multiple",
24
+ items: [
25
+ {
26
+ key: "a",
27
+ label: "Home",
28
+ icon: /* @__PURE__ */ jsx(LayoutDashboard, { className: "h-4 w-4" })
29
+ },
30
+ {
31
+ key: "b",
32
+ label: "Reports"
33
+ },
34
+ {
35
+ key: "c",
36
+ label: "Settings",
37
+ icon: /* @__PURE__ */ jsx(Settings, { className: "h-4 w-4" })
38
+ }
39
+ ]
40
+ })
41
+ }) });
42
+ }
43
+ //#endregion
44
+ export { MenuCollapsedNoIconDemo_exports, MenuCollapsedNoIconDemo as default, demoMeta };
@@ -0,0 +1,4 @@
1
+ //#region packages/react/ui/components/testPage/demos/menu/MenuCollapsedNoIconDemo.tsx?raw
2
+ var MenuCollapsedNoIconDemo_default = "import { LayoutDashboard, Settings } from 'lucide-react'\nimport { Menu } from '@tc/ui-react/components'\nimport type { DemoMeta } from '../../types'\n\n\nexport const demoMeta = {\n title: '9. 无 icon 折叠',\n description: '收起时无 icon 的菜单项留白占位',\n order: 9,\n contentClassName: 'space-y-3',\n} satisfies DemoMeta\n\n// ─── 示例数据 ────────────────────────────────────────────────────────────────\n\nexport default function MenuCollapsedNoIconDemo() {\n return (\n <>\n <div className=\"border rounded-lg overflow-hidden inline-flex\">\n <Menu\n mode=\"left\"\n defaultCollapsed={true}\n expandMode=\"multiple\"\n items={[\n { key: 'a', label: 'Home', icon: <LayoutDashboard className=\"h-4 w-4\" /> },\n { key: 'b', label: 'Reports' },\n { key: 'c', label: 'Settings', icon: <Settings className=\"h-4 w-4\" /> },\n ]}\n />\n </div>\n </>\n )\n}\n";
3
+ //#endregion
4
+ export { MenuCollapsedNoIconDemo_default as default };
@@ -0,0 +1,7 @@
1
+ export declare const demoMeta: {
2
+ title: string;
3
+ description: string;
4
+ order: number;
5
+ contentClassName: string;
6
+ };
7
+ export default function MenuJsxDemo(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,64 @@
1
+ import { __exportAll } from "../../../../../../../_virtual/_rolldown/runtime.js";
2
+ import { Menu } from "../../../Menu/Menu.js";
3
+ import "../../../index.js";
4
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
5
+ import { HelpCircle, LayoutDashboard, Package, Settings } from "lucide-react";
6
+ //#region packages/react/ui/components/testPage/demos/menu/MenuJsxDemo.tsx
7
+ var MenuJsxDemo_exports = /* @__PURE__ */ __exportAll({
8
+ default: () => MenuJsxDemo,
9
+ demoMeta: () => demoMeta
10
+ });
11
+ var demoMeta = {
12
+ title: "4. JSX 组合式",
13
+ description: "不使用 data config,直接组合 Menu.Item / Menu.SubMenu",
14
+ order: 4,
15
+ contentClassName: "space-y-3"
16
+ };
17
+ function MenuJsxDemo() {
18
+ return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx("div", {
19
+ className: "w-56 border rounded-lg overflow-hidden",
20
+ children: /* @__PURE__ */ jsxs(Menu, {
21
+ mode: "left",
22
+ defaultSelectedKey: "overview",
23
+ children: [
24
+ /* @__PURE__ */ jsx(Menu.Item, {
25
+ eventKey: "overview",
26
+ icon: /* @__PURE__ */ jsx(LayoutDashboard, { className: "h-4 w-4" }),
27
+ children: "Overview"
28
+ }),
29
+ /* @__PURE__ */ jsxs(Menu.SubMenu, {
30
+ eventKey: "manage",
31
+ label: "Manage",
32
+ icon: /* @__PURE__ */ jsx(Package, { className: "h-4 w-4" }),
33
+ children: [/* @__PURE__ */ jsx(Menu.Item, {
34
+ eventKey: "manage-list",
35
+ children: "List"
36
+ }), /* @__PURE__ */ jsx(Menu.Item, {
37
+ eventKey: "manage-edit",
38
+ children: "Edit"
39
+ })]
40
+ }),
41
+ /* @__PURE__ */ jsxs(Menu.SubMenu, {
42
+ eventKey: "settings",
43
+ label: "Settings",
44
+ icon: /* @__PURE__ */ jsx(Settings, { className: "h-4 w-4" }),
45
+ children: [/* @__PURE__ */ jsx(Menu.Item, {
46
+ eventKey: "jsx-profile",
47
+ children: "Profile"
48
+ }), /* @__PURE__ */ jsx(Menu.Item, {
49
+ eventKey: "jsx-billing",
50
+ danger: true,
51
+ children: "Billing"
52
+ })]
53
+ }),
54
+ /* @__PURE__ */ jsx(Menu.Item, {
55
+ eventKey: "help",
56
+ icon: /* @__PURE__ */ jsx(HelpCircle, { className: "h-4 w-4" }),
57
+ children: "Help"
58
+ })
59
+ ]
60
+ })
61
+ }) });
62
+ }
63
+ //#endregion
64
+ export { MenuJsxDemo_exports, MenuJsxDemo as default, demoMeta };