@umituz/react-native-design-system 1.3.0 → 1.3.2

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 (351) hide show
  1. package/lib/domains/icons/domain/config/IconLibraryConfig.d.ts +91 -0
  2. package/lib/domains/icons/domain/config/IconLibraryConfig.d.ts.map +1 -0
  3. package/lib/domains/icons/domain/config/IconLibraryConfig.js +85 -0
  4. package/lib/domains/icons/domain/config/IconLibraryConfig.js.map +1 -0
  5. package/lib/domains/icons/domain/entities/Icon.d.ts +111 -0
  6. package/lib/domains/icons/domain/entities/Icon.d.ts.map +1 -0
  7. package/lib/domains/icons/domain/entities/Icon.js +87 -0
  8. package/lib/domains/icons/domain/entities/Icon.js.map +1 -0
  9. package/lib/domains/icons/domain/interfaces/IIconAdapter.d.ts +114 -0
  10. package/lib/domains/icons/domain/interfaces/IIconAdapter.d.ts.map +1 -0
  11. package/lib/domains/icons/domain/interfaces/IIconAdapter.js +17 -0
  12. package/lib/domains/icons/domain/interfaces/IIconAdapter.js.map +1 -0
  13. package/lib/domains/icons/index.d.ts +84 -0
  14. package/lib/domains/icons/index.d.ts.map +1 -0
  15. package/lib/domains/icons/index.js +89 -0
  16. package/lib/domains/icons/index.js.map +1 -0
  17. package/lib/domains/icons/infrastructure/adapters/LucideAdapter.d.ts +24 -0
  18. package/lib/domains/icons/infrastructure/adapters/LucideAdapter.d.ts.map +1 -0
  19. package/lib/domains/icons/infrastructure/adapters/LucideAdapter.js +85 -0
  20. package/lib/domains/icons/infrastructure/adapters/LucideAdapter.js.map +1 -0
  21. package/lib/domains/icons/infrastructure/registries/ExpoIconRegistry.d.ts +23 -0
  22. package/lib/domains/icons/infrastructure/registries/ExpoIconRegistry.d.ts.map +1 -0
  23. package/lib/domains/icons/infrastructure/registries/ExpoIconRegistry.js +178 -0
  24. package/lib/domains/icons/infrastructure/registries/ExpoIconRegistry.js.map +1 -0
  25. package/lib/domains/icons/presentation/components/Icon.d.ts +42 -0
  26. package/lib/domains/icons/presentation/components/Icon.d.ts.map +1 -0
  27. package/lib/domains/icons/presentation/components/Icon.js +86 -0
  28. package/lib/domains/icons/presentation/components/Icon.js.map +1 -0
  29. package/lib/domains/icons/presentation/hooks/useIconLibrary.d.ts +38 -0
  30. package/lib/domains/icons/presentation/hooks/useIconLibrary.d.ts.map +1 -0
  31. package/lib/domains/icons/presentation/hooks/useIconLibrary.js +114 -0
  32. package/lib/domains/icons/presentation/hooks/useIconLibrary.js.map +1 -0
  33. package/lib/index.d.ts +66 -0
  34. package/lib/index.d.ts.map +1 -0
  35. package/lib/index.js +106 -0
  36. package/lib/index.js.map +1 -0
  37. package/lib/infrastructure/theme/globalThemeStore.d.ts +42 -0
  38. package/lib/infrastructure/theme/globalThemeStore.d.ts.map +1 -0
  39. package/lib/infrastructure/theme/globalThemeStore.js +38 -0
  40. package/lib/infrastructure/theme/globalThemeStore.js.map +1 -0
  41. package/lib/presentation/atoms/AtomicAvatar.d.ts +48 -0
  42. package/lib/presentation/atoms/AtomicAvatar.d.ts.map +1 -0
  43. package/lib/presentation/atoms/AtomicAvatar.js +85 -0
  44. package/lib/presentation/atoms/AtomicAvatar.js.map +1 -0
  45. package/lib/presentation/atoms/AtomicAvatarGroup.d.ts +56 -0
  46. package/lib/presentation/atoms/AtomicAvatarGroup.d.ts.map +1 -0
  47. package/lib/presentation/atoms/AtomicAvatarGroup.js +83 -0
  48. package/lib/presentation/atoms/AtomicAvatarGroup.js.map +1 -0
  49. package/lib/presentation/atoms/AtomicBadge.d.ts +42 -0
  50. package/lib/presentation/atoms/AtomicBadge.d.ts.map +1 -0
  51. package/lib/presentation/atoms/AtomicBadge.js +168 -0
  52. package/lib/presentation/atoms/AtomicBadge.js.map +1 -0
  53. package/lib/presentation/atoms/AtomicButton.d.ts +22 -0
  54. package/lib/presentation/atoms/AtomicButton.d.ts.map +1 -0
  55. package/lib/presentation/atoms/AtomicButton.js +193 -0
  56. package/lib/presentation/atoms/AtomicButton.js.map +1 -0
  57. package/lib/presentation/atoms/AtomicCard.d.ts +15 -0
  58. package/lib/presentation/atoms/AtomicCard.d.ts.map +1 -0
  59. package/lib/presentation/atoms/AtomicCard.js +89 -0
  60. package/lib/presentation/atoms/AtomicCard.js.map +1 -0
  61. package/lib/presentation/atoms/AtomicChip.d.ts +53 -0
  62. package/lib/presentation/atoms/AtomicChip.d.ts.map +1 -0
  63. package/lib/presentation/atoms/AtomicChip.js +131 -0
  64. package/lib/presentation/atoms/AtomicChip.js.map +1 -0
  65. package/lib/presentation/atoms/AtomicDatePicker.d.ts +75 -0
  66. package/lib/presentation/atoms/AtomicDatePicker.d.ts.map +1 -0
  67. package/lib/presentation/atoms/AtomicDatePicker.js +246 -0
  68. package/lib/presentation/atoms/AtomicDatePicker.js.map +1 -0
  69. package/lib/presentation/atoms/AtomicDivider.d.ts +45 -0
  70. package/lib/presentation/atoms/AtomicDivider.d.ts.map +1 -0
  71. package/lib/presentation/atoms/AtomicDivider.js +58 -0
  72. package/lib/presentation/atoms/AtomicDivider.js.map +1 -0
  73. package/lib/presentation/atoms/AtomicFab.d.ts +38 -0
  74. package/lib/presentation/atoms/AtomicFab.d.ts.map +1 -0
  75. package/lib/presentation/atoms/AtomicFab.js +69 -0
  76. package/lib/presentation/atoms/AtomicFab.js.map +1 -0
  77. package/lib/presentation/atoms/AtomicFilter.d.ts +37 -0
  78. package/lib/presentation/atoms/AtomicFilter.d.ts.map +1 -0
  79. package/lib/presentation/atoms/AtomicFilter.js +104 -0
  80. package/lib/presentation/atoms/AtomicFilter.js.map +1 -0
  81. package/lib/presentation/atoms/AtomicFormError.d.ts +30 -0
  82. package/lib/presentation/atoms/AtomicFormError.d.ts.map +1 -0
  83. package/lib/presentation/atoms/AtomicFormError.js +64 -0
  84. package/lib/presentation/atoms/AtomicFormError.js.map +1 -0
  85. package/lib/presentation/atoms/AtomicIcon.d.ts +36 -0
  86. package/lib/presentation/atoms/AtomicIcon.d.ts.map +1 -0
  87. package/lib/presentation/atoms/AtomicIcon.js +30 -0
  88. package/lib/presentation/atoms/AtomicIcon.js.map +1 -0
  89. package/lib/presentation/atoms/AtomicImage.d.ts +40 -0
  90. package/lib/presentation/atoms/AtomicImage.d.ts.map +1 -0
  91. package/lib/presentation/atoms/AtomicImage.js +92 -0
  92. package/lib/presentation/atoms/AtomicImage.js.map +1 -0
  93. package/lib/presentation/atoms/AtomicInput.d.ts +71 -0
  94. package/lib/presentation/atoms/AtomicInput.d.ts.map +1 -0
  95. package/lib/presentation/atoms/AtomicInput.js +196 -0
  96. package/lib/presentation/atoms/AtomicInput.js.map +1 -0
  97. package/lib/presentation/atoms/AtomicNumberInput.d.ts +69 -0
  98. package/lib/presentation/atoms/AtomicNumberInput.d.ts.map +1 -0
  99. package/lib/presentation/atoms/AtomicNumberInput.js +125 -0
  100. package/lib/presentation/atoms/AtomicNumberInput.js.map +1 -0
  101. package/lib/presentation/atoms/AtomicPicker.d.ts +52 -0
  102. package/lib/presentation/atoms/AtomicPicker.d.ts.map +1 -0
  103. package/lib/presentation/atoms/AtomicPicker.js +299 -0
  104. package/lib/presentation/atoms/AtomicPicker.js.map +1 -0
  105. package/lib/presentation/atoms/AtomicProgress.d.ts +47 -0
  106. package/lib/presentation/atoms/AtomicProgress.d.ts.map +1 -0
  107. package/lib/presentation/atoms/AtomicProgress.js +81 -0
  108. package/lib/presentation/atoms/AtomicProgress.js.map +1 -0
  109. package/lib/presentation/atoms/AtomicSearchBar.d.ts +19 -0
  110. package/lib/presentation/atoms/AtomicSearchBar.d.ts.map +1 -0
  111. package/lib/presentation/atoms/AtomicSearchBar.js +46 -0
  112. package/lib/presentation/atoms/AtomicSearchBar.js.map +1 -0
  113. package/lib/presentation/atoms/AtomicSkeleton.d.ts +43 -0
  114. package/lib/presentation/atoms/AtomicSkeleton.d.ts.map +1 -0
  115. package/lib/presentation/atoms/AtomicSkeleton.js +84 -0
  116. package/lib/presentation/atoms/AtomicSkeleton.js.map +1 -0
  117. package/lib/presentation/atoms/AtomicSort.d.ts +72 -0
  118. package/lib/presentation/atoms/AtomicSort.d.ts.map +1 -0
  119. package/lib/presentation/atoms/AtomicSort.js +77 -0
  120. package/lib/presentation/atoms/AtomicSort.js.map +1 -0
  121. package/lib/presentation/atoms/AtomicSwitch.d.ts +43 -0
  122. package/lib/presentation/atoms/AtomicSwitch.d.ts.map +1 -0
  123. package/lib/presentation/atoms/AtomicSwitch.js +104 -0
  124. package/lib/presentation/atoms/AtomicSwitch.js.map +1 -0
  125. package/lib/presentation/atoms/AtomicText.d.ts +14 -0
  126. package/lib/presentation/atoms/AtomicText.d.ts.map +1 -0
  127. package/lib/presentation/atoms/AtomicText.js +36 -0
  128. package/lib/presentation/atoms/AtomicText.js.map +1 -0
  129. package/lib/presentation/atoms/AtomicTextArea.d.ts +85 -0
  130. package/lib/presentation/atoms/AtomicTextArea.d.ts.map +1 -0
  131. package/lib/presentation/atoms/AtomicTextArea.js +196 -0
  132. package/lib/presentation/atoms/AtomicTextArea.js.map +1 -0
  133. package/lib/presentation/atoms/AtomicTouchable.d.ts +87 -0
  134. package/lib/presentation/atoms/AtomicTouchable.d.ts.map +1 -0
  135. package/lib/presentation/atoms/AtomicTouchable.js +151 -0
  136. package/lib/presentation/atoms/AtomicTouchable.js.map +1 -0
  137. package/lib/presentation/atoms/fab/styles/fabStyles.d.ts +23 -0
  138. package/lib/presentation/atoms/fab/styles/fabStyles.d.ts.map +1 -0
  139. package/lib/presentation/atoms/fab/styles/fabStyles.js +63 -0
  140. package/lib/presentation/atoms/fab/styles/fabStyles.js.map +1 -0
  141. package/lib/presentation/atoms/fab/types/index.d.ts +76 -0
  142. package/lib/presentation/atoms/fab/types/index.d.ts.map +1 -0
  143. package/lib/presentation/atoms/fab/types/index.js +2 -0
  144. package/lib/presentation/atoms/fab/types/index.js.map +1 -0
  145. package/lib/presentation/atoms/filter/styles/filterStyles.d.ts +15 -0
  146. package/lib/presentation/atoms/filter/styles/filterStyles.d.ts.map +1 -0
  147. package/lib/presentation/atoms/filter/styles/filterStyles.js +29 -0
  148. package/lib/presentation/atoms/filter/styles/filterStyles.js.map +1 -0
  149. package/lib/presentation/atoms/filter/types/index.d.ts +76 -0
  150. package/lib/presentation/atoms/filter/types/index.d.ts.map +1 -0
  151. package/lib/presentation/atoms/filter/types/index.js +2 -0
  152. package/lib/presentation/atoms/filter/types/index.js.map +1 -0
  153. package/lib/presentation/atoms/index.d.ts +276 -0
  154. package/lib/presentation/atoms/index.d.ts.map +1 -0
  155. package/lib/presentation/atoms/index.js +149 -0
  156. package/lib/presentation/atoms/index.js.map +1 -0
  157. package/lib/presentation/atoms/input/hooks/useInputState.d.ts +7 -0
  158. package/lib/presentation/atoms/input/hooks/useInputState.d.ts.map +1 -0
  159. package/lib/presentation/atoms/input/hooks/useInputState.js +13 -0
  160. package/lib/presentation/atoms/input/hooks/useInputState.js.map +1 -0
  161. package/lib/presentation/atoms/input/styles/inputStyles.d.ts +13 -0
  162. package/lib/presentation/atoms/input/styles/inputStyles.d.ts.map +1 -0
  163. package/lib/presentation/atoms/input/styles/inputStyles.js +59 -0
  164. package/lib/presentation/atoms/input/styles/inputStyles.js.map +1 -0
  165. package/lib/presentation/atoms/input/types/index.d.ts +24 -0
  166. package/lib/presentation/atoms/input/types/index.d.ts.map +1 -0
  167. package/lib/presentation/atoms/input/types/index.js +2 -0
  168. package/lib/presentation/atoms/input/types/index.js.map +1 -0
  169. package/lib/presentation/atoms/picker/styles/pickerStyles.d.ts +96 -0
  170. package/lib/presentation/atoms/picker/styles/pickerStyles.d.ts.map +1 -0
  171. package/lib/presentation/atoms/picker/styles/pickerStyles.js +177 -0
  172. package/lib/presentation/atoms/picker/styles/pickerStyles.js.map +1 -0
  173. package/lib/presentation/atoms/picker/types/index.d.ts +38 -0
  174. package/lib/presentation/atoms/picker/types/index.d.ts.map +1 -0
  175. package/lib/presentation/atoms/picker/types/index.js +2 -0
  176. package/lib/presentation/atoms/picker/types/index.js.map +1 -0
  177. package/lib/presentation/atoms/touchable/styles/touchableStyles.d.ts +36 -0
  178. package/lib/presentation/atoms/touchable/styles/touchableStyles.d.ts.map +1 -0
  179. package/lib/presentation/atoms/touchable/styles/touchableStyles.js +62 -0
  180. package/lib/presentation/atoms/touchable/styles/touchableStyles.js.map +1 -0
  181. package/lib/presentation/atoms/touchable/types/index.d.ts +140 -0
  182. package/lib/presentation/atoms/touchable/types/index.d.ts.map +1 -0
  183. package/lib/presentation/atoms/touchable/types/index.js +2 -0
  184. package/lib/presentation/atoms/touchable/types/index.js.map +1 -0
  185. package/lib/presentation/hooks/useAppDesignTokens.d.ts +34 -0
  186. package/lib/presentation/hooks/useAppDesignTokens.d.ts.map +1 -0
  187. package/lib/presentation/hooks/useAppDesignTokens.js +39 -0
  188. package/lib/presentation/hooks/useAppDesignTokens.js.map +1 -0
  189. package/lib/presentation/hooks/useResponsive.d.ts +80 -0
  190. package/lib/presentation/hooks/useResponsive.d.ts.map +1 -0
  191. package/lib/presentation/hooks/useResponsive.js +82 -0
  192. package/lib/presentation/hooks/useResponsive.js.map +1 -0
  193. package/lib/presentation/loading/index.d.ts +23 -0
  194. package/lib/presentation/loading/index.d.ts.map +1 -0
  195. package/lib/presentation/loading/index.js +26 -0
  196. package/lib/presentation/loading/index.js.map +1 -0
  197. package/lib/presentation/loading/presentation/components/LoadingSpinner.d.ts +28 -0
  198. package/lib/presentation/loading/presentation/components/LoadingSpinner.d.ts.map +1 -0
  199. package/lib/presentation/loading/presentation/components/LoadingSpinner.js +77 -0
  200. package/lib/presentation/loading/presentation/components/LoadingSpinner.js.map +1 -0
  201. package/lib/presentation/loading/presentation/components/LoadingState.d.ts +39 -0
  202. package/lib/presentation/loading/presentation/components/LoadingState.d.ts.map +1 -0
  203. package/lib/presentation/loading/presentation/components/LoadingState.js +123 -0
  204. package/lib/presentation/loading/presentation/components/LoadingState.js.map +1 -0
  205. package/lib/presentation/loading/presentation/hooks/useLoading.d.ts +50 -0
  206. package/lib/presentation/loading/presentation/hooks/useLoading.d.ts.map +1 -0
  207. package/lib/presentation/loading/presentation/hooks/useLoading.js +49 -0
  208. package/lib/presentation/loading/presentation/hooks/useLoading.js.map +1 -0
  209. package/lib/presentation/molecules/AtomicConfirmationModal.d.ts +73 -0
  210. package/lib/presentation/molecules/AtomicConfirmationModal.d.ts.map +1 -0
  211. package/lib/presentation/molecules/AtomicConfirmationModal.js +172 -0
  212. package/lib/presentation/molecules/AtomicConfirmationModal.js.map +1 -0
  213. package/lib/presentation/molecules/EmptyState.d.ts +41 -0
  214. package/lib/presentation/molecules/EmptyState.d.ts.map +1 -0
  215. package/lib/presentation/molecules/EmptyState.js +68 -0
  216. package/lib/presentation/molecules/EmptyState.js.map +1 -0
  217. package/lib/presentation/molecules/FormField.d.ts +22 -0
  218. package/lib/presentation/molecules/FormField.d.ts.map +1 -0
  219. package/lib/presentation/molecules/FormField.js +76 -0
  220. package/lib/presentation/molecules/FormField.js.map +1 -0
  221. package/lib/presentation/molecules/GridContainer.d.ts +40 -0
  222. package/lib/presentation/molecules/GridContainer.d.ts.map +1 -0
  223. package/lib/presentation/molecules/GridContainer.js +77 -0
  224. package/lib/presentation/molecules/GridContainer.js.map +1 -0
  225. package/lib/presentation/molecules/IconContainer.d.ts +29 -0
  226. package/lib/presentation/molecules/IconContainer.d.ts.map +1 -0
  227. package/lib/presentation/molecules/IconContainer.js +60 -0
  228. package/lib/presentation/molecules/IconContainer.js.map +1 -0
  229. package/lib/presentation/molecules/LanguageSwitcher.d.ts +10 -0
  230. package/lib/presentation/molecules/LanguageSwitcher.d.ts.map +1 -0
  231. package/lib/presentation/molecules/LanguageSwitcher.js +24 -0
  232. package/lib/presentation/molecules/LanguageSwitcher.js.map +1 -0
  233. package/lib/presentation/molecules/ListItem.d.ts +5 -0
  234. package/lib/presentation/molecules/ListItem.d.ts.map +1 -0
  235. package/lib/presentation/molecules/ListItem.js +24 -0
  236. package/lib/presentation/molecules/ListItem.js.map +1 -0
  237. package/lib/presentation/molecules/ScreenHeader.d.ts +55 -0
  238. package/lib/presentation/molecules/ScreenHeader.d.ts.map +1 -0
  239. package/lib/presentation/molecules/ScreenHeader.js +94 -0
  240. package/lib/presentation/molecules/ScreenHeader.js.map +1 -0
  241. package/lib/presentation/molecules/SearchBar.d.ts +18 -0
  242. package/lib/presentation/molecules/SearchBar.d.ts.map +1 -0
  243. package/lib/presentation/molecules/SearchBar.js +47 -0
  244. package/lib/presentation/molecules/SearchBar.js.map +1 -0
  245. package/lib/presentation/molecules/SectionCard.d.ts +25 -0
  246. package/lib/presentation/molecules/SectionCard.d.ts.map +1 -0
  247. package/lib/presentation/molecules/SectionCard.js +47 -0
  248. package/lib/presentation/molecules/SectionCard.js.map +1 -0
  249. package/lib/presentation/molecules/SectionContainer.d.ts +33 -0
  250. package/lib/presentation/molecules/SectionContainer.d.ts.map +1 -0
  251. package/lib/presentation/molecules/SectionContainer.js +64 -0
  252. package/lib/presentation/molecules/SectionContainer.js.map +1 -0
  253. package/lib/presentation/molecules/SectionHeader.d.ts +37 -0
  254. package/lib/presentation/molecules/SectionHeader.d.ts.map +1 -0
  255. package/lib/presentation/molecules/SectionHeader.js +73 -0
  256. package/lib/presentation/molecules/SectionHeader.js.map +1 -0
  257. package/lib/presentation/molecules/confirmation-modal/styles/confirmationModalStyles.d.ts +50 -0
  258. package/lib/presentation/molecules/confirmation-modal/styles/confirmationModalStyles.d.ts.map +1 -0
  259. package/lib/presentation/molecules/confirmation-modal/styles/confirmationModalStyles.js +115 -0
  260. package/lib/presentation/molecules/confirmation-modal/styles/confirmationModalStyles.js.map +1 -0
  261. package/lib/presentation/molecules/confirmation-modal/types/index.d.ts +88 -0
  262. package/lib/presentation/molecules/confirmation-modal/types/index.d.ts.map +1 -0
  263. package/lib/presentation/molecules/confirmation-modal/types/index.js +7 -0
  264. package/lib/presentation/molecules/confirmation-modal/types/index.js.map +1 -0
  265. package/lib/presentation/molecules/index.d.ts +28 -0
  266. package/lib/presentation/molecules/index.d.ts.map +1 -0
  267. package/lib/presentation/molecules/index.js +18 -0
  268. package/lib/presentation/molecules/index.js.map +1 -0
  269. package/lib/presentation/molecules/languageswitcher/config/languageSwitcherConfig.d.ts +11 -0
  270. package/lib/presentation/molecules/languageswitcher/config/languageSwitcherConfig.d.ts.map +1 -0
  271. package/lib/presentation/molecules/languageswitcher/config/languageSwitcherConfig.js +6 -0
  272. package/lib/presentation/molecules/languageswitcher/config/languageSwitcherConfig.js.map +1 -0
  273. package/lib/presentation/molecules/languageswitcher/hooks/useLanguageNavigation.d.ts +5 -0
  274. package/lib/presentation/molecules/languageswitcher/hooks/useLanguageNavigation.d.ts.map +1 -0
  275. package/lib/presentation/molecules/languageswitcher/hooks/useLanguageNavigation.js +12 -0
  276. package/lib/presentation/molecules/languageswitcher/hooks/useLanguageNavigation.js.map +1 -0
  277. package/lib/presentation/molecules/listitem/styles/listItemStyles.d.ts +12 -0
  278. package/lib/presentation/molecules/listitem/styles/listItemStyles.d.ts.map +1 -0
  279. package/lib/presentation/molecules/listitem/styles/listItemStyles.js +15 -0
  280. package/lib/presentation/molecules/listitem/styles/listItemStyles.js.map +1 -0
  281. package/lib/presentation/molecules/listitem/types/index.d.ts +17 -0
  282. package/lib/presentation/molecules/listitem/types/index.d.ts.map +1 -0
  283. package/lib/presentation/molecules/listitem/types/index.js +2 -0
  284. package/lib/presentation/molecules/listitem/types/index.js.map +1 -0
  285. package/lib/presentation/organisms/AppHeader.d.ts +30 -0
  286. package/lib/presentation/organisms/AppHeader.d.ts.map +1 -0
  287. package/lib/presentation/organisms/AppHeader.js +78 -0
  288. package/lib/presentation/organisms/AppHeader.js.map +1 -0
  289. package/lib/presentation/organisms/FormContainer.d.ts +76 -0
  290. package/lib/presentation/organisms/FormContainer.d.ts.map +1 -0
  291. package/lib/presentation/organisms/FormContainer.js +127 -0
  292. package/lib/presentation/organisms/FormContainer.js.map +1 -0
  293. package/lib/presentation/organisms/ScreenLayout.d.ts +99 -0
  294. package/lib/presentation/organisms/ScreenLayout.d.ts.map +1 -0
  295. package/lib/presentation/organisms/ScreenLayout.js +78 -0
  296. package/lib/presentation/organisms/ScreenLayout.js.map +1 -0
  297. package/lib/presentation/organisms/index.d.ts +16 -0
  298. package/lib/presentation/organisms/index.d.ts.map +1 -0
  299. package/lib/presentation/organisms/index.js +14 -0
  300. package/lib/presentation/organisms/index.js.map +1 -0
  301. package/lib/presentation/tokens/AppDesignTokens.d.ts +14 -0
  302. package/lib/presentation/tokens/AppDesignTokens.d.ts.map +1 -0
  303. package/lib/presentation/tokens/AppDesignTokens.js +23 -0
  304. package/lib/presentation/tokens/AppDesignTokens.js.map +1 -0
  305. package/lib/presentation/tokens/commonStyles.d.ts +122 -0
  306. package/lib/presentation/tokens/commonStyles.d.ts.map +1 -0
  307. package/lib/presentation/tokens/commonStyles.js +220 -0
  308. package/lib/presentation/tokens/commonStyles.js.map +1 -0
  309. package/lib/presentation/tokens/core/BaseTokens.d.ts +337 -0
  310. package/lib/presentation/tokens/core/BaseTokens.d.ts.map +1 -0
  311. package/lib/presentation/tokens/core/BaseTokens.js +322 -0
  312. package/lib/presentation/tokens/core/BaseTokens.js.map +1 -0
  313. package/lib/presentation/tokens/core/ColorPalette.d.ts +216 -0
  314. package/lib/presentation/tokens/core/ColorPalette.d.ts.map +1 -0
  315. package/lib/presentation/tokens/core/ColorPalette.js +330 -0
  316. package/lib/presentation/tokens/core/ColorPalette.js.map +1 -0
  317. package/lib/presentation/tokens/core/TokenFactory.d.ts +229 -0
  318. package/lib/presentation/tokens/core/TokenFactory.d.ts.map +1 -0
  319. package/lib/presentation/tokens/core/TokenFactory.js +87 -0
  320. package/lib/presentation/tokens/core/TokenFactory.js.map +1 -0
  321. package/lib/presentation/utils/platformConstants.d.ts +100 -0
  322. package/lib/presentation/utils/platformConstants.d.ts.map +1 -0
  323. package/lib/presentation/utils/platformConstants.js +114 -0
  324. package/lib/presentation/utils/platformConstants.js.map +1 -0
  325. package/lib/presentation/utils/responsive.d.ts +218 -0
  326. package/lib/presentation/utils/responsive.d.ts.map +1 -0
  327. package/lib/presentation/utils/responsive.js +452 -0
  328. package/lib/presentation/utils/responsive.js.map +1 -0
  329. package/lib/presentation/utils/variants/compound.d.ts +10 -0
  330. package/lib/presentation/utils/variants/compound.d.ts.map +1 -0
  331. package/lib/presentation/utils/variants/compound.js +16 -0
  332. package/lib/presentation/utils/variants/compound.js.map +1 -0
  333. package/lib/presentation/utils/variants/core.d.ts +15 -0
  334. package/lib/presentation/utils/variants/core.d.ts.map +1 -0
  335. package/lib/presentation/utils/variants/core.js +23 -0
  336. package/lib/presentation/utils/variants/core.js.map +1 -0
  337. package/lib/presentation/utils/variants/helpers.d.ts +5 -0
  338. package/lib/presentation/utils/variants/helpers.d.ts.map +1 -0
  339. package/lib/presentation/utils/variants/helpers.js +10 -0
  340. package/lib/presentation/utils/variants/helpers.js.map +1 -0
  341. package/lib/presentation/utils/variants.d.ts +4 -0
  342. package/lib/presentation/utils/variants.d.ts.map +1 -0
  343. package/lib/presentation/utils/variants.js +4 -0
  344. package/lib/presentation/utils/variants.js.map +1 -0
  345. package/package.json +38 -4
  346. package/src/domains/icons/domain/interfaces/IIconAdapter.ts +6 -3
  347. package/src/domains/icons/infrastructure/adapters/LucideAdapter.ts +1 -1
  348. package/src/presentation/atoms/AtomicButton.tsx +1 -1
  349. package/src/presentation/molecules/AtomicConfirmationModal.tsx +1 -1
  350. package/src/presentation/molecules/languageswitcher/hooks/useLanguageNavigation.ts +1 -2
  351. package/src/presentation/tokens/core/ColorPalette.ts +2 -0
