taro-uno-ui 0.9.0 → 1.0.1

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 (312) hide show
  1. package/README.md +21 -0
  2. package/dist/js/{index-DffLRSro.js → index-CDFsvu80.js} +15369 -10741
  3. package/dist/js/index-CDFsvu80.js.map +1 -0
  4. package/dist/js/index-DFdcksbe.js.map +1 -1
  5. package/dist/js/index-DXRIkWX1.js.map +1 -1
  6. package/dist/js/{index-6NJ3A1Dn.js → index-JffnTUrv.js} +15430 -10801
  7. package/dist/js/index-JffnTUrv.js.map +1 -0
  8. package/dist/utils/http/request.d.ts +280 -0
  9. package/package.json +14 -10
  10. package/src/components/basic/Button/Button.tsx +53 -13
  11. package/src/components/basic/Button/Button.types.ts +45 -9
  12. package/src/components/basic/Divider/Divider.tsx +60 -29
  13. package/src/components/basic/Icon/Icon.data.ts +474 -0
  14. package/src/components/basic/Icon/Icon.test.tsx +2 -2
  15. package/src/components/basic/Icon/Icon.tsx +48 -35
  16. package/src/components/basic/Icon/IconManager.ts +229 -0
  17. package/src/components/basic/Text/Text.styles.ts +3 -3
  18. package/src/components/basic/Text/Text.types.ts +14 -4
  19. package/src/components/basic/Typography/Typography.styles.ts +10 -9
  20. package/src/components/basic/Typography/Typography.tsx +15 -13
  21. package/src/components/basic/Typography/Typography.types.ts +41 -41
  22. package/src/components/basic/Typography/index.tsx +1 -1
  23. package/src/components/basic/Video/Video.styles.ts +777 -0
  24. package/src/components/basic/Video/Video.test.tsx +490 -0
  25. package/src/components/basic/Video/Video.tsx +1468 -0
  26. package/src/components/basic/Video/Video.types.ts +500 -0
  27. package/src/components/basic/Video/index.tsx +26 -0
  28. package/src/components/basic/index.tsx +13 -15
  29. package/src/components/common/ErrorBoundary.tsx +1 -1
  30. package/src/components/common/LazyComponent.tsx +9 -8
  31. package/src/components/common/SecurityProvider.tsx +2 -14
  32. package/src/components/common/ThemeProvider.tsx +43 -56
  33. package/src/components/common/VirtualList.tsx +187 -205
  34. package/src/components/common/index.tsx +25 -0
  35. package/src/components/display/Avatar/Avatar.styles.ts +1 -1
  36. package/src/components/display/Avatar/Avatar.tsx +6 -19
  37. package/src/components/display/Avatar/Avatar.types.ts +1 -1
  38. package/src/components/display/Avatar/index.ts +1 -1
  39. package/src/components/display/Badge/Badge.tsx +3 -16
  40. package/src/components/display/Badge/Badge.types.ts +1 -1
  41. package/src/components/display/Badge/index.ts +1 -1
  42. package/src/components/display/Calendar/Calendar.styles.ts +36 -36
  43. package/src/components/display/Calendar/Calendar.test.tsx +27 -15
  44. package/src/components/display/Calendar/Calendar.tsx +56 -35
  45. package/src/components/display/Calendar/Calendar.types.ts +1 -1
  46. package/src/components/display/Calendar/index.ts +1 -1
  47. package/src/components/display/Card/Card.styles.ts +2 -2
  48. package/src/components/display/Card/Card.test.tsx +6 -4
  49. package/src/components/display/Card/Card.tsx +1 -1
  50. package/src/components/display/Card/Card.types.ts +4 -4
  51. package/src/components/display/Card/index.ts +1 -1
  52. package/src/components/display/Carousel/Carousel.styles.ts +31 -31
  53. package/src/components/display/Carousel/Carousel.tsx +34 -39
  54. package/src/components/display/Carousel/Carousel.types.ts +1 -1
  55. package/src/components/display/Carousel/index.ts +1 -1
  56. package/src/components/display/List/List.styles.ts +3 -3
  57. package/src/components/display/List/List.tsx +0 -1
  58. package/src/components/display/List/index.ts +1 -1
  59. package/src/components/display/Rate/Rate.styles.ts +5 -17
  60. package/src/components/display/Rate/Rate.tsx +6 -14
  61. package/src/components/display/Rate/Rate.types.ts +4 -3
  62. package/src/components/display/Rate/index.ts +3 -11
  63. package/src/components/display/Table/Table.test.tsx +2 -0
  64. package/src/components/display/Table/Table.tsx +3 -7
  65. package/src/components/display/Table/Table.types.ts +3 -2
  66. package/src/components/display/Tag/Tag.styles.ts +31 -31
  67. package/src/components/display/Tag/Tag.tsx +9 -26
  68. package/src/components/display/Tag/Tag.types.ts +1 -1
  69. package/src/components/display/Tag/index.ts +1 -1
  70. package/src/components/display/Timeline/Timeline.styles.ts +32 -32
  71. package/src/components/display/Timeline/Timeline.tsx +23 -42
  72. package/src/components/display/Timeline/Timeline.types.ts +1 -1
  73. package/src/components/display/Timeline/index.ts +1 -1
  74. package/src/components/display/index.tsx +33 -29
  75. package/src/components/feedback/Loading/Loading.tsx +6 -1
  76. package/src/components/feedback/Loading/index.ts +2 -5
  77. package/src/components/feedback/Message/Message.styles.ts +3 -3
  78. package/src/components/feedback/Message/index.ts +2 -5
  79. package/src/components/feedback/Modal/Modal.styles.ts +1 -1
  80. package/src/components/feedback/Modal/Modal.tsx +9 -31
  81. package/src/components/feedback/Modal/Modal.types.ts +12 -2
  82. package/src/components/feedback/Notification/Notification.styles.ts +49 -39
  83. package/src/components/feedback/Notification/Notification.test.tsx +1 -1
  84. package/src/components/feedback/Notification/Notification.tsx +97 -120
  85. package/src/components/feedback/Notification/Notification.types.ts +11 -8
  86. package/src/components/feedback/Notification/NotificationManager.tsx +135 -106
  87. package/src/components/feedback/Notification/index.ts +10 -3
  88. package/src/components/feedback/Notification/index.tsx +16 -26
  89. package/src/components/feedback/Progress/Progress.styles.ts +23 -14
  90. package/src/components/feedback/Progress/Progress.tsx +93 -113
  91. package/src/components/feedback/Progress/Progress.types.ts +1 -1
  92. package/src/components/feedback/Progress/index.ts +1 -1
  93. package/src/components/feedback/Progress/utils/animation.ts +12 -23
  94. package/src/components/feedback/Progress/utils/index.ts +2 -2
  95. package/src/components/feedback/Progress/utils/progress-calculator.ts +14 -32
  96. package/src/components/feedback/Result/Result.styles.ts +29 -29
  97. package/src/components/feedback/Result/Result.tsx +8 -20
  98. package/src/components/feedback/Result/Result.types.ts +7 -7
  99. package/src/components/feedback/Result/index.tsx +1 -1
  100. package/src/components/feedback/Toast/Toast.styles.ts +1 -1
  101. package/src/components/feedback/Toast/Toast.tsx +25 -13
  102. package/src/components/feedback/Tooltip/Tooltip.examples.tsx +21 -44
  103. package/src/components/feedback/Tooltip/Tooltip.styles.ts +16 -22
  104. package/src/components/feedback/Tooltip/Tooltip.test.tsx +1 -1
  105. package/src/components/feedback/Tooltip/Tooltip.tsx +65 -46
  106. package/src/components/feedback/Tooltip/Tooltip.types.ts +14 -20
  107. package/src/components/feedback/Tooltip/index.ts +1 -1
  108. package/src/components/feedback/Tooltip/index.tsx +12 -24
  109. package/src/components/feedback/index.tsx +54 -42
  110. package/src/components/form/Cascader/Cascader.styles.ts +2 -2
  111. package/src/components/form/Cascader/Cascader.tsx +84 -88
  112. package/src/components/form/Cascader/Cascader.types.ts +49 -50
  113. package/src/components/form/Cascader/hooks/useCascaderFieldNames.ts +11 -8
  114. package/src/components/form/Cascader/hooks/useCascaderOptions.ts +73 -55
  115. package/src/components/form/Cascader/hooks/useCascaderState.ts +31 -25
  116. package/src/components/form/Cascader/index.ts +1 -1
  117. package/src/components/form/Cascader/utils/formatDisplayValue.ts +4 -4
  118. package/src/components/form/Checkbox/Checkbox.styles.ts +83 -84
  119. package/src/components/form/Checkbox/Checkbox.tsx +2 -9
  120. package/src/components/form/Checkbox/CheckboxGroup.tsx +7 -7
  121. package/src/components/form/DatePicker/DatePicker.test.tsx +1 -1
  122. package/src/components/form/DatePicker/DatePicker.tsx +91 -75
  123. package/src/components/form/DatePicker/DatePicker.types.ts +4 -1
  124. package/src/components/form/Form/Form.tsx +66 -504
  125. package/src/components/form/Form/Form.types.ts +16 -1
  126. package/src/components/form/Form/useFormLogic.ts +497 -0
  127. package/src/components/form/Input/Input.styles.ts +8 -1
  128. package/src/components/form/Input/Input.tsx +55 -291
  129. package/src/components/form/Input/Input.types.ts +13 -1
  130. package/src/components/form/Input/useInputLogic.test.ts +82 -0
  131. package/src/components/form/Input/useInputLogic.ts +260 -0
  132. package/src/components/form/InputNumber/InputNumber.styles.ts +76 -25
  133. package/src/components/form/InputNumber/InputNumber.tsx +53 -21
  134. package/src/components/form/InputNumber/InputNumber.types.ts +21 -3
  135. package/src/components/form/InputNumber/components/InputNumberClearButton.tsx +3 -11
  136. package/src/components/form/InputNumber/components/InputNumberControls.tsx +3 -12
  137. package/src/components/form/InputNumber/hooks/index.ts +1 -1
  138. package/src/components/form/InputNumber/hooks/useInputNumberState.ts +7 -9
  139. package/src/components/form/InputNumber/hooks/useInputNumberValidation.ts +18 -17
  140. package/src/components/form/InputNumber/index.ts +7 -7
  141. package/src/components/form/Radio/Radio.styles.ts +1 -8
  142. package/src/components/form/Radio/Radio.tsx +3 -9
  143. package/src/components/form/Radio/Radio.types.ts +5 -1
  144. package/src/components/form/Select/Select.styles.ts +5 -1
  145. package/src/components/form/Select/Select.tsx +15 -15
  146. package/src/components/form/Select/Select.types.ts +2 -1
  147. package/src/components/form/Slider/Slider.styles.ts +13 -13
  148. package/src/components/form/Slider/Slider.tsx +19 -33
  149. package/src/components/form/Slider/Slider.types.ts +14 -12
  150. package/src/components/form/Slider/index.tsx +2 -9
  151. package/src/components/form/Switch/Switch.styles.ts +1 -7
  152. package/src/components/form/Switch/Switch.tsx +7 -13
  153. package/src/components/form/Textarea/Textarea.styles.ts +4 -4
  154. package/src/components/form/Textarea/Textarea.tsx +7 -1
  155. package/src/components/form/Textarea/Textarea.types.ts +4 -1
  156. package/src/components/form/TimePicker/TimePicker.styles.ts +8 -12
  157. package/src/components/form/TimePicker/TimePicker.tsx +122 -100
  158. package/src/components/form/TimePicker/TimePicker.types.ts +2 -2
  159. package/src/components/form/TimePicker/index.ts +1 -1
  160. package/src/components/form/Transfer/Transfer.styles.ts +3 -15
  161. package/src/components/form/Transfer/Transfer.tsx +146 -134
  162. package/src/components/form/Transfer/Transfer.types.ts +34 -26
  163. package/src/components/form/Transfer/components/TransferItem.tsx +55 -62
  164. package/src/components/form/Transfer/components/TransferList.tsx +212 -199
  165. package/src/components/form/Transfer/components/TransferOperations.tsx +52 -55
  166. package/src/components/form/Transfer/components/TransferPagination.tsx +115 -111
  167. package/src/components/form/Transfer/components/TransferSearch.tsx +52 -55
  168. package/src/components/form/Transfer/hooks/useTransferData.ts +91 -81
  169. package/src/components/form/Transfer/hooks/useTransferState.ts +22 -16
  170. package/src/components/form/Transfer/index.ts +2 -8
  171. package/src/components/form/Upload/Upload.styles.ts +21 -21
  172. package/src/components/form/Upload/Upload.tsx +189 -142
  173. package/src/components/form/Upload/Upload.types.ts +31 -31
  174. package/src/components/form/Upload/index.tsx +1 -1
  175. package/src/components/form/index.tsx +60 -29
  176. package/src/components/index.tsx +0 -1
  177. package/src/components/layout/Affix/Affix.styles.ts +16 -11
  178. package/src/components/layout/Affix/Affix.tsx +67 -75
  179. package/src/components/layout/Affix/Affix.types.ts +18 -18
  180. package/src/components/layout/Affix/index.tsx +1 -1
  181. package/src/components/layout/Col/Col.styles.ts +17 -17
  182. package/src/components/layout/Col/Col.test.tsx +7 -5
  183. package/src/components/layout/Col/Col.tsx +3 -21
  184. package/src/components/layout/Col/Col.types.ts +1 -1
  185. package/src/components/layout/Container/Container.styles.ts +3 -1
  186. package/src/components/layout/Container/Container.tsx +2 -11
  187. package/src/components/layout/Grid/Grid.tsx +3 -53
  188. package/src/components/layout/Layout/Content.tsx +24 -32
  189. package/src/components/layout/Layout/Footer.tsx +24 -32
  190. package/src/components/layout/Layout/Header.tsx +24 -32
  191. package/src/components/layout/Layout/Layout.styles.ts +17 -17
  192. package/src/components/layout/Layout/Layout.tsx +14 -25
  193. package/src/components/layout/Layout/Layout.types.ts +29 -29
  194. package/src/components/layout/Layout/Sider.tsx +44 -56
  195. package/src/components/layout/Layout/index.tsx +16 -2
  196. package/src/components/layout/Row/Row.tsx +15 -43
  197. package/src/components/layout/Space/Space.tsx +3 -11
  198. package/src/components/layout/Space/Space.types.ts +1 -1
  199. package/src/components/layout/index.tsx +29 -19
  200. package/src/components/navigation/Menu/Menu.constants.ts +69 -0
  201. package/src/components/navigation/Menu/Menu.stories.tsx +107 -0
  202. package/src/components/navigation/Menu/Menu.styles.ts +25 -37
  203. package/src/components/navigation/Menu/Menu.tsx +8 -11
  204. package/src/components/navigation/Menu/Menu.types.ts +2 -2
  205. package/src/components/navigation/Menu/Menu.utils.ts +17 -17
  206. package/src/components/navigation/Menu/MenuItem.tsx +9 -11
  207. package/src/components/navigation/Menu/SubMenu.tsx +8 -6
  208. package/src/components/navigation/Menu/index.tsx +4 -69
  209. package/src/components/navigation/NavBar/NavBar.styles.ts +1 -1
  210. package/src/components/navigation/NavBar/NavBar.tsx +7 -10
  211. package/src/components/navigation/NavBar/NavBar.types.ts +3 -3
  212. package/src/components/navigation/NavBar/index.tsx +1 -1
  213. package/src/components/navigation/Pagination/Pagination.test.tsx +2 -3
  214. package/src/components/navigation/Pagination/Pagination.tsx +3 -3
  215. package/src/components/navigation/Pagination/Pagination.types.ts +3 -2
  216. package/src/components/navigation/Pagination/index.ts +9 -3
  217. package/src/components/navigation/Steps/Step.tsx +24 -44
  218. package/src/components/navigation/Steps/Steps.styles.ts +28 -13
  219. package/src/components/navigation/Steps/Steps.test.tsx +2 -0
  220. package/src/components/navigation/Steps/Steps.tsx +88 -89
  221. package/src/components/navigation/Steps/Steps.types.ts +30 -30
  222. package/src/components/navigation/Steps/index.tsx +1 -1
  223. package/src/components/navigation/Tabs/Tabs.test.tsx +3 -2
  224. package/src/components/navigation/Tabs/Tabs.types.ts +4 -3
  225. package/src/components/navigation/index.tsx +21 -16
  226. package/src/constants/index.ts +1 -1
  227. package/src/hooks/index.ts +52 -102
  228. package/src/hooks/types.ts +4 -5
  229. package/src/hooks/useAsync.ts +46 -47
  230. package/src/hooks/useClickOutside.ts +52 -0
  231. package/src/hooks/useCounter.ts +87 -0
  232. package/src/hooks/useDebounce.ts +150 -0
  233. package/src/hooks/useDeepCompareEffect.ts +88 -0
  234. package/src/hooks/useEventListener.ts +77 -0
  235. package/src/hooks/useMediaQuery.ts +75 -0
  236. package/src/hooks/useMutation.ts +233 -0
  237. package/src/hooks/usePerformance.ts +1 -64
  238. package/src/hooks/usePlatform.ts +3 -1
  239. package/src/hooks/usePrevious.ts +25 -0
  240. package/src/hooks/useRequest.ts +12 -7
  241. package/src/hooks/useStateManagement.ts +1 -1
  242. package/src/hooks/useStorage.ts +169 -0
  243. package/src/hooks/useStyle.ts +8 -2
  244. package/src/hooks/useToggle.ts +54 -0
  245. package/src/index.ts +34 -9
  246. package/src/theme/ThemeProvider.tsx +3 -7
  247. package/src/theme/ThemeProvider.types.ts +1 -1
  248. package/src/theme/defaults.ts +1 -1
  249. package/src/theme/design-system.ts +2 -2
  250. package/src/theme/design-tokens.ts +85 -99
  251. package/src/theme/generated/dark-theme.scss +1 -1
  252. package/src/theme/generated/tokens.scss +82 -18
  253. package/src/theme/index.ts +8 -29
  254. package/src/theme/responsive.tsx +36 -34
  255. package/src/theme/styles.ts +1 -1
  256. package/src/theme/useThemeUtils.ts +43 -43
  257. package/src/theme/utils.ts +32 -32
  258. package/src/theme/variables.ts +70 -51
  259. package/src/types/accessibility.ts +36 -37
  260. package/src/types/button.ts +25 -27
  261. package/src/types/component-props.ts +6 -1
  262. package/src/types/glob.d.ts +4 -0
  263. package/src/types/index.ts +2 -2
  264. package/src/types/standardized-components.ts +9 -3
  265. package/src/types/utils.ts +13 -23
  266. package/src/utils/__tests__/responsiveUtils.test.ts +5 -4
  267. package/src/utils/abort-controller.ts +48 -0
  268. package/src/utils/cache.ts +2 -6
  269. package/src/utils/createNamespace.ts +4 -4
  270. package/src/utils/environment.ts +26 -6
  271. package/src/utils/error-handler.ts +2 -2
  272. package/src/utils/errorLogger.ts +16 -20
  273. package/src/utils/formatUtils.ts +38 -70
  274. package/src/utils/http/error-codes.ts +314 -0
  275. package/src/utils/http/http-client.test.ts +63 -0
  276. package/src/utils/{network → http}/http-client.ts +45 -35
  277. package/src/utils/http/request-cache.ts +127 -0
  278. package/src/utils/http/request.ts +954 -0
  279. package/src/utils/http/taro-adapter.test.ts +74 -0
  280. package/src/utils/http/taro-adapter.ts +24 -0
  281. package/src/utils/http/types.ts +414 -0
  282. package/src/utils/http/web-adapter.ts +33 -0
  283. package/src/utils/index.ts +5 -8
  284. package/src/utils/inputValidator.ts +17 -14
  285. package/src/utils/performance/performance.ts +60 -71
  286. package/src/utils/responsiveUtils.ts +7 -16
  287. package/src/utils/rtl-support.ts +29 -19
  288. package/src/utils/security/api-security.ts +47 -39
  289. package/src/utils/securityHeaders.ts +61 -67
  290. package/src/utils/typeHelpers.ts +10 -10
  291. package/src/utils/types/dataProcessing.ts +93 -92
  292. package/src/utils/types/typeHelpers.ts +31 -21
  293. package/src/utils/xssProtection.ts +96 -48
  294. package/dist/js/index-6NJ3A1Dn.js.map +0 -1
  295. package/dist/js/index-DffLRSro.js.map +0 -1
  296. package/src/components/form/Input/Input.enhanced.tsx +0 -732
  297. package/src/components/navigation/Menu/__tests__/Menu.test.tsx +0 -687
  298. package/src/components/navigation/Tree/Tree.styles.ts +0 -553
  299. package/src/components/navigation/Tree/Tree.test.basic.tsx +0 -7
  300. package/src/components/navigation/Tree/Tree.test.functional.tsx +0 -496
  301. package/src/components/navigation/Tree/Tree.test.import.check.tsx +0 -6
  302. package/src/components/navigation/Tree/Tree.test.import.tsx +0 -6
  303. package/src/components/navigation/Tree/Tree.test.minimal.tsx +0 -5
  304. package/src/components/navigation/Tree/Tree.test.simple.tsx +0 -30
  305. package/src/components/navigation/Tree/Tree.test.tsx +0 -908
  306. package/src/components/navigation/Tree/Tree.test.working.tsx +0 -673
  307. package/src/components/navigation/Tree/Tree.tsx +0 -600
  308. package/src/components/navigation/Tree/Tree.types.ts +0 -909
  309. package/src/components/navigation/Tree/Tree.utils.ts +0 -452
  310. package/src/components/navigation/Tree/index.ts +0 -33
  311. package/src/components/navigation/Tree/index.tsx +0 -23
  312. package/src/utils/network/http-client.test.ts +0 -18
