udp-schema 0.3.0 → 1.0.0

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 (69) hide show
  1. package/dist/field-helpers.d.ts +10 -38
  2. package/dist/field-helpers.d.ts.map +1 -1
  3. package/dist/field-helpers.js +40 -66
  4. package/dist/field-helpers.js.map +1 -1
  5. package/dist/field-meta.d.ts +46 -28
  6. package/dist/field-meta.d.ts.map +1 -1
  7. package/dist/field-meta.js +304 -1988
  8. package/dist/field-meta.js.map +1 -1
  9. package/dist/index.d.ts +17 -17
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +32 -32
  12. package/dist/index.js.map +1 -1
  13. package/dist/onboarding-config.d.ts +44 -0
  14. package/dist/onboarding-config.d.ts.map +1 -0
  15. package/dist/onboarding-config.js +705 -0
  16. package/dist/onboarding-config.js.map +1 -0
  17. package/dist/progress-fields.d.ts +3 -3
  18. package/dist/progress-fields.d.ts.map +1 -1
  19. package/dist/progress-fields.js +76 -94
  20. package/dist/progress-fields.js.map +1 -1
  21. package/dist/step-01.schema.d.ts +84 -111
  22. package/dist/step-01.schema.d.ts.map +1 -1
  23. package/dist/step-01.schema.js +94 -101
  24. package/dist/step-01.schema.js.map +1 -1
  25. package/dist/step-02.schema.d.ts +31 -21
  26. package/dist/step-02.schema.d.ts.map +1 -1
  27. package/dist/step-02.schema.js +34 -27
  28. package/dist/step-02.schema.js.map +1 -1
  29. package/dist/step-03.schema.d.ts +24 -300
  30. package/dist/step-03.schema.d.ts.map +1 -1
  31. package/dist/step-03.schema.js +24 -60
  32. package/dist/step-03.schema.js.map +1 -1
  33. package/dist/step-04.schema.d.ts +56 -50
  34. package/dist/step-04.schema.d.ts.map +1 -1
  35. package/dist/step-04.schema.js +48 -43
  36. package/dist/step-04.schema.js.map +1 -1
  37. package/dist/step-05.schema.d.ts +13 -52
  38. package/dist/step-05.schema.d.ts.map +1 -1
  39. package/dist/step-05.schema.js +19 -40
  40. package/dist/step-05.schema.js.map +1 -1
  41. package/dist/step-06.schema.d.ts +101 -117
  42. package/dist/step-06.schema.d.ts.map +1 -1
  43. package/dist/step-06.schema.js +70 -75
  44. package/dist/step-06.schema.js.map +1 -1
  45. package/dist/step-07.schema.d.ts +44 -95
  46. package/dist/step-07.schema.d.ts.map +1 -1
  47. package/dist/step-07.schema.js +51 -78
  48. package/dist/step-07.schema.js.map +1 -1
  49. package/dist/step-08.schema.d.ts +31 -44
  50. package/dist/step-08.schema.d.ts.map +1 -1
  51. package/dist/step-08.schema.js +30 -47
  52. package/dist/step-08.schema.js.map +1 -1
  53. package/dist/step-09.schema.d.ts +48 -85
  54. package/dist/step-09.schema.d.ts.map +1 -1
  55. package/dist/step-09.schema.js +42 -120
  56. package/dist/step-09.schema.js.map +1 -1
  57. package/dist/step-10.schema.d.ts +32 -86
  58. package/dist/step-10.schema.d.ts.map +1 -1
  59. package/dist/step-10.schema.js +44 -120
  60. package/dist/step-10.schema.js.map +1 -1
  61. package/dist/step-11.schema.d.ts +36 -92
  62. package/dist/step-11.schema.d.ts.map +1 -1
  63. package/dist/step-11.schema.js +32 -111
  64. package/dist/step-11.schema.js.map +1 -1
  65. package/dist/step-12.schema.d.ts +56 -93
  66. package/dist/step-12.schema.d.ts.map +1 -1
  67. package/dist/step-12.schema.js +77 -133
  68. package/dist/step-12.schema.js.map +1 -1
  69. package/package.json +1 -1
