orn-ui 0.2.9 → 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 +67 -52
  2. package/README.md +5 -9
  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 +197 -156
  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 +199 -158
  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 +223 -165
  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
@@ -0,0 +1,257 @@
1
+ "use strict";
2
+
3
+ import React, { createContext, useContext, useEffect, useLayoutEffect, useRef, useState } from 'react';
4
+ import { Modal, Platform, View } from 'react-native';
5
+
6
+ /**
7
+ * NativeOverlay
8
+ * The native `Modal` every orn-ui overlay (Alert, BottomSheet, Modal, Select)
9
+ * goes through.
10
+ *
11
+ * Why: iOS presents a native modal from the root view controller and only one
12
+ * at a time. A second `<Modal>` that is not rendered inside the first one is
13
+ * silently ignored while the first is presented, and also while it is still
14
+ * being dismissed. In practice an Alert from `showAlert()` over an open
15
+ * BottomSheet never showed, and neither did one opened right after closing a
16
+ * sheet. Android opens a window per modal and never had the problem: there
17
+ * this is a plain `Modal`.
18
+ *
19
+ * iOS, when an overlay becomes visible:
20
+ * - Rendered inside another overlay (nested): plain native modal; iOS presents
21
+ * it from that one, which works.
22
+ * - Another overlay is presented and this one is not inside it: it is drawn
23
+ * as a layer inside the topmost presented overlay instead of presenting a
24
+ * second native modal. Its React context then comes from that overlay's
25
+ * position: a provider that wraps only this overlay doesn't reach it.
26
+ * - Another overlay is closing (exit animation or native dismissal): it waits
27
+ * until that one is gone, then presents.
28
+ */
29
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
30
+ const fill = {
31
+ position: 'absolute',
32
+ top: 0,
33
+ left: 0,
34
+ right: 0,
35
+ bottom: 0
36
+ };
37
+ /** After unmount, how long iOS may still be dismissing the native modal. */
38
+ const DISMISS_SETTLE_MS = 450;
39
+
40
+ // Module-level registry: overlays live in different React subtrees, and the
41
+ // constraint they share (one native presentation at a time) is global too.
42
+ const hosts = [];
43
+ const layers = new Map();
44
+ const ownerOf = new Map();
45
+ let nextId = 1;
46
+
47
+ // Two channels, so publishing a layer (every render of a layered overlay)
48
+ // only re-renders that host's outlet, never the overlays themselves — which
49
+ // would publish again and loop.
50
+ const hostListeners = new Set();
51
+ const layerListeners = new Map();
52
+
53
+ /** The host stack changed: waiting/layered overlays re-evaluate. */
54
+ function notify() {
55
+ hostListeners.forEach(listener => listener());
56
+ }
57
+
58
+ /** A host's layers changed: only its outlet re-renders. */
59
+ function notifyLayers(hostId) {
60
+ layerListeners.get(hostId)?.forEach(listener => listener());
61
+ }
62
+ function useChannel(subscribe) {
63
+ const [, setVersion] = useState(0);
64
+ useEffect(() => subscribe(() => setVersion(v => v + 1)), [subscribe]);
65
+ }
66
+ const subscribeHosts = listener => {
67
+ hostListeners.add(listener);
68
+ return () => {
69
+ hostListeners.delete(listener);
70
+ };
71
+ };
72
+ function liveTop() {
73
+ const top = hosts[hosts.length - 1];
74
+ return top && !top.closing ? top : undefined;
75
+ }
76
+ function decide(parentHost) {
77
+ if (hosts.length === 0) return 'native';
78
+ const top = liveTop();
79
+ if (!top) return 'wait';
80
+ // Nested inside the topmost overlay: iOS can present it from there.
81
+ if (top.id === parentHost) return 'native';
82
+ return 'layer';
83
+ }
84
+ function unpublish(id) {
85
+ const owner = ownerOf.get(id);
86
+ if (owner === undefined) return;
87
+ layers.get(owner)?.delete(id);
88
+ ownerOf.delete(id);
89
+ notifyLayers(owner);
90
+ }
91
+
92
+ /** Takes the native slot right away, before any later overlay decides. */
93
+ function claim(id, closing) {
94
+ if (hosts.some(h => h.id === id)) return;
95
+ hosts.push({
96
+ id,
97
+ closing
98
+ });
99
+ notify();
100
+ }
101
+ function removeHost(id) {
102
+ const index = hosts.findIndex(h => h.id === id);
103
+ if (index < 0) return;
104
+ hosts.splice(index, 1);
105
+ notify();
106
+ }
107
+
108
+ /** Id of the native overlay this subtree is rendered in, if any. */
109
+ const HostContext = /*#__PURE__*/createContext(null);
110
+
111
+ /** Draws, inside a native host, the layers other overlays put into it. */
112
+ function LayerOutlet({
113
+ hostId
114
+ }) {
115
+ const [, setVersion] = useState(0);
116
+ // Layout effect + an immediate re-read: a layer may have been published in
117
+ // the same commit, before this outlet subscribed.
118
+ useLayoutEffect(() => {
119
+ const listener = () => setVersion(v => v + 1);
120
+ if (!layerListeners.has(hostId)) layerListeners.set(hostId, new Set());
121
+ layerListeners.get(hostId).add(listener);
122
+ if (layers.get(hostId)?.size) listener();
123
+ return () => {
124
+ layerListeners.get(hostId)?.delete(listener);
125
+ };
126
+ }, [hostId]);
127
+ const own = layers.get(hostId);
128
+ if (!own || own.size === 0) return null;
129
+ // Dialogs last, so they are drawn on top of sheets and modals.
130
+ const ordered = [...own.entries()].sort(([, a], [, b]) => Number(a.dialog) - Number(b.dialog));
131
+ return /*#__PURE__*/_jsx(_Fragment, {
132
+ children: ordered.map(([key, layer]) => /*#__PURE__*/_jsx(View, {
133
+ style: fill,
134
+ pointerEvents: "box-none",
135
+ children: layer.node
136
+ }, key))
137
+ });
138
+ }
139
+ export function NativeOverlay({
140
+ closing = false,
141
+ dialog = false,
142
+ children,
143
+ ...modalProps
144
+ }) {
145
+ const ios = Platform.OS === 'ios';
146
+ const parentHost = useContext(HostContext);
147
+ const idRef = useRef(0);
148
+ if (idRef.current === 0) idRef.current = nextId++;
149
+ const id = idRef.current;
150
+ useChannel(subscribeHosts);
151
+
152
+ // Decided in a layout effect, not during render: layout effects run in tree
153
+ // order before paint, so when two overlays mount in the same commit the
154
+ // first one claims the native slot before the second one decides.
155
+ const [mode, setMode] = useState(ios ? 'pending' : 'native');
156
+ useLayoutEffect(() => {
157
+ if (!ios) return;
158
+ if (mode === 'pending') {
159
+ const next = decide(parentHost);
160
+ if (next === 'native') claim(id, closing);
161
+ setMode(next);
162
+ return;
163
+ }
164
+ if (mode === 'wait' && !closing) {
165
+ const next = decide(parentHost);
166
+ if (next === 'native') claim(id, closing);
167
+ if (next !== 'wait') setMode(next);
168
+ }
169
+ // The host it layered into started closing or went away: move out.
170
+ if (mode === 'layer' && !closing) {
171
+ const owner = ownerOf.get(id);
172
+ const host = owner === undefined ? undefined : hosts.find(h => h.id === owner);
173
+ if (owner !== undefined && (!host || host.closing)) {
174
+ unpublish(id);
175
+ const next = decide(parentHost);
176
+ if (next === 'native') claim(id, closing);
177
+ setMode(next);
178
+ }
179
+ }
180
+ });
181
+
182
+ // Native host bookkeeping.
183
+ useLayoutEffect(() => {
184
+ if (!ios || mode !== 'native') return;
185
+ const existing = hosts.find(h => h.id === id);
186
+ if (!existing) hosts.push({
187
+ id,
188
+ closing
189
+ });else if (existing.closing !== closing) existing.closing = closing;else return;
190
+ notify();
191
+ }, [ios, mode, closing, id]);
192
+
193
+ // Layer publishing: every render, so prop changes reach the host.
194
+ useLayoutEffect(() => {
195
+ if (!ios || mode !== 'layer') return;
196
+ let owner = ownerOf.get(id);
197
+ if (owner === undefined) {
198
+ owner = liveTop()?.id;
199
+ // The host it chose started closing in the same commit (a sheet closed
200
+ // and an alert opened in one tick): decide again, usually to wait.
201
+ if (owner === undefined) {
202
+ const next = decide(parentHost);
203
+ if (next === 'native') claim(id, closing);
204
+ setMode(next);
205
+ return;
206
+ }
207
+ ownerOf.set(id, owner);
208
+ }
209
+ if (!layers.has(owner)) layers.set(owner, new Map());
210
+ layers.get(owner).set(id, {
211
+ node: /*#__PURE__*/_jsx(HostContext.Provider, {
212
+ value: owner,
213
+ children: children
214
+ }),
215
+ dialog
216
+ });
217
+ notifyLayers(owner);
218
+ });
219
+
220
+ // Unmount: a layer just leaves; a native host stays "closing" while iOS
221
+ // finishes dismissing it, so the next overlay doesn't present too early.
222
+ useEffect(() => () => {
223
+ if (!ios) return;
224
+ unpublish(id);
225
+ const host = hosts.find(h => h.id === id);
226
+ if (host) {
227
+ host.closing = true;
228
+ notify();
229
+ setTimeout(() => removeHost(id), DISMISS_SETTLE_MS);
230
+ }
231
+ }, [ios, id]);
232
+ if (!ios || mode === 'native') {
233
+ return /*#__PURE__*/_jsx(Modal, {
234
+ visible: true,
235
+ ...modalProps,
236
+ children: /*#__PURE__*/_jsxs(HostContext.Provider, {
237
+ value: id,
238
+ children: [ios && dialog && /*#__PURE__*/_jsx(LayerOutlet, {
239
+ hostId: id
240
+ }), children, ios && !dialog && /*#__PURE__*/_jsx(LayerOutlet, {
241
+ hostId: id
242
+ })]
243
+ })
244
+ });
245
+ }
246
+
247
+ // 'layer' renders inside the host; 'wait' and 'pending' render nothing yet.
248
+ return null;
249
+ }
250
+
251
+ /** Test-only: clears the registry between tests. */
252
+ export function __resetNativeOverlays() {
253
+ hosts.splice(0);
254
+ layers.clear();
255
+ ownerOf.clear();
256
+ }
257
+ //# sourceMappingURL=NativeOverlay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","createContext","useContext","useEffect","useLayoutEffect","useRef","useState","Modal","Platform","View","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","fill","position","top","left","right","bottom","DISMISS_SETTLE_MS","hosts","layers","Map","ownerOf","nextId","hostListeners","Set","layerListeners","notify","forEach","listener","notifyLayers","hostId","get","useChannel","subscribe","setVersion","v","subscribeHosts","add","delete","liveTop","length","closing","undefined","decide","parentHost","id","unpublish","owner","claim","some","h","push","removeHost","index","findIndex","splice","HostContext","LayerOutlet","has","set","size","own","ordered","entries","sort","a","b","Number","dialog","children","map","key","layer","style","pointerEvents","node","NativeOverlay","modalProps","ios","OS","idRef","current","mode","setMode","next","host","find","existing","Provider","value","setTimeout","visible","__resetNativeOverlays","clear"],"sourceRoot":"../../../src","sources":["theme/NativeOverlay.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,49 +1,105 @@
1
1
  "use strict";
