@umituz/react-native-design-system 2.6.94 → 2.6.96

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 (45) hide show
  1. package/package.json +1 -1
  2. package/src/atoms/AtomicAvatar.README.md +284 -397
  3. package/src/atoms/AtomicBadge.README.md +123 -358
  4. package/src/atoms/AtomicCard.README.md +358 -247
  5. package/src/atoms/AtomicDatePicker.README.md +127 -332
  6. package/src/atoms/AtomicFab.README.md +194 -352
  7. package/src/atoms/AtomicIcon.README.md +241 -274
  8. package/src/atoms/AtomicProgress.README.md +100 -338
  9. package/src/atoms/AtomicSpinner.README.md +304 -337
  10. package/src/atoms/AtomicText.README.md +153 -389
  11. package/src/atoms/AtomicTextArea.README.md +267 -268
  12. package/src/atoms/EmptyState.README.md +247 -292
  13. package/src/atoms/GlassView/README.md +313 -444
  14. package/src/atoms/button/README.md +186 -297
  15. package/src/atoms/button/STRATEGY.md +252 -0
  16. package/src/atoms/chip/README.md +242 -290
  17. package/src/atoms/input/README.md +296 -290
  18. package/src/atoms/picker/README.md +278 -309
  19. package/src/atoms/skeleton/AtomicSkeleton.README.md +394 -252
  20. package/src/molecules/BaseModal/README.md +356 -0
  21. package/src/molecules/BaseModal.README.md +324 -200
  22. package/src/molecules/ConfirmationModal.README.md +349 -302
  23. package/src/molecules/Divider/README.md +293 -376
  24. package/src/molecules/FormField.README.md +321 -534
  25. package/src/molecules/GlowingCard/GlowingCard.tsx +1 -1
  26. package/src/molecules/GlowingCard/README.md +230 -372
  27. package/src/molecules/List/README.md +281 -488
  28. package/src/molecules/ListItem.README.md +320 -315
  29. package/src/molecules/SearchBar/README.md +332 -430
  30. package/src/molecules/StepHeader/README.md +311 -411
  31. package/src/molecules/StepProgress/README.md +281 -448
  32. package/src/molecules/alerts/README.md +272 -355
  33. package/src/molecules/avatar/README.md +295 -356
  34. package/src/molecules/bottom-sheet/README.md +303 -340
  35. package/src/molecules/calendar/README.md +301 -265
  36. package/src/molecules/countdown/README.md +347 -456
  37. package/src/molecules/emoji/README.md +281 -514
  38. package/src/molecules/listitem/README.md +307 -399
  39. package/src/molecules/media-card/MediaCard.tsx +31 -34
  40. package/src/molecules/media-card/README.md +217 -319
  41. package/src/molecules/navigation/README.md +263 -284
  42. package/src/molecules/navigation/components/NavigationHeader.tsx +77 -0
  43. package/src/molecules/navigation/index.ts +1 -0
  44. package/src/molecules/splash/README.md +76 -80
  45. package/src/molecules/swipe-actions/README.md +376 -588
@@ -1,117 +1,141 @@
1
1
  # AtomicChip
2
2
 
3
- AtomicChip, React Native için küçük, etiket benzeri bileşenlerdir. Kategorileri, durumları veya seçilebilir öğeleri göstermek için idealdir.
3
+ Small, tag-like components for displaying categories, statuses, or selectable items in React Native applications.
4
4
 
5
- ## Özellikler
5
+ ## Import & Usage
6
6
 
7
- - 🎨 **3 Variant**: Filled, Outlined, Ghost
8
- - 📏 **3 Size**: Small, Medium, Large
9
- - 🌈 **7 Renk**: Primary, Secondary, Success, Warning, Error, Info, Surface
10
- - 🎭 **İkon Desteği**: Leading ve trailing ikonlar
11
- - 👆 **Clickble**: Tıklanabilir chip'ler
12
- - ✅ **Selected**: Seçim durumu
13
- - ♿ **Erişilebilir**: Tam erişilebilirlik desteği
7
+ ```typescript
8
+ import { AtomicChip } from 'react-native-design-system/src/atoms/chip';
9
+ ```
14
10
 
