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
@@ -6,16 +6,7 @@ import type { BadgeProps, BadgeRef } from './Badge.types';
6
6
  const { bem } = createNamespace('badge');
7
7
 
8
8
  export const Badge = forwardRef<BadgeRef, BadgeProps>((props, ref) => {
9
- const {
10
- count,
11
- dot = false,
12
- overflowCount = 99,
13
- showZero = false,
14
- children,
15
- style,
16
- className,
17
- ...rest
18
- } = props;
9
+ const { count, dot = false, overflowCount = 99, showZero = false, children, style, className, ...rest } = props;
19
10
 
20
11
  const displayCount = count !== undefined && count > overflowCount ? `${overflowCount}+` : count;
21
12
 
@@ -26,11 +17,7 @@ export const Badge = forwardRef<BadgeRef, BadgeProps>((props, ref) => {
26
17
  {children}
27
18
  {shouldShowBadge && (
28
19
  <View className={`${bem('badge')} ${dot ? bem('dot') : ''}`.trim()}>
29
- {dot ? null : (
30
- <Text className={bem('count')}>
31
- {displayCount}
32
- </Text>
33
- )}
20
+ {dot ? null : <Text className={bem('count')}>{displayCount}</Text>}
34
21
  </View>
35
22
  )}
36
23
  </View>
@@ -39,4 +26,4 @@ export const Badge = forwardRef<BadgeRef, BadgeProps>((props, ref) => {
39
26
 
40
27
  Badge.displayName = 'Badge';
41
28
 
42
- export default Badge;
29
+ export default Badge;
@@ -26,4 +26,4 @@ export interface BadgeRef {
26
26
  isDot: () => boolean;
27
27
  /** 检查是否显示 */
28
28
  isVisible: () => boolean;
29
- }
29
+ }
@@ -1,2 +1,2 @@
1
1
  export { Badge } from './Badge';
2
- export type { BadgeProps, BadgeRef } from './Badge.types';
2
+ export type { BadgeProps, BadgeRef } from './Badge.types';
@@ -9,7 +9,7 @@ export const calendarStyles: Record<string, CSSProperties> = {
9
9
  width: '100%',
10
10
  maxWidth: '400px',
11
11
  },
12
-
12
+
13
13
  // 头部
14
14
  header: {
15
15
  display: 'flex',
@@ -18,7 +18,7 @@ export const calendarStyles: Record<string, CSSProperties> = {
18
18
  marginBottom: '16px',
19
19
  padding: '0 8px',
20
20
  },
21
-
21
+
22
22
  headerTitle: {
23
23
  fontSize: '16px',
24
24
  fontWeight: '500',
@@ -28,11 +28,11 @@ export const calendarStyles: Record<string, CSSProperties> = {
28
28
  borderRadius: '4px',
29
29
  transition: 'background-color 0.3s ease',
30
30
  },
31
-
31
+
32
32
  headerTitleHover: {
33
33
  backgroundColor: '#f5f5f5',
34
34
  },
35
-
35
+
36
36
  headerButton: {
37
37
  display: 'flex',
38
38
  alignItems: 'center',
@@ -47,24 +47,24 @@ export const calendarStyles: Record<string, CSSProperties> = {
47
47
  color: '#8c8c8c',
48
48
  transition: 'all 0.3s ease',
49
49
  },
50
-
50
+
51
51
  headerButtonHover: {
52
52
  backgroundColor: '#f5f5f5',
53
53
  color: '#262626',
54
54
  },
55
-
55
+
56
56
  headerButtonDisabled: {
57
57
  color: '#d9d9d9',
58
58
  cursor: 'not-allowed',
59
59
  },
60
-
60
+
61
61
  // 操作按钮组
62
62
  actions: {
63
63
  display: 'flex',
64
64
  alignItems: 'center',
65
65
  gap: '8px',
66
66
  },
67
-
67
+
68
68
  todayButton: {
69
69
  padding: '4px 8px',
70
70
  fontSize: '12px',
@@ -75,19 +75,19 @@ export const calendarStyles: Record<string, CSSProperties> = {
75
75
  color: '#1890ff',
76
76
  transition: 'all 0.3s ease',
77
77
  },
78
-
78
+
79
79
  todayButtonHover: {
80
80
  borderColor: '#1890ff',
81
81
  backgroundColor: '#f0f8ff',
82
82
  },
83
-
83
+
84
84
  // 星期头部
85
85
  weekHeader: {
86
86
  display: 'grid',
87
87
  gridTemplateColumns: 'repeat(7, 1fr)',
88
88
  marginBottom: '8px',
89
89
  },
90
-
90
+
91
91
  weekHeaderCell: {
92
92
  textAlign: 'center',
93
93
  fontSize: '12px',
@@ -95,21 +95,21 @@ export const calendarStyles: Record<string, CSSProperties> = {
95
95
  fontWeight: '500',
96
96
  padding: '8px 4px',
97
97
  },
98
-
98
+
99
99
  // 日期网格
100
100
  dateGrid: {
101
101
  display: 'grid',
102
102
  gridTemplateColumns: 'repeat(7, 1fr)',
103
103
  gap: '2px',
104
104
  },
105
-
105
+
106
106
  // 月份网格
107
107
  monthGrid: {
108
108
  display: 'grid',
109
109
  gridTemplateColumns: 'repeat(3, 1fr)',
110
110
  gap: '8px',
111
111
  },
112
-
112
+
113
113
  // 日期单元格
114
114
  dateCell: {
115
115
  position: 'relative',
@@ -126,33 +126,33 @@ export const calendarStyles: Record<string, CSSProperties> = {
126
126
  transition: 'all 0.3s ease',
127
127
  border: '1px solid transparent',
128
128
  },
129
-
129
+
130
130
  dateCellHover: {
131
131
  backgroundColor: '#f5f5f5',
132
132
  },
133
-
133
+
134
134
  dateCellToday: {
135
135
  backgroundColor: '#e6f7ff',
136
136
  borderColor: '#1890ff',
137
137
  fontWeight: '500',
138
138
  },
139
-
139
+
140
140
  dateCellSelected: {
141
141
  backgroundColor: '#1890ff',
142
142
  color: '#ffffff',
143
143
  fontWeight: '500',
144
144
  },
145
-
145
+
146
146
  dateCellDisabled: {
147
147
  color: '#d9d9d9',
148
148
  cursor: 'not-allowed',
149
149
  backgroundColor: 'transparent',
150
150
  },
151
-
151
+
152
152
  dateCellOtherMonth: {
153
153
  color: '#d9d9d9',
154
154
  },
155
-
155
+
156
156
  // 月份单元格
157
157
  monthCell: {
158
158
  display: 'flex',
@@ -166,23 +166,23 @@ export const calendarStyles: Record<string, CSSProperties> = {
166
166
  transition: 'all 0.3s ease',
167
167
  border: '1px solid transparent',
168
168
  },
169
-
169
+
170
170
  monthCellHover: {
171
171
  backgroundColor: '#f5f5f5',
172
172
  },
173
-
173
+
174
174
  monthCellCurrent: {
175
175
  backgroundColor: '#e6f7ff',
176
176
  borderColor: '#1890ff',
177
177
  fontWeight: '500',
178
178
  },
179
-
179
+
180
180
  monthCellSelected: {
181
181
  backgroundColor: '#1890ff',
182
182
  color: '#ffffff',
183
183
  fontWeight: '500',
184
184
  },
185
-
185
+
186
186
  // 事件指示器
187
187
  eventIndicator: {
188
188
  position: 'absolute',
@@ -192,64 +192,64 @@ export const calendarStyles: Record<string, CSSProperties> = {
192
192
  display: 'flex',
193
193
  gap: '2px',
194
194
  },
195
-
195
+
196
196
  eventDot: {
197
197
  width: '4px',
198
198
  height: '4px',
199
199
  borderRadius: '50%',
200
200
  backgroundColor: '#1890ff',
201
201
  },
202
-
202
+
203
203
  eventDotDefault: {
204
204
  backgroundColor: '#d9d9d9',
205
205
  },
206
-
206
+
207
207
  eventDotPrimary: {
208
208
  backgroundColor: '#1890ff',
209
209
  },
210
-
210
+
211
211
  eventDotSuccess: {
212
212
  backgroundColor: '#52c41a',
213
213
  },
214
-
214
+
215
215
  eventDotWarning: {
216
216
  backgroundColor: '#faad14',
217
217
  },
218
-
218
+
219
219
  eventDotDanger: {
220
220
  backgroundColor: '#ff4d4f',
221
221
  },
222
-
222
+
223
223
  // 事件列表
224
224
  eventList: {
225
225
  marginTop: '16px',
226
226
  borderTop: '1px solid #f0f0f0',
227
227
  paddingTop: '16px',
228
228
  },
229
-
229
+
230
230
  eventItem: {
231
231
  padding: '8px 12px',
232
232
  backgroundColor: '#f5f5f5',
233
233
  borderRadius: '4px',
234
234
  marginBottom: '8px',
235
235
  },
236
-
236
+
237
237
  eventTitle: {
238
238
  fontSize: '14px',
239
239
  fontWeight: '500',
240
240
  color: '#262626',
241
241
  marginBottom: '4px',
242
242
  },
243
-
243
+
244
244
  eventDescription: {
245
245
  fontSize: '12px',
246
246
  color: '#8c8c8c',
247
247
  lineHeight: '1.4',
248
248
  },
249
-
249
+
250
250
  eventTime: {
251
251
  fontSize: '12px',
252
252
  color: '#8c8c8c',
253
253
  marginTop: '4px',
254
254
  },
255
- };
255
+ };
@@ -2,29 +2,41 @@ import { render, screen } from '@testing-library/react'
2
2
  import { describe, it, expect, vi } from 'vitest'
3
3
  import '@testing-library/jest-dom'
4
4
  import Calendar from './Calendar'
5
+ import { ThemeProvider } from '../../common/ThemeProvider'
5
6
 
6
7
  describe('Calendar Component', () => {
7
8
  it('renders calendar', () => {
8
- render(<Calendar />)
9
+ render(
10
+ <ThemeProvider defaultTheme="light">
11
+ <Calendar />
12
+ </ThemeProvider>
13
+ )
9
14
  expect(screen.getByText(/年/)).toBeInTheDocument()
10
15
  })
11
16
 
12
- it('renders with ariaLabel', () => {
13
- render(<Calendar ariaLabel="Test calendar" />)
14
- const calendar = screen.getByRole('grid')
15
- expect(calendar).toHaveAttribute('aria-label', 'Test calendar') // failing
17
+ it('renders with ariaLabel and role', () => {
18
+ render(
19
+ <ThemeProvider defaultTheme="light">
20
+ <Calendar ariaLabel="Test calendar" role="navigation" data-testid="calendar" />
21
+ </ThemeProvider>
22
+ )
23
+ const calendar = screen.getByTestId('calendar')
24
+ expect(calendar).toHaveAttribute('aria-label', 'Test calendar')
25
+ expect(calendar).toHaveAttribute('role', 'navigation')
16
26
  })
17
27
 
18
- it('renders with role', () => {
19
- render(<Calendar role="navigation" />)
20
- const calendar = screen.getByRole('navigation')
21
- expect(calendar).toBeInTheDocument() // failing
22
- })
23
-
24
- it('handles date selection', () => {
28
+ it('handles date selection when date is clicked', () => {
25
29
  const onSelect = vi.fn()
26
- render(<Calendar onSelect={onSelect} />)
27
- // Simulate click on date - failing until implemented
28
- expect(onSelect).toHaveBeenCalled() // failing
30
+ render(
31
+ <ThemeProvider defaultTheme="light">
32
+ <Calendar onSelect={onSelect} />
33
+ </ThemeProvider>
34
+ )
35
+ // Click on the first date cell
36
+ const dateCells = screen.getAllByText(/^\d+$/)
37
+ if (dateCells.length > 0) {
38
+ dateCells[0].click()
39
+ expect(onSelect).toHaveBeenCalled()
40
+ }
29
41
  })
30
42
  })
@@ -1,4 +1,4 @@
1
- import { forwardRef, useImperativeHandle, useRef, useState, useEffect } from 'react';
1
+ import { forwardRef, useImperativeHandle, useRef, useState, useEffect, useMemo, useCallback } from 'react';
2
2
  import { View, Text } from '@tarojs/components';
3
3
  import { calendarStyles } from './Calendar.styles';
4
4
  import type { CalendarProps, CalendarRef, CalendarDate } from './Calendar.types';
@@ -80,15 +80,28 @@ export const CalendarComponent = forwardRef<CalendarRef, CalendarProps>((props,
80
80
  }
81
81
  }, [value]);
82
82
 
83
- const getWeekDays = () => {
84
- return ['日', '一', '二', '三', '四', '五', '六'];
85
- };
86
-
87
- const getMonthNames = () => {
88
- return ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'];
89
- };
90
-
91
- const getDatesInMonth = (): CalendarDate[] => {
83
+ // 固定的星期和月份名称,提取到组件外部避免重复创建
84
+ const WEEK_DAYS = ['日', '一', '二', '三', '四', '五', '六'];
85
+ const MONTH_NAMES = [
86
+ '一月',
87
+ '二月',
88
+ '三月',
89
+ '四月',
90
+ '五月',
91
+ '六月',
92
+ '七月',
93
+ '八月',
94
+ '九月',
95
+ '十月',
96
+ '十一月',
97
+ '十二月',
98
+ ];
99
+
100
+ const getWeekDays = () => WEEK_DAYS;
101
+ const getMonthNames = () => MONTH_NAMES;
102
+
103
+ // 使用 useMemo 优化 getDatesInMonth 函数,只在依赖项变化时重新计算
104
+ const datesInMonth = useMemo(() => {
92
105
  const year = currentDate.getFullYear();
93
106
  const month = currentDate.getMonth();
94
107
  const today = new Date();
@@ -144,31 +157,38 @@ export const CalendarComponent = forwardRef<CalendarRef, CalendarProps>((props,
144
157
  }
145
158
 
146
159
  return dates;
147
- };
160
+ }, [currentDate, selectedDate, events, disabledDate]);
148
161
 
149
- const handleDateClick = (date: CalendarDate) => {
150
- if (date.disabled) return;
162
+ // 使用 useCallback 优化事件处理函数
163
+ const handleDateClick = useCallback(
164
+ (date: CalendarDate) => {
165
+ if (date.disabled) return;
151
166
 
152
- const newDate = new Date(date.year, date.month - 1, date.day);
153
- setSelectedDate(newDate);
154
- onSelect?.(newDate);
155
- onChange?.(newDate);
156
- };
167
+ const newDate = new Date(date.year, date.month - 1, date.day);
168
+ setSelectedDate(newDate);
169
+ onSelect?.(newDate);
170
+ onChange?.(newDate);
171
+ },
172
+ [onSelect, onChange],
173
+ );
157
174
 
158
- const handleMonthClick = (monthIndex: number) => {
159
- const newDate = new Date(currentDate.getFullYear(), monthIndex, 1);
160
- setCurrentDate(newDate);
161
- setCurrentMode('month');
162
- onChange?.(newDate);
163
- onModeChange?.('month');
164
- };
175
+ const handleMonthClick = useCallback(
176
+ (monthIndex: number) => {
177
+ const newDate = new Date(currentDate.getFullYear(), monthIndex, 1);
178
+ setCurrentDate(newDate);
179
+ setCurrentMode('month');
180
+ onChange?.(newDate);
181
+ onModeChange?.('month');
182
+ },
183
+ [currentDate, onChange, onModeChange],
184
+ );
165
185
 
166
- const handleHeaderTitleClick = () => {
186
+ const handleHeaderTitleClick = useCallback(() => {
167
187
  setCurrentMode(currentMode === 'month' ? 'year' : 'month');
168
188
  onModeChange?.(currentMode === 'month' ? 'year' : 'month');
169
- };
189
+ }, [currentMode, onModeChange]);
170
190
 
171
- const handlePrevClick = () => {
191
+ const handlePrevClick = useCallback(() => {
172
192
  const newDate = new Date(currentDate);
173
193
  if (currentMode === 'month') {
174
194
  newDate.setMonth(newDate.getMonth() - 1);
@@ -177,9 +197,9 @@ export const CalendarComponent = forwardRef<CalendarRef, CalendarProps>((props,
177
197
  }
178
198
  setCurrentDate(newDate);
179
199
  onChange?.(newDate);
180
- };
200
+ }, [currentDate, currentMode, onChange]);
181
201
 
182
- const handleNextClick = () => {
202
+ const handleNextClick = useCallback(() => {
183
203
  const newDate = new Date(currentDate);
184
204
  if (currentMode === 'month') {
185
205
  newDate.setMonth(newDate.getMonth() + 1);
@@ -188,15 +208,15 @@ export const CalendarComponent = forwardRef<CalendarRef, CalendarProps>((props,
188
208
  }
189
209
  setCurrentDate(newDate);
190
210
  onChange?.(newDate);
191
- };
211
+ }, [currentDate, currentMode, onChange]);
192
212
 
193
- const handleTodayClick = () => {
213
+ const handleTodayClick = useCallback(() => {
194
214
  const today = new Date();
195
215
  setCurrentDate(today);
196
216
  setSelectedDate(today);
197
217
  setCurrentMode('month');
198
218
  onChange?.(today);
199
- };
219
+ }, [onChange]);
200
220
 
201
221
  const renderDateCell = (date: CalendarDate) => {
202
222
  if (dateRender) {
@@ -242,7 +262,6 @@ export const CalendarComponent = forwardRef<CalendarRef, CalendarProps>((props,
242
262
  };
243
263
 
244
264
  const renderMonthView = () => {
245
- const dates = getDatesInMonth();
246
265
  const weekDays = getWeekDays();
247
266
 
248
267
  return (
@@ -254,7 +273,9 @@ export const CalendarComponent = forwardRef<CalendarRef, CalendarProps>((props,
254
273
  </View>
255
274
  ))}
256
275
  </View>
257
- <View style={calendarStyles['dateGrid'] ?? {}}>{dates.map((date) => renderDateCell(date))}</View>
276
+ <View style={calendarStyles['dateGrid'] ?? {}}>
277
+ {datesInMonth.map((date: CalendarDate) => renderDateCell(date))}
278
+ </View>
258
279
  </>
259
280
  );
260
281
  };
@@ -88,4 +88,4 @@ export interface CalendarRef {
88
88
  goPrev: () => void;
89
89
  /** 下一个月/年 */
90
90
  goNext: () => void;
91
- }
91
+ }
@@ -1,3 +1,3 @@
1
1
  export { Calendar } from './Calendar';
2
2
  export { calendarStyles } from './Calendar.styles';
3
- export type { CalendarProps, CalendarRef, CalendarDate, CalendarEvent } from './Calendar.types';
3
+ export type { CalendarProps, CalendarRef, CalendarDate, CalendarEvent } from './Calendar.types';
@@ -7,7 +7,7 @@ export const CardStyles = createStyles({
7
7
  none: '',
8
8
  small: 'shadow-sm',
9
9
  default: 'shadow-md',
10
- large: 'shadow-lg'
10
+ large: 'shadow-lg',
11
11
  },
12
12
 
13
13
  bordered: `
@@ -85,5 +85,5 @@ export const CardStyles = createStyles({
85
85
 
86
86
  action: `
87
87
  flex-shrink-0
88
- `
88
+ `,
89
89
  });
@@ -1,20 +1,22 @@
1
1
  import React from 'react'
2
2
  import { render, screen, fireEvent } from '@testing-library/react'
3
- import { vi } from 'vitest'
3
+ import { vi, describe, test, expect, beforeEach } from 'vitest'
4
4
  import { Card } from './Card'
5
5
 
6
6
  // Mock Taro components
7
7
  vi.mock('@tarojs/components', () => ({
8
- View: ({ children, ...props }) => {
8
+ View: React.forwardRef<any, any>(({ children, ...props }, ref) => {
9
9
  const { className, style, id, role, hidden, onClick, ...rest } = props as any
10
- const allowed: Record<string, any> = { className, style, id, role, hidden, onClick }
10
+ const allowed: Record<string, any> = {
11
+ className, style, id, role, hidden, onClick, ref
12
+ }
11
13
  Object.keys(rest).forEach((key) => {
12
14
  if (key.startsWith('aria-') || key.startsWith('data-')) {
13
15
  allowed[key] = rest[key]
14
16
  }
15
17
  })
16
18
  return <div {...allowed}>{children}</div>
17
- },
19
+ }),
18
20
  }))
19
21
 
20
22
  // Mock @/utils
@@ -107,7 +107,7 @@ export const Card = forwardRef<CardRef, CardProps>((props, ref) => {
107
107
  style={style}
108
108
  onClick={handlePress}
109
109
  onLongPress={onLongPress}
110
- data-testid="card"
110
+ data-testid="card"
111
111
  data-shadow={shadow}
112
112
  data-bordered={bordered}
113
113
  data-hoverable={hoverable}
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
- import { BaseComponentProps } from '../../../types';
2
+ import { BaseComponentProps as StandardBaseComponentProps } from '../../../types/component-props';
3
3
 
4
- export interface CardProps extends BaseComponentProps {
4
+ export interface CardProps extends StandardBaseComponentProps {
5
5
  /** 卡片内容 */
6
6
  children: React.ReactNode;
7
7
  /** 卡片标题 */
@@ -27,9 +27,9 @@ export interface CardProps extends BaseComponentProps {
27
27
  /** 自定义样式 */
28
28
  style?: React.CSSProperties;
29
29
  /** 点击事件 */
30
- onPress?: (_event: any) => void;
30
+ onPress?: (_event: React.MouseEvent | any) => void;
31
31
  /** 长按事件 */
32
- onLongPress?: (_event: any) => void;
32
+ onLongPress?: (_event: React.MouseEvent | any) => void;
33
33
  }
34
34
 
35
35
  export interface CardRef {
@@ -1,3 +1,3 @@
1
1
  export { Card } from './Card';
2
2
  export { CardStyles as cardStyles } from './Card.styles';
3
- export type { CardProps, CardRef } from './Card.types';
3
+ export type { CardProps, CardRef } from './Card.types';