@fangxinyan/lumina 0.3.0 → 0.5.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.
- package/dist/Accordion.cjs +3 -3
- package/dist/Accordion.js +2 -2
- package/dist/Alert.cjs +3 -3
- package/dist/Alert.js +2 -2
- package/dist/AutoComplete-P5KZMZO5.css +54 -0
- package/dist/AutoComplete.cjs +15 -0
- package/dist/AutoComplete.cjs.map +1 -0
- package/dist/AutoComplete.d.cts +51 -0
- package/dist/AutoComplete.d.ts +51 -0
- package/dist/AutoComplete.js +6 -0
- package/dist/AutoComplete.js.map +1 -0
- package/dist/Button.cjs +4 -4
- package/dist/Button.js +2 -2
- package/dist/Calendar.cjs +3 -3
- package/dist/Calendar.js +2 -2
- package/dist/Cascader.cjs +3 -3
- package/dist/Cascader.js +2 -2
- package/dist/Checkbox.cjs +4 -4
- package/dist/Checkbox.js +2 -2
- package/dist/CommandPalette.cjs +4 -4
- package/dist/CommandPalette.js +3 -3
- package/dist/Drawer.cjs +3 -3
- package/dist/Drawer.js +2 -2
- package/dist/Form-5GRVZNDO.css +67 -0
- package/dist/Form.cjs +20 -0
- package/dist/Form.cjs.map +1 -0
- package/dist/Form.d.cts +85 -0
- package/dist/Form.d.ts +85 -0
- package/dist/Form.js +3 -0
- package/dist/Form.js.map +1 -0
- package/dist/Icon.cjs +3 -3
- package/dist/Icon.d.cts +1 -1
- package/dist/Icon.d.ts +1 -1
- package/dist/Icon.js +1 -1
- package/dist/Image.cjs +4 -4
- package/dist/Image.js +2 -2
- package/dist/Input.cjs +4 -4
- package/dist/Input.js +2 -2
- package/dist/InputNumber-VXQIWLQC.css +40 -0
- package/dist/InputNumber.cjs +14 -0
- package/dist/InputNumber.cjs.map +1 -0
- package/dist/InputNumber.d.cts +46 -0
- package/dist/InputNumber.d.ts +46 -0
- package/dist/InputNumber.js +5 -0
- package/dist/InputNumber.js.map +1 -0
- package/dist/Modal.cjs +4 -4
- package/dist/Modal.js +3 -3
- package/dist/Pagination.cjs +5 -5
- package/dist/Pagination.js +4 -4
- package/dist/Select.cjs +4 -4
- package/dist/Select.js +3 -3
- package/dist/{Slider-X4PVA65R.css → Slider-3JKA5EW6.css} +44 -25
- package/dist/Slider.cjs +2 -2
- package/dist/Slider.d.cts +8 -5
- package/dist/Slider.d.ts +8 -5
- package/dist/Slider.js +1 -1
- package/dist/Table.cjs +8 -8
- package/dist/Table.js +6 -6
- package/dist/Tag.cjs +4 -4
- package/dist/Tag.js +2 -2
- package/dist/Toast.cjs +4 -4
- package/dist/Toast.js +2 -2
- package/dist/Typography.cjs +7 -7
- package/dist/Typography.js +2 -2
- package/dist/{chunk-RIDCBNCM.cjs → chunk-2ENTRT7R.cjs} +5 -5
- package/dist/{chunk-RIDCBNCM.cjs.map → chunk-2ENTRT7R.cjs.map} +1 -1
- package/dist/chunk-2TZ2R7L2.js +235 -0
- package/dist/chunk-2TZ2R7L2.js.map +1 -0
- package/dist/{chunk-24FAK7QU.cjs → chunk-3BZ47QNV.cjs} +7 -7
- package/dist/{chunk-24FAK7QU.cjs.map → chunk-3BZ47QNV.cjs.map} +1 -1
- package/dist/{chunk-URLSZPS5.js → chunk-6XZ362VL.js} +4 -4
- package/dist/{chunk-URLSZPS5.js.map → chunk-6XZ362VL.js.map} +1 -1
- package/dist/{chunk-XDFZRV3V.js → chunk-6Z24VO3K.js} +3 -3
- package/dist/{chunk-XDFZRV3V.js.map → chunk-6Z24VO3K.js.map} +1 -1
- package/dist/{chunk-AWLBLRQX.cjs → chunk-77TZHI76.cjs} +7 -7
- package/dist/{chunk-AWLBLRQX.cjs.map → chunk-77TZHI76.cjs.map} +1 -1
- package/dist/{chunk-TMZVX6NO.js → chunk-7M7NAMR5.js} +3 -3
- package/dist/{chunk-TMZVX6NO.js.map → chunk-7M7NAMR5.js.map} +1 -1
- package/dist/{chunk-WQFC5EMC.js → chunk-AESLEYST.js} +4 -4
- package/dist/{chunk-WQFC5EMC.js.map → chunk-AESLEYST.js.map} +1 -1
- package/dist/chunk-BCPAY65C.cjs +169 -0
- package/dist/chunk-BCPAY65C.cjs.map +1 -0
- package/dist/{chunk-XZ22B3NW.js → chunk-CTYW42GG.js} +5 -5
- package/dist/{chunk-XZ22B3NW.js.map → chunk-CTYW42GG.js.map} +1 -1
- package/dist/chunk-E62JFAHW.js +147 -0
- package/dist/chunk-E62JFAHW.js.map +1 -0
- package/dist/{chunk-U5BZ7E3F.js → chunk-FXQGPHK2.js} +3 -3
- package/dist/{chunk-U5BZ7E3F.js.map → chunk-FXQGPHK2.js.map} +1 -1
- package/dist/{chunk-3HNRKO3M.cjs → chunk-HJIKU6MF.cjs} +4 -4
- package/dist/{chunk-3HNRKO3M.cjs.map → chunk-HJIKU6MF.cjs.map} +1 -1
- package/dist/{chunk-EHO2JH2L.cjs → chunk-HXSAH4Y6.cjs} +7 -7
- package/dist/{chunk-EHO2JH2L.cjs.map → chunk-HXSAH4Y6.cjs.map} +1 -1
- package/dist/{chunk-3LI6QH2Q.js → chunk-I7WLFADD.js} +3 -3
- package/dist/{chunk-3LI6QH2Q.js.map → chunk-I7WLFADD.js.map} +1 -1
- package/dist/chunk-IHACXMOI.js +307 -0
- package/dist/chunk-IHACXMOI.js.map +1 -0
- package/dist/{chunk-AGN3JSUH.cjs → chunk-IJA26LRY.cjs} +4 -4
- package/dist/{chunk-AGN3JSUH.cjs.map → chunk-IJA26LRY.cjs.map} +1 -1
- package/dist/chunk-IOWREUEP.js +170 -0
- package/dist/chunk-IOWREUEP.js.map +1 -0
- package/dist/{chunk-5UOBYRYJ.js → chunk-JXHMJUVI.js} +3 -3
- package/dist/{chunk-5UOBYRYJ.js.map → chunk-JXHMJUVI.js.map} +1 -1
- package/dist/{chunk-TY5EAKEI.js → chunk-KW7Z4IQC.js} +3 -3
- package/dist/{chunk-TY5EAKEI.js.map → chunk-KW7Z4IQC.js.map} +1 -1
- package/dist/{chunk-276NALYW.js → chunk-LXNR6TQK.js} +3 -3
- package/dist/{chunk-276NALYW.js.map → chunk-LXNR6TQK.js.map} +1 -1
- package/dist/{chunk-WREHBIJ5.cjs → chunk-MDQNUKCP.cjs} +12 -12
- package/dist/{chunk-WREHBIJ5.cjs.map → chunk-MDQNUKCP.cjs.map} +1 -1
- package/dist/chunk-N6ZLZUBF.cjs +257 -0
- package/dist/chunk-N6ZLZUBF.cjs.map +1 -0
- package/dist/{chunk-GOIQR4OH.cjs → chunk-N73JGXYZ.cjs} +4 -4
- package/dist/{chunk-GOIQR4OH.cjs.map → chunk-N73JGXYZ.cjs.map} +1 -1
- package/dist/{chunk-MFWOBALK.cjs → chunk-NN7WMXY4.cjs} +4 -4
- package/dist/{chunk-MFWOBALK.cjs.map → chunk-NN7WMXY4.cjs.map} +1 -1
- package/dist/{chunk-U4K7HOMW.js → chunk-O7C6S644.js} +3 -3
- package/dist/{chunk-U4K7HOMW.js.map → chunk-O7C6S644.js.map} +1 -1
- package/dist/{chunk-YXKJOPYT.js → chunk-OM76QWUN.js} +3 -3
- package/dist/{chunk-YXKJOPYT.js.map → chunk-OM76QWUN.js.map} +1 -1
- package/dist/{chunk-Q2EXOT4B.js → chunk-PKXXR76Q.js} +3 -3
- package/dist/{chunk-Q2EXOT4B.js.map → chunk-PKXXR76Q.js.map} +1 -1
- package/dist/{chunk-GEYMWUW6.js → chunk-QOGROEVD.js} +23 -5
- package/dist/chunk-QOGROEVD.js.map +1 -0
- package/dist/chunk-QVFEKGKI.cjs +331 -0
- package/dist/chunk-QVFEKGKI.cjs.map +1 -0
- package/dist/{chunk-HNVRMOL3.cjs → chunk-RQV7SMIZ.cjs} +5 -5
- package/dist/{chunk-HNVRMOL3.cjs.map → chunk-RQV7SMIZ.cjs.map} +1 -1
- package/dist/{chunk-RSZNFKCQ.cjs → chunk-RWHWEQQX.cjs} +6 -6
- package/dist/{chunk-RSZNFKCQ.cjs.map → chunk-RWHWEQQX.cjs.map} +1 -1
- package/dist/{chunk-AR4M7QGF.cjs → chunk-SMHXSEBD.cjs} +7 -7
- package/dist/{chunk-AR4M7QGF.cjs.map → chunk-SMHXSEBD.cjs.map} +1 -1
- package/dist/{chunk-RVSWH4RH.cjs → chunk-T4PI2ZX7.cjs} +14 -14
- package/dist/{chunk-RVSWH4RH.cjs.map → chunk-T4PI2ZX7.cjs.map} +1 -1
- package/dist/{chunk-MTCLJHXU.js → chunk-TZLM5GF4.js} +4 -4
- package/dist/{chunk-MTCLJHXU.js.map → chunk-TZLM5GF4.js.map} +1 -1
- package/dist/{chunk-CALRTZZ7.cjs → chunk-TZXEZFCI.cjs} +5 -5
- package/dist/{chunk-CALRTZZ7.cjs.map → chunk-TZXEZFCI.cjs.map} +1 -1
- package/dist/chunk-VQBZKRIB.cjs +192 -0
- package/dist/chunk-VQBZKRIB.cjs.map +1 -0
- package/dist/{chunk-WBMF7WM3.js → chunk-WUOFJPZ4.js} +3 -3
- package/dist/{chunk-WBMF7WM3.js.map → chunk-WUOFJPZ4.js.map} +1 -1
- package/dist/{chunk-SVVB6POY.cjs → chunk-WVBFQB26.cjs} +6 -6
- package/dist/{chunk-SVVB6POY.cjs.map → chunk-WVBFQB26.cjs.map} +1 -1
- package/dist/{chunk-DBJIK4JE.js → chunk-XCYE4OQV.js} +3 -3
- package/dist/{chunk-DBJIK4JE.js.map → chunk-XCYE4OQV.js.map} +1 -1
- package/dist/{chunk-7JYI5THC.cjs → chunk-XYVJ3FBQ.cjs} +5 -5
- package/dist/{chunk-7JYI5THC.cjs.map → chunk-XYVJ3FBQ.cjs.map} +1 -1
- package/dist/{chunk-YVO7XO4W.cjs → chunk-YCHUHMNP.cjs} +22 -4
- package/dist/chunk-YCHUHMNP.cjs.map +1 -0
- package/dist/{chunk-MKR4X57L.cjs → chunk-YFBHVTKN.cjs} +7 -7
- package/dist/{chunk-MKR4X57L.cjs.map → chunk-YFBHVTKN.cjs.map} +1 -1
- package/dist/{chunk-NGQDVJH3.js → chunk-ZFJHUOFU.js} +3 -3
- package/dist/{chunk-NGQDVJH3.js.map → chunk-ZFJHUOFU.js.map} +1 -1
- package/dist/index.cjs +131 -108
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +5 -2
- package/dist/index.d.ts +5 -2
- package/dist/index.js +29 -26
- package/dist/index.js.map +1 -1
- package/dist/styles.css +38 -25
- package/docs/llms/autocomplete.md +56 -0
- package/docs/llms/form.md +147 -0
- package/docs/llms/inputnumber.md +57 -0
- package/docs/llms/slider.md +13 -2
- package/docs/llms.md +6 -3
- package/package.json +1 -1
- package/dist/chunk-B5JH7NRZ.cjs +0 -133
- package/dist/chunk-B5JH7NRZ.cjs.map +0 -1
- package/dist/chunk-GEYMWUW6.js.map +0 -1
- package/dist/chunk-QJGKI2BD.js +0 -111
- package/dist/chunk-QJGKI2BD.js.map +0 -1
- package/dist/chunk-YVO7XO4W.cjs.map +0 -1
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# AutoComplete 自动补全
|
|
2
|
+
|
|
3
|
+
> 输入时展示建议下拉,不限定必须从候选中选。
|
|
4
|
+
|
|
5
|
+
## 示例
|
|
6
|
+
|
|
7
|
+
### 基础
|
|
8
|
+
|
|
9
|
+
```tsx
|
|
10
|
+
<AutoComplete
|
|
11
|
+
options={[
|
|
12
|
+
{ value: "light" },
|
|
13
|
+
{ value: "dark" },
|
|
14
|
+
{ value: "system" },
|
|
15
|
+
]}
|
|
16
|
+
placeholder="主题"
|
|
17
|
+
/>
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
### 自定义 label
|
|
21
|
+
|
|
22
|
+
```tsx
|
|
23
|
+
options={[{ value: "zh", label: "中文 · Chinese" }]}
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### 动态加载
|
|
27
|
+
|
|
28
|
+
onSearch 在用户输入时触发,常配合后端检索使用。
|
|
29
|
+
|
|
30
|
+
```tsx
|
|
31
|
+
const [opts, setOpts] = useState([]);
|
|
32
|
+
<AutoComplete
|
|
33
|
+
options={opts}
|
|
34
|
+
onSearch={(text) => setOpts(generate(text))}
|
|
35
|
+
/>
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## API
|
|
39
|
+
|
|
40
|
+
**AutoComplete**
|
|
41
|
+
|
|
42
|
+
| Prop | 类型 | 默认 | 说明 |
|
|
43
|
+
| --- | --- | --- | --- |
|
|
44
|
+
| value / defaultValue | `string` | — | 受控 / 初始值 |
|
|
45
|
+
| onChange | `(value, option?) => void` | — | 文本变更 |
|
|
46
|
+
| onSelect | `(value, option) => void` | — | 选中项回调 |
|
|
47
|
+
| onSearch | `(text) => void` | — | 输入变化回调 |
|
|
48
|
+
| options \* | `{ value, label?, disabled? }[]` | — | 候选项 |
|
|
49
|
+
| filterOption | `boolean | (input, option) => boolean` | `true` | 过滤函数,false 关闭过滤 |
|
|
50
|
+
| notFoundContent | `ReactNode` | — | 无匹配占位 |
|
|
51
|
+
| allowClear / disabled / size / autoFocus / placeholder | `-` | — | 常规属性 |
|
|
52
|
+
| matchTriggerWidth | `boolean` | `true` | 下拉宽度跟随输入框 |
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
[← 回到索引](../llms.md)
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
# Form 表单
|
|
2
|
+
|
|
3
|
+
> 受控表单,字段绑定 + 校验,API 对齐 antd。
|
|
4
|
+
|
|
5
|
+
## 示例
|
|
6
|
+
|
|
7
|
+
### 基础
|
|
8
|
+
|
|
9
|
+
```tsx
|
|
10
|
+
const [form] = Form.useForm();
|
|
11
|
+
|
|
12
|
+
<Form form={form} layout="vertical" onFinish={(values) => console.log(values)}>
|
|
13
|
+
<Form.Item name="username" label="用户名" rules={[{ required: true }]}>
|
|
14
|
+
<Input placeholder="输入用户名" />
|
|
15
|
+
</Form.Item>
|
|
16
|
+
<Form.Item name="email" label="邮箱" rules={[{ type: "email", message: "邮箱格式不正确" }]}>
|
|
17
|
+
<Input placeholder="foo@example.com" />
|
|
18
|
+
</Form.Item>
|
|
19
|
+
<Form.Item>
|
|
20
|
+
<Button type="submit" variant="primary">提交</Button>
|
|
21
|
+
</Form.Item>
|
|
22
|
+
</Form>
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
### 复合校验 + 自定义 validator
|
|
26
|
+
|
|
27
|
+
rules 支持 required / min / max / pattern / type / validator。validator 可返回 Promise。
|
|
28
|
+
|
|
29
|
+
```tsx
|
|
30
|
+
rules={[
|
|
31
|
+
{ required: true, message: "必填" },
|
|
32
|
+
{ pattern: /^[a-z0-9_]+$/, message: "只允许小写字母、数字和下划线" },
|
|
33
|
+
{
|
|
34
|
+
validator: async (_, value) => {
|
|
35
|
+
if (value === "admin") throw new Error("admin 已被占用");
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
]}
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### 非 value 类控件
|
|
42
|
+
|
|
43
|
+
Checkbox / Switch 的绑定属性不是 value,需要用 valuePropName 指定;对应的 trigger 名称通常仍是 onChange。
|
|
44
|
+
|
|
45
|
+
```tsx
|
|
46
|
+
<Form.Item name="agree" valuePropName="checked">
|
|
47
|
+
<Checkbox>同意协议</Checkbox>
|
|
48
|
+
</Form.Item>
|
|
49
|
+
|
|
50
|
+
<Form.Item name="notify" valuePropName="checked">
|
|
51
|
+
<Switch />
|
|
52
|
+
</Form.Item>
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### 实时值预览
|
|
56
|
+
|
|
57
|
+
onValuesChange 可以监听任何字段变化。下方面板会实时展示 form.getFieldsValue() 的结果。
|
|
58
|
+
|
|
59
|
+
```tsx
|
|
60
|
+
<Form onValuesChange={(changed, all) => setSnapshot(all)}>
|
|
61
|
+
...
|
|
62
|
+
</Form>
|
|
63
|
+
<pre>{JSON.stringify(snapshot, null, 2)}</pre>
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### 横排复选 (嵌套 Form.Item)
|
|
67
|
+
|
|
68
|
+
外层 Form.Item 只做布局(无 name),内层若干 Form.Item 各自绑定字段并加 noStyle。my-assistant 里 "新建角色" 弹窗用的就是这个模式。
|
|
69
|
+
|
|
70
|
+
```tsx
|
|
71
|
+
<Form.Item className="checkbox-row">
|
|
72
|
+
<Form.Item name="addToHistory" valuePropName="checked" initialValue={true} noStyle>
|
|
73
|
+
<Checkbox label="添加到登录列表" />
|
|
74
|
+
</Form.Item>
|
|
75
|
+
<Form.Item name="setAsLast" valuePropName="checked" initialValue={false} noStyle>
|
|
76
|
+
<Checkbox label="设为最近登录" />
|
|
77
|
+
</Form.Item>
|
|
78
|
+
</Form.Item>
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### 命令式 API
|
|
82
|
+
|
|
83
|
+
通过 Form.useForm() 拿到实例,外部可主动 setFieldsValue / validateFields / resetFields。
|
|
84
|
+
|
|
85
|
+
```tsx
|
|
86
|
+
form.setFieldsValue({ title: "..." })
|
|
87
|
+
form.validateFields().then(values => {...})
|
|
88
|
+
form.resetFields()
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## API
|
|
92
|
+
|
|
93
|
+
**Form**
|
|
94
|
+
|
|
95
|
+
| Prop | 类型 | 默认 | 说明 |
|
|
96
|
+
| --- | --- | --- | --- |
|
|
97
|
+
| form | `FormInstance` | — | 由 useForm() 创建的实例,受控推荐传入 |
|
|
98
|
+
| layout | `"horizontal" | "vertical" | "inline"` | `"horizontal"` | 布局方式 |
|
|
99
|
+
| initialValues | `Partial<V>` | — | 字段初始值 |
|
|
100
|
+
| onFinish / onFinishFailed | `(values | {values, errorFields}) => void` | — | 提交成功/失败 |
|
|
101
|
+
| onValuesChange | `(changed, all) => void` | — | 任一字段变化 |
|
|
102
|
+
| requiredMark | `boolean` | `true` | 是否在必填 label 前显示 * |
|
|
103
|
+
| disabled | `boolean` | — | 整体禁用 |
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
**Form.Item**
|
|
107
|
+
|
|
108
|
+
| Prop | 类型 | 默认 | 说明 |
|
|
109
|
+
| --- | --- | --- | --- |
|
|
110
|
+
| name | `string` | — | 字段 key;省略则仅布局不绑定 |
|
|
111
|
+
| label | `ReactNode` | — | 字段标签 |
|
|
112
|
+
| rules | `Rule[]` | — | 校验规则数组 |
|
|
113
|
+
| noStyle | `boolean` | — | 不渲染外层 item 包装 |
|
|
114
|
+
| valuePropName | `string` | `"value"` | 注入值的 prop 名 |
|
|
115
|
+
| trigger | `string` | `"onChange"` | 监听的事件名 |
|
|
116
|
+
| initialValue | `any` | — | 此字段初始值;优先级低于 Form initialValues |
|
|
117
|
+
| help / extra | `ReactNode` | — | 辅助/补充说明 |
|
|
118
|
+
| hidden | `boolean` | — | 隐藏(字段仍保留) |
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
**Rule**
|
|
122
|
+
|
|
123
|
+
| Prop | 类型 | 默认 | 说明 |
|
|
124
|
+
| --- | --- | --- | --- |
|
|
125
|
+
| required | `boolean` | — | 必填 |
|
|
126
|
+
| message | `string` | — | 错误提示文案 |
|
|
127
|
+
| pattern | `RegExp` | — | 正则校验 |
|
|
128
|
+
| min / max / len | `number` | — | 字符串/数组长度或数字范围 |
|
|
129
|
+
| type | `string` | — | "string" \| "number" \| "email" \| "url" \| "array" |
|
|
130
|
+
| validator | `(rule, value) => Promise<void>` | — | 自定义,抛出错误或 reject 视为失败 |
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
**FormInstance**
|
|
134
|
+
|
|
135
|
+
| Prop | 类型 | 默认 | 说明 |
|
|
136
|
+
| --- | --- | --- | --- |
|
|
137
|
+
| getFieldValue / getFieldsValue | `(name?) => any` | — | 读取字段值 |
|
|
138
|
+
| setFieldValue / setFieldsValue | `(name/obj, value) => void` | — | 写入字段值 |
|
|
139
|
+
| validateFields | `(names?) => Promise<V>` | — | 触发校验,返回 Promise<values>,失败时 reject({errorFields}) |
|
|
140
|
+
| resetFields | `(names?) => void` | — | 重置到初始值 |
|
|
141
|
+
| isFieldTouched | `(name) => boolean` | — | 字段是否交互过 |
|
|
142
|
+
| getFieldError | `(name) => string[]` | — | 字段当前错误信息 |
|
|
143
|
+
| submit | `() => void` | — | 等同于触发提交 |
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
[← 回到索引](../llms.md)
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# InputNumber 数字输入
|
|
2
|
+
|
|
3
|
+
> 带步进按钮的数字输入框。
|
|
4
|
+
|
|
5
|
+
## 示例
|
|
6
|
+
|
|
7
|
+
### 基础
|
|
8
|
+
|
|
9
|
+
```tsx
|
|
10
|
+
<InputNumber defaultValue={5} min={0} max={100} />
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
### 小数精度
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
<InputNumber defaultValue={0.5} min={0} max={1} step={0.1} precision={2} />
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### 尺寸
|
|
20
|
+
|
|
21
|
+
```tsx
|
|
22
|
+
<InputNumber size="sm" /> / <InputNumber /> / <InputNumber size="lg" />
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
### 隐藏步进按钮
|
|
26
|
+
|
|
27
|
+
```tsx
|
|
28
|
+
<InputNumber controls={false} defaultValue={100} />
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### 受控
|
|
32
|
+
|
|
33
|
+
```tsx
|
|
34
|
+
const [v, setV] = useState(10);
|
|
35
|
+
<InputNumber value={v} onChange={setV} />
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## API
|
|
39
|
+
|
|
40
|
+
**InputNumber**
|
|
41
|
+
|
|
42
|
+
| Prop | 类型 | 默认 | 说明 |
|
|
43
|
+
| --- | --- | --- | --- |
|
|
44
|
+
| value / defaultValue | `number | null` | — | 受控 / 初始值 |
|
|
45
|
+
| onChange | `(value: number | null) => void` | — | 变更回调 |
|
|
46
|
+
| onPressEnter | `(e) => void` | — | 回车事件 |
|
|
47
|
+
| min / max | `number` | — | 数值范围 |
|
|
48
|
+
| step | `number` | `1` | 步进值 |
|
|
49
|
+
| precision | `number` | — | 小数位数 |
|
|
50
|
+
| size | `"sm" | "md" | "lg"` | `"md"` | 尺寸 |
|
|
51
|
+
| controls | `boolean` | `true` | 是否显示步进按钮 |
|
|
52
|
+
| disabled / readOnly / placeholder | `-` | — | 常规属性 |
|
|
53
|
+
| prefix / suffix | `ReactNode` | — | 内嵌前/后置内容 |
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
[← 回到索引](../llms.md)
|
package/docs/llms/slider.md
CHANGED
|
@@ -41,14 +41,24 @@ const [v, setV] = useState<[number, number]>([20, 70]);
|
|
|
41
41
|
<Slider range value={v} onChange={setV} showValue />
|
|
42
42
|
```
|
|
43
43
|
|
|
44
|
-
###
|
|
44
|
+
### 渐变色
|
|
45
45
|
|
|
46
|
-
|
|
46
|
+
colors 传入颜色数组,填充和滑块圆点会按当前位置动态插值。
|
|
47
|
+
|
|
48
|
+
```tsx
|
|
49
|
+
<Slider defaultValue={60} showValue
|
|
50
|
+
colors={["#3b82f6", "#22c55e", "#eab308", "#ef4444"]} />
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### 刻度标记 + 渐变
|
|
54
|
+
|
|
55
|
+
marks 配合 colors 可直观表达冷暖等语义。
|
|
47
56
|
|
|
48
57
|
```tsx
|
|
49
58
|
<Slider
|
|
50
59
|
defaultValue={37}
|
|
51
60
|
marks={{ 0: "0°C", 26: "冷", 37: "正常", 100: "100°C" }}
|
|
61
|
+
colors={["#3b82f6", "#22c55e", "#eab308", "#ef4444"]}
|
|
52
62
|
/>
|
|
53
63
|
```
|
|
54
64
|
|
|
@@ -64,6 +74,7 @@ marks 提供可点击刻度,点击即可跳到该值。
|
|
|
64
74
|
| range | `boolean` | `false` | 是否为双滑块区间模式 |
|
|
65
75
|
| marks | `Record<number, ReactNode>` | — | 刻度,点击可跳到对应值 |
|
|
66
76
|
| tone | `"accent" | "success" | "warning" | "danger"` | `"accent"` | 色调 |
|
|
77
|
+
| colors | `string[]` | — | 渐变色数组,按位置插值;覆盖 tone |
|
|
67
78
|
| showValue | `boolean` | `false` | 显示数值 |
|
|
68
79
|
| disabled | `boolean` | `false` | 禁用 |
|
|
69
80
|
|
package/docs/llms.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
> 拟态风格的 React 18 组件库,目标是 Electron 桌面应用。**写给 AI 编程助手**的按需文档 —— 每个组件单独一个 `.md`,避免一次性读取全部。示例源自 playground 的 demo,可直接复制运行。
|
|
4
4
|
|
|
5
5
|
- **包名**: `@fangxinyan/lumina`
|
|
6
|
-
- **版本**: `0.
|
|
6
|
+
- **版本**: `0.5.0`
|
|
7
7
|
- **React 最低版本**: 18
|
|
8
8
|
- **环境**: 带打包器的 React 工程(Vite / Next.js / Webpack / Remix / Electron + Vite 等)
|
|
9
9
|
- **零运行时依赖**: 只依赖 `react` / `react-dom` (peer deps)
|
|
@@ -52,13 +52,16 @@
|
|
|
52
52
|
### 表单
|
|
53
53
|
|
|
54
54
|
- [Input 输入框](./llms/input.md) — 凹陷凹槽式输入域,支持前后置图标、错误态、禁用态。
|
|
55
|
+
- [InputNumber 数字输入](./llms/inputnumber.md) — 带步进按钮的数字输入框。
|
|
55
56
|
- [Switch 开关](./llms/switch.md) — 二元状态切换器。
|
|
56
57
|
- [Checkbox 复选框](./llms/checkbox.md) — 在一组选项中进行多项选择,或独立切换某个开关项。
|
|
57
58
|
- [Radio 单选](./llms/radio.md) — 在多个互斥选项中进行单项选择。
|
|
58
59
|
- [Slider 滑块](./llms/slider.md) — 在连续数值区间内取值。
|
|
59
60
|
- [Select 下拉选择](./llms/select.md) — 下拉选择,支持单/多选、搜索、分组、加载态。
|
|
61
|
+
- [AutoComplete 自动补全](./llms/autocomplete.md) — 输入时展示建议下拉,不限定必须从候选中选。
|
|
60
62
|
- [Cascader 级联选择](./llms/cascader.md) — 层级关联数据集合中的多级选择。
|
|
61
63
|
- [ColorPicker 颜色选择](./llms/colorpicker.md) — 拟态风格的颜色选择器:HSV 色域、色相、hex 输入、预设调色板。
|
|
64
|
+
- [Form 表单](./llms/form.md) — 受控表单,字段绑定 + 校验,API 对齐 antd。
|
|
62
65
|
|
|
63
66
|
### 数据展示
|
|
64
67
|
|
|
@@ -66,16 +69,16 @@
|
|
|
66
69
|
- [Tag 标签](./llms/tag.md) — 标记关键词、状态或分类。
|
|
67
70
|
- [Badge 徽标数](./llms/badge.md) — 右上角的小型计数或状态指示器。
|
|
68
71
|
- [Avatar 头像](./llms/avatar.md) — 用图像、首字母代表用户或事物。
|
|
72
|
+
- [Image 图片](./llms/image.md) — 凹陷外框包裹的图片容器,带预览、错误占位。
|
|
69
73
|
- [Divider 分隔符](./llms/divider.md) — 对内容进行分割。
|
|
70
74
|
- [Progress 进度](./llms/progress.md) — 条形进度 Progress 与环形进度 Ring。
|
|
71
75
|
- [List 列表](./llms/list.md) — 承载一组结构化的同质化数据。
|
|
72
76
|
- [Table 表格](./llms/table.md) — 结构化数据展示。
|
|
73
77
|
- [Table Pro](./llms/tablepro.md) — 带工具栏 / 搜索 / 筛选 / 排序 / 多选 / 分页的全功能表格。
|
|
74
|
-
- [Image 图片](./llms/image.md) — 凹陷外框包裹的图片容器,带预览、错误占位。
|
|
75
|
-
- [Calendar 日历](./llms/calendar.md) — 查看与选择日期。
|
|
76
78
|
- [Pagination 分页](./llms/pagination.md) — 分页控件,支持快速跳转与每页条数切换。
|
|
77
79
|
- [Tabs 选项卡](./llms/tabs.md) — 同一层级的内容分组,通过标签切换。
|
|
78
80
|
- [Accordion 折叠面板](./llms/accordion.md) — 纵向折叠面板。
|
|
81
|
+
- [Calendar 日历](./llms/calendar.md) — 查看与选择日期。
|
|
79
82
|
|
|
80
83
|
### 反馈
|
|
81
84
|
|
package/package.json
CHANGED
package/dist/chunk-B5JH7NRZ.cjs
DELETED
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
require('./tokens-BIIUTPKN.css');
|
|
4
|
-
require('./shared-NJHRNLRH.css');
|
|
5
|
-
require('./Slider-X4PVA65R.css');
|
|
6
|
-
var React = require('react');
|
|
7
|
-
var jsxRuntime = require('react/jsx-runtime');
|
|
8
|
-
|
|
9
|
-
function _interopNamespace(e) {
|
|
10
|
-
if (e && e.__esModule) return e;
|
|
11
|
-
var n = Object.create(null);
|
|
12
|
-
if (e) {
|
|
13
|
-
Object.keys(e).forEach(function (k) {
|
|
14
|
-
if (k !== 'default') {
|
|
15
|
-
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
16
|
-
Object.defineProperty(n, k, d.get ? d : {
|
|
17
|
-
enumerable: true,
|
|
18
|
-
get: function () { return e[k]; }
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
n.default = e;
|
|
24
|
-
return Object.freeze(n);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
28
|
-
|
|
29
|
-
// src/components/Slider/Slider.tsx
|
|
30
|
-
var asArray = (v, fallback) => {
|
|
31
|
-
if (v === void 0) return [fallback];
|
|
32
|
-
return Array.isArray(v) ? [...v] : [v];
|
|
33
|
-
};
|
|
34
|
-
var Slider = (props) => {
|
|
35
|
-
const {
|
|
36
|
-
min = 0,
|
|
37
|
-
max = 100,
|
|
38
|
-
step = 1,
|
|
39
|
-
disabled,
|
|
40
|
-
showValue,
|
|
41
|
-
tone = "accent",
|
|
42
|
-
marks,
|
|
43
|
-
className = ""
|
|
44
|
-
} = props;
|
|
45
|
-
const range = props.range === true;
|
|
46
|
-
const value = props.value;
|
|
47
|
-
const defaultValue = props.defaultValue;
|
|
48
|
-
const onChange = props.onChange;
|
|
49
|
-
const initial = React__namespace.useMemo(() => {
|
|
50
|
-
if (defaultValue !== void 0) return asArray(defaultValue, 0);
|
|
51
|
-
return range ? [min, max] : [0];
|
|
52
|
-
}, []);
|
|
53
|
-
const [inner, setInner] = React__namespace.useState(initial);
|
|
54
|
-
const isControlled = value !== void 0;
|
|
55
|
-
const nums = isControlled ? asArray(value, range ? min : 0) : inner;
|
|
56
|
-
const pctOf = (n) => (n - min) / (max - min) * 100;
|
|
57
|
-
const emit = (arr) => {
|
|
58
|
-
if (range) {
|
|
59
|
-
onChange?.([arr[0], arr[1]]);
|
|
60
|
-
} else {
|
|
61
|
-
onChange?.(arr[0]);
|
|
62
|
-
}
|
|
63
|
-
};
|
|
64
|
-
const updateAt = (index, next) => {
|
|
65
|
-
const clamped = Math.max(min, Math.min(max, next));
|
|
66
|
-
const out = [...nums];
|
|
67
|
-
out[index] = clamped;
|
|
68
|
-
if (range && out.length === 2 && out[0] > out[1]) {
|
|
69
|
-
out.sort((a, b) => a - b);
|
|
70
|
-
}
|
|
71
|
-
if (!isControlled) setInner(out);
|
|
72
|
-
emit(out);
|
|
73
|
-
};
|
|
74
|
-
const handleMarkClick = (mark) => {
|
|
75
|
-
if (disabled) return;
|
|
76
|
-
if (!range) {
|
|
77
|
-
updateAt(0, mark);
|
|
78
|
-
return;
|
|
79
|
-
}
|
|
80
|
-
const [a, b] = nums;
|
|
81
|
-
const closerIndex = Math.abs(a - mark) <= Math.abs(b - mark) ? 0 : 1;
|
|
82
|
-
updateAt(closerIndex, mark);
|
|
83
|
-
};
|
|
84
|
-
const fillLeft = range ? pctOf(Math.min(nums[0], nums[1])) : 0;
|
|
85
|
-
const fillRight = range ? 100 - pctOf(Math.max(nums[0], nums[1])) : 100 - pctOf(nums[0]);
|
|
86
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `slider ${tone} ${disabled ? "disabled" : ""} ${marks ? "has-marks" : ""} ${className}`, children: [
|
|
87
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "slider-track", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
88
|
-
"div",
|
|
89
|
-
{
|
|
90
|
-
className: "slider-fill",
|
|
91
|
-
style: { left: `${fillLeft}%`, right: `${fillRight}%` }
|
|
92
|
-
}
|
|
93
|
-
) }),
|
|
94
|
-
nums.map((n, i) => /* @__PURE__ */ jsxRuntime.jsxs(React__namespace.Fragment, { children: [
|
|
95
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "slider-thumb", style: { left: `${pctOf(n)}%` } }),
|
|
96
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
97
|
-
"input",
|
|
98
|
-
{
|
|
99
|
-
type: "range",
|
|
100
|
-
min,
|
|
101
|
-
max,
|
|
102
|
-
step,
|
|
103
|
-
value: n,
|
|
104
|
-
disabled,
|
|
105
|
-
onChange: (e) => updateAt(i, Number(e.target.value))
|
|
106
|
-
}
|
|
107
|
-
)
|
|
108
|
-
] }, i)),
|
|
109
|
-
showValue && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "slider-value", children: range ? `${nums[0]} \u2013 ${nums[1]}` : nums[0] }),
|
|
110
|
-
marks && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "slider-marks", children: Object.entries(marks).map(([k, label]) => {
|
|
111
|
-
const n = Number(k);
|
|
112
|
-
const left = pctOf(n);
|
|
113
|
-
const active = range ? n >= Math.min(nums[0], nums[1]) && n <= Math.max(nums[0], nums[1]) : n <= nums[0];
|
|
114
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
115
|
-
"span",
|
|
116
|
-
{
|
|
117
|
-
className: `slider-mark ${active ? "active" : ""}`,
|
|
118
|
-
style: { left: `${left}%` },
|
|
119
|
-
onClick: () => handleMarkClick(n),
|
|
120
|
-
children: [
|
|
121
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "slider-mark-dot" }),
|
|
122
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "slider-mark-label", children: label })
|
|
123
|
-
]
|
|
124
|
-
},
|
|
125
|
-
k
|
|
126
|
-
);
|
|
127
|
-
}) })
|
|
128
|
-
] });
|
|
129
|
-
};
|
|
130
|
-
|
|
131
|
-
exports.Slider = Slider;
|
|
132
|
-
//# sourceMappingURL=chunk-B5JH7NRZ.cjs.map
|
|
133
|
-
//# sourceMappingURL=chunk-B5JH7NRZ.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/Slider/Slider.tsx"],"names":["React","jsxs","jsx"],"mappings":"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","file":"chunk-B5JH7NRZ.cjs","sourcesContent":["import \"../../styles/tokens.css\";\nimport \"../../styles/shared.css\";\nimport \"./Slider.css\";\nimport * as React from \"react\";\n\nexport type SliderSingleValue = number;\nexport type SliderRangeValue = [number, number];\nexport type SliderValue = SliderSingleValue | SliderRangeValue;\n\ninterface SliderBaseProps {\n min?: number;\n max?: number;\n step?: number;\n disabled?: boolean;\n showValue?: boolean;\n tone?: \"accent\" | \"success\" | \"warning\" | \"danger\";\n /** Tick marks with labels. Clicking a mark snaps to it. */\n marks?: Record<number, React.ReactNode>;\n className?: string;\n}\n\nexport interface SliderSingleProps extends SliderBaseProps {\n range?: false;\n value?: number;\n defaultValue?: number;\n onChange?: (value: number) => void;\n}\n\nexport interface SliderRangeProps extends SliderBaseProps {\n range: true;\n value?: SliderRangeValue;\n defaultValue?: SliderRangeValue;\n onChange?: (value: SliderRangeValue) => void;\n}\n\nexport type SliderProps = SliderSingleProps | SliderRangeProps;\n\nconst asArray = (v: SliderValue | undefined, fallback: number): number[] => {\n if (v === undefined) return [fallback];\n return Array.isArray(v) ? [...v] : [v];\n};\n\n/** `Slider` — neumorphic range input with grooved track. */\nexport const Slider: React.FC<SliderProps> = (props) => {\n const {\n min = 0,\n max = 100,\n step = 1,\n disabled,\n showValue,\n tone = \"accent\",\n marks,\n className = \"\",\n } = props;\n\n const range = (props as SliderRangeProps).range === true;\n const value = (props as { value?: SliderValue }).value;\n const defaultValue = (props as { defaultValue?: SliderValue }).defaultValue;\n const onChange = (props as { onChange?: (v: SliderValue) => void }).onChange;\n\n const initial = React.useMemo<number[]>(() => {\n if (defaultValue !== undefined) return asArray(defaultValue, 0);\n return range ? [min, max] : [0];\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const [inner, setInner] = React.useState<number[]>(initial);\n const isControlled = value !== undefined;\n const nums = isControlled ? asArray(value, range ? min : 0) : inner;\n\n const pctOf = (n: number) => ((n - min) / (max - min)) * 100;\n\n const emit = (arr: number[]) => {\n if (range) {\n onChange?.([arr[0], arr[1]] as SliderRangeValue);\n } else {\n onChange?.(arr[0]);\n }\n };\n\n const updateAt = (index: number, next: number) => {\n const clamped = Math.max(min, Math.min(max, next));\n const out = [...nums];\n out[index] = clamped;\n if (range && out.length === 2 && out[0] > out[1]) {\n out.sort((a, b) => a - b);\n }\n if (!isControlled) setInner(out);\n emit(out);\n };\n\n const handleMarkClick = (mark: number) => {\n if (disabled) return;\n if (!range) {\n updateAt(0, mark);\n return;\n }\n const [a, b] = nums;\n const closerIndex = Math.abs(a - mark) <= Math.abs(b - mark) ? 0 : 1;\n updateAt(closerIndex, mark);\n };\n\n const fillLeft = range ? pctOf(Math.min(nums[0], nums[1])) : 0;\n const fillRight = range\n ? 100 - pctOf(Math.max(nums[0], nums[1]))\n : 100 - pctOf(nums[0]);\n\n return (\n <div className={`slider ${tone} ${disabled ? \"disabled\" : \"\"} ${marks ? \"has-marks\" : \"\"} ${className}`}>\n <div className=\"slider-track\">\n <div\n className=\"slider-fill\"\n style={{ left: `${fillLeft}%`, right: `${fillRight}%` }}\n />\n </div>\n {nums.map((n, i) => (\n <React.Fragment key={i}>\n <div className=\"slider-thumb\" style={{ left: `${pctOf(n)}%` }} />\n <input\n type=\"range\"\n min={min}\n max={max}\n step={step}\n value={n}\n disabled={disabled}\n onChange={(e) => updateAt(i, Number(e.target.value))}\n />\n </React.Fragment>\n ))}\n {showValue && (\n <span className=\"slider-value\">\n {range ? `${nums[0]} – ${nums[1]}` : nums[0]}\n </span>\n )}\n {marks && (\n <div className=\"slider-marks\">\n {Object.entries(marks).map(([k, label]) => {\n const n = Number(k);\n const left = pctOf(n);\n const active = range\n ? n >= Math.min(nums[0], nums[1]) && n <= Math.max(nums[0], nums[1])\n : n <= nums[0];\n return (\n <span\n key={k}\n className={`slider-mark ${active ? \"active\" : \"\"}`}\n style={{ left: `${left}%` }}\n onClick={() => handleMarkClick(n)}\n >\n <span className=\"slider-mark-dot\" />\n <span className=\"slider-mark-label\">{label}</span>\n </span>\n );\n })}\n </div>\n )}\n </div>\n );\n};\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/Icon/Icon.tsx"],"names":[],"mappings":"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","file":"chunk-GEYMWUW6.js","sourcesContent":["import * as React from \"react\";\n\n/**\n * Name of a built-in icon. To add your own, pass `children` (raw SVG paths) instead.\n */\nexport type IconName =\n | \"search\"\n | \"plus\"\n | \"minus\"\n | \"check\"\n | \"x\"\n | \"chevDown\"\n | \"chevRight\"\n | \"chevLeft\"\n | \"chevUp\"\n | \"arrowRight\"\n | \"settings\"\n | \"user\"\n | \"bell\"\n | \"mail\"\n | \"heart\"\n | \"star\"\n | \"home\"\n | \"folder\"\n | \"file\"\n | \"image\"\n | \"play\"\n | \"pause\"\n | \"volume\"\n | \"trash\"\n | \"edit\"\n | \"copy\"\n | \"download\"\n | \"upload\"\n | \"info\"\n | \"alert\"\n | \"check2\"\n | \"eye\"\n | \"eyeOff\"\n | \"sparkle\"\n | \"moon\"\n | \"sun\"\n | \"palette\"\n | \"layers\"\n | \"grid\"\n | \"list\"\n | \"zap\"\n | \"filter\"\n | \"mic\"\n | \"send\"\n | \"calendar\"\n | \"clock\"\n | \"menu\"\n | \"more\"\n | \"sliders\";\n\nexport interface IconProps extends Omit<React.SVGAttributes<SVGSVGElement>, \"stroke\"> {\n name: IconName;\n size?: number;\n stroke?: number;\n}\n\nconst paths: Record<IconName, React.ReactNode> = {\nsearch: <><circle cx=\"11\" cy=\"11\" r=\"7\"/><path d=\"m20 20-3.5-3.5\"/></>,\n plus: <><path d=\"M12 5v14M5 12h14\"/></>,\n minus: <><path d=\"M5 12h14\"/></>,\n check: <><path d=\"m4 12 5 5L20 6\"/></>,\n x: <><path d=\"M6 6l12 12M18 6 6 18\"/></>,\n chevDown: <><path d=\"m6 9 6 6 6-6\"/></>,\n chevRight: <><path d=\"m9 6 6 6-6 6\"/></>,\n chevLeft: <><path d=\"m15 6-6 6 6 6\"/></>,\n chevUp: <><path d=\"m6 15 6-6 6 6\"/></>,\n arrowRight:<><path d=\"M5 12h14M13 6l6 6-6 6\"/></>,\n settings: <><path d=\"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z\"/><circle cx=\"12\" cy=\"12\" r=\"3\"/></>,\n user: <><circle cx=\"12\" cy=\"8\" r=\"4\"/><path d=\"M4 21a8 8 0 0 1 16 0\"/></>,\n bell: <><path d=\"M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9\"/><path d=\"M10.3 21a1.94 1.94 0 0 0 3.4 0\"/></>,\n mail: <><rect x=\"3\" y=\"5\" width=\"18\" height=\"14\" rx=\"2\"/><path d=\"m3 7 9 6 9-6\"/></>,\n heart: <><path d=\"M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z\"/></>,\n star: <><path d=\"m12 2 3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z\"/></>,\n home: <><path d=\"m3 10 9-7 9 7v10a2 2 0 0 1-2 2h-4v-7h-6v7H5a2 2 0 0 1-2-2z\"/></>,\n folder: <><path d=\"M3 7a2 2 0 0 1 2-2h4l2 3h8a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z\"/></>,\n file: <><path d=\"M14 3H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z\"/><path d=\"M14 3v6h6\"/></>,\n image: <><rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\"/><circle cx=\"9\" cy=\"9\" r=\"2\"/><path d=\"m21 15-5-5L5 21\"/></>,\n play: <><path d=\"M7 5v14l11-7z\" fill=\"currentColor\" stroke=\"none\"/></>,\n pause: <><path d=\"M6 4h4v16H6zM14 4h4v16h-4z\" fill=\"currentColor\" stroke=\"none\"/></>,\n volume: <><path d=\"M11 5 6 9H3v6h3l5 4z\"/><path d=\"M17 8a5 5 0 0 1 0 8M20 5a9 9 0 0 1 0 14\"/></>,\n trash: <><path d=\"M3 6h18M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2M5 6l1 14a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2l1-14\"/></>,\n edit: <><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"/><path d=\"M18.5 2.5a2.12 2.12 0 0 1 3 3L12 15l-4 1 1-4z\"/></>,\n copy: <><rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\"/><path d=\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\"/></>,\n download: <><path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4M7 10l5 5 5-5M12 15V3\"/></>,\n upload: <><path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4M17 8l-5-5-5 5M12 3v12\"/></>,\n info: <><circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"M12 16v-4M12 8h.01\"/></>,\n alert: <><path d=\"M10.29 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0zM12 9v4M12 17h.01\"/></>,\n check2: <><circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"m9 12 2 2 4-4\"/></>,\n eye: <><path d=\"M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7-10-7-10-7z\"/><circle cx=\"12\" cy=\"12\" r=\"3\"/></>,\n eyeOff: <><path d=\"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-10-8-10-8a19 19 0 0 1 5.17-6M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 10 8 10 8a19 19 0 0 1-2.16 3.19M14.12 14.12a3 3 0 1 1-4.24-4.24M1 1l22 22\"/></>,\n sparkle: <><path d=\"M12 3v4M12 17v4M3 12h4M17 12h4M5.6 5.6l2.8 2.8M15.6 15.6l2.8 2.8M5.6 18.4l2.8-2.8M15.6 8.4l2.8-2.8\"/></>,\n moon: <><path d=\"M21 12.8A9 9 0 1 1 11.2 3a7 7 0 0 0 9.8 9.8z\"/></>,\n sun: <><circle cx=\"12\" cy=\"12\" r=\"4\"/><path d=\"M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M4.93 19.07l1.41-1.41M17.66 6.34l1.41-1.41\"/></>,\n palette: <><circle cx=\"13.5\" cy=\"6.5\" r=\"1\"/><circle cx=\"17.5\" cy=\"10.5\" r=\"1\"/><circle cx=\"8.5\" cy=\"7.5\" r=\"1\"/><circle cx=\"6.5\" cy=\"12.5\" r=\"1\"/><path d=\"M12 2a10 10 0 1 0 0 20 3 3 0 0 0 0-6h-1a2 2 0 0 1 0-4h4a5 5 0 0 0 5-5 10 10 0 0 0-8-5z\"/></>,\n layers: <><path d=\"m12 2 10 6-10 6L2 8z\"/><path d=\"m2 17 10 6 10-6M2 12l10 6 10-6\"/></>,\n grid: <><rect x=\"3\" y=\"3\" width=\"7\" height=\"7\"/><rect x=\"14\" y=\"3\" width=\"7\" height=\"7\"/><rect x=\"3\" y=\"14\" width=\"7\" height=\"7\"/><rect x=\"14\" y=\"14\" width=\"7\" height=\"7\"/></>,\n list: <><path d=\"M8 6h13M8 12h13M8 18h13M3 6h.01M3 12h.01M3 18h.01\"/></>,\n zap: <><path d=\"M13 2 3 14h9l-1 8 10-12h-9z\"/></>,\n filter: <><path d=\"M22 3H2l8 9.46V19l4 2v-8.54z\"/></>,\n mic: <><rect x=\"9\" y=\"2\" width=\"6\" height=\"12\" rx=\"3\"/><path d=\"M19 10v1a7 7 0 0 1-14 0v-1M12 18v4M8 22h8\"/></>,\n send: <><path d=\"m22 2-7 20-4-9-9-4zM22 2 11 13\"/></>,\n calendar: <><rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\"/><path d=\"M16 2v4M8 2v4M3 10h18\"/></>,\n clock: <><circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"M12 6v6l4 2\"/></>,\n menu: <><path d=\"M3 6h18M3 12h18M3 18h18\"/></>,\n more: <><circle cx=\"5\" cy=\"12\" r=\"1\"/><circle cx=\"12\" cy=\"12\" r=\"1\"/><circle cx=\"19\" cy=\"12\" r=\"1\"/></>,\n sliders: <><path d=\"M4 21v-7M4 10V3M12 21v-9M12 8V3M20 21v-5M20 12V3M1 14h6M9 8h6M17 16h6\"/></>,\n};\n\n/**\n * `Icon` — stroked line icon set, sized in pixels, inherits `currentColor`.\n *\n * @example\n * <Icon name=\"plus\" size={18} />\n */\nexport const Icon: React.FC<IconProps> = ({ name, size = 16, stroke = 2, style, ...rest }) => (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={stroke}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n overflow=\"visible\"\n style={style}\n {...rest}\n >\n {paths[name]}\n </svg>\n);\n\nexport const ICON_NAMES: IconName[] = [\"search\", \"plus\", \"minus\", \"check\", \"x\", \"chevDown\", \"chevRight\", \"chevLeft\", \"chevUp\", \"arrowRight\", \"settings\", \"user\", \"bell\", \"mail\", \"heart\", \"star\", \"home\", \"folder\", \"file\", \"image\", \"play\", \"pause\", \"volume\", \"trash\", \"edit\", \"copy\", \"download\", \"upload\", \"info\", \"alert\", \"check2\", \"eye\", \"eyeOff\", \"sparkle\", \"moon\", \"sun\", \"palette\", \"layers\", \"grid\", \"list\", \"zap\", \"filter\", \"mic\", \"send\", \"calendar\", \"clock\", \"menu\", \"more\", \"sliders\"];\n"]}
|
package/dist/chunk-QJGKI2BD.js
DELETED
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
import './tokens-BIIUTPKN.css';
|
|
2
|
-
import './shared-NJHRNLRH.css';
|
|
3
|
-
import './Slider-X4PVA65R.css';
|
|
4
|
-
import * as React from 'react';
|
|
5
|
-
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
6
|
-
|
|
7
|
-
// src/components/Slider/Slider.tsx
|
|
8
|
-
var asArray = (v, fallback) => {
|
|
9
|
-
if (v === void 0) return [fallback];
|
|
10
|
-
return Array.isArray(v) ? [...v] : [v];
|
|
11
|
-
};
|
|
12
|
-
var Slider = (props) => {
|
|
13
|
-
const {
|
|
14
|
-
min = 0,
|
|
15
|
-
max = 100,
|
|
16
|
-
step = 1,
|
|
17
|
-
disabled,
|
|
18
|
-
showValue,
|
|
19
|
-
tone = "accent",
|
|
20
|
-
marks,
|
|
21
|
-
className = ""
|
|
22
|
-
} = props;
|
|
23
|
-
const range = props.range === true;
|
|
24
|
-
const value = props.value;
|
|
25
|
-
const defaultValue = props.defaultValue;
|
|
26
|
-
const onChange = props.onChange;
|
|
27
|
-
const initial = React.useMemo(() => {
|
|
28
|
-
if (defaultValue !== void 0) return asArray(defaultValue, 0);
|
|
29
|
-
return range ? [min, max] : [0];
|
|
30
|
-
}, []);
|
|
31
|
-
const [inner, setInner] = React.useState(initial);
|
|
32
|
-
const isControlled = value !== void 0;
|
|
33
|
-
const nums = isControlled ? asArray(value, range ? min : 0) : inner;
|
|
34
|
-
const pctOf = (n) => (n - min) / (max - min) * 100;
|
|
35
|
-
const emit = (arr) => {
|
|
36
|
-
if (range) {
|
|
37
|
-
onChange?.([arr[0], arr[1]]);
|
|
38
|
-
} else {
|
|
39
|
-
onChange?.(arr[0]);
|
|
40
|
-
}
|
|
41
|
-
};
|
|
42
|
-
const updateAt = (index, next) => {
|
|
43
|
-
const clamped = Math.max(min, Math.min(max, next));
|
|
44
|
-
const out = [...nums];
|
|
45
|
-
out[index] = clamped;
|
|
46
|
-
if (range && out.length === 2 && out[0] > out[1]) {
|
|
47
|
-
out.sort((a, b) => a - b);
|
|
48
|
-
}
|
|
49
|
-
if (!isControlled) setInner(out);
|
|
50
|
-
emit(out);
|
|
51
|
-
};
|
|
52
|
-
const handleMarkClick = (mark) => {
|
|
53
|
-
if (disabled) return;
|
|
54
|
-
if (!range) {
|
|
55
|
-
updateAt(0, mark);
|
|
56
|
-
return;
|
|
57
|
-
}
|
|
58
|
-
const [a, b] = nums;
|
|
59
|
-
const closerIndex = Math.abs(a - mark) <= Math.abs(b - mark) ? 0 : 1;
|
|
60
|
-
updateAt(closerIndex, mark);
|
|
61
|
-
};
|
|
62
|
-
const fillLeft = range ? pctOf(Math.min(nums[0], nums[1])) : 0;
|
|
63
|
-
const fillRight = range ? 100 - pctOf(Math.max(nums[0], nums[1])) : 100 - pctOf(nums[0]);
|
|
64
|
-
return /* @__PURE__ */ jsxs("div", { className: `slider ${tone} ${disabled ? "disabled" : ""} ${marks ? "has-marks" : ""} ${className}`, children: [
|
|
65
|
-
/* @__PURE__ */ jsx("div", { className: "slider-track", children: /* @__PURE__ */ jsx(
|
|
66
|
-
"div",
|
|
67
|
-
{
|
|
68
|
-
className: "slider-fill",
|
|
69
|
-
style: { left: `${fillLeft}%`, right: `${fillRight}%` }
|
|
70
|
-
}
|
|
71
|
-
) }),
|
|
72
|
-
nums.map((n, i) => /* @__PURE__ */ jsxs(React.Fragment, { children: [
|
|
73
|
-
/* @__PURE__ */ jsx("div", { className: "slider-thumb", style: { left: `${pctOf(n)}%` } }),
|
|
74
|
-
/* @__PURE__ */ jsx(
|
|
75
|
-
"input",
|
|
76
|
-
{
|
|
77
|
-
type: "range",
|
|
78
|
-
min,
|
|
79
|
-
max,
|
|
80
|
-
step,
|
|
81
|
-
value: n,
|
|
82
|
-
disabled,
|
|
83
|
-
onChange: (e) => updateAt(i, Number(e.target.value))
|
|
84
|
-
}
|
|
85
|
-
)
|
|
86
|
-
] }, i)),
|
|
87
|
-
showValue && /* @__PURE__ */ jsx("span", { className: "slider-value", children: range ? `${nums[0]} \u2013 ${nums[1]}` : nums[0] }),
|
|
88
|
-
marks && /* @__PURE__ */ jsx("div", { className: "slider-marks", children: Object.entries(marks).map(([k, label]) => {
|
|
89
|
-
const n = Number(k);
|
|
90
|
-
const left = pctOf(n);
|
|
91
|
-
const active = range ? n >= Math.min(nums[0], nums[1]) && n <= Math.max(nums[0], nums[1]) : n <= nums[0];
|
|
92
|
-
return /* @__PURE__ */ jsxs(
|
|
93
|
-
"span",
|
|
94
|
-
{
|
|
95
|
-
className: `slider-mark ${active ? "active" : ""}`,
|
|
96
|
-
style: { left: `${left}%` },
|
|
97
|
-
onClick: () => handleMarkClick(n),
|
|
98
|
-
children: [
|
|
99
|
-
/* @__PURE__ */ jsx("span", { className: "slider-mark-dot" }),
|
|
100
|
-
/* @__PURE__ */ jsx("span", { className: "slider-mark-label", children: label })
|
|
101
|
-
]
|
|
102
|
-
},
|
|
103
|
-
k
|
|
104
|
-
);
|
|
105
|
-
}) })
|
|
106
|
-
] });
|
|
107
|
-
};
|
|
108
|
-
|
|
109
|
-
export { Slider };
|
|
110
|
-
//# sourceMappingURL=chunk-QJGKI2BD.js.map
|
|
111
|
-
//# sourceMappingURL=chunk-QJGKI2BD.js.map
|