15
- ## Kurulum
11
+ **Location:** `src/atoms/chip/AtomicChip.tsx`
12
+
13
+ ## Basic Usage
16
14
 
17
15
  ```tsx
18
- import { AtomicChip } from 'react-native-design-system';
16
+ <AtomicChip>React Native</AtomicChip>
19
17
  ```
20
18
 
21
- ## Temel Kullanım
19
+ ## Strategy
22
20
 
23
- ```tsx
24
- import React from 'react';
25
- import { View } from 'react-native';
26
- import { AtomicChip } from 'react-native-design-system';
27
-
28
- export const BasicExample = () => {
29
- return (
30
- <View style={{ padding: 16, flexDirection: 'row', gap: 8 }}>
31
- <AtomicChip>React Native</AtomicChip>
32
- <AtomicChip>TypeScript</AtomicChip>
33
- <AtomicChip>Material Design</AtomicChip>
34
- </View>
35
- );
36
- };
37
- ```
21
+ **Purpose**: Provide visually consistent, interactive tags for filtering, categorization, and status display.
38
22
 
39
- ## Variant'lar
23
+ **When to Use**:
24
+ - Category labels (tags, skills, topics)
25
+ - Status indicators (active, pending, completed)
26
+ - Filter chips (selectable options)
27
+ - User attributes (roles, badges)
28
+ - Removable items (tags with delete action)
40
29
 
41
- ```tsx
42
- <View style={{ flexDirection: 'row', gap: 8, flexWrap: 'wrap' }}>
43
- {/* Filled (Varsayılan) */}
44
- <AtomicChip variant="filled">Filled</AtomicChip>
30
+ **When NOT to Use**:
31
+ - For primary navigation - use Tabs or Navigation components
32
+ - For complex selections - use Checkbox or Radio components
33
+ - For long text content - use Card or List items
34
+ - As standalone buttons - use Button component instead
45
35
 
46
- {/* Outlined */}
47
- <AtomicChip variant="outlined">Outlined</AtomicChip>
36
+ ## Rules
48
37
 
49
- {/* Ghost */}
50
- <AtomicChip variant="ghost">Ghost</AtomicChip>
51
- </View>
52
- ```
38
+ ### Required
53
39
 
54
- ## Renkler
40
+ 1. **ALWAYS** provide `children` content (text or elements)
41
+ 2. **MUST** have appropriate color for semantic meaning
42
+ 3. **NEVER** use chips for critical actions without confirmation
43
+ 4. **ALWAYS** provide accessible label for screen readers
44
+ 5. **MUST** have adequate touch target (min 44x44pt) when clickable
55
45
 
56
- ```tsx
57
- <View style={{ flexDirection: 'row', gap: 8, flexWrap: 'wrap' }}>
58
- <AtomicChip color="primary">Primary</AtomicChip>
59
- <AtomicChip color="secondary">Secondary</AtomicChip>
60
- <AtomicChip color="success">Success</AtomicChip>
61
- <AtomicChip color="warning">Warning</AtomicChip>
62
- <AtomicChip color="error">Error</AtomicChip>
63
- <AtomicChip color="info">Info</AtomicChip>
64
- <AtomicChip color="surface">Surface</AtomicChip>
65
- </View>
66
- ```
46
+ ### Clickable Chips
47
+
48
+ 1. **MUST** set `clickable` prop if onPress is provided
49
+ 2. **ALWAYS** provide visual feedback for selected state
50
+ 3. **SHOULD** use `selected` prop for toggle behavior
51
+ 4. **MUST** have clear purpose for interaction
52
+
53
+ ### Variant Selection
67
54
 
