udp-schema 2.8.0 → 2.9.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 (35) hide show
  1. package/dist/helpers.d.ts.map +1 -1
  2. package/dist/helpers.js +10 -3
  3. package/dist/helpers.js.map +1 -1
  4. package/dist/index.d.ts +1 -1
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +1 -1
  7. package/dist/index.js.map +1 -1
  8. package/dist/onboarding-config.d.ts.map +1 -1
  9. package/dist/onboarding-config.js +14 -0
  10. package/dist/onboarding-config.js.map +1 -1
  11. package/dist/onboarding-form.d.ts +48 -1
  12. package/dist/onboarding-form.d.ts.map +1 -1
  13. package/dist/profile-fields/01-profile.d.ts.map +1 -1
  14. package/dist/profile-fields/01-profile.js +10 -2
  15. package/dist/profile-fields/01-profile.js.map +1 -1
  16. package/dist/profile-fields/02-political.d.ts +188 -2
  17. package/dist/profile-fields/02-political.d.ts.map +1 -1
  18. package/dist/profile-fields/02-political.js +146 -4
  19. package/dist/profile-fields/02-political.js.map +1 -1
  20. package/dist/profile-fields/index.d.ts +1 -1
  21. package/dist/profile-fields/index.d.ts.map +1 -1
  22. package/dist/profile-fields/index.js +1 -1
  23. package/dist/profile-fields/index.js.map +1 -1
  24. package/dist/profile-fields/types.d.ts +9 -1
  25. package/dist/profile-fields/types.d.ts.map +1 -1
  26. package/dist/profile-fields/types.js.map +1 -1
  27. package/dist/progress-fields.d.ts.map +1 -1
  28. package/dist/progress-fields.js +2 -0
  29. package/dist/progress-fields.js.map +1 -1
  30. package/dist/step-02.schema.d.ts +47 -0
  31. package/dist/step-02.schema.d.ts.map +1 -1
  32. package/dist/step-02.schema.js +56 -4
  33. package/dist/step-02.schema.js.map +1 -1
  34. package/dist/step-12.schema.d.ts +1 -1
  35. package/package.json +1 -1
@@ -39,6 +39,11 @@ export declare const politicalSpectrumOptions: readonly [{
39
39
  readonly value: "prefer_not_to_say";
40
40
  readonly label: "Prefer not to say";
41
41
  }];
