taro-uno-ui 0.9.0 → 1.0.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 (647) hide show
  1. package/README.md +21 -0
  2. package/dist/app.config.d.ts +38 -0
  3. package/dist/app.d.ts +6 -0
  4. package/dist/components/basic/Button/Button.d.ts +6 -0
  5. package/dist/components/basic/Button/Button.styles.d.ts +2 -0
  6. package/dist/components/basic/Button/Button.types.d.ts +74 -0
  7. package/dist/components/basic/Button/index.d.ts +4 -0
  8. package/dist/components/basic/Divider/Divider.d.ts +6 -0
  9. package/dist/components/basic/Divider/Divider.styles.d.ts +87 -0
  10. package/dist/components/basic/Divider/Divider.types.d.ts +242 -0
  11. package/dist/components/basic/Divider/index.d.ts +6 -0
  12. package/dist/components/basic/Icon/Icon.d.ts +5 -0
  13. package/dist/components/basic/Icon/Icon.data.d.ts +29 -0
  14. package/dist/components/basic/Icon/Icon.styles.d.ts +61 -0
  15. package/dist/components/basic/Icon/Icon.types.d.ts +199 -0
  16. package/dist/components/basic/Icon/IconManager.d.ts +120 -0
  17. package/dist/components/basic/Icon/index.d.ts +6 -0
  18. package/dist/components/basic/Text/Text.d.ts +7 -0
  19. package/dist/components/basic/Text/Text.styles.d.ts +67 -0
  20. package/dist/components/basic/Text/Text.types.d.ts +274 -0
  21. package/dist/components/basic/Text/index.d.ts +5 -0
  22. package/dist/components/basic/Typography/Typography.d.ts +8 -0
  23. package/dist/components/basic/Typography/Typography.styles.d.ts +83 -0
  24. package/dist/components/basic/Typography/Typography.types.d.ts +245 -0
  25. package/dist/components/basic/Typography/index.d.ts +3 -0
  26. package/dist/components/basic/Video/Video.d.ts +7 -0
  27. package/dist/components/basic/Video/Video.styles.d.ts +212 -0
  28. package/dist/components/basic/Video/Video.types.d.ts +447 -0
  29. package/dist/components/basic/Video/index.d.ts +10 -0
  30. package/dist/components/basic/index.d.ts +217 -0
  31. package/dist/components/common/ErrorBoundary.d.ts +19 -0
  32. package/dist/components/common/LazyComponent.d.ts +78 -0
  33. package/dist/components/common/ResponsiveContainer.d.ts +23 -0
  34. package/dist/components/common/ResponsiveGrid.d.ts +44 -0
  35. package/dist/components/common/SecurityProvider.d.ts +15 -0
  36. package/dist/components/common/ThemeProvider.d.ts +17 -0
  37. package/dist/components/common/VirtualList.d.ts +89 -0
  38. package/dist/components/common/index.d.ts +17 -0
  39. package/dist/components/display/Avatar/Avatar.d.ts +3 -0
  40. package/dist/components/display/Avatar/Avatar.styles.d.ts +2 -0
  41. package/dist/components/display/Avatar/Avatar.types.d.ts +37 -0
  42. package/dist/components/display/Avatar/index.d.ts +3 -0
  43. package/dist/components/display/Badge/Badge.d.ts +3 -0
  44. package/dist/components/display/Badge/Badge.types.d.ts +27 -0
  45. package/dist/components/display/Badge/index.d.ts +2 -0
  46. package/dist/components/display/Calendar/Calendar.d.ts +5 -0
  47. package/dist/components/display/Calendar/Calendar.styles.d.ts +2 -0
  48. package/dist/components/display/Calendar/Calendar.types.d.ts +87 -0
  49. package/dist/components/display/Calendar/index.d.ts +3 -0
  50. package/dist/components/display/Card/Card.d.ts +3 -0
  51. package/dist/components/display/Card/Card.styles.d.ts +1 -0
  52. package/dist/components/display/Card/Card.types.d.ts +52 -0
  53. package/dist/components/display/Card/index.d.ts +3 -0
  54. package/dist/components/display/Carousel/Carousel.d.ts +5 -0
  55. package/dist/components/display/Carousel/Carousel.styles.d.ts +2 -0
  56. package/dist/components/display/Carousel/Carousel.types.d.ts +55 -0
  57. package/dist/components/display/Carousel/index.d.ts +3 -0
  58. package/dist/components/display/List/List.d.ts +4 -0
  59. package/dist/components/display/List/List.styles.d.ts +1 -0
  60. package/dist/components/display/List/List.types.d.ts +64 -0
  61. package/dist/components/display/List/index.d.ts +3 -0
  62. package/dist/components/display/Rate/Rate.d.ts +6 -0
  63. package/dist/components/display/Rate/Rate.styles.d.ts +100 -0
  64. package/dist/components/display/Rate/Rate.types.d.ts +105 -0
  65. package/dist/components/display/Rate/index.d.ts +17 -0
  66. package/dist/components/display/Table/Table.d.ts +7 -0
  67. package/dist/components/display/Table/Table.styles.d.ts +84 -0
  68. package/dist/components/display/Table/Table.types.d.ts +251 -0
  69. package/dist/components/display/Table/index.d.ts +4 -0
  70. package/dist/components/display/Tag/Tag.d.ts +5 -0
  71. package/dist/components/display/Tag/Tag.styles.d.ts +2 -0
  72. package/dist/components/display/Tag/Tag.types.d.ts +47 -0
  73. package/dist/components/display/Tag/index.d.ts +3 -0
  74. package/dist/components/display/Timeline/Timeline.d.ts +16 -0
  75. package/dist/components/display/Timeline/Timeline.styles.d.ts +2 -0
  76. package/dist/components/display/Timeline/Timeline.types.d.ts +53 -0
  77. package/dist/components/display/Timeline/index.d.ts +3 -0
  78. package/dist/components/display/index.d.ts +67 -0
  79. package/dist/components/feedback/Loading/Loading.d.ts +4 -0
  80. package/dist/components/feedback/Loading/Loading.styles.d.ts +2 -0
  81. package/dist/components/feedback/Loading/Loading.types.d.ts +29 -0
  82. package/dist/components/feedback/Loading/index.d.ts +4 -0
  83. package/dist/components/feedback/Message/Message.d.ts +4 -0
  84. package/dist/components/feedback/Message/Message.styles.d.ts +34 -0
  85. package/dist/components/feedback/Message/Message.types.d.ts +33 -0
  86. package/dist/components/feedback/Message/index.d.ts +4 -0
  87. package/dist/components/feedback/Modal/Modal.d.ts +8 -0
  88. package/dist/components/feedback/Modal/Modal.styles.d.ts +18 -0
  89. package/dist/components/feedback/Modal/Modal.types.d.ts +143 -0
  90. package/dist/components/feedback/Modal/index.d.ts +3 -0
  91. package/dist/components/feedback/Notification/Notification.d.ts +4 -0
  92. package/dist/components/feedback/Notification/Notification.styles.d.ts +88 -0
  93. package/dist/components/feedback/Notification/Notification.types.d.ts +279 -0
  94. package/dist/components/feedback/Notification/NotificationManager.d.ts +4 -0
  95. package/dist/components/feedback/Notification/index.d.ts +25 -0
  96. package/dist/components/feedback/Progress/Progress.d.ts +4 -0
  97. package/dist/components/feedback/Progress/Progress.styles.d.ts +261 -0
  98. package/dist/components/feedback/Progress/Progress.test.simple.d.ts +2 -0
  99. package/dist/components/feedback/Progress/Progress.types.d.ts +147 -0
  100. package/dist/components/feedback/Progress/index.d.ts +3 -0
  101. package/dist/components/feedback/Progress/utils/animation.d.ts +55 -0
  102. package/dist/components/feedback/Progress/utils/index.d.ts +2 -0
  103. package/dist/components/feedback/Progress/utils/progress-calculator.d.ts +75 -0
  104. package/dist/components/feedback/Result/Result.d.ts +7 -0
  105. package/dist/components/feedback/Result/Result.styles.d.ts +2 -0
  106. package/dist/components/feedback/Result/Result.types.d.ts +66 -0
  107. package/dist/components/feedback/Result/index.d.ts +3 -0
  108. package/dist/components/feedback/Toast/Toast.d.ts +7 -0
  109. package/dist/components/feedback/Toast/Toast.styles.d.ts +14 -0
  110. package/dist/components/feedback/Toast/Toast.types.d.ts +81 -0
  111. package/dist/components/feedback/Toast/index.d.ts +3 -0
  112. package/dist/components/feedback/Tooltip/Tooltip.d.ts +4 -0
  113. package/dist/components/feedback/Tooltip/Tooltip.examples.d.ts +6 -0
  114. package/dist/components/feedback/Tooltip/Tooltip.styles.d.ts +78 -0
  115. package/dist/components/feedback/Tooltip/Tooltip.types.d.ts +130 -0
  116. package/dist/components/feedback/Tooltip/index.d.ts +3 -0
  117. package/dist/components/feedback/index.d.ts +71 -0
  118. package/dist/components/form/Cascader/Cascader.d.ts +7 -0
  119. package/dist/components/form/Cascader/Cascader.styles.d.ts +107 -0
  120. package/dist/components/form/Cascader/Cascader.types.d.ts +418 -0
  121. package/dist/components/form/Cascader/hooks/index.d.ts +3 -0
  122. package/dist/components/form/Cascader/hooks/useCascaderFieldNames.d.ts +12 -0
  123. package/dist/components/form/Cascader/hooks/useCascaderOptions.d.ts +15 -0
  124. package/dist/components/form/Cascader/hooks/useCascaderState.d.ts +23 -0
  125. package/dist/components/form/Cascader/index.d.ts +6 -0
  126. package/dist/components/form/Cascader/utils/formatDisplayValue.d.ts +9 -0
  127. package/dist/components/form/Cascader/utils/index.d.ts +1 -0
  128. package/dist/components/form/Checkbox/Checkbox.d.ts +6 -0
  129. package/dist/components/form/Checkbox/Checkbox.styles.d.ts +111 -0
  130. package/dist/components/form/Checkbox/Checkbox.types.d.ts +473 -0
  131. package/dist/components/form/Checkbox/CheckboxGroup.d.ts +6 -0
  132. package/dist/components/form/Checkbox/index.d.ts +8 -0
  133. package/dist/components/form/DatePicker/DatePicker.d.ts +6 -0
  134. package/dist/components/form/DatePicker/DatePicker.styles.d.ts +99 -0
  135. package/dist/components/form/DatePicker/DatePicker.types.d.ts +236 -0
  136. package/dist/components/form/DatePicker/index.d.ts +3 -0
  137. package/dist/components/form/Form/Form.d.ts +8 -0
  138. package/dist/components/form/Form/Form.styles.d.ts +84 -0
  139. package/dist/components/form/Form/Form.types.d.ts +416 -0
  140. package/dist/components/form/Form/index.d.ts +9 -0
  141. package/dist/components/form/Form/useFormLogic.d.ts +22 -0
  142. package/dist/components/form/Input/Input.d.ts +6 -0
  143. package/dist/components/form/Input/Input.styles.d.ts +61 -0
  144. package/dist/components/form/Input/Input.types.d.ts +294 -0
  145. package/dist/components/form/Input/index.d.ts +8 -0
  146. package/dist/components/form/Input/useInputLogic.d.ts +35 -0
  147. package/dist/components/form/InputNumber/InputNumber.d.ts +6 -0
  148. package/dist/components/form/InputNumber/InputNumber.styles.d.ts +120 -0
  149. package/dist/components/form/InputNumber/InputNumber.types.d.ts +303 -0
  150. package/dist/components/form/InputNumber/components/InputNumberClearButton.d.ts +10 -0
  151. package/dist/components/form/InputNumber/components/InputNumberControls.d.ts +11 -0
  152. package/dist/components/form/InputNumber/components/index.d.ts +2 -0
  153. package/dist/components/form/InputNumber/hooks/index.d.ts +4 -0
  154. package/dist/components/form/InputNumber/hooks/useInputNumberState.d.ts +38 -0
  155. package/dist/components/form/InputNumber/hooks/useInputNumberValidation.d.ts +12 -0
  156. package/dist/components/form/InputNumber/index.d.ts +5 -0
  157. package/dist/components/form/Radio/Radio.d.ts +6 -0
  158. package/dist/components/form/Radio/Radio.styles.d.ts +80 -0
  159. package/dist/components/form/Radio/Radio.types.d.ts +415 -0
  160. package/dist/components/form/Radio/index.d.ts +8 -0
  161. package/dist/components/form/Select/Select.d.ts +6 -0
  162. package/dist/components/form/Select/Select.styles.d.ts +71 -0
  163. package/dist/components/form/Select/Select.types.d.ts +418 -0
  164. package/dist/components/form/Select/index.d.ts +8 -0
  165. package/dist/components/form/Slider/Slider.d.ts +7 -0
  166. package/dist/components/form/Slider/Slider.styles.d.ts +2 -0
  167. package/dist/components/form/Slider/Slider.types.d.ts +85 -0
  168. package/dist/components/form/Slider/index.d.ts +3 -0
  169. package/dist/components/form/Switch/Switch.d.ts +10 -0
  170. package/dist/components/form/Switch/Switch.styles.d.ts +154 -0
  171. package/dist/components/form/Switch/Switch.types.d.ts +351 -0
  172. package/dist/components/form/Switch/index.d.ts +7 -0
  173. package/dist/components/form/Textarea/Textarea.d.ts +6 -0
  174. package/dist/components/form/Textarea/Textarea.styles.d.ts +66 -0
  175. package/dist/components/form/Textarea/Textarea.types.d.ts +348 -0
  176. package/dist/components/form/Textarea/index.d.ts +7 -0
  177. package/dist/components/form/TimePicker/TimePicker.d.ts +6 -0
  178. package/dist/components/form/TimePicker/TimePicker.styles.d.ts +104 -0
  179. package/dist/components/form/TimePicker/TimePicker.types.d.ts +385 -0
  180. package/dist/components/form/TimePicker/index.d.ts +4 -0
  181. package/dist/components/form/Transfer/Transfer.d.ts +7 -0
  182. package/dist/components/form/Transfer/Transfer.styles.d.ts +106 -0
  183. package/dist/components/form/Transfer/Transfer.types.d.ts +384 -0
  184. package/dist/components/form/Transfer/components/TransferItem.d.ts +23 -0
  185. package/dist/components/form/Transfer/components/TransferList.d.ts +55 -0
  186. package/dist/components/form/Transfer/components/TransferOperations.d.ts +21 -0
  187. package/dist/components/form/Transfer/components/TransferPagination.d.ts +19 -0
  188. package/dist/components/form/Transfer/components/TransferSearch.d.ts +21 -0
  189. package/dist/components/form/Transfer/components/index.d.ts +6 -0
  190. package/dist/components/form/Transfer/hooks/index.d.ts +3 -0
  191. package/dist/components/form/Transfer/hooks/useTransferData.d.ts +41 -0
  192. package/dist/components/form/Transfer/hooks/useTransferState.d.ts +21 -0
  193. package/dist/components/form/Transfer/index.d.ts +9 -0
  194. package/dist/components/form/Upload/Upload.d.ts +7 -0
  195. package/dist/components/form/Upload/Upload.styles.d.ts +2 -0
  196. package/dist/components/form/Upload/Upload.types.d.ts +143 -0
  197. package/dist/components/form/Upload/index.d.ts +3 -0
  198. package/dist/components/form/index.d.ts +126 -0
  199. package/dist/components/index.d.ts +122 -0
  200. package/dist/components/layout/Affix/Affix.d.ts +4 -0
  201. package/dist/components/layout/Affix/Affix.styles.d.ts +1669 -0
  202. package/dist/components/layout/Affix/Affix.types.d.ts +25 -0
  203. package/dist/components/layout/Affix/index.d.ts +3 -0
  204. package/dist/components/layout/Col/Col.d.ts +6 -0
  205. package/dist/components/layout/Col/Col.styles.d.ts +52 -0
  206. package/dist/components/layout/Col/Col.types.d.ts +54 -0
  207. package/dist/components/layout/Col/index.d.ts +3 -0
  208. package/dist/components/layout/Container/Container.d.ts +6 -0
  209. package/dist/components/layout/Container/Container.styles.d.ts +41 -0
  210. package/dist/components/layout/Container/Container.types.d.ts +59 -0
  211. package/dist/components/layout/Container/index.d.ts +3 -0
  212. package/dist/components/layout/Grid/Grid.d.ts +6 -0
  213. package/dist/components/layout/Grid/Grid.styles.d.ts +60 -0
  214. package/dist/components/layout/Grid/Grid.types.d.ts +68 -0
  215. package/dist/components/layout/Grid/index.d.ts +3 -0
  216. package/dist/components/layout/Layout/Content.d.ts +4 -0
  217. package/dist/components/layout/Layout/Footer.d.ts +4 -0
  218. package/dist/components/layout/Layout/Header.d.ts +4 -0
  219. package/dist/components/layout/Layout/Layout.d.ts +4 -0
  220. package/dist/components/layout/Layout/Layout.styles.d.ts +3366 -0
  221. package/dist/components/layout/Layout/Layout.types.d.ts +48 -0
  222. package/dist/components/layout/Layout/Sider.d.ts +4 -0
  223. package/dist/components/layout/Layout/index.d.ts +8 -0
  224. package/dist/components/layout/Row/Row.d.ts +6 -0
  225. package/dist/components/layout/Row/Row.styles.d.ts +55 -0
  226. package/dist/components/layout/Row/Row.types.d.ts +51 -0
  227. package/dist/components/layout/Row/index.d.ts +3 -0
  228. package/dist/components/layout/Space/Space.d.ts +6 -0
  229. package/dist/components/layout/Space/Space.styles.d.ts +69 -0
  230. package/dist/components/layout/Space/Space.types.d.ts +84 -0
  231. package/dist/components/layout/Space/index.d.ts +3 -0
  232. package/dist/components/layout/index.d.ts +39 -0
  233. package/dist/components/navigation/Menu/Menu.constants.d.ts +59 -0
  234. package/dist/components/navigation/Menu/Menu.d.ts +10 -0
  235. package/dist/components/navigation/Menu/Menu.stories.d.ts +157 -0
  236. package/dist/components/navigation/Menu/Menu.styles.d.ts +143 -0
  237. package/dist/components/navigation/Menu/Menu.types.d.ts +210 -0
  238. package/dist/components/navigation/Menu/Menu.utils.d.ts +54 -0
  239. package/dist/components/navigation/Menu/MenuItem.d.ts +32 -0
  240. package/dist/components/navigation/Menu/SubMenu.d.ts +41 -0
  241. package/dist/components/navigation/Menu/index.d.ts +54 -0
  242. package/dist/components/navigation/NavBar/NavBar.d.ts +7 -0
  243. package/dist/components/navigation/NavBar/NavBar.styles.d.ts +114 -0
  244. package/dist/components/navigation/NavBar/NavBar.types.d.ts +50 -0
  245. package/dist/components/navigation/NavBar/index.d.ts +3 -0
  246. package/dist/components/navigation/Pagination/Pagination.d.ts +6 -0
  247. package/dist/components/navigation/Pagination/Pagination.styles.d.ts +55 -0
  248. package/dist/components/navigation/Pagination/Pagination.types.d.ts +77 -0
  249. package/dist/components/navigation/Pagination/index.d.ts +15 -0
  250. package/dist/components/navigation/Steps/Step.d.ts +4 -0
  251. package/dist/components/navigation/Steps/Steps.d.ts +4 -0
  252. package/dist/components/navigation/Steps/Steps.styles.d.ts +6716 -0
  253. package/dist/components/navigation/Steps/Steps.types.d.ts +41 -0
  254. package/dist/components/navigation/Steps/index.d.ts +3 -0
  255. package/dist/components/navigation/Tabs/Tabs.d.ts +6 -0
  256. package/dist/components/navigation/Tabs/Tabs.styles.d.ts +60 -0
  257. package/dist/components/navigation/Tabs/Tabs.types.d.ts +107 -0
  258. package/dist/components/navigation/Tabs/index.d.ts +3 -0
  259. package/dist/components/navigation/index.d.ts +35 -0
  260. package/dist/constants/index.d.ts +624 -0
  261. package/dist/hooks/index.d.ts +28 -0
  262. package/dist/hooks/types.d.ts +7 -0
  263. package/dist/hooks/useAsync.d.ts +17 -0
  264. package/dist/hooks/useClickOutside.d.ts +19 -0
  265. package/dist/hooks/useCounter.d.ts +36 -0
  266. package/dist/hooks/useDebounce.d.ts +31 -0
  267. package/dist/hooks/useDeepCompareEffect.d.ts +22 -0
  268. package/dist/hooks/useEventHandling.d.ts +81 -0
  269. package/dist/hooks/useEventListener.d.ts +19 -0
  270. package/dist/hooks/useLifecycle.d.ts +66 -0
  271. package/dist/hooks/useMediaQuery.d.ts +22 -0
  272. package/dist/hooks/useMutation.d.ts +47 -0
  273. package/dist/hooks/usePerformance.d.ts +73 -0
  274. package/dist/hooks/usePerformanceMonitor.d.ts +66 -0
  275. package/dist/hooks/usePlatform.d.ts +20 -0
  276. package/dist/hooks/usePrevious.d.ts +14 -0
  277. package/dist/hooks/useRequest.d.ts +32 -0
  278. package/dist/hooks/useStateManagement.d.ts +62 -0
  279. package/dist/hooks/useStorage.d.ts +27 -0
  280. package/dist/hooks/useStyle.d.ts +127 -0
  281. package/dist/hooks/useTheme.d.ts +58 -0
  282. package/dist/hooks/useToggle.d.ts +28 -0
  283. package/dist/hooks/useVirtualScroll.d.ts +42 -0
  284. package/dist/index.d.ts +271 -0
  285. package/dist/js/{index-DffLRSro.js → index-CDFsvu80.js} +15369 -10741
  286. package/dist/js/index-CDFsvu80.js.map +1 -0
  287. package/dist/js/index-DFdcksbe.js.map +1 -1
  288. package/dist/js/index-DXRIkWX1.js.map +1 -1
  289. package/dist/js/{index-6NJ3A1Dn.js → index-JffnTUrv.js} +15430 -10801
  290. package/dist/js/index-JffnTUrv.js.map +1 -0
  291. package/dist/platform/index.d.ts +172 -0
  292. package/dist/providers/AppProvider.d.ts +34 -0
  293. package/dist/providers/index.d.ts +1 -0
  294. package/dist/theme/ThemeProvider.d.ts +34 -0
  295. package/dist/theme/ThemeProvider.types.d.ts +21 -0
  296. package/dist/theme/animations.d.ts +96 -0
  297. package/dist/theme/defaults.d.ts +6 -0
  298. package/dist/theme/design-system.d.ts +400 -0
  299. package/dist/theme/design-tokens.d.ts +459 -0
  300. package/dist/theme/index.d.ts +187 -0
  301. package/dist/theme/responsive.d.ts +63 -0
  302. package/dist/theme/styles.d.ts +65 -0
  303. package/dist/theme/tokens/colors.d.ts +72 -0
  304. package/dist/theme/tokens/effects.d.ts +122 -0
  305. package/dist/theme/tokens/index.d.ts +94 -0
  306. package/dist/theme/tokens/spacing.d.ts +65 -0
  307. package/dist/theme/tokens/typography.d.ts +73 -0
  308. package/dist/theme/types.d.ts +153 -0
  309. package/dist/theme/useThemeUtils.d.ts +21 -0
  310. package/dist/theme/utils.d.ts +255 -0
  311. package/dist/theme/variables.d.ts +170 -0
  312. package/dist/types/accessibility.d.ts +46 -0
  313. package/dist/types/button.d.ts +285 -0
  314. package/dist/types/component-props.d.ts +109 -0
  315. package/dist/types/index.d.ts +343 -0
  316. package/dist/types/standardized-components.d.ts +263 -0
  317. package/dist/types/utils.d.ts +190 -0
  318. package/dist/utils/abort-controller.d.ts +19 -0
  319. package/dist/utils/cache.d.ts +28 -0
  320. package/dist/utils/createNamespace.d.ts +9 -0
  321. package/dist/utils/environment.d.ts +26 -0
  322. package/dist/utils/error-handler.d.ts +37 -0
  323. package/dist/utils/errorLogger.d.ts +72 -0
  324. package/dist/utils/formatUtils.d.ts +93 -0
  325. package/dist/utils/http/error-codes.d.ts +131 -0
  326. package/dist/utils/http/http-client.d.ts +53 -0
  327. package/dist/utils/http/request-cache.d.ts +65 -0
  328. package/dist/utils/http/request.d.ts +280 -0
  329. package/dist/utils/http/taro-adapter.d.ts +4 -0
  330. package/dist/utils/http/types.d.ts +351 -0
  331. package/dist/utils/http/web-adapter.d.ts +4 -0
  332. package/dist/utils/index.d.ts +46 -0
  333. package/dist/utils/inputValidator.d.ts +74 -0
  334. package/dist/utils/performance/performance.d.ts +167 -0
  335. package/dist/utils/responsiveUtils.d.ts +148 -0
  336. package/dist/utils/rtl-support.d.ts +78 -0
  337. package/dist/utils/security/api-security.d.ts +82 -0
  338. package/dist/utils/security/xss-protection.d.ts +20 -0
  339. package/dist/utils/securityHeaders.d.ts +74 -0
  340. package/dist/utils/typeHelpers.d.ts +1 -0
  341. package/dist/utils/types/dataProcessing.d.ts +111 -0
  342. package/dist/utils/types/typeHelpers.d.ts +50 -0
  343. package/dist/utils/xssProtection.d.ts +90 -0
  344. package/package.json +14 -10
  345. package/src/components/basic/Button/Button.tsx +53 -13
  346. package/src/components/basic/Button/Button.types.ts +45 -9
  347. package/src/components/basic/Divider/Divider.tsx +60 -29
  348. package/src/components/basic/Icon/Icon.data.ts +474 -0
  349. package/src/components/basic/Icon/Icon.test.tsx +2 -2
  350. package/src/components/basic/Icon/Icon.tsx +48 -35
  351. package/src/components/basic/Icon/IconManager.ts +229 -0
  352. package/src/components/basic/Text/Text.styles.ts +3 -3
  353. package/src/components/basic/Text/Text.types.ts +14 -4
  354. package/src/components/basic/Typography/Typography.styles.ts +10 -9
  355. package/src/components/basic/Typography/Typography.tsx +15 -13
  356. package/src/components/basic/Typography/Typography.types.ts +41 -41
  357. package/src/components/basic/Typography/index.tsx +1 -1
  358. package/src/components/basic/Video/Video.styles.ts +777 -0
  359. package/src/components/basic/Video/Video.test.tsx +490 -0
  360. package/src/components/basic/Video/Video.tsx +1468 -0
  361. package/src/components/basic/Video/Video.types.ts +500 -0
  362. package/src/components/basic/Video/index.tsx +26 -0
  363. package/src/components/basic/index.tsx +13 -15
  364. package/src/components/common/ErrorBoundary.tsx +1 -1
  365. package/src/components/common/LazyComponent.tsx +9 -8
  366. package/src/components/common/SecurityProvider.tsx +2 -14
  367. package/src/components/common/ThemeProvider.tsx +43 -56
  368. package/src/components/common/VirtualList.tsx +187 -205
  369. package/src/components/common/index.tsx +25 -0
  370. package/src/components/display/Avatar/Avatar.styles.ts +1 -1
  371. package/src/components/display/Avatar/Avatar.tsx +6 -19
  372. package/src/components/display/Avatar/Avatar.types.ts +1 -1
  373. package/src/components/display/Avatar/index.ts +1 -1
  374. package/src/components/display/Badge/Badge.tsx +3 -16
  375. package/src/components/display/Badge/Badge.types.ts +1 -1
  376. package/src/components/display/Badge/index.ts +1 -1
  377. package/src/components/display/Calendar/Calendar.styles.ts +36 -36
  378. package/src/components/display/Calendar/Calendar.test.tsx +27 -15
  379. package/src/components/display/Calendar/Calendar.tsx +56 -35
  380. package/src/components/display/Calendar/Calendar.types.ts +1 -1
  381. package/src/components/display/Calendar/index.ts +1 -1
  382. package/src/components/display/Card/Card.styles.ts +2 -2
  383. package/src/components/display/Card/Card.test.tsx +6 -4
  384. package/src/components/display/Card/Card.tsx +1 -1
  385. package/src/components/display/Card/Card.types.ts +4 -4
  386. package/src/components/display/Card/index.ts +1 -1
  387. package/src/components/display/Carousel/Carousel.styles.ts +31 -31
  388. package/src/components/display/Carousel/Carousel.tsx +34 -39
  389. package/src/components/display/Carousel/Carousel.types.ts +1 -1
  390. package/src/components/display/Carousel/index.ts +1 -1
  391. package/src/components/display/List/List.styles.ts +3 -3
  392. package/src/components/display/List/List.tsx +0 -1
  393. package/src/components/display/List/index.ts +1 -1
  394. package/src/components/display/Rate/Rate.styles.ts +5 -17
  395. package/src/components/display/Rate/Rate.tsx +6 -14
  396. package/src/components/display/Rate/Rate.types.ts +4 -3
  397. package/src/components/display/Rate/index.ts +3 -11
  398. package/src/components/display/Table/Table.test.tsx +2 -0
  399. package/src/components/display/Table/Table.tsx +3 -7
  400. package/src/components/display/Table/Table.types.ts +3 -2
  401. package/src/components/display/Tag/Tag.styles.ts +31 -31
  402. package/src/components/display/Tag/Tag.tsx +9 -26
  403. package/src/components/display/Tag/Tag.types.ts +1 -1
  404. package/src/components/display/Tag/index.ts +1 -1
  405. package/src/components/display/Timeline/Timeline.styles.ts +32 -32
  406. package/src/components/display/Timeline/Timeline.tsx +23 -42
  407. package/src/components/display/Timeline/Timeline.types.ts +1 -1
  408. package/src/components/display/Timeline/index.ts +1 -1
  409. package/src/components/display/index.tsx +33 -29
  410. package/src/components/feedback/Loading/Loading.tsx +6 -1
  411. package/src/components/feedback/Loading/index.ts +2 -5
  412. package/src/components/feedback/Message/Message.styles.ts +3 -3
  413. package/src/components/feedback/Message/index.ts +2 -5
  414. package/src/components/feedback/Modal/Modal.styles.ts +1 -1
  415. package/src/components/feedback/Modal/Modal.tsx +9 -31
  416. package/src/components/feedback/Modal/Modal.types.ts +12 -2
  417. package/src/components/feedback/Notification/Notification.styles.ts +49 -39
  418. package/src/components/feedback/Notification/Notification.test.tsx +1 -1
  419. package/src/components/feedback/Notification/Notification.tsx +97 -120
  420. package/src/components/feedback/Notification/Notification.types.ts +11 -8
  421. package/src/components/feedback/Notification/NotificationManager.tsx +135 -106
  422. package/src/components/feedback/Notification/index.ts +10 -3
  423. package/src/components/feedback/Notification/index.tsx +16 -26
  424. package/src/components/feedback/Progress/Progress.styles.ts +23 -14
  425. package/src/components/feedback/Progress/Progress.tsx +93 -113
  426. package/src/components/feedback/Progress/Progress.types.ts +1 -1
  427. package/src/components/feedback/Progress/index.ts +1 -1
  428. package/src/components/feedback/Progress/utils/animation.ts +12 -23
  429. package/src/components/feedback/Progress/utils/index.ts +2 -2
  430. package/src/components/feedback/Progress/utils/progress-calculator.ts +14 -32
  431. package/src/components/feedback/Result/Result.styles.ts +29 -29
  432. package/src/components/feedback/Result/Result.tsx +8 -20
  433. package/src/components/feedback/Result/Result.types.ts +7 -7
  434. package/src/components/feedback/Result/index.tsx +1 -1
  435. package/src/components/feedback/Toast/Toast.styles.ts +1 -1
  436. package/src/components/feedback/Toast/Toast.tsx +25 -13
  437. package/src/components/feedback/Tooltip/Tooltip.examples.tsx +21 -44
  438. package/src/components/feedback/Tooltip/Tooltip.styles.ts +16 -22
  439. package/src/components/feedback/Tooltip/Tooltip.test.tsx +1 -1
  440. package/src/components/feedback/Tooltip/Tooltip.tsx +65 -46
  441. package/src/components/feedback/Tooltip/Tooltip.types.ts +14 -20
  442. package/src/components/feedback/Tooltip/index.ts +1 -1
  443. package/src/components/feedback/Tooltip/index.tsx +12 -24
  444. package/src/components/feedback/index.tsx +54 -42
  445. package/src/components/form/Cascader/Cascader.styles.ts +2 -2
  446. package/src/components/form/Cascader/Cascader.tsx +84 -88
  447. package/src/components/form/Cascader/Cascader.types.ts +49 -50
  448. package/src/components/form/Cascader/hooks/useCascaderFieldNames.ts +11 -8
  449. package/src/components/form/Cascader/hooks/useCascaderOptions.ts +73 -55
  450. package/src/components/form/Cascader/hooks/useCascaderState.ts +31 -25
  451. package/src/components/form/Cascader/index.ts +1 -1
  452. package/src/components/form/Cascader/utils/formatDisplayValue.ts +4 -4
  453. package/src/components/form/Checkbox/Checkbox.styles.ts +83 -84
  454. package/src/components/form/Checkbox/Checkbox.tsx +2 -9
  455. package/src/components/form/Checkbox/CheckboxGroup.tsx +7 -7
  456. package/src/components/form/DatePicker/DatePicker.test.tsx +1 -1
  457. package/src/components/form/DatePicker/DatePicker.tsx +91 -75
  458. package/src/components/form/DatePicker/DatePicker.types.ts +4 -1
  459. package/src/components/form/Form/Form.tsx +66 -504
  460. package/src/components/form/Form/Form.types.ts +16 -1
  461. package/src/components/form/Form/useFormLogic.ts +497 -0
  462. package/src/components/form/Input/Input.styles.ts +8 -1
  463. package/src/components/form/Input/Input.tsx +55 -291
  464. package/src/components/form/Input/Input.types.ts +13 -1
  465. package/src/components/form/Input/useInputLogic.test.ts +82 -0
  466. package/src/components/form/Input/useInputLogic.ts +260 -0
  467. package/src/components/form/InputNumber/InputNumber.styles.ts +76 -25
  468. package/src/components/form/InputNumber/InputNumber.tsx +53 -21
  469. package/src/components/form/InputNumber/InputNumber.types.ts +21 -3
  470. package/src/components/form/InputNumber/components/InputNumberClearButton.tsx +3 -11
  471. package/src/components/form/InputNumber/components/InputNumberControls.tsx +3 -12
  472. package/src/components/form/InputNumber/hooks/index.ts +1 -1
  473. package/src/components/form/InputNumber/hooks/useInputNumberState.ts +7 -9
  474. package/src/components/form/InputNumber/hooks/useInputNumberValidation.ts +18 -17
  475. package/src/components/form/InputNumber/index.ts +7 -7
  476. package/src/components/form/Radio/Radio.styles.ts +1 -8
  477. package/src/components/form/Radio/Radio.tsx +3 -9
  478. package/src/components/form/Radio/Radio.types.ts +5 -1
  479. package/src/components/form/Select/Select.styles.ts +5 -1
  480. package/src/components/form/Select/Select.tsx +15 -15
  481. package/src/components/form/Select/Select.types.ts +2 -1
  482. package/src/components/form/Slider/Slider.styles.ts +13 -13
  483. package/src/components/form/Slider/Slider.tsx +19 -33
  484. package/src/components/form/Slider/Slider.types.ts +14 -12
  485. package/src/components/form/Slider/index.tsx +2 -9
  486. package/src/components/form/Switch/Switch.styles.ts +1 -7
  487. package/src/components/form/Switch/Switch.tsx +7 -13
  488. package/src/components/form/Textarea/Textarea.styles.ts +4 -4
  489. package/src/components/form/Textarea/Textarea.tsx +7 -1
  490. package/src/components/form/Textarea/Textarea.types.ts +4 -1
  491. package/src/components/form/TimePicker/TimePicker.styles.ts +8 -12
  492. package/src/components/form/TimePicker/TimePicker.tsx +122 -100
  493. package/src/components/form/TimePicker/TimePicker.types.ts +2 -2
  494. package/src/components/form/TimePicker/index.ts +1 -1
  495. package/src/components/form/Transfer/Transfer.styles.ts +3 -15
  496. package/src/components/form/Transfer/Transfer.tsx +146 -134
  497. package/src/components/form/Transfer/Transfer.types.ts +34 -26
  498. package/src/components/form/Transfer/components/TransferItem.tsx +55 -62
  499. package/src/components/form/Transfer/components/TransferList.tsx +212 -199
  500. package/src/components/form/Transfer/components/TransferOperations.tsx +52 -55
  501. package/src/components/form/Transfer/components/TransferPagination.tsx +115 -111
  502. package/src/components/form/Transfer/components/TransferSearch.tsx +52 -55
  503. package/src/components/form/Transfer/hooks/useTransferData.ts +91 -81
  504. package/src/components/form/Transfer/hooks/useTransferState.ts +22 -16
  505. package/src/components/form/Transfer/index.ts +2 -8
  506. package/src/components/form/Upload/Upload.styles.ts +21 -21
  507. package/src/components/form/Upload/Upload.tsx +189 -142
  508. package/src/components/form/Upload/Upload.types.ts +31 -31
  509. package/src/components/form/Upload/index.tsx +1 -1
  510. package/src/components/form/index.tsx +60 -29
  511. package/src/components/index.tsx +0 -1
  512. package/src/components/layout/Affix/Affix.styles.ts +16 -11
  513. package/src/components/layout/Affix/Affix.tsx +67 -75
  514. package/src/components/layout/Affix/Affix.types.ts +18 -18
  515. package/src/components/layout/Affix/index.tsx +1 -1
  516. package/src/components/layout/Col/Col.styles.ts +17 -17
  517. package/src/components/layout/Col/Col.test.tsx +7 -5
  518. package/src/components/layout/Col/Col.tsx +3 -21
  519. package/src/components/layout/Col/Col.types.ts +1 -1
  520. package/src/components/layout/Container/Container.styles.ts +3 -1
  521. package/src/components/layout/Container/Container.tsx +2 -11
  522. package/src/components/layout/Grid/Grid.tsx +3 -53
  523. package/src/components/layout/Layout/Content.tsx +24 -32
  524. package/src/components/layout/Layout/Footer.tsx +24 -32
  525. package/src/components/layout/Layout/Header.tsx +24 -32
  526. package/src/components/layout/Layout/Layout.styles.ts +17 -17
  527. package/src/components/layout/Layout/Layout.tsx +14 -25
  528. package/src/components/layout/Layout/Layout.types.ts +29 -29
  529. package/src/components/layout/Layout/Sider.tsx +44 -56
  530. package/src/components/layout/Layout/index.tsx +16 -2
  531. package/src/components/layout/Row/Row.tsx +15 -43
  532. package/src/components/layout/Space/Space.tsx +3 -11
  533. package/src/components/layout/Space/Space.types.ts +1 -1
  534. package/src/components/layout/index.tsx +29 -19
  535. package/src/components/navigation/Menu/Menu.constants.ts +69 -0
  536. package/src/components/navigation/Menu/Menu.stories.tsx +107 -0
  537. package/src/components/navigation/Menu/Menu.styles.ts +25 -37
  538. package/src/components/navigation/Menu/Menu.tsx +8 -11
  539. package/src/components/navigation/Menu/Menu.types.ts +2 -2
  540. package/src/components/navigation/Menu/Menu.utils.ts +17 -17
  541. package/src/components/navigation/Menu/MenuItem.tsx +9 -11
  542. package/src/components/navigation/Menu/SubMenu.tsx +8 -6
  543. package/src/components/navigation/Menu/index.tsx +4 -69
  544. package/src/components/navigation/NavBar/NavBar.styles.ts +1 -1
  545. package/src/components/navigation/NavBar/NavBar.tsx +7 -10
  546. package/src/components/navigation/NavBar/NavBar.types.ts +3 -3
  547. package/src/components/navigation/NavBar/index.tsx +1 -1
  548. package/src/components/navigation/Pagination/Pagination.test.tsx +2 -3
  549. package/src/components/navigation/Pagination/Pagination.tsx +3 -3
  550. package/src/components/navigation/Pagination/Pagination.types.ts +3 -2
  551. package/src/components/navigation/Pagination/index.ts +9 -3
  552. package/src/components/navigation/Steps/Step.tsx +24 -44
  553. package/src/components/navigation/Steps/Steps.styles.ts +28 -13
  554. package/src/components/navigation/Steps/Steps.test.tsx +2 -0
  555. package/src/components/navigation/Steps/Steps.tsx +88 -89
  556. package/src/components/navigation/Steps/Steps.types.ts +30 -30
  557. package/src/components/navigation/Steps/index.tsx +1 -1
  558. package/src/components/navigation/Tabs/Tabs.test.tsx +3 -2
  559. package/src/components/navigation/Tabs/Tabs.types.ts +4 -3
  560. package/src/components/navigation/index.tsx +21 -16
  561. package/src/constants/index.ts +1 -1
  562. package/src/hooks/index.ts +52 -102
  563. package/src/hooks/types.ts +4 -5
  564. package/src/hooks/useAsync.ts +46 -47
  565. package/src/hooks/useClickOutside.ts +52 -0
  566. package/src/hooks/useCounter.ts +87 -0
  567. package/src/hooks/useDebounce.ts +150 -0
  568. package/src/hooks/useDeepCompareEffect.ts +88 -0
  569. package/src/hooks/useEventListener.ts +77 -0
  570. package/src/hooks/useMediaQuery.ts +75 -0
  571. package/src/hooks/useMutation.ts +233 -0
  572. package/src/hooks/usePerformance.ts +1 -64
  573. package/src/hooks/usePlatform.ts +3 -1
  574. package/src/hooks/usePrevious.ts +25 -0
  575. package/src/hooks/useRequest.ts +12 -7
  576. package/src/hooks/useStateManagement.ts +1 -1
  577. package/src/hooks/useStorage.ts +169 -0
  578. package/src/hooks/useStyle.ts +8 -2
  579. package/src/hooks/useToggle.ts +54 -0
  580. package/src/index.ts +34 -9
  581. package/src/theme/ThemeProvider.tsx +3 -7
  582. package/src/theme/ThemeProvider.types.ts +1 -1
  583. package/src/theme/defaults.ts +1 -1
  584. package/src/theme/design-system.ts +2 -2
  585. package/src/theme/design-tokens.ts +85 -99
  586. package/src/theme/generated/dark-theme.scss +1 -1
  587. package/src/theme/generated/tokens.scss +82 -18
  588. package/src/theme/index.ts +8 -29
  589. package/src/theme/responsive.tsx +36 -34
  590. package/src/theme/styles.ts +1 -1
  591. package/src/theme/useThemeUtils.ts +43 -43
  592. package/src/theme/utils.ts +32 -32
  593. package/src/theme/variables.ts +70 -51
  594. package/src/types/accessibility.ts +36 -37
  595. package/src/types/button.ts +25 -27
  596. package/src/types/component-props.ts +6 -1
  597. package/src/types/glob.d.ts +4 -0
  598. package/src/types/index.ts +2 -2
  599. package/src/types/standardized-components.ts +9 -3
  600. package/src/types/utils.ts +13 -23
  601. package/src/utils/__tests__/responsiveUtils.test.ts +5 -4
  602. package/src/utils/abort-controller.ts +48 -0
  603. package/src/utils/cache.ts +2 -6
  604. package/src/utils/createNamespace.ts +4 -4
  605. package/src/utils/environment.ts +26 -6
  606. package/src/utils/error-handler.ts +2 -2
  607. package/src/utils/errorLogger.ts +16 -20
  608. package/src/utils/formatUtils.ts +38 -70
  609. package/src/utils/http/error-codes.ts +314 -0
  610. package/src/utils/http/http-client.test.ts +63 -0
  611. package/src/utils/{network → http}/http-client.ts +45 -35
  612. package/src/utils/http/request-cache.ts +127 -0
  613. package/src/utils/http/request.ts +954 -0
  614. package/src/utils/http/taro-adapter.test.ts +74 -0
  615. package/src/utils/http/taro-adapter.ts +24 -0
  616. package/src/utils/http/types.ts +414 -0
  617. package/src/utils/http/web-adapter.ts +33 -0
  618. package/src/utils/index.ts +5 -8
  619. package/src/utils/inputValidator.ts +17 -14
  620. package/src/utils/performance/performance.ts +60 -71
  621. package/src/utils/responsiveUtils.ts +7 -16
  622. package/src/utils/rtl-support.ts +29 -19
  623. package/src/utils/security/api-security.ts +47 -39
  624. package/src/utils/securityHeaders.ts +61 -67
  625. package/src/utils/typeHelpers.ts +10 -10
  626. package/src/utils/types/dataProcessing.ts +93 -92
  627. package/src/utils/types/typeHelpers.ts +31 -21
  628. package/src/utils/xssProtection.ts +96 -48
  629. package/dist/js/index-6NJ3A1Dn.js.map +0 -1
  630. package/dist/js/index-DffLRSro.js.map +0 -1
  631. package/src/components/form/Input/Input.enhanced.tsx +0 -732
  632. package/src/components/navigation/Menu/__tests__/Menu.test.tsx +0 -687
  633. package/src/components/navigation/Tree/Tree.styles.ts +0 -553
  634. package/src/components/navigation/Tree/Tree.test.basic.tsx +0 -7
  635. package/src/components/navigation/Tree/Tree.test.functional.tsx +0 -496
  636. package/src/components/navigation/Tree/Tree.test.import.check.tsx +0 -6
  637. package/src/components/navigation/Tree/Tree.test.import.tsx +0 -6
  638. package/src/components/navigation/Tree/Tree.test.minimal.tsx +0 -5
  639. package/src/components/navigation/Tree/Tree.test.simple.tsx +0 -30
  640. package/src/components/navigation/Tree/Tree.test.tsx +0 -908
  641. package/src/components/navigation/Tree/Tree.test.working.tsx +0 -673
  642. package/src/components/navigation/Tree/Tree.tsx +0 -600
  643. package/src/components/navigation/Tree/Tree.types.ts +0 -909
  644. package/src/components/navigation/Tree/Tree.utils.ts +0 -452
  645. package/src/components/navigation/Tree/index.ts +0 -33
  646. package/src/components/navigation/Tree/index.tsx +0 -23
  647. package/src/utils/network/http-client.test.ts +0 -18
