@umituz/react-native-design-system 2.6.93 → 2.6.95

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/exports/theme.ts +0 -1
  21. package/src/molecules/BaseModal/README.md +356 -0
  22. package/src/molecules/BaseModal.README.md +324 -200
  23. package/src/molecules/ConfirmationModal.README.md +349 -302
  24. package/src/molecules/Divider/README.md +293 -376
  25. package/src/molecules/FormField.README.md +321 -534
  26. package/src/molecules/GlowingCard/GlowingCard.tsx +1 -1
  27. package/src/molecules/GlowingCard/README.md +230 -372
  28. package/src/molecules/IconContainer.tsx +1 -1
  29. package/src/molecules/List/README.md +281 -488
  30. package/src/molecules/ListItem.README.md +320 -315
  31. package/src/molecules/SearchBar/README.md +332 -430
  32. package/src/molecules/StepHeader/README.md +311 -411
  33. package/src/molecules/StepProgress/README.md +281 -448
  34. package/src/molecules/alerts/README.md +272 -355
  35. package/src/molecules/avatar/README.md +295 -356
  36. package/src/molecules/bottom-sheet/README.md +303 -340
  37. package/src/molecules/calendar/README.md +301 -265
  38. package/src/molecules/countdown/README.md +347 -456
  39. package/src/molecules/emoji/README.md +281 -514
  40. package/src/molecules/listitem/README.md +307 -399
  41. package/src/molecules/media-card/MediaCard.tsx +31 -34
  42. package/src/molecules/media-card/README.md +217 -319
  43. package/src/molecules/navigation/README.md +263 -284
  44. package/src/molecules/splash/README.md +76 -92
  45. package/src/molecules/swipe-actions/README.md +376 -588
@@ -1,402 +1,164 @@
1
1
  # AtomicProgress
2
2
 
3
- AtomicProgress, ilerleme durumu göstermek için kullanılan bir bileşendir. Dosya yükleme, görev tamamlanma veya form dolumu gibi durumlarda kullanılır.
3
+ A progress bar component for showing determinate progress (0-100%).
4
4
 
5
- ## Özellikler
5
+ ## Import & Usage
6
6
 
7
- - 📊 **0-100 Arası**: Yüzde bazlı ilerleme
8
- - 🎨 **Özelleştirilebilir**: Renk, boyut, şekil
9
- - 📝 **Metin Desteği**: Yüzde veya değer gösterimi
10
- - 🔲 **2 Şekil**: Rounded veya Square
11
- - ♿ **Erişilebilir**: Tam erişilebilirlik desteği
12
-
13
- ## Kurulum
14
-
15
- ```tsx
16
- import { AtomicProgress } from 'react-native-design-system';
7
+ ```typescript
8
+ import { AtomicProgress } from 'react-native-design-system/src/atoms/AtomicProgress';
17
9
  ```
18
10
 
19
- ## Temel Kullanım
11
+ **Location:** `src/atoms/AtomicProgress.tsx`
20
12
 
21
- ```tsx
22
- import React from 'react';
23
- import { View } from 'react-native';
24
- import { AtomicProgress } from 'react-native-design-system';
25
-
26
- export const BasicExample = () => {
27
- return (
28
- <View style={{ padding: 16 }}>
29
- <AtomicProgress value={50} />
30
- </View>
31
- );
32
- };
33
- ```
34
-
35
- ## Basic Progress
13
+ ## Basic Usage
36
14
 
37
15
  ```tsx
38
- {/* 0% */}
39
- <AtomicProgress value={0} />
40
-
41
- {/* 50% */}
42
16
  <AtomicProgress value={50} />
