orn-ui 0.1.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 (407) hide show
  1. package/README.md +107 -0
  2. package/bin/orn-ui.mjs +228 -0
  3. package/lib/commonjs/atoms/Avatar.js +42 -0
  4. package/lib/commonjs/atoms/Avatar.js.map +1 -0
  5. package/lib/commonjs/atoms/Badge.js +82 -0
  6. package/lib/commonjs/atoms/Badge.js.map +1 -0
  7. package/lib/commonjs/atoms/Button.js +222 -0
  8. package/lib/commonjs/atoms/Button.js.map +1 -0
  9. package/lib/commonjs/atoms/Card.js +33 -0
  10. package/lib/commonjs/atoms/Card.js.map +1 -0
  11. package/lib/commonjs/atoms/Checkbox.js +107 -0
  12. package/lib/commonjs/atoms/Checkbox.js.map +1 -0
  13. package/lib/commonjs/atoms/Divider.js +27 -0
  14. package/lib/commonjs/atoms/Divider.js.map +1 -0
  15. package/lib/commonjs/atoms/EmptyState.js +69 -0
  16. package/lib/commonjs/atoms/EmptyState.js.map +1 -0
  17. package/lib/commonjs/atoms/Fab.js +62 -0
  18. package/lib/commonjs/atoms/Fab.js.map +1 -0
  19. package/lib/commonjs/atoms/IconButton.js +60 -0
  20. package/lib/commonjs/atoms/IconButton.js.map +1 -0
  21. package/lib/commonjs/atoms/Image.js +113 -0
  22. package/lib/commonjs/atoms/Image.js.map +1 -0
  23. package/lib/commonjs/atoms/Input.js +173 -0
  24. package/lib/commonjs/atoms/Input.js.map +1 -0
  25. package/lib/commonjs/atoms/KeyValueRow.js +60 -0
  26. package/lib/commonjs/atoms/KeyValueRow.js.map +1 -0
  27. package/lib/commonjs/atoms/PressableScale.js +60 -0
  28. package/lib/commonjs/atoms/PressableScale.js.map +1 -0
  29. package/lib/commonjs/atoms/Spinner.js +156 -0
  30. package/lib/commonjs/atoms/Spinner.js.map +1 -0
  31. package/lib/commonjs/atoms/Text.js +63 -0
  32. package/lib/commonjs/atoms/Text.js.map +1 -0
  33. package/lib/commonjs/atoms/index.js +135 -0
  34. package/lib/commonjs/atoms/index.js.map +1 -0
  35. package/lib/commonjs/icons/Icon.js +40 -0
  36. package/lib/commonjs/icons/Icon.js.map +1 -0
  37. package/lib/commonjs/icons/defaultIcons.js +386 -0
  38. package/lib/commonjs/icons/defaultIcons.js.map +1 -0
  39. package/lib/commonjs/icons/index.js +20 -0
  40. package/lib/commonjs/icons/index.js.map +1 -0
  41. package/lib/commonjs/icons/types.js +6 -0
  42. package/lib/commonjs/icons/types.js.map +1 -0
  43. package/lib/commonjs/index.js +61 -0
  44. package/lib/commonjs/index.js.map +1 -0
  45. package/lib/commonjs/molecules/AvatarHeader.js +87 -0
  46. package/lib/commonjs/molecules/AvatarHeader.js.map +1 -0
  47. package/lib/commonjs/molecules/FormActions.js +47 -0
  48. package/lib/commonjs/molecules/FormActions.js.map +1 -0
  49. package/lib/commonjs/molecules/InfoRow.js +83 -0
  50. package/lib/commonjs/molecules/InfoRow.js.map +1 -0
  51. package/lib/commonjs/molecules/OptionCard.js +98 -0
  52. package/lib/commonjs/molecules/OptionCard.js.map +1 -0
  53. package/lib/commonjs/molecules/Stepper.js +104 -0
  54. package/lib/commonjs/molecules/Stepper.js.map +1 -0
  55. package/lib/commonjs/molecules/Steps.js +220 -0
  56. package/lib/commonjs/molecules/Steps.js.map +1 -0
  57. package/lib/commonjs/molecules/ThemeToggle.js +91 -0
  58. package/lib/commonjs/molecules/ThemeToggle.js.map +1 -0
  59. package/lib/commonjs/molecules/index.js +55 -0
  60. package/lib/commonjs/molecules/index.js.map +1 -0
  61. package/lib/commonjs/organisms/Alert.js +223 -0
  62. package/lib/commonjs/organisms/Alert.js.map +1 -0
  63. package/lib/commonjs/organisms/AlertProvider.js +109 -0
  64. package/lib/commonjs/organisms/AlertProvider.js.map +1 -0
  65. package/lib/commonjs/organisms/BottomSheet.js +154 -0
  66. package/lib/commonjs/organisms/BottomSheet.js.map +1 -0
  67. package/lib/commonjs/organisms/DateField.js +147 -0
  68. package/lib/commonjs/organisms/DateField.js.map +1 -0
  69. package/lib/commonjs/organisms/DatePicker.js +253 -0
  70. package/lib/commonjs/organisms/DatePicker.js.map +1 -0
  71. package/lib/commonjs/organisms/List.js +143 -0
  72. package/lib/commonjs/organisms/List.js.map +1 -0
  73. package/lib/commonjs/organisms/Modal.js +286 -0
  74. package/lib/commonjs/organisms/Modal.js.map +1 -0
  75. package/lib/commonjs/organisms/Screen.js +75 -0
  76. package/lib/commonjs/organisms/Screen.js.map +1 -0
  77. package/lib/commonjs/organisms/SearchList.js +180 -0
  78. package/lib/commonjs/organisms/SearchList.js.map +1 -0
  79. package/lib/commonjs/organisms/Select.js +178 -0
  80. package/lib/commonjs/organisms/Select.js.map +1 -0
  81. package/lib/commonjs/organisms/Toast.js +157 -0
  82. package/lib/commonjs/organisms/Toast.js.map +1 -0
  83. package/lib/commonjs/organisms/ToastProvider.js +131 -0
  84. package/lib/commonjs/organisms/ToastProvider.js.map +1 -0
  85. package/lib/commonjs/organisms/Wizard.js +116 -0
  86. package/lib/commonjs/organisms/Wizard.js.map +1 -0
  87. package/lib/commonjs/organisms/index.js +127 -0
  88. package/lib/commonjs/organisms/index.js.map +1 -0
  89. package/lib/commonjs/package.json +1 -0
  90. package/lib/commonjs/theme/UIProvider.js +110 -0
  91. package/lib/commonjs/theme/UIProvider.js.map +1 -0
  92. package/lib/commonjs/theme/createStyles.js +42 -0
  93. package/lib/commonjs/theme/createStyles.js.map +1 -0
  94. package/lib/commonjs/theme/createTheme.js +50 -0
  95. package/lib/commonjs/theme/createTheme.js.map +1 -0
  96. package/lib/commonjs/theme/index.js +151 -0
  97. package/lib/commonjs/theme/index.js.map +1 -0
  98. package/lib/commonjs/theme/insets.js +15 -0
  99. package/lib/commonjs/theme/insets.js.map +1 -0
  100. package/lib/commonjs/theme/labels.js +18 -0
  101. package/lib/commonjs/theme/labels.js.map +1 -0
  102. package/lib/commonjs/theme/palettes.js +42 -0
  103. package/lib/commonjs/theme/palettes.js.map +1 -0
  104. package/lib/commonjs/theme/tokens.js +120 -0
  105. package/lib/commonjs/theme/tokens.js.map +1 -0
  106. package/lib/commonjs/theme/types.js +6 -0
  107. package/lib/commonjs/theme/types.js.map +1 -0
  108. package/lib/module/atoms/Avatar.js +37 -0
  109. package/lib/module/atoms/Avatar.js.map +1 -0
  110. package/lib/module/atoms/Badge.js +77 -0
  111. package/lib/module/atoms/Badge.js.map +1 -0
  112. package/lib/module/atoms/Button.js +217 -0
  113. package/lib/module/atoms/Button.js.map +1 -0
  114. package/lib/module/atoms/Card.js +28 -0
  115. package/lib/module/atoms/Card.js.map +1 -0
  116. package/lib/module/atoms/Checkbox.js +102 -0
  117. package/lib/module/atoms/Checkbox.js.map +1 -0
  118. package/lib/module/atoms/Divider.js +22 -0
  119. package/lib/module/atoms/Divider.js.map +1 -0
  120. package/lib/module/atoms/EmptyState.js +64 -0
  121. package/lib/module/atoms/EmptyState.js.map +1 -0
  122. package/lib/module/atoms/Fab.js +57 -0
  123. package/lib/module/atoms/Fab.js.map +1 -0
  124. package/lib/module/atoms/IconButton.js +55 -0
  125. package/lib/module/atoms/IconButton.js.map +1 -0
  126. package/lib/module/atoms/Image.js +108 -0
  127. package/lib/module/atoms/Image.js.map +1 -0
  128. package/lib/module/atoms/Input.js +168 -0
  129. package/lib/module/atoms/Input.js.map +1 -0
  130. package/lib/module/atoms/KeyValueRow.js +55 -0
  131. package/lib/module/atoms/KeyValueRow.js.map +1 -0
  132. package/lib/module/atoms/PressableScale.js +55 -0
  133. package/lib/module/atoms/PressableScale.js.map +1 -0
  134. package/lib/module/atoms/Spinner.js +151 -0
  135. package/lib/module/atoms/Spinner.js.map +1 -0
  136. package/lib/module/atoms/Text.js +58 -0
  137. package/lib/module/atoms/Text.js.map +1 -0
  138. package/lib/module/atoms/index.js +18 -0
  139. package/lib/module/atoms/index.js.map +1 -0
  140. package/lib/module/icons/Icon.js +35 -0
  141. package/lib/module/icons/Icon.js.map +1 -0
  142. package/lib/module/icons/defaultIcons.js +381 -0
  143. package/lib/module/icons/defaultIcons.js.map +1 -0
  144. package/lib/module/icons/index.js +5 -0
  145. package/lib/module/icons/index.js.map +1 -0
  146. package/lib/module/icons/types.js +4 -0
  147. package/lib/module/icons/types.js.map +1 -0
  148. package/lib/module/index.js +8 -0
  149. package/lib/module/index.js.map +1 -0
  150. package/lib/module/molecules/AvatarHeader.js +82 -0
  151. package/lib/module/molecules/AvatarHeader.js.map +1 -0
  152. package/lib/module/molecules/FormActions.js +42 -0
  153. package/lib/module/molecules/FormActions.js.map +1 -0
  154. package/lib/module/molecules/InfoRow.js +78 -0
  155. package/lib/module/molecules/InfoRow.js.map +1 -0
  156. package/lib/module/molecules/OptionCard.js +93 -0
  157. package/lib/module/molecules/OptionCard.js.map +1 -0
  158. package/lib/module/molecules/Stepper.js +99 -0
  159. package/lib/module/molecules/Stepper.js.map +1 -0
  160. package/lib/module/molecules/Steps.js +215 -0
  161. package/lib/module/molecules/Steps.js.map +1 -0
  162. package/lib/module/molecules/ThemeToggle.js +86 -0
  163. package/lib/module/molecules/ThemeToggle.js.map +1 -0
  164. package/lib/module/molecules/index.js +10 -0
  165. package/lib/module/molecules/index.js.map +1 -0
  166. package/lib/module/organisms/Alert.js +218 -0
  167. package/lib/module/organisms/Alert.js.map +1 -0
  168. package/lib/module/organisms/AlertProvider.js +103 -0
  169. package/lib/module/organisms/AlertProvider.js.map +1 -0
  170. package/lib/module/organisms/BottomSheet.js +149 -0
  171. package/lib/module/organisms/BottomSheet.js.map +1 -0
  172. package/lib/module/organisms/DateField.js +142 -0
  173. package/lib/module/organisms/DateField.js.map +1 -0
  174. package/lib/module/organisms/DatePicker.js +247 -0
  175. package/lib/module/organisms/DatePicker.js.map +1 -0
  176. package/lib/module/organisms/List.js +138 -0
  177. package/lib/module/organisms/List.js.map +1 -0
  178. package/lib/module/organisms/Modal.js +281 -0
  179. package/lib/module/organisms/Modal.js.map +1 -0
  180. package/lib/module/organisms/Screen.js +70 -0
  181. package/lib/module/organisms/Screen.js.map +1 -0
  182. package/lib/module/organisms/SearchList.js +175 -0
  183. package/lib/module/organisms/SearchList.js.map +1 -0
  184. package/lib/module/organisms/Select.js +173 -0
  185. package/lib/module/organisms/Select.js.map +1 -0
  186. package/lib/module/organisms/Toast.js +152 -0
  187. package/lib/module/organisms/Toast.js.map +1 -0
  188. package/lib/module/organisms/ToastProvider.js +125 -0
  189. package/lib/module/organisms/ToastProvider.js.map +1 -0
  190. package/lib/module/organisms/Wizard.js +111 -0
  191. package/lib/module/organisms/Wizard.js.map +1 -0
  192. package/lib/module/organisms/index.js +16 -0
  193. package/lib/module/organisms/index.js.map +1 -0
  194. package/lib/module/package.json +1 -0
  195. package/lib/module/theme/UIProvider.js +97 -0
  196. package/lib/module/theme/UIProvider.js.map +1 -0
  197. package/lib/module/theme/createStyles.js +38 -0
  198. package/lib/module/theme/createStyles.js.map +1 -0
  199. package/lib/module/theme/createTheme.js +45 -0
  200. package/lib/module/theme/createTheme.js.map +1 -0
  201. package/lib/module/theme/index.js +10 -0
  202. package/lib/module/theme/index.js.map +1 -0
  203. package/lib/module/theme/insets.js +11 -0
  204. package/lib/module/theme/insets.js.map +1 -0
  205. package/lib/module/theme/labels.js +14 -0
  206. package/lib/module/theme/labels.js.map +1 -0
  207. package/lib/module/theme/palettes.js +38 -0
  208. package/lib/module/theme/palettes.js.map +1 -0
  209. package/lib/module/theme/tokens.js +117 -0
  210. package/lib/module/theme/tokens.js.map +1 -0
  211. package/lib/module/theme/types.js +4 -0
  212. package/lib/module/theme/types.js.map +1 -0
  213. package/lib/typescript/atoms/Avatar.d.ts +15 -0
  214. package/lib/typescript/atoms/Avatar.d.ts.map +1 -0
  215. package/lib/typescript/atoms/Badge.d.ts +19 -0
  216. package/lib/typescript/atoms/Badge.d.ts.map +1 -0
  217. package/lib/typescript/atoms/Button.d.ts +30 -0
  218. package/lib/typescript/atoms/Button.d.ts.map +1 -0
  219. package/lib/typescript/atoms/Card.d.ts +8 -0
  220. package/lib/typescript/atoms/Card.d.ts.map +1 -0
  221. package/lib/typescript/atoms/Checkbox.d.ts +11 -0
  222. package/lib/typescript/atoms/Checkbox.d.ts.map +1 -0
  223. package/lib/typescript/atoms/Divider.d.ts +8 -0
  224. package/lib/typescript/atoms/Divider.d.ts.map +1 -0
  225. package/lib/typescript/atoms/EmptyState.d.ts +12 -0
  226. package/lib/typescript/atoms/EmptyState.d.ts.map +1 -0
  227. package/lib/typescript/atoms/Fab.d.ts +22 -0
  228. package/lib/typescript/atoms/Fab.d.ts.map +1 -0
  229. package/lib/typescript/atoms/IconButton.d.ts +23 -0
  230. package/lib/typescript/atoms/IconButton.d.ts.map +1 -0
  231. package/lib/typescript/atoms/Image.d.ts +45 -0
  232. package/lib/typescript/atoms/Image.d.ts.map +1 -0
  233. package/lib/typescript/atoms/Input.d.ts +24 -0
  234. package/lib/typescript/atoms/Input.d.ts.map +1 -0
  235. package/lib/typescript/atoms/KeyValueRow.d.ts +17 -0
  236. package/lib/typescript/atoms/KeyValueRow.d.ts.map +1 -0
  237. package/lib/typescript/atoms/PressableScale.d.ts +15 -0
  238. package/lib/typescript/atoms/PressableScale.d.ts.map +1 -0
  239. package/lib/typescript/atoms/Spinner.d.ts +20 -0
  240. package/lib/typescript/atoms/Spinner.d.ts.map +1 -0
  241. package/lib/typescript/atoms/Text.d.ts +13 -0
  242. package/lib/typescript/atoms/Text.d.ts.map +1 -0
  243. package/lib/typescript/atoms/index.d.ts +31 -0
  244. package/lib/typescript/atoms/index.d.ts.map +1 -0
  245. package/lib/typescript/icons/Icon.d.ts +18 -0
  246. package/lib/typescript/icons/Icon.d.ts.map +1 -0
  247. package/lib/typescript/icons/defaultIcons.d.ts +5 -0
  248. package/lib/typescript/icons/defaultIcons.d.ts.map +1 -0
  249. package/lib/typescript/icons/index.d.ts +5 -0
  250. package/lib/typescript/icons/index.d.ts.map +1 -0
  251. package/lib/typescript/icons/types.d.ts +10 -0
  252. package/lib/typescript/icons/types.d.ts.map +1 -0
  253. package/lib/typescript/index.d.ts +6 -0
  254. package/lib/typescript/index.d.ts.map +1 -0
  255. package/lib/typescript/molecules/AvatarHeader.d.ts +20 -0
  256. package/lib/typescript/molecules/AvatarHeader.d.ts.map +1 -0
  257. package/lib/typescript/molecules/FormActions.d.ts +21 -0
  258. package/lib/typescript/molecules/FormActions.d.ts.map +1 -0
  259. package/lib/typescript/molecules/InfoRow.d.ts +17 -0
  260. package/lib/typescript/molecules/InfoRow.d.ts.map +1 -0
  261. package/lib/typescript/molecules/OptionCard.d.ts +20 -0
  262. package/lib/typescript/molecules/OptionCard.d.ts.map +1 -0
  263. package/lib/typescript/molecules/Stepper.d.ts +15 -0
  264. package/lib/typescript/molecules/Stepper.d.ts.map +1 -0
  265. package/lib/typescript/molecules/Steps.d.ts +29 -0
  266. package/lib/typescript/molecules/Steps.d.ts.map +1 -0
  267. package/lib/typescript/molecules/ThemeToggle.d.ts +15 -0
  268. package/lib/typescript/molecules/ThemeToggle.d.ts.map +1 -0
  269. package/lib/typescript/molecules/index.d.ts +15 -0
  270. package/lib/typescript/molecules/index.d.ts.map +1 -0
  271. package/lib/typescript/organisms/Alert.d.ts +29 -0
  272. package/lib/typescript/organisms/Alert.d.ts.map +1 -0
  273. package/lib/typescript/organisms/AlertProvider.d.ts +32 -0
  274. package/lib/typescript/organisms/AlertProvider.d.ts.map +1 -0
  275. package/lib/typescript/organisms/BottomSheet.d.ts +15 -0
  276. package/lib/typescript/organisms/BottomSheet.d.ts.map +1 -0
  277. package/lib/typescript/organisms/DateField.d.ts +26 -0
  278. package/lib/typescript/organisms/DateField.d.ts.map +1 -0
  279. package/lib/typescript/organisms/DatePicker.d.ts +49 -0
  280. package/lib/typescript/organisms/DatePicker.d.ts.map +1 -0
  281. package/lib/typescript/organisms/List.d.ts +35 -0
  282. package/lib/typescript/organisms/List.d.ts.map +1 -0
  283. package/lib/typescript/organisms/Modal.d.ts +25 -0
  284. package/lib/typescript/organisms/Modal.d.ts.map +1 -0
  285. package/lib/typescript/organisms/Screen.d.ts +26 -0
  286. package/lib/typescript/organisms/Screen.d.ts.map +1 -0
  287. package/lib/typescript/organisms/SearchList.d.ts +40 -0
  288. package/lib/typescript/organisms/SearchList.d.ts.map +1 -0
  289. package/lib/typescript/organisms/Select.d.ts +25 -0
  290. package/lib/typescript/organisms/Select.d.ts.map +1 -0
  291. package/lib/typescript/organisms/Toast.d.ts +28 -0
  292. package/lib/typescript/organisms/Toast.d.ts.map +1 -0
  293. package/lib/typescript/organisms/ToastProvider.d.ts +36 -0
  294. package/lib/typescript/organisms/ToastProvider.d.ts.map +1 -0
  295. package/lib/typescript/organisms/Wizard.d.ts +40 -0
  296. package/lib/typescript/organisms/Wizard.d.ts.map +1 -0
  297. package/lib/typescript/organisms/index.d.ts +27 -0
  298. package/lib/typescript/organisms/index.d.ts.map +1 -0
  299. package/lib/typescript/theme/UIProvider.d.ts +47 -0
  300. package/lib/typescript/theme/UIProvider.d.ts.map +1 -0
  301. package/lib/typescript/theme/createStyles.d.ts +21 -0
  302. package/lib/typescript/theme/createStyles.d.ts.map +1 -0
  303. package/lib/typescript/theme/createTheme.d.ts +9 -0
  304. package/lib/typescript/theme/createTheme.d.ts.map +1 -0
  305. package/lib/typescript/theme/index.d.ts +14 -0
  306. package/lib/typescript/theme/index.d.ts.map +1 -0
  307. package/lib/typescript/theme/insets.d.ts +9 -0
  308. package/lib/typescript/theme/insets.d.ts.map +1 -0
  309. package/lib/typescript/theme/labels.d.ts +13 -0
  310. package/lib/typescript/theme/labels.d.ts.map +1 -0
  311. package/lib/typescript/theme/palettes.d.ts +24 -0
  312. package/lib/typescript/theme/palettes.d.ts.map +1 -0
  313. package/lib/typescript/theme/tokens.d.ts +41 -0
  314. package/lib/typescript/theme/tokens.d.ts.map +1 -0
  315. package/lib/typescript/theme/types.d.ts +24 -0
  316. package/lib/typescript/theme/types.d.ts.map +1 -0
  317. package/package.json +311 -0
  318. package/registry/alert-provider.json +21 -0
  319. package/registry/alert.json +19 -0
  320. package/registry/avatar-header.json +18 -0
  321. package/registry/avatar.json +18 -0
  322. package/registry/badge.json +18 -0
  323. package/registry/bottom-sheet.json +18 -0
  324. package/registry/button.json +18 -0
  325. package/registry/card.json +18 -0
  326. package/registry/checkbox.json +18 -0
  327. package/registry/core.json +64 -0
  328. package/registry/date-field.json +24 -0
  329. package/registry/date-picker.json +23 -0
  330. package/registry/divider.json +18 -0
  331. package/registry/empty-state.json +18 -0
  332. package/registry/fab.json +19 -0
  333. package/registry/form-actions.json +19 -0
  334. package/registry/icon-button.json +19 -0
  335. package/registry/image.json +20 -0
  336. package/registry/index.json +465 -0
  337. package/registry/info-row.json +19 -0
  338. package/registry/input.json +18 -0
  339. package/registry/key-value-row.json +18 -0
  340. package/registry/list.json +20 -0
  341. package/registry/manifest.json +263 -0
  342. package/registry/modal.json +21 -0
  343. package/registry/option-card.json +18 -0
  344. package/registry/pressable-scale.json +18 -0
  345. package/registry/screen.json +18 -0
  346. package/registry/search-list.json +23 -0
  347. package/registry/select.json +18 -0
  348. package/registry/spinner.json +18 -0
  349. package/registry/stepper.json +18 -0
  350. package/registry/steps.json +18 -0
  351. package/registry/theme-toggle.json +18 -0
  352. package/registry/title.json +21 -0
  353. package/registry/toast-provider.json +20 -0
  354. package/registry/toast.json +18 -0
  355. package/registry/wizard.json +20 -0
  356. package/src/atoms/Avatar.tsx +40 -0
  357. package/src/atoms/Badge.tsx +55 -0
  358. package/src/atoms/Button.tsx +186 -0
  359. package/src/atoms/Card.tsx +27 -0
  360. package/src/atoms/Checkbox.tsx +75 -0
  361. package/src/atoms/Divider.tsx +14 -0
  362. package/src/atoms/EmptyState.tsx +60 -0
  363. package/src/atoms/Fab.tsx +63 -0
  364. package/src/atoms/IconButton.tsx +53 -0
  365. package/src/atoms/Image.tsx +137 -0
  366. package/src/atoms/Input.tsx +166 -0
  367. package/src/atoms/KeyValueRow.tsx +48 -0
  368. package/src/atoms/PressableScale.tsx +52 -0
  369. package/src/atoms/Spinner.tsx +127 -0
  370. package/src/atoms/Text.tsx +58 -0
  371. package/src/atoms/index.ts +30 -0
  372. package/src/icons/Icon.tsx +27 -0
  373. package/src/icons/defaultIcons.tsx +292 -0
  374. package/src/icons/index.ts +4 -0
  375. package/src/icons/types.ts +27 -0
  376. package/src/index.ts +5 -0
  377. package/src/molecules/AvatarHeader.tsx +69 -0
  378. package/src/molecules/FormActions.tsx +52 -0
  379. package/src/molecules/InfoRow.tsx +52 -0
  380. package/src/molecules/OptionCard.tsx +82 -0
  381. package/src/molecules/Stepper.tsx +76 -0
  382. package/src/molecules/Steps.tsx +198 -0
  383. package/src/molecules/ThemeToggle.tsx +67 -0
  384. package/src/molecules/index.ts +14 -0
  385. package/src/organisms/Alert.tsx +162 -0
  386. package/src/organisms/AlertProvider.tsx +125 -0
  387. package/src/organisms/BottomSheet.tsx +95 -0
  388. package/src/organisms/DateField.tsx +134 -0
  389. package/src/organisms/DatePicker.tsx +255 -0
  390. package/src/organisms/List.tsx +154 -0
  391. package/src/organisms/Modal.tsx +251 -0
  392. package/src/organisms/Screen.tsx +84 -0
  393. package/src/organisms/SearchList.tsx +186 -0
  394. package/src/organisms/Select.tsx +156 -0
  395. package/src/organisms/Toast.tsx +135 -0
  396. package/src/organisms/ToastProvider.tsx +166 -0
  397. package/src/organisms/Wizard.tsx +137 -0
  398. package/src/organisms/index.ts +26 -0
  399. package/src/theme/UIProvider.tsx +129 -0
  400. package/src/theme/createStyles.ts +40 -0
  401. package/src/theme/createTheme.ts +49 -0
  402. package/src/theme/index.ts +22 -0
  403. package/src/theme/insets.ts +9 -0
  404. package/src/theme/labels.ts +23 -0
  405. package/src/theme/palettes.ts +53 -0
  406. package/src/theme/tokens.ts +113 -0
  407. package/src/theme/types.ts +27 -0
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+
3
+ import React, { memo } from 'react';
4
+ import { Text, View } from 'react-native';
5
+ import { createStyles } from '../theme/createStyles';
6
+ import { useAllowFontScaling, useColors, useLabels } from '../theme/UIProvider';
7
+ import { Icon } from '../icons/Icon';
8
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
+ const useStyles = createStyles(theme => ({
10
+ container: {
11
+ flex: 1,
12
+ justifyContent: 'center',
13
+ alignItems: 'center',
14
+ padding: theme.tokens.spacing.xxl - 4,
15
+ minHeight: 200
16
+ },
17
+ title: {
18
+ fontSize: theme.tokens.fontSize.lg,
19
+ fontWeight: theme.tokens.fontWeight.semibold,
20
+ color: theme.colors.textLight,
21
+ marginTop: theme.tokens.spacing.md - 2,
22
+ textAlign: 'center'
23
+ },
24
+ description: {
25
+ fontSize: theme.tokens.fontSize.md,
26
+ color: theme.colors.textLight,
27
+ marginTop: theme.tokens.spacing.xs + 1,
28
+ textAlign: 'center'
29
+ }
30
+ }));
31
+ export const EmptyState = /*#__PURE__*/memo(({
32
+ title,
33
+ description,
34
+ iconName = 'search',
35
+ icon,
36
+ style
37
+ }) => {
38
+ const colors = useColors();
39
+ const styles = useStyles();
40
+ const labels = useLabels();
41
+ const allowFontScaling = useAllowFontScaling();
42
+ const resolvedTitle = title ?? labels.noResultsTitle;
43
+ const resolvedDescription = description ?? labels.noResultsDescription;
44
+ return /*#__PURE__*/_jsxs(View, {
45
+ style: [styles.container, style],
46
+ accessible: true,
47
+ accessibilityRole: "text",
48
+ children: [icon ?? /*#__PURE__*/_jsx(Icon, {
49
+ name: iconName,
50
+ size: 48,
51
+ color: colors.textLight
52
+ }), /*#__PURE__*/_jsx(Text, {
53
+ allowFontScaling: allowFontScaling,
54
+ style: styles.title,
55
+ children: resolvedTitle
56
+ }), /*#__PURE__*/_jsx(Text, {
57
+ allowFontScaling: allowFontScaling,
58
+ style: styles.description,
59
+ children: resolvedDescription
60
+ })]
61
+ });
62
+ });
63
+ EmptyState.displayName = 'EmptyState';
64
+ //# sourceMappingURL=EmptyState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","memo","Text","View","createStyles","useAllowFontScaling","useColors","useLabels","Icon","jsx","_jsx","jsxs","_jsxs","useStyles","theme","container","flex","justifyContent","alignItems","padding","tokens","spacing","xxl","minHeight","title","fontSize","lg","fontWeight","semibold","color","colors","textLight","marginTop","md","textAlign","description","xs","EmptyState","iconName","icon","style","styles","labels","allowFontScaling","resolvedTitle","noResultsTitle","resolvedDescription","noResultsDescription","accessible","accessibilityRole","children","name","size","displayName"],"sourceRoot":"../../../src","sources":["atoms/EmptyState.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,IAAI,QAAQ,OAAO;AACnC,SAASC,IAAI,EAAEC,IAAI,QAAwB,cAAc;AACzD,SAASC,YAAY,QAAQ,uBAAuB;AACpD,SAASC,mBAAmB,EAAEC,SAAS,EAAEC,SAAS,QAAQ,qBAAqB;AAC/E,SAASC,IAAI,QAAQ,eAAe;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAWrC,MAAMC,SAAS,GAAGT,YAAY,CAAEU,KAAK,KAAM;EACzCC,SAAS,EAAE;IACTC,IAAI,EAAE,CAAC;IACPC,cAAc,EAAE,QAAQ;IACxBC,UAAU,EAAE,QAAQ;IACpBC,OAAO,EAAEL,KAAK,CAACM,MAAM,CAACC,OAAO,CAACC,GAAG,GAAG,CAAC;IACrCC,SAAS,EAAE;EACb,CAAC;EACDC,KAAK,EAAE;IACLC,QAAQ,EAAEX,KAAK,CAACM,MAAM,CAACK,QAAQ,CAACC,EAAE;IAClCC,UAAU,EAAEb,KAAK,CAACM,MAAM,CAACO,UAAU,CAACC,QAAQ;IAC5CC,KAAK,EAAEf,KAAK,CAACgB,MAAM,CAACC,SAAS;IAC7BC,SAAS,EAAElB,KAAK,CAACM,MAAM,CAACC,OAAO,CAACY,EAAE,GAAG,CAAC;IACtCC,SAAS,EAAE;EACb,CAAC;EACDC,WAAW,EAAE;IACXV,QAAQ,EAAEX,KAAK,CAACM,MAAM,CAACK,QAAQ,CAACQ,EAAE;IAClCJ,KAAK,EAAEf,KAAK,CAACgB,MAAM,CAACC,SAAS;IAC7BC,SAAS,EAAElB,KAAK,CAACM,MAAM,CAACC,OAAO,CAACe,EAAE,GAAG,CAAC;IACtCF,SAAS,EAAE;EACb;AACF,CAAC,CAAC,CAAC;AAEH,OAAO,MAAMG,UAAU,gBAAGpC,IAAI,CAC5B,CAAC;EAAEuB,KAAK;EAAEW,WAAW;EAAEG,QAAQ,GAAG,QAAQ;EAAEC,IAAI;EAAEC;AAAuB,CAAC,KAAK;EAC7E,MAAMV,MAAM,GAAGxB,SAAS,CAAC,CAAC;EAC1B,MAAMmC,MAAM,GAAG5B,SAAS,CAAC,CAAC;EAC1B,MAAM6B,MAAM,GAAGnC,SAAS,CAAC,CAAC;EAC1B,MAAMoC,gBAAgB,GAAGtC,mBAAmB,CAAC,CAAC;EAC9C,MAAMuC,aAAa,GAAGpB,KAAK,IAAIkB,MAAM,CAACG,cAAc;EACpD,MAAMC,mBAAmB,GAAGX,WAAW,IAAIO,MAAM,CAACK,oBAAoB;EACtE,oBACEnC,KAAA,CAACT,IAAI;IAACqC,KAAK,EAAE,CAACC,MAAM,CAAC1B,SAAS,EAAEyB,KAAK,CAAE;IAACQ,UAAU;IAACC,iBAAiB,EAAC,MAAM;IAAAC,QAAA,GACxEX,IAAI,iBAAI7B,IAAA,CAACF,IAAI;MAAC2C,IAAI,EAAEb,QAAS;MAACc,IAAI,EAAE,EAAG;MAACvB,KAAK,EAAEC,MAAM,CAACC;IAAU,CAAE,CAAC,eACpErB,IAAA,CAACR,IAAI;MAACyC,gBAAgB,EAAEA,gBAAiB;MAACH,KAAK,EAAEC,MAAM,CAACjB,KAAM;MAAA0B,QAAA,EAC3DN;IAAa,CACV,CAAC,eACPlC,IAAA,CAACR,IAAI;MAACyC,gBAAgB,EAAEA,gBAAiB;MAACH,KAAK,EAAEC,MAAM,CAACN,WAAY;MAAAe,QAAA,EACjEJ;IAAmB,CAChB,CAAC;EAAA,CACH,CAAC;AAEX,CACF,CAAC;AACDT,UAAU,CAACgB,WAAW,GAAG,YAAY","ignoreList":[]}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+
3
+ import React, { memo } from 'react';
4
+ import { PressableScale } from './PressableScale';
5
+ import { Icon } from '../icons/Icon';
6
+ import { createStyles } from '../theme/createStyles';
7
+ import { useColors } from '../theme/UIProvider';
8
+ import { jsx as _jsx } from "react/jsx-runtime";
9
+ const useStyles = createStyles(theme => ({
10
+ fab: {
11
+ position: 'absolute',
12
+ justifyContent: 'center',
13
+ alignItems: 'center',
14
+ ...theme.tokens.shadow.lg
15
+ }
16
+ }));
17
+
18
+ /**
19
+ * Fab
20
+ * Botón flotante circular. `bottom`/`right` en vez del `tabBarHeight`
21
+ * obligatorio de la versión original — el consumidor decide su propio
22
+ * offset (con o sin tab bar).
23
+ */
24
+ export const Fab = /*#__PURE__*/memo(({
25
+ onPress,
26
+ iconName = 'plus',
27
+ icon,
28
+ size = 60,
29
+ bottom = 20,
30
+ right = 20,
31
+ color,
32
+ style,
33
+ accessibilityLabel
34
+ }) => {
35
+ const styles = useStyles();
36
+ const colors = useColors();
37
+ return /*#__PURE__*/_jsx(PressableScale, {
38
+ onPress: onPress,
39
+ style: [styles.fab, {
40
+ width: size,
41
+ height: size,
42
+ borderRadius: size / 2,
43
+ bottom,
44
+ right,
45
+ backgroundColor: color ?? colors.primary
46
+ }, style],
47
+ accessibilityRole: "button",
48
+ accessibilityLabel: accessibilityLabel,
49
+ children: icon ?? /*#__PURE__*/_jsx(Icon, {
50
+ name: iconName,
51
+ size: size * 0.5,
52
+ color: colors.white
53
+ })
54
+ });
55
+ });
56
+ Fab.displayName = 'Fab';
57
+ //# sourceMappingURL=Fab.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","memo","PressableScale","Icon","createStyles","useColors","jsx","_jsx","useStyles","theme","fab","position","justifyContent","alignItems","tokens","shadow","lg","Fab","onPress","iconName","icon","size","bottom","right","color","style","accessibilityLabel","styles","colors","width","height","borderRadius","backgroundColor","primary","accessibilityRole","children","name","white","displayName"],"sourceRoot":"../../../src","sources":["atoms/Fab.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,IAAI,QAAQ,OAAO;AAEnC,SAASC,cAAc,QAAQ,kBAAkB;AACjD,SAASC,IAAI,QAAQ,eAAe;AAEpC,SAASC,YAAY,QAAQ,uBAAuB;AACpD,SAASC,SAAS,QAAQ,qBAAqB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAchD,MAAMC,SAAS,GAAGJ,YAAY,CAAEK,KAAK,KAAM;EACzCC,GAAG,EAAE;IACHC,QAAQ,EAAE,UAAU;IACpBC,cAAc,EAAE,QAAQ;IACxBC,UAAU,EAAE,QAAQ;IACpB,GAAGJ,KAAK,CAACK,MAAM,CAACC,MAAM,CAACC;EACzB;AACF,CAAC,CAAC,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,GAAG,gBAAGhB,IAAI,CACrB,CAAC;EAAEiB,OAAO;EAAEC,QAAQ,GAAG,MAAM;EAAEC,IAAI;EAAEC,IAAI,GAAG,EAAE;EAAEC,MAAM,GAAG,EAAE;EAAEC,KAAK,GAAG,EAAE;EAAEC,KAAK;EAAEC,KAAK;EAAEC;AAA6B,CAAC,KAAK;EACxH,MAAMC,MAAM,GAAGnB,SAAS,CAAC,CAAC;EAC1B,MAAMoB,MAAM,GAAGvB,SAAS,CAAC,CAAC;EAC1B,oBACEE,IAAA,CAACL,cAAc;IACbgB,OAAO,EAAEA,OAAQ;IACjBO,KAAK,EAAE,CACLE,MAAM,CAACjB,GAAG,EACV;MACEmB,KAAK,EAAER,IAAI;MACXS,MAAM,EAAET,IAAI;MACZU,YAAY,EAAEV,IAAI,GAAG,CAAC;MACtBC,MAAM;MACNC,KAAK;MACLS,eAAe,EAAER,KAAK,IAAII,MAAM,CAACK;IACnC,CAAC,EACDR,KAAK,CACL;IACFS,iBAAiB,EAAC,QAAQ;IAC1BR,kBAAkB,EAAEA,kBAAmB;IAAAS,QAAA,EAEtCf,IAAI,iBAAIb,IAAA,CAACJ,IAAI;MAACiC,IAAI,EAAEjB,QAAS;MAACE,IAAI,EAAEA,IAAI,GAAG,GAAI;MAACG,KAAK,EAAEI,MAAM,CAACS;IAAM,CAAE;EAAC,CAC1D,CAAC;AAErB,CACF,CAAC;AACDpB,GAAG,CAACqB,WAAW,GAAG,KAAK","ignoreList":[]}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+
3
+ import React, { memo } from 'react';
4
+ import { PressableScale } from './PressableScale';
5
+ import { Icon } from '../icons/Icon';
6
+ import { createStyles } from '../theme/createStyles';
7
+ import { jsx as _jsx } from "react/jsx-runtime";
8
+ const useStyles = createStyles(theme => ({
9
+ hitArea: {
10
+ padding: theme.tokens.spacing.sm,
11
+ alignItems: 'center',
12
+ justifyContent: 'center'
13
+ }
14
+ }));
15
+
16
+ /**
17
+ * IconButton
18
+ * Botón de solo ícono con área táctil mínima de 44x44 garantizada por el
19
+ * padding (icon 24 + padding 8*2 = 40; sube a 44 con size>=24 default RN).
20
+ * `accessibilityLabel` es obligatorio: sin texto visible, es la única forma
21
+ * de que un lector de pantalla anuncie qué hace el botón.
22
+ */
23
+ export const IconButton = /*#__PURE__*/memo(({
24
+ iconName,
25
+ icon,
26
+ onPress,
27
+ size = 24,
28
+ color,
29
+ disabled,
30
+ style,
31
+ accessibilityLabel,
32
+ testID
33
+ }) => {
34
+ const styles = useStyles();
35
+ return /*#__PURE__*/_jsx(PressableScale, {
36
+ onPress: onPress,
37
+ disabled: disabled,
38
+ style: [styles.hitArea, {
39
+ opacity: disabled ? 0.5 : 1
40
+ }, style],
41
+ accessibilityRole: "button",
42
+ accessibilityLabel: accessibilityLabel,
43
+ accessibilityState: {
44
+ disabled: !!disabled
45
+ },
46
+ testID: testID,
47
+ children: icon ?? (iconName && /*#__PURE__*/_jsx(Icon, {
48
+ name: iconName,
49
+ size: size,
50
+ color: color
51
+ }))
52
+ });
53
+ });
54
+ IconButton.displayName = 'IconButton';
55
+ //# sourceMappingURL=IconButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","memo","PressableScale","Icon","createStyles","jsx","_jsx","useStyles","theme","hitArea","padding","tokens","spacing","sm","alignItems","justifyContent","IconButton","iconName","icon","onPress","size","color","disabled","style","accessibilityLabel","testID","styles","opacity","accessibilityRole","accessibilityState","children","name","displayName"],"sourceRoot":"../../../src","sources":["atoms/IconButton.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,IAAI,QAAQ,OAAO;AAEnC,SAASC,cAAc,QAAQ,kBAAkB;AACjD,SAASC,IAAI,QAAQ,eAAe;AAEpC,SAASC,YAAY,QAAQ,uBAAuB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAcrD,MAAMC,SAAS,GAAGH,YAAY,CAAEI,KAAK,KAAM;EACzCC,OAAO,EAAE;IACPC,OAAO,EAAEF,KAAK,CAACG,MAAM,CAACC,OAAO,CAACC,EAAE;IAChCC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EAClB;AACF,CAAC,CAAC,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,UAAU,gBAAGf,IAAI,CAC5B,CAAC;EAAEgB,QAAQ;EAAEC,IAAI;EAAEC,OAAO;EAAEC,IAAI,GAAG,EAAE;EAAEC,KAAK;EAAEC,QAAQ;EAAEC,KAAK;EAAEC,kBAAkB;EAAEC;AAAwB,CAAC,KAAK;EAC/G,MAAMC,MAAM,GAAGnB,SAAS,CAAC,CAAC;EAC1B,oBACED,IAAA,CAACJ,cAAc;IACbiB,OAAO,EAAEA,OAAQ;IACjBG,QAAQ,EAAEA,QAAS;IACnBC,KAAK,EAAE,CAACG,MAAM,CAACjB,OAAO,EAAE;MAAEkB,OAAO,EAAEL,QAAQ,GAAG,GAAG,GAAG;IAAE,CAAC,EAAEC,KAAK,CAAE;IAChEK,iBAAiB,EAAC,QAAQ;IAC1BJ,kBAAkB,EAAEA,kBAAmB;IACvCK,kBAAkB,EAAE;MAAEP,QAAQ,EAAE,CAAC,CAACA;IAAS,CAAE;IAC7CG,MAAM,EAAEA,MAAO;IAAAK,QAAA,EAEdZ,IAAI,KAAKD,QAAQ,iBAAIX,IAAA,CAACH,IAAI;MAAC4B,IAAI,EAAEd,QAAS;MAACG,IAAI,EAAEA,IAAK;MAACC,KAAK,EAAEA;IAAM,CAAE,CAAC;EAAC,CAC3D,CAAC;AAErB,CACF,CAAC;AACDL,UAAU,CAACgB,WAAW,GAAG,YAAY","ignoreList":[]}
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+
3
+ import React, { memo, useCallback, useEffect, useState } from 'react';
4
+ import { Image as RNImage, Platform, StyleSheet, View } from 'react-native';
5
+ import { createStyles } from '../theme/createStyles';
6
+ import { Spinner } from './Spinner';
7
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
8
+ const useStyles = createStyles(theme => ({
9
+ container: {
10
+ overflow: 'hidden',
11
+ backgroundColor: theme.colors.border + '30'
12
+ },
13
+ overlay: {
14
+ alignItems: 'center',
15
+ justifyContent: 'center'
16
+ },
17
+ fallback: {
18
+ flex: 1,
19
+ backgroundColor: theme.colors.border + '30'
20
+ }
21
+ }));
22
+ function sourceUri(source) {
23
+ return typeof source === 'object' && source !== null && 'uri' in source ? source.uri : undefined;
24
+ }
25
+
26
+ /**
27
+ * Image
28
+ * Wrapper cero-dependencias sobre <Image> de RN: agrega estado de carga y
29
+ * error (con los mismos placeholders que el resto de la librería), y expone
30
+ * `priority="high"` para adelantar la descarga vía Image.prefetch(). El
31
+ * cache real (disco/memoria) lo maneja el motor de imágenes nativo de RN —
32
+ * esto no lo reimplementa, solo no lo deja apagado por accidente: en iOS
33
+ * fuerza `cache="force-cache"` (usa el disco aunque el header HTTP no lo
34
+ * pida); en Android el cache de disco de la imagen nativa ya está siempre
35
+ * activo, no hay knob equivalente que tocar.
36
+ */
37
+ export const Image = /*#__PURE__*/memo(({
38
+ source,
39
+ width,
40
+ height,
41
+ resizeMode = 'cover',
42
+ radius = 0,
43
+ loading = true,
44
+ fallback,
45
+ priority = 'normal',
46
+ style,
47
+ onLoadEnd,
48
+ onError,
49
+ testID
50
+ }) => {
51
+ const styles = useStyles();
52
+ const [status, setStatus] = useState('loading');
53
+ const uri = sourceUri(source);
54
+ useEffect(() => {
55
+ // Resetea el estado si cambia la imagen (misma instancia de Image,
56
+ // source distinto: p.ej. avatar de un usuario a otro en la misma fila).
57
+ setStatus('loading');
58
+ }, [uri ?? source]);
59
+ useEffect(() => {
60
+ if (priority === 'high' && uri) {
61
+ RNImage.prefetch(uri).catch(() => {});
62
+ }
63
+ }, [priority, uri]);
64
+ const handleError = useCallback(e => {
65
+ setStatus('error');
66
+ onError?.(e);
67
+ }, [onError]);
68
+ const handleLoadEnd = useCallback(() => {
69
+ setStatus('loaded');
70
+ onLoadEnd?.();
71
+ }, [onLoadEnd]);
72
+ return /*#__PURE__*/_jsxs(View, {
73
+ style: [styles.container, {
74
+ width,
75
+ height,
76
+ borderRadius: radius
77
+ }, style],
78
+ testID: testID,
79
+ children: [status !== 'error' && /*#__PURE__*/_jsx(RNImage, {
80
+ source: source,
81
+ resizeMode: resizeMode,
82
+ style: StyleSheet.absoluteFill,
83
+ fadeDuration: Platform.OS === 'android' ? 150 : undefined,
84
+ ...(Platform.OS === 'ios' ? {
85
+ cache: 'force-cache'
86
+ } : null),
87
+ onLoadEnd: handleLoadEnd,
88
+ onError: handleError
89
+ }), status === 'loading' && loading !== false && /*#__PURE__*/_jsx(View, {
90
+ style: [StyleSheet.absoluteFill, styles.overlay],
91
+ children: loading === true ? /*#__PURE__*/_jsx(Spinner, {
92
+ size: "small",
93
+ fullscreen: false
94
+ }) : loading
95
+ }), status === 'error' && (fallback ?? /*#__PURE__*/_jsx(View, {
96
+ style: styles.fallback
97
+ }))]
98
+ });
99
+ });
100
+ Image.displayName = 'Image';
101
+
102
+ /**
103
+ * Precarga una URL antes de montar el componente (p.ej. al recibir la
104
+ * respuesta de un listado, antes de navegar al detalle). Re-exporta
105
+ * Image.prefetch de RN — no hay nada zero-dep que agregarle encima.
106
+ */
107
+ export const prefetchImage = RNImage.prefetch;
108
+ //# sourceMappingURL=Image.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","memo","useCallback","useEffect","useState","Image","RNImage","Platform","StyleSheet","View","createStyles","Spinner","jsx","_jsx","jsxs","_jsxs","useStyles","theme","container","overflow","backgroundColor","colors","border","overlay","alignItems","justifyContent","fallback","flex","sourceUri","source","uri","undefined","width","height","resizeMode","radius","loading","priority","style","onLoadEnd","onError","testID","styles","status","setStatus","prefetch","catch","handleError","e","handleLoadEnd","borderRadius","children","absoluteFill","fadeDuration","OS","cache","size","fullscreen","displayName","prefetchImage"],"sourceRoot":"../../../src","sources":["atoms/Image.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,168 @@
1
+ "use strict";
2
+
3
+ import React, { memo, useRef, useState } from 'react';
4
+ import { ActivityIndicator, Animated, Text, TextInput, TouchableOpacity, View } from 'react-native';
5
+ import { createStyles } from '../theme/createStyles';
6
+ import { useAllowFontScaling, useColors } from '../theme/UIProvider';
7
+ import { Icon } from '../icons/Icon';
8
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
+ const useStyles = createStyles(theme => ({
10
+ container: {
11
+ marginBottom: theme.tokens.spacing.lg,
12
+ width: '100%'
13
+ },
14
+ label: {
15
+ marginBottom: theme.tokens.spacing.sm,
16
+ fontSize: theme.tokens.fontSize.md,
17
+ fontWeight: theme.tokens.fontWeight.medium,
18
+ color: theme.colors.text
19
+ },
20
+ required: {
21
+ color: theme.colors.error
22
+ },
23
+ inputWrapper: {
24
+ flexDirection: 'row',
25
+ alignItems: 'center',
26
+ backgroundColor: theme.colors.inputBackground,
27
+ borderRadius: theme.tokens.radius.lg,
28
+ borderWidth: 2,
29
+ minHeight: 50
30
+ },
31
+ input: {
32
+ flex: 1,
33
+ paddingVertical: theme.tokens.spacing.md,
34
+ paddingHorizontal: theme.tokens.spacing.lg,
35
+ fontSize: theme.tokens.fontSize.lg,
36
+ color: theme.colors.text
37
+ },
38
+ leftIcon: {
39
+ marginLeft: theme.tokens.spacing.lg,
40
+ marginRight: -theme.tokens.spacing.xs
41
+ },
42
+ rightIcon: {
43
+ padding: theme.tokens.spacing.sm + 2,
44
+ marginRight: theme.tokens.spacing.xs
45
+ },
46
+ errorText: {
47
+ marginTop: theme.tokens.spacing.xs,
48
+ fontSize: theme.tokens.fontSize.sm,
49
+ color: theme.colors.error
50
+ }
51
+ }));
52
+
53
+ /**
54
+ * Input
55
+ * El borde anima color entre border/primary/error con Animated (no
56
+ * useNativeDriver: los navegadores de color en RN sin Fabric solo son
57
+ * confiables en el hilo de JS; el costo es despreciable, se anima un borde).
58
+ */
59
+ export const Input = /*#__PURE__*/memo(({
60
+ label,
61
+ required = false,
62
+ error,
63
+ containerStyle,
64
+ leftIconName,
65
+ rightIconName,
66
+ onRightIconPress,
67
+ isPassword = false,
68
+ isLoading = false,
69
+ style,
70
+ onFocus,
71
+ onBlur,
72
+ testID,
73
+ ...props
74
+ }) => {
75
+ const colors = useColors();
76
+ const styles = useStyles();
77
+ const allowFontScaling = useAllowFontScaling();
78
+ const [isFocused, setIsFocused] = useState(false);
79
+ const [showPassword, setShowPassword] = useState(false);
80
+ const focusProgress = useRef(new Animated.Value(0)).current;
81
+ const handleFocus = e => {
82
+ setIsFocused(true);
83
+ Animated.timing(focusProgress, {
84
+ toValue: 1,
85
+ duration: 200,
86
+ useNativeDriver: false
87
+ }).start();
88
+ onFocus?.(e);
89
+ };
90
+ const handleBlur = e => {
91
+ setIsFocused(false);
92
+ Animated.timing(focusProgress, {
93
+ toValue: 0,
94
+ duration: 200,
95
+ useNativeDriver: false
96
+ }).start();
97
+ onBlur?.(e);
98
+ };
99
+ const borderColor = error ? colors.error : focusProgress.interpolate({
100
+ outputRange: [colors.border, colors.primary],
101
+ inputRange: [0, 1]
102
+ });
103
+ return /*#__PURE__*/_jsxs(View, {
104
+ style: [styles.container, containerStyle],
105
+ testID: testID,
106
+ children: [label && /*#__PURE__*/_jsxs(Text, {
107
+ allowFontScaling: allowFontScaling,
108
+ style: styles.label,
109
+ children: [label, required && /*#__PURE__*/_jsx(Text, {
110
+ style: styles.required,
111
+ children: " *"
112
+ })]
113
+ }), /*#__PURE__*/_jsxs(Animated.View, {
114
+ style: [styles.inputWrapper, {
115
+ borderColor
116
+ }],
117
+ children: [leftIconName && /*#__PURE__*/_jsx(Icon, {
118
+ name: leftIconName,
119
+ size: 20,
120
+ color: colors.textLight,
121
+ style: styles.leftIcon
122
+ }), /*#__PURE__*/_jsx(TextInput, {
123
+ style: [styles.input, style],
124
+ placeholderTextColor: colors.textLight,
125
+ onFocus: handleFocus,
126
+ onBlur: handleBlur,
127
+ secureTextEntry: isPassword && !showPassword,
128
+ allowFontScaling: allowFontScaling,
129
+ textAlignVertical: "center",
130
+ accessibilityLabel: label ?? props.placeholder,
131
+ ...props
132
+ }), isLoading ? /*#__PURE__*/_jsx(View, {
133
+ style: styles.rightIcon,
134
+ children: /*#__PURE__*/_jsx(ActivityIndicator, {
135
+ size: "small",
136
+ color: colors.primary
137
+ })
138
+ }) : isPassword ? /*#__PURE__*/_jsx(TouchableOpacity, {
139
+ onPress: () => setShowPassword(v => !v),
140
+ style: styles.rightIcon,
141
+ accessibilityRole: "button",
142
+ accessibilityLabel: showPassword ? 'Hide password' : 'Show password',
143
+ children: /*#__PURE__*/_jsx(Icon, {
144
+ name: showPassword ? 'eye-off' : 'eye',
145
+ size: 20,
146
+ color: colors.textLight
147
+ })
148
+ }) : rightIconName ? /*#__PURE__*/_jsx(TouchableOpacity, {
149
+ onPress: onRightIconPress,
150
+ style: styles.rightIcon,
151
+ disabled: !onRightIconPress,
152
+ accessibilityRole: "button",
153
+ accessibilityLabel: "Clear",
154
+ children: /*#__PURE__*/_jsx(Icon, {
155
+ name: rightIconName,
156
+ size: 20,
157
+ color: colors.textLight
158
+ })
159
+ }) : null]
160
+ }), !!error && /*#__PURE__*/_jsx(Text, {
161
+ allowFontScaling: allowFontScaling,
162
+ style: styles.errorText,
163
+ children: error
164
+ })]
165
+ });
166
+ });
167
+ Input.displayName = 'Input';
168
+ //# sourceMappingURL=Input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","memo","useRef","useState","ActivityIndicator","Animated","Text","TextInput","TouchableOpacity","View","createStyles","useAllowFontScaling","useColors","Icon","jsx","_jsx","jsxs","_jsxs","useStyles","theme","container","marginBottom","tokens","spacing","lg","width","label","sm","fontSize","md","fontWeight","medium","color","colors","text","required","error","inputWrapper","flexDirection","alignItems","backgroundColor","inputBackground","borderRadius","radius","borderWidth","minHeight","input","flex","paddingVertical","paddingHorizontal","leftIcon","marginLeft","marginRight","xs","rightIcon","padding","errorText","marginTop","Input","containerStyle","leftIconName","rightIconName","onRightIconPress","isPassword","isLoading","style","onFocus","onBlur","testID","props","styles","allowFontScaling","isFocused","setIsFocused","showPassword","setShowPassword","focusProgress","Value","current","handleFocus","e","timing","toValue","duration","useNativeDriver","start","handleBlur","borderColor","interpolate","outputRange","border","primary","inputRange","children","name","size","textLight","placeholderTextColor","secureTextEntry","textAlignVertical","accessibilityLabel","placeholder","onPress","v","accessibilityRole","disabled","displayName"],"sourceRoot":"../../../src","sources":["atoms/Input.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+
3
+ import React, { memo } from 'react';
4
+ import { Text, View } from 'react-native';
5
+ import { createStyles } from '../theme/createStyles';
6
+ import { useAllowFontScaling } from '../theme/UIProvider';
7
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
8
+ const useStyles = createStyles(theme => ({
9
+ row: {
10
+ flexDirection: 'row',
11
+ justifyContent: 'space-between',
12
+ alignItems: 'center'
13
+ },
14
+ label: {
15
+ fontSize: theme.tokens.fontSize.sm,
16
+ fontWeight: theme.tokens.fontWeight.semibold,
17
+ color: theme.colors.textLight
18
+ },
19
+ value: {
20
+ fontSize: theme.tokens.fontSize.sm,
21
+ textAlign: 'right',
22
+ color: theme.colors.text
23
+ }
24
+ }));
25
+
26
+ /**
27
+ * KeyValueRow
28
+ * Fila label (izquierda) / value (derecha). Si label/value son string o
29
+ * number, se renderizan con el estilo default; si ya vienen envueltos en un
30
+ * componente de texto propio, se respetan tal cual.
31
+ */
32
+ export const KeyValueRow = /*#__PURE__*/memo(({
33
+ label,
34
+ value,
35
+ style,
36
+ labelStyle,
37
+ valueStyle
38
+ }) => {
39
+ const styles = useStyles();
40
+ const allowFontScaling = useAllowFontScaling();
41
+ return /*#__PURE__*/_jsxs(View, {
42
+ style: [styles.row, style],
43
+ children: [typeof label === 'string' || typeof label === 'number' ? /*#__PURE__*/_jsx(Text, {
44
+ allowFontScaling: allowFontScaling,
45
+ style: [styles.label, labelStyle],
46
+ children: label
47
+ }) : label, typeof value === 'string' || typeof value === 'number' ? /*#__PURE__*/_jsx(Text, {
48
+ allowFontScaling: allowFontScaling,
49
+ style: [styles.value, valueStyle],
50
+ children: value
51
+ }) : value]
52
+ });
53
+ });
54
+ KeyValueRow.displayName = 'KeyValueRow';
55
+ //# sourceMappingURL=KeyValueRow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","memo","Text","View","createStyles","useAllowFontScaling","jsx","_jsx","jsxs","_jsxs","useStyles","theme","row","flexDirection","justifyContent","alignItems","label","fontSize","tokens","sm","fontWeight","semibold","color","colors","textLight","value","textAlign","text","KeyValueRow","style","labelStyle","valueStyle","styles","allowFontScaling","children","displayName"],"sourceRoot":"../../../src","sources":["atoms/KeyValueRow.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,IAAI,QAAQ,OAAO;AACnC,SAASC,IAAI,EAAEC,IAAI,QAAwD,cAAc;AACzF,SAASC,YAAY,QAAQ,uBAAuB;AACpD,SAASC,mBAAmB,QAAQ,qBAAqB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAU1D,MAAMC,SAAS,GAAGN,YAAY,CAAEO,KAAK,KAAM;EACzCC,GAAG,EAAE;IAAEC,aAAa,EAAE,KAAK;IAAEC,cAAc,EAAE,eAAe;IAAEC,UAAU,EAAE;EAAS,CAAC;EACpFC,KAAK,EAAE;IAAEC,QAAQ,EAAEN,KAAK,CAACO,MAAM,CAACD,QAAQ,CAACE,EAAE;IAAEC,UAAU,EAAET,KAAK,CAACO,MAAM,CAACE,UAAU,CAACC,QAAQ;IAAEC,KAAK,EAAEX,KAAK,CAACY,MAAM,CAACC;EAAU,CAAC;EAC1HC,KAAK,EAAE;IAAER,QAAQ,EAAEN,KAAK,CAACO,MAAM,CAACD,QAAQ,CAACE,EAAE;IAAEO,SAAS,EAAE,OAAO;IAAEJ,KAAK,EAAEX,KAAK,CAACY,MAAM,CAACI;EAAK;AAC5F,CAAC,CAAC,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,WAAW,gBAAG3B,IAAI,CAAC,CAAC;EAAEe,KAAK;EAAES,KAAK;EAAEI,KAAK;EAAEC,UAAU;EAAEC;AAA6B,CAAC,KAAK;EACrG,MAAMC,MAAM,GAAGtB,SAAS,CAAC,CAAC;EAC1B,MAAMuB,gBAAgB,GAAG5B,mBAAmB,CAAC,CAAC;EAC9C,oBACEI,KAAA,CAACN,IAAI;IAAC0B,KAAK,EAAE,CAACG,MAAM,CAACpB,GAAG,EAAEiB,KAAK,CAAE;IAAAK,QAAA,GAC9B,OAAOlB,KAAK,KAAK,QAAQ,IAAI,OAAOA,KAAK,KAAK,QAAQ,gBACrDT,IAAA,CAACL,IAAI;MAAC+B,gBAAgB,EAAEA,gBAAiB;MAACJ,KAAK,EAAE,CAACG,MAAM,CAAChB,KAAK,EAAEc,UAAU,CAAE;MAAAI,QAAA,EACzElB;IAAK,CACF,CAAC,GAEPA,KACD,EACA,OAAOS,KAAK,KAAK,QAAQ,IAAI,OAAOA,KAAK,KAAK,QAAQ,gBACrDlB,IAAA,CAACL,IAAI;MAAC+B,gBAAgB,EAAEA,gBAAiB;MAACJ,KAAK,EAAE,CAACG,MAAM,CAACP,KAAK,EAAEM,UAAU,CAAE;MAAAG,QAAA,EACzET;IAAK,CACF,CAAC,GAEPA,KACD;EAAA,CACG,CAAC;AAEX,CAAC,CAAC;AACFG,WAAW,CAACO,WAAW,GAAG,aAAa","ignoreList":[]}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+
3
+ import React, { memo, useRef } from 'react';
4
+ import { Animated, Pressable } from 'react-native';
5
+ import { jsx as _jsx } from "react/jsx-runtime";
6
+ /**
7
+ * PressableScale
8
+ * Feedback táctil de "achicarse" al presionar, con Animated.spring de RN
9
+ * (useNativeDriver: true — corre en el hilo nativo, sin coste de JS por frame).
10
+ * No depende de reanimated: la librería entera es cero-dependencias.
11
+ */
12
+ export const PressableScale = /*#__PURE__*/memo(({
13
+ scaleTo = 0.96,
14
+ style,
15
+ children,
16
+ onPressIn,
17
+ onPressOut,
18
+ disabled,
19
+ ...props
20
+ }) => {
21
+ const scale = useRef(new Animated.Value(1)).current;
22
+ const animateTo = value => {
23
+ Animated.spring(scale, {
24
+ toValue: value,
25
+ useNativeDriver: true,
26
+ speed: 50,
27
+ bounciness: 6
28
+ }).start();
29
+ };
30
+ const handlePressIn = e => {
31
+ if (!disabled) animateTo(scaleTo);
32
+ onPressIn?.(e);
33
+ };
34
+ const handlePressOut = e => {
35
+ if (!disabled) animateTo(1);
36
+ onPressOut?.(e);
37
+ };
38
+ return /*#__PURE__*/_jsx(Pressable, {
39
+ ...props,
40
+ disabled: disabled,
41
+ onPressIn: handlePressIn,
42
+ onPressOut: handlePressOut,
43
+ style: style,
44
+ children: /*#__PURE__*/_jsx(Animated.View, {
45
+ style: {
46
+ transform: [{
47
+ scale
48
+ }]
49
+ },
50
+ children: children
51
+ })
52
+ });
53
+ });
54
+ PressableScale.displayName = 'PressableScale';
55
+ //# sourceMappingURL=PressableScale.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","memo","useRef","Animated","Pressable","jsx","_jsx","PressableScale","scaleTo","style","children","onPressIn","onPressOut","disabled","props","scale","Value","current","animateTo","value","spring","toValue","useNativeDriver","speed","bounciness","start","handlePressIn","e","handlePressOut","View","transform","displayName"],"sourceRoot":"../../../src","sources":["atoms/PressableScale.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,IAAI,EAAEC,MAAM,QAAQ,OAAO;AAC3C,SAASC,QAAQ,EAAEC,SAAS,QAAyD,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAQpG;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,cAAc,gBAAGN,IAAI,CAChC,CAAC;EAAEO,OAAO,GAAG,IAAI;EAAEC,KAAK;EAAEC,QAAQ;EAAEC,SAAS;EAAEC,UAAU;EAAEC,QAAQ;EAAE,GAAGC;AAA2B,CAAC,KAAK;EACvG,MAAMC,KAAK,GAAGb,MAAM,CAAC,IAAIC,QAAQ,CAACa,KAAK,CAAC,CAAC,CAAC,CAAC,CAACC,OAAO;EAEnD,MAAMC,SAAS,GAAIC,KAAa,IAAK;IACnChB,QAAQ,CAACiB,MAAM,CAACL,KAAK,EAAE;MACrBM,OAAO,EAAEF,KAAK;MACdG,eAAe,EAAE,IAAI;MACrBC,KAAK,EAAE,EAAE;MACTC,UAAU,EAAE;IACd,CAAC,CAAC,CAACC,KAAK,CAAC,CAAC;EACZ,CAAC;EAED,MAAMC,aAAa,GAAIC,CAAwB,IAAK;IAClD,IAAI,CAACd,QAAQ,EAAEK,SAAS,CAACV,OAAO,CAAC;IACjCG,SAAS,GAAGgB,CAAC,CAAC;EAChB,CAAC;EAED,MAAMC,cAAc,GAAID,CAAwB,IAAK;IACnD,IAAI,CAACd,QAAQ,EAAEK,SAAS,CAAC,CAAC,CAAC;IAC3BN,UAAU,GAAGe,CAAC,CAAC;EACjB,CAAC;EAED,oBACErB,IAAA,CAACF,SAAS;IAAA,GACJU,KAAK;IACTD,QAAQ,EAAEA,QAAS;IACnBF,SAAS,EAAEe,aAAc;IACzBd,UAAU,EAAEgB,cAAe;IAC3BnB,KAAK,EAAEA,KAAM;IAAAC,QAAA,eAEbJ,IAAA,CAACH,QAAQ,CAAC0B,IAAI;MAACpB,KAAK,EAAE;QAAEqB,SAAS,EAAE,CAAC;UAAEf;QAAM,CAAC;MAAE,CAAE;MAAAL,QAAA,EAAEA;IAAQ,CAAgB;EAAC,CACnE,CAAC;AAEhB,CACF,CAAC;AACDH,cAAc,CAACwB,WAAW,GAAG,gBAAgB","ignoreList":[]}