42
+ /**
43
+ * Indian political parties — exhaustive list of nationally- or state-recognized
44
+ * parties active as of 2026. Ordered roughly by national visibility; state /
45
+ * regional parties follow. Includes post-2023 splits (NCP-SP, Shiv Sena UBT).
46
+ */
42
47
  export declare const partyOptions: readonly [{
43
48
  readonly value: "bjp";
44
49
  readonly label: "BJP";
@@ -65,13 +70,25 @@ export declare const partyOptions: readonly [{
65
70
  readonly label: "AIADMK";
66
71
  }, {
67
72
  readonly value: "ncp";
68
- readonly label: "NCP";
73
+ readonly label: "NCP (Ajit Pawar)";
74
+ }, {
75
+ readonly value: "ncp_sp";
76
+ readonly label: "NCP (Sharad Pawar)";
69
77
  }, {
70
78
  readonly value: "shiv_sena";
71
- readonly label: "Shiv Sena";
79
+ readonly label: "Shiv Sena (Shinde)";
80
+ }, {
81
+ readonly value: "shiv_sena_ubt";
82
+ readonly label: "Shiv Sena (UBT)";
83
+ }, {
84
+ readonly value: "aimim";
85
+ readonly label: "AIMIM";
72
86
  }, {
73
87
  readonly value: "jdu";
74
88
  readonly label: "JD(U)";
89
+ }, {
90
+ readonly value: "jds";
91
+ readonly label: "JD(S)";
75
92
  }, {
76
93
  readonly value: "rjd";
77
94
  readonly label: "RJD";
@@ -87,12 +104,42 @@ export declare const partyOptions: readonly [{
87
104
  }, {
88
105
  readonly value: "tdp";
89
106
  readonly label: "TDP";
107
+ }, {
108
+ readonly value: "brs";
109
+ readonly label: "BRS (Bharat Rashtra Samithi)";
90
110
  }, {
91
111
  readonly value: "bjd";
92
112
  readonly label: "BJD";
93
113
  }, {
94
114
  readonly value: "jmm";
95
115
  readonly label: "JMM";
116
+ }, {
117
+ readonly value: "sad";
118
+ readonly label: "Shiromani Akali Dal (SAD)";
119
+ }, {
120
+ readonly value: "rld";
121
+ readonly label: "Rashtriya Lok Dal (RLD)";
122
+ }, {
123
+ readonly value: "aiudf";
124
+ readonly label: "AIUDF";
125
+ }, {
126
+ readonly value: "jkn";
127
+ readonly label: "J&K National Conference";
128
+ }, {
129
+ readonly value: "inld";
130
+ readonly label: "Indian National Lok Dal (INLD)";
131
+ }, {
132
+ readonly value: "iuml";
133
+ readonly label: "Indian Union Muslim League (IUML)";
134
+ }, {
135
+ readonly value: "mns";
136
+ readonly label: "Maharashtra Navnirman Sena (MNS)";
137
+ }, {
138
+ readonly value: "agp";
139
+ readonly label: "Asom Gana Parishad (AGP)";
140
+ }, {
141
+ readonly value: "independent";
142
+ readonly label: "Independent candidate";
96
143
  }, {
97
144
  readonly value: "none";
98
145
  readonly label: "No party affiliation";
@@ -103,12 +150,21 @@ export declare const partyOptions: readonly [{
103
150
  readonly value: "prefer_not_to_say";
104
151
  readonly label: "Prefer not to say";
105
152
  }];
153
+ /**
154
+ * Civic-engagement categories — expanded to cover organizational forms
155
+ * common in Indian political/social life, including ideological networks
156
+ * (RSS / Sangh), farmers' bodies, women's collectives, student unions,
157
+ * and party youth wings.
158
+ */
106
159
  export declare const civicEngagementOptions: readonly [{
107
160
  readonly value: "ngo";
108
161
  readonly label: "NGO / Non-profit";
109
162
  }, {
110
163
  readonly value: "trade_union";
111
164
  readonly label: "Trade Union";
165
+ }, {
166
+ readonly value: "farmers_organization";
167
+ readonly label: "Farmers' Organization / Kisan Sangathan";
112
168
  }, {
113
169
  readonly value: "cooperative";
114
170
  readonly label: "Cooperative Society";
@@ -118,9 +174,21 @@ export declare const civicEngagementOptions: readonly [{
118
174
  }, {
119
175
  readonly value: "self_help_group";
120
176
  readonly label: "Self Help Group (SHG)";
177
+ }, {
178
+ readonly value: "womens_collective";
179
+ readonly label: "Women's Collective / Mahila Mandal";
121
180
  }, {
122
181
  readonly value: "youth_club";
123
182
  readonly label: "Youth Club";
183
+ }, {
184
+ readonly value: "student_union";
185
+ readonly label: "Student Union";
186
+ }, {
187
+ readonly value: "political_party_youth_wing";
188
+ readonly label: "Political Party Youth Wing (BJYM / IYC / etc.)";
189
+ }, {
190
+ readonly value: "rss_swayamsevak";
191
+ readonly label: "RSS / Swayamsevak (Sangh network)";
124
192
  }, {
125
193
  readonly value: "religious_organization";
126
194
  readonly label: "Religious Organization";
@@ -130,12 +198,130 @@ export declare const civicEngagementOptions: readonly [{
130
198
  }, {
131
199
  readonly value: "professional_body";
132
200
  readonly label: "Professional Body";
201
+ }, {
202
+ readonly value: "environmental_group";
203
+ readonly label: "Environmental Group";
204
+ }, {
205
+ readonly value: "cultural_association";
206
+ readonly label: "Cultural Association";
207
+ }, {
208
+ readonly value: "alumni_association";
209
+ readonly label: "Alumni Association";
210
+ }, {
211
+ readonly value: "none";
212
+ readonly label: "None";
213
+ }, {
214
+ readonly value: "other";
215
+ readonly label: "Other";
216
+ }];
217
+ /**
218
+ * Nature of the respondent's association with their political party.
219
+ * Differentiates card-carrying members from sympathizers and office-bearers.
220
+ */
221
+ export declare const partyAssociationRoleOptions: readonly [{
222
+ readonly value: "member";
223
+ readonly label: "Member";
224
+ readonly description: "Primary / card-carrying member of the party";
225
+ }, {
226
+ readonly value: "active_worker";
227
+ readonly label: "Active Worker";
228
+ readonly description: "Campaigning, organizing, and on-ground work";
229
+ }, {
230
+ readonly value: "office_bearer";
231
+ readonly label: "Office Bearer";
232
+ readonly description: "Hold an official post in the party";
233
+ }, {
234
+ readonly value: "candidate";
235
+ readonly label: "Candidate";
236
+ readonly description: "Contested or planning to contest on this party ticket";
237
+ }, {
238
+ readonly value: "spokesperson";
239
+ readonly label: "Spokesperson";
240
+ readonly description: "Represent the party publicly or in media";
241
+ }, {
242
+ readonly value: "volunteer";
243
+ readonly label: "Volunteer";
244
+ readonly description: "Occasional volunteer work without formal membership";
245
+ }, {
246
+ readonly value: "sympathizer";
247
+ readonly label: "Sympathizer";
248
+ readonly description: "Support the party but no formal role";
133
249
  }, {
134
250
  readonly value: "none";
135
251
  readonly label: "None";
252
+ readonly description: "No formal association";
253
+ }, {
254
+ readonly value: "prefer_not_to_say";
255
+ readonly label: "Prefer not to say";
256
+ }];
257
+ /**
258
+ * Family / relatives in politics — captures intergenerational political
259
+ * involvement that shapes political consciousness in India.
260
+ */
261
+ export declare const relativesInPoliticsOptions: readonly [{
262
+ readonly value: "none";
263
+ readonly label: "No one";
264
+ readonly description: "No relatives are in politics";
265
+ }, {
266
+ readonly value: "immediate_family";
267
+ readonly label: "Immediate family";
268
+ readonly description: "Parents, siblings, spouse, or children";
269
+ }, {
270
+ readonly value: "extended_family";
271
+ readonly label: "Extended family";
272
+ readonly description: "Uncles, aunts, cousins, or in-laws";
273
+ }, {
274
+ readonly value: "both";
275
+ readonly label: "Both immediate and extended";
276
+ }, {
277
+ readonly value: "dont_know";
278
+ readonly label: "Don't know";
279
+ }, {
280
+ readonly value: "prefer_not_to_say";
281
+ readonly label: "Prefer not to say";
282
+ }];
283
+ /**
284
+ * Levels of elected / appointed office — used for both office held and
285
+ * election contested, so the two use the same enum.
286
+ */
287
+ export declare const officeElectionLevelOptions: readonly [{
288
+ readonly value: "panchayat";
289
+ readonly label: "Panchayat / Gram";
290
+ }, {
291
+ readonly value: "ward";
292
+ readonly label: "Ward / Nagar Palika";
293
+ }, {
294
+ readonly value: "municipality";
295
+ readonly label: "Municipality";
296
+ }, {
297
+ readonly value: "block";
298
+ readonly label: "Block / Tehsil";
299
+ }, {
300
+ readonly value: "district";
301
+ readonly label: "District / Zila Parishad";
302
+ }, {
303
+ readonly value: "assembly";
304
+ readonly label: "State Assembly (MLA)";
305
+ }, {
306
+ readonly value: "parliament";
307
+ readonly label: "Parliament (MP)";
136
308
  }, {
137
309
  readonly value: "other";
138
310
  readonly label: "Other";
139
311
  }];
312
+ /** Outcome of an election the respondent contested. */
313
+ export declare const electionResultOptions: readonly [{
314
+ readonly value: "won";
315
+ readonly label: "Won";
316
+ }, {
317
+ readonly value: "lost";
318
+ readonly label: "Lost";
319
+ }, {
320
+ readonly value: "withdrew";
321
+ readonly label: "Withdrew before voting";
322
+ }, {
323
+ readonly value: "ongoing";
324
+ readonly label: "Currently contesting";
325
+ }];
140
326
  export declare const politicalAssociation: FieldGroup;
141
327
  //# sourceMappingURL=02-political.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"02-political.d.ts","sourceRoot":"","sources":["../../src/profile-fields/02-political.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgD3B,CAAC;AAEX,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsBf,CAAC;AAEX,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYzB,CAAC;AAEX,eAAO,MAAM,oBAAoB,EAAE,UAyDlC,CAAC"}
1
+ {"version":3,"file":"02-political.d.ts","sourceRoot":"","sources":["../../src/profile-fields/02-political.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgD3B,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoCf,CAAC;AAEX;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoBzB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsC9B,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;EAe7B,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;EAS7B,CAAC;AAEX,uDAAuD;AACvD,eAAO,MAAM,qBAAqB;;;;;;;;;;;;EAKxB,CAAC;AAEX,eAAO,MAAM,oBAAoB,EAAE,UAkFlC,CAAC"}
@@ -46,6 +46,11 @@ export const politicalSpectrumOptions = [
46
46
  },
47
47
  { value: 'prefer_not_to_say', label: 'Prefer not to say' },
48
48
  ];
49
+ /**
50
+ * Indian political parties — exhaustive list of nationally- or state-recognized
51
+ * parties active as of 2026. Ordered roughly by national visibility; state /
52
+ * regional parties follow. Includes post-2023 splits (NCP-SP, Shiv Sena UBT).
53
+ */
49
54
  export const partyOptions = [
50
55
  { value: 'bjp', label: 'BJP' },
51
56
  { value: 'inc', label: 'Indian National Congress (INC)' },
@@ -55,33 +60,145 @@ export const partyOptions = [
55
60
  { value: 'tmc', label: 'Trinamool Congress (TMC)' },
56
61
  { value: 'dmk', label: 'DMK' },
57
62
  { value: 'aiadmk', label: 'AIADMK' },
58
- { value: 'ncp', label: 'NCP' },
59
- { value: 'shiv_sena', label: 'Shiv Sena' },
63
+ { value: 'ncp', label: 'NCP (Ajit Pawar)' },
64
+ { value: 'ncp_sp', label: 'NCP (Sharad Pawar)' },
65
+ { value: 'shiv_sena', label: 'Shiv Sena (Shinde)' },
66
+ { value: 'shiv_sena_ubt', label: 'Shiv Sena (UBT)' },
67
+ { value: 'aimim', label: 'AIMIM' },
60
68
  { value: 'jdu', label: 'JD(U)' },
69
+ { value: 'jds', label: 'JD(S)' },
61
70
  { value: 'rjd', label: 'RJD' },
62
71
  { value: 'cpim', label: 'CPI(M)' },
63
72
  { value: 'cpi', label: 'CPI' },
64
73
  { value: 'ysrcp', label: 'YSRCP' },
65
74
  { value: 'tdp', label: 'TDP' },
75
+ { value: 'brs', label: 'BRS (Bharat Rashtra Samithi)' },
66
76
  { value: 'bjd', label: 'BJD' },
67
77
  { value: 'jmm', label: 'JMM' },
78
+ { value: 'sad', label: 'Shiromani Akali Dal (SAD)' },
79
+ { value: 'rld', label: 'Rashtriya Lok Dal (RLD)' },
80
+ { value: 'aiudf', label: 'AIUDF' },
81
+ { value: 'jkn', label: 'J&K National Conference' },
82
+ { value: 'inld', label: 'Indian National Lok Dal (INLD)' },
83
+ { value: 'iuml', label: 'Indian Union Muslim League (IUML)' },
84
+ { value: 'mns', label: 'Maharashtra Navnirman Sena (MNS)' },
85
+ { value: 'agp', label: 'Asom Gana Parishad (AGP)' },
86
+ { value: 'independent', label: 'Independent candidate' },
68
87
  { value: 'none', label: 'No party affiliation' },
69
88
  { value: 'other', label: 'Other' },
70
89
  { value: 'prefer_not_to_say', label: 'Prefer not to say' },
71
90
  ];
91
+ /**
92
+ * Civic-engagement categories — expanded to cover organizational forms
93
+ * common in Indian political/social life, including ideological networks
94
+ * (RSS / Sangh), farmers' bodies, women's collectives, student unions,
95
+ * and party youth wings.
96
+ */
72
97
  export const civicEngagementOptions = [
73
98
  { value: 'ngo', label: 'NGO / Non-profit' },
74
99
  { value: 'trade_union', label: 'Trade Union' },
100
+ { value: 'farmers_organization', label: "Farmers' Organization / Kisan Sangathan" },
75
101
  { value: 'cooperative', label: 'Cooperative Society' },
76
102
  { value: 'resident_association', label: 'Resident Welfare Association' },
77
103
  { value: 'self_help_group', label: 'Self Help Group (SHG)' },
104
+ { value: 'womens_collective', label: "Women's Collective / Mahila Mandal" },
78
105
  { value: 'youth_club', label: 'Youth Club' },
106
+ { value: 'student_union', label: 'Student Union' },
107
+ { value: 'political_party_youth_wing', label: 'Political Party Youth Wing (BJYM / IYC / etc.)' },
108
+ { value: 'rss_swayamsevak', label: 'RSS / Swayamsevak (Sangh network)' },
79
109
  { value: 'religious_organization', label: 'Religious Organization' },
80
110
  { value: 'caste_association', label: 'Caste Association' },
81
111
  { value: 'professional_body', label: 'Professional Body' },
112
+ { value: 'environmental_group', label: 'Environmental Group' },
113
+ { value: 'cultural_association', label: 'Cultural Association' },
114
+ { value: 'alumni_association', label: 'Alumni Association' },
82
115
  { value: 'none', label: 'None' },
83
116
  { value: 'other', label: 'Other' },
84
117
  ];
118
+ /**
119
+ * Nature of the respondent's association with their political party.
120
+ * Differentiates card-carrying members from sympathizers and office-bearers.
121
+ */
122
+ export const partyAssociationRoleOptions = [
123
+ {
124
+ value: 'member',
125
+ label: 'Member',
126
+ description: 'Primary / card-carrying member of the party',
127
+ },
128
+ {
129
+ value: 'active_worker',
130
+ label: 'Active Worker',
131
+ description: 'Campaigning, organizing, and on-ground work',
132
+ },
133
+ {
134
+ value: 'office_bearer',
135
+ label: 'Office Bearer',
136
+ description: 'Hold an official post in the party',
137
+ },
138
+ {
139
+ value: 'candidate',
140
+ label: 'Candidate',
141
+ description: 'Contested or planning to contest on this party ticket',
142
+ },
143
+ {
144
+ value: 'spokesperson',
145
+ label: 'Spokesperson',
146
+ description: 'Represent the party publicly or in media',
147
+ },
148
+ {
149
+ value: 'volunteer',
150
+ label: 'Volunteer',
151
+ description: 'Occasional volunteer work without formal membership',
152
+ },
153
+ {
154
+ value: 'sympathizer',
155
+ label: 'Sympathizer',
156
+ description: 'Support the party but no formal role',
157
+ },
158
+ { value: 'none', label: 'None', description: 'No formal association' },
159
+ { value: 'prefer_not_to_say', label: 'Prefer not to say' },
160
+ ];
161
+ /**
162
+ * Family / relatives in politics — captures intergenerational political
163
+ * involvement that shapes political consciousness in India.
164
+ */
165
+ export const relativesInPoliticsOptions = [
166
+ { value: 'none', label: 'No one', description: 'No relatives are in politics' },
167
+ {
168
+ value: 'immediate_family',
169
+ label: 'Immediate family',
170
+ description: 'Parents, siblings, spouse, or children',
171
+ },
172
+ {
173
+ value: 'extended_family',
174
+ label: 'Extended family',
175
+ description: 'Uncles, aunts, cousins, or in-laws',
176
+ },
177
+ { value: 'both', label: 'Both immediate and extended' },
178
+ { value: 'dont_know', label: "Don't know" },
179
+ { value: 'prefer_not_to_say', label: 'Prefer not to say' },
180
+ ];
181
+ /**
182
+ * Levels of elected / appointed office — used for both office held and
183
+ * election contested, so the two use the same enum.
184
+ */
185
+ export const officeElectionLevelOptions = [
186
+ { value: 'panchayat', label: 'Panchayat / Gram' },
187
+ { value: 'ward', label: 'Ward / Nagar Palika' },
188
+ { value: 'municipality', label: 'Municipality' },
189
+ { value: 'block', label: 'Block / Tehsil' },
190
+ { value: 'district', label: 'District / Zila Parishad' },
191
+ { value: 'assembly', label: 'State Assembly (MLA)' },
192
+ { value: 'parliament', label: 'Parliament (MP)' },
193
+ { value: 'other', label: 'Other' },
194
+ ];
195
+ /** Outcome of an election the respondent contested. */
196
+ export const electionResultOptions = [
197
+ { value: 'won', label: 'Won' },
198
+ { value: 'lost', label: 'Lost' },
199
+ { value: 'withdrew', label: 'Withdrew before voting' },
200
+ { value: 'ongoing', label: 'Currently contesting' },
201
+ ];
85
202
  export const politicalAssociation = {
86
203
  key: 'political_association',
87
204
  label: 'Political Association & History',
@@ -109,7 +226,22 @@ export const politicalAssociation = {
109
226
  options: [...partyOptions],
110
227
  },
111
228
  {
229
+ // Only ask about role if the respondent has a party association.
112
230
  order: 3,
231
+ key: 'partyAssociationRole',
232
+ label: 'Your Role in the Party',
233
+ type: 'single_select',
234
+ step: 2,
235
+ isOnboarding: true,
236
+ optional: true,
237
+ options: [...partyAssociationRoleOptions],
238
+ conditionalOn: {
239
+ field: 'selfPartyAssociation',
240
+ notIn: ['none', 'prefer_not_to_say'],
241
+ },
242
+ },
243
+ {
244
+ order: 4,
113
245
  key: 'familyPartyAssociation',
114
246
  label: 'Family Party Association',
115
247
  type: 'single_select',
@@ -119,7 +251,17 @@ export const politicalAssociation = {
119
251
  options: [...partyOptions],
120
252
  },
121
253
  {
122
- order: 4,
254
+ order: 5,
255
+ key: 'relativesInPolitics',
256
+ label: 'Relatives in Politics',
257
+ type: 'single_select',
258
+ step: 2,
259
+ isOnboarding: true,
260
+ optional: true,
261
+ options: [...relativesInPoliticsOptions],
262
+ },
263
+ {
264
+ order: 6,
123
265
  key: 'publicOfficeAndElections',
124
266
  label: 'Public Office & Elections',
125
267
  type: 'object',
@@ -129,7 +271,7 @@ export const politicalAssociation = {
129
271
  description: 'Have you held public office or contested elections?',
130
272
  },
131
273
  {
132
- order: 5,
274
+ order: 7,
133
275
  key: 'networkAndCivicEngagement',
134
276
  label: 'Civic Engagement',
135
277
  type: 'multi_select',
@@ -1 +1 @@
1
- {"version":3,"file":"02-political.js","sourceRoot":"","sources":["../../src/profile-fields/02-political.ts"],"names":[],"mappings":"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","sourcesContent":["import type { FieldGroup } from './types.js';\n\nexport const politicalSpectrumOptions = [\n {\n value: 'far_left',\n label: 'Far Left',\n description: 'Radical progressive — systemic change, social justice, anti-capitalist',\n },\n {\n value: 'left',\n label: 'Left',\n description: 'Progressive — strong social safety net, equality, regulation',\n },\n {\n value: 'centre_left',\n label: 'Centre-Left',\n description: 'Liberal — social freedoms, moderate reform, inclusive policies',\n },\n {\n value: 'centrist',\n label: 'Centrist',\n description: 'Pragmatic middle — picks issues over ideology, open to both sides',\n },\n {\n value: 'centre_right',\n label: 'Centre-Right',\n description:\n 'Moderate conservative — fiscal discipline, traditional institutions, gradual change',\n },\n {\n value: 'right',\n label: 'Right',\n description: 'Conservative — limited government, free markets, cultural tradition',\n },\n {\n value: 'far_right',\n label: 'Far Right',\n description: 'Nationalist — strong borders, traditional values, national identity first',\n },\n {\n value: 'libertarian',\n label: 'Libertarian',\n description: 'Maximum personal freedom — minimal government in both social and economic life',\n },\n {\n value: 'apolitical',\n label: 'Apolitical',\n description: 'Not interested in politics — focus on personal life',\n },\n { value: 'prefer_not_to_say', label: 'Prefer not to say' },\n] as const;\n\nexport const partyOptions = [\n { value: 'bjp', label: 'BJP' },\n { value: 'inc', label: 'Indian National Congress (INC)' },\n { value: 'aap', label: 'Aam Aadmi Party (AAP)' },\n { value: 'bsp', label: 'Bahujan Samaj Party (BSP)' },\n { value: 'sp', label: 'Samajwadi Party (SP)' },\n { value: 'tmc', label: 'Trinamool Congress (TMC)' },\n { value: 'dmk', label: 'DMK' },\n { value: 'aiadmk', label: 'AIADMK' },\n { value: 'ncp', label: 'NCP' },\n { value: 'shiv_sena', label: 'Shiv Sena' },\n { value: 'jdu', label: 'JD(U)' },\n { value: 'rjd', label: 'RJD' },\n { value: 'cpim', label: 'CPI(M)' },\n { value: 'cpi', label: 'CPI' },\n { value: 'ysrcp', label: 'YSRCP' },\n { value: 'tdp', label: 'TDP' },\n { value: 'bjd', label: 'BJD' },\n { value: 'jmm', label: 'JMM' },\n { value: 'none', label: 'No party affiliation' },\n { value: 'other', label: 'Other' },\n { value: 'prefer_not_to_say', label: 'Prefer not to say' },\n] as const;\n\nexport const civicEngagementOptions = [\n { value: 'ngo', label: 'NGO / Non-profit' },\n { value: 'trade_union', label: 'Trade Union' },\n { value: 'cooperative', label: 'Cooperative Society' },\n { value: 'resident_association', label: 'Resident Welfare Association' },\n { value: 'self_help_group', label: 'Self Help Group (SHG)' },\n { value: 'youth_club', label: 'Youth Club' },\n { value: 'religious_organization', label: 'Religious Organization' },\n { value: 'caste_association', label: 'Caste Association' },\n { value: 'professional_body', label: 'Professional Body' },\n { value: 'none', label: 'None' },\n { value: 'other', label: 'Other' },\n] as const;\n\nexport const politicalAssociation: FieldGroup = {\n key: 'political_association',\n label: 'Political Association & History',\n step: 2,\n description: 'Your political spectrum, party associations, and civic engagement.',\n fields: [\n {\n order: 1,\n key: 'politicalSpectrum',\n label: 'Political Spectrum',\n type: 'single_select',\n step: 2,\n isOnboarding: true,\n optional: true,\n options: [...politicalSpectrumOptions],\n },\n {\n order: 2,\n key: 'selfPartyAssociation',\n label: 'Your Party Association',\n type: 'single_select',\n step: 2,\n isOnboarding: true,\n optional: true,\n options: [...partyOptions],\n },\n {\n order: 3,\n key: 'familyPartyAssociation',\n label: 'Family Party Association',\n type: 'single_select',\n step: 2,\n isOnboarding: true,\n optional: true,\n options: [...partyOptions],\n },\n {\n order: 4,\n key: 'publicOfficeAndElections',\n label: 'Public Office & Elections',\n type: 'object',\n step: 2,\n isOnboarding: true,\n optional: true,\n description: 'Have you held public office or contested elections?',\n },\n {\n order: 5,\n key: 'networkAndCivicEngagement',\n label: 'Civic Engagement',\n type: 'multi_select',\n step: 2,\n isOnboarding: true,\n optional: true,\n options: [...civicEngagementOptions],\n },\n ],\n};\n"]}
1
+ {"version":3,"file":"02-political.js","sourceRoot":"","sources":["../../src/profile-fields/02-political.ts"],"names":[],"mappings":"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","sourcesContent":["import type { FieldGroup } from './types.js';\n\nexport const politicalSpectrumOptions = [\n {\n value: 'far_left',\n label: 'Far Left',\n description: 'Radical progressive — systemic change, social justice, anti-capitalist',\n },\n {\n value: 'left',\n label: 'Left',\n description: 'Progressive — strong social safety net, equality, regulation',\n },\n {\n value: 'centre_left',\n label: 'Centre-Left',\n description: 'Liberal — social freedoms, moderate reform, inclusive policies',\n },\n {\n value: 'centrist',\n label: 'Centrist',\n description: 'Pragmatic middle — picks issues over ideology, open to both sides',\n },\n {\n value: 'centre_right',\n label: 'Centre-Right',\n description:\n 'Moderate conservative — fiscal discipline, traditional institutions, gradual change',\n },\n {\n value: 'right',\n label: 'Right',\n description: 'Conservative — limited government, free markets, cultural tradition',\n },\n {\n value: 'far_right',\n label: 'Far Right',\n description: 'Nationalist — strong borders, traditional values, national identity first',\n },\n {\n value: 'libertarian',\n label: 'Libertarian',\n description: 'Maximum personal freedom — minimal government in both social and economic life',\n },\n {\n value: 'apolitical',\n label: 'Apolitical',\n description: 'Not interested in politics — focus on personal life',\n },\n { value: 'prefer_not_to_say', label: 'Prefer not to say' },\n] as const;\n\n/**\n * Indian political parties — exhaustive list of nationally- or state-recognized\n * parties active as of 2026. Ordered roughly by national visibility; state /\n * regional parties follow. Includes post-2023 splits (NCP-SP, Shiv Sena UBT).\n */\nexport const partyOptions = [\n { value: 'bjp', label: 'BJP' },\n { value: 'inc', label: 'Indian National Congress (INC)' },\n { value: 'aap', label: 'Aam Aadmi Party (AAP)' },\n { value: 'bsp', label: 'Bahujan Samaj Party (BSP)' },\n { value: 'sp', label: 'Samajwadi Party (SP)' },\n { value: 'tmc', label: 'Trinamool Congress (TMC)' },\n { value: 'dmk', label: 'DMK' },\n { value: 'aiadmk', label: 'AIADMK' },\n { value: 'ncp', label: 'NCP (Ajit Pawar)' },\n { value: 'ncp_sp', label: 'NCP (Sharad Pawar)' },\n { value: 'shiv_sena', label: 'Shiv Sena (Shinde)' },\n { value: 'shiv_sena_ubt', label: 'Shiv Sena (UBT)' },\n { value: 'aimim', label: 'AIMIM' },\n { value: 'jdu', label: 'JD(U)' },\n { value: 'jds', label: 'JD(S)' },\n { value: 'rjd', label: 'RJD' },\n { value: 'cpim', label: 'CPI(M)' },\n { value: 'cpi', label: 'CPI' },\n { value: 'ysrcp', label: 'YSRCP' },\n { value: 'tdp', label: 'TDP' },\n { value: 'brs', label: 'BRS (Bharat Rashtra Samithi)' },\n { value: 'bjd', label: 'BJD' },\n { value: 'jmm', label: 'JMM' },\n { value: 'sad', label: 'Shiromani Akali Dal (SAD)' },\n { value: 'rld', label: 'Rashtriya Lok Dal (RLD)' },\n { value: 'aiudf', label: 'AIUDF' },\n { value: 'jkn', label: 'J&K National Conference' },\n { value: 'inld', label: 'Indian National Lok Dal (INLD)' },\n { value: 'iuml', label: 'Indian Union Muslim League (IUML)' },\n { value: 'mns', label: 'Maharashtra Navnirman Sena (MNS)' },\n { value: 'agp', label: 'Asom Gana Parishad (AGP)' },\n { value: 'independent', label: 'Independent candidate' },\n { value: 'none', label: 'No party affiliation' },\n { value: 'other', label: 'Other' },\n { value: 'prefer_not_to_say', label: 'Prefer not to say' },\n] as const;\n\n/**\n * Civic-engagement categories — expanded to cover organizational forms\n * common in Indian political/social life, including ideological networks\n * (RSS / Sangh), farmers' bodies, women's collectives, student unions,\n * and party youth wings.\n */\nexport const civicEngagementOptions = [\n { value: 'ngo', label: 'NGO / Non-profit' },\n { value: 'trade_union', label: 'Trade Union' },\n { value: 'farmers_organization', label: \"Farmers' Organization / Kisan Sangathan\" },\n { value: 'cooperative', label: 'Cooperative Society' },\n { value: 'resident_association', label: 'Resident Welfare Association' },\n { value: 'self_help_group', label: 'Self Help Group (SHG)' },\n { value: 'womens_collective', label: \"Women's Collective / Mahila Mandal\" },\n { value: 'youth_club', label: 'Youth Club' },\n { value: 'student_union', label: 'Student Union' },\n { value: 'political_party_youth_wing', label: 'Political Party Youth Wing (BJYM / IYC / etc.)' },\n { value: 'rss_swayamsevak', label: 'RSS / Swayamsevak (Sangh network)' },\n { value: 'religious_organization', label: 'Religious Organization' },\n { value: 'caste_association', label: 'Caste Association' },\n { value: 'professional_body', label: 'Professional Body' },\n { value: 'environmental_group', label: 'Environmental Group' },\n { value: 'cultural_association', label: 'Cultural Association' },\n { value: 'alumni_association', label: 'Alumni Association' },\n { value: 'none', label: 'None' },\n { value: 'other', label: 'Other' },\n] as const;\n\n/**\n * Nature of the respondent's association with their political party.\n * Differentiates card-carrying members from sympathizers and office-bearers.\n */\nexport const partyAssociationRoleOptions = [\n {\n value: 'member',\n label: 'Member',\n description: 'Primary / card-carrying member of the party',\n },\n {\n value: 'active_worker',\n label: 'Active Worker',\n description: 'Campaigning, organizing, and on-ground work',\n },\n {\n value: 'office_bearer',\n label: 'Office Bearer',\n description: 'Hold an official post in the party',\n },\n {\n value: 'candidate',\n label: 'Candidate',\n description: 'Contested or planning to contest on this party ticket',\n },\n {\n value: 'spokesperson',\n label: 'Spokesperson',\n description: 'Represent the party publicly or in media',\n },\n {\n value: 'volunteer',\n label: 'Volunteer',\n description: 'Occasional volunteer work without formal membership',\n },\n {\n value: 'sympathizer',\n label: 'Sympathizer',\n description: 'Support the party but no formal role',\n },\n { value: 'none', label: 'None', description: 'No formal association' },\n { value: 'prefer_not_to_say', label: 'Prefer not to say' },\n] as const;\n\n/**\n * Family / relatives in politics — captures intergenerational political\n * involvement that shapes political consciousness in India.\n */\nexport const relativesInPoliticsOptions = [\n { value: 'none', label: 'No one', description: 'No relatives are in politics' },\n {\n value: 'immediate_family',\n label: 'Immediate family',\n description: 'Parents, siblings, spouse, or children',\n },\n {\n value: 'extended_family',\n label: 'Extended family',\n description: 'Uncles, aunts, cousins, or in-laws',\n },\n { value: 'both', label: 'Both immediate and extended' },\n { value: 'dont_know', label: \"Don't know\" },\n { value: 'prefer_not_to_say', label: 'Prefer not to say' },\n] as const;\n\n/**\n * Levels of elected / appointed office — used for both office held and\n * election contested, so the two use the same enum.\n */\nexport const officeElectionLevelOptions = [\n { value: 'panchayat', label: 'Panchayat / Gram' },\n { value: 'ward', label: 'Ward / Nagar Palika' },\n { value: 'municipality', label: 'Municipality' },\n { value: 'block', label: 'Block / Tehsil' },\n { value: 'district', label: 'District / Zila Parishad' },\n { value: 'assembly', label: 'State Assembly (MLA)' },\n { value: 'parliament', label: 'Parliament (MP)' },\n { value: 'other', label: 'Other' },\n] as const;\n\n/** Outcome of an election the respondent contested. */\nexport const electionResultOptions = [\n { value: 'won', label: 'Won' },\n { value: 'lost', label: 'Lost' },\n { value: 'withdrew', label: 'Withdrew before voting' },\n { value: 'ongoing', label: 'Currently contesting' },\n] as const;\n\nexport const politicalAssociation: FieldGroup = {\n key: 'political_association',\n label: 'Political Association & History',\n step: 2,\n description: 'Your political spectrum, party associations, and civic engagement.',\n fields: [\n {\n order: 1,\n key: 'politicalSpectrum',\n label: 'Political Spectrum',\n type: 'single_select',\n step: 2,\n isOnboarding: true,\n optional: true,\n options: [...politicalSpectrumOptions],\n },\n {\n order: 2,\n key: 'selfPartyAssociation',\n label: 'Your Party Association',\n type: 'single_select',\n step: 2,\n isOnboarding: true,\n optional: true,\n options: [...partyOptions],\n },\n {\n // Only ask about role if the respondent has a party association.\n order: 3,\n key: 'partyAssociationRole',\n label: 'Your Role in the Party',\n type: 'single_select',\n step: 2,\n isOnboarding: true,\n optional: true,\n options: [...partyAssociationRoleOptions],\n conditionalOn: {\n field: 'selfPartyAssociation',\n notIn: ['none', 'prefer_not_to_say'],\n },\n },\n {\n order: 4,\n key: 'familyPartyAssociation',\n label: 'Family Party Association',\n type: 'single_select',\n step: 2,\n isOnboarding: true,\n optional: true,\n options: [...partyOptions],\n },\n {\n order: 5,\n key: 'relativesInPolitics',\n label: 'Relatives in Politics',\n type: 'single_select',\n step: 2,\n isOnboarding: true,\n optional: true,\n options: [...relativesInPoliticsOptions],\n },\n {\n order: 6,\n key: 'publicOfficeAndElections',\n label: 'Public Office & Elections',\n type: 'object',\n step: 2,\n isOnboarding: true,\n optional: true,\n description: 'Have you held public office or contested elections?',\n },\n {\n order: 7,\n key: 'networkAndCivicEngagement',\n label: 'Civic Engagement',\n type: 'multi_select',\n step: 2,\n isOnboarding: true,\n optional: true,\n options: [...civicEngagementOptions],\n },\n ],\n};\n"]}
@@ -6,7 +6,7 @@
6
6
  */
7
7
  export type { BaseField, FieldGroup, FieldOption, MultiSelectField, NumberField, ProfileField, SelectField, TextField, } from './types.js';
8
8
  export { genderOptions, languageOptions, minorityOptions, profile, religionOptions, reservationOptions, } from './01-profile.js';
9
- export { civicEngagementOptions, partyOptions, politicalAssociation, politicalSpectrumOptions, } from './02-political.js';
9
+ export { civicEngagementOptions, electionResultOptions, officeElectionLevelOptions, partyAssociationRoleOptions, partyOptions, politicalAssociation, politicalSpectrumOptions, relativesInPoliticsOptions, } from './02-political.js';
10
10
  export { electoralBehaviour, votingIssueOptions } from './03-electoral.js';
11
11
  export { leadershipAmbitions, leadershipSkillsetOptions } from './04-leadership.js';
12
12
  export { mbtiOptions, psychologicalAssessment } from './05-psychological.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/profile-fields/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,YAAY,EACV,SAAS,EACT,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,WAAW,EACX,SAAS,GACV,MAAM,YAAY,CAAC;AAIpB,OAAO,EACL,aAAa,EACb,eAAe,EACf,eAAe,EACf,OAAO,EACP,eAAe,EACf,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,sBAAsB,EACtB,YAAY,EACZ,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AACpF,OAAO,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EACL,UAAU,EACV,uBAAuB,EACvB,kBAAkB,EAClB,YAAY,GACb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,cAAc,EACd,8BAA8B,EAC9B,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,+BAA+B,EAC/B,qBAAqB,EACrB,2BAA2B,EAC3B,SAAS,GACV,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,SAAS,EACT,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAgB3B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,eAAO,MAAM,cAAc,EAAE,SAAS,UAAU,EAa/C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/profile-fields/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,YAAY,EACV,SAAS,EACT,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,WAAW,EACX,SAAS,GACV,MAAM,YAAY,CAAC;AAIpB,OAAO,EACL,aAAa,EACb,eAAe,EACf,eAAe,EACf,OAAO,EACP,eAAe,EACf,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,0BAA0B,EAC1B,2BAA2B,EAC3B,YAAY,EACZ,oBAAoB,EACpB,wBAAwB,EACxB,0BAA0B,GAC3B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AACpF,OAAO,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EACL,UAAU,EACV,uBAAuB,EACvB,kBAAkB,EAClB,YAAY,GACb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,cAAc,EACd,8BAA8B,EAC9B,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,+BAA+B,EAC/B,qBAAqB,EACrB,2BAA2B,EAC3B,SAAS,GACV,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,SAAS,EACT,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAgB3B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,eAAO,MAAM,cAAc,EAAE,SAAS,UAAU,EAa/C,CAAC"}
@@ -6,7 +6,7 @@
6
6
  */
7
7
  // ── Field groups ────────────────────────────────────────────────────────────
8
8
  export { genderOptions, languageOptions, minorityOptions, profile, religionOptions, reservationOptions, } from './01-profile.js';
9
- export { civicEngagementOptions, partyOptions, politicalAssociation, politicalSpectrumOptions, } from './02-political.js';
9
+ export { civicEngagementOptions, electionResultOptions, officeElectionLevelOptions, partyAssociationRoleOptions, partyOptions, politicalAssociation, politicalSpectrumOptions, relativesInPoliticsOptions, } from './02-political.js';
10
10
  export { electoralBehaviour, votingIssueOptions } from './03-electoral.js';
11
11
  export { leadershipAmbitions, leadershipSkillsetOptions } from './04-leadership.js';
12
12
  export { mbtiOptions, psychologicalAssessment } from './05-psychological.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/profile-fields/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAaH,+EAA+E;AAE/E,OAAO,EACL,aAAa,EACb,eAAe,EACf,eAAe,EACf,OAAO,EACP,eAAe,EACf,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,sBAAsB,EACtB,YAAY,EACZ,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AACpF,OAAO,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EACL,UAAU,EACV,uBAAuB,EACvB,kBAAkB,EAClB,YAAY,GACb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,cAAc,EACd,8BAA8B,EAC9B,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,+BAA+B,EAC/B,qBAAqB,EACrB,2BAA2B,EAC3B,SAAS,GACV,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,SAAS,EACT,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAE3B,+EAA+E;AAE/E,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAG9C,MAAM,CAAC,MAAM,cAAc,GAA0B;IACnD,OAAO;IACP,oBAAoB;IACpB,kBAAkB;IAClB,mBAAmB;IACnB,uBAAuB;IACvB,SAAS;IACT,UAAU;IACV,cAAc;IACd,eAAe;IACf,SAAS;IACT,SAAS;IACT,SAAS;CACV,CAAC","sourcesContent":["/**\n * UDP Profile Fields — barrel export.\n *\n * Mirrors the dating-schema profile-fields pattern.\n * Each file defines a FieldGroup with rich field metadata and options.\n */\n\nexport type {\n BaseField,\n FieldGroup,\n FieldOption,\n MultiSelectField,\n NumberField,\n ProfileField,\n SelectField,\n TextField,\n} from './types.js';\n\n// ── Field groups ────────────────────────────────────────────────────────────\n\nexport {\n genderOptions,\n languageOptions,\n minorityOptions,\n profile,\n religionOptions,\n reservationOptions,\n} from './01-profile.js';\nexport {\n civicEngagementOptions,\n partyOptions,\n politicalAssociation,\n politicalSpectrumOptions,\n} from './02-political.js';\nexport { electoralBehaviour, votingIssueOptions } from './03-electoral.js';\nexport { leadershipAmbitions, leadershipSkillsetOptions } from './04-leadership.js';\nexport { mbtiOptions, psychologicalAssessment } from './05-psychological.js';\nexport { education, qualificationOptions } from './06-education.js';\nexport {\n employment,\n employmentStatusOptions,\n incomeRangeOptions,\n shiftOptions,\n} from './07-employment.js';\nexport {\n neurodiversity,\n neurodiversityConditionOptions,\n sensoryPreferenceOptions,\n supportNeedOptions,\n} from './08-neurodiversity.js';\nexport {\n dietOptions,\n disabilityOptions,\n healthLifestyle,\n substanceUseOptions,\n} from './09-health.js';\nexport {\n casteDiscriminationPlaceOptions,\n lgbtqStatementOptions,\n transgenderStatementOptions,\n worldView,\n} from './10-worldview.js';\nexport { residence } from './11-residence.js';\nexport {\n digitalAccessOptions,\n familyMemberOptions,\n household,\n householdIncomeOptions,\n} from './12-household.js';\n\n// ── All field groups (for building lookup maps) ─────────────────────────────\n\nimport { profile } from './01-profile.js';\nimport { politicalAssociation } from './02-political.js';\nimport { electoralBehaviour } from './03-electoral.js';\nimport { leadershipAmbitions } from './04-leadership.js';\nimport { psychologicalAssessment } from './05-psychological.js';\nimport { education } from './06-education.js';\nimport { employment } from './07-employment.js';\nimport { neurodiversity } from './08-neurodiversity.js';\nimport { healthLifestyle } from './09-health.js';\nimport { worldView } from './10-worldview.js';\nimport { residence } from './11-residence.js';\nimport { household } from './12-household.js';\nimport type { FieldGroup } from './types.js';\n\nexport const allFieldGroups: readonly FieldGroup[] = [\n profile,\n politicalAssociation,\n electoralBehaviour,\n leadershipAmbitions,\n psychologicalAssessment,\n education,\n employment,\n neurodiversity,\n healthLifestyle,\n worldView,\n residence,\n household,\n];\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/profile-fields/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAaH,+EAA+E;AAE/E,OAAO,EACL,aAAa,EACb,eAAe,EACf,eAAe,EACf,OAAO,EACP,eAAe,EACf,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,0BAA0B,EAC1B,2BAA2B,EAC3B,YAAY,EACZ,oBAAoB,EACpB,wBAAwB,EACxB,0BAA0B,GAC3B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AACpF,OAAO,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EACL,UAAU,EACV,uBAAuB,EACvB,kBAAkB,EAClB,YAAY,GACb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,cAAc,EACd,8BAA8B,EAC9B,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,+BAA+B,EAC/B,qBAAqB,EACrB,2BAA2B,EAC3B,SAAS,GACV,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,SAAS,EACT,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAE3B,+EAA+E;AAE/E,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAG9C,MAAM,CAAC,MAAM,cAAc,GAA0B;IACnD,OAAO;IACP,oBAAoB;IACpB,kBAAkB;IAClB,mBAAmB;IACnB,uBAAuB;IACvB,SAAS;IACT,UAAU;IACV,cAAc;IACd,eAAe;IACf,SAAS;IACT,SAAS;IACT,SAAS;CACV,CAAC","sourcesContent":["/**\n * UDP Profile Fields — barrel export.\n *\n * Mirrors the dating-schema profile-fields pattern.\n * Each file defines a FieldGroup with rich field metadata and options.\n */\n\nexport type {\n BaseField,\n FieldGroup,\n FieldOption,\n MultiSelectField,\n NumberField,\n ProfileField,\n SelectField,\n TextField,\n} from './types.js';\n\n// ── Field groups ────────────────────────────────────────────────────────────\n\nexport {\n genderOptions,\n languageOptions,\n minorityOptions,\n profile,\n religionOptions,\n reservationOptions,\n} from './01-profile.js';\nexport {\n civicEngagementOptions,\n electionResultOptions,\n officeElectionLevelOptions,\n partyAssociationRoleOptions,\n partyOptions,\n politicalAssociation,\n politicalSpectrumOptions,\n relativesInPoliticsOptions,\n} from './02-political.js';\nexport { electoralBehaviour, votingIssueOptions } from './03-electoral.js';\nexport { leadershipAmbitions, leadershipSkillsetOptions } from './04-leadership.js';\nexport { mbtiOptions, psychologicalAssessment } from './05-psychological.js';\nexport { education, qualificationOptions } from './06-education.js';\nexport {\n employment,\n employmentStatusOptions,\n incomeRangeOptions,\n shiftOptions,\n} from './07-employment.js';\nexport {\n neurodiversity,\n neurodiversityConditionOptions,\n sensoryPreferenceOptions,\n supportNeedOptions,\n} from './08-neurodiversity.js';\nexport {\n dietOptions,\n disabilityOptions,\n healthLifestyle,\n substanceUseOptions,\n} from './09-health.js';\nexport {\n casteDiscriminationPlaceOptions,\n lgbtqStatementOptions,\n transgenderStatementOptions,\n worldView,\n} from './10-worldview.js';\nexport { residence } from './11-residence.js';\nexport {\n digitalAccessOptions,\n familyMemberOptions,\n household,\n householdIncomeOptions,\n} from './12-household.js';\n\n// ── All field groups (for building lookup maps) ─────────────────────────────\n\nimport { profile } from './01-profile.js';\nimport { politicalAssociation } from './02-political.js';\nimport { electoralBehaviour } from './03-electoral.js';\nimport { leadershipAmbitions } from './04-leadership.js';\nimport { psychologicalAssessment } from './05-psychological.js';\nimport { education } from './06-education.js';\nimport { employment } from './07-employment.js';\nimport { neurodiversity } from './08-neurodiversity.js';\nimport { healthLifestyle } from './09-health.js';\nimport { worldView } from './10-worldview.js';\nimport { residence } from './11-residence.js';\nimport { household } from './12-household.js';\nimport type { FieldGroup } from './types.js';\n\nexport const allFieldGroups: readonly FieldGroup[] = [\n profile,\n politicalAssociation,\n electoralBehaviour,\n leadershipAmbitions,\n psychologicalAssessment,\n education,\n employment,\n neurodiversity,\n healthLifestyle,\n worldView,\n residence,\n household,\n];\n"]}
@@ -32,10 +32,18 @@ export interface BaseField {
32
32
  description?: string;
33
33
  /** Mark as sensitive (shown with privacy notice) */
34
34
  sensitive?: boolean;
35
- /** If set, field only applicable when referenced field has one of the listed values */
35
+ /**
36
+ * If set, field visibility is conditional on another field's value.
37
+ * - `values`: positive match — only visible when referenced field's value is in the list.
38
+ * - `notIn`: negative match — only visible when referenced field's value is NOT in the list.
39
+ * An undefined referenced value counts as "not in the list" (field is shown).
40
+ */
36
41
  conditionalOn?: {
37
42
  field: string;
38
43
  values: string[];
44
+ } | {
45
+ field: string;
46
+ notIn: string[];
39
47
  };
40
48
  }
41
49
  export interface SelectField extends BaseField {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/profile-fields/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,SAAS;IACxB,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,GAAG,EAAE,MAAM,CAAC;IACZ,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,IAAI,EACA,MAAM,GACN,UAAU,GACV,QAAQ,GACR,MAAM,GACN,eAAe,GACf,cAAc,GACd,QAAQ,GACR,cAAc,GACd,SAAS,CAAC;IACd,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,wDAAwD;IACxD,YAAY,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sCAAsC;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oDAAoD;IACpD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,uFAAuF;IACvF,aAAa,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CACrD;AAED,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC5C,IAAI,EAAE,eAAe,CAAC;IACtB,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,gBAAiB,SAAQ,SAAS;IACjD,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,SAAU,SAAQ,SAAS;IAC1C,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC5C,IAAI,EAAE,QAAQ,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,YAAY,GACpB,WAAW,GACX,gBAAgB,GAChB,SAAS,GACT,WAAW,GACX,CAAC,SAAS,GAAG;IAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,cAAc,GAAG,SAAS,CAAA;CAAE,CAAC,CAAC;AAE3E,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,YAAY,EAAE,CAAC;CACxB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/profile-fields/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,SAAS;IACxB,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,GAAG,EAAE,MAAM,CAAC;IACZ,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,IAAI,EACA,MAAM,GACN,UAAU,GACV,QAAQ,GACR,MAAM,GACN,eAAe,GACf,cAAc,GACd,QAAQ,GACR,cAAc,GACd,SAAS,CAAC;IACd,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,wDAAwD;IACxD,YAAY,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sCAAsC;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oDAAoD;IACpD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;OAKG;IACH,aAAa,CAAC,EACV;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,GACnC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CACxC;AAED,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC5C,IAAI,EAAE,eAAe,CAAC;IACtB,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,gBAAiB,SAAQ,SAAS;IACjD,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,SAAU,SAAQ,SAAS;IAC1C,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC5C,IAAI,EAAE,QAAQ,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,YAAY,GACpB,WAAW,GACX,gBAAgB,GAChB,SAAS,GACT,WAAW,GACX,CAAC,SAAS,GAAG;IAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,cAAc,GAAG,SAAS,CAAA;CAAE,CAAC,CAAC;AAE3E,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,YAAY,EAAE,CAAC;CACxB"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/profile-fields/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG","sourcesContent":["/**\n * Type definitions for UDP profile field configuration.\n *\n * Mirrors the dating-schema profile-fields/types.ts pattern.\n * These types describe field metadata — NOT the user's actual profile data.\n */\n\nexport interface FieldOption {\n value: string;\n label: string;\n /** Short description — shown on chips/cards */\n description?: string;\n}\n\nexport interface BaseField {\n /** Display order within the step */\n order: number;\n /** Unique key — maps to DB field name */\n key: string;\n /** Human-readable label */\n label: string;\n /** Field type for form rendering */\n type:\n | 'text'\n | 'textarea'\n | 'number'\n | 'date'\n | 'single_select'\n | 'multi_select'\n | 'object'\n | 'object_array'\n | 'address';\n /** Step number (1-12) this field belongs to */\n step: number;\n /** Whether this field is collected during onboarding */\n isOnboarding: boolean;\n /**\n * All UDP fields are optional — users can skip any question.\n * This flag is kept for metadata/documentation but does not affect form flow.\n */\n optional?: boolean;\n /** Help text shown below the field */\n description?: string;\n /** Mark as sensitive (shown with privacy notice) */\n sensitive?: boolean;\n /** If set, field only applicable when referenced field has one of the listed values */\n conditionalOn?: { field: string; values: string[] };\n}\n\nexport interface SelectField extends BaseField {\n type: 'single_select';\n options: FieldOption[];\n}\n\nexport interface MultiSelectField extends BaseField {\n type: 'multi_select';\n options: FieldOption[];\n maxSelect?: number;\n}\n\nexport interface TextField extends BaseField {\n type: 'text' | 'textarea';\n maxLength?: number;\n}\n\nexport interface NumberField extends BaseField {\n type: 'number';\n min?: number;\n max?: number;\n}\n\nexport type ProfileField =\n | SelectField\n | MultiSelectField\n | TextField\n | NumberField\n | (BaseField & { type: 'date' | 'object' | 'object_array' | 'address' });\n\nexport interface FieldGroup {\n key: string;\n label: string;\n description?: string;\n step: number;\n fields: ProfileField[];\n}\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/profile-fields/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG","sourcesContent":["/**\n * Type definitions for UDP profile field configuration.\n *\n * Mirrors the dating-schema profile-fields/types.ts pattern.\n * These types describe field metadata — NOT the user's actual profile data.\n */\n\nexport interface FieldOption {\n value: string;\n label: string;\n /** Short description — shown on chips/cards */\n description?: string;\n}\n\nexport interface BaseField {\n /** Display order within the step */\n order: number;\n /** Unique key — maps to DB field name */\n key: string;\n /** Human-readable label */\n label: string;\n /** Field type for form rendering */\n type:\n | 'text'\n | 'textarea'\n | 'number'\n | 'date'\n | 'single_select'\n | 'multi_select'\n | 'object'\n | 'object_array'\n | 'address';\n /** Step number (1-12) this field belongs to */\n step: number;\n /** Whether this field is collected during onboarding */\n isOnboarding: boolean;\n /**\n * All UDP fields are optional — users can skip any question.\n * This flag is kept for metadata/documentation but does not affect form flow.\n */\n optional?: boolean;\n /** Help text shown below the field */\n description?: string;\n /** Mark as sensitive (shown with privacy notice) */\n sensitive?: boolean;\n /**\n * If set, field visibility is conditional on another field's value.\n * - `values`: positive match — only visible when referenced field's value is in the list.\n * - `notIn`: negative match — only visible when referenced field's value is NOT in the list.\n * An undefined referenced value counts as \"not in the list\" (field is shown).\n */\n conditionalOn?:\n | { field: string; values: string[] }\n | { field: string; notIn: string[] };\n}\n\nexport interface SelectField extends BaseField {\n type: 'single_select';\n options: FieldOption[];\n}\n\nexport interface MultiSelectField extends BaseField {\n type: 'multi_select';\n options: FieldOption[];\n maxSelect?: number;\n}\n\nexport interface TextField extends BaseField {\n type: 'text' | 'textarea';\n maxLength?: number;\n}\n\nexport interface NumberField extends BaseField {\n type: 'number';\n min?: number;\n max?: number;\n}\n\nexport type ProfileField =\n | SelectField\n | MultiSelectField\n | TextField\n | NumberField\n | (BaseField & { type: 'date' | 'object' | 'object_array' | 'address' });\n\nexport interface FieldGroup {\n key: string;\n label: string;\n description?: string;\n step: number;\n fields: ProfileField[];\n}\n"]}