@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,299 +0,0 @@
1
- /**
2
- * AtomicPicker Component
3
- *
4
- * A reusable option picker/dropdown component for selecting from a list of options.
5
- *
6
- * Features:
7
- * - Single and multi-select support
8
- * - Modal display mode (full-screen on mobile)
9
- * - Optional search/filter capability
10
- * - Error and disabled states
11
- * - Theme-aware styling
12
- * - Icons for options
13
- * - Clearable selection
14
- * - react-hook-form integration ready
15
- *
16
- * Architecture:
17
- * - Follows AtomicButton pattern with separated types and styles
18
- * - Uses helper functions from picker/styles/pickerStyles.ts
19
- * - Types defined in picker/types/index.ts
20
- * - Zero inline StyleSheet.create()
21
- *
22
- * Usage:
23
- * ```tsx
24
- * const [partyType, setPartyType] = useState('birthday');
25
- *
26
- * <AtomicPicker
27
- * value={partyType}
28
- * onChange={setPartyType}
29
- * options={[
30
- * { label: 'Birthday Party', value: 'birthday', icon: 'cake' },
31
- * { label: 'Wedding', value: 'wedding', icon: 'heart' },
32
- * { label: 'Corporate Event', value: 'corporate', icon: 'briefcase' },
33
- * ]}
34
- * label="Party Type"
35
- * placeholder="Select party type"
36
- * searchable
37
- * />
38
- * ```
39
- *
40
- * @module AtomicPicker
41
- */
42
- import React, { useState, useMemo } from 'react';
43
- import { View, TouchableOpacity, Modal, FlatList, TextInput, useWindowDimensions, StyleSheet, } from 'react-native';
44
- import { useSafeAreaInsets } from 'react-native-safe-area-context';
45
- import { useAppDesignTokens } from '@umituz/react-native-theme';
46
- import { AtomicIcon } from './AtomicIcon';
47
- import { AtomicText } from './AtomicText';
48
- import { getPickerContainerStyles, getPickerLabelStyles, getPickerPlaceholderStyles, getPickerValueStyles, getPickerErrorStyles, getModalOverlayStyles, getModalContainerStyles, getModalHeaderStyles, getModalTitleStyles, getSearchContainerStyles, getSearchInputStyles, getOptionContainerStyles, getOptionTextStyles, getOptionDescriptionStyles, getEmptyStateStyles, getEmptyStateTextStyles, getChipContainerStyles, getChipStyles, getChipTextStyles, } from './picker/styles/pickerStyles';
49
- /**
50
- * AtomicPicker - Universal option picker component
51
- *
52
- * Displays a button that opens a modal for selection.
53
- * Supports single/multi-select, search, and custom rendering.
54
- */
55
- export const AtomicPicker = ({ value, onChange, options, label, placeholder = 'Select...', error, disabled = false, multiple = false, searchable = false, clearable = false, autoClose = true, color = 'primary', size = 'md', modalTitle, emptyMessage = 'No options available', style, labelStyle, testID, }) => {
56
- const tokens = useAppDesignTokens();
57
- const { height } = useWindowDimensions();
58
- const insets = useSafeAreaInsets();
59
- const [modalVisible, setModalVisible] = useState(false);
60
- const [searchQuery, setSearchQuery] = useState('');
61
- // Get style helpers with design tokens
62
- const containerStyles = getPickerContainerStyles(tokens);
63
- const labelStyles = getPickerLabelStyles(tokens);
64
- const placeholderStyles = getPickerPlaceholderStyles(tokens);
65
- const valueStyles = getPickerValueStyles(tokens);
66
- const errorStyles = getPickerErrorStyles(tokens);
67
- const modalOverlayStyles = getModalOverlayStyles(tokens);
68
- const modalContainerStyles = getModalContainerStyles(tokens, height * 0.85);
69
- const modalHeaderStyles = getModalHeaderStyles(tokens);
70
- const modalTitleStyles = getModalTitleStyles(tokens);
71
- const searchContainerStyles = getSearchContainerStyles(tokens);
72
- const searchInputStyles = getSearchInputStyles(tokens);
73
- const emptyStateStyles = getEmptyStateStyles(tokens);
74
- const emptyStateTextStyles = getEmptyStateTextStyles(tokens);
75
- const chipContainerStyles = getChipContainerStyles(tokens);
76
- const chipStyles = getChipStyles(tokens);
77
- const chipTextStyles = getChipTextStyles(tokens);
78
- /**
79
- * Normalize value to array for consistent handling
80
- */
81
- const selectedValues = useMemo(() => {
82
- if (multiple) {
83
- return Array.isArray(value) ? value : [];
84
- }
85
- return value ? [value] : [];
86
- }, [value, multiple]);
87
- /**
88
- * Get selected option objects
89
- */
90
- const selectedOptions = useMemo(() => {
91
- return options.filter((opt) => selectedValues.includes(opt.value));
92
- }, [options, selectedValues]);
93
- /**
94
- * Filter options based on search query
95
- */
96
- const filteredOptions = useMemo(() => {
97
- if (!searchQuery.trim())
98
- return options;
99
- const query = searchQuery.toLowerCase();
100
- return options.filter((opt) => opt.label.toLowerCase().includes(query) ||
101
- opt.description?.toLowerCase().includes(query));
102
- }, [options, searchQuery]);
103
- /**
104
- * Format display text for selected value(s)
105
- */
106
- const displayText = useMemo(() => {
107
- if (selectedOptions.length === 0) {
108
- return placeholder;
109
- }
110
- if (multiple) {
111
- return selectedOptions.length === 1
112
- ? selectedOptions[0].label
113
- : `${selectedOptions.length} selected`;
114
- }
115
- return selectedOptions[0]?.label || placeholder;
116
- }, [selectedOptions, placeholder, multiple]);
117
- /**
118
- * Handle modal open
119
- */
120
- const openModal = () => {
121
- if (disabled)
122
- return;
123
- setModalVisible(true);
124
- setSearchQuery('');
125
- };
126
- /**
127
- * Handle modal close
128
- */
129
- const closeModal = () => {
130
- setModalVisible(false);
131
- setSearchQuery('');
132
- };
133
- /**
134
- * Handle option selection
135
- */
136
- const handleSelect = (optionValue) => {
137
- if (multiple) {
138
- const newValues = selectedValues.includes(optionValue)
139
- ? selectedValues.filter((v) => v !== optionValue)
140
- : [...selectedValues, optionValue];
141
- onChange(newValues);
142
- }
143
- else {
144
- onChange(optionValue);
145
- if (autoClose) {
146
- closeModal();
147
- }
148
- }
149
- };
150
- /**
151
- * Handle clear selection
152
- */
153
- const handleClear = () => {
154
- onChange(multiple ? [] : '');
155
- };
156
- /**
157
- * Handle search query change
158
- */
159
- const handleSearch = (query) => {
160
- setSearchQuery(query);
161
- };
162
- /**
163
- * Check if option is selected
164
- */
165
- const isSelected = (optionValue) => {
166
- return selectedValues.includes(optionValue);
167
- };
168
- /**
169
- * Render single option
170
- */
171
- const renderOption = ({ item }) => {
172
- const selected = isSelected(item.value);
173
- const itemDisabled = item.disabled || false;
174
- const optionContainerStyle = getOptionContainerStyles(tokens, selected, itemDisabled);
175
- const optionTextStyle = getOptionTextStyles(tokens, selected);
176
- const optionDescriptionStyle = getOptionDescriptionStyles(tokens);
177
- return (<TouchableOpacity onPress={() => !itemDisabled && handleSelect(item.value)} disabled={itemDisabled} testID={item.testID || `${testID}-option-${item.value}`} style={optionContainerStyle}>
178
- {/* Option Icon */}
179
- {item.icon && (<AtomicIcon name={item.icon} size="md" color={selected ? 'primary' : 'secondary'}/>)}
180
-
181
- {/* Option Content */}
182
- <View style={{ flex: 1 }}>
183
- <AtomicText style={optionTextStyle}>{item.label}</AtomicText>
184
- {item.description && (<AtomicText style={optionDescriptionStyle}>
185
- {item.description}
186
- </AtomicText>)}
187
- </View>
188
-
189
- {/* Selected Indicator */}
190
- {selected && (<AtomicIcon name="CircleCheck" size="md" color="primary"/>)}
191
- </TouchableOpacity>);
192
- };
193
- /**
194
- * Render selected chips for multi-select
195
- */
196
- const renderSelectedChips = () => {
197
- if (!multiple || selectedOptions.length === 0)
198
- return null;
199
- return (<View style={chipContainerStyles}>
200
- {selectedOptions.map((opt) => (<View key={opt.value} style={chipStyles}>
201
- <AtomicText style={chipTextStyles}>{opt.label}</AtomicText>
202
- <TouchableOpacity onPress={(e) => {
203
- e.stopPropagation();
204
- handleSelect(opt.value);
205
- }} hitSlop={{ top: 4, bottom: 4, left: 4, right: 4 }}>
206
- <AtomicIcon name="X" size="sm" color="primary"/>
207
- </TouchableOpacity>
208
- </View>))}
209
- </View>);
210
- };
211
- const pickerContainerStyle = StyleSheet.flatten([
212
- containerStyles.base,
213
- containerStyles.size[size],
214
- error ? containerStyles.state.error : undefined,
215
- disabled ? containerStyles.state.disabled : undefined,
216
- style,
217
- ]);
218
- const pickerLabelStyle = StyleSheet.flatten([
219
- labelStyles.base,
220
- labelStyles.size[size],
221
- labelStyle,
222
- ]);
223
- const pickerValueStyle = StyleSheet.flatten([
224
- selectedOptions.length > 0 ? valueStyles.base : placeholderStyles.base,
225
- selectedOptions.length > 0
226
- ? valueStyles.size[size]
227
- : placeholderStyles.size[size],
228
- ]);
229
- return (<View>
230
- {/* Label */}
231
- {label && <AtomicText style={pickerLabelStyle}>{label}</AtomicText>}
232
-
233
- {/* Picker Button */}
234
- <TouchableOpacity onPress={openModal} disabled={disabled} accessibilityRole="button" accessibilityLabel={label || placeholder} accessibilityState={{ disabled }} testID={testID} style={pickerContainerStyle}>
235
- {/* Display Text */}
236
- <AtomicText style={pickerValueStyle} numberOfLines={1}>
237
- {displayText}
238
- </AtomicText>
239
-
240
- {/* Icons */}
241
- <View style={{ flexDirection: 'row', alignItems: 'center', gap: tokens.spacing.xs }}>
242
- {/* Clear Button */}
243
- {clearable && selectedOptions.length > 0 && !disabled && (<TouchableOpacity onPress={handleClear} hitSlop={{ top: 8, bottom: 8, left: 8, right: 8 }} accessibilityRole="button" accessibilityLabel="Clear selection" testID={`${testID}-clear`}>
244
- <AtomicIcon name="cancel" size="sm" color="secondary"/>
245
- </TouchableOpacity>)}
246
-
247
- {/* Dropdown Icon */}
248
- <AtomicIcon name={modalVisible ? 'ChevronUp' : 'ChevronDown'} size="sm" color={disabled ? 'surfaceVariant' : 'secondary'}/>
249
- </View>
250
- </TouchableOpacity>
251
-
252
- {/* Selected Chips (Multi-select) */}
253
- {renderSelectedChips()}
254
-
255
- {/* Error Message */}
256
- {error && <AtomicText style={errorStyles}>{error}</AtomicText>}
257
-
258
- {/* Selection Modal */}
259
- <Modal visible={modalVisible} animationType="slide" transparent onRequestClose={closeModal} testID={`${testID}-modal`}>
260
- <View style={modalOverlayStyles}>
261
- <View style={[
262
- modalContainerStyles,
263
- { paddingBottom: insets.bottom + tokens.spacing.md },
264
- ]}>
265
- {/* Modal Header */}
266
- <View style={modalHeaderStyles}>
267
- {/* Title */}
268
- <AtomicText style={modalTitleStyles}>
269
- {modalTitle || label || 'Select'}
270
- </AtomicText>
271
-
272
- {/* Close Button */}
273
- <TouchableOpacity onPress={closeModal} hitSlop={{ top: 8, bottom: 8, left: 8, right: 8 }} accessibilityRole="button" accessibilityLabel="Close picker" testID={`${testID}-close`}>
274
- <AtomicIcon name="X" size="md" color="primary"/>
275
- </TouchableOpacity>
276
- </View>
277
-
278
- {/* Search Bar */}
279
- {searchable && (<View style={searchContainerStyles}>
280
- <AtomicIcon name="Search" size="sm" color="secondary"/>
281
- <TextInput value={searchQuery} onChangeText={handleSearch} placeholder="Search..." placeholderTextColor={tokens.colors.textSecondary} style={searchInputStyles} testID={`${testID}-search`}/>
282
- {searchQuery.length > 0 && (<TouchableOpacity onPress={() => handleSearch('')}>
283
- <AtomicIcon name="cancel" size="sm" color="secondary"/>
284
- </TouchableOpacity>)}
285
- </View>)}
286
-
287
- {/* Options List */}
288
- {filteredOptions.length > 0 ? (<FlatList data={filteredOptions} keyExtractor={(item) => item.value} renderItem={renderOption} showsVerticalScrollIndicator testID={`${testID}-list`}/>) : (<View style={emptyStateStyles}>
289
- <AtomicIcon name="Info" size="xl" color="secondary"/>
290
- <AtomicText style={emptyStateTextStyles}>
291
- {emptyMessage}
292
- </AtomicText>
293
- </View>)}
294
- </View>
295
- </View>
296
- </Modal>
297
- </View>);
298
- };
299
- //# sourceMappingURL=AtomicPicker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AtomicPicker.js","sourceRoot":"","sources":["../../../src/presentation/atoms/AtomicPicker.tsx"],"names":[],"mappings":"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"}
@@ -1,44 +0,0 @@
1
- /**
2
- * AtomicProgress - Universal Progress Bar Component
3
- *
4
- * Displays progress bars for completion tracking
5
- * Theme: {{THEME_NAME}} ({{CATEGORY}} category)
6
- *
7
- * Atomic Design Level: ATOM
8
- * Purpose: Progress indication and completion tracking
9
- *
10
- * Usage:
11
- * - File upload progress
12
- * - Task completion progress
13
- * - Achievement progress
14
- * - Form completion
15
- */
16
- import React from 'react';
17
- import { ViewStyle } from 'react-native';
18
- export interface AtomicProgressProps {
19
- /** Progress value (0-100) */
20
- value: number;
21
- /** Progress bar height */
22
- height?: number;
23
- /** Progress bar width */
24
- width?: number | string;
25
- /** Progress bar color */
26
- color?: string;
27
- /** Background color */
28
- backgroundColor?: string;
29
- /** Progress bar shape */
30
- shape?: 'rounded' | 'square';
31
- /** Whether to show percentage text */
32
- showPercentage?: boolean;
33
- /** Whether to show value text */
34
- showValue?: boolean;
35
- /** Custom text color */
36
- textColor?: string;
37
- /** Style overrides */
38
- style?: ViewStyle | ViewStyle[];
39
- /** Test ID for testing */
40
- testID?: string;
41
- }
42
- export declare const AtomicProgress: React.FC<AtomicProgressProps>;
43
- export default AtomicProgress;
44
- //# sourceMappingURL=AtomicProgress.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AtomicProgress.d.ts","sourceRoot":"","sources":["../../../src/presentation/atoms/AtomicProgress.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAoB,SAAS,EAAwB,MAAM,cAAc,CAAC;AAOjF,MAAM,WAAW,mBAAmB;IAClC,6BAA6B;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,0BAA0B;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yBAAyB;IACzB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,yBAAyB;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uBAAuB;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,yBAAyB;IACzB,KAAK,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC7B,sCAAsC;IACtC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,iCAAiC;IACjC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sBAAsB;IACtB,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC;IAChC,0BAA0B;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAMD,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CA+DxD,CAAC;AAsBF,eAAe,cAAc,CAAC"}
@@ -1,80 +0,0 @@
1
- /**
2
- * AtomicProgress - Universal Progress Bar Component
3
- *
4
- * Displays progress bars for completion tracking
5
- * Theme: {{THEME_NAME}} ({{CATEGORY}} category)
6
- *
7
- * Atomic Design Level: ATOM
8
- * Purpose: Progress indication and completion tracking
9
- *
10
- * Usage:
11
- * - File upload progress
12
- * - Task completion progress
13
- * - Achievement progress
14
- * - Form completion
15
- */
16
- import React from 'react';
17
- import { View, StyleSheet, Text } from 'react-native';
18
- import { useAppDesignTokens } from '@umituz/react-native-theme';
19
- // =============================================================================
20
- // COMPONENT IMPLEMENTATION
21
- // =============================================================================
22
- export const AtomicProgress = ({ value, height = 8, width = '100%', color, backgroundColor, shape = 'rounded', showPercentage = false, showValue = false, textColor, style, testID, }) => {
23
- const tokens = useAppDesignTokens();
24
- // Clamp value between 0 and 100
25
- const clampedValue = Math.max(0, Math.min(100, value));
26
- // Default colors
27
- const progressColor = color || tokens.colors.primary;
28
- const progressBackground = backgroundColor || tokens.colors.surfaceVariant;
29
- const progressTextColor = textColor || tokens.colors.textPrimary;
30
- // Calculate progress width
31
- const progressWidth = `${clampedValue}%`;
32
- // Border radius based on shape
33
- const borderRadius = shape === 'rounded' ? height / 2 : 0;
34
- const containerStyle = {
35
- width: width,
36
- height,
37
- backgroundColor: progressBackground,
38
- borderRadius,
39
- overflow: 'hidden',
40
- };
41
- const progressStyle = {
42
- width: progressWidth,
43
- height: '100%',
44
- backgroundColor: progressColor,
45
- borderRadius,
46
- };
47
- const textStyle = {
48
- fontSize: tokens.typography.bodySmall.fontSize,
49
- fontWeight: tokens.typography.labelMedium.fontWeight,
50
- color: progressTextColor,
51
- textAlign: 'center',
52
- };
53
- return (<View style={[containerStyle, style]} testID={testID}>
54
- <View style={progressStyle}/>
55
- {(showPercentage || showValue) && (<View style={styles.textContainer}>
56
- <Text style={textStyle}>
57
- {showPercentage ? `${Math.round(clampedValue)}%` : `${Math.round(clampedValue)}`}
58
- </Text>
59
- </View>)}
60
- </View>);
61
- };
62
- // =============================================================================
63
- // STYLES
64
- // =============================================================================
65
- const styles = StyleSheet.create({
66
- textContainer: {
67
- position: 'absolute',
68
- top: 0,
69
- left: 0,
70
- right: 0,
71
- bottom: 0,
72
- justifyContent: 'center',
73
- alignItems: 'center',
74
- },
75
- });
76
- // =============================================================================
77
- // EXPORTS
78
- // =============================================================================
79
- export default AtomicProgress;
80
- //# sourceMappingURL=AtomicProgress.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AtomicProgress.js","sourceRoot":"","sources":["../../../src/presentation/atoms/AtomicProgress.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,UAAU,EAA6B,IAAI,EAAE,MAAM,cAAc,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AA+BhE,gFAAgF;AAChF,2BAA2B;AAC3B,gFAAgF;AAEhF,MAAM,CAAC,MAAM,cAAc,GAAkC,CAAC,EAC5D,KAAK,EACL,MAAM,GAAG,CAAC,EACV,KAAK,GAAG,MAAM,EACd,KAAK,EACL,eAAe,EACf,KAAK,GAAG,SAAS,EACjB,cAAc,GAAG,KAAK,EACtB,SAAS,GAAG,KAAK,EACjB,SAAS,EACT,KAAK,EACL,MAAM,GACP,EAAE,EAAE;IACH,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;IAEpC,gCAAgC;IAChC,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;IAEvD,iBAAiB;IACjB,MAAM,aAAa,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;IACrD,MAAM,kBAAkB,GAAG,eAAe,IAAI,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC;IAC3E,MAAM,iBAAiB,GAAG,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;IAEjE,2BAA2B;IAC3B,MAAM,aAAa,GAAG,GAAG,YAAY,GAAG,CAAC;IAEzC,+BAA+B;IAC/B,MAAM,YAAY,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE1D,MAAM,cAAc,GAAc;QAChC,KAAK,EAAE,KAAuB;QAC9B,MAAM;QACN,eAAe,EAAE,kBAAkB;QACnC,YAAY;QACZ,QAAQ,EAAE,QAAQ;KACnB,CAAC;IAEF,MAAM,aAAa,GAAc;QAC/B,KAAK,EAAE,aAA+B;QACtC,MAAM,EAAE,MAAwB;QAChC,eAAe,EAAE,aAAa;QAC9B,YAAY;KACb,CAAC;IAEF,MAAM,SAAS,GAAG;QAChB,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ;QAC9C,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,UAAU;QACpD,KAAK,EAAE,iBAAiB;QACxB,SAAS,EAAE,QAAiB;KAC7B,CAAC;IAEF,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CACnD;MAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,EAC3B;MAAA,CAAC,CAAC,cAAc,IAAI,SAAS,CAAC,IAAI,CAChC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAChC;UAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CACrB;YAAA,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAClF;UAAA,EAAE,IAAI,CACR;QAAA,EAAE,IAAI,CAAC,CACR,CACH;IAAA,EAAE,IAAI,CAAC,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,gFAAgF;AAChF,SAAS;AACT,gFAAgF;AAEhF,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,aAAa,EAAE;QACb,QAAQ,EAAE,UAAU;QACpB,GAAG,EAAE,CAAC;QACN,IAAI,EAAE,CAAC;QACP,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,CAAC;QACT,cAAc,EAAE,QAAQ;QACxB,UAAU,EAAE,QAAQ;KACrB;CACF,CAAC,CAAC;AAEH,gFAAgF;AAChF,UAAU;AACV,gFAAgF;AAEhF,eAAe,cAAc,CAAC"}
@@ -1,19 +0,0 @@
1
- import React from 'react';
2
- import type { StyleProp, ViewStyle, TextStyle } from 'react-native';
3
- export interface AtomicSearchBarProps {
4
- value: string;
5
- onChangeText: (text: string) => void;
6
- placeholder?: string;
7
- autoFocus?: boolean;
8
- editable?: boolean;
9
- onClear?: () => void;
10
- onFocus?: () => void;
11
- onBlur?: () => void;
12
- onSubmitEditing?: () => void;
13
- style?: StyleProp<ViewStyle>;
14
- inputStyle?: StyleProp<TextStyle>;
15
- accessibilityLabel?: string;
16
- accessibilityHint?: string;
17
- }
18
- export declare const AtomicSearchBar: React.FC<AtomicSearchBarProps>;
19
- //# sourceMappingURL=AtomicSearchBar.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AtomicSearchBar.d.ts","sourceRoot":"","sources":["../../../src/presentation/atoms/AtomicSearchBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAIpE,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,UAAU,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAClC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CA2F1D,CAAC"}
@@ -1,46 +0,0 @@
1
- import React from 'react';
2
- import { View, TextInput, TouchableOpacity } from 'react-native';
3
- import { useAppDesignTokens } from '@umituz/react-native-theme';
4
- import { AtomicIcon } from './AtomicIcon';
5
- export const AtomicSearchBar = ({ value, onChangeText, placeholder = 'Search...', autoFocus = false, editable = true, onClear, onFocus, onBlur, onSubmitEditing, style, inputStyle, accessibilityLabel = 'Search input', accessibilityHint, }) => {
6
- const tokens = useAppDesignTokens();
7
- const handleClear = () => {
8
- onChangeText('');
9
- onClear?.();
10
- };
11
- return (<View style={[
12
- {
13
- flexDirection: 'row',
14
- alignItems: 'center',
15
- backgroundColor: tokens.colors.surfaceSecondary,
16
- borderRadius: tokens.borders.radius.lg,
17
- borderWidth: 1,
18
- borderColor: tokens.colors.border,
19
- paddingHorizontal: tokens.spacing.md,
20
- paddingVertical: tokens.spacing.sm,
21
- gap: tokens.spacing.sm,
22
- minHeight: 48,
23
- },
24
- style,
25
- ]} accessibilityRole="search">
26
- <AtomicIcon name="Search" size="sm" color="secondary"/>
27
-
28
- <TextInput value={value} onChangeText={onChangeText} placeholder={placeholder} placeholderTextColor={tokens.colors.textSecondary} autoFocus={autoFocus} editable={editable} onFocus={onFocus} onBlur={onBlur} onSubmitEditing={onSubmitEditing} style={[
29
- {
30
- flex: 1,
31
- ...tokens.typography.bodyMedium,
32
- color: tokens.colors.textPrimary,
33
- padding: 0,
34
- margin: 0,
35
- },
36
- inputStyle,
37
- ]} accessibilityLabel={accessibilityLabel} accessibilityHint={accessibilityHint} returnKeyType="search" underlineColorAndroid="transparent"/>
38
-
39
- {value.length > 0 && (<TouchableOpacity onPress={handleClear} style={{
40
- padding: tokens.spacing.xs,
41
- }} accessibilityLabel="Clear search" accessibilityRole="button">
42
- <AtomicIcon name="X" size="sm" color="secondary"/>
43
- </TouchableOpacity>)}
44
- </View>);
45
- };
46
- //# sourceMappingURL=AtomicSearchBar.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AtomicSearchBar.js","sourceRoot":"","sources":["../../../src/presentation/atoms/AtomicSearchBar.tsx"],"names":[],"mappings":"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"}
@@ -1,72 +0,0 @@
1
- import React from 'react';
2
- import type { StyleProp, ViewStyle } from 'react-native';
3
- /**
4
- * Sort option interface
5
- */
6
- export interface SortOption {
7
- id: string;
8
- label: string;
9
- icon?: string;
10
- }
11
- /**
12
- * Sort direction type
13
- */
14
- export type SortDirection = 'asc' | 'desc';
15
- /**
16
- * AtomicSort component props
17
- */
18
- export interface AtomicSortProps {
19
- options: SortOption[];
20
- selectedId: string | null;
21
- sortDirection: SortDirection;
22
- onSortChange: (optionId: string, direction: SortDirection) => void;
23
- showDirectionToggle?: boolean;
24
- variant?: 'outlined' | 'filled' | 'soft';
25
- color?: 'primary' | 'secondary' | 'success' | 'warning' | 'error' | 'info';
26
- size?: 'sm' | 'md' | 'lg';
27
- style?: StyleProp<ViewStyle>;
28
- testID?: string;
29
- }
30
- /**
31
- * AtomicSort - Horizontal Sort Chip Component
32
- *
33
- * A Material Design 3 compliant sort component using chip selection.
34
- * Supports single selection with ascending/descending direction toggle.
35
- *
36
- * @example
37
- * ```tsx
38
- * const [sortBy, setSortBy] = useState<string | null>('name');
39
- * const [sortDir, setSortDir] = useState<SortDirection>('asc');
40
- *
41
- * <AtomicSort
42
- * options={[
43
- * { id: 'name', label: 'Name', icon: 'sort-alpha' },
44
- * { id: 'date', label: 'Date', icon: 'schedule' },
45
- * { id: 'priority', label: 'Priority', icon: 'flag' },
46
- * ]}
47
- * selectedId={sortBy}
48
- * sortDirection={sortDir}
49
- * onSortChange={(id, dir) => {
50
- * setSortBy(id);
51
- * setSortDir(dir);
52
- * }}
53
- * showDirectionToggle={true}
54
- * />
55
- * ```
56
- *
57
- * Features:
58
- * - Horizontal scrollable sort chips
59
- * - Single selection (one active sort at a time)
60
- * - Direction toggle (click active chip to switch asc/desc)
61
- * - Visual arrow indicators (↑ asc, ↓ desc)
62
- * - Theme-aware colors from design tokens
63
- * - Icon support per sort option
64
- * - Fully controlled component
65
- *
66
- * Behavior:
67
- * - Click inactive chip → Selects it with ascending direction
68
- * - Click active chip → Toggles direction (asc ↔ desc)
69
- * - Visual feedback via filled variant for active sort
70
- */
71
- export declare const AtomicSort: React.FC<AtomicSortProps>;
72
- //# sourceMappingURL=AtomicSort.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AtomicSort.d.ts","sourceRoot":"","sources":["../../../src/presentation/atoms/AtomicSort.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAIzD;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,MAAM,CAAC;AAE3C;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,aAAa,EAAE,aAAa,CAAC;IAC7B,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,KAAK,IAAI,CAAC;IACnE,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,OAAO,CAAC,EAAE,UAAU,GAAG,QAAQ,GAAG,MAAM,CAAC;IACzC,KAAK,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;IAC3E,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAmEhD,CAAC"}