@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,487 +1,387 @@
1
1
  # StepHeader
2
2
 
3
- StepHeader, adım adım ilerleyen akışları (onboarding, kayıt, wizard vb.) için kullanılan başlık bileşenidir. Adım göstergesi, başlık ve alt başlık içerir.
3
+ A header component for step-by-step workflows (onboarding, registration, wizard) with step indicator, title, and subtitle.
4
4
 
5
- ## Özellikler
5
+ ## Import & Usage
6
6
 
7
- - 📊 **Step Indicator**: Adım göstergesi (dot sistemi)
8
- - 📝 **Title & Subtitle**: Başlık ve açıklama metni
9
- - 🎯 **Hizalama**: Sol, orta, sağ hizalama seçenekleri
10
- - 🎨 **Özelleştirilebilir**: Font boyutu, boşluk ayarları
11
- - 🎭 **Tema Bilinci**: Design token uyumlu
12
- - ♿ **Erişilebilir**: Screen reader desteği
13
-
14
- ## Kurulum
15
-
16
- ```tsx
17
- import { StepHeader } from 'react-native-design-system';
7
+ ```typescript
8
+ import { StepHeader } from 'react-native-design-system/src/molecules/StepHeader';
18
9
  ```
19
10
 
20
- ## Temel Kullanım
21
-
22
- ```tsx
23
- import React from 'react';
24
- import { View } from 'react-native';
25
- import { StepHeader } from 'react-native-design-system';
26
-
27
- export const BasicExample = () => {
28
- return (
29
- <View>
30
- <StepHeader
31
- title="Hoş Geldiniz"
32
- subtitle="Hesabınızı oluşturmak için birkaç adım"
33
- />
34
- </View>
35
- );
36
- };
37
- ```
11
+ **Location:** `src/molecules/StepHeader/StepHeader.tsx`
38
12
 
39
- ## Step Indicator ile
13
+ ## Basic Usage
40
14
 
41
15
  ```tsx
42
16
  <StepHeader
43
- title="Profil Bilgileri"
44
- subtitle="Lütfen kişisel bilgilerinizi girin"
17
+ title="Welcome"
18
+ subtitle="A few steps to create your account"
45
19
  config={{
46
20
  showStepIndicator: true,
47
- currentStep: 2,
21
+ currentStep: 1,
48
22
  totalSteps: 4,
49
23
  }}
50
24
  />
