lingee-ui 0.0.6 → 0.0.8

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 (108) hide show
  1. package/dist/button/index.css +1 -1
  2. package/dist/button/index.d.mts +1 -1
  3. package/dist/button/index.d.ts +1 -1
  4. package/dist/button/index.js +1 -1
  5. package/dist/button/index.mjs +1 -1
  6. package/dist/chunk-3U36GSZF.js +2 -0
  7. package/dist/chunk-7F53VFM6.mjs +1 -0
  8. package/dist/chunk-7TZ6IXXG.js +1 -0
  9. package/dist/chunk-AEPAJEIR.js +1 -0
  10. package/dist/chunk-AP6UHKTU.mjs +1 -0
  11. package/dist/chunk-JKY43GCS.mjs +1 -0
  12. package/dist/chunk-P56ABRDC.js +1 -0
  13. package/dist/chunk-PKNSR23I.mjs +2 -0
  14. package/dist/chunk-QBEHOXXU.mjs +1 -0
  15. package/dist/{chunk-MUKM5CN4.js → chunk-SXHF5CXB.js} +1 -1
  16. package/dist/chunk-TO3JLUBX.mjs +1 -0
  17. package/dist/chunk-VHOWVMZ3.js +1 -0
  18. package/dist/{index-B4ySDWo5.d.mts → index-7pb5YOcq.d.mts} +3 -3
  19. package/dist/{index-B4ySDWo5.d.ts → index-7pb5YOcq.d.ts} +3 -3
  20. package/dist/index.css +1 -1
  21. package/dist/index.d.mts +596 -119
  22. package/dist/index.d.ts +596 -119
  23. package/dist/index.js +2 -2
  24. package/dist/index.mjs +2 -2
  25. package/dist/input/index.css +1 -1
  26. package/dist/input/index.d.mts +9 -3
  27. package/dist/input/index.d.ts +9 -3
  28. package/dist/input/index.js +1 -1
  29. package/dist/input/index.mjs +1 -1
  30. package/dist/popover/index.d.mts +6 -6
  31. package/dist/popover/index.d.ts +6 -6
  32. package/dist/switch/index.d.mts +2 -2
  33. package/dist/switch/index.d.ts +2 -2
  34. package/dist/tabs/index.css +1 -1
  35. package/dist/tabs/index.d.mts +10 -6
  36. package/dist/tabs/index.d.ts +10 -6
  37. package/dist/tabs/index.js +1 -1
  38. package/dist/tabs/index.mjs +1 -1
  39. package/dist/textarea/index.d.mts +2 -2
  40. package/dist/textarea/index.d.ts +2 -2
  41. package/dist/toast/index.css +1 -1
  42. package/dist/toast/index.js +1 -1
  43. package/dist/toast/index.mjs +1 -1
  44. package/dist/tokens.css +1 -1
  45. package/dist/tooltip/index.css +1 -1
  46. package/dist/tooltip/index.d.mts +6 -1
  47. package/dist/tooltip/index.d.ts +6 -1
  48. package/dist/tooltip/index.js +1 -1
  49. package/dist/tooltip/index.mjs +1 -1
  50. package/dist/tree/index.css +1 -0
  51. package/dist/tree/index.d.mts +229 -0
  52. package/dist/tree/index.d.ts +229 -0
  53. package/dist/tree/index.js +1 -0
  54. package/dist/tree/index.mjs +1 -0
  55. package/package.json +14 -4
  56. package/skill/AGENTS-SNIPPET.md +254 -0
  57. package/skill/SKILL.md +206 -0
  58. package/skill/VERSION.json +7 -0
  59. package/skill/references/components/alert.md +30 -0
  60. package/skill/references/components/avatar.md +45 -0
  61. package/skill/references/components/button.md +40 -0
  62. package/skill/references/components/checkbox.md +39 -0
  63. package/skill/references/components/color-picker.md +40 -0
  64. package/skill/references/components/date-picker.md +46 -0
  65. package/skill/references/components/dialog.md +68 -0
  66. package/skill/references/components/divider.md +30 -0
  67. package/skill/references/components/drawer.md +42 -0
  68. package/skill/references/components/dropdown.md +96 -0
  69. package/skill/references/components/empty.md +54 -0
  70. package/skill/references/components/flex.md +44 -0
  71. package/skill/references/components/form.md +57 -0
  72. package/skill/references/components/image.md +37 -0
  73. package/skill/references/components/input.md +33 -0
  74. package/skill/references/components/pagination.md +42 -0
  75. package/skill/references/components/popover.md +45 -0
  76. package/skill/references/components/progress.md +36 -0
  77. package/skill/references/components/radio.md +43 -0
  78. package/skill/references/components/range-picker.md +49 -0
  79. package/skill/references/components/scroll-area.md +50 -0
  80. package/skill/references/components/select.md +52 -0
  81. package/skill/references/components/sidebar.md +203 -0
  82. package/skill/references/components/skeleton.md +39 -0
  83. package/skill/references/components/slider.md +42 -0
  84. package/skill/references/components/spin.md +25 -0
  85. package/skill/references/components/steps.md +34 -0
  86. package/skill/references/components/switch.md +26 -0
  87. package/skill/references/components/table.md +44 -0
  88. package/skill/references/components/tabs.md +49 -0
  89. package/skill/references/components/tag.md +59 -0
  90. package/skill/references/components/textarea.md +30 -0
  91. package/skill/references/components/time-picker.md +49 -0
  92. package/skill/references/components/toast.md +47 -0
  93. package/skill/references/components/tooltip.md +33 -0
  94. package/skill/references/components/tree.md +118 -0
  95. package/skill/references/components/upload.md +41 -0
  96. package/skill/references/icons.md +1117 -0
  97. package/skill/references/setup.md +133 -0
  98. package/skill/references/tokens.md +201 -0
  99. package/CHANGELOG.md +0 -31
  100. package/dist/chunk-22G7TVQU.mjs +0 -1
  101. package/dist/chunk-3VTWGWRW.mjs +0 -1
  102. package/dist/chunk-BURKV6KR.js +0 -1
  103. package/dist/chunk-EWZCOQ5H.js +0 -1
  104. package/dist/chunk-I5FIN7UX.mjs +0 -1
  105. package/dist/chunk-LGFBC4UA.mjs +0 -1
  106. package/dist/chunk-U5VI5OCN.mjs +0 -1
  107. package/dist/chunk-WJXAQ3RX.js +0 -1
  108. package/dist/chunk-ZXRCMMQM.js +0 -1
