@bill.gong/lumina-ui 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (291) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +456 -0
  3. package/dist/components/Alert/Alert.d.ts +4 -0
  4. package/dist/components/Alert/Alert.d.ts.map +1 -0
  5. package/dist/components/Alert/Alert.styles.d.ts +12 -0
  6. package/dist/components/Alert/Alert.styles.d.ts.map +1 -0
  7. package/dist/components/Alert/Alert.types.d.ts +20 -0
  8. package/dist/components/Alert/Alert.types.d.ts.map +1 -0
  9. package/dist/components/Alert/index.d.ts +3 -0
  10. package/dist/components/Alert/index.d.ts.map +1 -0
  11. package/dist/components/Avatar/Avatar.d.ts +4 -0
  12. package/dist/components/Avatar/Avatar.d.ts.map +1 -0
  13. package/dist/components/Avatar/Avatar.styles.d.ts +12 -0
  14. package/dist/components/Avatar/Avatar.styles.d.ts.map +1 -0
  15. package/dist/components/Avatar/Avatar.types.d.ts +17 -0
  16. package/dist/components/Avatar/Avatar.types.d.ts.map +1 -0
  17. package/dist/components/Avatar/index.d.ts +3 -0
  18. package/dist/components/Avatar/index.d.ts.map +1 -0
  19. package/dist/components/Badge/Badge.d.ts +4 -0
  20. package/dist/components/Badge/Badge.d.ts.map +1 -0
  21. package/dist/components/Badge/Badge.styles.d.ts +10 -0
  22. package/dist/components/Badge/Badge.styles.d.ts.map +1 -0
  23. package/dist/components/Badge/Badge.types.d.ts +17 -0
  24. package/dist/components/Badge/Badge.types.d.ts.map +1 -0
  25. package/dist/components/Badge/index.d.ts +3 -0
  26. package/dist/components/Badge/index.d.ts.map +1 -0
  27. package/dist/components/Breadcrumb/Breadcrumb.d.ts +4 -0
  28. package/dist/components/Breadcrumb/Breadcrumb.d.ts.map +1 -0
  29. package/dist/components/Breadcrumb/Breadcrumb.styles.d.ts +6 -0
  30. package/dist/components/Breadcrumb/Breadcrumb.styles.d.ts.map +1 -0
  31. package/dist/components/Breadcrumb/Breadcrumb.types.d.ts +17 -0
  32. package/dist/components/Breadcrumb/Breadcrumb.types.d.ts.map +1 -0
  33. package/dist/components/Breadcrumb/index.d.ts +3 -0
  34. package/dist/components/Breadcrumb/index.d.ts.map +1 -0
  35. package/dist/components/Button/Button.d.ts +4 -0
  36. package/dist/components/Button/Button.d.ts.map +1 -0
  37. package/dist/components/Button/Button.styles.d.ts +11 -0
  38. package/dist/components/Button/Button.styles.d.ts.map +1 -0
  39. package/dist/components/Button/Button.types.d.ts +21 -0
  40. package/dist/components/Button/Button.types.d.ts.map +1 -0
  41. package/dist/components/Button/index.d.ts +3 -0
  42. package/dist/components/Button/index.d.ts.map +1 -0
  43. package/dist/components/Card/Card.d.ts +4 -0
  44. package/dist/components/Card/Card.d.ts.map +1 -0
  45. package/dist/components/Card/Card.styles.d.ts +14 -0
  46. package/dist/components/Card/Card.styles.d.ts.map +1 -0
  47. package/dist/components/Card/Card.types.d.ts +24 -0
  48. package/dist/components/Card/Card.types.d.ts.map +1 -0
  49. package/dist/components/Card/index.d.ts +3 -0
  50. package/dist/components/Card/index.d.ts.map +1 -0
  51. package/dist/components/Checkbox/Checkbox.d.ts +4 -0
  52. package/dist/components/Checkbox/Checkbox.d.ts.map +1 -0
  53. package/dist/components/Checkbox/Checkbox.styles.d.ts +10 -0
  54. package/dist/components/Checkbox/Checkbox.styles.d.ts.map +1 -0
  55. package/dist/components/Checkbox/Checkbox.types.d.ts +10 -0
  56. package/dist/components/Checkbox/Checkbox.types.d.ts.map +1 -0
  57. package/dist/components/Checkbox/index.d.ts +3 -0
  58. package/dist/components/Checkbox/index.d.ts.map +1 -0
  59. package/dist/components/Collapse/Collapse.d.ts +4 -0
  60. package/dist/components/Collapse/Collapse.d.ts.map +1 -0
  61. package/dist/components/Collapse/Collapse.styles.d.ts +15 -0
  62. package/dist/components/Collapse/Collapse.styles.d.ts.map +1 -0
  63. package/dist/components/Collapse/Collapse.types.d.ts +24 -0
  64. package/dist/components/Collapse/Collapse.types.d.ts.map +1 -0
  65. package/dist/components/Collapse/index.d.ts +3 -0
  66. package/dist/components/Collapse/index.d.ts.map +1 -0
  67. package/dist/components/DatePicker/DatePicker.d.ts +4 -0
  68. package/dist/components/DatePicker/DatePicker.d.ts.map +1 -0
  69. package/dist/components/DatePicker/DatePicker.styles.d.ts +21 -0
  70. package/dist/components/DatePicker/DatePicker.styles.d.ts.map +1 -0
  71. package/dist/components/DatePicker/DatePicker.types.d.ts +21 -0
  72. package/dist/components/DatePicker/DatePicker.types.d.ts.map +1 -0
  73. package/dist/components/DatePicker/index.d.ts +3 -0
  74. package/dist/components/DatePicker/index.d.ts.map +1 -0
  75. package/dist/components/Divider/Divider.d.ts +4 -0
  76. package/dist/components/Divider/Divider.d.ts.map +1 -0
  77. package/dist/components/Divider/Divider.styles.d.ts +9 -0
  78. package/dist/components/Divider/Divider.styles.d.ts.map +1 -0
  79. package/dist/components/Divider/Divider.types.d.ts +13 -0
  80. package/dist/components/Divider/Divider.types.d.ts.map +1 -0
  81. package/dist/components/Divider/index.d.ts +3 -0
  82. package/dist/components/Divider/index.d.ts.map +1 -0
  83. package/dist/components/Drawer/Drawer.d.ts +4 -0
  84. package/dist/components/Drawer/Drawer.d.ts.map +1 -0
  85. package/dist/components/Drawer/Drawer.styles.d.ts +10 -0
  86. package/dist/components/Drawer/Drawer.styles.d.ts.map +1 -0
  87. package/dist/components/Drawer/Drawer.types.d.ts +21 -0
  88. package/dist/components/Drawer/Drawer.types.d.ts.map +1 -0
  89. package/dist/components/Drawer/index.d.ts +3 -0
  90. package/dist/components/Drawer/index.d.ts.map +1 -0
  91. package/dist/components/Dropdown/Dropdown.d.ts +4 -0
  92. package/dist/components/Dropdown/Dropdown.d.ts.map +1 -0
  93. package/dist/components/Dropdown/Dropdown.styles.d.ts +10 -0
  94. package/dist/components/Dropdown/Dropdown.styles.d.ts.map +1 -0
  95. package/dist/components/Dropdown/Dropdown.types.d.ts +23 -0
  96. package/dist/components/Dropdown/Dropdown.types.d.ts.map +1 -0
  97. package/dist/components/Dropdown/index.d.ts +3 -0
  98. package/dist/components/Dropdown/index.d.ts.map +1 -0
  99. package/dist/components/Form/Form.d.ts +5 -0
  100. package/dist/components/Form/Form.d.ts.map +1 -0
  101. package/dist/components/Form/Form.styles.d.ts +12 -0
  102. package/dist/components/Form/Form.styles.d.ts.map +1 -0
  103. package/dist/components/Form/Form.types.d.ts +44 -0
  104. package/dist/components/Form/Form.types.d.ts.map +1 -0
  105. package/dist/components/Form/index.d.ts +3 -0
  106. package/dist/components/Form/index.d.ts.map +1 -0
  107. package/dist/components/ImageViewer/ImageViewer.d.ts +4 -0
  108. package/dist/components/ImageViewer/ImageViewer.d.ts.map +1 -0
  109. package/dist/components/ImageViewer/ImageViewer.styles.d.ts +25 -0
  110. package/dist/components/ImageViewer/ImageViewer.styles.d.ts.map +1 -0
  111. package/dist/components/ImageViewer/ImageViewer.types.d.ts +23 -0
  112. package/dist/components/ImageViewer/ImageViewer.types.d.ts.map +1 -0
  113. package/dist/components/ImageViewer/index.d.ts +3 -0
  114. package/dist/components/ImageViewer/index.d.ts.map +1 -0
  115. package/dist/components/Input/Input.d.ts +4 -0
  116. package/dist/components/Input/Input.d.ts.map +1 -0
  117. package/dist/components/Input/Input.styles.d.ts +23 -0
  118. package/dist/components/Input/Input.styles.d.ts.map +1 -0
  119. package/dist/components/Input/Input.types.d.ts +24 -0
  120. package/dist/components/Input/Input.types.d.ts.map +1 -0
  121. package/dist/components/Input/index.d.ts +3 -0
  122. package/dist/components/Input/index.d.ts.map +1 -0
  123. package/dist/components/List/List.d.ts +8 -0
  124. package/dist/components/List/List.d.ts.map +1 -0
  125. package/dist/components/List/List.styles.d.ts +16 -0
  126. package/dist/components/List/List.styles.d.ts.map +1 -0
  127. package/dist/components/List/List.types.d.ts +28 -0
  128. package/dist/components/List/List.types.d.ts.map +1 -0
  129. package/dist/components/List/index.d.ts +3 -0
  130. package/dist/components/List/index.d.ts.map +1 -0
  131. package/dist/components/Modal/Modal.d.ts +4 -0
  132. package/dist/components/Modal/Modal.d.ts.map +1 -0
  133. package/dist/components/Modal/Modal.styles.d.ts +10 -0
  134. package/dist/components/Modal/Modal.styles.d.ts.map +1 -0
  135. package/dist/components/Modal/Modal.types.d.ts +19 -0
  136. package/dist/components/Modal/Modal.types.d.ts.map +1 -0
  137. package/dist/components/Modal/index.d.ts +3 -0
  138. package/dist/components/Modal/index.d.ts.map +1 -0
  139. package/dist/components/Pagination/Pagination.d.ts +4 -0
  140. package/dist/components/Pagination/Pagination.d.ts.map +1 -0
  141. package/dist/components/Pagination/Pagination.styles.d.ts +9 -0
  142. package/dist/components/Pagination/Pagination.styles.d.ts.map +1 -0
  143. package/dist/components/Pagination/Pagination.types.d.ts +23 -0
  144. package/dist/components/Pagination/Pagination.types.d.ts.map +1 -0
  145. package/dist/components/Pagination/index.d.ts +3 -0
  146. package/dist/components/Pagination/index.d.ts.map +1 -0
  147. package/dist/components/Popover/Popover.d.ts +5 -0
  148. package/dist/components/Popover/Popover.d.ts.map +1 -0
  149. package/dist/components/Popover/Popover.styles.d.ts +10 -0
  150. package/dist/components/Popover/Popover.styles.d.ts.map +1 -0
  151. package/dist/components/Popover/Popover.types.d.ts +32 -0
  152. package/dist/components/Popover/Popover.types.d.ts.map +1 -0
  153. package/dist/components/Popover/index.d.ts +3 -0
  154. package/dist/components/Popover/index.d.ts.map +1 -0
  155. package/dist/components/Progress/Progress.d.ts +4 -0
  156. package/dist/components/Progress/Progress.d.ts.map +1 -0
  157. package/dist/components/Progress/Progress.styles.d.ts +18 -0
  158. package/dist/components/Progress/Progress.styles.d.ts.map +1 -0
  159. package/dist/components/Progress/Progress.types.d.ts +22 -0
  160. package/dist/components/Progress/Progress.types.d.ts.map +1 -0
  161. package/dist/components/Progress/index.d.ts +3 -0
  162. package/dist/components/Progress/index.d.ts.map +1 -0
  163. package/dist/components/Radio/Radio.d.ts +5 -0
  164. package/dist/components/Radio/Radio.d.ts.map +1 -0
  165. package/dist/components/Radio/Radio.styles.d.ts +12 -0
  166. package/dist/components/Radio/Radio.styles.d.ts.map +1 -0
  167. package/dist/components/Radio/Radio.types.d.ts +23 -0
  168. package/dist/components/Radio/Radio.types.d.ts.map +1 -0
  169. package/dist/components/Radio/index.d.ts +3 -0
  170. package/dist/components/Radio/index.d.ts.map +1 -0
  171. package/dist/components/Select/Select.d.ts +4 -0
  172. package/dist/components/Select/Select.d.ts.map +1 -0
  173. package/dist/components/Select/Select.styles.d.ts +26 -0
  174. package/dist/components/Select/Select.styles.d.ts.map +1 -0
  175. package/dist/components/Select/Select.types.d.ts +40 -0
  176. package/dist/components/Select/Select.types.d.ts.map +1 -0
  177. package/dist/components/Select/index.d.ts +3 -0
  178. package/dist/components/Select/index.d.ts.map +1 -0
  179. package/dist/components/Skeleton/Skeleton.d.ts +4 -0
  180. package/dist/components/Skeleton/Skeleton.d.ts.map +1 -0
  181. package/dist/components/Skeleton/Skeleton.styles.d.ts +7 -0
  182. package/dist/components/Skeleton/Skeleton.styles.d.ts.map +1 -0
  183. package/dist/components/Skeleton/Skeleton.types.d.ts +18 -0
  184. package/dist/components/Skeleton/Skeleton.types.d.ts.map +1 -0
  185. package/dist/components/Skeleton/index.d.ts +3 -0
  186. package/dist/components/Skeleton/index.d.ts.map +1 -0
  187. package/dist/components/Slider/Slider.d.ts +4 -0
  188. package/dist/components/Slider/Slider.d.ts.map +1 -0
  189. package/dist/components/Slider/Slider.styles.d.ts +14 -0
  190. package/dist/components/Slider/Slider.styles.d.ts.map +1 -0
  191. package/dist/components/Slider/Slider.types.d.ts +21 -0
  192. package/dist/components/Slider/Slider.types.d.ts.map +1 -0
  193. package/dist/components/Slider/index.d.ts +3 -0
  194. package/dist/components/Slider/index.d.ts.map +1 -0
  195. package/dist/components/Spinner/Spinner.d.ts +4 -0
  196. package/dist/components/Spinner/Spinner.d.ts.map +1 -0
  197. package/dist/components/Spinner/Spinner.styles.d.ts +14 -0
  198. package/dist/components/Spinner/Spinner.styles.d.ts.map +1 -0
  199. package/dist/components/Spinner/Spinner.types.d.ts +14 -0
  200. package/dist/components/Spinner/Spinner.types.d.ts.map +1 -0
  201. package/dist/components/Spinner/index.d.ts +3 -0
  202. package/dist/components/Spinner/index.d.ts.map +1 -0
  203. package/dist/components/Switch/Switch.d.ts +4 -0
  204. package/dist/components/Switch/Switch.d.ts.map +1 -0
  205. package/dist/components/Switch/Switch.styles.d.ts +17 -0
  206. package/dist/components/Switch/Switch.styles.d.ts.map +1 -0
  207. package/dist/components/Switch/Switch.types.d.ts +11 -0
  208. package/dist/components/Switch/Switch.types.d.ts.map +1 -0
  209. package/dist/components/Switch/index.d.ts +3 -0
  210. package/dist/components/Switch/index.d.ts.map +1 -0
  211. package/dist/components/Table/Table.d.ts +6 -0
  212. package/dist/components/Table/Table.d.ts.map +1 -0
  213. package/dist/components/Table/Table.styles.d.ts +26 -0
  214. package/dist/components/Table/Table.styles.d.ts.map +1 -0
  215. package/dist/components/Table/Table.types.d.ts +39 -0
  216. package/dist/components/Table/Table.types.d.ts.map +1 -0
  217. package/dist/components/Table/index.d.ts +3 -0
  218. package/dist/components/Table/index.d.ts.map +1 -0
  219. package/dist/components/Tabs/Tabs.d.ts +6 -0
  220. package/dist/components/Tabs/Tabs.d.ts.map +1 -0
  221. package/dist/components/Tabs/Tabs.styles.d.ts +14 -0
  222. package/dist/components/Tabs/Tabs.styles.d.ts.map +1 -0
  223. package/dist/components/Tabs/Tabs.types.d.ts +30 -0
  224. package/dist/components/Tabs/Tabs.types.d.ts.map +1 -0
  225. package/dist/components/Tabs/index.d.ts +3 -0
  226. package/dist/components/Tabs/index.d.ts.map +1 -0
  227. package/dist/components/Tag/Tag.d.ts +4 -0
  228. package/dist/components/Tag/Tag.d.ts.map +1 -0
  229. package/dist/components/Tag/Tag.styles.d.ts +8 -0
  230. package/dist/components/Tag/Tag.styles.d.ts.map +1 -0
  231. package/dist/components/Tag/Tag.types.d.ts +20 -0
  232. package/dist/components/Tag/Tag.types.d.ts.map +1 -0
  233. package/dist/components/Tag/index.d.ts +3 -0
  234. package/dist/components/Tag/index.d.ts.map +1 -0
  235. package/dist/components/TimePicker/TimePicker.d.ts +4 -0
  236. package/dist/components/TimePicker/TimePicker.d.ts.map +1 -0
  237. package/dist/components/TimePicker/TimePicker.styles.d.ts +15 -0
  238. package/dist/components/TimePicker/TimePicker.styles.d.ts.map +1 -0
  239. package/dist/components/TimePicker/TimePicker.types.d.ts +23 -0
  240. package/dist/components/TimePicker/TimePicker.types.d.ts.map +1 -0
  241. package/dist/components/TimePicker/index.d.ts +3 -0
  242. package/dist/components/TimePicker/index.d.ts.map +1 -0
  243. package/dist/components/Toast/Toast.d.ts +30 -0
  244. package/dist/components/Toast/Toast.d.ts.map +1 -0
  245. package/dist/components/Toast/Toast.styles.d.ts +10 -0
  246. package/dist/components/Toast/Toast.styles.d.ts.map +1 -0
  247. package/dist/components/Toast/Toast.types.d.ts +17 -0
  248. package/dist/components/Toast/Toast.types.d.ts.map +1 -0
  249. package/dist/components/Toast/index.d.ts +3 -0
  250. package/dist/components/Toast/index.d.ts.map +1 -0
  251. package/dist/components/Tooltip/Tooltip.d.ts +4 -0
  252. package/dist/components/Tooltip/Tooltip.d.ts.map +1 -0
  253. package/dist/components/Tooltip/Tooltip.styles.d.ts +6 -0
  254. package/dist/components/Tooltip/Tooltip.styles.d.ts.map +1 -0
  255. package/dist/components/Tooltip/Tooltip.types.d.ts +14 -0
  256. package/dist/components/Tooltip/Tooltip.types.d.ts.map +1 -0
  257. package/dist/components/Tooltip/index.d.ts +3 -0
  258. package/dist/components/Tooltip/index.d.ts.map +1 -0
  259. package/dist/components/Upload/Upload.d.ts +4 -0
  260. package/dist/components/Upload/Upload.d.ts.map +1 -0
  261. package/dist/components/Upload/Upload.styles.d.ts +14 -0
  262. package/dist/components/Upload/Upload.styles.d.ts.map +1 -0
  263. package/dist/components/Upload/Upload.types.d.ts +32 -0
  264. package/dist/components/Upload/Upload.types.d.ts.map +1 -0
  265. package/dist/components/Upload/index.d.ts +3 -0
  266. package/dist/components/Upload/index.d.ts.map +1 -0
  267. package/dist/hooks/useClickOutside.d.ts +7 -0
  268. package/dist/hooks/useClickOutside.d.ts.map +1 -0
  269. package/dist/hooks/useControlled.d.ts +7 -0
  270. package/dist/hooks/useControlled.d.ts.map +1 -0
  271. package/dist/hooks/useKeyboard.d.ts +17 -0
  272. package/dist/hooks/useKeyboard.d.ts.map +1 -0
  273. package/dist/index.d.ts +74 -0
  274. package/dist/index.d.ts.map +1 -0
  275. package/dist/lumina.cjs.js +4244 -0
  276. package/dist/lumina.cjs.js.map +1 -0
  277. package/dist/lumina.es.js +4244 -0
  278. package/dist/lumina.es.js.map +1 -0
  279. package/dist/styles/mixins.d.ts +8 -0
  280. package/dist/styles/mixins.d.ts.map +1 -0
  281. package/dist/styles/reset.d.ts +2 -0
  282. package/dist/styles/reset.d.ts.map +1 -0
  283. package/dist/theme/defaultTheme.d.ts +3 -0
  284. package/dist/theme/defaultTheme.d.ts.map +1 -0
  285. package/dist/theme/index.d.ts +10 -0
  286. package/dist/theme/index.d.ts.map +1 -0
  287. package/dist/theme/types.d.ts +123 -0
  288. package/dist/theme/types.d.ts.map +1 -0
  289. package/dist/utils/helpers.d.ts +10 -0
  290. package/dist/utils/helpers.d.ts.map +1 -0
  291. package/package.json +68 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 kyouseibill
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,456 @@
1
+ # Lumina UI
2
+
3
+ 一个轻量级的 React 组件库,采用 Material Design 设计风格,基于 TypeScript + styled-components 构建。
4
+
5
+ ---
6
+
7
+ ## 技术栈
8
+
9
+ | 技术 | 版本 | 用途 |
10
+ |------|------|------|
11
+ | React | ≥ 18.0 | UI 框架 |
12
+ | TypeScript | 5.6 | 类型安全 |
13
+ | styled-components | ≥ 6.0 | CSS-in-JS 样式方案 |
14
+ | Vite | 6.x | 构建工具(Library Mode) |
15
+ | vite-plugin-dts | 4.5 | 自动生成 `.d.ts` 类型声明 |
16
+ | Storybook | 8.5 | 组件文档与交互演示 |
17
+
18
+ ## 产物规格
19
+
20
+ - **ESM** — `dist/lumina.es.js`
21
+ - **CJS** — `dist/lumina.cjs.js`
22
+ - **类型声明** — `dist/index.d.ts`(含 declarationMap)
23
+ - `sideEffects: false`,支持 Tree-shaking
24
+
25
+ ---
26
+
27
+ ## 快速开始
28
+
29
+ ### 安装
30
+
31
+ ```bash
32
+ # 使用 npm
33
+ npm install lumina-ui react react-dom styled-components
34
+
35
+ # 使用 pnpm
36
+ pnpm add lumina-ui react react-dom styled-components
37
+ ```
38
+
39
+ > `react`、`react-dom`、`styled-components` 为 peerDependencies,项目中需自行安装。
40
+
41
+ ### 基本用法
42
+
43
+ ```tsx
44
+ import React from 'react';
45
+ import { LuminaProvider, Button, Input } from 'lumina-ui';
46
+
47
+ function App() {
48
+ return (
49
+ <LuminaProvider>
50
+ <Button color="primary" onClick={() => alert('Hello!')}>
51
+ 点击我
52
+ </Button>
53
+ <Input label="用户名" placeholder="请输入用户名" />
54
+ </LuminaProvider>
55
+ );
56
+ }
57
+ ```
58
+
59
+ ### 自定义主题
60
+
61
+ ```tsx
62
+ import { LuminaProvider } from 'lumina-ui';
63
+
64
+ const myTheme = {
65
+ colors: {
66
+ primary: {
67
+ light: '#6ec6ff',
68
+ main: '#2196f3',
69
+ dark: '#0069c0',
70
+ contrastText: '#fff',
71
+ },
72
+ },
73
+ borderRadius: {
74
+ sm: '8px',
75
+ md: '12px',
76
+ },
77
+ };
78
+
79
+ function App() {
80
+ return (
81
+ <LuminaProvider theme={myTheme}>
82
+ {/* 传入的主题会与默认主题深度合并 */}
83
+ {/* ... */}
84
+ </LuminaProvider>
85
+ );
86
+ }
87
+ ```
88
+
89
+ ### Toast 消息提示
90
+
91
+ Toast 需要额外包裹 `ToastProvider`:
92
+
93
+ ```tsx
94
+ import { LuminaProvider, ToastProvider, ToastBinder, useToast, Button } from 'lumina-ui';
95
+
96
+ function Inner() {
97
+ const { addToast } = useToast();
98
+ return <Button onClick={() => addToast('success', '操作成功!')}>提示</Button>;
99
+ }
100
+
101
+ function App() {
102
+ return (
103
+ <LuminaProvider>
104
+ <ToastProvider>
105
+ <Inner />
106
+ <ToastBinder />
107
+ </ToastProvider>
108
+ </LuminaProvider>
109
+ );
110
+ }
111
+ ```
112
+
113
+ ---
114
+
115
+ ## 组件总览
116
+
117
+ 共 **33** 个组件,覆盖通用、数据录入、数据展示、反馈、导航五大类。
118
+
119
+ ### 通用组件
120
+
121
+ | 组件 | 导入名 | 说明 |
122
+ |------|--------|------|
123
+ | Button | `Button` | 按钮,支持 contained / outlined / text 变体,5 种颜色,3 种尺寸,loading 状态 |
124
+ | Divider | `Divider` | 分割线,水平 / 垂直方向,支持带文字分割 |
125
+ | Spinner | `Spinner` | 加载指示器,可包裹内容或全屏显示 |
126
+ | Tag | `Tag` | 标签,filled / outlined 变体,可关闭 |
127
+
128
+ ### 数据录入
129
+
130
+ | 组件 | 导入名 | 说明 |
131
+ |------|--------|------|
132
+ | Input | `Input` | 输入框,outlined / filled / standard 变体,浮动标签 |
133
+ | Radio | `Radio`, `RadioGroup` | 单选按钮组,Context 管理受控/非受控 |
134
+ | Checkbox | `Checkbox` | 复选框,支持 indeterminate 半选状态 |
135
+ | Switch | `Switch` | 开关,small / medium 尺寸 |
136
+ | Select | `Select` | 下拉选择框,支持搜索过滤、键盘导航 |
137
+ | Slider | `Slider` | 滑块选择器,拖拽操作 + tooltip 实时数值 |
138
+ | DatePicker | `DatePicker` | 日期选择器,日历面板,支持 min/max 限制 |
139
+ | TimePicker | `TimePicker` | 时间选择器,小时/分/秒滚动列 |
140
+ | Upload | `Upload` | 文件上传,支持拖拽区域和点击上传 |
141
+ | Form | `Form`, `FormItem` | 表单容器,内置校验规则(required / min / max / pattern / 自定义) |
142
+
143
+ ### 数据展示
144
+
145
+ | 组件 | 导入名 | 说明 |
146
+ |------|--------|------|
147
+ | Table | `Table` | 表格,列定义 + 排序 + striped / bordered 样式 |
148
+ | List | `List`, `ListItem`, ... | 列表组件,支持 icon / text / action 插槽 |
149
+ | Avatar | `Avatar` | 头像,圆形 / 方形,支持图片 / 文字 / fallback |
150
+ | Badge | `Badge` | 徽标数,数字 / 小圆点模式 |
151
+ | Card | `Card` | 卡片容器,title / subtitle / cover / actions |
152
+ | Collapse | `Collapse` | 折叠面板,支持手风琴模式 |
153
+ | Tooltip | `Tooltip` | 文字提示,4 方向定位 |
154
+ | Popover | `Popover` | 气泡卡片,click / hover 触发 |
155
+ | Skeleton | `Skeleton` | 骨架屏占位,pulse / wave 动画 |
156
+ | Progress | `Progress` | 进度条,线性 + 环形,active 动画 |
157
+ | ImageViewer | `ImageViewer` | 图片查看器弹层,缩放 / 旋转 / 拖拽 / 导航 / 缩略图 |
158
+
159
+ ### 反馈
160
+
161
+ | 组件 | 导入名 | 说明 |
162
+ |------|--------|------|
163
+ | Modal | `Modal` | 模态弹窗,Portal 渲染,ESC 关闭,背景滚动锁定 |
164
+ | Drawer | `Drawer` | 抽屉面板,4 方向 (left / right / top / bottom) |
165
+ | Toast | `useToast`, `Toast.success()` | 消息提示,声明式 + 命令式双模式 |
166
+ | Alert | `Alert` | 警告提示条,4 种严重级别,可关闭 |
167
+ | Popconfirm | `Popconfirm` | 气泡确认框,确定/取消按钮 |
168
+
169
+ ### 导航
170
+
171
+ | 组件 | 导入名 | 说明 |
172
+ |------|--------|------|
173
+ | Tabs | `Tabs`, `Tab`, `TabPanel` | 选项卡,滑动指示器动画 |
174
+ | Pagination | `Pagination` | 分页器,支持每页条数选择 (`pageSizeOptions`) |
175
+ | Breadcrumb | `Breadcrumb` | 面包屑导航,超长路径折叠 |
176
+ | Dropdown | `Dropdown` | 下拉菜单,click / hover 触发,支持分割线 + 危险项 |
177
+
178
+ ---
179
+
180
+ ## 主题系统
181
+
182
+ ### 设计令牌 (Design Tokens)
183
+
184
+ 所有组件通过 `styled-components` 的 `ThemeProvider` 消费统一的主题对象 `LuminaTheme`。
185
+
186
+ ```typescript
187
+ interface LuminaTheme {
188
+ colors: {
189
+ primary: ColorShade; // { light, main, dark, contrastText }
190
+ secondary: ColorShade;
191
+ error: ColorShade;
192
+ warning: ColorShade;
193
+ success: ColorShade;
194
+ info: ColorShade;
195
+ grey: { 50 ~ 900 };
196
+ text: { primary, secondary, disabled };
197
+ background: { default, paper };
198
+ divider: string;
199
+ action: { hover, selected, disabled, disabledBackground, focus };
200
+ };
201
+ typography: {
202
+ fontFamily: string;
203
+ fontSize: { xs ~ 3xl };
204
+ fontWeight: { light, regular, medium, semibold, bold };
205
+ lineHeight: { tight, normal, relaxed };
206
+ };
207
+ spacing: (factor: number) => string; // spacing(2) => '16px'
208
+ borderRadius: { none, sm, md, lg, xl, full };
209
+ elevation: { 0 ~ 24 }; // box-shadow 预设
210
+ transition: { duration, easing };
211
+ breakpoints: { xs ~ xl };
212
+ zIndex: { appBar, drawer, modal, snackbar, tooltip };
213
+ }
214
+ ```
215
+
216
+ ### 主题定制
217
+
218
+ `LuminaProvider` 接受 `Partial<LuminaTheme>`,内部自动与默认主题 **深度合并**,仅需传入需要覆盖的字段:
219
+
220
+ ```tsx
221
+ <LuminaProvider theme={{ colors: { primary: { main: '#ff5722' } } }}>
222
+ ```
223
+
224
+ ---
225
+
226
+ ## 公共 Hooks
227
+
228
+ 组件库导出了以下可复用 Hooks:
229
+
230
+ | Hook | 说明 |
231
+ |------|------|
232
+ | `useControlled(value, defaultValue, onChange)` | 统一受控/非受控模式管理 |
233
+ | `useClickOutside(handler, active?)` | 检测点击元素外部,返回 ref |
234
+ | `useKeyboard(handlers)` | 键盘事件快捷绑定 (Enter / Escape / Arrow 等) |
235
+
236
+ ---
237
+
238
+ ## 项目结构
239
+
240
+ ```
241
+ Lumina/
242
+ ├── src/
243
+ │ ├── index.ts # 统一导出入口
244
+ │ ├── theme/
245
+ │ │ ├── types.ts # LuminaTheme 类型定义
246
+ │ │ ├── defaultTheme.ts # Material Design 默认主题令牌
247
+ │ │ └── index.tsx # LuminaProvider + useTheme
248
+ │ ├── styles/
249
+ │ │ ├── reset.ts # GlobalStyle CSS Reset
250
+ │ │ └── mixins.ts # elevation / transition / focusVisible 等工具
251
+ │ ├── hooks/
252
+ │ │ ├── useControlled.ts
253
+ │ │ ├── useClickOutside.ts
254
+ │ │ └── useKeyboard.ts
255
+ │ ├── utils/
256
+ │ │ └── helpers.ts # uniqueId / clamp / mergeRefs
257
+ │ └── components/
258
+ │ ├── Button/ # 每个组件一个目录
259
+ │ │ ├── Button.types.ts # Props 类型定义
260
+ │ │ ├── Button.styles.ts # styled-components 样式
261
+ │ │ ├── Button.tsx # 组件实现
262
+ │ │ └── index.ts # 目录导出
263
+ │ ├── Input/
264
+ │ ├── ... # 其余 31 个组件同构
265
+ │ └── Upload/
266
+ ├── demo/
267
+ │ ├── main.tsx # Demo 入口
268
+ │ └── App.tsx # 完整预览页(展示全部 33 个组件)
269
+ ├── .storybook/
270
+ │ ├── main.ts # Storybook 配置
271
+ │ └── preview.tsx # 全局装饰器(LuminaProvider 包裹)
272
+ ├── package.json
273
+ ├── tsconfig.json # 开发用 TS 配置
274
+ ├── tsconfig.build.json # 构建用 TS 配置(excludes demo/stories)
275
+ ├── vite.config.ts # Vite Library Mode 构建配置
276
+ └── index.html # Vite dev 入口
277
+ ```
278
+
279
+ ### 组件目录约定
280
+
281
+ 每个组件目录包含 4 个文件,保持一致的结构:
282
+
283
+ ```
284
+ ComponentName/
285
+ ├── ComponentName.types.ts # Props 接口、类型别名
286
+ ├── ComponentName.styles.ts # styled-components 样式组件
287
+ ├── ComponentName.tsx # React 组件实现
288
+ └── index.ts # 导出组件和类型
289
+ ```
290
+
291
+ ---
292
+
293
+ ## 开发指南
294
+
295
+ ### 环境要求
296
+
297
+ - **Node.js** ≥ 18
298
+ - **pnpm** ≥ 8(推荐)或 npm ≥ 9
299
+
300
+ ### 本地开发
301
+
302
+ ```bash
303
+ # 1. 安装依赖
304
+ pnpm install
305
+
306
+ # 2. 启动 Demo 预览(http://localhost:5173)
307
+ pnpm exec vite
308
+
309
+ # 3. 启动 Storybook(http://localhost:6006)
310
+ pnpm dev
311
+ ```
312
+
313
+ ### 构建
314
+
315
+ ```bash
316
+ # 完整构建(类型声明 + 打包)
317
+ pnpm build
318
+
319
+ # 仅生成类型声明
320
+ pnpm build:types
321
+ ```
322
+
323
+ 构建产物输出到 `dist/` 目录:
324
+
325
+ ```
326
+ dist/
327
+ ├── lumina.es.js # ESM 格式(~130 KB, gzip ~27 KB)
328
+ ├── lumina.cjs.js # CommonJS 格式
329
+ ├── index.d.ts # 类型声明入口
330
+ └── components/ # 各组件类型声明
331
+ ```
332
+
333
+ ### 类型检查
334
+
335
+ ```bash
336
+ npx tsc --noEmit
337
+ ```
338
+
339
+ ### 添加新组件
340
+
341
+ 1. 在 `src/components/` 下新建组件目录,包含 4 个文件:
342
+
343
+ ```bash
344
+ src/components/MyComponent/
345
+ ├── MyComponent.types.ts
346
+ ├── MyComponent.styles.ts
347
+ ├── MyComponent.tsx
348
+ └── index.ts
349
+ ```
350
+
351
+ 2. **types.ts** — 定义 Props 接口:
352
+
353
+ ```typescript
354
+ import React from 'react';
355
+
356
+ export interface MyComponentProps {
357
+ /** 属性说明 */
358
+ label: string;
359
+ children?: React.ReactNode;
360
+ }
361
+ ```
362
+
363
+ 3. **styles.ts** — 编写样式组件,从 `theme` 获取设计令牌:
364
+
365
+ ```typescript
366
+ import styled from 'styled-components';
367
+
368
+ export const Root = styled.div`
369
+ padding: ${({ theme }) => theme.spacing(2)};
370
+ border-radius: ${({ theme }) => theme.borderRadius.md};
371
+ color: ${({ theme }) => theme.colors.text.primary};
372
+ `;
373
+ ```
374
+
375
+ 4. **Component.tsx** — 实现组件逻辑:
376
+
377
+ ```tsx
378
+ import React from 'react';
379
+ import type { MyComponentProps } from './MyComponent.types';
380
+ import { Root } from './MyComponent.styles';
381
+
382
+ export const MyComponent: React.FC<MyComponentProps> = ({ label, children }) => (
383
+ <Root>{label}{children}</Root>
384
+ );
385
+
386
+ MyComponent.displayName = 'MyComponent';
387
+ ```
388
+
389
+ 5. **index.ts** — 导出:
390
+
391
+ ```typescript
392
+ export { MyComponent } from './MyComponent';
393
+ export type { MyComponentProps } from './MyComponent.types';
394
+ ```
395
+
396
+ 6. 在 `src/index.ts` 中添加导出:
397
+
398
+ ```typescript
399
+ export { MyComponent } from './components/MyComponent';
400
+ export type { MyComponentProps } from './components/MyComponent';
401
+ ```
402
+
403
+ 7. 运行 `npx tsc --noEmit` 确认无类型错误。
404
+
405
+ ### 开发规范
406
+
407
+ - **受控/非受控**:使用 `useControlled` hook 统一管理
408
+ - **样式**:全部通过 `styled-components` 编写,使用 `$` 前缀标记 transient props(不传递到 DOM)
409
+ - **主题变量**:禁止硬编码颜色/间距/圆角等值,一律从 `theme` 对象读取
410
+ - **类型安全**:所有 Props 必须有 TypeScript 接口定义,导出供外部使用
411
+ - **displayName**:每个组件必须设置 `displayName`,便于 React DevTools 调试
412
+ - **无障碍**:为交互组件添加 `role`、`aria-*` 属性
413
+
414
+ ### 已知 TypeScript 注意事项
415
+
416
+ - `useClickOutside` 返回 `RefObject<T | null>`,传递给 styled-components 时需要类型断言:
417
+ ```typescript
418
+ const ref = useClickOutside<HTMLDivElement>(() => {}) as React.RefObject<HTMLDivElement>;
419
+ ```
420
+ - 主题深度合并时使用 `as unknown as` 双重断言以绕过严格类型检查
421
+
422
+ ---
423
+
424
+ ## 构建配置
425
+
426
+ ### Vite Library Mode
427
+
428
+ - 入口:`src/index.ts`
429
+ - 输出格式:ESM + CJS
430
+ - 外部依赖(不打包):`react`、`react-dom`、`react/jsx-runtime`、`styled-components`
431
+ - Source Map:启用
432
+
433
+ ### TypeScript
434
+
435
+ - 严格模式 (`strict: true`)
436
+ - JSX 转换:`react-jsx`(新版自动导入,不需要 `import React`)
437
+ - `declarationMap: true`,支持 "Go to Definition" 跳转到源码
438
+
439
+ ---
440
+
441
+ ## Scripts 速查
442
+
443
+ | 命令 | 说明 |
444
+ |------|------|
445
+ | `pnpm exec vite` | 启动 Demo 开发服务器 (5173) |
446
+ | `pnpm dev` | 启动 Storybook (6006) |
447
+ | `pnpm build` | 完整构建(类型 + 打包) |
448
+ | `pnpm build:types` | 仅生成类型声明 |
449
+ | `pnpm build-storybook` | 构建 Storybook 静态站点 |
450
+ | `npx tsc --noEmit` | 类型检查 |
451
+
452
+ ---
453
+
454
+ ## 许可证
455
+
456
+ [MIT](LICENSE)
@@ -0,0 +1,4 @@
1
+ import { default as React } from 'react';
2
+ import { AlertProps } from './Alert.types';
3
+ export declare const Alert: React.FC<AlertProps>;
4
+ //# sourceMappingURL=Alert.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Alert.d.ts","sourceRoot":"","sources":["../../../src/components/Alert/Alert.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AACxC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGhD,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,UAAU,CAiCtC,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { AlertSeverity } from './Alert.types';
2
+ export declare const AlertRoot: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
3
+ $severity: AlertSeverity;
4
+ }>> & string;
5
+ export declare const Icon: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, {
6
+ $severity: AlertSeverity;
7
+ }>> & string;
8
+ export declare const Content: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
9
+ export declare const Title: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
10
+ export declare const CloseBtn: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, never>> & string;
11
+ export declare const defaultIcons: Record<AlertSeverity, string>;
12
+ //# sourceMappingURL=Alert.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Alert.styles.d.ts","sourceRoot":"","sources":["../../../src/components/Alert/Alert.styles.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AASnD,eAAO,MAAM,SAAS;eAA2B,aAAa;YAe7D,CAAC;AAEF,eAAO,MAAM,IAAI;eAA4B,aAAa;YAKzD,CAAC;AAEF,eAAO,MAAM,OAAO,6NAGnB,CAAC;AAEF,eAAO,MAAM,KAAK,6NAGjB,CAAC;AAEF,eAAO,MAAM,QAAQ,+NAMpB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAKtD,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { default as React } from 'react';
2
+ export type AlertSeverity = 'success' | 'info' | 'warning' | 'error';
3
+ export interface AlertProps {
4
+ /** 严重程度 */
5
+ severity?: AlertSeverity;
6
+ /** 标题 */
7
+ title?: React.ReactNode;
8
+ /** 是否可关闭 */
9
+ closable?: boolean;
10
+ /** 关闭回调 */
11
+ onClose?: () => void;
12
+ /** 左侧图标(false可隐藏) */
13
+ icon?: React.ReactNode | false;
14
+ /** 操作区 */
15
+ action?: React.ReactNode;
16
+ children?: React.ReactNode;
17
+ style?: React.CSSProperties;
18
+ className?: string;
19
+ }
20
+ //# sourceMappingURL=Alert.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Alert.types.d.ts","sourceRoot":"","sources":["../../../src/components/Alert/Alert.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;AAErE,MAAM,WAAW,UAAU;IACzB,WAAW;IACX,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,SAAS;IACT,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,YAAY;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW;IACX,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,qBAAqB;IACrB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;IAC/B,UAAU;IACV,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
@@ -0,0 +1,3 @@
1
+ export { Alert } from './Alert';
2
+ export type { AlertProps, AlertSeverity } from './Alert.types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Alert/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { default as React } from 'react';
2
+ import { AvatarProps } from './Avatar.types';
3
+ export declare const Avatar: React.FC<AvatarProps>;
4
+ //# sourceMappingURL=Avatar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Avatar.d.ts","sourceRoot":"","sources":["../../../src/components/Avatar/Avatar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AACxC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAGlD,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CAqBxC,CAAC"}
@@ -0,0 +1,12 @@
1
+ declare const sizeMap: {
2
+ small: number;
3
+ medium: number;
4
+ large: number;
5
+ };
6
+ export declare const AvatarRoot: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, {
7
+ $size: number;
8
+ $shape: string;
9
+ }>> & string;
10
+ export declare const AvatarImg: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement>, never>> & string;
11
+ export { sizeMap };
12
+ //# sourceMappingURL=Avatar.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Avatar.styles.d.ts","sourceRoot":"","sources":["../../../src/components/Avatar/Avatar.styles.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,OAAO;;;;CAIZ,CAAC;AAEF,eAAO,MAAM,UAAU;WAAwB,MAAM;YAAU,MAAM;YAcpE,CAAC;AAEF,eAAO,MAAM,SAAS,oOAIrB,CAAC;AAEF,OAAO,EAAE,OAAO,EAAE,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { default as React } from 'react';
2
+ export interface AvatarProps {
3
+ /** 图片地址 */
4
+ src?: string;
5
+ /** 图片alt */
6
+ alt?: string;
7
+ /** 文字内容(无图片时显示) */
8
+ children?: React.ReactNode;
9
+ /** 尺寸 */
10
+ size?: 'small' | 'medium' | 'large' | number;
11
+ /** 形状 */
12
+ shape?: 'circle' | 'square';
13
+ /** 自定义样式 */
14
+ style?: React.CSSProperties;
15
+ className?: string;
16
+ }
17
+ //# sourceMappingURL=Avatar.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Avatar.types.d.ts","sourceRoot":"","sources":["../../../src/components/Avatar/Avatar.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,WAAW,WAAW;IAC1B,WAAW;IACX,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,YAAY;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,mBAAmB;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,SAAS;IACT,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;IAC7C,SAAS;IACT,KAAK,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC5B,YAAY;IACZ,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
@@ -0,0 +1,3 @@
1
+ export { Avatar } from './Avatar';
2
+ export type { AvatarProps } from './Avatar.types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Avatar/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { default as React } from 'react';
2
+ import { BadgeProps } from './Badge.types';
3
+ export declare const Badge: React.FC<BadgeProps>;
4
+ //# sourceMappingURL=Badge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Badge.d.ts","sourceRoot":"","sources":["../../../src/components/Badge/Badge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGhD,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,UAAU,CAsBtC,CAAC"}
@@ -0,0 +1,10 @@
1
+ export declare const Wrapper: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, never>> & string;
2
+ export declare const BadgeDot: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, {
3
+ $color: string;
4
+ $invisible: boolean;
5
+ }>> & string;
6
+ export declare const BadgeCount: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, {
7
+ $color: string;
8
+ $invisible: boolean;
9
+ }>> & string;
10
+ //# sourceMappingURL=Badge.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Badge.styles.d.ts","sourceRoot":"","sources":["../../../src/components/Badge/Badge.styles.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,OAAO,+NAKnB,CAAC;AAEF,eAAO,MAAM,QAAQ;YAAyB,MAAM;gBAAc,OAAO;YAWxE,CAAC;AAEF,eAAO,MAAM,UAAU;YAAyB,MAAM;gBAAc,OAAO;YAiB1E,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { default as React } from 'react';
2
+ export interface BadgeProps {
3
+ /** 显示的数值 */
4
+ count?: number;
5
+ /** 最大显示数值,超过则显示 max+ */
6
+ max?: number;
7
+ /** 是否仅显示小圆点 */
8
+ dot?: boolean;
9
+ /** 颜色 */
10
+ color?: 'primary' | 'secondary' | 'error' | 'warning' | 'success';
11
+ /** 当count为0时是否显示 */
12
+ showZero?: boolean;
13
+ /** 是否不可见 */
14
+ invisible?: boolean;
15
+ children?: React.ReactNode;
16
+ }
17
+ //# sourceMappingURL=Badge.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Badge.types.d.ts","sourceRoot":"","sources":["../../../src/components/Badge/Badge.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,WAAW,UAAU;IACzB,YAAY;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wBAAwB;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,eAAe;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,SAAS;IACT,KAAK,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;IAClE,oBAAoB;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY;IACZ,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B"}
@@ -0,0 +1,3 @@
1
+ export { Badge } from './Badge';
2
+ export type { BadgeProps } from './Badge.types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Badge/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,YAAY,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { default as React } from 'react';
2
+ import { BreadcrumbProps } from './Breadcrumb.types';
3
+ export declare const Breadcrumb: React.FC<BreadcrumbProps>;
4
+ //# sourceMappingURL=Breadcrumb.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Breadcrumb.d.ts","sourceRoot":"","sources":["../../../src/components/Breadcrumb/Breadcrumb.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAG1D,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAkChD,CAAC"}