@webwriter/quiz 1.0.3 → 1.0.4

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 (41) hide show
  1. package/LICENSE +6 -6
  2. package/custom.d.ts +175 -175
  3. package/dist/widgets/webwriter-choice-item.js +58 -13
  4. package/dist/widgets/webwriter-choice.js +64 -19
  5. package/dist/widgets/webwriter-cloze-gap.js +59 -14
  6. package/dist/widgets/webwriter-cloze.js +56 -11
  7. package/dist/widgets/webwriter-mark.js +56 -11
  8. package/dist/widgets/webwriter-order-item.js +56 -11
  9. package/dist/widgets/webwriter-order.js +64 -19
  10. package/dist/widgets/webwriter-pairing.js +59 -14
  11. package/dist/widgets/webwriter-quiz.js +67 -22
  12. package/dist/widgets/webwriter-speech.js +66 -20
  13. package/dist/widgets/webwriter-task.js +534 -308
  14. package/dist/widgets/webwriter-text.js +60 -14
  15. package/package.json +200 -200
  16. package/src/lib/combobox.ts +455 -455
  17. package/src/snippets/choice.html +7 -7
  18. package/src/snippets/cloze.html +3 -3
  19. package/src/snippets/mark.html +3 -3
  20. package/src/snippets/order.html +7 -7
  21. package/src/snippets/pairing.html +9 -9
  22. package/src/snippets/speech.html +3 -3
  23. package/src/snippets/text.html +3 -3
  24. package/src/snippets/wordsearch.html +3 -3
  25. package/src/widgets/webwriter-choice-item.ts +250 -250
  26. package/src/widgets/webwriter-choice.ts +309 -309
  27. package/src/widgets/webwriter-cloze-gap.ts +216 -216
  28. package/src/widgets/webwriter-cloze.ts +135 -135
  29. package/src/widgets/webwriter-mark.ts +434 -434
  30. package/src/widgets/webwriter-order-item.ts +444 -444
  31. package/src/widgets/webwriter-order.ts +272 -272
  32. package/src/widgets/webwriter-pairing-item.ts +155 -155
  33. package/src/widgets/webwriter-pairing.ts +187 -187
  34. package/src/widgets/webwriter-quiz.ts +280 -280
  35. package/src/widgets/webwriter-speech.ts +267 -267
  36. package/src/widgets/webwriter-task-explainer.ts +37 -37
  37. package/src/widgets/webwriter-task-hint.ts +16 -16
  38. package/src/widgets/webwriter-task-prompt.ts +17 -17
  39. package/src/widgets/webwriter-task.ts +543 -543
  40. package/src/widgets/webwriter-text.ts +130 -130
  41. package/tsconfig.json +6 -6
@@ -1658,7 +1658,7 @@ var form_control_styles_default = i`
1658
1658
  }
1659
1659
  `;
1660
1660
 
1661
- // ../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.IFDWM6P4.js
1661
+ // ../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.B3BW2AY6.js
1662
1662
  var __defProp3 = Object.defineProperty;
1663
1663
  var __defProps = Object.defineProperties;
1664
1664
  var __getOwnPropDesc3 = Object.getOwnPropertyDescriptor;
@@ -1688,8 +1688,26 @@ var __decorateClass = (decorators, target, key, kind) => {
1688
1688
  __defProp3(target, key, result);
1689
1689
  return result;
1690
1690
  };
1691
+ var __accessCheck3 = (obj, member, msg) => {
1692
+ if (!member.has(obj))
1693
+ throw TypeError("Cannot " + msg);
1694
+ };
1695
+ var __privateGet3 = (obj, member, getter) => {
1696
+ __accessCheck3(obj, member, "read from private field");
1697
+ return getter ? getter.call(obj) : member.get(obj);
1698
+ };
1699
+ var __privateAdd3 = (obj, member, value) => {
1700
+ if (member.has(obj))
1701
+ throw TypeError("Cannot add the same private member more than once");
1702
+ member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
1703
+ };
1704
+ var __privateSet3 = (obj, member, value, setter) => {
1705
+ __accessCheck3(obj, member, "write to private field");
1706
+ setter ? setter.call(obj, value) : member.set(obj, value);
1707
+ return value;
1708
+ };
1691
1709
 
1692
- // ../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.KWPBDQ6I.js
1710
+ // ../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.2RCF7SLU.js
1693
1711
  var formCollections = /* @__PURE__ */ new WeakMap();
1694
1712
  var reportValidityOverloads = /* @__PURE__ */ new WeakMap();