68
- ## Boyutlar
55
+ 1. **Filled**: Primary categories, emphasized tags
56
+ 2. **Outlined**: Secondary categories, list items
57
+ 3. **Ghost**: Tertiary tags, background elements
58
+
59
+ ### Color Usage
60
+
61
+ 1. **Success**: Completed, verified, active states
62
+ 2. **Error**: Failed, rejected, inactive states
63
+ 3. **Warning**: Pending, attention needed
64
+ 4. **Info**: Neutral information
65
+
66
+ ## Forbidden
67
+
68
+ ❌ **NEVER** do these:
69
69
 
70
70
  ```tsx
71
- <View style={{ flexDirection: 'row', gap: 8, alignItems: 'center' }}>
72
- {/* Small */}
73
- <AtomicChip size="sm">Small</AtomicChip>
71
+ // Empty chips
72
+ <AtomicChip />
73
+
74
+ // ❌ Chips without content (children)
75
+ <AtomicChip variant="filled" />
76
+
77
+ // ❌ Long text content (breaks layout)
78
+ <AtomicChip>This is a very long text that will break the chip layout and make it look bad</AtomicChip>
79
+
80
+ // ❌ Clickable without clickable prop
81
+ <AtomicChip onPress={handlePress}>Click me</AtomicChip>
82
+ {/* ❌ Add clickable prop */}
74
83
 
75
- {/* Medium (Varsayılan) */}
76
- <AtomicChip size="md">Medium</AtomicChip>
84
+ // Wrong color semantics
85
+ <AtomicChip color="error">Success</AtomicChip>
86
+ {/* ❌ Use color="success" */}
77
87
 
78
- {/* Large */}
79
- <AtomicChip size="lg">Large</AtomicChip>
88
+ // Too many chips in one row
89
+ <View style={{ flexDirection: 'row' }}>
90
+ <AtomicChip>1</AtomicChip>
91
+ <AtomicChip>2</AtomicChip>
92
+ {/* ... 20 more chips */} {/* ❌ Use wrap */}
80
93
  </View>
94
+
95
+ // ❌ Hardcoded text (use i18n)
96
+ <AtomicChip>Active</AtomicChip>
97
+ {/* ❌ Use {t('status.active')} */}
81
98
  ```
82
99
 
83
- ## İkonlu Chip'ler
100
+ ## Best Practices
101
+
102
+ ### Chip Sizing
103
+
104
+ ✅ **DO**:
105
+ - Use `sm` for dense content and lists
106
+ - Use `md` (default) for normal usage
107
+ - Use `lg` for emphasis or important tags
84
108
 
109
+ ❌ **DON'T**:
110
+ - Mix sizes inconsistently in same context
111
+ - Use `lg` for long lists (takes too much space)
112
+
113
+ ### Color Selection
114
+
115
+ ✅ **DO**:
85
116
  ```tsx
86
- <View style={{ flexDirection: 'row', gap: 8, flexWrap: 'wrap' }}>
87
- {/* Leading Icon */}
88
- <AtomicChip
89
- leadingIcon="checkmark-circle"
90
- color="success"
91
- >
92
- Onaylandı
93
- </AtomicChip>
117
+ // Status indicators
118
+ <AtomicChip color="success">Active</AtomicChip>
119
+ <AtomicChip color="warning">Pending</AtomicChip>
120
+ <AtomicChip color="error">Inactive</AtomicChip>
121
+
122
+ // Categories
123
+ <AtomicChip color="primary">Technology</AtomicChip>
124
+ <AtomicChip color="secondary">Design</AtomicChip>
125
+ ```
94
126
 
95
- {/* Trailing Icon */}
96
- <AtomicChip
97
- trailingIcon="close-outline"
98
- color="error"
99
- >
100
- İptal
101
- </AtomicChip>
127
+ **DON'T**:
128
+ ```tsx
129
+ // Don't use decorative colors without meaning
130
+ <AtomicChip color="error">Just for fun</AtomicChip>
102
131
 
103
- {/* Both Icons */}
104
- <AtomicChip
105
- leadingIcon="person-outline"
106
- trailingIcon="chevron-down"
107
- >
108
- Kullanıcı
109
- </AtomicChip>
110
- </View>
132
+ // Don't mix colors randomly
133
+ <AtomicChip color="success">Error</AtomicChip>
111
134
  ```
