@umituz/react-native-design-system 1.3.1 → 1.3.3

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 (350) hide show
  1. package/README.md +1 -1
  2. package/lib/domains/icons/domain/config/IconLibraryConfig.d.ts +91 -0
  3. package/lib/domains/icons/domain/config/IconLibraryConfig.d.ts.map +1 -0
  4. package/lib/domains/icons/domain/config/IconLibraryConfig.js +85 -0
  5. package/lib/domains/icons/domain/config/IconLibraryConfig.js.map +1 -0
  6. package/lib/domains/icons/domain/entities/Icon.d.ts +111 -0
  7. package/lib/domains/icons/domain/entities/Icon.d.ts.map +1 -0
  8. package/lib/domains/icons/domain/entities/Icon.js +87 -0
  9. package/lib/domains/icons/domain/entities/Icon.js.map +1 -0
  10. package/lib/domains/icons/domain/interfaces/IIconAdapter.d.ts +114 -0
  11. package/lib/domains/icons/domain/interfaces/IIconAdapter.d.ts.map +1 -0
  12. package/lib/domains/icons/domain/interfaces/IIconAdapter.js +17 -0
  13. package/lib/domains/icons/domain/interfaces/IIconAdapter.js.map +1 -0
  14. package/lib/domains/icons/index.d.ts +84 -0
  15. package/lib/domains/icons/index.d.ts.map +1 -0
  16. package/lib/domains/icons/index.js +89 -0
  17. package/lib/domains/icons/index.js.map +1 -0
  18. package/lib/domains/icons/infrastructure/adapters/LucideAdapter.d.ts +24 -0
  19. package/lib/domains/icons/infrastructure/adapters/LucideAdapter.d.ts.map +1 -0
  20. package/lib/domains/icons/infrastructure/adapters/LucideAdapter.js +85 -0
  21. package/lib/domains/icons/infrastructure/adapters/LucideAdapter.js.map +1 -0
  22. package/lib/domains/icons/infrastructure/registries/ExpoIconRegistry.d.ts +23 -0
  23. package/lib/domains/icons/infrastructure/registries/ExpoIconRegistry.d.ts.map +1 -0
  24. package/lib/domains/icons/infrastructure/registries/ExpoIconRegistry.js +178 -0
  25. package/lib/domains/icons/infrastructure/registries/ExpoIconRegistry.js.map +1 -0
  26. package/lib/domains/icons/presentation/components/Icon.d.ts +42 -0
  27. package/lib/domains/icons/presentation/components/Icon.d.ts.map +1 -0
  28. package/lib/domains/icons/presentation/components/Icon.js +86 -0
  29. package/lib/domains/icons/presentation/components/Icon.js.map +1 -0
  30. package/lib/domains/icons/presentation/hooks/useIconLibrary.d.ts +38 -0
  31. package/lib/domains/icons/presentation/hooks/useIconLibrary.d.ts.map +1 -0
  32. package/lib/domains/icons/presentation/hooks/useIconLibrary.js +114 -0
  33. package/lib/domains/icons/presentation/hooks/useIconLibrary.js.map +1 -0
  34. package/lib/index.d.ts +66 -0
  35. package/lib/index.d.ts.map +1 -0
  36. package/lib/index.js +106 -0
  37. package/lib/index.js.map +1 -0
  38. package/lib/infrastructure/theme/globalThemeStore.d.ts +42 -0
  39. package/lib/infrastructure/theme/globalThemeStore.d.ts.map +1 -0
  40. package/lib/infrastructure/theme/globalThemeStore.js +38 -0
  41. package/lib/infrastructure/theme/globalThemeStore.js.map +1 -0
  42. package/lib/presentation/atoms/AtomicAvatar.d.ts +48 -0
  43. package/lib/presentation/atoms/AtomicAvatar.d.ts.map +1 -0
  44. package/lib/presentation/atoms/AtomicAvatar.js +85 -0
  45. package/lib/presentation/atoms/AtomicAvatar.js.map +1 -0
  46. package/lib/presentation/atoms/AtomicAvatarGroup.d.ts +56 -0
  47. package/lib/presentation/atoms/AtomicAvatarGroup.d.ts.map +1 -0
  48. package/lib/presentation/atoms/AtomicAvatarGroup.js +83 -0
  49. package/lib/presentation/atoms/AtomicAvatarGroup.js.map +1 -0
  50. package/lib/presentation/atoms/AtomicBadge.d.ts +42 -0
  51. package/lib/presentation/atoms/AtomicBadge.d.ts.map +1 -0
  52. package/lib/presentation/atoms/AtomicBadge.js +168 -0
  53. package/lib/presentation/atoms/AtomicBadge.js.map +1 -0
  54. package/lib/presentation/atoms/AtomicButton.d.ts +22 -0
  55. package/lib/presentation/atoms/AtomicButton.d.ts.map +1 -0
  56. package/lib/presentation/atoms/AtomicButton.js +193 -0
  57. package/lib/presentation/atoms/AtomicButton.js.map +1 -0
  58. package/lib/presentation/atoms/AtomicCard.d.ts +15 -0
  59. package/lib/presentation/atoms/AtomicCard.d.ts.map +1 -0
  60. package/lib/presentation/atoms/AtomicCard.js +89 -0
  61. package/lib/presentation/atoms/AtomicCard.js.map +1 -0
  62. package/lib/presentation/atoms/AtomicChip.d.ts +53 -0
  63. package/lib/presentation/atoms/AtomicChip.d.ts.map +1 -0
  64. package/lib/presentation/atoms/AtomicChip.js +131 -0
  65. package/lib/presentation/atoms/AtomicChip.js.map +1 -0
  66. package/lib/presentation/atoms/AtomicDatePicker.d.ts +75 -0
  67. package/lib/presentation/atoms/AtomicDatePicker.d.ts.map +1 -0
  68. package/lib/presentation/atoms/AtomicDatePicker.js +246 -0
  69. package/lib/presentation/atoms/AtomicDatePicker.js.map +1 -0
  70. package/lib/presentation/atoms/AtomicDivider.d.ts +45 -0
  71. package/lib/presentation/atoms/AtomicDivider.d.ts.map +1 -0
  72. package/lib/presentation/atoms/AtomicDivider.js +58 -0
  73. package/lib/presentation/atoms/AtomicDivider.js.map +1 -0
  74. package/lib/presentation/atoms/AtomicFab.d.ts +38 -0
  75. package/lib/presentation/atoms/AtomicFab.d.ts.map +1 -0
  76. package/lib/presentation/atoms/AtomicFab.js +69 -0
  77. package/lib/presentation/atoms/AtomicFab.js.map +1 -0
  78. package/lib/presentation/atoms/AtomicFilter.d.ts +37 -0
  79. package/lib/presentation/atoms/AtomicFilter.d.ts.map +1 -0
  80. package/lib/presentation/atoms/AtomicFilter.js +104 -0
  81. package/lib/presentation/atoms/AtomicFilter.js.map +1 -0
  82. package/lib/presentation/atoms/AtomicFormError.d.ts +30 -0
  83. package/lib/presentation/atoms/AtomicFormError.d.ts.map +1 -0
  84. package/lib/presentation/atoms/AtomicFormError.js +64 -0
  85. package/lib/presentation/atoms/AtomicFormError.js.map +1 -0
  86. package/lib/presentation/atoms/AtomicIcon.d.ts +36 -0
  87. package/lib/presentation/atoms/AtomicIcon.d.ts.map +1 -0
  88. package/lib/presentation/atoms/AtomicIcon.js +30 -0
  89. package/lib/presentation/atoms/AtomicIcon.js.map +1 -0
  90. package/lib/presentation/atoms/AtomicImage.d.ts +40 -0
  91. package/lib/presentation/atoms/AtomicImage.d.ts.map +1 -0
  92. package/lib/presentation/atoms/AtomicImage.js +92 -0
  93. package/lib/presentation/atoms/AtomicImage.js.map +1 -0
  94. package/lib/presentation/atoms/AtomicInput.d.ts +71 -0
  95. package/lib/presentation/atoms/AtomicInput.d.ts.map +1 -0
  96. package/lib/presentation/atoms/AtomicInput.js +196 -0
  97. package/lib/presentation/atoms/AtomicInput.js.map +1 -0
  98. package/lib/presentation/atoms/AtomicNumberInput.d.ts +69 -0
  99. package/lib/presentation/atoms/AtomicNumberInput.d.ts.map +1 -0
  100. package/lib/presentation/atoms/AtomicNumberInput.js +125 -0
  101. package/lib/presentation/atoms/AtomicNumberInput.js.map +1 -0
  102. package/lib/presentation/atoms/AtomicPicker.d.ts +52 -0
  103. package/lib/presentation/atoms/AtomicPicker.d.ts.map +1 -0
  104. package/lib/presentation/atoms/AtomicPicker.js +299 -0
  105. package/lib/presentation/atoms/AtomicPicker.js.map +1 -0
  106. package/lib/presentation/atoms/AtomicProgress.d.ts +47 -0
  107. package/lib/presentation/atoms/AtomicProgress.d.ts.map +1 -0
  108. package/lib/presentation/atoms/AtomicProgress.js +81 -0
  109. package/lib/presentation/atoms/AtomicProgress.js.map +1 -0
  110. package/lib/presentation/atoms/AtomicSearchBar.d.ts +19 -0
  111. package/lib/presentation/atoms/AtomicSearchBar.d.ts.map +1 -0
  112. package/lib/presentation/atoms/AtomicSearchBar.js +46 -0
  113. package/lib/presentation/atoms/AtomicSearchBar.js.map +1 -0
  114. package/lib/presentation/atoms/AtomicSkeleton.d.ts +43 -0
  115. package/lib/presentation/atoms/AtomicSkeleton.d.ts.map +1 -0
  116. package/lib/presentation/atoms/AtomicSkeleton.js +84 -0
  117. package/lib/presentation/atoms/AtomicSkeleton.js.map +1 -0
  118. package/lib/presentation/atoms/AtomicSort.d.ts +72 -0
  119. package/lib/presentation/atoms/AtomicSort.d.ts.map +1 -0
  120. package/lib/presentation/atoms/AtomicSort.js +77 -0
  121. package/lib/presentation/atoms/AtomicSort.js.map +1 -0
  122. package/lib/presentation/atoms/AtomicSwitch.d.ts +43 -0
  123. package/lib/presentation/atoms/AtomicSwitch.d.ts.map +1 -0
  124. package/lib/presentation/atoms/AtomicSwitch.js +104 -0
  125. package/lib/presentation/atoms/AtomicSwitch.js.map +1 -0
  126. package/lib/presentation/atoms/AtomicText.d.ts +14 -0
  127. package/lib/presentation/atoms/AtomicText.d.ts.map +1 -0
  128. package/lib/presentation/atoms/AtomicText.js +36 -0
  129. package/lib/presentation/atoms/AtomicText.js.map +1 -0
  130. package/lib/presentation/atoms/AtomicTextArea.d.ts +85 -0
  131. package/lib/presentation/atoms/AtomicTextArea.d.ts.map +1 -0
  132. package/lib/presentation/atoms/AtomicTextArea.js +196 -0
  133. package/lib/presentation/atoms/AtomicTextArea.js.map +1 -0
  134. package/lib/presentation/atoms/AtomicTouchable.d.ts +87 -0
  135. package/lib/presentation/atoms/AtomicTouchable.d.ts.map +1 -0
  136. package/lib/presentation/atoms/AtomicTouchable.js +151 -0
  137. package/lib/presentation/atoms/AtomicTouchable.js.map +1 -0
  138. package/lib/presentation/atoms/fab/styles/fabStyles.d.ts +23 -0
  139. package/lib/presentation/atoms/fab/styles/fabStyles.d.ts.map +1 -0
  140. package/lib/presentation/atoms/fab/styles/fabStyles.js +63 -0
  141. package/lib/presentation/atoms/fab/styles/fabStyles.js.map +1 -0
  142. package/lib/presentation/atoms/fab/types/index.d.ts +76 -0
  143. package/lib/presentation/atoms/fab/types/index.d.ts.map +1 -0
  144. package/lib/presentation/atoms/fab/types/index.js +2 -0
  145. package/lib/presentation/atoms/fab/types/index.js.map +1 -0
  146. package/lib/presentation/atoms/filter/styles/filterStyles.d.ts +15 -0
  147. package/lib/presentation/atoms/filter/styles/filterStyles.d.ts.map +1 -0
  148. package/lib/presentation/atoms/filter/styles/filterStyles.js +29 -0
  149. package/lib/presentation/atoms/filter/styles/filterStyles.js.map +1 -0
  150. package/lib/presentation/atoms/filter/types/index.d.ts +76 -0
  151. package/lib/presentation/atoms/filter/types/index.d.ts.map +1 -0
  152. package/lib/presentation/atoms/filter/types/index.js +2 -0
  153. package/lib/presentation/atoms/filter/types/index.js.map +1 -0
  154. package/lib/presentation/atoms/index.d.ts +276 -0
  155. package/lib/presentation/atoms/index.d.ts.map +1 -0
  156. package/lib/presentation/atoms/index.js +149 -0
  157. package/lib/presentation/atoms/index.js.map +1 -0
  158. package/lib/presentation/atoms/input/hooks/useInputState.d.ts +7 -0
  159. package/lib/presentation/atoms/input/hooks/useInputState.d.ts.map +1 -0
  160. package/lib/presentation/atoms/input/hooks/useInputState.js +13 -0
  161. package/lib/presentation/atoms/input/hooks/useInputState.js.map +1 -0
  162. package/lib/presentation/atoms/input/styles/inputStyles.d.ts +13 -0
  163. package/lib/presentation/atoms/input/styles/inputStyles.d.ts.map +1 -0
  164. package/lib/presentation/atoms/input/styles/inputStyles.js +59 -0
  165. package/lib/presentation/atoms/input/styles/inputStyles.js.map +1 -0
  166. package/lib/presentation/atoms/input/types/index.d.ts +24 -0
  167. package/lib/presentation/atoms/input/types/index.d.ts.map +1 -0
  168. package/lib/presentation/atoms/input/types/index.js +2 -0
  169. package/lib/presentation/atoms/input/types/index.js.map +1 -0
  170. package/lib/presentation/atoms/picker/styles/pickerStyles.d.ts +96 -0
  171. package/lib/presentation/atoms/picker/styles/pickerStyles.d.ts.map +1 -0
  172. package/lib/presentation/atoms/picker/styles/pickerStyles.js +177 -0
  173. package/lib/presentation/atoms/picker/styles/pickerStyles.js.map +1 -0
  174. package/lib/presentation/atoms/picker/types/index.d.ts +38 -0
  175. package/lib/presentation/atoms/picker/types/index.d.ts.map +1 -0
  176. package/lib/presentation/atoms/picker/types/index.js +2 -0
  177. package/lib/presentation/atoms/picker/types/index.js.map +1 -0
  178. package/lib/presentation/atoms/touchable/styles/touchableStyles.d.ts +36 -0
  179. package/lib/presentation/atoms/touchable/styles/touchableStyles.d.ts.map +1 -0
  180. package/lib/presentation/atoms/touchable/styles/touchableStyles.js +62 -0
  181. package/lib/presentation/atoms/touchable/styles/touchableStyles.js.map +1 -0
  182. package/lib/presentation/atoms/touchable/types/index.d.ts +140 -0
  183. package/lib/presentation/atoms/touchable/types/index.d.ts.map +1 -0
  184. package/lib/presentation/atoms/touchable/types/index.js +2 -0
  185. package/lib/presentation/atoms/touchable/types/index.js.map +1 -0
  186. package/lib/presentation/hooks/useAppDesignTokens.d.ts +34 -0
  187. package/lib/presentation/hooks/useAppDesignTokens.d.ts.map +1 -0
  188. package/lib/presentation/hooks/useAppDesignTokens.js +39 -0
  189. package/lib/presentation/hooks/useAppDesignTokens.js.map +1 -0
  190. package/lib/presentation/hooks/useResponsive.d.ts +80 -0
  191. package/lib/presentation/hooks/useResponsive.d.ts.map +1 -0
  192. package/lib/presentation/hooks/useResponsive.js +82 -0
  193. package/lib/presentation/hooks/useResponsive.js.map +1 -0
  194. package/lib/presentation/loading/index.d.ts +23 -0
  195. package/lib/presentation/loading/index.d.ts.map +1 -0
  196. package/lib/presentation/loading/index.js +26 -0
  197. package/lib/presentation/loading/index.js.map +1 -0
  198. package/lib/presentation/loading/presentation/components/LoadingSpinner.d.ts +28 -0
  199. package/lib/presentation/loading/presentation/components/LoadingSpinner.d.ts.map +1 -0
  200. package/lib/presentation/loading/presentation/components/LoadingSpinner.js +77 -0
  201. package/lib/presentation/loading/presentation/components/LoadingSpinner.js.map +1 -0
  202. package/lib/presentation/loading/presentation/components/LoadingState.d.ts +39 -0
  203. package/lib/presentation/loading/presentation/components/LoadingState.d.ts.map +1 -0
  204. package/lib/presentation/loading/presentation/components/LoadingState.js +123 -0
  205. package/lib/presentation/loading/presentation/components/LoadingState.js.map +1 -0
  206. package/lib/presentation/loading/presentation/hooks/useLoading.d.ts +50 -0
  207. package/lib/presentation/loading/presentation/hooks/useLoading.d.ts.map +1 -0
  208. package/lib/presentation/loading/presentation/hooks/useLoading.js +49 -0
  209. package/lib/presentation/loading/presentation/hooks/useLoading.js.map +1 -0
  210. package/lib/presentation/molecules/AtomicConfirmationModal.d.ts +73 -0
  211. package/lib/presentation/molecules/AtomicConfirmationModal.d.ts.map +1 -0
  212. package/lib/presentation/molecules/AtomicConfirmationModal.js +172 -0
  213. package/lib/presentation/molecules/AtomicConfirmationModal.js.map +1 -0
  214. package/lib/presentation/molecules/EmptyState.d.ts +41 -0
  215. package/lib/presentation/molecules/EmptyState.d.ts.map +1 -0
  216. package/lib/presentation/molecules/EmptyState.js +68 -0
  217. package/lib/presentation/molecules/EmptyState.js.map +1 -0
  218. package/lib/presentation/molecules/FormField.d.ts +22 -0
  219. package/lib/presentation/molecules/FormField.d.ts.map +1 -0
  220. package/lib/presentation/molecules/FormField.js +76 -0
  221. package/lib/presentation/molecules/FormField.js.map +1 -0
  222. package/lib/presentation/molecules/GridContainer.d.ts +40 -0
  223. package/lib/presentation/molecules/GridContainer.d.ts.map +1 -0
  224. package/lib/presentation/molecules/GridContainer.js +77 -0
  225. package/lib/presentation/molecules/GridContainer.js.map +1 -0
  226. package/lib/presentation/molecules/IconContainer.d.ts +29 -0
  227. package/lib/presentation/molecules/IconContainer.d.ts.map +1 -0
  228. package/lib/presentation/molecules/IconContainer.js +60 -0
  229. package/lib/presentation/molecules/IconContainer.js.map +1 -0
  230. package/lib/presentation/molecules/LanguageSwitcher.d.ts +10 -0
  231. package/lib/presentation/molecules/LanguageSwitcher.d.ts.map +1 -0
  232. package/lib/presentation/molecules/LanguageSwitcher.js +24 -0
  233. package/lib/presentation/molecules/LanguageSwitcher.js.map +1 -0
  234. package/lib/presentation/molecules/ListItem.d.ts +5 -0
  235. package/lib/presentation/molecules/ListItem.d.ts.map +1 -0
  236. package/lib/presentation/molecules/ListItem.js +24 -0
  237. package/lib/presentation/molecules/ListItem.js.map +1 -0
  238. package/lib/presentation/molecules/ScreenHeader.d.ts +55 -0
  239. package/lib/presentation/molecules/ScreenHeader.d.ts.map +1 -0
  240. package/lib/presentation/molecules/ScreenHeader.js +94 -0
  241. package/lib/presentation/molecules/ScreenHeader.js.map +1 -0
  242. package/lib/presentation/molecules/SearchBar.d.ts +18 -0
  243. package/lib/presentation/molecules/SearchBar.d.ts.map +1 -0
  244. package/lib/presentation/molecules/SearchBar.js +47 -0
  245. package/lib/presentation/molecules/SearchBar.js.map +1 -0
  246. package/lib/presentation/molecules/SectionCard.d.ts +25 -0
  247. package/lib/presentation/molecules/SectionCard.d.ts.map +1 -0
  248. package/lib/presentation/molecules/SectionCard.js +47 -0
  249. package/lib/presentation/molecules/SectionCard.js.map +1 -0
  250. package/lib/presentation/molecules/SectionContainer.d.ts +33 -0
  251. package/lib/presentation/molecules/SectionContainer.d.ts.map +1 -0
  252. package/lib/presentation/molecules/SectionContainer.js +64 -0
  253. package/lib/presentation/molecules/SectionContainer.js.map +1 -0
  254. package/lib/presentation/molecules/SectionHeader.d.ts +37 -0
  255. package/lib/presentation/molecules/SectionHeader.d.ts.map +1 -0
  256. package/lib/presentation/molecules/SectionHeader.js +73 -0
  257. package/lib/presentation/molecules/SectionHeader.js.map +1 -0
  258. package/lib/presentation/molecules/confirmation-modal/styles/confirmationModalStyles.d.ts +50 -0
  259. package/lib/presentation/molecules/confirmation-modal/styles/confirmationModalStyles.d.ts.map +1 -0
  260. package/lib/presentation/molecules/confirmation-modal/styles/confirmationModalStyles.js +115 -0
  261. package/lib/presentation/molecules/confirmation-modal/styles/confirmationModalStyles.js.map +1 -0
  262. package/lib/presentation/molecules/confirmation-modal/types/index.d.ts +88 -0
  263. package/lib/presentation/molecules/confirmation-modal/types/index.d.ts.map +1 -0
  264. package/lib/presentation/molecules/confirmation-modal/types/index.js +7 -0
  265. package/lib/presentation/molecules/confirmation-modal/types/index.js.map +1 -0
  266. package/lib/presentation/molecules/index.d.ts +28 -0
  267. package/lib/presentation/molecules/index.d.ts.map +1 -0
  268. package/lib/presentation/molecules/index.js +18 -0
  269. package/lib/presentation/molecules/index.js.map +1 -0
  270. package/lib/presentation/molecules/languageswitcher/config/languageSwitcherConfig.d.ts +11 -0
  271. package/lib/presentation/molecules/languageswitcher/config/languageSwitcherConfig.d.ts.map +1 -0
  272. package/lib/presentation/molecules/languageswitcher/config/languageSwitcherConfig.js +6 -0
  273. package/lib/presentation/molecules/languageswitcher/config/languageSwitcherConfig.js.map +1 -0
  274. package/lib/presentation/molecules/languageswitcher/hooks/useLanguageNavigation.d.ts +5 -0
  275. package/lib/presentation/molecules/languageswitcher/hooks/useLanguageNavigation.d.ts.map +1 -0
  276. package/lib/presentation/molecules/languageswitcher/hooks/useLanguageNavigation.js +12 -0
  277. package/lib/presentation/molecules/languageswitcher/hooks/useLanguageNavigation.js.map +1 -0
  278. package/lib/presentation/molecules/listitem/styles/listItemStyles.d.ts +12 -0
  279. package/lib/presentation/molecules/listitem/styles/listItemStyles.d.ts.map +1 -0
  280. package/lib/presentation/molecules/listitem/styles/listItemStyles.js +15 -0
  281. package/lib/presentation/molecules/listitem/styles/listItemStyles.js.map +1 -0
  282. package/lib/presentation/molecules/listitem/types/index.d.ts +17 -0
  283. package/lib/presentation/molecules/listitem/types/index.d.ts.map +1 -0
  284. package/lib/presentation/molecules/listitem/types/index.js +2 -0
  285. package/lib/presentation/molecules/listitem/types/index.js.map +1 -0
  286. package/lib/presentation/organisms/AppHeader.d.ts +30 -0
  287. package/lib/presentation/organisms/AppHeader.d.ts.map +1 -0
  288. package/lib/presentation/organisms/AppHeader.js +78 -0
  289. package/lib/presentation/organisms/AppHeader.js.map +1 -0
  290. package/lib/presentation/organisms/FormContainer.d.ts +76 -0
  291. package/lib/presentation/organisms/FormContainer.d.ts.map +1 -0
  292. package/lib/presentation/organisms/FormContainer.js +127 -0
  293. package/lib/presentation/organisms/FormContainer.js.map +1 -0
  294. package/lib/presentation/organisms/ScreenLayout.d.ts +99 -0
  295. package/lib/presentation/organisms/ScreenLayout.d.ts.map +1 -0
  296. package/lib/presentation/organisms/ScreenLayout.js +78 -0
  297. package/lib/presentation/organisms/ScreenLayout.js.map +1 -0
  298. package/lib/presentation/organisms/index.d.ts +16 -0
  299. package/lib/presentation/organisms/index.d.ts.map +1 -0
  300. package/lib/presentation/organisms/index.js +14 -0
  301. package/lib/presentation/organisms/index.js.map +1 -0
  302. package/lib/presentation/tokens/AppDesignTokens.d.ts +14 -0
  303. package/lib/presentation/tokens/AppDesignTokens.d.ts.map +1 -0
  304. package/lib/presentation/tokens/AppDesignTokens.js +23 -0
  305. package/lib/presentation/tokens/AppDesignTokens.js.map +1 -0
  306. package/lib/presentation/tokens/commonStyles.d.ts +122 -0
  307. package/lib/presentation/tokens/commonStyles.d.ts.map +1 -0
  308. package/lib/presentation/tokens/commonStyles.js +220 -0
  309. package/lib/presentation/tokens/commonStyles.js.map +1 -0
  310. package/lib/presentation/tokens/core/BaseTokens.d.ts +337 -0
  311. package/lib/presentation/tokens/core/BaseTokens.d.ts.map +1 -0
  312. package/lib/presentation/tokens/core/BaseTokens.js +322 -0
  313. package/lib/presentation/tokens/core/BaseTokens.js.map +1 -0
  314. package/lib/presentation/tokens/core/ColorPalette.d.ts +216 -0
  315. package/lib/presentation/tokens/core/ColorPalette.d.ts.map +1 -0
  316. package/lib/presentation/tokens/core/ColorPalette.js +330 -0
  317. package/lib/presentation/tokens/core/ColorPalette.js.map +1 -0
  318. package/lib/presentation/tokens/core/TokenFactory.d.ts +229 -0
  319. package/lib/presentation/tokens/core/TokenFactory.d.ts.map +1 -0
  320. package/lib/presentation/tokens/core/TokenFactory.js +87 -0
  321. package/lib/presentation/tokens/core/TokenFactory.js.map +1 -0
  322. package/lib/presentation/utils/platformConstants.d.ts +100 -0
  323. package/lib/presentation/utils/platformConstants.d.ts.map +1 -0
  324. package/lib/presentation/utils/platformConstants.js +114 -0
  325. package/lib/presentation/utils/platformConstants.js.map +1 -0
  326. package/lib/presentation/utils/responsive.d.ts +218 -0
  327. package/lib/presentation/utils/responsive.d.ts.map +1 -0
  328. package/lib/presentation/utils/responsive.js +452 -0
  329. package/lib/presentation/utils/responsive.js.map +1 -0
  330. package/lib/presentation/utils/variants/compound.d.ts +10 -0
  331. package/lib/presentation/utils/variants/compound.d.ts.map +1 -0
  332. package/lib/presentation/utils/variants/compound.js +16 -0
  333. package/lib/presentation/utils/variants/compound.js.map +1 -0
  334. package/lib/presentation/utils/variants/core.d.ts +15 -0
  335. package/lib/presentation/utils/variants/core.d.ts.map +1 -0
  336. package/lib/presentation/utils/variants/core.js +23 -0
  337. package/lib/presentation/utils/variants/core.js.map +1 -0
  338. package/lib/presentation/utils/variants/helpers.d.ts +5 -0
  339. package/lib/presentation/utils/variants/helpers.d.ts.map +1 -0
  340. package/lib/presentation/utils/variants/helpers.js +10 -0
  341. package/lib/presentation/utils/variants/helpers.js.map +1 -0
  342. package/lib/presentation/utils/variants.d.ts +4 -0
  343. package/lib/presentation/utils/variants.d.ts.map +1 -0
  344. package/lib/presentation/utils/variants.js +4 -0
  345. package/lib/presentation/utils/variants.js.map +1 -0
  346. package/package.json +40 -4
  347. package/src/domains/icons/domain/interfaces/IIconAdapter.ts +5 -3
  348. package/src/domains/icons/infrastructure/adapters/LucideAdapter.ts +1 -1
  349. package/src/presentation/molecules/AtomicConfirmationModal.tsx +1 -1
  350. package/src/presentation/molecules/languageswitcher/hooks/useLanguageNavigation.ts +1 -2
