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
@@ -73,14 +73,10 @@ export type Truthy<T> = T extends false | 0 | '' | null | undefined ? never : T;
73
73
  // ==================== 字符串工具类型 ====================
74
74
 
75
75
  /** 首字母大写 */
76
- export type Capitalize<S extends string> = S extends `${infer First}${infer Rest}`
77
- ? `${Uppercase<First>}${Rest}`
78
- : S;
76
+ export type Capitalize<S extends string> = S extends `${infer First}${infer Rest}` ? `${Uppercase<First>}${Rest}` : S;
79
77
 
80
78
  /** 首字母小写 */
81
- export type Uncapitalize<S extends string> = S extends `${infer First}${infer Rest}`
82
- ? `${Lowercase<First>}${Rest}`
83
- : S;
79
+ export type Uncapitalize<S extends string> = S extends `${infer First}${infer Rest}` ? `${Lowercase<First>}${Rest}` : S;
84
80
 
85
81
  /** 转换为连字符格式 */
86
82
  export type KebabCase<S> = S extends `${infer First}${infer Rest}`
@@ -90,9 +86,7 @@ export type KebabCase<S> = S extends `${infer First}${infer Rest}`
90
86
  : S;
91
87
 
92
88
  /** 转换为驼峰格式 */
93
- export type CamelCase<S> = S extends `${infer First}-${infer Rest}`
94
- ? `${First}${Capitalize<CamelCase<Rest>>}`
95
- : S;
89
+ export type CamelCase<S> = S extends `${infer First}-${infer Rest}` ? `${First}${Capitalize<CamelCase<Rest>>}` : S;
96
90
 
97
91
  // ==================== 对象工具类型 ====================
98
92
 
@@ -108,8 +102,8 @@ export type DeepMerge<T, U> = T extends object
108
102
  ? DeepMerge<T[K], U[K]>
109
103
  : T[K]
110
104
  : K extends keyof U
111
- ? U[K]
112
- : never;
105
+ ? U[K]
106
+ : never;
113
107
  }
114
108
  : T
115
109
  : U;
@@ -202,9 +196,7 @@ export function isReactElement(value: unknown): value is React.ReactElement {
202
196
  }
203
197
 
204
198
  /** 类型守卫:检查是否为React组件 */
