@zscloud/design 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (118) hide show
  1. package/LICENSE +21 -0
  2. package/dist/_icon/app-icon.d.ts +8 -0
  3. package/dist/_icon/app-icons-mapping.d.ts +230 -0
  4. package/dist/_icon/icon.d.ts +12 -0
  5. package/dist/_icon/icons-mapping.d.ts +3866 -0
  6. package/dist/_icon/index.d.ts +3 -0
  7. package/dist/_icon/type.d.ts +14 -0
  8. package/dist/_utils.d.ts +17 -0
  9. package/dist/components/biz/app-base/index.d.ts +18 -0
  10. package/dist/components/biz/config/index.d.ts +15 -0
  11. package/dist/components/biz/constant/index.d.ts +8 -0
  12. package/dist/components/biz/copy/index.d.ts +6 -0
  13. package/dist/components/biz/date-value.d.ts +5 -0
  14. package/dist/components/biz/dropdown-action/index.d.ts +16 -0
  15. package/dist/components/biz/field/field-group.d.ts +5 -0
  16. package/dist/components/biz/field/field-operations.d.ts +9 -0
  17. package/dist/components/biz/field/index.d.ts +33 -0
  18. package/dist/components/biz/file-upload/index.d.ts +1 -0
  19. package/dist/components/biz/file-upload/types.d.ts +6 -0
  20. package/dist/components/biz/file-upload/utils/calc-file-hash.d.ts +36 -0
  21. package/dist/components/biz/file-upload/utils/request.d.ts +24 -0
  22. package/dist/components/biz/file-upload/worker/hash.worker.d.ts +0 -0
  23. package/dist/components/biz/file-upload/worker/simple-hash.work.d.ts +0 -0
  24. package/dist/components/biz/header/header-breadcrumb.d.ts +12 -0
  25. package/dist/components/biz/header/header-detail.d.ts +11 -0
  26. package/dist/components/biz/header/header-page.d.ts +8 -0
  27. package/dist/components/biz/header/index.d.ts +3 -0
  28. package/dist/components/biz/helper-doc/index.d.ts +8 -0
  29. package/dist/components/biz/hooks/use-admin-uuid.d.ts +1 -0
  30. package/dist/components/biz/info/index.d.ts +55 -0
  31. package/dist/components/biz/info-popover/index.d.ts +46 -0
  32. package/dist/components/biz/locale-container/index.d.ts +3 -0
  33. package/dist/components/biz/locale-container/type.d.ts +8 -0
  34. package/dist/components/biz/no-data/index.d.ts +12 -0
  35. package/dist/components/biz/panic-fallback/index.d.ts +1 -0
  36. package/dist/components/biz/smart-tip/index.d.ts +90 -0
  37. package/dist/components/biz/state/index.d.ts +25 -0
  38. package/dist/components/primitive/alert-dialog.d.ts +31 -0
  39. package/dist/components/primitive/alert.d.ts +16 -0
  40. package/dist/components/primitive/auto-complete.d.ts +20 -0
  41. package/dist/components/primitive/badge.d.ts +80 -0
  42. package/dist/components/primitive/breadcrumb.d.ts +26 -0
  43. package/dist/components/primitive/button.d.ts +15 -0
  44. package/dist/components/primitive/calendar.d.ts +8 -0
  45. package/dist/components/primitive/card.d.ts +27 -0
  46. package/dist/components/primitive/cascader.d.ts +117 -0
  47. package/dist/components/primitive/chart.d.ts +62 -0
  48. package/dist/components/primitive/checkbox-group.d.ts +14 -0
  49. package/dist/components/primitive/checkbox.d.ts +7 -0
  50. package/dist/components/primitive/code-editor/index.d.ts +67 -0
  51. package/dist/components/primitive/collapse.d.ts +17 -0
  52. package/dist/components/primitive/context-menu.d.ts +48 -0
  53. package/dist/components/primitive/date-picker.d.ts +44 -0
  54. package/dist/components/primitive/dialog.d.ts +66 -0
  55. package/dist/components/primitive/divider.d.ts +14 -0
  56. package/dist/components/primitive/drawer.d.ts +47 -0
  57. package/dist/components/primitive/dropdown-menu.d.ts +55 -0
  58. package/dist/components/primitive/file-upload/file-upload-single.d.ts +11 -0
  59. package/dist/components/primitive/file-upload/index.d.ts +1 -0
  60. package/dist/components/primitive/form.d.ts +32 -0
  61. package/dist/components/primitive/image-reader/index.d.ts +7 -0
  62. package/dist/components/primitive/input-number.d.ts +17 -0
  63. package/dist/components/primitive/input-password.d.ts +19 -0
  64. package/dist/components/primitive/input.d.ts +5 -0
  65. package/dist/components/primitive/json-viewer.d.ts +22 -0
  66. package/dist/components/primitive/label.d.ts +5 -0
  67. package/dist/components/primitive/link.d.ts +11 -0
  68. package/dist/components/primitive/loader.d.ts +3 -0
  69. package/dist/components/primitive/markdown/index.d.ts +30 -0
  70. package/dist/components/primitive/multi-select.d.ts +76 -0
  71. package/dist/components/primitive/pagination/index.d.ts +8 -0
  72. package/dist/components/primitive/pagination/pagination.d.ts +31 -0
  73. package/dist/components/primitive/popover-confirm.d.ts +32 -0
  74. package/dist/components/primitive/popover.d.ts +12 -0
  75. package/dist/components/primitive/progress.d.ts +32 -0
  76. package/dist/components/primitive/radio-group.d.ts +49 -0
  77. package/dist/components/primitive/range-picker.d.ts +18 -0
  78. package/dist/components/primitive/resizable.d.ts +25 -0
  79. package/dist/components/primitive/search-input.d.ts +8 -0
  80. package/dist/components/primitive/select.d.ts +74 -0
  81. package/dist/components/primitive/selection-cancellation.d.ts +9 -0
  82. package/dist/components/primitive/show.d.ts +8 -0
  83. package/dist/components/primitive/slider.d.ts +4 -0
  84. package/dist/components/primitive/spin.d.ts +52 -0
  85. package/dist/components/primitive/status-badge.d.ts +19 -0
  86. package/dist/components/primitive/steps.d.ts +75 -0
  87. package/dist/components/primitive/switch.d.ts +4 -0
  88. package/dist/components/primitive/tabs/hooks/use-persist-tab-store.d.ts +4 -0
  89. package/dist/components/primitive/tabs/interface/tab-memo.d.ts +5 -0
  90. package/dist/components/primitive/tabs/store/page-state-store.d.ts +17 -0
  91. package/dist/components/primitive/tabs/tabs.d.ts +40 -0
  92. package/dist/components/primitive/tabs/use-persist.d.ts +4 -0
  93. package/dist/components/primitive/tabs/use-store.d.ts +25 -0
  94. package/dist/components/primitive/tag-list.d.ts +22 -0
  95. package/dist/components/primitive/tag.d.ts +17 -0
  96. package/dist/components/primitive/text.d.ts +27 -0
  97. package/dist/components/primitive/textarea.d.ts +8 -0
  98. package/dist/components/primitive/time-picker.d.ts +41 -0
  99. package/dist/components/primitive/toast/toast.d.ts +17 -0
  100. package/dist/components/primitive/toast/toaster.d.ts +1 -0
  101. package/dist/components/primitive/toast/use-toast.d.ts +45 -0
  102. package/dist/components/primitive/tooltip/index.d.ts +38 -0
  103. package/dist/components/primitive/tooltip/use-placement.d.ts +4 -0
  104. package/dist/components/primitive/tree/index.d.ts +5 -0
  105. package/dist/components/primitive/tree/tree-node.d.ts +17 -0
  106. package/dist/components/primitive/tree/tree-select.d.ts +21 -0
  107. package/dist/components/primitive/tree/tree.d.ts +24 -0
  108. package/dist/components/primitive/tree/types.d.ts +123 -0
  109. package/dist/i18n/locales/en-US.json.d.ts +76 -0
  110. package/dist/i18n/locales/zh-CN.json.d.ts +76 -0
  111. package/dist/index.d.ts +113 -0
  112. package/dist/style.css +2 -0
  113. package/dist/utils/overlay-context.d.ts +34 -0
  114. package/dist/utils/use-container.d.ts +30 -0
  115. package/dist/utils/use-id.d.ts +1 -0
  116. package/dist/utils/use-overlay.d.ts +34 -0
  117. package/dist/zscloud-design.es.js +33683 -0
  118. package/package.json +116 -0
