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
@@ -14,11 +14,11 @@ export interface ShinyTextProps {
14
14
  spread?: number;
15
15
  /** When false it renders plain text in `shineColor`. @default true */
16
16
  animated?: boolean;
17
- /** Resting color of the characters. @default theme.colors.textLight */
17
+ /** Resting color of the characters. Keep it readable on its own (WCAG AA): the shine is decorative. @default theme.colors.textLight */
18
18
  color?: string;
19
19
  /** Color of the band that travels across. @default theme.colors.primary */
20
20
  shineColor?: string;
21
- /** @default 'left' */
21
+ /** Horizontal alignment of the line. @default 'left' */
22
22
  align?: 'left' | 'center' | 'right';
23
23
  /** Typography only: `color` and `shineColor` win over any color set here. */
24
24
  style?: StyleProp<TextStyle>;
@@ -26,23 +26,23 @@ export interface ShinyTextProps {
26
26
  }
27
27
  /**
28
28
  * ShinyText
29
- * Una banda de luz recorre el texto de izquierda a derecha. Sin
30
- * `background-clip: text` ni máscaras —que React Native no tiene en el rango
31
- * soportado— el brillo se compone letra por letra: cada una lleva su color de
32
- * reposo y encima, superpuesta, la misma letra en el color del brillo con la
33
- * opacidad animada. La banda es una ventana de interpolación que se desplaza:
34
- * lo que cambia por frame es sólo `opacity`, o sea que la animación entera
35
- * corre en el hilo nativo y JS no participa de ningún frame.
29
+ * A band of light sweeps across the text from left to right. Without
30
+ * `background-clip: text` or masks —which React Native lacks in the supported
31
+ * range— the shine is composed letter by letter: each one carries its resting
32
+ * color and, overlaid on top, the same letter in the shine color with animated
33
+ * opacity. The band is a moving interpolation window: the only thing that
34
+ * changes per frame is `opacity`, which means the whole animation runs on the
35
+ * native thread and JS takes part in no frame.
36
36
  *
37
- * Gestalt, destino común: las letras se encienden en secuencia y con el mismo
38
- * ritmo, así que se leen como una sola cosa que se mueve —una palabra
39
- * iluminándose— y no como N letras parpadeando por su cuenta. Por eso el ancho
40
- * de banda es relativo al texto y no una cantidad fija de píxeles: un título
41
- * largo y uno corto tardan lo mismo y se perciben igual.
37
+ * Gestalt, common fate: the letters light up in sequence and at the same
38
+ * rhythm, so they read as one moving thing —a word lighting up— and not as N
39
+ * letters blinking on their own. That is why the band width is relative to
40
+ * the text and not a fixed number of pixels: a long title and a short one take
41
+ * the same time and are perceived the same.
42
42
  *
43
- * Con "reducir movimiento" activo, o con `animated={false}`, el texto se
44
- * renderiza plano en `shineColor` —legible, un solo nodo y seleccionable—
45
- * porque el efecto es decorativo y nada de lo que comunica está en el brillo.
43
+ * With "reduce motion" on, or with `animated={false}`, the text renders flat
44
+ * in `shineColor` —legible, a single node and selectable— because the effect
45
+ * is decorative and nothing it communicates lives in the shine.
46
46
  */
47
47
  export declare const ShinyText: React.MemoExoticComponent<({ text, duration, delay, spread, animated, color, shineColor, align, style, testID, }: ShinyTextProps) => React.JSX.Element>;
48
48
  //# sourceMappingURL=ShinyText.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ShinyText.d.ts","sourceRoot":"","sources":["../../../src/atoms/ShinyText.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2C,MAAM,OAAO,CAAC;AAChE,OAAO,EAKL,KAAK,SAAS,EACd,KAAK,SAAS,EAEf,MAAM,cAAc,CAAC;AAKtB,MAAM,WAAW,cAAc;IAC7B,2EAA2E;IAC3E,IAAI,EAAE,MAAM,CAAC;IACb,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sEAAsE;IACtE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2EAA2E;IAC3E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sBAAsB;IACtB,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC,6EAA6E;IAC7E,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAyDD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,SAAS,oHAYjB,cAAc,uBAkGlB,CAAC"}
1
+ {"version":3,"file":"ShinyText.d.ts","sourceRoot":"","sources":["../../../src/atoms/ShinyText.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2C,MAAM,OAAO,CAAC;AAChE,OAAO,EAKL,KAAK,SAAS,EACd,KAAK,SAAS,EAEf,MAAM,cAAc,CAAC;AAKtB,MAAM,WAAW,cAAc;IAC7B,2EAA2E;IAC3E,IAAI,EAAE,MAAM,CAAC;IACb,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sEAAsE;IACtE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uIAAuI;IACvI,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2EAA2E;IAC3E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC,6EAA6E;IAC7E,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAyDD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,SAAS,oHAYjB,cAAc,uBAkGlB,CAAC"}
@@ -2,11 +2,11 @@ import React from 'react';
2
2
  import { type DimensionValue, type StyleProp, type ViewStyle } from 'react-native';
3
3
  export type SkeletonVariant = 'rect' | 'text' | 'circle';
4
4
  export interface SkeletonProps {
5
- /** @default '100%' ('circle' also uses this as the diameter) */
5
+ /** Width of the placeholder. @default '100%' ('circle' also uses this as the diameter) */
6
6
  width?: DimensionValue;
7
- /** @default 16 ('text' uses the line height; 'circle', the width) */
7
+ /** Height of the placeholder. @default 16 ('text' uses Body's line height; 'circle', the width) */
8
8
  height?: DimensionValue;
9
- /** @default 'rect' */
9
+ /** Shape: a block, a line of text or a circle. @default 'rect' */
10
10
  variant?: SkeletonVariant;
11
11
  /** Override of the theme's radius. */
12
12
  radius?: number;
@@ -14,16 +14,21 @@ export interface SkeletonProps {
14
14
  lines?: number;
15
15
  /** Width of the last line, so the paragraph doesn't end as a solid block. @default '60%' */
16
16
  lastLineWidth?: DimensionValue;
17
- /** @default true */
17
+ /** Pulses while waiting. Off when the system's Reduce Motion is on. @default true */
18
18
  animated?: boolean;
19
19
  style?: StyleProp<ViewStyle>;
20
20
  testID?: string;
21
21
  }
22
22
  /**
23
23
  * Skeleton
24
- * Placeholder que late mientras llega el contenido real. Reserva el espacio
25
- * exacto de lo que reemplaza, así la pantalla no salta cuando aparecen los
26
- * datos — que es justamente lo que un Spinner centrado no puede hacer.
24
+ * Placeholder that pulses while the real content arrives. It reserves the
25
+ * exact space of what it replaces, so the screen doesn't jump when the data
26
+ * shows up — which is precisely what a centered Spinner can't do.
27
+ *
28
+ * Gestalt, similarity: the silhouette repeats the shape and size of the
29
+ * content (a circle for avatars, Body-height lines for text), so the eye
30
+ * already groups the screen before the data arrives. Respects Reduce Motion:
31
+ * no pulse, a static block.
27
32
  */
28
33
  export declare const Skeleton: React.MemoExoticComponent<({ width, height, variant, radius, lines, lastLineWidth, animated, style, testID, }: SkeletonProps) => React.JSX.Element>;
29
34
  //# sourceMappingURL=Skeleton.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Skeleton.d.ts","sourceRoot":"","sources":["../../../src/atoms/Skeleton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkC,MAAM,OAAO,CAAC;AACvD,OAAO,EAIL,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAItB,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEzD,MAAM,WAAW,aAAa;IAC5B,gEAAgE;IAChE,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,qEAAqE;IACrE,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,sBAAsB;IACtB,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,sCAAsC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yDAAyD;IACzD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4FAA4F;IAC5F,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B,oBAAoB;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAOD;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,iHAWhB,aAAa,uBAyDjB,CAAC"}
1
+ {"version":3,"file":"Skeleton.d.ts","sourceRoot":"","sources":["../../../src/atoms/Skeleton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuD,MAAM,OAAO,CAAC;AAC5E,OAAO,EAIL,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAQtB,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEzD,MAAM,WAAW,aAAa;IAC5B,0FAA0F;IAC1F,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,mGAAmG;IACnG,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,kEAAkE;IAClE,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,sCAAsC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yDAAyD;IACzD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4FAA4F;IAC5F,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B,qFAAqF;IACrF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAYD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,QAAQ,iHAWhB,aAAa,uBA+DjB,CAAC"}
@@ -1,8 +1,11 @@
1
1
  import React from 'react';
2
2
  export type SpinnerVariant = 'native' | 'dots' | 'ring';
3
3
  export interface SpinnerProps {
4
+ /** Indicator size; also scales the `dots` and `ring` variants. @default 'large' */
4
5
  size?: 'small' | 'large';
6
+ /** Indicator color. @default colors.primary */
5
7
  color?: string;
8
+ /** Message under the indicator. Also what screen readers announce. */
6
9
  text?: string;
7
10
  /** @default true. When false, doesn't take up flex:1 (useful inline, inside a button/row). */
8
11
  fullscreen?: boolean;
@@ -14,7 +17,32 @@ export interface SpinnerProps {
14
17
  variant?: SpinnerVariant;
15
18
  /** Fully custom indicator. Takes precedence over `variant`. */
16
19
  indicator?: React.ReactNode;
20
+ /**
21
+ * Shown above the indicator — typically the app logo on a splash or
22
+ * first-load screen (an `<Image>`, an `<Avatar>`, any node).
23
+ */
24
+ logo?: React.ReactNode;
25
+ /** What screen readers announce. @default text ?? labels.loading */
26
+ accessibilityLabel?: string;
17
27
  testID?: string;
18
28
  }
19
- export declare const Spinner: React.MemoExoticComponent<({ size, color, text, fullscreen, variant, indicator, testID }: SpinnerProps) => React.JSX.Element>;
29
+ /**
30
+ * Spinner
31
+ * Indeterminate loading indicator, with optional text below.
32
+ *
33
+ * Gestalt:
34
+ * - Common fate: the three `dots` pulse in sequence, at the same rhythm, and
35
+ * read as a single indicator moving forward.
36
+ * - Proximity: the text sits `spacing.md` from the indicator, so it reads as
37
+ * its explanation and not as loose text on the screen. The `logo` sits
38
+ * further away (`spacing.xl`): it is the screen's brand, not part of the indicator.
39
+ * - Focal point: with `logo`, the logo is the first thing seen and the
40
+ * indicator stays as a secondary signal that the app is loading.
41
+ *
42
+ * Accessibility: it is announced as a busy `progressbar`, with `text` (or
43
+ * `labels.loading`) as its name. The animation doesn't stop with Reduce
44
+ * Motion: it is the signal that something is happening, like the system's
45
+ * ActivityIndicator.
46
+ */
47
+ export declare const Spinner: React.MemoExoticComponent<({ size, color, text, fullscreen, variant, indicator, logo, accessibilityLabel, testID, }: SpinnerProps) => React.JSX.Element>;
20
48
  //# sourceMappingURL=Spinner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Spinner.d.ts","sourceRoot":"","sources":["../../../src/atoms/Spinner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkC,MAAM,OAAO,CAAC;AAKvD,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAExD,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8FAA8F;IAC9F,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,+DAA+D;IAC/D,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA6ED,eAAO,MAAM,OAAO,4FAC0E,YAAY,uBAyBzG,CAAC"}
1
+ {"version":3,"file":"Spinner.d.ts","sourceRoot":"","sources":["../../../src/atoms/Spinner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkC,MAAM,OAAO,CAAC;AAKvD,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAExD,MAAM,WAAW,YAAY;IAC3B,mFAAmF;IACnF,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IACzB,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8FAA8F;IAC9F,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,+DAA+D;IAC/D,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B;;;OAGG;IACH,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,oEAAoE;IACpE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA4FD;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,OAAO,uHAWf,YAAY,uBAmChB,CAAC"}
@@ -6,8 +6,54 @@ export interface TypographyProps extends TextProps {
6
6
  color?: string;
7
7
  align?: 'left' | 'center' | 'right';
8
8
  }
9
+ /**
10
+ * Screen or section title: the highest step of the typographic hierarchy.
11
+ *
12
+ * Gestalt, focal point (Von Restorff): it is the only text in its block with
13
+ * size `xxl` and weight `bold`, so it breaks the series of Body/Caption and is
14
+ * the first thing read. That is why there should be only one per block: two
15
+ * Titles together cancel each other out. The `tight` tracking offsets the room
16
+ * the large size opens between letters so the word reads as a single shape
17
+ * (Prägnanz), and `lineHeight.xl` keeps the block compact when the title wraps.
18
+ *
19
+ * Accessibility: it is announced with `accessibilityRole="header"`, so
20
+ * VoiceOver/TalkBack can jump from title to title. It can be overridden by
21
+ * passing a different `accessibilityRole`.
22
+ */
9
23
  export declare const Title: React.MemoExoticComponent<({ children, style, color, align, ...props }: TypographyProps) => React.JSX.Element>;
24
+ /**
25
+ * Second step of the hierarchy: heads a group within the screen or
26
+ * accompanies a Title with a short piece of data.
27
+ *
28
+ * Gestalt, similarity: it shares its color with Body but steps up size (`lg`)
29
+ * and weight (`semibold`), so it is perceived as part of the same family and,
30
+ * at the same time, as the label of the block that follows. Proximity: it
31
+ * should sit closer to the content it heads than to the previous block. It is
32
+ * not an accessibility heading: if it marks a navigable section, use Title (or
33
+ * pass `accessibilityRole="header"`).
34
+ * `lineHeight.lg` (1.5×) keeps the text legible when it spans several lines.
35
+ */
10
36
  export declare const Subtitle: React.MemoExoticComponent<({ children, style, color, align, ...props }: TypographyProps) => React.JSX.Element>;
37
+ /**
38
+ * Running text: the default style for paragraphs, descriptions and values.
39
+ *
40
+ * Gestalt, similarity: all reading content shares size (`md`), regular weight
41
+ * and the `text` color, so it is perceived as a single level and the steps
42
+ * above (Title, Subtitle) and below (Caption) stand out by contrast.
43
+ * `lineHeight.md` (≈1.43×) gives the room between lines to read long
44
+ * paragraphs. If `color` is passed, the color/background pair must meet WCAG
45
+ * AA (4.5:1); the theme colors already guarantee it.
46
+ */
11
47
  export declare const Body: React.MemoExoticComponent<({ children, style, color, align, ...props }: TypographyProps) => React.JSX.Element>;
48
+ /**
49
+ * Secondary text: hints, metadata, dates, help below a field.
50
+ *
51
+ * Gestalt, figure and ground: size `sm` and color `textLight` bring it one
52
+ * step below Body, so it reads as context and doesn't compete with the
53
+ * content. Proximity: it sits right next to the element it explains.
54
+ * `textLight` meets WCAG AA over `surface` and `background` in light and dark
55
+ * (palettes tests); don't lighten it further. `lineHeight.sm` (≈1.33×) keeps
56
+ * the lines together when the hint spans several.
57
+ */
12
58
  export declare const Caption: React.MemoExoticComponent<({ children, style, color, align, ...props }: TypographyProps) => React.JSX.Element>;
13
59
  //# sourceMappingURL=Text.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Text.d.ts","sourceRoot":"","sources":["../../../src/atoms/Text.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAe,MAAM,OAAO,CAAC;AACpC,OAAO,EAAkB,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAI9F,MAAM,WAAW,eAAgB,SAAQ,SAAS;IAChD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;CACrC;AA4CD,eAAO,MAAM,KAAK,0EAlB8D,eAAe,uBAkB9C,CAAC;AAClD,eAAO,MAAM,QAAQ,0EAnB2D,eAAe,uBAmBxC,CAAC;AACxD,eAAO,MAAM,IAAI,0EApB+D,eAAe,uBAoBhD,CAAC;AAChD,eAAO,MAAM,OAAO,0EArB4D,eAAe,uBAqBrC,CAAC"}
1
+ {"version":3,"file":"Text.d.ts","sourceRoot":"","sources":["../../../src/atoms/Text.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAe,MAAM,OAAO,CAAC;AACpC,OAAO,EAGL,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAItB,MAAM,WAAW,eAAgB,SAAQ,SAAS;IAChD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;CACrC;AAoDD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,KAAK,0EAjC8D,eAAe,uBAiCpC,CAAC;AAC5D;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,QAAQ,0EA9C2D,eAAe,uBA8CxC,CAAC;AACxD;;;;;;;;;GASG;AACH,eAAO,MAAM,IAAI,0EAzD+D,eAAe,uBAyDhD,CAAC;AAChD;;;;;;;;;GASG;AACH,eAAO,MAAM,OAAO,0EApE4D,eAAe,uBAoErC,CAAC"}
@@ -1,7 +1,9 @@
1
1
  import React from 'react';
2
2
  import { Animated, type StyleProp, type ViewStyle } from 'react-native';
3
+ import { useReduceMotion } from '../theme/useReduceMotion';
3
4
  export type TransitionPreset = 'fade' | 'scale' | 'pop' | 'slide-up' | 'slide-down' | 'slide-left' | 'slide-right';
4
5
  export interface TransitionProps {
6
+ /** Content that enters and exits. */
5
7
  children: React.ReactNode;
6
8
  /** Enters when true, exits (and unmounts) when false. @default true */
7
9
  visible?: boolean;
@@ -11,7 +13,7 @@ export interface TransitionProps {
11
13
  duration?: number;
12
14
  /** ms before starting. A per-index delay staggers a list. @default 0 */
13
15
  delay?: number;
14
- /** Pixels traveled by the slide presets. @default 24 */
16
+ /** Pixels traveled by the slide presets. @default tokens.spacing.xxl (24) */
15
17
  distance?: number;
16
18
  /** Spring instead of timing (implicit in 'pop'). */
17
19
  spring?: boolean;
@@ -24,28 +26,30 @@ export interface TransitionProps {
24
26
  * whoever passes it decides when and how it advances (a PanResponder, for example).
25
27
  */
26
28
  value?: Animated.Value;
29
+ /** Called when the enter animation finishes. Not called when driven by `value`. */
27
30
  onEntered?: () => void;
31
+ /** Called when the exit animation finishes, before unmounting. Not called when driven by `value`. */
28
32
  onExited?: () => void;
29
33
  style?: StyleProp<ViewStyle>;
30
34
  testID?: string;
31
35
  }
32
- /**
33
- * Sigue el ajuste de "reducir movimiento" del sistema: con él activo las
34
- * animaciones saltan al estado final en vez de desactivarse, así que los
35
- * callbacks y el desmontaje siguen ocurriendo igual.
36
- */
37
- export declare function useReduceMotion(): boolean;
36
+ export { useReduceMotion };
38
37
  /**
39
38
  * Transition
40
- * Envuelve cualquier árbol y lo anima al entrar y al salir. Todos los presets
41
- * se reducen a `opacity` y `transform` sobre un único Animated.Value, que es
42
- * lo que `useNativeDriver` sabe mandar al hilo nativo: la animación corre ahí
43
- * y el hilo de JS no participa de ningún frame — por eso no hay presets de
44
- * alto, ancho o color, que obligarían a volver a JS en cada frame.
39
+ * Wraps any tree and animates it on enter and exit. Every preset boils down
40
+ * to `opacity` and `transform` over a single Animated.Value, which is what
41
+ * `useNativeDriver` knows how to send to the native thread: the animation runs
42
+ * there and the JS thread takes part in no frame — that is why there are no
43
+ * height, width or color presets, which would force a return to JS every frame.
44
+ *
45
+ * The node stays mounted until the exit animation finishes, and the behavior
46
+ * is identical on iOS and Android: there is no per-platform branch. While
47
+ * exiting (or hidden with `keepMounted`) it stops receiving touches and leaves
48
+ * the accessibility tree: what is invisible isn't read.
45
49
  *
46
- * El nodo se mantiene montado hasta que termina la animación de salida, y el
47
- * comportamiento es idéntico en iOS y Android: no hay ninguna rama por
48
- * plataforma.
50
+ * Gestalt, common fate: what enters or exits together is perceived as a group;
51
+ * with a per-index `delay` the list enters in reading order (continuity).
52
+ * Respects Reduce Motion: jumps to the final state, callbacks still fire.
49
53
  */
50
54
  export declare const Transition: React.MemoExoticComponent<({ children, visible, preset, duration, delay, distance, spring, appear, keepMounted, value, onEntered, onExited, style, testID, }: TransitionProps) => React.JSX.Element | null>;
51
55
  //# sourceMappingURL=Transition.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Transition.d.ts","sourceRoot":"","sources":["../../../src/atoms/Transition.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqD,MAAM,OAAO,CAAC;AAC1E,OAAO,EAAqB,QAAQ,EAAU,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAGnG,MAAM,MAAM,gBAAgB,GACxB,MAAM,GACN,OAAO,GACP,KAAK,GACL,UAAU,GACV,YAAY,GACZ,YAAY,GACZ,aAAa,CAAC;AAElB,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,uEAAuE;IACvE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,4EAA4E;IAC5E,MAAM,CAAC,EAAE,gBAAgB,GAAG,gBAAgB,EAAE,CAAC;IAC/C,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wEAAwE;IACxE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wDAAwD;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,0FAA0F;IAC1F,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,oEAAoE;IACpE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,KAAK,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAID;;;;GAIG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAkBzC;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,UAAU,gKAgBlB,eAAe,8BA0FnB,CAAC"}
1
+ {"version":3,"file":"Transition.d.ts","sourceRoot":"","sources":["../../../src/atoms/Transition.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqD,MAAM,OAAO,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAU,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAEhF,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D,MAAM,MAAM,gBAAgB,GACxB,MAAM,GACN,OAAO,GACP,KAAK,GACL,UAAU,GACV,YAAY,GACZ,YAAY,GACZ,aAAa,CAAC;AAElB,MAAM,WAAW,eAAe;IAC9B,qCAAqC;IACrC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,uEAAuE;IACvE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,4EAA4E;IAC5E,MAAM,CAAC,EAAE,gBAAgB,GAAG,gBAAgB,EAAE,CAAC;IAC/C,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wEAAwE;IACxE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,0FAA0F;IAC1F,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,oEAAoE;IACpE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,KAAK,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC;IACvB,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,qGAAqG;IACrG,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AASD,OAAO,EAAE,eAAe,EAAE,CAAC;AAE3B;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,UAAU,gKAgBlB,eAAe,8BA+FnB,CAAC"}
@@ -5,7 +5,7 @@ export type { ButtonProps, ButtonVariant, ButtonSize } from './Button';
5
5
  export { IconButton } from './IconButton';
6
6
  export type { IconButtonProps } from './IconButton';
7
7
  export { Input } from './Input';
8
- export type { InputProps } from './Input';
8
+ export type { InputProps, InputHandle, InputRules, InputRuleValue } from './Input';
9
9
  export { Checkbox } from './Checkbox';
10
10
  export type { CheckboxProps } from './Checkbox';
11
11
  export { Badge } from './Badge';
@@ -16,7 +16,7 @@ export { Divider } from './Divider';
16
16
  export type { DividerProps } from './Divider';
17
17
  export { Gradient } from './Gradient';
18
18
  export type { GradientProps, GradientDirection } from './Gradient';
19
- export { Avatar } from './Avatar';
19
+ export { Avatar, initialsOf } from './Avatar';
20
20
  export type { AvatarProps } from './Avatar';
21
21
  export { Image, prefetchImage } from './Image';
22
22
  export type { ImageProps } from './Image';
@@ -29,7 +29,7 @@ export type { TransitionProps, TransitionPreset } from './Transition';
29
29
  export { ShinyText } from './ShinyText';
30
30
  export type { ShinyTextProps } from './ShinyText';
31
31
  export { EmptyState } from './EmptyState';
32
- export type { EmptyStateProps } from './EmptyState';
32
+ export type { EmptyStateProps, EmptyStateAction } from './EmptyState';
33
33
  export { KeyValueRow } from './KeyValueRow';
34
34
  export type { KeyValueRowProps } from './KeyValueRow';
35
35
  export { Fab } from './Fab';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atoms/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACxD,YAAY,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,YAAY,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC/C,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC3D,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,YAAY,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atoms/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACxD,YAAY,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACnF,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,YAAY,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACnE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC9C,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC/C,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC3D,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,YAAY,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,29 @@
1
+ import type { Labels } from '../theme/labels';
2
+ /** A rule's value, optionally with its own message instead of the default label. */
3
+ export type InputRuleValue<T> = T | {
4
+ value: T;
5
+ message: string;
6
+ };
7
+ export interface InputRules {
8
+ /** Fewer characters than this is an error. Message: `labels.minLengthError`. */
9
+ minLength?: InputRuleValue<number>;
10
+ /** More characters than this is an error. Message: `labels.maxLengthError`. */
11
+ maxLength?: InputRuleValue<number>;
12
+ /** The value must match. Message: `labels.patternError`. */
13
+ pattern?: InputRuleValue<RegExp>;
14
+ /**
15
+ * Custom check, run last. Return an error message, or `false` for
16
+ * `labels.patternError`; anything else means valid.
17
+ */
18
+ validate?: (value: string) => string | boolean | null | undefined;
19
+ }
20
+ /**
21
+ * Error for the value, or undefined if it is valid. Order: required, min
22
+ * length, max length, pattern, custom validation — a single error is shown,
23
+ * the first one. An empty optional field is valid: the other rules don't run on nothing.
24
+ */
25
+ export declare function validateInputValue(value: string, { required, rules }: {
26
+ required?: boolean;
27
+ rules?: InputRules;
28
+ }, labels: Labels): string | undefined;
29
+ //# sourceMappingURL=inputValidation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inputValidation.d.ts","sourceRoot":"","sources":["../../../src/atoms/inputValidation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9C,oFAAoF;AACpF,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG;IAAE,KAAK,EAAE,CAAC,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAElE,MAAM,WAAW,UAAU;IACzB,gFAAgF;IAChF,SAAS,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IACnC,+EAA+E;IAC/E,SAAS,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IACnC,4DAA4D;IAC5D,OAAO,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IACjC;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;CACnE;AAQD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,EACb,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,UAAU,CAAA;CAAE,EAC/D,MAAM,EAAE,MAAM,GACb,MAAM,GAAG,SAAS,CAwBpB"}
@@ -9,10 +9,10 @@ export interface IconProps {
9
9
  }
10
10
  /**
11
11
  * Icon
12
- * Resuelve el glifo vía el renderer activo (UIProvider.icons, default zero-dep
13
- * si no se configuró ninguno). Uso interno de la librería — los componentes
14
- * públicos exponen `icon?: ReactNode` además de esto, para que el consumidor
15
- * pueda inyectar cualquier ícono sin pasar por el sistema de nombres.
12
+ * Resolves the glyph through the active renderer (UIProvider.icons, the
13
+ * zero-dep default if none was configured). Internal use by the library —
14
+ * public components expose `icon?: ReactNode` in addition to this, so the
15
+ * consumer can inject any icon without going through the name system.
16
16
  */
17
17
  export declare const Icon: React.MemoExoticComponent<({ name, size, color, style }: IconProps) => React.JSX.Element>;
18
18
  //# sourceMappingURL=Icon.d.ts.map
@@ -1,5 +1,22 @@
1
1
  import React from 'react';
2
- import type { IconName, IconRenderProps } from './types';
3
- /** Renderer default. Se usa cuando <UIProvider icons={...}> no pasa uno propio. */
2
+ import type { BuiltInIconName, IconName, IconRenderProps } from './types';
3
+ /**
4
+ * Default glyphs drawn with RN primitives (View + border + transform).
5
+ * Zero dependencies, zero fonts, zero async loading. They cover what the
6
+ * library needs internally (checkbox, Select chevrons, password toggle in
7
+ * Input, etc) plus a basic set for apps (menu, home, user…).
8
+ * For a complete set, the consumer injects their own via
9
+ * <UIProvider icons={...}> or the `icon` prop.
10
+ */
11
+ /**
12
+ * Color of the inner glyph of a filled icon (alert, warning): black or
13
+ * white depending on the fill's luminance. A fixed white disappeared over
14
+ * dark mode's light fills (figure and ground). Non-hex colors (rgb(),
15
+ * names) fall back to white, the common case over saturated accents.
16
+ */
17
+ export declare function onColor(fill: string): string;
18
+ /** All included glyphs, in catalog order. */
19
+ export declare const BUILT_IN_ICON_NAMES: readonly BuiltInIconName[];
20
+ /** Default renderer. Used when <UIProvider icons={...}> doesn't pass its own. */
4
21
  export declare function renderDefaultIcon(name: IconName, props: IconRenderProps): React.ReactNode;
5
22
  //# sourceMappingURL=defaultIcons.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"defaultIcons.d.ts","sourceRoot":"","sources":["../../../src/icons/defaultIcons.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAe,MAAM,OAAO,CAAC;AAEpC,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AA6PzD,mFAAmF;AACnF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,eAAe,GAAG,KAAK,CAAC,SAAS,CAmCzF"}
1
+ {"version":3,"file":"defaultIcons.d.ts","sourceRoot":"","sources":["../../../src/icons/defaultIcons.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAe,MAAM,OAAO,CAAC;AAEpC,OAAO,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1E;;;;;;;GAOG;AAEH;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAc5C;AAkmBD,6CAA6C;AAC7C,eAAO,MAAM,mBAAmB,EAAE,SAAS,eAAe,EAIzD,CAAC;AAEF,iFAAiF;AACjF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,eAAe,GAAG,KAAK,CAAC,SAAS,CA+DzF"}
@@ -1,5 +1,5 @@
1
1
  export { Icon } from './Icon';
2
2
  export type { IconProps } from './Icon';
3
- export { renderDefaultIcon } from './defaultIcons';
4
- export type { IconName, IconRenderer, IconRenderProps } from './types';
3
+ export { renderDefaultIcon, BUILT_IN_ICON_NAMES } from './defaultIcons';
4
+ export type { BuiltInIconName, IconName, IconRenderer, IconRenderProps } from './types';
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/icons/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,YAAY,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/icons/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,YAAY,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACxE,YAAY,EAAE,eAAe,EAAE,QAAQ,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC"}
@@ -1,10 +1,20 @@
1
1
  import type { ReactNode } from 'react';
2
- /** Glifos que los componentes de la librería necesitan internamente. */
3
- export type IconName = 'check' | 'close' | 'chevron-down' | 'chevron-up' | 'chevron-left' | 'chevron-right' | 'eye' | 'eye-off' | 'search' | 'plus' | 'minus' | 'alert' | 'info' | 'warning' | 'question';
2
+ /**
3
+ * Included glyphs (drawn with RN primitives, zero dependencies): the ones
4
+ * the library uses internally plus a basic set for apps.
5
+ */
6
+ export type BuiltInIconName = 'check' | 'close' | 'chevron-down' | 'chevron-up' | 'chevron-left' | 'chevron-right' | 'eye' | 'eye-off' | 'search' | 'scan' | 'plus' | 'minus' | 'alert' | 'info' | 'warning' | 'question' | 'menu' | 'more' | 'home' | 'settings' | 'user' | 'trash' | 'edit' | 'share' | 'heart' | 'star';
7
+ /**
8
+ * Icon name accepted by `iconName`, `leftIconName`, etc. Autocompletes the
9
+ * included ones and also accepts any string, for those who plug in their own
10
+ * set with `<UIProvider icons={...}>` (e.g. `iconName="calendar"`). A name
11
+ * the active renderer doesn't know draws nothing (and warns in development).
12
+ */
13
+ export type IconName = BuiltInIconName | (string & {});
4
14
  export interface IconRenderProps {
5
15
  size: number;
6
16
  color: string;
7
17
  }
8
- /** Renderer inyectable: reemplaza los glifos default por los de cualquier set de iconos. */
18
+ /** Injectable renderer: replaces the default glyphs with those of any icon set. */
9
19
  export type IconRenderer = (name: IconName, props: IconRenderProps) => ReactNode;
10
20
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/icons/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,wEAAwE;AACxE,MAAM,MAAM,QAAQ,GAChB,OAAO,GACP,OAAO,GACP,cAAc,GACd,YAAY,GACZ,cAAc,GACd,eAAe,GACf,KAAK,GACL,SAAS,GACT,QAAQ,GACR,MAAM,GACN,OAAO,GACP,OAAO,GACP,MAAM,GACN,SAAS,GACT,UAAU,CAAC;AAEf,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,4FAA4F;AAC5F,MAAM,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,eAAe,KAAK,SAAS,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/icons/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC;;;GAGG;AACH,MAAM,MAAM,eAAe,GACvB,OAAO,GACP,OAAO,GACP,cAAc,GACd,YAAY,GACZ,cAAc,GACd,eAAe,GACf,KAAK,GACL,SAAS,GACT,QAAQ,GACR,MAAM,GACN,MAAM,GACN,OAAO,GACP,OAAO,GACP,MAAM,GACN,SAAS,GACT,UAAU,GACV,MAAM,GACN,MAAM,GACN,MAAM,GACN,UAAU,GACV,MAAM,GACN,OAAO,GACP,MAAM,GACN,OAAO,GACP,OAAO,GACP,MAAM,CAAC;AAEX;;;;;GAKG;AACH,MAAM,MAAM,QAAQ,GAAG,eAAe,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAEvD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,mFAAmF;AACnF,MAAM,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,eAAe,KAAK,SAAS,CAAC"}
@@ -4,17 +4,36 @@ import type { IconName } from '../icons/types';
4
4
  export interface AvatarHeaderProps {
5
5
  /** Icon to show inside the circle. If omitted, `initials` is used instead. */
6
6
  iconName?: IconName;
7
+ /** Icon color. Keep AA contrast against `primarySoft`, the circle's fill. @default colors.primary */
7
8
  iconColor?: string;
8
- /** Short text (e.g. 2 letters) shown when `iconName` isn't provided. */
9
+ /** Short text (e.g. 2 letters) shown when `iconName` isn't provided. Without either, a `user` icon. */
9
10
  initials?: string;
11
+ /** Main heading of the screen or modal; announced as a header. */
10
12
  title: string;
13
+ /** Supporting line under the title. A string gets the muted style; a node renders as is. */
11
14
  subtitle?: React.ReactNode;
15
+ /**
16
+ * Third and last line, the least important detail ("Joined March 2023").
17
+ * Three lines is the limit: beyond that the header stops being scannable.
18
+ */
19
+ caption?: string;
12
20
  style?: StyleProp<ViewStyle>;
21
+ testID?: string;
13
22
  }
14
23
  /**
15
24
  * AvatarHeader
16
- * Círculo 80x80 con ícono o iniciales + título/subtítulo centrado. Header
17
- * típico de modales de detalle (cliente, producto, etc).
25
+ * 80x80 circle with an icon or initials + centered title/subtitle. Typical
26
+ * header of detail modals (client, product, etc).
27
+ *
28
+ * Gestalt, symmetry and focal point: everything sits on one centered axis and
29
+ * the circle is the single large shape, so the eye lands there first and then
30
+ * drops to the title. Proximity: title and subtitle are closer to each other
31
+ * than to the circle, reading as one name + its detail. Hierarchy by size:
32
+ * title, subtitle, caption — at most three lines of text. Long text wraps
33
+ * centered, so the axis holds. No outer margin: the parent sets the spacing.
34
+ *
35
+ * Accessibility: the title is a header; the circle is decorative (the
36
+ * initials would only repeat the title).
18
37
  */
19
- export declare const AvatarHeader: React.MemoExoticComponent<({ iconName, iconColor, initials, title, subtitle, style }: AvatarHeaderProps) => React.JSX.Element>;
38
+ export declare const AvatarHeader: React.MemoExoticComponent<({ iconName, iconColor, initials, title, subtitle, caption, style, testID }: AvatarHeaderProps) => React.JSX.Element>;
20
39
  //# sourceMappingURL=AvatarHeader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AvatarHeader.d.ts","sourceRoot":"","sources":["../../../src/molecules/AvatarHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAe,MAAM,OAAO,CAAC;AACpC,OAAO,EAAc,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAI1E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,MAAM,WAAW,iBAAiB;IAChC,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B;AAkBD;;;;GAIG;AACH,eAAO,MAAM,YAAY,wFAAoE,iBAAiB,uBA4B5G,CAAC"}
1
+ {"version":3,"file":"AvatarHeader.d.ts","sourceRoot":"","sources":["../../../src/molecules/AvatarHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAe,MAAM,OAAO,CAAC;AACpC,OAAO,EAAc,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAI1E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,MAAM,WAAW,iBAAiB;IAChC,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,qGAAqG;IACrG,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uGAAuG;IACvG,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kEAAkE;IAClE,KAAK,EAAE,MAAM,CAAC;IACd,4FAA4F;IAC5F,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA6CD;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,YAAY,yGACsD,iBAAiB,uBAmC/F,CAAC"}
@@ -2,20 +2,37 @@ import React from 'react';
2
2
  import { type StyleProp, type ViewStyle } from 'react-native';
3
3
  import type { IconName } from '../icons/types';
4
4
  export interface FormActionsProps {
5
- /** If omitted, only the secondary button is shown. */
5
+ /** Label of the main action ("Save"). The primary button shows only with both this and `onPrimaryPress`. */
6
6
  primaryLabel?: string;
7
+ /** Main action. */
7
8
  onPrimaryPress?: () => void;
9
+ /** Blocks the main action, e.g. while the form is invalid. @default false */
8
10
  primaryDisabled?: boolean;
11
+ /**
12
+ * The main action is running: shows a spinner and ignores presses, so it
13
+ * can't be sent twice. The secondary button stays usable. @default false
14
+ */
9
15
  primaryLoading?: boolean;
16
+ /** Icon before the primary label. */
10
17
  primaryLeftIconName?: IconName;
18
+ /** Label of the ghost button. @default labels.close */
11
19
  secondaryLabel?: string;
20
+ /** Close / cancel action. */
12
21
  onSecondaryPress: () => void;
13
22
  style?: StyleProp<ViewStyle>;
23
+ /** Root testID; the buttons get `<testID>-primary` and `<testID>-secondary`. */
24
+ testID?: string;
14
25
  }
15
26
  /**
16
27
  * FormActions
17
- * Par de botones: uno primario (guardar/editar) y uno ghost (cerrar/cancelar).
18
- * Uso típico: al final de un form, o en el footer de un Modal.
28
+ * Pair of buttons: a primary one (save/edit) and a ghost one (close/cancel).
29
+ * Typical use: at the end of a form, or in a Modal's footer.
30
+ *
31
+ * Gestalt, proximity: both buttons sit close together and apart from the
32
+ * fields, so they read as the form's closing actions. Von Restorff: only the
33
+ * primary is filled; the secondary is ghost, so the main path is obvious and
34
+ * the two never compete (Hick: one clear choice). Fitts: full width, primary
35
+ * first, closest to the content it acts on.
19
36
  */
20
- export declare const FormActions: React.MemoExoticComponent<({ primaryLabel, onPrimaryPress, primaryDisabled, primaryLoading, primaryLeftIconName, secondaryLabel, onSecondaryPress, style, }: FormActionsProps) => React.JSX.Element>;
37
+ export declare const FormActions: React.MemoExoticComponent<({ primaryLabel, onPrimaryPress, primaryDisabled, primaryLoading, primaryLeftIconName, secondaryLabel, onSecondaryPress, style, testID, }: FormActionsProps) => React.JSX.Element>;
21
38
  //# sourceMappingURL=FormActions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FormActions.d.ts","sourceRoot":"","sources":["../../../src/molecules/FormActions.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAe,MAAM,OAAO,CAAC;AACpC,OAAO,EAAQ,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAEpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG/C,MAAM,WAAW,gBAAgB;IAC/B,sDAAsD;IACtD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,mBAAmB,CAAC,EAAE,QAAQ,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B;AAED;;;;GAIG;AACH,eAAO,MAAM,WAAW,+JAUnB,gBAAgB,uBAiBpB,CAAC"}
1
+ {"version":3,"file":"FormActions.d.ts","sourceRoot":"","sources":["../../../src/molecules/FormActions.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAe,MAAM,OAAO,CAAC;AACpC,OAAO,EAAQ,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAEpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAI/C,MAAM,WAAW,gBAAgB;IAC/B,4GAA4G;IAC5G,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mBAAmB;IACnB,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,6EAA6E;IAC7E,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,qCAAqC;IACrC,mBAAmB,CAAC,EAAE,QAAQ,CAAC;IAC/B,uDAAuD;IACvD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6BAA6B;IAC7B,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,gFAAgF;IAChF,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAMD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,WAAW,uKAWnB,gBAAgB,uBAwBpB,CAAC"}