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
@@ -9,36 +9,65 @@ var _reactNative = require("react-native");
9
9
  var _createStyles = require("../theme/createStyles");
10
10
  var _UIProvider = require("../theme/UIProvider");
11
11
  var _Icon = require("../icons/Icon");
12
+ var _Button = require("./Button");
12
13
  var _jsxRuntime = require("react/jsx-runtime");
13
14
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
15
+ /** Icon size: the block's focal point without competing with the title. */
16
+ const ICON_SIZE = 48;
17
+ /** Minimum height: the block doesn't get squashed inside a short empty list. */
18
+ const MIN_HEIGHT = 200;
14
19
  const useStyles = (0, _createStyles.createStyles)(theme => ({
15
20
  container: {
16
21
  flex: 1,
17
22
  justifyContent: 'center',
18
23
  alignItems: 'center',
19
- padding: theme.tokens.spacing.xxl - 4,
20
- minHeight: 200
24
+ padding: theme.tokens.spacing.xl,
25
+ minHeight: MIN_HEIGHT
21
26
  },
22
27
  title: {
23
28
  fontSize: theme.tokens.fontSize.lg,
24
29
  fontWeight: theme.tokens.fontWeight.semibold,
25
- color: theme.colors.textLight,
26
- marginTop: theme.tokens.spacing.md - 2,
30
+ lineHeight: theme.tokens.lineHeight.lg,
31
+ color: theme.colors.text,
32
+ marginTop: theme.tokens.spacing.md,
27
33
  textAlign: 'center'
28
34
  },
29
35
  description: {
30
36
  fontSize: theme.tokens.fontSize.md,
37
+ lineHeight: theme.tokens.lineHeight.md,
31
38
  color: theme.colors.textLight,
32
- marginTop: theme.tokens.spacing.xs + 1,
39
+ marginTop: theme.tokens.spacing.xs,
33
40
  textAlign: 'center'
41
+ },
42
+ message: {
43
+ alignItems: 'center'
44
+ },
45
+ action: {
46
+ marginTop: theme.tokens.spacing.lg
34
47
  }
35
48
  }));
49
+
50
+ /**
51
+ * EmptyState
52
+ * Centered icon + title + description for a list or screen with no data.
53
+ *
54
+ * Gestalt, proximity: title and description sit close together (`spacing.xs`)
55
+ * and the icon one step further (`spacing.md`), so they read as a message
56
+ * with its image and not as three loose pieces. Similarity: the title in
57
+ * `text` and the description in `textLight` mark the hierarchy. The action,
58
+ * if any, is set further apart (`spacing.lg`): it is the next step, not part
59
+ * of the message.
60
+ * The message is a single accessibility node (title and description together;
61
+ * the icon is decorative) and the button a separate, focusable one.
62
+ */
36
63
  const EmptyState = exports.EmptyState = /*#__PURE__*/(0, _react.memo)(({
37
64
  title,
38
65
  description,
39
66
  iconName = 'search',
40
67
  icon,
41
- style
68
+ action,
69
+ style,
70
+ testID
42
71
  }) => {
43
72
  const colors = (0, _UIProvider.useColors)();
44
73
  const styles = useStyles();
@@ -48,20 +77,29 @@ const EmptyState = exports.EmptyState = /*#__PURE__*/(0, _react.memo)(({
48
77
  const resolvedDescription = description ?? labels.noResultsDescription;
49
78
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
50
79
  style: [styles.container, style],
51
- accessible: true,
52
- accessibilityRole: "text",
53
- children: [icon ?? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.Icon, {
54
- name: iconName,
55
- size: 48,
56
- color: colors.textLight
57
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
58
- allowFontScaling: allowFontScaling,
59
- style: styles.title,
60
- children: resolvedTitle
61
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
62
- allowFontScaling: allowFontScaling,
63
- style: styles.description,
64
- children: resolvedDescription
80
+ testID: testID,
81
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
82
+ style: styles.message,
83
+ accessible: true,
84
+ accessibilityRole: "text",
85
+ children: [icon ?? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.Icon, {
86
+ name: iconName,
87
+ size: ICON_SIZE,
88
+ color: colors.textLight
89
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
90
+ allowFontScaling: allowFontScaling,
91
+ style: styles.title,
92
+ children: resolvedTitle
93
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
94
+ allowFontScaling: allowFontScaling,
95
+ style: styles.description,
96
+ children: resolvedDescription
97
+ })]
98
+ }), action && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.Button, {
99
+ title: action.label,
100
+ onPress: action.onPress,
101
+ variant: action.variant ?? 'primary',
102
+ style: styles.action
65
103
  })]
66
104
  });
