taro-uno-ui 1.0.1 → 1.0.2

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 (414) hide show
  1. package/README.md +67 -30
  2. package/dist/js/{index-CDFsvu80.js → index-QpKiGsEQ.js} +39026 -28023
  3. package/dist/js/index-QpKiGsEQ.js.map +1 -0
  4. package/dist/js/{index-JffnTUrv.js → index-nnTHNhwl.js} +38743 -27720
  5. package/dist/js/index-nnTHNhwl.js.map +1 -0
  6. package/package.json +4 -4
  7. package/dist/js/index-CDFsvu80.js.map +0 -1
  8. package/dist/js/index-DFdcksbe.js +0 -1165
  9. package/dist/js/index-DFdcksbe.js.map +0 -1
  10. package/dist/js/index-DXRIkWX1.js +0 -1148
  11. package/dist/js/index-DXRIkWX1.js.map +0 -1
  12. package/dist/js/index-JffnTUrv.js.map +0 -1
  13. package/dist/utils/http/request.d.ts +0 -280
  14. package/src/app.config.ts +0 -55
  15. package/src/app.scss +0 -508
  16. package/src/app.tsx +0 -44
  17. package/src/components/basic/Button/Button.styles.ts +0 -130
  18. package/src/components/basic/Button/Button.test.tsx +0 -154
  19. package/src/components/basic/Button/Button.tsx +0 -133
  20. package/src/components/basic/Button/Button.types.ts +0 -81
  21. package/src/components/basic/Button/index.tsx +0 -6
  22. package/src/components/basic/Divider/Divider.styles.ts +0 -488
  23. package/src/components/basic/Divider/Divider.test.tsx +0 -551
  24. package/src/components/basic/Divider/Divider.tsx +0 -392
  25. package/src/components/basic/Divider/Divider.types.ts +0 -261
  26. package/src/components/basic/Divider/index.tsx +0 -25
  27. package/src/components/basic/Icon/Icon.data.ts +0 -474
  28. package/src/components/basic/Icon/Icon.styles.ts +0 -359
  29. package/src/components/basic/Icon/Icon.test.tsx +0 -357
  30. package/src/components/basic/Icon/Icon.tsx +0 -167
  31. package/src/components/basic/Icon/Icon.types.ts +0 -210
  32. package/src/components/basic/Icon/IconManager.ts +0 -229
  33. package/src/components/basic/Icon/index.tsx +0 -22
  34. package/src/components/basic/Text/Text.styles.ts +0 -500
  35. package/src/components/basic/Text/Text.test.tsx +0 -299
  36. package/src/components/basic/Text/Text.tsx +0 -340
  37. package/src/components/basic/Text/Text.types.ts +0 -329
  38. package/src/components/basic/Text/index.tsx +0 -27
  39. package/src/components/basic/Typography/Typography.styles.ts +0 -347
  40. package/src/components/basic/Typography/Typography.tsx +0 -207
  41. package/src/components/basic/Typography/Typography.types.ts +0 -296
  42. package/src/components/basic/Typography/index.tsx +0 -14
  43. package/src/components/basic/Video/Video.styles.ts +0 -777
  44. package/src/components/basic/Video/Video.test.tsx +0 -490
  45. package/src/components/basic/Video/Video.tsx +0 -1468
  46. package/src/components/basic/Video/Video.types.ts +0 -500
  47. package/src/components/basic/Video/index.tsx +0 -26
  48. package/src/components/basic/index.tsx +0 -300
  49. package/src/components/common/ErrorBoundary.tsx +0 -87
  50. package/src/components/common/LazyComponent.tsx +0 -247
  51. package/src/components/common/ResponsiveContainer.tsx +0 -93
  52. package/src/components/common/ResponsiveGrid.tsx +0 -183
  53. package/src/components/common/SecurityProvider.tsx +0 -98
  54. package/src/components/common/ThemeProvider.tsx +0 -115
  55. package/src/components/common/VirtualList.tsx +0 -350
  56. package/src/components/common/__tests__/ErrorBoundary.test.tsx +0 -249
  57. package/src/components/common/index.tsx +0 -32
  58. package/src/components/display/Avatar/Avatar.styles.ts +0 -62
  59. package/src/components/display/Avatar/Avatar.test.tsx +0 -390
  60. package/src/components/display/Avatar/Avatar.tsx +0 -66
  61. package/src/components/display/Avatar/Avatar.types.ts +0 -40
  62. package/src/components/display/Avatar/index.ts +0 -3
  63. package/src/components/display/Badge/Badge.tsx +0 -29
  64. package/src/components/display/Badge/Badge.types.ts +0 -29
  65. package/src/components/display/Badge/index.ts +0 -2
  66. package/src/components/display/Calendar/Calendar.styles.ts +0 -255
  67. package/src/components/display/Calendar/Calendar.test.tsx +0 -42
  68. package/src/components/display/Calendar/Calendar.tsx +0 -358
  69. package/src/components/display/Calendar/Calendar.types.ts +0 -91
  70. package/src/components/display/Calendar/index.ts +0 -3
  71. package/src/components/display/Card/Card.styles.ts +0 -89
  72. package/src/components/display/Card/Card.test.tsx +0 -182
  73. package/src/components/display/Card/Card.tsx +0 -135
  74. package/src/components/display/Card/Card.types.ts +0 -55
  75. package/src/components/display/Card/index.ts +0 -3
  76. package/src/components/display/Carousel/Carousel.styles.ts +0 -206
  77. package/src/components/display/Carousel/Carousel.tsx +0 -290
  78. package/src/components/display/Carousel/Carousel.types.ts +0 -57
  79. package/src/components/display/Carousel/index.ts +0 -3
  80. package/src/components/display/List/List.styles.ts +0 -79
  81. package/src/components/display/List/List.tsx +0 -114
  82. package/src/components/display/List/List.types.ts +0 -68
  83. package/src/components/display/List/index.ts +0 -3
  84. package/src/components/display/Rate/Rate.styles.ts +0 -254
  85. package/src/components/display/Rate/Rate.tsx +0 -324
  86. package/src/components/display/Rate/Rate.types.ts +0 -112
  87. package/src/components/display/Rate/index.ts +0 -20
  88. package/src/components/display/Table/Table.styles.ts +0 -269
  89. package/src/components/display/Table/Table.test.tsx +0 -345
  90. package/src/components/display/Table/Table.tsx +0 -426
  91. package/src/components/display/Table/Table.types.ts +0 -256
  92. package/src/components/display/Table/index.tsx +0 -16
  93. package/src/components/display/Tag/Tag.styles.ts +0 -197
  94. package/src/components/display/Tag/Tag.test.tsx +0 -541
  95. package/src/components/display/Tag/Tag.tsx +0 -139
  96. package/src/components/display/Tag/Tag.types.ts +0 -49
  97. package/src/components/display/Tag/index.ts +0 -3
  98. package/src/components/display/Timeline/Timeline.styles.ts +0 -211
  99. package/src/components/display/Timeline/Timeline.tsx +0 -220
  100. package/src/components/display/Timeline/Timeline.types.ts +0 -56
  101. package/src/components/display/Timeline/index.ts +0 -3
  102. package/src/components/display/index.tsx +0 -147
  103. package/src/components/feedback/Loading/Loading.styles.ts +0 -117
  104. package/src/components/feedback/Loading/Loading.test.tsx +0 -534
  105. package/src/components/feedback/Loading/Loading.tsx +0 -132
  106. package/src/components/feedback/Loading/Loading.types.ts +0 -33
  107. package/src/components/feedback/Loading/index.ts +0 -6
  108. package/src/components/feedback/Message/Message.styles.ts +0 -41
  109. package/src/components/feedback/Message/Message.test.tsx +0 -234
  110. package/src/components/feedback/Message/Message.tsx +0 -96
  111. package/src/components/feedback/Message/Message.types.ts +0 -37
  112. package/src/components/feedback/Message/index.ts +0 -6
  113. package/src/components/feedback/Modal/Modal.styles.ts +0 -21
  114. package/src/components/feedback/Modal/Modal.test.tsx +0 -11
  115. package/src/components/feedback/Modal/Modal.tsx +0 -269
  116. package/src/components/feedback/Modal/Modal.types.ts +0 -151
  117. package/src/components/feedback/Modal/index.tsx +0 -11
  118. package/src/components/feedback/Notification/Notification.styles.ts +0 -453
  119. package/src/components/feedback/Notification/Notification.test.tsx +0 -401
  120. package/src/components/feedback/Notification/Notification.tsx +0 -347
  121. package/src/components/feedback/Notification/Notification.types.ts +0 -339
  122. package/src/components/feedback/Notification/NotificationManager.tsx +0 -405
  123. package/src/components/feedback/Notification/index.ts +0 -40
  124. package/src/components/feedback/Notification/index.tsx +0 -154
  125. package/src/components/feedback/Progress/Progress.styles.ts +0 -469
  126. package/src/components/feedback/Progress/Progress.test.simple.tsx +0 -14
  127. package/src/components/feedback/Progress/Progress.test.tsx +0 -312
  128. package/src/components/feedback/Progress/Progress.tsx +0 -488
  129. package/src/components/feedback/Progress/Progress.types.ts +0 -163
  130. package/src/components/feedback/Progress/index.ts +0 -3
  131. package/src/components/feedback/Progress/index.tsx +0 -38
  132. package/src/components/feedback/Progress/utils/animation.ts +0 -193
  133. package/src/components/feedback/Progress/utils/index.ts +0 -26
  134. package/src/components/feedback/Progress/utils/progress-calculator.ts +0 -199
  135. package/src/components/feedback/Result/Result.styles.ts +0 -139
  136. package/src/components/feedback/Result/Result.tsx +0 -221
  137. package/src/components/feedback/Result/Result.types.ts +0 -128
  138. package/src/components/feedback/Result/index.tsx +0 -3
  139. package/src/components/feedback/Toast/Toast.styles.ts +0 -17
  140. package/src/components/feedback/Toast/Toast.test.tsx +0 -10
  141. package/src/components/feedback/Toast/Toast.tsx +0 -384
  142. package/src/components/feedback/Toast/Toast.types.ts +0 -86
  143. package/src/components/feedback/Toast/index.tsx +0 -3
  144. package/src/components/feedback/Tooltip/Tooltip.examples.tsx +0 -435
  145. package/src/components/feedback/Tooltip/Tooltip.styles.ts +0 -340
  146. package/src/components/feedback/Tooltip/Tooltip.test.tsx +0 -446
  147. package/src/components/feedback/Tooltip/Tooltip.tsx +0 -302
  148. package/src/components/feedback/Tooltip/Tooltip.types.ts +0 -166
  149. package/src/components/feedback/Tooltip/index.ts +0 -3
  150. package/src/components/feedback/Tooltip/index.tsx +0 -246
  151. package/src/components/feedback/index.tsx +0 -176
  152. package/src/components/form/Cascader/Cascader.styles.ts +0 -526
  153. package/src/components/form/Cascader/Cascader.test.tsx +0 -77
  154. package/src/components/form/Cascader/Cascader.tsx +0 -581
  155. package/src/components/form/Cascader/Cascader.types.ts +0 -581
  156. package/src/components/form/Cascader/hooks/index.ts +0 -3
  157. package/src/components/form/Cascader/hooks/useCascaderFieldNames.ts +0 -19
  158. package/src/components/form/Cascader/hooks/useCascaderOptions.ts +0 -127
  159. package/src/components/form/Cascader/hooks/useCascaderState.ts +0 -139
  160. package/src/components/form/Cascader/index.ts +0 -25
  161. package/src/components/form/Cascader/utils/formatDisplayValue.ts +0 -19
  162. package/src/components/form/Cascader/utils/index.ts +0 -1
  163. package/src/components/form/Checkbox/Checkbox.styles.ts +0 -607
  164. package/src/components/form/Checkbox/Checkbox.test.tsx +0 -1140
  165. package/src/components/form/Checkbox/Checkbox.tsx +0 -489
  166. package/src/components/form/Checkbox/Checkbox.types.ts +0 -472
  167. package/src/components/form/Checkbox/CheckboxGroup.tsx +0 -444
  168. package/src/components/form/Checkbox/index.tsx +0 -27
  169. package/src/components/form/DatePicker/DatePicker.styles.ts +0 -393
  170. package/src/components/form/DatePicker/DatePicker.test.tsx +0 -407
  171. package/src/components/form/DatePicker/DatePicker.tsx +0 -376
  172. package/src/components/form/DatePicker/DatePicker.types.ts +0 -250
  173. package/src/components/form/DatePicker/index.tsx +0 -15
  174. package/src/components/form/Form/Form.styles.ts +0 -357
  175. package/src/components/form/Form/Form.test.tsx +0 -122
  176. package/src/components/form/Form/Form.tsx +0 -257
  177. package/src/components/form/Form/Form.types.ts +0 -422
  178. package/src/components/form/Form/index.tsx +0 -31
  179. package/src/components/form/Form/useFormLogic.ts +0 -497
  180. package/src/components/form/Input/Input.styles.ts +0 -445
  181. package/src/components/form/Input/Input.test.tsx +0 -494
  182. package/src/components/form/Input/Input.tsx +0 -305
  183. package/src/components/form/Input/Input.types.ts +0 -297
  184. package/src/components/form/Input/index.tsx +0 -26
  185. package/src/components/form/Input/useInputLogic.test.ts +0 -82
  186. package/src/components/form/Input/useInputLogic.ts +0 -260
  187. package/src/components/form/InputNumber/InputNumber.styles.ts +0 -716
  188. package/src/components/form/InputNumber/InputNumber.tsx +0 -402
  189. package/src/components/form/InputNumber/InputNumber.types.ts +0 -336
  190. package/src/components/form/InputNumber/components/InputNumberClearButton.tsx +0 -24
  191. package/src/components/form/InputNumber/components/InputNumberControls.tsx +0 -33
  192. package/src/components/form/InputNumber/components/index.ts +0 -2
  193. package/src/components/form/InputNumber/hooks/index.ts +0 -4
  194. package/src/components/form/InputNumber/hooks/useInputNumberState.ts +0 -313
  195. package/src/components/form/InputNumber/hooks/useInputNumberValidation.ts +0 -148
  196. package/src/components/form/InputNumber/index.ts +0 -25
  197. package/src/components/form/Radio/Radio.styles.ts +0 -451
  198. package/src/components/form/Radio/Radio.test.tsx +0 -547
  199. package/src/components/form/Radio/Radio.tsx +0 -277
  200. package/src/components/form/Radio/Radio.types.ts +0 -414
  201. package/src/components/form/Radio/index.tsx +0 -21
  202. package/src/components/form/Select/Select.styles.ts +0 -518
  203. package/src/components/form/Select/Select.test.tsx +0 -648
  204. package/src/components/form/Select/Select.tsx +0 -474
  205. package/src/components/form/Select/Select.types.ts +0 -429
  206. package/src/components/form/Select/index.tsx +0 -30
  207. package/src/components/form/Slider/Slider.styles.ts +0 -139
  208. package/src/components/form/Slider/Slider.test.tsx +0 -553
  209. package/src/components/form/Slider/Slider.tsx +0 -312
  210. package/src/components/form/Slider/Slider.types.ts +0 -110
  211. package/src/components/form/Slider/index.tsx +0 -3
  212. package/src/components/form/Switch/Switch.styles.ts +0 -534
  213. package/src/components/form/Switch/Switch.test.tsx +0 -345
  214. package/src/components/form/Switch/Switch.tsx +0 -458
  215. package/src/components/form/Switch/Switch.types.ts +0 -386
  216. package/src/components/form/Switch/index.tsx +0 -26
  217. package/src/components/form/Textarea/Textarea.styles.ts +0 -592
  218. package/src/components/form/Textarea/Textarea.test.tsx +0 -1075
  219. package/src/components/form/Textarea/Textarea.tsx +0 -608
  220. package/src/components/form/Textarea/Textarea.types.ts +0 -374
  221. package/src/components/form/Textarea/index.tsx +0 -26
  222. package/src/components/form/TimePicker/TimePicker.styles.ts +0 -434
  223. package/src/components/form/TimePicker/TimePicker.test.tsx +0 -306
  224. package/src/components/form/TimePicker/TimePicker.tsx +0 -250
  225. package/src/components/form/TimePicker/TimePicker.types.ts +0 -385
  226. package/src/components/form/TimePicker/index.ts +0 -21
  227. package/src/components/form/Transfer/Transfer.styles.ts +0 -490
  228. package/src/components/form/Transfer/Transfer.test.tsx +0 -316
  229. package/src/components/form/Transfer/Transfer.tsx +0 -414
  230. package/src/components/form/Transfer/Transfer.types.ts +0 -565
  231. package/src/components/form/Transfer/components/TransferItem.tsx +0 -94
  232. package/src/components/form/Transfer/components/TransferList.tsx +0 -298
  233. package/src/components/form/Transfer/components/TransferOperations.tsx +0 -81
  234. package/src/components/form/Transfer/components/TransferPagination.tsx +0 -139
  235. package/src/components/form/Transfer/components/TransferSearch.tsx +0 -85
  236. package/src/components/form/Transfer/components/index.ts +0 -6
  237. package/src/components/form/Transfer/hooks/index.ts +0 -3
  238. package/src/components/form/Transfer/hooks/useTransferData.ts +0 -202
  239. package/src/components/form/Transfer/hooks/useTransferState.ts +0 -120
  240. package/src/components/form/Transfer/index.ts +0 -27
  241. package/src/components/form/Upload/Upload.styles.ts +0 -145
  242. package/src/components/form/Upload/Upload.test.tsx +0 -10
  243. package/src/components/form/Upload/Upload.tsx +0 -498
  244. package/src/components/form/Upload/Upload.types.ts +0 -200
  245. package/src/components/form/Upload/index.tsx +0 -12
  246. package/src/components/form/index.tsx +0 -152
  247. package/src/components/index.tsx +0 -145
  248. package/src/components/layout/Affix/Affix.styles.ts +0 -42
  249. package/src/components/layout/Affix/Affix.test.tsx +0 -10
  250. package/src/components/layout/Affix/Affix.tsx +0 -83
  251. package/src/components/layout/Affix/Affix.types.ts +0 -29
  252. package/src/components/layout/Affix/index.tsx +0 -3
  253. package/src/components/layout/Col/Col.styles.ts +0 -185
  254. package/src/components/layout/Col/Col.test.tsx +0 -537
  255. package/src/components/layout/Col/Col.tsx +0 -97
  256. package/src/components/layout/Col/Col.types.ts +0 -59
  257. package/src/components/layout/Col/index.tsx +0 -3
  258. package/src/components/layout/Container/Container.styles.ts +0 -163
  259. package/src/components/layout/Container/Container.test.tsx +0 -380
  260. package/src/components/layout/Container/Container.tsx +0 -123
  261. package/src/components/layout/Container/Container.types.ts +0 -63
  262. package/src/components/layout/Container/index.tsx +0 -3
  263. package/src/components/layout/Grid/Grid.styles.ts +0 -183
  264. package/src/components/layout/Grid/Grid.test.tsx +0 -637
  265. package/src/components/layout/Grid/Grid.tsx +0 -123
  266. package/src/components/layout/Grid/Grid.types.ts +0 -78
  267. package/src/components/layout/Grid/index.tsx +0 -3
  268. package/src/components/layout/Layout/Content.tsx +0 -30
  269. package/src/components/layout/Layout/Footer.tsx +0 -30
  270. package/src/components/layout/Layout/Header.tsx +0 -30
  271. package/src/components/layout/Layout/Layout.styles.ts +0 -84
  272. package/src/components/layout/Layout/Layout.test.tsx +0 -10
  273. package/src/components/layout/Layout/Layout.tsx +0 -28
  274. package/src/components/layout/Layout/Layout.types.ts +0 -58
  275. package/src/components/layout/Layout/Sider.tsx +0 -44
  276. package/src/components/layout/Layout/index.tsx +0 -22
  277. package/src/components/layout/Row/Row.styles.ts +0 -159
  278. package/src/components/layout/Row/Row.test.tsx +0 -467
  279. package/src/components/layout/Row/Row.tsx +0 -111
  280. package/src/components/layout/Row/Row.types.ts +0 -60
  281. package/src/components/layout/Row/index.tsx +0 -3
  282. package/src/components/layout/Space/Space.styles.ts +0 -255
  283. package/src/components/layout/Space/Space.test.tsx +0 -682
  284. package/src/components/layout/Space/Space.tsx +0 -203
  285. package/src/components/layout/Space/Space.types.ts +0 -92
  286. package/src/components/layout/Space/index.tsx +0 -12
  287. package/src/components/layout/index.tsx +0 -78
  288. package/src/components/navigation/Menu/Menu.constants.ts +0 -69
  289. package/src/components/navigation/Menu/Menu.stories.tsx +0 -107
  290. package/src/components/navigation/Menu/Menu.styles.ts +0 -767
  291. package/src/components/navigation/Menu/Menu.tsx +0 -352
  292. package/src/components/navigation/Menu/Menu.types.ts +0 -231
  293. package/src/components/navigation/Menu/Menu.utils.ts +0 -187
  294. package/src/components/navigation/Menu/MenuItem.tsx +0 -124
  295. package/src/components/navigation/Menu/SubMenu.tsx +0 -150
  296. package/src/components/navigation/Menu/index.tsx +0 -59
  297. package/src/components/navigation/NavBar/NavBar.styles.ts +0 -129
  298. package/src/components/navigation/NavBar/NavBar.test.tsx +0 -287
  299. package/src/components/navigation/NavBar/NavBar.tsx +0 -228
  300. package/src/components/navigation/NavBar/NavBar.types.ts +0 -54
  301. package/src/components/navigation/NavBar/index.tsx +0 -3
  302. package/src/components/navigation/Pagination/Pagination.styles.ts +0 -187
  303. package/src/components/navigation/Pagination/Pagination.test.tsx +0 -672
  304. package/src/components/navigation/Pagination/Pagination.tsx +0 -395
  305. package/src/components/navigation/Pagination/Pagination.types.ts +0 -87
  306. package/src/components/navigation/Pagination/index.ts +0 -24
  307. package/src/components/navigation/Pagination/index.tsx +0 -9
  308. package/src/components/navigation/Steps/Step.tsx +0 -36
  309. package/src/components/navigation/Steps/Steps.styles.ts +0 -169
  310. package/src/components/navigation/Steps/Steps.test.tsx +0 -14
  311. package/src/components/navigation/Steps/Steps.tsx +0 -112
  312. package/src/components/navigation/Steps/Steps.types.ts +0 -47
  313. package/src/components/navigation/Steps/index.tsx +0 -3
  314. package/src/components/navigation/Tabs/Tabs.styles.ts +0 -199
  315. package/src/components/navigation/Tabs/Tabs.test.tsx +0 -662
  316. package/src/components/navigation/Tabs/Tabs.tsx +0 -253
  317. package/src/components/navigation/Tabs/Tabs.types.ts +0 -115
  318. package/src/components/navigation/Tabs/index.tsx +0 -3
  319. package/src/components/navigation/index.tsx +0 -88
  320. package/src/constants/index.ts +0 -785
  321. package/src/hooks/index.ts +0 -60
  322. package/src/hooks/types.ts +0 -9
  323. package/src/hooks/useAsync.ts +0 -64
  324. package/src/hooks/useClickOutside.ts +0 -52
  325. package/src/hooks/useCounter.ts +0 -87
  326. package/src/hooks/useDebounce.ts +0 -150
  327. package/src/hooks/useDeepCompareEffect.ts +0 -88
  328. package/src/hooks/useEventHandling.ts +0 -444
  329. package/src/hooks/useEventListener.ts +0 -77
  330. package/src/hooks/useLifecycle.ts +0 -399
  331. package/src/hooks/useMediaQuery.ts +0 -75
  332. package/src/hooks/useMutation.ts +0 -233
  333. package/src/hooks/usePerformance.ts +0 -378
  334. package/src/hooks/usePerformanceMonitor.ts +0 -348
  335. package/src/hooks/usePlatform.ts +0 -64
  336. package/src/hooks/usePrevious.ts +0 -25
  337. package/src/hooks/useRequest.test.ts +0 -11
  338. package/src/hooks/useRequest.ts +0 -140
  339. package/src/hooks/useStateManagement.ts +0 -300
  340. package/src/hooks/useStorage.ts +0 -169
  341. package/src/hooks/useStyle.ts +0 -543
  342. package/src/hooks/useTheme.ts +0 -347
  343. package/src/hooks/useToggle.ts +0 -54
  344. package/src/hooks/useVirtualScroll.ts +0 -331
  345. package/src/index.ts +0 -323
  346. package/src/platform/index.ts +0 -1188
  347. package/src/providers/AppProvider.test.tsx +0 -63
  348. package/src/providers/AppProvider.tsx +0 -155
  349. package/src/providers/index.ts +0 -1
  350. package/src/theme/ThemeProvider.tsx +0 -279
  351. package/src/theme/ThemeProvider.types.ts +0 -26
  352. package/src/theme/animations.tsx +0 -660
  353. package/src/theme/defaults.ts +0 -188
  354. package/src/theme/design-system.ts +0 -562
  355. package/src/theme/design-tokens.ts +0 -1122
  356. package/src/theme/generated/dark-theme.scss +0 -120
  357. package/src/theme/generated/tokens.css +0 -441
  358. package/src/theme/generated/tokens.scss +0 -384
  359. package/src/theme/index.ts +0 -99
  360. package/src/theme/responsive.tsx +0 -195
  361. package/src/theme/styles/mixins.scss +0 -612
  362. package/src/theme/styles/variables.scss +0 -295
  363. package/src/theme/styles.ts +0 -403
  364. package/src/theme/tokens/colors.ts +0 -256
  365. package/src/theme/tokens/effects.ts +0 -260
  366. package/src/theme/tokens/index.ts +0 -217
  367. package/src/theme/tokens/spacing.ts +0 -137
  368. package/src/theme/tokens/typography.ts +0 -186
  369. package/src/theme/types.ts +0 -188
  370. package/src/theme/useThemeUtils.ts +0 -313
  371. package/src/theme/utils.ts +0 -501
  372. package/src/theme/variables.ts +0 -602
  373. package/src/types/accessibility.ts +0 -50
  374. package/src/types/button.ts +0 -560
  375. package/src/types/component-props.ts +0 -322
  376. package/src/types/env.d.ts +0 -20
  377. package/src/types/glob.d.ts +0 -4
  378. package/src/types/index.ts +0 -427
  379. package/src/types/modules.d.ts +0 -40
  380. package/src/types/standardized-components.ts +0 -550
  381. package/src/types/taro-adapter.d.ts +0 -174
  382. package/src/types/taro-components.d.ts +0 -73
  383. package/src/types/utils.ts +0 -400
  384. package/src/utils/__tests__/inputValidator.test.ts +0 -338
  385. package/src/utils/__tests__/responsiveUtils.test.ts +0 -311
  386. package/src/utils/__tests__/xssProtection.test.ts +0 -268
  387. package/src/utils/abort-controller.ts +0 -48
  388. package/src/utils/cache.ts +0 -79
  389. package/src/utils/createNamespace.ts +0 -24
  390. package/src/utils/environment.ts +0 -115
  391. package/src/utils/error-handler.ts +0 -88
  392. package/src/utils/errorLogger.ts +0 -193
  393. package/src/utils/formatUtils.ts +0 -412
  394. package/src/utils/http/error-codes.ts +0 -314
  395. package/src/utils/http/http-client.test.ts +0 -63
  396. package/src/utils/http/http-client.ts +0 -161
  397. package/src/utils/http/request-cache.ts +0 -127
  398. package/src/utils/http/request.ts +0 -954
  399. package/src/utils/http/taro-adapter.test.ts +0 -74
  400. package/src/utils/http/taro-adapter.ts +0 -24
  401. package/src/utils/http/types.ts +0 -414
  402. package/src/utils/http/web-adapter.ts +0 -33
  403. package/src/utils/index.ts +0 -112
  404. package/src/utils/inputValidator.ts +0 -264
  405. package/src/utils/performance/performance.ts +0 -839
  406. package/src/utils/responsiveUtils.ts +0 -348
  407. package/src/utils/rtl-support.ts +0 -354
  408. package/src/utils/security/api-security.ts +0 -394
  409. package/src/utils/security/xss-protection.ts +0 -69
  410. package/src/utils/securityHeaders.ts +0 -308
  411. package/src/utils/typeHelpers.ts +0 -16
  412. package/src/utils/types/dataProcessing.ts +0 -544
  413. package/src/utils/types/typeHelpers.ts +0 -197
  414. package/src/utils/xssProtection.ts +0 -468
