@fangxinyan/lumina 0.2.0 → 0.3.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/README.md +18 -7
- package/dist/{Accordion-3TQPKNN3.css → Accordion-REMDCQUD.css} +0 -1
- package/dist/Accordion.cjs +2 -2
- package/dist/Accordion.js +1 -1
- package/dist/Alert.cjs +2 -2
- package/dist/Alert.js +1 -1
- package/dist/AppShell.cjs +5 -5
- package/dist/AppShell.js +1 -1
- package/dist/Avatar.cjs +2 -2
- package/dist/Avatar.js +1 -1
- package/dist/Button.cjs +3 -3
- package/dist/Button.js +1 -1
- package/dist/Calendar.cjs +2 -2
- package/dist/Calendar.js +1 -1
- package/dist/Card.cjs +3 -3
- package/dist/Card.js +1 -1
- package/dist/{Cascader-DTRTTXC2.css → Cascader-VSYEKQCG.css} +1 -1
- package/dist/Cascader.cjs +2 -2
- package/dist/Cascader.js +1 -1
- package/dist/Checkbox.cjs +3 -3
- package/dist/Checkbox.js +1 -1
- package/dist/{ColorPicker-GP7AQYUU.css → ColorPicker-SDDQGHCM.css} +1 -1
- package/dist/ColorPicker.cjs +2 -2
- package/dist/ColorPicker.js +1 -1
- package/dist/CommandPalette-T45DBMPY.css +139 -0
- package/dist/CommandPalette.cjs +14 -0
- package/dist/CommandPalette.cjs.map +1 -0
- package/dist/CommandPalette.d.cts +65 -0
- package/dist/CommandPalette.d.ts +65 -0
- package/dist/CommandPalette.js +5 -0
- package/dist/CommandPalette.js.map +1 -0
- package/dist/ContextMenu-FKW6CQW4.css +76 -0
- package/dist/ContextMenu.cjs +12 -0
- package/dist/ContextMenu.cjs.map +1 -0
- package/dist/ContextMenu.d.cts +50 -0
- package/dist/ContextMenu.d.ts +50 -0
- package/dist/ContextMenu.js +3 -0
- package/dist/ContextMenu.js.map +1 -0
- package/dist/Divider.cjs +2 -2
- package/dist/Divider.js +1 -1
- package/dist/Drawer.cjs +2 -2
- package/dist/Drawer.js +1 -1
- package/dist/Empty.cjs +4 -4
- package/dist/Empty.js +1 -1
- package/dist/{Image-WYWORJT4.css → Image-4MN34O6P.css} +1 -1
- package/dist/Image.cjs +3 -3
- package/dist/Image.js +1 -1
- package/dist/Input.cjs +3 -3
- package/dist/Input.js +1 -1
- package/dist/List.cjs +2 -2
- package/dist/List.js +1 -1
- package/dist/{Modal-N4YVLEWW.css → Modal-XSDMU4XJ.css} +1 -1
- package/dist/Modal.cjs +3 -3
- package/dist/Modal.js +2 -2
- package/dist/Pagination.cjs +4 -4
- package/dist/Pagination.js +3 -3
- package/dist/{Popover-MGCMOXYP.css → Popover-NYEKT5CQ.css} +1 -1
- package/dist/Popover.cjs +2 -2
- package/dist/Popover.js +1 -1
- package/dist/Progress.cjs +3 -3
- package/dist/Progress.js +1 -1
- package/dist/{Select-EDG37C37.css → Select-J3CCVFJ7.css} +1 -1
- package/dist/Select.cjs +3 -3
- package/dist/Select.js +2 -2
- package/dist/Slider.cjs +2 -2
- package/dist/Slider.js +1 -1
- package/dist/Splitter-DHNOY4NC.css +66 -0
- package/dist/Splitter.cjs +12 -0
- package/dist/Splitter.cjs.map +1 -0
- package/dist/Splitter.d.cts +44 -0
- package/dist/Splitter.d.ts +44 -0
- package/dist/Splitter.js +3 -0
- package/dist/Splitter.js.map +1 -0
- package/dist/StatusBar-CDS2GPSI.css +58 -0
- package/dist/StatusBar.cjs +16 -0
- package/dist/StatusBar.cjs.map +1 -0
- package/dist/StatusBar.d.cts +39 -0
- package/dist/StatusBar.d.ts +39 -0
- package/dist/StatusBar.js +3 -0
- package/dist/StatusBar.js.map +1 -0
- package/dist/Switch.cjs +2 -2
- package/dist/Switch.js +1 -1
- package/dist/{Table-ADVN6LXP.css → Table-2LPTOUIR.css} +2 -2
- package/dist/Table.cjs +7 -7
- package/dist/Table.js +5 -5
- package/dist/Tabs.cjs +3 -3
- package/dist/Tabs.js +1 -1
- package/dist/Tag.cjs +3 -3
- package/dist/Tag.js +1 -1
- package/dist/Theme.cjs +10 -10
- package/dist/Theme.js +1 -1
- package/dist/{Toast-ERHDN3WG.css → Toast-6PVSAXQ5.css} +1 -1
- package/dist/Toast.cjs +3 -3
- package/dist/Toast.js +1 -1
- package/dist/Tooltip.cjs +2 -2
- package/dist/Tooltip.js +1 -1
- package/dist/Typography.cjs +6 -6
- package/dist/Typography.js +1 -1
- package/dist/{chunk-5WF6M47X.cjs → chunk-24FAK7QU.cjs} +3 -3
- package/dist/{chunk-5WF6M47X.cjs.map → chunk-24FAK7QU.cjs.map} +1 -1
- package/dist/{chunk-AJZKESHB.js → chunk-276NALYW.js} +3 -3
- package/dist/{chunk-AJZKESHB.js.map → chunk-276NALYW.js.map} +1 -1
- package/dist/{chunk-FI7QO3I5.cjs → chunk-33TIL25B.cjs} +3 -3
- package/dist/{chunk-FI7QO3I5.cjs.map → chunk-33TIL25B.cjs.map} +1 -1
- package/dist/{chunk-RDLPX7RK.cjs → chunk-3HNRKO3M.cjs} +31 -5
- package/dist/chunk-3HNRKO3M.cjs.map +1 -0
- package/dist/{chunk-GZGZR4FT.js → chunk-3LI6QH2Q.js} +3 -3
- package/dist/{chunk-GZGZR4FT.js.map → chunk-3LI6QH2Q.js.map} +1 -1
- package/dist/{chunk-NE4YEBFH.js → chunk-3UU2PUK4.js} +4 -4
- package/dist/{chunk-NE4YEBFH.js.map → chunk-3UU2PUK4.js.map} +1 -1
- package/dist/chunk-47Z4NIU4.js +118 -0
- package/dist/chunk-47Z4NIU4.js.map +1 -0
- package/dist/{chunk-4U4OY5RA.js → chunk-4SCDDSXY.js} +3 -3
- package/dist/{chunk-4U4OY5RA.js.map → chunk-4SCDDSXY.js.map} +1 -1
- package/dist/{chunk-NXOAYNG2.cjs → chunk-5BFETKVP.cjs} +3 -3
- package/dist/{chunk-NXOAYNG2.cjs.map → chunk-5BFETKVP.cjs.map} +1 -1
- package/dist/{chunk-VICGQC6G.cjs → chunk-5EAVXFFD.cjs} +3 -3
- package/dist/{chunk-VICGQC6G.cjs.map → chunk-5EAVXFFD.cjs.map} +1 -1
- package/dist/{chunk-OYGFMXAA.js → chunk-5N7347MI.js} +3 -3
- package/dist/{chunk-OYGFMXAA.js.map → chunk-5N7347MI.js.map} +1 -1
- package/dist/{chunk-VJN637MT.js → chunk-5PREWYTB.js} +3 -3
- package/dist/{chunk-VJN637MT.js.map → chunk-5PREWYTB.js.map} +1 -1
- package/dist/{chunk-77BVQNAQ.js → chunk-5UOBYRYJ.js} +3 -3
- package/dist/{chunk-77BVQNAQ.js.map → chunk-5UOBYRYJ.js.map} +1 -1
- package/dist/{chunk-BBPNQ44M.js → chunk-6GNFRP2H.js} +3 -3
- package/dist/{chunk-BBPNQ44M.js.map → chunk-6GNFRP2H.js.map} +1 -1
- package/dist/{chunk-TZSWDH5T.cjs → chunk-7JYI5THC.cjs} +3 -3
- package/dist/{chunk-TZSWDH5T.cjs.map → chunk-7JYI5THC.cjs.map} +1 -1
- package/dist/chunk-7T2SLRNL.cjs +140 -0
- package/dist/chunk-7T2SLRNL.cjs.map +1 -0
- package/dist/chunk-7YQWG7HR.cjs +45 -0
- package/dist/chunk-7YQWG7HR.cjs.map +1 -0
- package/dist/chunk-AGN3JSUH.cjs +209 -0
- package/dist/chunk-AGN3JSUH.cjs.map +1 -0
- package/dist/{chunk-CCBHZYE6.cjs → chunk-AR4M7QGF.cjs} +7 -7
- package/dist/{chunk-CCBHZYE6.cjs.map → chunk-AR4M7QGF.cjs.map} +1 -1
- package/dist/{chunk-K7PVJLW4.cjs → chunk-AWLBLRQX.cjs} +5 -5
- package/dist/{chunk-K7PVJLW4.cjs.map → chunk-AWLBLRQX.cjs.map} +1 -1
- package/dist/{chunk-PBBHUUXU.cjs → chunk-B5JH7NRZ.cjs} +3 -3
- package/dist/{chunk-PBBHUUXU.cjs.map → chunk-B5JH7NRZ.cjs.map} +1 -1
- package/dist/{chunk-Z5X5AMLA.cjs → chunk-CALRTZZ7.cjs} +3 -3
- package/dist/{chunk-Z5X5AMLA.cjs.map → chunk-CALRTZZ7.cjs.map} +1 -1
- package/dist/{chunk-H6FCIJOP.js → chunk-DBJIK4JE.js} +3 -3
- package/dist/{chunk-H6FCIJOP.js.map → chunk-DBJIK4JE.js.map} +1 -1
- package/dist/{chunk-QESLHLTG.cjs → chunk-EHO2JH2L.cjs} +4 -4
- package/dist/{chunk-QESLHLTG.cjs.map → chunk-EHO2JH2L.cjs.map} +1 -1
- package/dist/{chunk-WNGG25QX.js → chunk-FFZLSY2N.js} +3 -3
- package/dist/{chunk-WNGG25QX.js.map → chunk-FFZLSY2N.js.map} +1 -1
- package/dist/{chunk-AEJJGUEN.cjs → chunk-GOIQR4OH.cjs} +3 -3
- package/dist/{chunk-AEJJGUEN.cjs.map → chunk-GOIQR4OH.cjs.map} +1 -1
- package/dist/{chunk-Z7P6QGMT.js → chunk-GR5STMOA.js} +3 -3
- package/dist/{chunk-Z7P6QGMT.js.map → chunk-GR5STMOA.js.map} +1 -1
- package/dist/{chunk-URF6RBW6.cjs → chunk-HNVRMOL3.cjs} +3 -3
- package/dist/{chunk-URF6RBW6.cjs.map → chunk-HNVRMOL3.cjs.map} +1 -1
- package/dist/{chunk-RPD2OIIP.js → chunk-I2HHC6QW.js} +4 -4
- package/dist/{chunk-RPD2OIIP.js.map → chunk-I2HHC6QW.js.map} +1 -1
- package/dist/{chunk-AXMEZGEG.cjs → chunk-IZDJCEMF.cjs} +3 -3
- package/dist/{chunk-AXMEZGEG.cjs.map → chunk-IZDJCEMF.cjs.map} +1 -1
- package/dist/{chunk-V34OPWKZ.js → chunk-JSDQVVQB.js} +3 -3
- package/dist/{chunk-V34OPWKZ.js.map → chunk-JSDQVVQB.js.map} +1 -1
- package/dist/{chunk-QTGDYQOT.cjs → chunk-LLNEDEST.cjs} +4 -4
- package/dist/{chunk-QTGDYQOT.cjs.map → chunk-LLNEDEST.cjs.map} +1 -1
- package/dist/{chunk-C5TGQ7CV.cjs → chunk-MFWOBALK.cjs} +3 -3
- package/dist/{chunk-C5TGQ7CV.cjs.map → chunk-MFWOBALK.cjs.map} +1 -1
- package/dist/{chunk-LDENBYRC.cjs → chunk-MKR4X57L.cjs} +3 -3
- package/dist/{chunk-LDENBYRC.cjs.map → chunk-MKR4X57L.cjs.map} +1 -1
- package/dist/{chunk-LSLYY5FN.js → chunk-MTCLJHXU.js} +5 -5
- package/dist/{chunk-LSLYY5FN.js.map → chunk-MTCLJHXU.js.map} +1 -1
- package/dist/{chunk-JKLQOB2F.cjs → chunk-MUFMJPRT.cjs} +3 -3
- package/dist/{chunk-JKLQOB2F.cjs.map → chunk-MUFMJPRT.cjs.map} +1 -1
- package/dist/{chunk-OEHCA5IV.js → chunk-NGQDVJH3.js} +4 -4
- package/dist/{chunk-OEHCA5IV.js.map → chunk-NGQDVJH3.js.map} +1 -1
- package/dist/{chunk-7H453VPW.cjs → chunk-NQQWCIE6.cjs} +3 -3
- package/dist/{chunk-7H453VPW.cjs.map → chunk-NQQWCIE6.cjs.map} +1 -1
- package/dist/{chunk-ZWP4LSS3.js → chunk-NS3C2ZSE.js} +3 -3
- package/dist/{chunk-ZWP4LSS3.js.map → chunk-NS3C2ZSE.js.map} +1 -1
- package/dist/{chunk-HKAQILD2.cjs → chunk-O2HMH5BI.cjs} +4 -4
- package/dist/{chunk-HKAQILD2.cjs.map → chunk-O2HMH5BI.cjs.map} +1 -1
- package/dist/chunk-OWNVDXRQ.js +42 -0
- package/dist/chunk-OWNVDXRQ.js.map +1 -0
- package/dist/{chunk-3UFU63X7.cjs → chunk-OZVPJWXO.cjs} +3 -3
- package/dist/{chunk-3UFU63X7.cjs.map → chunk-OZVPJWXO.cjs.map} +1 -1
- package/dist/{chunk-M6CGYGEO.js → chunk-Q2EXOT4B.js} +3 -3
- package/dist/{chunk-M6CGYGEO.js.map → chunk-Q2EXOT4B.js.map} +1 -1
- package/dist/{chunk-7U6I44RV.cjs → chunk-Q7CDWNM6.cjs} +3 -3
- package/dist/{chunk-7U6I44RV.cjs.map → chunk-Q7CDWNM6.cjs.map} +1 -1
- package/dist/{chunk-437LB2V4.js → chunk-QJGKI2BD.js} +3 -3
- package/dist/{chunk-437LB2V4.js.map → chunk-QJGKI2BD.js.map} +1 -1
- package/dist/chunk-RFU5HN4E.js +149 -0
- package/dist/chunk-RFU5HN4E.js.map +1 -0
- package/dist/{chunk-IKI5CS4L.cjs → chunk-RIDCBNCM.cjs} +4 -4
- package/dist/{chunk-IKI5CS4L.cjs.map → chunk-RIDCBNCM.cjs.map} +1 -1
- package/dist/{chunk-OPTTHURA.cjs → chunk-RSZNFKCQ.cjs} +3 -3
- package/dist/{chunk-OPTTHURA.cjs.map → chunk-RSZNFKCQ.cjs.map} +1 -1
- package/dist/{chunk-EPFYIR63.cjs → chunk-RVSWH4RH.cjs} +7 -7
- package/dist/{chunk-EPFYIR63.cjs.map → chunk-RVSWH4RH.cjs.map} +1 -1
- package/dist/{chunk-TWBJCFEJ.cjs → chunk-SVVB6POY.cjs} +4 -4
- package/dist/{chunk-TWBJCFEJ.cjs.map → chunk-SVVB6POY.cjs.map} +1 -1
- package/dist/{chunk-QPZZNSRB.js → chunk-TMZVX6NO.js} +4 -4
- package/dist/{chunk-QPZZNSRB.js.map → chunk-TMZVX6NO.js.map} +1 -1
- package/dist/{chunk-YEOARJKR.cjs → chunk-TQLCIXCK.cjs} +3 -3
- package/dist/{chunk-YEOARJKR.cjs.map → chunk-TQLCIXCK.cjs.map} +1 -1
- package/dist/{chunk-GIVMKGZN.js → chunk-TY5EAKEI.js} +3 -3
- package/dist/{chunk-GIVMKGZN.js.map → chunk-TY5EAKEI.js.map} +1 -1
- package/dist/{chunk-4MR4GVTD.js → chunk-U4K7HOMW.js} +31 -5
- package/dist/chunk-U4K7HOMW.js.map +1 -0
- package/dist/{chunk-IWVKITPN.js → chunk-U5BZ7E3F.js} +3 -3
- package/dist/{chunk-IWVKITPN.js.map → chunk-U5BZ7E3F.js.map} +1 -1
- package/dist/{chunk-3WAFIUDQ.js → chunk-UQB5OHMO.js} +3 -3
- package/dist/{chunk-3WAFIUDQ.js.map → chunk-UQB5OHMO.js.map} +1 -1
- package/dist/{chunk-ZVCMXDTP.js → chunk-URLSZPS5.js} +5 -5
- package/dist/{chunk-ZVCMXDTP.js.map → chunk-URLSZPS5.js.map} +1 -1
- package/dist/{chunk-I7SSCSFH.js → chunk-W6I67HQQ.js} +3 -3
- package/dist/{chunk-I7SSCSFH.js.map → chunk-W6I67HQQ.js.map} +1 -1
- package/dist/{chunk-NSUD5B22.js → chunk-WBMF7WM3.js} +3 -3
- package/dist/{chunk-NSUD5B22.js.map → chunk-WBMF7WM3.js.map} +1 -1
- package/dist/{chunk-4GT5TOHP.js → chunk-WDBJVKSR.js} +3 -3
- package/dist/{chunk-4GT5TOHP.js.map → chunk-WDBJVKSR.js.map} +1 -1
- package/dist/{chunk-TYQ5CN2C.js → chunk-WQFC5EMC.js} +4 -4
- package/dist/{chunk-TYQ5CN2C.js.map → chunk-WQFC5EMC.js.map} +1 -1
- package/dist/{chunk-IFERLHCL.cjs → chunk-WREHBIJ5.cjs} +10 -10
- package/dist/{chunk-IFERLHCL.cjs.map → chunk-WREHBIJ5.cjs.map} +1 -1
- package/dist/chunk-WZ73TWB2.cjs +174 -0
- package/dist/chunk-WZ73TWB2.cjs.map +1 -0
- package/dist/chunk-XDFZRV3V.js +184 -0
- package/dist/chunk-XDFZRV3V.js.map +1 -0
- package/dist/{chunk-F7HW2PYR.cjs → chunk-XUT2Z2L6.cjs} +3 -3
- package/dist/{chunk-F7HW2PYR.cjs.map → chunk-XUT2Z2L6.cjs.map} +1 -1
- package/dist/{chunk-55NTFU7Y.js → chunk-XZ22B3NW.js} +6 -6
- package/dist/{chunk-55NTFU7Y.js.map → chunk-XZ22B3NW.js.map} +1 -1
- package/dist/{chunk-K5MHL732.js → chunk-YXKJOPYT.js} +4 -4
- package/dist/{chunk-K5MHL732.js.map → chunk-YXKJOPYT.js.map} +1 -1
- package/dist/{chunk-IDM6JJLP.cjs → chunk-YZ2I7CDF.cjs} +3 -3
- package/dist/{chunk-IDM6JJLP.cjs.map → chunk-YZ2I7CDF.cjs.map} +1 -1
- package/dist/index.cjs +142 -118
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +5 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.js +35 -31
- package/dist/index.js.map +1 -1
- package/dist/styles.css +26 -19
- package/dist/{tokens-HWQ7KWPG.css → tokens-BIIUTPKN.css} +17 -9
- package/dist/tokens.css +17 -9
- package/docs/llms/accordion.md +66 -0
- package/docs/llms/alert.md +64 -0
- package/docs/llms/avatar.md +55 -0
- package/docs/llms/badge.md +41 -0
- package/docs/llms/button.md +122 -0
- package/docs/llms/calendar.md +44 -0
- package/docs/llms/card.md +68 -0
- package/docs/llms/cascader.md +33 -0
- package/docs/llms/checkbox.md +41 -0
- package/docs/llms/colorpicker.md +82 -0
- package/docs/llms/commandpalette.md +58 -0
- package/docs/llms/contextmenu.md +55 -0
- package/docs/llms/divider.md +69 -0
- package/docs/llms/drawer.md +70 -0
- package/docs/llms/empty.md +52 -0
- package/docs/llms/icon.md +34 -0
- package/docs/llms/image.md +39 -0
- package/docs/llms/input.md +127 -0
- package/docs/llms/intro.md +6 -0
- package/docs/llms/list.md +41 -0
- package/docs/llms/modal.md +89 -0
- package/docs/llms/pagination.md +82 -0
- package/docs/llms/popover.md +34 -0
- package/docs/llms/progress.md +58 -0
- package/docs/llms/radio.md +43 -0
- package/docs/llms/select.md +99 -0
- package/docs/llms/sidebar.md +43 -0
- package/docs/llms/skeleton.md +88 -0
- package/docs/llms/slider.md +72 -0
- package/docs/llms/spinner.md +58 -0
- package/docs/llms/splitter.md +63 -0
- package/docs/llms/statusbar.md +53 -0
- package/docs/llms/switch.md +60 -0
- package/docs/llms/table.md +188 -0
- package/docs/llms/tablepro.md +56 -0
- package/docs/llms/tabs.md +50 -0
- package/docs/llms/tag.md +77 -0
- package/docs/llms/theme.md +165 -0
- package/docs/llms/titlebar.md +40 -0
- package/docs/llms/toast.md +51 -0
- package/docs/llms/tooltip.md +38 -0
- package/docs/llms/typography.md +103 -0
- package/docs/llms/windowcontrols.md +31 -0
- package/docs/llms.md +101 -0
- package/package.json +8 -2
- package/dist/chunk-4MR4GVTD.js.map +0 -1
- package/dist/chunk-RDLPX7RK.cjs.map +0 -1
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# List 列表
|
|
2
|
+
|
|
3
|
+
> 承载一组结构化的同质化数据。
|
|
4
|
+
|
|
5
|
+
## 导入
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
import { List } from "@fangxinyan/lumina";
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## 示例
|
|
12
|
+
|
|
13
|
+
### 基础列表
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
<List items={[{ key, title, description, avatar, actions }]} />
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## API
|
|
20
|
+
|
|
21
|
+
**List**
|
|
22
|
+
|
|
23
|
+
| Prop | 类型 | 默认 | 说明 |
|
|
24
|
+
| --- | --- | --- | --- |
|
|
25
|
+
| items \* | `ListItem[]` | — | 数据列表 |
|
|
26
|
+
| dividers | `boolean` | `true` | 项之间显示分隔线 |
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
**ListItem**
|
|
30
|
+
|
|
31
|
+
| Prop | 类型 | 默认 | 说明 |
|
|
32
|
+
| --- | --- | --- | --- |
|
|
33
|
+
| key \* | `string` | — | 唯一键 |
|
|
34
|
+
| title / description | `ReactNode` | — | 标题/描述 |
|
|
35
|
+
| avatar | `ReactNode` | — | 前置图标或头像 |
|
|
36
|
+
| actions | `ReactNode` | — | 右侧操作区 |
|
|
37
|
+
| onClick | `() => void` | — | 点击回调 |
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
[← 回到索引](../llms.md)
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# Modal 对话框
|
|
2
|
+
|
|
3
|
+
> 在不离开当前页面的前提下处理事务。
|
|
4
|
+
|
|
5
|
+
## 导入
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
import { Modal } from "@fangxinyan/lumina";
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## 示例
|
|
12
|
+
|
|
13
|
+
### 基础
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
<Modal open={m} onClose={...} title="标题">...</Modal>
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### 确认操作 (footer 自定义)
|
|
20
|
+
|
|
21
|
+
用 footer 自定义底部按钮。传 null 可以去掉 footer。
|
|
22
|
+
|
|
23
|
+
```tsx
|
|
24
|
+
<Modal footer={<><Button>取消</Button><Button danger>删除</Button></>}>...
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### onOk / onCancel + 按钮定制
|
|
28
|
+
|
|
29
|
+
用默认 footer 的 onOk / onCancel 区分动作,okText / cancelText 改文案,okButtonProps 透传样式。
|
|
30
|
+
|
|
31
|
+
```tsx
|
|
32
|
+
<Modal
|
|
33
|
+
onOk={handleSave}
|
|
34
|
+
onCancel={() => setOpen(false)}
|
|
35
|
+
okText="发布"
|
|
36
|
+
cancelText="不发了"
|
|
37
|
+
okButtonProps={{ icon: "send" }}
|
|
38
|
+
/>
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### 异步 confirmLoading
|
|
42
|
+
|
|
43
|
+
提交过程中 confirmLoading 显示按钮 spinner 并自动禁用;完成后外层再 setOpen(false)。
|
|
44
|
+
|
|
45
|
+
```tsx
|
|
46
|
+
<Modal confirmLoading={submitting} onOk={async () => {
|
|
47
|
+
setSubmitting(true);
|
|
48
|
+
await api.save();
|
|
49
|
+
setSubmitting(false);
|
|
50
|
+
setOpen(false);
|
|
51
|
+
}} />
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### 隐藏关闭按钮
|
|
55
|
+
|
|
56
|
+
closable={false} 隐藏右上角 ×,closeIcon 可自定义。
|
|
57
|
+
|
|
58
|
+
```tsx
|
|
59
|
+
<Modal closable={false} />
|
|
60
|
+
<Modal closeIcon={<Icon name="chevDown" />} />
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## API
|
|
64
|
+
|
|
65
|
+
**Modal**
|
|
66
|
+
|
|
67
|
+
| Prop | 类型 | 默认 | 说明 |
|
|
68
|
+
| --- | --- | --- | --- |
|
|
69
|
+
| open \* | `boolean` | — | 是否可见 |
|
|
70
|
+
| onClose | `() => void` | — | 关闭回调(遮罩/Esc/关闭按钮) |
|
|
71
|
+
| onOk | `() => void` | — | 默认 OK 按钮点击 |
|
|
72
|
+
| onCancel | `() => void` | — | 默认 Cancel 按钮 / Esc / 关闭 / 遮罩触发,缺省则用 onClose |
|
|
73
|
+
| title / description | `ReactNode` | — | 标题/说明 |
|
|
74
|
+
| footer | `ReactNode` | — | 自定义底部(null 去除) |
|
|
75
|
+
| okText / cancelText | `ReactNode` | `"确定" / "取消"` | 默认按钮文案 |
|
|
76
|
+
| okButtonProps / cancelButtonProps | `Partial<ButtonProps>` | — | 透传给默认按钮 |
|
|
77
|
+
| confirmLoading | `boolean` | `false` | OK 按钮显示 spinner 并禁用 |
|
|
78
|
+
| closable | `boolean` | `true` | 显示右上角 × |
|
|
79
|
+
| closeIcon | `ReactNode` | — | 自定义关闭图标 |
|
|
80
|
+
| maskClosable | `boolean` | `true` | 点击遮罩关闭 |
|
|
81
|
+
| escClosable | `boolean` | `true` | Esc 关闭 |
|
|
82
|
+
| width | `number | string` | `440` | 宽度 |
|
|
83
|
+
| destroyOnClose | `boolean` | `false` | 关闭时卸载子树 |
|
|
84
|
+
| afterOpenChange | `(open: boolean) => void` | — | 动画结束后回调 |
|
|
85
|
+
| zIndex | `number` | — | 覆盖遮罩 z-index |
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
[← 回到索引](../llms.md)
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# Pagination 分页
|
|
2
|
+
|
|
3
|
+
> 分页控件,支持快速跳转与每页条数切换。
|
|
4
|
+
|
|
5
|
+
## 导入
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
import { Pagination } from "@fangxinyan/lumina";
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## 示例
|
|
12
|
+
|
|
13
|
+
### 基础用法
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
<Pagination total={85} page={page} onChange={setPage} />
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### 快速跳转
|
|
20
|
+
|
|
21
|
+
启用 showQuickJumper,输入页码按 Enter 跳转,超出范围会被夹紧。
|
|
22
|
+
|
|
23
|
+
```tsx
|
|
24
|
+
<Pagination
|
|
25
|
+
total={250}
|
|
26
|
+
page={jumpPage}
|
|
27
|
+
onChange={setJumpPage}
|
|
28
|
+
showQuickJumper
|
|
29
|
+
/>
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### 每页条数
|
|
33
|
+
|
|
34
|
+
启用 showSizeChanger,切换条数会回到第 1 页并触发 onShowSizeChange + onChange(1)。
|
|
35
|
+
|
|
36
|
+
```tsx
|
|
37
|
+
<Pagination
|
|
38
|
+
total={320}
|
|
39
|
+
page={sizePage}
|
|
40
|
+
pageSize={pageSize}
|
|
41
|
+
onChange={setSizePage}
|
|
42
|
+
showSizeChanger
|
|
43
|
+
onShowSizeChange={(_cur, size) => setPageSize(size)}
|
|
44
|
+
/>
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### 跳转 + 条数 + 自定义选项
|
|
48
|
+
|
|
49
|
+
同时启用两项,并通过 pageSizeOptions 自定义候选条数。
|
|
50
|
+
|
|
51
|
+
```tsx
|
|
52
|
+
<Pagination
|
|
53
|
+
total={999}
|
|
54
|
+
page={fullPage}
|
|
55
|
+
pageSize={fullPageSize}
|
|
56
|
+
onChange={setFullPage}
|
|
57
|
+
showQuickJumper
|
|
58
|
+
showSizeChanger
|
|
59
|
+
pageSizeOptions={[20, 50, 100, 200]}
|
|
60
|
+
onShowSizeChange={(_cur, size) => setFullPageSize(size)}
|
|
61
|
+
/>
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## API
|
|
65
|
+
|
|
66
|
+
**Pagination**
|
|
67
|
+
|
|
68
|
+
| Prop | 类型 | 默认 | 说明 |
|
|
69
|
+
| --- | --- | --- | --- |
|
|
70
|
+
| total \* | `number` | — | 数据总条数 |
|
|
71
|
+
| pageSize | `number` | `10` | 每页条数 |
|
|
72
|
+
| page / defaultPage | `number` | `1` | 受控/初始页码 |
|
|
73
|
+
| onChange | `(page: number) => void` | — | 页码变化回调 |
|
|
74
|
+
| siblings | `number` | `1` | 当前页两侧可见的页码数 |
|
|
75
|
+
| showQuickJumper | `boolean` | `false` | 显示跳转输入框,按 Enter 跳转 |
|
|
76
|
+
| showSizeChanger | `boolean` | `false` | 显示每页条数选择器,切换后回到第 1 页 |
|
|
77
|
+
| pageSizeOptions | `number[]` | `[10, 20, 50, 100]` | 每页条数候选项 |
|
|
78
|
+
| onShowSizeChange | `(current: number, size: number) => void` | — | 每页条数变更回调 |
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
[← 回到索引](../llms.md)
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Popover 气泡卡片
|
|
2
|
+
|
|
3
|
+
> 比 Tooltip 更丰富,可承载交互内容。
|
|
4
|
+
|
|
5
|
+
## 导入
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
import { Popover } from "@fangxinyan/lumina";
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## 示例
|
|
12
|
+
|
|
13
|
+
### 基础
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
<Popover content={<>...</>}>
|
|
17
|
+
<Button>触发</Button>
|
|
18
|
+
</Popover>
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## API
|
|
22
|
+
|
|
23
|
+
**Popover**
|
|
24
|
+
|
|
25
|
+
| Prop | 类型 | 默认 | 说明 |
|
|
26
|
+
| --- | --- | --- | --- |
|
|
27
|
+
| content \* | `ReactNode` | — | 浮层内容 |
|
|
28
|
+
| placement | `"top" | "bottom" | "left" | "right"` | `"bottom"` | 位置 |
|
|
29
|
+
| trigger | `"click" | "hover"` | `"click"` | 触发方式 |
|
|
30
|
+
| open / defaultOpen / onOpenChange | `—` | — | 受控显示 |
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
[← 回到索引](../llms.md)
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# Progress 进度
|
|
2
|
+
|
|
3
|
+
> 条形进度 Progress 与环形进度 Ring。
|
|
4
|
+
|
|
5
|
+
## 导入
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
import { Progress, Ring } from "@fangxinyan/lumina";
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## 示例
|
|
12
|
+
|
|
13
|
+
### 条形进度
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
<Progress value={v} label="下载中" showValue />
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### 尺寸
|
|
20
|
+
|
|
21
|
+
```tsx
|
|
22
|
+
<Progress size="sm" value={60} />
|
|
23
|
+
<Progress value={60} />
|
|
24
|
+
<Progress size="lg" value={60} />
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### 环形进度
|
|
28
|
+
|
|
29
|
+
```tsx
|
|
30
|
+
<Ring value={65} />
|
|
31
|
+
<Ring value={90} tone="success" size={80}><strong>90%</strong></Ring>
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## API
|
|
35
|
+
|
|
36
|
+
**Progress**
|
|
37
|
+
|
|
38
|
+
| Prop | 类型 | 默认 | 说明 |
|
|
39
|
+
| --- | --- | --- | --- |
|
|
40
|
+
| value \* | `number` | — | 0–max 之间 |
|
|
41
|
+
| max | `number` | `100` | 最大值 |
|
|
42
|
+
| tone | `"accent" | "success" | "warning" | "danger"` | `"accent"` | 色调 |
|
|
43
|
+
| size | `"sm" | "md" | "lg"` | `"md"` | 尺寸 |
|
|
44
|
+
| label | `ReactNode` | — | 顶部文案 |
|
|
45
|
+
| showValue | `boolean` | `false` | 显示百分比 |
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
**Ring**
|
|
49
|
+
|
|
50
|
+
| Prop | 类型 | 默认 | 说明 |
|
|
51
|
+
| --- | --- | --- | --- |
|
|
52
|
+
| value \* | `number` | — | 0–100 |
|
|
53
|
+
| size | `number` | `72` | 直径 (px) |
|
|
54
|
+
| tone | `"accent" | "success" | ...` | `"accent"` | 色调 |
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
[← 回到索引](../llms.md)
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Radio 单选
|
|
2
|
+
|
|
3
|
+
> 在多个互斥选项中进行单项选择。
|
|
4
|
+
|
|
5
|
+
## 导入
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
import { RadioGroup } from "@fangxinyan/lumina";
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## 示例
|
|
12
|
+
|
|
13
|
+
### 基础用法
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
<RadioGroup value={v} onChange={setV} options={[
|
|
17
|
+
{ value: "daily", label: "每日" },
|
|
18
|
+
{ value: "weekly", label: "每周" },
|
|
19
|
+
]} />
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
### 水平排列
|
|
23
|
+
|
|
24
|
+
direction='horizontal'。
|
|
25
|
+
|
|
26
|
+
```tsx
|
|
27
|
+
<RadioGroup direction="horizontal" ... />
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## API
|
|
31
|
+
|
|
32
|
+
**RadioGroup**
|
|
33
|
+
|
|
34
|
+
| Prop | 类型 | 默认 | 说明 |
|
|
35
|
+
| --- | --- | --- | --- |
|
|
36
|
+
| options \* | `{ value, label, disabled? }[]` | — | 选项数组 |
|
|
37
|
+
| value / defaultValue | `T` | — | 受控/初始 |
|
|
38
|
+
| onChange | `(value: T) => void` | — | 变更 |
|
|
39
|
+
| direction | `"vertical" | "horizontal"` | `"vertical"` | 方向 |
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
[← 回到索引](../llms.md)
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# Select 下拉选择
|
|
2
|
+
|
|
3
|
+
> 下拉选择,支持单/多选、搜索、分组、加载态。
|
|
4
|
+
|
|
5
|
+
## 导入
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
import { Select } from "@fangxinyan/lumina";
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## 示例
|
|
12
|
+
|
|
13
|
+
### 单选
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
<Select value={lang} onChange={setLang} options={[
|
|
17
|
+
{ value: "zh", label: "简体中文" },
|
|
18
|
+
{ value: "en", label: "English" },
|
|
19
|
+
]} />
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
### 多选
|
|
23
|
+
|
|
24
|
+
multiple + Tag 形式呈现已选项。
|
|
25
|
+
|
|
26
|
+
```tsx
|
|
27
|
+
<Select multiple clearable value={tags} onChange={setTags} options={...} />
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### 搜索过滤
|
|
31
|
+
|
|
32
|
+
searchable + clearable + 选项 icon/description。
|
|
33
|
+
|
|
34
|
+
```tsx
|
|
35
|
+
<Select searchable clearable
|
|
36
|
+
options={[{ value, label, icon, description }]}
|
|
37
|
+
/>
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### 分组
|
|
41
|
+
|
|
42
|
+
options 接受 { label, options } 表示分组。
|
|
43
|
+
|
|
44
|
+
```tsx
|
|
45
|
+
options={[
|
|
46
|
+
{ label: "前端", options: [...] },
|
|
47
|
+
{ label: "后端", options: [...] },
|
|
48
|
+
]}
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### 加载态
|
|
52
|
+
|
|
53
|
+
loading 时显示 spinner,emptyContent 自定义空态。
|
|
54
|
+
|
|
55
|
+
```tsx
|
|
56
|
+
<Select searchable loading={loading} options={asyncOpts} />
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### 尺寸 / 状态
|
|
60
|
+
|
|
61
|
+
```tsx
|
|
62
|
+
<Select size="sm" /> <Select /> <Select size="lg" />
|
|
63
|
+
<Select invalid /> <Select disabled />
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## API
|
|
67
|
+
|
|
68
|
+
**Select**
|
|
69
|
+
|
|
70
|
+
| Prop | 类型 | 默认 | 说明 |
|
|
71
|
+
| --- | --- | --- | --- |
|
|
72
|
+
| options \* | `SelectItem<T>[]` | — | 选项,可含 { label, options } 分组 |
|
|
73
|
+
| value / defaultValue | `T | T[]` | — | 受控/初始 |
|
|
74
|
+
| onChange | `(value) => void` | — | 变更 |
|
|
75
|
+
| multiple | `boolean` | `false` | 多选 |
|
|
76
|
+
| maxTagCount | `number` | — | 多选时显示的标签数(超出折叠 +N) |
|
|
77
|
+
| searchable | `boolean` | `false` | 可搜索 |
|
|
78
|
+
| filterOption | `(input, option) => boolean` | — | 自定义过滤 |
|
|
79
|
+
| clearable | `boolean` | `false` | 可清除 |
|
|
80
|
+
| loading | `boolean` | `false` | 加载态 |
|
|
81
|
+
| emptyContent | `ReactNode` | — | 空态文案 |
|
|
82
|
+
| size | `"sm" | "md" | "lg"` | `"md"` | 尺寸 |
|
|
83
|
+
| invalid | `boolean` | `false` | 错误态 |
|
|
84
|
+
| disabled | `boolean` | `false` | 禁用 |
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
**SelectOption**
|
|
88
|
+
|
|
89
|
+
| Prop | 类型 | 默认 | 说明 |
|
|
90
|
+
| --- | --- | --- | --- |
|
|
91
|
+
| value \* | `T` | — | 值 |
|
|
92
|
+
| label | `ReactNode` | — | 显示 |
|
|
93
|
+
| icon | `IconName` | — | 前置图标 |
|
|
94
|
+
| description | `ReactNode` | — | 次要描述 |
|
|
95
|
+
| disabled | `boolean` | `false` | 禁用项 |
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
[← 回到索引](../llms.md)
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Sidebar 侧边栏
|
|
2
|
+
|
|
3
|
+
> 应用主导航,沿屏幕左侧垂直排列。
|
|
4
|
+
|
|
5
|
+
## 导入
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
import { Sidebar } from "@fangxinyan/lumina";
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## 示例
|
|
12
|
+
|
|
13
|
+
### 基础
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
<Sidebar items={[{ key, label, icon, badge }]} activeKey={active} onSelect={setActive} />
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## API
|
|
20
|
+
|
|
21
|
+
**Sidebar**
|
|
22
|
+
|
|
23
|
+
| Prop | 类型 | 默认 | 说明 |
|
|
24
|
+
| --- | --- | --- | --- |
|
|
25
|
+
| items \* | `SidebarItem[]` | — | 导航项 |
|
|
26
|
+
| activeKey | `string` | — | 当前激活项 |
|
|
27
|
+
| onSelect | `(key: string) => void` | — | 选择回调 |
|
|
28
|
+
| collapsed | `boolean` | `false` | 折叠为图标 |
|
|
29
|
+
| header / footer | `ReactNode` | — | 头/尾内容 |
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
**SidebarItem**
|
|
33
|
+
|
|
34
|
+
| Prop | 类型 | 默认 | 说明 |
|
|
35
|
+
| --- | --- | --- | --- |
|
|
36
|
+
| key \* | `string` | — | 唯一键 |
|
|
37
|
+
| label | `ReactNode` | — | 文案 |
|
|
38
|
+
| icon | `ReactNode` | — | 前置图标 |
|
|
39
|
+
| badge | `ReactNode` | — | 尾部徽标 |
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
[← 回到索引](../llms.md)
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# Skeleton 骨架屏
|
|
2
|
+
|
|
3
|
+
> 数据加载前展示页面结构轮廓。
|
|
4
|
+
|
|
5
|
+
## 导入
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
import { Skeleton } from "@fangxinyan/lumina";
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## 示例
|
|
12
|
+
|
|
13
|
+
### 基础
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
<Skeleton height={16} width="40%" />
|
|
17
|
+
<Skeleton height={12} />
|
|
18
|
+
<Skeleton height={12} width="80%" />
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
### 手动组合:头像 + 文本
|
|
22
|
+
|
|
23
|
+
使用原语 Skeleton 手动拼装 — 更灵活但需要自己写布局。
|
|
24
|
+
|
|
25
|
+
```tsx
|
|
26
|
+
<Skeleton circle height={48} width={48} />
|
|
27
|
+
<Skeleton height={12} width="50%" />
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### 组合模式 (avatar + title + paragraph)
|
|
31
|
+
|
|
32
|
+
设置 avatar / title / paragraph 任一即切换到组合模式,自动拼装布局。
|
|
33
|
+
|
|
34
|
+
```tsx
|
|
35
|
+
<Skeleton avatar title paragraph />
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### 组合:自定义头像形状、段落行数
|
|
39
|
+
|
|
40
|
+
```tsx
|
|
41
|
+
<Skeleton
|
|
42
|
+
avatar={{ shape: "square", size: "lg" }}
|
|
43
|
+
title={{ width: "30%" }}
|
|
44
|
+
paragraph={{ rows: 4, width: ["100%", "90%", "70%", "40%"] }}
|
|
45
|
+
/>
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### 组合:仅 title + paragraph
|
|
49
|
+
|
|
50
|
+
关闭 avatar 只渲染标题与段落,其余布局自动调整。
|
|
51
|
+
|
|
52
|
+
```tsx
|
|
53
|
+
<Skeleton title paragraph={{ rows: 2 }} />
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### 动画
|
|
57
|
+
|
|
58
|
+
wave 是闪光流动,pulse 是透明度脉动,none 是静态占位。
|
|
59
|
+
|
|
60
|
+
```tsx
|
|
61
|
+
<Skeleton animation="wave" />
|
|
62
|
+
<Skeleton animation="pulse" />
|
|
63
|
+
<Skeleton animation="none" />
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## API
|
|
67
|
+
|
|
68
|
+
**Skeleton (原语模式)**
|
|
69
|
+
|
|
70
|
+
| Prop | 类型 | 默认 | 说明 |
|
|
71
|
+
| --- | --- | --- | --- |
|
|
72
|
+
| width | `number | string` | `"100%"` | 宽度 |
|
|
73
|
+
| height | `number | string` | `16` | 高度 |
|
|
74
|
+
| circle | `boolean` | `false` | 圆形 |
|
|
75
|
+
| animation | `"wave" | "pulse" | "none"` | `"wave"` | 动画 |
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
**Skeleton (组合模式)**
|
|
79
|
+
|
|
80
|
+
| Prop | 类型 | 默认 | 说明 |
|
|
81
|
+
| --- | --- | --- | --- |
|
|
82
|
+
| avatar | `boolean | { shape?: "circle" | "square"; size?: "sm" | "md" | "lg" }` | `false` | 左侧头像骨架。为对象时可定制 shape / size |
|
|
83
|
+
| title | `boolean | { width?: number | string }` | `true (composite)` | 标题行骨架。组合模式下默认 true |
|
|
84
|
+
| paragraph | `boolean | { rows?: number; width?: (number | string)[] }` | `{ rows: 3 }` | 段落行骨架。可指定 rows 与每行宽度(最后一行默认 60%) |
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
[← 回到索引](../llms.md)
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# Slider 滑块
|
|
2
|
+
|
|
3
|
+
> 在连续数值区间内取值。
|
|
4
|
+
|
|
5
|
+
## 导入
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
import { Slider } from "@fangxinyan/lumina";
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## 示例
|
|
12
|
+
|
|
13
|
+
### 基础用法
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
<Slider value={v} onChange={setV} showValue />
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### 步进 / 范围
|
|
20
|
+
|
|
21
|
+
min/max/step 控制取值范围与步进。
|
|
22
|
+
|
|
23
|
+
```tsx
|
|
24
|
+
<Slider min={0} max={10} step={1} defaultValue={5} showValue />
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### 色调
|
|
28
|
+
|
|
29
|
+
```tsx
|
|
30
|
+
<Slider tone="success" defaultValue={70} />
|
|
31
|
+
<Slider tone="warning" defaultValue={50} />
|
|
32
|
+
<Slider tone="danger" defaultValue={88} />
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### 双滑块区间
|
|
36
|
+
|
|
37
|
+
range 模式下 value / onChange 采用 [min, max] 元组。
|
|
38
|
+
|
|
39
|
+
```tsx
|
|
40
|
+
const [v, setV] = useState<[number, number]>([20, 70]);
|
|
41
|
+
<Slider range value={v} onChange={setV} showValue />
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### 刻度标记
|
|
45
|
+
|
|
46
|
+
marks 提供可点击刻度,点击即可跳到该值。
|
|
47
|
+
|
|
48
|
+
```tsx
|
|
49
|
+
<Slider
|
|
50
|
+
defaultValue={37}
|
|
51
|
+
marks={{ 0: "0°C", 26: "冷", 37: "正常", 100: "100°C" }}
|
|
52
|
+
/>
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## API
|
|
56
|
+
|
|
57
|
+
**Slider**
|
|
58
|
+
|
|
59
|
+
| Prop | 类型 | 默认 | 说明 |
|
|
60
|
+
| --- | --- | --- | --- |
|
|
61
|
+
| value / defaultValue | `number | [number, number]` | — | 受控/初始;range 模式下为 [number, number] |
|
|
62
|
+
| onChange | `(value) => void` | — | 变更回调,range 模式返回元组 |
|
|
63
|
+
| min / max / step | `number` | — | 区间与步进 |
|
|
64
|
+
| range | `boolean` | `false` | 是否为双滑块区间模式 |
|
|
65
|
+
| marks | `Record<number, ReactNode>` | — | 刻度,点击可跳到对应值 |
|
|
66
|
+
| tone | `"accent" | "success" | "warning" | "danger"` | `"accent"` | 色调 |
|
|
67
|
+
| showValue | `boolean` | `false` | 显示数值 |
|
|
68
|
+
| disabled | `boolean` | `false` | 禁用 |
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
[← 回到索引](../llms.md)
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# Spinner 加载
|
|
2
|
+
|
|
3
|
+
> 表示任务正在进行,提示用户等待。
|
|
4
|
+
|
|
5
|
+
## 导入
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
import { Spinner } from "@fangxinyan/lumina";
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## 示例
|
|
12
|
+
|
|
13
|
+
### 基础
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
<Spinner />
|
|
17
|
+
<Spinner size={28} />
|
|
18
|
+
<Spinner size={40} />
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
### 色调
|
|
22
|
+
|
|
23
|
+
```tsx
|
|
24
|
+
<Spinner tone="accent" />
|
|
25
|
+
<Spinner tone="success" />
|
|
26
|
+
<Spinner tone="warning" />
|
|
27
|
+
<Spinner tone="danger" />
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### Dots 变体
|
|
31
|
+
|
|
32
|
+
```tsx
|
|
33
|
+
<Spinner variant="dots" />
|
|
34
|
+
<Spinner variant="dots" size={24} />
|
|
35
|
+
<Spinner variant="dots" size={32} />
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### 带文案
|
|
39
|
+
|
|
40
|
+
```tsx
|
|
41
|
+
<Spinner label="加载中…" />
|
|
42
|
+
<Spinner variant="dots" tone="accent" label="正在同步" />
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## API
|
|
46
|
+
|
|
47
|
+
**Spinner**
|
|
48
|
+
|
|
49
|
+
| Prop | 类型 | 默认 | 说明 |
|
|
50
|
+
| --- | --- | --- | --- |
|
|
51
|
+
| size | `number` | `20` | 尺寸 (px) |
|
|
52
|
+
| tone | `"accent" | "success" | "warning" | "danger" | "current"` | `"accent"` | 色调 |
|
|
53
|
+
| variant | `"ring" | "dots"` | `"ring"` | 样式 |
|
|
54
|
+
| label | `ReactNode` | — | 文案 |
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
[← 回到索引](../llms.md)
|