51
25
  ```
52
26
 
53
- ## Adım Göstergesi
27
+ ## Strategy
54
28
 
55
- ```tsx
56
- <View>
57
- {/* 1. Adım */}
58
- <StepHeader
59
- title="Adım 1"
60
- config={{
61
- showStepIndicator: true,
62
- currentStep: 1,
63
- totalSteps: 3,
64
- }}
65
- />
66
-
67
- {/* 2. Adım */}
68
- <StepHeader
69
- title="Adım 2"
70
- config={{
71
- showStepIndicator: true,
72
- currentStep: 2,
73
- totalSteps: 3,
74
- }}
75
- />
76
-
77
- {/* 3. Adım */}
78
- <StepHeader
79
- title="Adım 3"
80
- config={{
81
- showStepIndicator: true,
82
- currentStep: 3,
83
- totalSteps: 3,
84
- }}
85
- />
86
- </View>
87
- ```
29
+ **Purpose**: Provide clear visual hierarchy and progress indication for multi-step workflows.
88
30
 
89
- ## Hizalama Seçenekleri
31
+ **When to Use**:
32
+ - Onboarding flows (3-5 steps)
33
+ - Registration forms (multi-step)
34
+ - Checkout wizards
35
+ - Setup assistants
36
+ - Questionnaires/surveys
37
+ - Profile completion flows
90
38
 
91
- ```tsx
92
- <View>
93
- {/* Sol hizalı (varsayılan) */}
94
- <StepHeader
95
- title="Sol Hizalı"
96
- subtitle="Solaya hizalı başlık"
97
- config={{
98
- titleAlignment: 'left',
99
- }}
100
- />
101
-
102
- {/* Ortalanmış */}
103
- <StepHeader
104
- title="Ortada"
105
- subtitle="Ortalanmış başlık"
106
- config={{
107
- titleAlignment: 'center',
108
- }}
109
- />
110
-
111
- {/* Sağ hizalı */}
112
- <StepHeader
113
- title="Sağ Hizalı"
114
- subtitle="Sağa hizalı başlık"
115
- config={{
116
- titleAlignment: 'right',
117
- }}
118
- />
119
- </View>
120
- ```
39
+ **When NOT to Use**:
40
+ - For single-step forms (use simple headers)
41
+ - For long workflows (>7 steps, break into sections)
42
+ - For non-sequential tasks
43
+ - For simple pages (use PageHeader instead)
44
+
45
+ ## Rules
46
+
47
+ ### Required
48
+
49
+ 1. **MUST** provide a `title` prop
50
+ 2. **SHOULD** provide `subtitle` for context
51
+ 3. **MUST** keep title concise (1-2 lines max)
52
+ 4. **ALWAYS** show step indicator for multi-step workflows
53
+ 5. **SHOULD** use appropriate alignment (left for forms, center for onboarding)
54
+ 6. **MUST** have currentStep and totalSteps when showing indicator
55
+ 7. **NEVER** use too many steps (>7 is too many)
56
+
57
+ ### Step Indicator
121
58
 
122
- ## Custom Font Boyutu
59
+ 1. **Show when**: 3+ steps in workflow
60
+ 2. **Position**: Above title, centered or aligned
61
+ 3. **Format**: Dot system (filled for completed, outlined for current)
62
+ 4. **Visibility**: Always visible, don't hide on last step
63
+
64
+ ### Content Guidelines
65
+
66
+ 1. **Title**: Clear, action-oriented (e.g., "Create Account" not "Step 1")
67
+ 2. **Subtitle**: Additional context, max 1 line
68
+ 3. **Number of steps**: Ideal 3-5, max 7
69
+ 4. **Alignment**: Left for forms, center for onboarding
70
+
71
+ ### Spacing & Layout
72
+
73
+ 1. **Margin bottom**: 32px default
74
+ 2. **Padding horizontal**: 24px default
75
+ 3. **Font size**: Title 28px, subtitle 16px default
76
+ 4. **Responsive**: Adjust sizing for different screens
77
+
78
+ ## Forbidden
79
+
80
+ ❌ **NEVER** do these:
123
81
 
124
82
  ```tsx
83
+ // ❌ No title
84
+ <StepHeader
85
+ // Missing title
86
+ subtitle="This has no title"
87
+ />
88
+
89
+ // ❌ Too many steps
125
90
  <StepHeader
126
- title="Büyük Başlık"
127
- subtitle="Alt başlık"
91
+ title="Step 1"
128
92
  config={{
129
- titleFontSize: 32,
130
- subtitleFontSize: 18,
93
+ showStepIndicator: true,
94
+ currentStep: 1,
95
+ totalSteps: 15, // ❌ Too many steps
131
96
  }}
132
97
  />
133
- ```
134
98
 
135
- ## Custom Boşluk
99
+ // Title too long
100
+ <StepHeader
101
+ title="Please enter your personal profile information including your name email address phone number and physical address" // ❌ Too long
102
+ subtitle="Required information"
103
+ />
136
104
 
137
- ```tsx
105
+ // ❌ Step indicator without totalSteps
138
106
  <StepHeader