@@ -1,277 +0,0 @@
1
- import React, { forwardRef, useRef, useState, useEffect, useCallback } from 'react';
2
- import { Radio as TaroRadio, Text, View } from '@tarojs/components';
3
- import type { ITouchEvent } from '@tarojs/components';
4
- import { radioStyles } from './Radio.styles';
5
- import type { RadioProps, RadioRef, RadioStatus, RadioSize, RadioColor } from './Radio.types';
6
-
7
- /** 单选框组件 */
8
- export const RadioComponent = forwardRef<RadioRef, RadioProps>((props, ref) => {
9
- const {
10
- value,
11
- checked: controlledChecked,
12
- size = 'md',
13
- status: propStatus = 'normal',
14
- disabled = false,
15
- readonly = false,
16
- label,
17
- helperText,
18
- errorText,
19
- className,
20
- onChange,
21
- style,
22
- rules,
23
- validateTrigger = 'onChange',
24
- immediate = false,
25
- validator,
26
- animation,
27
- ...restProps
28
- } = props;
29
-
30
- const radioRef = useRef<HTMLInputElement>(null);
31
- const [internalStatus, setInternalStatus] = useState<RadioStatus>(propStatus);
32
- const [internalDisabled, setInternalDisabled] = useState(disabled);
33
- const [internalReadonly, setInternalReadonly] = useState(readonly);
34
- const [validationResult, setValidationResult] = useState<{ valid: boolean; message?: string } | null>(null);
35
-
36
- // 处理受控模式
37
- const checked = controlledChecked !== undefined ? controlledChecked : false;
38
-
39
- // 更新内部状态
40
- useEffect(() => {
41
- setInternalStatus(propStatus);
42
- }, [propStatus]);
43
-
44
- useEffect(() => {
45
- setInternalDisabled(disabled);
46
- }, [disabled]);
47
-
48
- useEffect(() => {
49
- setInternalReadonly(readonly);
50
- }, [readonly]);
51
-
52
- // 立即验证
53
- useEffect(() => {
54
- if (immediate && checked) {
55
- validateRadio(checked);
56
- }
57
- }, [immediate, checked]);
58
-
59
- // 验证单选框
60
- const validateRadio = useCallback(
61
- async (isChecked: boolean): Promise<{ valid: boolean; message?: string }> => {
62
- if (!rules && !validator) {
63
- return { valid: true };
64
- }
65
-
66
- // 验证必填
67
- if (rules?.some((rule) => rule.required && !isChecked)) {
68
- const requiredRule = rules.find((rule) => rule.required);
69
- return { valid: false, message: requiredRule?.message || '此项为必选项' };
70
- }
71
-
72
- // 验证规则
73
- if (rules) {
74
- for (const rule of rules) {
75
- if (rule.validator) {
76
- const result = rule.validator(isChecked);
77
- if (typeof result === 'string') {
78
- return { valid: false, message: result };
79
- }
80
- if (!result) {
81
- return { valid: false, message: rule.message || '验证失败' };
82
- }
83
- }
84
- }
85
- }
86
-
87
- // 自定义验证函数
88
- if (validator) {
89
- const result = validator(isChecked);
90
- if (typeof result === 'string') {
91
- return { valid: false, message: result };
92
- }
93
- if (!result) {
94
- return { valid: false, message: '验证失败' };
95
- }
96
- }
97
-
98
- return { valid: true };
99
- },
100
- [rules, validator],
101
- );
102
-
103
- // 处理变化事件
104
- const handleChange = useCallback(
105
- async (event: ITouchEvent) => {
106
- if (internalDisabled || internalReadonly) return;
107
-
108
- // 验证单选框
109
- if (validateTrigger === 'onChange') {
110
- const result = await validateRadio(true);
111
- setValidationResult(result);
112
- setInternalStatus(result.valid ? 'normal' : 'error');
113
- }
114
-
115
- // 触发变化事件 - Radio should always be selected when clicked
116
- onChange?.(true, event);
117
- },
118
- [internalDisabled, internalReadonly, validateTrigger, validateRadio, onChange],
119
- );
120
-
121
- // 计算最终状态
122
- const finalStatus = internalDisabled ? 'disabled' : validationResult?.valid === false ? 'error' : internalStatus;
123
-
124
- // 暴露给外部的引用方法
125
- React.useImperativeHandle(
126
- ref,
127
- () => ({
128
- element: radioRef.current,
129
- getChecked: () => checked,
130
- setChecked: (newChecked: boolean) => {
131
- // 单选框通常由组控制,这里只是内部状态更新
132
- if (newChecked && !internalDisabled && !internalReadonly) {
133
- onChange?.(true, {} as ITouchEvent);
134
- }
135
- },
136
- toggle: () => {
137
- if (!internalDisabled && !internalReadonly) {
138
- const newChecked = !checked;
139
- onChange?.(newChecked, {} as ITouchEvent);
140
- }
141
- },
142
- setDisabled: (newDisabled: boolean) => {
143
- setInternalDisabled(newDisabled);
144
- },
145
- setReadonly: (newReadonly: boolean) => {
146
- setInternalReadonly(newReadonly);
147
- },
148
- setStatus: (newStatus: RadioStatus) => {
149
- setInternalStatus(newStatus);
150
- },
151
- getSize: () => props.size || 'md',
152
- setSize: (newSize: RadioSize) => {
153
- // Radio size is controlled by parent, this is just for consistency
154
-
155
- newSize;
156
- },
157
- getColor: () => props.color || 'primary',
158
- setColor: (newColor: RadioColor) => {
159
- // Radio color is controlled by parent, this is just for consistency
160
-
161
- newColor;
162
- },
163
- getStatus: () => finalStatus,
164
- validate: async () => {
165
- const result = await validateRadio(checked);
166
- setValidationResult(result);
167
- setInternalStatus(result.valid ? 'normal' : 'error');
168
- return result;
169
- },
170
- reset: () => {
171
- setValidationResult(null);
172
- setInternalStatus('normal');
173
- },
174
- getData: () => props.data,
175
- setData: (newData: Record<string, any>) => {
176
- // Radio data is controlled by parent, this is just for consistency
177
-
178
- newData;
179
- },
180
- focus: () => {
181
- radioRef.current?.focus();
182
- },
183
- blur: () => {
184
- radioRef.current?.blur();
185
- },
186
- shake: () => {
187
- // Shake animation implementation would go here
188
- },
189
- pulse: () => {
190
- // Pulse animation implementation would go here
191
- },
192
- }),
193
- [checked, internalDisabled, internalReadonly, validateRadio, onChange, finalStatus],
194
- );
195
-
196
- // 生成单选框样式
197
- const radioStyle = radioStyles['getStyle']({
198
- size,
199
- status: finalStatus,
200
- disabled: internalDisabled,
201
- readonly: internalReadonly,
202
- checked,
203
- style,
204
- });
205
-
206
- // 生成单选框类名
207
- const radioClassName = radioStyles['getClassName']({
208
- size,
209
- status: finalStatus,
210
- disabled: internalDisabled,
211
- readonly: internalReadonly,
212
- checked,
213
- className,
214
- });
215
-
216
- return (
217
- <View style={radioStyles['getContainerStyle']({ style: props.containerStyle })}>
218
- <View style={radioStyles['getWrapperStyle']({ style: props.wrapperStyle })}>
219
- {/* 单选框 */}
220
- <TaroRadio
221
- className={radioClassName}
222
- style={radioStyle}
223
- value={String(value)}
224
- checked={checked}
225
- disabled={internalDisabled}
226
- onChange={(e) => {
227
- // Radio is always checked when clicked
228
- const checked = true;
229
- // Set internal state for controlled component
230
- if (props.onChange) {
231
- props.onChange(checked, e as ITouchEvent);
232
- }
233
- handleChange(e as ITouchEvent);
234
- }}
235
- {...(restProps as any)}
236
- />
237
-
238
- {/* 标签 */}
239
- {label && (
240
- <Text
241
- style={radioStyles['getLabelStyle']({
242
- size,
243
- disabled: internalDisabled,
244
- style: props.labelStyle,
245
- })}
246
- onClick={handleChange}
247
- >
248
- {label}
249
- </Text>
250
- )}
251
- </View>
252
-
253
- {/* 辅助文本 */}
254
- {helperText && finalStatus === 'normal' && (
255
- <Text style={radioStyles['getHelperTextStyle']({ size, style: props.helperTextStyle })}>{helperText}</Text>
256
- )}
257
-
258
- {/* 错误文本 */}
259
- {errorText && finalStatus === 'error' && (
260
- <Text style={radioStyles['getErrorTextStyle']({ size, style: props.errorTextStyle })}>{errorText}</Text>
261
- )}
262
-
263
- {/* 验证结果文本 */}
264
- {validationResult?.message && finalStatus === 'error' && (
265
- <Text style={radioStyles['getErrorTextStyle']({ size, style: props.errorTextStyle })}>
266
- {validationResult.message}
267
- </Text>
268
- )}
269
- </View>
270
- );
271
- });
272
-
273
- /** 单选框组件显示名称 */
274
- RadioComponent.displayName = 'Radio';
275
-
276
- /** 导出单选框组件 */
277
- export const Radio = RadioComponent;
@@ -1,414 +0,0 @@
1
- import type { ReactNode, InputHTMLAttributes } from 'react';
2
- import type { ITouchEvent } from '@tarojs/components';
3
-
4
- /** 单选框尺寸 */
5
- export type RadioSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
6
-
7
- /** 单选框状态 */
8
- export type RadioStatus = 'normal' | 'error' | 'warning' | 'success' | 'disabled';
9
-
10
- /** 单选框变体 */
11
- export type RadioVariant = 'default' | 'filled' | 'outlined';
12
-
13
- /** 单选框颜色主题 */
14
- export type RadioColor = 'primary' | 'secondary' | 'success' | 'warning' | 'error' | 'info';
15
-
16
- /** 单选框原生属性类型 */
17
- export type RadioNativeProps = InputHTMLAttributes<HTMLInputElement>;
18
-
19
- /** 单选框组件属性接口 */
20
- export interface RadioProps
21
- extends Omit<
22
- RadioNativeProps,
23
- 'size' | 'onChange' | 'checked' | 'onClick' | 'dangerouslySetInnerHTML' | 'onTouchStart'
24
- > {
25
- /** 单选框值 */
26
- value: string | number;
27
- /** 是否选中 */
28
- checked?: boolean;
29
- /** 默认选中状态(非受控模式) */
30
- defaultChecked?: boolean;
31
- /** 单选框尺寸 */
32
- size?: RadioSize;
33
- /** 单选框状态 */
34
- status?: RadioStatus;
35
- /** 单选框变体 */
36
- variant?: RadioVariant;
37
- /** 单选框颜色主题 */
38
- color?: RadioColor;
39
- /** 是否禁用 */
40
- disabled?: boolean;
41
- /** 是否只读 */
42
- readonly?: boolean;
43
- /** 标签文本 */
44
- label?: ReactNode;
45
- /** 标签位置 */
46
- labelPosition?: 'left' | 'right';
47
- /** 辅助文本 */
48
- helperText?: ReactNode;
49
- /** 错误文本 */
50
- errorText?: ReactNode;
51
- /** 是否显示边框 */
52
- bordered?: boolean;
53
- /** 是否圆角 */
54
- rounded?: boolean;
55
- /** 自定义图标 */
56
- icon?: ReactNode;
57
- /** 选中时的图标 */
58
- checkedIcon?: ReactNode;
59
- /** 未选中时的图标 */
60
- uncheckedIcon?: ReactNode;
61
- /** 自定义样式类名 */
62
- className?: string;
63
- /** 变化事件处理函数 */
64
- onChange?: (_checked: boolean, event: ITouchEvent) => void;
65
- /** 点击事件处理函数 */
66
- onClick?: (_event: ITouchEvent) => void;
67
- /** 自定义样式 */
68
- style?: React.CSSProperties;
69
- /** 是否启用无障碍访问 */
70
- accessible?: boolean;
71
- /** 无障碍标签 */
72
- accessibilityLabel?: string;
73
- /** 无障碍角色 */
74
- accessibilityRole?: string;
75
- /** 无障碍状态 */
76
- accessibilityState?: {
77
- disabled?: boolean;
78
- readonly?: boolean;
79
- checked?: boolean;
80
- busy?: boolean;
81
- expanded?: boolean;
82
- };
83
- /** 表单验证规则 */
84
- rules?: Array<{
85
- required?: boolean;
86
- message?: string;
87
- validator?: (_checked: boolean) => boolean | string | Promise<boolean | string>;
88
- }>;
89
- /** 验证触发时机 */
90
- validateTrigger?: 'onChange' | 'onBlur' | 'onSubmit';
91
- /** 是否立即验证 */
92
- immediate?: boolean;
93
- /** 自定义验证函数 */
94
- validator?: (_checked: boolean) => boolean | string | Promise<boolean | string>;
95
- /** 动画效果 */
96
- animation?: boolean;
97
- /** 动画时长 */
98
- animationDuration?: number;
99
- /** 涟漪效果 */
100
- ripple?: boolean;
101
- /** 涟漪颜色 */
102
- rippleColor?: string;
103
- /** 自动聚焦 */
104
- autoFocus?: boolean;
105
- /** Tab 键顺序 */
106
- tabIndex?: number;
107
- /** 数据属性 */
108
- data?: Record<string, any>;
109
- /** 容器样式 */
110
- containerStyle?: React.CSSProperties;
111
- /** 包装器样式 */
112
- wrapperStyle?: React.CSSProperties;
113
- /** 标签样式 */
114
- labelStyle?: React.CSSProperties;
115
- /** 错误文本样式 */
116
- errorTextStyle?: React.CSSProperties;
117
- /** 辅助文本样式 */
118
- helperTextStyle?: React.CSSProperties;
119
- }
120
-
121
- /** 单选框组件引用类型 */
122
- export type RadioRef = {
123
- /** 单选框元素 */
124
- element: HTMLInputElement | null;
125
- /** 获取选中状态 */
126
- getChecked: () => boolean;
127
- /** 设置选中状态 */
128
- setChecked: (_checked: boolean) => void;
129
- /** 切换选中状态 */
130
- toggle: () => void;
131
- /** 设置禁用状态 */
132
- setDisabled: (_disabled: boolean) => void;
133
- /** 设置只读状态 */
134
- setReadonly: (_readonly: boolean) => void;
135
- /** 设置单选框状态 */
136
- setStatus: (_status: RadioStatus) => void;
137
- /** 获取单选框状态 */
138
- getStatus: () => RadioStatus;
139
- /** 设置单选框尺寸 */
140
- setSize: (_size: RadioSize) => void;
141
- /** 设置单选框颜色 */
142
- setColor: (_color: RadioColor) => void;
143
- /** 验证单选框 */
144
- validate: () => Promise<{ valid: boolean; message?: string }>;
145
- /** 重置单选框 */
146
- reset: () => void;
147
- /** 获取单选框数据 */
148
- getData: () => Record<string, any> | undefined;
149
- /** 设置单选框数据 */
150
- setData: (_data: Record<string, any>) => void;
151
- /** 聚焦单选框 */
152
- focus: () => void;
153
- /** 失焦单选框 */
154
- blur: () => void;
155
- /** 震动效果 - 用于错误提示 */
156
- shake: () => void;
157
- /** 脉冲效果 - 用于吸引用户注意 */
158
- pulse: () => void;
159
- };
160
-
161
- /** 单选框组属性接口 */
162
- export interface RadioGroupProps {
163
- /** 单选框组内容 */
164
- children: ReactNode;
165
- /** 单选框组值 */
166
- value?: string | number;
167
- /** 默认值(非受控模式) */
168
- defaultValue?: string | number;
169
- /** 单选框组尺寸 */
170
- size?: RadioSize;
171
- /** 单选框组状态 */
172
- status?: RadioStatus;
173
- /** 单选框组变体 */
174
- variant?: RadioVariant;
175
- /** 单选框组颜色主题 */
176
- color?: RadioColor;
177
- /** 是否禁用 */
178
- disabled?: boolean;
179
- /** 是否只读 */
180
- readonly?: boolean;
181
- /** 布局方向 */
182
- direction?: 'horizontal' | 'vertical';
183
- /** 对齐方式 */
184
- align?: 'start' | 'center' | 'end';
185
- /** 间距 */
186
- spacing?: number | string;
187
- /** 选项列表 */
188
- options?: Array<{
189
- label: ReactNode;
190
- value: string | number;
191
- disabled?: boolean;
192
- description?: ReactNode;
193
- icon?: ReactNode;
194
- color?: RadioColor;
195
- data?: Record<string, any>;
196
- }>;
197
- /** 变化事件处理函数 */
198
- onChange?: (_selectedValue: string | number) => void;
199
- /** 自定义样式类名 */
200
- className?: string;
201
- /** 自定义样式 */
202
- style?: React.CSSProperties;
203
- /** 是否必填 */
204
- required?: boolean;
205
- /** 是否紧凑布局 */
206
- compact?: boolean;
207
- /** 是否块级显示 */
208
- block?: boolean;
209
- /** 分组标题 */
210
- groupTitle?: ReactNode;
211
- /** 分组描述 */
212
- groupDescription?: ReactNode;
213
- /** 无障碍标签 */
214
- accessibilityLabel?: string;
215
- /** 无障碍角色 */
216
- accessibilityRole?: string;
217
- /** 无障碍状态 */
218
- accessibilityState?: {
219
- disabled?: boolean;
220
- readonly?: boolean;
221
- busy?: boolean;
222
- expanded?: boolean;
223
- };
224
- }
225
-
226
- /** 单选框组组件引用类型 */
227
- export type RadioGroupRef = {
228
- /** 获取选中值 */
229
- getValue: () => string | number | undefined;
230
- /** 设置选中值 */
231
- setValue: (_value: string | number) => void;
232
- /** 清除选择 */
233
- clear: () => void;
234
- /** 设置禁用状态 */
235
- setDisabled: (_disabled: boolean) => void;
236
- /** 设置只读状态 */
237
- setReadonly: (_readonly: boolean) => void;
238
- /** 设置组状态 */
239
- setStatus: (_status: RadioStatus) => void;
240
- /** 验证单选框组 */
241
- validate: () => Promise<{ valid: boolean; message?: string }>;
242
- /** 重置单选框组 */
243
- reset: () => void;
244
- /** 获取选中的选项数据 */
245
- getSelectedOption: () => {
246
- label: ReactNode;
247
- value: string | number;
248
- disabled?: boolean;
249
- description?: ReactNode;
250
- icon?: ReactNode;
251
- color?: RadioColor;
252
- data?: Record<string, any>;
253
- } | null;
254
- /** 根据值获取选项 */
255
- getOptionByValue: (_value: string | number) => any;
256
- /** 根据值设置选项状态 */
257
- setOptionDisabled: (_value: string | number, disabled: boolean) => void;
258
- /** 批量设置选项状态 */
259
- setOptionsDisabled: (_values: Array<string | number>, disabled: boolean) => void;
260
- /** 聚焦组 */
261
- focus: () => void;
262
- /** 失焦组 */
263
- blur: () => void;
264
- };
265
-
266
- /** 单选框样式配置接口 */
267
- export interface RadioStyleConfig {
268
- /** 单选框基础样式 */
269
- base: React.CSSProperties;
270
- /** 单选框尺寸样式 */
271
- sizes: Record<RadioSize, React.CSSProperties>;
272
- /** 单选框状态样式 */
273
- statuses: Record<RadioStatus, React.CSSProperties>;
274
- /** 单选框变体样式 */
275
- variants: Record<RadioVariant, React.CSSProperties>;
276
- /** 单选框颜色样式 */
277
- colors: Record<RadioColor, React.CSSProperties>;
278
- /** 单选框图标样式 */
279
- icon: React.CSSProperties;
280
- /** 单选框标签样式 */
281
- label: React.CSSProperties;
282
- /** 单选框辅助文本样式 */
283
- helperText: React.CSSProperties;
284
- /** 单选框错误文本样式 */
285
- errorText: React.CSSProperties;
286
- /** 单选框组样式 */
287
- group: React.CSSProperties;
288
- /** 单选框组项目样式 */
289
- groupItem: React.CSSProperties;
290
- /** 单选框涟漪效果样式 */
291
- ripple: React.CSSProperties;
292
- /** 单选框动画样式 */
293
- animation: React.CSSProperties;
294
- }
295
-
296
- /** 单选框上下文接口 */
297
- export interface RadioContext {
298
- /** 单选框组值 */
299
- value: string | number | undefined;
300
- /** 单选框组尺寸 */
301
- size: RadioSize;
302
- /** 单选框组状态 */
303
- status: RadioStatus;
304
- /** 单选框组变体 */
305
- variant: RadioVariant;
306
- /** 单选框组颜色主题 */
307
- color: RadioColor;
308
- /** 是否禁用 */
309
- disabled: boolean;
310
- /** 是否只读 */
311
- readonly: boolean;
312
- /** 布局方向 */
313
- direction: 'horizontal' | 'vertical';
314
- /** 变化事件处理函数 */
315
- onChange: (_checked: boolean, value: string | number) => void;
316
- /** 单选框样式配置 */
317
- styleConfig: RadioStyleConfig;
318
- }
319
-
320
- /** 单选框验证结果接口 */
321
- export interface RadioValidationResult {
322
- /** 是否验证通过 */
323
- valid: boolean;
324
- /** 错误消息 */
325
- message?: string;
326
- /** 验证规则索引 */
327
- ruleIndex?: number;
328
- /** 验证时间戳 */
329
- timestamp: number;
330
- }
331
-
332
- /** 单选框事件接口 */
333
- export interface RadioEvents {
334
- /** 值变化事件 */
335
- onChange: (_checked: boolean, event: ITouchEvent) => void;
336
- /** 点击事件 */
337
- onClick: (_event: ITouchEvent) => void;
338
- /** 聚焦事件 */
339
- onFocus: (_event: ITouchEvent) => void;
340
- /** 失焦事件 */
341
- onBlur: (_event: ITouchEvent) => void;
342
- }
343
-
344
- /** 单选框组事件接口 */
345
- export interface RadioGroupEvents {
346
- /** 值变化事件 */
347
- onChange: (_selectedValue: string | number) => void;
348
- }
349
-
350
- /** 单选框工具函数接口 */
351
- export interface RadioUtils {
352
- /** 格式化单选框值 */
353
- formatValue: (_value: string | number | boolean) => string | number;
354
- /** 验证单选框值 */
355
- validateValue: (_checked: boolean, rules: RadioProps['rules']) => { valid: boolean; message?: string };
356
- /** 获取单选框尺寸映射 */
357
- getSizeMap: () => Record<RadioSize, { fontSize: number; size: number; borderRadius: number; padding: number }>;
358
- /** 获取单选框状态映射 */
359
- getStatusMap: () => Record<RadioStatus, { color: string; backgroundColor: string; borderColor: string }>;
360
- /** 获取单选框颜色映射 */
361
- getColorMap: () => Record<RadioColor, { primary: string; secondary: string; background: string }>;
362
- /** 生成单选框ID */
363
- generateId: (prefix?: string) => string;
364
- /** 生成涟漪效果 */
365
- createRipple: (_event: ITouchEvent, element: HTMLElement, color?: string) => void;
366
- }
367
-
368
- /** 单选框选项接口 */
369
- export interface RadioOption {
370
- /** 选项值 */
371
- value: string | number;
372
- /** 选项标签 */
373
- label: ReactNode;
374
- /** 选项描述 */
375
- description?: ReactNode;
376
- /** 选项是否禁用 */
377
- disabled?: boolean;
378
- /** 选项图标 */
379
- icon?: ReactNode;
380
- /** 选项颜色 */
381
- color?: RadioColor;
382
- /** 选项自定义样式 */
383
- style?: React.CSSProperties;
384
- /** 选项自定义类名 */
385
- className?: string;
386
- /** 选项数据 */
387
- data?: Record<string, any>;
388
- }
389
-
390
- /** 单选框配置接口 */
391
- export interface RadioConfig {
392
- /** 默认尺寸 */
393
- defaultSize: RadioSize;
394
- /** 默认状态 */
395
- defaultStatus: RadioStatus;
396
- /** 默认变体 */
397
- defaultVariant: RadioVariant;
398
- /** 默认颜色 */
399
- defaultColor: RadioColor;
400
- /** 默认标签位置 */
401
- defaultLabelPosition: 'left' | 'right';
402
- /** 默认布局方向 */
403
- defaultDirection: 'horizontal' | 'vertical';
404
- /** 默认动画时长 */
405
- defaultAnimationDuration: number;
406
- /** 默认涟漪颜色 */
407
- defaultRippleColor: string;
408
- /** 是否启用动画 */
409
- enableAnimation: boolean;
410
- /** 是否启用涟漪效果 */
411
- enableRipple: boolean;
412
- /** 是否启用无障碍访问 */
413
- enableAccessibility: boolean;
414
- }
@@ -1,21 +0,0 @@
1
- /**
2
- * Taro-Uno Radio Component
3
- * 单选框组件,支持单选功能
4
- */
5
-
6
- import { Radio as RadioComponent } from './Radio';
7
- export type {
8
- RadioProps,
9
- RadioRef,
10
- RadioSize,
11
- RadioStatus,
12
- RadioGroupProps,
13
- RadioGroupRef,
14
- RadioStyleConfig,
15
- } from './Radio.types';
16
- export { radioStyles } from './Radio.styles';
17
-
18
- export const Radio = RadioComponent;
19
-
20
- // 默认导出
21
- export default Radio;