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,120 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.tokens = exports.spacing = exports.shadow = exports.radius = exports.lineHeight = exports.fontWeight = exports.fontSize = exports.duration = void 0;
7
+ var _reactNative = require("react-native");
8
+ // Las escalas numéricas se tipan explícitamente como `number` (no `as const`):
9
+ // createTheme() debe poder sobreescribir cualquier valor con otro número
10
+ // arbitrario: con literal typing, un override de `radius.md` a `999` fallaría
11
+ // porque el tipo inferido sería el literal `8`, no `number`.
12
+
13
+ /**
14
+ * Escala de espaciado. Usar siempre estos valores en vez de números mágicos
15
+ * para que el ritmo vertical/horizontal sea consistente entre componentes.
16
+ */
17
+ const spacing = exports.spacing = {
18
+ xxs: 2,
19
+ xs: 4,
20
+ sm: 8,
21
+ md: 12,
22
+ lg: 16,
23
+ xl: 20,
24
+ xxl: 24,
25
+ xxxl: 32
26
+ };
27
+ const radius = exports.radius = {
28
+ none: 0,
29
+ xs: 4,
30
+ sm: 6,
31
+ md: 8,
32
+ lg: 12,
33
+ xl: 16,
34
+ xxl: 20,
35
+ full: 9999
36
+ };
37
+ const fontSize = exports.fontSize = {
38
+ xs: 11,
39
+ sm: 12,
40
+ md: 14,
41
+ lg: 16,
42
+ xl: 18,
43
+ xxl: 24
44
+ };
45
+
46
+ // fontWeight sí necesita literales: TextStyle.fontWeight de RN exige un union
47
+ // de strings específicos ('400' | '500' | ...), no `string` arbitrario.
48
+ const fontWeight = exports.fontWeight = {
49
+ regular: '400',
50
+ medium: '500',
51
+ semibold: '600',
52
+ bold: '700'
53
+ };
54
+ const lineHeight = exports.lineHeight = {
55
+ sm: 16,
56
+ md: 20,
57
+ lg: 24
58
+ };
59
+
60
+ /** Duraciones en ms para Animated.timing/spring. */
61
+ const duration = exports.duration = {
62
+ fast: 150,
63
+ base: 200,
64
+ slow: 250
65
+ };
66
+ /**
67
+ * Sombras cross-platform: shadow* para iOS, elevation para Android.
68
+ * `shadowColor` se deja en negro fijo — el color de sombra por tema es un
69
+ * detalle demasiado fino para justificar la complejidad de resolverlo aquí.
70
+ */
71
+ const shadow = exports.shadow = {
72
+ none: _reactNative.Platform.select({
73
+ android: {
74
+ elevation: 0
75
+ },
76
+ default: {
77
+ shadowOpacity: 0
78
+ }
79
+ }),
80
+ sm: {
81
+ shadowColor: '#000',
82
+ shadowOffset: {
83
+ width: 0,
84
+ height: 1
85
+ },
86
+ shadowOpacity: 0.08,
87
+ shadowRadius: 2,
88
+ elevation: 2
89
+ },
90
+ md: {
91
+ shadowColor: '#000',
92
+ shadowOffset: {
93
+ width: 0,
94
+ height: 2
95
+ },
96
+ shadowOpacity: 0.1,
97
+ shadowRadius: 8,
98
+ elevation: 4
99
+ },
100
+ lg: {
101
+ shadowColor: '#000',
102
+ shadowOffset: {
103
+ width: 0,
104
+ height: 4
105
+ },
106
+ shadowOpacity: 0.15,
107
+ shadowRadius: 16,
108
+ elevation: 8
109
+ }
110
+ };
111
+ const tokens = exports.tokens = {
112
+ spacing,
113
+ radius,
114
+ fontSize,
115
+ fontWeight,
116
+ lineHeight,
117
+ duration,
118
+ shadow
119
+ };
120
+ //# sourceMappingURL=tokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","spacing","exports","xxs","xs","sm","md","lg","xl","xxl","xxxl","radius","none","full","fontSize","fontWeight","regular","medium","semibold","bold","lineHeight","duration","fast","base","slow","shadow","Platform","select","android","elevation","default","shadowOpacity","shadowColor","shadowOffset","width","height","shadowRadius","tokens"],"sourceRoot":"../../../src","sources":["theme/tokens.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACO,MAAMC,OAAkF,GAAAC,OAAA,CAAAD,OAAA,GAAG;EAChGE,GAAG,EAAE,CAAC;EACNC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,EAAE;EACNC,EAAE,EAAE,EAAE;EACNC,EAAE,EAAE,EAAE;EACNC,GAAG,EAAE,EAAE;EACPC,IAAI,EAAE;AACR,CAAC;AAEM,MAAMC,MAAkF,GAAAT,OAAA,CAAAS,MAAA,GAAG;EAChGC,IAAI,EAAE,CAAC;EACPR,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,EAAE;EACNC,EAAE,EAAE,EAAE;EACNC,GAAG,EAAE,EAAE;EACPI,IAAI,EAAE;AACR,CAAC;AAEM,MAAMC,QAAkE,GAAAZ,OAAA,CAAAY,QAAA,GAAG;EAChFV,EAAE,EAAE,EAAE;EACNC,EAAE,EAAE,EAAE;EACNC,EAAE,EAAE,EAAE;EACNC,EAAE,EAAE,EAAE;EACNC,EAAE,EAAE,EAAE;EACNC,GAAG,EAAE;AACP,CAAC;;AAED;AACA;AACO,MAAMM,UAAU,GAAAb,OAAA,CAAAa,UAAA,GAAG;EACxBC,OAAO,EAAE,KAAK;EACdC,MAAM,EAAE,KAAK;EACbC,QAAQ,EAAE,KAAK;EACfC,IAAI,EAAE;AACR,CAAU;AAEH,MAAMC,UAA8C,GAAAlB,OAAA,CAAAkB,UAAA,GAAG;EAC5Df,EAAE,EAAE,EAAE;EACNC,EAAE,EAAE,EAAE;EACNC,EAAE,EAAE;AACN,CAAC;;AAED;AACO,MAAMc,QAAkD,GAAAnB,OAAA,CAAAmB,QAAA,GAAG;EAChEC,IAAI,EAAE,GAAG;EACTC,IAAI,EAAE,GAAG;EACTC,IAAI,EAAE;AACR,CAAC;AAOD;AACA;AACA;AACA;AACA;AACO,MAAMC,MAAwD,GAAAvB,OAAA,CAAAuB,MAAA,GAAG;EACtEb,IAAI,EAAEc,qBAAQ,CAACC,MAAM,CAAC;IACpBC,OAAO,EAAE;MAAEC,SAAS,EAAE;IAAE,CAAC;IACzBC,OAAO,EAAE;MAAEC,aAAa,EAAE;IAAE;EAC9B,CAAC,CAAgB;EACjB1B,EAAE,EAAE;IACF2B,WAAW,EAAE,MAAM;IACnBC,YAAY,EAAE;MAAEC,KAAK,EAAE,CAAC;MAAEC,MAAM,EAAE;IAAE,CAAC;IACrCJ,aAAa,EAAE,IAAI;IACnBK,YAAY,EAAE,CAAC;IACfP,SAAS,EAAE;EACb,CAAC;EACDvB,EAAE,EAAE;IACF0B,WAAW,EAAE,MAAM;IACnBC,YAAY,EAAE;MAAEC,KAAK,EAAE,CAAC;MAAEC,MAAM,EAAE;IAAE,CAAC;IACrCJ,aAAa,EAAE,GAAG;IAClBK,YAAY,EAAE,CAAC;IACfP,SAAS,EAAE;EACb,CAAC;EACDtB,EAAE,EAAE;IACFyB,WAAW,EAAE,MAAM;IACnBC,YAAY,EAAE;MAAEC,KAAK,EAAE,CAAC;MAAEC,MAAM,EAAE;IAAE,CAAC;IACrCJ,aAAa,EAAE,IAAI;IACnBK,YAAY,EAAE,EAAE;IAChBP,SAAS,EAAE;EACb;AACF,CAAC;AAEM,MAAMQ,MAAM,GAAAnC,OAAA,CAAAmC,MAAA,GAAG;EACpBpC,OAAO;EACPU,MAAM;EACNG,QAAQ;EACRC,UAAU;EACVK,UAAU;EACVC,QAAQ;EACRI;AACF,CAAC","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["theme/types.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+
3
+ import React, { memo } from 'react';
4
+ import { StyleSheet, View } from 'react-native';
5
+ import { useColors } from '../theme/UIProvider';
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ const styles = StyleSheet.create({
8
+ circle: {
9
+ justifyContent: 'center',
10
+ alignItems: 'center'
11
+ }
12
+ });
13
+
14
+ /**
15
+ * Avatar
16
+ * Círculo con ícono/iniciales adentro. Usado a la izquierda de filas de
17
+ * lista o como header de detalle (junto a AvatarHeader).
18
+ */
19
+ export const Avatar = /*#__PURE__*/memo(({
20
+ size = 44,
21
+ backgroundColor,
22
+ children,
23
+ style
24
+ }) => {
25
+ const colors = useColors();
26
+ return /*#__PURE__*/_jsx(View, {
27
+ style: [styles.circle, {
28
+ width: size,
29
+ height: size,
30
+ borderRadius: size / 2,
31
+ backgroundColor: backgroundColor || colors.primary + '15'
32
+ }, style],
33
+ children: children
34
+ });
35
+ });
36
+ Avatar.displayName = 'Avatar';
37
+ //# sourceMappingURL=Avatar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","memo","StyleSheet","View","useColors","jsx","_jsx","styles","create","circle","justifyContent","alignItems","Avatar","size","backgroundColor","children","style","colors","width","height","borderRadius","primary","displayName"],"sourceRoot":"../../../src","sources":["atoms/Avatar.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,IAAI,QAAQ,OAAO;AACnC,SAASC,UAAU,EAAEC,IAAI,QAAwC,cAAc;AAC/E,SAASC,SAAS,QAAQ,qBAAqB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAShD,MAAMC,MAAM,GAAGL,UAAU,CAACM,MAAM,CAAC;EAC/BC,MAAM,EAAE;IAAEC,cAAc,EAAE,QAAQ;IAAEC,UAAU,EAAE;EAAS;AAC3D,CAAC,CAAC;;AAEF;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,MAAM,gBAAGX,IAAI,CAAC,CAAC;EAAEY,IAAI,GAAG,EAAE;EAAEC,eAAe;EAAEC,QAAQ;EAAEC;AAAmB,CAAC,KAAK;EAC3F,MAAMC,MAAM,GAAGb,SAAS,CAAC,CAAC;EAC1B,oBACEE,IAAA,CAACH,IAAI;IACHa,KAAK,EAAE,CACLT,MAAM,CAACE,MAAM,EACb;MACES,KAAK,EAAEL,IAAI;MACXM,MAAM,EAAEN,IAAI;MACZO,YAAY,EAAEP,IAAI,GAAG,CAAC;MACtBC,eAAe,EAAEA,eAAe,IAAIG,MAAM,CAACI,OAAO,GAAG;IACvD,CAAC,EACDL,KAAK,CACL;IAAAD,QAAA,EAEDA;EAAQ,CACL,CAAC;AAEX,CAAC,CAAC;AACFH,MAAM,CAACU,WAAW,GAAG,QAAQ","ignoreList":[]}
@@ -0,0 +1,77 @@
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, useTheme } from '../theme/UIProvider';
7
+ import { jsx as _jsx } from "react/jsx-runtime";
8
+ const useStyles = createStyles(theme => ({
9
+ badge: {
10
+ paddingHorizontal: theme.tokens.spacing.md - 2,
11
+ paddingVertical: theme.tokens.spacing.xs + 1,
12
+ borderRadius: theme.tokens.radius.full,
13
+ alignSelf: 'flex-start'
14
+ },
15
+ text: {
16
+ fontSize: theme.tokens.fontSize.xs,
17
+ fontWeight: theme.tokens.fontWeight.bold,
18
+ letterSpacing: 0.3
19
+ }
20
+ }));
21
+
22
+ /**
23
+ * Badge
24
+ * Pill de estado. `variant` cubre los casos comunes (éxito/error/advertencia/
25
+ * info/neutral); `backgroundColor`/`textColor` quedan para casos que no
26
+ * encajan en el set semántico.
27
+ */
28
+ export const Badge = /*#__PURE__*/memo(({
29
+ label,
30
+ variant = 'neutral',
31
+ backgroundColor,
32
+ textColor,
33
+ style
34
+ }) => {
35
+ const theme = useTheme();
36
+ const styles = useStyles();
37
+ const allowFontScaling = useAllowFontScaling();
38
+ const {
39
+ colors
40
+ } = theme;
41
+ const palette = {
42
+ success: {
43
+ bg: colors.success + '20',
44
+ fg: colors.success
45
+ },
46
+ error: {
47
+ bg: colors.error + '20',
48
+ fg: colors.error
49
+ },
50
+ warning: {
51
+ bg: colors.warning + '20',
52
+ fg: colors.warning
53
+ },
54
+ info: {
55
+ bg: colors.secondary + '20',
56
+ fg: colors.secondary
57
+ },
58
+ neutral: {
59
+ bg: colors.inputBackground,
60
+ fg: colors.textLight
61
+ }
62
+ };
63
+ return /*#__PURE__*/_jsx(View, {
64
+ style: [styles.badge, {
65
+ backgroundColor: backgroundColor ?? palette[variant].bg
66
+ }, style],
67
+ children: /*#__PURE__*/_jsx(Text, {
68
+ allowFontScaling: allowFontScaling,
69
+ style: [styles.text, {
70
+ color: textColor ?? palette[variant].fg
71
+ }],
72
+ children: label
73
+ })
74
+ });
75
+ });
76
+ Badge.displayName = 'Badge';
77
+ //# sourceMappingURL=Badge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","memo","Text","View","createStyles","useAllowFontScaling","useTheme","jsx","_jsx","useStyles","theme","badge","paddingHorizontal","tokens","spacing","md","paddingVertical","xs","borderRadius","radius","full","alignSelf","text","fontSize","fontWeight","bold","letterSpacing","Badge","label","variant","backgroundColor","textColor","style","styles","allowFontScaling","colors","palette","success","bg","fg","error","warning","info","secondary","neutral","inputBackground","textLight","children","color","displayName"],"sourceRoot":"../../../src","sources":["atoms/Badge.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,IAAI,QAAQ,OAAO;AACnC,SAASC,IAAI,EAAEC,IAAI,QAAwC,cAAc;AACzE,SAASC,YAAY,QAAQ,uBAAuB;AACpD,SAASC,mBAAmB,EAAEC,QAAQ,QAAQ,qBAAqB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAapE,MAAMC,SAAS,GAAGL,YAAY,CAAEM,KAAK,KAAM;EACzCC,KAAK,EAAE;IACLC,iBAAiB,EAAEF,KAAK,CAACG,MAAM,CAACC,OAAO,CAACC,EAAE,GAAG,CAAC;IAC9CC,eAAe,EAAEN,KAAK,CAACG,MAAM,CAACC,OAAO,CAACG,EAAE,GAAG,CAAC;IAC5CC,YAAY,EAAER,KAAK,CAACG,MAAM,CAACM,MAAM,CAACC,IAAI;IACtCC,SAAS,EAAE;EACb,CAAC;EACDC,IAAI,EAAE;IAAEC,QAAQ,EAAEb,KAAK,CAACG,MAAM,CAACU,QAAQ,CAACN,EAAE;IAAEO,UAAU,EAAEd,KAAK,CAACG,MAAM,CAACW,UAAU,CAACC,IAAI;IAAEC,aAAa,EAAE;EAAI;AAC3G,CAAC,CAAC,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,KAAK,gBAAG1B,IAAI,CAAC,CAAC;EAAE2B,KAAK;EAAEC,OAAO,GAAG,SAAS;EAAEC,eAAe;EAAEC,SAAS;EAAEC;AAAkB,CAAC,KAAK;EAC3G,MAAMtB,KAAK,GAAGJ,QAAQ,CAAC,CAAC;EACxB,MAAM2B,MAAM,GAAGxB,SAAS,CAAC,CAAC;EAC1B,MAAMyB,gBAAgB,GAAG7B,mBAAmB,CAAC,CAAC;EAC9C,MAAM;IAAE8B;EAAO,CAAC,GAAGzB,KAAK;EAExB,MAAM0B,OAAyD,GAAG;IAChEC,OAAO,EAAE;MAAEC,EAAE,EAAEH,MAAM,CAACE,OAAO,GAAG,IAAI;MAAEE,EAAE,EAAEJ,MAAM,CAACE;IAAQ,CAAC;IAC1DG,KAAK,EAAE;MAAEF,EAAE,EAAEH,MAAM,CAACK,KAAK,GAAG,IAAI;MAAED,EAAE,EAAEJ,MAAM,CAACK;IAAM,CAAC;IACpDC,OAAO,EAAE;MAAEH,EAAE,EAAEH,MAAM,CAACM,OAAO,GAAG,IAAI;MAAEF,EAAE,EAAEJ,MAAM,CAACM;IAAQ,CAAC;IAC1DC,IAAI,EAAE;MAAEJ,EAAE,EAAEH,MAAM,CAACQ,SAAS,GAAG,IAAI;MAAEJ,EAAE,EAAEJ,MAAM,CAACQ;IAAU,CAAC;IAC3DC,OAAO,EAAE;MAAEN,EAAE,EAAEH,MAAM,CAACU,eAAe;MAAEN,EAAE,EAAEJ,MAAM,CAACW;IAAU;EAC9D,CAAC;EAED,oBACEtC,IAAA,CAACL,IAAI;IAAC6B,KAAK,EAAE,CAACC,MAAM,CAACtB,KAAK,EAAE;MAAEmB,eAAe,EAAEA,eAAe,IAAIM,OAAO,CAACP,OAAO,CAAC,CAACS;IAAG,CAAC,EAAEN,KAAK,CAAE;IAAAe,QAAA,eAC9FvC,IAAA,CAACN,IAAI;MAACgC,gBAAgB,EAAEA,gBAAiB;MAACF,KAAK,EAAE,CAACC,MAAM,CAACX,IAAI,EAAE;QAAE0B,KAAK,EAAEjB,SAAS,IAAIK,OAAO,CAACP,OAAO,CAAC,CAACU;MAAG,CAAC,CAAE;MAAAQ,QAAA,EACzGnB;IAAK,CACF;EAAC,CACH,CAAC;AAEX,CAAC,CAAC;AACFD,KAAK,CAACsB,WAAW,GAAG,OAAO","ignoreList":[]}
@@ -0,0 +1,217 @@
1
+ "use strict";
2
+
3
+ import React, { memo, useRef } from 'react';
4
+ import { ActivityIndicator, Animated, Pressable, Text } from 'react-native';
5
+ import { createStyles } from '../theme/createStyles';
6
+ import { useAllowFontScaling, useColors, useTheme } from '../theme/UIProvider';
7
+ import { Icon } from '../icons/Icon';
8
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
9
+ const AnimatedPressable = Animated.createAnimatedComponent(Pressable);
10
+ const useStyles = createStyles(theme => ({
11
+ base: {
12
+ flexDirection: 'row',
13
+ alignItems: 'center',
14
+ justifyContent: 'center',
15
+ borderRadius: theme.tokens.radius.lg,
16
+ borderWidth: 0
17
+ },
18
+ sm: {
19
+ paddingVertical: theme.tokens.spacing.sm,
20
+ paddingHorizontal: theme.tokens.spacing.md
21
+ },
22
+ md: {
23
+ paddingVertical: theme.tokens.spacing.lg - 1,
24
+ paddingHorizontal: theme.tokens.spacing.xl
25
+ },
26
+ lg: {
27
+ paddingVertical: theme.tokens.spacing.lg + 2,
28
+ paddingHorizontal: theme.tokens.spacing.xxl
29
+ },
30
+ link: {
31
+ paddingVertical: theme.tokens.spacing.xs,
32
+ paddingHorizontal: 0,
33
+ justifyContent: 'flex-start'
34
+ },
35
+ outline: {
36
+ borderWidth: 1
37
+ },
38
+ filledShadow: {
39
+ ...theme.tokens.shadow.md,
40
+ shadowColor: '#000'
41
+ },
42
+ text: {
43
+ fontWeight: theme.tokens.fontWeight.semibold,
44
+ textAlign: 'center'
45
+ },
46
+ textSm: {
47
+ fontSize: theme.tokens.fontSize.sm
48
+ },
49
+ textMd: {
50
+ fontSize: theme.tokens.fontSize.lg
51
+ },
52
+ textLg: {
53
+ fontSize: theme.tokens.fontSize.xl
54
+ },
55
+ underline: {
56
+ textDecorationLine: 'underline'
57
+ },
58
+ iconLeft: {
59
+ marginRight: theme.tokens.spacing.sm
60
+ },
61
+ iconRight: {
62
+ marginLeft: theme.tokens.spacing.sm
63
+ }
64
+ }));
65
+ function resolveColors(variant, disabled, colors) {
66
+ if (disabled) {
67
+ return {
68
+ background: colors.inputBackground,
69
+ text: colors.textLight,
70
+ border: 'transparent'
71
+ };
72
+ }
73
+ switch (variant) {
74
+ case 'outline':
75
+ return {
76
+ background: 'transparent',
77
+ text: colors.primary,
78
+ border: colors.primary
79
+ };
80
+ case 'ghost':
81
+ return {
82
+ background: 'transparent',
83
+ text: colors.primary,
84
+ border: 'transparent'
85
+ };
86
+ case 'link':
87
+ return {
88
+ background: 'transparent',
89
+ text: colors.primary,
90
+ border: 'transparent'
91
+ };
92
+ case 'secondary':
93
+ return {
94
+ background: colors.secondary,
95
+ text: colors.white,
96
+ border: 'transparent'
97
+ };
98
+ case 'destructive':
99
+ return {
100
+ background: colors.error,
101
+ text: colors.white,
102
+ border: 'transparent'
103
+ };
104
+ case 'primary':
105
+ default:
106
+ return {
107
+ background: colors.primary,
108
+ text: colors.white,
109
+ border: 'transparent'
110
+ };
111
+ }
112
+ }
113
+
114
+ /**
115
+ * Button
116
+ * Único componente de botón de la librería. `variant` decide el estilo
117
+ * semántico, `size` la densidad. El feedback de "presionado" anima solo
118
+ * `transform` (Animated.spring, useNativeDriver) — nunca opacity ni layout.
119
+ */
120
+ export const Button = /*#__PURE__*/memo(({
121
+ title,
122
+ onPress,
123
+ variant = 'primary',
124
+ size = 'md',
125
+ loading = false,
126
+ disabled = false,
127
+ style,
128
+ textStyle,
129
+ leftIcon,
130
+ rightIcon,
131
+ leftIconName,
132
+ rightIconName,
133
+ iconColor,
134
+ testID,
135
+ accessibilityLabel
136
+ }) => {
137
+ const styles = useStyles();
138
+ const colors = useColors();
139
+ const theme = useTheme();
140
+ const allowFontScaling = useAllowFontScaling();
141
+ const scale = useRef(new Animated.Value(1)).current;
142
+ const isDisabled = disabled || loading;
143
+ const isFilled = variant === 'primary' || variant === 'secondary' || variant === 'destructive';
144
+ const resolved = resolveColors(variant, disabled, colors);
145
+ const effectiveIconColor = iconColor ?? resolved.text;
146
+ const animateTo = value => {
147
+ Animated.spring(scale, {
148
+ toValue: value,
149
+ useNativeDriver: true,
150
+ speed: 50,
151
+ bounciness: 6
152
+ }).start();
153
+ };
154
+ const containerStyle = [styles.base, styles[size], variant === 'link' && styles.link, variant === 'outline' && [styles.outline, {
155
+ borderColor: resolved.border
156
+ }], {
157
+ backgroundColor: resolved.background
158
+ }, isFilled && !disabled && styles.filledShadow, {
159
+ opacity: isDisabled ? 0.7 : 1
160
+ }, style];
161
+ const labelStyle = [styles.text, size === 'sm' ? styles.textSm : size === 'lg' ? styles.textLg : styles.textMd, {
162
+ color: resolved.text
163
+ }, variant === 'link' && styles.underline, textStyle];
164
+ const iconSize = size === 'sm' ? 16 : size === 'lg' ? 22 : 20;
165
+ return (
166
+ /*#__PURE__*/
167
+ // El Pressable ES el contenedor animado, no un wrapper alrededor de uno.
168
+ // Con un Animated.View interno, un `style` de layout (flex, width,
169
+ // margin) caía en el hijo mientras el Pressable — que es quien ocupa
170
+ // lugar en el layout del padre — quedaba sin él: el ancho colapsaba y
171
+ // el label desaparecía (visible en los botones en fila del Alert).
172
+ _jsx(AnimatedPressable, {
173
+ onPress: onPress,
174
+ onPressIn: () => {
175
+ if (!isDisabled) animateTo(0.95);
176
+ },
177
+ onPressOut: () => {
178
+ if (!isDisabled) animateTo(1);
179
+ },
180
+ disabled: isDisabled,
181
+ testID: testID,
182
+ accessibilityRole: "button",
183
+ accessibilityLabel: accessibilityLabel ?? title,
184
+ accessibilityState: {
185
+ disabled: isDisabled,
186
+ busy: loading
187
+ },
188
+ style: [containerStyle, {
189
+ transform: [{
190
+ scale
191
+ }]
192
+ }],
193
+ children: loading ? /*#__PURE__*/_jsx(ActivityIndicator, {
194
+ size: "small",
195
+ color: resolved.text
196
+ }) : /*#__PURE__*/_jsxs(_Fragment, {
197
+ children: [leftIcon, !leftIcon && leftIconName && /*#__PURE__*/_jsx(Icon, {
198
+ name: leftIconName,
199
+ size: iconSize,
200
+ color: effectiveIconColor,
201
+ style: styles.iconLeft
202
+ }), /*#__PURE__*/_jsx(Text, {
203
+ allowFontScaling: allowFontScaling,
204
+ style: labelStyle,
205
+ children: title
206
+ }), rightIcon, !rightIcon && rightIconName && /*#__PURE__*/_jsx(Icon, {
207
+ name: rightIconName,
208
+ size: iconSize,
209
+ color: effectiveIconColor,
210
+ style: styles.iconRight
211
+ })]
212
+ })
213
+ })
214
+ );
215
+ });
216
+ Button.displayName = 'Button';
217
+ //# sourceMappingURL=Button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","memo","useRef","ActivityIndicator","Animated","Pressable","Text","createStyles","useAllowFontScaling","useColors","useTheme","Icon","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","AnimatedPressable","createAnimatedComponent","useStyles","theme","base","flexDirection","alignItems","justifyContent","borderRadius","tokens","radius","lg","borderWidth","sm","paddingVertical","spacing","paddingHorizontal","md","xl","xxl","link","xs","outline","filledShadow","shadow","shadowColor","text","fontWeight","semibold","textAlign","textSm","fontSize","textMd","textLg","underline","textDecorationLine","iconLeft","marginRight","iconRight","marginLeft","resolveColors","variant","disabled","colors","background","inputBackground","textLight","border","primary","secondary","white","error","Button","title","onPress","size","loading","style","textStyle","leftIcon","rightIcon","leftIconName","rightIconName","iconColor","testID","accessibilityLabel","styles","allowFontScaling","scale","Value","current","isDisabled","isFilled","resolved","effectiveIconColor","animateTo","value","spring","toValue","useNativeDriver","speed","bounciness","start","containerStyle","borderColor","backgroundColor","opacity","labelStyle","color","iconSize","onPressIn","onPressOut","accessibilityRole","accessibilityState","busy","transform","children","name","displayName"],"sourceRoot":"../../../src","sources":["atoms/Button.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ import React, { memo } from 'react';
4
+ import { View } from 'react-native';
5
+ import { createStyles } from '../theme/createStyles';
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ const useStyles = createStyles(theme => ({
8
+ card: {
9
+ backgroundColor: theme.colors.surface,
10
+ borderRadius: theme.tokens.radius.xl,
11
+ padding: theme.tokens.spacing.lg,
12
+ ...theme.tokens.shadow.sm
13
+ }
14
+ }));
15
+ export const Card = /*#__PURE__*/memo(({
16
+ children,
17
+ style,
18
+ ...props
19
+ }) => {
20
+ const styles = useStyles();
21
+ return /*#__PURE__*/_jsx(View, {
22
+ style: [styles.card, style],
23
+ ...props,
24
+ children: children
25
+ });
26
+ });
27
+ Card.displayName = 'Card';
28
+ //# sourceMappingURL=Card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","memo","View","createStyles","jsx","_jsx","useStyles","theme","card","backgroundColor","colors","surface","borderRadius","tokens","radius","xl","padding","spacing","lg","shadow","sm","Card","children","style","props","styles","displayName"],"sourceRoot":"../../../src","sources":["atoms/Card.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,IAAI,QAAQ,OAAO;AACnC,SAASC,IAAI,QAAwC,cAAc;AACnE,SAASC,YAAY,QAAQ,uBAAuB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAOrD,MAAMC,SAAS,GAAGH,YAAY,CAAEI,KAAK,KAAM;EACzCC,IAAI,EAAE;IACJC,eAAe,EAAEF,KAAK,CAACG,MAAM,CAACC,OAAO;IACrCC,YAAY,EAAEL,KAAK,CAACM,MAAM,CAACC,MAAM,CAACC,EAAE;IACpCC,OAAO,EAAET,KAAK,CAACM,MAAM,CAACI,OAAO,CAACC,EAAE;IAChC,GAAGX,KAAK,CAACM,MAAM,CAACM,MAAM,CAACC;EACzB;AACF,CAAC,CAAC,CAAC;AAEH,OAAO,MAAMC,IAAI,gBAAGpB,IAAI,CAAC,CAAC;EAAEqB,QAAQ;EAAEC,KAAK;EAAE,GAAGC;AAAiB,CAAC,KAAK;EACrE,MAAMC,MAAM,GAAGnB,SAAS,CAAC,CAAC;EAC1B,oBACED,IAAA,CAACH,IAAI;IAACqB,KAAK,EAAE,CAACE,MAAM,CAACjB,IAAI,EAAEe,KAAK,CAAE;IAAA,GAAKC,KAAK;IAAAF,QAAA,EACzCA;EAAQ,CACL,CAAC;AAEX,CAAC,CAAC;AACFD,IAAI,CAACK,WAAW,GAAG,MAAM","ignoreList":[]}
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+
3
+ import React, { memo, useEffect, useRef } from 'react';
4
+ import { Animated, Text, TouchableOpacity } 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
+ flexDirection: 'row',
12
+ alignItems: 'center',
13
+ marginBottom: theme.tokens.spacing.sm
14
+ },
15
+ box: {
16
+ width: 24,
17
+ height: 24,
18
+ borderRadius: theme.tokens.radius.sm,
19
+ borderWidth: 2,
20
+ justifyContent: 'center',
21
+ alignItems: 'center',
22
+ marginRight: theme.tokens.spacing.sm + 2
23
+ },
24
+ label: {
25
+ fontSize: theme.tokens.fontSize.md,
26
+ color: theme.colors.text
27
+ }
28
+ }));
29
+ export const Checkbox = /*#__PURE__*/memo(({
30
+ value,
31
+ onValueChange,
32
+ label,
33
+ color,
34
+ disabled,
35
+ testID
36
+ }) => {
37
+ const colors = useColors();
38
+ const styles = useStyles();
39
+ const allowFontScaling = useAllowFontScaling();
40
+ const activeColor = color || colors.primary;
41
+ const progress = useRef(new Animated.Value(value ? 1 : 0)).current;
42
+ const checkScale = useRef(new Animated.Value(value ? 1 : 0)).current;
43
+ useEffect(() => {
44
+ Animated.timing(progress, {
45
+ toValue: value ? 1 : 0,
46
+ duration: 150,
47
+ useNativeDriver: false
48
+ }).start();
49
+ Animated.spring(checkScale, {
50
+ toValue: value ? 1 : 0,
51
+ useNativeDriver: true,
52
+ speed: 40,
53
+ bounciness: 10
54
+ }).start();
55
+ }, [value]);
56
+ const backgroundColor = progress.interpolate({
57
+ inputRange: [0, 1],
58
+ outputRange: [colors.surface, activeColor]
59
+ });
60
+ const borderColor = progress.interpolate({
61
+ inputRange: [0, 1],
62
+ outputRange: [colors.border, activeColor]
63
+ });
64
+ return /*#__PURE__*/_jsxs(TouchableOpacity, {
65
+ style: styles.container,
66
+ activeOpacity: 0.7,
67
+ disabled: disabled,
68
+ onPress: () => onValueChange(!value),
69
+ accessibilityRole: "checkbox",
70
+ accessibilityState: {
71
+ checked: value,
72
+ disabled: !!disabled
73
+ },
74
+ accessibilityLabel: label,
75
+ testID: testID,
76
+ children: [/*#__PURE__*/_jsx(Animated.View, {
77
+ style: [styles.box, {
78
+ backgroundColor,
79
+ borderColor,
80
+ opacity: disabled ? 0.5 : 1
81
+ }],
82
+ children: /*#__PURE__*/_jsx(Animated.View, {
83
+ style: {
84
+ transform: [{
85
+ scale: checkScale
86
+ }]
87
+ },
88
+ children: /*#__PURE__*/_jsx(Icon, {
89
+ name: "check",
90
+ size: 16,
91
+ color: colors.white
92
+ })
93
+ })
94
+ }), label && /*#__PURE__*/_jsx(Text, {
95
+ allowFontScaling: allowFontScaling,
96
+ style: styles.label,
97
+ children: label
98
+ })]
99
+ });
100
+ });
101
+ Checkbox.displayName = 'Checkbox';
102
+ //# sourceMappingURL=Checkbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","memo","useEffect","useRef","Animated","Text","TouchableOpacity","createStyles","useAllowFontScaling","useColors","Icon","jsx","_jsx","jsxs","_jsxs","useStyles","theme","container","flexDirection","alignItems","marginBottom","tokens","spacing","sm","box","width","height","borderRadius","radius","borderWidth","justifyContent","marginRight","label","fontSize","md","color","colors","text","Checkbox","value","onValueChange","disabled","testID","styles","allowFontScaling","activeColor","primary","progress","Value","current","checkScale","timing","toValue","duration","useNativeDriver","start","spring","speed","bounciness","backgroundColor","interpolate","inputRange","outputRange","surface","borderColor","border","style","activeOpacity","onPress","accessibilityRole","accessibilityState","checked","accessibilityLabel","children","View","opacity","transform","scale","name","size","white","displayName"],"sourceRoot":"../../../src","sources":["atoms/Checkbox.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ import React, { memo } from 'react';
4
+ import { View } from 'react-native';
5
+ import { useColors } from '../theme/UIProvider';
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ export const Divider = /*#__PURE__*/memo(({
8
+ style,
9
+ testID
10
+ }) => {
11
+ const colors = useColors();
12
+ return /*#__PURE__*/_jsx(View, {
13
+ testID: testID,
14
+ style: [{
15
+ height: 1,
16
+ backgroundColor: colors.border,
17
+ width: '100%'
18
+ }, style]
19
+ });
20
+ });
21
+ Divider.displayName = 'Divider';
22
+ //# sourceMappingURL=Divider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","memo","View","useColors","jsx","_jsx","Divider","style","testID","colors","height","backgroundColor","border","width","displayName"],"sourceRoot":"../../../src","sources":["atoms/Divider.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,IAAI,QAAQ,OAAO;AACnC,SAASC,IAAI,QAAwC,cAAc;AACnE,SAASC,SAAS,QAAQ,qBAAqB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAOhD,OAAO,MAAMC,OAAO,gBAAGL,IAAI,CAAC,CAAC;EAAEM,KAAK;EAAEC;AAAqB,CAAC,KAAK;EAC/D,MAAMC,MAAM,GAAGN,SAAS,CAAC,CAAC;EAC1B,oBAAOE,IAAA,CAACH,IAAI;IAACM,MAAM,EAAEA,MAAO;IAACD,KAAK,EAAE,CAAC;MAAEG,MAAM,EAAE,CAAC;MAAEC,eAAe,EAAEF,MAAM,CAACG,MAAM;MAAEC,KAAK,EAAE;IAAO,CAAC,EAAEN,KAAK;EAAE,CAAE,CAAC;AAC/G,CAAC,CAAC;AACFD,OAAO,CAACQ,WAAW,GAAG,SAAS","ignoreList":[]}