@explorer02/cfm-survey-sdk 0.2.0 → 0.2.2

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 (88) hide show
  1. package/dist/cli/index.js +18 -18
  2. package/dist/cli/index.mjs +14 -14
  3. package/dist/index.d.mts +465 -580
  4. package/dist/index.d.ts +465 -580
  5. package/dist/index.js +1 -1
  6. package/dist/index.mjs +1 -1
  7. package/package.json +6 -4
  8. package/postinstall.js +96 -64
  9. package/templates/AGENT.md +15 -7
  10. package/templates/docs/00-integration/answer-logic-and-navigation.md +50 -0
  11. package/templates/docs/00-integration/aws-deploy.md +281 -0
  12. package/templates/docs/00-integration/client-integration-guide.md +351 -0
  13. package/templates/docs/00-integration/component-checklist.md +84 -0
  14. package/templates/docs/00-integration/constraints.md +65 -3
  15. package/templates/docs/00-integration/custom-field-logic-and-navigation.md +174 -0
  16. package/templates/docs/00-integration/display-logic-and-navigation.md +49 -0
  17. package/templates/docs/00-integration/end-page-logic.md +64 -0
  18. package/templates/docs/00-integration/partial-save-and-recovery.md +74 -0
  19. package/templates/docs/00-integration/placeholders-and-tokens.md +116 -0
  20. package/templates/docs/00-integration/progress.md +61 -0
  21. package/templates/docs/00-integration/question-display-variants.md +65 -0
  22. package/templates/docs/00-integration/question-numbering.md +51 -0
  23. package/templates/docs/00-integration/question-type-sdk-matrix.md +242 -0
  24. package/templates/docs/00-integration/setup.md +84 -0
  25. package/templates/docs/00-integration/skip-logic-and-navigation.md +80 -0
  26. package/templates/docs/00-integration/survey-lifecycle-analytics.md +94 -0
  27. package/templates/docs/00-integration/useSurveySDK.md +151 -23
  28. package/templates/docs/01-components/01-survey-page.md +76 -54
  29. package/templates/docs/01-components/02-question.md +77 -89
  30. package/templates/docs/01-components/03-rating-scale.md +11 -1
  31. package/templates/docs/01-components/04-star-rating-scale.md +45 -0
  32. package/templates/docs/01-components/05-csat-matrix-scale.md +20 -11
  33. package/templates/docs/01-components/06-likert-matrix-scale.md +12 -3
  34. package/templates/docs/01-components/07-slider-matrix-scale.md +11 -2
  35. package/templates/docs/01-components/08-file-upload-scale.md +10 -1
  36. package/templates/docs/01-components/09-custom-slider-track.md +2 -2
  37. package/templates/docs/01-components/11-progress-bar.md +10 -4
  38. package/templates/docs/01-components/13-matrix-dropdown.md +3 -1
  39. package/templates/docs/01-components/14-intro-page.md +34 -0
  40. package/templates/docs/01-components/15-end-page.md +31 -0
  41. package/templates/docs/01-components/16-paused-page.md +27 -0
  42. package/templates/docs/01-components/17-heatmap-scale.md +75 -0
  43. package/templates/docs/01-components/18-rank-order-scale.md +100 -0
  44. package/templates/docs/01-components/README.md +44 -36
  45. package/templates/docs/02-reference/config-field-index.md +141 -139
  46. package/templates/docs/02-reference/exports.md +149 -0
  47. package/templates/docs/02-reference/question-types/01-rating.md +31 -32
  48. package/templates/docs/02-reference/question-types/04-csat.md +51 -42
  49. package/templates/docs/02-reference/question-types/05-rating-scale.md +16 -11
  50. package/templates/docs/02-reference/question-types/06-slider.md +2 -2
  51. package/templates/docs/02-reference/question-types/07-matrix-cfm.md +44 -30
  52. package/templates/docs/02-reference/question-types/08-matrix-csat.md +4 -26
  53. package/templates/docs/02-reference/question-types/09-matrix-rating.md +29 -13
  54. package/templates/docs/02-reference/question-types/10-slider-matrix.md +15 -4
  55. package/templates/docs/02-reference/question-types/11-file-upload.md +13 -2
  56. package/templates/docs/02-reference/question-types/12-heatmap.md +59 -0
  57. package/templates/docs/02-reference/question-types/13-rank-order.md +101 -0
  58. package/templates/docs/02-reference/question-types/README.md +86 -47
  59. package/templates/docs/02-reference/routing-table.md +33 -18
  60. package/templates/docs/02-reference/value-derivation.md +63 -0
  61. package/templates/docs/03-ui-specs/00-question-shell.md +24 -80
  62. package/templates/docs/03-ui-specs/01-rating.md +12 -54
  63. package/templates/docs/03-ui-specs/02-radio.md +21 -33
  64. package/templates/docs/03-ui-specs/03-text.md +2 -2
  65. package/templates/docs/03-ui-specs/04-csat.md +38 -33
  66. package/templates/docs/03-ui-specs/05-rating-scale.md +21 -18
  67. package/templates/docs/03-ui-specs/06-slider.md +3 -1
  68. package/templates/docs/03-ui-specs/07-matrix-cfm.md +25 -22
  69. package/templates/docs/03-ui-specs/08-matrix-csat-rating.md +18 -46
  70. package/templates/docs/03-ui-specs/09-slider-matrix.md +2 -2
  71. package/templates/docs/03-ui-specs/10-file-upload.md +2 -2
  72. package/templates/docs/03-ui-specs/11-text-and-media.md +29 -29
  73. package/templates/docs/03-ui-specs/12-survey-chrome.md +20 -14
  74. package/templates/docs/03-ui-specs/13-heatmap.md +73 -0
  75. package/templates/docs/03-ui-specs/14-rank-order.md +59 -0
  76. package/templates/docs/03-ui-specs/README.md +14 -13
  77. package/templates/docs/03-ui-specs/shared/custom-slider-track.md +3 -3
  78. package/templates/docs/03-ui-specs/shared/matrix-dropdown.md +6 -1
  79. package/templates/docs/MANIFEST.json +454 -67
  80. package/templates/docs/index.md +84 -29
  81. package/templates/docs/templates/Question.tsx +310 -0
  82. package/templates/docs/templates/deploy-to-aws.sh +114 -0
  83. package/templates/docs/templates/heatmapCoords.ts +58 -0
  84. package/templates/docs/templates/implementation_plan.md +115 -49
  85. package/templates/docs/templates/survey-inventory.schema.json +72 -0
  86. package/templates/docs/templates/verify-agent-build.sh +53 -0
  87. package/templates/docs/01-components/04-csat-scale.md +0 -40
  88. package/templates/docs/02-question-types/01-rating.md +0 -44