@@ -1,12 +1,7 @@
1
1
  import React, { forwardRef } from 'react';
2
2
  import { View, Text } from '@tarojs/components';
3
3
  import type { ITouchEvent } from '@tarojs/components';
4
- import {
5
- TooltipProps,
6
- TooltipRef,
7
- TooltipTrigger,
8
- TooltipEventHandler
9
- } from './Tooltip.types';
4
+ import { TooltipProps, TooltipRef, TooltipTrigger, TooltipEventHandler } from './Tooltip.types';
10
5
  import { tooltipStyles } from './Tooltip.styles';
11
6
 
12
7
  export const Tooltip = forwardRef<TooltipRef, TooltipProps>((props, ref) => {
@@ -60,11 +55,14 @@ export const Tooltip = forwardRef<TooltipRef, TooltipProps>((props, ref) => {
60
55
  }, [timer]);
61
56
 
62
57
  // 设置定时器
63
- const setTimerCallback = React.useCallback((callback: () => void, delay: number) => {
64
- clearTimer();
65
- const newTimer = setTimeout(callback, delay);
66
- setTimer(newTimer);
67
- }, [clearTimer]);
58
+ const setTimerCallback = React.useCallback(
59
+ (callback: () => void, delay: number) => {
60
+ clearTimer();
61
+ const newTimer = setTimeout(callback, delay);
62
+ setTimer(newTimer);
63
+ },
64
+ [clearTimer],
65
+ );
68
66
 
69
67
  // 显示提示
70
68
  const showTooltip = React.useCallback(() => {
@@ -130,17 +128,20 @@ export const Tooltip = forwardRef<TooltipRef, TooltipProps>((props, ref) => {
130
128
  }, [disabled, trigger, mouseLeaveDelay, hideDelay, hideTooltip, setTimerCallback, getTriggers]);
131
129
 
132
130
  // 处理点击
133
- const handleClick = React.useCallback((_event: ITouchEvent) => {
134
- if (disabled) return;
135
- const triggers = getTriggers(trigger);
136
- if (triggers.includes('click')) {
137
- if (visible) {
138
- hideTooltip();
139
- } else {
140
- showTooltip();
131
+ const handleClick = React.useCallback(
132
+ (_event: ITouchEvent) => {
133
+ if (disabled) return;
134
+ const triggers = getTriggers(trigger);
135
+ if (triggers.includes('click')) {
136
+ if (visible) {
137
+ hideTooltip();
138
+ } else {
139
+ showTooltip();
140
+ }
141
141
  }
142
- }
143
- }, [disabled, trigger, visible, showTooltip, hideTooltip, getTriggers]);
142
+ },
143
+ [disabled, trigger, visible, showTooltip, hideTooltip, getTriggers],
144
+ );
144
145
 
145
146
  // 处理焦点
146
147
  const handleFocus = React.useCallback(() => {
@@ -161,17 +162,20 @@ export const Tooltip = forwardRef<TooltipRef, TooltipProps>((props, ref) => {
161
162
  }, [disabled, trigger, hideTooltip, getTriggers]);
162
163
 
163
164
  // 处理长按(contextMenu触发)
164
- const handleLongPress = React.useCallback((_event: ITouchEvent) => {
165
- if (disabled) return;
166
- const triggers = getTriggers(trigger);
167
- if (triggers.includes('contextMenu')) {
168
- if (visible) {
169
- hideTooltip();
170
- } else {
171
- showTooltip();
165
+ const handleLongPress = React.useCallback(
166
+ (_event: ITouchEvent) => {
167
+ if (disabled) return;
168
+ const triggers = getTriggers(trigger);
169
+ if (triggers.includes('contextMenu')) {
170
+ if (visible) {
171
+ hideTooltip();
172
+ } else {
173
+ showTooltip();
174
+ }
172
175
  }
173
- }
174
- }, [disabled, trigger, visible, showTooltip, hideTooltip, getTriggers]);
176
+ },
177
+ [disabled, trigger, visible, showTooltip, hideTooltip, getTriggers],
178
+ );
175
179
 
176
180
  // 组件卸载时清除定时器
177
181
  React.useEffect(() => {
@@ -186,18 +190,22 @@ export const Tooltip = forwardRef<TooltipRef, TooltipProps>((props, ref) => {
186
190
  }, [title]);
187
191
 
188
192
  // 暴露给外部的引用方法
189
- React.useImperativeHandle(ref, () => ({
190
- show: showTooltip,
191
- hide: hideTooltip,
192
- getVisible: () => visible,
193
- updateTitle: (newTitle: React.ReactNode) => {
194
- setInternalTitle(newTitle);
195
- },
196
- reposition: () => {
197
- // Taro环境中的重新定位逻辑
198
- console.log('Reposition tooltip - Taro environment');
199
- },
200
- }), [showTooltip, hideTooltip, visible]);
193
+ React.useImperativeHandle(
194
+ ref,
195
+ () => ({
196
+ show: showTooltip,
197
+ hide: hideTooltip,
198
+ getVisible: () => visible,
199
+ updateTitle: (newTitle: React.ReactNode) => {
200
+ setInternalTitle(newTitle);
201
+ },
202
+ reposition: () => {
203
+ // Taro环境中的重新定位逻辑
204
+ console.log('Reposition tooltip - Taro environment');
205
+ },
206
+ }),
207
+ [showTooltip, hideTooltip, visible],
208
+ );
201
209
 
202
210
  // 渲染箭头
203
211
  const renderArrow = React.useCallback(() => {
@@ -258,7 +266,18 @@ export const Tooltip = forwardRef<TooltipRef, TooltipProps>((props, ref) => {
258
266
  }
259
267
 
260
268
  return events;
261
- }, [trigger, getTriggers, handleTouchStart, handleTouchEnd, handleMouseEnter, handleMouseLeave, handleClick, handleFocus, handleBlur, handleLongPress]);
269
+ }, [
270
+ trigger,
271
+ getTriggers,
272
+ handleTouchStart,
273
+ handleTouchEnd,
274
+ handleMouseEnter,
275
+ handleMouseLeave,
276
+ handleClick,
277
+ handleFocus,
278
+ handleBlur,
279
+ handleLongPress,
280
+ ]);
262
281
 
263
282
  const containerStyle = tooltipStyles['getContainerStyle'](style);
264
283
  const containerEvents = getContainerEvents();
@@ -269,7 +288,7 @@ export const Tooltip = forwardRef<TooltipRef, TooltipProps>((props, ref) => {
269
288
  className={className}
270
289
  {...containerEvents}
271
290
  {...rest}
272
- aria-describedby={visible ? "tooltip-content" : undefined}
291
+ aria-describedby={visible ? 'tooltip-content' : undefined}
273
292
  aria-expanded={visible}
274
293
  >
275
294
  {children}
@@ -280,4 +299,4 @@ export const Tooltip = forwardRef<TooltipRef, TooltipProps>((props, ref) => {
280
299
 
281
300
  Tooltip.displayName = 'Tooltip';
282
301
 
283
- export default Tooltip;
302
+ export default Tooltip;
@@ -1,18 +1,18 @@
1
1
  import React from 'react';
2
2
  import type { ITouchEvent } from '@tarojs/components';
3
3
 
4
- export type TooltipPlacement =
5
- | 'top'
6
- | 'bottom'
7
- | 'left'
8
- | 'right'
9
- | 'topLeft'
10
- | 'topRight'
11
- | 'bottomLeft'
12
- | 'bottomRight'
13
- | 'leftTop'
14
- | 'leftBottom'
15
- | 'rightTop'
4
+ export type TooltipPlacement =
5
+ | 'top'
6
+ | 'bottom'
7
+ | 'left'
8
+ | 'right'
9
+ | 'topLeft'
10
+ | 'topRight'
11
+ | 'bottomLeft'
12
+ | 'bottomRight'
13
+ | 'leftTop'
14
+ | 'leftBottom'
15
+ | 'rightTop'
16
16
  | 'rightBottom';
17
17
 
18
18
  export type TooltipTrigger = 'hover' | 'click' | 'focus' | 'contextMenu';
@@ -135,13 +135,7 @@ export interface TooltipAnimationConfig {
135
135
  }
136
136
 
137
137
  // Tooltip 事件类型
138
- export type TooltipEventType =
139
- | 'mouseenter'
140
- | 'mouseleave'
141
- | 'click'
142
- | 'focus'
143
- | 'blur'
144
- | 'contextmenu';
138
+ export type TooltipEventType = 'mouseenter' | 'mouseleave' | 'click' | 'focus' | 'blur' | 'contextmenu';
145
139
 
146
140
  // Tooltip 选项类型
147
141
  export interface TooltipOptions {
@@ -169,4 +163,4 @@ export interface TooltipInstance {
169
163
  toggle: () => void;
170
164
  update: (_props: Partial<TooltipProps>) => void;
171
165
  destroy: () => void;
172
- }
166
+ }
@@ -1,3 +1,3 @@
1
1
  export { Tooltip } from './Tooltip';
2
2
  export type { TooltipProps, TooltipRef, TooltipPlacement, TooltipTrigger } from './Tooltip.types';
3
- export { tooltipStyles } from './Tooltip.styles';
3
+ export { tooltipStyles } from './Tooltip.styles';
@@ -5,10 +5,10 @@
5
5
  */
6
6
 
7
7
  import { Tooltip as TooltipComponent } from './Tooltip';
8
- import type {
9
- TooltipProps,
10
- TooltipRef,
11
- TooltipTrigger,
8
+ import type {
9
+ TooltipProps,
10
+ TooltipRef,
11
+ TooltipTrigger,
12
12
  TooltipPlacement,
13
13
  TooltipTheme,
14
14
  TooltipAnimation,
@@ -19,17 +19,17 @@ import type {
19
19
  TooltipEventType,
20
20
  TooltipEventHandler,
21
21
  TooltipOptions,
22
- TooltipInstance
22
+ TooltipInstance,
23
23
  } from './Tooltip.types';
24
24
  import tooltipStyles from './Tooltip.styles';
25
25
  import { getTooltipClasses, getArrowClasses, tooltipCssClasses } from './Tooltip.styles';
26
26
 
27
27
  // 主要导出
28
28
  export { TooltipComponent as Tooltip };
29
- export type {
30
- TooltipProps,
31
- TooltipRef,
32
- TooltipTrigger,
29
+ export type {
30
+ TooltipProps,
31
+ TooltipRef,
32
+ TooltipTrigger,
33
33
  TooltipPlacement,
34
34
  TooltipTheme,
35
35
  TooltipAnimation,
@@ -40,17 +40,14 @@ export type {
40
40
  TooltipEventType,
41
41
  TooltipEventHandler,
42
42
  TooltipOptions,
43
- TooltipInstance
43
+ TooltipInstance,
44
44
  };
45
45
 
46
46
  // 样式相关导出
47
47
  export { tooltipStyles, getTooltipClasses, getArrowClasses, tooltipCssClasses };
48
48
 
49
49
  // 重新导出常用类型
50
- export type {
51
- TooltipProps as ITooltipProps,
52
- TooltipRef as ITooltipRef,
53
- } from './Tooltip.types';
50
+ export type { TooltipProps as ITooltipProps, TooltipRef as ITooltipRef } from './Tooltip.types';
54
51
 
55
52
  // 导出工具函数 - 针对 Taro 环境优化
56
53
  export const TooltipUtils = {
@@ -65,23 +62,18 @@ export const TooltipUtils = {
65
62
  visible: false,
66
63
  show: () => {
67
64
  // Taro 环境中的显示逻辑
68
- console.log('Show tooltip - Taro environment');
69
65
  },
70
66
  hide: () => {
71
67
  // Taro 环境中的隐藏逻辑
72
- console.log('Hide tooltip - Taro environment');
73
68
  },
74
69
  toggle: () => {
75
70
  // Taro 环境中的切换逻辑
76
- console.log('Toggle tooltip - Taro environment');
77
71
  },
78
72
  update: (newProps: Partial<TooltipProps>) => {
79
73
  // Taro 环境中的更新逻辑
80
- console.log('Update tooltip - Taro environment:', newProps);
81
74
  },
82
75
  destroy: () => {
83
76
  // Taro 环境中的销毁逻辑
84
- console.log('Destroy tooltip - Taro environment');
85
77
  },
86
78
  };
87
79
  },
@@ -91,7 +83,6 @@ export const TooltipUtils = {
91
83
  */
92
84
  show: (elementId: string, content: string, options?: Partial<TooltipProps>) => {
93
85
  // 在 Taro 环境中通过选择器显示指定元素的 Tooltip
94
- console.log('Show tooltip for element:', elementId, content, options);
95
86
  // 实际应用中可以使用 Taro 的选择器 API
96
87
  },
97
88
 
@@ -100,7 +91,6 @@ export const TooltipUtils = {
100
91
  */
101
92
  hide: (elementId: string) => {
102
93
  // 在 Taro 环境中隐藏指定元素的 Tooltip
103
- console.log('Hide tooltip for element:', elementId);
104
94
  // 实际应用中可以使用 Taro 的选择器 API
105
95
  },
106
96
 
@@ -109,7 +99,6 @@ export const TooltipUtils = {
109
99
  */
110
100
  update: (elementId: string, content: string) => {
111
101
  // 在 Taro 环境中更新指定元素的 Tooltip 内容
112
- console.log('Update tooltip for element:', elementId, content);
113
102
  // 实际应用中可以使用 Taro 的选择器 API
114
103
  },
115
104
 
@@ -118,7 +107,6 @@ export const TooltipUtils = {
118
107
  */
119
108
  destroy: (elementId: string) => {
120
109
  // 在 Taro 环境中销毁指定元素的 Tooltip
121
- console.log('Destroy tooltip for element:', elementId);
122
110
  // 实际应用中可以使用 Taro 的选择器 API
123
111
  },
124
112
  };
@@ -255,4 +243,4 @@ export const TooltipConfig = {
255
243
  };
256
244
 
257
245
  // 导出 Tooltip 组件作为默认导出
258
- export default TooltipComponent;
246
+ export default TooltipComponent;
@@ -1,17 +1,33 @@
1
- // 导出反馈组件
2
- export * from './Loading';
3
- export * from './Message';
4
- export * from './Modal';
5
- export * from './Notification';
6
- export * from './Progress';
7
- export * from './Result';
8
- export * from './Tooltip';
9
-
10
- // 导出类型
1
+ /**
2
+ * Taro-Uno 反馈组件库
3
+ * 提供用户交互反馈的 UI 组件,包括加载、消息、模态框、通知等
4
+ */
5
+
6
+ // 导出 Loading 组件
7
+ export { Loading } from './Loading';
11
8
  export type { LoadingProps, LoadingRef, LoadingSize, LoadingType } from './Loading/Loading.types';
9
+ export { LoadingStyles } from './Loading/Loading.styles';
12
10
 
11
+ // 导出 Message 组件
12
+ export { Message } from './Message';
13
13
  export type { MessageProps, MessageRef, MessageType, MessagePosition } from './Message/Message.types';
14
+ export { messageStyles } from './Message/Message.styles';
14
15
 
16
+ // 导出 Modal 组件
17
+ export { Modal } from './Modal';
18
+ export type {
19
+ ModalProps,
20
+ ModalRef,
21
+ ModalSize,
22
+ ModalPosition,
23
+ ModalButtonType,
24
+ ModalButton,
25
+ ModalConfirmConfig,
26
+ } from './Modal/Modal.types';
27
+ export { modalStyles } from './Modal/Modal.styles';
28
+
29
+ // 导出 Notification 组件
30
+ export { Notification } from './Notification';
15
31
  export type {
16
32
  NotificationType,
17
33
  NotificationPlacement,
@@ -26,29 +42,41 @@ export type {
26
42
  NotificationPlacementStyles,
27
43
  NotificationAnimationStyles,
28
44
  } from './Notification/Notification.types';
45
+ export {
46
+ notificationStyles,
47
+ notificationStyleHelpers,
48
+ notificationStyleSystem,
49
+ responsiveBreakpoints,
50
+ generateResponsiveStyle,
51
+ generateThemeStyle,
52
+ calculateDynamicStyles,
53
+ } from './Notification/Notification.styles';
29
54
 
55
+ // 导出 Progress 组件
56
+ export { Progress } from './Progress';
30
57
  export type {
31
- ModalProps,
32
- ModalRef,
33
- ModalSize,
34
- ModalPosition,
35
- ModalButtonType,
36
- ModalButton,
37
- ModalConfirmConfig,
38
- } from './Modal/Modal.types';
39
-
40
- export type {
41
- ProgressProps,
42
- ProgressRef,
43
- ProgressType,
44
- ProgressStatus,
58
+ ProgressProps,
59
+ ProgressRef,
60
+ ProgressType,
61
+ ProgressStatus,
45
62
  ProgressSize,
46
63
  ProgressGradient,
47
- ProgressSegment
64
+ ProgressSegment,
48
65
  } from './Progress/Progress.types';
49
-
66
+ export {
67
+ ProgressStyles,
68
+ ProgressKeyframes,
69
+ ProgressMediaQueries,
70
+ ProgressCSSVariables,
71
+ } from './Progress/Progress.styles';
72
+
73
+ // 导出 Result 组件
74
+ export { Result } from './Result';
50
75
  export type { ResultProps, ResultRef, ResultStatus, ResultSize } from './Result/Result.types';
76
+ export { resultStyles } from './Result/Result.styles';
51
77
 
78
+ // 导出 Tooltip 组件
79
+ export { Tooltip } from './Tooltip';
52
80
  export type {
53
81
  TooltipProps,
54
82
  TooltipRef,
@@ -65,22 +93,6 @@ export type {
65
93
  TooltipOptions,
66
94
  TooltipInstance,
67
95
  } from './Tooltip/Tooltip.types';
68
-
69
- // 导出样式
70
- export { LoadingStyles } from './Loading/Loading.styles';
71
- export { messageStyles } from './Message/Message.styles';
72
- export {
73
- notificationStyles,
74
- notificationStyleHelpers,
75
- notificationStyleSystem,
76
- responsiveBreakpoints,
77
- generateResponsiveStyle,
78
- generateThemeStyle,
79
- calculateDynamicStyles,
80
- } from './Notification/Notification.styles';
81
- export { modalStyles } from './Modal/Modal.styles';
82
- export { ProgressStyles, ProgressKeyframes, ProgressMediaQueries, ProgressCSSVariables } from './Progress/Progress.styles';
83
- export { resultStyles } from './Result/Result.styles';
84
96
  export { tooltipStyles } from './Tooltip/Tooltip.styles';
85
97
 
86
98
  // 反馈组件工具函数
@@ -448,7 +448,7 @@ export class CascaderStyles {
448
448
  static formatDisplayValue(
449
449
  labels: ReactNode[],
450
450
  selectedOptions: CascaderOption[],
451
- config: { showPath?: boolean; pathSeparator?: string } = {}
451
+ config: { showPath?: boolean; pathSeparator?: string } = {},
452
452
  ): ReactNode {
453
453
  return formatDisplayValue(labels, selectedOptions, config);
454
454
  }
@@ -523,4 +523,4 @@ export class CascaderStyles {
523
523
  }
524
524
 
525
525
  /** 导出样式对象 */
526
- export const cascaderStyles = CascaderStyles;
526
+ export const cascaderStyles = CascaderStyles;