orn-ui 0.2.10 → 0.3.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 (552) hide show
  1. package/AGENTS.md +66 -51
  2. package/README.md +3 -7
  3. package/lib/commonjs/atoms/Avatar.js +77 -5
  4. package/lib/commonjs/atoms/Avatar.js.map +1 -1
  5. package/lib/commonjs/atoms/Badge.js +17 -8
  6. package/lib/commonjs/atoms/Badge.js.map +1 -1
  7. package/lib/commonjs/atoms/Button.js +108 -39
  8. package/lib/commonjs/atoms/Button.js.map +1 -1
  9. package/lib/commonjs/atoms/Card.js +24 -2
  10. package/lib/commonjs/atoms/Card.js.map +1 -1
  11. package/lib/commonjs/atoms/Checkbox.js +41 -10
  12. package/lib/commonjs/atoms/Checkbox.js.map +1 -1
  13. package/lib/commonjs/atoms/Divider.js +30 -5
  14. package/lib/commonjs/atoms/Divider.js.map +1 -1
  15. package/lib/commonjs/atoms/EmptyState.js +58 -20
  16. package/lib/commonjs/atoms/EmptyState.js.map +1 -1
  17. package/lib/commonjs/atoms/Fab.js +32 -12
  18. package/lib/commonjs/atoms/Fab.js.map +1 -1
  19. package/lib/commonjs/atoms/Gradient.js +102 -36
  20. package/lib/commonjs/atoms/Gradient.js.map +1 -1
  21. package/lib/commonjs/atoms/IconButton.js +25 -4
  22. package/lib/commonjs/atoms/IconButton.js.map +1 -1
  23. package/lib/commonjs/atoms/Image.js +61 -25
  24. package/lib/commonjs/atoms/Image.js.map +1 -1
  25. package/lib/commonjs/atoms/Input.js +105 -17
  26. package/lib/commonjs/atoms/Input.js.map +1 -1
  27. package/lib/commonjs/atoms/KeyValueRow.js +37 -9
  28. package/lib/commonjs/atoms/KeyValueRow.js.map +1 -1
  29. package/lib/commonjs/atoms/PressableScale.js +25 -5
  30. package/lib/commonjs/atoms/PressableScale.js.map +1 -1
  31. package/lib/commonjs/atoms/ShinyText.js +29 -29
  32. package/lib/commonjs/atoms/Skeleton.js +28 -13
  33. package/lib/commonjs/atoms/Skeleton.js.map +1 -1
  34. package/lib/commonjs/atoms/Spinner.js +81 -22
  35. package/lib/commonjs/atoms/Spinner.js.map +1 -1
  36. package/lib/commonjs/atoms/Text.js +56 -5
  37. package/lib/commonjs/atoms/Text.js.map +1 -1
  38. package/lib/commonjs/atoms/Transition.js +46 -43
  39. package/lib/commonjs/atoms/Transition.js.map +1 -1
  40. package/lib/commonjs/atoms/index.js +6 -0
  41. package/lib/commonjs/atoms/index.js.map +1 -1
  42. package/lib/commonjs/atoms/inputValidation.js +56 -0
  43. package/lib/commonjs/atoms/inputValidation.js.map +1 -0
  44. package/lib/commonjs/icons/Icon.js +4 -4
  45. package/lib/commonjs/icons/defaultIcons.js +576 -24
  46. package/lib/commonjs/icons/defaultIcons.js.map +1 -1
  47. package/lib/commonjs/icons/index.js +6 -0
  48. package/lib/commonjs/icons/index.js.map +1 -1
  49. package/lib/commonjs/molecules/AvatarHeader.js +47 -14
  50. package/lib/commonjs/molecules/AvatarHeader.js.map +1 -1
  51. package/lib/commonjs/molecules/FormActions.js +25 -9
  52. package/lib/commonjs/molecules/FormActions.js.map +1 -1
  53. package/lib/commonjs/molecules/InfoRow.js +30 -14
  54. package/lib/commonjs/molecules/InfoRow.js.map +1 -1
  55. package/lib/commonjs/molecules/OptionCard.js +37 -22
  56. package/lib/commonjs/molecules/OptionCard.js.map +1 -1
  57. package/lib/commonjs/molecules/SegmentedControl.js +103 -14
  58. package/lib/commonjs/molecules/SegmentedControl.js.map +1 -1
  59. package/lib/commonjs/molecules/Stepper.js +61 -16
  60. package/lib/commonjs/molecules/Stepper.js.map +1 -1
  61. package/lib/commonjs/molecules/Steps.js +105 -41
  62. package/lib/commonjs/molecules/Steps.js.map +1 -1
  63. package/lib/commonjs/molecules/SymmetricGrid.js +26 -18
  64. package/lib/commonjs/molecules/SymmetricGrid.js.map +1 -1
  65. package/lib/commonjs/organisms/Alert.js +49 -35
  66. package/lib/commonjs/organisms/Alert.js.map +1 -1
  67. package/lib/commonjs/organisms/AlertProvider.js +10 -10
  68. package/lib/commonjs/organisms/BottomSheet.js +137 -85
  69. package/lib/commonjs/organisms/BottomSheet.js.map +1 -1
  70. package/lib/commonjs/organisms/Chart.js +174 -154
  71. package/lib/commonjs/organisms/Chart.js.map +1 -1
  72. package/lib/commonjs/organisms/DateField.js +36 -20
  73. package/lib/commonjs/organisms/DateField.js.map +1 -1
  74. package/lib/commonjs/organisms/DatePicker.js +56 -33
  75. package/lib/commonjs/organisms/DatePicker.js.map +1 -1
  76. package/lib/commonjs/organisms/List.js +62 -34
  77. package/lib/commonjs/organisms/List.js.map +1 -1
  78. package/lib/commonjs/organisms/Modal.js +120 -82
  79. package/lib/commonjs/organisms/Modal.js.map +1 -1
  80. package/lib/commonjs/organisms/NavigationBar.js +63 -24
  81. package/lib/commonjs/organisms/NavigationBar.js.map +1 -1
  82. package/lib/commonjs/organisms/OptionWheel.js +64 -64
  83. package/lib/commonjs/organisms/OptionWheel.js.map +1 -1
  84. package/lib/commonjs/organisms/ReorderableList.js +48 -27
  85. package/lib/commonjs/organisms/ReorderableList.js.map +1 -1
  86. package/lib/commonjs/organisms/Screen.js +68 -35
  87. package/lib/commonjs/organisms/Screen.js.map +1 -1
  88. package/lib/commonjs/organisms/SearchList.js +56 -26
  89. package/lib/commonjs/organisms/SearchList.js.map +1 -1
  90. package/lib/commonjs/organisms/Select.js +45 -24
  91. package/lib/commonjs/organisms/Select.js.map +1 -1
  92. package/lib/commonjs/organisms/Slides.js +36 -23
  93. package/lib/commonjs/organisms/Slides.js.map +1 -1
  94. package/lib/commonjs/organisms/ThemeToggle.js +10 -9
  95. package/lib/commonjs/organisms/ThemeToggle.js.map +1 -1
  96. package/lib/commonjs/organisms/Timeline.js +73 -56
  97. package/lib/commonjs/organisms/Timeline.js.map +1 -1
  98. package/lib/commonjs/organisms/Toast.js +46 -15
  99. package/lib/commonjs/organisms/Toast.js.map +1 -1
  100. package/lib/commonjs/organisms/ToastProvider.js +14 -10
  101. package/lib/commonjs/organisms/ToastProvider.js.map +1 -1
  102. package/lib/commonjs/organisms/Wizard.js +40 -15
  103. package/lib/commonjs/organisms/Wizard.js.map +1 -1
  104. package/lib/commonjs/organisms/chart/frame.js +25 -25
  105. package/lib/commonjs/organisms/chart/frame.js.map +1 -1
  106. package/lib/commonjs/organisms/chart/marks.js +42 -42
  107. package/lib/commonjs/organisms/chart/math.js +84 -85
  108. package/lib/commonjs/organisms/chart/math.js.map +1 -1
  109. package/lib/commonjs/organisms/chart/palette.js +28 -28
  110. package/lib/commonjs/organisms/imperativeBridge.js +5 -5
  111. package/lib/commonjs/organisms/imperativeBridge.js.map +1 -1
  112. package/lib/commonjs/organisms/useSlides.js +53 -21
  113. package/lib/commonjs/organisms/useSlides.js.map +1 -1
  114. package/lib/commonjs/safe-area/SafeAreaUIProvider.js +9 -66
  115. package/lib/commonjs/safe-area/SafeAreaUIProvider.js.map +1 -1
  116. package/lib/commonjs/safe-area/index.js.map +1 -1
  117. package/lib/commonjs/theme/KeyboardAvoidance.js +206 -0
  118. package/lib/commonjs/theme/KeyboardAvoidance.js.map +1 -0
  119. package/lib/commonjs/theme/NativeOverlay.js +263 -0
  120. package/lib/commonjs/theme/NativeOverlay.js.map +1 -0
  121. package/lib/commonjs/theme/UIProvider.js +86 -33
  122. package/lib/commonjs/theme/UIProvider.js.map +1 -1
  123. package/lib/commonjs/theme/colors.js +17 -17
  124. package/lib/commonjs/theme/colors.js.map +1 -1
  125. package/lib/commonjs/theme/createStyles.js +19 -16
  126. package/lib/commonjs/theme/createStyles.js.map +1 -1
  127. package/lib/commonjs/theme/createTheme.js +6 -6
  128. package/lib/commonjs/theme/index.js +6 -0
  129. package/lib/commonjs/theme/index.js.map +1 -1
  130. package/lib/commonjs/theme/insets.js +1 -1
  131. package/lib/commonjs/theme/labels.js +29 -1
  132. package/lib/commonjs/theme/labels.js.map +1 -1
  133. package/lib/commonjs/theme/palettes.js +25 -23
  134. package/lib/commonjs/theme/palettes.js.map +1 -1
  135. package/lib/commonjs/theme/tokens.js +28 -14
  136. package/lib/commonjs/theme/tokens.js.map +1 -1
  137. package/lib/commonjs/theme/useKeyboardField.js +36 -0
  138. package/lib/commonjs/theme/useKeyboardField.js.map +1 -0
  139. package/lib/commonjs/theme/useReduceMotion.js +31 -0
  140. package/lib/commonjs/theme/useReduceMotion.js.map +1 -0
  141. package/lib/module/atoms/Avatar.js +79 -8
  142. package/lib/module/atoms/Avatar.js.map +1 -1
  143. package/lib/module/atoms/Badge.js +17 -8
  144. package/lib/module/atoms/Badge.js.map +1 -1
  145. package/lib/module/atoms/Button.js +110 -41
  146. package/lib/module/atoms/Button.js.map +1 -1
  147. package/lib/module/atoms/Card.js +24 -2
  148. package/lib/module/atoms/Card.js.map +1 -1
  149. package/lib/module/atoms/Checkbox.js +42 -11
  150. package/lib/module/atoms/Checkbox.js.map +1 -1
  151. package/lib/module/atoms/Divider.js +31 -6
  152. package/lib/module/atoms/Divider.js.map +1 -1
  153. package/lib/module/atoms/EmptyState.js +58 -20
  154. package/lib/module/atoms/EmptyState.js.map +1 -1
  155. package/lib/module/atoms/Fab.js +33 -13
  156. package/lib/module/atoms/Fab.js.map +1 -1
  157. package/lib/module/atoms/Gradient.js +103 -37
  158. package/lib/module/atoms/Gradient.js.map +1 -1
  159. package/lib/module/atoms/IconButton.js +25 -4
  160. package/lib/module/atoms/IconButton.js.map +1 -1
  161. package/lib/module/atoms/Image.js +61 -25
  162. package/lib/module/atoms/Image.js.map +1 -1
  163. package/lib/module/atoms/Input.js +108 -20
  164. package/lib/module/atoms/Input.js.map +1 -1
  165. package/lib/module/atoms/KeyValueRow.js +37 -9
  166. package/lib/module/atoms/KeyValueRow.js.map +1 -1
  167. package/lib/module/atoms/PressableScale.js +25 -5
  168. package/lib/module/atoms/PressableScale.js.map +1 -1
  169. package/lib/module/atoms/ShinyText.js +29 -29
  170. package/lib/module/atoms/Skeleton.js +30 -13
  171. package/lib/module/atoms/Skeleton.js.map +1 -1
  172. package/lib/module/atoms/Spinner.js +82 -23
  173. package/lib/module/atoms/Spinner.js.map +1 -1
  174. package/lib/module/atoms/Text.js +56 -5
  175. package/lib/module/atoms/Text.js.map +1 -1
  176. package/lib/module/atoms/Transition.js +41 -42
  177. package/lib/module/atoms/Transition.js.map +1 -1
  178. package/lib/module/atoms/index.js +1 -1
  179. package/lib/module/atoms/index.js.map +1 -1
  180. package/lib/module/atoms/inputValidation.js +52 -0
  181. package/lib/module/atoms/inputValidation.js.map +1 -0
  182. package/lib/module/icons/Icon.js +4 -4
  183. package/lib/module/icons/defaultIcons.js +574 -24
  184. package/lib/module/icons/defaultIcons.js.map +1 -1
  185. package/lib/module/icons/index.js +1 -1
  186. package/lib/module/icons/index.js.map +1 -1
  187. package/lib/module/molecules/AvatarHeader.js +47 -14
  188. package/lib/module/molecules/AvatarHeader.js.map +1 -1
  189. package/lib/module/molecules/FormActions.js +25 -9
  190. package/lib/module/molecules/FormActions.js.map +1 -1
  191. package/lib/module/molecules/InfoRow.js +30 -14
  192. package/lib/module/molecules/InfoRow.js.map +1 -1
  193. package/lib/module/molecules/OptionCard.js +37 -22
  194. package/lib/module/molecules/OptionCard.js.map +1 -1
  195. package/lib/module/molecules/SegmentedControl.js +107 -18
  196. package/lib/module/molecules/SegmentedControl.js.map +1 -1
  197. package/lib/module/molecules/Stepper.js +63 -18
  198. package/lib/module/molecules/Stepper.js.map +1 -1
  199. package/lib/module/molecules/Steps.js +107 -43
  200. package/lib/module/molecules/Steps.js.map +1 -1
  201. package/lib/module/molecules/SymmetricGrid.js +26 -18
  202. package/lib/module/molecules/SymmetricGrid.js.map +1 -1
  203. package/lib/module/organisms/Alert.js +51 -37
  204. package/lib/module/organisms/Alert.js.map +1 -1
  205. package/lib/module/organisms/AlertProvider.js +10 -10
  206. package/lib/module/organisms/BottomSheet.js +142 -88
  207. package/lib/module/organisms/BottomSheet.js.map +1 -1
  208. package/lib/module/organisms/Chart.js +176 -156
  209. package/lib/module/organisms/Chart.js.map +1 -1
  210. package/lib/module/organisms/DateField.js +36 -20
  211. package/lib/module/organisms/DateField.js.map +1 -1
  212. package/lib/module/organisms/DatePicker.js +56 -33
  213. package/lib/module/organisms/DatePicker.js.map +1 -1
  214. package/lib/module/organisms/List.js +62 -34
  215. package/lib/module/organisms/List.js.map +1 -1
  216. package/lib/module/organisms/Modal.js +122 -84
  217. package/lib/module/organisms/Modal.js.map +1 -1
  218. package/lib/module/organisms/NavigationBar.js +64 -25
  219. package/lib/module/organisms/NavigationBar.js.map +1 -1
  220. package/lib/module/organisms/OptionWheel.js +64 -64
  221. package/lib/module/organisms/OptionWheel.js.map +1 -1
  222. package/lib/module/organisms/ReorderableList.js +48 -27
  223. package/lib/module/organisms/ReorderableList.js.map +1 -1
  224. package/lib/module/organisms/Screen.js +70 -37
  225. package/lib/module/organisms/Screen.js.map +1 -1
  226. package/lib/module/organisms/SearchList.js +56 -26
  227. package/lib/module/organisms/SearchList.js.map +1 -1
  228. package/lib/module/organisms/Select.js +46 -25
  229. package/lib/module/organisms/Select.js.map +1 -1
  230. package/lib/module/organisms/Slides.js +37 -24
  231. package/lib/module/organisms/Slides.js.map +1 -1
  232. package/lib/module/organisms/ThemeToggle.js +11 -10
  233. package/lib/module/organisms/ThemeToggle.js.map +1 -1
  234. package/lib/module/organisms/Timeline.js +73 -56
  235. package/lib/module/organisms/Timeline.js.map +1 -1
  236. package/lib/module/organisms/Toast.js +47 -16
  237. package/lib/module/organisms/Toast.js.map +1 -1
  238. package/lib/module/organisms/ToastProvider.js +15 -11
  239. package/lib/module/organisms/ToastProvider.js.map +1 -1
  240. package/lib/module/organisms/Wizard.js +41 -16
  241. package/lib/module/organisms/Wizard.js.map +1 -1
  242. package/lib/module/organisms/chart/frame.js +25 -25
  243. package/lib/module/organisms/chart/frame.js.map +1 -1
  244. package/lib/module/organisms/chart/marks.js +42 -42
  245. package/lib/module/organisms/chart/math.js +84 -85
  246. package/lib/module/organisms/chart/math.js.map +1 -1
  247. package/lib/module/organisms/chart/palette.js +28 -28
  248. package/lib/module/organisms/imperativeBridge.js +5 -5
  249. package/lib/module/organisms/imperativeBridge.js.map +1 -1
  250. package/lib/module/organisms/useSlides.js +53 -21
  251. package/lib/module/organisms/useSlides.js.map +1 -1
  252. package/lib/module/safe-area/SafeAreaUIProvider.js +10 -65
  253. package/lib/module/safe-area/SafeAreaUIProvider.js.map +1 -1
  254. package/lib/module/safe-area/index.js +1 -0
  255. package/lib/module/safe-area/index.js.map +1 -1
  256. package/lib/module/theme/KeyboardAvoidance.js +198 -0
  257. package/lib/module/theme/KeyboardAvoidance.js.map +1 -0
  258. package/lib/module/theme/NativeOverlay.js +257 -0
  259. package/lib/module/theme/NativeOverlay.js.map +1 -0
  260. package/lib/module/theme/UIProvider.js +88 -35
  261. package/lib/module/theme/UIProvider.js.map +1 -1
  262. package/lib/module/theme/colors.js +17 -17
  263. package/lib/module/theme/colors.js.map +1 -1
  264. package/lib/module/theme/createStyles.js +20 -16
  265. package/lib/module/theme/createStyles.js.map +1 -1
  266. package/lib/module/theme/createTheme.js +6 -6
  267. package/lib/module/theme/index.js +1 -1
  268. package/lib/module/theme/index.js.map +1 -1
  269. package/lib/module/theme/insets.js +1 -1
  270. package/lib/module/theme/labels.js +29 -1
  271. package/lib/module/theme/labels.js.map +1 -1
  272. package/lib/module/theme/palettes.js +25 -23
  273. package/lib/module/theme/palettes.js.map +1 -1
  274. package/lib/module/theme/tokens.js +27 -13
  275. package/lib/module/theme/tokens.js.map +1 -1
  276. package/lib/module/theme/useKeyboardField.js +33 -0
  277. package/lib/module/theme/useKeyboardField.js.map +1 -0
  278. package/lib/module/theme/useReduceMotion.js +28 -0
  279. package/lib/module/theme/useReduceMotion.js.map +1 -0
  280. package/lib/typescript/atoms/Avatar.d.ts +35 -5
  281. package/lib/typescript/atoms/Avatar.d.ts.map +1 -1
  282. package/lib/typescript/atoms/Badge.d.ts +14 -3
  283. package/lib/typescript/atoms/Badge.d.ts.map +1 -1
  284. package/lib/typescript/atoms/Button.d.ts +34 -3
  285. package/lib/typescript/atoms/Button.d.ts.map +1 -1
  286. package/lib/typescript/atoms/Card.d.ts +13 -2
  287. package/lib/typescript/atoms/Card.d.ts.map +1 -1
  288. package/lib/typescript/atoms/Checkbox.d.ts +26 -1
  289. package/lib/typescript/atoms/Checkbox.d.ts.map +1 -1
  290. package/lib/typescript/atoms/Divider.d.ts +18 -1
  291. package/lib/typescript/atoms/Divider.d.ts.map +1 -1
  292. package/lib/typescript/atoms/EmptyState.d.ts +30 -3
  293. package/lib/typescript/atoms/EmptyState.d.ts.map +1 -1
  294. package/lib/typescript/atoms/Fab.d.ts +24 -4
  295. package/lib/typescript/atoms/Fab.d.ts.map +1 -1
  296. package/lib/typescript/atoms/Gradient.d.ts +21 -15
  297. package/lib/typescript/atoms/Gradient.d.ts.map +1 -1
  298. package/lib/typescript/atoms/IconButton.d.ts +18 -4
  299. package/lib/typescript/atoms/IconButton.d.ts.map +1 -1
  300. package/lib/typescript/atoms/Image.d.ts +39 -17
  301. package/lib/typescript/atoms/Image.d.ts.map +1 -1
  302. package/lib/typescript/atoms/Input.d.ts +57 -7
  303. package/lib/typescript/atoms/Input.d.ts.map +1 -1
  304. package/lib/typescript/atoms/KeyValueRow.d.ts +16 -4
  305. package/lib/typescript/atoms/KeyValueRow.d.ts.map +1 -1
  306. package/lib/typescript/atoms/PressableScale.d.ts +12 -5
  307. package/lib/typescript/atoms/PressableScale.d.ts.map +1 -1
  308. package/lib/typescript/atoms/ShinyText.d.ts +17 -17
  309. package/lib/typescript/atoms/ShinyText.d.ts.map +1 -1
  310. package/lib/typescript/atoms/Skeleton.d.ts +12 -7
  311. package/lib/typescript/atoms/Skeleton.d.ts.map +1 -1
  312. package/lib/typescript/atoms/Spinner.d.ts +29 -1
  313. package/lib/typescript/atoms/Spinner.d.ts.map +1 -1
  314. package/lib/typescript/atoms/Text.d.ts +46 -0
  315. package/lib/typescript/atoms/Text.d.ts.map +1 -1
  316. package/lib/typescript/atoms/Transition.d.ts +19 -15
  317. package/lib/typescript/atoms/Transition.d.ts.map +1 -1
  318. package/lib/typescript/atoms/index.d.ts +3 -3
  319. package/lib/typescript/atoms/index.d.ts.map +1 -1
  320. package/lib/typescript/atoms/inputValidation.d.ts +29 -0
  321. package/lib/typescript/atoms/inputValidation.d.ts.map +1 -0
  322. package/lib/typescript/icons/Icon.d.ts +4 -4
  323. package/lib/typescript/icons/defaultIcons.d.ts +19 -2
  324. package/lib/typescript/icons/defaultIcons.d.ts.map +1 -1
  325. package/lib/typescript/icons/index.d.ts +2 -2
  326. package/lib/typescript/icons/index.d.ts.map +1 -1
  327. package/lib/typescript/icons/types.d.ts +13 -3
  328. package/lib/typescript/icons/types.d.ts.map +1 -1
  329. package/lib/typescript/molecules/AvatarHeader.d.ts +23 -4
  330. package/lib/typescript/molecules/AvatarHeader.d.ts.map +1 -1
  331. package/lib/typescript/molecules/FormActions.d.ts +21 -4
  332. package/lib/typescript/molecules/FormActions.d.ts.map +1 -1
  333. package/lib/typescript/molecules/InfoRow.d.ts +17 -3
  334. package/lib/typescript/molecules/InfoRow.d.ts.map +1 -1
  335. package/lib/typescript/molecules/OptionCard.d.ts +20 -5
  336. package/lib/typescript/molecules/OptionCard.d.ts.map +1 -1
  337. package/lib/typescript/molecules/SegmentedControl.d.ts +18 -2
  338. package/lib/typescript/molecules/SegmentedControl.d.ts.map +1 -1
  339. package/lib/typescript/molecules/Stepper.d.ts +23 -7
  340. package/lib/typescript/molecules/Stepper.d.ts.map +1 -1
  341. package/lib/typescript/molecules/Steps.d.ts +18 -4
  342. package/lib/typescript/molecules/Steps.d.ts.map +1 -1
  343. package/lib/typescript/molecules/SymmetricGrid.d.ts +15 -5
  344. package/lib/typescript/molecules/SymmetricGrid.d.ts.map +1 -1
  345. package/lib/typescript/organisms/Alert.d.ts +28 -2
  346. package/lib/typescript/organisms/Alert.d.ts.map +1 -1
  347. package/lib/typescript/organisms/AlertProvider.d.ts +10 -10
  348. package/lib/typescript/organisms/AlertProvider.d.ts.map +1 -1
  349. package/lib/typescript/organisms/BottomSheet.d.ts +20 -5
  350. package/lib/typescript/organisms/BottomSheet.d.ts.map +1 -1
  351. package/lib/typescript/organisms/Chart.d.ts +86 -75
  352. package/lib/typescript/organisms/Chart.d.ts.map +1 -1
  353. package/lib/typescript/organisms/DateField.d.ts +17 -3
  354. package/lib/typescript/organisms/DateField.d.ts.map +1 -1
  355. package/lib/typescript/organisms/DatePicker.d.ts +7 -11
  356. package/lib/typescript/organisms/DatePicker.d.ts.map +1 -1
  357. package/lib/typescript/organisms/List.d.ts +30 -3
  358. package/lib/typescript/organisms/List.d.ts.map +1 -1
  359. package/lib/typescript/organisms/Modal.d.ts +30 -3
  360. package/lib/typescript/organisms/Modal.d.ts.map +1 -1
  361. package/lib/typescript/organisms/NavigationBar.d.ts +26 -7
  362. package/lib/typescript/organisms/NavigationBar.d.ts.map +1 -1
  363. package/lib/typescript/organisms/OptionWheel.d.ts +20 -16
  364. package/lib/typescript/organisms/OptionWheel.d.ts.map +1 -1
  365. package/lib/typescript/organisms/ReorderableList.d.ts +20 -11
  366. package/lib/typescript/organisms/ReorderableList.d.ts.map +1 -1
  367. package/lib/typescript/organisms/Screen.d.ts +27 -8
  368. package/lib/typescript/organisms/Screen.d.ts.map +1 -1
  369. package/lib/typescript/organisms/SearchList.d.ts +46 -3
  370. package/lib/typescript/organisms/SearchList.d.ts.map +1 -1
  371. package/lib/typescript/organisms/Select.d.ts +26 -6
  372. package/lib/typescript/organisms/Select.d.ts.map +1 -1
  373. package/lib/typescript/organisms/Slides.d.ts +44 -26
  374. package/lib/typescript/organisms/Slides.d.ts.map +1 -1
  375. package/lib/typescript/organisms/ThemeToggle.d.ts +6 -2
  376. package/lib/typescript/organisms/ThemeToggle.d.ts.map +1 -1
  377. package/lib/typescript/organisms/Timeline.d.ts +26 -9
  378. package/lib/typescript/organisms/Timeline.d.ts.map +1 -1
  379. package/lib/typescript/organisms/Toast.d.ts +19 -4
  380. package/lib/typescript/organisms/Toast.d.ts.map +1 -1
  381. package/lib/typescript/organisms/ToastProvider.d.ts +8 -8
  382. package/lib/typescript/organisms/ToastProvider.d.ts.map +1 -1
  383. package/lib/typescript/organisms/Wizard.d.ts +24 -6
  384. package/lib/typescript/organisms/Wizard.d.ts.map +1 -1
  385. package/lib/typescript/organisms/chart/frame.d.ts +21 -21
  386. package/lib/typescript/organisms/chart/frame.d.ts.map +1 -1
  387. package/lib/typescript/organisms/chart/marks.d.ts +28 -28
  388. package/lib/typescript/organisms/chart/marks.d.ts.map +1 -1
  389. package/lib/typescript/organisms/chart/math.d.ts +69 -70
  390. package/lib/typescript/organisms/chart/math.d.ts.map +1 -1
  391. package/lib/typescript/organisms/chart/palette.d.ts +2 -2
  392. package/lib/typescript/organisms/chart/palette.d.ts.map +1 -1
  393. package/lib/typescript/organisms/imperativeBridge.d.ts +4 -4
  394. package/lib/typescript/organisms/useSlides.d.ts +8 -16
  395. package/lib/typescript/organisms/useSlides.d.ts.map +1 -1
  396. package/lib/typescript/safe-area/SafeAreaUIProvider.d.ts +9 -7
  397. package/lib/typescript/safe-area/SafeAreaUIProvider.d.ts.map +1 -1
  398. package/lib/typescript/safe-area/index.d.ts.map +1 -1
  399. package/lib/typescript/theme/KeyboardAvoidance.d.ts +62 -0
  400. package/lib/typescript/theme/KeyboardAvoidance.d.ts.map +1 -0
  401. package/lib/typescript/theme/NativeOverlay.d.ts +43 -0
  402. package/lib/typescript/theme/NativeOverlay.d.ts.map +1 -0
  403. package/lib/typescript/theme/UIProvider.d.ts +38 -20
  404. package/lib/typescript/theme/UIProvider.d.ts.map +1 -1
  405. package/lib/typescript/theme/colors.d.ts +13 -13
  406. package/lib/typescript/theme/colors.d.ts.map +1 -1
  407. package/lib/typescript/theme/createStyles.d.ts +20 -14
  408. package/lib/typescript/theme/createStyles.d.ts.map +1 -1
  409. package/lib/typescript/theme/createTheme.d.ts +5 -5
  410. package/lib/typescript/theme/index.d.ts +1 -1
  411. package/lib/typescript/theme/index.d.ts.map +1 -1
  412. package/lib/typescript/theme/insets.d.ts +1 -1
  413. package/lib/typescript/theme/insets.d.ts.map +1 -1
  414. package/lib/typescript/theme/labels.d.ts +57 -2
  415. package/lib/typescript/theme/labels.d.ts.map +1 -1
  416. package/lib/typescript/theme/palettes.d.ts +25 -19
  417. package/lib/typescript/theme/palettes.d.ts.map +1 -1
  418. package/lib/typescript/theme/tokens.d.ts +15 -8
  419. package/lib/typescript/theme/tokens.d.ts.map +1 -1
  420. package/lib/typescript/theme/types.d.ts +7 -7
  421. package/lib/typescript/theme/types.d.ts.map +1 -1
  422. package/lib/typescript/theme/useKeyboardField.d.ts +17 -0
  423. package/lib/typescript/theme/useKeyboardField.d.ts.map +1 -0
  424. package/lib/typescript/theme/useReduceMotion.d.ts +7 -0
  425. package/lib/typescript/theme/useReduceMotion.d.ts.map +1 -0
  426. package/llms.txt +4 -4
  427. package/package.json +15 -14
  428. package/registry/alert-provider.json +4 -3
  429. package/registry/alert.json +3 -2
  430. package/registry/avatar-header.json +1 -1
  431. package/registry/avatar.json +3 -2
  432. package/registry/badge.json +1 -1
  433. package/registry/bottom-sheet.json +1 -1
  434. package/registry/button.json +3 -2
  435. package/registry/card.json +1 -1
  436. package/registry/chart.json +5 -5
  437. package/registry/checkbox.json +3 -2
  438. package/registry/core.json +31 -15
  439. package/registry/date-field.json +1 -1
  440. package/registry/date-picker.json +3 -2
  441. package/registry/divider.json +1 -1
  442. package/registry/empty-state.json +4 -2
  443. package/registry/fab.json +3 -2
  444. package/registry/form-actions.json +3 -2
  445. package/registry/gradient.json +1 -1
  446. package/registry/icon-button.json +3 -2
  447. package/registry/image.json +1 -1
  448. package/registry/index.json +79 -61
  449. package/registry/info-row.json +1 -1
  450. package/registry/input.json +5 -1
  451. package/registry/key-value-row.json +1 -1
  452. package/registry/list.json +3 -1
  453. package/registry/manifest.json +3 -1
  454. package/registry/modal.json +1 -1
  455. package/registry/navigation-bar.json +1 -1
  456. package/registry/option-card.json +3 -2
  457. package/registry/option-wheel.json +1 -1
  458. package/registry/pressable-scale.json +3 -2
  459. package/registry/reorderable-list.json +1 -1
  460. package/registry/screen.json +1 -1
  461. package/registry/search-list.json +7 -1
  462. package/registry/segmented-control.json +1 -1
  463. package/registry/select.json +1 -1
  464. package/registry/shiny-text.json +1 -1
  465. package/registry/skeleton.json +3 -2
  466. package/registry/slides.json +2 -2
  467. package/registry/spinner.json +1 -1
  468. package/registry/stepper.json +1 -1
  469. package/registry/steps.json +1 -1
  470. package/registry/symmetric-grid.json +1 -1
  471. package/registry/theme-toggle.json +1 -1
  472. package/registry/timeline.json +1 -1
  473. package/registry/title.json +1 -1
  474. package/registry/toast-provider.json +2 -2
  475. package/registry/toast.json +1 -1
  476. package/registry/transition.json +1 -1
  477. package/registry/wizard.json +1 -1
  478. package/src/atoms/Avatar.tsx +117 -26
  479. package/src/atoms/Badge.tsx +20 -9
  480. package/src/atoms/Button.tsx +102 -30
  481. package/src/atoms/Card.tsx +23 -3
  482. package/src/atoms/Checkbox.tsx +49 -12
  483. package/src/atoms/Divider.tsx +34 -4
  484. package/src/atoms/EmptyState.tsx +63 -16
  485. package/src/atoms/Fab.tsx +56 -9
  486. package/src/atoms/Gradient.tsx +92 -41
  487. package/src/atoms/IconButton.tsx +27 -4
  488. package/src/atoms/Image.tsx +74 -28
  489. package/src/atoms/Input.tsx +129 -19
  490. package/src/atoms/KeyValueRow.tsx +72 -28
  491. package/src/atoms/PressableScale.tsx +31 -7
  492. package/src/atoms/ShinyText.tsx +31 -31
  493. package/src/atoms/Skeleton.tsx +37 -17
  494. package/src/atoms/Spinner.tsx +87 -24
  495. package/src/atoms/Text.tsx +66 -6
  496. package/src/atoms/Transition.tsx +40 -44
  497. package/src/atoms/index.ts +3 -3
  498. package/src/atoms/inputValidation.ts +59 -0
  499. package/src/icons/Icon.tsx +4 -4
  500. package/src/icons/defaultIcons.tsx +445 -22
  501. package/src/icons/index.ts +2 -2
  502. package/src/icons/types.ts +26 -4
  503. package/src/molecules/AvatarHeader.tsx +88 -34
  504. package/src/molecules/FormActions.tsx +36 -6
  505. package/src/molecules/InfoRow.tsx +39 -12
  506. package/src/molecules/OptionCard.tsx +55 -20
  507. package/src/molecules/SegmentedControl.tsx +135 -15
  508. package/src/molecules/Stepper.tsx +73 -19
  509. package/src/molecules/Steps.tsx +121 -39
  510. package/src/molecules/SymmetricGrid.tsx +28 -12
  511. package/src/organisms/Alert.tsx +97 -26
  512. package/src/organisms/AlertProvider.tsx +13 -13
  513. package/src/organisms/BottomSheet.tsx +115 -43
  514. package/src/organisms/Chart.tsx +193 -164
  515. package/src/organisms/DateField.tsx +40 -15
  516. package/src/organisms/DatePicker.tsx +53 -32
  517. package/src/organisms/List.tsx +64 -15
  518. package/src/organisms/Modal.tsx +122 -63
  519. package/src/organisms/NavigationBar.tsx +73 -23
  520. package/src/organisms/OptionWheel.tsx +70 -66
  521. package/src/organisms/ReorderableList.tsx +49 -27
  522. package/src/organisms/Screen.tsx +79 -42
  523. package/src/organisms/SearchList.tsx +84 -20
  524. package/src/organisms/Select.tsx +63 -29
  525. package/src/organisms/Slides.tsx +63 -44
  526. package/src/organisms/ThemeToggle.tsx +15 -6
  527. package/src/organisms/Timeline.tsx +79 -62
  528. package/src/organisms/Toast.tsx +50 -15
  529. package/src/organisms/ToastProvider.tsx +17 -13
  530. package/src/organisms/Wizard.tsx +58 -21
  531. package/src/organisms/chart/frame.tsx +35 -35
  532. package/src/organisms/chart/marks.tsx +53 -53
  533. package/src/organisms/chart/math.ts +93 -94
  534. package/src/organisms/chart/palette.ts +28 -28
  535. package/src/organisms/imperativeBridge.ts +5 -5
  536. package/src/organisms/useSlides.ts +66 -31
  537. package/src/safe-area/SafeAreaUIProvider.tsx +9 -70
  538. package/src/safe-area/index.ts +1 -0
  539. package/src/theme/KeyboardAvoidance.tsx +216 -0
  540. package/src/theme/NativeOverlay.tsx +269 -0
  541. package/src/theme/UIProvider.tsx +109 -46
  542. package/src/theme/colors.ts +21 -21
  543. package/src/theme/createStyles.ts +23 -19
  544. package/src/theme/createTheme.ts +6 -6
  545. package/src/theme/index.ts +1 -1
  546. package/src/theme/insets.ts +1 -1
  547. package/src/theme/labels.ts +85 -2
  548. package/src/theme/palettes.ts +33 -25
  549. package/src/theme/tokens.ts +27 -13
  550. package/src/theme/types.ts +7 -7
  551. package/src/theme/useKeyboardField.ts +33 -0
  552. package/src/theme/useReduceMotion.ts +27 -0