139
- title="Özel Boşluk"
140
- subtitle="Özel padding ve margin"
107
+ title="Step 1"
141
108
  config={{
142
- spacing: {
143
- marginBottom: 48,
144
- paddingHorizontal: 32,
145
- },
109
+ showStepIndicator: true,
110
+ currentStep: 1,
111
+ // Missing totalSteps
112
+ }}
113
+ />
114
+
115
+ // ❌ Wrong alignment for RTL
116
+ <StepHeader
117
+ title="مرحبا" // Arabic text
118
+ config={{
119
+ titleAlignment: 'left', // ❌ Should be right for RTL
120
+ }}
121
+ />
122
+
123
+ // ❌ Generic titles
124
+ <StepHeader
125
+ title="Step 1" // ❌ Not descriptive
126
+ config={{
127
+ showStepIndicator: true,
128
+ currentStep: 1,
129
+ totalSteps: 3,
146
130
  }}
147
131
  />
148
132
  ```
149
133
 
150
- ## Örnek Kullanımlar
134
+ ## Best Practices
151
135
 
152
136
  ### Onboarding Flow
153
137
 
138
+ ✅ **DO**:
154
139
  ```tsx
155
- export const OnboardingFlow = () => {
156
- const [currentStep, setCurrentStep] = useState(1);
157
- const steps = [
158
- {
159
- title: 'Hoş Geldiniz 👋',
160
- subtitle: 'Uygulamamıza hoş geldiniz',
161
- },
162
- {
163
- title: 'Profil Oluştur',
164
- subtitle: 'Kendiniz hakkında bilgi verin',
165
- },
166
- {
167
- title: 'İlgi Alanları',
168
- subtitle: 'İlgi alanlarınızı seçin',
169
- },
170
- {
171
- title: 'Hazır! 🎉',
172
- subtitle: 'Uygulamayı kullanmaya başlayın',
173
- },
174
- ];
175
-
176
- const currentStepData = steps[currentStep - 1];
177
-
178
- return (
179
- <ScreenLayout>
180
- <StepHeader
181
- title={currentStepData.title}
182
- subtitle={currentStepData.subtitle}
183
- config={{
184
- showStepIndicator: true,
185
- currentStep,
186
- totalSteps: steps.length,
187
- titleAlignment: 'center',
188
- }}
189
- />
190
-
191
- {/* Step content */}
192
-
193
- <View style={{ flexDirection: 'row', justifyContent: 'space-between' }}>
194
- <Button
195
- title="Geri"
196
- disabled={currentStep === 1}
197
- onPress={() => setCurrentStep(currentStep - 1)}
198
- />
199
- <Button
200
- title={currentStep === steps.length ? 'Bitir' : 'İleri'}
201
- onPress={() => {
202
- if (currentStep < steps.length) {
203
- setCurrentStep(currentStep + 1);
204
- } else {
205
- // Finish onboarding
206
- }
207
- }}
208
- />
209
- </View>
210
- </ScreenLayout>
211
- );
212
- };
140
+ <StepHeader
141
+ title="Welcome 👋"
142
+ subtitle="Let's get you set up"
143
+ config={{
144
+ showStepIndicator: true,
145
+ currentStep: 1,
146
+ totalSteps: 4,
147
+ titleAlignment: 'center',
148
+ }}
149
+ />
213
150
  ```
214
151
 
215
- ### Kayıt Formu
216
-
152
+ **DON'T**:
217
153
  ```tsx
