@_tc/template-core 0.2.1-bate.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.
- package/README.md +34 -0
- package/fe/_virtual/_rolldown/runtime.js +13 -0
- package/fe/packages/react/ui/components/Date/Calendar.js +1 -5
- package/fe/packages/react/ui/components/Date/DateTestPage.js +15 -331
- package/fe/packages/react/ui/components/Date/LocaleContext.d.ts +1 -0
- package/fe/packages/react/ui/components/Date/index.js +2 -2
- package/fe/packages/react/ui/components/Date/locales.d.ts +5 -0
- package/fe/packages/react/ui/components/Date/locales.js +16 -1
- package/fe/packages/react/ui/components/testPage/DemoSection.d.ts +10 -0
- package/fe/packages/react/ui/components/testPage/DemoSection.js +73 -0
- package/fe/packages/react/ui/components/testPage/MenuTestPage.js +16 -389
- package/fe/packages/react/ui/components/testPage/demoRegistry.d.ts +4 -0
- package/fe/packages/react/ui/components/testPage/demoRegistry.js +214 -0
- package/fe/packages/react/ui/components/testPage/demos/core/BreadcrumbDemo.d.ts +6 -0
- package/fe/packages/react/ui/components/testPage/demos/core/BreadcrumbDemo.js +44 -0
- package/fe/packages/react/ui/components/testPage/demos/core/BreadcrumbDemo2.js +4 -0
- package/fe/packages/react/ui/components/testPage/demos/core/ButtonDemo.d.ts +6 -0
- package/fe/packages/react/ui/components/testPage/demos/core/ButtonDemo.js +85 -0
- package/fe/packages/react/ui/components/testPage/demos/core/ButtonDemo2.js +4 -0
- package/fe/packages/react/ui/components/testPage/demos/core/CardDemo.d.ts +6 -0
- package/fe/packages/react/ui/components/testPage/demos/core/CardDemo.js +52 -0
- package/fe/packages/react/ui/components/testPage/demos/core/CardDemo2.js +4 -0
- package/fe/packages/react/ui/components/testPage/demos/core/CheckboxDemo.d.ts +6 -0
- package/fe/packages/react/ui/components/testPage/demos/core/CheckboxDemo.js +41 -0
- package/fe/packages/react/ui/components/testPage/demos/core/CheckboxDemo2.js +4 -0
- package/fe/packages/react/ui/components/testPage/demos/core/ConfirmDialogDemo.d.ts +6 -0
- package/fe/packages/react/ui/components/testPage/demos/core/ConfirmDialogDemo.js +35 -0
- package/fe/packages/react/ui/components/testPage/demos/core/ConfirmDialogDemo2.js +4 -0
- package/fe/packages/react/ui/components/testPage/demos/core/DataTableDemo.d.ts +6 -0
- package/fe/packages/react/ui/components/testPage/demos/core/DataTableDemo.js +243 -0
- package/fe/packages/react/ui/components/testPage/demos/core/DataTableDemo2.js +4 -0
- package/fe/packages/react/ui/components/testPage/demos/core/DrawerDemo.d.ts +6 -0
- package/fe/packages/react/ui/components/testPage/demos/core/DrawerDemo.js +105 -0
- package/fe/packages/react/ui/components/testPage/demos/core/DrawerDemo2.js +4 -0
- package/fe/packages/react/ui/components/testPage/demos/core/DropdownDemo.d.ts +6 -0
- package/fe/packages/react/ui/components/testPage/demos/core/DropdownDemo.js +48 -0
- package/fe/packages/react/ui/components/testPage/demos/core/DropdownDemo2.js +4 -0
- package/fe/packages/react/ui/components/testPage/demos/core/FormDemo.d.ts +6 -0
- package/fe/packages/react/ui/components/testPage/demos/core/FormDemo.js +56 -0
- package/fe/packages/react/ui/components/testPage/demos/core/FormDemo2.js +4 -0
- package/fe/packages/react/ui/components/testPage/demos/core/ImageUploadDemo.d.ts +6 -0
- package/fe/packages/react/ui/components/testPage/demos/core/ImageUploadDemo.js +26 -0
- package/fe/packages/react/ui/components/testPage/demos/core/ImageUploadDemo2.js +4 -0
- package/fe/packages/react/ui/components/testPage/demos/core/InputDemo.d.ts +6 -0
- package/fe/packages/react/ui/components/testPage/demos/core/InputDemo.js +55 -0
- package/fe/packages/react/ui/components/testPage/demos/core/InputDemo2.js +4 -0
- package/fe/packages/react/ui/components/testPage/demos/core/InputNumberDemo.d.ts +6 -0
- package/fe/packages/react/ui/components/testPage/demos/core/InputNumberDemo.js +65 -0
- package/fe/packages/react/ui/components/testPage/demos/core/InputNumberDemo2.js +4 -0
- package/fe/packages/react/ui/components/testPage/demos/core/LabelDemo.d.ts +6 -0
- package/fe/packages/react/ui/components/testPage/demos/core/LabelDemo.js +33 -0
- package/fe/packages/react/ui/components/testPage/demos/core/LabelDemo2.js +4 -0
- package/fe/packages/react/ui/components/testPage/demos/core/LayoutDemo.d.ts +6 -0
- package/fe/packages/react/ui/components/testPage/demos/core/LayoutDemo.js +64 -0
- package/fe/packages/react/ui/components/testPage/demos/core/LayoutDemo2.js +4 -0
- package/fe/packages/react/ui/components/testPage/demos/core/LoadingDemo.d.ts +6 -0
- package/fe/packages/react/ui/components/testPage/demos/core/LoadingDemo.js +32 -0
- package/fe/packages/react/ui/components/testPage/demos/core/LoadingDemo2.js +4 -0
- package/fe/packages/react/ui/components/testPage/demos/core/MessageDemo.d.ts +6 -0
- package/fe/packages/react/ui/components/testPage/demos/core/MessageDemo.js +44 -0
- package/fe/packages/react/ui/components/testPage/demos/core/MessageDemo2.js +4 -0
- package/fe/packages/react/ui/components/testPage/demos/core/ModalDemo.d.ts +6 -0
- package/fe/packages/react/ui/components/testPage/demos/core/ModalDemo.js +61 -0
- package/fe/packages/react/ui/components/testPage/demos/core/ModalDemo2.js +4 -0
- package/fe/packages/react/ui/components/testPage/demos/core/NotificationDemo.d.ts +6 -0
- package/fe/packages/react/ui/components/testPage/demos/core/NotificationDemo.js +50 -0
- package/fe/packages/react/ui/components/testPage/demos/core/NotificationDemo2.js +4 -0
- package/fe/packages/react/ui/components/testPage/demos/core/PaginationDemo.d.ts +6 -0
- package/fe/packages/react/ui/components/testPage/demos/core/PaginationDemo.js +39 -0
- package/fe/packages/react/ui/components/testPage/demos/core/PaginationDemo2.js +4 -0
- package/fe/packages/react/ui/components/testPage/demos/core/PreviewImageDemo.d.ts +6 -0
- package/fe/packages/react/ui/components/testPage/demos/core/PreviewImageDemo.js +22 -0
- package/fe/packages/react/ui/components/testPage/demos/core/PreviewImageDemo2.js +4 -0
- package/fe/packages/react/ui/components/testPage/demos/core/RadioDemo.d.ts +6 -0
- package/fe/packages/react/ui/components/testPage/demos/core/RadioDemo.js +129 -0
- package/fe/packages/react/ui/components/testPage/demos/core/RadioDemo2.js +4 -0
- package/fe/packages/react/ui/components/testPage/demos/core/SchemaFormDemo.d.ts +6 -0
- package/fe/packages/react/ui/components/testPage/demos/core/SchemaFormDemo.js +52 -0
- package/fe/packages/react/ui/components/testPage/demos/core/SchemaFormDemo2.js +4 -0
- package/fe/packages/react/ui/components/testPage/demos/core/SearchDemo.d.ts +6 -0
- package/fe/packages/react/ui/components/testPage/demos/core/SearchDemo.js +52 -0
- package/fe/packages/react/ui/components/testPage/demos/core/SearchDemo2.js +4 -0
- package/fe/packages/react/ui/components/testPage/demos/core/SelectDemo.d.ts +6 -0
- package/fe/packages/react/ui/components/testPage/demos/core/SelectDemo.js +73 -0
- package/fe/packages/react/ui/components/testPage/demos/core/SelectDemo2.js +4 -0
- package/fe/packages/react/ui/components/testPage/demos/core/SkeletonDemo.d.ts +6 -0
- package/fe/packages/react/ui/components/testPage/demos/core/SkeletonDemo.js +46 -0
- package/fe/packages/react/ui/components/testPage/demos/core/SkeletonDemo2.js +4 -0
- package/fe/packages/react/ui/components/testPage/demos/core/SwitchDemo.d.ts +6 -0
- package/fe/packages/react/ui/components/testPage/demos/core/SwitchDemo.js +36 -0
- package/fe/packages/react/ui/components/testPage/demos/core/SwitchDemo2.js +4 -0
- package/fe/packages/react/ui/components/testPage/demos/core/TableDemo.d.ts +6 -0
- package/fe/packages/react/ui/components/testPage/demos/core/TableDemo.js +64 -0
- package/fe/packages/react/ui/components/testPage/demos/core/TableDemo2.js +4 -0
- package/fe/packages/react/ui/components/testPage/demos/core/TableSearchDemo.d.ts +6 -0
- package/fe/packages/react/ui/components/testPage/demos/core/TableSearchDemo.js +74 -0
- package/fe/packages/react/ui/components/testPage/demos/core/TableSearchDemo2.js +4 -0
- package/fe/packages/react/ui/components/testPage/demos/core/TabsDemo.d.ts +6 -0
- package/fe/packages/react/ui/components/testPage/demos/core/TabsDemo.js +56 -0
- package/fe/packages/react/ui/components/testPage/demos/core/TabsDemo2.js +4 -0
- package/fe/packages/react/ui/components/testPage/demos/core/TextareaDemo.d.ts +6 -0
- package/fe/packages/react/ui/components/testPage/demos/core/TextareaDemo.js +30 -0
- package/fe/packages/react/ui/components/testPage/demos/core/TextareaDemo2.js +4 -0
- package/fe/packages/react/ui/components/testPage/demos/core/ThemeSwitcher.d.ts +6 -0
- package/fe/packages/react/ui/components/testPage/demos/core/ThemeSwitcher.js +96 -0
- package/fe/packages/react/ui/components/testPage/demos/core/ThemeSwitcher2.js +4 -0
- package/fe/packages/react/ui/components/testPage/demos/core/TooltipDemo.d.ts +6 -0
- package/fe/packages/react/ui/components/testPage/demos/core/TooltipDemo.js +29 -0
- package/fe/packages/react/ui/components/testPage/demos/core/TooltipDemo2.js +4 -0
- package/fe/packages/react/ui/components/testPage/demos/core/TreeSelectDemo.d.ts +6 -0
- package/fe/packages/react/ui/components/testPage/demos/core/TreeSelectDemo.js +66 -0
- package/fe/packages/react/ui/components/testPage/demos/core/TreeSelectDemo2.js +4 -0
- package/fe/packages/react/ui/components/testPage/demos/date/DateBasicDemo.d.ts +6 -0
- package/fe/packages/react/ui/components/testPage/demos/date/DateBasicDemo.js +31 -0
- package/fe/packages/react/ui/components/testPage/demos/date/DateBasicDemo2.js +4 -0
- package/fe/packages/react/ui/components/testPage/demos/date/DateControlledDemo.d.ts +6 -0
- package/fe/packages/react/ui/components/testPage/demos/date/DateControlledDemo.js +67 -0
- package/fe/packages/react/ui/components/testPage/demos/date/DateControlledDemo2.js +4 -0
- package/fe/packages/react/ui/components/testPage/demos/date/DateDisabledDateDemo.d.ts +6 -0
- package/fe/packages/react/ui/components/testPage/demos/date/DateDisabledDateDemo.js +36 -0
- package/fe/packages/react/ui/components/testPage/demos/date/DateDisabledDateDemo2.js +4 -0
- package/fe/packages/react/ui/components/testPage/demos/date/DateDisabledDemo.d.ts +6 -0
- package/fe/packages/react/ui/components/testPage/demos/date/DateDisabledDemo.js +35 -0
- package/fe/packages/react/ui/components/testPage/demos/date/DateDisabledDemo2.js +4 -0
- package/fe/packages/react/ui/components/testPage/demos/date/DateFormatDemo.d.ts +6 -0
- package/fe/packages/react/ui/components/testPage/demos/date/DateFormatDemo.js +35 -0
- package/fe/packages/react/ui/components/testPage/demos/date/DateFormatDemo2.js +4 -0
- package/fe/packages/react/ui/components/testPage/demos/date/DateRangeDemo.d.ts +6 -0
- package/fe/packages/react/ui/components/testPage/demos/date/DateRangeDemo.js +76 -0
- package/fe/packages/react/ui/components/testPage/demos/date/DateRangeDemo2.js +4 -0
- package/fe/packages/react/ui/components/testPage/demos/date/DateTimeDemo.d.ts +7 -0
- package/fe/packages/react/ui/components/testPage/demos/date/DateTimeDemo.js +60 -0
- package/fe/packages/react/ui/components/testPage/demos/date/DateTimeDemo2.js +4 -0
- package/fe/packages/react/ui/components/testPage/demos/menu/MenuAccordionDemo.d.ts +7 -0
- package/fe/packages/react/ui/components/testPage/demos/menu/MenuAccordionDemo.js +78 -0
- package/fe/packages/react/ui/components/testPage/demos/menu/MenuAccordionDemo2.js +4 -0
- package/fe/packages/react/ui/components/testPage/demos/menu/MenuClickTriggerDemo.d.ts +7 -0
- package/fe/packages/react/ui/components/testPage/demos/menu/MenuClickTriggerDemo.js +79 -0
- package/fe/packages/react/ui/components/testPage/demos/menu/MenuClickTriggerDemo2.js +4 -0
- package/fe/packages/react/ui/components/testPage/demos/menu/MenuCollapsedDemo.d.ts +7 -0
- package/fe/packages/react/ui/components/testPage/demos/menu/MenuCollapsedDemo.js +82 -0
- package/fe/packages/react/ui/components/testPage/demos/menu/MenuCollapsedDemo2.js +4 -0
- package/fe/packages/react/ui/components/testPage/demos/menu/MenuCollapsedNoIconDemo.d.ts +7 -0
- package/fe/packages/react/ui/components/testPage/demos/menu/MenuCollapsedNoIconDemo.js +44 -0
- package/fe/packages/react/ui/components/testPage/demos/menu/MenuCollapsedNoIconDemo2.js +4 -0
- package/fe/packages/react/ui/components/testPage/demos/menu/MenuJsxDemo.d.ts +7 -0
- package/fe/packages/react/ui/components/testPage/demos/menu/MenuJsxDemo.js +64 -0
- package/fe/packages/react/ui/components/testPage/demos/menu/MenuJsxDemo2.js +4 -0
- package/fe/packages/react/ui/components/testPage/demos/menu/MenuLeftMultipleDemo.d.ts +7 -0
- package/fe/packages/react/ui/components/testPage/demos/menu/MenuLeftMultipleDemo.js +81 -0
- package/fe/packages/react/ui/components/testPage/demos/menu/MenuLeftMultipleDemo2.js +4 -0
- package/fe/packages/react/ui/components/testPage/demos/menu/MenuPopupDemo.d.ts +7 -0
- package/fe/packages/react/ui/components/testPage/demos/menu/MenuPopupDemo.js +56 -0
- package/fe/packages/react/ui/components/testPage/demos/menu/MenuPopupDemo2.js +4 -0
- package/fe/packages/react/ui/components/testPage/demos/menu/MenuStateDemo.d.ts +7 -0
- package/fe/packages/react/ui/components/testPage/demos/menu/MenuStateDemo.js +67 -0
- package/fe/packages/react/ui/components/testPage/demos/menu/MenuStateDemo2.js +4 -0
- package/fe/packages/react/ui/components/testPage/demos/menu/MenuTopDemo.d.ts +7 -0
- package/fe/packages/react/ui/components/testPage/demos/menu/MenuTopDemo.js +55 -0
- package/fe/packages/react/ui/components/testPage/demos/menu/MenuTopDemo2.js +4 -0
- package/fe/packages/react/ui/components/testPage/index.js +30 -1623
- package/fe/packages/react/ui/components/testPage/types.d.ts +17 -0
- package/fe/packages/react/ui/components/testPage/types.js +0 -0
- package/fe/packages/react/ui/i18n/I18nProvider.js +2 -1
- package/model/packages/react/ui/components/Date/LocaleContext.d.ts +1 -0
- package/model/packages/react/ui/components/Date/locales.d.ts +5 -0
- package/package.json +1 -1
|
@@ -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,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,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,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,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,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,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,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,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,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 };
|