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,15 @@
1
+ export { Stepper } from './Stepper';
2
+ export type { StepperProps } from './Stepper';
3
+ export { OptionCard } from './OptionCard';
4
+ export type { OptionCardProps } from './OptionCard';
5
+ export { InfoRow } from './InfoRow';
6
+ export type { InfoRowProps } from './InfoRow';
7
+ export { FormActions } from './FormActions';
8
+ export type { FormActionsProps } from './FormActions';
9
+ export { AvatarHeader } from './AvatarHeader';
10
+ export type { AvatarHeaderProps } from './AvatarHeader';
11
+ export { ThemeToggle } from './ThemeToggle';
12
+ export type { ThemeToggleProps } from './ThemeToggle';
13
+ export { Steps } from './Steps';
14
+ export type { StepsProps, StepItem, StepStatus } from './Steps';
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecules/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,29 @@
1
+ import React from 'react';
2
+ import { type ButtonVariant } from '../atoms/Button';
3
+ export type AlertType = 'success' | 'error' | 'warning' | 'info' | 'question';
4
+ export interface AlertButton {
5
+ text: string;
6
+ onPress?: () => void;
7
+ style?: 'cancel' | 'default' | 'destructive';
8
+ variant?: ButtonVariant;
9
+ }
10
+ export interface AlertProps {
11
+ visible: boolean;
12
+ title: string;
13
+ message?: string;
14
+ type?: AlertType;
15
+ onClose?: () => void;
16
+ buttons?: AlertButton[];
17
+ confirmText?: string;
18
+ cancelText?: string;
19
+ onConfirm?: () => void;
20
+ onCancel?: () => void;
21
+ inline?: boolean;
22
+ }
23
+ /**
24
+ * Alert
25
+ * Componente declarativo de diálogo. Para uso imperativo (mostrar desde
26
+ * un handler sin levantar estado propio), usar AlertProvider + useAlert().
27
+ */
28
+ export declare const Alert: React.MemoExoticComponent<(props: AlertProps) => React.JSX.Element | null>;
29
+ //# sourceMappingURL=Alert.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Alert.d.ts","sourceRoot":"","sources":["../../../src/organisms/Alert.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAe,MAAM,OAAO,CAAC;AAIpC,OAAO,EAAU,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAI7D,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,UAAU,CAAC;AAE9E,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,aAAa,CAAC;IAC7C,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAiDD;;;;GAIG;AACH,eAAO,MAAM,KAAK,oCAAgB,UAAU,8BA6E1C,CAAC"}
@@ -0,0 +1,32 @@
1
+ import React from 'react';
2
+ import { type AlertType } from './Alert';
3
+ export interface AlertOptions {
4
+ title: string;
5
+ message?: string;
6
+ type?: AlertType;
7
+ confirmText?: string;
8
+ cancelText?: string;
9
+ }
10
+ export interface ConfirmOptions extends AlertOptions {
11
+ /** Botón de confirmar en rojo/destructivo (para "eliminar", etc). */
12
+ destructive?: boolean;
13
+ }
14
+ interface AlertContextValue {
15
+ /** Muestra un alert de un solo botón. Resuelve cuando se cierra. */
16
+ alert: (options: AlertOptions) => Promise<void>;
17
+ /** Muestra confirmar/cancelar. Resuelve true si se confirmó, false si se canceló. */
18
+ confirm: (options: ConfirmOptions) => Promise<boolean>;
19
+ hide: () => void;
20
+ }
21
+ /**
22
+ * AlertProvider
23
+ * Monta un único <Alert> controlado imperativamente. Colocar una vez cerca
24
+ * de la raíz (dentro de UIProvider). Los handlers async pueden hacer
25
+ * `const ok = await confirm({ title: 'Eliminar', destructive: true })`.
26
+ */
27
+ export declare function AlertProvider({ children }: {
28
+ children: React.ReactNode;
29
+ }): React.JSX.Element;
30
+ export declare function useAlert(): AlertContextValue;
31
+ export {};
32
+ //# sourceMappingURL=AlertProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AlertProvider.d.ts","sourceRoot":"","sources":["../../../src/organisms/AlertProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4E,MAAM,OAAO,CAAC;AACjG,OAAO,EAA2B,KAAK,SAAS,EAAE,MAAM,SAAS,CAAC;AAElE,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAe,SAAQ,YAAY;IAClD,qEAAqE;IACrE,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,UAAU,iBAAiB;IACzB,oEAAoE;IACpE,KAAK,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,qFAAqF;IACrF,OAAO,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACvD,IAAI,EAAE,MAAM,IAAI,CAAC;CAClB;AAcD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,qBA0ExE;AAED,wBAAgB,QAAQ,IAAI,iBAAiB,CAM5C"}
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ export interface BottomSheetProps {
3
+ visible: boolean;
4
+ onClose: () => void;
5
+ children: React.ReactNode;
6
+ closeAccessibilityLabel?: string;
7
+ }
8
+ /**
9
+ * BottomSheet
10
+ * Modal que aparece desde abajo: animación con Animated (no la del Modal
11
+ * nativo) y arrastre para cerrar con PanResponder — no un gesture-handler
12
+ * externo, para mantener la librería en cero dependencias.
13
+ */
14
+ export declare const BottomSheet: React.MemoExoticComponent<({ visible, onClose, children, closeAccessibilityLabel }: BottomSheetProps) => React.JSX.Element | null>;
15
+ //# sourceMappingURL=BottomSheet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BottomSheet.d.ts","sourceRoot":"","sources":["../../../src/organisms/BottomSheet.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4C,MAAM,OAAO,CAAC;AAQjE,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC;AAkBD;;;;;GAKG;AACH,eAAO,MAAM,WAAW,sFAA4E,gBAAgB,8BAwDlH,CAAC"}
@@ -0,0 +1,26 @@
1
+ import React from 'react';
2
+ import { type StyleProp, type ViewStyle } from 'react-native';
3
+ import { type DatePickerProps } from './DatePicker';
4
+ export interface DateFieldProps extends Pick<DatePickerProps, 'minDate' | 'maxDate' | 'monthNames' | 'weekdayNames' | 'firstDayOfWeek'> {
5
+ label?: string;
6
+ required?: boolean;
7
+ value?: Date;
8
+ onChange: (date: Date) => void;
9
+ placeholder?: string;
10
+ error?: string;
11
+ disabled?: boolean;
12
+ /** Formatea la fecha en el campo. @default "D de Month de YYYY" en inglés */
13
+ format?: (date: Date) => string;
14
+ /** Título del modal del calendario. @default 'Select date' */
15
+ modalTitle?: string;
16
+ clearLabel?: string;
17
+ containerStyle?: StyleProp<ViewStyle>;
18
+ }
19
+ /**
20
+ * DateField
21
+ * Campo de fecha: se ve como un Input, abre un `DatePicker` en un Modal al
22
+ * tocarlo. Sin picker nativo del sistema, así que se ve y se comporta igual
23
+ * en iOS y Android.
24
+ */
25
+ export declare const DateField: React.MemoExoticComponent<({ label, required, value, onChange, placeholder, error, disabled, format, modalTitle, clearLabel, containerStyle, monthNames, ...pickerProps }: DateFieldProps) => React.JSX.Element>;
26
+ //# sourceMappingURL=DateField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateField.d.ts","sourceRoot":"","sources":["../../../src/organisms/DateField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyB,MAAM,OAAO,CAAC;AAC9C,OAAO,EAAgC,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAI5F,OAAO,EAAmC,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAGrF,MAAM,WAAW,cACf,SAAQ,IAAI,CAAC,eAAe,EAAE,SAAS,GAAG,SAAS,GAAG,YAAY,GAAG,cAAc,GAAG,gBAAgB,CAAC;IACvG,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6EAA6E;IAC7E,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC;IAChC,8DAA8D;IAC9D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CACvC;AA2BD;;;;;GAKG;AACH,eAAO,MAAM,SAAS,6KAejB,cAAc,uBA6DlB,CAAC"}
@@ -0,0 +1,49 @@
1
+ import React from 'react';
2
+ import { type StyleProp, type ViewStyle } from 'react-native';
3
+ export declare const DEFAULT_MONTH_NAMES: string[];
4
+ /** Índice 0 = domingo, para alinear con Date.getDay(). */
5
+ export declare const DEFAULT_WEEKDAY_NAMES: string[];
6
+ export interface DateRange {
7
+ start: Date;
8
+ /** Falta mientras el rango está a medio elegir (sólo se tocó el inicio). */
9
+ end?: Date;
10
+ }
11
+ export interface DatePickerProps {
12
+ /**
13
+ * 'single' elige una fecha; 'range' elige un intervalo con dos toques.
14
+ * @default 'single'
15
+ */
16
+ mode?: 'single' | 'range';
17
+ /** Fecha elegida en mode="single". */
18
+ value?: Date;
19
+ /** Se llama en mode="single". */
20
+ onChange?: (date: Date) => void;
21
+ /** Rango elegido en mode="range". */
22
+ range?: DateRange;
23
+ /** Se llama en mode="range", tanto al fijar el inicio como al cerrar el rango. */
24
+ onRangeChange?: (range: DateRange) => void;
25
+ minDate?: Date;
26
+ maxDate?: Date;
27
+ /** Mes mostrado al abrir si no hay `value`. @default hoy */
28
+ defaultMonth?: Date;
29
+ monthNames?: string[];
30
+ weekdayNames?: string[];
31
+ /** 0 = domingo, 1 = lunes. @default 0 */
32
+ firstDayOfWeek?: 0 | 1;
33
+ style?: StyleProp<ViewStyle>;
34
+ testID?: string;
35
+ }
36
+ /**
37
+ * Devuelve la grilla del mes: 6 filas de 7 celdas. Las celdas fuera del mes
38
+ * son null, así el layout no salta de alto entre meses (un mes puede
39
+ * necesitar 4, 5 o 6 filas según en qué día caiga el 1).
40
+ */
41
+ export declare function buildMonthGrid(year: number, month: number, firstDayOfWeek: 0 | 1): (Date | null)[][];
42
+ /**
43
+ * DatePicker
44
+ * Calendario mensual dibujado con View/Text puros — sin
45
+ * @react-native-community/datetimepicker ni ningún picker nativo, para
46
+ * mantener la librería en cero dependencias y verse igual en iOS y Android.
47
+ */
48
+ export declare const DatePicker: React.MemoExoticComponent<({ mode, value, onChange, range, onRangeChange, minDate, maxDate, defaultMonth, monthNames, weekdayNames, firstDayOfWeek, style, testID, }: DatePickerProps) => React.JSX.Element>;
49
+ //# sourceMappingURL=DatePicker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DatePicker.d.ts","sourceRoot":"","sources":["../../../src/organisms/DatePicker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkC,MAAM,OAAO,CAAC;AACvD,OAAO,EAAgC,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAK5F,eAAO,MAAM,mBAAmB,UAG/B,CAAC;AAEF,0DAA0D;AAC1D,eAAO,MAAM,qBAAqB,UAAsC,CAAC;AAEzE,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,IAAI,CAAC;IACZ,4EAA4E;IAC5E,GAAG,CAAC,EAAE,IAAI,CAAC;CACZ;AAED,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC1B,sCAAsC;IACtC,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,iCAAiC;IACjC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IAChC,qCAAqC;IACrC,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,kFAAkF;IAClF,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IAC3C,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,4DAA4D;IAC5D,YAAY,CAAC,EAAE,IAAI,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,yCAAyC;IACzC,cAAc,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACvB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAwBD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,EAAE,CAapG;AAqCD;;;;;GAKG;AACH,eAAO,MAAM,UAAU,wKAelB,eAAe,uBA6GnB,CAAC"}
@@ -0,0 +1,35 @@
1
+ import React from 'react';
2
+ import { type FlatListProps, type ViewStyle } from 'react-native';
3
+ import type { IconName } from '../icons/types';
4
+ export interface ListProps<T> {
5
+ data: T[];
6
+ keyExtractor: (item: T) => string;
7
+ renderItem: FlatListProps<T>['renderItem'];
8
+ isLoading: boolean;
9
+ isLoadingMore?: boolean;
10
+ /** Controlado por el consumidor: mientras es false, se muestra un spinner de pantalla completa. @default true */
11
+ isReady?: boolean;
12
+ loadingText?: string;
13
+ loadingMoreText?: string;
14
+ onEndReached?: () => void;
15
+ onEndReachedThreshold?: number;
16
+ onRefresh?: () => void;
17
+ emptyTitle?: string;
18
+ emptyDescription?: string;
19
+ emptyIconName?: IconName;
20
+ ListHeaderComponent?: FlatListProps<T>['ListHeaderComponent'];
21
+ ListFooterComponent?: FlatListProps<T>['ListFooterComponent'];
22
+ contentContainerStyle?: ViewStyle;
23
+ containerStyle?: ViewStyle;
24
+ /** Componente de lista a usar (FlashList, etc). @default FlatList */
25
+ ListComponent?: React.ComponentType<any>;
26
+ listProps?: Record<string, unknown>;
27
+ }
28
+ /**
29
+ * List
30
+ * Lista con estados de carga/paginación/vacío resueltos, sin atarse a
31
+ * expo-router ni a FlashList: `ListComponent` permite inyectar cualquiera
32
+ * (por defecto FlatList del propio React Native).
33
+ */
34
+ export declare function List<T>({ data, keyExtractor, renderItem, isLoading, isLoadingMore, isReady, loadingText, loadingMoreText, onEndReached, onEndReachedThreshold, onRefresh, emptyTitle, emptyDescription, emptyIconName, ListHeaderComponent, ListFooterComponent, contentContainerStyle, containerStyle, ListComponent, listProps, }: ListProps<T>): React.JSX.Element;
35
+ //# sourceMappingURL=List.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"List.d.ts","sourceRoot":"","sources":["../../../src/organisms/List.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AACjD,OAAO,EAOL,KAAK,aAAa,EAClB,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAKtB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,MAAM,WAAW,SAAS,CAAC,CAAC;IAC1B,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,YAAY,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;IAClC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;IAE3C,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iHAAiH;IACjH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IAEvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,QAAQ,CAAC;IAEzB,mBAAmB,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC;IAC9D,mBAAmB,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC;IAE9D,qBAAqB,CAAC,EAAE,SAAS,CAAC;IAClC,cAAc,CAAC,EAAE,SAAS,CAAC;IAE3B,qEAAqE;IACrE,aAAa,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAoBD;;;;;GAKG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,EACtB,IAAI,EACJ,YAAY,EACZ,UAAU,EACV,SAAS,EACT,aAAqB,EACrB,OAAc,EACd,WAAW,EACX,eAAe,EACf,YAAY,EACZ,qBAA2B,EAC3B,SAAS,EACT,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,cAAc,EACd,aAAwB,EACxB,SAAS,GACV,EAAE,SAAS,CAAC,CAAC,CAAC,qBA4Dd"}
@@ -0,0 +1,25 @@
1
+ import React from 'react';
2
+ import { type ModalProps as RNModalProps, type ViewStyle } from 'react-native';
3
+ export type ModalVariant = 'full' | 'overlay' | 'fullScreen' | 'bottomSheet';
4
+ export interface ModalProps extends Pick<RNModalProps, 'statusBarTranslucent' | 'onRequestClose' | 'hardwareAccelerated'> {
5
+ visible: boolean;
6
+ onClose?: () => void;
7
+ title?: string;
8
+ closeAccessibilityLabel?: string;
9
+ children: React.ReactNode;
10
+ footer?: React.ReactNode;
11
+ containerStyle?: ViewStyle;
12
+ contentStyle?: ViewStyle;
13
+ variant?: ModalVariant;
14
+ scrollable?: boolean;
15
+ }
16
+ /**
17
+ * Modal
18
+ * Un solo componente para todos los modales de la app: maneja scroll,
19
+ * teclado, insets y layout según `variant`. overlay/bottomSheet/full animan
20
+ * su entrada/salida con Animated (solo transform, nunca opacity sobre la
21
+ * tarjeta: animar opacity ahí dispara un bug de Android donde los hijos con
22
+ * elevation parpadean/redibujan). El fondo semitransparente sí anima opacity.
23
+ */
24
+ export declare const Modal: React.MemoExoticComponent<({ visible, onClose, title, closeAccessibilityLabel, children, footer, containerStyle, contentStyle, variant, scrollable, statusBarTranslucent, onRequestClose, hardwareAccelerated, }: ModalProps) => React.JSX.Element | null>;
25
+ //# sourceMappingURL=Modal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../../src/organisms/Modal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4C,MAAM,OAAO,CAAC;AACjE,OAAO,EASL,KAAK,UAAU,IAAI,YAAY,EAC/B,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAQtB,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,SAAS,GAAG,YAAY,GAAG,aAAa,CAAC;AAE7E,MAAM,WAAW,UACf,SAAQ,IAAI,CAAC,YAAY,EAAE,sBAAsB,GAAG,gBAAgB,GAAG,qBAAqB,CAAC;IAC7F,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAgDD;;;;;;;GAOG;AACH,eAAO,MAAM,KAAK,oNAeb,UAAU,8BA8Id,CAAC"}
@@ -0,0 +1,26 @@
1
+ import React from 'react';
2
+ import { type ViewStyle } from 'react-native';
3
+ export type ScreenEdge = 'top' | 'bottom';
4
+ export interface ScreenProps {
5
+ children: React.ReactNode;
6
+ style?: ViewStyle;
7
+ scrollable?: boolean;
8
+ contentContainerStyle?: ViewStyle;
9
+ /** Qué insets de safe area aplicar. @default ['top', 'bottom'] */
10
+ edges?: ScreenEdge[];
11
+ /**
12
+ * Compensa el teclado con un KeyboardAvoidingView. Ponelo en false cuando
13
+ * el contenido ya trae su propio scroller que maneja el teclado (Wizard,
14
+ * List, SearchList): las dos compensaciones se suman y el campo enfocado
15
+ * termina empujado fuera de la pantalla.
16
+ * @default true
17
+ */
18
+ keyboardAvoiding?: boolean;
19
+ }
20
+ /**
21
+ * Screen
22
+ * Contenedor raíz de pantalla: fondo del theme, safe area (via insets del
23
+ * UIProvider), teclado y scroll opcional resueltos de forma consistente.
24
+ */
25
+ export declare const Screen: React.MemoExoticComponent<({ children, style, scrollable, contentContainerStyle, edges, keyboardAvoiding, }: ScreenProps) => React.JSX.Element>;
26
+ //# sourceMappingURL=Screen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Screen.d.ts","sourceRoot":"","sources":["../../../src/organisms/Screen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAe,MAAM,OAAO,CAAC;AACpC,OAAO,EAAoD,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAIhG,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,QAAQ,CAAC;AAE1C,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,qBAAqB,CAAC,EAAE,SAAS,CAAC;IAClC,kEAAkE;IAClE,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IACrB;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAQD;;;;GAIG;AACH,eAAO,MAAM,MAAM,+GAOhB,WAAW,uBAwCZ,CAAC"}
@@ -0,0 +1,40 @@
1
+ import React from 'react';
2
+ import { type FlatListProps, type StyleProp, type ViewStyle } from 'react-native';
3
+ import type { IconName } from '../icons/types';
4
+ export interface SearchListProps<T> {
5
+ /** Chrome opcional arriba del buscador (ej. back button + título). */
6
+ header?: React.ReactNode;
7
+ searchValue: string;
8
+ onSearchChange: (text: string) => void;
9
+ searchPlaceholder?: string;
10
+ searchIsLoading?: boolean;
11
+ onScanPress?: () => void;
12
+ scanAccessibilityLabel?: string;
13
+ extraActions?: React.ReactNode;
14
+ data: T[];
15
+ keyExtractor: (item: T) => string;
16
+ renderItem: FlatListProps<T>['renderItem'];
17
+ isLoading?: boolean;
18
+ /** 'replace' cambia toda la lista por un spinner; 'overlay' lo muestra encima manteniendo el layout. */
19
+ loadingMode?: 'replace' | 'overlay';
20
+ loadingText?: string;
21
+ onLoadMore?: () => void;
22
+ isLoadingMore?: boolean;
23
+ loadingMoreText?: string;
24
+ hasMore?: boolean;
25
+ noMoreText?: string;
26
+ emptyTitle?: string;
27
+ emptyDescription?: string;
28
+ emptyIconName?: IconName;
29
+ contentContainerStyle?: StyleProp<ViewStyle>;
30
+ ListComponent?: React.ComponentType<any>;
31
+ listProps?: Record<string, unknown>;
32
+ }
33
+ /**
34
+ * SearchList
35
+ * Buscador + lista + estados de carga/paginación/vacío. El contenido de
36
+ * cada ítem (renderItem) queda a cargo de quien la usa, ya que difiere por
37
+ * completo entre casos de uso.
38
+ */
39
+ export declare function SearchList<T>({ header, searchValue, onSearchChange, searchPlaceholder, searchIsLoading, onScanPress, scanAccessibilityLabel, extraActions, data, keyExtractor, renderItem, isLoading, loadingMode, loadingText, onLoadMore, isLoadingMore, loadingMoreText, hasMore, noMoreText, emptyTitle, emptyDescription, emptyIconName, contentContainerStyle, ListComponent, listProps, }: SearchListProps<T>): React.JSX.Element;
40
+ //# sourceMappingURL=SearchList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchList.d.ts","sourceRoot":"","sources":["../../../src/organisms/SearchList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAe,MAAM,OAAO,CAAC;AACpC,OAAO,EAA2C,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAO3H,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,sEAAsE;IACtE,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAEzB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE/B,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,YAAY,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;IAClC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;IAE3C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,wGAAwG;IACxG,WAAW,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,QAAQ,CAAC;IAEzB,qBAAqB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7C,aAAa,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAwBD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,EAC5B,MAAM,EACN,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,eAAuB,EACvB,WAAW,EACX,sBAA+B,EAC/B,YAAY,EACZ,IAAI,EACJ,YAAY,EACZ,UAAU,EACV,SAAiB,EACjB,WAAuB,EACvB,WAAW,EACX,UAAU,EACV,aAAqB,EACrB,eAAe,EACf,OAAe,EACf,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,qBAAqB,EACrB,aAAwB,EACxB,SAAS,GACV,EAAE,eAAe,CAAC,CAAC,CAAC,qBAqFpB"}
@@ -0,0 +1,25 @@
1
+ import React from 'react';
2
+ import { type StyleProp, type ViewStyle } from 'react-native';
3
+ export interface SelectOption<T> {
4
+ label: string;
5
+ value: T;
6
+ }
7
+ export interface SelectProps<T> {
8
+ label?: string;
9
+ required?: boolean;
10
+ options: SelectOption<T>[];
11
+ selectedValue: T | undefined;
12
+ onSelect: (value: T) => void;
13
+ placeholder?: string;
14
+ error?: string;
15
+ isLoading?: boolean;
16
+ containerStyle?: StyleProp<ViewStyle>;
17
+ }
18
+ /**
19
+ * Select
20
+ * Dropdown que expande la lista de opciones flotando sobre el resto del
21
+ * contenido (position: absolute), en vez de empujarlo hacia abajo o abrir
22
+ * un picker nativo del sistema.
23
+ */
24
+ export declare function Select<T extends string | number>({ label, required, options, selectedValue, onSelect, placeholder, error, isLoading, containerStyle, }: SelectProps<T>): React.JSX.Element;
25
+ //# sourceMappingURL=Select.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../src/organisms/Select.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyB,MAAM,OAAO,CAAC;AAC9C,OAAO,EAA4C,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAKxG,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,CAAC,CAAC;CACV;AAED,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3B,aAAa,EAAE,CAAC,GAAG,SAAS,CAAC;IAC7B,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CACvC;AAmDD;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,EAChD,KAAK,EACL,QAAgB,EAChB,OAAO,EACP,aAAa,EACb,QAAQ,EACR,WAAW,EACX,KAAK,EACL,SAAiB,EACjB,cAAc,GACf,EAAE,WAAW,CAAC,CAAC,CAAC,qBAmEhB"}
@@ -0,0 +1,28 @@
1
+ import React from 'react';
2
+ import { type StyleProp, type ViewStyle } from 'react-native';
3
+ export type ToastVariant = 'success' | 'error' | 'warning' | 'info';
4
+ export interface ToastProps {
5
+ title: string;
6
+ message?: string;
7
+ variant?: ToastVariant;
8
+ /** Se dispara al tocar el toast (además de cerrarlo). */
9
+ onPress?: () => void;
10
+ onDismiss?: () => void;
11
+ /** Oculta la X de cerrar. El toast igual se auto-descarta por tiempo. */
12
+ hideCloseButton?: boolean;
13
+ style?: StyleProp<ViewStyle>;
14
+ testID?: string;
15
+ }
16
+ /**
17
+ * Toast
18
+ * Notificación efímera. Normalmente no se usa directo: `ToastProvider` +
19
+ * `useToast()` la montan y la descartan por vos. Se expone igual por si
20
+ * querés colocarla vos mismo dentro de una pantalla concreta.
21
+ */
22
+ export declare const Toast: React.MemoExoticComponent<({ title, message, variant, onPress, onDismiss, hideCloseButton, style, testID }: ToastProps) => React.JSX.Element>;
23
+ /** Envuelve un Toast con su animación de entrada/salida. Uso interno del provider. */
24
+ export declare const AnimatedToast: React.MemoExoticComponent<({ children, onHeight }: {
25
+ children: React.ReactNode;
26
+ onHeight?: (h: number) => void;
27
+ }) => React.JSX.Element>;
28
+ //# sourceMappingURL=Toast.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Toast.d.ts","sourceRoot":"","sources":["../../../src/organisms/Toast.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkC,MAAM,OAAO,CAAC;AACvD,OAAO,EAAmC,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAM/F,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAEpE,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,yDAAyD;IACzD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,yEAAyE;IACzE,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAwCD;;;;;GAKG;AACH,eAAO,MAAM,KAAK,8GAC2E,UAAU,uBA0CtG,CAAC;AAGF,sFAAsF;AACtF,eAAO,MAAM,aAAa,qDACC;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;CAAE,uBAmBvF,CAAC"}
@@ -0,0 +1,36 @@
1
+ import React from 'react';
2
+ import { type ToastVariant } from './Toast';
3
+ export interface ToastOptions {
4
+ title: string;
5
+ message?: string;
6
+ variant?: ToastVariant;
7
+ /** ms antes de auto-descartar. 0 = no se descarta solo. @default 4000 */
8
+ duration?: number;
9
+ onPress?: () => void;
10
+ hideCloseButton?: boolean;
11
+ }
12
+ interface ToastContextValue {
13
+ /** Muestra un toast y devuelve su id (por si querés cerrarlo antes de tiempo). */
14
+ show: (options: ToastOptions) => string;
15
+ hide: (id: string) => void;
16
+ hideAll: () => void;
17
+ }
18
+ export interface ToastProviderProps {
19
+ children: React.ReactNode;
20
+ /** @default 'top' */
21
+ position?: 'top' | 'bottom';
22
+ /** Máximo de toasts simultáneos; los más viejos se descartan. @default 3 */
23
+ maxVisible?: number;
24
+ /** Duración por defecto en ms. @default 4000 */
25
+ defaultDuration?: number;
26
+ }
27
+ /**
28
+ * ToastProvider
29
+ * Monta la capa de toasts sobre el resto de la app. Colocar una vez cerca de
30
+ * la raíz, dentro de UIProvider. Los timers de auto-dismiss se limpian al
31
+ * desmontar y al cerrar cada toast, así que no quedan callbacks colgados.
32
+ */
33
+ export declare function ToastProvider({ children, position, maxVisible, defaultDuration, }: ToastProviderProps): React.JSX.Element;
34
+ export declare function useToast(): ToastContextValue;
35
+ export {};
36
+ //# sourceMappingURL=ToastProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToastProvider.d.ts","sourceRoot":"","sources":["../../../src/organisms/ToastProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuF,MAAM,OAAO,CAAC;AAE5G,OAAO,EAAwB,KAAK,YAAY,EAAE,MAAM,SAAS,CAAC;AAIlE,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAMD,UAAU,iBAAiB;IACzB,kFAAkF;IAClF,IAAI,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,MAAM,CAAC;IACxC,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAQD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,qBAAqB;IACrB,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;IAC5B,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,QAAgB,EAChB,UAAc,EACd,eAAsB,GACvB,EAAE,kBAAkB,qBAuGpB;AAED,wBAAgB,QAAQ,IAAI,iBAAiB,CAM5C"}
@@ -0,0 +1,40 @@
1
+ import React from 'react';
2
+ import { type StyleProp, type ViewStyle } from 'react-native';
3
+ import { type StepItem } from '../molecules/Steps';
4
+ export interface WizardStep extends StepItem {
5
+ content: React.ReactNode;
6
+ /** false bloquea el avance desde este paso (validación). @default true */
7
+ canGoNext?: boolean;
8
+ }
9
+ export interface WizardProps {
10
+ steps: WizardStep[];
11
+ /** Paso actual (controlado). Si se omite, el Wizard maneja su propio estado. */
12
+ current?: number;
13
+ onStepChange?: (index: number) => void;
14
+ onFinish?: () => void;
15
+ /** @default 'horizontal' */
16
+ orientation?: 'horizontal' | 'vertical';
17
+ completedIndicator?: 'check' | 'number';
18
+ /** Permite volver a un paso ya completado tocándolo en el indicador. @default true */
19
+ allowStepNavigation?: boolean;
20
+ backLabel?: string;
21
+ nextLabel?: string;
22
+ finishLabel?: string;
23
+ /**
24
+ * El contenido del paso scrollea cuando no entra. Ponelo en false sólo si
25
+ * un paso renderiza su propia lista virtualizada (anidar una
26
+ * VirtualizedList dentro de un ScrollView rompe la virtualización).
27
+ * @default true
28
+ */
29
+ scrollableContent?: boolean;
30
+ style?: StyleProp<ViewStyle>;
31
+ }
32
+ /**
33
+ * Wizard
34
+ * Flujo multi-paso: indicador (Steps) + contenido del paso actual + barra de
35
+ * navegación. Funciona controlado (`current` + `onStepChange`) o por su
36
+ * cuenta. `canGoNext: false` en un paso deshabilita el avance, que es donde
37
+ * se engancha la validación del formulario de ese paso.
38
+ */
39
+ export declare function Wizard({ steps, current: controlledCurrent, onStepChange, onFinish, orientation, completedIndicator, allowStepNavigation, backLabel, nextLabel, finishLabel, scrollableContent, style, }: WizardProps): React.JSX.Element;
40
+ //# sourceMappingURL=Wizard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Wizard.d.ts","sourceRoot":"","sources":["../../../src/organisms/Wizard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAC9D,OAAO,EAAoB,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAEhF,OAAO,EAAS,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAG1D,MAAM,WAAW,UAAW,SAAQ,QAAQ;IAC1C,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,0EAA0E;IAC1E,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,gFAAgF;IAChF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,4BAA4B;IAC5B,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IACxC,kBAAkB,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IACxC,sFAAsF;IACtF,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B;AAUD;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,EACrB,KAAK,EACL,OAAO,EAAE,iBAAiB,EAC1B,YAAY,EACZ,QAAQ,EACR,WAA0B,EAC1B,kBAA4B,EAC5B,mBAA0B,EAC1B,SAAkB,EAClB,SAAkB,EAClB,WAAsB,EACtB,iBAAwB,EACxB,KAAK,GACN,EAAE,WAAW,qBAwEb"}
@@ -0,0 +1,27 @@
1
+ export { Modal } from './Modal';
2
+ export type { ModalProps, ModalVariant } from './Modal';
3
+ export { BottomSheet } from './BottomSheet';
4
+ export type { BottomSheetProps } from './BottomSheet';
5
+ export { Select } from './Select';
6
+ export type { SelectProps, SelectOption } from './Select';
7
+ export { Alert } from './Alert';
8
+ export type { AlertProps, AlertButton, AlertType } from './Alert';
9
+ export { AlertProvider, useAlert } from './AlertProvider';
10
+ export type { AlertOptions, ConfirmOptions } from './AlertProvider';
11
+ export { Screen } from './Screen';
12
+ export type { ScreenProps, ScreenEdge } from './Screen';
13
+ export { List } from './List';
14
+ export type { ListProps } from './List';
15
+ export { SearchList } from './SearchList';
16
+ export type { SearchListProps } from './SearchList';
17
+ export { Toast } from './Toast';
18
+ export type { ToastProps, ToastVariant } from './Toast';
19
+ export { ToastProvider, useToast } from './ToastProvider';
20
+ export type { ToastProviderProps, ToastOptions } from './ToastProvider';
21
+ export { DatePicker, buildMonthGrid, DEFAULT_MONTH_NAMES, DEFAULT_WEEKDAY_NAMES } from './DatePicker';
22
+ export type { DatePickerProps, DateRange } from './DatePicker';
23
+ export { DateField } from './DateField';
24
+ export type { DateFieldProps } from './DateField';
25
+ export { Wizard } from './Wizard';
26
+ export type { WizardProps, WizardStep } from './Wizard';
27
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/organisms/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC1D,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,YAAY,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC1D,YAAY,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACtG,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,47 @@
1
+ import React from 'react';
2
+ import { Appearance } from 'react-native';
3
+ import { type Labels } from './labels';
4
+ import { type EdgeInsets } from './insets';
5
+ import type { Theme, ThemePair } from './types';
6
+ import type { IconRenderer } from '../icons/types';
7
+ export type ThemeMode = 'system' | 'light' | 'dark';
8
+ export interface UIProviderProps {
9
+ children: React.ReactNode;
10
+ /** Par light/dark. Por defecto el theme de marca de la librería (créalo con createTheme()). */
11
+ theme?: ThemePair;
12
+ /** Modo inicial (no controlado) si no se pasa `mode`. @default 'system' */
13
+ defaultMode?: ThemeMode;
14
+ /** Modo controlado. Si se pasa junto a onModeChange, el provider no gestiona estado propio. */
15
+ mode?: ThemeMode;
16
+ onModeChange?: (mode: ThemeMode) => void;
17
+ /** Renderer de íconos. Por defecto usa los glifos zero-dep incluidos. */
18
+ icons?: IconRenderer;
19
+ /** Insets de safe area (de useSafeAreaInsets()). Por defecto {0,0,0,0}. */
20
+ insets?: EdgeInsets;
21
+ labels?: Partial<Labels>;
22
+ /** @default false, para paridad con el resto de la librería (accesibilidad primero). */
23
+ allowFontScaling?: boolean;
24
+ }
25
+ /**
26
+ * UIProvider
27
+ * Único punto de entrada de la librería: resuelve el theme activo (sistema u
28
+ * override manual), e inyecta íconos, insets y textos por defecto a todo el
29
+ * árbol. No persiste el modo — si el consumidor quiere recordar la preferencia
30
+ * entre sesiones, controla `mode`/`onModeChange` y persiste donde prefiera.
31
+ */
32
+ export declare function UIProvider({ children, theme, defaultMode, mode: controlledMode, onModeChange, icons, insets, labels: labelOverrides, allowFontScaling, }: UIProviderProps): React.JSX.Element;
33
+ export declare function useTheme(): Theme;
34
+ export declare function useColors(): Theme['colors'];
35
+ export declare function useThemeMode(): {
36
+ mode: ThemeMode;
37
+ setMode: (mode: ThemeMode) => void;
38
+ };
39
+ export declare function useIcons(): IconRenderer;
40
+ export declare function useInsets(): EdgeInsets;
41
+ export declare function useLabels(): Labels;
42
+ export declare function useAllowFontScaling(): boolean;
43
+ /** Re-exportado para que tests/consumidores puedan simular cambios de sistema sin RN real. */
44
+ export declare const __testUtils: {
45
+ Appearance: typeof Appearance;
46
+ };
47
+ //# sourceMappingURL=UIProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UIProvider.d.ts","sourceRoot":"","sources":["../../../src/theme/UIProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoE,MAAM,OAAO,CAAC;AACzF,OAAO,EAAE,UAAU,EAAkB,MAAM,cAAc,CAAC;AAE1D,OAAO,EAAiB,KAAK,MAAM,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,EAAc,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEhD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;AAcpD,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,+FAA+F;IAC/F,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,2EAA2E;IAC3E,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,+FAA+F;IAC/F,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IACzC,yEAAyE;IACzE,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACzB,wFAAwF;IACxF,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,EACzB,QAAQ,EACR,KAAoB,EACpB,WAAsB,EACtB,IAAI,EAAE,cAAc,EACpB,YAAY,EACZ,KAAyB,EACzB,MAAmB,EACnB,MAAM,EAAE,cAAc,EACtB,gBAAwB,GACzB,EAAE,eAAe,qBA8BjB;AAUD,wBAAgB,QAAQ,IAAI,KAAK,CAEhC;AAED,wBAAgB,SAAS,IAAI,KAAK,CAAC,QAAQ,CAAC,CAE3C;AAED,wBAAgB,YAAY;;oBA5FV,SAAS,KAAK,IAAI;EA+FnC;AAED,wBAAgB,QAAQ,IAAI,YAAY,CAEvC;AAED,wBAAgB,SAAS,IAAI,UAAU,CAEtC;AAED,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED,wBAAgB,mBAAmB,IAAI,OAAO,CAE7C;AAED,8FAA8F;AAC9F,eAAO,MAAM,WAAW;;CAAiB,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { StyleSheet } from 'react-native';
2
+ import type { Theme } from './types';
3
+ /**
4
+ * createStyles(factory)
5
+ * Devuelve un hook useStyles() que memoiza el StyleSheet resultante por
6
+ * theme (WeakMap<Theme, Styles>), no por instancia de componente. Todas las
7
+ * filas de una lista comparten el mismo objeto de estilos: sin esto, N filas
8
+ * ⇒ N StyleSheet.create() por render, que es lo que hacía cada componente
9
+ * de la app original con `useMemo(() => createStyles(colors), [colors])`.
10
+ *
11
+ * La cache vive en el closure del factory (una WeakMap por llamada a
12
+ * createStyles, es decir, una por componente), así que temas de distintos
13
+ * <UIProvider> en el mismo árbol no colisionan entre sí.
14
+ *
15
+ * El tipo de `factory` sigue el patrón oficial de RN para StyleSheet
16
+ * tipados (`T extends StyleSheet.NamedStyles<T> | StyleSheet.NamedStyles<any>`):
17
+ * es lo que le da contexto a TS para inferir literales ('row', 'center', ...)
18
+ * en vez de ensancharlos a `string` dentro del objeto devuelto.
19
+ */
20
+ export declare function createStyles<T extends StyleSheet.NamedStyles<T> | StyleSheet.NamedStyles<any>>(factory: (theme: Theme) => T | StyleSheet.NamedStyles<T>): () => T;
21
+ //# sourceMappingURL=createStyles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createStyles.d.ts","sourceRoot":"","sources":["../../../src/theme/createStyles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,EAC5F,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,CAAC,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,GACvD,MAAM,CAAC,CAgBT"}
@@ -0,0 +1,9 @@
1
+ import type { ThemeOverrides, ThemePair } from './types';
2
+ /**
3
+ * Construye el par de themes light/dark que consume <UIProvider theme={...}>.
4
+ * Nunca muta los defaults: cada llamada produce objetos nuevos, seguros de
5
+ * compartir entre providers distintos (tests, multi-brand en el mismo árbol).
6
+ */
7
+ export declare function createTheme(overrides?: ThemeOverrides): ThemePair;
8
+ export declare const defaultTheme: ThemePair;
9
+ //# sourceMappingURL=createTheme.d.ts.map