218
- export const RegistrationForm = () => {
219
- const [step, setStep] = useState(1);
220
-
221
- return (
222
- <ScreenLayout>
223
- {step === 1 && (
224
- <>
225
- <StepHeader
226
- title="Hesap Oluştur"
227
- subtitle="E-posta adresiniz ve şifreniz ile başlayın"
228
- config={{
229
- showStepIndicator: true,
230
- currentStep: 1,
231
- totalSteps: 3,
232
- }}
233
- />
234
- {/* Email & password fields */}
235
- </>
236
- )}
237
-
238
- {step === 2 && (
239
- <>
240
- <StepHeader
241
- title="Profil Bilgileri"
242
- subtitle="Adınızı ve profil fotoğrafınızı ekleyin"
243
- config={{
244
- showStepIndicator: true,
245
- currentStep: 2,
246
- totalSteps: 3,
247
- }}
248
- />
249
- {/* Profile fields */}
250
- </>
251
- )}
252
-
253
- {step === 3 && (
254
- <>
255
- <StepHeader
256
- title="Onayla"
257
- subtitle="Bilgilerinizi kontrol edin"
258
- config={{
259
- showStepIndicator: true,
260
- currentStep: 3,
261
- totalSteps: 3,
262
- }}
263
- />
264
- {/* Confirmation */}
265
- </>
266
- )}
267
- </ScreenLayout>
268
- );
269
- };
154
+ // Generic step title
155
+ <StepHeader
156
+ title="Step 1"
157
+ config={{
158
+ showStepIndicator: true,
159
+ currentStep: 1,
160
+ totalSteps: 4,
161
+ }}
162
+ />
270
163
  ```
271
164
 
272
- ### Checkout Wizard
165
+ ### Registration Form
273
166
 
167
+ ✅ **DO**:
274
168
  ```tsx
275
- export const CheckoutWizard = () => {
276
- const [currentStep, setCurrentStep] = useState(1);
277
-
278
- const steps = [
279
- { id: 1, title: 'Teslimat', subtitle: 'Teslimat adresini seçin' },
280
- { id: 2, title: 'Ödeme', subtitle: 'Ödeme yöntemini seçin' },
281
- { id: 3, title: 'Onay', subtitle: 'Siparişi onaylayın' },
282
- ];
283
-
284
- return (
285
- <ScreenLayout>
286
- <StepHeader
287
- title={steps[currentStep - 1].title}
288
- subtitle={steps[currentStep - 1].subtitle}
289
- config={{
290
- showStepIndicator: true,
291
- currentStep,
292
- totalSteps: steps.length,
293
- }}
294
- />
295
-
296
- {/* Step content */}
297
- </ScreenLayout>
298
- );
299
- };
169
+ <StepHeader
170
+ title="Create Account"
171
+ subtitle="Start with your email and password"
172
+ config={{
173
+ showStepIndicator: true,
174
+ currentStep: 1,
175
+ totalSteps: 3,
176
+ titleAlignment: 'left',
177
+ }}
178
+ />
300
179
  ```
301
180
 
302
- ### Profil Tamamlama
181
+ ### Number of Steps
303
182
 
183
+ ✅ **DO**:
304
184
  ```tsx
305
- export const ProfileCompletion = ({ completionPercentage }) => {
306
- const totalSteps = 5;
307
- const currentStep = Math.ceil((completionPercentage / 100) * totalSteps);
308
-
309
- return (
310
- <View>
311
- <StepHeader
312
- title="Profilinizi Tamamlayın"
313
- subtitle={`${completionPercentage}% tamamlandı`}
314
- config={{
315
- showStepIndicator: true,
316
- currentStep,
317
- totalSteps,
318
- titleAlignment: 'center',
319
- }}
320
- />
321
- </View>
322
- );
323
- };
185
+ // Good: 3-5 steps
186
+ totalSteps: 4
324
187
  ```
325
188
 
326
- ### Setup Assistant
327
-
189
+ **DON'T**:
328
190
  ```tsx