@@ -22,7 +22,7 @@ export const ThemeProvider: React.FC<ThemeProviderProps> = ({ children, defaultT
22
22
  const [theme, setTheme] = useState<'light' | 'dark' | 'auto'>(defaultTheme);
23
23
  const platform = usePlatform();
24
24
 
25
- const isDark = theme === 'auto' ? window.matchMedia('(prefers-color-scheme: dark)').matches : theme === 'dark';
25
+ const isDark = theme === 'auto' ? (typeof window !== 'undefined' && window.matchMedia ? window.matchMedia('(prefers-color-scheme: dark)').matches : false) : theme === 'dark';
26
26
 
27
27
  useEffect(() => {
28
28
  const root = document.documentElement;
@@ -32,65 +32,52 @@ export const ThemeProvider: React.FC<ThemeProviderProps> = ({ children, defaultT
32
32
  root.classList.remove('dark');
33
33
  }
34
34
 
35
- // Set CSS vars from design tokens
36
- Object.entries(designTokens.colors).forEach(([key, value]) => {
37
- if (typeof value === 'string') {
38
- root.style.setProperty(`--color-${key}`, value);
39
- } else if (typeof value === 'object' && value !== null && !Array.isArray(value)) {
40
- Object.entries(value).forEach(([subkey, subvalue]) => {
41
- root.style.setProperty(`--color-${key}-${subkey}`, subvalue as string);
42
- });
43
- }
44
- });
45
-
46
- Object.entries(designTokens.spacing).forEach(([key, value]) => {
47
- root.style.setProperty(`--spacing-${key}`, `${value}px`);
48
- });
35
+ // Helper function to set CSS variables recursively
36
+ const setCssVars = (prefix: string, obj: any, parentKey?: string) => {
37
+ Object.entries(obj).forEach(([key, value]) => {
38
+ const fullKey = parentKey ? `${prefix}-${parentKey}-${key}` : `${prefix}-${key}`;
39
+
40
+ if (typeof value === 'string' || typeof value === 'number') {
41
+ // Only add px suffix for numeric values that are not typography values
42
+ const valueWithUnit = typeof value === 'number' && prefix !== '--typography' ? `${value}px` : `${value}`;
43
+ root.style.setProperty(fullKey, valueWithUnit);
44
+ } else if (typeof value === 'object' && value !== null && !Array.isArray(value)) {
45
+ // Recursively process nested objects
46
+ setCssVars(prefix, value, parentKey ? `${parentKey}-${key}` : key);
47
+ } else if (Array.isArray(value)) {
48
+ // Join array values with comma
49
+ root.style.setProperty(fullKey, value.join(', '));
50
+ }
51
+ });
52
+ };
49
53
 
50
- Object.entries(designTokens.typography).forEach(([key, value]) => {
51
- const fullKey = `--typography-${key}`;
52
- if (typeof value === 'string') {
53
- root.style.setProperty(fullKey, value);
54
- } else if (Array.isArray(value)) {
55
- root.style.setProperty(fullKey, value.join(', '));
56
- } else if (typeof value === 'object' && value !== null && !Array.isArray(value)) {
57
- Object.entries(value).forEach(([subkey, subvalue]) => {
58
- const subFullKey = `--typography-${key}-${subkey}`;
59
- if (typeof subvalue === 'string') {
60
- root.style.setProperty(subFullKey, subvalue);
61
- } else if (Array.isArray(subvalue)) {
62
- root.style.setProperty(subFullKey, subvalue.join(', '));
63
- } else if (typeof subvalue === 'object' && subvalue !== null) {
64
- Object.entries(subvalue).forEach(([subsubkey, subsubvalue]) => {
65
- root.style.setProperty(`--typography-${key}-${subkey}-${subsubkey}`, subsubvalue as string);
66
- });
67
- }
68
- });
69
- }
70
- });
54
+ // Set CSS vars from design tokens
55
+ setCssVars('--color', designTokens.colors);
56
+ setCssVars('--spacing', designTokens.spacing);
57
+ setCssVars('--typography', designTokens.typography);
71
58
 
72
59
  // Dark mode overrides
73
60
  if (isDark) {
74
- root.style.setProperty('--colors-text-primary', '#f9fafb');
75
- root.style.setProperty('--colors-text-secondary', '#d1d5db');
76
- root.style.setProperty('--colors-text-tertiary', '#9ca3af');
77
- root.style.setProperty('--colors-text-disabled', '#6b7280');
78
- root.style.setProperty('--colors-text-inverse', '#111827');
79
- root.style.setProperty('--colors-text-placeholder', '#6b7280');
80
- root.style.setProperty('--colors-background-primary', '#111827');
81
- root.style.setProperty('--colors-background-secondary', '#1f2937');
82
- root.style.setProperty('--colors-background-tertiary', '#374151');
83
- root.style.setProperty('--colors-background-card', '#1f2937');
84
- root.style.setProperty('--colors-background-input', '#374151');
85
- root.style.setProperty('--colors-background-mask', 'rgba(0, 0, 0, 0.8)');
86
- root.style.setProperty('--colors-background-hover', '#374151');
87
- root.style.setProperty('--colors-background-active', '#4b5563');
88
- root.style.setProperty('--colors-border-default', '#374151');
89
- root.style.setProperty('--colors-border-light', '#4b5563');
90
- root.style.setProperty('--colors-shadow-default', 'rgba(0, 0, 0, 0.3)');
91
- root.style.setProperty('--colors-shadow-light', 'rgba(0, 0, 0, 0.1)');
92
- root.style.setProperty('--colors-shadow-medium', 'rgba(0, 0, 0, 0.4)');
93
- root.style.setProperty('--colors-shadow-dark', 'rgba(0, 0, 0, 0.5)');
61
+ root.style.setProperty('--color-text-primary', '#f9fafb');
62
+ root.style.setProperty('--color-text-secondary', '#d1d5db');
63
+ root.style.setProperty('--color-text-tertiary', '#9ca3af');
64
+ root.style.setProperty('--color-text-disabled', '#6b7280');
65
+ root.style.setProperty('--color-text-inverse', '#111827');
66
+ root.style.setProperty('--color-text-placeholder', '#6b7280');
67
+ root.style.setProperty('--color-background-primary', '#111827');
68
+ root.style.setProperty('--color-background-secondary', '#1f2937');
69
+ root.style.setProperty('--color-background-tertiary', '#374151');
70
+ root.style.setProperty('--color-background-card', '#1f2937');
71
+ root.style.setProperty('--color-background-input', '#374151');
72
+ root.style.setProperty('--color-background-mask', 'rgba(0, 0, 0, 0.8)');
73
+ root.style.setProperty('--color-background-hover', '#374151');
74
+ root.style.setProperty('--color-background-active', '#4b5563');
75
+ root.style.setProperty('--color-border-default', '#374151');
76
+ root.style.setProperty('--color-border-light', '#4b5563');
77
+ root.style.setProperty('--color-shadow-default', 'rgba(0, 0, 0, 0.3)');
78
+ root.style.setProperty('--color-shadow-light', 'rgba(0, 0, 0, 0.1)');
79
+ root.style.setProperty('--color-shadow-medium', 'rgba(0, 0, 0, 0.4)');
80
+ root.style.setProperty('--color-shadow-dark', 'rgba(0, 0, 0, 0.5)');
94
81
  }
95
82
 
96
83
  // Platform specific adjustments
@@ -3,15 +3,8 @@
3
3
  * 提供高性能的大数据量列表渲染
4
4
  */
5
5
 
6
- import React, {
7
- useRef,
8
- useEffect,
9
- useMemo,
10
- useCallback,
11
- useState,
12
- ReactNode,
13
- CSSProperties,
14
- } from 'react';
6
+ import React, { useRef, useEffect, useMemo, useCallback, useState, ReactNode, CSSProperties } from 'react';
7
+ import { View, ScrollView } from '@tarojs/components';
15
8
 
16
9
  export interface VirtualListProps<T = any> {
17
10
  /**
@@ -123,108 +116,102 @@ interface PositionItem {
123
116
  data: any;
124
117
  }
125
118
 
126
- export const VirtualList = React.forwardRef<HTMLDivElement, VirtualListProps<any>>(
127
- (props, ref) => {
128
- const {
129
- data,
130
- renderItem,
131
- itemHeight,
132
- height,
133
- width = '100%',
134
- itemKey,
135
- overscan = 3,
136
- dynamicHeight = false,
137
- scrollToIndex,
138
- scrollBehavior = 'auto',
139
- empty,
140
- loading,
141
- isLoading = false,
142
- onEndReached,
143
- onEndReachedThreshold = 200,
144
- style,
145
- className,
146
-
147
- itemClassName,
148
- onScroll,
149
- } = props;
150
-
151
- const [scrollTop, setScrollTop] = useState(0);
152
-
153
- const [positions, setPositions] = useState<PositionItem[]>([]);
154
-
155
- const containerRef = useRef<HTMLDivElement>(null);
156
- const contentRef = useRef<HTMLDivElement>(null);
157
- const scrollTimeoutRef = useRef<NodeJS.Timeout | null>(null);
158
-
159
- // 计算位置信息
160
- const calculatePositions = useCallback(() => {
161
- if (!dynamicHeight && typeof itemHeight === 'number') {
162
- return data.map((item, index) => ({
163
- top: index * itemHeight,
164
- height: itemHeight,
165
- bottom: (index + 1) * itemHeight,
166
- index,
167
- data: item,
168
- }));
169
- }
170
-
171
- // 动态高度计算
172
- const newPositions: PositionItem[] = [];
173
- let top = 0;
174
-
175
- data.forEach((item, index) => {
176
- const height = typeof itemHeight === 'function' ? itemHeight(index) : itemHeight;
177
- newPositions.push({
178
- top,
179
- height,
180
- bottom: top + height,
181
- index,
182
- data: item,
183
- });
184
- top += height;
119
+ export const VirtualList = React.forwardRef<any, VirtualListProps<any>>((props, ref) => {
120
+ const {
121
+ data,
122
+ renderItem,
123
+ itemHeight,
124
+ height,
125
+ width = '100%',
126
+ itemKey,
127
+ overscan = 3,
128
+ dynamicHeight = false,
129
+ scrollToIndex,
130
+ scrollBehavior = 'auto',
131
+ empty,
132
+ loading,
133
+ isLoading = false,
134
+ onEndReached,
135
+ onEndReachedThreshold = 200,
136
+ style,
137
+ className,
138
+
139
+ itemClassName,
140
+ onScroll,
141
+ } = props;
142
+
143
+ const [scrollTop, setScrollTop] = useState(0);
144
+
145
+ const [positions, setPositions] = useState<PositionItem[]>([]);
146
+
147
+ const containerRef = useRef<any>(null);
148
+ const contentRef = useRef<any>(null);
149
+ const scrollTimeoutRef = useRef<NodeJS.Timeout | null>(null);
150
+
151
+ // 计算位置信息
152
+ const calculatePositions = useCallback(() => {
153
+ if (!dynamicHeight && typeof itemHeight === 'number') {
154
+ return data.map((item, index) => ({
155
+ top: index * itemHeight,
156
+ height: itemHeight,
157
+ bottom: (index + 1) * itemHeight,
158
+ index,
159
+ data: item,
160
+ }));
161
+ }
162
+
163
+ // 动态高度计算
164
+ const newPositions: PositionItem[] = [];
165
+ let top = 0;
166
+
167
+ data.forEach((item, index) => {
168
+ const height = typeof itemHeight === 'function' ? itemHeight(index) : itemHeight;
169
+ newPositions.push({
170
+ top,
171
+ height,
172
+ bottom: top + height,
173
+ index,
174
+ data: item,
185
175
  });
176
+ top += height;
177
+ });
186
178
 
187
- return newPositions;
188
- }, [data, itemHeight, dynamicHeight]);
189
-
190
- // 初始化位置
191
- useEffect(() => {
192
- setPositions(calculatePositions());
193
- }, [calculatePositions]);
179
+ return newPositions;
180
+ }, [data, itemHeight, dynamicHeight]);
194
181
 
195
-
182
+ // 初始化位置
183
+ useEffect(() => {
184
+ setPositions(calculatePositions());
185
+ }, [calculatePositions]);
196
186
 
197
- // 计算可见范围
198
- const visibleRange = useMemo(() => {
199
- if (!positions.length) return { start: 0, end: 0 };
187
+ // 计算可见范围
188
+ const visibleRange = useMemo(() => {
189
+ if (!positions.length) return { start: 0, end: 0 };
200
190
 
201
- const containerHeight = typeof height === 'number' ? height : containerRef.current?.clientHeight || 0;
202
- const startIndex = positions.findIndex(item => item.bottom > scrollTop);
203
- const endIndex = positions.findIndex(item => item.top > scrollTop + containerHeight);
191
+ const containerHeight = typeof height === 'number' ? height : containerRef.current?.clientHeight || 0;
192
+ const startIndex = positions.findIndex((item) => item.bottom > scrollTop);
193
+ const endIndex = positions.findIndex((item) => item.top > scrollTop + containerHeight);
204
194
 
205
- return {
206
- start: Math.max(0, startIndex - overscan),
207
- end: Math.min(positions.length - 1, endIndex + overscan),
208
- };
209
- }, [scrollTop, positions, height, overscan]);
210
-
211
- // 总高度
212
- const totalHeight = useMemo(() => {
213
- if (!positions.length) return 0;
214
- const lastItem = positions[positions.length - 1];
215
- return lastItem ? lastItem.bottom : 0;
216
- }, [positions]);
195
+ return {
196
+ start: Math.max(0, startIndex - overscan),
197
+ end: Math.min(positions.length - 1, endIndex + overscan),
198
+ };
199
+ }, [scrollTop, positions, height, overscan]);
217
200
 
218
- // 处理滚动
219
- const handleScroll = useCallback(() => {
220
- if (!containerRef.current) return;
201
+ // 总高度
202
+ const totalHeight = useMemo(() => {
203
+ if (!positions.length) return 0;
204
+ const lastItem = positions[positions.length - 1];
205
+ return lastItem ? lastItem.bottom : 0;
206
+ }, [positions]);
221
207
 
222
- const container = containerRef.current;
223
- const newScrollTop = container.scrollTop;
224
- const newScrollLeft = container.scrollLeft;
208
+ // 处理滚动
209
+ const handleScroll = useCallback(
210
+ (e: any) => {
211
+ const newScrollTop = e.detail.scrollTop;
212
+ const newScrollLeft = e.detail.scrollLeft;
225
213
 
226
214
  setScrollTop(newScrollTop);
227
-
228
215
 
229
216
  // 清除之前的超时
230
217
  if (scrollTimeoutRef.current) {
@@ -241,127 +228,122 @@ export const VirtualList = React.forwardRef<HTMLDivElement, VirtualListProps<any
241
228
 
242
229
  // 检查是否到达底部
243
230
  if (onEndReached) {
244
- const containerHeight = container.clientHeight;
245
- const scrollHeight = container.scrollHeight;
246
- const isNearBottom = scrollHeight - (newScrollTop + containerHeight) < onEndReachedThreshold;
231
+ const containerHeight = typeof height === 'number' ? height : containerRef.current?.clientHeight || 0;
232
+ const isNearBottom = totalHeight - (newScrollTop + containerHeight) < onEndReachedThreshold;
247
233
 
248
234
  if (isNearBottom && !isLoading) {
249
235
  onEndReached();
250
236
  }
251
237
  }
252
- }, [onEndReached, onEndReachedThreshold, isLoading, onScroll]);
253
-
254
- // 滚动到指定索引
255
- useEffect(() => {
256
- if (scrollToIndex !== undefined && containerRef.current) {
257
- const position = positions[scrollToIndex];
258
- if (position) {
259
- containerRef.current.scrollTo({
260
- top: position.top,
261
- behavior: scrollBehavior,
262
- });
263
- }
238
+ },
239
+ [onEndReached, onEndReachedThreshold, isLoading, onScroll, height, totalHeight],
240
+ );
241
+
242
+ // 滚动到指定索引
243
+ useEffect(() => {
244
+ if (scrollToIndex !== undefined && containerRef.current) {
245
+ const position = positions[scrollToIndex];
246
+ if (position) {
247
+ containerRef.current.scrollTo({
248
+ top: position.top,
249
+ behavior: scrollBehavior,
250
+ });
264
251
  }
265
- }, [scrollToIndex, positions, scrollBehavior]);
266
-
267
- // 清理超时
268
- useEffect(() => {
269
- return () => {
270
- if (scrollTimeoutRef.current) {
271
- clearTimeout(scrollTimeoutRef.current);
272
- }
273
- };
274
- }, []);
275
-
276
- // 渲染项目
277
- const renderItems = useCallback(() => {
278
- if (!positions.length) return null;
279
-
280
- const items: ReactNode[] = [];
281
- const { start, end } = visibleRange;
252
+ }
253
+ }, [scrollToIndex, positions, scrollBehavior]);
282
254
 
283
- for (let i = start; i <= end; i++) {
284
- const position = positions[i];
285
- if (!position) continue;
286
-
287
- const key = typeof itemKey === 'function' ? itemKey(position.data, i) : position.data[itemKey];
288
- const itemStyle: CSSProperties = {
289
- position: 'absolute',
290
- top: position.top,
291
- left: 0,
292
- width: '100%',
293
- height: position.height,
294
- ...props.itemStyle,
295
- };
296
-
297
- items.push(
298
- <div
299
- key={key}
300
- className={itemClassName}
301
- style={itemStyle}
302
- data-index={i}
303
- >
304
- {renderItem(position.data, i)}
305
- </div>
306
- );
255
+ // 清理超时
256
+ useEffect(() => {
257
+ return () => {
258
+ if (scrollTimeoutRef.current) {
259
+ clearTimeout(scrollTimeoutRef.current);
307
260
  }
261
+ };
262
+ }, []);
263
+
264
+ // 渲染项目
265
+ const renderItems = useCallback(() => {
266
+ if (!positions.length) return null;
267
+
268
+ const items: ReactNode[] = [];
269
+ const { start, end } = visibleRange;
270
+
271
+ for (let i = start; i <= end; i++) {
272
+ const position = positions[i];
273
+ if (!position) continue;
274
+
275
+ const key = typeof itemKey === 'function' ? itemKey(position.data, i) : position.data[itemKey];
276
+ const itemStyle: CSSProperties = {
277
+ position: 'absolute',
278
+ top: position.top,
279
+ left: 0,
280
+ width: '100%',
281
+ height: position.height,
282
+ ...props.itemStyle,
283
+ };
308
284
 
309
- return items;
310
- }, [positions, visibleRange, itemKey, renderItem, itemClassName, props.itemStyle]);
285
+ items.push(
286
+ <View key={key} className={itemClassName} style={itemStyle} data-index={i}>
287
+ {renderItem(position.data, i)}
288
+ </View>,
289
+ );
290
+ }
311
291
 
312
- // 渲染内容
313
- const renderContent = () => {
314
- if (isLoading && data.length === 0) {
315
- return loading || <div className="flex items-center justify-center h-full">加载中...</div>;
316
- }
292
+ return items;
293
+ }, [positions, visibleRange, itemKey, renderItem, itemClassName, props.itemStyle]);
317
294
 
318
- if (!isLoading && data.length === 0) {
319
- return empty || <div className="flex items-center justify-center h-full">暂无数据</div>;
320
- }
295
+ // 渲染内容
296
+ const renderContent = () => {
297
+ if (isLoading && data.length === 0) {
298
+ return loading || <View className="flex items-center justify-center h-full">加载中...</View>;
299
+ }
321
300
 
322
- return (
323
- <>
324
- {renderItems()}
325
- {isLoading && data.length > 0 && (
326
- <div className="flex items-center justify-center p-4">
327
- <div className="animate-spin rounded-full h-8 w-8 border-b-2 border-blue-500"></div>
328
- </div>
329
- )}
330
- </>
331
- );
332
- };
301
+ if (!isLoading && data.length === 0) {
302
+ return empty || <View className="flex items-center justify-center h-full">暂无数据</View>;
303
+ }
333
304
 
334
305
  return (
335
- <div
336
- ref={(node) => {
337
- if (typeof ref === 'function') {
338
- ref(node);
339
- } else if (ref) {
340
- ref.current = node;
341
- }
342
- containerRef.current = node;
343
- }}
344
- className={`relative overflow-auto ${className || ''}`}
306
+ <>
307
+ {renderItems()}
308
+ {isLoading && data.length > 0 && (
309
+ <View className="flex items-center justify-center p-4">
310
+ <View className="animate-spin rounded-full h-8 w-8 border-b-2 border-blue-500"></View>
311
+ </View>
312
+ )}
313
+ </>
314
+ );
315
+ };
316
+
317
+ return (
318
+ <ScrollView
319
+ ref={(node) => {
320
+ if (typeof ref === 'function') {
321
+ ref(node);
322
+ } else if (ref) {
323
+ ref.current = node;
324
+ }
325
+ containerRef.current = node;
326
+ }}
327
+ className={`relative ${className || ''}`}
328
+ style={{
329
+ height,
330
+ width,
331
+ ...style,
332
+ }}
333
+ onScroll={handleScroll}
334
+ >
335
+ <View
336
+ ref={contentRef}
345
337
  style={{
346
- height,
347
- width,
348
- ...style,
338
+ height: totalHeight,
339
+ position: 'relative',
349
340
  }}
350
- onScroll={handleScroll}
351
341
  >
352
- <div
353
- ref={contentRef}
354
- style={{
355
- height: totalHeight,
356
- position: 'relative',
357
- }}
358
- >
359
- {renderContent()}
360
- </div>
361
- </div>
362
- );
363
- }
364
- );
342
+ {renderContent()}
343
+ </View>
344
+ </ScrollView>
345
+ );
346
+ });
365
347
 
366
348
  VirtualList.displayName = 'VirtualList';
367
349
 
@@ -1,3 +1,9 @@
1
+ /**
2
+ * Taro-Uno 通用组件库
3
+ * 提供通用的功能组件,如错误边界、懒加载、响应式容器等
4
+ */
5
+
6
+ // 导出组件
1
7
  export * from './ErrorBoundary';
2
8
  export * from './LazyComponent';
3
9
  export * from './ResponsiveContainer';
@@ -5,3 +11,22 @@ export * from './ResponsiveGrid';
5
11
  export * from './SecurityProvider';
6
12
  export * from './ThemeProvider';
7
13
  export * from './VirtualList';
14
+
15
+ // 通用组件工具函数
16
+ export const CommonComponentsUtils = {
17
+ /**
18
+ * 检查组件是否为通用组件
19
+ */
20
+ isCommonComponent: (componentName: string): boolean => {
21
+ const commonComponents = [
22
+ 'ErrorBoundary',
23
+ 'LazyComponent',
24
+ 'ResponsiveContainer',
25
+ 'ResponsiveGrid',
26
+ 'SecurityProvider',
27
+ 'ThemeProvider',
28
+ 'VirtualList',
29
+ ];
30
+ return commonComponents.includes(componentName);
31
+ },
32
+ };
@@ -59,4 +59,4 @@ export const avatarStyles: Record<string, CSSProperties> = {
59
59
  fontWeight: 'inherit',
60
60
  userSelect: 'none',
61
61
  },
62
- };
62
+ };
@@ -7,18 +7,7 @@ import { avatarStyles } from './Avatar.styles';
7
7
  const { bem } = createNamespace('avatar');
8
8
 
9
9
  export const Avatar = forwardRef<AvatarRef, AvatarProps>((props, ref) => {
10
- const {
11
- src,
12
- alt,
13
- size = 'medium',
14
- shape = 'circle',
15
- icon,
16
- children,
17
- style,
18
- className,
19
- onClick,
20
- ...rest
21
- } = props;
10
+ const { src, alt, size = 'medium', shape = 'circle', icon, children, style, className, onClick, ...rest } = props;
22
11
 
23
12
  const handleClick = (event: any) => {
24
13
  onClick?.(event);
@@ -43,16 +32,14 @@ export const Avatar = forwardRef<AvatarRef, AvatarProps>((props, ref) => {
43
32
  }
44
33
 
45
34
  if (children) {
46
- return (
47
- <Text className={bem('text')}>
48
- {children}
49
- </Text>
50
- );
35
+ return <Text className={bem('text')}>{children}</Text>;
51
36
  }
52
37
 
53
38
  return (
54
39
  <Text className={bem('text')}>
55
- {String(alt || 'U').charAt(0).toUpperCase()}
40
+ {String(alt || 'U')
41
+ .charAt(0)
42
+ .toUpperCase()}
56
43
  </Text>
57
44
  );
58
45
  };
@@ -76,4 +63,4 @@ export const Avatar = forwardRef<AvatarRef, AvatarProps>((props, ref) => {
76
63
 
77
64
  Avatar.displayName = 'Avatar';
78
65
 
79
- export default Avatar;
66
+ export default Avatar;
@@ -37,4 +37,4 @@ export interface AvatarRef {
37
37
  }
38
38
 
39
39
  export type AvatarSize = 'small' | 'medium' | 'large' | number;
40
- export type AvatarShape = 'circle' | 'square';
40
+ export type AvatarShape = 'circle' | 'square';
@@ -1,3 +1,3 @@
1
1
  export { Avatar } from './Avatar';
2
2
  export type { AvatarProps, AvatarRef, AvatarSize, AvatarShape } from './Avatar.types';
3
- export { avatarStyles } from './Avatar.styles';
3
+ export { avatarStyles } from './Avatar.styles';