112
135
 
113
- ## Tıklanabilir Chip'ler
136
+ ### Interactive Chips
114
137
 
138
+ ✅ **DO**:
115
139
  ```tsx
116
140
  const [selected, setSelected] = useState(false);
117
141
 
@@ -120,257 +144,185 @@ const [selected, setSelected] = useState(false);
120
144
  selected={selected}
121
145
  onPress={() => setSelected(!selected)}
122
146
  >
123
- Seçilebilir Chip
147
+ {t('filter.option')}
124
148
  </AtomicChip>
125
149
  ```
126
150
 
127
- ## Custom Renkler
128
-
151
+ **DON'T**:
129
152
  ```tsx
130
- <AtomicChip
131
- variant="filled"
132
- backgroundColor="#6366f1"
133
- textColor="#ffffff"
134
- borderColor="#6366f1"
135
- >
136
- Custom Color
137
- </AtomicChip>
138
- ```
153
+ // Don't forget clickable prop
154
+ <AtomicChip onPress={handlePress}>Click</AtomicChip>
139
155
 
140
- ## Örnek Kullanımlar
156
+ // Don't use selected without clickable
157
+ <AtomicChip selected>Not clickable</AtomicChip>
158
+ ```
141
159
 
142
- ### Kategori Etiketleri
160
+ ## AI Coding Guidelines
143
161
 
144
- ```tsx
145
- <View style={{ flexDirection: 'row', gap: 8, flexWrap: 'wrap' }}>
146
- <AtomicChip size="sm" variant="outlined">React Native</AtomicChip>
147
- <AtomicChip size="sm" variant="outlined">TypeScript</AtomicChip>
148
- <AtomicChip size="sm" variant="outlined">Node.js</AtomicChip>
149
- <AtomicChip size="sm" variant="outlined">GraphQL</AtomicChip>
150
- </View>
151
- ```
162
+ ### For AI Agents
152
163
 
153
- ### Durum Göstergeleri
164
+ When generating AtomicChip components, follow these rules:
154
165
 
155
- ```tsx
156
- <View style={{ flexDirection: 'row', gap: 8 }}>
157
- <AtomicChip
158
- color="success"
159
- leadingIcon="checkmark-circle"
160
- size="sm"
161
- >
162
- Aktif
163
- </AtomicChip>
166
+ 1. **Always import from correct path**:
167
+ ```typescript
168
+ import { AtomicChip } from 'react-native-design-system/src/atoms/chip';
169
+ ```
164
170
 
165
- <AtomicChip
166
- color="warning"
167
- leadingIcon="time"
168
- size="sm"
169
- >
170
- Beklemede
171
- </AtomicChip>
171
+ 2. **Always provide meaningful content**:
172
+ ```tsx
173
+ <AtomicChip>
174
+ {t('category.name')}
175
+ </AtomicChip>
176
+ ```
172
177
 
173
- <AtomicChip
174
- color="error"
175
- leadingIcon="close-circle"
176
- size="sm"
177
- >
178
- İptal
179
- </AtomicChip>
180
- </View>
181
- ```
178
+ 3. **Always use appropriate variant**:
179
+ ```tsx
180
+ // Primary category
181
+ <AtomicChip variant="filled">主要类别</AtomicChip>
182
182
 
183
- ### Filtre Seçimi
183
+ // Secondary category
184
+ <AtomicChip variant="outlined">次要类别</AtomicChip>
184
185
 