329
- export const SetupAssistant = () => {
330
- const [setupStep, setSetupStep] = useState(1);
331
-
332
- const setupSteps = [
333
- { title: 'Dil Seçin', subtitle: 'Tercih ettiğiniz dili seçin' },
334
- { title: 'Bildirimler', subtitle: 'Bildirim tercihlerinizi ayarlayın' },
335
- { title: 'Gizlilik', subtitle: 'Gizlilik ayarlarınızı yapılandırın' },
336
- { title: 'Tema', subtitle: 'Uygulama temasını özelleştirin' },
337
- ];
338
-
339
- return (
340
- <ScreenLayout>
341
- <StepHeader
342
- title={setupSteps[setupStep - 1].title}
343
- subtitle={setupSteps[setupStep - 1].subtitle}
344
- config={{
345
- showStepIndicator: true,
346
- currentStep: setupStep,
347
- totalSteps: setupSteps.length,
348
- titleFontSize: 24,
349
- subtitleFontSize: 14,
350
- }}
351
- />
352
-
353
- {/* Setup content */}
354
- </ScreenLayout>
355
- );
356
- };
191
+ // Bad: Too many steps
192
+ totalSteps: 10
193
+
194
+ // Bad: Too few for indicator
195
+ totalSteps: 2
357
196
  ```
358
197
 
359
- ### Questionnaire
198
+ ### Title Length
360
199
 
200
+ ✅ **DO**:
361
201
  ```tsx
362
- export const Questionnaire = () => {
363
- const [questionIndex, setQuestionIndex] = useState(0);
364
- const questions = [
365
- { title: 'Soru 1', subtitle: 'Yaşınız nedir?' },
366
- { title: 'Soru 2', subtitle: 'Mesleğiniz nedir?' },
367
- { title: 'Soru 3', subtitle: 'İlgi alanlarınız nelerdir?' },
368
- ];
369
-
370
- return (
371
- <View>
372
- <StepHeader
373
- title={questions[questionIndex].title}
374
- subtitle={questions[questionIndex].subtitle}
375
- config={{
376
- showStepIndicator: true,
377
- currentStep: questionIndex + 1,
378
- totalSteps: questions.length,
379
- titleAlignment: 'center',
380
- spacing: {
381
- marginBottom: 24,
382
- paddingHorizontal: 16,
383
- },
384
- }}
385
- />
386
-
387
- {/* Question content */}
388
- </View>
389
- );
390
- };
202
+ // Good: Concise and clear
203
+ title="Create Profile"
204
+ title="Enter Your Details"
205
+ title="Almost Done!"
391
206
  ```
392
207
 
393
- ## Props
394
-
395
- ### StepHeaderProps
396
-
397
- | Prop | Tip | Varsayılan | Açıklama |
398
- |------|-----|------------|----------|
399
- | `title` | `string` | - **(Zorunlu)** | Ana başlık |
400
- | `subtitle` | `string` | - | Alt başlık |
401
- | `config` | `StepHeaderConfig` | `{}` | Konfigürasyon |
402
- | `style` | `ViewStyle` | - | Özel stil |
403
-
404
- ### StepHeaderConfig
405
-
406
- | Prop | Tip | Varsayılan | Açıklama |
407
- |------|-----|------------|----------|
408
- | `showStepIndicator` | `boolean` | `false` | Adım göstergesi göster |
409
- | `currentStep` | `number` | - | Mevcut adım |
410
- | `totalSteps` | `number` | - | Toplam adım sayısı |
411
- | `titleAlignment` | `'left' \| 'center' \| 'right'` | `'left'` | Başlık hizalaması |
412
- | `titleFontSize` | `number` | `28` | Başlık font boyutu |
413
- | `subtitleFontSize` | `number` | `16` | Alt başlık font boyutu |
414
- | `spacing` | `object` | - | Boşluk ayarları |
415
- | `spacing.marginBottom` | `number` | `32` | Alt boşluk |
416
- | `spacing.paddingHorizontal` | `number` | `24` | Yatay boşluk |
417
-
418
- ## Best Practices
419
-
420
- ### 1. Step Indicator Kullanımı
421
-
208
+ **DON'T**:
422
209
  ```tsx
