@umituz/react-native-design-system 1.5.7 → 1.5.9

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 (258) hide show
  1. package/package.json +3 -8
  2. package/src/presentation/atoms/AtomicPicker.tsx +2 -2
  3. package/lib/index.d.ts +0 -61
  4. package/lib/index.d.ts.map +0 -1
  5. package/lib/index.js +0 -101
  6. package/lib/index.js.map +0 -1
  7. package/lib/presentation/atoms/AtomicAvatar.d.ts +0 -48
  8. package/lib/presentation/atoms/AtomicAvatar.d.ts.map +0 -1
  9. package/lib/presentation/atoms/AtomicAvatar.js +0 -85
  10. package/lib/presentation/atoms/AtomicAvatar.js.map +0 -1
  11. package/lib/presentation/atoms/AtomicAvatarGroup.d.ts +0 -56
  12. package/lib/presentation/atoms/AtomicAvatarGroup.d.ts.map +0 -1
  13. package/lib/presentation/atoms/AtomicAvatarGroup.js +0 -83
  14. package/lib/presentation/atoms/AtomicAvatarGroup.js.map +0 -1
  15. package/lib/presentation/atoms/AtomicBadge.d.ts +0 -42
  16. package/lib/presentation/atoms/AtomicBadge.d.ts.map +0 -1
  17. package/lib/presentation/atoms/AtomicBadge.js +0 -168
  18. package/lib/presentation/atoms/AtomicBadge.js.map +0 -1
  19. package/lib/presentation/atoms/AtomicButton.d.ts +0 -21
  20. package/lib/presentation/atoms/AtomicButton.d.ts.map +0 -1
  21. package/lib/presentation/atoms/AtomicButton.js +0 -172
  22. package/lib/presentation/atoms/AtomicButton.js.map +0 -1
  23. package/lib/presentation/atoms/AtomicCard.d.ts +0 -15
  24. package/lib/presentation/atoms/AtomicCard.d.ts.map +0 -1
  25. package/lib/presentation/atoms/AtomicCard.js +0 -70
  26. package/lib/presentation/atoms/AtomicCard.js.map +0 -1
  27. package/lib/presentation/atoms/AtomicChip.d.ts +0 -53
  28. package/lib/presentation/atoms/AtomicChip.d.ts.map +0 -1
  29. package/lib/presentation/atoms/AtomicChip.js +0 -131
  30. package/lib/presentation/atoms/AtomicChip.js.map +0 -1
  31. package/lib/presentation/atoms/AtomicDatePicker.d.ts +0 -75
  32. package/lib/presentation/atoms/AtomicDatePicker.d.ts.map +0 -1
  33. package/lib/presentation/atoms/AtomicDatePicker.js +0 -246
  34. package/lib/presentation/atoms/AtomicDatePicker.js.map +0 -1
  35. package/lib/presentation/atoms/AtomicDivider.d.ts +0 -45
  36. package/lib/presentation/atoms/AtomicDivider.d.ts.map +0 -1
  37. package/lib/presentation/atoms/AtomicDivider.js +0 -58
  38. package/lib/presentation/atoms/AtomicDivider.js.map +0 -1
  39. package/lib/presentation/atoms/AtomicFab.d.ts +0 -37
  40. package/lib/presentation/atoms/AtomicFab.d.ts.map +0 -1
  41. package/lib/presentation/atoms/AtomicFab.js +0 -68
  42. package/lib/presentation/atoms/AtomicFab.js.map +0 -1
  43. package/lib/presentation/atoms/AtomicFilter.d.ts +0 -37
  44. package/lib/presentation/atoms/AtomicFilter.d.ts.map +0 -1
  45. package/lib/presentation/atoms/AtomicFilter.js +0 -104
  46. package/lib/presentation/atoms/AtomicFilter.js.map +0 -1
  47. package/lib/presentation/atoms/AtomicFormError.d.ts +0 -30
  48. package/lib/presentation/atoms/AtomicFormError.d.ts.map +0 -1
  49. package/lib/presentation/atoms/AtomicFormError.js +0 -64
  50. package/lib/presentation/atoms/AtomicFormError.js.map +0 -1
  51. package/lib/presentation/atoms/AtomicIcon.d.ts +0 -35
  52. package/lib/presentation/atoms/AtomicIcon.d.ts.map +0 -1
  53. package/lib/presentation/atoms/AtomicIcon.js +0 -30
  54. package/lib/presentation/atoms/AtomicIcon.js.map +0 -1
  55. package/lib/presentation/atoms/AtomicImage.d.ts +0 -40
  56. package/lib/presentation/atoms/AtomicImage.d.ts.map +0 -1
  57. package/lib/presentation/atoms/AtomicImage.js +0 -92
  58. package/lib/presentation/atoms/AtomicImage.js.map +0 -1
  59. package/lib/presentation/atoms/AtomicInput.d.ts +0 -71
  60. package/lib/presentation/atoms/AtomicInput.d.ts.map +0 -1
  61. package/lib/presentation/atoms/AtomicInput.js +0 -196
  62. package/lib/presentation/atoms/AtomicInput.js.map +0 -1
  63. package/lib/presentation/atoms/AtomicNumberInput.d.ts +0 -69
  64. package/lib/presentation/atoms/AtomicNumberInput.d.ts.map +0 -1
  65. package/lib/presentation/atoms/AtomicNumberInput.js +0 -125
  66. package/lib/presentation/atoms/AtomicNumberInput.js.map +0 -1
  67. package/lib/presentation/atoms/AtomicPicker.d.ts +0 -52
  68. package/lib/presentation/atoms/AtomicPicker.d.ts.map +0 -1
  69. package/lib/presentation/atoms/AtomicPicker.js +0 -299
  70. package/lib/presentation/atoms/AtomicPicker.js.map +0 -1
  71. package/lib/presentation/atoms/AtomicProgress.d.ts +0 -44
  72. package/lib/presentation/atoms/AtomicProgress.d.ts.map +0 -1
  73. package/lib/presentation/atoms/AtomicProgress.js +0 -80
  74. package/lib/presentation/atoms/AtomicProgress.js.map +0 -1
  75. package/lib/presentation/atoms/AtomicSearchBar.d.ts +0 -19
  76. package/lib/presentation/atoms/AtomicSearchBar.d.ts.map +0 -1
  77. package/lib/presentation/atoms/AtomicSearchBar.js +0 -46
  78. package/lib/presentation/atoms/AtomicSearchBar.js.map +0 -1
  79. package/lib/presentation/atoms/AtomicSort.d.ts +0 -72
  80. package/lib/presentation/atoms/AtomicSort.d.ts.map +0 -1
  81. package/lib/presentation/atoms/AtomicSort.js +0 -77
  82. package/lib/presentation/atoms/AtomicSort.js.map +0 -1
  83. package/lib/presentation/atoms/AtomicSwitch.d.ts +0 -43
  84. package/lib/presentation/atoms/AtomicSwitch.d.ts.map +0 -1
  85. package/lib/presentation/atoms/AtomicSwitch.js +0 -104
  86. package/lib/presentation/atoms/AtomicSwitch.js.map +0 -1
  87. package/lib/presentation/atoms/AtomicText.d.ts +0 -34
  88. package/lib/presentation/atoms/AtomicText.d.ts.map +0 -1
  89. package/lib/presentation/atoms/AtomicText.js +0 -59
  90. package/lib/presentation/atoms/AtomicText.js.map +0 -1
  91. package/lib/presentation/atoms/AtomicTextArea.d.ts +0 -85
  92. package/lib/presentation/atoms/AtomicTextArea.d.ts.map +0 -1
  93. package/lib/presentation/atoms/AtomicTextArea.js +0 -196
  94. package/lib/presentation/atoms/AtomicTextArea.js.map +0 -1
  95. package/lib/presentation/atoms/AtomicTouchable.d.ts +0 -77
  96. package/lib/presentation/atoms/AtomicTouchable.d.ts.map +0 -1
  97. package/lib/presentation/atoms/AtomicTouchable.js +0 -138
  98. package/lib/presentation/atoms/AtomicTouchable.js.map +0 -1
  99. package/lib/presentation/atoms/fab/styles/fabStyles.d.ts +0 -23
  100. package/lib/presentation/atoms/fab/styles/fabStyles.d.ts.map +0 -1
  101. package/lib/presentation/atoms/fab/styles/fabStyles.js +0 -63
  102. package/lib/presentation/atoms/fab/styles/fabStyles.js.map +0 -1
  103. package/lib/presentation/atoms/fab/types/index.d.ts +0 -71
  104. package/lib/presentation/atoms/fab/types/index.d.ts.map +0 -1
  105. package/lib/presentation/atoms/fab/types/index.js +0 -2
  106. package/lib/presentation/atoms/fab/types/index.js.map +0 -1
  107. package/lib/presentation/atoms/filter/styles/filterStyles.d.ts +0 -15
  108. package/lib/presentation/atoms/filter/styles/filterStyles.d.ts.map +0 -1
  109. package/lib/presentation/atoms/filter/styles/filterStyles.js +0 -29
  110. package/lib/presentation/atoms/filter/styles/filterStyles.js.map +0 -1
  111. package/lib/presentation/atoms/filter/types/index.d.ts +0 -76
  112. package/lib/presentation/atoms/filter/types/index.d.ts.map +0 -1
  113. package/lib/presentation/atoms/filter/types/index.js +0 -2
  114. package/lib/presentation/atoms/filter/types/index.js.map +0 -1
  115. package/lib/presentation/atoms/index.d.ts +0 -273
  116. package/lib/presentation/atoms/index.d.ts.map +0 -1
  117. package/lib/presentation/atoms/index.js +0 -146
  118. package/lib/presentation/atoms/index.js.map +0 -1
  119. package/lib/presentation/atoms/input/hooks/useInputState.d.ts +0 -7
  120. package/lib/presentation/atoms/input/hooks/useInputState.d.ts.map +0 -1
  121. package/lib/presentation/atoms/input/hooks/useInputState.js +0 -13
  122. package/lib/presentation/atoms/input/hooks/useInputState.js.map +0 -1
  123. package/lib/presentation/atoms/input/styles/inputStyles.d.ts +0 -13
  124. package/lib/presentation/atoms/input/styles/inputStyles.d.ts.map +0 -1
  125. package/lib/presentation/atoms/input/styles/inputStyles.js +0 -59
  126. package/lib/presentation/atoms/input/styles/inputStyles.js.map +0 -1
  127. package/lib/presentation/atoms/input/types/index.d.ts +0 -24
  128. package/lib/presentation/atoms/input/types/index.d.ts.map +0 -1
  129. package/lib/presentation/atoms/input/types/index.js +0 -2
  130. package/lib/presentation/atoms/input/types/index.js.map +0 -1
  131. package/lib/presentation/atoms/picker/styles/pickerStyles.d.ts +0 -85
  132. package/lib/presentation/atoms/picker/styles/pickerStyles.d.ts.map +0 -1
  133. package/lib/presentation/atoms/picker/styles/pickerStyles.js +0 -177
  134. package/lib/presentation/atoms/picker/styles/pickerStyles.js.map +0 -1
  135. package/lib/presentation/atoms/picker/types/index.d.ts +0 -38
  136. package/lib/presentation/atoms/picker/types/index.d.ts.map +0 -1
  137. package/lib/presentation/atoms/picker/types/index.js +0 -2
  138. package/lib/presentation/atoms/picker/types/index.js.map +0 -1
  139. package/lib/presentation/atoms/touchable/styles/touchableStyles.d.ts +0 -31
  140. package/lib/presentation/atoms/touchable/styles/touchableStyles.d.ts.map +0 -1
  141. package/lib/presentation/atoms/touchable/styles/touchableStyles.js +0 -54
  142. package/lib/presentation/atoms/touchable/styles/touchableStyles.js.map +0 -1
  143. package/lib/presentation/atoms/touchable/types/index.d.ts +0 -134
  144. package/lib/presentation/atoms/touchable/types/index.d.ts.map +0 -1
  145. package/lib/presentation/atoms/touchable/types/index.js +0 -2
  146. package/lib/presentation/atoms/touchable/types/index.js.map +0 -1
  147. package/lib/presentation/hooks/useResponsive.d.ts +0 -80
  148. package/lib/presentation/hooks/useResponsive.d.ts.map +0 -1
  149. package/lib/presentation/hooks/useResponsive.js +0 -82
  150. package/lib/presentation/hooks/useResponsive.js.map +0 -1
  151. package/lib/presentation/molecules/AtomicConfirmationModal.d.ts +0 -73
  152. package/lib/presentation/molecules/AtomicConfirmationModal.d.ts.map +0 -1
  153. package/lib/presentation/molecules/AtomicConfirmationModal.js +0 -154
  154. package/lib/presentation/molecules/AtomicConfirmationModal.js.map +0 -1
  155. package/lib/presentation/molecules/EmptyState.d.ts +0 -41
  156. package/lib/presentation/molecules/EmptyState.d.ts.map +0 -1
  157. package/lib/presentation/molecules/EmptyState.js +0 -68
  158. package/lib/presentation/molecules/EmptyState.js.map +0 -1
  159. package/lib/presentation/molecules/FormField.d.ts +0 -22
  160. package/lib/presentation/molecules/FormField.d.ts.map +0 -1
  161. package/lib/presentation/molecules/FormField.js +0 -76
  162. package/lib/presentation/molecules/FormField.js.map +0 -1
  163. package/lib/presentation/molecules/GridContainer.d.ts +0 -40
  164. package/lib/presentation/molecules/GridContainer.d.ts.map +0 -1
  165. package/lib/presentation/molecules/GridContainer.js +0 -77
  166. package/lib/presentation/molecules/GridContainer.js.map +0 -1
  167. package/lib/presentation/molecules/IconContainer.d.ts +0 -29
  168. package/lib/presentation/molecules/IconContainer.d.ts.map +0 -1
  169. package/lib/presentation/molecules/IconContainer.js +0 -60
  170. package/lib/presentation/molecules/IconContainer.js.map +0 -1
  171. package/lib/presentation/molecules/ListItem.d.ts +0 -5
  172. package/lib/presentation/molecules/ListItem.d.ts.map +0 -1
  173. package/lib/presentation/molecules/ListItem.js +0 -24
  174. package/lib/presentation/molecules/ListItem.js.map +0 -1
  175. package/lib/presentation/molecules/ScreenHeader.d.ts +0 -55
  176. package/lib/presentation/molecules/ScreenHeader.d.ts.map +0 -1
  177. package/lib/presentation/molecules/ScreenHeader.js +0 -94
  178. package/lib/presentation/molecules/ScreenHeader.js.map +0 -1
  179. package/lib/presentation/molecules/SearchBar.d.ts +0 -18
  180. package/lib/presentation/molecules/SearchBar.d.ts.map +0 -1
  181. package/lib/presentation/molecules/SearchBar.js +0 -47
  182. package/lib/presentation/molecules/SearchBar.js.map +0 -1
  183. package/lib/presentation/molecules/SectionCard.d.ts +0 -25
  184. package/lib/presentation/molecules/SectionCard.d.ts.map +0 -1
  185. package/lib/presentation/molecules/SectionCard.js +0 -47
  186. package/lib/presentation/molecules/SectionCard.js.map +0 -1
  187. package/lib/presentation/molecules/SectionContainer.d.ts +0 -33
  188. package/lib/presentation/molecules/SectionContainer.d.ts.map +0 -1
  189. package/lib/presentation/molecules/SectionContainer.js +0 -64
  190. package/lib/presentation/molecules/SectionContainer.js.map +0 -1
  191. package/lib/presentation/molecules/SectionHeader.d.ts +0 -37
  192. package/lib/presentation/molecules/SectionHeader.d.ts.map +0 -1
  193. package/lib/presentation/molecules/SectionHeader.js +0 -73
  194. package/lib/presentation/molecules/SectionHeader.js.map +0 -1
  195. package/lib/presentation/molecules/confirmation-modal/styles/confirmationModalStyles.d.ts +0 -50
  196. package/lib/presentation/molecules/confirmation-modal/styles/confirmationModalStyles.d.ts.map +0 -1
  197. package/lib/presentation/molecules/confirmation-modal/styles/confirmationModalStyles.js +0 -115
  198. package/lib/presentation/molecules/confirmation-modal/styles/confirmationModalStyles.js.map +0 -1
  199. package/lib/presentation/molecules/confirmation-modal/types/index.d.ts +0 -86
  200. package/lib/presentation/molecules/confirmation-modal/types/index.d.ts.map +0 -1
  201. package/lib/presentation/molecules/confirmation-modal/types/index.js +0 -7
  202. package/lib/presentation/molecules/confirmation-modal/types/index.js.map +0 -1
  203. package/lib/presentation/molecules/index.d.ts +0 -27
  204. package/lib/presentation/molecules/index.d.ts.map +0 -1
  205. package/lib/presentation/molecules/index.js +0 -17
  206. package/lib/presentation/molecules/index.js.map +0 -1
  207. package/lib/presentation/molecules/listitem/styles/listItemStyles.d.ts +0 -12
  208. package/lib/presentation/molecules/listitem/styles/listItemStyles.d.ts.map +0 -1
  209. package/lib/presentation/molecules/listitem/styles/listItemStyles.js +0 -15
  210. package/lib/presentation/molecules/listitem/styles/listItemStyles.js.map +0 -1
  211. package/lib/presentation/molecules/listitem/types/index.d.ts +0 -17
  212. package/lib/presentation/molecules/listitem/types/index.d.ts.map +0 -1
  213. package/lib/presentation/molecules/listitem/types/index.js +0 -2
  214. package/lib/presentation/molecules/listitem/types/index.js.map +0 -1
  215. package/lib/presentation/organisms/AppHeader.d.ts +0 -31
  216. package/lib/presentation/organisms/AppHeader.d.ts.map +0 -1
  217. package/lib/presentation/organisms/AppHeader.js +0 -78
  218. package/lib/presentation/organisms/AppHeader.js.map +0 -1
  219. package/lib/presentation/organisms/FormContainer.d.ts +0 -76
  220. package/lib/presentation/organisms/FormContainer.d.ts.map +0 -1
  221. package/lib/presentation/organisms/FormContainer.js +0 -127
  222. package/lib/presentation/organisms/FormContainer.js.map +0 -1
  223. package/lib/presentation/organisms/ScreenLayout.d.ts +0 -84
  224. package/lib/presentation/organisms/ScreenLayout.d.ts.map +0 -1
  225. package/lib/presentation/organisms/ScreenLayout.js +0 -69
  226. package/lib/presentation/organisms/ScreenLayout.js.map +0 -1
  227. package/lib/presentation/organisms/index.d.ts +0 -16
  228. package/lib/presentation/organisms/index.d.ts.map +0 -1
  229. package/lib/presentation/organisms/index.js +0 -14
  230. package/lib/presentation/organisms/index.js.map +0 -1
  231. package/lib/presentation/tokens/commonStyles.d.ts +0 -122
  232. package/lib/presentation/tokens/commonStyles.d.ts.map +0 -1
  233. package/lib/presentation/tokens/commonStyles.js +0 -220
  234. package/lib/presentation/tokens/commonStyles.js.map +0 -1
  235. package/lib/presentation/utils/platformConstants.d.ts +0 -100
  236. package/lib/presentation/utils/platformConstants.d.ts.map +0 -1
  237. package/lib/presentation/utils/platformConstants.js +0 -114
  238. package/lib/presentation/utils/platformConstants.js.map +0 -1
  239. package/lib/presentation/utils/responsive.d.ts +0 -218
  240. package/lib/presentation/utils/responsive.d.ts.map +0 -1
  241. package/lib/presentation/utils/responsive.js +0 -452
  242. package/lib/presentation/utils/responsive.js.map +0 -1
  243. package/lib/presentation/utils/variants/compound.d.ts +0 -10
  244. package/lib/presentation/utils/variants/compound.d.ts.map +0 -1
  245. package/lib/presentation/utils/variants/compound.js +0 -16
  246. package/lib/presentation/utils/variants/compound.js.map +0 -1
  247. package/lib/presentation/utils/variants/core.d.ts +0 -15
  248. package/lib/presentation/utils/variants/core.d.ts.map +0 -1
  249. package/lib/presentation/utils/variants/core.js +0 -23
  250. package/lib/presentation/utils/variants/core.js.map +0 -1
  251. package/lib/presentation/utils/variants/helpers.d.ts +0 -5
  252. package/lib/presentation/utils/variants/helpers.d.ts.map +0 -1
  253. package/lib/presentation/utils/variants/helpers.js +0 -10
  254. package/lib/presentation/utils/variants/helpers.js.map +0 -1
  255. package/lib/presentation/utils/variants.d.ts +0 -4
  256. package/lib/presentation/utils/variants.d.ts.map +0 -1
  257. package/lib/presentation/utils/variants.js +0 -4
  258. package/lib/presentation/utils/variants.js.map +0 -1
