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
@@ -0,0 +1,260 @@
1
+ import { useState, useEffect, useCallback, useRef } from 'react';
2
+ import type { ITouchEvent } from '@tarojs/components';
3
+ import { utils } from '@/utils';
4
+ import type { InputProps, InputStatus } from './Input.types';
5
+
6
+ export const useInputLogic = (props: InputProps) => {
7
+ const {
8
+ value: controlledValue,
9
+ defaultValue = '',
10
+ status: propStatus = 'normal',
11
+ disabled = false,
12
+ readonly = false,
13
+ clearable = false,
14
+ clearTrigger = 'focus',
15
+ minLength,
16
+ maxLength,
17
+ rules,
18
+ validator,
19
+ validateTrigger = 'onBlur',
20
+ immediate = false,
21
+ type,
22
+ onChange,
23
+ onInput,
24
+ onFocus,
25
+ onBlur,
26
+ onConfirm,
27
+ onClear,
28
+ } = props;
29
+
30
+ // 更新ref类型,适配Taro环境
31
+ const nativeInputRef = useRef<any>(null);
32
+ const [internalValue, setInternalValue] = useState(defaultValue);
33
+ const [isFocused, setIsFocused] = useState(false);
34
+ const [showPassword, setShowPassword] = useState(false);
35
+ const [validationResult, setValidationResult] = useState<{ valid: boolean; message?: string } | null>(null);
36
+ const [internalStatus, setInternalStatus] = useState<InputStatus>(propStatus);
37
+
38
+ // 优化:将状态合并,减少useEffect数量
39
+ const [internalDisabled, setInternalDisabled] = useState(disabled);
40
+ const [internalReadonly, setInternalReadonly] = useState(readonly);
41
+
42
+ const isControlled = controlledValue !== undefined;
43
+ const value = isControlled ? controlledValue : internalValue;
44
+
45
+ // 优化:减少不必要的useEffect,合并状态更新
46
+ useEffect(() => {
47
+ setInternalStatus(propStatus);
48
+ setInternalDisabled(disabled);
49
+ setInternalReadonly(readonly);
50
+ }, [propStatus, disabled, readonly]);
51
+
52
+ // 优化:使用防抖处理immediate验证,避免频繁验证
53
+ const debouncedImmediateValidate = useCallback(
54
+ (valueToValidate: string) => {
55
+ if (immediate && valueToValidate) {
56
+ validateInput(valueToValidate);
57
+ }
58
+ },
59
+ [immediate],
60
+ );
61
+
62
+ // 优化:只在value变化且immediate为true时执行,避免不必要的验证
63
+ useEffect(() => {
64
+ debouncedImmediateValidate(String(value));
65
+ }, [value, debouncedImmediateValidate]);
66
+
67
+ const validateInput = useCallback(
68
+ async (inputValue: string): Promise<{ valid: boolean; message?: string }> => {
69
+ if (minLength !== undefined && inputValue.length < minLength) {
70
+ return { valid: false, message: `最少需要${minLength}个字符` };
71
+ }
72
+ if (maxLength !== undefined && inputValue.length > maxLength) {
73
+ return { valid: false, message: `最多允许${maxLength}个字符` };
74
+ }
75
+ if (!rules && !validator) return { valid: true };
76
+
77
+ if (rules?.some((rule) => rule.required && !inputValue.trim())) {
78
+ const requiredRule = rules.find((rule) => rule.required);
79
+ return { valid: false, message: requiredRule?.message || '此字段为必填项' };
80
+ }
81
+
82
+ if (rules) {
83
+ for (const rule of rules) {
84
+ if (rule.pattern && !rule.pattern.test(inputValue)) {
85
+ return { valid: false, message: rule.message || '输入格式不正确' };
86
+ }
87
+ if (rule.validator) {
88
+ const result = await rule.validator(inputValue);
89
+ if (typeof result === 'string') return { valid: false, message: result };
90
+ if (!result) return { valid: false, message: rule.message || '输入格式不正确' };
91
+ }
92
+ }
93
+ }
94
+
95
+ if (validator) {
96
+ const result = await validator(inputValue);
97
+ if (typeof result === 'string') return { valid: false, message: result };
98
+ if (!result) return { valid: false, message: '验证失败' };
99
+ }
100
+
101
+ return { valid: true };
102
+ },
103
+ [rules, validator, minLength, maxLength],
104
+ );
105
+
106
+ const formatInputValue = useCallback(
107
+ (inputValue: string): string => {
108
+ let formattedValue = utils.security.sanitizeText(inputValue);
109
+ switch (type) {
110
+ case 'number':
111
+ case 'digit':
112
+ formattedValue = formattedValue.replace(/[^\d.-]/g, '');
113
+ break;
114
+ case 'tel':
115
+ formattedValue = formattedValue.replace(/[^\d]/g, '');
116
+ break;
117
+ case 'idcard':
118
+ formattedValue = formattedValue.replace(/[^\dxX]/g, '');
119
+ break;
120
+ }
121
+ if (maxLength && formattedValue.length > maxLength) {
122
+ formattedValue = formattedValue.slice(0, maxLength);
123
+ }
124
+ return formattedValue;
125
+ },
126
+ [type, maxLength],
127
+ );
128
+
129
+ const handleValueChange = useCallback(
130
+ async (newValue: string, event: ITouchEvent) => {
131
+ if (internalDisabled || internalReadonly) return;
132
+ const formattedValue = formatInputValue(newValue);
133
+
134
+ if (!isControlled) setInternalValue(formattedValue);
135
+
136
+ onInput?.(formattedValue, event);
137
+
138
+ // 优化:合并状态更新,减少重渲染
139
+ if (validateTrigger === 'onChange') {
140
+ const result = await validateInput(formattedValue);
141
+ setValidationResult(result);
142
+ setInternalStatus(result.valid ? 'normal' : 'error');
143
+ }
144
+
145
+ onChange?.(formattedValue, event);
146
+ },
147
+ [
148
+ internalDisabled,
149
+ internalReadonly,
150
+ isControlled,
151
+ formatInputValue,
152
+ onInput,
153
+ validateTrigger,
154
+ validateInput,
155
+ onChange,
156
+ ],
157
+ );
158
+
159
+ const handleFocus = useCallback(
160
+ async (event: ITouchEvent) => {
161
+ if (internalDisabled || internalReadonly) return;
162
+ setIsFocused(true);
163
+ onFocus?.(event);
164
+ if (validateTrigger === 'onFocus') {
165
+ const result = await validateInput(String(value));
166
+ setValidationResult(result);
167
+ setInternalStatus(result.valid ? 'normal' : 'error');
168
+ }
169
+ },
170
+ [internalDisabled, internalReadonly, onFocus, validateTrigger, validateInput, value],
171
+ );
172
+
173
+ const handleBlur = useCallback(
174
+ async (event: ITouchEvent) => {
175
+ if (internalDisabled || internalReadonly) return;
176
+ setIsFocused(false);
177
+ onBlur?.(event);
178
+ if (validateTrigger === 'onBlur') {
179
+ const result = await validateInput(String(value));
180
+ setValidationResult(result);
181
+ setInternalStatus(result.valid ? 'normal' : 'error');
182
+ }
183
+ },
184
+ [internalDisabled, internalReadonly, onBlur, validateTrigger, validateInput, value],
185
+ );
186
+
187
+ const handleConfirm = useCallback(
188
+ async (event: ITouchEvent) => {
189
+ if (internalDisabled || internalReadonly) return;
190
+ onConfirm?.(String(value), event);
191
+ if (validateTrigger === 'onSubmit') {
192
+ const result = await validateInput(String(value));
193
+ setValidationResult(result);
194
+ setInternalStatus(result.valid ? 'normal' : 'error');
195
+ }
196
+ },
197
+ [internalDisabled, internalReadonly, onConfirm, validateTrigger, validateInput, value],
198
+ );
199
+
200
+ const handleClear = useCallback(
201
+ (event: ITouchEvent) => {
202
+ if (internalDisabled || internalReadonly) return;
203
+ const emptyValue = '';
204
+ if (!isControlled) setInternalValue(emptyValue);
205
+ // 优化:合并状态更新
206
+ setValidationResult(null);
207
+ setInternalStatus('normal');
208
+ onClear?.(event);
209
+ onChange?.(emptyValue, event);
210
+ },
211
+ [internalDisabled, internalReadonly, isControlled, onClear, onChange],
212
+ );
213
+
214
+ // 优化:减少依赖,简化逻辑
215
+ const handlePasswordToggle = useCallback(() => {
216
+ setShowPassword((prev) => !prev);
217
+ }, []);
218
+
219
+ const shouldShowClear = useCallback(() => {
220
+ if (!clearable || internalDisabled || internalReadonly) return false;
221
+ switch (clearTrigger) {
222
+ case 'always':
223
+ return !!value;
224
+ case 'focus':
225
+ return isFocused && !!value;
226
+ case 'never':
227
+ return false;
228
+ default:
229
+ return false;
230
+ }
231
+ }, [clearable, internalDisabled, internalReadonly, value, isFocused, clearTrigger]);
232
+
233
+ // 优化:简化finalStatus计算
234
+ const finalStatus = internalDisabled ? 'disabled' : validationResult?.valid === false ? 'error' : internalStatus;
235
+
236
+ return {
237
+ nativeInputRef,
238
+ value,
239
+ isFocused,
240
+ showPassword,
241
+ internalStatus,
242
+ internalDisabled,
243
+ internalReadonly,
244
+ validationResult,
245
+ finalStatus,
246
+ handleValueChange,
247
+ handleFocus,
248
+ handleBlur,
249
+ handleConfirm,
250
+ handleClear,
251
+ handlePasswordToggle,
252
+ shouldShowClear,
253
+ validateInput,
254
+ setInternalValue,
255
+ setInternalStatus,
256
+ setInternalDisabled,
257
+ setInternalReadonly,
258
+ setValidationResult,
259
+ };
260
+ };
@@ -129,7 +129,9 @@ export class InputNumberStyles {
129
129
  }