1695
1713
  var checkValidityOverloads = /* @__PURE__ */ new WeakMap();
@@ -2025,7 +2043,7 @@ var HasSlotController = class {
2025
2043
  }
2026
2044
  };
2027
2045
 
2028
- // ../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.2FB5TK5H.js
2046
+ // ../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.CCJUT23E.js
2029
2047
  function watch(propertyName, options) {
2030
2048
  const resolvedOptions = __spreadValues({
2031
2049
  waitUntilFirstUpdate: false
@@ -2068,10 +2086,13 @@ var component_styles_default = i`
2068
2086
  }
2069
2087
  `;
2070
2088
 
2071
- // ../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.5THGRZAA.js
2089
+ // ../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.NLWS5DN7.js
2090
+ var _hasRecordedInitialProperties;
2072
2091
  var ShoelaceElement = class extends h3 {
2073
2092
  constructor() {
2074
2093
  super();
2094
+ __privateAdd3(this, _hasRecordedInitialProperties, false);
2095
+ this.initialReflectedProperties = /* @__PURE__ */ new Map();
2075
2096
  Object.entries(this.constructor.dependencies).forEach(([name, component]) => {
2076
2097
  this.constructor.define(name, component);
2077
2098
  });
@@ -2113,8 +2134,30 @@ var ShoelaceElement = class extends h3 {
2113
2134
  `Attempted to register <${name}>${newVersion}, but <${name}>${existingVersion} has already been registered.`
2114
2135
  );
2115
2136
  }
2137
+ attributeChangedCallback(name, oldValue, newValue) {
2138
+ if (!__privateGet3(this, _hasRecordedInitialProperties)) {
2139
+ this.constructor.elementProperties.forEach(
2140
+ (obj, prop) => {
2141
+ if (obj.reflect && this[prop] != null) {
2142
+ this.initialReflectedProperties.set(prop, this[prop]);
2143
+ }
2144
+ }
2145
+ );
2146
+ __privateSet3(this, _hasRecordedInitialProperties, true);
2147
+ }
2148
+ super.attributeChangedCallback(name, oldValue, newValue);
2149
+ }
2150
+ willUpdate(changedProperties) {
2151
+ super.willUpdate(changedProperties);
2152
+ this.initialReflectedProperties.forEach((value, prop) => {
2153
+ if (changedProperties.has(prop) && this[prop] == null) {
2154
+ this[prop] = value;
2155
+ }
2156
+ });
2157
+ }
2116
2158
  };
2117
- ShoelaceElement.version = "2.16.0";
2159
+ _hasRecordedInitialProperties = /* @__PURE__ */ new WeakMap();
2160
+ ShoelaceElement.version = "2.17.1";
2118
2161
  ShoelaceElement.dependencies = {};
2119
2162
  __decorateClass([
2120
2163
  n5()
@@ -2198,7 +2241,7 @@ var Ft = e6(class extends i3 {
2198
2241
  }
2199
2242
  });
2200
2243
 
2201
- // ../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.3TLZPMHW.js
2244
+ // ../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.HDK3IYCS.js
2202
2245
  var SlTextarea = class extends ShoelaceElement {
2203
2246
  constructor() {
2204
2247
  super(...arguments);
@@ -2244,9 +2287,10 @@ var SlTextarea = class extends ShoelaceElement {
2244
2287
  this.formControlController.updateValidity();
2245
2288
  }
2246
2289
  disconnectedCallback() {
2290
+ var _a3;
2247
2291
  super.disconnectedCallback();
2248
2292
  if (this.input) {
2249
- this.resizeObserver.unobserve(this.input);
2293
+ (_a3 = this.resizeObserver) == null ? void 0 : _a3.unobserve(this.input);
2250
2294
  }
2251
2295
  }
2252
2296
  handleBlur() {
@@ -3144,7 +3188,7 @@ var icon_styles_default = i`
3144
3188
  }
3145
3189
  `;
3146
3190
 
3147
- // ../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.ALSPWWWG.js
3191
+ // ../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.O7VCMB7W.js
3148
3192
  var CACHEABLE_ERROR = Symbol();
3149
3193
  var RETRYABLE_ERROR = Symbol();
3150
3194
  var parser;
@@ -3165,11 +3209,6 @@ var SlIcon = class extends ShoelaceElement {
3165
3209
  this.svg = ke`<svg part="svg">
3166
3210
  <use part="use" href="${url}"></use>
3167
3211
  </svg>`;
3168
- await this.updateComplete;
3169
- const svg = this.shadowRoot.querySelector("[part='svg']");
3170
- if (typeof library2.mutator === "function") {
3171
- library2.mutator(svg);
3172
- }
3173
3212
  return this.svg;
3174
3213
  }
3175
3214
  try {
@@ -3259,6 +3298,13 @@ var SlIcon = class extends ShoelaceElement {
3259
3298
  }
3260
3299
  if (nt(svg)) {
3261
3300
  this.svg = svg;
3301
+ if (library2) {
3302
+ await this.updateComplete;
3303
+ const shadowSVG = this.shadowRoot.querySelector("[part='svg']");
3304
+ if (typeof library2.mutator === "function" && shadowSVG) {
3305
+ library2.mutator(shadowSVG);
3306
+ }
3307
+ }
3262
3308
  return;
3263
3309
  }
3264
3310
  switch (svg) {
@@ -3300,7 +3346,7 @@ __decorateClass([
3300
3346
  watch(["name", "src", "library"])
3301
3347
  ], SlIcon.prototype, "setIcon", 1);
3302
3348
 
3303
- // ../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.5LELDSAA.js
3349
+ // ../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.4RFB4FGM.js
3304
3350
  var SlInput = class extends ShoelaceElement {
3305
3351
  constructor() {
3306
3352
  super(...arguments);
package/package.json CHANGED
@@ -1,200 +1,200 @@
1
- {
2
- "name": "@webwriter/quiz",
3
- "version": "1.0.3",
4
- "keywords": [
5
- "webwriter-widget"
6
- ],
7
- "description": "Add interactive tasks (multiple choice, order, free text, highlighting, or speech input). Make a quiz out of multiple tasks.",
8
- "scripts": {
9
- "prepublishOnly": "npx @webwriter/build"
10
- },
11
- "license": "MIT",
12
- "author": "Frederic Salmen <frederic@fsalmen.de>",
13
- "dependencies": {
14
- "@shoelace-style/shoelace": "^2.13.1",
15
- "@shopify/draggable": "^1.1.3",
16
- "@webwriter/lit": "^2.0.0",
17
- "bootstrap-icons": "^1.11.3",
18
- "interactjs": "^1.10.26",
19
- "lit": "^3.2.0",
20
- "minimasonry": "^1.3.2",
21
- "sortablejs": "^1.15.2"
22
- },
23
- "devDependencies": {
24
- "@types/minimasonry": "^1.3.5",
25
- "@types/sortablejs": "^1.15.7"
26
- },
27
- "peerDependencies": {
28
- "@webwriter/phet-simulation": "^1.0.0"
29
- },
30
- "exports": {
31
- "./widgets/webwriter-quiz.*": {
32
- "source": "./src/widgets/webwriter-quiz.ts",
33
- "default": "./dist/widgets/webwriter-quiz.*"
34
- },
35
- "./snippets/choice.html": "./src/snippets/choice.html",
36
- "./snippets/order.html": "./src/snippets/order.html",
37
- "./snippets/text.html": "./src/snippets/text.html",
38
- "./snippets/mark.html": "./src/snippets/mark.html",
39
- "./snippets/speech.html": "./src/snippets/speech.html",
40
- "./widgets/webwriter-task.*": {
41
- "source": "./src/widgets/webwriter-task.ts",
42
- "default": "./dist/widgets/webwriter-task.*"
43
- },
44
- "./widgets/webwriter-task-prompt.*": {
45
- "source": "./src/widgets/webwriter-task-prompt.ts",
46
- "default": "./dist/widgets/webwriter-task-prompt.*"
47
- },
48
- "./widgets/webwriter-task-hint.*": {
49
- "source": "./src/widgets/webwriter-task-hint.ts",
50
- "default": "./dist/widgets/webwriter-task-hint.*"
51
- },
52
- "./widgets/webwriter-task-explainer.*": {
53
- "source": "./src/widgets/webwriter-task-explainer.ts",
54
- "default": "./dist/widgets/webwriter-task-explainer.*"
55
- },
56
- "./widgets/webwriter-choice.*": {
57
- "source": "./src/widgets/webwriter-choice.ts",
58
- "default": "./dist/widgets/webwriter-choice.*"
59
- },
60
- "./widgets/webwriter-choice-item.*": {
61
- "source": "./src/widgets/webwriter-choice-item.ts",
62
- "default": "./dist/widgets/webwriter-choice-item.*"
63
- },
64
- "./widgets/webwriter-order.*": {
65
- "source": "./src/widgets/webwriter-order.ts",
66
- "default": "./dist/widgets/webwriter-order.*"
67
- },
68
- "./widgets/webwriter-order-item.*": {
69
- "source": "./src/widgets/webwriter-order-item.ts",
70
- "default": "./dist/widgets/webwriter-order-item.*"
71
- },
72
- "./widgets/webwriter-pairing.*": {
73
- "source": "./src/widgets/webwriter-pairing.ts",
74
- "default": "./dist/widgets/webwriter-pairing.*"
75
- },
76
- "./widgets/webwriter-pairing-item.*": {
77
- "source": "./src/widgets/webwriter-pairing-item.ts",
78
- "default": "./dist/widgets/webwriter-pairing-item.*"
79
- },
80
- "./widgets/webwriter-text.*": {
81
- "source": "./src/widgets/webwriter-text.ts",
82
- "default": "./dist/widgets/webwriter-text.*"
83
- },
84
- "./widgets/webwriter-mark.*": {
85
- "source": "./src/widgets/webwriter-mark.ts",
86
- "default": "./dist/widgets/webwriter-mark.*"
87
- },
88
- "./widgets/webwriter-speech.*": {
89
- "source": "./src/widgets/webwriter-speech.ts",
90
- "default": "./dist/widgets/webwriter-speech.*"
91
- },
92
- "./widgets/webwriter-cloze.*": {
93
- "source": "./src/widgets/webwriter-cloze.ts",
94
- "default": "./dist/widgets/webwriter-cloze.*"
95
- },
96
- "./widgets/webwriter-cloze-gap.*": {
97
- "source": "./src/widgets/webwriter-cloze-gap.ts",
98
- "default": "./dist/widgets/webwriter-cloze-gap.*"
99
- },
100
- "./package.json": "./package.json"
101
- },
102
- "editingConfig": {
103
- "./widgets/webwriter-choice-item": {
104
- "group": "",
105
- "content": "(p | flow)+",
106
- "uninsertable": true,
107
- "draggable": false,
108
- "selectable": false,
109
- "isolating": false
110
- },
111
- "./widgets/webwriter-choice": {
112
- "group": "answer",
113
- "content": "webwriter-choice-item+",
114
- "uninsertable": true
115
- },
116
- "./widgets/webwriter-order-item": {
117
- "group": "",
118
- "content": "(p | flow)+",
119
- "uninsertable": true,
120
- "draggable": true,
121
- "selectable": false,
122
- "isolating": false
123
- },
124
- "./widgets/webwriter-order": {
125
- "group": "answer",
126
- "content": "webwriter-order-item+",
127
- "uninsertable": true
128
- },
129
- "./widgets/webwriter-pairing": {
130
- "group": "answer",
131
- "content": "webwriter-pairing-item+",
132
- "uninsertable": true,
133
- "isolating": true
134
- },
135
- "./widgets/webwriter-pairing-item": {
136
- "group": "",
137
- "content": "picture | flow",
138
- "uninsertable": true,
139
- "draggable": true,
140
- "isolating": true
141
- },
142
- "./widgets/webwriter-text": {
143
- "group": "answer",
144
- "uninsertable": true
145
- },
146
- "./widgets/webwriter-mark": {
147
- "group": "answer inlinecontainer",
148
- "content": "(text | br | wbr)*",
149
- "isolating": true,
150
- "defining": true,
151
- "marks": "",
152
- "uninsertable": true
153
- },
154
- "./widgets/webwriter-speech": {
155
- "group": "answer",
156
- "uninsertable": true
157
- },
158
- "./widgets/webwriter-cloze": {
159
- "group": "answer",
160
- "content": "p",
161
- "uninsertable": true,
162
- "isolating": true
163
- },
164
- "./widgets/webwriter-cloze-gap": {
165
- "group": "phrasing",
166
- "inline": true,
167
- "atom": true,
168
- "uninsertable": true,
169
- "isolating": false
170
- },
171
- "./widgets/webwriter-task": {
172
- "content": "webwriter-task-prompt webwriter-task-hint? answer webwriter-task-explainer*",
173
- "uninsertable": true,
174
- "isolating": true
175
- },
176
- "./widgets/webwriter-task-prompt": {
177
- "group": "",
178
- "defining": true,
179
- "content": "(p | flow)+",
180
- "uninsertable": true
181
- },
182
- "./widgets/webwriter-task-hint": {
183
- "group": "containerinline",
184
- "defining": true,
185
- "content": "p",
186
- "isolating": true,
187
- "uninsertable": true
188
- },
189
- "./widgets/webwriter-task-explainer": {
190
- "group": "",
191
- "defining": true,
192
- "isolating": true,
193
- "content": "(p | flow)+",
194
- "uninsertable": true
195
- },
196
- "./widgets/webwriter-quiz": {
197
- "content": "webwriter-task*"
198
- }
199
- }
200
- }
1
+ {
2
+ "name": "@webwriter/quiz",
3
+ "version": "1.0.4",
4
+ "keywords": [
5
+ "webwriter-widget"
6
+ ],
7
+ "description": "Add interactive tasks (multiple choice, order, free text, highlighting, or speech input). Make a quiz out of multiple tasks.",
8
+ "scripts": {
9
+ "prepublishOnly": "npx @webwriter/build"
10
+ },
11
+ "license": "MIT",
12
+ "author": "Frederic Salmen <frederic@fsalmen.de>",
13
+ "dependencies": {
14
+ "@shoelace-style/shoelace": "^2.13.1",
15
+ "@shopify/draggable": "^1.1.3",
16
+ "@webwriter/lit": "^2.0.0",
17
+ "bootstrap-icons": "^1.11.3",
18
+ "interactjs": "^1.10.26",
19
+ "lit": "^3.2.0",
20
+ "minimasonry": "^1.3.2",
21
+ "sortablejs": "^1.15.2"
22
+ },
23
+ "devDependencies": {
24
+ "@types/minimasonry": "^1.3.5",
25
+ "@types/sortablejs": "^1.15.7"
26
+ },
27
+ "peerDependencies": {
28
+ "@webwriter/phet-simulation": "^1.0.0"
29
+ },
30
+ "exports": {
31
+ "./widgets/webwriter-quiz.*": {
32
+ "source": "./src/widgets/webwriter-quiz.ts",
33
+ "default": "./dist/widgets/webwriter-quiz.*"
34
+ },
35
+ "./snippets/choice.html": "./src/snippets/choice.html",
36
+ "./snippets/order.html": "./src/snippets/order.html",
37
+ "./snippets/text.html": "./src/snippets/text.html",
38
+ "./snippets/mark.html": "./src/snippets/mark.html",
39
+ "./snippets/speech.html": "./src/snippets/speech.html",
40
+ "./widgets/webwriter-task.*": {
41
+ "source": "./src/widgets/webwriter-task.ts",
42
+ "default": "./dist/widgets/webwriter-task.*"
43
+ },
44
+ "./widgets/webwriter-task-prompt.*": {
45
+ "source": "./src/widgets/webwriter-task-prompt.ts",
46
+ "default": "./dist/widgets/webwriter-task-prompt.*"
47
+ },
48
+ "./widgets/webwriter-task-hint.*": {
49
+ "source": "./src/widgets/webwriter-task-hint.ts",
50
+ "default": "./dist/widgets/webwriter-task-hint.*"
51
+ },
52
+ "./widgets/webwriter-task-explainer.*": {
53
+ "source": "./src/widgets/webwriter-task-explainer.ts",
54
+ "default": "./dist/widgets/webwriter-task-explainer.*"
55
+ },
56
+ "./widgets/webwriter-choice.*": {
57
+ "source": "./src/widgets/webwriter-choice.ts",
58
+ "default": "./dist/widgets/webwriter-choice.*"
59
+ },
60
+ "./widgets/webwriter-choice-item.*": {
61
+ "source": "./src/widgets/webwriter-choice-item.ts",
62
+ "default": "./dist/widgets/webwriter-choice-item.*"
63
+ },
64
+ "./widgets/webwriter-order.*": {
65
+ "source": "./src/widgets/webwriter-order.ts",
66
+ "default": "./dist/widgets/webwriter-order.*"
67
+ },
68
+ "./widgets/webwriter-order-item.*": {
69
+ "source": "./src/widgets/webwriter-order-item.ts",
70
+ "default": "./dist/widgets/webwriter-order-item.*"
71
+ },
72
+ "./widgets/webwriter-pairing.*": {
73
+ "source": "./src/widgets/webwriter-pairing.ts",
74
+ "default": "./dist/widgets/webwriter-pairing.*"
75
+ },
76
+ "./widgets/webwriter-pairing-item.*": {
77
+ "source": "./src/widgets/webwriter-pairing-item.ts",
78
+ "default": "./dist/widgets/webwriter-pairing-item.*"
79
+ },
80
+ "./widgets/webwriter-text.*": {
81
+ "source": "./src/widgets/webwriter-text.ts",
82
+ "default": "./dist/widgets/webwriter-text.*"
83
+ },
84
+ "./widgets/webwriter-mark.*": {
85
+ "source": "./src/widgets/webwriter-mark.ts",
86
+ "default": "./dist/widgets/webwriter-mark.*"
87
+ },
88
+ "./widgets/webwriter-speech.*": {
89
+ "source": "./src/widgets/webwriter-speech.ts",
90
+ "default": "./dist/widgets/webwriter-speech.*"
91
+ },
92
+ "./widgets/webwriter-cloze.*": {
93
+ "source": "./src/widgets/webwriter-cloze.ts",
94
+ "default": "./dist/widgets/webwriter-cloze.*"
95
+ },
96
+ "./widgets/webwriter-cloze-gap.*": {
97
+ "source": "./src/widgets/webwriter-cloze-gap.ts",
98
+ "default": "./dist/widgets/webwriter-cloze-gap.*"
99
+ },
100
+ "./package.json": "./package.json"
101
+ },
102
+ "editingConfig": {
103
+ "./widgets/webwriter-choice-item": {
104
+ "group": "",
105
+ "content": "(p | flow)+",
106
+ "uninsertable": true,
107
+ "draggable": false,
108
+ "selectable": false,
109
+ "isolating": false
110
+ },
111
+ "./widgets/webwriter-choice": {
112
+ "group": "answer",
113
+ "content": "webwriter-choice-item+",
114
+ "uninsertable": true
115
+ },
116
+ "./widgets/webwriter-order-item": {
117
+ "group": "",
118
+ "content": "(p | flow)+",
119
+ "uninsertable": true,
120
+ "draggable": true,
121
+ "selectable": false,
122
+ "isolating": false
123
+ },
124
+ "./widgets/webwriter-order": {
125
+ "group": "answer",
126
+ "content": "webwriter-order-item+",
127
+ "uninsertable": true
128
+ },
129
+ "./widgets/webwriter-pairing": {
130
+ "group": "answer",
131
+ "content": "webwriter-pairing-item+",
132
+ "uninsertable": true,
133
+ "isolating": true
134
+ },
135
+ "./widgets/webwriter-pairing-item": {
136
+ "group": "",
137
+ "content": "picture | flow",
138
+ "uninsertable": true,
139
+ "draggable": true,
140
+ "isolating": true
141
+ },
142
+ "./widgets/webwriter-text": {
143
+ "group": "answer",
144
+ "uninsertable": true
145
+ },
146
+ "./widgets/webwriter-mark": {
147
+ "group": "answer inlinecontainer",
148
+ "content": "(text | br | wbr)*",
149
+ "isolating": true,
150
+ "defining": true,
151
+ "marks": "",
152
+ "uninsertable": true
153
+ },
154
+ "./widgets/webwriter-speech": {
155
+ "group": "answer",
156
+ "uninsertable": true
157
+ },
158
+ "./widgets/webwriter-cloze": {
159
+ "group": "answer",
160
+ "content": "p",
161
+ "uninsertable": true,
162
+ "isolating": true
163
+ },
164
+ "./widgets/webwriter-cloze-gap": {
165
+ "group": "phrasing",
166
+ "inline": true,
167
+ "atom": true,
168
+ "uninsertable": true,
169
+ "isolating": false
170
+ },
171
+ "./widgets/webwriter-task": {
172
+ "content": "webwriter-task-prompt webwriter-task-hint? answer webwriter-task-explainer*",
173
+ "uninsertable": true,
174
+ "isolating": true
175
+ },
176
+ "./widgets/webwriter-task-prompt": {
177
+ "group": "",
178
+ "defining": true,
179
+ "content": "(p | flow)+",
180
+ "uninsertable": true
181
+ },
182
+ "./widgets/webwriter-task-hint": {
183
+ "group": "containerinline",
184
+ "defining": true,
185
+ "content": "p",
186
+ "isolating": true,
187
+ "uninsertable": true
188
+ },
189
+ "./widgets/webwriter-task-explainer": {
190
+ "group": "",
191
+ "defining": true,
192
+ "isolating": true,
193
+ "content": "(p | flow)+",
194
+ "uninsertable": true
195
+ },
196
+ "./widgets/webwriter-quiz": {
197
+ "content": "webwriter-task*"
198
+ }
199
+ }
200
+ }