@case-framework/survey-assistant 0.8.0 → 0.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 (114) hide show
  1. package/dist/{authoring-references-DbuOKerg.mjs → authoring-references-CmwLc_C8.mjs} +40 -32
  2. package/dist/authoring-references-CmwLc_C8.mjs.map +1 -0
  3. package/dist/capabilities-D55dq-fO.mjs +582 -0
  4. package/dist/capabilities-D55dq-fO.mjs.map +1 -0
  5. package/dist/capabilities-default.d.mts +4 -12
  6. package/dist/capabilities-default.d.mts.map +1 -1
  7. package/dist/capabilities-default.mjs +2 -2
  8. package/dist/capabilities-z95e1mti.d.mts +117 -0
  9. package/dist/capabilities-z95e1mti.d.mts.map +1 -0
  10. package/dist/{constants-B6HzpEsx.d.mts → constants-HL_klgJl.d.mts} +4 -4
  11. package/dist/{constants-B6HzpEsx.d.mts.map → constants-HL_klgJl.d.mts.map} +1 -1
  12. package/dist/{controller-proxy-DEeFl9IA.mjs → controller-proxy-BQ1YsVxJ.mjs} +4 -3
  13. package/dist/controller-proxy-BQ1YsVxJ.mjs.map +1 -0
  14. package/dist/{controller-proxy-D7uQfm5f.d.mts → controller-proxy-Cmzdr9tV.d.mts} +4 -4
  15. package/dist/{controller-proxy-D7uQfm5f.d.mts.map → controller-proxy-Cmzdr9tV.d.mts.map} +1 -1
  16. package/dist/default-D22AKTqE.mjs +233 -0
  17. package/dist/default-D22AKTqE.mjs.map +1 -0
  18. package/dist/{digest-C39WyAWG.d.mts → digest-FnTTDBq2.d.mts} +2 -2
  19. package/dist/digest-FnTTDBq2.d.mts.map +1 -0
  20. package/dist/digest.d.mts +1 -1
  21. package/dist/engine-D950TfvC.mjs +3098 -0
  22. package/dist/engine-D950TfvC.mjs.map +1 -0
  23. package/dist/engine.d.mts +4 -3
  24. package/dist/engine.mjs +3 -3
  25. package/dist/{index-WB5kfnz0.d.mts → index-B8TLBd1G.d.mts} +8 -6
  26. package/dist/index-B8TLBd1G.d.mts.map +1 -0
  27. package/dist/index-CaX3hZmr.d.mts +23813 -0
  28. package/dist/index-CaX3hZmr.d.mts.map +1 -0
  29. package/dist/{index-r5riv4md.d.mts → index-CeUlGkoU.d.mts} +27 -6
  30. package/dist/index-CeUlGkoU.d.mts.map +1 -0
  31. package/dist/{index-D7wT6P3t.d.mts → index-DYHdvSE8.d.mts} +83 -41
  32. package/dist/index-DYHdvSE8.d.mts.map +1 -0
  33. package/dist/lifecycle-DFzxVxpq.d.mts +54346 -0
  34. package/dist/lifecycle-DFzxVxpq.d.mts.map +1 -0
  35. package/dist/{memory-thread-repository-DAnOGIB3.mjs → memory-thread-repository-DmLadygY.mjs} +15 -9
  36. package/dist/{memory-thread-repository-DAnOGIB3.mjs.map → memory-thread-repository-DmLadygY.mjs.map} +1 -1
  37. package/dist/protocol-BQ7uIDYT.mjs +569 -0
  38. package/dist/protocol-BQ7uIDYT.mjs.map +1 -0
  39. package/dist/protocol.d.mts +4 -4
  40. package/dist/protocol.mjs +3 -2
  41. package/dist/{react-C_GY-Fsc.mjs → react-DybJ5pWw.mjs} +17 -11
  42. package/dist/react-DybJ5pWw.mjs.map +1 -0
  43. package/dist/react-integration.d.mts +1 -1
  44. package/dist/react-integration.mjs +1 -1
  45. package/dist/react.d.mts +2 -2
  46. package/dist/react.mjs +2 -2
  47. package/dist/references/assistant-operations.md +190 -215
  48. package/dist/references/core-rules.md +2 -2
  49. package/dist/references/element-types.md +189 -0
  50. package/dist/references/expressions.md +215 -238
  51. package/dist/references/follow-ups.md +151 -0
  52. package/dist/references/localization.md +26 -12
  53. package/dist/references/response-variables.md +3 -3
  54. package/dist/references/rich-text-content.md +22 -43
  55. package/dist/references/source-material-surveys.md +20 -25
  56. package/dist/references/survey-data-model.md +36 -117
  57. package/dist/{request-context-Dg4jSwN1.mjs → request-context-KVh8VjgH.mjs} +4 -4
  58. package/dist/request-context-KVh8VjgH.mjs.map +1 -0
  59. package/dist/server-agent.d.mts +28 -7
  60. package/dist/server-agent.d.mts.map +1 -1
  61. package/dist/server-agent.mjs +33 -25
  62. package/dist/server-agent.mjs.map +1 -1
  63. package/dist/server-runtime.d.mts +6 -5
  64. package/dist/server-runtime.d.mts.map +1 -1
  65. package/dist/server-runtime.mjs +3 -3
  66. package/dist/server-tasks.d.mts +1 -1
  67. package/dist/server-tasks.mjs +1 -1
  68. package/dist/server-tools.d.mts +1 -1
  69. package/dist/server-tools.mjs +1 -1
  70. package/dist/server.d.mts +7 -6
  71. package/dist/server.d.mts.map +1 -1
  72. package/dist/server.mjs +3 -3
  73. package/dist/{tasks-BZEiwgxA.mjs → tasks-Coh5N027.mjs} +16 -15
  74. package/dist/tasks-Coh5N027.mjs.map +1 -0
  75. package/dist/{tasks-B9h3LPam.d.mts → tasks-wb9M-bak.d.mts} +11 -11
  76. package/dist/{tasks-B9h3LPam.d.mts.map → tasks-wb9M-bak.d.mts.map} +1 -1
  77. package/dist/{thread-handlers-Bef0td9N.d.mts → thread-handlers-C3Iya92v.d.mts} +6 -5
  78. package/dist/thread-handlers-C3Iya92v.d.mts.map +1 -0
  79. package/dist/{tools-CEsv-WoO.mjs → tools-D0KBDolR.mjs} +435 -408
  80. package/dist/tools-D0KBDolR.mjs.map +1 -0
  81. package/dist/turn-survey-draft-B34lggSG.d.mts +185 -0
  82. package/dist/turn-survey-draft-B34lggSG.d.mts.map +1 -0
  83. package/dist/ui.d.mts +3 -3
  84. package/dist/ui.d.mts.map +1 -1
  85. package/dist/ui.mjs +35 -23
  86. package/dist/ui.mjs.map +1 -1
  87. package/package.json +7 -7
  88. package/dist/authoring-references-DbuOKerg.mjs.map +0 -1
  89. package/dist/capabilities-CmeeAjEc.d.mts +0 -192
  90. package/dist/capabilities-CmeeAjEc.d.mts.map +0 -1
  91. package/dist/capabilities-DCMA71PP.mjs +0 -58
  92. package/dist/capabilities-DCMA71PP.mjs.map +0 -1
  93. package/dist/controller-proxy-DEeFl9IA.mjs.map +0 -1
  94. package/dist/default-fhSon2RM.mjs +0 -760
  95. package/dist/default-fhSon2RM.mjs.map +0 -1
  96. package/dist/digest-C39WyAWG.d.mts.map +0 -1
  97. package/dist/engine-nXoCWYpQ.mjs +0 -6888
  98. package/dist/engine-nXoCWYpQ.mjs.map +0 -1
  99. package/dist/index-Ciq7vHIs.d.mts +0 -716
  100. package/dist/index-Ciq7vHIs.d.mts.map +0 -1
  101. package/dist/index-D7wT6P3t.d.mts.map +0 -1
  102. package/dist/index-WB5kfnz0.d.mts.map +0 -1
  103. package/dist/index-r5riv4md.d.mts.map +0 -1
  104. package/dist/lifecycle-Dm8u7QFh.d.mts +0 -545
  105. package/dist/lifecycle-Dm8u7QFh.d.mts.map +0 -1
  106. package/dist/protocol-CF4Bh_Ch.mjs +0 -1255
  107. package/dist/protocol-CF4Bh_Ch.mjs.map +0 -1
  108. package/dist/react-C_GY-Fsc.mjs.map +0 -1
  109. package/dist/references/embedded-forms.md +0 -146
  110. package/dist/references/item-types.md +0 -641
  111. package/dist/request-context-Dg4jSwN1.mjs.map +0 -1
  112. package/dist/tasks-BZEiwgxA.mjs.map +0 -1
  113. package/dist/thread-handlers-Bef0td9N.d.mts.map +0 -1
  114. package/dist/tools-CEsv-WoO.mjs.map +0 -1