67
105
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_createStyles","_UIProvider","_Icon","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","useStyles","createStyles","theme","container","flex","justifyContent","alignItems","padding","tokens","spacing","xxl","minHeight","title","fontSize","lg","fontWeight","semibold","color","colors","textLight","marginTop","md","textAlign","description","xs","EmptyState","exports","memo","iconName","icon","style","useColors","styles","labels","useLabels","allowFontScaling","useAllowFontScaling","resolvedTitle","noResultsTitle","resolvedDescription","noResultsDescription","jsxs","View","accessible","accessibilityRole","children","jsx","Icon","name","size","Text","displayName"],"sourceRoot":"../../../src","sources":["atoms/EmptyState.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_createStyles","_UIProvider","_Icon","_Button","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ICON_SIZE","MIN_HEIGHT","useStyles","createStyles","theme","container","flex","justifyContent","alignItems","padding","tokens","spacing","xl","minHeight","title","fontSize","lg","fontWeight","semibold","lineHeight","color","colors","text","marginTop","md","textAlign","description","textLight","xs","message","action","EmptyState","exports","memo","iconName","icon","style","testID","useColors","styles","labels","useLabels","allowFontScaling","useAllowFontScaling","resolvedTitle","noResultsTitle","resolvedDescription","noResultsDescription","jsxs","View","children","accessible","accessibilityRole","jsx","Icon","name","size","Text","Button","label","onPress","variant","displayName"],"sourceRoot":"../../../src","sources":["atoms/EmptyState.tsx"],"mappings":"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","ignoreList":[]}
@@ -7,10 +7,15 @@ exports.Fab = void 0;
7
7
  var _react = _interopRequireWildcard(require("react"));
8
8
  var _PressableScale = require("./PressableScale");
9
9
  var _Icon = require("../icons/Icon");
10
+ var _defaultIcons = require("../icons/defaultIcons");
10
11
  var _createStyles = require("../theme/createStyles");
11
12
  var _UIProvider = require("../theme/UIProvider");
12
13
  var _jsxRuntime = require("react/jsx-runtime");