@@ -0,0 +1,705 @@
1
+ /**
2
+ * UDP Onboarding Field Configuration
3
+ * ====================================
4
+ * Single source of truth for all per-field onboarding metadata.
5
+ * Both frontend and backend import this.
6
+ *
7
+ * IMPORTANT: All string properties (title, subtitle, successMessage,
8
+ * step group label) are i18n KEYS, not display text. The frontend resolves
9
+ * them via useTranslations("udpOnboarding") → t(config.title).
10
+ *
11
+ * Translation files:
12
+ * - messages/en/udp-onboarding.json (English)
13
+ * - messages/hi/udp-onboarding.json (Hindi)
14
+ *
15
+ * @module udp-schema/onboarding-config
16
+ */
17
+ // ─── Per-field onboarding metadata ──────────────────────────────────────────
18
+ export const UDP_ONBOARDING_FIELDS = {
19
+ // ── Step 1: Profile ──
20
+ firstName: {
21
+ title: 'firstName.title',
22
+ subtitle: 'firstName.subtitle',
23
+ successMessage: 'firstName.success',
24
+ required: true,
25
+ },
26
+ middleName: {
27
+ title: 'middleName.title',
28
+ subtitle: 'middleName.subtitle',
29
+ successMessage: 'middleName.success',
30
+ required: false,
31
+ },
32
+ lastName: {
33
+ title: 'lastName.title',
34
+ subtitle: 'lastName.subtitle',
35
+ successMessage: 'lastName.success',
36
+ required: true,
37
+ },
38
+ gender: {
39
+ title: 'gender.title',
40
+ subtitle: 'gender.subtitle',
41
+ successMessage: 'gender.success',
42
+ required: true,
43
+ },
44
+ dateOfBirth: {
45
+ title: 'dateOfBirth.title',
46
+ subtitle: 'dateOfBirth.subtitle',
47
+ successMessage: 'dateOfBirth.success',
48
+ required: true,
49
+ },
50
+ whatsappNumber: {
51
+ title: 'whatsappNumber.title',
52
+ subtitle: 'whatsappNumber.subtitle',
53
+ successMessage: 'whatsappNumber.success',
54
+ required: false,
55
+ },
56
+ primaryLanguage: {
57
+ title: 'primaryLanguage.title',
58
+ subtitle: 'primaryLanguage.subtitle',
59
+ successMessage: 'primaryLanguage.success',
60
+ required: true,
61
+ },
62
+ secondaryLanguages: {
63
+ title: 'secondaryLanguages.title',
64
+ subtitle: 'secondaryLanguages.subtitle',
65
+ successMessage: 'secondaryLanguages.success',
66
+ required: false,
67
+ },
68
+ familyReligion: {
69
+ title: 'familyReligion.title',
70
+ subtitle: 'familyReligion.subtitle',
71
+ successMessage: 'familyReligion.success',
72
+ required: true,
73
+ },
74
+ personalReligion: {
75
+ title: 'personalReligion.title',
76
+ subtitle: 'personalReligion.subtitle',
77
+ successMessage: 'personalReligion.success',
78
+ required: false,
79
+ },
80
+ reservationStatus: {
81
+ title: 'reservationStatus.title',
82
+ subtitle: 'reservationStatus.subtitle',
83
+ successMessage: 'reservationStatus.success',
84
+ required: true,
85
+ },
86
+ minorityStatus: {
87
+ title: 'minorityStatus.title',
88
+ subtitle: 'minorityStatus.subtitle',
89
+ successMessage: 'minorityStatus.success',
90
+ required: true,
91
+ },
92
+ // ── Step 2: Political Association & History ──
93
+ politicalSpectrum: {
94
+ title: 'politicalSpectrum.title',
95
+ subtitle: 'politicalSpectrum.subtitle',
96
+ successMessage: 'politicalSpectrum.success',
97
+ required: false,
98
+ },
99
+ selfPartyAssociation: {
100
+ title: 'selfPartyAssociation.title',
101
+ subtitle: 'selfPartyAssociation.subtitle',
102
+ successMessage: 'selfPartyAssociation.success',
103
+ required: false,
104
+ },
105
+ familyPartyAssociation: {
106
+ title: 'familyPartyAssociation.title',
107
+ subtitle: 'familyPartyAssociation.subtitle',
108
+ successMessage: 'familyPartyAssociation.success',
109
+ required: false,
110
+ },
111
+ publicOfficeAndElections: {
112
+ title: 'publicOfficeAndElections.title',
113
+ subtitle: 'publicOfficeAndElections.subtitle',
114
+ successMessage: 'publicOfficeAndElections.success',
115
+ required: false,
116
+ },
117
+ networkAndCivicEngagement: {
118
+ title: 'networkAndCivicEngagement.title',
119
+ subtitle: 'networkAndCivicEngagement.subtitle',
120
+ successMessage: 'networkAndCivicEngagement.success',
121
+ required: false,
122
+ },
123
+ // ── Step 3: Electoral Behaviour ──
124
+ epicNumber: {
125
+ title: 'epicNumber.title',
126
+ subtitle: 'epicNumber.subtitle',
127
+ successMessage: 'epicNumber.success',
128
+ required: false,
129
+ },
130
+ willVoteThisTime: {
131
+ title: 'willVoteThisTime.title',
132
+ subtitle: 'willVoteThisTime.subtitle',
133
+ successMessage: 'willVoteThisTime.success',
134
+ required: false,
135
+ },
136
+ didVoteLastTime: {
137
+ title: 'didVoteLastTime.title',
138
+ subtitle: 'didVoteLastTime.subtitle',
139
+ successMessage: 'didVoteLastTime.success',
140
+ required: false,
141
+ },
142
+ votingFrequency: {
143
+ title: 'votingFrequency.title',
144
+ subtitle: 'votingFrequency.subtitle',
145
+ successMessage: 'votingFrequency.success',
146
+ required: false,
147
+ },
148
+ primaryVotingIssues: {
149
+ title: 'primaryVotingIssues.title',
150
+ subtitle: 'primaryVotingIssues.subtitle',
151
+ successMessage: 'primaryVotingIssues.success',
152
+ required: false,
153
+ },
154
+ // ── Step 4: Leadership & Ambitions ──
155
+ participateInRevolution: {
156
+ title: 'participateInRevolution.title',
157
+ subtitle: 'participateInRevolution.subtitle',
158
+ successMessage: 'participateInRevolution.success',
159
+ required: false,
160
+ },
161
+ desiredPoliticalPosition: {
162
+ title: 'desiredPoliticalPosition.title',
163
+ subtitle: 'desiredPoliticalPosition.subtitle',
164
+ successMessage: 'desiredPoliticalPosition.success',
165
+ required: false,
166
+ },
167
+ leadershipSkillset: {
168
+ title: 'leadershipSkillset.title',
169
+ subtitle: 'leadershipSkillset.subtitle',
170
+ successMessage: 'leadershipSkillset.success',
171
+ required: false,
172
+ },
173
+ politicalExposure: {
174
+ title: 'politicalExposure.title',
175
+ subtitle: 'politicalExposure.subtitle',
176
+ successMessage: 'politicalExposure.success',
177
+ required: false,
178
+ },
179
+ comfortWithVisibility: {
180
+ title: 'comfortWithVisibility.title',
181
+ subtitle: 'comfortWithVisibility.subtitle',
182
+ successMessage: 'comfortWithVisibility.success',
183
+ required: false,
184
+ },
185
+ socialInfluenceLevel: {
186
+ title: 'socialInfluenceLevel.title',
187
+ subtitle: 'socialInfluenceLevel.subtitle',
188
+ successMessage: 'socialInfluenceLevel.success',
189
+ required: false,
190
+ },
191
+ pastExperience: {
192
+ title: 'pastExperience.title',
193
+ subtitle: 'pastExperience.subtitle',
194
+ successMessage: 'pastExperience.success',
195
+ required: false,
196
+ },
197
+ changesYouWantToBring: {
198
+ title: 'changesYouWantToBring.title',
199
+ subtitle: 'changesYouWantToBring.subtitle',
200
+ successMessage: 'changesYouWantToBring.success',
201
+ required: false,
202
+ },
203
+ // ── Step 5: Psychological Assessment ──
204
+ mbtiType: {
205
+ title: 'mbtiType.title',
206
+ subtitle: 'mbtiType.subtitle',
207
+ successMessage: 'mbtiType.success',
208
+ required: false,
209
+ },
210
+ oceanScores: {
211
+ title: 'oceanScores.title',
212
+ subtitle: 'oceanScores.subtitle',
213
+ successMessage: 'oceanScores.success',
214
+ required: false,
215
+ },
216
+ // ── Step 6: Education ──
217
+ highestQualification: {
218
+ title: 'highestQualification.title',
219
+ subtitle: 'highestQualification.subtitle',
220
+ successMessage: 'highestQualification.success',
221
+ required: true,
222
+ },
223
+ education10th: {
224
+ title: 'education10th.title',
225
+ subtitle: 'education10th.subtitle',
226
+ successMessage: 'education10th.success',
227
+ required: false,
228
+ },
229
+ education12th: {
230
+ title: 'education12th.title',
231
+ subtitle: 'education12th.subtitle',
232
+ successMessage: 'education12th.success',
233
+ required: false,
234
+ },
235
+ diplomas: {
236
+ title: 'diplomas.title',
237
+ subtitle: 'diplomas.subtitle',
238
+ successMessage: 'diplomas.success',
239
+ required: false,
240
+ },
241
+ graduations: {
242
+ title: 'graduations.title',
243
+ subtitle: 'graduations.subtitle',
244
+ successMessage: 'graduations.success',
245
+ required: false,
246
+ },
247
+ postGraduations: {
248
+ title: 'postGraduations.title',
249
+ subtitle: 'postGraduations.subtitle',
250
+ successMessage: 'postGraduations.success',
251
+ required: false,
252
+ },
253
+ doctorates: {
254
+ title: 'doctorates.title',
255
+ subtitle: 'doctorates.subtitle',
256
+ successMessage: 'doctorates.success',
257
+ required: false,
258
+ },
259
+ postDoctorates: {
260
+ title: 'postDoctorates.title',
261
+ subtitle: 'postDoctorates.subtitle',
262
+ successMessage: 'postDoctorates.success',
263
+ required: false,
264
+ },
265
+ otherCertificates: {
266
+ title: 'otherCertificates.title',
267
+ subtitle: 'otherCertificates.subtitle',
268
+ successMessage: 'otherCertificates.success',
269
+ required: false,
270
+ },
271
+ educationNotes: {
272
+ title: 'educationNotes.title',
273
+ subtitle: 'educationNotes.subtitle',
274
+ successMessage: 'educationNotes.success',
275
+ required: false,
276
+ },
277
+ // ── Step 7: Employment & Occupation ──
278
+ employmentStatus: {
279
+ title: 'employmentStatus.title',
280
+ subtitle: 'employmentStatus.subtitle',
281
+ successMessage: 'employmentStatus.success',
282
+ required: false,
283
+ },
284
+ occupation: {
285
+ title: 'occupation.title',
286
+ subtitle: 'occupation.subtitle',
287
+ successMessage: 'occupation.success',
288
+ required: false,
289
+ },
290
+ workShift: {
291
+ title: 'workShift.title',
292
+ subtitle: 'workShift.subtitle',
293
+ successMessage: 'workShift.success',
294
+ required: false,
295
+ },
296
+ comfortableWithShift: {
297
+ title: 'comfortableWithShift.title',
298
+ subtitle: 'comfortableWithShift.subtitle',
299
+ successMessage: 'comfortableWithShift.success',
300
+ required: false,
301
+ },
302
+ desiredShift: {
303
+ title: 'desiredShift.title',
304
+ subtitle: 'desiredShift.subtitle',
305
+ successMessage: 'desiredShift.success',
306
+ required: false,
307
+ },
308
+ incomeRange: {
309
+ title: 'incomeRange.title',
310
+ subtitle: 'incomeRange.subtitle',
311
+ successMessage: 'incomeRange.success',
312
+ required: false,
313
+ },
314
+ dreamOccupation: {
315
+ title: 'dreamOccupation.title',
316
+ subtitle: 'dreamOccupation.subtitle',
317
+ successMessage: 'dreamOccupation.success',
318
+ required: false,
319
+ },
320
+ // ── Step 8: Neurodiversity ──
321
+ neurodiverseIdentity: {
322
+ title: 'neurodiverseIdentity.title',
323
+ subtitle: 'neurodiverseIdentity.subtitle',
324
+ successMessage: 'neurodiverseIdentity.success',
325
+ required: false,
326
+ },
327
+ conditions: {
328
+ title: 'conditions.title',
329
+ subtitle: 'conditions.subtitle',
330
+ successMessage: 'conditions.success',
331
+ required: false,
332
+ },
333
+ sensoryPreferences: {
334
+ title: 'sensoryPreferences.title',
335
+ subtitle: 'sensoryPreferences.subtitle',
336
+ successMessage: 'sensoryPreferences.success',
337
+ required: false,
338
+ },
339
+ learningStyle: {
340
+ title: 'learningStyle.title',
341
+ subtitle: 'learningStyle.subtitle',
342
+ successMessage: 'learningStyle.success',
343
+ required: false,
344
+ },
345
+ communicationPreference: {
346
+ title: 'communicationPreference.title',
347
+ subtitle: 'communicationPreference.subtitle',
348
+ successMessage: 'communicationPreference.success',
349
+ required: false,
350
+ },
351
+ supportNeeds: {
352
+ title: 'supportNeeds.title',
353
+ subtitle: 'supportNeeds.subtitle',
354
+ successMessage: 'supportNeeds.success',
355
+ required: false,
356
+ },
357
+ // ── Step 9: Health & Lifestyle ──
358
+ disabilityStatus: {
359
+ title: 'disabilityStatus.title',
360
+ subtitle: 'disabilityStatus.subtitle',
361
+ successMessage: 'disabilityStatus.success',
362
+ required: false,
363
+ },
364
+ generalHealth: {
365
+ title: 'generalHealth.title',
366
+ subtitle: 'generalHealth.subtitle',
367
+ successMessage: 'generalHealth.success',
368
+ required: false,
369
+ },
370
+ healthInsurance: {
371
+ title: 'healthInsurance.title',
372
+ subtitle: 'healthInsurance.subtitle',
373
+ successMessage: 'healthInsurance.success',
374
+ required: false,
375
+ },
376
+ diet: {
377
+ title: 'diet.title',
378
+ subtitle: 'diet.subtitle',
379
+ successMessage: 'diet.success',
380
+ required: false,
381
+ },
382
+ physicalActivity: {
383
+ title: 'physicalActivity.title',
384
+ subtitle: 'physicalActivity.subtitle',
385
+ successMessage: 'physicalActivity.success',
386
+ required: false,
387
+ },
388
+ sleepQuality: {
389
+ title: 'sleepQuality.title',
390
+ subtitle: 'sleepQuality.subtitle',
391
+ successMessage: 'sleepQuality.success',
392
+ required: false,
393
+ },
394
+ substanceUse: {
395
+ title: 'substanceUse.title',
396
+ subtitle: 'substanceUse.subtitle',
397
+ successMessage: 'substanceUse.success',
398
+ required: false,
399
+ },
400
+ stressLevel: {
401
+ title: 'stressLevel.title',
402
+ subtitle: 'stressLevel.subtitle',
403
+ successMessage: 'stressLevel.success',
404
+ required: false,
405
+ },
406
+ // ── Step 10: World View & Experience ──
407
+ viewOnAnimalCruelty: {
408
+ title: 'viewOnAnimalCruelty.title',
409
+ subtitle: 'viewOnAnimalCruelty.subtitle',
410
+ successMessage: 'viewOnAnimalCruelty.success',
411
+ required: false,
412
+ },
413
+ viewOnLgbtqStatements: {
414
+ title: 'viewOnLgbtqStatements.title',
415
+ subtitle: 'viewOnLgbtqStatements.subtitle',
416
+ successMessage: 'viewOnLgbtqStatements.success',
417
+ required: false,
418
+ },
419
+ viewOnLgbtqOpinion: {
420
+ title: 'viewOnLgbtqOpinion.title',
421
+ subtitle: 'viewOnLgbtqOpinion.subtitle',
422
+ successMessage: 'viewOnLgbtqOpinion.success',
423
+ required: false,
424
+ },
425
+ viewOnTransgenderInclusion: {
426
+ title: 'viewOnTransgenderInclusion.title',
427
+ subtitle: 'viewOnTransgenderInclusion.subtitle',
428
+ successMessage: 'viewOnTransgenderInclusion.success',
429
+ required: false,
430
+ },
431
+ viewOnTransgenderOpinion: {
432
+ title: 'viewOnTransgenderOpinion.title',
433
+ subtitle: 'viewOnTransgenderOpinion.subtitle',
434
+ successMessage: 'viewOnTransgenderOpinion.success',
435
+ required: false,
436
+ },
437
+ facingCasteDiscrimination: {
438
+ title: 'facingCasteDiscrimination.title',
439
+ subtitle: 'facingCasteDiscrimination.subtitle',
440
+ successMessage: 'facingCasteDiscrimination.success',
441
+ required: false,
442
+ },
443
+ casteDiscriminationPlaces: {
444
+ title: 'casteDiscriminationPlaces.title',
445
+ subtitle: 'casteDiscriminationPlaces.subtitle',
446
+ successMessage: 'casteDiscriminationPlaces.success',
447
+ required: false,
448
+ },
449
+ viewOnGenderEquality: {
450
+ title: 'viewOnGenderEquality.title',
451
+ subtitle: 'viewOnGenderEquality.subtitle',
452
+ successMessage: 'viewOnGenderEquality.success',
453
+ required: false,
454
+ },
455
+ // ── Step 11: Residence & Address ──
456
+ currentAddress: {
457
+ title: 'currentAddress.title',
458
+ subtitle: 'currentAddress.subtitle',
459
+ successMessage: 'currentAddress.success',
460
+ required: true,
461
+ },
462
+ permanentAddress: {
463
+ title: 'permanentAddress.title',
464
+ subtitle: 'permanentAddress.subtitle',
465
+ successMessage: 'permanentAddress.success',
466
+ required: false,
467
+ },
468
+ homeNativePlace: {
469
+ title: 'homeNativePlace.title',
470
+ subtitle: 'homeNativePlace.subtitle',
471
+ successMessage: 'homeNativePlace.success',
472
+ required: false,
473
+ },
474
+ ancestralPlace: {
475
+ title: 'ancestralPlace.title',
476
+ subtitle: 'ancestralPlace.subtitle',
477
+ successMessage: 'ancestralPlace.success',
478
+ required: false,
479
+ },
480
+ // ── Step 12: Household & Economic Profile ──
481
+ maritalStatus: {
482
+ title: 'maritalStatus.title',
483
+ subtitle: 'maritalStatus.subtitle',
484
+ successMessage: 'maritalStatus.success',
485
+ required: false,
486
+ },
487
+ familyMembers: {
488
+ title: 'familyMembers.title',
489
+ subtitle: 'familyMembers.subtitle',
490
+ successMessage: 'familyMembers.success',
491
+ required: false,
492
+ },
493
+ numberOfDependents: {
494
+ title: 'numberOfDependents.title',
495
+ subtitle: 'numberOfDependents.subtitle',
496
+ successMessage: 'numberOfDependents.success',
497
+ required: false,
498
+ },
499
+ housingType: {
500
+ title: 'housingType.title',
501
+ subtitle: 'housingType.subtitle',
502
+ successMessage: 'housingType.success',
503
+ required: false,
504
+ },
505
+ householdIncome: {
506
+ title: 'householdIncome.title',
507
+ subtitle: 'householdIncome.subtitle',
508
+ successMessage: 'householdIncome.success',
509
+ required: false,
510
+ },
511
+ bplCard: {
512
+ title: 'bplCard.title',
513
+ subtitle: 'bplCard.subtitle',
514
+ successMessage: 'bplCard.success',
515
+ required: false,
516
+ },
517
+ digitalAccess: {
518
+ title: 'digitalAccess.title',
519
+ subtitle: 'digitalAccess.subtitle',
520
+ successMessage: 'digitalAccess.success',
521
+ required: false,
522
+ },
523
+ migrationStatus: {
524
+ title: 'migrationStatus.title',
525
+ subtitle: 'migrationStatus.subtitle',
526
+ successMessage: 'migrationStatus.success',
527
+ required: false,
528
+ },
529
+ landOwnership: {
530
+ title: 'landOwnership.title',
531
+ subtitle: 'landOwnership.subtitle',
532
+ successMessage: 'landOwnership.success',
533
+ required: false,
534
+ },
535
+ primaryIncomeSource: {
536
+ title: 'primaryIncomeSource.title',
537
+ subtitle: 'primaryIncomeSource.subtitle',
538
+ successMessage: 'primaryIncomeSource.success',
539
+ required: false,
540
+ },
541
+ };
542
+ // ─── Step grouping ──────────────────────────────────────────────────────────
543
+ export const UDP_ONBOARDING_STEP_GROUPS = [
544
+ {
545
+ label: 'steps.profile',
546
+ icon: 'User',
547
+ fields: [
548
+ 'firstName',
549
+ 'middleName',
550
+ 'lastName',
551
+ 'gender',
552
+ 'dateOfBirth',
553
+ 'whatsappNumber',
554
+ 'primaryLanguage',
555
+ 'secondaryLanguages',
556
+ 'familyReligion',
557
+ 'personalReligion',
558
+ 'reservationStatus',
559
+ 'minorityStatus',
560
+ ],
561
+ },
562
+ {
563
+ label: 'steps.politicalAssociation',
564
+ icon: 'Flag',
565
+ fields: [
566
+ 'politicalSpectrum',
567
+ 'selfPartyAssociation',
568
+ 'familyPartyAssociation',
569
+ 'publicOfficeAndElections',
570
+ 'networkAndCivicEngagement',
571
+ ],
572
+ },
573
+ {
574
+ label: 'steps.electoralBehaviour',
575
+ icon: 'Vote',
576
+ fields: [
577
+ 'epicNumber',
578
+ 'willVoteThisTime',
579
+ 'didVoteLastTime',
580
+ 'votingFrequency',
581
+ 'primaryVotingIssues',
582
+ ],
583
+ },
584
+ {
585
+ label: 'steps.leadershipAmbitions',
586
+ icon: 'Crown',
587
+ fields: [
588
+ 'participateInRevolution',
589
+ 'desiredPoliticalPosition',
590
+ 'leadershipSkillset',
591
+ 'politicalExposure',
592
+ 'comfortWithVisibility',
593
+ 'socialInfluenceLevel',
594
+ 'pastExperience',
595
+ 'changesYouWantToBring',
596
+ ],
597
+ },
598
+ {
599
+ label: 'steps.psychologicalAssessment',
600
+ icon: 'Brain',
601
+ fields: ['mbtiType', 'oceanScores'],
602
+ },
603
+ {
604
+ label: 'steps.education',
605
+ icon: 'GraduationCap',
606
+ fields: [
607
+ 'highestQualification',
608
+ 'education10th',
609
+ 'education12th',
610
+ 'diplomas',
611
+ 'graduations',
612
+ 'postGraduations',
613
+ 'doctorates',
614
+ 'postDoctorates',
615
+ 'otherCertificates',
616
+ 'educationNotes',
617
+ ],
618
+ },
619
+ {
620
+ label: 'steps.employment',
621
+ icon: 'Briefcase',
622
+ fields: [
623
+ 'employmentStatus',
624
+ 'occupation',
625
+ 'workShift',
626
+ 'comfortableWithShift',
627
+ 'desiredShift',
628
+ 'incomeRange',
629
+ 'dreamOccupation',
630
+ ],
631
+ },
632
+ {
633
+ label: 'steps.neurodiversity',
634
+ icon: 'Sparkles',
635
+ fields: [
636
+ 'neurodiverseIdentity',
637
+ 'conditions',
638
+ 'sensoryPreferences',
639
+ 'learningStyle',
640
+ 'communicationPreference',
641
+ 'supportNeeds',
642
+ ],
643
+ },
644
+ {
645
+ label: 'steps.healthLifestyle',
646
+ icon: 'HeartPulse',
647
+ fields: [
648
+ 'disabilityStatus',
649
+ 'generalHealth',
650
+ 'healthInsurance',
651
+ 'diet',
652
+ 'physicalActivity',
653
+ 'sleepQuality',
654
+ 'substanceUse',
655
+ 'stressLevel',
656
+ ],
657
+ },
658
+ {
659
+ label: 'steps.worldView',
660
+ icon: 'Globe',
661
+ fields: [
662
+ 'viewOnAnimalCruelty',
663
+ 'viewOnLgbtqStatements',
664
+ 'viewOnLgbtqOpinion',
665
+ 'viewOnTransgenderInclusion',
666
+ 'viewOnTransgenderOpinion',
667
+ 'facingCasteDiscrimination',
668
+ 'casteDiscriminationPlaces',
669
+ 'viewOnGenderEquality',
670
+ ],
671
+ },
672
+ {
673
+ label: 'steps.residence',
674
+ icon: 'MapPin',
675
+ fields: ['currentAddress', 'permanentAddress', 'homeNativePlace', 'ancestralPlace'],
676
+ },
677
+ {
678
+ label: 'steps.household',
679
+ icon: 'Home',
680
+ fields: [
681
+ 'maritalStatus',
682
+ 'familyMembers',
683
+ 'numberOfDependents',
684
+ 'housingType',
685
+ 'householdIncome',
686
+ 'bplCard',
687
+ 'digitalAccess',
688
+ 'migrationStatus',
689
+ 'landOwnership',
690
+ 'primaryIncomeSource',
691
+ ],
692
+ },
693
+ ];
694
+ // ─── Helpers ─────────────────────────────────────────────────────────────────
695
+ /** Get onboarding config for a single field. */
696
+ export function getUdpOnboardingFieldConfig(fieldKey) {
697
+ if (!fieldKey)
698
+ return undefined;
699
+ return UDP_ONBOARDING_FIELDS[fieldKey];
700
+ }
701
+ /** Total number of main steps. */
702
+ export const UDP_TOTAL_MAIN_STEPS = UDP_ONBOARDING_STEP_GROUPS.length;
703
+ /** Total number of sub-steps across all main steps. */
704
+ export const UDP_TOTAL_SUB_STEPS = UDP_ONBOARDING_STEP_GROUPS.reduce((sum, g) => sum + g.fields.length, 0);
705
+ //# sourceMappingURL=onboarding-config.js.map