@@ -1,77 +0,0 @@
1
- import React from 'react';
2
- import { ScrollView, View } from 'react-native';
3
- import { useAppDesignTokens } from '@umituz/react-native-theme';
4
- import { AtomicChip } from './AtomicChip';
5
- /**
6
- * AtomicSort - Horizontal Sort Chip Component
7
- *
8
- * A Material Design 3 compliant sort component using chip selection.
9
- * Supports single selection with ascending/descending direction toggle.
10
- *
11
- * @example
12
- * ```tsx
13
- * const [sortBy, setSortBy] = useState<string | null>('name');
14
- * const [sortDir, setSortDir] = useState<SortDirection>('asc');
15
- *
16
- * <AtomicSort
17
- * options={[
18
- * { id: 'name', label: 'Name', icon: 'sort-alpha' },
19
- * { id: 'date', label: 'Date', icon: 'schedule' },
20
- * { id: 'priority', label: 'Priority', icon: 'flag' },
21
- * ]}
22
- * selectedId={sortBy}
23
- * sortDirection={sortDir}
24
- * onSortChange={(id, dir) => {
25
- * setSortBy(id);
26
- * setSortDir(dir);
27
- * }}
28
- * showDirectionToggle={true}
29
- * />
30
- * ```
31
- *
32
- * Features:
33
- * - Horizontal scrollable sort chips
34
- * - Single selection (one active sort at a time)
35
- * - Direction toggle (click active chip to switch asc/desc)
36
- * - Visual arrow indicators (↑ asc, ↓ desc)
37
- * - Theme-aware colors from design tokens
38
- * - Icon support per sort option
39
- * - Fully controlled component
40
- *
41
- * Behavior:
42
- * - Click inactive chip → Selects it with ascending direction
43
- * - Click active chip → Toggles direction (asc ↔ desc)
44
- * - Visual feedback via filled variant for active sort
45
- */
46
- export const AtomicSort = ({ options, selectedId, sortDirection, onSortChange, showDirectionToggle = true, variant = 'outlined', color = 'primary', size = 'md', style, testID, }) => {
47
- const tokens = useAppDesignTokens();
48
- /**
49
- * Handle sort chip press
50
- * - If clicking active chip: Toggle direction
51
- * - If clicking inactive chip: Select it with 'asc' direction
52
- */
53
- const handleSortPress = (optionId) => {
54
- if (selectedId === optionId) {
55
- const newDirection = sortDirection === 'asc' ? 'desc' : 'asc';
56
- onSortChange(optionId, newDirection);
57
- }
58
- else {
59
- onSortChange(optionId, 'asc');
60
- }
61
- };
62
- const directionIcon = sortDirection === 'asc' ? 'arrow-upward' : 'arrow-downward';
63
- return (<ScrollView horizontal showsHorizontalScrollIndicator={false} contentContainerStyle={{
64
- paddingHorizontal: tokens.spacing.sm,
65
- gap: tokens.spacing.sm,
66
- }} style={[style]} testID={testID}>
67
- <View style={{ flexDirection: 'row', gap: tokens.spacing.sm }}>
68
- {options.map((option) => {
69
- const isSelected = selectedId === option.id;
70
- return (<AtomicChip key={option.id} variant={isSelected ? 'filled' : variant} color={color} size={size} leadingIcon={option.icon} trailingIcon={isSelected && showDirectionToggle ? directionIcon : undefined} selected={isSelected} clickable={true} onPress={() => handleSortPress(option.id)} testID={`sort-chip-${option.id}`}>
71
- {option.label}
72
- </AtomicChip>);
73
- })}
74
- </View>
75
- </ScrollView>);
76
- };
77
- //# sourceMappingURL=AtomicSort.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AtomicSort.js","sourceRoot":"","sources":["../../../src/presentation/atoms/AtomicSort.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEhD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAgC1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,MAAM,CAAC,MAAM,UAAU,GAA8B,CAAC,EACpD,OAAO,EACP,UAAU,EACV,aAAa,EACb,YAAY,EACZ,mBAAmB,GAAG,IAAI,EAC1B,OAAO,GAAG,UAAU,EACpB,KAAK,GAAG,SAAS,EACjB,IAAI,GAAG,IAAI,EACX,KAAK,EACL,MAAM,GACP,EAAE,EAAE;IACH,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;IAEpC;;;;OAIG;IACH,MAAM,eAAe,GAAG,CAAC,QAAgB,EAAE,EAAE;QAC3C,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;YAC5B,MAAM,YAAY,GAAG,aAAa,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;YAC9D,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAChC,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,aAAa,KAAK,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,gBAAgB,CAAC;IAElF,OAAO,CACL,CAAC,UAAU,CACT,UAAU,CACV,8BAA8B,CAAC,CAAC,KAAK,CAAC,CACtC,qBAAqB,CAAC,CAAC;YACrB,iBAAiB,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE;YACpC,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE;SACvB,CAAC,CACF,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CACf,MAAM,CAAC,CAAC,MAAM,CAAC,CAEf;MAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAC5D;QAAA,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YACtB,MAAM,UAAU,GAAG,UAAU,KAAK,MAAM,CAAC,EAAE,CAAC;YAE5C,OAAO,CACL,CAAC,UAAU,CACT,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CACf,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CACzC,KAAK,CAAC,CAAC,KAAK,CAAC,CACb,IAAI,CAAC,CAAC,IAAI,CAAC,CACX,WAAW,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CACzB,YAAY,CAAC,CACX,UAAU,IAAI,mBAAmB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SACtD,CAAC,CACD,QAAQ,CAAC,CAAC,UAAU,CAAC,CACrB,SAAS,CAAC,CAAC,IAAI,CAAC,CAChB,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAC1C,MAAM,CAAC,CAAC,aAAa,MAAM,CAAC,EAAE,EAAE,CAAC,CAEjC;cAAA,CAAC,MAAM,CAAC,KAAK,CACf;YAAA,EAAE,UAAU,CAAC,CACd,CAAC;QACJ,CAAC,CAAC,CACJ;MAAA,EAAE,IAAI,CACR;IAAA,EAAE,UAAU,CAAC,CACd,CAAC;AACJ,CAAC,CAAC"}
@@ -1,43 +0,0 @@
1
- /**
2
- * AtomicSwitch - Universal Switch Component
3
- *
4
- * Provides consistent switch/toggle functionality with theme integration
5
- * Theme: {{THEME_NAME}} ({{CATEGORY}} category)
6
- *
7
- * Atomic Design Level: ATOM
8
- * Purpose: Basic switch/toggle input
9
- *
10
- * Usage:
11
- * - Settings toggles
12
- * - Feature enable/disable
13
- * - Boolean preferences
14
- * - Form inputs
15
- */
16
- import React from 'react';
17
- import { SwitchProps, ViewStyle } from 'react-native';
18
- export interface AtomicSwitchProps extends Omit<SwitchProps, 'style'> {
19
- /** Switch value */
20
- value: boolean;
21
- /** Value change handler */
22
- onValueChange: (value: boolean) => void;
23
- /** Size variant */
24
- size?: 'sm' | 'md' | 'lg';
25
- /** Color variant */
26
- variant?: 'primary' | 'secondary' | 'success' | 'warning' | 'error';
27
- /** Disabled state */
28
- disabled?: boolean;
29
- /** Container style override */
30
- style?: ViewStyle;
31
- /** Track color override */
32
- trackColor?: {
33
- false: string;
34
- true: string;
35
- };
36
- /** Thumb color override */
37
- thumbColor?: string;
38
- /** iOS specific props */
39
- ios_backgroundColor?: string;
40
- }
41
- export declare const AtomicSwitch: React.FC<AtomicSwitchProps>;
42
- export default AtomicSwitch;
43
- //# sourceMappingURL=AtomicSwitch.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AtomicSwitch.d.ts","sourceRoot":"","sources":["../../../src/presentation/atoms/AtomicSwitch.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAU,WAAW,EAAc,SAAS,EAAE,MAAM,cAAc,CAAC;AAO1E,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC;IACnE,mBAAmB;IACnB,KAAK,EAAE,OAAO,CAAC;IACf,2BAA2B;IAC3B,aAAa,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACxC,mBAAmB;IACnB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,oBAAoB;IACpB,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IACpE,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+BAA+B;IAC/B,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,2BAA2B;IAC3B,UAAU,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7C,2BAA2B;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yBAAyB;IACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAgBD,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA4CpD,CAAC;AA8DF,eAAe,YAAY,CAAC"}
@@ -1,104 +0,0 @@
1
- /**
2
- * AtomicSwitch - Universal Switch Component
3
- *
4
- * Provides consistent switch/toggle functionality with theme integration
5
- * Theme: {{THEME_NAME}} ({{CATEGORY}} category)
6
- *
7
- * Atomic Design Level: ATOM
8
- * Purpose: Basic switch/toggle input
9
- *
10
- * Usage:
11
- * - Settings toggles
12
- * - Feature enable/disable
13
- * - Boolean preferences
14
- * - Form inputs
15
- */
16
- import React from 'react';
17
- import { Switch, StyleSheet } from 'react-native';
18
- import { useAppDesignTokens } from '@umituz/react-native-theme';
19
- // =============================================================================
20
- // SIZE CONFIGURATION
21
- // =============================================================================
22
- const SIZE_CONFIG = {
23
- sm: { scaleX: 0.8, scaleY: 0.8 },
24
- md: { scaleX: 1, scaleY: 1 },
25
- lg: { scaleX: 1.2, scaleY: 1.2 },
26
- };
27
- // =============================================================================
28
- // COMPONENT IMPLEMENTATION
29
- // =============================================================================
30
- export const AtomicSwitch = ({ value, onValueChange, size = 'md', variant = 'primary', disabled = false, style, trackColor, thumbColor, ios_backgroundColor, ...props }) => {
31
- const tokens = useAppDesignTokens();
32
- const styles = getStyles(tokens);
33
- const sizeConfig = SIZE_CONFIG[size];
34
- const colors = getVariantColors(tokens, variant);
35
- const defaultTrackColor = trackColor || {
36
- false: colors.trackFalse,
37
- true: colors.trackTrue,
38
- };
39
- const defaultThumbColor = thumbColor || colors.thumb;
40
- const defaultIosBackgroundColor = ios_backgroundColor || colors.trackFalse;
41
- return (<Switch value={value} onValueChange={onValueChange} disabled={disabled} trackColor={defaultTrackColor} thumbColor={defaultThumbColor} ios_backgroundColor={defaultIosBackgroundColor} style={[
42
- styles.switch,
43
- {
44
- transform: [{ scaleX: sizeConfig.scaleX }, { scaleY: sizeConfig.scaleY }],
45
- },
46
- style,
47
- ]} {...props}/>);
48
- };
49
- // =============================================================================
50
- // HELPER FUNCTIONS
51
- // =============================================================================
52
- const getVariantColors = (tokens, variant) => {
53
- switch (variant) {
54
- case 'primary':
55
- return {
56
- trackFalse: tokens.colors.surfaceSecondary,
57
- trackTrue: tokens.colors.primary,
58
- thumb: tokens.colors.surface,
59
- };
60
- case 'secondary':
61
- return {
62
- trackFalse: tokens.colors.surfaceSecondary,
63
- trackTrue: tokens.colors.secondary,
64
- thumb: tokens.colors.surface,
65
- };
66
- case 'success':
67
- return {
68
- trackFalse: tokens.colors.surfaceSecondary,
69
- trackTrue: tokens.colors.success,
70
- thumb: tokens.colors.surface,
71
- };
72
- case 'warning':
73
- return {
74
- trackFalse: tokens.colors.surfaceSecondary,
75
- trackTrue: tokens.colors.warning,
76
- thumb: tokens.colors.surface,
77
- };
78
- case 'error':
79
- return {
80
- trackFalse: tokens.colors.surfaceSecondary,
81
- trackTrue: tokens.colors.error,
82
- thumb: tokens.colors.surface,
83
- };
84
- default:
85
- return {
86
- trackFalse: tokens.colors.surfaceSecondary,
87
- trackTrue: tokens.colors.primary,
88
- thumb: tokens.colors.surface,
89
- };
90
- }
91
- };
92
- // =============================================================================
93
- // STYLES
94
- // =============================================================================
95
- const getStyles = (tokens) => StyleSheet.create({
96
- switch: {
97
- // Default switch styling is handled by platform
98
- },
99
- });
100
- // =============================================================================
101
- // EXPORTS
102
- // =============================================================================
103
- export default AtomicSwitch;
104
- //# sourceMappingURL=AtomicSwitch.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AtomicSwitch.js","sourceRoot":"","sources":["../../../src/presentation/atoms/AtomicSwitch.tsx"],"names":[],"mappings":"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"}
@@ -1,34 +0,0 @@
1
- import React from 'react';
2
- import { StyleProp, TextStyle } from 'react-native';
3
- export type TextStyleVariant = 'displayLarge' | 'displayMedium' | 'displaySmall' | 'headlineLarge' | 'headlineMedium' | 'headlineSmall' | 'titleLarge' | 'titleMedium' | 'titleSmall' | 'bodyLarge' | 'bodyMedium' | 'bodySmall' | 'labelLarge' | 'labelMedium' | 'labelSmall';
4
- /**
5
- * Material Design 3 Text Color Variants
6
- *
7
- * TEXT COLORS (for text on surfaces):
8
- * - textPrimary, textSecondary, textTertiary: General text colors
9
- * - onSurface, onBackground: Text on surface/background
10
- *
11
- * ON COLORS (for text on colored backgrounds):
12
- * - onPrimary, onSecondary: Text on primary/secondary colored backgrounds
13
- * - onSuccess, onError, onWarning, onInfo: Text on semantic colored backgrounds
14
- *
15
- * SEMANTIC COLORS (can be used as text colors):
16
- * - success, error, warning, info: Semantic colors (can be text or background)
17
- *
18
- * NOTE: 'primary' and 'secondary' are BACKGROUND colors, not text colors.
19
- * Use 'onPrimary'/'onSecondary' for text on colored backgrounds, or
20
- * 'textPrimary'/'textSecondary' for general text.
21
- */
22
- export type ColorVariant = 'textPrimary' | 'textSecondary' | 'textTertiary' | 'textDisabled' | 'textInverse' | 'onSurface' | 'onBackground' | 'onPrimary' | 'onSecondary' | 'onSuccess' | 'onError' | 'onWarning' | 'onInfo' | 'success' | 'error' | 'warning' | 'info' | 'primary' | 'secondary' | 'tertiary' | 'disabled' | 'inverse' | 'surfaceVariant';
23
- export interface AtomicTextProps {
24
- children: React.ReactNode;
25
- type?: TextStyleVariant;
26
- color?: ColorVariant | string;
27
- numberOfLines?: number;
28
- ellipsizeMode?: 'head' | 'middle' | 'tail' | 'clip';
29
- textAlign?: 'auto' | 'left' | 'right' | 'center' | 'justify';
30
- style?: StyleProp<TextStyle>;
31
- testID?: string;
32
- }
33
- export declare const AtomicText: React.FC<AtomicTextProps>;
34
- //# sourceMappingURL=AtomicText.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AtomicText.d.ts","sourceRoot":"","sources":["../../../src/presentation/atoms/AtomicText.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAQ,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAG1D,MAAM,MAAM,gBAAgB,GACxB,cAAc,GAAG,eAAe,GAAG,cAAc,GACjD,eAAe,GAAG,gBAAgB,GAAG,eAAe,GACpD,YAAY,GAAG,aAAa,GAAG,YAAY,GAC3C,WAAW,GAAG,YAAY,GAAG,WAAW,GACxC,YAAY,GAAG,aAAa,GAAG,YAAY,CAAC;AAEhD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,YAAY,GAEpB,aAAa,GACb,eAAe,GACf,cAAc,GACd,cAAc,GACd,aAAa,GAEb,WAAW,GACX,cAAc,GAEd,WAAW,GACX,aAAa,GACb,WAAW,GACX,SAAS,GACT,WAAW,GACX,QAAQ,GAER,SAAS,GACT,OAAO,GACP,SAAS,GACT,MAAM,GAEN,SAAS,GACT,WAAW,GACX,UAAU,GACV,UAAU,GACV,SAAS,GAET,gBAAgB,CAAC;AAErB,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,KAAK,CAAC,EAAE,YAAY,GAAG,MAAM,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;IACpD,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC7D,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAgFhD,CAAC"}
@@ -1,59 +0,0 @@
1
- import React from 'react';
2
- import { Text } from 'react-native';
3
- import { useAppDesignTokens } from '@umituz/react-native-theme';
4
- export const AtomicText = ({ children, type = 'bodyMedium', color, numberOfLines, ellipsizeMode, textAlign, style, testID, }) => {
5
- const tokens = useAppDesignTokens();
6
- // Get typography style from tokens
7
- const typographyStyle = tokens.typography[type];
8
- // Get color from tokens or use custom color
9
- const getTextColor = () => {
10
- if (!color) {
11
- return tokens.colors.textPrimary;
12
- }
13
- // Material Design 3 text color mapping
14
- const colorMap = {
15
- // General text colors (Material Design 3)
16
- textPrimary: tokens.colors.textPrimary,
17
- textSecondary: tokens.colors.textSecondary,
18
- textTertiary: tokens.colors.textTertiary,
19
- textDisabled: tokens.colors.textDisabled,
20
- textInverse: tokens.colors.textInverse,
21
- // Text on surfaces (Material Design 3)
22
- onSurface: tokens.colors.onSurface,
23
- onBackground: tokens.colors.onBackground,
24
- // Text on colored backgrounds (Material Design 3)
25
- onPrimary: tokens.colors.onPrimary,
26
- onSecondary: tokens.colors.onSecondary,
27
- onSuccess: tokens.colors.onSuccess,
28
- onError: tokens.colors.onError,
29
- onWarning: tokens.colors.onWarning,
30
- onInfo: tokens.colors.onInfo,
31
- // Semantic colors (can be used as text)
32
- success: tokens.colors.success,
33
- error: tokens.colors.error,
34
- warning: tokens.colors.warning,
35
- info: tokens.colors.info,
36
- // Legacy support (deprecated - maps to new names)
37
- primary: tokens.colors.textPrimary, // Legacy: use textPrimary or onPrimary
38
- secondary: tokens.colors.textSecondary, // Legacy: use textSecondary or onSecondary
39
- tertiary: tokens.colors.textTertiary, // Legacy: use textTertiary
40
- disabled: tokens.colors.textDisabled, // Legacy: use textDisabled
41
- inverse: tokens.colors.textInverse, // Legacy: use textInverse
42
- // Legacy: surfaceVariant is a background color, but used as text - map to textSecondary
43
- surfaceVariant: tokens.colors.textSecondary, // Legacy: use textSecondary instead
44
- };
45
- return colorMap[color] || color;
46
- };
47
- const textStyle = [
48
- typographyStyle,
49
- {
50
- color: getTextColor(),
51
- ...(textAlign && { textAlign }),
52
- },
53
- style,
54
- ];
55
- return (<Text numberOfLines={numberOfLines} ellipsizeMode={ellipsizeMode} style={textStyle} testID={testID}>
56
- {children}
57
- </Text>);
58
- };
59
- //# sourceMappingURL=AtomicText.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AtomicText.js","sourceRoot":"","sources":["../../../src/presentation/atoms/AtomicText.tsx"],"names":[],"mappings":"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"}
@@ -1,85 +0,0 @@
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 from 'react';
34
- import { StyleProp, ViewStyle, TextStyle } from 'react-native';
35
- export type AtomicTextAreaVariant = 'outlined' | 'filled' | 'flat';
36
- export type AtomicTextAreaState = 'default' | 'error' | 'success' | 'disabled';
37
- export type AtomicTextAreaSize = 'sm' | 'md' | 'lg';
38
- export interface AtomicTextAreaProps {
39
- /** Textarea label */
40
- label?: string;
41
- /** Current textarea value */
42
- value?: string;
43
- /** Value change callback */
44
- onChangeText?: (text: string) => void;
45
- /** Textarea variant (outlined, filled, flat) */
46
- variant?: AtomicTextAreaVariant;
47
- /** Textarea state (default, error, success, disabled) */
48
- state?: AtomicTextAreaState;
49
- /** Textarea size (sm, md, lg) */
50
- size?: AtomicTextAreaSize;
51
- /** Placeholder text */
52
- placeholder?: string;
53
- /** Helper text below textarea */
54
- helperText?: string;
55
- /** Maximum character length */
56
- maxLength?: number;
57
- /** Show character counter */
58
- showCharacterCount?: boolean;
59
- /** Number of visible text rows */
60
- rows?: number;
61
- /** Minimum height in pixels */
62
- minHeight?: number;
63
- /** Auto-capitalize */
64
- autoCapitalize?: 'none' | 'sentences' | 'words' | 'characters';
65
- /** Auto-correct */
66
- autoCorrect?: boolean;
67
- /** Disabled state */
68
- disabled?: boolean;
69
- /** Container style */
70
- style?: StyleProp<ViewStyle>;
71
- /** Input text style */
72
- inputStyle?: StyleProp<TextStyle>;
73
- /** Test ID for E2E testing */
74
- testID?: string;
75
- /** Blur callback */
76
- onBlur?: () => void;
77
- /** Focus callback */
78
- onFocus?: () => void;
79
- }
80
- /**
81
- * AtomicTextArea - Pure React Native Multiline Text Input
82
- */
83
- export declare const AtomicTextArea: React.FC<AtomicTextAreaProps>;
84
- export type { AtomicTextAreaProps as TextAreaProps };
85
- //# sourceMappingURL=AtomicTextArea.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AtomicTextArea.d.ts","sourceRoot":"","sources":["../../../src/presentation/atoms/AtomicTextArea.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,KAAmB,MAAM,OAAO,CAAC;AACxC,OAAO,EAA+B,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAI5F,MAAM,MAAM,qBAAqB,GAAG,UAAU,GAAG,QAAQ,GAAG,MAAM,CAAC;AACnE,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,UAAU,CAAC;AAC/E,MAAM,MAAM,kBAAkB,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEpD,MAAM,WAAW,mBAAmB;IAClC,qBAAqB;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,gDAAgD;IAChD,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAChC,yDAAyD;IACzD,KAAK,CAAC,EAAE,mBAAmB,CAAC;IAC5B,iCAAiC;IACjC,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iCAAiC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6BAA6B;IAC7B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,kCAAkC;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sBAAsB;IACtB,cAAc,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,OAAO,GAAG,YAAY,CAAC;IAC/D,mBAAmB;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sBAAsB;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,uBAAuB;IACvB,UAAU,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAClC,8BAA8B;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oBAAoB;IACpB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,qBAAqB;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAuMxD,CAAC;AAyBF,YAAY,EAAE,mBAAmB,IAAI,aAAa,EAAE,CAAC"}
@@ -1,196 +0,0 @@
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 '@umituz/react-native-theme';
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"AtomicTextArea.js","sourceRoot":"","sources":["../../../src/presentation/atoms/AtomicTextArea.tsx"],"names":[],"mappings":"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"}