2
2
 
3
- import React, { createContext, useContext, useMemo, useState, useCallback, useRef } from 'react';
3
+ import React, { createContext, useContext, useMemo, useState, useCallback, useEffect } from 'react';
4
4
  import { Appearance, useColorScheme } from 'react-native';
5
+ import { SafeAreaProvider, useSafeAreaInsets } from 'react-native-safe-area-context';
5
6
  import { defaultTheme } from './createTheme';
6
7
  import { defaultLabels } from './labels';
7
- import { zeroInsets } from './insets';
8
8
  import { renderDefaultIcon } from '../icons/defaultIcons';
9
+ import { KeyboardHandled, KeyboardPanArea } from './KeyboardAvoidance';
9
10
 
10
11
  /**
11
- * Un `<Modal>`/`<BottomSheet>` nativo abre su propia ventana (en Android
12
- * siempre; en iOS según `presentationStyle`), así que los insets medidos en
13
- * la raíz de la app pueden no valer ahí adentro. Este boundary es el punto de
14
- * inyección: el default sólo repite los insets ambientes (comportamiento de
15
- * siempre, cero deps), pero `SafeAreaUIProvider` lo reemplaza por uno que
16
- * monta un `<SafeAreaProvider>` nuevo y remide dentro de esa ventana.
12
+ * A native `<Modal>`/`<BottomSheet>` opens its own window (always on Android;
13
+ * on iOS depending on `presentationStyle`), so the insets measured at the app
14
+ * root may not hold in there. The boundary mounts a new `<SafeAreaProvider>`
15
+ * inside that window and re-measures; until the first measurement arrives it
16
+ * repeats the ambient insets.
17
17
  */