@@ -0,0 +1,53 @@
1
+ /**
2
+ * AtomicChip - Universal Chip/Tag Component
3
+ *
4
+ * Displays small tags, labels, or status indicators
5
+ * Theme: {{THEME_NAME}} ({{CATEGORY}} category)
6
+ *
7
+ * Atomic Design Level: ATOM
8
+ * Purpose: Tag and label display
9
+ *
10
+ * Usage:
11
+ * - Category tags
12
+ * - Status indicators
13
+ * - Filter chips
14
+ * - Skill labels
15
+ * - Badge displays
16
+ */
17
+ import React from 'react';
18
+ import { ViewStyle } from 'react-native';
19
+ export interface AtomicChipProps {
20
+ /** Text content of the chip */
21
+ children: React.ReactNode;
22
+ /** Chip variant */
23
+ variant?: 'filled' | 'outlined' | 'soft';
24
+ /** Chip size */
25
+ size?: 'sm' | 'md' | 'lg';
26
+ /** Chip color theme */
27
+ color?: 'primary' | 'secondary' | 'success' | 'warning' | 'error' | 'info';
28
+ /** Custom background color */
29
+ backgroundColor?: string;
30
+ /** Custom text color */
31
+ textColor?: string;
32
+ /** Custom border color */
33
+ borderColor?: string;
34
+ /** Leading icon */
35
+ leadingIcon?: string;
36
+ /** Trailing icon */
37
+ trailingIcon?: string;
38
+ /** Whether the chip is clickable */
39
+ clickable?: boolean;
40
+ /** Click handler */
41
+ onPress?: () => void;
42
+ /** Whether the chip is selected */
43
+ selected?: boolean;
44
+ /** Whether the chip is disabled */
45
+ disabled?: boolean;
46
+ /** Style overrides */
47
+ style?: ViewStyle;
48
+ /** Test ID for testing */
49
+ testID?: string;
50
+ }
51
+ export declare const AtomicChip: React.FC<AtomicChipProps>;
52
+ export default AtomicChip;
53
+ //# sourceMappingURL=AtomicChip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AtomicChip.d.ts","sourceRoot":"","sources":["../../../src/presentation/atoms/AtomicChip.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAoB,SAAS,EAAoB,MAAM,cAAc,CAAC;AAS7E,MAAM,WAAW,eAAe;IAC9B,+BAA+B;IAC/B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,mBAAmB;IACnB,OAAO,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;IACzC,gBAAgB;IAChB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,uBAAuB;IACvB,KAAK,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;IAC3E,8BAA8B;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0BAA0B;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oBAAoB;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oCAAoC;IACpC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,oBAAoB;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,mCAAmC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mCAAmC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sBAAsB;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,0BAA0B;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAMD,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAwJhD,CAAC;AAMF,eAAe,UAAU,CAAC"}
@@ -0,0 +1,131 @@
1
+ /**
2
+ * AtomicChip - Universal Chip/Tag Component
3
+ *
4
+ * Displays small tags, labels, or status indicators
5
+ * Theme: {{THEME_NAME}} ({{CATEGORY}} category)
6
+ *
7
+ * Atomic Design Level: ATOM
8
+ * Purpose: Tag and label display
9
+ *
10
+ * Usage:
11
+ * - Category tags
12
+ * - Status indicators
13
+ * - Filter chips
14
+ * - Skill labels
15
+ * - Badge displays
16
+ */
17
+ import React from 'react';
18
+ import { View, TouchableOpacity } from 'react-native';
19
+ import { AtomicText } from './AtomicText';
20
+ import { AtomicIcon } from './AtomicIcon';
21
+ import { useAppDesignTokens } from '../hooks/useAppDesignTokens';
22
+ // =============================================================================
23
+ // COMPONENT IMPLEMENTATION
24
+ // =============================================================================
25
+ export const AtomicChip = ({ children, variant = 'filled', size = 'md', color = 'primary', backgroundColor, textColor, borderColor, leadingIcon, trailingIcon, clickable = false, onPress, selected = false, disabled = false, style, testID, }) => {
26
+ const tokens = useAppDesignTokens();
27
+ // Size mapping
28
+ const sizeMap = {
29
+ sm: {
30
+ paddingHorizontal: tokens.spacing.sm,
31
+ paddingVertical: tokens.spacing.xs,
32
+ fontSize: tokens.typography.bodySmall.fontSize,
33
+ iconSize: 'xs'
34
+ },
35
+ md: {
36
+ paddingHorizontal: tokens.spacing.md,
37
+ paddingVertical: tokens.spacing.sm,
38
+ fontSize: tokens.typography.bodyMedium.fontSize,
39
+ iconSize: 'sm'
40
+ },
41
+ lg: {
42
+ paddingHorizontal: tokens.spacing.md,
43
+ paddingVertical: tokens.spacing.sm,
44
+ fontSize: tokens.typography.bodyLarge.fontSize,
45
+ iconSize: 'sm'
46
+ },
47
+ };
48
+ const sizeConfig = sizeMap[size];
49
+ // Color mapping
50
+ const colorMap = {
51
+ primary: {
52
+ filled: { bg: tokens.colors.primary, text: tokens.colors.onPrimary, border: tokens.colors.primary },
53
+ outlined: { bg: 'transparent', text: tokens.colors.primary, border: tokens.colors.primary },
54
+ soft: { bg: tokens.colors.primaryContainer, text: tokens.colors.onPrimaryContainer, border: 'transparent' },
55
+ },
56
+ secondary: {
57
+ filled: { bg: tokens.colors.secondary, text: tokens.colors.onSecondary, border: tokens.colors.secondary },
58
+ outlined: { bg: 'transparent', text: tokens.colors.secondary, border: tokens.colors.secondary },
59
+ soft: { bg: tokens.colors.secondaryContainer, text: tokens.colors.onSecondaryContainer, border: 'transparent' },
60
+ },
61
+ success: {
62
+ filled: { bg: tokens.colors.success, text: tokens.colors.onSuccess, border: tokens.colors.success },
63
+ outlined: { bg: 'transparent', text: tokens.colors.success, border: tokens.colors.success },
64
+ soft: { bg: tokens.colors.successContainer, text: tokens.colors.onSuccessContainer, border: 'transparent' },
65
+ },
66
+ warning: {
67
+ filled: { bg: tokens.colors.warning, text: tokens.colors.onWarning, border: tokens.colors.warning },
68
+ outlined: { bg: 'transparent', text: tokens.colors.warning, border: tokens.colors.warning },
69
+ soft: { bg: tokens.colors.warningContainer, text: tokens.colors.onWarningContainer, border: 'transparent' },
70
+ },
71
+ error: {
72
+ filled: { bg: tokens.colors.error, text: tokens.colors.onError, border: tokens.colors.error },
73
+ outlined: { bg: 'transparent', text: tokens.colors.error, border: tokens.colors.error },
74
+ soft: { bg: tokens.colors.errorContainer, text: tokens.colors.onErrorContainer, border: 'transparent' },
75
+ },
76
+ info: {
77
+ filled: { bg: tokens.colors.info, text: tokens.colors.onInfo, border: tokens.colors.info },
78
+ outlined: { bg: 'transparent', text: tokens.colors.info, border: tokens.colors.info },
79
+ soft: { bg: tokens.colors.infoContainer, text: tokens.colors.onInfoContainer, border: 'transparent' },
80
+ },
81
+ };
82
+ const colorConfig = colorMap[color][variant];
83
+ // Apply custom colors if provided
84
+ const finalBackgroundColor = backgroundColor || colorConfig.bg;
85
+ const finalTextColor = textColor || colorConfig.text;
86
+ const finalBorderColor = borderColor || colorConfig.border;
87
+ // Handle disabled state
88
+ const isDisabled = disabled || (!clickable && !onPress);
89
+ const opacity = isDisabled ? 0.5 : 1;
90
+ // Handle selected state
91
+ const selectedStyle = selected ? {
92
+ borderWidth: tokens.borders.width.medium,
93
+ borderColor: tokens.colors.primary,
94
+ } : {};
95
+ const chipStyle = {
96
+ flexDirection: 'row',
97
+ alignItems: 'center',
98
+ justifyContent: 'center',
99
+ paddingHorizontal: sizeConfig.paddingHorizontal,
100
+ paddingVertical: sizeConfig.paddingVertical,
101
+ backgroundColor: finalBackgroundColor,
102
+ borderRadius: tokens.borders.radius.xl,
103
+ borderWidth: variant === 'outlined' ? 1 : 0,
104
+ borderColor: finalBorderColor,
105
+ opacity,
106
+ ...selectedStyle,
107
+ };
108
+ const textStyle = {
109
+ fontSize: sizeConfig.fontSize,
110
+ fontWeight: tokens.typography.medium,
111
+ };
112
+ const iconColor = finalTextColor;
113
+ const content = (<View style={[chipStyle, style]} testID={testID}>
114
+ {leadingIcon && (<AtomicIcon name={leadingIcon} size={sizeConfig.iconSize} customColor={iconColor} style={{ marginRight: tokens.spacing.xs }}/>)}
115
+ <AtomicText type="labelMedium" color={finalTextColor} style={textStyle}>
116
+ {children}
117
+ </AtomicText>
118
+ {trailingIcon && (<AtomicIcon name={trailingIcon} size={sizeConfig.iconSize} customColor={iconColor} style={{ marginLeft: tokens.spacing.xs }}/>)}
119
+ </View>);
120
+ if (clickable && onPress && !disabled) {
121
+ return (<TouchableOpacity onPress={onPress} activeOpacity={0.7}>
122
+ {content}
123
+ </TouchableOpacity>);
124
+ }
125
+ return content;
126
+ };
127
+ // =============================================================================
128
+ // EXPORTS
129
+ // =============================================================================
130
+ export default AtomicChip;
131
+ //# sourceMappingURL=AtomicChip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AtomicChip.js","sourceRoot":"","sources":["../../../src/presentation/atoms/AtomicChip.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * AtomicDatePicker Component
3
+ *
4
+ * A reusable date picker component that wraps the native date picker
5
+ * with consistent styling and behavior across platforms.
6
+ *
7
+ * Features:
8
+ * - Platform-specific native pickers (iOS wheel, Android dialog)
9
+ * - Consistent styling with design tokens
10
+ * - Locale-aware date/time formatting (native Date methods)
11
+ * - Timezone-aware (respects device timezone)
12
+ * - Automatic language integration (native locale support)
13
+ * - Optional label and error states
14
+ * - Minimum and maximum date constraints
15
+ * - Disabled state support
16
+ * - Theme-aware styling
17
+ * - Proper keyboard avoidance on iOS
18
+ *
19
+ * Usage:
20
+ * ```tsx
21
+ * const [selectedDate, setSelectedDate] = useState(new Date());
22
+ *
23
+ * <AtomicDatePicker
24
+ * value={selectedDate}
25
+ * onChange={setSelectedDate}
26
+ * label="Birth Date"
27
+ * minimumDate={new Date(1900, 0, 1)}
28
+ * maximumDate={new Date()}
29
+ * />
30
+ * ```
31
+ *
32
+ * Platform Behavior:
33
+ * - iOS: Opens modal with spinner wheel, requires "Done" button
34
+ * - Android: Opens native dialog, auto-closes on selection
35
+ *
36
+ * @module AtomicDatePicker
37
+ */
38
+ import React from 'react';
39
+ /**
40
+ * Props for AtomicDatePicker component
41
+ */
42
+ export interface AtomicDatePickerProps {
43
+ /** Selected date value */
44
+ value: Date;
45
+ /** Callback when date changes */
46
+ onChange: (date: Date) => void;
47
+ /** Optional label displayed above picker */
48
+ label?: string;
49
+ /** Optional error message displayed below picker */
50
+ error?: string;
51
+ /** Disable picker interaction */
52
+ disabled?: boolean;
53
+ /** Minimum selectable date */
54
+ minimumDate?: Date;
55
+ /** Maximum selectable date */
56
+ maximumDate?: Date;
57
+ /** Picker mode - date, time, or datetime (iOS only) */
58
+ mode?: 'date' | 'time' | 'datetime';
59
+ /** Placeholder text when no value selected */
60
+ placeholder?: string;
61
+ /** Optional test ID for E2E testing */
62
+ testID?: string;
63
+ }
64
+ /**
65
+ * AtomicDatePicker - Universal date/time picker component
66
+ *
67
+ * Wraps @react-native-community/datetimepicker with:
68
+ * - Theme integration
69
+ * - Platform-specific modal handling
70
+ * - Error states
71
+ * - Disabled states
72
+ * - Responsive sizing
73
+ */
74
+ export declare const AtomicDatePicker: React.FC<AtomicDatePickerProps>;
75
+ //# sourceMappingURL=AtomicDatePicker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AtomicDatePicker.d.ts","sourceRoot":"","sources":["../../../src/presentation/atoms/AtomicDatePicker.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,OAAO,KAAmB,MAAM,OAAO,CAAC;AAexC;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,0BAA0B;IAC1B,KAAK,EAAE,IAAI,CAAC;IACZ,iCAAiC;IACjC,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IAC/B,4CAA4C;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iCAAiC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,8BAA8B;IAC9B,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,8BAA8B;IAC9B,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,uDAAuD;IACvD,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;IACpC,8CAA8C;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uCAAuC;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAyK5D,CAAC"}
@@ -0,0 +1,246 @@
1
+ /**
2
+ * AtomicDatePicker Component
3
+ *
4
+ * A reusable date picker component that wraps the native date picker
5
+ * with consistent styling and behavior across platforms.
6
+ *
7
+ * Features:
8
+ * - Platform-specific native pickers (iOS wheel, Android dialog)
9
+ * - Consistent styling with design tokens
10
+ * - Locale-aware date/time formatting (native Date methods)
11
+ * - Timezone-aware (respects device timezone)
12
+ * - Automatic language integration (native locale support)
13
+ * - Optional label and error states
14
+ * - Minimum and maximum date constraints
15
+ * - Disabled state support
16
+ * - Theme-aware styling
17
+ * - Proper keyboard avoidance on iOS
18
+ *
19
+ * Usage:
20
+ * ```tsx
21
+ * const [selectedDate, setSelectedDate] = useState(new Date());
22
+ *
23
+ * <AtomicDatePicker
24
+ * value={selectedDate}
25
+ * onChange={setSelectedDate}
26
+ * label="Birth Date"
27
+ * minimumDate={new Date(1900, 0, 1)}
28
+ * maximumDate={new Date()}
29
+ * />
30
+ * ```
31
+ *
32
+ * Platform Behavior:
33
+ * - iOS: Opens modal with spinner wheel, requires "Done" button
34
+ * - Android: Opens native dialog, auto-closes on selection
35
+ *
36
+ * @module AtomicDatePicker
37
+ */
38
+ import React, { useState } from 'react';
39
+ import { View, Text, TouchableOpacity, StyleSheet, Modal, useWindowDimensions, } from 'react-native';
40
+ import DateTimePicker from '@react-native-community/datetimepicker';
41
+ import { useSafeAreaInsets } from 'react-native-safe-area-context';
42
+ import { useAppDesignTokens } from '../hooks/useAppDesignTokens';
43
+ import { useResponsive } from '../hooks/useResponsive';
44
+ import { AtomicIcon } from './AtomicIcon';
45
+ /**
46
+ * AtomicDatePicker - Universal date/time picker component
47
+ *
48
+ * Wraps @react-native-community/datetimepicker with:
49
+ * - Theme integration
50
+ * - Platform-specific modal handling
51
+ * - Error states
52
+ * - Disabled states
53
+ * - Responsive sizing
54
+ */
55
+ export const AtomicDatePicker = ({ value, onChange, label, error, disabled = false, minimumDate, maximumDate, mode = 'date', placeholder = 'Select date', testID, }) => {
56
+ const tokens = useAppDesignTokens();
57
+ const { height } = useWindowDimensions();
58
+ const insets = useSafeAreaInsets();
59
+ const { isTabletDevice } = useResponsive();
60
+ const [show, setShow] = useState(false);
61
+ /**
62
+ * Handle date/time change
63
+ * Universal handler that works across all platforms
64
+ * Note: event.type can be 'set', 'dismissed', or 'neutralButtonPressed'
65
+ */
66
+ const handleChange = (event, selectedDate) => {
67
+ // Close picker when user confirms or dismisses
68
+ // iOS: Stays open until "Done" button (handled separately)
69
+ // Android/Web: Auto-closes on selection
70
+ if (event.type === 'set' || event.type === 'dismissed') {
71
+ setShow(false);
72
+ }
73
+ // Update value only if date was selected (not dismissed)
74
+ if (event.type === 'set' && selectedDate) {
75
+ onChange(selectedDate);
76
+ }
77
+ };
78
+ /**
79
+ * Format date based on mode
80
+ * Uses native Date formatting (locale-aware)
81
+ */
82
+ const formatDate = (date) => {
83
+ if (mode === 'time') {
84
+ // Format time only
85
+ return date.toLocaleTimeString([], {
86
+ hour: '2-digit',
87
+ minute: '2-digit'
88
+ });
89
+ }
90
+ if (mode === 'datetime') {
91
+ // Format date + time
92
+ const dateStr = date.toLocaleDateString([], {
93
+ year: 'numeric',
94
+ month: 'short',
95
+ day: 'numeric',
96
+ });
97
+ const timeStr = date.toLocaleTimeString([], {
98
+ hour: '2-digit',
99
+ minute: '2-digit'
100
+ });
101
+ return `${dateStr} ${timeStr}`;
102
+ }
103
+ // Format date only
104
+ return date.toLocaleDateString([], {
105
+ year: 'numeric',
106
+ month: 'long',
107
+ day: 'numeric',
108
+ });
109
+ };
110
+ /**
111
+ * Determine icon color based on state
112
+ */
113
+ const getIconColor = () => {
114
+ if (disabled)
115
+ return 'secondary';
116
+ if (error)
117
+ return 'error';
118
+ return 'primary';
119
+ };
120
+ const styles = getStyles(tokens, height, insets);
121
+ return (<View style={styles.container} testID={testID}>
122
+ {label && (<Text style={styles.label} testID={testID ? `${testID}-label` : undefined}>
123
+ {label}
124
+ </Text>)}
125
+
126
+ <TouchableOpacity style={[
127
+ styles.button,
128
+ error ? styles.buttonError : undefined,
129
+ disabled ? styles.buttonDisabled : undefined,
130
+ ]} onPress={() => !disabled && setShow(true)} disabled={disabled} testID={testID ? `${testID}-button` : undefined} accessibilityLabel={label || placeholder} accessibilityRole="button" accessibilityState={{ disabled }}>
131
+ <AtomicIcon name="calendar" color={getIconColor()} size="md"/>
132
+ <Text style={[
133
+ styles.text,
134
+ disabled ? styles.textDisabled : undefined,
135
+ error ? styles.textError : undefined,
136
+ ]}>
137
+ {value ? formatDate(value) : placeholder}
138
+ </Text>
139
+ </TouchableOpacity>
140
+
141
+ {error && (<Text style={styles.errorText} testID={testID ? `${testID}-error` : undefined}>
142
+ {error}
143
+ </Text>)}
144
+
145
+ {/* Universal DatePicker - Works across iOS, Android, Web */}
146
+ {show && (<Modal transparent animationType={isTabletDevice ? 'fade' : 'slide'} visible={show} onRequestClose={() => setShow(false)}>
147
+ <TouchableOpacity style={styles.modalOverlay} activeOpacity={1} onPress={() => setShow(false)} accessibilityLabel="Close date picker" accessibilityRole="button">
148
+ <View style={styles.pickerContainer} onStartShouldSetResponder={() => true}>
149
+ <DateTimePicker value={value || new Date()} mode={mode} display="spinner" onChange={handleChange} minimumDate={minimumDate} maximumDate={maximumDate} testID={testID ? `${testID}-picker` : undefined}/>
150
+ <View style={styles.buttonContainer}>
151
+ <TouchableOpacity style={styles.doneButton} onPress={() => setShow(false)} testID={testID ? `${testID}-done` : undefined} accessibilityLabel="Done" accessibilityRole="button">
152
+ <Text style={styles.doneText}>Done</Text>
153
+ </TouchableOpacity>
154
+ </View>
155
+ </View>
156
+ </TouchableOpacity>
157
+ </Modal>)}
158
+ </View>);
159
+ };
160
+ /**
161
+ * Get component styles based on design tokens
162
+ */
163
+ const getStyles = (tokens, height, insets) => {
164
+ // Responsive button sizing based on device height
165
+ const buttonMinWidth = height <= 667 ? Math.min(height * 0.25, 150) : 200;
166
+ return StyleSheet.create({
167
+ container: {
168
+ marginBottom: tokens.spacing.md,
169
+ },
170
+ label: {
171
+ fontSize: tokens.typography.bodyMedium.fontSize,
172
+ fontWeight: tokens.typography.semibold,
173
+ color: tokens.colors.textPrimary,
174
+ marginBottom: tokens.spacing.sm,
175
+ },
176
+ button: {
177
+ flexDirection: 'row',
178
+ alignItems: 'center',
179
+ backgroundColor: tokens.colors.surface,
180
+ borderWidth: 1,
181
+ borderColor: tokens.colors.border,
182
+ borderRadius: tokens.borders.radius.lg,
183
+ paddingHorizontal: tokens.spacing.md,
184
+ paddingVertical: tokens.spacing.md,
185
+ gap: tokens.spacing.sm,
186
+ minHeight: 48, // Apple HIG minimum touch target
187
+ },
188
+ buttonError: {
189
+ borderColor: tokens.colors.error,
190
+ borderWidth: tokens.borders.width.medium,
191
+ },
192
+ buttonDisabled: {
193
+ backgroundColor: tokens.colors.surfaceDisabled,
194
+ opacity: tokens.opacity.disabled,
195
+ },
196
+ text: {
197
+ flex: 1,
198
+ fontSize: tokens.typography.bodyLarge.fontSize,
199
+ color: tokens.colors.textPrimary,
200
+ },
201
+ textDisabled: {
202
+ color: tokens.colors.textDisabled,
203
+ },
204
+ textError: {
205
+ color: tokens.colors.error,
206
+ },
207
+ errorText: {
208
+ fontSize: tokens.typography.bodySmall.fontSize,
209
+ color: tokens.colors.error,
210
+ marginTop: tokens.spacing.xs,
211
+ marginLeft: tokens.spacing.xs,
212
+ },
213
+ modalOverlay: {
214
+ flex: 1,
215
+ backgroundColor: 'rgba(0, 0, 0, 0.5)',
216
+ justifyContent: 'flex-start',
217
+ },
218
+ pickerContainer: {
219
+ backgroundColor: tokens.colors.surface,
220
+ borderTopLeftRadius: tokens.borders.radius.xl,
221
+ borderTopRightRadius: tokens.borders.radius.xl,
222
+ paddingTop: tokens.spacing.lg,
223
+ paddingBottom: Math.max(insets.bottom + tokens.spacing.md, tokens.spacing.xl),
224
+ },
225
+ buttonContainer: {
226
+ alignItems: 'center',
227
+ marginTop: tokens.spacing.md,
228
+ paddingHorizontal: tokens.spacing.lg,
229
+ },
230
+ doneButton: {
231
+ backgroundColor: tokens.colors.primary,
232
+ paddingHorizontal: tokens.spacing.xl,
233
+ paddingVertical: tokens.spacing.sm,
234
+ borderRadius: tokens.borders.radius.lg,
235
+ minWidth: buttonMinWidth,
236
+ alignItems: 'center',
237
+ minHeight: 44, // Apple HIG minimum touch target
238
+ },
239
+ doneText: {
240
+ color: tokens.colors.onPrimary,
241
+ fontSize: tokens.typography.bodyLarge.fontSize,
242
+ fontWeight: tokens.typography.semibold,
243
+ },
244
+ });
245
+ };
246
+ //# sourceMappingURL=AtomicDatePicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AtomicDatePicker.js","sourceRoot":"","sources":["../../../src/presentation/atoms/AtomicDatePicker.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * AtomicDivider - Universal Divider Component
3
+ *
4
+ * Displays horizontal or vertical dividers for content separation
5
+ * Theme: {{THEME_NAME}} ({{CATEGORY}} category)
6
+ *
7
+ * Atomic Design Level: ATOM
8
+ * Purpose: Content separation and visual hierarchy
9
+ *
10
+ * Usage:
11
+ * - Section separators
12
+ * - List item dividers
13
+ * - Card separators
14
+ * - Menu dividers
15
+ * - Form field separators
16
+ */
17
+ import React from 'react';
18
+ import { ViewStyle } from 'react-native';
19
+ export interface AtomicDividerProps {
20
+ /** Divider orientation */
21
+ orientation?: 'horizontal' | 'vertical';
22
+ /** Divider thickness */
23
+ thickness?: 'thin' | 'medium' | 'thick';
24
+ /** Divider color */
25
+ color?: string;
26
+ /** Divider length (for horizontal: width, for vertical: height) */
27
+ length?: number | string;
28
+ /** Margin around the divider */
29
+ margin?: number;
30
+ /** Margin top */
31
+ marginTop?: number;
32
+ /** Margin bottom */
33
+ marginBottom?: number;
34
+ /** Margin left */
35
+ marginLeft?: number;
36
+ /** Margin right */
37
+ marginRight?: number;
38
+ /** Style overrides */
39
+ style?: ViewStyle;
40
+ /** Test ID for testing */
41
+ testID?: string;
42
+ }
43
+ export declare const AtomicDivider: React.FC<AtomicDividerProps>;
44
+ export default AtomicDivider;
45
+ //# sourceMappingURL=AtomicDivider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AtomicDivider.d.ts","sourceRoot":"","sources":["../../../src/presentation/atoms/AtomicDivider.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAoB,SAAS,EAAE,MAAM,cAAc,CAAC;AAO3D,MAAM,WAAW,kBAAkB;IACjC,0BAA0B;IAC1B,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IACxC,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IACxC,oBAAoB;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,gCAAgC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iBAAiB;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oBAAoB;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mBAAmB;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sBAAsB;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,0BAA0B;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAMD,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAqDtD,CAAC;AAMF,eAAe,aAAa,CAAC"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * AtomicDivider - Universal Divider Component
3
+ *
4
+ * Displays horizontal or vertical dividers for content separation
5
+ * Theme: {{THEME_NAME}} ({{CATEGORY}} category)
6
+ *
7
+ * Atomic Design Level: ATOM
8
+ * Purpose: Content separation and visual hierarchy
9
+ *
10
+ * Usage:
11
+ * - Section separators
12
+ * - List item dividers
13
+ * - Card separators
14
+ * - Menu dividers
15
+ * - Form field separators
16
+ */
17
+ import React from 'react';
18
+ import { View } from 'react-native';
19
+ import { useAppDesignTokens } from '../hooks/useAppDesignTokens';
20
+ // =============================================================================
21
+ // COMPONENT IMPLEMENTATION
22
+ // =============================================================================
23
+ export const AtomicDivider = ({ orientation = 'horizontal', thickness = 'thin', color, length, margin, marginTop, marginBottom, marginLeft, marginRight, style, testID, }) => {
24
+ const tokens = useAppDesignTokens();
25
+ // Thickness mapping
26
+ const thicknessMap = {
27
+ thin: 1,
28
+ medium: 2,
29
+ thick: 4,
30
+ };
31
+ const dividerThickness = thicknessMap[thickness];
32
+ const dividerColor = color || tokens.colors.border;
33
+ // Compute final length values with proper type handling
34
+ const finalLength = length !== undefined ? length : (orientation === 'horizontal' ? '100%' : 20);
35
+ // Base styles for all dividers
36
+ const baseStyle = {
37
+ backgroundColor: dividerColor,
38
+ margin: margin,
39
+ marginTop: marginTop,
40
+ marginBottom: marginBottom,
41
+ marginLeft: marginLeft,
42
+ marginRight: marginRight,
43
+ };
44
+ // Orientation-specific styles with explicit type casting
45
+ const orientationStyle = (orientation === 'horizontal' ? {
46
+ width: finalLength,
47
+ height: dividerThickness,
48
+ } : {
49
+ width: dividerThickness,
50
+ height: finalLength,
51
+ });
52
+ return (<View style={[baseStyle, orientationStyle, style]} testID={testID}/>);
53
+ };
54
+ // =============================================================================
55
+ // EXPORTS
56
+ // =============================================================================
57
+ export default AtomicDivider;
58
+ //# sourceMappingURL=AtomicDivider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AtomicDivider.js","sourceRoot":"","sources":["../../../src/presentation/atoms/AtomicDivider.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAyB,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AA+BjE,gFAAgF;AAChF,2BAA2B;AAC3B,gFAAgF;AAEhF,MAAM,CAAC,MAAM,aAAa,GAAiC,CAAC,EAC1D,WAAW,GAAG,YAAY,EAC1B,SAAS,GAAG,MAAM,EAClB,KAAK,EACL,MAAM,EACN,MAAM,EACN,SAAS,EACT,YAAY,EACZ,UAAU,EACV,WAAW,EACX,KAAK,EACL,MAAM,GACP,EAAE,EAAE;IACH,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;IAEpC,oBAAoB;IACpB,MAAM,YAAY,GAAG;QACnB,IAAI,EAAE,CAAC;QACP,MAAM,EAAE,CAAC;QACT,KAAK,EAAE,CAAC;KACT,CAAC;IAEF,MAAM,gBAAgB,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;IACjD,MAAM,YAAY,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;IAEnD,wDAAwD;IACxD,MAAM,WAAW,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,KAAK,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAEjG,+BAA+B;IAC/B,MAAM,SAAS,GAAc;QAC3B,eAAe,EAAE,YAAY;QAC7B,MAAM,EAAE,MAAM;QACd,SAAS,EAAE,SAAS;QACpB,YAAY,EAAE,YAAY;QAC1B,UAAU,EAAE,UAAU;QACtB,WAAW,EAAE,WAAW;KACzB,CAAC;IAEF,yDAAyD;IACzD,MAAM,gBAAgB,GAAc,CAAC,WAAW,KAAK,YAAY,CAAC,CAAC,CAAC;QAClE,KAAK,EAAE,WAAiC;QACxC,MAAM,EAAE,gBAAgB;KACzB,CAAC,CAAC,CAAC;QACF,KAAK,EAAE,gBAAgB;QACvB,MAAM,EAAE,WAAkC;KAC3C,CAAc,CAAC;IAEhB,OAAO,CACL,CAAC,IAAI,CACH,KAAK,CAAC,CAAC,CAAC,SAAS,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC,CAC5C,MAAM,CAAC,CAAC,MAAM,CAAC,EACf,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,gFAAgF;AAChF,UAAU;AACV,gFAAgF;AAEhF,eAAe,aAAa,CAAC"}