@unif/react-native-design 0.8.2 → 0.10.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 (513) hide show
  1. package/README.md +1 -2
  2. package/lib/module/components/business/AvatarWithRing/AvatarWithRing.js +6 -4
  3. package/lib/module/components/business/AvatarWithRing/AvatarWithRing.js.map +1 -1
  4. package/lib/module/components/business/AvatarWithRing/styles.js +15 -3
  5. package/lib/module/components/business/AvatarWithRing/styles.js.map +1 -1
  6. package/lib/module/components/business/Decorations/GradientWash.js +50 -36
  7. package/lib/module/components/business/Decorations/GradientWash.js.map +1 -1
  8. package/lib/module/components/business/Decorations/RadialHalo.js +10 -4
  9. package/lib/module/components/business/Decorations/RadialHalo.js.map +1 -1
  10. package/lib/module/components/business/Decorations/ScreenBackdrop.js +22 -14
  11. package/lib/module/components/business/Decorations/ScreenBackdrop.js.map +1 -1
  12. package/lib/module/components/business/Decorations/index.js +3 -0
  13. package/lib/module/components/business/Decorations/index.js.map +1 -1
  14. package/lib/module/components/business/GlassStats/GlassStats.js +7 -4
  15. package/lib/module/components/business/GlassStats/GlassStats.js.map +1 -1
  16. package/lib/module/components/business/GlassStats/types.js +2 -0
  17. package/lib/module/components/business/VersionPill/VersionPill.js +23 -5
  18. package/lib/module/components/business/VersionPill/VersionPill.js.map +1 -1
  19. package/lib/module/components/business/VersionPill/styles.js +1 -1
  20. package/lib/module/components/business/index.js.map +1 -1
  21. package/lib/module/components/business/useSvgId.js +20 -0
  22. package/lib/module/components/business/useSvgId.js.map +1 -0
  23. package/lib/module/components/ui/Avatar/Avatar.js +13 -8
  24. package/lib/module/components/ui/Avatar/Avatar.js.map +1 -1
  25. package/lib/module/components/ui/Avatar/styles.js +7 -7
  26. package/lib/module/components/ui/Avatar/styles.js.map +1 -1
  27. package/lib/module/components/ui/BlurLayer/BlurLayer.js +5 -1
  28. package/lib/module/components/ui/BlurLayer/BlurLayer.js.map +1 -1
  29. package/lib/module/components/ui/BlurLayer/BlurLayer.web.js +7 -1
  30. package/lib/module/components/ui/BlurLayer/BlurLayer.web.js.map +1 -1
  31. package/lib/module/components/ui/Button/Button.js +2 -1
  32. package/lib/module/components/ui/Button/Button.js.map +1 -1
  33. package/lib/module/components/ui/Button/ButtonBase.js +36 -2
  34. package/lib/module/components/ui/Button/ButtonBase.js.map +1 -1
  35. package/lib/module/components/ui/Button/styles.js +27 -25
  36. package/lib/module/components/ui/Button/styles.js.map +1 -1
  37. package/lib/module/components/ui/Card/Card.js +17 -8
  38. package/lib/module/components/ui/Card/Card.js.map +1 -1
  39. package/lib/module/components/ui/Card/styles.js +6 -1
  40. package/lib/module/components/ui/Card/styles.js.map +1 -1
  41. package/lib/module/components/ui/Carousel/Carousel.js +36 -6
  42. package/lib/module/components/ui/Carousel/Carousel.js.map +1 -1
  43. package/lib/module/components/ui/Cell/Cell.js +23 -5
  44. package/lib/module/components/ui/Cell/Cell.js.map +1 -1
  45. package/lib/module/components/ui/Cell/Leading.js +2 -2
  46. package/lib/module/components/ui/Cell/Leading.js.map +1 -1
  47. package/lib/module/components/ui/Cell/List.js +10 -5
  48. package/lib/module/components/ui/Cell/List.js.map +1 -1
  49. package/lib/module/components/ui/Cell/styles.js +7 -6
  50. package/lib/module/components/ui/Cell/styles.js.map +1 -1
  51. package/lib/module/components/ui/Checkbox/Checkbox.js +10 -8
  52. package/lib/module/components/ui/Checkbox/Checkbox.js.map +1 -1
  53. package/lib/module/components/ui/Checkbox/styles.js +9 -1
  54. package/lib/module/components/ui/Checkbox/styles.js.map +1 -1
  55. package/lib/module/components/ui/Chip/Chip.js +19 -5
  56. package/lib/module/components/ui/Chip/Chip.js.map +1 -1
  57. package/lib/module/components/ui/Confirm/ConfirmHost.js +28 -11
  58. package/lib/module/components/ui/Confirm/ConfirmHost.js.map +1 -1
  59. package/lib/module/components/ui/Confirm/confirm.js +6 -0
  60. package/lib/module/components/ui/Confirm/confirm.js.map +1 -1
  61. package/lib/module/components/ui/DrawerHeader/DrawerHeader.js +14 -9
  62. package/lib/module/components/ui/DrawerHeader/DrawerHeader.js.map +1 -1
  63. package/lib/module/components/ui/DrawerHeader/styles.js +10 -6
  64. package/lib/module/components/ui/DrawerHeader/styles.js.map +1 -1
  65. package/lib/module/components/ui/Empty/Empty.js +5 -4
  66. package/lib/module/components/ui/Empty/Empty.js.map +1 -1
  67. package/lib/module/components/ui/EntryCard/EntryCard.js +5 -3
  68. package/lib/module/components/ui/EntryCard/EntryCard.js.map +1 -1
  69. package/lib/module/components/ui/EntryCard/styles.js +4 -4
  70. package/lib/module/components/ui/EntryCard/styles.js.map +1 -1
  71. package/lib/module/components/ui/Form/FormRow.js +1 -0
  72. package/lib/module/components/ui/Form/FormRow.js.map +1 -1
  73. package/lib/module/components/ui/Form/styles.js +3 -1
  74. package/lib/module/components/ui/Form/styles.js.map +1 -1
  75. package/lib/module/components/ui/Grid/Grid.js +39 -24
  76. package/lib/module/components/ui/Grid/Grid.js.map +1 -1
  77. package/lib/module/components/ui/Grid/styles.js +35 -46
  78. package/lib/module/components/ui/Grid/styles.js.map +1 -1
  79. package/lib/module/components/ui/Icon/Icon.js +46 -29
  80. package/lib/module/components/ui/Icon/Icon.js.map +1 -1
  81. package/lib/module/components/ui/IconButton/IconButton.js +2 -0
  82. package/lib/module/components/ui/IconButton/IconButton.js.map +1 -1
  83. package/lib/module/components/ui/Logo/Logo.js +2 -1
  84. package/lib/module/components/ui/Logo/Logo.js.map +1 -1
  85. package/lib/module/components/ui/NavBar/NavBar.js +15 -3
  86. package/lib/module/components/ui/NavBar/NavBar.js.map +1 -1
  87. package/lib/module/components/ui/PasswordInput/PasswordInput.js +43 -14
  88. package/lib/module/components/ui/PasswordInput/PasswordInput.js.map +1 -1
  89. package/lib/module/components/ui/PasswordInput/styles.js +1 -1
  90. package/lib/module/components/ui/Pulse/Pulse.js +2 -1
  91. package/lib/module/components/ui/Pulse/Pulse.js.map +1 -1
  92. package/lib/module/components/ui/Pulse/PulseDot.js +8 -10
  93. package/lib/module/components/ui/Pulse/PulseDot.js.map +1 -1
  94. package/lib/module/components/ui/Pulse/types.js +2 -0
  95. package/lib/module/components/ui/Pulse/usePulse.web.js +51 -30
  96. package/lib/module/components/ui/Pulse/usePulse.web.js.map +1 -1
  97. package/lib/module/components/ui/Radio/Radio.js +19 -5
  98. package/lib/module/components/ui/Radio/Radio.js.map +1 -1
  99. package/lib/module/components/ui/Radio/RadioGroup.js +10 -6
  100. package/lib/module/components/ui/Radio/RadioGroup.js.map +1 -1
  101. package/lib/module/components/ui/Radio/styles.js +10 -3
  102. package/lib/module/components/ui/Radio/styles.js.map +1 -1
  103. package/lib/module/components/ui/Reveal/Reveal.web.js +18 -3
  104. package/lib/module/components/ui/Reveal/Reveal.web.js.map +1 -1
  105. package/lib/module/components/ui/Search/Search.js +26 -10
  106. package/lib/module/components/ui/Search/Search.js.map +1 -1
  107. package/lib/module/components/ui/Segmented/Segmented.js +40 -30
  108. package/lib/module/components/ui/Segmented/Segmented.js.map +1 -1
  109. package/lib/module/components/ui/Segmented/styles.js +4 -2
  110. package/lib/module/components/ui/Segmented/styles.js.map +1 -1
  111. package/lib/module/components/ui/Skeleton/Skeleton.js +9 -8
  112. package/lib/module/components/ui/Skeleton/Skeleton.js.map +1 -1
  113. package/lib/module/components/ui/Spinner/Spinner.js +15 -16
  114. package/lib/module/components/ui/Spinner/Spinner.js.map +1 -1
  115. package/lib/module/components/ui/Spinner/Spinner.web.js +10 -14
  116. package/lib/module/components/ui/Spinner/Spinner.web.js.map +1 -1
  117. package/lib/module/components/ui/Spinner/shared.js +31 -0
  118. package/lib/module/components/ui/Spinner/shared.js.map +1 -0
  119. package/lib/module/components/ui/StatusDot/StatusDot.js +21 -4
  120. package/lib/module/components/ui/StatusDot/StatusDot.js.map +1 -1
  121. package/lib/module/components/ui/StatusDot/styles.js +1 -1
  122. package/lib/module/components/ui/StatusDot/types.js +2 -0
  123. package/lib/module/components/ui/Stepper/Stepper.js +46 -10
  124. package/lib/module/components/ui/Stepper/Stepper.js.map +1 -1
  125. package/lib/module/components/ui/Switch/Switch.js +6 -11
  126. package/lib/module/components/ui/Switch/Switch.js.map +1 -1
  127. package/lib/module/components/ui/Switch/Switch.web.js +2 -8
  128. package/lib/module/components/ui/Switch/Switch.web.js.map +1 -1
  129. package/lib/module/components/ui/Switch/styles.js +12 -3
  130. package/lib/module/components/ui/Switch/styles.js.map +1 -1
  131. package/lib/module/components/ui/TabBar/TabBar.js +10 -6
  132. package/lib/module/components/ui/TabBar/TabBar.js.map +1 -1
  133. package/lib/module/components/ui/TabBar/styles.js +28 -39
  134. package/lib/module/components/ui/TabBar/styles.js.map +1 -1
  135. package/lib/module/components/ui/Tabs/Tabs.js +19 -5
  136. package/lib/module/components/ui/Tabs/Tabs.js.map +1 -1
  137. package/lib/module/components/ui/Tabs/styles.js +6 -2
  138. package/lib/module/components/ui/Tabs/styles.js.map +1 -1
  139. package/lib/module/components/ui/Tabs/types.js +2 -0
  140. package/lib/module/components/ui/Tag/styles.js +15 -14
  141. package/lib/module/components/ui/Tag/styles.js.map +1 -1
  142. package/lib/module/components/ui/TextField/TextFieldBase.js +24 -6
  143. package/lib/module/components/ui/TextField/TextFieldBase.js.map +1 -1
  144. package/lib/module/components/ui/Thumbnail/Thumbnail.js +11 -3
  145. package/lib/module/components/ui/Thumbnail/Thumbnail.js.map +1 -1
  146. package/lib/module/components/ui/Thumbnail/styles.js +6 -2
  147. package/lib/module/components/ui/Thumbnail/styles.js.map +1 -1
  148. package/lib/module/components/ui/Toast/ToastHost.js +16 -5
  149. package/lib/module/components/ui/Toast/ToastHost.js.map +1 -1
  150. package/lib/module/components/ui/Toast/ToastHost.web.js +21 -4
  151. package/lib/module/components/ui/Toast/ToastHost.web.js.map +1 -1
  152. package/lib/module/components/ui/Toast/styles.js +2 -0
  153. package/lib/module/components/ui/Toast/styles.js.map +1 -1
  154. package/lib/module/components/ui/Toast/toast.js +23 -3
  155. package/lib/module/components/ui/Toast/toast.js.map +1 -1
  156. package/lib/module/components/ui/shared/badgeStyles.js +31 -0
  157. package/lib/module/components/ui/shared/badgeStyles.js.map +1 -0
  158. package/lib/module/icons/data.js +45 -19
  159. package/lib/module/icons/data.js.map +1 -1
  160. package/lib/module/theme/colors.js +28 -10
  161. package/lib/module/theme/colors.js.map +1 -1
  162. package/lib/module/theme/index.js +6 -2
  163. package/lib/module/theme/index.js.map +1 -1
  164. package/lib/module/theme/scale.js +9 -1
  165. package/lib/module/theme/scale.js.map +1 -1
  166. package/lib/module/theme/shadow.js +24 -41
  167. package/lib/module/theme/shadow.js.map +1 -1
  168. package/lib/module/theme/tokens.js +10 -5
  169. package/lib/module/theme/tokens.js.map +1 -1
  170. package/lib/module/theme/usePrefersReducedMotion.js +12 -0
  171. package/lib/module/theme/usePrefersReducedMotion.js.map +1 -0
  172. package/lib/module/theme/usePrefersReducedMotion.web.js +25 -0
  173. package/lib/module/theme/usePrefersReducedMotion.web.js.map +1 -0
  174. package/lib/module/theme/useTheme.js +13 -0
  175. package/lib/module/theme/useTheme.js.map +1 -1
  176. package/lib/module/utils/logger/logger.js +5 -1
  177. package/lib/module/utils/logger/logger.js.map +1 -1
  178. package/lib/module/utils/testID/testID.js +6 -3
  179. package/lib/module/utils/testID/testID.js.map +1 -1
  180. package/lib/typescript/src/components/business/AvatarWithRing/AvatarWithRing.d.ts +1 -1
  181. package/lib/typescript/src/components/business/AvatarWithRing/AvatarWithRing.d.ts.map +1 -1
  182. package/lib/typescript/src/components/business/AvatarWithRing/styles.d.ts +5 -5
  183. package/lib/typescript/src/components/business/AvatarWithRing/styles.d.ts.map +1 -1
  184. package/lib/typescript/src/components/business/AvatarWithRing/types.d.ts +3 -1
  185. package/lib/typescript/src/components/business/AvatarWithRing/types.d.ts.map +1 -1
  186. package/lib/typescript/src/components/business/Decorations/GradientWash.d.ts +25 -0
  187. package/lib/typescript/src/components/business/Decorations/GradientWash.d.ts.map +1 -1
  188. package/lib/typescript/src/components/business/Decorations/RadialHalo.d.ts.map +1 -1
  189. package/lib/typescript/src/components/business/Decorations/ScreenBackdrop.d.ts +1 -1
  190. package/lib/typescript/src/components/business/Decorations/ScreenBackdrop.d.ts.map +1 -1
  191. package/lib/typescript/src/components/business/Decorations/index.d.ts +1 -1
  192. package/lib/typescript/src/components/business/Decorations/index.d.ts.map +1 -1
  193. package/lib/typescript/src/components/business/Decorations/types.d.ts +2 -0
  194. package/lib/typescript/src/components/business/Decorations/types.d.ts.map +1 -1
  195. package/lib/typescript/src/components/business/GlassStats/GlassStats.d.ts +1 -1
  196. package/lib/typescript/src/components/business/GlassStats/GlassStats.d.ts.map +1 -1
  197. package/lib/typescript/src/components/business/GlassStats/styles.d.ts +2 -2
  198. package/lib/typescript/src/components/business/GlassStats/types.d.ts +5 -0
  199. package/lib/typescript/src/components/business/GlassStats/types.d.ts.map +1 -1
  200. package/lib/typescript/src/components/business/VersionPill/VersionPill.d.ts +1 -1
  201. package/lib/typescript/src/components/business/VersionPill/VersionPill.d.ts.map +1 -1
  202. package/lib/typescript/src/components/business/VersionPill/styles.d.ts +1 -1
  203. package/lib/typescript/src/components/business/VersionPill/styles.d.ts.map +1 -1
  204. package/lib/typescript/src/components/business/VersionPill/types.d.ts +13 -1
  205. package/lib/typescript/src/components/business/VersionPill/types.d.ts.map +1 -1
  206. package/lib/typescript/src/components/business/index.d.ts +1 -1
  207. package/lib/typescript/src/components/business/index.d.ts.map +1 -1
  208. package/lib/typescript/src/components/business/useSvgId.d.ts +12 -0
  209. package/lib/typescript/src/components/business/useSvgId.d.ts.map +1 -0
  210. package/lib/typescript/src/components/ui/Avatar/Avatar.d.ts +1 -1
  211. package/lib/typescript/src/components/ui/Avatar/Avatar.d.ts.map +1 -1
  212. package/lib/typescript/src/components/ui/Avatar/styles.d.ts +1 -1
  213. package/lib/typescript/src/components/ui/Avatar/styles.d.ts.map +1 -1
  214. package/lib/typescript/src/components/ui/Avatar/types.d.ts +3 -1
  215. package/lib/typescript/src/components/ui/Avatar/types.d.ts.map +1 -1
  216. package/lib/typescript/src/components/ui/BlurLayer/BlurLayer.d.ts +1 -1
  217. package/lib/typescript/src/components/ui/BlurLayer/BlurLayer.d.ts.map +1 -1
  218. package/lib/typescript/src/components/ui/BlurLayer/BlurLayer.web.d.ts.map +1 -1
  219. package/lib/typescript/src/components/ui/Button/Button.d.ts +1 -1
  220. package/lib/typescript/src/components/ui/Button/Button.d.ts.map +1 -1
  221. package/lib/typescript/src/components/ui/Button/ButtonBase.d.ts.map +1 -1
  222. package/lib/typescript/src/components/ui/Button/styles.d.ts +2 -1
  223. package/lib/typescript/src/components/ui/Button/styles.d.ts.map +1 -1
  224. package/lib/typescript/src/components/ui/Button/types.d.ts +1 -1
  225. package/lib/typescript/src/components/ui/Button/types.d.ts.map +1 -1
  226. package/lib/typescript/src/components/ui/Card/Card.d.ts.map +1 -1
  227. package/lib/typescript/src/components/ui/Card/styles.d.ts +2 -0
  228. package/lib/typescript/src/components/ui/Card/styles.d.ts.map +1 -1
  229. package/lib/typescript/src/components/ui/Card/types.d.ts +4 -4
  230. package/lib/typescript/src/components/ui/Card/types.d.ts.map +1 -1
  231. package/lib/typescript/src/components/ui/Carousel/Carousel.d.ts +4 -11
  232. package/lib/typescript/src/components/ui/Carousel/Carousel.d.ts.map +1 -1
  233. package/lib/typescript/src/components/ui/Carousel/index.d.ts +1 -1
  234. package/lib/typescript/src/components/ui/Carousel/index.d.ts.map +1 -1
  235. package/lib/typescript/src/components/ui/Carousel/types.d.ts +4 -0
  236. package/lib/typescript/src/components/ui/Carousel/types.d.ts.map +1 -1
  237. package/lib/typescript/src/components/ui/Cell/Cell.d.ts.map +1 -1
  238. package/lib/typescript/src/components/ui/Cell/List.d.ts.map +1 -1
  239. package/lib/typescript/src/components/ui/Cell/styles.d.ts +1 -1
  240. package/lib/typescript/src/components/ui/Cell/styles.d.ts.map +1 -1
  241. package/lib/typescript/src/components/ui/Cell/types.d.ts +5 -2
  242. package/lib/typescript/src/components/ui/Cell/types.d.ts.map +1 -1
  243. package/lib/typescript/src/components/ui/Checkbox/Checkbox.d.ts.map +1 -1
  244. package/lib/typescript/src/components/ui/Checkbox/styles.d.ts +6 -0
  245. package/lib/typescript/src/components/ui/Checkbox/styles.d.ts.map +1 -1
  246. package/lib/typescript/src/components/ui/Chip/Chip.d.ts +4 -3
  247. package/lib/typescript/src/components/ui/Chip/Chip.d.ts.map +1 -1
  248. package/lib/typescript/src/components/ui/Chip/types.d.ts +2 -0
  249. package/lib/typescript/src/components/ui/Chip/types.d.ts.map +1 -1
  250. package/lib/typescript/src/components/ui/Confirm/ConfirmHost.d.ts.map +1 -1
  251. package/lib/typescript/src/components/ui/Confirm/confirm.d.ts.map +1 -1
  252. package/lib/typescript/src/components/ui/Confirm/types.d.ts +4 -2
  253. package/lib/typescript/src/components/ui/Confirm/types.d.ts.map +1 -1
  254. package/lib/typescript/src/components/ui/DrawerHeader/DrawerHeader.d.ts +1 -1
  255. package/lib/typescript/src/components/ui/DrawerHeader/DrawerHeader.d.ts.map +1 -1
  256. package/lib/typescript/src/components/ui/DrawerHeader/styles.d.ts.map +1 -1
  257. package/lib/typescript/src/components/ui/DrawerHeader/types.d.ts +3 -1
  258. package/lib/typescript/src/components/ui/DrawerHeader/types.d.ts.map +1 -1
  259. package/lib/typescript/src/components/ui/Empty/Empty.d.ts +2 -2
  260. package/lib/typescript/src/components/ui/Empty/Empty.d.ts.map +1 -1
  261. package/lib/typescript/src/components/ui/Empty/types.d.ts +3 -0
  262. package/lib/typescript/src/components/ui/Empty/types.d.ts.map +1 -1
  263. package/lib/typescript/src/components/ui/EntryCard/EntryCard.d.ts.map +1 -1
  264. package/lib/typescript/src/components/ui/EntryCard/styles.d.ts.map +1 -1
  265. package/lib/typescript/src/components/ui/EntryCard/types.d.ts +2 -2
  266. package/lib/typescript/src/components/ui/EntryCard/types.d.ts.map +1 -1
  267. package/lib/typescript/src/components/ui/Form/FormRow.d.ts.map +1 -1
  268. package/lib/typescript/src/components/ui/Form/styles.d.ts +1 -0
  269. package/lib/typescript/src/components/ui/Form/styles.d.ts.map +1 -1
  270. package/lib/typescript/src/components/ui/Form/types.d.ts +7 -2
  271. package/lib/typescript/src/components/ui/Form/types.d.ts.map +1 -1
  272. package/lib/typescript/src/components/ui/Grid/Grid.d.ts +1 -1
  273. package/lib/typescript/src/components/ui/Grid/Grid.d.ts.map +1 -1
  274. package/lib/typescript/src/components/ui/Grid/styles.d.ts.map +1 -1
  275. package/lib/typescript/src/components/ui/Grid/types.d.ts +4 -1
  276. package/lib/typescript/src/components/ui/Grid/types.d.ts.map +1 -1
  277. package/lib/typescript/src/components/ui/Icon/Icon.d.ts.map +1 -1
  278. package/lib/typescript/src/components/ui/IconButton/IconButton.d.ts +1 -1
  279. package/lib/typescript/src/components/ui/IconButton/IconButton.d.ts.map +1 -1
  280. package/lib/typescript/src/components/ui/IconButton/types.d.ts +7 -2
  281. package/lib/typescript/src/components/ui/IconButton/types.d.ts.map +1 -1
  282. package/lib/typescript/src/components/ui/Input/Input.d.ts +16 -16
  283. package/lib/typescript/src/components/ui/Input/types.d.ts +3 -2
  284. package/lib/typescript/src/components/ui/Input/types.d.ts.map +1 -1
  285. package/lib/typescript/src/components/ui/Logo/Logo.d.ts.map +1 -1
  286. package/lib/typescript/src/components/ui/NavBar/NavBar.d.ts +8 -1
  287. package/lib/typescript/src/components/ui/NavBar/NavBar.d.ts.map +1 -1
  288. package/lib/typescript/src/components/ui/NavBar/types.d.ts +5 -1
  289. package/lib/typescript/src/components/ui/NavBar/types.d.ts.map +1 -1
  290. package/lib/typescript/src/components/ui/PasswordInput/PasswordInput.d.ts +13 -5
  291. package/lib/typescript/src/components/ui/PasswordInput/PasswordInput.d.ts.map +1 -1
  292. package/lib/typescript/src/components/ui/PasswordInput/styles.d.ts +1 -1
  293. package/lib/typescript/src/components/ui/PasswordInput/styles.d.ts.map +1 -1
  294. package/lib/typescript/src/components/ui/PasswordInput/types.d.ts +7 -2
  295. package/lib/typescript/src/components/ui/PasswordInput/types.d.ts.map +1 -1
  296. package/lib/typescript/src/components/ui/Pulse/Pulse.d.ts +1 -1
  297. package/lib/typescript/src/components/ui/Pulse/Pulse.d.ts.map +1 -1
  298. package/lib/typescript/src/components/ui/Pulse/PulseDot.d.ts +1 -1
  299. package/lib/typescript/src/components/ui/Pulse/PulseDot.d.ts.map +1 -1
  300. package/lib/typescript/src/components/ui/Pulse/types.d.ts +5 -0
  301. package/lib/typescript/src/components/ui/Pulse/types.d.ts.map +1 -1
  302. package/lib/typescript/src/components/ui/Pulse/usePulse.web.d.ts +12 -8
  303. package/lib/typescript/src/components/ui/Pulse/usePulse.web.d.ts.map +1 -1
  304. package/lib/typescript/src/components/ui/Radio/Radio.d.ts.map +1 -1
  305. package/lib/typescript/src/components/ui/Radio/RadioGroup.d.ts.map +1 -1
  306. package/lib/typescript/src/components/ui/Radio/styles.d.ts +4 -2
  307. package/lib/typescript/src/components/ui/Radio/styles.d.ts.map +1 -1
  308. package/lib/typescript/src/components/ui/Reveal/Reveal.web.d.ts +9 -0
  309. package/lib/typescript/src/components/ui/Reveal/Reveal.web.d.ts.map +1 -1
  310. package/lib/typescript/src/components/ui/Search/Search.d.ts +16 -15
  311. package/lib/typescript/src/components/ui/Search/Search.d.ts.map +1 -1
  312. package/lib/typescript/src/components/ui/Search/types.d.ts +3 -1
  313. package/lib/typescript/src/components/ui/Search/types.d.ts.map +1 -1
  314. package/lib/typescript/src/components/ui/Segmented/Segmented.d.ts +1 -1
  315. package/lib/typescript/src/components/ui/Segmented/Segmented.d.ts.map +1 -1
  316. package/lib/typescript/src/components/ui/Segmented/styles.d.ts +1 -1
  317. package/lib/typescript/src/components/ui/Segmented/styles.d.ts.map +1 -1
  318. package/lib/typescript/src/components/ui/Segmented/types.d.ts +2 -0
  319. package/lib/typescript/src/components/ui/Segmented/types.d.ts.map +1 -1
  320. package/lib/typescript/src/components/ui/Skeleton/Skeleton.d.ts +3 -2
  321. package/lib/typescript/src/components/ui/Skeleton/Skeleton.d.ts.map +1 -1
  322. package/lib/typescript/src/components/ui/Spinner/Spinner.d.ts.map +1 -1
  323. package/lib/typescript/src/components/ui/Spinner/Spinner.web.d.ts.map +1 -1
  324. package/lib/typescript/src/components/ui/Spinner/shared.d.ts +5 -0
  325. package/lib/typescript/src/components/ui/Spinner/shared.d.ts.map +1 -0
  326. package/lib/typescript/src/components/ui/StatusDot/StatusDot.d.ts +1 -5
  327. package/lib/typescript/src/components/ui/StatusDot/StatusDot.d.ts.map +1 -1
  328. package/lib/typescript/src/components/ui/StatusDot/styles.d.ts +1 -1
  329. package/lib/typescript/src/components/ui/StatusDot/types.d.ts +13 -1
  330. package/lib/typescript/src/components/ui/StatusDot/types.d.ts.map +1 -1
  331. package/lib/typescript/src/components/ui/Stepper/Stepper.d.ts.map +1 -1
  332. package/lib/typescript/src/components/ui/Switch/Switch.d.ts.map +1 -1
  333. package/lib/typescript/src/components/ui/Switch/Switch.web.d.ts.map +1 -1
  334. package/lib/typescript/src/components/ui/Switch/styles.d.ts +7 -1
  335. package/lib/typescript/src/components/ui/Switch/styles.d.ts.map +1 -1
  336. package/lib/typescript/src/components/ui/TabBar/TabBar.d.ts +2 -2
  337. package/lib/typescript/src/components/ui/TabBar/TabBar.d.ts.map +1 -1
  338. package/lib/typescript/src/components/ui/TabBar/styles.d.ts.map +1 -1
  339. package/lib/typescript/src/components/ui/TabBar/types.d.ts +3 -0
  340. package/lib/typescript/src/components/ui/TabBar/types.d.ts.map +1 -1
  341. package/lib/typescript/src/components/ui/Tabs/Tabs.d.ts +1 -1
  342. package/lib/typescript/src/components/ui/Tabs/Tabs.d.ts.map +1 -1
  343. package/lib/typescript/src/components/ui/Tabs/styles.d.ts.map +1 -1
  344. package/lib/typescript/src/components/ui/Tabs/types.d.ts +9 -1
  345. package/lib/typescript/src/components/ui/Tabs/types.d.ts.map +1 -1
  346. package/lib/typescript/src/components/ui/Tag/styles.d.ts +2 -1
  347. package/lib/typescript/src/components/ui/Tag/styles.d.ts.map +1 -1
  348. package/lib/typescript/src/components/ui/Tag/types.d.ts +6 -2
  349. package/lib/typescript/src/components/ui/Tag/types.d.ts.map +1 -1
  350. package/lib/typescript/src/components/ui/TextField/TextFieldBase.d.ts +16 -16
  351. package/lib/typescript/src/components/ui/TextField/TextFieldBase.d.ts.map +1 -1
  352. package/lib/typescript/src/components/ui/Textarea/Textarea.d.ts +16 -16
  353. package/lib/typescript/src/components/ui/Textarea/types.d.ts +2 -1
  354. package/lib/typescript/src/components/ui/Textarea/types.d.ts.map +1 -1
  355. package/lib/typescript/src/components/ui/Thumbnail/Thumbnail.d.ts.map +1 -1
  356. package/lib/typescript/src/components/ui/Thumbnail/styles.d.ts +3 -0
  357. package/lib/typescript/src/components/ui/Thumbnail/styles.d.ts.map +1 -1
  358. package/lib/typescript/src/components/ui/Toast/ToastHost.d.ts.map +1 -1
  359. package/lib/typescript/src/components/ui/Toast/ToastHost.web.d.ts.map +1 -1
  360. package/lib/typescript/src/components/ui/Toast/styles.d.ts.map +1 -1
  361. package/lib/typescript/src/components/ui/Toast/toast.d.ts +0 -5
  362. package/lib/typescript/src/components/ui/Toast/toast.d.ts.map +1 -1
  363. package/lib/typescript/src/components/ui/Toast/types.d.ts +1 -1
  364. package/lib/typescript/src/components/ui/Toast/types.d.ts.map +1 -1
  365. package/lib/typescript/src/components/ui/shared/badgeStyles.d.ts +27 -0
  366. package/lib/typescript/src/components/ui/shared/badgeStyles.d.ts.map +1 -0
  367. package/lib/typescript/src/icons/data.d.ts +1 -1
  368. package/lib/typescript/src/icons/data.d.ts.map +1 -1
  369. package/lib/typescript/src/icons/types.d.ts +18 -12
  370. package/lib/typescript/src/icons/types.d.ts.map +1 -1
  371. package/lib/typescript/src/theme/colors.d.ts +9 -3
  372. package/lib/typescript/src/theme/colors.d.ts.map +1 -1
  373. package/lib/typescript/src/theme/index.d.ts +3 -2
  374. package/lib/typescript/src/theme/index.d.ts.map +1 -1
  375. package/lib/typescript/src/theme/scale.d.ts.map +1 -1
  376. package/lib/typescript/src/theme/shadow.d.ts +8 -8
  377. package/lib/typescript/src/theme/shadow.d.ts.map +1 -1
  378. package/lib/typescript/src/theme/tokens.d.ts +7 -3
  379. package/lib/typescript/src/theme/tokens.d.ts.map +1 -1
  380. package/lib/typescript/src/theme/usePrefersReducedMotion.d.ts +8 -0
  381. package/lib/typescript/src/theme/usePrefersReducedMotion.d.ts.map +1 -0
  382. package/lib/typescript/src/theme/usePrefersReducedMotion.web.d.ts +6 -0
  383. package/lib/typescript/src/theme/usePrefersReducedMotion.web.d.ts.map +1 -0
  384. package/lib/typescript/src/theme/useTheme.d.ts.map +1 -1
  385. package/lib/typescript/src/utils/logger/logger.d.ts.map +1 -1
  386. package/lib/typescript/src/utils/testID/testID.d.ts +6 -3
  387. package/lib/typescript/src/utils/testID/testID.d.ts.map +1 -1
  388. package/package.json +2 -1
  389. package/src/components/business/AvatarWithRing/AvatarWithRing.tsx +5 -4
  390. package/src/components/business/AvatarWithRing/styles.ts +21 -3
  391. package/src/components/business/AvatarWithRing/types.ts +3 -1
  392. package/src/components/business/Decorations/GradientWash.tsx +46 -22
  393. package/src/components/business/Decorations/RadialHalo.tsx +8 -4
  394. package/src/components/business/Decorations/ScreenBackdrop.tsx +23 -5
  395. package/src/components/business/Decorations/index.ts +4 -0
  396. package/src/components/business/Decorations/types.ts +2 -0
  397. package/src/components/business/GlassStats/GlassStats.tsx +8 -4
  398. package/src/components/business/GlassStats/types.ts +6 -0
  399. package/src/components/business/VersionPill/VersionPill.tsx +46 -6
  400. package/src/components/business/VersionPill/styles.ts +1 -1
  401. package/src/components/business/VersionPill/types.ts +13 -1
  402. package/src/components/business/index.ts +1 -0
  403. package/src/components/business/useSvgId.ts +17 -0
  404. package/src/components/ui/Avatar/Avatar.tsx +17 -10
  405. package/src/components/ui/Avatar/styles.ts +7 -7
  406. package/src/components/ui/Avatar/types.ts +3 -1
  407. package/src/components/ui/BlurLayer/BlurLayer.tsx +4 -1
  408. package/src/components/ui/BlurLayer/BlurLayer.web.tsx +7 -1
  409. package/src/components/ui/Button/Button.tsx +2 -1
  410. package/src/components/ui/Button/ButtonBase.tsx +26 -2
  411. package/src/components/ui/Button/styles.ts +27 -25
  412. package/src/components/ui/Button/types.ts +1 -1
  413. package/src/components/ui/Card/Card.tsx +17 -7
  414. package/src/components/ui/Card/styles.ts +5 -0
  415. package/src/components/ui/Card/types.ts +4 -4
  416. package/src/components/ui/Carousel/Carousel.tsx +44 -15
  417. package/src/components/ui/Carousel/index.ts +1 -1
  418. package/src/components/ui/Carousel/types.ts +5 -0
  419. package/src/components/ui/Cell/Cell.tsx +28 -6
  420. package/src/components/ui/Cell/Leading.tsx +2 -2
  421. package/src/components/ui/Cell/List.tsx +14 -8
  422. package/src/components/ui/Cell/styles.ts +8 -5
  423. package/src/components/ui/Cell/types.ts +5 -2
  424. package/src/components/ui/Checkbox/Checkbox.tsx +18 -5
  425. package/src/components/ui/Checkbox/styles.ts +8 -0
  426. package/src/components/ui/Chip/Chip.tsx +20 -5
  427. package/src/components/ui/Chip/types.ts +2 -0
  428. package/src/components/ui/Confirm/ConfirmHost.tsx +26 -10
  429. package/src/components/ui/Confirm/confirm.ts +8 -0
  430. package/src/components/ui/Confirm/types.ts +4 -2
  431. package/src/components/ui/DrawerHeader/DrawerHeader.tsx +18 -12
  432. package/src/components/ui/DrawerHeader/styles.ts +10 -6
  433. package/src/components/ui/DrawerHeader/types.ts +3 -1
  434. package/src/components/ui/Empty/Empty.tsx +5 -4
  435. package/src/components/ui/Empty/types.ts +3 -0
  436. package/src/components/ui/EntryCard/EntryCard.tsx +5 -3
  437. package/src/components/ui/EntryCard/styles.ts +13 -4
  438. package/src/components/ui/EntryCard/types.ts +2 -2
  439. package/src/components/ui/Form/FormRow.tsx +7 -1
  440. package/src/components/ui/Form/styles.ts +2 -0
  441. package/src/components/ui/Form/types.ts +7 -2
  442. package/src/components/ui/Grid/Grid.tsx +42 -25
  443. package/src/components/ui/Grid/styles.ts +8 -20
  444. package/src/components/ui/Grid/types.ts +4 -1
  445. package/src/components/ui/Icon/Icon.tsx +42 -27
  446. package/src/components/ui/IconButton/IconButton.tsx +2 -0
  447. package/src/components/ui/IconButton/types.ts +8 -2
  448. package/src/components/ui/Input/types.ts +3 -2
  449. package/src/components/ui/Logo/Logo.tsx +2 -1
  450. package/src/components/ui/NavBar/NavBar.tsx +16 -2
  451. package/src/components/ui/NavBar/types.ts +5 -1
  452. package/src/components/ui/PasswordInput/PasswordInput.tsx +77 -43
  453. package/src/components/ui/PasswordInput/styles.ts +1 -1
  454. package/src/components/ui/PasswordInput/types.ts +7 -2
  455. package/src/components/ui/Pulse/Pulse.tsx +2 -1
  456. package/src/components/ui/Pulse/PulseDot.tsx +7 -6
  457. package/src/components/ui/Pulse/types.ts +6 -0
  458. package/src/components/ui/Pulse/usePulse.web.ts +50 -33
  459. package/src/components/ui/Radio/Radio.tsx +29 -6
  460. package/src/components/ui/Radio/RadioGroup.tsx +10 -3
  461. package/src/components/ui/Radio/styles.ts +9 -2
  462. package/src/components/ui/Reveal/Reveal.web.tsx +18 -3
  463. package/src/components/ui/Search/Search.tsx +22 -9
  464. package/src/components/ui/Search/types.ts +7 -1
  465. package/src/components/ui/Segmented/Segmented.tsx +8 -3
  466. package/src/components/ui/Segmented/styles.ts +4 -2
  467. package/src/components/ui/Segmented/types.ts +2 -0
  468. package/src/components/ui/Skeleton/Skeleton.tsx +9 -8
  469. package/src/components/ui/Spinner/Spinner.tsx +17 -17
  470. package/src/components/ui/Spinner/Spinner.web.tsx +7 -15
  471. package/src/components/ui/Spinner/shared.ts +37 -0
  472. package/src/components/ui/StatusDot/StatusDot.tsx +21 -3
  473. package/src/components/ui/StatusDot/styles.ts +1 -1
  474. package/src/components/ui/StatusDot/types.ts +14 -1
  475. package/src/components/ui/Stepper/Stepper.tsx +45 -10
  476. package/src/components/ui/Switch/Switch.tsx +4 -10
  477. package/src/components/ui/Switch/Switch.web.tsx +2 -8
  478. package/src/components/ui/Switch/styles.ts +10 -1
  479. package/src/components/ui/TabBar/TabBar.tsx +14 -6
  480. package/src/components/ui/TabBar/styles.ts +9 -21
  481. package/src/components/ui/TabBar/types.ts +3 -0
  482. package/src/components/ui/Tabs/Tabs.tsx +24 -5
  483. package/src/components/ui/Tabs/styles.ts +6 -2
  484. package/src/components/ui/Tabs/types.ts +10 -1
  485. package/src/components/ui/Tag/styles.ts +18 -10
  486. package/src/components/ui/Tag/types.ts +6 -2
  487. package/src/components/ui/TextField/TextFieldBase.tsx +31 -6
  488. package/src/components/ui/Textarea/types.ts +2 -1
  489. package/src/components/ui/Thumbnail/Thumbnail.tsx +14 -3
  490. package/src/components/ui/Thumbnail/styles.ts +6 -2
  491. package/src/components/ui/Toast/ToastHost.tsx +16 -8
  492. package/src/components/ui/Toast/ToastHost.web.tsx +26 -4
  493. package/src/components/ui/Toast/styles.ts +2 -0
  494. package/src/components/ui/Toast/toast.ts +35 -2
  495. package/src/components/ui/Toast/types.ts +1 -1
  496. package/src/components/ui/shared/badgeStyles.ts +36 -0
  497. package/src/icons/data.ts +30 -0
  498. package/src/icons/types.ts +25 -10
  499. package/src/theme/colors.ts +29 -10
  500. package/src/theme/index.ts +10 -1
  501. package/src/theme/scale.ts +5 -1
  502. package/src/theme/shadow.ts +33 -24
  503. package/src/theme/tokens.ts +10 -5
  504. package/src/theme/usePrefersReducedMotion.ts +9 -0
  505. package/src/theme/usePrefersReducedMotion.web.ts +27 -0
  506. package/src/theme/useTheme.ts +15 -0
  507. package/src/utils/logger/logger.ts +5 -1
  508. package/src/utils/testID/testID.ts +6 -3
  509. package/lib/module/components/index.js +0 -5
  510. package/lib/module/components/index.js.map +0 -1
  511. package/lib/typescript/src/components/index.d.ts +0 -3
  512. package/lib/typescript/src/components/index.d.ts.map +0 -1
  513. package/src/components/index.ts +0 -2