205
- export function isReactComponent<T extends React.ComponentType<any>>(
206
- value: unknown,
207
- ): value is T {
199
+ export function isReactComponent<T extends React.ComponentType<any>>(value: unknown): value is T {
208
200
  return isFunction(value);
209
201
  }
210
202
 
@@ -231,9 +223,7 @@ export function isNotEmpty<T>(value: T | null | undefined): value is T {
231
223
  // ==================== 验证工具类型 ====================
232
224
 
233
225
  /** 验证结果类型 */
234
- export type ValidationResult<T> =
235
- | { success: true; data: T }
236
- | { success: false; error: string };
226
+ export type ValidationResult<T> = { success: true; data: T } | { success: false; error: string };
237
227
 
238
228
  /** 验证函数类型 */
239
229
  export type Validator<T> = (value: unknown) => ValidationResult<T>;
@@ -320,7 +310,7 @@ export function mergeStyles(...styles: (StyleObject | undefined)[]): StyleObject
320
310
  // ==================== 异步工具类型 ====================
321
311
 
322
312
  /** 异步状态类型 */
323
- export type AsyncState<T> =
313
+ export type AsyncState<T> =
324
314
  | { status: 'idle' }
325
315
  | { status: 'loading' }
326
316
  | { status: 'success'; data: T }
@@ -334,7 +324,7 @@ export type AsyncOperation<T> = Promise<T> & {
334
324
  /** 创建可取消的Promise */
335
325
  export function createCancellablePromise<T>(promise: Promise<T>): AsyncOperation<T> {
336
326
  let cancelled = false;
337
-
327
+
338
328
  const cancellablePromise = promise.then(
339
329
  (data) => {
340
330
  if (cancelled) {
@@ -347,13 +337,13 @@ export function createCancellablePromise<T>(promise: Promise<T>): AsyncOperation
347
337
  throw new Error('Promise was cancelled');
348
338
  }
349
339
  throw error;
350
- }
340
+ },
351
341
  ) as AsyncOperation<T>;
352
-
342
+
353
343
  cancellablePromise.cancel = () => {
354
344
  cancelled = true;
355
345
  };
356
-
346
+
357
347
  return cancellablePromise;
358
348
  }
359
349
 
@@ -407,4 +397,4 @@ export type InferArgs<T> = T extends (...args: infer A) => any ? A : never;
407
397
  /** 推断函数返回类型 */
408
398
  export type InferReturn<T> = T extends (...args: any) => infer R ? R : never;
409
399
 
410
- // ==================== 默认导出 ====================
400
+ // ==================== 默认导出 ====================
@@ -2,18 +2,19 @@
2
2
  * responsiveUtils 单元测试
3
3
  */
4
4
 
5
- import { renderHook, act } from '@testing-library/react';
5
+ import { renderHook } from '@testing-library/react';
6
+ import { describe, it, expect, vi } from 'vitest';
6
7
  import { useResponsive, getScreenSize, matchScreenSize, getResponsiveValue, generateResponsiveStyles } from '../responsiveUtils';
7
8
 
8
9
  // 模拟Taro环境
9
- jest.mock('@tarojs/taro', () => ({
10
- getSystemInfoSync: jest.fn(() => ({
10
+ vi.mock('@tarojs/taro', () => ({
11
+ getSystemInfoSync: vi.fn(() => ({
11
12
  windowWidth: 375,
12
13
  windowHeight: 667,
13
14
  statusBarHeight: 20,
14
15
  safeArea: { top: 20, bottom: 0, left: 0, right: 375 }
15
16
  })),
16
- getMenuButtonBoundingClientRect: jest.fn(() => ({
17
+ getMenuButtonBoundingClientRect: vi.fn(() => ({
17
18
  width: 87,
18
19
  height: 32,
19
20
  top: 26,
@@ -0,0 +1,48 @@
1
+ /**
2
+ * AbortController 兼容层
3
+ * 为小程序等不支持原生 AbortController 的环境提供兼容实现
4
+ */
5
+ import { PlatformDetector } from './index';
6
+
7
+ // 定义 AbortSignal 接口
8
+ interface AbortSignal {
9
+ aborted: boolean;
10
+ onabort?: () => void;
11
+ }
12
+
13
+ // 定义兼容的 AbortController 接口
14
+ export interface CompatibleAbortController {
15
+ signal: AbortSignal;
16
+ abort: () => void;
17
+ }
18
+
19
+ /**
20
+ * 创建兼容的 AbortController
21
+ * 在支持原生 AbortController 的环境中使用原生实现
22
+ * 在小程序等环境中使用模拟实现
23
+ */
24
+ export function createAbortController(): CompatibleAbortController {
25
+ // 如果是小程序环境,使用模拟实现
26
+ if (PlatformDetector.isMiniProgram()) {
27
+ return {
28
+ signal: {
29
+ aborted: false,
30
+ },
31
+ abort: () => {
32
+ // 小程序环境下,AbortController 的信号主要用于取消请求
33
+ // 但小程序的 Taro.request 不支持 AbortController,所以这里只做简单标记
34
+ // 实际的请求取消需要在适配器中特殊处理
35
+ },
36
+ };
37
+ }
38
+
39
+ // 在 H5 和 React Native 环境中使用原生 AbortController
40
+ return new AbortController() as unknown as CompatibleAbortController;
41
+ }
42
+
43
+ /**
44
+ * 判断是否支持原生 AbortController
45
+ */
46
+ export function isAbortControllerSupported(): boolean {
47
+ return typeof AbortController !== 'undefined' && PlatformDetector.isH5();
48
+ }
@@ -19,11 +19,7 @@ class DataCache {
19
19
  /**
20
20
  * 获取缓存数据或执行获取函数
21
21
  */
22
- async fetch<T>(
23
- key: string,
24
- fetcher: () => Promise<T>,
25
- options: CacheOptions = {}
26
- ): Promise<T> {
22
+ async fetch<T>(key: string, fetcher: () => Promise<T>, options: CacheOptions = {}): Promise<T> {
27
23
  const { ttl = 5 * 60 * 1000, retries = 0 } = options;
28
24
 
29
25
  // 检查缓存
@@ -50,7 +46,7 @@ class DataCache {
50
46
  lastError = error as Error;
51
47
  if (i < retries) {
52
48
  // 等待后重试
53
- await new Promise(resolve => setTimeout(resolve, 1000 * (i + 1)));
49
+ await new Promise((resolve) => setTimeout(resolve, 1000 * (i + 1)));
54
50
  }
55
51
  }
56
52
  }
@@ -7,13 +7,13 @@ export const createNamespace = (namespace: string) => {
7
7
  const bem = (name?: string, modifiers: string[] = []) => {
8
8
  const base = namespace;
9
9
  if (!name) return base;
10
-
10
+
11
11
  const block = `${base}__${name}`;
12
12
  if (modifiers.length === 0) return block;
13
-
13
+
14
14
  return modifiers
15
15
  .filter(Boolean)
16
- .map(mod => `${block}--${mod}`)
16
+ .map((mod) => `${block}--${mod}`)
17
17
  .join(' ');
18
18
  };
19
19
 
@@ -21,4 +21,4 @@ export const createNamespace = (namespace: string) => {
21
21
  bem,
22
22
  namespace,
23
23
  };
24
- };
24
+ };
@@ -11,7 +11,11 @@ export const isBrowserEnvironment = (): boolean => {
11
11
  * Detect whether Taro runtime is available (mini-program / native bridge).
12
12
  */
13
13
  export const isTaroEnvironment = (): boolean => {
14
- return typeof process !== 'undefined' && typeof process.env !== 'undefined' && typeof process.env['TARO_ENV'] !== 'undefined';
14
+ return (
15
+ typeof process !== 'undefined' &&
16
+ typeof process.env !== 'undefined' &&
17
+ typeof process.env['TARO_ENV'] !== 'undefined'
18
+ );
15
19
  };
16
20
 
17
21
  /**
@@ -25,11 +29,15 @@ export const resolvePlatform = (): Platform | 'unknown' => {
25
29
  };
26
30
 
27
31
  /**
28
- * Safe local storage wrapper guarding non-browser runtimes.
32
+ * Safe local storage wrapper guarding non-browser runtimes and incomplete localStorage implementations.
29
33
  */
30
34
  export const safeLocalStorage = {
31
35
  getItem(key: string): string | null {
32
- if (!isBrowserEnvironment()) {
36
+ if (
37
+ !isBrowserEnvironment() ||
38
+ typeof window.localStorage === 'undefined' ||
39
+ typeof window.localStorage.getItem !== 'function'
40
+ ) {
33
41
  return null;
34
42
  }
35
43
 
@@ -42,7 +50,11 @@ export const safeLocalStorage = {
42
50
  },
43
51
 
44
52
  setItem(key: string, value: string): void {
45
- if (!isBrowserEnvironment()) {
53
+ if (
54
+ !isBrowserEnvironment() ||
55
+ typeof window.localStorage === 'undefined' ||
56
+ typeof window.localStorage.setItem !== 'function'
57
+ ) {
46
58
  return;
47
59
  }
48
60
 
@@ -54,7 +66,11 @@ export const safeLocalStorage = {
54
66
  },
55
67
 
56
68
  removeItem(key: string): void {
57
- if (!isBrowserEnvironment()) {
69
+ if (
70
+ !isBrowserEnvironment() ||
71
+ typeof window.localStorage === 'undefined' ||
72
+ typeof window.localStorage.removeItem !== 'function'
73
+ ) {
58
74
  return;
59
75
  }
60
76
 
@@ -66,7 +82,11 @@ export const safeLocalStorage = {
66
82
  },
67
83
 
68
84
  clear(): void {
69
- if (!isBrowserEnvironment()) {
85
+ if (
86
+ !isBrowserEnvironment() ||
87
+ typeof window.localStorage === 'undefined' ||
88
+ typeof window.localStorage.clear !== 'function'
89
+ ) {
70
90
  return;
71
91
  }
72
92
 
@@ -27,7 +27,7 @@ export interface AppError extends Error {
27
27
  class ErrorHandler {
28
28
  private static instance: ErrorHandler;
29
29
 
30
- private constructor() { }
30
+ private constructor() {}
31
31
 
32
32
  static getInstance(): ErrorHandler {
33
33
  if (!ErrorHandler.instance) {
@@ -41,7 +41,7 @@ class ErrorHandler {
41
41
  type: ErrorType = ErrorType.UNKNOWN,
42
42
  severity: ErrorSeverity = ErrorSeverity.MEDIUM,
43
43
  code?: string,
44
- details?: unknown
44
+ details?: unknown,
45
45
  ): AppError {
46
46
  const error = new Error(message) as AppError;
47
47
  error.type = type;
@@ -3,6 +3,8 @@
3
3
  * 提供统一的错误记录和上报功能
4
4
  */
5
5
 
6
+ import { safeLocalStorage } from './environment';
7
+
6
8
  interface ErrorLog {
7
9
  timestamp: string;
8
10
  message: string;
@@ -33,7 +35,7 @@ class ErrorLogger {
33
35
  type,
34
36
  userAgent: typeof navigator !== 'undefined' ? navigator.userAgent : undefined,
35
37
  url: typeof window !== 'undefined' ? window.location.href : undefined,
36
- userId: this.getUserId()
38
+ userId: this.getUserId(),
37
39
  };
38
40
 
39
41
  this.addLog(errorLog);
@@ -52,7 +54,7 @@ class ErrorLogger {
52
54
  type,
53
55
  userAgent: typeof navigator !== 'undefined' ? navigator.userAgent : undefined,
54
56
  url: typeof window !== 'undefined' ? window.location.href : undefined,
55
- userId: this.getUserId()
57
+ userId: this.getUserId(),
56
58
  };
57
59
 
58
60
  this.addLog(errorLog);
@@ -83,12 +85,10 @@ class ErrorLogger {
83
85
  * 保存日志到本地存储
84
86
  */
85
87
  private saveToLocalStorage(): void {
86
- if (typeof localStorage !== 'undefined') {
87
- try {
88
- localStorage.setItem('taro-uno-error-logs', JSON.stringify(this.logs));
89
- } catch (e) {
90
- console.warn('Failed to save error logs to localStorage:', e);
91
- }
88
+ try {
89
+ safeLocalStorage.setItem('taro-uno-error-logs', JSON.stringify(this.logs));
90
+ } catch (e) {
91
+ console.warn('Failed to save error logs to localStorage:', e);
92
92
  }
93
93
  }
94
94
 
@@ -96,15 +96,13 @@ class ErrorLogger {
96
96
  * 从本地存储加载日志
97
97
  */
98
98
  private loadFromLocalStorage(): void {
99
- if (typeof localStorage !== 'undefined') {
100
- try {
101
- const savedLogs = localStorage.getItem('taro-uno-error-logs');
102
- if (savedLogs) {
103
- this.logs = JSON.parse(savedLogs);
104
- }
105
- } catch (e) {
106
- console.warn('Failed to load error logs from localStorage:', e);
99
+ try {
100
+ const savedLogs = safeLocalStorage.getItem('taro-uno-error-logs');
101
+ if (savedLogs) {
102
+ this.logs = JSON.parse(savedLogs);
107
103
  }
104
+ } catch (e) {
105
+ console.warn('Failed to load error logs from localStorage:', e);
108
106
  }
109
107
  }
110
108
 
@@ -154,9 +152,7 @@ class ErrorLogger {
154
152
  */
155
153
  clearLogs(): void {
156
154
  this.logs = [];
157
- if (typeof localStorage !== 'undefined') {
158
- localStorage.removeItem('taro-uno-error-logs');
159
- }
155
+ safeLocalStorage.removeItem('taro-uno-error-logs');
160
156
  }
161
157
 
162
158
  /**
@@ -194,4 +190,4 @@ if (typeof window !== 'undefined') {
194
190
  errorLogger.init();
195
191
  }
196
192
 
197
- export default errorLogger;
193
+ export default errorLogger;
@@ -14,10 +14,7 @@ interface DateFormatOptions {
14
14
  /** 日期时间格式化工具类 */
15
15
  export class DateTimeFormatUtils {
16
16
  /** 格式化日期 */
17
- static formatDate(
18
- date: Date | string | number,
19
- options: DateFormatOptions = {}
20
- ): string {
17
+ static formatDate(date: Date | string | number, options: DateFormatOptions = {}): string {
21
18
  const { format = 'YYYY-MM-DD' } = options;
22
19
  const d = new Date(date);
23
20
 
@@ -36,19 +33,19 @@ export class DateTimeFormatUtils {
36
33
 
37
34
  // 支持的格式化标记
38
35
  const replacements: Record<string, string> = {
39
- 'YYYY': String(year),
40
- 'YY': String(year).slice(-2),
41
- 'MM': month,
42
- 'M': String(d.getMonth() + 1),
43
- 'DD': day,
44
- 'D': String(d.getDate()),
45
- 'HH': hours,
46
- 'H': String(d.getHours()),
47
- 'mm': minutes,
48
- 'm': String(d.getMinutes()),
49
- 'ss': seconds,
50
- 's': String(d.getSeconds()),
51
- 'SSS': milliseconds,
36
+ YYYY: String(year),
37
+ YY: String(year).slice(-2),
38
+ MM: month,
39
+ M: String(d.getMonth() + 1),
40
+ DD: day,
41
+ D: String(d.getDate()),
42
+ HH: hours,
43
+ H: String(d.getHours()),
44
+ mm: minutes,
45
+ m: String(d.getMinutes()),
46
+ ss: seconds,
47
+ s: String(d.getSeconds()),
48
+ SSS: milliseconds,
52
49
  };
53
50
 
54
51
  // 应用格式化
@@ -108,12 +105,12 @@ export class DateTimeFormatUtils {
108
105
 
109
106
  const startTime = this.formatDate(startDate, { format: 'HH:mm' });
110
107
  const endTime = this.formatDate(endDate, { format: 'HH:mm' });
111
-
108
+
112
109
  // 如果在同一天
113
110
  if (startDate.toDateString() === endDate.toDateString()) {
114
111
  return `${startTime} - ${endTime}`;
115
112
  }
116
-
113
+
117
114
  // 如果不在同一天
118
115
  return `${this.formatDate(startDate, { format: 'MM-DD HH:mm' })} - ${this.formatDate(endDate, { format: 'MM-DD HH:mm' })}`;
119
116
  }
@@ -121,10 +118,11 @@ export class DateTimeFormatUtils {
121
118
  /** 获取星期几 */
122
119
  static getWeekday(date: Date | string | number, locale = 'zh-CN'): string {
123
120
  const d = new Date(date);
124
- const weekdays = locale === 'zh-CN'
125
- ? ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六']
126
- : ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
127
-
121
+ const weekdays =
122
+ locale === 'zh-CN'
123
+ ? ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六']
124
+ : ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
125
+
128
126
  return weekdays[d.getDay()] || '';
129
127
  }
130
128
 
@@ -167,10 +165,7 @@ interface NumberFormatOptions {
167
165
  /** 数字格式化工具类 */
168
166
  export class NumberFormatUtils {
169
167
  /** 格式化数字 */
170
- static formatNumber(
171
- num: number,
172
- options: NumberFormatOptions = {}
173
- ): string {
168
+ static formatNumber(num: number, options: NumberFormatOptions = {}): string {
174
169
  const {
175
170
  locale = 'zh-CN',
176
171
  style = 'decimal',
@@ -192,11 +187,7 @@ export class NumberFormatUtils {
192
187
  }
193
188
 
194
189
  /** 格式化货币 */
195
- static formatCurrency(
196
- amount: number,
197
- currency: string = 'CNY',
198
- locale = 'zh-CN'
199
- ): string {
190
+ static formatCurrency(amount: number, currency: string = 'CNY', locale = 'zh-CN'): string {
200
191
  return this.formatNumber(amount, {
201
192
  style: 'currency',
202
193
  currency,
@@ -205,11 +196,7 @@ export class NumberFormatUtils {
205
196
  }
206
197
 
207
198
  /** 格式化百分比 */
208
- static formatPercent(
209
- value: number,
210
- decimals: number = 2,
211
- locale = 'zh-CN'
212
- ): string {
199
+ static formatPercent(value: number, decimals: number = 2, locale = 'zh-CN'): string {
213
200
  return this.formatNumber(value, {
214
201
  style: 'percent',
215
202
  minimumFractionDigits: decimals,
@@ -219,11 +206,7 @@ export class NumberFormatUtils {
219
206
  }
220
207
 
221
208
  /** 格式化文件大小 */
222
- static formatFileSize(
223
- bytes: number,
224
- decimals: number = 2,
225
- locale = 'zh-CN'
226
- ): string {
209
+ static formatFileSize(bytes: number, decimals: number = 2, locale = 'zh-CN'): string {
227
210
  if (bytes === 0) return '0 B';
228
211
 
229
212
  const k = 1024;
@@ -235,11 +218,7 @@ export class NumberFormatUtils {
235
218
  }
236
219
 
237
220
  /** 格式化数字缩写 */
238
- static formatNumberAbbreviation(
239
- num: number,
240
- decimals: number = 1,
241
- locale = 'zh-CN'
242
- ): string {
221
+ static formatNumberAbbreviation(num: number, decimals: number = 1, locale = 'zh-CN'): string {
243
222
  if (num < 1000) {
244
223
  return this.formatNumber(num, { locale });
245
224
  }
@@ -329,7 +308,7 @@ export class StringFormatUtils {
329
308
 
330
309
  /** 驼峰命名转下划线命名 */
331
310
  static camelToSnake(str: string): string {
332
- return str.replace(/[A-Z]/g, letter => `_${letter.toLowerCase()}`);
311
+ return str.replace(/[A-Z]/g, (letter) => `_${letter.toLowerCase()}`);
333
312
  }
334
313
 
335
314
  /** 下划线命名转驼峰命名 */
@@ -344,7 +323,7 @@ export class StringFormatUtils {
344
323
 
345
324
  /** 驼峰命名转中划线命名 */
346
325
  static camelToKebab(str: string): string {
347
- return str.replace(/[A-Z]/g, letter => `-${letter.toLowerCase()}`);
326
+ return str.replace(/[A-Z]/g, (letter) => `-${letter.toLowerCase()}`);
348
327
  }
349
328
 
350
329
  /** 格式化手机号 */
@@ -381,13 +360,9 @@ export class StringFormatUtils {
381
360
  }
382
361
 
383
362
  /** 高亮关键词 */
384
- static highlightKeywords(
385
- text: string,
386
- keywords: string[],
387
- highlightClass = 'highlight'
388
- ): string {
363
+ static highlightKeywords(text: string, keywords: string[], highlightClass = 'highlight'): string {
389
364
  let result = text;
390
- keywords.forEach(keyword => {
365
+ keywords.forEach((keyword) => {
391
366
  const regex = new RegExp(`(${keyword})`, 'gi');
392
367
  result = result.replace(regex, `<span class="${highlightClass}">$1</span>`);
393
368
  });
@@ -415,25 +390,18 @@ export class StringFormatUtils {
415
390
 
416
391
  /** 生成UUID */
417
392
  static generateUUID(): string {
418
- return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
419
- const r = Math.random() * 16 | 0;
420
- const v = c === 'x' ? r : (r & 0x3 | 0x8);
393
+ return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
394
+ const r = (Math.random() * 16) | 0;
395
+ const v = c === 'x' ? r : (r & 0x3) | 0x8;
421
396
  return v.toString(16);
422
397
  });
423
398
  }
424
399
 
425
400
  /** 格式化模板字符串 */
426
- static template(
427
- template: string,
428
- data: Record<string, any>,
429
- delimiter = '{%}'
430
- ): string {
431
- return template.replace(
432
- new RegExp(`${delimiter}(\\w+)${delimiter}`, 'g'),
433
- (_, key) => {
434
- return data[key] !== undefined ? String(data[key]) : '';
435
- }
436
- );
401
+ static template(template: string, data: Record<string, any>, delimiter = '{%}'): string {
402
+ return template.replace(new RegExp(`${delimiter}(\\w+)${delimiter}`, 'g'), (_, key) => {
403
+ return data[key] !== undefined ? String(data[key]) : '';
404
+ });
437
405
  }
438
406
  }
439
407
 
@@ -441,4 +409,4 @@ export class StringFormatUtils {
441
409
 
442
410
  export const dateTimeFormat = DateTimeFormatUtils;
443
411
  export const numberFormat = NumberFormatUtils;
444
- export const stringFormat = StringFormatUtils;
412
+ export const stringFormat = StringFormatUtils;