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
@@ -4,13 +4,35 @@ import React, { memo } from 'react';
4
4
  import { Text, View } from 'react-native';
5
5
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
6
6
  /**
7
- * Glifos default dibujados con primitivas de RN (View + border + transform).
8
- * Cero dependencias, cero fuentes, cero carga asíncrona. Cubren únicamente
9
- * lo que la librería necesita internamente (checkbox, chevrons de Select,
10
- * toggle de password en Input, etc). Para íconos de producto, el consumidor
11
- * inyecta su propio set vía <UIProvider icons={...}> o la prop `icon`.
7
+ * Default glyphs drawn with RN primitives (View + border + transform).
8
+ * Zero dependencies, zero fonts, zero async loading. They cover what the
9
+ * library needs internally (checkbox, Select chevrons, password toggle in
10
+ * Input, etc) plus a basic set for apps (menu, home, user…).
11
+ * For a complete set, the consumer injects their own via
12
+ * <UIProvider icons={...}> or the `icon` prop.
12
13
  */
13
14
 
15
+ /**
16
+ * Color of the inner glyph of a filled icon (alert, warning): black or
17
+ * white depending on the fill's luminance. A fixed white disappeared over
18
+ * dark mode's light fills (figure and ground). Non-hex colors (rgb(),
19
+ * names) fall back to white, the common case over saturated accents.
20
+ */
21
+ export function onColor(fill) {
22
+ const hex = fill.trim().replace('#', '');
23
+ const full = hex.length === 3 ? hex.split('').map(c => c + c).join('') : hex.slice(0, 6);
24
+ if (!/^[0-9a-fA-F]{6}$/.test(full)) return '#fff';
25
+ const channel = i => {
26
+ const c = parseInt(full.slice(i, i + 2), 16) / 255;
27
+ return c <= 0.03928 ? c / 12.92 : ((c + 0.055) / 1.055) ** 2.4;
28
+ };
29
+ const r = channel(0);
30
+ const g = channel(2);
31
+ const b = channel(4);
32
+ const luminance = 0.2126 * r + 0.7152 * g + 0.0722 * b;
33
+ // Threshold where contrast with black exceeds contrast with white.
34
+ return luminance > 0.179 ? '#000' : '#fff';
35
+ }
14
36
  const Chevron = /*#__PURE__*/memo(({
15
37
  size,
16
38
  color,
@@ -152,13 +174,13 @@ const PlusMinus = /*#__PURE__*/memo(({
152
174
  PlusMinus.displayName = 'PlusMinus';
153
175
 
154
176
  /**
155
- * Círculo con un glifo tipográfico adentro (!, i, ?).
177
+ * Circle with a typographic glyph inside (!, i, ?).
156
178
  *
157
- * Usa <Text> con la fuente del sistema en vez de componer el glifo con
158
- * Views: sigue siendo cero-dependencias (no carga ninguna fuente), y "i" vs
159
- * "!" vs "?" quedan inequívocos. Dibujarlos con barras y puntos daba un
160
- * "info" idéntico a un "!" invertido, que es exactamente lo que un ícono de
161
- * información no debe comunicar.
179
+ * Uses <Text> with the system font instead of composing the glyph from
180
+ * Views: it is still zero-dependency (it loads no font), and "i" vs "!" vs
181
+ * "?" stay unambiguous. Drawing them with bars and dots gave an "info"
182
+ * identical to an inverted "!", which is exactly what an information icon
183
+ * must not convey.
162
184
  */
163
185
  const Circle = /*#__PURE__*/memo(({
164
186
  size,
@@ -181,7 +203,7 @@ const Circle = /*#__PURE__*/memo(({
181
203
  children: !!label && /*#__PURE__*/_jsx(Text, {
182
204
  allowFontScaling: false,
183
205
  style: {
184
- color: filled ? '#fff' : color,
206
+ color: filled ? onColor(color) : color,
185
207
  fontSize: size * 0.62,
186
208
  lineHeight: size * 0.74,
187
209
  fontWeight: '700',
@@ -251,17 +273,17 @@ const Search = /*#__PURE__*/memo(({
251
273
  color
252
274
  }) => {
253
275
  const strokeWidth = Math.max(1.5, size / 9);
254
- // Lente grande (72% del alto) arriba-izquierda y mango corto saliendo de su
255
- // borde inferior-derecho sobre la diagonal de 45°. Las proporciones importan
256
- // a tamaños chicos (16-20px): con un lente chico y mango largo el glifo se
257
- // lee como una coma, no como una lupa.
276
+ // Large lens (72% of the height) at the top-left and a short handle coming
277
+ // out of its bottom-right edge along the 45° diagonal. The proportions matter
278
+ // at small sizes (16-20px): with a small lens and a long handle the glyph
279
+ // reads as a comma, not a magnifying glass.
258
280
  const lensD = size * 0.72;
259
281
  const lensR = lensD / 2;
260
282
  const handleLen = size * 0.34;
261
283
  const diag = Math.SQRT1_2; // cos(45°) === sin(45°)
262
- // El mango se centra sobre la diagonal, arrancando justo en el borde del
263
- // lente: distancia = radio + mitad del mango, menos un solapamiento de
264
- // medio trazo para que no quede un hueco entre borde y mango.
284
+ // The handle is centered on the diagonal, starting right at the lens's
285
+ // edge: distance = radius + half the handle, minus a half-stroke overlap
286
+ // so no gap is left between edge and handle.
265
287
  const dist = lensR + handleLen / 2 - strokeWidth / 2;
266
288
  const cx = lensR + dist * diag;
267
289
  const cy = lensR + dist * diag;
@@ -299,7 +321,487 @@ const Search = /*#__PURE__*/memo(({
299
321
  });
300
322
  Search.displayName = 'Search';
301
323
 
302
- /** Renderer default. Se usa cuando <UIProvider icons={...}> no pasa uno propio. */
324
+ // ── Basic set for apps ─────────────────────────────────────────────────────
325
+ // Same rules as the rest: only View/Text, stroke proportional to the size
326
+ // (`size / 10`, minimum 1.5) and a square `size` box, so they all line up
327
+ // the same way in a row (Gestalt, similarity).
328
+
329
+ const stroke = size => Math.max(1.5, size / 10);
330
+ const box = size => ({
331
+ width: size,
332
+ height: size,
333
+ alignItems: 'center',
334
+ justifyContent: 'center'
335
+ });
336
+ const Menu = /*#__PURE__*/memo(({
337
+ size,
338
+ color
339
+ }) => {
340
+ const sw = stroke(size);
341
+ const bar = {
342
+ width: size * 0.7,
343
+ height: sw,
344
+ borderRadius: sw / 2,
345
+ backgroundColor: color
346
+ };
347
+ return /*#__PURE__*/_jsxs(View, {
348
+ style: [box(size), {
349
+ gap: size * 0.16
350
+ }],
351
+ children: [/*#__PURE__*/_jsx(View, {
352
+ style: bar
353
+ }), /*#__PURE__*/_jsx(View, {
354
+ style: bar
355
+ }), /*#__PURE__*/_jsx(View, {
356
+ style: bar
357
+ })]
358
+ });
359
+ });
360
+ Menu.displayName = 'Menu';
361
+ const Scan = /*#__PURE__*/memo(({
362
+ size,
363
+ color
364
+ }) => {
365
+ const sw = stroke(size);
366
+ const arm = size * 0.26;
367
+ const inset = size * 0.1;
368
+ const corner = (v, h) => ({
369
+ position: 'absolute',
370
+ [v]: inset,
371
+ [h]: inset,
372
+ width: arm,
373
+ height: arm,
374
+ borderColor: color,
375
+ [v === 'top' ? 'borderTopWidth' : 'borderBottomWidth']: sw,
376
+ [h === 'left' ? 'borderLeftWidth' : 'borderRightWidth']: sw
377
+ });
378
+ return /*#__PURE__*/_jsxs(View, {
379
+ style: box(size),
380
+ children: [/*#__PURE__*/_jsx(View, {
381
+ style: corner('top', 'left')
382
+ }), /*#__PURE__*/_jsx(View, {
383
+ style: corner('top', 'right')
384
+ }), /*#__PURE__*/_jsx(View, {
385
+ style: corner('bottom', 'left')
386
+ }), /*#__PURE__*/_jsx(View, {
387
+ style: corner('bottom', 'right')
388
+ }), /*#__PURE__*/_jsx(View, {
389
+ style: {
390
+ width: size * 0.6,
391
+ height: sw,
392
+ borderRadius: sw / 2,
393
+ backgroundColor: color
394
+ }
395
+ })]
396
+ });
397
+ });
398
+ Scan.displayName = 'Scan';
399
+ const More = /*#__PURE__*/memo(({
400
+ size,
401
+ color
402
+ }) => {
403
+ const d = Math.max(3, size * 0.16);
404
+ const dot = {
405
+ width: d,
406
+ height: d,
407
+ borderRadius: d / 2,
408
+ backgroundColor: color
409
+ };
410
+ return /*#__PURE__*/_jsxs(View, {
411
+ style: [box(size), {
412
+ flexDirection: 'row',
413
+ gap: size * 0.12
414
+ }],
415
+ children: [/*#__PURE__*/_jsx(View, {
416
+ style: dot
417
+ }), /*#__PURE__*/_jsx(View, {
418
+ style: dot
419
+ }), /*#__PURE__*/_jsx(View, {
420
+ style: dot
421
+ })]
422
+ });
423
+ });
424
+ More.displayName = 'More';
425
+ const Home = /*#__PURE__*/memo(({
426
+ size,
427
+ color
428
+ }) => {
429
+ const sw = stroke(size);
430
+ const roof = size * 0.5;
431
+ return /*#__PURE__*/_jsxs(View, {
432
+ style: box(size),
433
+ children: [/*#__PURE__*/_jsx(View, {
434
+ style: {
435
+ position: 'absolute',
436
+ top: size * 0.14,
437
+ width: roof,
438
+ height: roof,
439
+ borderTopWidth: sw,
440
+ borderLeftWidth: sw,
441
+ borderColor: color,
442
+ transform: [{
443
+ rotate: '45deg'
444
+ }]
445
+ }
446
+ }), /*#__PURE__*/_jsx(View, {
447
+ style: {
448
+ position: 'absolute',
449
+ bottom: size * 0.12,
450
+ width: size * 0.56,
451
+ height: size * 0.4,
452
+ borderLeftWidth: sw,
453
+ borderRightWidth: sw,
454
+ borderBottomWidth: sw,
455
+ borderColor: color
456
+ }
457
+ })]
458
+ });
459
+ });
460
+ Home.displayName = 'Home';
461
+ const Settings = /*#__PURE__*/memo(({
462
+ size,
463
+ color
464
+ }) => {
465
+ const sw = stroke(size);
466
+ const ring = size * 0.5;
467
+ const tooth = {
468
+ width: size * 0.16,
469
+ height: size * 0.2,
470
+ backgroundColor: color,
471
+ borderRadius: sw / 2
472
+ };
473
+ return /*#__PURE__*/_jsxs(View, {
474
+ style: box(size),
475
+ children: [[0, 45, 90, 135, 180, 225, 270, 315].map(deg => /*#__PURE__*/_jsx(View, {
476
+ style: [box(size), {
477
+ position: 'absolute',
478
+ transform: [{
479
+ rotate: `${deg}deg`
480
+ }]
481
+ }],
482
+ children: /*#__PURE__*/_jsx(View, {
483
+ style: [tooth, {
484
+ position: 'absolute',
485
+ top: size * 0.08
486
+ }]
487
+ })
488
+ }, deg)), /*#__PURE__*/_jsx(View, {
489
+ style: {
490
+ width: ring,
491
+ height: ring,
492
+ borderRadius: ring / 2,
493
+ borderWidth: sw * 1.6,
494
+ borderColor: color
495
+ }
496
+ })]
497
+ });
498
+ });
499
+ Settings.displayName = 'Settings';
500
+ const User = /*#__PURE__*/memo(({
501
+ size,
502
+ color
503
+ }) => {
504
+ const sw = stroke(size);
505
+ const head = size * 0.38;
506
+ return /*#__PURE__*/_jsxs(View, {
507
+ style: box(size),
508
+ children: [/*#__PURE__*/_jsx(View, {
509
+ style: {
510
+ position: 'absolute',
511
+ top: size * 0.08,
512
+ width: head,
513
+ height: head,
514
+ borderRadius: head / 2,
515
+ borderWidth: sw,
516
+ borderColor: color
517
+ }
518
+ }), /*#__PURE__*/_jsx(View, {
519
+ style: {
520
+ position: 'absolute',
521
+ bottom: size * 0.08,
522
+ width: size * 0.74,
523
+ height: size * 0.34,
524
+ borderTopLeftRadius: size * 0.37,
525
+ borderTopRightRadius: size * 0.37,
526
+ borderTopWidth: sw,
527
+ borderLeftWidth: sw,
528
+ borderRightWidth: sw,
529
+ borderColor: color
530
+ }
531
+ })]
532
+ });
533
+ });
534
+ User.displayName = 'User';
535
+ const Trash = /*#__PURE__*/memo(({
536
+ size,
537
+ color
538
+ }) => {
539
+ const sw = stroke(size);
540
+ const bodyW = size * 0.52;
541
+ const bodyH = size * 0.56;
542
+ return /*#__PURE__*/_jsxs(View, {
543
+ style: box(size),
544
+ children: [/*#__PURE__*/_jsx(View, {
545
+ style: {
546
+ position: 'absolute',
547
+ top: size * 0.08,
548
+ width: size * 0.26,
549
+ height: size * 0.12,
550
+ borderTopWidth: sw,
551
+ borderLeftWidth: sw,
552
+ borderRightWidth: sw,
553
+ borderColor: color
554
+ }
555
+ }), /*#__PURE__*/_jsx(View, {
556
+ style: {
557
+ position: 'absolute',
558
+ top: size * 0.19,
559
+ width: size * 0.72,
560
+ height: sw,
561
+ borderRadius: sw / 2,
562
+ backgroundColor: color
563
+ }
564
+ }), /*#__PURE__*/_jsxs(View, {
565
+ style: {
566
+ position: 'absolute',
567
+ bottom: size * 0.08,
568
+ width: bodyW,
569
+ height: bodyH,
570
+ borderLeftWidth: sw,
571
+ borderRightWidth: sw,
572
+ borderBottomWidth: sw,
573
+ borderBottomLeftRadius: sw * 1.5,
574
+ borderBottomRightRadius: sw * 1.5,
575
+ borderColor: color,
576
+ flexDirection: 'row',
577
+ justifyContent: 'center',
578
+ alignItems: 'center',
579
+ gap: bodyW * 0.22
580
+ },
581
+ children: [/*#__PURE__*/_jsx(View, {
582
+ style: {
583
+ width: sw * 0.8,
584
+ height: bodyH * 0.55,
585
+ backgroundColor: color,
586
+ borderRadius: sw / 2
587
+ }
588
+ }), /*#__PURE__*/_jsx(View, {
589
+ style: {
590
+ width: sw * 0.8,
591
+ height: bodyH * 0.55,
592
+ backgroundColor: color,
593
+ borderRadius: sw / 2
594
+ }
595
+ })]
596
+ })]
597
+ });
598
+ });
599
+ Trash.displayName = 'Trash';
600
+ const Edit = /*#__PURE__*/memo(({
601
+ size,
602
+ color
603
+ }) => {
604
+ const sw = stroke(size);
605
+ return /*#__PURE__*/_jsx(View, {
606
+ style: box(size),
607
+ children: /*#__PURE__*/_jsxs(View, {
608
+ style: {
609
+ alignItems: 'center',
610
+ transform: [{
611
+ rotate: '45deg'
612
+ }, {
613
+ translateY: -size * 0.02
614
+ }]
615
+ },
616
+ children: [/*#__PURE__*/_jsx(View, {
617
+ style: {
618
+ width: size * 0.3,
619
+ height: size * 0.66,
620
+ borderWidth: sw,
621
+ borderColor: color,
622
+ borderTopLeftRadius: sw,
623
+ borderTopRightRadius: sw
624
+ }
625
+ }), /*#__PURE__*/_jsx(View, {
626
+ style: {
627
+ width: 0,
628
+ height: 0,
629
+ borderLeftWidth: size * 0.15,
630
+ borderRightWidth: size * 0.15,
631
+ borderTopWidth: size * 0.22,
632
+ borderLeftColor: 'transparent',
633
+ borderRightColor: 'transparent',
634
+ borderTopColor: color
635
+ }
636
+ })]
637
+ })
638
+ });
639
+ });
640
+ Edit.displayName = 'Edit';
641
+ const Share = /*#__PURE__*/memo(({
642
+ size,
643
+ color
644
+ }) => {
645
+ const sw = stroke(size);
646
+ const arm = size * 0.26;
647
+ return /*#__PURE__*/_jsxs(View, {
648
+ style: box(size),
649
+ children: [/*#__PURE__*/_jsx(View, {
650
+ style: {
651
+ position: 'absolute',
652
+ bottom: size * 0.08,
653
+ width: size * 0.64,
654
+ height: size * 0.42,
655
+ borderLeftWidth: sw,
656
+ borderRightWidth: sw,
657
+ borderBottomWidth: sw,
658
+ borderBottomLeftRadius: sw * 1.5,
659
+ borderBottomRightRadius: sw * 1.5,
660
+ borderColor: color
661
+ }
662
+ }), /*#__PURE__*/_jsx(View, {
663
+ style: {
664
+ position: 'absolute',
665
+ top: size * 0.1,
666
+ width: sw,
667
+ height: size * 0.56,
668
+ backgroundColor: color,
669
+ borderRadius: sw / 2
670
+ }
671
+ }), /*#__PURE__*/_jsx(View, {
672
+ style: {
673
+ position: 'absolute',
674
+ top: size * 0.12,
675
+ width: arm,
676
+ height: arm,
677
+ borderTopWidth: sw,
678
+ borderLeftWidth: sw,
679
+ borderColor: color,
680
+ transform: [{
681
+ rotate: '45deg'
682
+ }]
683
+ }
684
+ })]
685
+ });
686
+ });
687
+ Share.displayName = 'Share';
688
+ const Heart = /*#__PURE__*/memo(({
689
+ size,
690
+ color
691
+ }) => {
692
+ // Two circles over a square rotated 45°: the classic shape, filled.
693
+ const s = size * 0.46;
694
+ const lobe = {
695
+ position: 'absolute',
696
+ width: s,
697
+ height: s,
698
+ borderRadius: s / 2,
699
+ backgroundColor: color
700
+ };
701
+ return /*#__PURE__*/_jsx(View, {
702
+ style: box(size),
703
+ children: /*#__PURE__*/_jsxs(View, {
704
+ style: {
705
+ width: s,
706
+ height: s,
707
+ transform: [{
708
+ translateY: size * 0.05
709
+ }, {
710
+ rotate: '45deg'
711
+ }]
712
+ },
713
+ children: [/*#__PURE__*/_jsx(View, {
714
+ style: {
715
+ position: 'absolute',
716
+ width: s,
717
+ height: s,
718
+ backgroundColor: color
719
+ }
720
+ }), /*#__PURE__*/_jsx(View, {
721
+ style: [lobe, {
722
+ left: -s / 2
723
+ }]
724
+ }), /*#__PURE__*/_jsx(View, {
725
+ style: [lobe, {
726
+ top: -s / 2
727
+ }]
728
+ })]
729
+ })
730
+ });
731
+ });
732
+ Heart.displayName = 'Heart';
733
+
734
+ /**
735
+ * Star: typographic glyph (★, U+2605) like Circle's. A five-pointed star
736
+ * can't be composed well from rectangles; the variation selector U+FE0E
737
+ * forces the text version (monochrome, in the requested color) instead of
738
+ * the emoji.
739
+ */
740
+ const Star = /*#__PURE__*/memo(({
741
+ size,
742
+ color
743
+ }) => /*#__PURE__*/_jsx(View, {
744
+ style: box(size),
745
+ children: /*#__PURE__*/_jsx(Text, {
746
+ allowFontScaling: false,
747
+ style: {
748
+ color,
749
+ fontSize: size * 0.95,
750
+ lineHeight: size,
751
+ textAlign: 'center',
752
+ includeFontPadding: false
753
+ },
754
+ children: '\u2605\uFE0E'
755
+ })
756
+ }));
757
+ Star.displayName = 'Star';
758
+
759
+ /**
760
+ * Warning: filled triangle with a "!" (not a circle like `alert`), so that
761
+ * warning and error aren't told apart by color alone.
762
+ */
763
+ const WarningTriangle = /*#__PURE__*/memo(({
764
+ size,
765
+ color
766
+ }) => {
767
+ const half = size * 0.5;
768
+ const height = size * 0.88;
769
+ return /*#__PURE__*/_jsxs(View, {
770
+ style: box(size),
771
+ children: [/*#__PURE__*/_jsx(View, {
772
+ style: {
773
+ width: 0,
774
+ height: 0,
775
+ borderLeftWidth: half,
776
+ borderRightWidth: half,
777
+ borderBottomWidth: height,
778
+ borderLeftColor: 'transparent',
779
+ borderRightColor: 'transparent',
780
+ borderBottomColor: color
781
+ }
782
+ }), /*#__PURE__*/_jsx(Text, {
783
+ allowFontScaling: false,
784
+ style: {
785
+ position: 'absolute',
786
+ bottom: size * 0.06,
787
+ color: onColor(color),
788
+ fontSize: size * 0.58,
789
+ lineHeight: size * 0.66,
790
+ fontWeight: '700',
791
+ textAlign: 'center',
792
+ includeFontPadding: false
793
+ },
794
+ children: "!"
795
+ })]
796
+ });
797
+ });
798
+ WarningTriangle.displayName = 'WarningTriangle';
799
+ const warned = new Set();
800
+
801
+ /** All included glyphs, in catalog order. */
802
+ export const BUILT_IN_ICON_NAMES = ['check', 'close', 'plus', 'minus', 'search', 'scan', 'menu', 'more', 'home', 'settings', 'user', 'trash', 'edit', 'share', 'heart', 'star', 'eye', 'eye-off', 'chevron-left', 'chevron-right', 'chevron-up', 'chevron-down', 'alert', 'warning', 'info', 'question'];
803
+
804
+ /** Default renderer. Used when <UIProvider icons={...}> doesn't pass its own. */
303
805
  export function renderDefaultIcon(name, props) {
304
806
  switch (name) {
305
807
  case 'check':
@@ -343,6 +845,10 @@ export function renderDefaultIcon(name, props) {
343
845
  return /*#__PURE__*/_jsx(Search, {
344
846
  ...props
345
847
  });
848
+ case 'scan':
849
+ return /*#__PURE__*/_jsx(Scan, {
850
+ ...props
851
+ });
346
852
  case 'plus':
347
853
  return /*#__PURE__*/_jsx(PlusMinus, {
348
854
  ...props
@@ -364,17 +870,61 @@ export function renderDefaultIcon(name, props) {
364
870
  label: "i"
365
871
  });
366
872
  case 'warning':
367
- return /*#__PURE__*/_jsx(Circle, {
368
- ...props,
369
- filled: true,
370
- label: "!"
873
+ return /*#__PURE__*/_jsx(WarningTriangle, {
874
+ ...props
371
875
  });
372
876
  case 'question':
373
877
  return /*#__PURE__*/_jsx(Circle, {
374
878
  ...props,
375
879
  label: "?"
376
880
  });
881
+ case 'menu':
882
+ return /*#__PURE__*/_jsx(Menu, {
883
+ ...props
884
+ });
885
+ case 'more':
886
+ return /*#__PURE__*/_jsx(More, {
887
+ ...props
888
+ });
889
+ case 'home':
890
+ return /*#__PURE__*/_jsx(Home, {
891
+ ...props
892
+ });
893
+ case 'settings':
894
+ return /*#__PURE__*/_jsx(Settings, {
895
+ ...props
896
+ });
897
+ case 'user':
898
+ return /*#__PURE__*/_jsx(User, {
899
+ ...props
900
+ });
901
+ case 'trash':
902
+ return /*#__PURE__*/_jsx(Trash, {
903
+ ...props
904
+ });
905
+ case 'edit':
906
+ return /*#__PURE__*/_jsx(Edit, {
907
+ ...props
908
+ });
909
+ case 'share':
910
+ return /*#__PURE__*/_jsx(Share, {
911
+ ...props
912
+ });
913
+ case 'heart':
914
+ return /*#__PURE__*/_jsx(Heart, {
915
+ ...props
916
+ });
917
+ case 'star':
918
+ return /*#__PURE__*/_jsx(Star, {
919
+ ...props
920
+ });
377
921
  default:
922
+ // A name outside the included set only makes sense with a custom
923
+ // renderer (<UIProvider icons>). Without one there is no glyph: warn once.
924
+ if (typeof __DEV__ !== 'undefined' && __DEV__ && !warned.has(name)) {
925
+ warned.add(name);
926
+ console.warn(`orn-ui: no built-in icon named "${name}". Pass <UIProvider icons={...}> to render custom names.`);
927
+ }
378
928
  return null;
379
929
  }
380
930
  }