@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,140 @@
1
+ import { StyleProp, ViewStyle, GestureResponderEvent } from 'react-native';
2
+ /**
3
+ * Touchable feedback variant
4
+ * - opacity: iOS-style opacity feedback (default)
5
+ * - highlight: Android-style highlight feedback
6
+ * - ripple: Material Design ripple effect (Android only)
7
+ * - none: No visual feedback
8
+ */
9
+ export type TouchableFeedback = 'opacity' | 'highlight' | 'ripple' | 'none';
10
+ /**
11
+ * Feedback strength for visual feedback
12
+ * - subtle: Light feedback (0.8 opacity)
13
+ * - normal: Standard feedback (0.6 opacity)
14
+ * - strong: Strong feedback (0.4 opacity)
15
+ */
16
+ export type FeedbackStrength = 'subtle' | 'normal' | 'strong';
17
+ /**
18
+ * Hit slop configuration
19
+ * Extends the touchable area beyond the component's bounds
20
+ */
21
+ export interface HitSlop {
22
+ top?: number;
23
+ bottom?: number;
24
+ left?: number;
25
+ right?: number;
26
+ }
27
+ /**
28
+ * AtomicTouchable component props
29
+ *
30
+ * A unified touchable wrapper with consistent behavior across platforms.
31
+ * Uses React Native's Pressable API for modern, accessible touch handling.
32
+ *
33
+ * @example
34
+ * ```tsx
35
+ * <AtomicTouchable
36
+ * onPress={handlePress}
37
+ * feedback="opacity"
38
+ * strength="normal"
39
+ * disabled={isLoading}
40
+ * loading={isLoading}
41
+ * hitSlop={{ top: 8, bottom: 8, left: 8, right: 8 }}
42
+ * style={styles.touchable}
43
+ * >
44
+ * <AtomicText>Press Me</AtomicText>
45
+ * </AtomicTouchable>
46
+ * ```
47
+ */
48
+ export interface AtomicTouchableProps {
49
+ /**
50
+ * Content to render inside the touchable
51
+ */
52
+ children: React.ReactNode;
53
+ /**
54
+ * Callback fired when the touchable is pressed
55
+ */
56
+ onPress?: (event: GestureResponderEvent) => void;
57
+ /**
58
+ * Callback fired when press starts (finger down)
59
+ */
60
+ onPressIn?: (event: GestureResponderEvent) => void;
61
+ /**
62
+ * Callback fired when press ends (finger up)
63
+ */
64
+ onPressOut?: (event: GestureResponderEvent) => void;
65
+ /**
66
+ * Callback fired on long press (500ms default)
67
+ */
68
+ onLongPress?: (event: GestureResponderEvent) => void;
69
+ /**
70
+ * Feedback variant
71
+ * @default 'opacity'
72
+ */
73
+ feedback?: TouchableFeedback;
74
+ /**
75
+ * Feedback strength
76
+ * @default 'normal'
77
+ */
78
+ strength?: FeedbackStrength;
79
+ /**
80
+ * Disable the touchable
81
+ * @default false
82
+ */
83
+ disabled?: boolean;
84
+ /**
85
+ * Show loading indicator (disables touch)
86
+ * @default false
87
+ */
88
+ loading?: boolean;
89
+ /**
90
+ * Hit slop - extends touchable area
91
+ * Useful for small touch targets
92
+ * @default undefined
93
+ */
94
+ hitSlop?: HitSlop | number;
95
+ /**
96
+ * Custom style for the touchable container
97
+ */
98
+ style?: StyleProp<ViewStyle>;
99
+ /**
100
+ * Style applied when pressed
101
+ */
102
+ pressedStyle?: StyleProp<ViewStyle>;
103
+ /**
104
+ * Style applied when disabled
105
+ */
106
+ disabledStyle?: StyleProp<ViewStyle>;
107
+ /**
108
+ * Accessibility label for screen readers
109
+ */
110
+ accessibilityLabel?: string;
111
+ /**
112
+ * Accessibility hint for screen readers
113
+ */
114
+ accessibilityHint?: string;
115
+ /**
116
+ * Accessibility role
117
+ * @default 'button'
118
+ */
119
+ accessibilityRole?: 'button' | 'link' | 'none';
120
+ /**
121
+ * Test ID for E2E testing
122
+ */
123
+ testID?: string;
124
+ /**
125
+ * Delay before onLongPress is triggered (ms)
126
+ * @default 500
127
+ */
128
+ delayLongPress?: number;
129
+ /**
130
+ * Ripple color (Android only, for 'ripple' feedback)
131
+ * @default theme primary color with alpha
132
+ */
133
+ rippleColor?: string;
134
+ /**
135
+ * Border radius for ripple effect (Android only)
136
+ * @default 0
137
+ */
138
+ rippleRadius?: number;
139
+ }
140
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/atoms/touchable/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAE3E;;;;;;GAMG;AACH,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE5E;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE9D;;;GAGG;AACH,MAAM,WAAW,OAAO;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAE1B;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAEjD;;OAEG;IACH,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAEnD;;OAEG;IACH,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAEpD;;OAEG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAErD;;;OAGG;IACH,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAE7B;;;OAGG;IACH,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAE5B;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAE3B;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAE7B;;OAEG;IACH,YAAY,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAEpC;;OAEG;IACH,aAAa,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAErC;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;IAE/C;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/presentation/atoms/touchable/types/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * useAppDesignTokens Hook - Theme-Aware Design Tokens
3
+ *
4
+ * ✅ Automatically reads theme from global store
5
+ * ✅ No parameters needed - fully automatic!
6
+ * ✅ Returns tokens for current theme (light/dark)
7
+ * ✅ Single source of truth
8
+ *
9
+ * @example Usage (fully automatic theme-aware)
10
+ * ```typescript
11
+ * import { useAppDesignTokens } from '@umituz/react-native-design-system';
12
+ *
13
+ * const MyComponent = () => {
14
+ * const tokens = useAppDesignTokens(); // Automatically uses current theme!
15
+ * return (
16
+ * <View style={{
17
+ * backgroundColor: tokens.colors.primary,
18
+ * padding: tokens.spacing.md
19
+ * }}>
20
+ * <Text style={tokens.typography.bodyLarge}>Hello!</Text>
21
+ * </View>
22
+ * );
23
+ * };
24
+ * ```
25
+ *
26
+ * How it works:
27
+ * - Reads themeMode from global store (useDesignSystemTheme)
28
+ * - App's theme store syncs to global store automatically
29
+ * - All components get correct tokens without prop drilling
30
+ * - Change theme once, everything updates!
31
+ */
32
+ import { type DesignTokens } from '../tokens/core/TokenFactory';
33
+ export declare const useAppDesignTokens: () => DesignTokens;
34
+ //# sourceMappingURL=useAppDesignTokens.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAppDesignTokens.d.ts","sourceRoot":"","sources":["../../../src/presentation/hooks/useAppDesignTokens.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAGH,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAGpF,eAAO,MAAM,kBAAkB,QAAO,YAGrC,CAAC"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * useAppDesignTokens Hook - Theme-Aware Design Tokens
3
+ *
4
+ * ✅ Automatically reads theme from global store
5
+ * ✅ No parameters needed - fully automatic!
6
+ * ✅ Returns tokens for current theme (light/dark)
7
+ * ✅ Single source of truth
8
+ *
9
+ * @example Usage (fully automatic theme-aware)
10
+ * ```typescript
11
+ * import { useAppDesignTokens } from '@umituz/react-native-design-system';
12
+ *
13
+ * const MyComponent = () => {
14
+ * const tokens = useAppDesignTokens(); // Automatically uses current theme!
15
+ * return (
16
+ * <View style={{
17
+ * backgroundColor: tokens.colors.primary,
18
+ * padding: tokens.spacing.md
19
+ * }}>
20
+ * <Text style={tokens.typography.bodyLarge}>Hello!</Text>
21
+ * </View>
22
+ * );
23
+ * };
24
+ * ```
25
+ *
26
+ * How it works:
27
+ * - Reads themeMode from global store (useDesignSystemTheme)
28
+ * - App's theme store syncs to global store automatically
29
+ * - All components get correct tokens without prop drilling
30
+ * - Change theme once, everything updates!
31
+ */
32
+ import { useMemo } from 'react';
33
+ import { createDesignTokens } from '../tokens/core/TokenFactory';
34
+ import { useDesignSystemTheme } from '../../infrastructure/theme/globalThemeStore';
35
+ export const useAppDesignTokens = () => {
36
+ const { themeMode } = useDesignSystemTheme();
37
+ return useMemo(() => createDesignTokens(themeMode), [themeMode]);
38
+ };
39
+ //# sourceMappingURL=useAppDesignTokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAppDesignTokens.js","sourceRoot":"","sources":["../../../src/presentation/hooks/useAppDesignTokens.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,kBAAkB,EAAqB,MAAM,6BAA6B,CAAC;AACpF,OAAO,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;AAEnF,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAiB,EAAE;IACnD,MAAM,EAAE,SAAS,EAAE,GAAG,oBAAoB,EAAE,CAAC;IAC7C,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;AACnE,CAAC,CAAC"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * useResponsive Hook
3
+ *
4
+ * React Hook for accessing responsive utilities with real-time dimension updates
5
+ * and safe area insets integration.
6
+ *
7
+ * Usage:
8
+ * ```tsx
9
+ * const { logoSize, inputHeight, fabPosition, isSmallDevice } = useResponsive();
10
+ * ```
11
+ */
12
+ import { DeviceType } from '../utils/responsive';
13
+ export interface UseResponsiveReturn {
14
+ width: number;
15
+ height: number;
16
+ isSmallDevice: boolean;
17
+ isTabletDevice: boolean;
18
+ isLandscapeMode: boolean;
19
+ deviceType: DeviceType;
20
+ insets: {
21
+ top: number;
22
+ bottom: number;
23
+ left: number;
24
+ right: number;
25
+ };
26
+ logoSize: number;
27
+ inputHeight: number;
28
+ iconContainerSize: number;
29
+ maxContentWidth: number;
30
+ minTouchTarget: number;
31
+ horizontalPadding: number;
32
+ bottomPosition: number;
33
+ fabPosition: {
34
+ bottom: number;
35
+ right: number;
36
+ };
37
+ modalMaxHeight: string;
38
+ modalMinHeight: number;
39
+ gridColumns: number;
40
+ spacingMultiplier: number;
41
+ onboardingIconMarginTop: number;
42
+ onboardingIconMarginBottom: number;
43
+ onboardingIconSize: number;
44
+ onboardingTitleMarginBottom: number;
45
+ onboardingTextPadding: number;
46
+ onboardingDescriptionMarginTop: number;
47
+ formBottomPadding: number;
48
+ inputIconSize: number;
49
+ formContentWidth: number | undefined;
50
+ formElementSpacing: number;
51
+ getLogoSize: (baseSize?: number) => number;
52
+ getInputHeight: (baseHeight?: number) => number;
53
+ getIconSize: (baseSize?: number) => number;
54
+ getMaxWidth: (baseWidth?: number) => number;
55
+ getFontSize: (baseFontSize: number) => number;
56
+ getGridCols: (mobile?: number, tablet?: number) => number;
57
+ }
58
+ /**
59
+ * Hook for responsive design utilities
60
+ * Automatically updates when screen dimensions or orientation changes
61
+ */
62
+ export declare const useResponsive: () => UseResponsiveReturn;
63
+ /**
64
+ * Shorthand hook for just responsive sizes
65
+ */
66
+ export declare const useResponsiveSizes: () => {
67
+ logoSize: number;
68
+ inputHeight: number;
69
+ iconContainerSize: number;
70
+ maxContentWidth: number;
71
+ };
72
+ /**
73
+ * Shorthand hook for just device type checks
74
+ */
75
+ export declare const useDeviceType: () => {
76
+ isSmallDevice: boolean;
77
+ isTabletDevice: boolean;
78
+ deviceType: DeviceType;
79
+ };
80
+ //# sourceMappingURL=useResponsive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useResponsive.d.ts","sourceRoot":"","sources":["../../../src/presentation/hooks/useResponsive.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,EA4BL,UAAU,EACX,MAAM,qBAAqB,CAAC;AAE7B,MAAM,WAAW,mBAAmB;IAElC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,OAAO,CAAC;IACxB,eAAe,EAAE,OAAO,CAAC;IACzB,UAAU,EAAE,UAAU,CAAC;IAGvB,MAAM,EAAE;QACN,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IAGF,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IAGvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAG/C,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAG1B,uBAAuB,EAAE,MAAM,CAAC;IAChC,0BAA0B,EAAE,MAAM,CAAC;IACnC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,2BAA2B,EAAE,MAAM,CAAC;IACpC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,8BAA8B,EAAE,MAAM,CAAC;IAGvC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,kBAAkB,EAAE,MAAM,CAAC;IAG3B,WAAW,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C,cAAc,EAAE,CAAC,UAAU,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAChD,WAAW,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C,WAAW,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAC5C,WAAW,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,MAAM,CAAC;IAC9C,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;CAC3D;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,QAAO,mBAwDhC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;CAG9B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa;;;;CAGzB,CAAC"}
@@ -0,0 +1,82 @@
1
+ /**
2
+ * useResponsive Hook
3
+ *
4
+ * React Hook for accessing responsive utilities with real-time dimension updates
5
+ * and safe area insets integration.
6
+ *
7
+ * Usage:
8
+ * ```tsx
9
+ * const { logoSize, inputHeight, fabPosition, isSmallDevice } = useResponsive();
10
+ * ```
11
+ */
12
+ import { useWindowDimensions } from 'react-native';
13
+ import { useSafeAreaInsets } from 'react-native-safe-area-context';
14
+ import { getResponsiveLogoSize, getResponsiveInputHeight, getResponsiveHorizontalPadding, getResponsiveBottomPosition, getResponsiveFABPosition, getResponsiveModalMaxHeight, getResponsiveMinModalHeight, getResponsiveIconContainerSize, getResponsiveGridColumns, getResponsiveMaxWidth, getResponsiveFontSize, isSmallPhone, isTablet, isLandscape, getDeviceType, getMinTouchTargetSize, getSpacingMultiplier, getOnboardingIconMarginTop, getOnboardingIconMarginBottom, getOnboardingTitleMarginBottom, getOnboardingTextPadding, getOnboardingDescriptionMarginTop, getOnboardingIconSize, getFormBottomPadding, getInputIconSize, getFormContentWidth, getFormElementSpacing, } from '../utils/responsive';
15
+ /**
16
+ * Hook for responsive design utilities
17
+ * Automatically updates when screen dimensions or orientation changes
18
+ */
19
+ export const useResponsive = () => {
20
+ const { width, height } = useWindowDimensions();
21
+ const insets = useSafeAreaInsets();
22
+ return {
23
+ // Device info
24
+ width,
25
+ height,
26
+ isSmallDevice: isSmallPhone(),
27
+ isTabletDevice: isTablet(),
28
+ isLandscapeMode: isLandscape(),
29
+ deviceType: getDeviceType(),
30
+ // Safe area insets
31
+ insets,
32
+ // Responsive sizes (with default values)
33
+ logoSize: getResponsiveLogoSize(),
34
+ inputHeight: getResponsiveInputHeight(),
35
+ iconContainerSize: getResponsiveIconContainerSize(),
36
+ maxContentWidth: getResponsiveMaxWidth(),
37
+ minTouchTarget: getMinTouchTargetSize(),
38
+ // Responsive positioning
39
+ horizontalPadding: getResponsiveHorizontalPadding(16, insets),
40
+ bottomPosition: getResponsiveBottomPosition(32, insets),
41
+ fabPosition: getResponsiveFABPosition(insets),
42
+ // Responsive layout
43
+ modalMaxHeight: getResponsiveModalMaxHeight(),
44
+ modalMinHeight: getResponsiveMinModalHeight(),
45
+ gridColumns: getResponsiveGridColumns(),
46
+ spacingMultiplier: getSpacingMultiplier(),
47
+ // Onboarding-specific spacing (pre-calculated, no component calculations)
48
+ onboardingIconMarginTop: getOnboardingIconMarginTop(),
49
+ onboardingIconMarginBottom: getOnboardingIconMarginBottom(),
50
+ onboardingIconSize: getOnboardingIconSize(),
51
+ onboardingTitleMarginBottom: getOnboardingTitleMarginBottom(),
52
+ onboardingTextPadding: getOnboardingTextPadding(),
53
+ onboardingDescriptionMarginTop: getOnboardingDescriptionMarginTop(),
54
+ // Form-specific spacing (pre-calculated, universal)
55
+ formBottomPadding: getFormBottomPadding(insets.bottom),
56
+ inputIconSize: getInputIconSize(),
57
+ formContentWidth: getFormContentWidth(),
58
+ formElementSpacing: getFormElementSpacing(),
59
+ // Utility functions (allow custom base values)
60
+ getLogoSize: (baseSize) => getResponsiveLogoSize(baseSize),
61
+ getInputHeight: (baseHeight) => getResponsiveInputHeight(baseHeight),
62
+ getIconSize: (baseSize) => getResponsiveIconContainerSize(baseSize),
63
+ getMaxWidth: (baseWidth) => getResponsiveMaxWidth(baseWidth),
64
+ getFontSize: (baseFontSize) => getResponsiveFontSize(baseFontSize),
65
+ getGridCols: (mobile, tablet) => getResponsiveGridColumns(mobile, tablet),
66
+ };
67
+ };
68
+ /**
69
+ * Shorthand hook for just responsive sizes
70
+ */
71
+ export const useResponsiveSizes = () => {
72
+ const { logoSize, inputHeight, iconContainerSize, maxContentWidth } = useResponsive();
73
+ return { logoSize, inputHeight, iconContainerSize, maxContentWidth };
74
+ };
75
+ /**
76
+ * Shorthand hook for just device type checks
77
+ */
78
+ export const useDeviceType = () => {
79
+ const { isSmallDevice, isTabletDevice, deviceType } = useResponsive();
80
+ return { isSmallDevice, isTabletDevice, deviceType };
81
+ };
82
+ //# sourceMappingURL=useResponsive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useResponsive.js","sourceRoot":"","sources":["../../../src/presentation/hooks/useResponsive.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Loading Domain - Public API
3
+ *
4
+ * Domain-Driven Design (DDD) Architecture
5
+ * Theme: {{THEME_NAME}} ({{CATEGORY}} category)
6
+ *
7
+ * This is the SINGLE SOURCE OF TRUTH for the Loading domain.
8
+ * ALL imports from this domain MUST go through this file.
9
+ *
10
+ * Architecture:
11
+ * - presentation/components: UI components (LoadingState, LoadingSpinner)
12
+ * - presentation/hooks: React hooks (useLoading)
13
+ *
14
+ * Usage:
15
+ * import { LoadingState, LoadingSpinner, useLoading } from '@domains/design-system';
16
+ */
17
+ export { LoadingState } from './presentation/components/LoadingState';
18
+ export type { LoadingStateProps, LoadingStateSize } from './presentation/components/LoadingState';
19
+ export { LoadingSpinner } from './presentation/components/LoadingSpinner';
20
+ export type { LoadingSpinnerProps, LoadingSpinnerSize, LoadingSpinnerColor, } from './presentation/components/LoadingSpinner';
21
+ export { useLoading } from './presentation/hooks/useLoading';
22
+ export type { LoadingConfig, UseLoadingReturn, } from './presentation/hooks/useLoading';
23
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/presentation/loading/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAMH,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AACtE,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAElG,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAC1E,YAAY,EACV,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,0CAA0C,CAAC;AAMlD,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,YAAY,EACV,aAAa,EACb,gBAAgB,GACjB,MAAM,iCAAiC,CAAC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Loading Domain - Public API
3
+ *
4
+ * Domain-Driven Design (DDD) Architecture
5
+ * Theme: {{THEME_NAME}} ({{CATEGORY}} category)
6
+ *
7
+ * This is the SINGLE SOURCE OF TRUTH for the Loading domain.
8
+ * ALL imports from this domain MUST go through this file.
9
+ *
10
+ * Architecture:
11
+ * - presentation/components: UI components (LoadingState, LoadingSpinner)
12
+ * - presentation/hooks: React hooks (useLoading)
13
+ *
14
+ * Usage:
15
+ * import { LoadingState, LoadingSpinner, useLoading } from '@domains/design-system';
16
+ */
17
+ // =============================================================================
18
+ // PRESENTATION LAYER - Components
19
+ // =============================================================================
20
+ export { LoadingState } from './presentation/components/LoadingState';
21
+ export { LoadingSpinner } from './presentation/components/LoadingSpinner';
22
+ // =============================================================================
23
+ // PRESENTATION LAYER - Hooks
24
+ // =============================================================================
25
+ export { useLoading } from './presentation/hooks/useLoading';
26
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/presentation/loading/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,gFAAgF;AAChF,kCAAkC;AAClC,gFAAgF;AAEhF,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AAGtE,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAO1E,gFAAgF;AAChF,6BAA6B;AAC7B,gFAAgF;AAEhF,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * LoadingSpinner - Theme-Aware Activity Indicator
3
+ *
4
+ * Refactored from AtomicLoadingSpinner - now part of Loading domain
5
+ * Uses central useAppDesignTokens() hook for automatic theme switching
6
+ * Theme: {{THEME_NAME}} ({{CATEGORY}} category)
7
+ *
8
+ * Features:
9
+ * - ✅ AUTOMATIC theme switching via useAppDesignTokens()
10
+ * - ✅ Multiple size variants (small, medium, large)
11
+ * - ✅ Dynamic color customization
12
+ * - ✅ Overlay support
13
+ * - ✅ Message display
14
+ */
15
+ import React from 'react';
16
+ import { ViewStyle } from 'react-native';
17
+ export type LoadingSpinnerSize = 'small' | 'medium' | 'large';
18
+ export type LoadingSpinnerColor = 'primary' | 'secondary' | 'white';
19
+ export interface LoadingSpinnerProps {
20
+ size?: LoadingSpinnerSize;
21
+ color?: LoadingSpinnerColor;
22
+ message?: string;
23
+ overlay?: boolean;
24
+ style?: ViewStyle;
25
+ }
26
+ export declare const LoadingSpinner: React.FC<LoadingSpinnerProps>;
27
+ export default LoadingSpinner;
28
+ //# sourceMappingURL=LoadingSpinner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LoadingSpinner.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/loading/presentation/components/LoadingSpinner.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAA2B,SAAS,EAAE,MAAM,cAAc,CAAC;AASlE,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAC9D,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,CAAC;AAEpE,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B,KAAK,CAAC,EAAE,mBAAmB,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAgBD,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CA+DxD,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -0,0 +1,77 @@
1
+ /**
2
+ * LoadingSpinner - Theme-Aware Activity Indicator
3
+ *
4
+ * Refactored from AtomicLoadingSpinner - now part of Loading domain
5
+ * Uses central useAppDesignTokens() hook for automatic theme switching
6
+ * Theme: {{THEME_NAME}} ({{CATEGORY}} category)
7
+ *
8
+ * Features:
9
+ * - ✅ AUTOMATIC theme switching via useAppDesignTokens()
10
+ * - ✅ Multiple size variants (small, medium, large)
11
+ * - ✅ Dynamic color customization
12
+ * - ✅ Overlay support
13
+ * - ✅ Message display
14
+ */
15
+ import React from 'react';
16
+ import { View, ActivityIndicator } from 'react-native';
17
+ import { useAppDesignTokens } from '../../../hooks/useAppDesignTokens';
18
+ import { withAlpha } from '../../../tokens/AppDesignTokens';
19
+ import { AtomicText } from '../../../atoms/AtomicText';
20
+ // =============================================================================
21
+ // SIZE VARIANTS
22
+ // =============================================================================
23
+ const sizeVariants = {
24
+ small: 'small',
25
+ medium: 'large',
26
+ large: 'large',
27
+ };
28
+ // =============================================================================
29
+ // COMPONENT IMPLEMENTATION
30
+ // =============================================================================
31
+ export const LoadingSpinner = ({ size = 'medium', color = 'primary', message, overlay = false, style, }) => {
32
+ // ✅ DYNAMIC tokens from central hook
33
+ const tokens = useAppDesignTokens();
34
+ const spinnerSize = sizeVariants[size];
35
+ /**
36
+ * Get spinner color from dynamic theme
37
+ * ✅ Automatically updates when theme changes
38
+ */
39
+ const getSpinnerColor = () => {
40
+ switch (color) {
41
+ case 'primary':
42
+ return tokens.colors.primary;
43
+ case 'secondary':
44
+ return tokens.colors.secondary;
45
+ case 'white':
46
+ return tokens.colors.textInverse;
47
+ default:
48
+ return tokens.colors.primary;
49
+ }
50
+ };
51
+ const spinnerColor = getSpinnerColor();
52
+ const containerStyle = overlay
53
+ ? {
54
+ position: 'absolute',
55
+ top: 0,
56
+ left: 0,
57
+ right: 0,
58
+ bottom: 0,
59
+ backgroundColor: withAlpha(tokens.colors.black, 0.5),
60
+ justifyContent: 'center',
61
+ alignItems: 'center',
62
+ zIndex: 9999,
63
+ }
64
+ : {
65
+ justifyContent: 'center',
66
+ alignItems: 'center',
67
+ padding: tokens.spacing.lg,
68
+ };
69
+ return (<View style={[containerStyle, style]}>
70
+ <ActivityIndicator size={spinnerSize} color={spinnerColor}/>
71
+ {message && (<AtomicText type="bodyMedium" color={overlay ? 'inverse' : 'primary'} style={{ marginTop: tokens.spacing.md, textAlign: 'center' }}>
72
+ {message}
73
+ </AtomicText>)}
74
+ </View>);
75
+ };
76
+ export default LoadingSpinner;
77
+ //# sourceMappingURL=LoadingSpinner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LoadingSpinner.js","sourceRoot":"","sources":["../../../../../src/presentation/loading/presentation/components/LoadingSpinner.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAa,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAiBvD,gFAAgF;AAChF,gBAAgB;AAChB,gFAAgF;AAEhF,MAAM,YAAY,GAAkD;IAClE,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,OAAO;IACf,KAAK,EAAE,OAAO;CACf,CAAC;AAEF,gFAAgF;AAChF,2BAA2B;AAC3B,gFAAgF;AAEhF,MAAM,CAAC,MAAM,cAAc,GAAkC,CAAC,EAC5D,IAAI,GAAG,QAAQ,EACf,KAAK,GAAG,SAAS,EACjB,OAAO,EACP,OAAO,GAAG,KAAK,EACf,KAAK,GACN,EAAE,EAAE;IACH,qCAAqC;IACrC,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;IAEpC,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAEvC;;;OAGG;IACH,MAAM,eAAe,GAAG,GAAW,EAAE;QACnC,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,SAAS;gBACZ,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;YAC/B,KAAK,WAAW;gBACd,OAAO,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;YACjC,KAAK,OAAO;gBACV,OAAO,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;YACnC;gBACE,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;QACjC,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;IAEvC,MAAM,cAAc,GAAc,OAAO;QACvC,CAAC,CAAC;YACE,QAAQ,EAAE,UAAU;YACpB,GAAG,EAAE,CAAC;YACN,IAAI,EAAE,CAAC;YACP,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC;YACT,eAAe,EAAE,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC;YACpD,cAAc,EAAE,QAAQ;YACxB,UAAU,EAAE,QAAQ;YACpB,MAAM,EAAE,IAAI;SACb;QACH,CAAC,CAAC;YACE,cAAc,EAAE,QAAQ;YACxB,UAAU,EAAE,QAAQ;YACpB,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE;SAC3B,CAAC;IAEN,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,CACnC;MAAA,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,EAC1D;MAAA,CAAC,OAAO,IAAI,CACV,CAAC,UAAU,CACT,IAAI,CAAC,YAAY,CACjB,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CACvC,KAAK,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAE7D;UAAA,CAAC,OAAO,CACV;QAAA,EAAE,UAAU,CAAC,CACd,CACH;IAAA,EAAE,IAAI,CAAC,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * LoadingState - Dynamic Icon-Based Loading Component
3
+ *
4
+ * Universal loading component with configurable emoji/icon support
5
+ * Inspired by meditation_timer's breathing animation pattern
6
+ * Theme: {{THEME_NAME}} ({{CATEGORY}} category)
7
+ *
8
+ * Features:
9
+ * - ✅ Dynamic emoji/icon per screen (🏠 Home, ⚙️ Settings, 💪 Workout, etc.)
10
+ * - ✅ Breathing animation effect (scale 1 → 1.15 → 1)
11
+ * - ✅ Size variants (small, medium, large)
12
+ * - ✅ Full screen or inline modes
13
+ * - ✅ Optional loading message
14
+ * - ✅ Theme-aware styling
15
+ */
16
+ import React from 'react';
17
+ export type LoadingStateSize = 'small' | 'medium' | 'large';
18
+ export interface LoadingStateProps {
19
+ /**
20
+ * Emoji/icon to display (changes per screen context)
21
+ * Examples: 🏠 Home, ⚙️ Settings, 💪 Workout, 🧘 Meditation, 📊 Analytics
22
+ */
23
+ icon?: string;
24
+ /**
25
+ * Optional loading message
26
+ */
27
+ message?: string;
28
+ /**
29
+ * Size variant
30
+ */
31
+ size?: LoadingStateSize;
32
+ /**
33
+ * Full screen overlay mode
34
+ */
35
+ fullScreen?: boolean;
36
+ }
37
+ export declare const LoadingState: React.FC<LoadingStateProps>;
38
+ export default LoadingState;
39
+ //# sourceMappingURL=LoadingState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LoadingState.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/loading/presentation/components/LoadingState.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAqC,MAAM,OAAO,CAAC;AAe1D,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE5D,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,IAAI,CAAC,EAAE,gBAAgB,CAAC;IAExB;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAkCD,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA4EpD,CAAC;AAmCF,eAAe,YAAY,CAAC"}