@fangxinyan/lumina 0.9.1 → 0.9.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Pagination.cjs +3 -3
- package/dist/Pagination.js +2 -2
- package/dist/{Select-QPBB73KA.css → Select-Y3X3ZJTC.css} +54 -11
- package/dist/Select.cjs +2 -4
- package/dist/Select.d.cts +7 -1
- package/dist/Select.d.ts +7 -1
- package/dist/Select.js +1 -3
- package/dist/Table.cjs +4 -4
- package/dist/Table.js +3 -3
- package/dist/TablePro.cjs +5 -5
- package/dist/TablePro.js +4 -4
- package/dist/{chunk-K3KHQ77L.cjs → chunk-CDT2QCBL.cjs} +177 -85
- package/dist/{chunk-HMN65CDW.cjs → chunk-IDEE7PP5.cjs} +2 -2
- package/dist/{chunk-UCE53RYR.js → chunk-LZXJN3XA.js} +1 -1
- package/dist/{chunk-7KA5D37Z.cjs → chunk-MJYMPK5K.cjs} +2 -2
- package/dist/{chunk-AL2PYVVP.js → chunk-MSWWABXP.js} +177 -85
- package/dist/{chunk-VTN6YLRJ.cjs → chunk-QZ2AAQBX.cjs} +2 -2
- package/dist/{chunk-JMYUO7V7.js → chunk-RM6JIM6O.js} +1 -1
- package/dist/{chunk-2NECDEAJ.js → chunk-U3T6RC6U.js} +1 -1
- package/dist/index.cjs +9 -9
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +5 -5
- package/dist/styles.css +54 -10
- package/docs/llms/select.md +40 -1
- package/docs/llms.md +1 -1
- package/package.json +1 -1
package/docs/llms/select.md
CHANGED
|
@@ -27,6 +27,43 @@ multiple + Tag 形式呈现已选项。
|
|
|
27
27
|
<Select multiple clearable value={tags} onChange={setTags} options={...} />
|
|
28
28
|
```
|
|
29
29
|
|
|
30
|
+
### 远程搜索多选
|
|
31
|
+
|
|
32
|
+
searchable 在单选和多选中都复用选择框本体作为输入;多选 Tag 后的空输入会收缩,不单独占行。选中后保持展开和关键词,业务层负责防抖与迟到结果保护。
|
|
33
|
+
|
|
34
|
+
```tsx
|
|
35
|
+
const [value, setValue] = useState<string[]>([]);
|
|
36
|
+
const [searchValue, setSearchValue] = useState("");
|
|
37
|
+
const [options, setOptions] = useState<SelectOption[]>([]);
|
|
38
|
+
const [loading, setLoading] = useState(false);
|
|
39
|
+
const latestRequest = useRef(0);
|
|
40
|
+
|
|
41
|
+
useEffect(() => {
|
|
42
|
+
const requestId = ++latestRequest.current;
|
|
43
|
+
setLoading(true);
|
|
44
|
+
const timer = window.setTimeout(() => {
|
|
45
|
+
void fetchOptions(searchValue).then((nextOptions) => {
|
|
46
|
+
if (requestId !== latestRequest.current) return;
|
|
47
|
+
setOptions(nextOptions);
|
|
48
|
+
setLoading(false);
|
|
49
|
+
});
|
|
50
|
+
}, 300);
|
|
51
|
+
return () => {
|
|
52
|
+
window.clearTimeout(timer);
|
|
53
|
+
if (requestId === latestRequest.current) latestRequest.current += 1;
|
|
54
|
+
};
|
|
55
|
+
}, [searchValue]);
|
|
56
|
+
|
|
57
|
+
<Select
|
|
58
|
+
multiple searchable clearable
|
|
59
|
+
value={value} onChange={setValue}
|
|
60
|
+
searchValue={searchValue} onSearch={setSearchValue}
|
|
61
|
+
options={options} loading={loading}
|
|
62
|
+
filterOption={false}
|
|
63
|
+
maxTagCount={2}
|
|
64
|
+
/>
|
|
65
|
+
```
|
|
66
|
+
|
|
30
67
|
### 数量上限 / 分类限选
|
|
31
68
|
|
|
32
69
|
maxCount 限制总数;getOptionDisabled 可读取当前选择,实现“一类最多选一个”。
|
|
@@ -147,8 +184,10 @@ loading 时显示 spinner,emptyContent 自定义空态。
|
|
|
147
184
|
| maxTagCount | `number` | — | 多选时显示的标签数(超出折叠 +N) |
|
|
148
185
|
| maxCount | `number` | — | 多选允许的最大选择数;达到上限后禁用未选项 |
|
|
149
186
|
| getOptionDisabled | `(option, selectedValues) => boolean` | — | 基于候选项和当前选择动态判断禁用状态 |
|
|
150
|
-
| searchable | `boolean` | `false` |
|
|
187
|
+
| searchable | `boolean` | `false` | 在选择框本体内启用搜索,单选和多选共用同一交互形态 |
|
|
151
188
|
| showSearch | `boolean` | `false` | searchable 的等价别名 |
|
|
189
|
+
| searchValue / defaultSearchValue | `string` | — | 受控搜索词 / 非受控初始搜索词;多选 searchable 时输入框位于标签同一触发器内 |
|
|
190
|
+
| onSearch | `(value: string) => void` | — | 搜索词交互变化回调;多选选中不会清空关键词,关闭时清空并回调空字符串 |
|
|
152
191
|
| filterOption | `(input, option) => boolean` | — | 自定义过滤 |
|
|
153
192
|
| optionFilterProp | `"label" | "value" | "text" | string` | — | 默认过滤使用的 option 字段 |
|
|
154
193
|
| clearable | `boolean` | `false` | 显示独立且可访问的清除按钮 |
|
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.9.
|
|
6
|
+
- **版本**: `0.9.2`
|
|
7
7
|
- **React 最低版本**: 18
|
|
8
8
|
- **环境**: 带打包器的 React 工程(Vite / Next.js / Webpack / Remix / Electron + Vite 等)
|
|
9
9
|
- **零运行时依赖**: 只依赖 `react` / `react-dom` (peer deps)
|