43
-
44
- {/* 100% */}
45
- <AtomicProgress value={100} />
46
17
  ```
47
18
 
48
- ## Yükseklik
19
+ ## Strategy
49
20
 
50
- ```tsx
51
- <View style={{ gap: 16 }}>
52
- <AtomicProgress value={50} height={4} />
53
- <AtomicProgress value={50} height={8} />
54
- <AtomicProgress value={50} height={12} />
55
- <AtomicProgress value={50} height={16} />
56
- </View>
57
- ```
21
+ **Purpose**: Show determinate progress for operations with known completion percentage.
58
22
 
59
- ## Genişlik
23
+ **When to Use**:
24
+ - File upload/download progress
25
+ - Task completion progress
26
+ - Form filling progress
27
+ - Loading with known percentage
28
+ - Step-by-step progress
60
29
 
61
- ```tsx
62
- <View style={{ gap: 16 }}>
63
- <AtomicProgress value={50} width="100%" />
64
- <AtomicProgress value={50} width="80%" />
65
- <AtomicProgress value={50} width={200} />
66
- </View>
67
- ```
30
+ **When NOT to Use**:
31
+ - For indeterminate loading (use AtomicSpinner instead)
32
+ - When progress percentage is unknown
33
+ - For status indicators (use badges instead)
68
34
 
69
- ## Custom Renk
35
+ ## Rules
70
36
 
71
- ```tsx
72
- <View style={{ gap: 16 }}>
73
- <AtomicProgress value={50} color="#6366f1" />
74
- <AtomicProgress value={50} color="#10b981" />
75
- <AtomicProgress value={50} color="#f59e0b" />
76
- <AtomicProgress value={50} color="#ef4444" />
77
- </View>
78
- ```
37
+ ### Required
79
38
 
80
- ## Şekil
39
+ 1. **MUST** provide `value` (0-100)
40
+ 2. **ALWAYS** clamp value to 0-100 range
41
+ 3. **SHOULD** use appropriate height for context
42
+ 4. **MUST** provide accessibility label
43
+ 5. **SHOULD** use semantic colors for meaning
44
+ 6. **ALWAYS** show progress text for meaningful feedback
81
45
 
82
- ```tsx
83
- <View style={{ gap: 16 }}>
84
- <AtomicProgress value={50} shape="rounded" />
85
- <AtomicProgress value={50} shape="square" />
86
- </View>
87
- ```
46
+ ### Color Semantics
88
47
 
89
- ## Percentage Text
48
+ 1. **Primary**: General progress
49
+ 2. **Success**: Completion/success
50
+ 3. **Warning**: Caution needed
51
+ 4. **Error**: Error occurred
90
52
 
91
- ```tsx
92
- <AtomicProgress
93
- value={75}
94
- showPercentage
95
- height={24}
96
- />
97
- ```
53
+ ## Forbidden
98
54
 
99
- ## Value Text
55
+ **NEVER** do these:
100
56
 
101
57
  ```tsx