@@ -7,23 +7,31 @@ import { useAllowFontScaling, useTheme } from '../theme/UIProvider';
7
7
  import { jsx as _jsx } from "react/jsx-runtime";
8
8
  const useStyles = createStyles(theme => ({
9
9
  badge: {
10
- paddingHorizontal: theme.tokens.spacing.md - 2,
11
- paddingVertical: theme.tokens.spacing.xs + 1,
10
+ paddingHorizontal: theme.tokens.spacing.md,
11
+ paddingVertical: theme.tokens.spacing.xs,
12
12
  borderRadius: theme.tokens.radius.full,
13
13
  alignSelf: 'flex-start'
14
14
  },
15
15
  text: {
16
16
  fontSize: theme.tokens.fontSize.xs,
17
17
  fontWeight: theme.tokens.fontWeight.bold,
18
- letterSpacing: 0.3
18
+ letterSpacing: theme.tokens.letterSpacing.wide
19
19
  }
20
20
  }));
21
21
 
22
22
  /**
23
23
  * Badge
24
- * Pill de estado. `variant` cubre los casos comunes (éxito/error/advertencia/
25
- * info/neutral); `backgroundColor`/`textColor` quedan para casos que no
26
- * encajan en el set semántico.
24
+ * Status pill. `variant` covers the common cases (success/error/warning/
25
+ * info/neutral); `backgroundColor`/`textColor` are for cases that don't
26
+ * fit the semantic set.
27
+ *
28
+ * Gestalt, similarity: all badges share shape, size and typography; only
29
+ * the color changes, and it changes by meaning (green = ok, red = error…),
30
+ * so a column of statuses scans at a glance. The meaning also goes in the
31
+ * text: never rely on color alone (color blindness).
32
+ * Every `*Soft`/`*Text` pair in the theme meets WCAG AA in light and dark;
33
+ * with custom colors, contrast is up to whoever passes them.
34
+ * A single line: a long label is truncated with "…" instead of deforming the pill.
27
35
  */