@@ -1,8 +1,12 @@
1
1
  // Role-based color tokens —— role 名固定,亮/暗主题切的是 role 指向哪个 hex。
2
2
 
3
+ /** 品牌橙 hex —— 跨文件(colors 亮/暗 primary、glassActiveFg、avatarGradient、shadow BRAND)
4
+ * 共用同一来源,改品牌色只改这一处。 */
5
+ export const BRAND_ORANGE = '#EB6E00';
6
+
3
7
  export const lightColors = {
4
8
  // Brand
5
- primary: '#EB6E00',
9
+ primary: BRAND_ORANGE,
6
10
  primaryPressed: '#D06200',
7
11
  primaryContainer: '#FFF5EB',
8
12
  primaryContainerSubtle: '#FFF8F0',
@@ -48,6 +52,7 @@ export const lightColors = {
48
52
  inverseOnSurface: '#FFFFFF',
49
53
 
50
54
  // Misc
55
+ /** 亮色 0.5:标准遮挡强度,背景内容隐退但保留可感知轮廓,符合 iOS/MD 规范建议。 */
51
56
  scrim: 'rgba(0,0,0,0.5)',
52
57
  /** Sheet backdrop —— sheet 之下浅灰 tint,合规态高对比度让 sheet 焦点突出。
53
58
  * 跟通用 scrim(黑半透"普通遮挡")区分:这是"焦点引导"。 */
@@ -57,11 +62,11 @@ export const lightColors = {
57
62
  /** 玻璃容器内部分隔线 —— 暗色翻成对应低透白,保证暗底可见。 */
58
63
  glassSeparator: 'rgba(0,0,0,0.08)',
59
64
  /** 浮动玻璃胶囊外区 tint(TabBar 滚动玻璃门)。
60
- * 数值配合 blurAmount=25 让"玻璃门外区滚动内容透过模糊显示"达成。
65
+ * 数值配合 blur.strong(blurAmount=40) 让"玻璃门外区滚动内容透过模糊显示"达成。
61
66
  * 跟 glassTintLight 区分:此 token 给"玻璃门外区"语义。 */
62
67
  glassSurface: 'rgba(255,255,255,0.20)',
63
68
  /** TabBar 玻璃门 tint —— 跟 glassSurface 区分,真机实测 0.20 太厚看不清滚动内容,
64
- * TabBar 场景配合 blurAmount=15 主导,语义不同不可复用同一个 alpha。 */
69
+ * TabBar 场景配合 blur.soft(blurAmount=10) 主导,语义不同不可复用同一个 alpha。 */
65
70
  tabBarGlassTint: 'rgba(255,255,255,0.10)',
66
71
  /** 玻璃胶囊边框(亮 0.18 / 暗 0.14 白透)。 */
67
72
  glassBorder: 'rgba(255,255,255,0.18)',
@@ -72,7 +77,7 @@ export const lightColors = {
72
77
  glassStatsHighlight: 'rgba(255,255,255,0.65)',
73
78
  /** 玻璃胶囊 active 段文字 / icon 色。亮色同 primary;暗色 #FFB068
74
79
  * 更浅一档的橙,在半透深灰玻璃上分量更轻。 */
75
- glassActiveFg: '#EB6E00',
80
+ glassActiveFg: BRAND_ORANGE,
76
81
  /** 品牌橙 active 容器底 —— TabBar active 段比 brandTint10 多 2% 视觉权重。 */
77
82
  brandTint12: 'rgba(235,110,0,0.12)',
78
83
 
@@ -89,7 +94,10 @@ export const lightColors = {
89
94
  /** Me 屏 QR / 扫码按钮背景 —— scanBtn 要在 hero 上"凸起被看到"。 */
90
95
  qrBg: 'rgba(255,255,255,0.55)',
91
96
 
92
- // Hero gradient stops —— Me 屏顶部暖橙 → 浅黄 → background 三段渐变
97
+ // Hero gradient stops —— Me 屏顶部暖橙 → 浅黄 → background 三段渐变。
98
+ // 历史驻留:渐变序列按约定应进 palettes.ts,但 heroGradient 驻 ColorTokens 可随主题
99
+ // 自动切换(消费方无需手动 scheme 分支);迁 palettes 会让消费方须手写 scheme 判断,
100
+ // 属人体工程学回退。新渐变序列一律进 palettes.ts,不要往 colors.ts 追加。
93
101
  /** Hero 渐变第 1 段:暖橙起色。 */
94
102
  heroGradient0: '#FFE3C8',
95
103
  /** Hero 渐变第 2 段(0.55 offset):浅黄过渡。 */
@@ -108,7 +116,7 @@ export type ColorTokens = { [K in keyof typeof lightColors]: string };
108
116
 
109
117
  export const darkColors: ColorTokens = {
110
118
  // Brand
111
- primary: '#EB6E00',
119
+ primary: BRAND_ORANGE,
112
120
  primaryPressed: '#D06200',
113
121
  primaryContainer: '#3D1F00',
114
122
  primaryContainerSubtle: '#2A1500',
@@ -153,6 +161,8 @@ export const darkColors: ColorTokens = {
153
161
  inverseOnSurface: '#000000',
154
162
 
155
163
  // Misc
164
+ /** 暗色加深至 0.7(亮色 0.5):暗色环境底图对比度低、亮部元素更"抢眼",
165
+ * scrim 需更重才能有效压住背景,让前景 sheet / modal 焦点突出。 */
156
166
  scrim: 'rgba(0,0,0,0.7)',
157
167
  /** Sheet backdrop 暗色:沿用亮色同值,合规态保持浅 tint(打破暗色默认深底)让焦点
158
168
  * 聚焦在协议 sheet 上。 */
@@ -160,15 +170,21 @@ export const darkColors: ColorTokens = {
160
170
  // 暗色 0.06 白透,凸起感由 glassBar 暗色黑 0.35 shadow 补
161
171
  glassTintLight: 'rgba(255,255,255,0.06)',
162
172
  glassSeparator: 'rgba(255,255,255,0.10)',
163
- // 深灰半透 0.30,配合 blurAmount=25 让"玻璃门"语义达成
173
+ // 深灰半透 0.30,配合 blur.strong(blurAmount=40) 让"玻璃门"语义达成
164
174
  glassSurface: 'rgba(28,28,30,0.30)',
165
- // 配合 blurAmount=15 让内容透过模糊带 alpha 染色
175
+ // 配合 blur.soft(blurAmount=10) 让内容透过模糊带 alpha 染色
166
176
  tabBarGlassTint: 'rgba(28,28,30,0.18)',
167
177
  glassBorder: 'rgba(255,255,255,0.14)',
168
178
  glassHighlight: 'rgba(255,255,255,0.24)',
179
+ // 暗色降至 0.10(亮色 0.65):暗色 BlurView 背景本身已深,顶部高光过强会破坏玻璃质感
180
+ // 的"透视感"——0.10 轻轻描出上沿即足以传达"凸起"层级。
181
+ // 注:亮色"比 glassHighlight 更强(0.65>0.28)"在暗色刻意反转(0.10<0.24),
182
+ // 两端各自以视觉效果为准,非笔误。
169
183
  glassStatsHighlight: 'rgba(255,255,255,0.10)',
170
184
  // 浅橙,半透深灰玻璃上品牌色更亮起,视觉重量比纯品牌橙轻一档
171
185
  glassActiveFg: '#FFB068',
186
+ // 暗色 brandTint12 与 brandTint14 同值(0.22):亮色 10/12/14 三档在暗底视觉差微弱,
187
+ // 两档合一后对比度差异仍可感知;若后续设计需要恢复阶梯可将 brandTint12 改为 0.18-0.20。
172
188
  brandTint12: 'rgba(235,110,0,0.22)',
173
189
 
174
190
  // Icon faint —— 暗底反相成白色 alpha,数值跟亮色一致
@@ -183,6 +199,7 @@ export const darkColors: ColorTokens = {
183
199
 
184
200
  // Hero gradient stops —— 品牌橙 alpha 渐变。
185
201
  // react-native-svg <Stop stopColor> 支持 rgba 字符串,最终 alpha = rgba.a × stopOpacity。
202
+ // 历史驻留(同亮色注释):新渐变序列一律进 palettes.ts。
186
203
  heroGradient0: 'rgba(235,110,0,0.18)',
187
204
  heroGradient1: 'rgba(235,110,0,0.06)',
188
205
  heroGradient2: '#0A0A0A',
@@ -192,5 +209,7 @@ export const darkColors: ColorTokens = {
192
209
  glassPillBorder: 'rgba(255,255,255,0.12)',
193
210
  };
194
211
 
195
- /** 头像品牌渐变 —— 浅橙 → 主品牌橙,135° 对角线渐变。亮 / 暗共用。 */
196
- export const avatarGradient = ['#F49443', '#EB6E00'] as const;
212
+ /** 头像品牌渐变 —— 浅橙 → 主品牌橙,135° 对角线渐变。亮 / 暗共用。
213
+ * 历史驻留:渐变序列按约定应进 palettes.ts,但亮/暗共用无需 scheme 分支且消费面稳定,
214
+ * 迁移无收益。新渐变序列一律进 palettes.ts。 */
215
+ export const avatarGradient = ['#F49443', BRAND_ORANGE] as const;
@@ -1,4 +1,9 @@
1
- export { lightColors, darkColors, avatarGradient } from './colors';
1
+ export {
2
+ lightColors,
3
+ darkColors,
4
+ avatarGradient,
5
+ BRAND_ORANGE,
6
+ } from './colors';
2
7
  export type { ColorTokens } from './colors';
3
8
 
4
9
  export { warmOrangePalette } from './palettes';
@@ -8,10 +13,13 @@ export type { ShadowTokens } from './shadow';
8
13
 
9
14
  export { ThemeProvider, ThemeContext } from './ThemeProvider';
10
15
  export type { ColorScheme, ThemeContextValue } from './ThemeProvider';
16
+ // ThemeContext 为内部用途导出:若需子树强制主题,优先用 <ThemeProvider forceScheme> 嵌套。
17
+ // 直接自挂 Provider 须保证 value 引用稳定(每渲染新对象会打穿 useThemedStyles 缓存)。
11
18
 
12
19
  export { useTheme, useColors, useShadow } from './useTheme';
13
20
  export { useThemedStyles } from './useThemedStyles';
14
21
  export type { StylesMaker } from './useThemedStyles';
22
+ export { usePrefersReducedMotion } from './usePrefersReducedMotion';
15
23
 
16
24
  export {
17
25
  fontMono,
@@ -25,6 +33,7 @@ export {
25
33
  dim,
26
34
  fixed,
27
35
  motion,
36
+ pressedOpacity,
28
37
  } from './tokens';
29
38
 
30
39
  export { blur } from './blur';
@@ -7,10 +7,14 @@ const DESIGN_WIDTH = 402;
7
7
  * 0.3 对中文字号最友好(避免大屏字过大、小屏字过小)。 */
8
8
  const FONT_FACTOR = 0.3;
9
9
 
10
+ // 取短边而非宽度:横屏/iPad 启动时 width 会是长边(iPhone 17 Pro 874pt),
11
+ // 导致所有 r() 尺寸约翻倍。Math.min(w, h) 使竖屏行为完全不变,
12
+ // 同时收口横屏启动与 iPad Split View(window 宽可能小于 DESIGN_WIDTH)两个场景。
13
+ const { width: _w, height: _h } = Dimensions.get('window');
10
14
  const w =
11
15
  Platform.OS === 'web'
12
16
  ? DESIGN_WIDTH
13
- : Dimensions.get('window').width || DESIGN_WIDTH;
17
+ : Math.min(_w || DESIGN_WIDTH, _h || DESIGN_WIDTH) || DESIGN_WIDTH;
14
18
 
15
19
  /** 实际缩放比。 */
16
20
  const ratio = w / DESIGN_WIDTH;
@@ -4,7 +4,10 @@
4
4
  // 暗色下中性阴影 shadowOpacity / elevation 全部置 0:视觉层次靠 surface 5 层
5
5
  // 明度差表达(layered surface 替代 shadow)。
6
6
 
7
- const BRAND = '#EB6E00';
7
+ import { BRAND_ORANGE } from './colors';
8
+
9
+ // 模块级别名保持历史可读性,同时指向 colors.ts 单一来源。
10
+ const BRAND = BRAND_ORANGE;
8
11
 
9
12
  export const lightShadow = {
10
13
  /** 轻提示浮起 —— Segmented active 段 */
@@ -106,28 +109,34 @@ export const lightShadow = {
106
109
  },
107
110
  } as const;
108
111
 
112
+ // readonly 加到嵌套字段:顶层 key 经同态映射已只读,但嵌套 shadowOffset 字段
113
+ // 在运行时仍可合法赋值(t.card.shadowOffset.height = 5 会静默串改全部共享引用)。
114
+ // 此处显式声明 readonly 让 tsc 在编译期捕获误改。
109
115
  export type ShadowTokens = {
110
- [K in keyof typeof lightShadow]: {
111
- shadowColor: string;
112
- shadowOffset: { width: number; height: number };
113
- shadowOpacity: number;
114
- shadowRadius: number;
115
- elevation: number;
116
+ readonly [K in keyof typeof lightShadow]: {
117
+ readonly shadowColor: string;
118
+ readonly shadowOffset: { readonly width: number; readonly height: number };
119
+ readonly shadowOpacity: number;
120
+ readonly shadowRadius: number;
121
+ readonly elevation: number;
116
122
  };
117
123
  };
118
124
 
119
- /** 暗色统一置零 —— dark theme surface 明度差替代 shadow */
120
- const darkZero = {
121
- shadowOffset: { width: 0, height: 0 },
122
- shadowOpacity: 0,
123
- shadowRadius: 0,
124
- elevation: 0,
125
- };
125
+ // darkZero 辅助函数:每次调用返回独立 offset 对象,消除多 token 共享同一 shadowOffset
126
+ // 引用的隐患——虽然 ShadowTokens readonly 已在类型层阻止赋值,防御深度更好。
127
+ const darkZero = (shadowColor: string) =>
128
+ ({
129
+ shadowColor,
130
+ shadowOffset: { width: 0, height: 0 },
131
+ shadowOpacity: 0,
132
+ shadowRadius: 0,
133
+ elevation: 0,
134
+ }) as const;
126
135
 
127
136
  export const darkShadow: ShadowTokens = {
128
- subtle: { ...darkZero, shadowColor: '#000' },
129
- card: { ...darkZero, shadowColor: '#000' },
130
- /** floating 暗色不走 darkZero:浮动胶囊在暗 bg 上需要黑色 drop shadow,
137
+ subtle: darkZero('#000'),
138
+ card: darkZero('#000'),
139
+ /** floating 暗色不置零:浮动胶囊在暗 bg 上需要黑色 drop shadow,
131
140
  * 否则跟暗背景贴平,视觉无层级。 */
132
141
  floating: {
133
142
  shadowColor: '#000',
@@ -136,12 +145,12 @@ export const darkShadow: ShadowTokens = {
136
145
  shadowRadius: 60,
137
146
  elevation: 16,
138
147
  },
139
- brandSm: { ...darkZero, shadowColor: BRAND },
140
- brandMd: { ...darkZero, shadowColor: BRAND },
141
- brandLg: { ...darkZero, shadowColor: BRAND },
142
- brandXl: { ...darkZero, shadowColor: BRAND },
143
- brandAbout: { ...darkZero, shadowColor: BRAND },
144
- brandAssistant: { ...darkZero, shadowColor: BRAND },
148
+ brandSm: darkZero(BRAND),
149
+ brandMd: darkZero(BRAND),
150
+ brandLg: darkZero(BRAND),
151
+ brandXl: darkZero(BRAND),
152
+ brandAbout: darkZero(BRAND),
153
+ brandAssistant: darkZero(BRAND),
145
154
  /** brandAvatar 暗色不置零:暗色 ring 0.10 几乎隐去,靠橙光晕(0.40 比亮色 0.28 更强)
146
155
  * 托起头像。 */
147
156
  brandAvatar: {
@@ -160,5 +169,5 @@ export const darkShadow: ShadowTokens = {
160
169
  shadowRadius: 18,
161
170
  elevation: 6,
162
171
  },
163
- none: { ...darkZero, shadowColor: 'transparent' },
172
+ none: darkZero('transparent'),
164
173
  };
@@ -17,9 +17,9 @@ export const type = {
17
17
  xs: rf(13),
18
18
  xxs: rf(12),
19
19
  micro: rf(11),
20
- nano: rf(10), // TabBar/Grid/Citation/Sources 角标/小标签 10pt
20
+ nano: rf(10), // TabBar/Grid 角标/小标签 10pt
21
21
  // ── 半档微调(0.5 step,加于"近似 token + delta"反模式收敛) ──
22
- /** micro(11)与 xxs(12)之间:VersionPill / profileCard / Splash / carousel 副标题。 */
22
+ /** micro(11)与 xxs(12)之间:VersionPill / Splash / carousel 副标题。 */
23
23
  microPlus: rf(11.5),
24
24
  /** xs(13)与 sm(14)之间:Privacy 长文阅读字号。 */
25
25
  xsPlus: rf(13.5),
@@ -28,7 +28,7 @@ export const type = {
28
28
  smPlus: rf(14.5),
29
29
  /** Hero 区主标题档(一级 brand hero,带 Logo,Login 屏)。 */
30
30
  heroLg: rf(26),
31
- /** Hero 区中等档(独立屏 + NavBar 的二级 hero,ForgotPassword)。 */
31
+ /** Hero 区中等档(独立屏 + NavBar 的二级 hero)。 */
32
32
  heroMd: rf(22),
33
33
  /** Hero 区小档(承接式 hero,Group 选组/选角色子区)。 */
34
34
  heroSm: rf(18),
@@ -57,7 +57,7 @@ export const space = {
57
57
  } as const;
58
58
 
59
59
  export const radius = {
60
- 'xs': r(4), // Radio/Checkbox/Tag/Citation 内圈 4pt
60
+ 'xs': r(4), // Radio/Checkbox 内圈 4pt
61
61
  'sm': r(6),
62
62
  'md': r(8),
63
63
  'lg': r(10),
@@ -98,7 +98,7 @@ export const control = {
98
98
 
99
99
  /** 散尺寸 —— 未归到 avatar/icon/control 阶梯的单点常量。 */
100
100
  export const dim = {
101
- /** 发送按钮 32px —— chat PromptInput / 主送出按钮专用,与 avatar.md 同值 */
101
+ /** 发送按钮 32px —— 主送出/发送按钮专用,与 avatar.md 同值 */
102
102
  sendBtn: r(32),
103
103
  } as const;
104
104
 
@@ -117,3 +117,8 @@ export const motion = {
117
117
  slow: 300,
118
118
  pulse: 1600,
119
119
  } as const;
120
+
121
+ /** 按压态透明度 —— Pressable pressed 时 opacity 的共享常量。
122
+ * ButtonBase、Chip、Cell、Grid、EntryCard、Tabs、Segmented、TabBar 等
123
+ * 凡需要「按压反馈」的组件统一引用此值,避免散落多处手写 0.7 后不同步。 */
124
+ export const pressedOpacity = 0.7;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * 系统「减弱动态效果」开关。
3
+ *
4
+ * native 端的动画由 reanimated 默认 `ReduceMotion.System` 处理(reduce-motion 下自动
5
+ * 跳到端值),此 hook 只有 web 平台的 CSS/JS 动画需要 —— native 恒返回 false,见 `.web.ts`。
6
+ */
7
+ export function usePrefersReducedMotion(): boolean {
8
+ return false;
9
+ }
@@ -0,0 +1,27 @@
1
+ import { useEffect, useState } from 'react';
2
+
3
+ const QUERY = '(prefers-reduced-motion: reduce)';
4
+
5
+ // tsconfig 不带 DOM lib(库本体是 RN),用 globalThis 兜底访问浏览器 matchMedia,
6
+ // 类型用 any 通过 strict(本文件只在 web bundle 命中,window 一定有)。
7
+ const win: any = globalThis as any;
8
+
9
+ /**
10
+ * web:监听系统「减弱动态效果」开关,返回当前是否开启;开关变化时自动更新。
11
+ * native 端走 reanimated 的 `ReduceMotion.System`,对应 `.ts` 版恒返回 false。
12
+ */
13
+ export function usePrefersReducedMotion(): boolean {
14
+ const [reduced, setReduced] = useState<boolean>(() =>
15
+ typeof win.matchMedia === 'function' ? win.matchMedia(QUERY).matches : false
16
+ );
17
+
18
+ useEffect(() => {
19
+ if (typeof win.matchMedia !== 'function') return;
20
+ const mq = win.matchMedia(QUERY);
21
+ const onChange = () => setReduced(mq.matches);
22
+ mq.addEventListener('change', onChange);
23
+ return () => mq.removeEventListener('change', onChange);
24
+ }, []);
25
+
26
+ return reduced;
27
+ }
@@ -9,8 +9,23 @@ const FALLBACK: ThemeContextValue = {
9
9
  shadow: lightShadow,
10
10
  };
11
11
 
12
+ // 静默回退而非 throw:FALLBACK 是模块级稳定引用,useThemedStyles 缓存契约不受影响。
13
+ // 缺点:漏包 ThemeProvider 时整 app 永远 light、暗色失效且零信号——
14
+ // 因此在 dev 下一次性告警提示接入方补 Provider。
15
+ // 用 typeof __DEV__ 守卫:裸 __DEV__ 在非 Metro 打包器(Webpack/Next.js)下会 ReferenceError,
16
+ // logger.ts:12 已有同等先例。
17
+ let _warnedMissingProvider = false;
18
+
12
19
  export function useTheme(): ThemeContextValue {
13
20
  const ctx = useContext(ThemeContext);
21
+ if (ctx === undefined && !_warnedMissingProvider) {
22
+ _warnedMissingProvider = true;
23
+ if (typeof __DEV__ !== 'undefined' && __DEV__) {
24
+ console.warn(
25
+ '[unif/theme] useTheme: ThemeContext 未找到 —— 请在 app 根部渲染 <ThemeProvider>,否则暗色切换不生效。'
26
+ );
27
+ }
28
+ }
14
29
  return ctx ?? FALLBACK;
15
30
  }
16
31
 
@@ -61,9 +61,13 @@ export function getLogLevel(): LogLevel {
61
61
 
62
62
  export function addTransport(t: LogTransport): void {
63
63
  removeTransport(t.id);
64
- state.transports.push(t);
64
+ // push 后立即赋新数组:保证 emit 的 for-of 迭代期间若调用 addTransport,
65
+ // 迭代的旧快照不受影响(重入安全)。
66
+ state.transports = [...state.transports, t];
65
67
  }
66
68
 
67
69
  export function removeTransport(id: string): void {
70
+ // filter 返回新数组,不原地变更 —— 保证 emit 的 for-of 迭代期间若调用
71
+ // removeTransport(自移除等场景),迭代的旧快照仍完整走完(重入安全)。
68
72
  state.transports = state.transports.filter((t) => t.id !== id);
69
73
  }
@@ -1,17 +1,20 @@
1
1
  /**
2
2
  * `childTestID` —— 把"父 testID + 子 id → 子 testID"的拼接逻辑收口。
3
3
  *
4
- * 业务侧 7 处 list-like 组件(Tabs / Segmented / TabBar / Grid / Task /
5
- * Sources / ChainOfThought)重复同一三元:
4
+ * 本仓已接入的 list-like 组件(Tabs / Segmented / TabBar / Grid)原来各自重复:
6
5
  *
7
6
  * ```ts
8
7
  * const itemTestID = item.testID ?? (testID ? `${testID}-${item.id}` : undefined);
9
8
  * ```
10
9
  *
11
10
  * 抽 helper:
12
- * - `override` 命中 → 用 caller 显式指定
11
+ * - `override` 命中(truthy)→ 用 caller 显式指定
13
12
  * - 父 `parent` 缺失 → undefined(testID 不强制)
14
13
  * - 都没问题 → `{parent}-{id}` 拼接
14
+ *
15
+ * 注意:与旧式 `??` 不同,**空串 override 视为未提供、回落拼接**。
16
+ * 这是刻意设计:空 testID 没有语义价值,用例已钉死此边界
17
+ * (`__tests__/utils/testID.test.ts:31-33`),勿改回 `??` 判定。
15
18
  */
16
19
  export function childTestID(
17
20
  parent: string | undefined,
@@ -1,5 +0,0 @@
1
- "use strict";
2
-
3
- export * from "./ui/index.js";
4
- export * from "./business/index.js";
5
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":[],"sourceRoot":"../../../src","sources":["components/index.ts"],"mappings":";;AAAA,cAAc,eAAM;AACpB,cAAc,qBAAY","ignoreList":[]}
@@ -1,3 +0,0 @@
1
- export * from './ui';
2
- export * from './business';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,MAAM,CAAC;AACrB,cAAc,YAAY,CAAC"}
@@ -1,2 +0,0 @@
1
- export * from './ui';
2
- export * from './business';