102
- <AtomicProgress
103
- value={75}
104
- showValue
105
- height={24}
106
- />
107
- ```
108
-
109
- ## Custom Background
58
+ // ❌ No value
59
+ <AtomicProgress /> {/* ❌ Missing required prop */}
110
60
 
111
- ```tsx
112
- <AtomicProgress
113
- value={50}
114
- color="#6366f1"
115
- backgroundColor="#e0e7ff"
116
- />
117
- ```
61
+ // ❌ Value out of range
62
+ <AtomicProgress value={150} /> {/* ❌ Must be 0-100 */}
118
63
 
119
- ## Örnek Kullanımlar
64
+ // For indeterminate loading
65
+ <AtomicProgress value={unknownProgress} /> {/* ❌ Use Spinner */}
120
66
 
121
- ### Dosya Yükleme
67
+ // Too tall
68
+ <AtomicProgress value={50} height={50} /> {/* ❌ Too thick */}
122
69
 
123
- ```tsx
124
- export const FileUploadProgress = ({ progress }) => {
125
- return (
126
- <View style={{ padding: 16 }}>
127
- <View style={{ flexDirection: 'row', justifyContent: 'space-between', marginBottom: 8 }}>
128
- <AtomicText type="bodyMedium">Yükleniyor...</AtomicText>
129
- <AtomicText type="bodyMedium" color="primary">
130
- %{progress}
131
- </AtomicText>
132
- </View>
133
-
134
- <AtomicProgress
135
- value={progress}
136
- height={8}
137
- color="#6366f1"
138
- showPercentage
139
- />
140
- </View>
141
- );
142
- };
143
- ```
144
-
145
- ### Görev İlerlemesi
146
-
147
- ```tsx
148
- export const TaskProgress = ({ completed, total }) => {
149
- const percentage = (completed / total) * 100;
150
-
151
- return (
152
- <View style={{ padding: 16 }}>
153
- <AtomicText type="bodyMedium" style={{ marginBottom: 8 }}>
154
- {completed} / {total} görev tamamlandı
155
- </AtomicText>
156
-
157
- <AtomicProgress
158
- value={percentage}
159
- height={12}
160
- color="#10b981"
161
- />
162
- </View>
163
- );
164
- };
70
+ // ❌ Confusing color
71
+ <AtomicProgress
72
+ value={100}
73
+ color="error" {/* 100% should be success */}
74
+ />
165
75
  ```
166
76
 
167
- ### Form Tamamlama
168
-
169
- ```tsx
170
- export const FormCompletionProgress = ({ completedSteps, totalSteps }) => {
171
- const percentage = (completedSteps / totalSteps) * 100;
172
-
173
- return (
174
- <View style={{ padding: 16, backgroundColor: '#f8f9fa', borderRadius: 8 }}>
175
- <AtomicText type="labelLarge" color="textSecondary" style={{ marginBottom: 8 }}>
176
- Form İlerlemesi
177
- </AtomicText>
178
-
179
- <AtomicProgress
180
- value={percentage}
181
- height={8}
182
- color="#6366f1"
183
- showPercentage
184
- />
185
-
186
- <AtomicText type="bodySmall" color="textTertiary" style={{ marginTop: 8 }}>
187
- {completedSteps} / {totalSteps} adım tamamlandı
188
- </AtomicText>
189
- </View>
190
- );
191
- };
192
- ```
77
+ ## Best Practices
193
78
 
194
- ### Başarı Durumu
79
+ ### Value Management
195
80
 
81
+ ✅ **DO**:
196
82
  ```tsx
197
- export const AchievementProgress = ({ current, target }) => {
198
- const percentage = Math.min((current / target) * 100, 100);
199
-
200
- return (
201
- <View style={{ padding: 16 }}>
202
- <View style={{ flexDirection: 'row', justifyContent: 'space-between', marginBottom: 8 }}>
203
- <AtomicText type="bodyMedium" fontWeight="600">
204
- Başarı İlerlemesi
205
- </AtomicText>
206
- <AtomicText type="bodyMedium" color="success">
207
- {current} / {target}
208
- </AtomicText>
209
- </View>
210
-
211
- <AtomicProgress
212
- value={percentage}
213
- height={16}
214
- color="#10b981"
215
- backgroundColor="#d4edda"
216
- showPercentage
217
- />
218
- </View>
219
- );
220
- };
83
+ const progress = (completed / total) * 100;
84
+ <AtomicProgress value={progress} />
221
85
  ```
222
86
 
223
- ### İndirme İlerlemesi
224
-
87
+ **DON'T**:
225
88
  ```tsx