130
130
 
131
131
  /** 生成输入框容器样式 */
132
- static getContainerStyle(props: Partial<InputNumberProps> & { block?: boolean; style?: React.CSSProperties }): React.CSSProperties {
132
+ static getContainerStyle(
133
+ props: Partial<InputNumberProps> & { block?: boolean; style?: React.CSSProperties },
134
+ ): React.CSSProperties {
133
135
  const { size = 'md', block = false, style = {} } = props;
134
136
 
135
137
  const sizeStyles = this.SIZE_MAP[size];
@@ -145,14 +147,15 @@ export class InputNumberStyles {
145
147
  }
146
148
 
147
149
  /** 生成输入框包装器样式 */
148
- static getWrapperStyle(props: Partial<InputNumberProps> & { bordered?: boolean; controls?: boolean; controlsPosition?: 'start' | 'end'; style?: React.CSSProperties }): React.CSSProperties {
149
- const {
150
- size = 'md',
151
- status = 'normal',
152
- disabled = false,
153
- bordered = true,
154
- style = {},
155
- } = props;
150
+ static getWrapperStyle(
151
+ props: Partial<InputNumberProps> & {
152
+ bordered?: boolean;
153
+ controls?: boolean;
154
+ controlsPosition?: 'start' | 'end';
155
+ style?: React.CSSProperties;
156
+ },
157
+ ): React.CSSProperties {
158
+ const { size = 'md', status = 'normal', disabled = false, bordered = true, style = {} } = props;
156
159
 
157
160
  const sizeStyles = this.SIZE_MAP[size];
158
161
  const statusStyles = this.STATUS_COLORS[status];
@@ -173,7 +176,11 @@ export class InputNumberStyles {
173
176
  }
174
177
 
175
178
  /** 生成控制器样式 */
176
- static getControlsStyle(props: { size: InputNumberSize; controlsPosition: 'start' | 'end'; style?: React.CSSProperties }): React.CSSProperties {
179
+ static getControlsStyle(props: {
180
+ size: InputNumberSize;
181
+ controlsPosition: 'start' | 'end';
182
+ style?: React.CSSProperties;
183
+ }): React.CSSProperties {
177
184
  const { size = 'md', controlsPosition = 'end', style = {} } = props;
178
185
 
179
186
  const sizeStyles = this.SIZE_MAP[size];
@@ -206,7 +213,11 @@ export class InputNumberStyles {
206
213
  }
207
214
 
208
215
  /** 生成控制器按钮样式 */
209
- static getControlButtonStyle(props: { size: InputNumberSize; direction: 'up' | 'down'; style?: React.CSSProperties }): React.CSSProperties {
216
+ static getControlButtonStyle(props: {
217
+ size: InputNumberSize;
218
+ direction: 'up' | 'down';
219
+ style?: React.CSSProperties;
220
+ }): React.CSSProperties {
210
221
  const { size = 'md', direction = 'up', style = {} } = props;
211
222
 
212
223
  const sizeStyles = this.SIZE_MAP[size];
@@ -234,7 +245,13 @@ export class InputNumberStyles {
234
245
  }
235
246
 
236
247
  /** 生成前缀样式 */
237
- static getPrefixStyle(props: { size: InputNumberSize; disabled: boolean; controls: boolean; controlsPosition: 'start' | 'end'; style?: React.CSSProperties }): React.CSSProperties {
248
+ static getPrefixStyle(props: {
249
+ size: InputNumberSize;
250
+ disabled: boolean;
251
+ controls: boolean;
252
+ controlsPosition: 'start' | 'end';
253
+ style?: React.CSSProperties;
254
+ }): React.CSSProperties {
238
255
  const { size = 'md', disabled = false, controls = false, controlsPosition = 'start', style = {} } = props;
239
256
 
240
257
  const sizeStyles = this.SIZE_MAP[size];
@@ -261,7 +278,13 @@ export class InputNumberStyles {
261
278
  }
262
279
 
263
280
  /** 生成后缀样式 */
264
- static getSuffixStyle(props: { size: InputNumberSize; disabled: boolean; controls: boolean; controlsPosition: 'start' | 'end'; style?: React.CSSProperties }): React.CSSProperties {
281
+ static getSuffixStyle(props: {
282
+ size: InputNumberSize;
283
+ disabled: boolean;
284
+ controls: boolean;
285
+ controlsPosition: 'start' | 'end';
286
+ style?: React.CSSProperties;
287
+ }): React.CSSProperties {
265
288
  const { size = 'md', disabled = false, controls = false, controlsPosition = 'end', style = {} } = props;
266
289
 
267
290
  const sizeStyles = this.SIZE_MAP[size];
@@ -288,7 +311,11 @@ export class InputNumberStyles {
288
311
  }
289
312
 
290
313
  /** 生成标签样式 */
291
- static getLabelStyle(props: { size: InputNumberSize; disabled: boolean; style?: React.CSSProperties }): React.CSSProperties {
314
+ static getLabelStyle(props: {
315
+ size: InputNumberSize;
316
+ disabled: boolean;
317
+ style?: React.CSSProperties;
318
+ }): React.CSSProperties {
292
319
  const { size = 'md', disabled = false, style = {} } = props;
293
320
 
294
321
  const sizeStyles = this.SIZE_MAP[size];
@@ -303,7 +330,11 @@ export class InputNumberStyles {
303
330
  }
304
331
 
305
332
  /** 生成辅助文本样式 */
306
- static getHelperTextStyle(props: { size: InputNumberSize; status: InputNumberStatus; style?: React.CSSProperties }): React.CSSProperties {
333
+ static getHelperTextStyle(props: {
334
+ size: InputNumberSize;
335
+ status: InputNumberStatus;
336
+ style?: React.CSSProperties;
337
+ }): React.CSSProperties {
307
338
  const { size = 'md', status = 'normal', style = {} } = props;
308
339
 
309
340
  const sizeStyles = this.SIZE_MAP[size];
@@ -521,7 +552,14 @@ export class InputNumberStyles {
521
552
 
522
553
  switch (type) {
523
554
  case 'currency':
524
- formattedValue = this.formatCurrency(value, precision, thousandsSeparator, decimalSeparator, currencySymbol, currencySymbolPosition);
555
+ formattedValue = this.formatCurrency(
556
+ value,
557
+ precision,
558
+ thousandsSeparator,
559
+ decimalSeparator,
560
+ currencySymbol,
561
+ currencySymbolPosition,
562
+ );
525
563
  break;
526
564
  case 'percent':
527
565
  formattedValue = this.formatPercent(value, precision, thousandsSeparator, decimalSeparator);
@@ -547,10 +585,10 @@ export class InputNumberStyles {
547
585
  thousandsSeparator?: string,
548
586
  decimalSeparator?: string,
549
587
  currencySymbol?: string,
550
- position?: 'prefix' | 'suffix'
588
+ position?: 'prefix' | 'suffix',
551
589
  ): string {
552
590
  const formattedNumber = this.formatDecimal(value, precision, thousandsSeparator, decimalSeparator);
553
-
591
+
554
592
  if (position === 'prefix') {
555
593
  return `${currencySymbol || ''}${formattedNumber}`;
556
594
  } else {
@@ -559,14 +597,24 @@ export class InputNumberStyles {
559
597
  }
560
598
 
561
599
  /** 格式化百分比 */
562
- private static formatPercent(value: number, precision: number, thousandsSeparator?: string, decimalSeparator?: string): string {
600
+ private static formatPercent(
601
+ value: number,
602
+ precision: number,
603
+ thousandsSeparator?: string,
604
+ decimalSeparator?: string,
605
+ ): string {
563
606
  const percentValue = value * 100;
564
607
  const formattedNumber = this.formatDecimal(percentValue, precision, thousandsSeparator, decimalSeparator);
565
608
  return `${formattedNumber}%`;
566
609
  }
567
610
 
568
611
  /** 格式化小数 */
569
- private static formatDecimal(value: number, precision: number, thousandsSeparator?: string, decimalSeparator?: string): string {
612
+ private static formatDecimal(
613
+ value: number,
614
+ precision: number,
615
+ thousandsSeparator?: string,
616
+ decimalSeparator?: string,
617
+ ): string {
570
618
  const roundedValue = this.roundValue(value, precision);
571
619
  const [integerPart, decimalPart] = roundedValue.toString().split('.');
572
620
 
@@ -626,7 +674,10 @@ export class InputNumberStyles {
626
674
  }
627
675
 
628
676
  // 移除千分位分隔符
629
- cleanText = cleanText.replace(new RegExp(`\\${thousandsSeparator.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')}`, 'g'), '');
677
+ cleanText = cleanText.replace(
678
+ new RegExp(`\\${thousandsSeparator.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')}`, 'g'),
679
+ '',
680
+ );
630
681
 
631
682
  // 替换小数点分隔符
632
683
  cleanText = cleanText.replace(decimalSeparator, '.');
@@ -648,18 +699,18 @@ export class InputNumberStyles {
648
699
  /** 限制数字范围 */
649
700
  static clampValue(value: number, min?: number, max?: number): number {
650
701
  let clampedValue = value;
651
-
702
+
652
703
  if (min !== undefined) {
653
704
  clampedValue = Math.max(clampedValue, min);
654
705
  }
655
-
706
+
656
707
  if (max !== undefined) {
657
708
  clampedValue = Math.min(clampedValue, max);
658
709
  }
659
-
710
+
660
711
  return clampedValue;
661
712
  }
662
713
  }
663
714
 
664
715
  /** 导出样式工具 */
665
- export const inputNumberStyles = InputNumberStyles;
716
+ export const inputNumberStyles = InputNumberStyles;
@@ -2,7 +2,12 @@ import React, { forwardRef, useCallback, useEffect, useState } from 'react';
2
2
  import { Input as TaroInput, View, Text } from '@tarojs/components';
3
3
  import type { ITouchEvent } from '@tarojs/components';
4
4
  import { inputNumberStyles } from './InputNumber.styles';
5
- import type { InputNumberProps, InputNumberRef, InputNumberStatus, InputNumberValidationResult } from './InputNumber.types';
5
+ import type {
6
+ InputNumberProps,
7
+ InputNumberRef,
8
+ InputNumberStatus,
9
+ InputNumberValidationResult,
10
+ } from './InputNumber.types';
6
11
  import { useInputNumberState } from './hooks/useInputNumberState';
7
12
  import { useInputNumberValidation } from './hooks/useInputNumberValidation';
8
13
  import { InputNumberControls } from './components/InputNumberControls';
@@ -112,27 +117,33 @@ export const InputNumberComponent = forwardRef<InputNumberRef, InputNumberProps>
112
117
  }, [value, onChange, onInput]);
113
118
 
114
119
  // 处理清除事件
115
- const handleClear = useCallback((event: ITouchEvent) => {
116
- if (internalDisabled || internalReadonly) return;
120
+ const handleClear = useCallback(
121
+ (event: ITouchEvent) => {
122
+ if (internalDisabled || internalReadonly) return;
117
123
 
118
- handleValueChange(null, event);
119
- setValidationResult(null);
120
- setInternalStatus('normal');
121
- onClear?.(event);
122
- }, [internalDisabled, internalReadonly, handleValueChange, onClear]);
124
+ handleValueChange(null, event);
125
+ setValidationResult(null);
126
+ setInternalStatus('normal');
127
+ onClear?.(event);
128
+ },
129
+ [internalDisabled, internalReadonly, handleValueChange, onClear],
130
+ );
123
131
 
124
132
  // 处理步进事件
125
- const handleStep = useCallback(async (direction: 'up' | 'down', event: ITouchEvent) => {
126
- if (internalDisabled || internalReadonly) return;
133
+ const handleStep = useCallback(
134
+ async (direction: 'up' | 'down', event: ITouchEvent) => {
135
+ if (internalDisabled || internalReadonly) return;
127
136
 
128
- const currentValue = value || 0;
129
- const newValue = direction === 'up' ? currentValue + step : currentValue - step;
130
- const clampedValue = inputNumberStyles['clampValue'](newValue, min, max);
131
- const roundedValue = inputNumberStyles['roundValue'](clampedValue, precision);
137
+ const currentValue = value || 0;
138
+ const newValue = direction === 'up' ? currentValue + step : currentValue - step;
139
+ const clampedValue = inputNumberStyles['clampValue'](newValue, min, max);
140
+ const roundedValue = inputNumberStyles['roundValue'](clampedValue, precision);
132
141
 
133
- await handleValueChange(roundedValue, event);
134
- onStep?.(roundedValue, direction, event);
135
- }, [internalDisabled, internalReadonly, value, step, min, max, precision, handleValueChange, onStep]);
142
+ await handleValueChange(roundedValue, event);
143
+ onStep?.(roundedValue, direction, event);
144
+ },
145
+ [internalDisabled, internalReadonly, value, step, min, max, precision, handleValueChange, onStep],
146
+ );
136
147
 
137
148
  // 计算是否显示清除按钮
138
149
  const shouldShowClear = useCallback(() => {
@@ -179,7 +190,6 @@ export const InputNumberComponent = forwardRef<InputNumberRef, InputNumberProps>
179
190
  className,
180
191
  });
181
192
 
182
-
183
193
  // 暴露给外部的引用方法
184
194
  React.useImperativeHandle(
185
195
  ref,
@@ -303,7 +313,18 @@ export const InputNumberComponent = forwardRef<InputNumberRef, InputNumberProps>
303
313
  })}
304
314
  >
305
315
  {/* 前缀 */}
306
- {prefix && <View style={inputNumberStyles['getPrefixStyle']({ size, disabled: internalDisabled, controls, controlsPosition })}>{prefix}</View>}
316
+ {prefix && (
317
+ <View
318
+ style={inputNumberStyles['getPrefixStyle']({
319
+ size,
320
+ disabled: internalDisabled,
321
+ controls,
322
+ controlsPosition,
323
+ })}
324
+ >
325
+ {prefix}
326
+ </View>
327
+ )}
307
328
 
308
329
  {/* 控制器 */}
309
330
  {controls && (
@@ -332,7 +353,18 @@ export const InputNumberComponent = forwardRef<InputNumberRef, InputNumberProps>
332
353
  />
333
354
 
334
355
  {/* 后缀 */}
335
- {suffix && <View style={inputNumberStyles['getSuffixStyle']({ size, disabled: internalDisabled, controls, controlsPosition })}>{suffix}</View>}
356
+ {suffix && (
357
+ <View
358
+ style={inputNumberStyles['getSuffixStyle']({
359
+ size,
360
+ disabled: internalDisabled,
361
+ controls,
362
+ controlsPosition,
363
+ })}
364
+ >
365
+ {suffix}
366
+ </View>
367
+ )}
336
368
 
337
369
  {/* 清除按钮 */}
338
370
  {shouldShowClear() && (
@@ -367,4 +399,4 @@ export const InputNumberComponent = forwardRef<InputNumberRef, InputNumberProps>
367
399
  InputNumberComponent.displayName = 'InputNumber';
368
400
 
369
401
  /** 导出数字输入框组件 */
370
- export const InputNumber = InputNumberComponent;
402
+ export const InputNumber = InputNumberComponent;
@@ -24,7 +24,10 @@ export type InputNumberStepMode = 'continuous' | 'discrete';
24
24
  export type InputNumberClearTrigger = 'always' | 'focus' | 'never';
25
25
 
26
26
  /** 数字输入框原生属性类型 */
27
- export type InputNumberNativeProps = Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size' | 'value' | 'onChange' | 'onFocus' | 'onBlur' | 'onInput' | 'prefix'>;
27
+ export type InputNumberNativeProps = Omit<
28
+ React.InputHTMLAttributes<HTMLInputElement>,
29
+ 'size' | 'value' | 'onChange' | 'onFocus' | 'onBlur' | 'onInput' | 'prefix'
30
+ >;
28
31
 
29
32
  /** 验证规则 */
30
33
  export interface InputNumberRule {
@@ -62,7 +65,22 @@ export interface InputNumberFormatConfig {
62
65
 
63
66
  /** 数字输入框组件属性接口 */
64
67
  export interface InputNumberProps
65
- extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size' | 'value' | 'onChange' | 'onFocus' | 'onBlur' | 'onInput' | 'disabled' | 'readOnly' | 'autoFocus' | 'maxLength' | 'minLength' | 'defaultValue' | 'prefix'> {
68
+ extends Omit<
69
+ React.InputHTMLAttributes<HTMLInputElement>,
70
+ | 'size'
71
+ | 'value'
72
+ | 'onChange'
73
+ | 'onFocus'
74
+ | 'onBlur'
75
+ | 'onInput'
76
+ | 'disabled'
77
+ | 'readOnly'
78
+ | 'autoFocus'
79
+ | 'maxLength'
80
+ | 'minLength'
81
+ | 'defaultValue'
82
+ | 'prefix'
83
+ > {
66
84
  /** 数字值 */
67
85
  value?: number | null;
68
86
  /** 默认值(非受控模式) */
@@ -315,4 +333,4 @@ export interface InputNumberEvents {
315
333
  onStep: (_value: number, direction: 'up' | 'down', event: ITouchEvent) => void;
316
334
  /** 验证事件 */
317
335
  onValidate: (_result: InputNumberValidationResult) => void;
318
- }
336
+ }
@@ -10,23 +10,15 @@ interface InputNumberClearButtonProps {
10
10
  onClear: (event: ITouchEvent) => void;
11
11
  }
12
12
 
13
- export function InputNumberClearButton({
14
- size,
15
- disabled,
16
- readonly,
17
- onClear,
18
- }: InputNumberClearButtonProps) {
13
+ export function InputNumberClearButton({ size, disabled, readonly, onClear }: InputNumberClearButtonProps) {
19
14
  const handleClear = (event: ITouchEvent) => {
20
15
  if (disabled || readonly) return;
21
16
  onClear(event);
22
17
  };
23
18
 
24
19
  return (
25
- <View
26
- style={inputNumberStyles['getClearButtonStyle']({ size })}
27
- onClick={handleClear}
28
- >
20
+ <View style={inputNumberStyles['getClearButtonStyle']({ size })} onClick={handleClear}>
29
21
  <Text>×</Text>
30
22
  </View>
31
23
  );
32
- }
24
+ }
@@ -11,13 +11,7 @@ interface InputNumberControlsProps {
11
11
  onStep: (direction: 'up' | 'down', event: ITouchEvent) => void;
12
12
  }
13
13
 
14
- export function InputNumberControls({
15
- size,
16
- controlsPosition,
17
- disabled,
18
- readonly,
19
- onStep,
20
- }: InputNumberControlsProps) {
14
+ export function InputNumberControls({ size, controlsPosition, disabled, readonly, onStep }: InputNumberControlsProps) {
21
15
  const handleStep = (direction: 'up' | 'down') => (event: ITouchEvent) => {
22
16
  if (disabled || readonly) return;
23
17
  onStep(direction, event);
@@ -25,10 +19,7 @@ export function InputNumberControls({
25
19
 
26
20
  return (
27
21
  <View style={inputNumberStyles['getControlsStyle']({ size, controlsPosition })}>
28
- <View
29
- style={inputNumberStyles['getControlButtonStyle']({ size, direction: 'up' })}
30
- onClick={handleStep('up')}
31
- >
22
+ <View style={inputNumberStyles['getControlButtonStyle']({ size, direction: 'up' })} onClick={handleStep('up')}>
32
23
  <Text>+</Text>
33
24
  </View>
34
25
  <View
@@ -39,4 +30,4 @@ export function InputNumberControls({
39
30
  </View>
40
31
  </View>
41
32
  );
42
- }
33
+ }
@@ -1,4 +1,4 @@
1
1
  export { useInputNumberState } from './useInputNumberState';
2
2
  export { useInputNumberValidation } from './useInputNumberValidation';
3
3
  export type { UseInputNumberStateParams, UseInputNumberStateReturn } from './useInputNumberState';
4
- export type { UseInputNumberValidationParams } from './useInputNumberValidation';
4
+ export type { UseInputNumberValidationParams } from './useInputNumberValidation';