@_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,6 @@
1
+ export declare const demoMeta: {
2
+ title: string;
3
+ order: number;
4
+ contentClassName: string;
5
+ };
6
+ export default function TabsDemo(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,56 @@
1
+ import { __exportAll } from "../../../../../../../_virtual/_rolldown/runtime.js";
2
+ import { Tabs } from "../../../Tabs/Tabs.js";
3
+ import "../../../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/core/TabsDemo.tsx
7
+ var TabsDemo_exports = /* @__PURE__ */ __exportAll({
8
+ default: () => TabsDemo,
9
+ demoMeta: () => demoMeta
10
+ });
11
+ var demoMeta = {
12
+ title: "Tabs",
13
+ order: 26,
14
+ contentClassName: "flex flex-wrap gap-3 items-start"
15
+ };
16
+ function TabsDemo() {
17
+ const [activeTab, setActiveTab] = useState("tab1");
18
+ return /* @__PURE__ */ jsx(Fragment$1, { children: /* @__PURE__ */ jsxs("div", {
19
+ className: "w-full",
20
+ children: [/* @__PURE__ */ jsx(Tabs, {
21
+ items: [
22
+ {
23
+ key: "tab1",
24
+ label: "标签页 1"
25
+ },
26
+ {
27
+ key: "tab2",
28
+ label: "标签页 2"
29
+ },
30
+ {
31
+ key: "tab3",
32
+ label: "标签页 3"
33
+ },
34
+ {
35
+ key: "tab4",
36
+ label: "禁用标签",
37
+ disabled: true
38
+ }
39
+ ],
40
+ activeKey: activeTab,
41
+ onChange: setActiveTab
42
+ }), /* @__PURE__ */ jsx("div", {
43
+ className: "p-4 border border-t-0 rounded-b-lg bg-background",
44
+ children: /* @__PURE__ */ jsx("p", {
45
+ className: "text-sm text-muted-foreground",
46
+ children: {
47
+ tab1: "这是标签页 1 的内容区域。",
48
+ tab2: "这是标签页 2 的内容区域。",
49
+ tab3: "这是标签页 3 的内容区域。"
50
+ }[activeTab]
51
+ })
52
+ })]
53
+ }) });
54
+ }
55
+ //#endregion
56
+ export { TabsDemo_exports, TabsDemo as default, demoMeta };
@@ -0,0 +1,4 @@
1
+ //#region packages/react/ui/components/testPage/demos/core/TabsDemo.tsx?raw
2
+ var TabsDemo_default = "import { Tabs } from '@tc/ui-react/components'\nimport { useState } from 'react'\nimport type { DemoMeta } from '../../types'\n\nexport const demoMeta = {\n title: 'Tabs',\n order: 26,\n contentClassName: 'flex flex-wrap gap-3 items-start',\n} satisfies DemoMeta\n\n// ─── Tabs ────────────────────────────────────────────────────────────────────\n\nexport default function TabsDemo() {\n const [activeTab, setActiveTab] = useState('tab1')\n const items = [\n { key: 'tab1', label: '标签页 1' },\n { key: 'tab2', label: '标签页 2' },\n { key: 'tab3', label: '标签页 3' },\n { key: 'tab4', label: '禁用标签', disabled: true },\n ]\n const tabContents: Record<string, string> = {\n tab1: '这是标签页 1 的内容区域。',\n tab2: '这是标签页 2 的内容区域。',\n tab3: '这是标签页 3 的内容区域。',\n }\n return (\n <>\n <div className=\"w-full\">\n <Tabs items={items} activeKey={activeTab} onChange={setActiveTab} />\n <div className=\"p-4 border border-t-0 rounded-b-lg bg-background\">\n <p className=\"text-sm text-muted-foreground\">{tabContents[activeTab]}</p>\n </div>\n </div>\n </>\n )\n}\n";
3
+ //#endregion
4
+ export { TabsDemo_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 TextareaDemo(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,30 @@
1
+ import { __exportAll } from "../../../../../../../_virtual/_rolldown/runtime.js";
2
+ import { Textarea } from "../../../Textarea/Textarea.js";
3
+ import "../../../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/core/TextareaDemo.tsx
7
+ var TextareaDemo_exports = /* @__PURE__ */ __exportAll({
8
+ default: () => TextareaDemo,
9
+ demoMeta: () => demoMeta
10
+ });
11
+ var demoMeta = {
12
+ title: "Textarea",
13
+ order: 5,
14
+ contentClassName: "flex flex-wrap gap-3 items-start"
15
+ };
16
+ function TextareaDemo() {
17
+ const [val, setVal] = useState("");
18
+ return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(Textarea, {
19
+ placeholder: "请输入内容(最多 500 字)",
20
+ value: val,
21
+ onChange: (v) => setVal(v),
22
+ className: "w-80"
23
+ }), /* @__PURE__ */ jsx(Textarea, {
24
+ placeholder: "不显示计数",
25
+ showCount: false,
26
+ className: "w-80"
27
+ })] });
28
+ }
29
+ //#endregion
30
+ export { TextareaDemo_exports, TextareaDemo as default, demoMeta };
@@ -0,0 +1,4 @@
1
+ //#region packages/react/ui/components/testPage/demos/core/TextareaDemo.tsx?raw
2
+ var TextareaDemo_default = "import { Textarea } from '@tc/ui-react/components'\nimport { useState } from 'react'\nimport type { DemoMeta } from '../../types'\n\nexport const demoMeta = {\n title: 'Textarea',\n order: 5,\n contentClassName: 'flex flex-wrap gap-3 items-start',\n} satisfies DemoMeta\n\n// ─── Textarea ────────────────────────────────────────────────────────────────\n\nexport default function TextareaDemo() {\n const [val, setVal] = useState('')\n return (\n <>\n <Textarea\n placeholder=\"请输入内容(最多 500 字)\"\n value={val}\n onChange={(v) => setVal(v)}\n className=\"w-80\"\n />\n <Textarea placeholder=\"不显示计数\" showCount={false} className=\"w-80\" />\n </>\n )\n}\n";
3
+ //#endregion
4
+ export { TextareaDemo_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 ThemeSwitcher(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,96 @@
1
+ import { __exportAll } from "../../../../../../../_virtual/_rolldown/runtime.js";
2
+ import { Button } from "../../../Button/Button.js";
3
+ import "../../../index.js";
4
+ import { useEffect, useState } from "react";
5
+ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
6
+ //#region packages/react/ui/components/testPage/demos/core/ThemeSwitcher.tsx
7
+ var ThemeSwitcher_exports = /* @__PURE__ */ __exportAll({
8
+ default: () => ThemeSwitcher,
9
+ demoMeta: () => demoMeta
10
+ });
11
+ var demoMeta = {
12
+ title: "Theme",
13
+ order: 1,
14
+ contentClassName: "flex flex-wrap gap-3 items-start"
15
+ };
16
+ function ThemeSwitcher() {
17
+ const [mode, setMode] = useState("dark");
18
+ const [theme, setTheme] = useState("default");
19
+ useEffect(() => {
20
+ const root = document.documentElement;
21
+ const previousTheme = root.getAttribute("data-theme");
22
+ const previousDark = root.classList.contains("dark");
23
+ root.classList.toggle("dark", mode === "dark");
24
+ if (theme === "default") root.removeAttribute("data-theme");
25
+ else root.setAttribute("data-theme", theme);
26
+ return () => {
27
+ root.classList.toggle("dark", previousDark);
28
+ if (previousTheme) root.setAttribute("data-theme", previousTheme);
29
+ else root.removeAttribute("data-theme");
30
+ };
31
+ }, [mode, theme]);
32
+ return /* @__PURE__ */ jsx(Fragment$1, { children: /* @__PURE__ */ jsxs("div", {
33
+ className: "flex w-full flex-wrap items-center gap-6 rounded-xl border border-border bg-background p-4",
34
+ children: [
35
+ /* @__PURE__ */ jsxs("div", {
36
+ className: "flex items-center gap-2",
37
+ children: [
38
+ /* @__PURE__ */ jsx("span", {
39
+ className: "text-sm text-muted-foreground",
40
+ children: "模式"
41
+ }),
42
+ /* @__PURE__ */ jsx(Button, {
43
+ variant: mode === "light" ? "primary" : "default",
44
+ size: "sm",
45
+ onClick: () => setMode("light"),
46
+ children: "Light"
47
+ }),
48
+ /* @__PURE__ */ jsx(Button, {
49
+ variant: mode === "dark" ? "primary" : "default",
50
+ size: "sm",
51
+ onClick: () => setMode("dark"),
52
+ children: "Dark"
53
+ })
54
+ ]
55
+ }),
56
+ /* @__PURE__ */ jsxs("div", {
57
+ className: "flex items-center gap-2",
58
+ children: [
59
+ /* @__PURE__ */ jsx("span", {
60
+ className: "text-sm text-muted-foreground",
61
+ children: "主题"
62
+ }),
63
+ /* @__PURE__ */ jsx(Button, {
64
+ variant: theme === "default" ? "primary" : "default",
65
+ size: "sm",
66
+ onClick: () => setTheme("default"),
67
+ children: "Default"
68
+ }),
69
+ /* @__PURE__ */ jsx(Button, {
70
+ variant: theme === "green" ? "primary" : "default",
71
+ size: "sm",
72
+ onClick: () => setTheme("green"),
73
+ children: "Green"
74
+ }),
75
+ /* @__PURE__ */ jsx(Button, {
76
+ variant: theme === "gray" ? "primary" : "default",
77
+ size: "sm",
78
+ onClick: () => setTheme("gray"),
79
+ children: "Gray"
80
+ })
81
+ ]
82
+ }),
83
+ /* @__PURE__ */ jsxs("div", {
84
+ className: "text-sm text-muted-foreground",
85
+ children: [
86
+ "当前: ",
87
+ mode,
88
+ " / ",
89
+ theme
90
+ ]
91
+ })
92
+ ]
93
+ }) });
94
+ }
95
+ //#endregion
96
+ export { ThemeSwitcher_exports, ThemeSwitcher as default, demoMeta };
@@ -0,0 +1,4 @@
1
+ //#region packages/react/ui/components/testPage/demos/core/ThemeSwitcher.tsx?raw
2
+ var ThemeSwitcher_default = "import { Button } from '@tc/ui-react/components'\nimport { useEffect, useState } from 'react'\nimport type { DemoMeta } from '../../types'\n\nexport const demoMeta = {\n title: 'Theme',\n order: 1,\n contentClassName: 'flex flex-wrap gap-3 items-start',\n} satisfies DemoMeta\n\ntype ColorTheme = 'default' | 'green' | 'gray'\n\nexport default function ThemeSwitcher() {\n const [mode, setMode] = useState<'light' | 'dark'>('dark')\n const [theme, setTheme] = useState<ColorTheme>('default')\n\n useEffect(() => {\n const root = document.documentElement\n const previousTheme = root.getAttribute('data-theme')\n const previousDark = root.classList.contains('dark')\n\n root.classList.toggle('dark', mode === 'dark')\n if (theme === 'default') {\n root.removeAttribute('data-theme')\n } else {\n root.setAttribute('data-theme', theme)\n }\n\n return () => {\n root.classList.toggle('dark', previousDark)\n if (previousTheme) {\n root.setAttribute('data-theme', previousTheme)\n } else {\n root.removeAttribute('data-theme')\n }\n }\n }, [mode, theme])\n\n return (\n <>\n <div className=\"flex w-full flex-wrap items-center gap-6 rounded-xl border border-border bg-background p-4\">\n <div className=\"flex items-center gap-2\">\n <span className=\"text-sm text-muted-foreground\">模式</span>\n <Button\n variant={mode === 'light' ? 'primary' : 'default'}\n size=\"sm\"\n onClick={() => setMode('light')}\n >\n Light\n </Button>\n <Button variant={mode === 'dark' ? 'primary' : 'default'} size=\"sm\" onClick={() => setMode('dark')}>\n Dark\n </Button>\n </div>\n\n <div className=\"flex items-center gap-2\">\n <span className=\"text-sm text-muted-foreground\">主题</span>\n <Button\n variant={theme === 'default' ? 'primary' : 'default'}\n size=\"sm\"\n onClick={() => setTheme('default')}\n >\n Default\n </Button>\n <Button\n variant={theme === 'green' ? 'primary' : 'default'}\n size=\"sm\"\n onClick={() => setTheme('green')}\n >\n Green\n </Button>\n <Button\n variant={theme === 'gray' ? 'primary' : 'default'}\n size=\"sm\"\n onClick={() => setTheme('gray')}\n >\n Gray\n </Button>\n </div>\n\n <div className=\"text-sm text-muted-foreground\">\n 当前: {mode} / {theme}\n </div>\n </div>\n </>\n )\n}\n";
3
+ //#endregion
4
+ export { ThemeSwitcher_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 TooltipDemo(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,29 @@
1
+ import { __exportAll } from "../../../../../../../_virtual/_rolldown/runtime.js";
2
+ import { Button } from "../../../Button/Button.js";
3
+ import { Tooltip } from "../../../Tooltip/Tooltip.js";
4
+ import "../../../index.js";
5
+ import { Fragment, jsx } from "react/jsx-runtime";
6
+ //#region packages/react/ui/components/testPage/demos/core/TooltipDemo.tsx
7
+ var TooltipDemo_exports = /* @__PURE__ */ __exportAll({
8
+ default: () => TooltipDemo,
9
+ demoMeta: () => demoMeta
10
+ });
11
+ var demoMeta = {
12
+ title: "Tooltip",
13
+ order: 10,
14
+ contentClassName: "flex flex-wrap gap-3 items-start"
15
+ };
16
+ function TooltipDemo() {
17
+ return /* @__PURE__ */ jsx(Fragment, { children: [
18
+ "top",
19
+ "bottom",
20
+ "left",
21
+ "right"
22
+ ].map((p) => /* @__PURE__ */ jsx(Tooltip, {
23
+ content: `placement: ${p}`,
24
+ placement: p,
25
+ children: /* @__PURE__ */ jsx(Button, { children: p })
26
+ }, p)) });
27
+ }
28
+ //#endregion
29
+ export { TooltipDemo_exports, TooltipDemo as default, demoMeta };
@@ -0,0 +1,4 @@
1
+ //#region packages/react/ui/components/testPage/demos/core/TooltipDemo.tsx?raw
2
+ var TooltipDemo_default = "import {\n Button,\n Tooltip\n} from '@tc/ui-react/components'\nimport type { DemoMeta } from '../../types'\n\nexport const demoMeta = {\n title: 'Tooltip',\n order: 10,\n contentClassName: 'flex flex-wrap gap-3 items-start',\n} satisfies DemoMeta\n\n// ─── Tooltip ─────────────────────────────────────────────────────────────────\n\nexport default function TooltipDemo() {\n return (\n <>\n {(['top', 'bottom', 'left', 'right'] as const).map((p) => (\n <Tooltip key={p} content={`placement: ${p}`} placement={p}>\n <Button>{p}</Button>\n </Tooltip>\n ))}\n </>\n )\n}\n";
3
+ //#endregion
4
+ export { TooltipDemo_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 TreeSelectDemo(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,66 @@
1
+ import { __exportAll } from "../../../../../../../_virtual/_rolldown/runtime.js";
2
+ import { TreeSelect } from "../../../TreeSelect/TreeSelect.js";
3
+ import "../../../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/core/TreeSelectDemo.tsx
7
+ var TreeSelectDemo_exports = /* @__PURE__ */ __exportAll({
8
+ default: () => TreeSelectDemo,
9
+ demoMeta: () => demoMeta
10
+ });
11
+ var demoMeta = {
12
+ title: "TreeSelect",
13
+ order: 31,
14
+ contentClassName: "flex flex-wrap gap-3 items-start"
15
+ };
16
+ function TreeSelectDemo() {
17
+ const [value, setValue] = useState(["1.1.1", "1.1.2"]);
18
+ const [indeterminate, setIndeterminate] = useState([]);
19
+ return /* @__PURE__ */ jsx(Fragment$1, { children: /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsxs("div", {
20
+ className: "text-sm mb-2",
21
+ children: [/* @__PURE__ */ jsxs("span", { children: ["选中: ", JSON.stringify(value)] }), /* @__PURE__ */ jsxs("span", {
22
+ className: "ml-4",
23
+ children: ["半选: ", JSON.stringify(indeterminate)]
24
+ })]
25
+ }), /* @__PURE__ */ jsx(TreeSelect, {
26
+ data: [{
27
+ id: "1",
28
+ name: "节点 1",
29
+ children: [{
30
+ id: "1.1",
31
+ name: "节点 1.1",
32
+ children: [{
33
+ id: "1.1.1",
34
+ name: "节点 1.1.1",
35
+ children: [{
36
+ id: "1.1.1.1",
37
+ name: "1.1.1.1"
38
+ }, {
39
+ id: "1.1.1.2",
40
+ name: "1.1.1.2"
41
+ }]
42
+ }, {
43
+ id: "1.1.2",
44
+ name: "节点 1.1.2"
45
+ }]
46
+ }, {
47
+ id: "1.2",
48
+ name: "节点 1.2",
49
+ children: [{
50
+ id: "1.2.1",
51
+ name: "1.2.1"
52
+ }, {
53
+ id: "1.2.2",
54
+ name: "1.2.2"
55
+ }]
56
+ }]
57
+ }],
58
+ value,
59
+ onChange: ({ checked, indeterminate }) => {
60
+ setValue(checked);
61
+ setIndeterminate(indeterminate);
62
+ }
63
+ })] }) });
64
+ }
65
+ //#endregion
66
+ export { TreeSelectDemo_exports, TreeSelectDemo as default, demoMeta };
@@ -0,0 +1,4 @@
1
+ //#region packages/react/ui/components/testPage/demos/core/TreeSelectDemo.tsx?raw
2
+ var TreeSelectDemo_default = "import { TreeSelect } from '@tc/ui-react/components'\nimport { useState } from 'react'\nimport type { DemoMeta } from '../../types'\n\nexport const demoMeta = {\n title: 'TreeSelect',\n order: 31,\n contentClassName: 'flex flex-wrap gap-3 items-start',\n} satisfies DemoMeta\n\n// ─── TreeSelect ───────────────────────────────────────────────────────────────\n\nexport default function TreeSelectDemo() {\n const [value, setValue] = useState<(string | number)[]>(['1.1.1', '1.1.2'])\n const [indeterminate, setIndeterminate] = useState<(string | number)[]>([])\n\n const treeData = [\n {\n id: '1',\n name: '节点 1',\n children: [\n {\n id: '1.1',\n name: '节点 1.1',\n children: [\n {\n id: '1.1.1',\n name: '节点 1.1.1',\n children: [\n { id: '1.1.1.1', name: '1.1.1.1' },\n { id: '1.1.1.2', name: '1.1.1.2' },\n ],\n },\n { id: '1.1.2', name: '节点 1.1.2' },\n ],\n },\n {\n id: '1.2',\n name: '节点 1.2',\n children: [\n { id: '1.2.1', name: '1.2.1' },\n { id: '1.2.2', name: '1.2.2' },\n ],\n },\n ],\n },\n ]\n\n return (\n <>\n <div>\n <div className=\"text-sm mb-2\">\n <span>选中: {JSON.stringify(value)}</span>\n <span className=\"ml-4\">半选: {JSON.stringify(indeterminate)}</span>\n </div>\n <TreeSelect\n data={treeData}\n value={value}\n onChange={({ checked, indeterminate }) => {\n setValue(checked)\n setIndeterminate(indeterminate)\n }}\n />\n </div>\n </>\n )\n}\n";
3
+ //#endregion
4
+ export { TreeSelectDemo_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 DateBasicDemo(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,31 @@
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/DateBasicDemo.tsx
6
+ var DateBasicDemo_exports = /* @__PURE__ */ __exportAll({
7
+ default: () => DateBasicDemo,
8
+ demoMeta: () => demoMeta
9
+ });
10
+ var demoMeta = {
11
+ title: "1. 基本用法",
12
+ order: 1,
13
+ contentClassName: "space-y-4"
14
+ };
15
+ function DateBasicDemo() {
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, { placeholder: "请选择日期" })] }), /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("p", {
22
+ className: "text-sm text-muted-foreground mb-2",
23
+ children: "禁用清除按钮"
24
+ }), /* @__PURE__ */ jsx(DatePicker, {
25
+ placeholder: "请选择日期",
26
+ allowClear: false
27
+ })] })]
28
+ }) });
29
+ }
30
+ //#endregion
31
+ export { DateBasicDemo_exports, DateBasicDemo as default, demoMeta };
@@ -0,0 +1,4 @@
1
+ //#region packages/react/ui/components/testPage/demos/date/DateBasicDemo.tsx?raw
2
+ var DateBasicDemo_default = "import { DatePicker } from '@tc/ui-react/components/Date'\nimport type { DemoMeta } from '../../types'\n\nexport const demoMeta = {\n title: '1. 基本用法',\n order: 1,\n contentClassName: 'space-y-4',\n} satisfies DemoMeta\n\nexport default function DateBasicDemo() {\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 placeholder=\"请选择日期\" />\n </div>\n <div>\n <p className=\"text-sm text-muted-foreground mb-2\">禁用清除按钮</p>\n <DatePicker placeholder=\"请选择日期\" allowClear={false} />\n </div>\n </div>\n </>\n )\n}\n";
3
+ //#endregion
4
+ export { DateBasicDemo_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 DateControlledDemo(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,67 @@
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/DateControlledDemo.tsx
7
+ var DateControlledDemo_exports = /* @__PURE__ */ __exportAll({
8
+ default: () => DateControlledDemo,
9
+ demoMeta: () => demoMeta
10
+ });
11
+ var demoMeta = {
12
+ title: "4. 受控模式",
13
+ order: 4,
14
+ contentClassName: "space-y-4"
15
+ };
16
+ function DateControlledDemo() {
17
+ const [date1, setDate1] = useState();
18
+ const [range, setRange] = useState();
19
+ return /* @__PURE__ */ jsx(Fragment$1, { children: /* @__PURE__ */ jsxs("div", {
20
+ className: "grid grid-cols-2 gap-4",
21
+ children: [/* @__PURE__ */ jsxs("div", { children: [
22
+ /* @__PURE__ */ jsx("p", {
23
+ className: "text-sm text-muted-foreground mb-2",
24
+ children: "单日期受控"
25
+ }),
26
+ /* @__PURE__ */ jsx(DatePicker, {
27
+ value: date1,
28
+ onChange: (date, dateString) => {
29
+ setDate1(date);
30
+ console.log("选中日期:", date);
31
+ console.log("日期字符串:", dateString);
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: String(date1 || "未选择")
40
+ })]
41
+ })
42
+ ] }), /* @__PURE__ */ jsxs("div", { children: [
43
+ /* @__PURE__ */ jsx("p", {
44
+ className: "text-sm text-muted-foreground mb-2",
45
+ children: "范围受控"
46
+ }),
47
+ /* @__PURE__ */ jsx(DatePicker, {
48
+ mode: "range",
49
+ value: range,
50
+ onChange: (val) => {
51
+ setRange(val);
52
+ console.log("范围变化:", val);
53
+ },
54
+ placeholder: "受控范围选择器"
55
+ }),
56
+ /* @__PURE__ */ jsxs("p", {
57
+ className: "text-sm text-muted-foreground mt-2",
58
+ children: ["值: ", /* @__PURE__ */ jsx("code", {
59
+ className: "text-xs bg-muted px-1 py-0.5 rounded",
60
+ children: JSON.stringify(range || "未选择")
61
+ })]
62
+ })
63
+ ] })]
64
+ }) });
65
+ }
66
+ //#endregion
67
+ export { DateControlledDemo_exports, DateControlledDemo as default, demoMeta };
@@ -0,0 +1,4 @@
1
+ //#region packages/react/ui/components/testPage/demos/date/DateControlledDemo.tsx?raw
2
+ var DateControlledDemo_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: '4. 受控模式',\n order: 4,\n contentClassName: 'space-y-4',\n} satisfies DemoMeta\n\nexport default function DateControlledDemo() {\n const [date1, setDate1] = useState<DateChangeStrValue>()\n const [range, setRange] = useState<DateChangeStrValue>()\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\n value={date1}\n onChange={(date, dateString) => {\n setDate1(date)\n console.log('选中日期:', date)\n console.log('日期字符串:', dateString)\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(date1 || '未选择')}</code>\n </p>\n </div>\n <div>\n <p className=\"text-sm text-muted-foreground mb-2\">范围受控</p>\n <DatePicker\n mode=\"range\"\n value={range}\n onChange={(val) => {\n setRange(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(range || '未选择')}</code>\n </p>\n </div>\n </div>\n </>\n )\n}\n";
3
+ //#endregion
4
+ export { DateControlledDemo_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 DateDisabledDateDemo(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,36 @@
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
+ import { startOfDay } from "date-fns";
6
+ //#region packages/react/ui/components/testPage/demos/date/DateDisabledDateDemo.tsx
7
+ var DateDisabledDateDemo_exports = /* @__PURE__ */ __exportAll({
8
+ default: () => DateDisabledDateDemo,
9
+ demoMeta: () => demoMeta
10
+ });
11
+ var demoMeta = {
12
+ title: "5. 禁用日期",
13
+ order: 5,
14
+ contentClassName: "space-y-4"
15
+ };
16
+ function DateDisabledDateDemo() {
17
+ return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs("div", {
18
+ className: "grid grid-cols-2 gap-4",
19
+ children: [/* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("p", {
20
+ className: "text-sm text-muted-foreground mb-2",
21
+ children: "只能选择今天及以后"
22
+ }), /* @__PURE__ */ jsx(DatePicker, {
23
+ disabledDate: (current) => current < startOfDay(/* @__PURE__ */ new Date()),
24
+ placeholder: "选择未来日期"
25
+ })] }), /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("p", {
26
+ className: "text-sm text-muted-foreground mb-2",
27
+ children: "范围选择(禁用过去)"
28
+ }), /* @__PURE__ */ jsx(DatePicker, {
29
+ mode: "range",
30
+ disabledDate: (current) => current < startOfDay(/* @__PURE__ */ new Date()),
31
+ placeholder: "选择未来范围"
32
+ })] })]
33
+ }) });
34
+ }
35
+ //#endregion
36
+ export { DateDisabledDateDemo_exports, DateDisabledDateDemo as default, demoMeta };
@@ -0,0 +1,4 @@
1
+ //#region packages/react/ui/components/testPage/demos/date/DateDisabledDateDemo.tsx?raw
2
+ var DateDisabledDateDemo_default = "import { startOfDay } from 'date-fns'\nimport { DatePicker } from '@tc/ui-react/components/Date'\nimport type { DemoMeta } from '../../types'\n\nexport const demoMeta = {\n title: '5. 禁用日期',\n order: 5,\n contentClassName: 'space-y-4',\n} satisfies DemoMeta\n\nexport default function DateDisabledDateDemo() {\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 disabledDate={(current) => current < startOfDay(new Date())} placeholder=\"选择未来日期\" />\n </div>\n <div>\n <p className=\"text-sm text-muted-foreground mb-2\">范围选择(禁用过去)</p>\n <DatePicker\n mode=\"range\"\n disabledDate={(current) => current < startOfDay(new Date())}\n placeholder=\"选择未来范围\"\n />\n </div>\n </div>\n </>\n )\n}\n";
3
+ //#endregion
4
+ export { DateDisabledDateDemo_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 DateDisabledDemo(): import("react/jsx-runtime").JSX.Element;
@@ -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/DateDisabledDemo.tsx
6
+ var DateDisabledDemo_exports = /* @__PURE__ */ __exportAll({
7
+ default: () => DateDisabledDemo,
8
+ demoMeta: () => demoMeta
9
+ });
10
+ var demoMeta = {
11
+ title: "6. 禁用状态",
12
+ order: 6,
13
+ contentClassName: "space-y-4"
14
+ };
15
+ function DateDisabledDemo() {
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
+ disabled: true,
23
+ placeholder: "禁用状态"
24
+ })] }), /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("p", {
25
+ className: "text-sm text-muted-foreground mb-2",
26
+ children: "禁用状态 + 有值"
27
+ }), /* @__PURE__ */ jsx(DatePicker, {
28
+ disabled: true,
29
+ value: "2024-01-15",
30
+ placeholder: "禁用状态"
31
+ })] })]
32
+ }) });
33
+ }
34
+ //#endregion
35
+ export { DateDisabledDemo_exports, DateDisabledDemo as default, demoMeta };
@@ -0,0 +1,4 @@
1
+ //#region packages/react/ui/components/testPage/demos/date/DateDisabledDemo.tsx?raw
2
+ var DateDisabledDemo_default = "import { DatePicker } from '@tc/ui-react/components/Date'\nimport type { DemoMeta } from '../../types'\n\nexport const demoMeta = {\n title: '6. 禁用状态',\n order: 6,\n contentClassName: 'space-y-4',\n} satisfies DemoMeta\n\nexport default function DateDisabledDemo() {\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 disabled placeholder=\"禁用状态\" />\n </div>\n <div>\n <p className=\"text-sm text-muted-foreground mb-2\">禁用状态 + 有值</p>\n <DatePicker disabled value=\"2024-01-15\" placeholder=\"禁用状态\" />\n </div>\n </div>\n </>\n )\n}\n";
3
+ //#endregion
4
+ export { DateDisabledDemo_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 DateFormatDemo(): import("react/jsx-runtime").JSX.Element;