@@ -15,29 +15,34 @@ const surveyAuthoringReferenceTopics = [
15
15
  "source-material-surveys",
16
16
  "localization",
17
17
  "rich-text-content",
18
- "item-types",
19
- "embedded-forms",
18
+ "element-types",
19
+ "follow-ups",
20
20
  "expressions",
21
21
  "assistant-operations",
22
22
  "fair-by-design",
23
23
  "survey-quality"
24
24
  ];
25
- const ITEM_TYPE_SECTION_HEADINGS = {
26
- group: "group",
27
- "page-break": "page-break",
28
- infoItem: "infoItem",
29
- consentItem: "consentItem",
30
- choiceItem: "choiceItem",
31
- formItem: "formItem",
25
+ const ELEMENT_TYPE_SECTION_HEADINGS = {
26
+ information: "information",
27
+ text: "text",
28
+ number: "number",
29
+ date: "date",
30
+ boolean: "boolean",
31
+ choice: "choice",
32
+ consent: "consent",
32
33
  choiceMatrix: "choiceMatrix",
33
34
  formMatrix: "formMatrix"
34
35
  };
35
- const builtInSurveyAuthoringItemTypes = Object.freeze(Object.keys(ITEM_TYPE_SECTION_HEADINGS));
36
- const extractLevelTwoSection = (markdown, heading) => {
36
+ const builtInSurveyAuthoringElementTypes = Object.freeze(Object.keys(ELEMENT_TYPE_SECTION_HEADINGS));
37
+ const extractSection = (markdown, heading, level = 2) => {
37
38
  const lines = markdown.split("\n");
38
- const sectionStart = lines.findIndex((line) => line.trim() === `## ${heading}`);
39
+ const prefix = "#".repeat(level);
40
+ const sectionStart = lines.findIndex((line) => line.trim() === `${prefix} ${heading}`);
39
41
  if (sectionStart < 0) return;
40
- const nextSectionOffset = lines.slice(sectionStart + 1).findIndex((line) => line.startsWith("## "));
42
+ const nextSectionOffset = lines.slice(sectionStart + 1).findIndex((line) => {
43
+ const match = /^(#+) /.exec(line);
44
+ return match !== null && match[1].length <= level;
45
+ });
41
46
  const sectionEnd = nextSectionOffset < 0 ? lines.length : sectionStart + 1 + nextSectionOffset;
42
47
  return lines.slice(sectionStart, sectionEnd).join("\n").trim();
43
48
  };
@@ -72,15 +77,15 @@ const surveyAuthoringReferences = {
72
77
  content: loadReference("rich-text-content.md"),
73
78
  loadWhen: "Load before authoring or changing meaningful formatting, links, images, headings, lists, info boxes, separators, footnotes, or existing structured rich-text content; do not load it for ordinary unformatted plain text."
74
79
  },
75
- "item-types": {
76
- title: "Item types",
77
- content: loadReference("item-types.md"),
78
- loadWhen: "Load with itemType before creating or changing an item when its configuration, response behavior, or content surfaces are not already fully specified by the current capability and focused operation contract; omit itemType only for a genuine cross-type comparison."
80
+ "element-types": {
81
+ title: "Element types",
82
+ content: loadReference("element-types.md"),
83
+ loadWhen: "Load with elementType before creating or changing an item when its configuration, response behavior, or content surfaces are not already fully specified by the current capability and focused operation contract; omit elementType only for a genuine cross-type comparison."
79
84
  },
80
- "embedded-forms": {
81
- title: "Choice option embedded forms",
82
- content: loadReference("embedded-forms.md"),
83
- loadWhen: "Load before creating or changing a choice-option follow-up or embedded form, including \"Other, specify\", option-specific inputs, embedded field groups, or embedded-form layout and translations."
85
+ "follow-ups": {
86
+ title: "Option-inline follow-ups",
87
+ content: loadReference("follow-ups.md"),
88
+ loadWhen: "Load before creating or changing a choice-option follow-up, including \"Other, specify\", option-specific inputs, semantic sections, layout and owner-role translations."
84
89
  },
85
90
  expressions: {
86
91
  title: "Expressions",
@@ -90,7 +95,7 @@ const surveyAuthoringReferences = {
90
95
  "assistant-operations": {
91
96
  title: "Assistant operations",
92
97
  content: loadReference("assistant-operations.md"),
93
- loadWhen: "Load with operationKind before the first survey_change call when the exact canonical fields of that operation are not already present in the current turn; add itemType when item-specific configuration or capability guidance is needed. Prefer compact detail and use full only for protocol debugging."
98
+ loadWhen: "Load with operationKind before the first survey_change call when the exact canonical fields of that operation are not already present in the current turn; add elementType when item-specific configuration or capability guidance is needed. Prefer compact detail and use full only for protocol debugging."
94
99
  },
95
100
  "fair-by-design": {
96
101
  title: "FAIR-by-design survey authoring",
@@ -106,19 +111,22 @@ const surveyAuthoringReferences = {
106
111
  const formatSurveyAuthoringReferenceRoutingInstructions = () => [
107
112
  "Authoring-reference routing rules:",
108
113
  "Load a relevant focused reference before the first affected mutation or substantive advice, not after guessing a payload or learning through validator failures. Do not reload a reference when its exact relevant contract is already present in the current turn. References define stable authoring conventions and payload grammar; current survey state and currently available runtime references still come from inspection and context tools.",
109
- "For installed capability-specific references, use the capability manifest's advertised reference topics. Load a relevant topic with itemType before changing unfamiliar capability configuration or behavior.",
114
+ "For installed capability-specific references, use the capability manifest's advertised reference topics. Load a relevant topic with elementType before changing unfamiliar capability configuration or behavior.",
110
115
  ...surveyAuthoringReferenceTopics.map((topic) => `- ${topic}: ${surveyAuthoringReferences[topic].loadWhen}`)
111
116
  ].join("\n");
112
- const getBuiltInItemTypeAuthoringReference = (itemType) => {
113
- const heading = ITEM_TYPE_SECTION_HEADINGS[itemType];
117
+ const getBuiltInElementTypeAuthoringReference = (elementType) => {
118
+ const heading = ELEMENT_TYPE_SECTION_HEADINGS[elementType];
114
119
  if (!heading) return;
115
- const content = extractLevelTwoSection(surveyAuthoringReferences["item-types"].content, heading);
116
- return content ? {
117
- title: `${heading} item type`,
118
- content
119
- } : void 0;
120
+ const content = extractSection(surveyAuthoringReferences["element-types"].content, heading);
121
+ if (!content) return void 0;
122
+ const exampleHeading = elementType === "choice" ? "Full worked example: a single-choice question" : elementType === "text" || elementType === "number" ? "Full worked example: a composed question with two inputs" : void 0;
123
+ const example = exampleHeading ? extractSection(surveyAuthoringReferences["assistant-operations"].content, exampleHeading, 3) : void 0;
124
+ return {
125
+ title: `${heading} element type`,
126
+ content: example ? `${content}\n\n${example}` : content
127
+ };
120
128
  };
121
129
  //#endregion
122
- export { surveyAuthoringReferences as a, surveyAuthoringReferenceTopics as i, formatSurveyAuthoringReferenceRoutingInstructions as n, getBuiltInItemTypeAuthoringReference as r, builtInSurveyAuthoringItemTypes as t };
130
+ export { surveyAuthoringReferences as a, surveyAuthoringReferenceTopics as i, formatSurveyAuthoringReferenceRoutingInstructions as n, getBuiltInElementTypeAuthoringReference as r, builtInSurveyAuthoringElementTypes as t };
123
131
 
124
- //# sourceMappingURL=authoring-references-DbuOKerg.mjs.map
132
+ //# sourceMappingURL=authoring-references-CmwLc_C8.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authoring-references-CmwLc_C8.mjs","names":[],"sources":["../../../node_modules/.pnpm/tsdown@0.23.0_@volar+typescript@2.4.28_typescript@6.0.3__typescript@6.0.3_unrun@0.2.39/node_modules/tsdown/esm-shims.js","../src/server/authoring-references.ts"],"sourcesContent":["// Shim globals in esm bundle\nimport path from 'node:path'\nimport { fileURLToPath } from 'node:url'\n\nconst getFilename = () => fileURLToPath(import.meta.url)\nconst getDirname = () => path.dirname(getFilename())\n\nexport const __dirname = /* @__PURE__ */ getDirname()\nexport const __filename = /* @__PURE__ */ getFilename()\n","import { readFileSync } from \"node:fs\";\nimport { resolve } from \"node:path\";\n\nconst loadReference = (fileName: string) =>\n readFileSync(resolve(__dirname, \"references\", fileName), \"utf8\").trim();\n\nexport const surveyAuthoringReferenceTopics = [\n \"core-rules\",\n \"survey-data-model\",\n \"response-variables\",\n \"source-material-surveys\",\n \"localization\",\n \"rich-text-content\",\n \"element-types\",\n \"follow-ups\",\n \"expressions\",\n \"assistant-operations\",\n \"fair-by-design\",\n \"survey-quality\",\n] as const;\n\nexport type SurveyAuthoringReferenceTopic = (typeof surveyAuthoringReferenceTopics)[number];\n\ntype SurveyAuthoringReferenceEntry = {\n title: string;\n content: string;\n loadWhen: string;\n};\n\nconst ELEMENT_TYPE_SECTION_HEADINGS: Readonly<Record<string, string>> = {\n information: \"information\",\n text: \"text\",\n number: \"number\",\n date: \"date\",\n boolean: \"boolean\",\n choice: \"choice\",\n consent: \"consent\",\n choiceMatrix: \"choiceMatrix\",\n formMatrix: \"formMatrix\",\n};\n\nexport const builtInSurveyAuthoringElementTypes = Object.freeze(\n Object.keys(ELEMENT_TYPE_SECTION_HEADINGS),\n);\n\nconst extractSection = (markdown: string, heading: string, level = 2): string | undefined => {\n const lines = markdown.split(\"\\n\");\n const prefix = \"#\".repeat(level);\n const sectionStart = lines.findIndex((line) => line.trim() === `${prefix} ${heading}`);\n if (sectionStart < 0) {\n return undefined;\n }\n\n const nextSectionOffset = lines.slice(sectionStart + 1).findIndex((line) => {\n const match = /^(#+) /.exec(line);\n return match !== null && match[1].length <= level;\n });\n const sectionEnd = nextSectionOffset < 0 ? lines.length : sectionStart + 1 + nextSectionOffset;\n\n return lines.slice(sectionStart, sectionEnd).join(\"\\n\").trim();\n};\n\nexport const surveyAuthoringReferences = {\n \"core-rules\": {\n title: \"Core authoring rules\",\n content: loadReference(\"core-rules.md\"),\n loadWhen:\n \"Load when the task depends on canonical tool choice, validation/apply semantics, identifier handling, or another cross-cutting authoring rule that the current turn has not already established.\",\n },\n \"response-variables\": {\n title: \"Response variables and coding\",\n content: loadReference(\"response-variables.md\"),\n loadWhen:\n \"Load before creating response inputs, changing variable names, option codes, matrix coding components, or export settings. Inspect current response slots for exact IDs and domains.\",\n },\n \"survey-data-model\": {\n title: \"Survey data model\",\n content: loadReference(\"survey-data-model.md\"),\n loadWhen:\n \"Load before reasoning about raw survey storage, hierarchy, ids, translation maps, assets, template values, or any direct survey-json-patch path whose exact location has not already been inspected and documented in the current turn.\",\n },\n \"source-material-surveys\": {\n title: \"Source-material survey implementation\",\n content: loadReference(\"source-material-surveys.md\"),\n loadWhen:\n \"Load before implementing or adapting a questionnaire, document, image, or other supplied source material so completeness, respondent-input mapping, meaningful layout, language, and digital adaptation rules are available before the first mutation.\",\n },\n localization: {\n title: \"Survey localization\",\n content: loadReference(\"localization.md\"),\n loadWhen:\n \"Load before adding, removing, translating, or assessing a survey locale, including requests for localization completeness or locale lifecycle changes.\",\n },\n \"rich-text-content\": {\n title: \"Rich text content\",\n content: loadReference(\"rich-text-content.md\"),\n loadWhen:\n \"Load before authoring or changing meaningful formatting, links, images, headings, lists, info boxes, separators, footnotes, or existing structured rich-text content; do not load it for ordinary unformatted plain text.\",\n },\n \"element-types\": {\n title: \"Element types\",\n content: loadReference(\"element-types.md\"),\n loadWhen:\n \"Load with elementType before creating or changing an item when its configuration, response behavior, or content surfaces are not already fully specified by the current capability and focused operation contract; omit elementType only for a genuine cross-type comparison.\",\n },\n \"follow-ups\": {\n title: \"Option-inline follow-ups\",\n content: loadReference(\"follow-ups.md\"),\n loadWhen:\n 'Load before creating or changing a choice-option follow-up, including \"Other, specify\", option-specific inputs, semantic sections, layout and owner-role translations.',\n },\n expressions: {\n title: \"Expressions\",\n content: loadReference(\"expressions.md\"),\n loadWhen:\n \"Load before the first survey_expression prepare call for expression, condition, validation-expression, prefill, or template-value work unless the exact relevant JsonExpression and mutation shapes were already supplied by a current-turn authoring reference. survey_expression context supplies currently available runtime references and value types, but it does not replace the grammar reference. Expressions are not assumed to be survey-response-only; use the references and variable sources supported by the current runtime and reference.\",\n },\n \"assistant-operations\": {\n title: \"Assistant operations\",\n content: loadReference(\"assistant-operations.md\"),\n loadWhen:\n \"Load with operationKind before the first survey_change call when the exact canonical fields of that operation are not already present in the current turn; add elementType when item-specific configuration or capability guidance is needed. Prefer compact detail and use full only for protocol debugging.\",\n },\n \"fair-by-design\": {\n title: \"FAIR-by-design survey authoring\",\n content: loadReference(\"fair-by-design.md\"),\n loadWhen:\n \"Load before advising or editing when FAIR, interoperability, harmonization, cross-study reuse, stable coding, value sets, missingness semantics, metadata, provenance, versioning, standard instruments, controlled vocabularies, or machine-readable export is material; do not impose it on ordinary authoring.\",\n },\n \"survey-quality\": {\n title: \"Survey quality review\",\n content: loadReference(\"survey-quality.md\"),\n loadWhen:\n \"Load before a substantive questionnaire-quality critique, wording or flow review, respondent-burden assessment, or recommendations about measurement quality; it is not required for a purely technical defect check.\",\n },\n} as const satisfies Record<SurveyAuthoringReferenceTopic, SurveyAuthoringReferenceEntry>;\n\nexport const formatSurveyAuthoringReferenceRoutingInstructions = (): string =>\n [\n \"Authoring-reference routing rules:\",\n \"Load a relevant focused reference before the first affected mutation or substantive advice, not after guessing a payload or learning through validator failures. Do not reload a reference when its exact relevant contract is already present in the current turn. References define stable authoring conventions and payload grammar; current survey state and currently available runtime references still come from inspection and context tools.\",\n \"For installed capability-specific references, use the capability manifest's advertised reference topics. Load a relevant topic with elementType before changing unfamiliar capability configuration or behavior.\",\n ...surveyAuthoringReferenceTopics.map(\n (topic) => `- ${topic}: ${surveyAuthoringReferences[topic].loadWhen}`,\n ),\n ].join(\"\\n\");\n\nexport const getBuiltInElementTypeAuthoringReference = (\n elementType: string,\n): { title: string; content: string } | undefined => {\n const heading = ELEMENT_TYPE_SECTION_HEADINGS[elementType];\n if (!heading) {\n return undefined;\n }\n\n const content = extractSection(surveyAuthoringReferences[\"element-types\"].content, heading);\n if (!content) return undefined;\n // Keep executable examples in one source while retaining them in focused lookups.\n // Most authoring turns deliberately never load the full operations catalog.\n const exampleHeading =\n elementType === \"choice\"\n ? \"Full worked example: a single-choice question\"\n : elementType === \"text\" || elementType === \"number\"\n ? \"Full worked example: a composed question with two inputs\"\n : undefined;\n const example = exampleHeading\n ? extractSection(surveyAuthoringReferences[\"assistant-operations\"].content, exampleHeading, 3)\n : undefined;\n return {\n title: `${heading} element type`,\n content: example ? `${content}\\n\\n${example}` : content,\n };\n};\n"],"x_google_ignoreList":[0],"mappings":"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"}