@@ -0,0 +1,196 @@
1
+ /**
2
+ * AtomicTextArea Component
3
+ *
4
+ * A multiline text input component with pure React Native implementation
5
+ * for longer text entry with consistent styling.
6
+ *
7
+ * Features:
8
+ * - Pure React Native TextInput with multiline
9
+ * - Outlined/filled/flat variants
10
+ * - Error, success, disabled states
11
+ * - Character counter with max length
12
+ * - Helper text for guidance or errors
13
+ * - Configurable rows for height
14
+ * - Theme-aware styling
15
+ * - Full accessibility support
16
+ *
17
+ * Usage:
18
+ * ```tsx
19
+ * const [description, setDescription] = useState('');
20
+ *
21
+ * <AtomicTextArea
22
+ * value={description}
23
+ * onChangeText={setDescription}
24
+ * label="Description"
25
+ * placeholder="Enter description..."
26
+ * maxLength={500}
27
+ * showCharacterCount
28
+ * rows={6}
29
+ * helperText="Provide a detailed description"
30
+ * />
31
+ * ```
32
+ */
33
+ import React, { useState } from 'react';
34
+ import { View, TextInput, StyleSheet } from 'react-native';
35
+ import { useAppDesignTokens } from '../hooks/useAppDesignTokens';
36
+ import { AtomicText } from './AtomicText';
37
+ /**
38
+ * AtomicTextArea - Pure React Native Multiline Text Input
39
+ */
40
+ export const AtomicTextArea = ({ variant = 'outlined', state = 'default', size = 'md', label, value = '', onChangeText, placeholder, helperText, maxLength, showCharacterCount = false, rows = 4, minHeight, autoCapitalize = 'sentences', autoCorrect = true, disabled = false, style, inputStyle, testID, onBlur, onFocus, }) => {
41
+ const tokens = useAppDesignTokens();
42
+ const [isFocused, setIsFocused] = useState(false);
43
+ const isDisabled = state === 'disabled' || disabled;
44
+ const characterCount = value?.toString().length || 0;
45
+ const hasError = state === 'error';
46
+ const hasSuccess = state === 'success';
47
+ // Size configuration
48
+ const sizeConfig = {
49
+ sm: {
50
+ paddingVertical: tokens.spacing.xs,
51
+ paddingHorizontal: tokens.spacing.sm,
52
+ fontSize: tokens.typography.bodySmall.fontSize,
53
+ lineHeight: 20,
54
+ },
55
+ md: {
56
+ paddingVertical: tokens.spacing.sm,
57
+ paddingHorizontal: tokens.spacing.md,
58
+ fontSize: tokens.typography.bodyMedium.fontSize,
59
+ lineHeight: 24,
60
+ },
61
+ lg: {
62
+ paddingVertical: tokens.spacing.md,
63
+ paddingHorizontal: tokens.spacing.lg,
64
+ fontSize: tokens.typography.bodyLarge.fontSize,
65
+ lineHeight: 28,
66
+ },
67
+ };
68
+ const config = sizeConfig[size];
69
+ // Calculate height based on rows
70
+ const getTextAreaHeight = () => {
71
+ if (minHeight)
72
+ return minHeight;
73
+ const paddingVertical = config.paddingVertical * 2;
74
+ return (rows * config.lineHeight) + paddingVertical;
75
+ };
76
+ // Get variant styles
77
+ const getVariantStyle = () => {
78
+ const baseStyle = {
79
+ backgroundColor: tokens.colors.surface,
80
+ borderRadius: tokens.borders.radius.md,
81
+ };
82
+ let borderColor = tokens.colors.border;
83
+ if (isFocused)
84
+ borderColor = tokens.colors.primary;
85
+ if (hasError)
86
+ borderColor = tokens.colors.error;
87
+ if (hasSuccess)
88
+ borderColor = tokens.colors.success;
89
+ if (isDisabled)
90
+ borderColor = tokens.colors.borderDisabled;
91
+ switch (variant) {
92
+ case 'outlined':
93
+ return {
94
+ ...baseStyle,
95
+ borderWidth: isFocused ? 2 : 1,
96
+ borderColor,
97
+ };
98
+ case 'filled':
99
+ return {
100
+ ...baseStyle,
101
+ backgroundColor: tokens.colors.surfaceSecondary,
102
+ borderWidth: 0,
103
+ borderBottomWidth: isFocused ? 2 : 1,
104
+ borderBottomColor: borderColor,
105
+ };
106
+ case 'flat':
107
+ return {
108
+ ...baseStyle,
109
+ backgroundColor: 'transparent',
110
+ borderWidth: 0,
111
+ borderBottomWidth: 1,
112
+ borderBottomColor: borderColor,
113
+ borderRadius: 0,
114
+ };
115
+ default:
116
+ return baseStyle;
117
+ }
118
+ };
119
+ // Get text color based on state
120
+ const getTextColor = () => {
121
+ if (isDisabled)
122
+ return tokens.colors.textDisabled;
123
+ if (hasError)
124
+ return tokens.colors.error;
125
+ if (hasSuccess)
126
+ return tokens.colors.success;
127
+ return tokens.colors.textPrimary;
128
+ };
129
+ const containerStyle = [
130
+ styles.container,
131
+ getVariantStyle(),
132
+ {
133
+ paddingVertical: config.paddingVertical,
134
+ paddingHorizontal: config.paddingHorizontal,
135
+ height: getTextAreaHeight(),
136
+ opacity: isDisabled ? 0.5 : 1,
137
+ },
138
+ style,
139
+ ];
140
+ const textInputStyle = [
141
+ styles.input,
142
+ {
143
+ fontSize: config.fontSize,
144
+ lineHeight: config.lineHeight,
145
+ color: getTextColor(),
146
+ },
147
+ inputStyle,
148
+ ];
149
+ return (<View testID={testID}>
150
+ {label && (<AtomicText type="labelMedium" color={hasError ? 'error' : hasSuccess ? 'success' : 'secondary'} style={styles.label}>
151
+ {label}
152
+ </AtomicText>)}
153
+
154
+ <View style={containerStyle}>
155
+ <TextInput value={value} onChangeText={onChangeText} placeholder={placeholder} placeholderTextColor={tokens.colors.textSecondary} maxLength={maxLength} autoCapitalize={autoCapitalize} autoCorrect={autoCorrect} editable={!isDisabled} multiline={true} numberOfLines={rows} textAlignVertical="top" style={textInputStyle} onBlur={() => {
156
+ setIsFocused(false);
157
+ onBlur?.();
158
+ }} onFocus={() => {
159
+ setIsFocused(true);
160
+ onFocus?.();
161
+ }} testID={testID ? `${testID}-input` : undefined}/>
162
+ </View>
163
+
164
+ {(helperText || showCharacterCount) && (<View style={styles.helperRow}>
165
+ {helperText && (<AtomicText type="bodySmall" color={hasError ? 'error' : 'secondary'} style={styles.helperText} testID={testID ? `${testID}-helper` : undefined}>
166
+ {helperText}
167
+ </AtomicText>)}
168
+ {showCharacterCount && maxLength && (<AtomicText type="bodySmall" color="secondary" style={styles.characterCount} testID={testID ? `${testID}-count` : undefined}>
169
+ {characterCount}/{maxLength}
170
+ </AtomicText>)}
171
+ </View>)}
172
+ </View>);
173
+ };
174
+ const styles = StyleSheet.create({
175
+ container: {
176
+ justifyContent: 'flex-start',
177
+ },
178
+ input: {
179
+ flex: 1,
180
+ },
181
+ label: {
182
+ marginBottom: 4,
183
+ },
184
+ helperRow: {
185
+ flexDirection: 'row',
186
+ justifyContent: 'space-between',
187
+ marginTop: 4,
188
+ },
189
+ helperText: {
190
+ flex: 1,
191
+ },
192
+ characterCount: {
193
+ marginLeft: 8,
194
+ },
195
+ });
196
+ //# sourceMappingURL=AtomicTextArea.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AtomicTextArea.js","sourceRoot":"","sources":["../../../src/presentation/atoms/AtomicTextArea.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,87 @@
1
+ import React from 'react';
2
+ import { AtomicTouchableProps, TouchableFeedback, FeedbackStrength } from './touchable/types';
3
+ export type { AtomicTouchableProps, TouchableFeedback, FeedbackStrength, HitSlop, } from './touchable/types';
4
+ export { getOpacityValue, getTouchableContainerStyle, getDisabledStyle, getLoadingContainerStyle, normalizeHitSlop, } from './touchable/styles/touchableStyles';
5
+ /**
6
+ * AtomicTouchable - Unified Touchable Component
7
+ *
8
+ * A modern, accessible touchable wrapper using React Native's Pressable API.
9
+ * Provides consistent behavior across iOS, Android, and Web.
10
+ *
11
+ * Features:
12
+ * - Multiple feedback variants (opacity, highlight, ripple, none)
13
+ * - Configurable feedback strength (subtle, normal, strong)
14
+ * - Loading state with indicator
15
+ * - Disabled state with visual feedback
16
+ * - Hit slop customization for small touch targets
17
+ * - Minimum 48x48 touch target (iOS HIG compliance)
18
+ * - Full accessibility support
19
+ * - Theme-aware ripple colors
20
+ *
21
+ * @example
22
+ * ```tsx
23
+ * // Basic usage with opacity feedback
24
+ * <AtomicTouchable onPress={handlePress}>
25
+ * <AtomicText>Press Me</AtomicText>
26
+ * </AtomicTouchable>
27
+ *
28
+ * // With loading state
29
+ * <AtomicTouchable
30
+ * onPress={handleSubmit}
31
+ * loading={isSubmitting}
32
+ * feedback="highlight"
33
+ * >
34
+ * <AtomicText>Submit</AtomicText>
35
+ * </AtomicTouchable>
36
+ *
37
+ * // With custom hit slop (extends touch area)
38
+ * <AtomicTouchable
39
+ * onPress={handlePress}
40
+ * hitSlop={8}
41
+ * feedback="ripple"
42
+ * >
43
+ * <AtomicIcon name="X" size="sm" />
44
+ * </AtomicTouchable>
45
+ * ```
46
+ */
47
+ export declare const AtomicTouchable: React.FC<AtomicTouchableProps>;
48
+ /**
49
+ * Preset touchable configurations for common use cases
50
+ */
51
+ export declare const TouchablePresets: {
52
+ /**
53
+ * iOS-style opacity feedback (default)
54
+ */
55
+ ios: {
56
+ feedback: TouchableFeedback;
57
+ strength: FeedbackStrength;
58
+ };
59
+ /**
60
+ * Android-style ripple feedback
61
+ */
62
+ android: {
63
+ feedback: TouchableFeedback;
64
+ strength: FeedbackStrength;
65
+ };
66
+ /**
67
+ * Subtle feedback for secondary actions
68
+ */
69
+ subtle: {
70
+ feedback: TouchableFeedback;
71
+ strength: FeedbackStrength;
72
+ };
73
+ /**
74
+ * Strong feedback for primary actions
75
+ */
76
+ strong: {
77
+ feedback: TouchableFeedback;
78
+ strength: FeedbackStrength;
79
+ };
80
+ /**
81
+ * No visual feedback (use sparingly)
82
+ */
83
+ none: {
84
+ feedback: TouchableFeedback;
85
+ };
86
+ };
87
+ //# sourceMappingURL=AtomicTouchable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AtomicTouchable.d.ts","sourceRoot":"","sources":["../../../src/presentation/atoms/AtomicTouchable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAS9F,YAAY,EACV,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,OAAO,GACR,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,eAAe,EACf,0BAA0B,EAC1B,gBAAgB,EAChB,wBAAwB,EACxB,gBAAgB,GACjB,MAAM,oCAAoC,CAAC;AAE5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAuH1D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB;IAC3B;;OAEG;;kBAEsB,iBAAiB;kBAClB,gBAAgB;;IAGxC;;OAEG;;kBAEqB,iBAAiB;kBACjB,gBAAgB;;IAGxC;;OAEG;;kBAEsB,iBAAiB;kBAClB,gBAAgB;;IAGxC;;OAEG;;kBAEsB,iBAAiB;kBAClB,gBAAgB;;IAGxC;;OAEG;;kBAEmB,iBAAiB;;CAExC,CAAC"}
@@ -0,0 +1,151 @@
1
+ import React from 'react';
2
+ import { Pressable, View, ActivityIndicator } from 'react-native';
3
+ import { useAppDesignTokens } from '../hooks/useAppDesignTokens';
4
+ import { getOpacityValue, getTouchableContainerStyle, getDisabledStyle, getLoadingContainerStyle, normalizeHitSlop, } from './touchable/styles/touchableStyles';
5
+ export { getOpacityValue, getTouchableContainerStyle, getDisabledStyle, getLoadingContainerStyle, normalizeHitSlop, } from './touchable/styles/touchableStyles';
6
+ /**
7
+ * AtomicTouchable - Unified Touchable Component
8
+ *
9
+ * A modern, accessible touchable wrapper using React Native's Pressable API.
10
+ * Provides consistent behavior across iOS, Android, and Web.
11
+ *
12
+ * Features:
13
+ * - Multiple feedback variants (opacity, highlight, ripple, none)
14
+ * - Configurable feedback strength (subtle, normal, strong)
15
+ * - Loading state with indicator
16
+ * - Disabled state with visual feedback
17
+ * - Hit slop customization for small touch targets
18
+ * - Minimum 48x48 touch target (iOS HIG compliance)
19
+ * - Full accessibility support
20
+ * - Theme-aware ripple colors
21
+ *
22
+ * @example
23
+ * ```tsx
24
+ * // Basic usage with opacity feedback
25
+ * <AtomicTouchable onPress={handlePress}>
26
+ * <AtomicText>Press Me</AtomicText>
27
+ * </AtomicTouchable>
28
+ *
29
+ * // With loading state
30
+ * <AtomicTouchable
31
+ * onPress={handleSubmit}
32
+ * loading={isSubmitting}
33
+ * feedback="highlight"
34
+ * >
35
+ * <AtomicText>Submit</AtomicText>
36
+ * </AtomicTouchable>
37
+ *
38
+ * // With custom hit slop (extends touch area)
39
+ * <AtomicTouchable
40
+ * onPress={handlePress}
41
+ * hitSlop={8}
42
+ * feedback="ripple"
43
+ * >
44
+ * <AtomicIcon name="X" size="sm" />
45
+ * </AtomicTouchable>
46
+ * ```
47
+ */
48
+ export const AtomicTouchable = ({ children, onPress, onPressIn, onPressOut, onLongPress, feedback = 'opacity', strength = 'normal', disabled = false, loading = false, hitSlop, style, pressedStyle, disabledStyle, accessibilityLabel, accessibilityHint, accessibilityRole = 'button', testID, delayLongPress = 500, rippleColor, rippleRadius = 0, }) => {
49
+ const tokens = useAppDesignTokens();
50
+ // Determine if touchable should be disabled
51
+ const isDisabled = disabled || loading;
52
+ // Get opacity value based on strength
53
+ const opacityValue = getOpacityValue(strength);
54
+ // Normalize hit slop
55
+ const normalizedHitSlop = normalizeHitSlop(hitSlop);
56
+ // Default ripple color (theme primary with alpha)
57
+ const defaultRippleColor = tokens.colors.primary + '40'; // 40 = 25% opacity in hex
58
+ /**
59
+ * Get style based on pressed state
60
+ */
61
+ const getPressedStyle = ({ pressed }) => {
62
+ const baseStyle = [
63
+ getTouchableContainerStyle(),
64
+ style,
65
+ ];
66
+ if (isDisabled) {
67
+ return [...baseStyle, getDisabledStyle(), disabledStyle];
68
+ }
69
+ if (pressed) {
70
+ // Apply feedback based on variant
71
+ switch (feedback) {
72
+ case 'opacity':
73
+ return [...baseStyle, { opacity: opacityValue }, pressedStyle];
74
+ case 'highlight':
75
+ return [
76
+ ...baseStyle,
77
+ { backgroundColor: tokens.colors.surfaceVariant },
78
+ pressedStyle,
79
+ ];
80
+ case 'none':
81
+ return [...baseStyle, pressedStyle];
82
+ case 'ripple':
83
+ // Ripple is handled by android_ripple prop
84
+ return [...baseStyle, pressedStyle];
85
+ default:
86
+ return [...baseStyle, pressedStyle];
87
+ }
88
+ }
89
+ return baseStyle;
90
+ };
91
+ /**
92
+ * Android ripple configuration
93
+ * Used when feedback='ripple'
94
+ * Pressable automatically ignores this prop on iOS/Web
95
+ */
96
+ const androidRippleConfig = feedback === 'ripple'
97
+ ? {
98
+ color: rippleColor || defaultRippleColor,
99
+ borderless: false,
100
+ radius: rippleRadius,
101
+ }
102
+ : undefined;
103
+ return (<Pressable onPress={isDisabled ? undefined : onPress} onPressIn={isDisabled ? undefined : onPressIn} onPressOut={isDisabled ? undefined : onPressOut} onLongPress={isDisabled ? undefined : onLongPress} delayLongPress={delayLongPress} disabled={isDisabled} hitSlop={normalizedHitSlop} style={getPressedStyle} android_ripple={androidRippleConfig} accessibilityLabel={accessibilityLabel} accessibilityHint={accessibilityHint} accessibilityRole={accessibilityRole} accessibilityState={{
104
+ disabled: isDisabled,
105
+ busy: loading,
106
+ }} testID={testID}>
107
+ {loading ? (<View style={getLoadingContainerStyle()}>
108
+ <ActivityIndicator size="small" color={tokens.colors.primary} testID={`${testID}-loading`}/>
109
+ </View>) : (children)}
110
+ </Pressable>);
111
+ };
112
+ /**
113
+ * Preset touchable configurations for common use cases
114
+ */
115
+ export const TouchablePresets = {
116
+ /**
117
+ * iOS-style opacity feedback (default)
118
+ */
119
+ ios: {
120
+ feedback: 'opacity',
121
+ strength: 'normal',
122
+ },
123
+ /**
124
+ * Android-style ripple feedback
125
+ */
126
+ android: {
127
+ feedback: 'ripple',
128
+ strength: 'normal',
129
+ },
130
+ /**
131
+ * Subtle feedback for secondary actions
132
+ */
133
+ subtle: {
134
+ feedback: 'opacity',
135
+ strength: 'subtle',
136
+ },
137
+ /**
138
+ * Strong feedback for primary actions
139
+ */
140
+ strong: {
141
+ feedback: 'opacity',
142
+ strength: 'strong',
143
+ },
144
+ /**
145
+ * No visual feedback (use sparingly)
146
+ */
147
+ none: {
148
+ feedback: 'none',
149
+ },
150
+ };
151
+ //# sourceMappingURL=AtomicTouchable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AtomicTouchable.js","sourceRoot":"","sources":["../../../src/presentation/atoms/AtomicTouchable.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { ViewStyle } from 'react-native';
2
+ import { FabVariant, FabSize, FabVariantConfig, FabSizeConfig } from '../types';
3
+ import type { DesignTokens } from '../../../tokens/AppDesignTokens';
4
+ /**
5
+ * Material Design 3 FAB size configurations
6
+ */
7
+ export declare const FAB_SIZES: Record<FabSize, FabSizeConfig>;
8
+ /**
9
+ * Get FAB variant styles based on design tokens
10
+ * Note: Icon colors are handled via customColor in AtomicIcon
11
+ */
12
+ export declare const getFabVariants: (tokens: DesignTokens) => Record<FabVariant, FabVariantConfig>;
13
+ /**
14
+ * Get icon size based on FAB size
15
+ * Returns AtomicIconSize type ('sm', 'md', 'lg')
16
+ */
17
+ export declare const getFabIconSize: (size: FabSize) => "sm" | "md" | "lg";
18
+ /**
19
+ * Get FAB border for depth (shadows removed per CLAUDE.md)
20
+ * Subtle border provides visual elevation without shadow issues
21
+ */
22
+ export declare const getFabBorder: (tokens: DesignTokens) => ViewStyle;
23
+ //# sourceMappingURL=fabStyles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fabStyles.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/atoms/fab/styles/fabStyles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAChF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAEpE;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,OAAO,EAAE,aAAa,CAgBpD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAI,QAAQ,YAAY,KAAG,MAAM,CAAC,UAAU,EAAE,gBAAgB,CAavF,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAI,MAAM,OAAO,KAAG,IAAI,GAAG,IAAI,GAAG,IAW5D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,GAAI,QAAQ,YAAY,KAAG,SAGlD,CAAC"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Material Design 3 FAB size configurations
3
+ */
4
+ export const FAB_SIZES = {
5
+ sm: {
6
+ width: 40,
7
+ height: 40,
8
+ borderRadius: 20, // Perfect circle
9
+ },
10
+ md: {
11
+ width: 56,
12
+ height: 56,
13
+ borderRadius: 28, // Perfect circle (Material Design 3 standard)
14
+ },
15
+ lg: {
16
+ width: 72,
17
+ height: 72,
18
+ borderRadius: 36, // Perfect circle
19
+ },
20
+ };
21
+ /**
22
+ * Get FAB variant styles based on design tokens
23
+ * Note: Icon colors are handled via customColor in AtomicIcon
24
+ */
25
+ export const getFabVariants = (tokens) => ({
26
+ primary: {
27
+ backgroundColor: tokens.colors.primary,
28
+ iconColor: tokens.colors.onPrimary,
29
+ },
30
+ secondary: {
31
+ backgroundColor: tokens.colors.secondary,
32
+ iconColor: tokens.colors.onSecondary,
33
+ },
34
+ surface: {
35
+ backgroundColor: tokens.colors.surface,
36
+ iconColor: tokens.colors.onSurface,
37
+ },
38
+ });
39
+ /**
40
+ * Get icon size based on FAB size
41
+ * Returns AtomicIconSize type ('sm', 'md', 'lg')
42
+ */
43
+ export const getFabIconSize = (size) => {
44
+ switch (size) {
45
+ case 'sm':
46
+ return 'sm';
47
+ case 'md':
48
+ return 'md';
49
+ case 'lg':
50
+ return 'lg';
51
+ default:
52
+ return 'md';
53
+ }
54
+ };
55
+ /**
56
+ * Get FAB border for depth (shadows removed per CLAUDE.md)
57
+ * Subtle border provides visual elevation without shadow issues
58
+ */
59
+ export const getFabBorder = (tokens) => ({
60
+ borderWidth: 1,
61
+ borderColor: tokens.colors.outline,
62
+ });
63
+ //# sourceMappingURL=fabStyles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fabStyles.js","sourceRoot":"","sources":["../../../../../src/presentation/atoms/fab/styles/fabStyles.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAmC;IACvD,EAAE,EAAE;QACF,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,EAAE;QACV,YAAY,EAAE,EAAE,EAAE,iBAAiB;KACpC;IACD,EAAE,EAAE;QACF,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,EAAE;QACV,YAAY,EAAE,EAAE,EAAE,8CAA8C;KACjE;IACD,EAAE,EAAE;QACF,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,EAAE;QACV,YAAY,EAAE,EAAE,EAAE,iBAAiB;KACpC;CACF,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAoB,EAAwC,EAAE,CAAC,CAAC;IAC7F,OAAO,EAAE;QACP,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO;QACtC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS;KACnC;IACD,SAAS,EAAE;QACT,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS;QACxC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW;KACrC;IACD,OAAO,EAAE;QACP,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO;QACtC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS;KACnC;CACF,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,IAAa,EAAsB,EAAE;IAClE,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,IAAI;YACP,OAAO,IAAI,CAAC;QACd,KAAK,IAAI;YACP,OAAO,IAAI,CAAC;QACd,KAAK,IAAI;YACP,OAAO,IAAI,CAAC;QACd;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,MAAoB,EAAa,EAAE,CAAC,CAAC;IAChE,WAAW,EAAE,CAAC;IACd,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO;CACnC,CAAC,CAAC"}
@@ -0,0 +1,76 @@
1
+ import { StyleProp, ViewStyle } from 'react-native';
2
+ /**
3
+ * FAB (Floating Action Button) size variants
4
+ * Based on Material Design 3 standards
5
+ */
6
+ export type FabSize = 'sm' | 'md' | 'lg';
7
+ /**
8
+ * FAB variant types
9
+ * - primary: Main action (uses primary color)
10
+ * - secondary: Secondary action (uses secondary color)
11
+ * - surface: Neutral action (uses surface color with border)
12
+ */
13
+ export type FabVariant = 'primary' | 'secondary' | 'surface';
14
+ /**
15
+ * FAB configuration for variant styling
16
+ */
17
+ export interface FabVariantConfig {
18
+ backgroundColor: string;
19
+ iconColor: string;
20
+ }
21
+ /**
22
+ * FAB configuration for size styling
23
+ */
24
+ export interface FabSizeConfig {
25
+ width: number;
26
+ height: number;
27
+ borderRadius: number;
28
+ }
29
+ /**
30
+ * AtomicFab component props
31
+ */
32
+ export interface AtomicFabProps {
33
+ /**
34
+ * Icon name to display (required)
35
+ * Any MaterialIcons name (see https://fonts.google.com/icons)
36
+ * Examples: 'add', 'edit', 'camera', etc.
37
+ */
38
+ icon: string;
39
+ /**
40
+ * Callback when FAB is pressed
41
+ */
42
+ onPress: () => void;
43
+ /**
44
+ * Visual variant of the FAB
45
+ * @default 'primary'
46
+ */
47
+ variant?: FabVariant;
48
+ /**
49
+ * Size of the FAB
50
+ * @default 'md'
51
+ */
52
+ size?: FabSize;
53
+ /**
54
+ * Whether the FAB is disabled
55
+ * @default false
56
+ */
57
+ disabled?: boolean;
58
+ /**
59
+ * Whether to show loading state
60
+ * @default false
61
+ */
62
+ loading?: boolean;
63
+ /**
64
+ * Custom style for the FAB container
65
+ */
66
+ style?: StyleProp<ViewStyle>;
67
+ /**
68
+ * Test ID for testing
69
+ */
70
+ testID?: string;
71
+ /**
72
+ * Accessibility label
73
+ */
74
+ accessibilityLabel?: string;
75
+ }
76
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/atoms/fab/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEpD;;;GAGG;AACH,MAAM,MAAM,OAAO,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEzC;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;AAE7D;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,OAAO,EAAE,MAAM,IAAI,CAAC;IAEpB;;;OAGG;IACH,OAAO,CAAC,EAAE,UAAU,CAAC;IAErB;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAE7B;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B"}
@@ -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/fab/types/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,15 @@
1
+ import { ViewStyle } from 'react-native';
2
+ /**
3
+ * Filter container styles
4
+ * Horizontal scrollable filter chip list
5
+ */
6
+ export declare const getFilterContainerStyle: () => ViewStyle;
7
+ /**
8
+ * Clear all button container styles
9
+ */
10
+ export declare const getClearAllContainerStyle: () => ViewStyle;
11
+ /**
12
+ * ScrollView content container style
13
+ */
14
+ export declare const getScrollContentContainerStyle: () => ViewStyle;
15
+ //# sourceMappingURL=filterStyles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filterStyles.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/atoms/filter/styles/filterStyles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC;;;GAGG;AACH,eAAO,MAAM,uBAAuB,QAAO,SAKzC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,yBAAyB,QAAO,SAO3C,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,8BAA8B,QAAO,SAGhD,CAAC"}