423
- // Çok adımlı akışlarında
424
- config={{
425
- showStepIndicator: true,
426
- currentStep: 2,
427
- totalSteps: 5,
428
- }}
210
+ // Bad: Too long
211
+ title="Please Enter Your Personal Profile Information Here"
429
212
  ```
430
213
 
431
- ### 2. Hizalama Seçimi
432
-
214
+ ## AI Coding Guidelines
215
+
216
+ ### For AI Agents
217
+
218
+ When generating StepHeader components, follow these rules:
219
+
220
+ 1. **Always import from correct path**:
221
+ ```typescript
222
+ import { StepHeader } from 'react-native-design-system/src/molecules/StepHeader';
223
+ ```
224
+
225
+ 2. **Always provide a title**:
226
+ ```tsx
227
+ // ✅ Good
228
+ <StepHeader
229
+ title="创建账户"
230
+ subtitle="输入您的电子邮件和密码"
231
+ config={{
232
+ showStepIndicator: true,
233
+ currentStep: step,
234
+ totalSteps: totalSteps,
235
+ }}
236
+ />
237
+
238
+ // ❌ Bad - no title
239
+ <StepHeader
240
+ subtitle="No title provided"
241
+ />
242
+ ```
243
+
244
+ 3. **Always use descriptive titles, not step numbers**:
245
+ ```tsx
246
+ // ✅ Good - descriptive
247
+ title="Create Account"
248
+ title="Enter Profile Information"
249
+ title="Review and Confirm"
250
+
251
+ // ❌ Bad - generic
252
+ title="Step 1"
253
+ title="Step 2"
254
+ title="Step 3"
255
+ ```
256
+
257
+ 4. **Always show step indicator for multi-step workflows**:
258
+ ```tsx
259
+ // ✅ Good - with indicator
260
+ <StepHeader
261
+ title="Profile Information"
262
+ config={{
263
+ showStepIndicator: true,
264
+ currentStep: 2,
265
+ totalSteps: 4,
266
+ }}
267
+ />
268
+
269
+ // ❌ Bad - no indicator in multi-step flow
270
+ <StepHeader
271
+ title="Profile Information"
272
+ // Missing step indicator
273
+ />
274
+ ```
275
+
276
+ 5. **Always choose appropriate alignment**:
277
+ ```tsx
278
+ // ✅ Good - left for forms
279
+ config={{
280
+ titleAlignment: 'left',
281
+ }}
282
+
283
+ // ✅ Good - center for onboarding
284
+ config={{
285
+ titleAlignment: 'center',
286
+ }}
287
+
288
+ // ✅ Good - right for RTL languages
289
+ config={{
290
+ titleAlignment: 'right',
291
+ }}
292
+ ```
293
+
294
+ ### Common Patterns
295
+
296
+ #### Onboarding Step Header
433
297
  ```tsx
434
- // Form için
435
- titleAlignment: 'left'
436
-
437
- // Onboarding için
438
- titleAlignment: 'center'
439
-
440
- // RTL diller için
441
- titleAlignment: 'right'
298
+ <StepHeader
299
+ title="Welcome 👋"
300
+ subtitle="Let's get you set up in a few steps"
301
+ config={{
302
+ showStepIndicator: true,
303
+ currentStep: 1,
304
+ totalSteps: 4,
305
+ titleAlignment: 'center',
306
+ spacing: {
307
+ marginBottom: 48,
308
+ },
309
+ }}
310
+ />
442
311
  ```
443
312
 
444
- ### 3. Adım Sayısı
445
-
313
+ #### Registration Form Step Header
446
314
  ```tsx
447
- // İdeal: 3-5 adım
448
- totalSteps: 4
449
-
450
- // Çok fazla adımdan kaçının
451
- totalSteps: 10 // ❌ Kötü
315
+ <StepHeader
316
+ title="Personal Information"
317
+ subtitle="Tell us a bit about yourself"
318
+ config={{
319
+ showStepIndicator: true,
320
+ currentStep: 2,
321
+ totalSteps: 3,
322
+ titleAlignment: 'left',
323
+ }}
324
+ />
452
325
  ```
453
326
 
454
- ### 4. Başlık Uzunluğu
455
-
327
+ #### Checkout Step Header
456
328
  ```tsx