226
- export const DownloadProgress = ({ downloaded, total, filename }) => {
227
- const percentage = (downloaded / total) * 100;
228
- const downloadedMB = (downloaded / 1024 / 1024).toFixed(2);
229
- const totalMB = (total / 1024 / 1024).toFixed(2);
230
-
231
- return (
232
- <View style={{ padding: 16 }}>
233
- <AtomicText type="bodyMedium" fontWeight="600" style={{ marginBottom: 4 }}>
234
- {filename}
235
- </AtomicText>
236
-
237
- <View style={{ flexDirection: 'row', justifyContent: 'space-between', marginBottom: 8 }}>
238
- <AtomicText type="bodySmall" color="textSecondary">
239
- {downloadedMB} MB / {totalMB} MB
240
- </AtomicText>
241
- <AtomicText type="bodySmall" color="primary">
242
- %{Math.round(percentage)}
243
- </AtomicText>
244
- </View>
245
-
246
- <AtomicProgress
247
- value={percentage}
248
- height={6}
249
- color="#6366f1"
250
- />
251
- </View>
252
- );
253
- };
89
+ // Unclamped value
90
+ <AtomicProgress value={150} />
254
91
  ```
255
92
 
256
- ### Okuma İlerlemesi
93
+ ## AI Coding Guidelines
257
94
 
258
- ```tsx
259
- export const ReadingProgress = ({ currentPage, totalPages }) => {
260
- const percentage = (currentPage / totalPages) * 100;
261
-
262
- return (
263
- <View style={{ padding: 16 }}>
264
- <AtomicText type="labelLarge" color="textSecondary" style={{ marginBottom: 8 }}>
265
- Okuma İlerlemesi
266
- </AtomicText>
267
-
268
- <AtomicProgress
269
- value={percentage}
270
- height={8}
271
- color="#8b5cf6"
272
- showPercentage
273
- />
274
-
275
- <AtomicText type="bodySmall" color="textTertiary" style={{ marginTop: 8 }}>
276
- Sayfa {currentPage} / {totalPages}
277
- </AtomicText>
278
- </View>
279
- );
280
- };
281
- ```
95
+ ### For AI Agents
282
96
 
283
- ### Video İlerlemesi
97
+ 1. **Always provide value**:
98
+ ```tsx
99
+ // ✅ Good
100
+ <AtomicProgress value={progress} />
284
101
 
285
- ```tsx
286
- export const VideoProgress = ({ currentTime, duration }) => {
287
- const percentage = (currentTime / duration) * 100;
288
-
289
- const formatTime = (seconds) => {
290
- const mins = Math.floor(seconds / 60);
291
- const secs = Math.floor(seconds % 60);
292
- return `${mins}:${secs.toString().padStart(2, '0')}`;
293
- };
294
-
295
- return (
296
- <View style={{ padding: 8 }}>
297
- <AtomicProgress
298
- value={percentage}
299
- height={4}
300
- color="#ef4444"
301
- backgroundColor="#374151"
302
- />
303
-
304
- <View style={{ flexDirection: 'row', justifyContent: 'space-between', marginTop: 4 }}>
305
- <AtomicText type="bodySmall" color="textSecondary">
306
- {formatTime(currentTime)}
307
- </AtomicText>
308
- <AtomicText type="bodySmall" color="textSecondary">
309
- {formatTime(duration)}
310
- </AtomicText>
311
- </View>
312
- </View>
313
- );
314
- };
315
- ```
102
+ // ❌ Bad
103
+ <AtomicProgress />
104
+ ```
316
105
 
317
- ## Props
106
+ 2. **Always clamp value to 0-100**:
107
+ ```tsx
108
+ // ✅ Good
109
+ const value = Math.max(0, Math.min(100, progress));
110
+ <AtomicProgress value={value} />
318
111
 
319
- ### AtomicProgressProps
112
+ // ❌ Bad
113
+ <AtomicProgress value={progress} /> {/* Could be > 100 */}
114
+ ```
320
115
 
321
- | Prop | Tip | Varsayılan | Açıklama |
322
- |------|-----|------------|----------|
323
- | `value` | `number` | - **(Zorunlu)** | İlerleme değeri (0-100) |
324
- | `height` | `number` | `8` | İlerleme çubuğu yüksekliği |
325
- | `width` | `number \| string` | `'100%'` | Genişlik |
326
- | `color` | `string` | - | İlerleme rengi |
327
- | `backgroundColor` | `string` | - | Arka plan rengi |
328
- | `shape` | `'rounded' \| 'square'` | `'rounded'` | Şekil |
329
- | `showPercentage` | `boolean` | `false` | Yüzde göster |
330
- | `showValue` | `boolean` | `false` | Değer göster |
331
- | `textColor` | `string` | - | Metin rengi |
332
- | `style` | `ViewStyle` | - | Özel stil |
333
- | `testID` | `string` | - | Test ID'si |
116
+ 3. **Always use appropriate height**:
117
+ ```tsx
118
+ // Good
119
+ <AtomicProgress value={50} height={8} />
334
120
 