13
14
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
15
+ /** Default diameter: comfortably above the 44pt touch minimum (Fitts). */
16
+ const DEFAULT_SIZE = 60;
17
+ /** The glyph takes up half the circle. */
18
+ const ICON_RATIO = 0.5;
14
19
  const useStyles = (0, _createStyles.createStyles)(theme => ({
15
20
  fab: {
16
21
  position: 'absolute',
@@ -22,39 +27,54 @@ const useStyles = (0, _createStyles.createStyles)(theme => ({
22
27
 
23
28
  /**
24
29
  * Fab
25
- * Botón flotante circular. `bottom`/`right` en vez del `tabBarHeight`
26
- * obligatorio de la versión original — el consumidor decide su propio
27
- * offset (con o sin tab bar).
30
+ * Circular floating button for the screen's main action.
31
+ * `bottom`/`right` instead of the required `tabBarHeight` of the original
32
+ * version — the consumer decides its own offset (with or without a tab bar).
33
+ *
34
+ * Gestalt, figure/ground: it is the only thing that floats (`lg` shadow) and
35
+ * carries the accent, so it stands apart from the content passing beneath it
36
+ * (Von Restorff: one per screen). Fitts: large and in the thumb's corner,
37
+ * above the safe area so it doesn't compete with the home gesture.
28
38
  */
29
39
  const Fab = exports.Fab = /*#__PURE__*/(0, _react.memo)(({
30
40
  onPress,
31
41
  iconName = 'plus',
32
42
  icon,
33
- size = 60,
34
- bottom = 20,
35
- right = 20,
43
+ size = DEFAULT_SIZE,
44
+ bottom,
45
+ right,
46
+ safeArea = true,
36
47
  color,
37
48
  style,
38
- accessibilityLabel
49
+ accessibilityLabel,
50
+ testID
39
51
  }) => {
40
52
  const styles = useStyles();
41
53
  const colors = (0, _UIProvider.useColors)();
54
+ const theme = (0, _UIProvider.useTheme)();
55
+ const insets = (0, _UIProvider.useInsets)();
56
+ const fill = color ?? colors.primary;
57
+ // With the theme color, its `onPrimary`; with a custom one, black or white
58
+ // depending on contrast (a cyan with a white icon was unreadable).
59
+ const glyph = color ? (0, _defaultIcons.onColor)(color) : colors.onPrimary;
60
+ const edge = theme.tokens.spacing.xl;
42
61
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_PressableScale.PressableScale, {
43
62
  onPress: onPress,
44
63
  style: [styles.fab, {
45
64
  width: size,
46
65
  height: size,
47
66
  borderRadius: size / 2,
48
- bottom,
49
- right,
50
- backgroundColor: color ?? colors.primary
67
+ bottom: (bottom ?? edge) + (safeArea ? insets.bottom : 0),
68
+ right: (right ?? edge) + (safeArea ? insets.right : 0),
69
+ backgroundColor: fill
51
70
  }, style],
52
71
  accessibilityRole: "button",
53
72
  accessibilityLabel: accessibilityLabel,
73
+ testID: testID,
54
74
  children: icon ?? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.Icon, {
55
75
  name: iconName,
56
- size: size * 0.5,
57
- color: colors.onPrimary
76
+ size: size * ICON_RATIO,
77
+ color: glyph
58
78
  })
59
79
  });
60
80
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_PressableScale","_Icon","_createStyles","_UIProvider","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","useStyles","createStyles","theme","fab","position","justifyContent","alignItems","tokens","shadow","lg","Fab","exports","memo","onPress","iconName","icon","size","bottom","right","color","style","accessibilityLabel","styles","colors","useColors","jsx","PressableScale","width","height","borderRadius","backgroundColor","primary","accessibilityRole","children","Icon","name","onPrimary","displayName"],"sourceRoot":"../../../src","sources":["atoms/Fab.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_PressableScale","_Icon","_defaultIcons","_createStyles","_UIProvider","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DEFAULT_SIZE","ICON_RATIO","useStyles","createStyles","theme","fab","position","justifyContent","alignItems","tokens","shadow","lg","Fab","exports","memo","onPress","iconName","icon","size","bottom","right","safeArea","color","style","accessibilityLabel","testID","styles","colors","useColors","useTheme","insets","useInsets","fill","primary","glyph","onColor","onPrimary","edge","spacing","xl","jsx","PressableScale","width","height","borderRadius","backgroundColor","accessibilityRole","children","Icon","name","displayName"],"sourceRoot":"../../../src","sources":["atoms/Fab.tsx"],"mappings":"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","ignoreList":[]}
@@ -8,19 +8,15 @@ var _react = _interopRequireWildcard(require("react"));
8
8
  var _reactNative = require("react-native");
9
9
  var _jsxRuntime = require("react/jsx-runtime");
10
10
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
11
- const DEFAULT_STEPS = 24;
11
+ const DEFAULT_STEPS = 48;
12
12
  const styles = _reactNative.StyleSheet.create({
13
- // Recorta el plano rotado de las diagonales y el degradado al borderRadius.
13
+ // Clips the rotated plane of the diagonals and the gradient to the borderRadius.
14
14
  root: {
15
15
  overflow: 'hidden'
16
16
  },
17
- segment: {
18
- flex: 1
19
- },
20
- band: {
21
- flex: 1
22
- },
23
- // Plano √2 centrado: rotado 45° cubre las esquinas sin medir el contenedor.
17
+ // Centered √2 plane: covers the corners of a SQUARE container without
18
+ // measuring it. Only used until the first onLayout; after that the plane is
19
+ // sized with the real diagonal (see `diagonalBox`).
24
20
  diagonalPlane: {
25
21
  position: 'absolute',
26
22
  top: '-21%',
@@ -30,16 +26,54 @@ const styles = _reactNative.StyleSheet.create({
30
26
  }
31
27
  });
32
28
 
29
+ /**
30
+ * Opacities of stacked layers: layer k (from 1 to n-1) starts at k/n and
31
+ * runs to the end of the segment; stacked with "over", the total opacity in
32
+ * band k is k/(n-1), same as side-by-side bands. The difference: no layer
33
+ * edge sits next to a gap, so the antialiasing of an edge (especially when
34
+ * rotated) blends with the color of the layer below and not with what is
35
+ * behind the gradient — without the thin lines between bands.
36
+ */
37
+ function layerOpacities(n) {
38
+ const out = [];
39
+ let prev = 0;
40
+ for (let k = 1; k < n; k += 1) {
41
+ const total = k / (n - 1);
42
+ out.push(prev >= 1 ? 1 : 1 - (1 - total) / (1 - prev));
43
+ prev = total;
44
+ }
45
+ return out;
46
+ }
47
+
48
+ /** Square with the diagonal as its side, centered: rotated 45° it covers any rectangle. */
49
+ function diagonalBox(width, height) {
50
+ const side = Math.hypot(width, height);
51
+ return {
52
+ position: 'absolute',
53
+ width: side,
54
+ height: side,
55
+ left: (width - side) / 2,
56
+ top: (height - side) / 2
57
+ };
58
+ }
59
+
33
60
  /**
34
61
  * Gradient
35
- * Degradado lineal sin dependencias: React Native no trae uno en el rango
36
- * soportado (Expo SDK 54–57) y `experimental_backgroundImage` no está en toda
37
- * esa ventana, así que se compone con bandas.
62
+ * Dependency-free linear gradient: React Native doesn't ship one in the
63
+ * supported range (Expo SDK 54–57) and `experimental_backgroundImage` isn't
64
+ * available across that whole window, so it is composed from bands.
65
+ *
66
+ * Each segment paints the start color and, on top, layers of the end color
67
+ * that accumulate (see `layerOpacities`). The compositor blends alpha linearly:
68
+ * the result is the sRGB interpolation between stops without parsing the
69
+ * color, which is why any format RN accepts works (hex, `rgba()`, name). The
70
+ * layers run to the end of the plane so no thin lines are left between
71
+ * bands, and the diagonals rotate a square the size of the measured diagonal
72
+ * to cover any rectangle, not just squares.
38
73
  *
39
- * Cada tramo pinta el color inicial y encima N bandas del final con opacidad
40
- * de 0 a 1. El compositor mezcla alpha linealmente: el resultado es la
41
- * interpolación sRGB entre paradas sin parsear el color, y por eso vale
42
- * cualquier formato que acepte RN (hex, `rgba()`, nombre).
74
+ * Gestalt, figure and ground: content on top must contrast with ALL the
75
+ * stops, not just the first — white text that reads well over the blue at
76
+ * the start can get lost over the light blue at the end.
43
77
  */
44
78
  const Gradient = exports.Gradient = /*#__PURE__*/(0, _react.memo)(({
45
79
  colors,
@@ -51,10 +85,21 @@ const Gradient = exports.Gradient = /*#__PURE__*/(0, _react.memo)(({
51
85
  }) => {
52
86
  const isRow = direction === 'horizontal';
53
87
  const isDiagonal = direction === 'diagonal' || direction === 'diagonal-reverse';
54
- // rotate positivo gira en horario (Y crece hacia abajo): -45° manda el eje
55
- // del degradado hacia abajo-derecha.
88
+ // positive rotate turns clockwise (Y grows downward): -45° sends the
89
+ // gradient axis down-right.
56
90
  const rotate = direction === 'diagonal' ? '-45deg' : '45deg';
57
91
  const bandCount = Math.max(2, Math.floor(steps));
92
+ const [size, setSize] = (0, _react.useState)(null);
93
+ const onLayout = isDiagonal ? e => {
94
+ const {
95
+ width,
96
+ height
97
+ } = e.nativeEvent.layout;
98
+ setSize(prev => prev && prev.width === width && prev.height === height ? prev : {
99
+ width,
100
+ height
101
+ });
102
+ } : undefined;
58
103
  const painted = (0, _react.useMemo)(() => {
59
104
  if (colors.length === 0) return null;
60
105
  if (colors.length === 1) {
@@ -64,42 +109,63 @@ const Gradient = exports.Gradient = /*#__PURE__*/(0, _react.memo)(({
64
109
  }]
65
110
  });
66
111
  }
67
- const segments = colors.slice(0, -1).map((from, index) => {
112
+ const segmentCount = colors.length - 1;
113
+ const opacities = layerOpacities(bandCount);
114
+ // From `start` (fraction of the axis) to the end of the plane.
115
+ const from = start => isRow ? {
116
+ position: 'absolute',
117
+ top: 0,
118
+ bottom: 0,
119
+ right: 0,
120
+ left: `${start * 100}%`
121
+ } : {
122
+ position: 'absolute',
123
+ left: 0,
124
+ right: 0,
125
+ bottom: 0,
126
+ top: `${start * 100}%`
127
+ };
128
+
129
+ // Segments are stacked too: each one covers the previous from its start,
130
+ // and since it begins with the color the previous one ended with, the
131
+ // edge between segments doesn't show the background.
132
+ const segments = colors.slice(0, -1).map((start, index) => {
68
133
  const to = colors[index + 1];
134
+ const segStart = index / segmentCount;
135
+ const segLength = 1 / segmentCount;
136
+ // The segment runs from segStart to the END of the plane; its layers
137
+ // sit at fractions of that remaining length.
138
+ const rest = 1 - segStart;
69
139
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
70
- style: [styles.segment, {
71
- backgroundColor: from,
72
- flexDirection: isRow ? 'row' : 'column'
140
+ style: [from(segStart), {
141
+ backgroundColor: start
73
142
  }],
74
- children: Array.from({
75
- length: bandCount
76
- }, (_, band) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
77
- style: [styles.band, {
143
+ children: opacities.map((opacity, k) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
144
+ style: [from((k + 1) / bandCount * segLength / rest), {
78
145
  backgroundColor: to,
79
- opacity: band / (bandCount - 1)
146
+ opacity
80
147
  }]
81
- }, band))
82
- }, `${from}-${to}-${index}`);
148
+ }, k))
149
+ }, `${start}-${to}-${index}`);
83
150
  });
84
- const stack = /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
85
- style: [_reactNative.StyleSheet.absoluteFill, {
86
- flexDirection: isRow ? 'row' : 'column'
87
- }],
151
+ if (!isDiagonal) return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
152
+ style: _reactNative.StyleSheet.absoluteFill,
88
153
  children: segments
89
154
  });
90
- if (!isDiagonal) return stack;
155
+ const plane = size ? diagonalBox(size.width, size.height) : styles.diagonalPlane;
91
156
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
92
- style: [styles.diagonalPlane, {
157
+ style: [plane, {
93
158
  transform: [{
94
159
  rotate
95
160
  }]
96
161
  }],
97
162
  children: segments
98
163
  });
99
- }, [colors, isRow, isDiagonal, rotate, bandCount]);
164
+ }, [colors, isRow, isDiagonal, rotate, bandCount, size]);
100
165
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
101
166
  testID: testID,
102
167
  style: [styles.root, style],
168
+ onLayout: onLayout,
103
169
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
104
170
  style: _reactNative.StyleSheet.absoluteFill,
105
171
  pointerEvents: "none",
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DEFAULT_STEPS","styles","StyleSheet","create","root","overflow","segment","flex","band","diagonalPlane","position","top","left","width","height","Gradient","exports","memo","colors","direction","steps","children","style","testID","isRow","isDiagonal","rotate","bandCount","Math","max","floor","painted","useMemo","length","jsx","View","absoluteFill","backgroundColor","segments","slice","map","from","index","to","flexDirection","Array","_","opacity","stack","transform","jsxs","pointerEvents","displayName"],"sourceRoot":"../../../src","sources":["atoms/Gradient.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DEFAULT_STEPS","styles","StyleSheet","create","root","overflow","diagonalPlane","position","top","left","width","height","layerOpacities","out","prev","k","total","push","diagonalBox","side","Math","hypot","Gradient","exports","memo","colors","direction","steps","children","style","testID","isRow","isDiagonal","rotate","bandCount","max","floor","size","setSize","useState","onLayout","nativeEvent","layout","undefined","painted","useMemo","length","jsx","View","absoluteFill","backgroundColor","segmentCount","opacities","from","start","bottom","right","segments","slice","map","index","to","segStart","segLength","rest","opacity","plane","transform","jsxs","pointerEvents","displayName"],"sourceRoot":"../../../src","sources":["atoms/Gradient.tsx"],"mappings":"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","ignoreList":[]}
@@ -8,6 +8,7 @@ var _react = _interopRequireWildcard(require("react"));
8
8
  var _PressableScale = require("./PressableScale");
9
9
  var _Icon = require("../icons/Icon");
10
10
  var _createStyles = require("../theme/createStyles");
11
+ var _UIProvider = require("../theme/UIProvider");
11
12
  var _jsxRuntime = require("react/jsx-runtime");
12
13
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
13
14
  const useStyles = (0, _createStyles.createStyles)(theme => ({
@@ -18,12 +19,22 @@ const useStyles = (0, _createStyles.createStyles)(theme => ({
18
19
  }
19
20
  }));
20
21
 
22
+ /** Minimum touch area recommended by Apple (44pt) and Material (48dp ≈ 44pt). */
23
+ const MIN_TOUCH = 44;
24
+
21
25
  /**
22
26
  * IconButton
23
- * Botón de solo ícono con área táctil mínima de 44x44 garantizada por el
24
- * padding (icon 24 + padding 8*2 = 40; sube a 44 con size>=24 default RN).
25
- * `accessibilityLabel` es obligatorio: sin texto visible, es la única forma
26
- * de que un lector de pantalla anuncie qué hace el botón.
27
+ * Icon-only button. `accessibilityLabel` is required: with no visible text,
28
+ * it is the only way for a screen reader to announce what it does.
29
+ *
30
+ * Fitts: the visible area is icon + `spacing.sm` per side (24 + 16 = 40pt
31
+ * with the default size, 32pt with `size={16}`). `hitSlop` makes up the
32
+ * rest up to 44pt without enlarging the layout, so a row of icons keeps its
33
+ * rhythm and each one is still easy to tap.
34
+ *
35
+ * Gestalt, figure and ground: it has no background of its own, the icon is
36
+ * the figure over whatever is behind it; that is why the default color is
37
+ * `colors.text` (guaranteed AA contrast) and `disabled` dims it by half.
27
38
  */
28
39
  const IconButton = exports.IconButton = /*#__PURE__*/(0, _react.memo)(({
29
40
  iconName,
@@ -37,9 +48,19 @@ const IconButton = exports.IconButton = /*#__PURE__*/(0, _react.memo)(({
37
48
  testID
38
49
  }) => {
39
50
  const styles = useStyles();
51
+ const theme = (0, _UIProvider.useTheme)();
52
+ const visible = size + theme.tokens.spacing.sm * 2;
53
+ const extra = Math.max(0, Math.ceil((MIN_TOUCH - visible) / 2));
54
+ const hitSlop = extra > 0 ? {
55
+ top: extra,
56
+ bottom: extra,
57
+ left: extra,
58
+ right: extra
59
+ } : undefined;
40
60
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_PressableScale.PressableScale, {
41
61
  onPress: onPress,
42
62
  disabled: disabled,
63
+ hitSlop: hitSlop,
43
64
  style: [styles.hitArea, {
44
65
  opacity: disabled ? 0.5 : 1
45
66
  }, style],
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_PressableScale","_Icon","_createStyles","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","useStyles","createStyles","theme","hitArea","padding","tokens","spacing","sm","alignItems","justifyContent","IconButton","exports","memo","iconName","icon","onPress","size","color","disabled","style","accessibilityLabel","testID","styles","jsx","PressableScale","opacity","accessibilityRole","accessibilityState","children","Icon","name","displayName"],"sourceRoot":"../../../src","sources":["atoms/IconButton.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,eAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AAEA,IAAAG,aAAA,GAAAH,OAAA;AAAqD,IAAAI,WAAA,GAAAJ,OAAA;AAAA,SAAAD,wBAAAM,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAR,uBAAA,YAAAA,CAAAM,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAcrD,MAAMkB,SAAS,GAAG,IAAAC,0BAAY,EAAEC,KAAK,KAAM;EACzCC,OAAO,EAAE;IACPC,OAAO,EAAEF,KAAK,CAACG,MAAM,CAACC,OAAO,CAACC,EAAE;IAChCC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EAClB;AACF,CAAC,CAAC,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,UAAU,GAAAC,OAAA,CAAAD,UAAA,gBAAG,IAAAE,WAAI,EAC5B,CAAC;EAAEC,QAAQ;EAAEC,IAAI;EAAEC,OAAO;EAAEC,IAAI,GAAG,EAAE;EAAEC,KAAK;EAAEC,QAAQ;EAAEC,KAAK;EAAEC,kBAAkB;EAAEC;AAAwB,CAAC,KAAK;EAC/G,MAAMC,MAAM,GAAGtB,SAAS,CAAC,CAAC;EAC1B,oBACE,IAAApB,WAAA,CAAA2C,GAAA,EAAC9C,eAAA,CAAA+C,cAAc;IACbT,OAAO,EAAEA,OAAQ;IACjBG,QAAQ,EAAEA,QAAS;IACnBC,KAAK,EAAE,CAACG,MAAM,CAACnB,OAAO,EAAE;MAAEsB,OAAO,EAAEP,QAAQ,GAAG,GAAG,GAAG;IAAE,CAAC,EAAEC,KAAK,CAAE;IAChEO,iBAAiB,EAAC,QAAQ;IAC1BN,kBAAkB,EAAEA,kBAAmB;IACvCO,kBAAkB,EAAE;MAAET,QAAQ,EAAE,CAAC,CAACA;IAAS,CAAE;IAC7CG,MAAM,EAAEA,MAAO;IAAAO,QAAA,EAEdd,IAAI,KAAKD,QAAQ,iBAAI,IAAAjC,WAAA,CAAA2C,GAAA,EAAC7C,KAAA,CAAAmD,IAAI;MAACC,IAAI,EAAEjB,QAAS;MAACG,IAAI,EAAEA,IAAK;MAACC,KAAK,EAAEA;IAAM,CAAE,CAAC;EAAC,CAC3D,CAAC;AAErB,CACF,CAAC;AACDP,UAAU,CAACqB,WAAW,GAAG,YAAY","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_PressableScale","_Icon","_createStyles","_UIProvider","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","useStyles","createStyles","theme","hitArea","padding","tokens","spacing","sm","alignItems","justifyContent","MIN_TOUCH","IconButton","exports","memo","iconName","icon","onPress","size","color","disabled","style","accessibilityLabel","testID","styles","useTheme","visible","extra","Math","max","ceil","hitSlop","top","bottom","left","right","undefined","jsx","PressableScale","opacity","accessibilityRole","accessibilityState","children","Icon","name","displayName"],"sourceRoot":"../../../src","sources":["atoms/IconButton.tsx"],"mappings":"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","ignoreList":[]}