457
- // Kısa ve öz
458
- title="Profil Oluştur" // ✅ İyi
459
-
460
- // Çok uzun
461
- title="Lütfen kişisel profil bilgilerinizi buraya girin" // ❌ Kötü
329
+ <StepHeader
330
+ title="Payment Method"
331
+ subtitle="Choose how you want to pay"
332
+ config={{
333
+ showStepIndicator: true,
334
+ currentStep: 3,
335
+ totalSteps: 4,
336
+ }}
337
+ />
462
338
  ```
463
339
 
464
- ## Erişilebilirlik
465
-
466
- StepHeader, tam erişilebilirlik desteği sunar:
467
-
468
- - ✅ Screen reader desteği
469
- - ✅ Semantic heading yapısı
470
- - ✅ Focus management
471
- - ✅ Yeterli dokunma alanı
340
+ ## Props Reference
472
341
 
473
- ## Performans İpuçları
342
+ | Prop | Type | Required | Default | Description |
343
+ |------|------|----------|---------|-------------|
344
+ | `title` | `string` | **Yes** | - | Main title |
345
+ | `subtitle` | `string` | No | - | Subtitle text |
346
+ | `config` | `StepHeaderConfig` | No | `{}` | Configuration options |
347
+ | `style` | `ViewStyle` | No | - | Custom container style |
474
348
 
475
- 1. **Memoization**: Step header'ı memo edin
476
- 2. **Optimized Re-renders**: Sadece gerekli olduğunda güncelleyin
477
- 3. **Minimal Props**: Gereksiz props'tan kaçının
478
-
479
- ## İlgili Bileşenler
480
-
481
- - [`AtomicText`](../../atoms/AtomicText/README.md) - Metin bileşeni
482
- - [`BaseModal`](../BaseModal/README.md) - Modal bileşeni
483
- - [`FormField`](../FormField/README.md) - Form alanı
349
+ ### StepHeaderConfig
484
350
 
485
- ## Lisans
351
+ | Prop | Type | Default | Description |
352
+ |------|------|---------|-------------|
353
+ | `showStepIndicator` | `boolean` | `false` | Show step indicator |
354
+ | `currentStep` | `number` | - | Current step (1-based) |
355
+ | `totalSteps` | `number` | - | Total number of steps |
356
+ | `titleAlignment` | `'left' \| 'center' \| 'right'` | `'left'` | Title alignment |
357
+ | `titleFontSize` | `number` | `28` | Title font size |
358
+ | `subtitleFontSize` | `number` | `16` | Subtitle font size |
359
+ | `spacing` | `object` | - | Spacing settings |
360
+ | `spacing.marginBottom` | `number` | `32` | Bottom margin |
361
+ | `spacing.paddingHorizontal` | `number` | `24` | Horizontal padding |
362
+
363
+ ## Accessibility
364
+
365
+ - ✅ Screen reader announces title and subtitle
366
+ - ✅ Semantic heading structure (h1/h2)
367
+ - ✅ Step progress announced
368
+ - ✅ Focus management for keyboard navigation
369
+ - ✅ Sufficient color contrast
370
+
371
+ ## Performance Tips
372
+
373
+ 1. **Memoization**: Memo step header to prevent re-renders
374
+ 2. **Minimal props**: Only update when step changes
375
+ 3. **Avoid inline objects**: Define config outside render
376
+ 4. **Optimize text**: Keep titles short and concise
377
+
378
+ ## Related Components
379
+
380
+ - [`StepProgress`](../StepProgress/README.md) - Step progress bar
381
+ - [`BaseModal`](../BaseModal/README.md) - Modal for step flows
382
+ - [`FormField`](../FormField/README.md) - Form field component
383
+ - [`AtomicText`](../../atoms/AtomicText/README.md) - Text component
384
+
385
+ ## License
486
386
 
487
387
  MIT