28
36
  export const Badge = /*#__PURE__*/memo(({
29
37
  label,
@@ -39,8 +47,8 @@ export const Badge = /*#__PURE__*/memo(({
39
47
  colors
40
48
  } = theme;
41
49
  const palette = {
42
- // fg es el rol `*Text`, no el acento pleno: el acento sobre su propio
43
- // tinte da ~2.2:1 en light — el label quedaba ilegible.
50
+ // fg is the `*Text` role, not the full accent: the accent over its own
51
+ // tint gives ~2.2:1 in light — the label was unreadable.
44
52
  success: {
45
53
  bg: colors.successSoft,
46
54
  fg: colors.successText
@@ -68,6 +76,7 @@ export const Badge = /*#__PURE__*/memo(({
68
76
  }, style],
69
77
  children: /*#__PURE__*/_jsx(Text, {
70
78
  allowFontScaling: allowFontScaling,
79
+ numberOfLines: 1,
71
80
  style: [styles.text, {
72
81
  color: textColor ?? palette[variant].fg
73
82
  }],
@@ -1 +1 @@
1
- {"version":3,"names":["React","memo","Text","View","createStyles","useAllowFontScaling","useTheme","jsx","_jsx","useStyles","theme","badge","paddingHorizontal","tokens","spacing","md","paddingVertical","xs","borderRadius","radius","full","alignSelf","text","fontSize","fontWeight","bold","letterSpacing","Badge","label","variant","backgroundColor","textColor","style","styles","allowFontScaling","colors","palette","success","bg","successSoft","fg","successText","error","errorSoft","errorText","warning","warningSoft","warningText","info","secondarySoft","secondaryText","neutral","inputBackground","textLight","children","color","displayName"],"sourceRoot":"../../../src","sources":["atoms/Badge.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,IAAI,QAAQ,OAAO;AACnC,SAASC,IAAI,EAAEC,IAAI,QAAwC,cAAc;AACzE,SAASC,YAAY,QAAQ,uBAAuB;AACpD,SAASC,mBAAmB,EAAEC,QAAQ,QAAQ,qBAAqB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAapE,MAAMC,SAAS,GAAGL,YAAY,CAAEM,KAAK,KAAM;EACzCC,KAAK,EAAE;IACLC,iBAAiB,EAAEF,KAAK,CAACG,MAAM,CAACC,OAAO,CAACC,EAAE,GAAG,CAAC;IAC9CC,eAAe,EAAEN,KAAK,CAACG,MAAM,CAACC,OAAO,CAACG,EAAE,GAAG,CAAC;IAC5CC,YAAY,EAAER,KAAK,CAACG,MAAM,CAACM,MAAM,CAACC,IAAI;IACtCC,SAAS,EAAE;EACb,CAAC;EACDC,IAAI,EAAE;IAAEC,QAAQ,EAAEb,KAAK,CAACG,MAAM,CAACU,QAAQ,CAACN,EAAE;IAAEO,UAAU,EAAEd,KAAK,CAACG,MAAM,CAACW,UAAU,CAACC,IAAI;IAAEC,aAAa,EAAE;EAAI;AAC3G,CAAC,CAAC,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,KAAK,gBAAG1B,IAAI,CAAC,CAAC;EAAE2B,KAAK;EAAEC,OAAO,GAAG,SAAS;EAAEC,eAAe;EAAEC,SAAS;EAAEC;AAAkB,CAAC,KAAK;EAC3G,MAAMtB,KAAK,GAAGJ,QAAQ,CAAC,CAAC;EACxB,MAAM2B,MAAM,GAAGxB,SAAS,CAAC,CAAC;EAC1B,MAAMyB,gBAAgB,GAAG7B,mBAAmB,CAAC,CAAC;EAC9C,MAAM;IAAE8B;EAAO,CAAC,GAAGzB,KAAK;EAExB,MAAM0B,OAAyD,GAAG;IAChE;IACA;IACAC,OAAO,EAAE;MAAEC,EAAE,EAAEH,MAAM,CAACI,WAAW;MAAEC,EAAE,EAAEL,MAAM,CAACM;IAAY,CAAC;IAC3DC,KAAK,EAAE;MAAEJ,EAAE,EAAEH,MAAM,CAACQ,SAAS;MAAEH,EAAE,EAAEL,MAAM,CAACS;IAAU,CAAC;IACrDC,OAAO,EAAE;MAAEP,EAAE,EAAEH,MAAM,CAACW,WAAW;MAAEN,EAAE,EAAEL,MAAM,CAACY;IAAY,CAAC;IAC3DC,IAAI,EAAE;MAAEV,EAAE,EAAEH,MAAM,CAACc,aAAa;MAAET,EAAE,EAAEL,MAAM,CAACe;IAAc,CAAC;IAC5DC,OAAO,EAAE;MAAEb,EAAE,EAAEH,MAAM,CAACiB,eAAe;MAAEZ,EAAE,EAAEL,MAAM,CAACkB;IAAU;EAC9D,CAAC;EAED,oBACE7C,IAAA,CAACL,IAAI;IAAC6B,KAAK,EAAE,CAACC,MAAM,CAACtB,KAAK,EAAE;MAAEmB,eAAe,EAAEA,eAAe,IAAIM,OAAO,CAACP,OAAO,CAAC,CAACS;IAAG,CAAC,EAAEN,KAAK,CAAE;IAAAsB,QAAA,eAC9F9C,IAAA,CAACN,IAAI;MAACgC,gBAAgB,EAAEA,gBAAiB;MAACF,KAAK,EAAE,CAACC,MAAM,CAACX,IAAI,EAAE;QAAEiC,KAAK,EAAExB,SAAS,IAAIK,OAAO,CAACP,OAAO,CAAC,CAACW;MAAG,CAAC,CAAE;MAAAc,QAAA,EACzG1B;IAAK,CACF;EAAC,CACH,CAAC;AAEX,CAAC,CAAC;AACFD,KAAK,CAAC6B,WAAW,GAAG,OAAO","ignoreList":[]}
1
+ {"version":3,"names":["React","memo","Text","View","createStyles","useAllowFontScaling","useTheme","jsx","_jsx","useStyles","theme","badge","paddingHorizontal","tokens","spacing","md","paddingVertical","xs","borderRadius","radius","full","alignSelf","text","fontSize","fontWeight","bold","letterSpacing","wide","Badge","label","variant","backgroundColor","textColor","style","styles","allowFontScaling","colors","palette","success","bg","successSoft","fg","successText","error","errorSoft","errorText","warning","warningSoft","warningText","info","secondarySoft","secondaryText","neutral","inputBackground","textLight","children","numberOfLines","color","displayName"],"sourceRoot":"../../../src","sources":["atoms/Badge.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,IAAI,QAAQ,OAAO;AACnC,SAASC,IAAI,EAAEC,IAAI,QAAwC,cAAc;AACzE,SAASC,YAAY,QAAQ,uBAAuB;AACpD,SAASC,mBAAmB,EAAEC,QAAQ,QAAQ,qBAAqB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAgBpE,MAAMC,SAAS,GAAGL,YAAY,CAAEM,KAAK,KAAM;EACzCC,KAAK,EAAE;IACLC,iBAAiB,EAAEF,KAAK,CAACG,MAAM,CAACC,OAAO,CAACC,EAAE;IAC1CC,eAAe,EAAEN,KAAK,CAACG,MAAM,CAACC,OAAO,CAACG,EAAE;IACxCC,YAAY,EAAER,KAAK,CAACG,MAAM,CAACM,MAAM,CAACC,IAAI;IACtCC,SAAS,EAAE;EACb,CAAC;EACDC,IAAI,EAAE;IAAEC,QAAQ,EAAEb,KAAK,CAACG,MAAM,CAACU,QAAQ,CAACN,EAAE;IAAEO,UAAU,EAAEd,KAAK,CAACG,MAAM,CAACW,UAAU,CAACC,IAAI;IAAEC,aAAa,EAAEhB,KAAK,CAACG,MAAM,CAACa,aAAa,CAACC;EAAK;AACvI,CAAC,CAAC,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,KAAK,gBAAG3B,IAAI,CAAC,CAAC;EAAE4B,KAAK;EAAEC,OAAO,GAAG,SAAS;EAAEC,eAAe;EAAEC,SAAS;EAAEC;AAAkB,CAAC,KAAK;EAC3G,MAAMvB,KAAK,GAAGJ,QAAQ,CAAC,CAAC;EACxB,MAAM4B,MAAM,GAAGzB,SAAS,CAAC,CAAC;EAC1B,MAAM0B,gBAAgB,GAAG9B,mBAAmB,CAAC,CAAC;EAC9C,MAAM;IAAE+B;EAAO,CAAC,GAAG1B,KAAK;EAExB,MAAM2B,OAAyD,GAAG;IAChE;IACA;IACAC,OAAO,EAAE;MAAEC,EAAE,EAAEH,MAAM,CAACI,WAAW;MAAEC,EAAE,EAAEL,MAAM,CAACM;IAAY,CAAC;IAC3DC,KAAK,EAAE;MAAEJ,EAAE,EAAEH,MAAM,CAACQ,SAAS;MAAEH,EAAE,EAAEL,MAAM,CAACS;IAAU,CAAC;IACrDC,OAAO,EAAE;MAAEP,EAAE,EAAEH,MAAM,CAACW,WAAW;MAAEN,EAAE,EAAEL,MAAM,CAACY;IAAY,CAAC;IAC3DC,IAAI,EAAE;MAAEV,EAAE,EAAEH,MAAM,CAACc,aAAa;MAAET,EAAE,EAAEL,MAAM,CAACe;IAAc,CAAC;IAC5DC,OAAO,EAAE;MAAEb,EAAE,EAAEH,MAAM,CAACiB,eAAe;MAAEZ,EAAE,EAAEL,MAAM,CAACkB;IAAU;EAC9D,CAAC;EAED,oBACE9C,IAAA,CAACL,IAAI;IAAC8B,KAAK,EAAE,CAACC,MAAM,CAACvB,KAAK,EAAE;MAAEoB,eAAe,EAAEA,eAAe,IAAIM,OAAO,CAACP,OAAO,CAAC,CAACS;IAAG,CAAC,EAAEN,KAAK,CAAE;IAAAsB,QAAA,eAC9F/C,IAAA,CAACN,IAAI;MAACiC,gBAAgB,EAAEA,gBAAiB;MAACqB,aAAa,EAAE,CAAE;MAACvB,KAAK,EAAE,CAACC,MAAM,CAACZ,IAAI,EAAE;QAAEmC,KAAK,EAAEzB,SAAS,IAAIK,OAAO,CAACP,OAAO,CAAC,CAACW;MAAG,CAAC,CAAE;MAAAc,QAAA,EAC3H1B;IAAK,CACF;EAAC,CACH,CAAC;AAEX,CAAC,CAAC;AACFD,KAAK,CAAC8B,WAAW,GAAG,OAAO","ignoreList":[]}
@@ -1,11 +1,12 @@
1
1
  "use strict";
2
2
 
3
3
  import React, { memo, useRef } from 'react';
4
- import { ActivityIndicator, Animated, Pressable, Text } from 'react-native';
4
+ import { ActivityIndicator, Animated, Pressable, Text, View } from 'react-native';
5
5
  import { createStyles } from '../theme/createStyles';
6
6
  import { useAllowFontScaling, useColors, useTheme } from '../theme/UIProvider';
7
7
  import { Icon } from '../icons/Icon';
8
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
8
+ import { useReduceMotion } from './Transition';
9
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
10
  const AnimatedPressable = Animated.createAnimatedComponent(Pressable);
10
11
  const useStyles = createStyles(theme => ({
11
12
  base: {
@@ -20,11 +21,11 @@ const useStyles = createStyles(theme => ({
20
21
  paddingHorizontal: theme.tokens.spacing.md
21
22
  },
22
23
  md: {
23
- paddingVertical: theme.tokens.spacing.lg - 1,
24
+ paddingVertical: theme.tokens.spacing.lg,
24
25
  paddingHorizontal: theme.tokens.spacing.xl
25
26
  },
26
27
  lg: {
27
- paddingVertical: theme.tokens.spacing.lg + 2,
28
+ paddingVertical: theme.tokens.spacing.xl,
28
29
  paddingHorizontal: theme.tokens.spacing.xxl
29
30
  },
30
31
  link: {
@@ -35,10 +36,7 @@ const useStyles = createStyles(theme => ({
35
36
  outline: {
36
37
  borderWidth: 1
37
38
  },
38
- filledShadow: {
39
- ...theme.tokens.shadow.md,
40
- shadowColor: '#000'
41
- },
39
+ filledShadow: theme.tokens.shadow.md,
42
40
  text: {
43
41
  fontWeight: theme.tokens.fontWeight.semibold,
44
42
  textAlign: 'center'
@@ -60,8 +58,48 @@ const useStyles = createStyles(theme => ({
60
58
  },
61
59
  iconRight: {
62
60
  marginLeft: theme.tokens.spacing.sm
61
+ },
62
+ // The label keeps taking its space (invisible) while loading: the button
63
+ // doesn't change width and the spinner is centered on top.
64
+ hidden: {
65
+ opacity: 0
66
+ },
67
+ spinner: {
68
+ position: 'absolute',
69
+ top: 0,
70
+ bottom: 0,
71
+ left: 0,
72
+ right: 0,
73
+ alignItems: 'center',
74
+ justifyContent: 'center'
63
75
  }
64
76
  }));
77
+
78
+ /**
79
+ * Extra touch area for the sizes that fall below 44pt in height
80
+ * (Fitts): `sm` measures ~30pt and `link` ~27pt. hitSlop enlarges the area
81
+ * that receives the touch without changing how it looks.
82
+ */
83
+ function useHitSlop(size, variant) {
84
+ const theme = useTheme();
85
+ if (variant === 'link') {
86
+ const v = theme.tokens.spacing.md;
87
+ return {
88
+ top: v,
89
+ bottom: v,
90
+ left: theme.tokens.spacing.sm,
91
+ right: theme.tokens.spacing.sm
92
+ };
93
+ }
94
+ if (size === 'sm') {
95
+ const v = theme.tokens.spacing.sm;
96
+ return {
97
+ top: v,
98
+ bottom: v
99
+ };
100
+ }
101
+ return undefined;
102
+ }
65
103
  function resolveColors(variant, disabled, colors) {
66
104
  if (disabled) {
67
105
  return {
@@ -71,8 +109,8 @@ function resolveColors(variant, disabled, colors) {
71
109
  };
72
110
  }
73
111
  switch (variant) {
74
- // Las variantes sin relleno pintan texto sobre el fondo de la pantalla:
75
- // van con el rol `*Text`. Las rellenas van con `on*` sobre el acento.
112
+ // The unfilled variants paint text over the screen background: they
113
+ // use the `*Text` role. The filled ones use `on*` over the accent.
76
114
  case 'outline':
77
115
  return {
78
116
  background: 'transparent',
@@ -115,9 +153,24 @@ function resolveColors(variant, disabled, colors) {
115
153
 
116
154
  /**
117
155
  * Button
118
- * Único componente de botón de la librería. `variant` decide el estilo
119
- * semántico, `size` la densidad. El feedback de "presionado" anima solo
120
- * `transform` (Animated.spring, useNativeDriver) — nunca opacity ni layout.
156
+ * The library's only button component. `variant` sets the semantic style,
157
+ * `size` the density. The "pressed" feedback animates only `transform`
158
+ * (Animated.spring, useNativeDriver) — never opacity or layout — and is
159
+ * skipped when Reduce Motion is on.
160
+ *
161
+ * Gestalt:
162
+ * - Focal point (Von Restorff): `primary` is the only one filled with the
163
+ * accent and a shadow; there should be one per screen or group. The other
164
+ * variants step the visual weight down (secondary → outline → ghost → link).
165
+ * - Similarity: all variants share shape, radius and typography, so a row of
166
+ * buttons reads as a single group of actions; only what conveys the
167
+ * hierarchy changes (fill, border, color).
168
+ * - Proximity: icon and label sit `spacing.sm` apart, much less than the
169
+ * padding, so they read as a single label.
170
+ *
171
+ * Fitts: `sm` and `link` are less than 44pt tall and make up for it with `hitSlop`.
172
+ * While `loading`, the label is invisible but keeps its space: the button
173
+ * doesn't change width (no layout jumps).
121
174
  */
122
175
  export const Button = /*#__PURE__*/memo(({
123
176
  title,
@@ -141,11 +194,14 @@ export const Button = /*#__PURE__*/memo(({
141
194
  const theme = useTheme();
142
195
  const allowFontScaling = useAllowFontScaling();
143
196
  const scale = useRef(new Animated.Value(1)).current;
197
+ const reduceMotion = useReduceMotion();
198
+ const hitSlop = useHitSlop(size, variant);
144
199
  const isDisabled = disabled || loading;
145
200
  const isFilled = variant === 'primary' || variant === 'secondary' || variant === 'destructive';
146
201
  const resolved = resolveColors(variant, disabled, colors);
147
202
  const effectiveIconColor = iconColor ?? resolved.text;
148
203
  const animateTo = value => {
204
+ if (reduceMotion) return;
149
205
  Animated.spring(scale, {
150
206
  toValue: value,
151
207
  useNativeDriver: true,
@@ -157,8 +213,12 @@ export const Button = /*#__PURE__*/memo(({
157
213
  borderColor: resolved.border
158
214
  }], {
159
215
  backgroundColor: resolved.background
160
- }, isFilled && !disabled && styles.filledShadow, {
161
- opacity: isDisabled ? 0.7 : 1
216
+ }, isFilled && !disabled && styles.filledShadow,
217
+ // Disabled is already marked by its colors (resolveColors); lowering the
218
+ // opacity on top of that left it almost invisible (figure and ground).
219
+ // Only `loading` dims it, to signal that the button is busy.
220
+ {
221
+ opacity: loading && !disabled ? 0.7 : 1
162
222
  }, style];
163
223
  const labelStyle = [styles.text, size === 'sm' ? styles.textSm : size === 'lg' ? styles.textLg : styles.textMd, {
164
224
  color: resolved.text
@@ -166,12 +226,12 @@ export const Button = /*#__PURE__*/memo(({
166
226
  const iconSize = size === 'sm' ? 16 : size === 'lg' ? 22 : 20;
167
227
  return (
168
228
  /*#__PURE__*/
169
- // El Pressable ES el contenedor animado, no un wrapper alrededor de uno.
170
- // Con un Animated.View interno, un `style` de layout (flex, width,
171
- // margin) caía en el hijo mientras el Pressable — que es quien ocupa
172
- // lugar en el layout del padre — quedaba sin él: el ancho colapsaba y
173
- // el label desaparecía (visible en los botones en fila del Alert).
174
- _jsx(AnimatedPressable, {
229
+ // The Pressable IS the animated container, not a wrapper around one.
230
+ // With an inner Animated.View, a layout `style` (flex, width, margin)
231
+ // landed on the child while the Pressable — which is what takes up
232
+ // space in the parent's layout — was left without it: the width
233
+ // collapsed and the label disappeared (visible in the Alert's row of buttons).
234
+ _jsxs(AnimatedPressable, {
175
235
  onPress: onPress,
176
236
  onPressIn: () => {
177
237
  if (!isDisabled) animateTo(0.95);
@@ -180,6 +240,7 @@ export const Button = /*#__PURE__*/memo(({
180
240
  if (!isDisabled) animateTo(1);
181
241
  },
182
242
  disabled: isDisabled,
243
+ hitSlop: hitSlop,
183
244
  testID: testID,
184
245
  accessibilityRole: "button",
185
246
  accessibilityLabel: accessibilityLabel ?? title,
@@ -192,26 +253,34 @@ export const Button = /*#__PURE__*/memo(({
192
253
  scale
193
254
  }]
194
255
  }],
195
- children: loading ? /*#__PURE__*/_jsx(ActivityIndicator, {
196
- size: "small",
197
- color: resolved.text
198
- }) : /*#__PURE__*/_jsxs(_Fragment, {
199
- children: [leftIcon, !leftIcon && leftIconName && /*#__PURE__*/_jsx(Icon, {
200
- name: leftIconName,
201
- size: iconSize,
202
- color: effectiveIconColor,
203
- style: styles.iconLeft
204
- }), /*#__PURE__*/_jsx(Text, {
205
- allowFontScaling: allowFontScaling,
206
- style: labelStyle,
207
- children: title
208
- }), rightIcon, !rightIcon && rightIconName && /*#__PURE__*/_jsx(Icon, {
209
- name: rightIconName,
210
- size: iconSize,
211
- color: effectiveIconColor,
212
- style: styles.iconRight
213
- })]
214
- })
256
+ children: [leftIcon ? /*#__PURE__*/_jsx(View, {
257
+ style: [styles.iconLeft, loading && styles.hidden],
258
+ children: leftIcon
259
+ }) : null, !leftIcon && leftIconName && /*#__PURE__*/_jsx(Icon, {
260
+ name: leftIconName,
261
+ size: iconSize,
262
+ color: effectiveIconColor,
263
+ style: [styles.iconLeft, loading && styles.hidden]
264
+ }), /*#__PURE__*/_jsx(Text, {
265
+ allowFontScaling: allowFontScaling,
266
+ style: [labelStyle, loading && styles.hidden],
267
+ children: title
268
+ }), rightIcon ? /*#__PURE__*/_jsx(View, {
269
+ style: [styles.iconRight, loading && styles.hidden],
270
+ children: rightIcon
271
+ }) : null, !rightIcon && rightIconName && /*#__PURE__*/_jsx(Icon, {
272
+ name: rightIconName,
273
+ size: iconSize,
274
+ color: effectiveIconColor,
275
+ style: [styles.iconRight, loading && styles.hidden]
276
+ }), loading && /*#__PURE__*/_jsx(View, {
277
+ style: styles.spinner,
278
+ pointerEvents: "none",
279
+ children: /*#__PURE__*/_jsx(ActivityIndicator, {
280
+ size: "small",
281
+ color: resolved.text
282
+ })
283
+ })]
215
284
  })
216
285
  );
217
286
  });
@@ -1 +1 @@
1
- {"version":3,"names":["React","memo","useRef","ActivityIndicator","Animated","Pressable","Text","createStyles","useAllowFontScaling","useColors","useTheme","Icon","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","AnimatedPressable","createAnimatedComponent","useStyles","theme","base","flexDirection","alignItems","justifyContent","borderRadius","tokens","radius","lg","borderWidth","sm","paddingVertical","spacing","paddingHorizontal","md","xl","xxl","link","xs","outline","filledShadow","shadow","shadowColor","text","fontWeight","semibold","textAlign","textSm","fontSize","textMd","textLg","underline","textDecorationLine","iconLeft","marginRight","iconRight","marginLeft","resolveColors","variant","disabled","colors","background","inputBackground","textLight","border","primaryText","primary","secondary","onSecondary","error","onError","onPrimary","Button","title","onPress","size","loading","style","textStyle","leftIcon","rightIcon","leftIconName","rightIconName","iconColor","testID","accessibilityLabel","styles","allowFontScaling","scale","Value","current","isDisabled","isFilled","resolved","effectiveIconColor","animateTo","value","spring","toValue","useNativeDriver","speed","bounciness","start","containerStyle","borderColor","backgroundColor","opacity","labelStyle","color","iconSize","onPressIn","onPressOut","accessibilityRole","accessibilityState","busy","transform","children","name","displayName"],"sourceRoot":"../../../src","sources":["atoms/Button.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","memo","useRef","ActivityIndicator","Animated","Pressable","Text","View","createStyles","useAllowFontScaling","useColors","useTheme","Icon","useReduceMotion","jsx","_jsx","jsxs","_jsxs","AnimatedPressable","createAnimatedComponent","useStyles","theme","base","flexDirection","alignItems","justifyContent","borderRadius","tokens","radius","lg","borderWidth","sm","paddingVertical","spacing","paddingHorizontal","md","xl","xxl","link","xs","outline","filledShadow","shadow","text","fontWeight","semibold","textAlign","textSm","fontSize","textMd","textLg","underline","textDecorationLine","iconLeft","marginRight","iconRight","marginLeft","hidden","opacity","spinner","position","top","bottom","left","right","useHitSlop","size","variant","v","undefined","resolveColors","disabled","colors","background","inputBackground","textLight","border","primaryText","primary","secondary","onSecondary","error","onError","onPrimary","Button","title","onPress","loading","style","textStyle","leftIcon","rightIcon","leftIconName","rightIconName","iconColor","testID","accessibilityLabel","styles","allowFontScaling","scale","Value","current","reduceMotion","hitSlop","isDisabled","isFilled","resolved","effectiveIconColor","animateTo","value","spring","toValue","useNativeDriver","speed","bounciness","start","containerStyle","borderColor","backgroundColor","labelStyle","color","iconSize","onPressIn","onPressOut","accessibilityRole","accessibilityState","busy","transform","children","name","pointerEvents","displayName"],"sourceRoot":"../../../src","sources":["atoms/Button.tsx"],"mappings":"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","ignoreList":[]}
@@ -4,14 +4,36 @@ import React, { memo } from 'react';
4
4
  import { View } from 'react-native';
5
5
  import { createStyles } from '../theme/createStyles';
6
6
  import { jsx as _jsx } from "react/jsx-runtime";
7
+ const CARD_BORDER_DARK = 1;
7
8
  const useStyles = createStyles(theme => ({
8
9
  card: {
9
- backgroundColor: theme.colors.surface,
10
+ // surfaceRaised: lighter than surface in dark, so a card on a sheet or
11
+ // on another card still reads as a separate tile (figure and ground).
12
+ backgroundColor: theme.colors.surfaceRaised,
10
13
  borderRadius: theme.tokens.radius.xl,
11
14
  padding: theme.tokens.spacing.lg,
12
- ...theme.tokens.shadow.sm
15
+ ...theme.tokens.shadow.sm,
16
+ // In dark the shadow isn't visible and surface barely stands out from the
17
+ // background (or not at all, on another surface): a 1pt border restores
18
+ // the outline (figure and ground). A hairline was invisible.
19
+ ...(theme.scheme === 'dark' && {
20
+ borderWidth: CARD_BORDER_DARK,
21
+ borderColor: theme.colors.border
22
+ })
13
23
  }
14
24
  }));
25
+
26
+ /**
27
+ * Card
28
+ * Surface container: groups related content.
29
+ *
30
+ * Gestalt, common region: everything inside the same background and border
31
+ * reads as a group, even when other elements are nearby. Figure and ground:
32
+ * in light the shadow sets it apart; in dark (where the shadow isn't visible)
33
+ * a thin border does. The inner padding (`spacing.lg`) must be larger than the
34
+ * spacing between the elements inside, so the content reads as one block.
35
+ */
36
+
15
37
  export const Card = /*#__PURE__*/memo(({
16
38
  children,
17
39
  style,
@@ -1 +1 @@
1
- {"version":3,"names":["React","memo","View","createStyles","jsx","_jsx","useStyles","theme","card","backgroundColor","colors","surface","borderRadius","tokens","radius","xl","padding","spacing","lg","shadow","sm","Card","children","style","props","styles","displayName"],"sourceRoot":"../../../src","sources":["atoms/Card.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,IAAI,QAAQ,OAAO;AACnC,SAASC,IAAI,QAAwC,cAAc;AACnE,SAASC,YAAY,QAAQ,uBAAuB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAOrD,MAAMC,SAAS,GAAGH,YAAY,CAAEI,KAAK,KAAM;EACzCC,IAAI,EAAE;IACJC,eAAe,EAAEF,KAAK,CAACG,MAAM,CAACC,OAAO;IACrCC,YAAY,EAAEL,KAAK,CAACM,MAAM,CAACC,MAAM,CAACC,EAAE;IACpCC,OAAO,EAAET,KAAK,CAACM,MAAM,CAACI,OAAO,CAACC,EAAE;IAChC,GAAGX,KAAK,CAACM,MAAM,CAACM,MAAM,CAACC;EACzB;AACF,CAAC,CAAC,CAAC;AAEH,OAAO,MAAMC,IAAI,gBAAGpB,IAAI,CAAC,CAAC;EAAEqB,QAAQ;EAAEC,KAAK;EAAE,GAAGC;AAAiB,CAAC,KAAK;EACrE,MAAMC,MAAM,GAAGnB,SAAS,CAAC,CAAC;EAC1B,oBACED,IAAA,CAACH,IAAI;IAACqB,KAAK,EAAE,CAACE,MAAM,CAACjB,IAAI,EAAEe,KAAK,CAAE;IAAA,GAAKC,KAAK;IAAAF,QAAA,EACzCA;EAAQ,CACL,CAAC;AAEX,CAAC,CAAC;AACFD,IAAI,CAACK,WAAW,GAAG,MAAM","ignoreList":[]}
1
+ {"version":3,"names":["React","memo","View","createStyles","jsx","_jsx","CARD_BORDER_DARK","useStyles","theme","card","backgroundColor","colors","surfaceRaised","borderRadius","tokens","radius","xl","padding","spacing","lg","shadow","sm","scheme","borderWidth","borderColor","border","Card","children","style","props","styles","displayName"],"sourceRoot":"../../../src","sources":["atoms/Card.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,IAAI,QAAQ,OAAO;AACnC,SAASC,IAAI,QAAwD,cAAc;AACnF,SAASC,YAAY,QAAQ,uBAAuB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAQrD,MAAMC,gBAAgB,GAAG,CAAC;AAE1B,MAAMC,SAAS,GAAGJ,YAAY,CAAEK,KAAK,KAAM;EACzCC,IAAI,EAAE;IACJ;IACA;IACAC,eAAe,EAAEF,KAAK,CAACG,MAAM,CAACC,aAAa;IAC3CC,YAAY,EAAEL,KAAK,CAACM,MAAM,CAACC,MAAM,CAACC,EAAE;IACpCC,OAAO,EAAET,KAAK,CAACM,MAAM,CAACI,OAAO,CAACC,EAAE;IAChC,GAAGX,KAAK,CAACM,MAAM,CAACM,MAAM,CAACC,EAAE;IACzB;IACA;IACA;IACA,IAAIb,KAAK,CAACc,MAAM,KAAK,MAAM,IAAI;MAAEC,WAAW,EAAEjB,gBAAgB;MAAEkB,WAAW,EAAEhB,KAAK,CAACG,MAAM,CAACc;IAAO,CAAC;EACpG;AACF,CAAC,CAAC,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,MAAMC,IAAI,gBAAGzB,IAAI,CAAC,CAAC;EAAE0B,QAAQ;EAAEC,KAAK;EAAE,GAAGC;AAAiB,CAAC,KAAK;EACrE,MAAMC,MAAM,GAAGvB,SAAS,CAAC,CAAC;EAC1B,oBACEF,IAAA,CAACH,IAAI;IAAC0B,KAAK,EAAE,CAACE,MAAM,CAACrB,IAAI,EAAEmB,KAAK,CAAE;IAAA,GAAKC,KAAK;IAAAF,QAAA,EACzCA;EAAQ,CACL,CAAC;AAEX,CAAC,CAAC;AACFD,IAAI,CAACK,WAAW,GAAG,MAAM","ignoreList":[]}
@@ -3,14 +3,18 @@
3
3
  import React, { memo, useEffect, useRef } from 'react';
4
4
  import { Animated, Text, TouchableOpacity } from 'react-native';
5
5
  import { createStyles } from '../theme/createStyles';
6
- import { useAllowFontScaling, useColors } from '../theme/UIProvider';
6
+ import { useAllowFontScaling, useColors, useTheme } from '../theme/UIProvider';
7
7
  import { Icon } from '../icons/Icon';
8
+ import { onColor } from '../icons/defaultIcons';
9
+ import { useReduceMotion } from './Transition';
8
10
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
11
  const useStyles = createStyles(theme => ({
12
+ // 44pt tall: the whole row is the touch area (Fitts). Replaces the
13
+ // marginBottom that separated stacked checkboxes; now the row provides the room.
10
14
  container: {
11
15
  flexDirection: 'row',
12
16
  alignItems: 'center',
13
- marginBottom: theme.tokens.spacing.sm
17
+ minHeight: 44
14
18
  },
15
19
  box: {
16
20
  width: 24,
@@ -19,34 +23,61 @@ const useStyles = createStyles(theme => ({
19
23
  borderWidth: 2,
20
24
  justifyContent: 'center',
21
25
  alignItems: 'center',
22
- marginRight: theme.tokens.spacing.sm + 2
26
+ marginRight: theme.tokens.spacing.md
23
27
  },
24
28
  label: {
25
29
  fontSize: theme.tokens.fontSize.md,
26
30
  color: theme.colors.text
31
+ },
32
+ labelDisabled: {
33
+ color: theme.colors.textLight
27
34
  }
28
35
  }));
36
+
37
+ /**
38
+ * Checkbox
39
+ * Box + optional label; the whole row is touchable.
40
+ *
41
+ * Gestalt:
42
+ * - Proximity: the box and its label sit `spacing.md` apart, less than the
43
+ * spacing between rows, so each label reads with its box.
44
+ * - Common region: the whole row is the touch area, not just the box, and it
45
+ * is at least 44pt tall (Fitts).
46
+ * - Figure and ground: when checked, the box fills with the accent and the
47
+ * check turns black or white depending on that fill (also with a custom `color`).
48
+ *
49
+ * `disabled` dims the box and the label (not just the box). The check
50
+ * animation is skipped with Reduce Motion.
51
+ */
29
52
  export const Checkbox = /*#__PURE__*/memo(({
30
53
  value,
31
54
  onValueChange,
32
55
  label,
33
56
  color,
34
57
  disabled,
58
+ accessibilityLabel,
35
59
  testID
36
60
  }) => {
37
61
  const colors = useColors();
38
62
  const styles = useStyles();
39
63
  const allowFontScaling = useAllowFontScaling();
40
64
  const activeColor = color || colors.primary;
41
- // El check va encima del relleno: con `color` propio no sabemos qué tono
42
- // contrasta, así que ahí seguimos con blanco (decisión del consumidor).
43
- const checkColor = color ? colors.white : colors.onPrimary;
65
+ // The check sits on top of the fill: with a custom `color`, black or white is
66
+ // picked by luminance (a fixed white disappeared over light colors).
67
+ const checkColor = color ? onColor(color) : colors.onPrimary;
68
+ const theme = useTheme();
69
+ const reduceMotion = useReduceMotion();
44
70
  const progress = useRef(new Animated.Value(value ? 1 : 0)).current;
45
71
  const checkScale = useRef(new Animated.Value(value ? 1 : 0)).current;
46
72
  useEffect(() => {
73
+ if (reduceMotion) {
74
+ progress.setValue(value ? 1 : 0);
75
+ checkScale.setValue(value ? 1 : 0);
76
+ return;
77
+ }
47
78
  Animated.timing(progress, {
48
79
  toValue: value ? 1 : 0,
49
- duration: 150,
80
+ duration: theme.tokens.duration.fast,
50
81
  useNativeDriver: false
51
82
  }).start();
52
83
  Animated.spring(checkScale, {
@@ -55,7 +86,7 @@ export const Checkbox = /*#__PURE__*/memo(({
55
86
  speed: 40,
56
87
  bounciness: 10
57
88
  }).start();
58
- }, [value]);
89
+ }, [value, reduceMotion]);
59
90
  const backgroundColor = progress.interpolate({
60
91
  inputRange: [0, 1],
61
92
  outputRange: [colors.surface, activeColor]
@@ -74,7 +105,7 @@ export const Checkbox = /*#__PURE__*/memo(({
74
105
  checked: value,
75
106
  disabled: !!disabled
76
107
  },
77
- accessibilityLabel: label,
108
+ accessibilityLabel: accessibilityLabel ?? label,
78
109
  testID: testID,
79
110
  children: [/*#__PURE__*/_jsx(Animated.View, {
80
111
  style: [styles.box, {
@@ -94,9 +125,9 @@ export const Checkbox = /*#__PURE__*/memo(({
94
125
  color: checkColor
95
126
  })
96
127
  })
97
- }), label && /*#__PURE__*/_jsx(Text, {
128
+ }), !!label && /*#__PURE__*/_jsx(Text, {
98
129
  allowFontScaling: allowFontScaling,
99
- style: styles.label,
130
+ style: [styles.label, disabled && styles.labelDisabled],
100
131
  children: label
101
132
  })]
102
133
  });
@@ -1 +1 @@
1
- {"version":3,"names":["React","memo","useEffect","useRef","Animated","Text","TouchableOpacity","createStyles","useAllowFontScaling","useColors","Icon","jsx","_jsx","jsxs","_jsxs","useStyles","theme","container","flexDirection","alignItems","marginBottom","tokens","spacing","sm","box","width","height","borderRadius","radius","borderWidth","justifyContent","marginRight","label","fontSize","md","color","colors","text","Checkbox","value","onValueChange","disabled","testID","styles","allowFontScaling","activeColor","primary","checkColor","white","onPrimary","progress","Value","current","checkScale","timing","toValue","duration","useNativeDriver","start","spring","speed","bounciness","backgroundColor","interpolate","inputRange","outputRange","surface","borderColor","border","style","activeOpacity","onPress","accessibilityRole","accessibilityState","checked","accessibilityLabel","children","View","opacity","transform","scale","name","size","displayName"],"sourceRoot":"../../../src","sources":["atoms/Checkbox.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,IAAI,EAAEC,SAAS,EAAEC,MAAM,QAAQ,OAAO;AACtD,SAASC,QAAQ,EAAEC,IAAI,EAAEC,gBAAgB,QAAQ,cAAc;AAC/D,SAASC,YAAY,QAAQ,uBAAuB;AACpD,SAASC,mBAAmB,EAAEC,SAAS,QAAQ,qBAAqB;AACpE,SAASC,IAAI,QAAQ,eAAe;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAWrC,MAAMC,SAAS,GAAGR,YAAY,CAAES,KAAK,KAAM;EACzCC,SAAS,EAAE;IAAEC,aAAa,EAAE,KAAK;IAAEC,UAAU,EAAE,QAAQ;IAAEC,YAAY,EAAEJ,KAAK,CAACK,MAAM,CAACC,OAAO,CAACC;EAAG,CAAC;EAChGC,GAAG,EAAE;IACHC,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE,EAAE;IACVC,YAAY,EAAEX,KAAK,CAACK,MAAM,CAACO,MAAM,CAACL,EAAE;IACpCM,WAAW,EAAE,CAAC;IACdC,cAAc,EAAE,QAAQ;IACxBX,UAAU,EAAE,QAAQ;IACpBY,WAAW,EAAEf,KAAK,CAACK,MAAM,CAACC,OAAO,CAACC,EAAE,GAAG;EACzC,CAAC;EACDS,KAAK,EAAE;IAAEC,QAAQ,EAAEjB,KAAK,CAACK,MAAM,CAACY,QAAQ,CAACC,EAAE;IAAEC,KAAK,EAAEnB,KAAK,CAACoB,MAAM,CAACC;EAAK;AACxE,CAAC,CAAC,CAAC;AAEH,OAAO,MAAMC,QAAQ,gBAAGrC,IAAI,CAAC,CAAC;EAAEsC,KAAK;EAAEC,aAAa;EAAER,KAAK;EAAEG,KAAK;EAAEM,QAAQ;EAAEC;AAAsB,CAAC,KAAK;EACxG,MAAMN,MAAM,GAAG3B,SAAS,CAAC,CAAC;EAC1B,MAAMkC,MAAM,GAAG5B,SAAS,CAAC,CAAC;EAC1B,MAAM6B,gBAAgB,GAAGpC,mBAAmB,CAAC,CAAC;EAC9C,MAAMqC,WAAW,GAAGV,KAAK,IAAIC,MAAM,CAACU,OAAO;EAC3C;EACA;EACA,MAAMC,UAAU,GAAGZ,KAAK,GAAGC,MAAM,CAACY,KAAK,GAAGZ,MAAM,CAACa,SAAS;EAC1D,MAAMC,QAAQ,GAAG/C,MAAM,CAAC,IAAIC,QAAQ,CAAC+C,KAAK,CAACZ,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAACa,OAAO;EAClE,MAAMC,UAAU,GAAGlD,MAAM,CAAC,IAAIC,QAAQ,CAAC+C,KAAK,CAACZ,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAACa,OAAO;EAEpElD,SAAS,CAAC,MAAM;IACdE,QAAQ,CAACkD,MAAM,CAACJ,QAAQ,EAAE;MAAEK,OAAO,EAAEhB,KAAK,GAAG,CAAC,GAAG,CAAC;MAAEiB,QAAQ,EAAE,GAAG;MAAEC,eAAe,EAAE;IAAM,CAAC,CAAC,CAACC,KAAK,CAAC,CAAC;IACpGtD,QAAQ,CAACuD,MAAM,CAACN,UAAU,EAAE;MAC1BE,OAAO,EAAEhB,KAAK,GAAG,CAAC,GAAG,CAAC;MACtBkB,eAAe,EAAE,IAAI;MACrBG,KAAK,EAAE,EAAE;MACTC,UAAU,EAAE;IACd,CAAC,CAAC,CAACH,KAAK,CAAC,CAAC;EACZ,CAAC,EAAE,CAACnB,KAAK,CAAC,CAAC;EAEX,MAAMuB,eAAe,GAAGZ,QAAQ,CAACa,WAAW,CAAC;IAAEC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAAEC,WAAW,EAAE,CAAC7B,MAAM,CAAC8B,OAAO,EAAErB,WAAW;EAAE,CAAC,CAAC;EAChH,MAAMsB,WAAW,GAAGjB,QAAQ,CAACa,WAAW,CAAC;IAAEC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAAEC,WAAW,EAAE,CAAC7B,MAAM,CAACgC,MAAM,EAAEvB,WAAW;EAAE,CAAC,CAAC;EAE3G,oBACE/B,KAAA,CAACR,gBAAgB;IACf+D,KAAK,EAAE1B,MAAM,CAAC1B,SAAU;IACxBqD,aAAa,EAAE,GAAI;IACnB7B,QAAQ,EAAEA,QAAS;IACnB8B,OAAO,EAAEA,CAAA,KAAM/B,aAAa,CAAC,CAACD,KAAK,CAAE;IACrCiC,iBAAiB,EAAC,UAAU;IAC5BC,kBAAkB,EAAE;MAAEC,OAAO,EAAEnC,KAAK;MAAEE,QAAQ,EAAE,CAAC,CAACA;IAAS,CAAE;IAC7DkC,kBAAkB,EAAE3C,KAAM;IAC1BU,MAAM,EAAEA,MAAO;IAAAkC,QAAA,gBAEfhE,IAAA,CAACR,QAAQ,CAACyE,IAAI;MAACR,KAAK,EAAE,CAAC1B,MAAM,CAACnB,GAAG,EAAE;QAAEsC,eAAe;QAAEK,WAAW;QAAEW,OAAO,EAAErC,QAAQ,GAAG,GAAG,GAAG;MAAE,CAAC,CAAE;MAAAmC,QAAA,eAChGhE,IAAA,CAACR,QAAQ,CAACyE,IAAI;QAACR,KAAK,EAAE;UAAEU,SAAS,EAAE,CAAC;YAAEC,KAAK,EAAE3B;UAAW,CAAC;QAAE,CAAE;QAAAuB,QAAA,eAC3DhE,IAAA,CAACF,IAAI;UAACuE,IAAI,EAAC,OAAO;UAACC,IAAI,EAAE,EAAG;UAAC/C,KAAK,EAAEY;QAAW,CAAE;MAAC,CACrC;IAAC,CACH,CAAC,EACff,KAAK,iBACJpB,IAAA,CAACP,IAAI;MAACuC,gBAAgB,EAAEA,gBAAiB;MAACyB,KAAK,EAAE1B,MAAM,CAACX,KAAM;MAAA4C,QAAA,EAC3D5C;IAAK,CACF,CACP;EAAA,CACe,CAAC;AAEvB,CAAC,CAAC;AACFM,QAAQ,CAAC6C,WAAW,GAAG,UAAU","ignoreList":[]}
1
+ {"version":3,"names":["React","memo","useEffect","useRef","Animated","Text","TouchableOpacity","createStyles","useAllowFontScaling","useColors","useTheme","Icon","onColor","useReduceMotion","jsx","_jsx","jsxs","_jsxs","useStyles","theme","container","flexDirection","alignItems","minHeight","box","width","height","borderRadius","tokens","radius","sm","borderWidth","justifyContent","marginRight","spacing","md","label","fontSize","color","colors","text","labelDisabled","textLight","Checkbox","value","onValueChange","disabled","accessibilityLabel","testID","styles","allowFontScaling","activeColor","primary","checkColor","onPrimary","reduceMotion","progress","Value","current","checkScale","setValue","timing","toValue","duration","fast","useNativeDriver","start","spring","speed","bounciness","backgroundColor","interpolate","inputRange","outputRange","surface","borderColor","border","style","activeOpacity","onPress","accessibilityRole","accessibilityState","checked","children","View","opacity","transform","scale","name","size","displayName"],"sourceRoot":"../../../src","sources":["atoms/Checkbox.tsx"],"mappings":"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","ignoreList":[]}
@@ -2,19 +2,44 @@
2
2
 
3
3
  import React, { memo } from 'react';
4
4
  import { View } from 'react-native';
5
- import { useColors } from '../theme/UIProvider';
5
+ import { useTheme } from '../theme/UIProvider';
6
6
  import { jsx as _jsx } from "react/jsx-runtime";
7
+ /**
8
+ * Divider
9
+ * 1pt line in `colors.border`.
10
+ *
11
+ * Gestalt: separates groups when proximity alone isn't enough (dense lists,
12
+ * rows spanning the whole screen). If spacing already separates the groups,
13
+ * prefer spacing: one line too many fragments what should read together.
14
+ * `spacing` takes its room from the token scale so the separation is the
15
+ * same across the whole app, instead of a different margin on each screen.
16
+ *
17
+ * It is decorative: it doesn't enter the accessibility tree.
18
+ */
7
19
  export const Divider = /*#__PURE__*/memo(({
20
+ orientation = 'horizontal',
21
+ spacing,
8
22
  style,
9
23
  testID
10
24
  }) => {
11
- const colors = useColors();
25
+ const theme = useTheme();
26
+ const gap = spacing ? theme.tokens.spacing[spacing] : 0;
27
+ const line = orientation === 'vertical' ? {
28
+ width: 1,
29
+ alignSelf: 'stretch',
30
+ marginHorizontal: gap
31
+ } : {
32
+ height: 1,
33
+ width: '100%',
34
+ marginVertical: gap
35
+ };
12
36
  return /*#__PURE__*/_jsx(View, {
13
37
  testID: testID,
14
- style: [{
15
- height: 1,
16
- backgroundColor: colors.border,
17
- width: '100%'
38
+ accessible: false,
39
+ importantForAccessibility: "no-hide-descendants",
40
+ accessibilityElementsHidden: true,
41
+ style: [line, {
42
+ backgroundColor: theme.colors.border
18
43
  }, style]
19
44
  });
20
45
  });
@@ -1 +1 @@
1
- {"version":3,"names":["React","memo","View","useColors","jsx","_jsx","Divider","style","testID","colors","height","backgroundColor","border","width","displayName"],"sourceRoot":"../../../src","sources":["atoms/Divider.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,IAAI,QAAQ,OAAO;AACnC,SAASC,IAAI,QAAwC,cAAc;AACnE,SAASC,SAAS,QAAQ,qBAAqB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAOhD,OAAO,MAAMC,OAAO,gBAAGL,IAAI,CAAC,CAAC;EAAEM,KAAK;EAAEC;AAAqB,CAAC,KAAK;EAC/D,MAAMC,MAAM,GAAGN,SAAS,CAAC,CAAC;EAC1B,oBAAOE,IAAA,CAACH,IAAI;IAACM,MAAM,EAAEA,MAAO;IAACD,KAAK,EAAE,CAAC;MAAEG,MAAM,EAAE,CAAC;MAAEC,eAAe,EAAEF,MAAM,CAACG,MAAM;MAAEC,KAAK,EAAE;IAAO,CAAC,EAAEN,KAAK;EAAE,CAAE,CAAC;AAC/G,CAAC,CAAC;AACFD,OAAO,CAACQ,WAAW,GAAG,SAAS","ignoreList":[]}
1
+ {"version":3,"names":["React","memo","View","useTheme","jsx","_jsx","Divider","orientation","spacing","style","testID","theme","gap","tokens","line","width","alignSelf","marginHorizontal","height","marginVertical","accessible","importantForAccessibility","accessibilityElementsHidden","backgroundColor","colors","border","displayName"],"sourceRoot":"../../../src","sources":["atoms/Divider.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,IAAI,QAAQ,OAAO;AACnC,SAASC,IAAI,QAAwC,cAAc;AACnE,SAASC,QAAQ,QAAQ,qBAAqB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAY/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,OAAO,gBAAGL,IAAI,CAAC,CAAC;EAAEM,WAAW,GAAG,YAAY;EAAEC,OAAO;EAAEC,KAAK;EAAEC;AAAqB,CAAC,KAAK;EACpG,MAAMC,KAAK,GAAGR,QAAQ,CAAC,CAAC;EACxB,MAAMS,GAAG,GAAGJ,OAAO,GAAGG,KAAK,CAACE,MAAM,CAACL,OAAO,CAACA,OAAO,CAAC,GAAG,CAAC;EACvD,MAAMM,IAAe,GACnBP,WAAW,KAAK,UAAU,GACtB;IAAEQ,KAAK,EAAE,CAAC;IAAEC,SAAS,EAAE,SAAS;IAAEC,gBAAgB,EAAEL;EAAI,CAAC,GACzD;IAAEM,MAAM,EAAE,CAAC;IAAEH,KAAK,EAAE,MAAM;IAAEI,cAAc,EAAEP;EAAI,CAAC;EACvD,oBACEP,IAAA,CAACH,IAAI;IACHQ,MAAM,EAAEA,MAAO;IACfU,UAAU,EAAE,KAAM;IAClBC,yBAAyB,EAAC,qBAAqB;IAC/CC,2BAA2B;IAC3Bb,KAAK,EAAE,CAACK,IAAI,EAAE;MAAES,eAAe,EAAEZ,KAAK,CAACa,MAAM,CAACC;IAAO,CAAC,EAAEhB,KAAK;EAAE,CAChE,CAAC;AAEN,CAAC,CAAC;AACFH,OAAO,CAACoB,WAAW,GAAG,SAAS","ignoreList":[]}