18
- import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
19
- function DefaultModalSafeAreaBoundary({
18
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
19
+ const probeStyle = {
20
+ position: 'absolute',
21
+ top: 0,
22
+ left: 0,
23
+ right: 0,
24
+ bottom: 0
25
+ };
26
+ function sameInsets(a, b) {
27
+ return a.top === b.top && a.right === b.right && a.bottom === b.bottom && a.left === b.left;
28
+ }
29
+ function InsetsProbe({
30
+ onMeasure
31
+ }) {
32
+ const insets = useSafeAreaInsets();
33
+ useEffect(() => {
34
+ onMeasure(insets);
35
+ }, [insets, onMeasure]);
36
+ return null;
37
+ }
38
+ function RemeasuringModalSafeAreaBoundary({
20
39
  children
21
40
  }) {
22
- const insets = useInsets();
23
- return /*#__PURE__*/_jsx(_Fragment, {
24
- children: children(insets)
41
+ const ambient = useInsets();
42
+ const [measured, setMeasured] = useState(null);
43
+ const onMeasure = useCallback(next => setMeasured(prev => prev && sameInsets(prev, next) ? prev : next), []);
44
+ return /*#__PURE__*/_jsxs(_Fragment, {
45
+ children: [/*#__PURE__*/_jsx(SafeAreaProvider, {
46
+ style: probeStyle,
47
+ pointerEvents: "none",
48
+ children: /*#__PURE__*/_jsx(InsetsProbe, {
49
+ onMeasure: onMeasure
50
+ })
51
+ }), children(measured ?? ambient)]
25
52
  });
26
53
  }
27
54
  const UIContext = /*#__PURE__*/createContext(undefined);
28
55
  /**
29
56
  * UIProvider
30
- * Único punto de entrada de la librería: resuelve el theme activo (sistema u
31
- * override manual), e inyecta íconos, insets y textos por defecto a todo el
32
- * árbol. No persiste el modo — si el consumidor quiere recordar la preferencia
33
- * entre sesiones, controla `mode`/`onModeChange` y persiste donde prefiera.
57
+ * The library's single entry point: resolves the active theme (system or
58
+ * manual override), measures the safe area insets (react-native-safe-area-context,
59
+ * a required peer) and injects icons, insets and default texts into the whole
60
+ * tree. It doesn't persist the mode — if the consumer wants to remember the
61
+ * preference across sessions, it controls `mode`/`onModeChange` and persists
62
+ * wherever it prefers.
34
63
  */
35
64
  export function UIProvider({
65
+ mountSafeAreaProvider = true,
66
+ ...props
67
+ }) {
68
+ if (!mountSafeAreaProvider) return /*#__PURE__*/_jsx(MeasuredUIProvider, {
69
+ ...props
70
+ });
71
+ return /*#__PURE__*/_jsx(SafeAreaProvider, {
72
+ children: /*#__PURE__*/_jsx(MeasuredUIProvider, {
73
+ ...props
74
+ })
75
+ });
76
+ }
77
+ function MeasuredUIProvider({
78
+ insets: override,
79
+ ...rest
80
+ }) {
81
+ const measured = useSafeAreaInsets();
82
+ return /*#__PURE__*/_jsx(UIProviderBase, {
83
+ insets: override ?? measured,
84
+ ...rest
85
+ });
86
+ }
87
+ function UIProviderBase({
36
88
  children,
37
89
  theme = defaultTheme,
38
90
  defaultMode = 'system',
39
91
  mode: controlledMode,
40
92
  onModeChange,
41
93
  icons = renderDefaultIcon,
42
- insets = zeroInsets,
94
+ insets,
43
95
  labels: labelOverrides,
44
96
  allowFontScaling = false,
45
- ModalSafeAreaBoundary = DefaultModalSafeAreaBoundary
97
+ keyboardAvoidance = true
46
98
  }) {
99
+ // Only the root provider shifts the app: a nested one (a modal with its own
100
+ // provider, a test) wraps nothing and doesn't change the layout.
101
+ const isRoot = useContext(UIContext) === undefined;
102
+ const ModalSafeAreaBoundary = RemeasuringModalSafeAreaBoundary;
47
103
  const systemScheme = useColorScheme();
48
104
  const [uncontrolledMode, setUncontrolledMode] = useState(defaultMode);
49
105
  const isControlled = controlledMode !== undefined;
@@ -52,19 +108,6 @@ export function UIProvider({
52
108
  if (!isControlled) setUncontrolledMode(next);
53
109
  onModeChange?.(next);
54
110
  }, [isControlled, onModeChange]);
55
-
56
- // Por instancia, no por módulo: dos `<UIProvider>` en el mismo árbol (tests,
57
- // un modal con su propio provider) avisan cada uno si le faltan insets, en
58
- // vez de que el segundo se calle porque el primero ya avisó una vez.
59
- const warnedAboutInsets = useRef(false);
60
-
61
- // Olvidar `insets` no rompe nada visible al montar: el default de ceros
62
- // recién se nota cuando abrís un Modal `full` (se mete abajo del notch) o un
63
- // BottomSheet (queda pegado a la barra de gestos). El aviso llega antes.
64
- if (__DEV__ && insets === zeroInsets && !warnedAboutInsets.current) {
65
- warnedAboutInsets.current = true;
66
- console.warn('orn-ui: <UIProvider> sin `insets`, se usan {top:0,bottom:0,left:0,right:0}. ' + 'Los modales y el Screen quedan sin safe area. Pasá `insets={useSafeAreaInsets()}` ' + "o usá <SafeAreaUIProvider> de 'orn-ui/safe-area', que lo cablea solo.");
67
- }
68
111
  const scheme = mode === 'system' ? systemScheme === 'dark' ? 'dark' : 'light' : mode;
69
112
  const resolvedTheme = theme[scheme];
70
113
  const labels = useMemo(() => labelOverrides ? {
@@ -81,9 +124,19 @@ export function UIProvider({
81
124
  allowFontScaling,
82
125
  ModalSafeAreaBoundary
83
126
  }), [resolvedTheme, mode, setMode, icons, insets, labels, allowFontScaling, ModalSafeAreaBoundary]);
127
+ let content = children;
128
+ if (isRoot) {
129
+ content = keyboardAvoidance ? /*#__PURE__*/_jsx(KeyboardPanArea, {
130
+ margin: resolvedTheme.tokens.spacing.md,
131
+ topLimit: insets.top,
132
+ children: children
133
+ }) : /*#__PURE__*/_jsx(KeyboardHandled, {
134
+ children: children
135
+ });
136
+ }
84
137
  return /*#__PURE__*/_jsx(UIContext.Provider, {
85
138
  value: value,
86
- children: children
139
+ children: content
87
140
  });
88
141
  }
89
142
  function useUIContext() {
@@ -122,12 +175,12 @@ export function useAllowFontScaling() {
122
175
  return useUIContext().allowFontScaling;
123
176
  }
124
177
 
125
- /** Interno: lo consumen `Modal`/`BottomSheet` para remedir insets dentro de su propia ventana nativa. */
178
+ /** Internal: consumed by `Modal`/`BottomSheet` to re-measure insets inside their own native window. */
126
179
  export function useModalSafeAreaBoundary() {
127
180
  return useUIContext().ModalSafeAreaBoundary;
128
181
  }
129
182
 
130
- /** Re-exportado para que tests/consumidores puedan simular cambios de sistema sin RN real. */
183
+ /** Re-exported so tests/consumers can simulate system changes without real RN. */
131
184
  export const __testUtils = {
132
185
  Appearance
133
186
  };
@@ -1 +1 @@
1
- {"version":3,"names":["React","createContext","useContext","useMemo","useState","useCallback","useRef","Appearance","useColorScheme","defaultTheme","defaultLabels","zeroInsets","renderDefaultIcon","Fragment","_Fragment","jsx","_jsx","DefaultModalSafeAreaBoundary","children","insets","useInsets","UIContext","undefined","UIProvider","theme","defaultMode","mode","controlledMode","onModeChange","icons","labels","labelOverrides","allowFontScaling","ModalSafeAreaBoundary","systemScheme","uncontrolledMode","setUncontrolledMode","isControlled","setMode","next","warnedAboutInsets","__DEV__","current","console","warn","scheme","resolvedTheme","value","Provider","useUIContext","ctx","Error","useTheme","useColors","colors","useThemeMode","useIcons","useLabels","useAllowFontScaling","useModalSafeAreaBoundary","__testUtils"],"sourceRoot":"../../../src","sources":["theme/UIProvider.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","createContext","useContext","useMemo","useState","useCallback","useEffect","Appearance","useColorScheme","SafeAreaProvider","useSafeAreaInsets","defaultTheme","defaultLabels","renderDefaultIcon","KeyboardHandled","KeyboardPanArea","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","probeStyle","position","top","left","right","bottom","sameInsets","a","b","InsetsProbe","onMeasure","insets","RemeasuringModalSafeAreaBoundary","children","ambient","useInsets","measured","setMeasured","next","prev","style","pointerEvents","UIContext","undefined","UIProvider","mountSafeAreaProvider","props","MeasuredUIProvider","override","rest","UIProviderBase","theme","defaultMode","mode","controlledMode","onModeChange","icons","labels","labelOverrides","allowFontScaling","keyboardAvoidance","isRoot","ModalSafeAreaBoundary","systemScheme","uncontrolledMode","setUncontrolledMode","isControlled","setMode","scheme","resolvedTheme","value","content","margin","tokens","spacing","md","topLimit","Provider","useUIContext","ctx","Error","useTheme","useColors","colors","useThemeMode","useIcons","useLabels","useAllowFontScaling","useModalSafeAreaBoundary","__testUtils"],"sourceRoot":"../../../src","sources":["theme/UIProvider.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,20 +1,20 @@
1
1
  "use strict";
2
2
 
3
3
  /**
4
- * Utilidades de color sin dependencias, usadas para derivar una familia de
5
- * roles (relleno / encima / tenue / legible) a partir de un solo hex de marca.
4
+ * Dependency-free color utilities, used to derive a family of roles
5
+ * (fill / on-top / soft / readable) from a single brand hex.
6
6
  */
7
7
 
8
- /** Contraste mínimo AA para texto normal. */
8
+ /** Minimum AA contrast for normal text. */
9
9
  export const AA_CONTRAST = 4.5;
10
10
 
11
- /** Roles que necesita un acento del theme, en un esquema concreto. */
11
+ /** Roles a theme accent needs, in a given scheme. */
12
12
 
13
13
  const HEX = /^#?([0-9a-f]{3}|[0-9a-f]{6})$/i;
14
14
  export function hexToRgb(hex) {
15
15
  const match = HEX.exec(hex.trim());
16
16
  if (!match) {
17
- throw new Error(`orn-ui: se esperaba un color hex como "#7c3aed", se recibió "${hex}".`);
17
+ throw new Error(`orn-ui: expected a hex color like "#7c3aed", got "${hex}".`);
18
18
  }
19
19
  const digits = match[1];
20
20
  const full = digits.length === 3 ? digits.replace(/./g, c => c + c) : digits;
@@ -93,7 +93,7 @@ function channelLuminance(value) {
93
93
  return c <= 0.03928 ? c / 12.92 : ((c + 0.055) / 1.055) ** 2.4;
94
94
  }
95
95
 
96
- /** Luminancia relativa WCAG de un hex. */
96
+ /** WCAG relative luminance of a hex. */
97
97
  export function luminance(hex) {
98
98
  const {
99
99
  r,
@@ -103,7 +103,7 @@ export function luminance(hex) {
103
103
  return 0.2126 * channelLuminance(r) + 0.7152 * channelLuminance(g) + 0.0722 * channelLuminance(b);
104
104
  }
105
105
 
106
- /** Ratio de contraste WCAG entre dos hex: 1 (igual) a 21 (blanco sobre negro). */
106
+ /** WCAG contrast ratio between two hexes: 1 (equal) to 21 (white on black). */
107
107
  export function contrast(a, b) {
108
108
  const la = luminance(a);
109
109
  const lb = luminance(b);
@@ -111,8 +111,8 @@ export function contrast(a, b) {
111
111
  }
112
112
 
113
113
  /**
114
- * Blanco si alcanza el contraste AA —es lo que se espera encima de un relleno
115
- * de color— y si no, el extremo que más contraste dé.
114
+ * White if it reaches AA contrast —which is what you expect on top of a color
115
+ * fill— and otherwise whichever extreme gives the most contrast.
116
116
  */
117
117
  function bestOnColor(background, light, dark) {
118
118
  if (contrast(background, light) >= AA_CONTRAST) return light;
@@ -120,9 +120,9 @@ function bestOnColor(background, light, dark) {
120
120
  }
121
121
 
122
122
  /**
123
- * Mueve la luminosidad del tono hasta alcanzar el contraste pedido contra
124
- * `against`. Si ni el extremo llega —un amarillo puro sobre blanco, por
125
- * ejemplo— devuelve el más contrastado que encontró en el camino.
123
+ * Shifts the hue's lightness until it reaches the requested contrast against
124
+ * `against`. If not even the extreme gets there —pure yellow on white, for
125
+ * example— it returns the most contrasting one found along the way.
126
126
  */
127
127
  function reachContrast(hsl, against, target, direction) {
128
128
  const step = direction === 'darker' ? -0.02 : 0.02;
@@ -144,9 +144,9 @@ function reachContrast(hsl, against, target, direction) {
144
144
  }
145
145
 
146
146
  /**
147
- * Deriva los cuatro roles de un acento a partir de un hex, para un esquema.
148
- * `surface` es el fondo sobre el que tiene que leerse el rol `text`, así que
149
- * cada esquema pasa el suyo.
147
+ * Derives an accent's four roles from a hex, for one scheme.
148
+ * `surface` is the background the `text` role has to be read on, so each
149
+ * scheme passes its own.
150
150
  */
151
151
  export function deriveAccent(hex, scheme, surface) {
152
152
  const hsl = toHsl(hex);
@@ -167,8 +167,8 @@ export function deriveAccent(hex, scheme, surface) {
167
167
  };
168
168
  }
169
169
 
170
- // En oscuro el acento sube de luminosidad y lo que va encima baja: un
171
- // #004cef sobre #1e1e1e no se distingue del fondo.
170
+ // In dark the accent goes up in lightness and what sits on top goes down: a
171
+ // #004cef over #1e1e1e can't be told apart from the background.
172
172
  const base = toHex({
173
173
  ...hsl,
174
174
  l: 0.72
@@ -1 +1 @@
1
- {"version":3,"names":["AA_CONTRAST","HEX","hexToRgb","hex","match","exec","trim","Error","digits","full","length","replace","c","r","parseInt","slice","g","b","toHexPair","value","Math","round","clamp","toString","padStart","rgbToHex","min","max","rgbToHsl","rn","gn","bn","delta","l","h","s","abs","hslToRgb","hp","x","r1","g1","b1","m","toHsl","toHex","hsl","channelLuminance","luminance","contrast","a","la","lb","bestOnColor","background","light","dark","reachContrast","against","target","direction","step","best","bestRatio","candidate","ratio","deriveAccent","scheme","surface","base","on","soft","text"],"sourceRoot":"../../../src","sources":["theme/colors.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["AA_CONTRAST","HEX","hexToRgb","hex","match","exec","trim","Error","digits","full","length","replace","c","r","parseInt","slice","g","b","toHexPair","value","Math","round","clamp","toString","padStart","rgbToHex","min","max","rgbToHsl","rn","gn","bn","delta","l","h","s","abs","hslToRgb","hp","x","r1","g1","b1","m","toHsl","toHex","hsl","channelLuminance","luminance","contrast","a","la","lb","bestOnColor","background","light","dark","reachContrast","against","target","direction","step","best","bestRatio","candidate","ratio","deriveAccent","scheme","surface","base","on","soft","text"],"sourceRoot":"../../../src","sources":["theme/colors.ts"],"mappings":"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","ignoreList":[]}