335
- ## Best Practices
121
+ // Bad
122
+ <AtomicProgress value={50} height={30} /> {/* Too thick */}
123
+ ```
336
124
 
337
- ### 1. Yükseklik Seçimi
125
+ ### Common Patterns
338
126
 
127
+ #### Basic Progress
339
128
  ```tsx
340
- // İnce
341
- <AtomicProgress height={4} />
342
-
343
- // Normal
344
- <AtomicProgress height={8} />
345
-
346
- // Kalın
347
- <AtomicProgress height={16} />
129
+ <AtomicProgress value={50} />
348
130
  ```
349
131
 
350
- ### 2. Renk Seçimi
351
-
132
+ #### With Percentage
352
133
  ```tsx
353
- // Başarı (yeşil)
354
- <AtomicProgress color="#10b981" />
355
-
356
- // İlerleme (mavi)
357
- <AtomicProgress color="#6366f1" />
358
-
359
- // Uyarı (turuncu)
360
- <AtomicProgress color="#f59e0b" />
361
-
362
- // Hata (kırmızı)
363
- <AtomicProgress color="#ef4444" />
134
+ <AtomicProgress
135
+ value={75}
136
+ showPercentage
137
+ height={24}
138
+ />
364
139
  ```
365
140
 
366
- ### 3. Metin Gösterimi
367
-
368
- ```tsx
369
- // Yüzde
370
- <AtomicProgress showPercentage height={24} />
371
-
372
- // Değer
373
- <AtomicProgress showValue height={24} />
141
+ ## Props Reference
374
142
 
375
- // Metinsiz
376
- <AtomicProgress />
377
- ```
378
-
379
- ## Erişilebilirlik
143
+ | Prop | Type | Required | Default | Description |
144
+ |------|------|----------|---------|-------------|
145
+ | `value` | `number` | Yes | - | Progress value (0-100) |
146
+ | `height` | `number` | No | `8` | Progress bar height |
147
+ | `color` | `string` | No | - | Progress color |
148
+ | `showPercentage` | `boolean` | No | `false` | Show percentage text |
149
+ | `showValue` | `boolean` | No | `false` | Show value text |
380
150
 
381
- AtomicProgress, tam erişilebilirlik desteği sunar:
151
+ ## Accessibility
382
152
 
383
153
  - ✅ Progress bar role
384
154
  - ✅ Accessibility label
385
155
  - ✅ Accessibility value (min, max, now)
386
- - ✅ Screen reader desteği
387
-
388
- ## Performans İpuçları
389
-
390
- 1. **Value Clamping**: Değer otomatik olarak 0-100 arası sınırlanır
391
- 2. **Avoid Re-renders**: `value` prop'unu stabilize edin
392
- 3. **Animation**: İlerleme animasyonu için Animated.Value kullanın
393
156
 
394
- ## İlgili Bileşenler
157
+ ## Related Components
395
158
 
396
- - [`AtomicSpinner`](./AtomicSpinner/README.md) - Yükleme göstergesi
397
- - [`AtomicSkeleton`](./skeleton/AtomicSkeleton/README.md) - Skeleton loading
398
- - [`EmptyState`](./EmptyState/README.md) - Boş durum
159
+ - [`AtomicSpinner`](./AtomicSpinner.README.md) - Indeterminate loading
160
+ - [`AtomicSkeleton`](./skeleton/AtomicSkeleton.README.md) - Skeleton placeholder
399
161
 
400
- ## Lisans
162
+ ## License
401
163
 
402
164
  MIT