@@ -0,0 +1,24 @@
1
+ import { TreeApi } from 'react-arborist';
2
+ import { TreeProps, TreeNode } from './types';
3
+ /**
4
+ * Tree 组件
5
+ *
6
+ * 基于 react-arborist 封装的高性能树组件,支持:
7
+ * - 虚拟滚动(可处理上万节点)
8
+ * - 拖拽排序
9
+ * - 搜索过滤
10
+ * - 键盘导航
11
+ * - 完全自定义节点渲染
12
+ *
13
+ * @example
14
+ * ```tsx
15
+ * <Tree
16
+ * data={treeData}
17
+ * height={400}
18
+ * onSelect={(nodes) => console.log('selected:', nodes)}
19
+ * />
20
+ * ```
21
+ */
22
+ export declare function Tree<T = unknown>({ data, height, width, indent, rowHeight, overscanCount, selection, onSelect, disableMultiSelection, disableDrag, disableDrop, onMove, canDrop, searchTerm, searchMatch, openByDefault, initialOpenState, children, className, }: TreeProps<T>): import("react/jsx-runtime").JSX.Element;
23
+ export type TreeRef<T = unknown> = TreeApi<TreeNode<T>>;
24
+ export default Tree;
@@ -0,0 +1,123 @@
1
+ import { NodeApi, NodeRendererProps } from 'react-arborist';
2
+ /**
3
+ * 树节点数据结构
4
+ * @template T 节点附加数据类型
5
+ */
6
+ export interface TreeNode<T = unknown> {
7
+ /** 节点唯一标识 */
8
+ id: string;
9
+ /** 节点名称(用于搜索匹配) */
10
+ name: string;
11
+ /** 子节点 */
12
+ children?: TreeNode<T>[];
13
+ /** 节点是否禁用 */
14
+ disabled?: boolean;
15
+ /** 节点附加数据 */
16
+ data?: T;
17
+ }
18
+ /**
19
+ * 拖拽移动事件参数
20
+ */
21
+ export interface TreeMoveEvent {
22
+ /** 被拖拽的节点ID数组 */
23
+ dragIds: string[];
24
+ /** 目标父节点ID,null表示根级别 */
25
+ parentId: string | null;
26
+ /** 目标索引位置 */
27
+ index: number;
28
+ }
29
+ /**
30
+ * Tree 组件属性
31
+ * @template T 节点附加数据类型
32
+ */
33
+ export interface TreeProps<T = unknown> {
34
+ /** 树数据 */
35
+ data: TreeNode<T>[];
36
+ /** 树高度(用于虚拟滚动) */
37
+ height?: number;
38
+ /** 树宽度 */
39
+ width?: string | number;
40
+ /** 缩进宽度(默认24px) */
41
+ indent?: number;
42
+ /** 行高(默认32px) */
43
+ rowHeight?: number;
44
+ /** 超出渲染数量(虚拟滚动优化) */
45
+ overscanCount?: number;
46
+ /** 当前选中的节点ID(单选时为string,多选时为string[]) */
47
+ selection?: string | string[];
48
+ /** 选择变化回调 */
49
+ onSelect?: (nodes: NodeApi<TreeNode<T>>[]) => void;
50
+ /** 是否禁用选择 */
51
+ disableMultiSelection?: boolean;
52
+ /** 是否禁用拖拽 */
53
+ disableDrag?: boolean;
54
+ /** 是否禁用放置 */
55
+ disableDrop?: boolean;
56
+ /** 拖拽移动回调 */
57
+ onMove?: (event: TreeMoveEvent) => void;
58
+ /** 自定义禁用放置判断 */
59
+ canDrop?: (args: {
60
+ parentNode: NodeApi<TreeNode<T>> | null;
61
+ dragNodes: NodeApi<TreeNode<T>>[];
62
+ index: number;
63
+ }) => boolean;
64
+ /** 搜索关键词 */
65
+ searchTerm?: string;
66
+ /** 自定义搜索匹配函数 */
67
+ searchMatch?: (node: NodeApi<TreeNode<T>>, term: string) => boolean;
68
+ /** 默认是否全部展开 */
69
+ openByDefault?: boolean;
70
+ /** 初始展开状态 */
71
+ initialOpenState?: Record<string, boolean>;
72
+ /** 自定义节点渲染 */
73
+ children?: (props: NodeRendererProps<TreeNode<T>>) => React.ReactNode;
74
+ /** 自定义类名 */
75
+ className?: string;
76
+ }
77
+ /**
78
+ * TreeSelect 组件属性
79
+ * @template T 节点附加数据类型
80
+ */
81
+ export interface TreeSelectProps<T = unknown> {
82
+ /** 当前选中的节点ID */
83
+ value?: string;
84
+ /** 选择变化回调 */
85
+ onChange?: (value: string, node: TreeNode<T> | undefined) => void;
86
+ /** 树数据 */
87
+ data: TreeNode<T>[];
88
+ /** 占位符文本 */
89
+ placeholder?: string;
90
+ /** 是否禁用 */
91
+ disabled?: boolean;
92
+ /** 选择框宽度 */
93
+ width?: number | string;
94
+ /** 下拉面板宽度 */
95
+ dropdownWidth?: number | string;
96
+ /** 树高度 */
97
+ treeHeight?: number;
98
+ /** 是否显示搜索框 */
99
+ showSearch?: boolean;
100
+ /** 搜索框占位符 */
101
+ searchPlaceholder?: string;
102
+ /** 自定义类名 */
103
+ className?: string;
104
+ /** 空数据时的提示文本 */
105
+ emptyText?: string;
106
+ /** 是否允许清除 */
107
+ allowClear?: boolean;
108
+ /** 清除回调 */
109
+ onClear?: () => void;
110
+ /** 缩进宽度 */
111
+ indent?: number;
112
+ /** 行高 */
113
+ rowHeight?: number;
114
+ /** 是否默认展开所有节点 */
115
+ openByDefault?: boolean;
116
+ /** 自定义渲染选中值 */
117
+ renderValue?: (node: TreeNode<T> | undefined) => React.ReactNode;
118
+ /** 自定义节点渲染 */
119
+ renderNode?: (props: NodeRendererProps<TreeNode<T>>) => React.ReactNode;
120
+ /** Popover 的 portal 容器 */
121
+ portalContainer?: HTMLElement | null;
122
+ }
123
+ export type { NodeApi, NodeRendererProps };
@@ -0,0 +1,76 @@
1
+ declare const _default: {
2
+ "backup.prevPage": "Go Back",
3
+ "batchAction": "Bulk Action",
4
+ "cancel": "Cancel",
5
+ "cancel.selection": "Unselect",
6
+ "colon": ":",
7
+ "comma": ",",
8
+ "confirm": "OK",
9
+ "confirm.cancel": "Cancel",
10
+ "confirm.delete.new": "Confirm to Delete",
11
+ "confirm.ok": "OK",
12
+ "copy": "Copy",
13
+ "copy.successfully": "Copy Succeeded",
14
+ "customColumnItem": "Custom Column Item",
15
+ "dataTable.available": "Available: {available}",
16
+ "datatable.pagination": "{order}-{orderAll} Item. Total {count} Items.",
17
+ "datatable.pagination.empty": "Total 0 Items",
18
+ "datatable.search.no.results": "No results found.",
19
+ "date.end": "End Date",
20
+ "date.start": "Start Date",
21
+ "description": "Description",
22
+ "dialog.deletion.have.confirm.above.info.full": "I acknowledge the risks. Enter {confirmWord} to continue the action.",
23
+ "dialog.deletion.have.confirm.above.info.password": "Login Password",
24
+ "dialog.deletion.have.confirm.above.info.password.full": "I acknowledge the risks. Enter the {loginPassword} of the current user ({username}) to continue the action.",
25
+ "error.boundary.back": "Back",
26
+ "error.boundary.detail": "An unknown exception has occurred, please try to refresh the page or contact our customer service for assistance.",
27
+ "error.boundary.reload": "Reload",
28
+ "error.boundary.title": "Something went wrong.",
29
+ "export.action.all": "Export All",
30
+ "export.action.currentPage": "Export Current Page",
31
+ "export.all": "All",
32
+ "export.currentPage": "Current Page",
33
+ "filter": "Filter",
34
+ "fuzzy.search": "Automatic",
35
+ "has.selectedCount": "Selected Items: {selectedCount}",
36
+ "have.selected": "Selected",
37
+ "have.selected.item": " Item",
38
+ "i.have.acknowledged.above.risk": "I acknowledge",
39
+ "imageReader.adapt": "Fit to window",
40
+ "imageReader.zoomIn": "Zoom in",
41
+ "imageReader.zoomOut": "Zoom out",
42
+ "more.action": "Actions",
43
+ "multiSelect.clear": "Clear",
44
+ "multiSelect.selectAll": "Select All",
45
+ "multiSelect.selected": "Selected ({count})",
46
+ "name": "Name",
47
+ "no.data": "No data available.",
48
+ "no.resource.detail": "The resource does not exist or has been deleted. Refresh the page or contact the administrator.",
49
+ "no.resource.title": "Resource Not Found",
50
+ "noAccess": "Unauthorized Field",
51
+ "none": "None",
52
+ "ok": "OK",
53
+ "owner": "Owner",
54
+ "pagination.item.page": "Item/Page",
55
+ "pagination.jump.to": "Jump to",
56
+ "pagination.page": "Page",
57
+ "please.check.to.confirm.delete": "Acknowledge the risk.",
58
+ "please.enter.delete.confirm.delete": "Please enter \"delete\" to continue the action.",
59
+ "please.enter.right.password": "Enter the correct password to continue the action.",
60
+ "reset": "Reset",
61
+ "saveCustomColumnItem": "Save Custom Column Items",
62
+ "select.empty": "No data.",
63
+ "status": "State",
64
+ "table.custom.column.all": "All Columns ({count}/{all})",
65
+ "table.custom.column.selected": "Selected ({count})",
66
+ "table.export.cancelSelection": "Unselect",
67
+ "table.export.item": "Exported Items",
68
+ "table.export.selectAll": "Select All",
69
+ "temporarilyNoDescription": "No description",
70
+ "understandMore": "Learn more.",
71
+ "unknown.user": "Unknown User",
72
+ "uuid": "UUID"
73
+ }
74
+ ;
75
+
76
+ export default _default;
@@ -0,0 +1,76 @@
1
+ declare const _default: {
2
+ "backup.prevPage": "返回上一页",
3
+ "batchAction": "批量操作",
4
+ "cancel": "取消",
5
+ "cancel.selection": "取消选择",
6
+ "colon": ":",
7
+ "comma": ",",
8
+ "confirm": "确定",
9
+ "confirm.cancel": "取消",
10
+ "confirm.delete.new": "确定删除",
11
+ "confirm.ok": "确定",
12
+ "copy": "复制",
13
+ "copy.successfully": "复制成功",
14
+ "customColumnItem": "自定义列表项",
15
+ "dataTable.available": "可用:{available}",
16
+ "datatable.pagination": "第 {order}-{orderAll} 项,共 {count} 项",
17
+ "datatable.pagination.empty": "共 0 项",
18
+ "datatable.search.no.results": "未找到相关内容",
19
+ "date.end": "结束日期",
20
+ "date.start": "开始日期",
21
+ "description": "简介",
22
+ "dialog.deletion.have.confirm.above.info.full": "我已知晓以上风险。输入{confirmWord}确认删除。",
23
+ "dialog.deletion.have.confirm.above.info.password": "登录密码",
24
+ "dialog.deletion.have.confirm.above.info.password.full": "我已知晓以上风险。请输入当前账号({username})的{loginPassword}确认删除。",
25
+ "error.boundary.back": "返回上一页",
26
+ "error.boundary.detail": "发生了一个未知异常,请尝试刷新页面,或者联系我们的客服人员以获取帮助",
27
+ "error.boundary.reload": "重新加载",
28
+ "error.boundary.title": "出错了",
29
+ "export.action.all": "导出全部",
30
+ "export.action.currentPage": "导出当前页",
31
+ "export.all": "全部",
32
+ "export.currentPage": "当前页",
33
+ "filter": "筛选",
34
+ "fuzzy.search": "自动识别",
35
+ "has.selectedCount": "已选择 {selectedCount} 项",
36
+ "have.selected": "已选择",
37
+ "have.selected.item": "项",
38
+ "i.have.acknowledged.above.risk": "我已知晓上述风险",
39
+ "imageReader.adapt": "适应窗口",
40
+ "imageReader.zoomIn": "放大",
41
+ "imageReader.zoomOut": "缩小",
42
+ "more.action": "更多操作",
43
+ "multiSelect.clear": "清空",
44
+ "multiSelect.selectAll": "全选",
45
+ "multiSelect.selected": "已选({count})",
46
+ "name": "名称",
47
+ "no.data": "暂无数据",
48
+ "no.resource.detail": "访问的资源不存在或已删除。请刷新页面,或联系管理员。",
49
+ "no.resource.title": "资源不存在或已删除",
50
+ "noAccess": "无权限字段",
51
+ "none": "无",
52
+ "ok": "确定",
53
+ "owner": "所有者",
54
+ "pagination.item.page": "项/页",
55
+ "pagination.jump.to": "跳至",
56
+ "pagination.page": "页",
57
+ "please.check.to.confirm.delete": "请先勾选风险提示",
58
+ "please.enter.delete.confirm.delete": "请输入delete确认删除",
59
+ "please.enter.right.password": "请输入正确的登录密码确认删除",
60
+ "reset": "重置",
61
+ "saveCustomColumnItem": "保存自定义列表项",
62
+ "select.empty": "暂无数据",
63
+ "status": "状态",
64
+ "table.custom.column.all": "全部列({count}/{all})",
65
+ "table.custom.column.selected": "已选({count})",
66
+ "table.export.cancelSelection": "取消选择",
67
+ "table.export.item": "导出项",
68
+ "table.export.selectAll": "全选",
69
+ "temporarilyNoDescription": "暂无简介",
70
+ "understandMore": "了解更多",
71
+ "unknown.user": "未知用户",
72
+ "uuid": "UUID"
73
+ }
74
+ ;
75
+
76
+ export default _default;
@@ -0,0 +1,113 @@
1
+ /**
2
+ * @description 在这里进行模块重导
3
+ */
4
+ export { Button, buttonVariants, type ButtonProps, } from './components/primitive/button';
5
+ export { Checkbox } from './components/primitive/checkbox';
6
+ export { Dialog, DialogPortal, DialogOverlay, DialogClose, DialogTrigger, DialogContent, DialogHeader, DialogHeaderLarge, DialogFooter, DialogTitle, DialogDescription, DialogBanner, DialogDivider, DialogBody, DialogScrollArea, } from './components/primitive/dialog';
7
+ export { AlertDialog, AlertDialogTrigger, AlertDialogPortal, AlertDialogOverlay, AlertDialogContent, AlertDialogHeader, AlertDialogFooter, AlertDialogTitle, AlertDialogDescription, AlertDialogAction, AlertDialogCancel, } from './components/primitive/alert-dialog';
8
+ export { Icon } from './_icon/index';
9
+ export { LocaleContainer } from './components/biz/locale-container';
10
+ export { useFormField, Form, FormItem, FormLabel, FormControl, FormDescription, FormMessage, FormField, FormRequiredIndicator, FormRowContainer, FormHint, FormNestedContainer, } from './components/primitive/form';
11
+ export { Switch } from './components/primitive/switch';
12
+ export { Label } from './components/primitive/label';
13
+ export { Input } from './components/primitive/input';
14
+ export { RadioGroup, RadioGroupRoot, RadioGroupItem, } from './components/primitive/radio-group';
15
+ export { type RadioOption, type RadioOptionGeneric, type RadioValue, type RadioGroupProps, } from './components/primitive/radio-group';
16
+ export { Markdown, DocMarkdown, MarkdownWithHtml, GithubMarkdown, } from './components/primitive/markdown';
17
+ export { Tabs, TabsRoot, TabsList, TabsTrigger, TabsContent, } from './components/primitive/tabs/tabs';
18
+ export type { TabsProps, TabsPrimitiveProps, TabsListProps, TabsListItem, TabsTriggerProps, } from './components/primitive/tabs/tabs';
19
+ export { AppBase } from './components/biz/app-base';
20
+ export { Pagination } from './components/primitive/pagination';
21
+ export { PaginationRoot, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, } from './components/primitive/pagination/pagination';
22
+ export { Select, SelectRoot, SelectGroup, SelectValue, SelectTrigger, SelectContent, SelectLabel, SelectItem, SelectSeparator, SelectScrollUpButton, SelectScrollDownButton, } from './components/primitive/select';
23
+ export { type SelectOptions } from './components/primitive/select';
24
+ export { Tag } from './components/primitive/tag';
25
+ export { Badge, BadgeDot } from './components/primitive/badge';
26
+ export type { BadgeProps } from './components/primitive/badge';
27
+ export { StatusBadge } from './components/primitive/status-badge';
28
+ export type { StatusBadgeProps } from './components/primitive/status-badge';
29
+ export { State } from './components/biz/state';
30
+ export type { IStateProps } from './components/biz/state';
31
+ export { Constant, useConstant } from './components/biz/constant';
32
+ export { Text } from './components/primitive/text';
33
+ export type { TextProps } from './components/primitive/text';
34
+ export { Link } from './components/primitive/link';
35
+ export type { LinkProps } from './components/primitive/link';
36
+ export { Tooltip, TooltipArrow, TooltipContent, TooltipPortal, TooltipTrigger, TooltipProvider, TooltipRoot, type TooltipProps, } from './components/primitive/tooltip/index';
37
+ export { Drawer, DrawerRoot, DrawerTrigger, DrawerPortal, DrawerOverlay, DrawerContent, DrawerHeader, DrawerFooter, DrawerBody, } from './components/primitive/drawer';
38
+ export { ImageReader } from './components/primitive/image-reader/index';
39
+ export { Dropdown, DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, DropdownMenuCheckboxItem, DropdownMenuRadioItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuGroup, DropdownMenuPortal, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuRadioGroup, type DropDownProps, type DropdownItem, } from './components/primitive/dropdown-menu';
40
+ export { ContextMenu, ContextMenuTrigger, ContextMenuContent, ContextMenuItem, ContextMenuCheckboxItem, ContextMenuRadioItem, ContextMenuLabel, ContextMenuSeparator, ContextMenuShortcut, ContextMenuGroup, ContextMenuPortal, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuRadioGroup, ContextMenuSimple, type ContextMenuSimpleProps, type ContextMenuItemType, } from './components/primitive/context-menu';
41
+ export { Textarea } from './components/primitive/textarea';
42
+ export { Field, FieldValue, FieldPlaceholderDash, FieldPlaceholderNone, type FieldProps, } from './components/biz/field/index';
43
+ export { FieldOperations, type FieldOperation, type FieldOperationFunc, type FieldOperationType, } from './components/biz/field/field-operations';
44
+ export { InputNumber } from './components/primitive/input-number';
45
+ export { Card, cardVariants, CardHeader, CardFooter, CardTitle, CardDescription, CardContent, cardContentVariants, CardCollapseIndicator, } from './components/primitive/card';
46
+ export type { CardProps, CardContentProps } from './components/primitive/card';
47
+ export { NoData, NoDataCommonLabel, NoDataIndicatorLarge, } from './components/biz/no-data/index';
48
+ export { UploadFile } from './components/biz/file-upload/index';
49
+ export { Slider } from './components/primitive/slider';
50
+ export { Progress } from './components/primitive/progress';
51
+ export type { ProgressProps } from './components/primitive/progress';
52
+ export { type ToastProps, type ToastActionElement, ToastProvider, ToastViewport, Toast, ToastTitle, ToastDescription, ToastClose, ToastAction, } from './components/primitive/toast/toast';
53
+ export { useToast, toast } from './components/primitive/toast/use-toast';
54
+ export { Toaster } from './components/primitive/toast/toaster';
55
+ export { SearchInput } from './components/primitive/search-input';
56
+ export { Info } from './components/biz/info/index';
57
+ export { CheckboxGroup } from './components/primitive/checkbox-group';
58
+ export { type CheckboxGroupItem } from './components/primitive/checkbox-group';
59
+ export { Copy } from './components/biz/copy';
60
+ export { Breadcrumb, BreadcrumbItem, BreadcrumbLink, BreadcrumbBackLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, BreadcrumbDivider, } from './components/primitive/breadcrumb';
61
+ export { Show } from './components/primitive/show';
62
+ export type { Message } from './components/biz/locale-container/type';
63
+ export type { IConstantMap } from './components/biz/config/index';
64
+ export { Loader } from './components/primitive/loader';
65
+ export { Spin, spinIndicatorVariants, spinContainerVariants, } from './components/primitive/spin';
66
+ export type { SpinProps } from './components/primitive/spin';
67
+ export { SelectionCancellation } from './components/primitive/selection-cancellation';
68
+ export { ChartContainer, ChartTooltip, ChartTooltipContent, ChartLegend, ChartLegendContent, ChartStyle, } from './components/primitive/chart';
69
+ export { InputPassword } from './components/primitive/input-password';
70
+ export type { InputPasswordProps } from './components/primitive/input-password';
71
+ export { DateValue } from './components/biz/date-value';
72
+ export { TagList } from './components/primitive/tag-list';
73
+ export * from './components/primitive/popover';
74
+ export { PopoverConfirm, type PopoverConfirmProps, } from './components/primitive/popover-confirm';
75
+ export * from './components/primitive/multi-select';
76
+ export * from './components/primitive/calendar';
77
+ export { RangePicker } from './components/primitive/range-picker';
78
+ export { TimePicker } from './components/primitive/time-picker';
79
+ export type { TimePickerProps, TimeValue } from './components/primitive/time-picker';
80
+ export { DatePicker } from './components/primitive/date-picker';
81
+ export type { DatePickerProps, DisabledTimeConfig, } from './components/primitive/date-picker';
82
+ export * from './components/primitive/collapse';
83
+ export { Alert } from './components/primitive/alert';
84
+ export type { AlertProps } from './components/primitive/alert';
85
+ export { CodeEditor, useCodeEditor } from './components/primitive/code-editor';
86
+ export type { CodeEditorProps, SupportedLanguage, } from './components/primitive/code-editor';
87
+ export { PanicFallback } from './components/biz/panic-fallback';
88
+ export { AutoComplete } from './components/primitive/auto-complete';
89
+ export type { AutoCompleteOption } from './components/primitive/auto-complete';
90
+ export { FileUploadSingle } from './components/primitive/file-upload';
91
+ export { HeaderPage, HeaderDetail, HeaderBreadcrumb, } from './components/biz/header';
92
+ export { HelperDoc } from './components/biz/helper-doc';
93
+ export { InfoPopover } from './components/biz/info-popover';
94
+ export type { InfoPopoverProps } from './components/biz/info-popover';
95
+ export { SmartTip } from './components/biz/smart-tip';
96
+ export type { SmartTipProps, ContentThresholds, } from './components/biz/smart-tip';
97
+ export { useId } from './utils/use-id';
98
+ export { OverlayProvider, useOverlayContext } from './utils/overlay-context';
99
+ export { useOverlay } from './utils/use-overlay';
100
+ export { useContainer } from './utils/use-container';
101
+ export { ConfigProvider } from './components/biz/config';
102
+ export { Divider } from './components/primitive/divider';
103
+ export type { DividerProps } from './components/primitive/divider';
104
+ export { Steps } from './components/primitive/steps';
105
+ export type { StepsProps, StepItem } from './components/primitive/steps';
106
+ export { ResizablePanelGroup, ResizablePanel, ResizableHandle, } from './components/primitive/resizable';
107
+ export type { ResizableHandleProps } from './components/primitive/resizable';
108
+ export { Tree, TreeSelect, DefaultTreeNode } from './components/primitive/tree';
109
+ export type { TreeRef, TreeNode, TreeProps, TreeSelectProps, TreeMoveEvent, NodeApi as TreeNodeApi, NodeRendererProps as TreeNodeRendererProps, } from './components/primitive/tree';
110
+ export { JsonViewer } from './components/primitive/json-viewer';
111
+ export type { JsonViewerProps } from './components/primitive/json-viewer';
112
+ export { Cascader } from './components/primitive/cascader';
113
+ export type { CascaderOption, CascaderProps, CascaderFieldNames, CascaderBaseProps, CascaderSingleProps, CascaderMultipleProps, } from './components/primitive/cascader';
package/dist/style.css ADDED
@@ -0,0 +1,2 @@
1
+ .markdown-body{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;color:#1f2328;word-wrap:break-word;background-color:#fff;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;font-size:16px;line-height:1.5;scroll-behavior:auto!important}.markdown-body .octicon{fill:currentColor;vertical-align:text-bottom;display:inline-block}.markdown-body h1:hover .anchor .octicon-link:before,.markdown-body h2:hover .anchor .octicon-link:before,.markdown-body h3:hover .anchor .octicon-link:before,.markdown-body h4:hover .anchor .octicon-link:before,.markdown-body h5:hover .anchor .octicon-link:before,.markdown-body h6:hover .anchor .octicon-link:before{content:" ";background-color:currentColor;width:16px;height:16px;display:inline-block;-webkit-mask-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' version='1.1' aria-hidden='true'><path fill-rule='evenodd' d='M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z'></path></svg>");mask-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' version='1.1' aria-hidden='true'><path fill-rule='evenodd' d='M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z'></path></svg>")}.markdown-body details,.markdown-body figcaption,.markdown-body figure{display:block}.markdown-body summary{display:list-item}.markdown-body [hidden]{display:none!important}.markdown-body a{color:#0969da;background-color:transparent;text-decoration:none}.markdown-body abbr[title]{border-bottom:none;text-decoration:underline dotted}.markdown-body b,.markdown-body strong{font-weight:600}.markdown-body dfn{font-style:italic}.markdown-body h1{border-bottom:1px solid rgba(209,217,224,.7);margin:.67em 0;padding-bottom:.3em;font-size:2em;font-weight:600}.markdown-body mark{color:#1f2328;background-color:#fff8c5}.markdown-body small{font-size:90%}.markdown-body sub,.markdown-body sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}.markdown-body sub{bottom:-.25em}.markdown-body sup{top:-.5em}.markdown-body img{box-sizing:content-box;border-style:none;max-width:100%}.markdown-body code,.markdown-body kbd,.markdown-body pre,.markdown-body samp{font-family:monospace;font-size:1em}.markdown-body figure{margin:1em 2.5rem}.markdown-body hr{box-sizing:content-box;background:#d1d9e0;border:0;height:.25em;margin:1.5rem 0;padding:0;overflow:hidden}.markdown-body input{font:inherit;font-family:inherit;font-size:inherit;line-height:inherit;margin:0;overflow:visible}.markdown-body [type=button],.markdown-body [type=reset],.markdown-body [type=submit]{-webkit-appearance:button;appearance:button}.markdown-body [type=checkbox],.markdown-body [type=radio]{box-sizing:border-box;padding:0}.markdown-body [type=number]::-webkit-inner-spin-button{height:auto}.markdown-body [type=number]::-webkit-outer-spin-button{height:auto}.markdown-body [type=search]::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}.markdown-body [type=search]::-webkit-search-decoration{-webkit-appearance:none;appearance:none}.markdown-body ::-webkit-input-placeholder{color:inherit;opacity:.54}.markdown-body ::-webkit-file-upload-button{-webkit-appearance:button;appearance:button;font:inherit}.markdown-body ::placeholder{color:#59636e;opacity:1}.markdown-body hr:before{content:"";display:table}.markdown-body hr:after{clear:both;content:"";display:table}.markdown-body table{border-spacing:0;border-collapse:collapse;width:max-content;max-width:100%;display:block;overflow:auto}.markdown-body td,.markdown-body th{padding:0}.markdown-body details summary{cursor:pointer}.markdown-body a:focus,.markdown-body [role=button]:focus,.markdown-body input[type=radio]:focus,.markdown-body input[type=checkbox]:focus{outline-offset:-2px;box-shadow:none;outline:2px solid #0969da}.markdown-body a:focus:not(:focus-visible){outline:1px solid transparent}.markdown-body [role=button]:focus:not(:focus-visible){outline:1px solid transparent}.markdown-body input[type=radio]:focus:not(:focus-visible){outline:1px solid transparent}.markdown-body input[type=checkbox]:focus:not(:focus-visible){outline:1px solid transparent}.markdown-body a:focus-visible{outline-offset:-2px;box-shadow:none;outline:2px solid #0969da}.markdown-body [role=button]:focus-visible{outline-offset:-2px;box-shadow:none;outline:2px solid #0969da}.markdown-body input[type=radio]:focus-visible{outline-offset:-2px;box-shadow:none;outline:2px solid #0969da}.markdown-body input[type=checkbox]:focus-visible{outline-offset:-2px;box-shadow:none;outline:2px solid #0969da}.markdown-body a:not([class]):focus,.markdown-body input[type=radio]:focus,.markdown-body input[type=checkbox]:focus{outline-offset:0}.markdown-body a:not([class]):focus-visible{outline-offset:0}.markdown-body input[type=radio]:focus-visible{outline-offset:0}.markdown-body input[type=checkbox]:focus-visible{outline-offset:0}.markdown-body kbd{color:#1f2328;vertical-align:middle;background-color:#f6f8fa;border:1px solid rgba(209,217,224,.7);border-radius:6px;padding:.25rem;font:11px/10px ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;display:inline-block;box-shadow:inset 0 -1px rgba(209,217,224,.7)}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{margin-top:1.5rem;margin-bottom:1rem;font-weight:600;line-height:1.25}.markdown-body h2{border-bottom:1px solid rgba(209,217,224,.7);padding-bottom:.3em;font-size:1.5em;font-weight:600}.markdown-body h3{font-size:1.25em;font-weight:600}.markdown-body h4{font-size:1em;font-weight:600}.markdown-body h5{font-size:.875em;font-weight:600}.markdown-body h6{color:#59636e;font-size:.85em;font-weight:600}.markdown-body p{margin-top:0;margin-bottom:10px}.markdown-body blockquote{color:#59636e;border-left:.25em solid #d1d9e0;margin:0;padding:0 1em}.markdown-body ul,.markdown-body ol{margin-top:0;margin-bottom:0;padding-left:2em}.markdown-body ol ol,.markdown-body ul ol{list-style-type:lower-roman}.markdown-body ul ul ol,.markdown-body ul ol ol,.markdown-body ol ul ol,.markdown-body ol ol ol{list-style-type:lower-alpha}.markdown-body dd{margin-left:0}.markdown-body tt,.markdown-body code,.markdown-body samp{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:12px}.markdown-body pre{word-wrap:normal;margin-top:0;margin-bottom:0;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:12px}.markdown-body .octicon{vertical-align:text-bottom;fill:currentColor;display:inline-block;overflow:visible!important}.markdown-body input::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none;margin:0}.markdown-body input::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none;margin:0}.markdown-body .mr-2{margin-right:.5rem!important}.markdown-body:before{content:"";display:table}.markdown-body:after{clear:both;content:"";display:table}.markdown-body>:first-child{margin-top:0!important}.markdown-body>:last-child{margin-bottom:0!important}.markdown-body a:not([href]){color:inherit;text-decoration:none}.markdown-body .absent{color:#d1242f}.markdown-body .anchor{float:left;margin-left:-20px;padding-right:.25rem;line-height:1}.markdown-body .anchor:focus{outline:none}.markdown-body p,.markdown-body blockquote,.markdown-body ul,.markdown-body ol,.markdown-body dl,.markdown-body table,.markdown-body pre,.markdown-body details{margin-top:0;margin-bottom:1rem}.markdown-body blockquote>:first-child{margin-top:0}.markdown-body blockquote>:last-child{margin-bottom:0}.markdown-body h1 .octicon-link,.markdown-body h2 .octicon-link,.markdown-body h3 .octicon-link,.markdown-body h4 .octicon-link,.markdown-body h5 .octicon-link,.markdown-body h6 .octicon-link{color:#1f2328;vertical-align:middle;visibility:hidden}.markdown-body h1:hover .anchor,.markdown-body h2:hover .anchor,.markdown-body h3:hover .anchor,.markdown-body h4:hover .anchor,.markdown-body h5:hover .anchor,.markdown-body h6:hover .anchor{text-decoration:none}.markdown-body h1:hover .anchor .octicon-link,.markdown-body h2:hover .anchor .octicon-link,.markdown-body h3:hover .anchor .octicon-link,.markdown-body h4:hover .anchor .octicon-link,.markdown-body h5:hover .anchor .octicon-link,.markdown-body h6:hover .anchor .octicon-link{visibility:visible}.markdown-body h1 tt,.markdown-body h1 code,.markdown-body h2 tt,.markdown-body h2 code,.markdown-body h3 tt,.markdown-body h3 code,.markdown-body h4 tt,.markdown-body h4 code,.markdown-body h5 tt,.markdown-body h5 code,.markdown-body h6 tt,.markdown-body h6 code{font-size:inherit;padding:0 .2em}.markdown-body summary h1,.markdown-body summary h2,.markdown-body summary h3,.markdown-body summary h4,.markdown-body summary h5,.markdown-body summary h6{display:inline-block}.markdown-body summary h1 .anchor,.markdown-body summary h2 .anchor,.markdown-body summary h3 .anchor,.markdown-body summary h4 .anchor,.markdown-body summary h5 .anchor,.markdown-body summary h6 .anchor{margin-left:-40px}.markdown-body summary h1,.markdown-body summary h2{border-bottom:0;padding-bottom:0}.markdown-body ul.no-list,.markdown-body ol.no-list{padding:0;list-style-type:none}.markdown-body ol[type=a\ s]{list-style-type:lower-alpha}.markdown-body ol[type=A\ s]{list-style-type:upper-alpha}.markdown-body ol[type=i\ s]{list-style-type:lower-roman}.markdown-body ol[type=I\ s]{list-style-type:upper-roman}.markdown-body ol[type="1"],.markdown-body div>ol:not([type]){list-style-type:decimal}.markdown-body ul ul,.markdown-body ul ol,.markdown-body ol ol,.markdown-body ol ul{margin-top:0;margin-bottom:0}.markdown-body li>p{margin-top:1rem}.markdown-body li+li{margin-top:.25em}.markdown-body dl{padding:0}.markdown-body dl dt{margin-top:1rem;padding:0;font-size:1em;font-style:italic;font-weight:600}.markdown-body dl dd{margin-bottom:1rem;padding:0 1rem}.markdown-body table th{font-weight:600}.markdown-body table th,.markdown-body table td{border:1px solid #d1d9e0;padding:6px 13px}.markdown-body table td>:last-child{margin-bottom:0}.markdown-body table tr{background-color:#fff;border-top:1px solid rgba(209,217,224,.7)}.markdown-body table tr:nth-child(2n){background-color:#f6f8fa}.markdown-body table img{background-color:transparent}.markdown-body img[align=right]{padding-left:20px}.markdown-body img[align=left]{padding-right:20px}.markdown-body .emoji{vertical-align:text-top;background-color:transparent;max-width:none}.markdown-body span.frame{display:block;overflow:hidden}.markdown-body span.frame>span{float:left;border:1px solid #d1d9e0;width:auto;margin:13px 0 0;padding:7px;display:block;overflow:hidden}.markdown-body span.frame span img{float:left;display:block}.markdown-body span.frame span span{clear:both;color:#1f2328;padding:5px 0 0;display:block}.markdown-body span.align-center{clear:both;display:block;overflow:hidden}.markdown-body span.align-center>span{text-align:center;margin:13px auto 0;display:block;overflow:hidden}.markdown-body span.align-center span img{text-align:center;margin:0 auto}.markdown-body span.align-right{clear:both;display:block;overflow:hidden}.markdown-body span.align-right>span{text-align:right;margin:13px 0 0;display:block;overflow:hidden}.markdown-body span.align-right span img{text-align:right;margin:0}.markdown-body span.float-left{float:left;margin-right:13px;display:block;overflow:hidden}.markdown-body span.float-left span{margin:13px 0 0}.markdown-body span.float-right{float:right;margin-left:13px;display:block;overflow:hidden}.markdown-body span.float-right>span{text-align:right;margin:13px auto 0;display:block;overflow:hidden}.markdown-body code,.markdown-body tt{white-space:break-spaces;background-color:rgba(129,139,152,.12);border-radius:6px;margin:0;padding:.2em .4em;font-size:85%}.markdown-body code br,.markdown-body tt br{display:none}.markdown-body del code{text-decoration:inherit}.markdown-body samp{font-size:85%}.markdown-body pre code{font-size:100%}.markdown-body pre>code{word-break:normal;white-space:pre;background:0 0;border:0;margin:0;padding:0}.markdown-body .highlight{margin-bottom:1rem}.markdown-body .highlight pre{word-break:normal;margin-bottom:0}.markdown-body .highlight pre,.markdown-body pre{color:#1f2328;background-color:#f6f8fa;border-radius:6px;padding:1rem;font-size:85%;line-height:1.45;overflow:auto}.markdown-body pre code,.markdown-body pre tt{max-width:auto;line-height:inherit;word-wrap:normal;background-color:transparent;border:0;margin:0;padding:0;display:inline;overflow:visible}.markdown-body .csv-data td,.markdown-body .csv-data th{text-align:left;white-space:nowrap;padding:5px;font-size:12px;line-height:1;overflow:hidden}.markdown-body .csv-data .blob-num{text-align:right;background:#fff;border:0;padding:10px .5rem 9px}.markdown-body .csv-data tr{border-top:0}.markdown-body .csv-data th{background:#f6f8fa;border-top:0;font-weight:600}.markdown-body [data-footnote-ref]:before{content:"["}.markdown-body [data-footnote-ref]:after{content:"]"}.markdown-body .footnotes{color:#59636e;border-top:1px solid #d1d9e0;font-size:12px}.markdown-body .footnotes ol{padding-left:1rem}.markdown-body .footnotes ol ul{margin-top:1rem;padding-left:1rem;display:inline-block}.markdown-body .footnotes li{position:relative}.markdown-body .footnotes li:target:before{pointer-events:none;content:"";border:2px solid #0969da;border-radius:6px;position:absolute;top:-.5rem;bottom:-.5rem;left:-1.5rem;right:-.5rem}.markdown-body .footnotes li:target{color:#1f2328}.markdown-body .footnotes .data-footnote-backref g-emoji{font-family:monospace}.markdown-body .pl-c{color:#59636e}.markdown-body .pl-c1,.markdown-body .pl-s .pl-v{color:#0550ae}.markdown-body .pl-e,.markdown-body .pl-en{color:#6639ba}.markdown-body .pl-smi,.markdown-body .pl-s .pl-s1{color:#1f2328}.markdown-body .pl-ent{color:#0550ae}.markdown-body .pl-k{color:#cf222e}.markdown-body .pl-s,.markdown-body .pl-pds,.markdown-body .pl-s .pl-pse .pl-s1,.markdown-body .pl-sr,.markdown-body .pl-sr .pl-cce,.markdown-body .pl-sr .pl-sre,.markdown-body .pl-sr .pl-sra{color:#0a3069}.markdown-body .pl-v,.markdown-body .pl-smw{color:#953800}.markdown-body .pl-bu{color:#82071e}.markdown-body .pl-ii{color:#f6f8fa;background-color:#82071e}.markdown-body .pl-c2{color:#f6f8fa;background-color:#cf222e}.markdown-body .pl-sr .pl-cce{color:#116329;font-weight:700}.markdown-body .pl-ml{color:#3b2300}.markdown-body .pl-mh,.markdown-body .pl-mh .pl-en,.markdown-body .pl-ms{color:#0550ae;font-weight:700}.markdown-body .pl-mi{color:#1f2328;font-style:italic}.markdown-body .pl-mb{color:#1f2328;font-weight:700}.markdown-body .pl-md{color:#82071e;background-color:#ffebe9}.markdown-body .pl-mi1{color:#116329;background-color:#dafbe1}.markdown-body .pl-mc{color:#953800;background-color:#ffd8b5}.markdown-body .pl-mi2{color:#d1d9e0;background-color:#0550ae}.markdown-body .pl-mdr{color:#8250df;font-weight:700}.markdown-body .pl-ba{color:#59636e}.markdown-body .pl-sg{color:#818b98}.markdown-body .pl-corl{color:#0a3069;text-decoration:underline}.markdown-body [role=button]:focus:not(:focus-visible){box-shadow:none;outline:none}.markdown-body [role=tabpanel][tabindex="0"]:focus:not(:focus-visible){box-shadow:none;outline:none}.markdown-body button:focus:not(:focus-visible){box-shadow:none;outline:none}.markdown-body summary:focus:not(:focus-visible){box-shadow:none;outline:none}.markdown-body a:focus:not(:focus-visible){box-shadow:none;outline:none}.markdown-body [tabindex="0"]:focus:not(:focus-visible){outline:none}.markdown-body details-dialog:focus:not(:focus-visible){outline:none}.markdown-body g-emoji{vertical-align:-.075em;min-width:1ch;font-family:Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-size:1em;font-weight:400;line-height:1;display:inline-block;font-style:normal!important}.markdown-body g-emoji img{width:1em;height:1em}.markdown-body .task-list-item{list-style-type:none}.markdown-body .task-list-item label{font-weight:400}.markdown-body .task-list-item.enabled label{cursor:pointer}.markdown-body .task-list-item+.task-list-item{margin-top:.25rem}.markdown-body .task-list-item .handle{display:none}.markdown-body .task-list-item-checkbox{vertical-align:middle;margin:0 .2em .25em -1.4em}.markdown-body ul:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)) .task-list-item-checkbox{margin:0 -1.6em .25em .2em}.markdown-body ul:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)) .task-list-item-checkbox{margin:0 -1.6em .25em .2em}.markdown-body ol:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)) .task-list-item-checkbox{margin:0 -1.6em .25em .2em}.markdown-body ol:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)) .task-list-item-checkbox{margin:0 -1.6em .25em .2em}.markdown-body .contains-task-list:hover .task-list-item-convert-container,.markdown-body .contains-task-list:focus-within .task-list-item-convert-container{clip:auto;width:auto;height:24px;display:block;overflow:visible}.markdown-body ::-webkit-calendar-picker-indicator{filter:invert(50%)}.markdown-body .markdown-alert{color:inherit;border-left:.25em solid #d1d9e0;margin-bottom:1rem;padding:.5rem 1rem}.markdown-body .markdown-alert>:first-child{margin-top:0}.markdown-body .markdown-alert>:last-child{margin-bottom:0}.markdown-body .markdown-alert .markdown-alert-title{align-items:center;font-weight:500;line-height:1;display:flex}.markdown-body .markdown-alert.markdown-alert-note{border-left-color:#0969da}.markdown-body .markdown-alert.markdown-alert-note .markdown-alert-title{color:#0969da}.markdown-body .markdown-alert.markdown-alert-important{border-left-color:#8250df}.markdown-body .markdown-alert.markdown-alert-important .markdown-alert-title{color:#8250df}.markdown-body .markdown-alert.markdown-alert-warning{border-left-color:#9a6700}.markdown-body .markdown-alert.markdown-alert-warning .markdown-alert-title{color:#9a6700}.markdown-body .markdown-alert.markdown-alert-tip{border-left-color:#1a7f37}.markdown-body .markdown-alert.markdown-alert-tip .markdown-alert-title{color:#1a7f37}.markdown-body .markdown-alert.markdown-alert-caution{border-left-color:#cf222e}.markdown-body .markdown-alert.markdown-alert-caution .markdown-alert-title{color:#d1242f}.markdown-body>:first-child>.heading-element:first-child{margin-top:0!important}.markdown-body [align=center]{text-align:center}.markdown-body [align=right]{text-align:right}.markdown-body [align=left]{text-align:left}.markdown-body p[align=center] img,.markdown-body div[align=center] img{display:inline-block}.markdown-body img[src*=shields\.io],.markdown-body img[src*=badge],.markdown-body img[alt*=badge],.markdown-body img[alt*=Badge]{vertical-align:middle;height:auto;max-height:28px;margin:2px 4px;display:inline-block}.markdown-body p>a>img[src*=shields\.io],.markdown-body p>a>img[src*=badge]{margin:2px}.markdown-body .img-error-placeholder{color:#6b7280;background-color:#f3f4f6;border:1px solid #e5e7eb;border-radius:4px;justify-content:center;align-items:center;padding:4px 8px;font-size:12px;display:inline-flex}.markdown-body .img-loading-spinner{border:2px solid #d1d5db;border-top-color:#3b82f6;border-radius:50%;width:16px;height:16px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.markdown-body img{max-width:100%;height:auto}.markdown-body pre code{white-space:pre;word-wrap:normal}.markdown-body blockquote{background-color:#fef9e7;border-left:4px solid #fbbf24;margin:16px 0;padding:12px 16px}.markdown-body table{-webkit-overflow-scrolling:touch;width:100%;display:block;overflow-x:auto}.markdown-body a{color:#0969da;text-decoration:none}.markdown-body a:hover{text-decoration:underline}.markdown-body .katex-display{overflow-x:auto;overflow-y:hidden}
2
+ /*$vite$:1*/
@@ -0,0 +1,34 @@
1
+ import { default as React } from 'react';
2
+ interface OverlayInstance {
3
+ id: string;
4
+ type: "dialog" | "drawer" | "popover" | "tooltip" | "toast";
5
+ zIndex: number;
6
+ timestamp: number;
7
+ }
8
+ interface OverlayContextValue {
9
+ register: (id: string, type: OverlayInstance["type"]) => number;
10
+ unregister: (id: string) => void;
11
+ getZIndex: (id: string) => number | null;
12
+ getTopZIndex: () => number;
13
+ isTop: (id: string) => boolean;
14
+ }
15
+ /**
16
+ * OverlayProvider - 全局弹窗层级管理
17
+ *
18
+ * 用法:
19
+ * ```tsx
20
+ * <OverlayProvider>
21
+ * <App />
22
+ * </OverlayProvider>
23
+ * ```
24
+ */
25
+ export declare const OverlayProvider: React.FC<{
26
+ children: React.ReactNode;
27
+ }>;
28
+ /**
29
+ * useOverlayContext - 获取 Overlay Context
30
+ *
31
+ * @throws {Error} 如果在 OverlayProvider 外部使用
32
+ */
33
+ export declare const useOverlayContext: () => OverlayContextValue;
34
+ export {};
@@ -0,0 +1,30 @@
1
+ interface UseContainerOptions {
2
+ id: string;
3
+ zIndex: number;
4
+ visible: boolean;
5
+ disableContainer?: boolean;
6
+ }
7
+ /**
8
+ * useContainer - 自动管理弹窗的挂载容器
9
+ *
10
+ * 为每个弹窗创建独立的 DOM 容器,避免样式污染和 z-index 冲突
11
+ *
12
+ * 用法:
13
+ * ```tsx
14
+ * const MyDialog = ({ open }) => {
15
+ * const { zIndex, overlayId } = useOverlay({ type: 'dialog', open });
16
+ * const container = useContainer({ id: overlayId, zIndex, visible: open });
17
+ *
18
+ * return createPortal(<DialogContent />, container);
19
+ * };
20
+ * ```
21
+ *
22
+ * @param options - 配置项
23
+ * @param options.id - 弹窗唯一标识
24
+ * @param options.zIndex - z-index 值
25
+ * @param options.visible - 是否可见
26
+ * @param options.disableContainer - 是否禁用独立容器
27
+ * @returns {HTMLElement} 挂载容器
28
+ */
29
+ export declare function useContainer(options: UseContainerOptions): HTMLElement;
30
+ export {};
@@ -0,0 +1 @@
1
+ export declare const useId: () => string;
@@ -0,0 +1,34 @@
1
+ interface UseOverlayOptions {
2
+ type: "dialog" | "drawer" | "popover" | "tooltip" | "toast";
3
+ open?: boolean;
4
+ customZIndex?: number;
5
+ }
6
+ interface UseOverlayResult {
7
+ zIndex: number;
8
+ isTop: boolean;
9
+ overlayId: string;
10
+ }
11
+ /**
12
+ * useOverlay - 自动管理弹窗的 z-index
13
+ *
14
+ * 用法:
15
+ * ```tsx
16
+ * const MyDialog = ({ open }) => {
17
+ * const { zIndex, isTop } = useOverlay({ type: 'dialog', open });
18
+ *
19
+ * return (
20
+ * <DialogContent style={{ zIndex }}>
21
+ * {isTop && <div>我是最顶层</div>}
22
+ * </DialogContent>
23
+ * );
24
+ * };
25
+ * ```
26
+ *
27
+ * @param options - 配置项
28
+ * @param options.type - 弹窗类型
29
+ * @param options.open - 是否打开(默认 false)
30
+ * @param options.customZIndex - 自定义 z-index(覆盖自动计算的值)
31
+ * @returns {UseOverlayResult} z-index 和相关状态
32
+ */
33
+ export declare function useOverlay(options: UseOverlayOptions): UseOverlayResult;
34
+ export {};