185
- ```tsx
186
- const [selectedFilters, setSelectedFilters] = useState<string[]>([]);
187
-
188
- const filters = ['Tümü', 'Aktif', 'Pasif', 'Beklemede'];
189
-
190
- <View style={{ flexDirection: 'row', gap: 8 }}>
191
- {filters.map((filter) => (
192
- <AtomicChip
193
- key={filter}
194
- clickable
195
- selected={selectedFilters.includes(filter)}
196
- onPress={() => {
197
- if (selectedFilters.includes(filter)) {
198
- setSelectedFilters(selectedFilters.filter(f => f !== filter));
199
- } else {
200
- setSelectedFilters([...selectedFilters, filter]);
201
- }
202
- }}
203
- color="primary"
204
- >
205
- {filter}
206
- </AtomicChip>
207
- ))}
208
- </View>
209
- ```
186
+ // Background tag
187
+ <AtomicChip variant="ghost">背景标签</AtomicChip>
188
+ ```
210
189
 
211
- ### Yetenek Etiketleri
190
+ 4. **Always use semantic colors**:
191
+ ```tsx
192
+ // Success state
193
+ <AtomicChip color="success">成功</AtomicChip>
212
194
 
213
- ```tsx
214
- <View style={{ flexDirection: 'row', gap: 8, flexWrap: 'wrap' }}>
215
- <AtomicChip
216
- leadingIcon="code-slash"
217
- color="info"
218
- size="sm"
219
- >
220
- React
221
- </AtomicChip>
195
+ // Error state
196
+ <AtomicChip color="error">失败</AtomicChip>
222
197
 
223
- <AtomicChip
224
- leadingIcon="logo-javascript"
225
- color="warning"
226
- size="sm"
227
- >
228
- JavaScript
229
- </AtomicChip>
198
+ // Warning state
199
+ <AtomicChip color="warning">警告</AtomicChip>
200
+ ```
230
201
 
231
- <AtomicChip
232
- leadingIcon="logo-python"
233
- color="success"
234
- size="sm"
235
- >
236
- Python
237
- </AtomicChip>
238
- </View>
239
- ```
202
+ 5. **Always enable clickable for interactive chips**:
203
+ ```tsx
204
+ <AtomicChip
205
+ clickable
206
+ selected={isSelected}
207
+ onPress={handleToggle}
208
+ >
209
+ 可选择的标签
210
+ </AtomicChip>
211
+ ```
240
212
 
241
- ### Silinebilir Etiketler
213
+ ### Common Patterns
242
214
 
215
+ #### Category Tags
243
216
  ```tsx
244
- const [tags, setTags] = useState(['React', 'TypeScript', 'Node.js']);
245
-
246
217
  <View style={{ flexDirection: 'row', gap: 8, flexWrap: 'wrap' }}>
247
- {tags.map((tag, index) => (
248
- <AtomicChip
249
- key={index}
250
- trailingIcon="close"
251
- clickable
252
- onPress={() => setTags(tags.filter((_, i) => i !== index))}
253
- variant="outlined"
254
- >
255
- {tag}
256
- </AtomicChip>
257
- ))}
218
+ <AtomicChip size="sm" variant="outlined">
219
+ {t('category.react')}
220
+ </AtomicChip>
221
+ <AtomicChip size="sm" variant="outlined">
222
+ {t('category.typescript')}
223
+ </AtomicChip>
258
224
  </View>