@@ -0,0 +1,59 @@
1
+ # Tag 标签
2
+
3
+ 用于标记和分类的小型标签元素。
4
+
5
+ - 导入:`import { Tag } from "lingee-ui";`
6
+ - 可用类型:`TagProps`, `TagPresetColor`, `TagSize`, `TagShape`
7
+
8
+ ## 最小示例
9
+
10
+ ```tsx
11
+ import { Tag } from "lingee-ui";
12
+
13
+ export default function BasicDemo() {
14
+ return (
15
+ <div style={{ display: "flex", gap: 8 }}>
16
+ <Tag>Default</Tag>
17
+ <Tag color="primary">Primary</Tag>
18
+ </div>
19
+ );
20
+ }
21
+ ```
22
+
23
+ ## API
24
+
25
+ | 属性 | 说明 | 类型 | 默认值 |
26
+ |------|------|------|--------|
27
+ | `color` | 标签颜色 | `"info" \| "primary" \| "success" \| "warning" \| "danger" \| "amber" \| "yellow" \| "cyan" \| "purple" \| string` | `"info"` |
28
+ | `variant` | 视觉变体 | `"tint" \| "gradient" \| "glow"` | `"tint"` |
29
+ | `size` | 标签尺寸 | `"sm" \| "md" \| "lg"` | `"md"` |
30
+ | `shape` | 圆角形状(仅 `variant="tint"` 生效) | `"pill" \| "rounded"` | `"pill"` |
31
+ | `icon` | 前缀图标 | `ReactNode` | - |
32
+ | `background` | 自定义背景 | `string` | - |
33
+ | `closable` | 是否可关闭 | `boolean` | `false` |
34
+ | `onClose` | 关闭回调 | `(e: MouseEvent) => void` | - |
35
+ | `children` | 子内容 | `ReactNode` | - |
36
+
37
+ ### 变体说明
38
+
39
+ | 变体 | 圆角 | 背景 | 装饰 | 适用场景 |
40
+ |------|------|------|------|----------|
41
+ | `tint` | 由 `shape` 决定 | 同色 8% 纯色浅底 | - | 通用标记、分类 |
42
+ | `gradient` | 8px | 同色 12% → 3% 斜向渐变 | - | 提示类徽标 |
43
+ | `glow` | 12px | 同色 8/12% → 28% 渐变 | 两层模糊光斑 | 等级类徽标 |
44
+
45
+ `glow` 的 `purple` 使用 128.7° 斜向渐变,`yellow` / `cyan` 使用自上而下的纵向渐变。
46
+
47
+ ### 样式变量
48
+
49
+ 以下 CSS 变量可在消费方覆盖,用于微调间距、图标尺寸与光斑配色:
50
+
51
+ | 变量 | 说明 | 默认值 |
52
+ |------|------|--------|
53
+ | `--_tag-gap` | 图标与文字间距 | `2px`(gradient `4px`、glow `10px`) |
54
+ | `--_tag-icon-size` | 图标尺寸 | `14px`(`size="lg"` 与 gradient 的 `danger` 为 `16px`) |
55
+ | `--_tag-font-weight` | 字重 | `400`(glow 为 `500`) |
56
+ | `--_tag-gradient-from` | 渐变起始色(gradient / glow) | 按 `color` 取同色 12%(glow 的 `purple` 为 8%) |
57
+ | `--_tag-gradient-to` | 渐变结束色(gradient / glow) | gradient 取同色 3%,glow 取 28% |
58
+ | `--_tag-glow-primary` | 底层光斑色(仅 glow) | 按 `color` 取对应装饰色 |
59
+ | `--_tag-glow-secondary` | 高光层光斑色(仅 glow) | `rgba(255, 255, 255, 0.64)`(`purple` 为 `0.59`) |
@@ -0,0 +1,30 @@
1
+ # Textarea 多行文本框
2
+
3
+ 多行纯文本编辑控件,支持字数统计和自动高度。
4
+
5
+ - 导入:`import { Textarea } from "lingee-ui";`
6
+ - 可用类型:`TextareaProps`
7
+
8
+ ## 最小示例
9
+
10
+ ```tsx
11
+ import { Textarea } from "lingee-ui";
12
+
13
+ export default function BasicDemo() {
14
+ return <Textarea placeholder="Please enter content..." rows={4} />;
15
+ }
16
+ ```
17
+
18
+ ## API
19
+
20
+ | 属性 | 说明 | 类型 | 默认值 |
21
+ |------|------|------|--------|
22
+ | `placeholder` | 占位文本 | `string` | - |
23
+ | `rows` | 显示行数 | `number` | - |
24
+ | `maxLength` | 最大字符数 | `number` | - |
25
+ | `showCount` | 是否显示字数统计 | `boolean` | `false` |
26
+ | `autoSize` | 自适应高度 | `boolean \| { minRows: number; maxRows: number }` | - |
27
+ | `disabled` | 是否禁用 | `boolean` | `false` |
28
+ | `error` | 是否为错误状态 | `boolean` | `false` |
29
+ | `value` | 受控值 | `string` | - |
30
+ | `onChange` | 值变化回调 | `(e: ChangeEvent) => void` | - |
@@ -0,0 +1,49 @@
1
+ # TimePicker 时间选择器
2
+
3
+ 用于选择时间的输入组件。
4
+
5
+ - 导入:`import { TimePicker } from "lingee-ui";`
6
+ - 可用类型:`TimePickerProps`, `TimePickerSize`, `TimeValue`
7
+
8
+ ## 最小示例
9
+
10
+ ```tsx
11
+ import { useState } from "react";
12
+ import { TimePicker } from "lingee-ui";
13
+
14
+ export default function BasicDemo() {
15
+ const [value, setValue] = useState(null);
16
+
17
+ return (
18
+ <div style={{ width: 292 }}>
19
+ {/* 不传 placeholder,展示组件跟随 Provider 语言的默认占位符 */}
20
+ <TimePicker value={value} onChange={(v) => setValue(v)} />
21
+ </div>
22
+ );
23
+ }
24
+ ```
25
+
26
+ ## API
27
+
28
+ | 属性 | 说明 | 类型 | 默认值 |
29
+ |------|------|------|--------|
30
+ | `value` | 当前时间(受控) | `TimeValue \| null` | - |
31
+ | `defaultValue` | 默认时间(非受控) | `TimeValue` | - |
32
+ | `onChange` | 时间变化回调 | `(time: TimeValue \| null) => void` | - |
33
+ | `placeholder` | 占位文本 | `string` | `"时:分"` |
34
+ | `disabled` | 是否禁用 | `boolean` | `false` |
35
+ | `showSeconds` | 是否显示秒 | `boolean` | `false` |
36
+ | `size` | 尺寸 | `"sm" \| "md" \| "lg"` | `"md"` |
37
+ | `error` | 是否显示错误状态 | `boolean` | `false` |
38
+ | `errorMessage` | 错误提示信息 | `string` | - |
39
+ | `allowClear` | 是否允许清除 | `boolean` | `true` |
40
+
41
+ ### TimeValue
42
+
43
+ ```ts
44
+ interface TimeValue {
45
+ hour: number;
46
+ minute: number;
47
+ second?: number;
48
+ }
49
+ ```
@@ -0,0 +1,47 @@
1
+ # Toast 全局提示
2
+
3
+ 命令式全局提示组件,用于操作反馈。
4
+
5
+ - 导入:`import { toast } from "lingee-ui";`
6
+ - 按需导入:`import { toast } from "lingee-ui/toast";`
7
+ - 可用类型:`ToastConfig`, `ToastGlobalConfig`, `ToastType`
8
+
9
+ ## 最小示例
10
+
11
+ ```tsx
12
+ import { toast, Button } from "lingee-ui";
13
+
14
+ export default function BasicDemo() {
15
+ return (
16
+ <div style={{ display: "flex", gap: 12 }}>
17
+ <Button onClick={() => toast.success("Operation succeeded!")}>Success</Button>
18
+ <Button onClick={() => toast.error("Something went wrong, please retry")}>Error</Button>
19
+ <Button onClick={() => toast.warning("Heads up, this is a warning")}>Warning</Button>
20
+ <Button onClick={() => toast.info("This is an informational message")}>Info</Button>
21
+ </div>
22
+ );
23
+ }
24
+ ```
25
+
26
+ ## API
27
+
28
+ Toast 通过命令式方法调用,无需手动渲染组件。
29
+
30
+ ### 方法
31
+
32
+ | 方法 | 说明 | 参数 |
33
+ |------|------|------|
34
+ | `toast.success(message)` | 成功提示 | `string \| ToastOptions` |
35
+ | `toast.error(message)` | 错误提示 | `string \| ToastOptions` |
36
+ | `toast.warning(message)` | 警告提示 | `string \| ToastOptions` |
37
+ | `toast.info(message)` | 信息提示 | `string \| ToastOptions` |
38
+ | `toast.destroy()` | 销毁所有消息 | - |
39
+
40
+ ### ToastOptions
41
+
42
+ | 属性 | 说明 | 类型 | 默认值 |
43
+ |------|------|------|--------|
44
+ | `content` | 提示内容 | `string` | - |
45
+ | `duration` | 自动关闭延时(ms),0 为不关闭 | `number` | `3000` |
46
+ | `closable` | 是否可手动关闭 | `boolean` | `false` |
47
+ | `key` | 唯一标识,相同 key 会更新内容 | `string` | - |
@@ -0,0 +1,33 @@
1
+ # Tooltip 文字提示
2
+
3
+ 鼠标悬停时显示的简短提示信息。
4
+
5
+ - 导入:`import { Tooltip } from "lingee-ui";`
6
+ - 按需导入:`import { Tooltip } from "lingee-ui/tooltip";`
7
+ - 可用类型:`TooltipProps`, `TooltipPlacement`
8
+
9
+ ## 最小示例
10
+
11
+ ```tsx
12
+ import { Tooltip, Button } from "lingee-ui";
13
+
14
+ export default function BasicDemo() {
15
+ return (
16
+ <Tooltip content="This is a tooltip.">
17
+ <Button>Hover me</Button>
18
+ </Tooltip>
19
+ );
20
+ }
21
+ ```
22
+
23
+ ## API
24
+
25
+ | 属性 | 说明 | 类型 | 默认值 |
26
+ |------|------|------|--------|
27
+ | `content` | 提示内容 | `ReactNode` | - |
28
+ | `placement` | 弹出方向 | `"top" \| "bottom" \| "left" \| "right" \| "top-start" \| "top-end" \| ...` | `"top"` |
29
+ | `delayDuration` | hover 延迟展示时间(ms) | `number` | `200` |
30
+ | `arrow` | 是否显示箭头 | `boolean` | `true` |
31
+ | `maxWidth` | 浮层最大宽度(px) | `number` | `280` |
32
+ | `scrollable` | 内容超出视口可用高度时限高并滚动 | `boolean` | `true` |
33
+ | `children` | 触发元素 | `ReactNode` | - |
@@ -0,0 +1,118 @@
1
+ # Tree 树形控件
2
+
3
+ 用于展示层级结构数据,支持勾选、拖拽排序、异步加载与虚拟滚动。
4
+
5
+ - 导入:`import { Tree } from "lingee-ui";`
6
+ - 按需导入:`import { Tree } from "lingee-ui/tree";`
7
+ - 可用类型:`TreeProps`, `TreeNodeData`, `TreeNodeState`, `TreeSize`, `TreeIndentGuide`, `TreeFieldNames`, `TreeCheckInfo`, `TreeSelectInfo`, `TreeExpandInfo`, `TreeDropInfo`, `TreeAllowDropOptions`, `TreeExpandAction`
8
+
9
+ ## 最小示例
10
+
11
+ ```tsx
12
+ import { Tree } from "lingee-ui";
13
+ import type { TreeNodeData } from "lingee-ui";
14
+
15
+ const treeData: TreeNodeData[] = [
16
+ {
17
+ key: "finance",
18
+ title: "Finance Analysis",
19
+ children: [
20
+ { key: "finance-annual", title: "Annual Report" },
21
+ { key: "finance-budget", title: "Budget Execution" },
22
+ { key: "finance-cost", title: "Cost Breakdown" },
23
+ ],
24
+ },
25
+ {
26
+ key: "sales",
27
+ title: "Sales Analysis",
28
+ children: [
29
+ { key: "sales-review", title: "Performance Review" },
30
+ {
31
+ key: "sales-region",
32
+ title: "Regional Breakdown",
33
+ children: [
34
+ { key: "sales-region-north", title: "North Region" },
35
+ { key: "sales-region-south", title: "South Region" },
36
+ ],
37
+ },
38
+ ],
39
+ },
40
+ { key: "customer", title: "Customer Satisfaction" },
41
+ ];
42
+
43
+ export default function BasicDemo() {
44
+ return (
45
+ <div style={{ width: 280 }}>
46
+ <Tree
47
+ treeData={treeData}
48
+ defaultExpandedKeys={["finance", "sales"]}
49
+ defaultSelectedKeys={["finance-budget"]}
50
+ />
51
+ </div>
52
+ );
53
+ }
54
+ ```
55
+
56
+ ## API
57
+
58
+ ### Tree
59
+
60
+ | 属性 | 说明 | 类型 | 默认值 |
61
+ |------|------|------|--------|
62
+ | `treeData` | 节点数据 | `TreeNodeData[]` | - |
63
+ | `fieldNames` | 字段名映射,用于适配非标准数据结构 | `{ key?, title?, children? }` | - |
64
+ | `size` | 行高尺寸 | `"sm" \| "md" \| "lg"` | `"md"` |
65
+ | `indentGuide` | 缩进引导线形态 | `"none" \| "line"` | `"line"` |
66
+ | `expandedKeys` | 展开的节点 key(受控) | `Key[]` | - |
67
+ | `defaultExpandedKeys` | 默认展开的节点 key | `Key[]` | - |
68
+ | `defaultExpandAll` | 默认展开全部节点 | `boolean` | `false` |
69
+ | `autoExpandParent` | 展开子节点时自动展开其父节点 | `boolean` | `false` |
70
+ | `expandAction` | 触发展开的交互方式 | `false \| "click" \| "doubleClick"` | `"click"` |
71
+ | `onExpand` | 展开状态变化回调 | `(keys, info) => void` | - |
72
+ | `selectable` | 是否可选中 | `boolean` | `true` |
73
+ | `multiple` | 是否支持多选 | `boolean` | `false` |
74
+ | `selectedKeys` | 选中的节点 key(受控) | `Key[]` | - |
75
+ | `defaultSelectedKeys` | 默认选中的节点 key | `Key[]` | - |
76
+ | `onSelect` | 选中状态变化回调 | `(keys, info) => void` | - |
77
+ | `checkable` | 是否显示勾选框 | `boolean` | `false` |
78
+ | `checkStrictly` | 父子节点勾选状态不再联动 | `boolean` | `false` |
79
+ | `checkedKeys` | 勾选的节点 key(受控) | `Key[] \| { checked, halfChecked }` | - |
80
+ | `defaultCheckedKeys` | 默认勾选的节点 key | `Key[]` | - |
81
+ | `onCheck` | 勾选状态变化回调 | `(keys, info) => void` | - |
82
+ | `showIcon` | 是否显示节点图标 | `boolean` | `false` |
83
+ | `icon` | 全局节点图标,函数形式可按展开态切换 | `ReactNode \| ((node, state: { expanded, isLeaf }) => ReactNode)` | - |
84
+ | `switcherIcon` | 自定义展开箭头,函数形式可按展开态切换 | `ReactNode \| ((state: { expanded, isLeaf }) => ReactNode)` | - |
85
+ | `titleRender` | 自定义单行内容 | `(node) => ReactNode` | - |
86
+ | `loadData` | 异步加载子节点 | `(node) => Promise<unknown>` | - |
87
+ | `loadedKeys` | 已加载完成的节点 key | `Key[]` | - |
88
+ | `draggable` | 是否可拖拽排序 | `boolean \| ((node) => boolean)` | `false` |
89
+ | `allowDrop` | 校验能否放置到目标位置 | `(options) => boolean` | - |
90
+ | `onDrop` | 拖拽放置回调 | `(info) => void` | - |
91
+ | `height` | 可视区高度,设置后启用虚拟滚动 | `number` | - |
92
+ | `itemHeight` | 虚拟滚动的单项高度 | `number` | 按 `size` 推导 |
93
+ | `virtual` | 关闭虚拟滚动 | `boolean` | - |
94
+ | `disabled` | 整体禁用 | `boolean` | `false` |
95
+ | `loading` | 加载状态,展示遮罩 | `boolean` | `false` |
96
+ | `empty` | 无数据时的展示内容 | `ReactNode` | `<Empty />` |
97
+ | `animated` | 展开 / 折叠是否启用高度过渡动效(虚拟滚动下无效) | `boolean` | `true` |
98
+ | `onRightClick` | 节点右键回调 | `(info) => void` | - |
99
+
100
+ ### TreeNodeData
101
+
102
+ | 属性 | 说明 | 类型 |
103
+ |------|------|------|
104
+ | `key` | 节点唯一标识 | `Key` |
105
+ | `title` | 节点标题 | `ReactNode` |
106
+ | `children` | 子节点 | `TreeNodeData[]` |
107
+ | `icon` | 节点前置图标,覆盖 Tree 上的全局 `icon` | `ReactNode` |
108
+ | `disabled` | 是否禁用 | `boolean` |
109
+ | `disableCheckbox` | 是否禁用勾选框 | `boolean` |
110
+ | `checkable` | 是否可勾选 | `boolean` |
111
+ | `isLeaf` | 是否强制视作叶子节点 | `boolean` |
112
+ | `selectable` | 是否可选中 | `boolean` |
113
+
114
+ ## 注意事项
115
+
116
+ - 组件不持有 `treeData`,异步加载与拖拽排序均需消费方自行更新数据
117
+ - 节点内部结构由底层 `@rc-component/tree` 生成,类名为 `lg-tree-treenode`、`lg-tree-switcher` 等单横线形式,覆盖样式时需按此书写
118
+ - 虚拟滚动开启后行高必须固定,`titleRender` 中不要渲染高度不定的内容
@@ -0,0 +1,41 @@
1
+ # Upload 上传
2
+
3
+ 文件上传组件,支持点击和拖拽上传。
4
+
5
+ - 导入:`import { Upload } from "lingee-ui";`
6
+ - 可用类型:`UploadProps`, `UploadFile`, `UploadFileStatus`, `CustomRequestOptions`, `CustomRequestReturn`, `RejectReason`, `FileItemActions`
7
+
8
+ ## 最小示例
9
+
10
+ ```tsx
11
+ import { Upload, Button } from "lingee-ui";
12
+
13
+ export default function BasicDemo() {
14
+ return (
15
+ <Upload
16
+ onChange={(fileList) => console.log("File list:", fileList)}
17
+ >
18
+ <Button>Click to upload</Button>
19
+ </Upload>
20
+ );
21
+ }
22
+ ```
23
+
24
+ ## API
25
+
26
+ | 属性 | 说明 | 类型 | 默认值 |
27
+ |------|------|------|--------|
28
+ | `accept` | 接受的文件类型 | `string` | - |
29
+ | `multiple` | 是否允许多选 | `boolean` | `false` |
30
+ | `disabled` | 是否禁用 | `boolean` | `false` |
31
+ | `drag` | 是否启用拖拽上传 | `boolean` | `false` |
32
+ | `maxCount` | 最大文件数量 | `number` | - |
33
+ | `maxSize` | 单文件最大大小(字节) | `number` | - |
34
+ | `fileList` | 文件列表(受控) | `UploadFile[]` | - |
35
+ | `showFileList` | 是否显示文件列表 | `boolean` | `true` |
36
+ | `onChange` | 文件列表变化回调 | `(fileList: UploadFile[]) => void` | - |
37
+ | `onReject` | 校验未通过回调 | `(files: File[], reason: "size" \| "type" \| "count") => void` | - |
38
+ | `customRequest` | 自定义上传请求。省略则为仅收集模式 | `(options: CustomRequestOptions) => { abort }` | - |
39
+ | `pasteable` | 是否支持粘贴文件(如截图) | `boolean` | `false` |
40
+ | `validateAccept` | 是否按 `accept` 校验类型,拦住拖拽与粘贴 | `boolean` | `false` |
41
+ | `children` | 触发区域 | `ReactNode` | - |