@@ -1,150 +1,537 @@
1
1
  {
2
- "version": "1.0.0",
2
+ "docsSchemaVersion": "2.3.0",
3
+ "sdkTypesVersion": "0.2.1",
3
4
  "packageNames": {
4
5
  "npm": "@explorer02/cfm-survey-sdk",
5
6
  "monorepo": "@repo/sdk"
6
7
  },
7
- "entryPoint": "index.md",
8
- "clientInputs": ["initialPrompt", "instanceIdJwt", "deployConfirmation"],
8
+ "entryPoints": {
9
+ "index": "index.md",
10
+ "agentMonorepo": "../AGENT.md",
11
+ "agentNpm": "node_modules/@explorer02/cfm-survey-sdk/templates/AGENT.md"
12
+ },
13
+ "clientInputs": [
14
+ "initialPrompt",
15
+ "instanceIdJwt",
16
+ "deployConfirmation"
17
+ ],
18
+ "hookContract": {
19
+ "answersField": "state.answers",
20
+ "customFieldValuesField": "options.customFieldValues",
21
+ "changePayload": {
22
+ "questionId": "string",
23
+ "answerValue": "AnswerValue"
24
+ },
25
+ "stableRefs": [
26
+ "placeholders",
27
+ "customFieldValues",
28
+ "surveyOptions useMemo"
29
+ ],
30
+ "lifecycleActions": [
31
+ "SCROLL",
32
+ "RECORD_QUESTION_VIEW"
33
+ ],
34
+ "visibilityHelpers": {
35
+ "getVisibleMcqOptionsForAnswers": "4th arg customFieldValues optional",
36
+ "getVisibleRankOrderOptionsForAnswers": "4th arg customFieldValues optional",
37
+ "getVisibleMatrixItemsForAnswers": "4th arg customFieldValues optional",
38
+ "getVisibleStatementRowsForAnswers": "4th arg customFieldValues optional",
39
+ "getVisibleScaleColumnsForAnswers": "4th arg customFieldValues optional"
40
+ },
41
+ "forbiddenImports": [
42
+ "@explorer02/cfm-survey-sdk/src/**",
43
+ "@repo/sdk/src/**"
44
+ ]
45
+ },
46
+ "integrationDocs": [
47
+ {
48
+ "path": "00-integration/client-integration-guide.md",
49
+ "purpose": "Master wiring map — start here for full client integration"
50
+ },
51
+ {
52
+ "path": "00-integration/useSurveySDK.md",
53
+ "purpose": "Hook signature, actions, validation, lifecycle, partial save"
54
+ },
55
+ {
56
+ "path": "00-integration/skip-logic-and-navigation.md",
57
+ "purpose": "Skip logic behavior and client nav responsibilities"
58
+ },
59
+ {
60
+ "path": "00-integration/display-logic-and-navigation.md",
61
+ "purpose": "Question-level display logic and currentQuestions"
62
+ },
63
+ {
64
+ "path": "00-integration/answer-logic-and-navigation.md",
65
+ "purpose": "Option/row/column answer logic and visibility helpers"
66
+ },
67
+ {
68
+ "path": "00-integration/custom-field-logic-and-navigation.md",
69
+ "purpose": "CRM custom fields in logic rules — two wiring points"
70
+ },
71
+ {
72
+ "path": "00-integration/question-display-variants.md",
73
+ "purpose": "Conditional question text variants — SDK resolves questionText on currentQuestions"
74
+ },
75
+ {
76
+ "path": "00-integration/question-numbering.md",
77
+ "purpose": "Active-path question ordinals on currentQuestions.questionNumber"
78
+ },
79
+ {
80
+ "path": "00-integration/end-page-logic.md",
81
+ "purpose": "Multiple end pages — display-logic selection at submit"
82
+ },
83
+ {
84
+ "path": "00-integration/progress.md",
85
+ "purpose": "Progress bar formula and active-path credits"
86
+ },
87
+ {
88
+ "path": "00-integration/constraints.md",
89
+ "purpose": "Non-negotiable rules and troubleshooting"
90
+ },
91
+ {
92
+ "path": "00-integration/aws-deploy.md",
93
+ "purpose": "Deploy static survey UI to AWS via EC2 middle API (S3 + CloudFront)"
94
+ },
95
+ {
96
+ "path": "00-integration/question-type-sdk-matrix.md",
97
+ "purpose": "Master 11-type SDK integration matrix"
98
+ },
99
+ {
100
+ "path": "00-integration/placeholders-and-tokens.md",
101
+ "purpose": "Placeholder token resolution"
102
+ },
103
+ {
104
+ "path": "00-integration/partial-save-and-recovery.md",
105
+ "purpose": "Debounced partial save wiring"
106
+ },
107
+ {
108
+ "path": "00-integration/survey-lifecycle-analytics.md",
109
+ "purpose": "Mark-as-started and question activity"
110
+ }
111
+ ],
112
+ "deployTargets": {
113
+ "aws": {
114
+ "doc": "00-integration/aws-deploy.md",
115
+ "script": "templates/deploy-to-aws.sh",
116
+ "apiBaseEnv": "CFM_DEPLOY_API_BASE",
117
+ "apiBaseDefault": "http://43.204.26.213:3000",
118
+ "instanceIdEnv": "CFM_INSTANCE_ID",
119
+ "outDirEnv": "OUT_DIR",
120
+ "healthPath": "/health",
121
+ "startPath": "/deploy/start",
122
+ "completePath": "/deploy/complete",
123
+ "maxFiles": 500,
124
+ "staticOutputDir": "out",
125
+ "frameworkStaticExport": {
126
+ "nextjs": {
127
+ "output": "export",
128
+ "assetPrefix": "./",
129
+ "imagesUnoptimized": true,
130
+ "postBuildCopy": ["index.txt", "index.html.txt"]
131
+ }
132
+ }
133
+ },
134
+ "vercel": {
135
+ "doc": "00-integration/setup.md",
136
+ "command": "npx cfm-sdk deploy",
137
+ "prerequisites": ["npm run build passes", "VERCEL_TOKEN or Vercel CLI"]
138
+ }
139
+ },
140
+ "sdkFeatures": {
141
+ "customFieldLogic": true,
142
+ "skipLogic": true,
143
+ "displayLogic": true,
144
+ "answerLogic": true,
145
+ "partialSave": true,
146
+ "markAsStarted": true,
147
+ "questionActivity": true,
148
+ "progressBar": true,
149
+ "placeholderResolution": true,
150
+ "visibilityHelpers": true,
151
+ "questionDisplayVariants": true,
152
+ "questionNumbering": true,
153
+ "endPageLogic": true
154
+ },
155
+ "typeLiterals": [
156
+ "MCQ",
157
+ "TEXTFIELD",
158
+ "NPS_SCALE",
159
+ "CFM_MATRIX",
160
+ "CSAT_MATRIX",
161
+ "RATING_MATRIX",
162
+ "SLIDER_MATRIX",
163
+ "FILE_UPLOAD",
164
+ "TEXT_AND_MEDIA",
165
+ "HEATMAP",
166
+ "RANK_ORDER"
167
+ ],
9
168
  "phases": [
10
169
  {
11
170
  "id": 0,
12
171
  "name": "orient",
13
- "read": ["index.md", "../AGENT.md"],
14
- "actions": ["detectFramework", "extractBrandingFromClientPrompt"]
172
+ "read": [
173
+ "index.md",
174
+ "../AGENT.md"
175
+ ],
176
+ "actions": [
177
+ "detectFramework",
178
+ "extractBrandingFromClientPrompt"
179
+ ]
15
180
  },
16
181
  {
17
182
  "id": 1,
18
183
  "name": "scaffold",
19
- "read": ["00-integration/setup.md"],
20
- "frameworks": ["nextjs", "vite", "cra"]
184
+ "read": [
185
+ "00-integration/setup.md"
186
+ ],
187
+ "frameworks": [
188
+ "nextjs",
189
+ "vite",
190
+ "cra"
191
+ ]
21
192
  },
22
193
  {
23
194
  "id": 2,
24
195
  "name": "instanceId",
25
- "read": ["00-integration/useSurveySDK.md"]
196
+ "read": [
197
+ "00-integration/useSurveySDK.md"
198
+ ]
26
199
  },
27
200
  {
28
201
  "id": 3,
29
202
  "name": "sdkContract",
30
- "read": ["00-integration/useSurveySDK.md"]
203
+ "read": [
204
+ "00-integration/client-integration-guide.md",
205
+ "00-integration/useSurveySDK.md",
206
+ "00-integration/question-type-sdk-matrix.md",
207
+ "02-reference/exports.md",
208
+ "02-reference/value-derivation.md",
209
+ "00-integration/skip-logic-and-navigation.md",
210
+ "00-integration/display-logic-and-navigation.md",
211
+ "00-integration/answer-logic-and-navigation.md",
212
+ "00-integration/custom-field-logic-and-navigation.md",
213
+ "00-integration/question-display-variants.md",
214
+ "00-integration/question-numbering.md",
215
+ "00-integration/placeholders-and-tokens.md",
216
+ "00-integration/partial-save-and-recovery.md",
217
+ "00-integration/survey-lifecycle-analytics.md",
218
+ "00-integration/end-page-logic.md",
219
+ "00-integration/progress.md"
220
+ ]
31
221
  },
32
222
  {
33
223
  "id": 4,
34
224
  "name": "planAndIngest",
35
- "read": [
36
- "01-components/README.md",
225
+ "readAlways": [
226
+ "00-integration/component-checklist.md",
227
+ "00-integration/question-type-sdk-matrix.md",
228
+ "03-ui-specs/00-question-shell.md",
229
+ "03-ui-specs/12-survey-chrome.md",
37
230
  "01-components/01-survey-page.md",
38
231
  "01-components/02-question.md",
39
- "01-components/03-rating-scale.md",
40
- "01-components/04-csat-scale.md",
41
- "01-components/05-csat-matrix-scale.md",
42
- "01-components/06-likert-matrix-scale.md",
43
- "01-components/07-slider-matrix-scale.md",
44
- "01-components/08-file-upload-scale.md",
45
- "01-components/09-custom-slider-track.md",
46
- "01-components/10-header-footer.md",
47
- "01-components/11-progress-bar.md",
48
- "01-components/12-language-selector.md",
49
- "01-components/13-matrix-dropdown.md"
232
+ "01-components/14-intro-page.md",
233
+ "01-components/15-end-page.md",
234
+ "01-components/16-paused-page.md"
50
235
  ],
236
+ "readPerType": "questionTypes.{type}.blueprint + questionTypes.{type}.reference + questionTypes.{type}.uiSpec",
237
+ "readSharedWhen": "sharedUiSpecTriggers",
51
238
  "template": "templates/implementation_plan.md",
239
+ "inventorySchema": "templates/survey-inventory.schema.json",
240
+ "questionDispatcher": "templates/Question.tsx",
52
241
  "output": "implementation_plan.md"
53
242
  },
54
243
  {
55
244
  "id": 5,
56
245
  "name": "build",
57
- "read": ["00-integration/constraints.md", "02-reference/routing-table.md"],
246
+ "read": [
247
+ "00-integration/constraints.md",
248
+ "02-reference/routing-table.md"
249
+ ],
58
250
  "onDemand": "02-reference/question-types"
59
251
  },
60
252
  {
61
253
  "id": 6,
62
254
  "name": "verify",
63
- "read": ["00-integration/constraints.md"],
255
+ "read": [
256
+ "00-integration/constraints.md"
257
+ ],
258
+ "script": "templates/verify-agent-build.sh",
64
259
  "checklist": [
65
- "questionDispatcherCoversAll12Types",
260
+ "questionDispatcherCoversAll11Types",
261
+ "flatTypeRoutingNoSubType",
262
+ "noStubPlaceholderText",
66
263
  "everyQuestionWrapperHasId",
67
264
  "noInternalSdkImports",
68
- "surveyPageFiveStates",
69
- "npmRunBuildPasses"
265
+ "surveyPagePhaseRouter",
266
+ "lifecycleEffectsWired",
267
+ "placeholdersStableRef",
268
+ "customFieldValuesStableRef",
269
+ "customFieldValuesPassedToVisibilityHelpers",
270
+ "monorepoSdkBuilt",
271
+ "npmRunBuildPasses",
272
+ "nextStaticExportConfigured",
273
+ "outIndexHtmlExists",
274
+ "outFileCountUnder500"
70
275
  ]
71
276
  },
72
277
  {
73
278
  "id": 7,
74
279
  "name": "deploy",
75
- "command": "npx cfm-sdk deploy"
280
+ "requiresClientConfirmation": true,
281
+ "selectTargetFromPrompt": {
282
+ "awsKeywords": ["aws", "cloudfront", "s3", "ec2", "sprinklr"],
283
+ "default": "vercel"
284
+ },
285
+ "targets": {
286
+ "aws": {
287
+ "read": [
288
+ "00-integration/aws-deploy.md",
289
+ "00-integration/setup.md#nextjs-aws-static-export"
290
+ ],
291
+ "script": "templates/deploy-to-aws.sh",
292
+ "prerequisites": [
293
+ "phase6VerifyPassed",
294
+ "npmRunBuildPasses",
295
+ "instanceIdMatchesSurveyPage"
296
+ ],
297
+ "env": {
298
+ "CFM_DEPLOY_API_BASE": "http://43.204.26.213:3000",
299
+ "CFM_INSTANCE_ID": "same JWT as SurveyPage SURVEY_INSTANCE_ID",
300
+ "OUT_DIR": "absolute path to out/ (Next.js) or dist/ (Vite)"
301
+ },
302
+ "verifyAfterDeploy": [
303
+ "indexHtml200",
304
+ "nestedStaticAssets200",
305
+ "noRootAbsoluteAssetPaths"
306
+ ]
307
+ },
308
+ "vercel": {
309
+ "read": [],
310
+ "command": "npx cfm-sdk deploy",
311
+ "prerequisites": [
312
+ "npm run build passes",
313
+ "VERCEL_TOKEN or Vercel CLI authenticated"
314
+ ]
315
+ }
316
+ }
76
317
  }
77
318
  ],
78
319
  "questionTypes": {
79
- "rating": {
80
- "component": "01-components/03-rating-scale.md",
81
- "reference": "02-reference/question-types/01-rating.md"
320
+ "nps": {
321
+ "typeLiteral": "NPS_SCALE",
322
+ "sdkTypeFile": "fetchSurvey/types/nps.ts",
323
+ "componentFiles": [
324
+ "RatingScale.tsx"
325
+ ],
326
+ "blueprint": "01-components/03-rating-scale.md",
327
+ "reference": "02-reference/question-types/01-rating.md",
328
+ "uiSpec": "03-ui-specs/01-rating.md",
329
+ "answerShape": "number",
330
+ "blocking": false
82
331
  },
83
- "radio": {
84
- "component": "01-components/02-question.md",
85
- "reference": "02-reference/question-types/README.md#radio"
332
+ "mcq": {
333
+ "typeLiteral": "MCQ",
334
+ "sdkTypeFile": "fetchSurvey/types/mcq.ts",
335
+ "componentFiles": [],
336
+ "blueprint": "01-components/02-question.md",
337
+ "reference": "02-reference/question-types/README.md#mcq",
338
+ "uiSpec": "03-ui-specs/02-radio.md",
339
+ "answerShape": "string | number",
340
+ "blocking": false
86
341
  },
87
- "text": {
88
- "component": "01-components/02-question.md",
89
- "reference": "02-reference/question-types/README.md#text"
342
+ "text_input": {
343
+ "typeLiteral": "TEXTFIELD",
344
+ "sdkTypeFile": "fetchSurvey/types/textInput.ts",
345
+ "componentFiles": [],
346
+ "blueprint": "01-components/02-question.md",
347
+ "reference": "02-reference/question-types/README.md#text_input",
348
+ "uiSpec": "03-ui-specs/03-text.md",
349
+ "answerShape": "string",
350
+ "blocking": false
90
351
  },
91
352
  "csat": {
92
- "component": "01-components/04-csat-scale.md",
93
- "reference": "02-reference/question-types/04-csat.md"
353
+ "typeLiteral": "CSAT_MATRIX",
354
+ "sdkTypeFile": "fetchSurvey/types/csat.ts",
355
+ "componentFiles": [
356
+ "CsatMatrixScale.tsx",
357
+ "MatrixDropdown.tsx",
358
+ "CustomSliderTrack.tsx"
359
+ ],
360
+ "blueprint": "01-components/05-csat-matrix-scale.md",
361
+ "reference": "02-reference/question-types/04-csat.md",
362
+ "uiSpec": "03-ui-specs/04-csat.md",
363
+ "answerShape": "MatrixRowAnswers",
364
+ "blocking": true
94
365
  },
95
- "rating_scale": {
96
- "component": "01-components/03-rating-scale.md",
97
- "reference": "02-reference/question-types/05-rating-scale.md"
366
+ "star_rating": {
367
+ "deprecated": true,
368
+ "typeLiteral": "star_rating",
369
+ "sdkTypeFile": "fetchSurvey/types/starRating.ts",
370
+ "componentFiles": [
371
+ "RatingScale.tsx"
372
+ ],
373
+ "blueprint": "01-components/04-star-rating-scale.md",
374
+ "reference": "02-reference/question-types/05-rating-scale.md",
375
+ "uiSpec": "03-ui-specs/05-rating-scale.md",
376
+ "answerShape": "number",
377
+ "blocking": false
98
378
  },
99
379
  "slider": {
100
- "component": "01-components/09-custom-slider-track.md",
101
- "reference": "02-reference/question-types/06-slider.md"
380
+ "deprecated": true,
381
+ "typeLiteral": "slider",
382
+ "sdkTypeFile": "fetchSurvey/types/slider.ts",
383
+ "componentFiles": [
384
+ "CustomSliderTrack.tsx"
385
+ ],
386
+ "blueprint": "01-components/09-custom-slider-track.md",
387
+ "reference": "02-reference/question-types/06-slider.md",
388
+ "uiSpec": "03-ui-specs/06-slider.md",
389
+ "answerShape": "number",
390
+ "blocking": false
102
391
  },
103
- "matrix": {
104
- "component": "01-components/06-likert-matrix-scale.md",
392
+ "cfm_matrix": {
393
+ "typeLiteral": "CFM_MATRIX",
394
+ "sdkTypeFile": "fetchSurvey/types/cfmMatrix.ts",
395
+ "componentFiles": [
396
+ "LikertMatrixScale.tsx",
397
+ "MatrixDropdown.tsx"
398
+ ],
399
+ "blueprint": "01-components/06-likert-matrix-scale.md",
105
400
  "reference": "02-reference/question-types/07-matrix-cfm.md",
106
- "subTypes": {
107
- "CFM_MATRIX": "01-components/06-likert-matrix-scale.md",
108
- "CSAT_MATRIX": "01-components/05-csat-matrix-scale.md",
109
- "RATING_MATRIX": "01-components/05-csat-matrix-scale.md"
110
- }
401
+ "uiSpec": "03-ui-specs/07-matrix-cfm.md",
402
+ "answerShape": "MatrixRowAnswers",
403
+ "blocking": true
111
404
  },
112
405
  "rating_matrix": {
113
- "component": "01-components/05-csat-matrix-scale.md",
114
- "reference": "02-reference/question-types/09-matrix-rating.md"
406
+ "typeLiteral": "RATING_MATRIX",
407
+ "sdkTypeFile": "fetchSurvey/types/ratingMatrix.ts",
408
+ "componentFiles": [
409
+ "CsatMatrixScale.tsx",
410
+ "MatrixDropdown.tsx",
411
+ "CustomSliderTrack.tsx"
412
+ ],
413
+ "blueprint": "01-components/05-csat-matrix-scale.md",
414
+ "reference": "02-reference/question-types/09-matrix-rating.md",
415
+ "uiSpec": "03-ui-specs/08-matrix-csat-rating.md",
416
+ "answerShape": "MatrixRowAnswers",
417
+ "blocking": true
115
418
  },
116
419
  "slider_matrix": {
117
- "component": "01-components/07-slider-matrix-scale.md",
118
- "reference": "02-reference/question-types/10-slider-matrix.md"
420
+ "typeLiteral": "SLIDER_MATRIX",
421
+ "sdkTypeFile": "fetchSurvey/types/sliderMatrix.ts",
422
+ "componentFiles": [
423
+ "SliderMatrixScale.tsx",
424
+ "CustomSliderTrack.tsx"
425
+ ],
426
+ "blueprint": "01-components/07-slider-matrix-scale.md",
427
+ "reference": "02-reference/question-types/10-slider-matrix.md",
428
+ "uiSpec": "03-ui-specs/09-slider-matrix.md",
429
+ "answerShape": "MatrixRowAnswers",
430
+ "blocking": true
119
431
  },
120
432
  "file_upload": {
121
- "component": "01-components/08-file-upload-scale.md",
122
- "reference": "02-reference/question-types/11-file-upload.md"
433
+ "typeLiteral": "FILE_UPLOAD",
434
+ "sdkTypeFile": "fetchSurvey/types/fileUpload.ts",
435
+ "componentFiles": [
436
+ "FileUploadScale.tsx"
437
+ ],
438
+ "blueprint": "01-components/08-file-upload-scale.md",
439
+ "reference": "02-reference/question-types/11-file-upload.md",
440
+ "uiSpec": "03-ui-specs/10-file-upload.md",
441
+ "answerShape": "UploadedFile[]",
442
+ "blocking": true
123
443
  },
124
444
  "text_and_media": {
125
- "component": "01-components/02-question.md",
126
- "reference": "02-reference/question-types/README.md#text_and_media"
445
+ "typeLiteral": "TEXT_AND_MEDIA",
446
+ "sdkTypeFile": "fetchSurvey/types/textAndMedia.ts",
447
+ "componentFiles": [],
448
+ "blueprint": "01-components/02-question.md",
449
+ "reference": "02-reference/question-types/README.md#text_and_media",
450
+ "uiSpec": "03-ui-specs/11-text-and-media.md",
451
+ "answerShape": "none",
452
+ "blocking": false
453
+ },
454
+ "heatmap": {
455
+ "typeLiteral": "HEATMAP",
456
+ "sdkTypeFile": "fetchSurvey/types/heatmap.ts",
457
+ "componentFiles": [
458
+ "HeatmapScale.tsx"
459
+ ],
460
+ "blueprint": "01-components/17-heatmap-scale.md",
461
+ "reference": "02-reference/question-types/12-heatmap.md",
462
+ "uiSpec": "03-ui-specs/13-heatmap.md",
463
+ "answerShape": "HeatmapAnswer",
464
+ "blocking": false
465
+ },
466
+ "rank_order": {
467
+ "typeLiteral": "RANK_ORDER",
468
+ "sdkTypeFile": "fetchSurvey/types/rankOrder.ts",
469
+ "componentFiles": [
470
+ "RankOrderScale.tsx"
471
+ ],
472
+ "blueprint": "01-components/18-rank-order-scale.md",
473
+ "reference": "02-reference/question-types/13-rank-order.md",
474
+ "uiSpec": "03-ui-specs/14-rank-order.md",
475
+ "answerShape": "RankOrderAnswers",
476
+ "blocking": false
127
477
  }
128
478
  },
129
479
  "uiSpecs": {
130
480
  "questionShell": "03-ui-specs/00-question-shell.md",
131
- "rating": "03-ui-specs/01-rating.md",
132
- "radio": "03-ui-specs/02-radio.md",
133
- "text": "03-ui-specs/03-text.md",
481
+ "nps": "03-ui-specs/01-rating.md",
482
+ "mcq": "03-ui-specs/02-radio.md",
483
+ "text_input": "03-ui-specs/03-text.md",
134
484
  "csat": "03-ui-specs/04-csat.md",
135
- "rating_scale": "03-ui-specs/05-rating-scale.md",
485
+ "star_rating": "03-ui-specs/05-rating-scale.md",
136
486
  "slider": "03-ui-specs/06-slider.md",
137
- "matrix_CFM_MATRIX": "03-ui-specs/07-matrix-cfm.md",
138
- "matrix_CSAT_MATRIX": "03-ui-specs/08-matrix-csat-rating.md",
139
- "matrix_RATING_MATRIX": "03-ui-specs/08-matrix-csat-rating.md",
487
+ "cfm_matrix": "03-ui-specs/07-matrix-cfm.md",
488
+ "rating_matrix": "03-ui-specs/08-matrix-csat-rating.md",
140
489
  "slider_matrix": "03-ui-specs/09-slider-matrix.md",
141
490
  "file_upload": "03-ui-specs/10-file-upload.md",
142
491
  "text_and_media": "03-ui-specs/11-text-and-media.md",
492
+ "heatmap": "03-ui-specs/13-heatmap.md",
493
+ "rank_order": "03-ui-specs/14-rank-order.md",
143
494
  "surveyChrome": "03-ui-specs/12-survey-chrome.md"
144
495
  },
145
496
  "sharedUiSpecs": {
146
497
  "customSliderTrack": "03-ui-specs/shared/custom-slider-track.md",
147
498
  "matrixDropdown": "03-ui-specs/shared/matrix-dropdown.md"
148
499
  },
149
- "configFieldIndex": "02-reference/config-field-index.md"
500
+ "sharedUiSpecTriggers": {
501
+ "gridLayout:dropdown": [
502
+ "matrixDropdown"
503
+ ],
504
+ "displayStyle:dropdown": [
505
+ "matrixDropdown"
506
+ ],
507
+ "displayStyle:selectbox": [
508
+ "matrixDropdown"
509
+ ],
510
+ "displayStyle:graphics": [
511
+ "customSliderTrack"
512
+ ],
513
+ "statementLayout:bipolar": []
514
+ },
515
+ "configFieldIndex": "02-reference/config-field-index.md",
516
+ "verify": {
517
+ "grepStubText": "grep -r \"not yet implemented\" src/ components/ app/ 2>/dev/null || true",
518
+ "grepInternalImports": "grep -r \"@explorer02/cfm-survey-sdk/src\\|@repo/sdk/src\" src/ components/ app/ 2>/dev/null || true",
519
+ "requiredDispatcherTypes": [
520
+ "MCQ",
521
+ "TEXTFIELD",
522
+ "NPS_SCALE",
523
+ "CFM_MATRIX",
524
+ "CSAT_MATRIX",
525
+ "RATING_MATRIX",
526
+ "SLIDER_MATRIX",
527
+ "FILE_UPLOAD",
528
+ "TEXT_AND_MEDIA",
529
+ "HEATMAP",
530
+ "RANK_ORDER"
531
+ ]
532
+ },
533
+ "doNotRead": [
534
+ "packages/sdk/src/**",
535
+ "node_modules/@explorer02/cfm-survey-sdk/src/**"
536
+ ]
150
537
  }