259
225
  ```
260
226
 
261
- ## Props
262
-
263
- ### AtomicChipProps
264
-
265
- | Prop | Tip | Varsayılan | Açıklama |
266
- |------|-----|------------|----------|
267
- | `children` | `ReactNode` | - **(Zorunlu)** | Chip içeriği |
268
- | `variant` | `ChipVariant` | `'filled'` | Chip görünüm stili |
269
- | `size` | `ChipSize` | `'md'` | Chip boyutu |
270
- | `color` | `ChipColor` | `'primary'` | Semantic renk |
271
- | `backgroundColor` | `string` | - | Custom arka plan rengi |
272
- | `textColor` | `string` | - | Custom metin rengi |
273
- | `borderColor` | `string` | - | Custom çerçeve rengi |
274
- | `leadingIcon` | `string` | - | Sol ikon ismi |
275
- | `trailingIcon` | `string` | - | Sağ ikon ismi |
276
- | `clickable` | `boolean` | `false` | Tıklanabilir |
277
- | `onPress` | `() => void` | - | Tıklama olayı |
278
- | `selected` | `boolean` | `false` | Seçili durumu |
279
- | `disabled` | `boolean` | `false` | Devre dışı |
280
- | `style` | `StyleProp<ViewStyle>` | - | Özel stil |
281
- | `activeOpacity` | `number` | `0.7` | Tıklama opaklığı |
282
- | `testID` | `string` | - | Test ID'si |
283
-
284
- ### ChipVariant
285
-
286
- ```typescript
287
- type ChipVariant =
288
- | 'filled' // Dolgu (varsayılan)
289
- | 'outlined' // Çerçeveli
290
- | 'ghost'; // Hayalet
291
- ```
292
-
293
- ### ChipSize
294
-
295
- ```typescript
296
- type ChipSize = 'sm' | 'md' | 'lg';
227
+ #### Status Indicators
228
+ ```tsx
229
+ <AtomicChip
230
+ size="sm"
231
+ color={status === 'active' ? 'success' : 'error'}
232
+ leadingIcon={status === 'active' ? 'checkmark-circle' : 'close-circle'}
233
+ >
234
+ {t(`status.${status}`)}
235
+ </AtomicChip>
297
236
  ```
298
237
 
299
- ### ChipColor
238
+ #### Filter Chips
239
+ ```tsx
240
+ const [selectedFilters, setSelectedFilters] = useState<string[]>();
300
241
 
301
- ```typescript
302
- type ChipColor =
303
- | 'primary' // Ana renk
304
- | 'secondary' // İkincil renk
305
- | 'success' // Başarı rengi
306
- | 'warning' // Uyarı rengi
307
- | 'error' // Hata rengi
308
- | 'info' // Bilgi rengi
309
- | 'surface'; // Yüzey rengi
242
+ {filters.map((filter) => (
243
+ <AtomicChip
244
+ key={filter.value}
245
+ clickable
246
+ selected={selectedFilters.includes(filter.value)}
247
+ onPress={() => toggleFilter(filter.value)}
248
+ variant="outlined"
249
+ >
250
+ {filter.label}
251
+ </AtomicChip>
252
+ ))}
310
253
  ```
311
254
 
312
- ## Best Practices
313
-
314
- ### 1. Variant Seçimi
315
-
255
+ #### Removable Tags
316
256
  ```tsx
317
- // Ana etiketler için filled
318
- <AtomicChip variant="filled">React Native</AtomicChip>
319
-
320
- // Liste elemanları için outlined
321
- <AtomicChip variant="outlined">TypeScript</AtomicChip>
322
-
323
- // Arka plan için ghost
324
- <AtomicChip variant="ghost">Node.js</AtomicChip>
257
+ {tags.map((tag, index) => (
258
+ <AtomicChip
259
+ key={index}
260
+ trailingIcon="close"
261
+ clickable
262
+ onPress={() => removeTag(index)}
263
+ variant="outlined"
264
+ >
265
+ {tag}
266
+ </AtomicChip>
267
+ ))}
325
268
  ```
326
269
 
327
- ### 2. Renk Kullanımı
328
-
270
+ #### Skill Tags
329
271
  ```tsx
