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 @@
1
+ {"version":3,"names":["React","createContext","useCallback","useContext","useMemo","useRef","useState","Alert","jsx","_jsx","jsxs","_jsxs","AlertContext","undefined","HIDDEN","visible","title","type","buttons","AlertProvider","children","state","setState","resolverRef","hide","current","alertFn","options","Promise","resolve","message","text","confirmText","onPress","confirmFn","cancelText","style","variant","destructive","value","alert","confirm","Provider","onClose","useAlert","ctx","Error"],"sourceRoot":"../../../src","sources":["organisms/AlertProvider.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,149 @@
1
+ "use strict";
2
+
3
+ import React, { memo, useEffect, useRef, useState } from 'react';
4
+ import { Animated, Dimensions, Modal, PanResponder, Pressable, View } from 'react-native';
5
+ import { createStyles } from '../theme/createStyles';
6
+ import { useInsets } from '../theme/UIProvider';
7
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
8
+ const {
9
+ height: SCREEN_HEIGHT
10
+ } = Dimensions.get('window');
11
+ const DISMISS_THRESHOLD = 100;
12
+ const useStyles = createStyles(theme => ({
13
+ container: {
14
+ flex: 1,
15
+ justifyContent: 'flex-end'
16
+ },
17
+ backdrop: {
18
+ backgroundColor: theme.colors.overlay
19
+ },
20
+ sheet: {
21
+ backgroundColor: theme.colors.surface,
22
+ borderTopLeftRadius: theme.tokens.radius.xxl,
23
+ borderTopRightRadius: theme.tokens.radius.xxl,
24
+ paddingHorizontal: theme.tokens.spacing.xl,
25
+ ...theme.tokens.shadow.lg
26
+ },
27
+ handleArea: {
28
+ paddingVertical: theme.tokens.spacing.md,
29
+ alignItems: 'center'
30
+ },
31
+ handle: {
32
+ width: 40,
33
+ height: 5,
34
+ borderRadius: 3,
35
+ backgroundColor: theme.colors.border
36
+ }
37
+ }));
38
+ const absoluteFill = {
39
+ position: 'absolute',
40
+ top: 0,
41
+ left: 0,
42
+ right: 0,
43
+ bottom: 0
44
+ };
45
+
46
+ /**
47
+ * BottomSheet
48
+ * Modal que aparece desde abajo: animación con Animated (no la del Modal
49
+ * nativo) y arrastre para cerrar con PanResponder — no un gesture-handler
50
+ * externo, para mantener la librería en cero dependencias.
51
+ */
52
+ export const BottomSheet = /*#__PURE__*/memo(({
53
+ visible,
54
+ onClose,
55
+ children,
56
+ closeAccessibilityLabel = 'Close'
57
+ }) => {
58
+ const styles = useStyles();
59
+ const insets = useInsets();
60
+ const [mounted, setMounted] = useState(visible);
61
+ const translateY = useRef(new Animated.Value(SCREEN_HEIGHT)).current;
62
+ const backdropOpacity = useRef(new Animated.Value(0)).current;
63
+ useEffect(() => {
64
+ if (visible) {
65
+ setMounted(true);
66
+ Animated.timing(translateY, {
67
+ toValue: 0,
68
+ duration: 250,
69
+ useNativeDriver: true
70
+ }).start();
71
+ Animated.timing(backdropOpacity, {
72
+ toValue: 1,
73
+ duration: 250,
74
+ useNativeDriver: true
75
+ }).start();
76
+ } else {
77
+ Animated.timing(translateY, {
78
+ toValue: SCREEN_HEIGHT,
79
+ duration: 200,
80
+ useNativeDriver: true
81
+ }).start(({
82
+ finished
83
+ }) => {
84
+ if (finished) setMounted(false);
85
+ });
86
+ Animated.timing(backdropOpacity, {
87
+ toValue: 0,
88
+ duration: 200,
89
+ useNativeDriver: true
90
+ }).start();
91
+ }
92
+ }, [visible]);
93
+ const panResponder = useRef(PanResponder.create({
94
+ onMoveShouldSetPanResponder: (_, gesture) => gesture.dy > 5 && Math.abs(gesture.dy) > Math.abs(gesture.dx),
95
+ onPanResponderMove: (_, gesture) => {
96
+ if (gesture.dy > 0) translateY.setValue(gesture.dy);
97
+ },
98
+ onPanResponderRelease: (_, gesture) => {
99
+ if (gesture.dy > DISMISS_THRESHOLD) {
100
+ onClose();
101
+ } else {
102
+ Animated.timing(translateY, {
103
+ toValue: 0,
104
+ duration: 150,
105
+ useNativeDriver: true
106
+ }).start();
107
+ }
108
+ }
109
+ })).current;
110
+ if (!mounted) return null;
111
+ return /*#__PURE__*/_jsx(Modal, {
112
+ visible: true,
113
+ transparent: true,
114
+ animationType: "none",
115
+ statusBarTranslucent: true,
116
+ onRequestClose: onClose,
117
+ children: /*#__PURE__*/_jsxs(View, {
118
+ style: styles.container,
119
+ children: [/*#__PURE__*/_jsx(Animated.View, {
120
+ style: [absoluteFill, styles.backdrop, {
121
+ opacity: backdropOpacity
122
+ }],
123
+ children: /*#__PURE__*/_jsx(Pressable, {
124
+ style: absoluteFill,
125
+ onPress: onClose,
126
+ accessibilityRole: "button",
127
+ accessibilityLabel: closeAccessibilityLabel
128
+ })
129
+ }), /*#__PURE__*/_jsxs(Animated.View, {
130
+ style: [styles.sheet, {
131
+ paddingBottom: Math.max(insets.bottom, 20)
132
+ }, {
133
+ transform: [{
134
+ translateY
135
+ }]
136
+ }],
137
+ children: [/*#__PURE__*/_jsx(View, {
138
+ style: styles.handleArea,
139
+ ...panResponder.panHandlers,
140
+ children: /*#__PURE__*/_jsx(View, {
141
+ style: styles.handle
142
+ })
143
+ }), children]
144
+ })]
145
+ })
146
+ });
147
+ });
148
+ BottomSheet.displayName = 'BottomSheet';
149
+ //# sourceMappingURL=BottomSheet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","memo","useEffect","useRef","useState","Animated","Dimensions","Modal","PanResponder","Pressable","View","createStyles","useInsets","jsx","_jsx","jsxs","_jsxs","height","SCREEN_HEIGHT","get","DISMISS_THRESHOLD","useStyles","theme","container","flex","justifyContent","backdrop","backgroundColor","colors","overlay","sheet","surface","borderTopLeftRadius","tokens","radius","xxl","borderTopRightRadius","paddingHorizontal","spacing","xl","shadow","lg","handleArea","paddingVertical","md","alignItems","handle","width","borderRadius","border","absoluteFill","position","top","left","right","bottom","BottomSheet","visible","onClose","children","closeAccessibilityLabel","styles","insets","mounted","setMounted","translateY","Value","current","backdropOpacity","timing","toValue","duration","useNativeDriver","start","finished","panResponder","create","onMoveShouldSetPanResponder","_","gesture","dy","Math","abs","dx","onPanResponderMove","setValue","onPanResponderRelease","transparent","animationType","statusBarTranslucent","onRequestClose","style","opacity","onPress","accessibilityRole","accessibilityLabel","paddingBottom","max","transform","panHandlers","displayName"],"sourceRoot":"../../../src","sources":["organisms/BottomSheet.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,142 @@
1
+ "use strict";
2
+
3
+ import React, { memo, useState } from 'react';
4
+ import { Text, TouchableOpacity, View } from 'react-native';
5
+ import { createStyles } from '../theme/createStyles';
6
+ import { useAllowFontScaling, useColors } from '../theme/UIProvider';
7
+ import { Modal } from './Modal';
8
+ import { DatePicker, DEFAULT_MONTH_NAMES } from './DatePicker';
9
+ import { Button } from '../atoms/Button';
10
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
+ function defaultFormat(date, monthNames) {
12
+ return `${monthNames[date.getMonth()]} ${date.getDate()}, ${date.getFullYear()}`;
13
+ }
14
+ const useStyles = createStyles(theme => ({
15
+ container: {
16
+ marginBottom: theme.tokens.spacing.lg,
17
+ width: '100%',
18
+ gap: theme.tokens.spacing.sm
19
+ },
20
+ label: {
21
+ fontSize: theme.tokens.fontSize.md,
22
+ fontWeight: theme.tokens.fontWeight.medium,
23
+ color: theme.colors.text
24
+ },
25
+ required: {
26
+ color: theme.colors.error
27
+ },
28
+ field: {
29
+ flexDirection: 'row',
30
+ alignItems: 'center',
31
+ justifyContent: 'space-between',
32
+ backgroundColor: theme.colors.inputBackground,
33
+ borderRadius: theme.tokens.radius.lg,
34
+ borderWidth: 2,
35
+ borderColor: theme.colors.border,
36
+ minHeight: 50,
37
+ paddingHorizontal: theme.tokens.spacing.lg
38
+ },
39
+ fieldError: {
40
+ borderColor: theme.colors.error
41
+ },
42
+ fieldText: {
43
+ fontSize: theme.tokens.fontSize.lg,
44
+ color: theme.colors.text
45
+ },
46
+ placeholder: {
47
+ color: theme.colors.textLight
48
+ },
49
+ errorText: {
50
+ fontSize: theme.tokens.fontSize.sm,
51
+ color: theme.colors.error
52
+ }
53
+ }));
54
+
55
+ /**
56
+ * DateField
57
+ * Campo de fecha: se ve como un Input, abre un `DatePicker` en un Modal al
58
+ * tocarlo. Sin picker nativo del sistema, así que se ve y se comporta igual
59
+ * en iOS y Android.
60
+ */
61
+ export const DateField = /*#__PURE__*/memo(({
62
+ label,
63
+ required = false,
64
+ value,
65
+ onChange,
66
+ placeholder = 'Select a date',
67
+ error,
68
+ disabled = false,
69
+ format,
70
+ modalTitle = 'Select date',
71
+ clearLabel = 'Clear',
72
+ containerStyle,
73
+ monthNames = DEFAULT_MONTH_NAMES,
74
+ ...pickerProps
75
+ }) => {
76
+ const colors = useColors();
77
+ const styles = useStyles();
78
+ const allowFontScaling = useAllowFontScaling();
79
+ const [open, setOpen] = useState(false);
80
+ const display = value ? format ? format(value) : defaultFormat(value, monthNames) : placeholder;
81
+ return /*#__PURE__*/_jsxs(View, {
82
+ style: [styles.container, containerStyle],
83
+ children: [!!label && /*#__PURE__*/_jsxs(Text, {
84
+ allowFontScaling: allowFontScaling,
85
+ style: styles.label,
86
+ children: [label, required && /*#__PURE__*/_jsx(Text, {
87
+ style: styles.required,
88
+ children: " *"
89
+ })]
90
+ }), /*#__PURE__*/_jsxs(TouchableOpacity, {
91
+ style: [styles.field, !!error && styles.fieldError, disabled && {
92
+ opacity: 0.5
93
+ }],
94
+ onPress: () => setOpen(true),
95
+ disabled: disabled,
96
+ activeOpacity: 0.7,
97
+ accessibilityRole: "button",
98
+ accessibilityLabel: label ?? placeholder,
99
+ accessibilityState: {
100
+ disabled,
101
+ expanded: open
102
+ },
103
+ children: [/*#__PURE__*/_jsx(Text, {
104
+ allowFontScaling: allowFontScaling,
105
+ style: [styles.fieldText, !value && styles.placeholder],
106
+ children: display
107
+ }), /*#__PURE__*/_jsx(Text, {
108
+ allowFontScaling: allowFontScaling,
109
+ style: {
110
+ color: colors.textLight
111
+ },
112
+ children: '▾'
113
+ })]
114
+ }), !!error && /*#__PURE__*/_jsx(Text, {
115
+ allowFontScaling: allowFontScaling,
116
+ style: styles.errorText,
117
+ children: error
118
+ }), /*#__PURE__*/_jsx(Modal, {
119
+ visible: open,
120
+ onClose: () => setOpen(false),
121
+ title: modalTitle,
122
+ variant: "overlay",
123
+ scrollable: false,
124
+ footer: /*#__PURE__*/_jsx(Button, {
125
+ title: clearLabel,
126
+ variant: "ghost",
127
+ onPress: () => setOpen(false)
128
+ }),
129
+ children: /*#__PURE__*/_jsx(DatePicker, {
130
+ value: value,
131
+ monthNames: monthNames,
132
+ ...pickerProps,
133
+ onChange: date => {
134
+ onChange(date);
135
+ setOpen(false);
136
+ }
137
+ })
138
+ })]
139
+ });
140
+ });
141
+ DateField.displayName = 'DateField';
142
+ //# sourceMappingURL=DateField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","memo","useState","Text","TouchableOpacity","View","createStyles","useAllowFontScaling","useColors","Modal","DatePicker","DEFAULT_MONTH_NAMES","Button","jsx","_jsx","jsxs","_jsxs","defaultFormat","date","monthNames","getMonth","getDate","getFullYear","useStyles","theme","container","marginBottom","tokens","spacing","lg","width","gap","sm","label","fontSize","md","fontWeight","medium","color","colors","text","required","error","field","flexDirection","alignItems","justifyContent","backgroundColor","inputBackground","borderRadius","radius","borderWidth","borderColor","border","minHeight","paddingHorizontal","fieldError","fieldText","placeholder","textLight","errorText","DateField","value","onChange","disabled","format","modalTitle","clearLabel","containerStyle","pickerProps","styles","allowFontScaling","open","setOpen","display","style","children","opacity","onPress","activeOpacity","accessibilityRole","accessibilityLabel","accessibilityState","expanded","visible","onClose","title","variant","scrollable","footer","displayName"],"sourceRoot":"../../../src","sources":["organisms/DateField.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,247 @@
1
+ "use strict";
2
+
3
+ import React, { memo, useMemo, useState } from 'react';
4
+ import { Text, TouchableOpacity, View } from 'react-native';
5
+ import { createStyles } from '../theme/createStyles';
6
+ import { useAllowFontScaling, useColors } from '../theme/UIProvider';
7
+ import { IconButton } from '../atoms/IconButton';
8
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
+ export const DEFAULT_MONTH_NAMES = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
10
+
11
+ /** Índice 0 = domingo, para alinear con Date.getDay(). */
12
+ export const DEFAULT_WEEKDAY_NAMES = ['S', 'M', 'T', 'W', 'T', 'F', 'S'];
13
+ /** Compara sólo año/mes/día, ignorando hora — dos Date del mismo día son "iguales". */
14
+ function isSameDay(a, b) {
15
+ return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate();
16
+ }
17
+ function startOfDay(d) {
18
+ return new Date(d.getFullYear(), d.getMonth(), d.getDate());
19
+ }
20
+
21
+ /** Estrictamente entre start y end, sin incluir los extremos. */
22
+ function isBetween(day, start, end) {
23
+ const t = startOfDay(day).getTime();
24
+ return t > startOfDay(start).getTime() && t < startOfDay(end).getTime();
25
+ }
26
+ function isOutOfRange(day, minDate, maxDate) {
27
+ const t = startOfDay(day).getTime();
28
+ if (minDate && t < startOfDay(minDate).getTime()) return true;
29
+ if (maxDate && t > startOfDay(maxDate).getTime()) return true;
30
+ return false;
31
+ }
32
+
33
+ /**
34
+ * Devuelve la grilla del mes: 6 filas de 7 celdas. Las celdas fuera del mes
35
+ * son null, así el layout no salta de alto entre meses (un mes puede
36
+ * necesitar 4, 5 o 6 filas según en qué día caiga el 1).
37
+ */
38
+ export function buildMonthGrid(year, month, firstDayOfWeek) {
39
+ const first = new Date(year, month, 1);
40
+ const daysInMonth = new Date(year, month + 1, 0).getDate();
41
+ const leading = (first.getDay() - firstDayOfWeek + 7) % 7;
42
+ const cells = [];
43
+ for (let i = 0; i < leading; i++) cells.push(null);
44
+ for (let d = 1; d <= daysInMonth; d++) cells.push(new Date(year, month, d));
45
+ while (cells.length < 42) cells.push(null);
46
+ const rows = [];
47
+ for (let r = 0; r < 6; r++) rows.push(cells.slice(r * 7, r * 7 + 7));
48
+ return rows;
49
+ }
50
+ const useStyles = createStyles(theme => ({
51
+ container: {
52
+ backgroundColor: theme.colors.surface,
53
+ borderRadius: theme.tokens.radius.lg,
54
+ borderWidth: 1,
55
+ borderColor: theme.colors.border,
56
+ padding: theme.tokens.spacing.md
57
+ },
58
+ header: {
59
+ flexDirection: 'row',
60
+ alignItems: 'center',
61
+ justifyContent: 'space-between',
62
+ marginBottom: theme.tokens.spacing.sm
63
+ },
64
+ monthLabel: {
65
+ fontSize: theme.tokens.fontSize.lg,
66
+ fontWeight: theme.tokens.fontWeight.semibold,
67
+ color: theme.colors.text
68
+ },
69
+ weekRow: {
70
+ flexDirection: 'row'
71
+ },
72
+ weekday: {
73
+ flex: 1,
74
+ textAlign: 'center',
75
+ fontSize: theme.tokens.fontSize.xs,
76
+ fontWeight: theme.tokens.fontWeight.semibold,
77
+ color: theme.colors.textLight,
78
+ paddingVertical: theme.tokens.spacing.sm
79
+ },
80
+ row: {
81
+ flexDirection: 'row'
82
+ },
83
+ cell: {
84
+ flex: 1,
85
+ aspectRatio: 1,
86
+ alignItems: 'center',
87
+ justifyContent: 'center'
88
+ },
89
+ dayButton: {
90
+ width: 36,
91
+ height: 36,
92
+ borderRadius: 18,
93
+ alignItems: 'center',
94
+ justifyContent: 'center'
95
+ },
96
+ dayText: {
97
+ fontSize: theme.tokens.fontSize.md,
98
+ color: theme.colors.text
99
+ },
100
+ daySelected: {
101
+ backgroundColor: theme.colors.primary
102
+ },
103
+ dayTextSelected: {
104
+ color: theme.colors.white,
105
+ fontWeight: theme.tokens.fontWeight.bold
106
+ },
107
+ // El resaltado del tramo intermedio va en la celda (cuadrada, sin gaps) y
108
+ // no en el botón redondo, así la barra del rango se ve continua.
109
+ cellInRange: {
110
+ backgroundColor: theme.colors.primary + '1f'
111
+ },
112
+ cellRangeStart: {
113
+ borderTopLeftRadius: 18,
114
+ borderBottomLeftRadius: 18
115
+ },
116
+ cellRangeEnd: {
117
+ borderTopRightRadius: 18,
118
+ borderBottomRightRadius: 18
119
+ },
120
+ dayTextInRange: {
121
+ color: theme.colors.primary,
122
+ fontWeight: theme.tokens.fontWeight.semibold
123
+ },
124
+ dayToday: {
125
+ borderWidth: 1,
126
+ borderColor: theme.colors.primary
127
+ },
128
+ dayTextDisabled: {
129
+ color: theme.colors.textLight,
130
+ opacity: 0.4
131
+ }
132
+ }));
133
+
134
+ /**
135
+ * DatePicker
136
+ * Calendario mensual dibujado con View/Text puros — sin
137
+ * @react-native-community/datetimepicker ni ningún picker nativo, para
138
+ * mantener la librería en cero dependencias y verse igual en iOS y Android.
139
+ */
140
+ export const DatePicker = /*#__PURE__*/memo(({
141
+ mode = 'single',
142
+ value,
143
+ onChange,
144
+ range,
145
+ onRangeChange,
146
+ minDate,
147
+ maxDate,
148
+ defaultMonth,
149
+ monthNames = DEFAULT_MONTH_NAMES,
150
+ weekdayNames = DEFAULT_WEEKDAY_NAMES,
151
+ firstDayOfWeek = 0,
152
+ style,
153
+ testID
154
+ }) => {
155
+ const colors = useColors();
156
+ const styles = useStyles();
157
+ const allowFontScaling = useAllowFontScaling();
158
+ const isRange = mode === 'range';
159
+ const handlePress = day => {
160
+ if (!isRange) {
161
+ onChange?.(day);
162
+ return;
163
+ }
164
+ // Primer toque (o rango ya cerrado, o toque antes del inicio): arranca
165
+ // un rango nuevo. Segundo toque en adelante: lo cierra.
166
+ if (!range?.start || range.end || startOfDay(day) < startOfDay(range.start)) {
167
+ onRangeChange?.({
168
+ start: day
169
+ });
170
+ } else {
171
+ onRangeChange?.({
172
+ start: range.start,
173
+ end: day
174
+ });
175
+ }
176
+ };
177
+ const initial = value ?? range?.start ?? defaultMonth ?? new Date();
178
+ const [visibleMonth, setVisibleMonth] = useState(() => new Date(initial.getFullYear(), initial.getMonth(), 1));
179
+ const today = useMemo(() => new Date(), []);
180
+ const grid = useMemo(() => buildMonthGrid(visibleMonth.getFullYear(), visibleMonth.getMonth(), firstDayOfWeek), [visibleMonth, firstDayOfWeek]);
181
+ const orderedWeekdays = useMemo(() => firstDayOfWeek === 0 ? weekdayNames : [...weekdayNames.slice(1), weekdayNames[0]], [weekdayNames, firstDayOfWeek]);
182
+ const shiftMonth = delta => setVisibleMonth(m => new Date(m.getFullYear(), m.getMonth() + delta, 1));
183
+ const monthLabel = `${monthNames[visibleMonth.getMonth()]} ${visibleMonth.getFullYear()}`;
184
+ return /*#__PURE__*/_jsxs(View, {
185
+ style: [styles.container, style],
186
+ testID: testID,
187
+ children: [/*#__PURE__*/_jsxs(View, {
188
+ style: styles.header,
189
+ children: [/*#__PURE__*/_jsx(IconButton, {
190
+ iconName: "chevron-left",
191
+ accessibilityLabel: "Previous month",
192
+ onPress: () => shiftMonth(-1)
193
+ }), /*#__PURE__*/_jsx(Text, {
194
+ allowFontScaling: allowFontScaling,
195
+ style: styles.monthLabel,
196
+ accessibilityRole: "header",
197
+ children: monthLabel
198
+ }), /*#__PURE__*/_jsx(IconButton, {
199
+ iconName: "chevron-right",
200
+ accessibilityLabel: "Next month",
201
+ onPress: () => shiftMonth(1)
202
+ })]
203
+ }), /*#__PURE__*/_jsx(View, {
204
+ style: styles.weekRow,
205
+ children: orderedWeekdays.map((w, i) => /*#__PURE__*/_jsx(Text, {
206
+ allowFontScaling: allowFontScaling,
207
+ style: styles.weekday,
208
+ children: w
209
+ }, `${w}-${i}`))
210
+ }), grid.map((row, rowIndex) => /*#__PURE__*/_jsx(View, {
211
+ style: styles.row,
212
+ children: row.map((day, cellIndex) => {
213
+ if (!day) return /*#__PURE__*/_jsx(View, {
214
+ style: styles.cell
215
+ }, cellIndex);
216
+ const isStart = isRange && !!range?.start && isSameDay(day, range.start);
217
+ const isEnd = isRange && !!range?.end && isSameDay(day, range.end);
218
+ const inRange = isRange && !!range?.start && !!range.end && isBetween(day, range.start, range.end);
219
+ const selected = isRange ? isStart || isEnd : !!value && isSameDay(day, value);
220
+ const disabled = isOutOfRange(day, minDate, maxDate);
221
+ const isToday = isSameDay(day, today);
222
+ return /*#__PURE__*/_jsx(View, {
223
+ style: [styles.cell, (inRange || isStart && !!range?.end || isEnd) && styles.cellInRange, isStart && !!range?.end && styles.cellRangeStart, isEnd && styles.cellRangeEnd],
224
+ children: /*#__PURE__*/_jsx(TouchableOpacity, {
225
+ style: [styles.dayButton, selected && styles.daySelected, !selected && isToday && styles.dayToday],
226
+ onPress: () => handlePress(day),
227
+ disabled: disabled,
228
+ activeOpacity: 0.7,
229
+ accessibilityRole: "button",
230
+ accessibilityLabel: `${monthNames[day.getMonth()]} ${day.getDate()}, ${day.getFullYear()}`,
231
+ accessibilityState: {
232
+ selected,
233
+ disabled
234
+ },
235
+ children: /*#__PURE__*/_jsx(Text, {
236
+ allowFontScaling: allowFontScaling,
237
+ style: [styles.dayText, inRange && styles.dayTextInRange, selected && styles.dayTextSelected, disabled && styles.dayTextDisabled],
238
+ children: day.getDate()
239
+ })
240
+ })
241
+ }, cellIndex);
242
+ })
243
+ }, rowIndex))]
244
+ });
245
+ });
246
+ DatePicker.displayName = 'DatePicker';
247
+ //# sourceMappingURL=DatePicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","memo","useMemo","useState","Text","TouchableOpacity","View","createStyles","useAllowFontScaling","useColors","IconButton","jsx","_jsx","jsxs","_jsxs","DEFAULT_MONTH_NAMES","DEFAULT_WEEKDAY_NAMES","isSameDay","a","b","getFullYear","getMonth","getDate","startOfDay","d","Date","isBetween","day","start","end","t","getTime","isOutOfRange","minDate","maxDate","buildMonthGrid","year","month","firstDayOfWeek","first","daysInMonth","leading","getDay","cells","i","push","length","rows","r","slice","useStyles","theme","container","backgroundColor","colors","surface","borderRadius","tokens","radius","lg","borderWidth","borderColor","border","padding","spacing","md","header","flexDirection","alignItems","justifyContent","marginBottom","sm","monthLabel","fontSize","fontWeight","semibold","color","text","weekRow","weekday","flex","textAlign","xs","textLight","paddingVertical","row","cell","aspectRatio","dayButton","width","height","dayText","daySelected","primary","dayTextSelected","white","bold","cellInRange","cellRangeStart","borderTopLeftRadius","borderBottomLeftRadius","cellRangeEnd","borderTopRightRadius","borderBottomRightRadius","dayTextInRange","dayToday","dayTextDisabled","opacity","DatePicker","mode","value","onChange","range","onRangeChange","defaultMonth","monthNames","weekdayNames","style","testID","styles","allowFontScaling","isRange","handlePress","initial","visibleMonth","setVisibleMonth","today","grid","orderedWeekdays","shiftMonth","delta","m","children","iconName","accessibilityLabel","onPress","accessibilityRole","map","w","rowIndex","cellIndex","isStart","isEnd","inRange","selected","disabled","isToday","activeOpacity","accessibilityState","displayName"],"sourceRoot":"../../../src","sources":["organisms/DatePicker.tsx"],"mappings":"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","ignoreList":[]}