330
- // Başarı durumu
331
- <AtomicChip color="success">Başarılı</AtomicChip>
332
-
333
- // Hata durumu
334
- <AtomicChip color="error">Hatalı</AtomicChip>
335
-
336
- // Uyarı durumu
337
- <AtomicChip color="warning">Uyarı</AtomicChip>
272
+ <AtomicChip
273
+ leadingIcon="code-slash"
274
+ color="info"
275
+ size="sm"
276
+ >
277
+ React
278
+ </AtomicChip>
338
279
  ```
339
280
 
340
- ### 3. Boyut Seçimi
281
+ ## Props Reference
341
282
 
342
- ```tsx
343
- // Yoğun içerik için
344
- <AtomicChip size="sm">Small</AtomicChip>
345
-
346
- // Normal kullanım
347
- <AtomicChip size="md">Medium</AtomicChip>
283
+ | Prop | Type | Required | Default | Description |
284
+ |------|------|----------|---------|-------------|
285
+ | `children` | `ReactNode` | Yes | - | Chip content |
286
+ | `variant` | `'filled' \| 'outlined' \| 'ghost'` | No | `'filled'` | Visual style |
287
+ | `size` | `'sm' \| 'md' \| 'lg'` | No | `'md'` | Chip size |
288
+ | `color` | `'primary' \| 'secondary' \| 'success' \| 'warning' \| 'error' \| 'info' \| 'surface'` | No | `'primary'` | Semantic color |
289
+ | `leadingIcon` | `string` | No | - | Leading icon name |
290
+ | `trailingIcon` | `string` | No | - | Trailing icon name |
291
+ | `clickable` | `boolean` | No | `false` | Enable click interaction |
292
+ | `onPress` | `() => void` | No | - | Press handler |
293
+ | `selected` | `boolean` | No | `false` | Selected state |
294
+ | `disabled` | `boolean` | No | `false` | Disabled state |
295
+ | `backgroundColor` | `string` | No | - | Custom background color |
296
+ | `textColor` | `string` | No | - | Custom text color |
297
+ | `borderColor` | `string` | No | - | Custom border color |
348
298
 
349
- // Vurgu için
350
- <AtomicChip size="lg">Large</AtomicChip>
351
- ```
299
+ ## Accessibility
352
300
 
353
- ## Erişilebilirlik
301
+ - ✅ Screen reader announces chip content
302
+ - ✅ Selected state announced for clickable chips
303
+ - ✅ Touch feedback for interactions
304
+ - ✅ Minimum touch target: 44x44pt (when clickable)
305
+ - ✅ Test ID support for testing
354
306
 
355
- AtomicChip, tam erişilebilirlik desteği sunar:
307
+ ## Performance Tips
356
308
 
357
- - Touch uygun boyut
358
- - Screen reader desteği
359
- - Selected state anonsu
360
- - Test ID desteği
309
+ 1. **Memo chips**: Component is already wrapped in `React.memo`
310
+ 2. **Stable callbacks**: Use `useCallback` for onPress handlers
311
+ 3. **Key prop**: Always provide key when rendering lists
312
+ 4. **Limit count**: Avoid rendering 50+ chips at once
361
313
 
362
- ## Performans İpuçları
314
+ ## Related Components
363
315
 
364
- 1. **React.memo**: AtomicChip zaten `React.memo` ile sarılmış
365
- 2. **Listelerde Kullanım**: `key` prop'unu kullanmayı unutmayın
366
- 3. **OnPress Stabilization**: `onPress` callback'ini `useCallback` ile sarın
316
+ - [`AtomicPicker`](./picker/README.md) - Multi-select picker
317
+ - [`AtomicButton`](./button/README.md) - Button component
318
+ - [`FormField`](../../molecules/FormField/README.md) - Form field wrapper
367
319
 
368
- ## İlgili Bileşenler
320
+ ## Version History
369
321
 
370
- - [`AtomicPicker`](../picker/README.md) - Seçim bileşeni
371
- - [`AtomicButton`](../button/README.md) - Buton bileşeni
372
- - [`FormField`](../../molecules/FormField/README.md) - Form alanı
322
+ - **2.6.0**: Added clickable and selected states
323
+ - **2.5.0**: Added custom colors support
324
+ - **2.0.0**: Initial release with 3 variants
373
325
 
374
- ## Lisans
326
+ ## License
375
327
 
376
328
  MIT