@mgamadeus/ddd-agents 0.1.0-alpha.22 → 0.1.0-alpha.23

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 (143) hide show
  1. package/README.md +3 -2
  2. package/dist/chat.js +22 -72
  3. package/dist/chat.js.map +1 -1
  4. package/dist/chunks/{ConversationMarkdown-W7NHglmL.js → ConversationMarkdown-CJhAnuVa.js} +110 -8
  5. package/dist/chunks/ConversationMarkdown-CJhAnuVa.js.map +1 -0
  6. package/dist/chunks/{WebSearchResultsConversationWidget-BvnLWHyi.js → WebSearchResultsConversationWidget-DRBQvycE.js} +140 -1125
  7. package/dist/chunks/WebSearchResultsConversationWidget-DRBQvycE.js.map +1 -0
  8. package/dist/chunks/{canvasBodies-9SuF6NAB.js → canvasBodies-DLjDkviP.js} +9 -6
  9. package/dist/chunks/canvasBodies-DLjDkviP.js.map +1 -0
  10. package/dist/chunks/{canvas-behaviours-BRFR1ALE.js → decide-canvas-open-DBWoWtAC.js} +18 -2
  11. package/dist/chunks/decide-canvas-open-DBWoWtAC.js.map +1 -0
  12. package/dist/chunks/entity-detail-name-3A82gDAp.js +15 -0
  13. package/dist/chunks/entity-detail-name-3A82gDAp.js.map +1 -0
  14. package/dist/chunks/icon-names-Di6c4zLo.js +86 -0
  15. package/dist/chunks/icon-names-Di6c4zLo.js.map +1 -0
  16. package/dist/chunks/index-7Qc_3GbG.js +1046 -0
  17. package/dist/chunks/index-7Qc_3GbG.js.map +1 -0
  18. package/dist/chunks/{widget-image-readiness-signal-DeOuL89j.js → widget-image-readiness-signal-D3ci53xr.js} +2 -2
  19. package/dist/chunks/{widget-image-readiness-signal-DeOuL89j.js.map → widget-image-readiness-signal-D3ci53xr.js.map} +1 -1
  20. package/dist/chunks/{widget-name-resolver-DyIY6Zu4.js → widget-name-resolver-C8SfpiR5.js} +48 -116
  21. package/dist/chunks/widget-name-resolver-C8SfpiR5.js.map +1 -0
  22. package/dist/client-testing.js +68 -1
  23. package/dist/client-testing.js.map +1 -1
  24. package/dist/files/chat/Conversation.module.scss +268 -0
  25. package/dist/files/chat/ConversationViewBody/ConversationViewBody.module.scss +336 -0
  26. package/dist/files/chat/_conversation-tokens.scss +37 -0
  27. package/dist/files/image-render/WidgetImageRender.module.scss +22 -0
  28. package/dist/files/kit/ComposedViewConversationWidget.md +59 -0
  29. package/dist/files/kit/components/data/data.preview-fixtures.json +3298 -0
  30. package/dist/files/kit/components/embedding/widget.preview-fixtures.json +147 -0
  31. package/dist/files/kit/components/entity/entity-link.preview-fixtures.json +340 -0
  32. package/dist/files/kit/components/form/form.preview-fixtures.json +319 -0
  33. package/dist/files/kit/components/inputs/button.preview-fixtures.json +301 -0
  34. package/dist/files/kit/components/inputs/checkbox.preview-fixtures.json +35 -0
  35. package/dist/files/kit/components/inputs/date-picker.preview-fixtures.json +36 -0
  36. package/dist/files/kit/components/inputs/input.preview-fixtures.json +55 -0
  37. package/dist/files/kit/components/inputs/radio-group.preview-fixtures.json +76 -0
  38. package/dist/files/kit/components/inputs/select.preview-fixtures.json +314 -0
  39. package/dist/files/kit/components/inputs/slider.preview-fixtures.json +178 -0
  40. package/dist/files/kit/components/inputs/tabs.preview-fixtures.json +304 -0
  41. package/dist/files/kit/components/inputs/textarea.preview-fixtures.json +37 -0
  42. package/dist/files/kit/components/layout/layout.preview-fixtures.json +892 -0
  43. package/dist/files/kit/components/map/map.preview-fixtures.json +339 -0
  44. package/dist/files/kit/components/media/image-group.preview-fixtures.json +228 -0
  45. package/dist/files/kit/components/media/image.preview-fixtures.json +61 -0
  46. package/dist/files/kit/components/media/video-card/video-card.preview-fixtures.json +121 -0
  47. package/dist/files/kit/components/media/video.preview-fixtures.json +68 -0
  48. package/dist/files/kit/components/rich/code.preview-fixtures.json +105 -0
  49. package/dist/files/kit/components/rich/diagram.preview-fixtures.json +89 -0
  50. package/dist/files/kit/components/rich/math.preview-fixtures.json +152 -0
  51. package/dist/files/kit/components/rich/svg.preview-fixtures.json +243 -0
  52. package/dist/files/kit/components/text/badge.preview-fixtures.json +44 -0
  53. package/dist/files/kit/components/text/caption.preview-fixtures.json +31 -0
  54. package/dist/files/kit/components/text/favicon.preview-fixtures.json +69 -0
  55. package/dist/files/kit/components/text/label.preview-fixtures.json +48 -0
  56. package/dist/files/kit/components/text/link.preview-fixtures.json +103 -0
  57. package/dist/files/kit/components/text/markdown.preview-fixtures.json +29 -0
  58. package/dist/files/kit/components/text/source-ref.preview-fixtures.json +51 -0
  59. package/dist/files/kit/components/text/text.preview-fixtures.json +106 -0
  60. package/dist/files/kit/components/text/title.preview-fixtures.json +172 -0
  61. package/dist/files/kit/composed-view-widget-contract.json +88 -0
  62. package/dist/files/kit/composed-view.preview-fixtures.json +376 -0
  63. package/dist/files/renderer/conversation-widget-layout.module.scss +47 -0
  64. package/dist/files/renderer/widget-tree/composed-node-schema.json +3428 -0
  65. package/dist/files/styles/_conversation-widget-container.scss +6 -0
  66. package/dist/files/styles/_media.scss +50 -0
  67. package/dist/files/styles/_spacings.scss +23 -0
  68. package/dist/files/styles/_surfaces.scss +28 -0
  69. package/dist/files/widgets/ClockConversationWidget/ClockConversationWidget.md +53 -0
  70. package/dist/files/widgets/ClockConversationWidget/clock.preview-fixtures.json +76 -0
  71. package/dist/files/widgets/ConceptExplainerConversationWidget/ConceptExplainerConversationWidget.md +86 -0
  72. package/dist/files/widgets/ConceptExplainerConversationWidget/concept-explainer.preview-fixtures.json +23 -0
  73. package/dist/files/widgets/ConversationSearchResultsConversationWidget/ConversationSearchResultsConversationWidget.md +59 -0
  74. package/dist/files/widgets/ConversationSearchResultsConversationWidget/conversation-search-results.preview-fixtures.json +85 -0
  75. package/dist/files/widgets/CurrencyConverterConversationWidget/CurrencyConverterConversationWidget.md +51 -0
  76. package/dist/files/widgets/CurrencyConverterConversationWidget/currency-converter.preview-fixtures.json +73 -0
  77. package/dist/files/widgets/CustomVisualizationConversationWidget/CustomVisualizationConversationWidget.md +83 -0
  78. package/dist/files/widgets/CustomVisualizationConversationWidget/custom-visualization.preview-fixtures.json +227 -0
  79. package/dist/files/widgets/CustomVisualizationConversationWidget/sandbox-frame/custom-visualization-frame.html +188 -0
  80. package/dist/files/widgets/EntityMentionConversationWidget/EntityMentionConversationWidget.md +55 -0
  81. package/dist/files/widgets/EntityMentionConversationWidget/entity-mention.preview-fixtures.json +55 -0
  82. package/dist/files/widgets/MultiChoiceConversationWidget/MultiChoiceConversationWidget.md +61 -0
  83. package/dist/files/widgets/MultiChoiceConversationWidget/multi-choice-widget-contract.json +43 -0
  84. package/dist/files/widgets/MultiChoiceConversationWidget/multi-choice.preview-fixtures.json +103 -0
  85. package/dist/files/widgets/QuickRepliesConversationWidget/QuickRepliesConversationWidget.md +65 -0
  86. package/dist/files/widgets/QuickRepliesConversationWidget/quick-replies-widget-contract.json +43 -0
  87. package/dist/files/widgets/QuickRepliesConversationWidget/quick-replies.preview-fixtures.json +45 -0
  88. package/dist/files/widgets/SuggestedActions/SuggestedActions.md +60 -0
  89. package/dist/files/widgets/SuggestedActions/suggested-actions.preview-fixtures.json +19 -0
  90. package/dist/files/widgets/ToolTraceConversationWidget/ToolTraceConversationWidget.md +48 -0
  91. package/dist/files/widgets/ToolTraceConversationWidget/tool-trace.preview-fixtures.json +32 -0
  92. package/dist/files/widgets/WebSearchResultsConversationWidget/WebSearchResultsConversationWidget.md +49 -0
  93. package/dist/files/widgets/WebSearchResultsConversationWidget/web-search-results.preview-fixtures.json +57 -0
  94. package/dist/files/widgets/WritingDraftConversationWidget/WritingDraftConversationWidget.md +66 -0
  95. package/dist/files/widgets/WritingDraftConversationWidget/writing-draft.preview-fixtures.json +129 -0
  96. package/dist/image-render.js +11 -10
  97. package/dist/image-render.js.map +1 -1
  98. package/dist/index.js +32 -28
  99. package/dist/index.js.map +1 -1
  100. package/dist/kit.js +11 -2
  101. package/dist/kit.js.map +1 -1
  102. package/dist/preview.js +7 -6
  103. package/dist/provider.js +71 -0
  104. package/dist/provider.js.map +1 -0
  105. package/dist/renderer.js +138 -63
  106. package/dist/renderer.js.map +1 -1
  107. package/dist/styles.css +32 -17
  108. package/dist/types/client/testing/test-conversation-widgets.d.ts +25 -0
  109. package/dist/types/client/testing/widget-hydration-stand-ins.d.ts +33 -0
  110. package/dist/types/entries/chat.d.ts +10 -0
  111. package/dist/types/entries/client-testing.d.ts +2 -0
  112. package/dist/types/entries/index.d.ts +4 -3
  113. package/dist/types/entries/kit.d.ts +7 -0
  114. package/dist/types/entries/preview.d.ts +1 -0
  115. package/dist/types/entries/provider.d.ts +1 -0
  116. package/dist/types/entries/renderer.d.ts +16 -0
  117. package/dist/types/entries/widgets.d.ts +13 -0
  118. package/dist/types/kit/components/data/apex-chart-component.d.ts +3 -0
  119. package/dist/types/kit/components/data/chart-model.d.ts +164 -0
  120. package/dist/types/kit/components/data/data-value-format.d.ts +44 -0
  121. package/dist/types/kit/components/data/use-chart-palette.d.ts +9 -0
  122. package/dist/types/kit/components/data/use-number-locale.d.ts +5 -0
  123. package/dist/types/provider/index.d.ts +1 -0
  124. package/dist/types/renderer/_access/ConversationWidgetGateSkeleton.d.ts +6 -0
  125. package/dist/types/renderer/_agent-space/use-conversation-widget-agent-space-fallback.d.ts +16 -0
  126. package/dist/types/renderer/canvas/use-anchor-widget-agent-space-key.d.ts +17 -0
  127. package/dist/types/renderer/conversationWidgetRegistry.d.ts +6 -0
  128. package/dist/types/renderer/read-conversation-widget-variant.d.ts +22 -0
  129. package/dist/types/widgets/_shared/CardFooter.d.ts +6 -0
  130. package/dist/types/widgets/_shared/WidgetLabel.d.ts +8 -0
  131. package/dist/types/widgets/_shared/entity-update-channel.d.ts +17 -0
  132. package/dist/types/widgets/_shared/use-element-visible.d.ts +6 -0
  133. package/dist/widgets.js +120 -27
  134. package/dist/widgets.js.map +1 -1
  135. package/package.json +74 -1
  136. package/public-api.json +761 -0
  137. package/dist/chunks/ConversationMarkdown-W7NHglmL.js.map +0 -1
  138. package/dist/chunks/WebSearchResultsConversationWidget-BvnLWHyi.js.map +0 -1
  139. package/dist/chunks/canvas-behaviours-BRFR1ALE.js.map +0 -1
  140. package/dist/chunks/canvasBodies-9SuF6NAB.js.map +0 -1
  141. package/dist/chunks/decide-canvas-open-Ct-wnNEJ.js +0 -20
  142. package/dist/chunks/decide-canvas-open-Ct-wnNEJ.js.map +0 -1
  143. package/dist/chunks/widget-name-resolver-DyIY6Zu4.js.map +0 -1
@@ -0,0 +1,3428 @@
1
+ {
2
+ "version": 1,
3
+ "generatedBy": "ComposedViewNodeSchema::buildJson() — never edit by hand",
4
+ "budgets": {
5
+ "maxSourceBytes": 65536,
6
+ "maxNodes": 400,
7
+ "maxDepth": 12,
8
+ "maxStateKeys": 40,
9
+ "maxStateStringLength": 500,
10
+ "maxComputedExpressions": 40,
11
+ "maxExpressionSourceLength": 600,
12
+ "maxExpressionAstNodes": 200,
13
+ "maxComputedDependencyDepth": 8,
14
+ "maxOperationsPerUpdate": 50000,
15
+ "maxCollectionItems": 1000,
16
+ "maxAllocatedItemsPerEvaluation": 5000,
17
+ "maxRepeatRows": 200,
18
+ "maxRenderedNodes": 2000,
19
+ "maxInlineArrayItems": 500,
20
+ "maxInlineCells": 3000,
21
+ "maxTextLength": 4000,
22
+ "maxActions": 20,
23
+ "maxInputUpdatesPerSecond": 30,
24
+ "maxSourceRequestsPerTreePerMinute": 20
25
+ },
26
+ "categories": [
27
+ "inline",
28
+ "block",
29
+ "data",
30
+ "media",
31
+ "input",
32
+ "layout",
33
+ "heavy"
34
+ ],
35
+ "sizeClasses": [
36
+ "compact",
37
+ "regular",
38
+ "full"
39
+ ],
40
+ "actionTypes": [
41
+ "copy",
42
+ "resetState",
43
+ "openEntity",
44
+ "openUrl"
45
+ ],
46
+ "bindingKinds": [
47
+ "state",
48
+ "computed",
49
+ "data",
50
+ "item",
51
+ "from",
52
+ "source"
53
+ ],
54
+ "findingCodes": [
55
+ "INVALID_NODE",
56
+ "INVALID_PROP",
57
+ "UNKNOWN_BINDING",
58
+ "INVALID_EXPRESSION",
59
+ "INVALID_STATE",
60
+ "INVALID_ACTION",
61
+ "BUDGET_EXCEEDED",
62
+ "INLINE_VALUE_WITHOUT_SOURCE",
63
+ "INVALID_INITIAL_CHOICE",
64
+ "UNREAD_STATE",
65
+ "UNKNOWN_ITEM_KEY",
66
+ "INVALID_SLOT_NODE_COUNT",
67
+ "WIDGET_LIFTED"
68
+ ],
69
+ "noteFindingCodes": [
70
+ "INLINE_VALUE_WITHOUT_SOURCE",
71
+ "INVALID_INITIAL_CHOICE",
72
+ "UNREAD_STATE",
73
+ "UNKNOWN_ITEM_KEY",
74
+ "INVALID_SLOT_NODE_COUNT",
75
+ "WIDGET_LIFTED"
76
+ ],
77
+ "nodeTypes": {
78
+ "Badge": {
79
+ "categories": [
80
+ "inline"
81
+ ],
82
+ "providesItemScope": false,
83
+ "textContentProp": "text",
84
+ "summary": "a small status chip with a tone (success, warning, danger, info, neutral)",
85
+ "props": [
86
+ {
87
+ "name": "text",
88
+ "types": [
89
+ "string",
90
+ "number"
91
+ ],
92
+ "isRequired": true,
93
+ "isBindable": true,
94
+ "allowedValues": null,
95
+ "description": "the status, in the owner's language — one or two words"
96
+ },
97
+ {
98
+ "name": "tone",
99
+ "types": [
100
+ "string"
101
+ ],
102
+ "isRequired": false,
103
+ "isBindable": true,
104
+ "allowedValues": [
105
+ "neutral",
106
+ "muted",
107
+ "success",
108
+ "warning",
109
+ "danger",
110
+ "info",
111
+ "default",
112
+ "positive",
113
+ "negative"
114
+ ],
115
+ "description": "neutral (default), muted (secondary text), success (green), warning (amber), danger (red) or info (blue)"
116
+ }
117
+ ],
118
+ "slots": []
119
+ },
120
+ "Button": {
121
+ "categories": [
122
+ "input"
123
+ ],
124
+ "providesItemScope": false,
125
+ "textContentProp": "label",
126
+ "summary": "a button that runs one of the tree's actions (copy, resetState, openUrl, openEntity) or writes a value to state",
127
+ "props": [
128
+ {
129
+ "name": "label",
130
+ "types": [
131
+ "string"
132
+ ],
133
+ "isRequired": true,
134
+ "isBindable": true,
135
+ "allowedValues": null,
136
+ "description": "what the button does (\"Copy result\")"
137
+ },
138
+ {
139
+ "name": "onClick",
140
+ "types": [
141
+ "event"
142
+ ],
143
+ "isRequired": true,
144
+ "isBindable": true,
145
+ "allowedValues": null,
146
+ "description": "{\"action\": \"<action name>\"} or {\"set\": \"<state name>\"} with value"
147
+ },
148
+ {
149
+ "name": "value",
150
+ "types": [
151
+ "string",
152
+ "number",
153
+ "boolean"
154
+ ],
155
+ "isRequired": false,
156
+ "isBindable": true,
157
+ "allowedValues": null,
158
+ "description": "what a {\"set\": …} click writes"
159
+ },
160
+ {
161
+ "name": "variant",
162
+ "types": [
163
+ "string"
164
+ ],
165
+ "isRequired": false,
166
+ "isBindable": true,
167
+ "allowedValues": [
168
+ "primary",
169
+ "secondary"
170
+ ],
171
+ "description": "primary for the one main action (default), secondary beside it"
172
+ },
173
+ {
174
+ "name": "icon",
175
+ "types": [
176
+ "string"
177
+ ],
178
+ "isRequired": false,
179
+ "isBindable": true,
180
+ "allowedValues": [
181
+ "copy",
182
+ "reset",
183
+ "link",
184
+ "add",
185
+ "check",
186
+ "next",
187
+ "calendar",
188
+ "info"
189
+ ],
190
+ "description": "a glyph before the label (copy, reset, link, add, check, next, calendar, info)"
191
+ },
192
+ {
193
+ "name": "fullWidth",
194
+ "types": [
195
+ "boolean"
196
+ ],
197
+ "isRequired": false,
198
+ "isBindable": true,
199
+ "allowedValues": null,
200
+ "description": "the button takes the whole width"
201
+ }
202
+ ],
203
+ "slots": []
204
+ },
205
+ "Caption": {
206
+ "categories": [
207
+ "inline",
208
+ "block"
209
+ ],
210
+ "providesItemScope": false,
211
+ "textContentProp": "text",
212
+ "summary": "muted secondary text: a sub-line, a unit, a date, a method note",
213
+ "props": [
214
+ {
215
+ "name": "text",
216
+ "types": [
217
+ "string",
218
+ "number"
219
+ ],
220
+ "isRequired": true,
221
+ "isBindable": true,
222
+ "allowedValues": null,
223
+ "description": "the secondary text, in the owner's language"
224
+ }
225
+ ],
226
+ "slots": []
227
+ },
228
+ "Carousel": {
229
+ "categories": [
230
+ "layout"
231
+ ],
232
+ "providesItemScope": true,
233
+ "textContentProp": null,
234
+ "summary": "slides side by side with previous / next buttons; each child is a slide, or the children repeat per item of `items`",
235
+ "props": [
236
+ {
237
+ "name": "items",
238
+ "types": [
239
+ "array"
240
+ ],
241
+ "isRequired": false,
242
+ "isBindable": true,
243
+ "allowedValues": null,
244
+ "description": "the list the children repeat over, one slide per item ($item binds a field of the item)"
245
+ },
246
+ {
247
+ "name": "visibleItems",
248
+ "types": [
249
+ "number"
250
+ ],
251
+ "isRequired": false,
252
+ "isBindable": false,
253
+ "allowedValues": [
254
+ 1,
255
+ 2,
256
+ 3,
257
+ 4
258
+ ],
259
+ "description": "how many slides are fully visible at once (1 to 4, default 2); the next one peeks in"
260
+ },
261
+ {
262
+ "name": "showArrows",
263
+ "types": [
264
+ "boolean"
265
+ ],
266
+ "isRequired": false,
267
+ "isBindable": false,
268
+ "allowedValues": null,
269
+ "description": "show the previous / next buttons (default true)"
270
+ },
271
+ {
272
+ "name": "label",
273
+ "types": [
274
+ "string"
275
+ ],
276
+ "isRequired": false,
277
+ "isBindable": true,
278
+ "allowedValues": null,
279
+ "description": "what the slides are, for screen readers (e.g. \"Visitors per channel\")"
280
+ }
281
+ ],
282
+ "slots": [
283
+ {
284
+ "name": "children",
285
+ "acceptsCategories": [
286
+ "inline",
287
+ "block",
288
+ "data",
289
+ "media",
290
+ "input",
291
+ "layout"
292
+ ],
293
+ "acceptsNodeTypes": [],
294
+ "minChildren": 1,
295
+ "maxChildren": null,
296
+ "sizeClass": "regular",
297
+ "description": "the slides (one node each) or, with `items`, the template of one slide"
298
+ }
299
+ ],
300
+ "itemsProp": "items"
301
+ },
302
+ "Chart": {
303
+ "categories": [
304
+ "data"
305
+ ],
306
+ "providesItemScope": false,
307
+ "textContentProp": null,
308
+ "summary": "a line, area, bar, pie, donut, scatter, heatmap, funnel or radar chart over rows; bars with a change per bar; a sparkline in a compact slot",
309
+ "props": [
310
+ {
311
+ "name": "kind",
312
+ "types": [
313
+ "string"
314
+ ],
315
+ "isRequired": true,
316
+ "isBindable": false,
317
+ "allowedValues": [
318
+ "line",
319
+ "area",
320
+ "bar",
321
+ "pie",
322
+ "donut",
323
+ "scatter",
324
+ "heatmap",
325
+ "funnel",
326
+ "radar"
327
+ ],
328
+ "description": "line, area, bar, pie, donut, scatter, heatmap, funnel or radar"
329
+ },
330
+ {
331
+ "name": "data",
332
+ "types": [
333
+ "array"
334
+ ],
335
+ "isRequired": true,
336
+ "isBindable": true,
337
+ "allowedValues": null,
338
+ "description": "the rows (objects), usually a binding: {\"$data\":…}, {\"$computed\":…}, {\"$from\":…}"
339
+ },
340
+ {
341
+ "name": "x",
342
+ "types": [
343
+ "string"
344
+ ],
345
+ "isRequired": true,
346
+ "isBindable": false,
347
+ "allowedValues": null,
348
+ "description": "the row field of the category / time axis (the slice name of a pie, the row of a heatmap, the stage of a funnel, the axis of a radar)"
349
+ },
350
+ {
351
+ "name": "series",
352
+ "types": [
353
+ "array"
354
+ ],
355
+ "isRequired": true,
356
+ "isBindable": false,
357
+ "allowedValues": null,
358
+ "description": "the plotted fields: [{\"field\",\"label\",\"visible\"?}] — one for a pie or a funnel, one column each for a heatmap"
359
+ },
360
+ {
361
+ "name": "horizontal",
362
+ "types": [
363
+ "boolean"
364
+ ],
365
+ "isRequired": false,
366
+ "isBindable": false,
367
+ "allowedValues": null,
368
+ "description": "bar only: horizontal bars, for a ranking or a poll"
369
+ },
370
+ {
371
+ "name": "stacked",
372
+ "types": [
373
+ "boolean"
374
+ ],
375
+ "isRequired": false,
376
+ "isBindable": false,
377
+ "allowedValues": null,
378
+ "description": "bar and area only: the series stacked"
379
+ },
380
+ {
381
+ "name": "valueFormat",
382
+ "types": [
383
+ "string"
384
+ ],
385
+ "isRequired": false,
386
+ "isBindable": false,
387
+ "allowedValues": [
388
+ "number",
389
+ "percent",
390
+ "currency",
391
+ "compact",
392
+ "date",
393
+ "text"
394
+ ],
395
+ "description": "how the values are shown on the axis and in the tooltip (default number)"
396
+ },
397
+ {
398
+ "name": "currency",
399
+ "types": [
400
+ "string"
401
+ ],
402
+ "isRequired": false,
403
+ "isBindable": false,
404
+ "allowedValues": null,
405
+ "description": "the ISO currency code for valueFormat currency (default EUR)"
406
+ },
407
+ {
408
+ "name": "min",
409
+ "types": [
410
+ "number"
411
+ ],
412
+ "isRequired": false,
413
+ "isBindable": false,
414
+ "allowedValues": null,
415
+ "description": "the lowest value of the value axis (default: from the data)"
416
+ },
417
+ {
418
+ "name": "max",
419
+ "types": [
420
+ "number"
421
+ ],
422
+ "isRequired": false,
423
+ "isBindable": false,
424
+ "allowedValues": null,
425
+ "description": "the highest value of the value axis (default: from the data)"
426
+ },
427
+ {
428
+ "name": "xLabel",
429
+ "types": [
430
+ "string"
431
+ ],
432
+ "isRequired": false,
433
+ "isBindable": true,
434
+ "allowedValues": null,
435
+ "description": "the title of the category axis"
436
+ },
437
+ {
438
+ "name": "yLabel",
439
+ "types": [
440
+ "string"
441
+ ],
442
+ "isRequired": false,
443
+ "isBindable": true,
444
+ "allowedValues": null,
445
+ "description": "the title of the value axis"
446
+ },
447
+ {
448
+ "name": "title",
449
+ "types": [
450
+ "string"
451
+ ],
452
+ "isRequired": false,
453
+ "isBindable": true,
454
+ "allowedValues": null,
455
+ "description": "a heading above the chart"
456
+ },
457
+ {
458
+ "name": "caption",
459
+ "types": [
460
+ "string"
461
+ ],
462
+ "isRequired": false,
463
+ "isBindable": true,
464
+ "allowedValues": null,
465
+ "description": "a muted line under the chart (the period, what the values mean)"
466
+ },
467
+ {
468
+ "name": "source",
469
+ "types": [
470
+ "object"
471
+ ],
472
+ "isRequired": false,
473
+ "isBindable": true,
474
+ "allowedValues": null,
475
+ "description": "where the values come from ({\"name\",\"url\"}), shown as the source line"
476
+ },
477
+ {
478
+ "name": "deltaField",
479
+ "types": [
480
+ "string"
481
+ ],
482
+ "isRequired": false,
483
+ "isBindable": false,
484
+ "allowedValues": null,
485
+ "description": "bar only: the row field of the change against an earlier measurement, shown signed at the right of each bar (plus green, minus red)"
486
+ },
487
+ {
488
+ "name": "deltaUnit",
489
+ "types": [
490
+ "string"
491
+ ],
492
+ "isRequired": false,
493
+ "isBindable": false,
494
+ "allowedValues": [
495
+ "pp",
496
+ "%"
497
+ ],
498
+ "description": "what the change counts: pp (percentage points, the figure alone) or % (default: the figure alone)"
499
+ },
500
+ {
501
+ "name": "deltaLabel",
502
+ "types": [
503
+ "string"
504
+ ],
505
+ "isRequired": false,
506
+ "isBindable": true,
507
+ "allowedValues": null,
508
+ "description": "the line under the bars that says what the change compares with (\"Right: change in percentage points since January 2026\")"
509
+ }
510
+ ],
511
+ "slots": [],
512
+ "sourcing": {
513
+ "needsSource": true,
514
+ "namesSources": false,
515
+ "rowsProps": [
516
+ "data"
517
+ ],
518
+ "figureProps": []
519
+ }
520
+ },
521
+ "Checkbox": {
522
+ "categories": [
523
+ "input"
524
+ ],
525
+ "providesItemScope": false,
526
+ "textContentProp": "label",
527
+ "summary": "one checkbox that writes true or false to a state value",
528
+ "props": [
529
+ {
530
+ "name": "label",
531
+ "types": [
532
+ "string"
533
+ ],
534
+ "isRequired": true,
535
+ "isBindable": true,
536
+ "allowedValues": null,
537
+ "description": "what the box switches on"
538
+ },
539
+ {
540
+ "name": "checked",
541
+ "types": [
542
+ "boolean"
543
+ ],
544
+ "isRequired": false,
545
+ "isBindable": true,
546
+ "allowedValues": null,
547
+ "description": "whether it is ticked, usually {\"$state\": \"<name>\"}"
548
+ },
549
+ {
550
+ "name": "onChange",
551
+ "types": [
552
+ "event"
553
+ ],
554
+ "isRequired": false,
555
+ "isBindable": true,
556
+ "allowedValues": null,
557
+ "description": "{\"set\": \"<state name>\"} — writes true or false"
558
+ },
559
+ {
560
+ "name": "description",
561
+ "types": [
562
+ "string"
563
+ ],
564
+ "isRequired": false,
565
+ "isBindable": true,
566
+ "allowedValues": null,
567
+ "description": "one muted line under the label"
568
+ }
569
+ ],
570
+ "slots": []
571
+ },
572
+ "Code": {
573
+ "categories": [
574
+ "block"
575
+ ],
576
+ "providesItemScope": false,
577
+ "textContentProp": "code",
578
+ "summary": "a block of source code with syntax highlighting, a copy button and a line-wrap toggle",
579
+ "props": [
580
+ {
581
+ "name": "code",
582
+ "types": [
583
+ "string"
584
+ ],
585
+ "isRequired": true,
586
+ "isBindable": true,
587
+ "allowedValues": null,
588
+ "description": "the source code, line breaks as \\n"
589
+ },
590
+ {
591
+ "name": "language",
592
+ "types": [
593
+ "string"
594
+ ],
595
+ "isRequired": false,
596
+ "isBindable": false,
597
+ "allowedValues": null,
598
+ "description": "the language for the highlighting: php, javascript, typescript, json, html, css, scss, sql, bash, python, java, kotlin, swift, go, rust, ruby, csharp, cpp, c, yaml, xml, markdown, diff, dockerfile, graphql, ini, plaintext; another name shows plain text"
599
+ },
600
+ {
601
+ "name": "title",
602
+ "types": [
603
+ "string"
604
+ ],
605
+ "isRequired": false,
606
+ "isBindable": true,
607
+ "allowedValues": null,
608
+ "description": "a file name or a short label shown in the header instead of the language name"
609
+ },
610
+ {
611
+ "name": "wrap",
612
+ "types": [
613
+ "boolean"
614
+ ],
615
+ "isRequired": false,
616
+ "isBindable": false,
617
+ "allowedValues": null,
618
+ "description": "true wraps long lines from the start (the owner can toggle it); default false scrolls them"
619
+ }
620
+ ],
621
+ "slots": []
622
+ },
623
+ "DatePicker": {
624
+ "categories": [
625
+ "input"
626
+ ],
627
+ "providesItemScope": false,
628
+ "textContentProp": null,
629
+ "summary": "a date field with a calendar that writes the picked day (YYYY-MM-DD) to a state value",
630
+ "props": [
631
+ {
632
+ "name": "value",
633
+ "types": [
634
+ "string"
635
+ ],
636
+ "isRequired": false,
637
+ "isBindable": true,
638
+ "allowedValues": null,
639
+ "description": "the picked day as YYYY-MM-DD, usually {\"$state\": \"<name>\"}"
640
+ },
641
+ {
642
+ "name": "onChange",
643
+ "types": [
644
+ "event"
645
+ ],
646
+ "isRequired": false,
647
+ "isBindable": true,
648
+ "allowedValues": null,
649
+ "description": "{\"set\": \"<state name>\"} — writes the day as YYYY-MM-DD"
650
+ },
651
+ {
652
+ "name": "label",
653
+ "types": [
654
+ "string"
655
+ ],
656
+ "isRequired": false,
657
+ "isBindable": true,
658
+ "allowedValues": null,
659
+ "description": "a short label above the field"
660
+ },
661
+ {
662
+ "name": "min",
663
+ "types": [
664
+ "string"
665
+ ],
666
+ "isRequired": false,
667
+ "isBindable": true,
668
+ "allowedValues": null,
669
+ "description": "the earliest day that can be picked, YYYY-MM-DD"
670
+ },
671
+ {
672
+ "name": "max",
673
+ "types": [
674
+ "string"
675
+ ],
676
+ "isRequired": false,
677
+ "isBindable": true,
678
+ "allowedValues": null,
679
+ "description": "the latest day that can be picked, YYYY-MM-DD"
680
+ }
681
+ ],
682
+ "slots": []
683
+ },
684
+ "Diagram": {
685
+ "categories": [
686
+ "heavy"
687
+ ],
688
+ "providesItemScope": false,
689
+ "textContentProp": "source",
690
+ "summary": "a diagram drawn from Mermaid source (flowchart, sequence, state, timeline), with an optional heading and caption",
691
+ "props": [
692
+ {
693
+ "name": "source",
694
+ "types": [
695
+ "string"
696
+ ],
697
+ "isRequired": true,
698
+ "isBindable": true,
699
+ "allowedValues": null,
700
+ "description": "the Mermaid source, line breaks as \\n, e.g. \"flowchart TD\\n A[Request] --> B{Widget found?}\\n B -- Yes --> C[Select widget]\""
701
+ },
702
+ {
703
+ "name": "title",
704
+ "types": [
705
+ "string"
706
+ ],
707
+ "isRequired": false,
708
+ "isBindable": true,
709
+ "allowedValues": null,
710
+ "description": "a short heading above the diagram"
711
+ },
712
+ {
713
+ "name": "caption",
714
+ "types": [
715
+ "string"
716
+ ],
717
+ "isRequired": false,
718
+ "isBindable": true,
719
+ "allowedValues": null,
720
+ "description": "one muted line under the heading: what the diagram shows"
721
+ }
722
+ ],
723
+ "slots": []
724
+ },
725
+ "Divider": {
726
+ "categories": [
727
+ "block"
728
+ ],
729
+ "providesItemScope": false,
730
+ "textContentProp": null,
731
+ "summary": "a hairline between two parts, horizontal or vertical",
732
+ "props": [
733
+ {
734
+ "name": "orientation",
735
+ "types": [
736
+ "string"
737
+ ],
738
+ "isRequired": false,
739
+ "isBindable": false,
740
+ "allowedValues": [
741
+ "horizontal",
742
+ "vertical"
743
+ ],
744
+ "description": "horizontal (default, in a column) or vertical (between the items of a row)"
745
+ }
746
+ ],
747
+ "slots": []
748
+ },
749
+ "EntityLink": {
750
+ "categories": [
751
+ "inline"
752
+ ],
753
+ "providesItemScope": false,
754
+ "textContentProp": "text",
755
+ "summary": "an entity's name (a competitor, a review, a keyword) that opens its detail panel through an openEntity action",
756
+ "props": [
757
+ {
758
+ "name": "text",
759
+ "types": [
760
+ "string",
761
+ "number"
762
+ ],
763
+ "isRequired": true,
764
+ "isBindable": true,
765
+ "allowedValues": null,
766
+ "description": "the entity's name as the owner reads it (\"Pizzeria Roma\")"
767
+ },
768
+ {
769
+ "name": "action",
770
+ "types": [
771
+ "string"
772
+ ],
773
+ "isRequired": false,
774
+ "isBindable": true,
775
+ "allowedValues": null,
776
+ "description": "the name of this tree's openEntity action whose ref is the entity's reference from a tool result"
777
+ },
778
+ {
779
+ "name": "variant",
780
+ "types": [
781
+ "string"
782
+ ],
783
+ "isRequired": false,
784
+ "isBindable": true,
785
+ "allowedValues": [
786
+ "link",
787
+ "title",
788
+ "chip"
789
+ ],
790
+ "description": "link = the name inline in a sentence or cell (default), title = the name as the bold headline of a Surface, chip = a small pill with a detail glyph"
791
+ }
792
+ ],
793
+ "slots": []
794
+ },
795
+ "Favicon": {
796
+ "categories": [
797
+ "inline"
798
+ ],
799
+ "providesItemScope": false,
800
+ "textContentProp": null,
801
+ "summary": "the small site icon of a domain, in front of a source or a result",
802
+ "props": [
803
+ {
804
+ "name": "url",
805
+ "types": [
806
+ "string"
807
+ ],
808
+ "isRequired": true,
809
+ "isBindable": true,
810
+ "allowedValues": null,
811
+ "description": "a page address or a bare domain (wdr.de) whose site icon is shown"
812
+ },
813
+ {
814
+ "name": "name",
815
+ "types": [
816
+ "string"
817
+ ],
818
+ "isRequired": false,
819
+ "isBindable": true,
820
+ "allowedValues": null,
821
+ "description": "the site name, read aloud and shown on hover"
822
+ }
823
+ ],
824
+ "slots": []
825
+ },
826
+ "Flow": {
827
+ "categories": [
828
+ "layout"
829
+ ],
830
+ "providesItemScope": false,
831
+ "textContentProp": null,
832
+ "summary": "small items (badges, labels, chips) that flow like words and wrap onto more lines",
833
+ "props": [
834
+ {
835
+ "name": "gap",
836
+ "types": [
837
+ "string"
838
+ ],
839
+ "isRequired": false,
840
+ "isBindable": false,
841
+ "allowedValues": [
842
+ "none",
843
+ "xsmall",
844
+ "small",
845
+ "medium",
846
+ "large"
847
+ ],
848
+ "description": "the space between the items: none, xsmall, small (default), medium or large"
849
+ },
850
+ {
851
+ "name": "align",
852
+ "types": [
853
+ "string"
854
+ ],
855
+ "isRequired": false,
856
+ "isBindable": false,
857
+ "allowedValues": [
858
+ "start",
859
+ "center",
860
+ "end"
861
+ ],
862
+ "description": "where the items of a line sit vertically: start, center (default) or end"
863
+ }
864
+ ],
865
+ "slots": [
866
+ {
867
+ "name": "children",
868
+ "acceptsCategories": [
869
+ "inline",
870
+ "block",
871
+ "data",
872
+ "media",
873
+ "input"
874
+ ],
875
+ "acceptsNodeTypes": [],
876
+ "minChildren": 0,
877
+ "maxChildren": null,
878
+ "sizeClass": "compact",
879
+ "description": "the items, each at its own width"
880
+ }
881
+ ]
882
+ },
883
+ "Form": {
884
+ "categories": [
885
+ "layout"
886
+ ],
887
+ "providesItemScope": false,
888
+ "textContentProp": null,
889
+ "summary": "a form around inputs: its submit sends the field values to you as the owner's answer (optional decline)",
890
+ "props": [
891
+ {
892
+ "name": "name",
893
+ "types": [
894
+ "string"
895
+ ],
896
+ "isRequired": true,
897
+ "isBindable": false,
898
+ "allowedValues": null,
899
+ "description": "the form id its submit names: letters, digits, `_` or `-`, at most 64, unique in the tree (e.g. \"holidayHours\")"
900
+ },
901
+ {
902
+ "name": "title",
903
+ "types": [
904
+ "string"
905
+ ],
906
+ "isRequired": false,
907
+ "isBindable": true,
908
+ "allowedValues": null,
909
+ "description": "the form heading, in the owner's language"
910
+ },
911
+ {
912
+ "name": "description",
913
+ "types": [
914
+ "string"
915
+ ],
916
+ "isRequired": false,
917
+ "isBindable": true,
918
+ "allowedValues": null,
919
+ "description": "one line under the heading: what the answer is used for"
920
+ },
921
+ {
922
+ "name": "submitLabel",
923
+ "types": [
924
+ "string"
925
+ ],
926
+ "isRequired": false,
927
+ "isBindable": false,
928
+ "allowedValues": null,
929
+ "description": "the submit button label, in the owner's language (default \"Send\")"
930
+ },
931
+ {
932
+ "name": "declineLabel",
933
+ "types": [
934
+ "string"
935
+ ],
936
+ "isRequired": false,
937
+ "isBindable": false,
938
+ "allowedValues": null,
939
+ "description": "a decline button label (e.g. \"Not now\"); without it the form has no decline"
940
+ },
941
+ {
942
+ "name": "fields",
943
+ "types": [
944
+ "array"
945
+ ],
946
+ "isRequired": false,
947
+ "isBindable": false,
948
+ "allowedValues": null,
949
+ "description": "the state names the submit sends, in this order; default: every state name the form's inputs bind"
950
+ },
951
+ {
952
+ "name": "requiredFields",
953
+ "types": [
954
+ "array"
955
+ ],
956
+ "isRequired": false,
957
+ "isBindable": false,
958
+ "allowedValues": null,
959
+ "description": "state names that must be filled (not empty, a checkbox ticked) before the form submits"
960
+ }
961
+ ],
962
+ "slots": [
963
+ {
964
+ "name": "children",
965
+ "acceptsCategories": [
966
+ "inline",
967
+ "block",
968
+ "data",
969
+ "media",
970
+ "input",
971
+ "layout"
972
+ ],
973
+ "acceptsNodeTypes": [],
974
+ "minChildren": 0,
975
+ "maxChildren": null,
976
+ "sizeClass": "regular",
977
+ "description": "the form body: inputs and the text and layout around them"
978
+ },
979
+ {
980
+ "name": "header",
981
+ "acceptsCategories": [
982
+ "inline"
983
+ ],
984
+ "acceptsNodeTypes": [],
985
+ "minChildren": 0,
986
+ "maxChildren": 2,
987
+ "sizeClass": "compact",
988
+ "description": "at most two small items at the end of the heading: a badge, a popover that explains the method"
989
+ }
990
+ ],
991
+ "submitsInputs": true
992
+ },
993
+ "Grid": {
994
+ "categories": [
995
+ "layout"
996
+ ],
997
+ "providesItemScope": false,
998
+ "textContentProp": null,
999
+ "summary": "equal columns (1 to 4), one child per cell; drops to fewer columns on a narrow screen",
1000
+ "props": [
1001
+ {
1002
+ "name": "columns",
1003
+ "types": [
1004
+ "number"
1005
+ ],
1006
+ "isRequired": false,
1007
+ "isBindable": false,
1008
+ "allowedValues": [
1009
+ 1,
1010
+ 2,
1011
+ 3,
1012
+ 4
1013
+ ],
1014
+ "description": "the most columns side by side (1 to 4, default 2)"
1015
+ },
1016
+ {
1017
+ "name": "gap",
1018
+ "types": [
1019
+ "string"
1020
+ ],
1021
+ "isRequired": false,
1022
+ "isBindable": false,
1023
+ "allowedValues": [
1024
+ "none",
1025
+ "xsmall",
1026
+ "small",
1027
+ "medium",
1028
+ "large"
1029
+ ],
1030
+ "description": "the space between the children: none, xsmall, small, medium (default, between rows and tiles) or large (between sections)"
1031
+ },
1032
+ {
1033
+ "name": "minColumnWidth",
1034
+ "types": [
1035
+ "string"
1036
+ ],
1037
+ "isRequired": false,
1038
+ "isBindable": false,
1039
+ "allowedValues": [
1040
+ "compact",
1041
+ "regular"
1042
+ ],
1043
+ "description": "the narrowest a cell may get before the grid shows fewer columns: compact (KPI tiles) or regular (charts, images, text tiles); default compact when every cell is a KpiTile, Pressable, Badge, Icon, Favicon or Button, else regular"
1044
+ }
1045
+ ],
1046
+ "slots": [
1047
+ {
1048
+ "name": "children",
1049
+ "acceptsCategories": [
1050
+ "inline",
1051
+ "block",
1052
+ "data",
1053
+ "media",
1054
+ "input",
1055
+ "layout",
1056
+ "heavy"
1057
+ ],
1058
+ "acceptsNodeTypes": [],
1059
+ "minChildren": 0,
1060
+ "maxChildren": null,
1061
+ "sizeClass": "regular",
1062
+ "description": "the cells, one node each, filled row by row; 1 column = full cells, 2 = regular, 3–4 = compact",
1063
+ "sizeClassFromProp": "columns",
1064
+ "sizeClassesByPropValue": {
1065
+ "1": "full",
1066
+ "2": "regular",
1067
+ "3": "compact",
1068
+ "4": "compact"
1069
+ },
1070
+ "acceptsHeavyWhenCompact": true
1071
+ }
1072
+ ]
1073
+ },
1074
+ "Icon": {
1075
+ "categories": [
1076
+ "inline"
1077
+ ],
1078
+ "providesItemScope": false,
1079
+ "textContentProp": null,
1080
+ "summary": "one design-system icon (check, close, warning, star, arrows, …) in a tone",
1081
+ "props": [
1082
+ {
1083
+ "name": "name",
1084
+ "types": [
1085
+ "string"
1086
+ ],
1087
+ "isRequired": true,
1088
+ "isBindable": true,
1089
+ "allowedValues": [
1090
+ "check",
1091
+ "close",
1092
+ "warning",
1093
+ "info",
1094
+ "help",
1095
+ "question",
1096
+ "exclamation",
1097
+ "add",
1098
+ "remove",
1099
+ "dash",
1100
+ "star",
1101
+ "starActive",
1102
+ "like",
1103
+ "prize",
1104
+ "arrowUp",
1105
+ "arrowDown",
1106
+ "arrowLeft",
1107
+ "arrowRight",
1108
+ "caretUp",
1109
+ "caretDown",
1110
+ "calendar",
1111
+ "clock",
1112
+ "location",
1113
+ "pinFilled",
1114
+ "directions",
1115
+ "maps",
1116
+ "phone",
1117
+ "mail",
1118
+ "link",
1119
+ "newTab",
1120
+ "lock",
1121
+ "lockOpen",
1122
+ "user",
1123
+ "business",
1124
+ "search",
1125
+ "lineChart",
1126
+ "barChart",
1127
+ "budget",
1128
+ "google",
1129
+ "image",
1130
+ "photo",
1131
+ "play",
1132
+ "pause",
1133
+ "document",
1134
+ "edit",
1135
+ "trash",
1136
+ "download",
1137
+ "upload",
1138
+ "refresh",
1139
+ "settings",
1140
+ "notification",
1141
+ "messageGood",
1142
+ "messageBad",
1143
+ "messageNeutral",
1144
+ "message",
1145
+ "shield",
1146
+ "tag",
1147
+ "ai",
1148
+ "visibility",
1149
+ "desktop",
1150
+ "mobile",
1151
+ "tablet",
1152
+ "event",
1153
+ "post",
1154
+ "news",
1155
+ "home"
1156
+ ],
1157
+ "description": "the icon (check, close, warning, info, star, arrowUp, …)"
1158
+ },
1159
+ {
1160
+ "name": "tone",
1161
+ "types": [
1162
+ "string"
1163
+ ],
1164
+ "isRequired": false,
1165
+ "isBindable": true,
1166
+ "allowedValues": [
1167
+ "neutral",
1168
+ "muted",
1169
+ "success",
1170
+ "warning",
1171
+ "danger",
1172
+ "info",
1173
+ "default",
1174
+ "positive",
1175
+ "negative"
1176
+ ],
1177
+ "description": "its colour: neutral (default), muted (secondary text), success (green), warning (amber), danger (red) or info (blue)"
1178
+ },
1179
+ {
1180
+ "name": "size",
1181
+ "types": [
1182
+ "string"
1183
+ ],
1184
+ "isRequired": false,
1185
+ "isBindable": false,
1186
+ "allowedValues": [
1187
+ "small",
1188
+ "medium",
1189
+ "large"
1190
+ ],
1191
+ "description": "default small"
1192
+ },
1193
+ {
1194
+ "name": "label",
1195
+ "types": [
1196
+ "string"
1197
+ ],
1198
+ "isRequired": false,
1199
+ "isBindable": true,
1200
+ "allowedValues": null,
1201
+ "description": "what the icon means, for screen readers and the tooltip"
1202
+ }
1203
+ ],
1204
+ "slots": []
1205
+ },
1206
+ "Image": {
1207
+ "categories": [
1208
+ "media"
1209
+ ],
1210
+ "providesItemScope": false,
1211
+ "textContentProp": null,
1212
+ "summary": "one picture with alt text, an optional title, caption and source chip; opens in a lightbox",
1213
+ "props": [
1214
+ {
1215
+ "name": "src",
1216
+ "types": [
1217
+ "string"
1218
+ ],
1219
+ "isRequired": true,
1220
+ "isBindable": true,
1221
+ "allowedValues": null,
1222
+ "description": "the image URL (https, or a data:image URI)"
1223
+ },
1224
+ {
1225
+ "name": "alt",
1226
+ "types": [
1227
+ "string"
1228
+ ],
1229
+ "isRequired": true,
1230
+ "isBindable": true,
1231
+ "allowedValues": null,
1232
+ "description": "what the image shows, in one short sentence (read aloud by screen readers, shown when the image fails)"
1233
+ },
1234
+ {
1235
+ "name": "title",
1236
+ "types": [
1237
+ "string"
1238
+ ],
1239
+ "isRequired": false,
1240
+ "isBindable": true,
1241
+ "allowedValues": null,
1242
+ "description": "the bold line under the image"
1243
+ },
1244
+ {
1245
+ "name": "caption",
1246
+ "types": [
1247
+ "string"
1248
+ ],
1249
+ "isRequired": false,
1250
+ "isBindable": true,
1251
+ "allowedValues": null,
1252
+ "description": "the muted line under the title"
1253
+ },
1254
+ {
1255
+ "name": "source",
1256
+ "types": [
1257
+ "object"
1258
+ ],
1259
+ "isRequired": false,
1260
+ "isBindable": true,
1261
+ "allowedValues": null,
1262
+ "description": "where the image was found ({\"name\",\"url\"}), shown as a chip over the image"
1263
+ },
1264
+ {
1265
+ "name": "aspectRatio",
1266
+ "types": [
1267
+ "string"
1268
+ ],
1269
+ "isRequired": false,
1270
+ "isBindable": false,
1271
+ "allowedValues": [
1272
+ "1:1",
1273
+ "4:3",
1274
+ "3:2",
1275
+ "5:4",
1276
+ "16:9",
1277
+ "3:4"
1278
+ ],
1279
+ "description": "the frame the image is cropped to (default 4:3)"
1280
+ },
1281
+ {
1282
+ "name": "fit",
1283
+ "types": [
1284
+ "string"
1285
+ ],
1286
+ "isRequired": false,
1287
+ "isBindable": false,
1288
+ "allowedValues": [
1289
+ "cover",
1290
+ "contain"
1291
+ ],
1292
+ "description": "cover crops a photo to the frame (default), contain shows a logo whole"
1293
+ }
1294
+ ],
1295
+ "slots": []
1296
+ },
1297
+ "ImageGroup": {
1298
+ "categories": [
1299
+ "media"
1300
+ ],
1301
+ "providesItemScope": false,
1302
+ "textContentProp": null,
1303
+ "summary": "a gallery of pictures as a grid, a carousel or a magazine layout; each opens in a lightbox",
1304
+ "props": [
1305
+ {
1306
+ "name": "images",
1307
+ "types": [
1308
+ "array"
1309
+ ],
1310
+ "isRequired": true,
1311
+ "isBindable": true,
1312
+ "allowedValues": null,
1313
+ "description": "the pictures: [{\"src\",\"alt\",\"title\"?,\"caption\"?,\"source\"?:{\"name\",\"url\"}}], src and alt required per picture"
1314
+ },
1315
+ {
1316
+ "name": "layout",
1317
+ "types": [
1318
+ "string"
1319
+ ],
1320
+ "isRequired": false,
1321
+ "isBindable": false,
1322
+ "allowedValues": [
1323
+ "grid",
1324
+ "carousel",
1325
+ "magazine"
1326
+ ],
1327
+ "description": "grid (default), carousel or magazine (one hero over tiles)"
1328
+ },
1329
+ {
1330
+ "name": "aspectRatio",
1331
+ "types": [
1332
+ "string"
1333
+ ],
1334
+ "isRequired": false,
1335
+ "isBindable": false,
1336
+ "allowedValues": [
1337
+ "1:1",
1338
+ "4:3",
1339
+ "3:2",
1340
+ "5:4",
1341
+ "16:9",
1342
+ "3:4"
1343
+ ],
1344
+ "description": "the frame of each tile (default 4:3; the carousel and the magazine hero use 16:9 when unset)"
1345
+ },
1346
+ {
1347
+ "name": "maxVisible",
1348
+ "types": [
1349
+ "number"
1350
+ ],
1351
+ "isRequired": false,
1352
+ "isBindable": false,
1353
+ "allowedValues": null,
1354
+ "description": "grid only: how many tiles show before the last one counts the rest (default 4)"
1355
+ }
1356
+ ],
1357
+ "slots": []
1358
+ },
1359
+ "Input": {
1360
+ "categories": [
1361
+ "input"
1362
+ ],
1363
+ "providesItemScope": false,
1364
+ "textContentProp": null,
1365
+ "summary": "a one-line text or number field that writes what is typed to a state value",
1366
+ "props": [
1367
+ {
1368
+ "name": "value",
1369
+ "types": [
1370
+ "string",
1371
+ "number"
1372
+ ],
1373
+ "isRequired": false,
1374
+ "isBindable": true,
1375
+ "allowedValues": null,
1376
+ "description": "the current text or number, usually {\"$state\": \"<name>\"}"
1377
+ },
1378
+ {
1379
+ "name": "onChange",
1380
+ "types": [
1381
+ "event"
1382
+ ],
1383
+ "isRequired": false,
1384
+ "isBindable": true,
1385
+ "allowedValues": null,
1386
+ "description": "{\"set\": \"<state name>\"} — writes what is typed"
1387
+ },
1388
+ {
1389
+ "name": "label",
1390
+ "types": [
1391
+ "string"
1392
+ ],
1393
+ "isRequired": false,
1394
+ "isBindable": true,
1395
+ "allowedValues": null,
1396
+ "description": "a short label above the field"
1397
+ },
1398
+ {
1399
+ "name": "placeholder",
1400
+ "types": [
1401
+ "string"
1402
+ ],
1403
+ "isRequired": false,
1404
+ "isBindable": true,
1405
+ "allowedValues": null,
1406
+ "description": "shown while the field is empty"
1407
+ },
1408
+ {
1409
+ "name": "inputType",
1410
+ "types": [
1411
+ "string"
1412
+ ],
1413
+ "isRequired": false,
1414
+ "isBindable": true,
1415
+ "allowedValues": [
1416
+ "text",
1417
+ "number",
1418
+ "email",
1419
+ "url"
1420
+ ],
1421
+ "description": "what is typed (default text)"
1422
+ },
1423
+ {
1424
+ "name": "maxLength",
1425
+ "types": [
1426
+ "number"
1427
+ ],
1428
+ "isRequired": false,
1429
+ "isBindable": true,
1430
+ "allowedValues": null,
1431
+ "description": "the most characters the field takes"
1432
+ }
1433
+ ],
1434
+ "slots": []
1435
+ },
1436
+ "KpiTile": {
1437
+ "categories": [
1438
+ "data"
1439
+ ],
1440
+ "providesItemScope": false,
1441
+ "textContentProp": null,
1442
+ "summary": "one headline number as a tile: label, hero value, unit, change with a good/bad arrow, detail line",
1443
+ "props": [
1444
+ {
1445
+ "name": "label",
1446
+ "types": [
1447
+ "string"
1448
+ ],
1449
+ "isRequired": true,
1450
+ "isBindable": true,
1451
+ "allowedValues": null,
1452
+ "description": "what the number is, above it (\"Visitors\", \"MRR month 12\")"
1453
+ },
1454
+ {
1455
+ "name": "value",
1456
+ "types": [
1457
+ "number",
1458
+ "string"
1459
+ ],
1460
+ "isRequired": true,
1461
+ "isBindable": true,
1462
+ "allowedValues": null,
1463
+ "description": "the number (formatted by `format`) or an already written value (\"4,32 %\")"
1464
+ },
1465
+ {
1466
+ "name": "format",
1467
+ "types": [
1468
+ "string"
1469
+ ],
1470
+ "isRequired": false,
1471
+ "isBindable": false,
1472
+ "allowedValues": [
1473
+ "number",
1474
+ "percent",
1475
+ "currency",
1476
+ "compact",
1477
+ "date",
1478
+ "text"
1479
+ ],
1480
+ "description": "how a numeric value is shown (default number)"
1481
+ },
1482
+ {
1483
+ "name": "currency",
1484
+ "types": [
1485
+ "string"
1486
+ ],
1487
+ "isRequired": false,
1488
+ "isBindable": false,
1489
+ "allowedValues": null,
1490
+ "description": "the ISO currency code for format currency (default EUR)"
1491
+ },
1492
+ {
1493
+ "name": "decimals",
1494
+ "types": [
1495
+ "number"
1496
+ ],
1497
+ "isRequired": false,
1498
+ "isBindable": false,
1499
+ "allowedValues": null,
1500
+ "description": "the fraction digits of a numeric value (default: up to 2)"
1501
+ },
1502
+ {
1503
+ "name": "signed",
1504
+ "types": [
1505
+ "boolean"
1506
+ ],
1507
+ "isRequired": false,
1508
+ "isBindable": false,
1509
+ "allowedValues": null,
1510
+ "description": "a positive value gets a plus sign (a growth rate)"
1511
+ },
1512
+ {
1513
+ "name": "unit",
1514
+ "types": [
1515
+ "string"
1516
+ ],
1517
+ "isRequired": false,
1518
+ "isBindable": true,
1519
+ "allowedValues": null,
1520
+ "description": "a lower-case unit line under the number (\"visits\", \"per month\")"
1521
+ },
1522
+ {
1523
+ "name": "delta",
1524
+ "types": [
1525
+ "number"
1526
+ ],
1527
+ "isRequired": false,
1528
+ "isBindable": true,
1529
+ "allowedValues": null,
1530
+ "description": "the change against the comparison period, signed (+5, -0.49)"
1531
+ },
1532
+ {
1533
+ "name": "deltaFormat",
1534
+ "types": [
1535
+ "string"
1536
+ ],
1537
+ "isRequired": false,
1538
+ "isBindable": false,
1539
+ "allowedValues": [
1540
+ "number",
1541
+ "percent",
1542
+ "currency"
1543
+ ],
1544
+ "description": "how the change is shown (default number)"
1545
+ },
1546
+ {
1547
+ "name": "deltaLabel",
1548
+ "types": [
1549
+ "string"
1550
+ ],
1551
+ "isRequired": false,
1552
+ "isBindable": true,
1553
+ "allowedValues": null,
1554
+ "description": "what the change compares with (\"vs. September\")"
1555
+ },
1556
+ {
1557
+ "name": "higherIsBetter",
1558
+ "types": [
1559
+ "boolean"
1560
+ ],
1561
+ "isRequired": false,
1562
+ "isBindable": false,
1563
+ "allowedValues": null,
1564
+ "description": "false for a number where less is better (a rank, a churn rate) — the arrow colour follows (default true)"
1565
+ },
1566
+ {
1567
+ "name": "tone",
1568
+ "types": [
1569
+ "string"
1570
+ ],
1571
+ "isRequired": false,
1572
+ "isBindable": false,
1573
+ "allowedValues": [
1574
+ "neutral",
1575
+ "muted",
1576
+ "success",
1577
+ "warning",
1578
+ "danger",
1579
+ "info",
1580
+ "default",
1581
+ "positive",
1582
+ "negative"
1583
+ ],
1584
+ "description": "the judgement colour of the hero value itself (default neutral)"
1585
+ },
1586
+ {
1587
+ "name": "detail",
1588
+ "types": [
1589
+ "string"
1590
+ ],
1591
+ "isRequired": false,
1592
+ "isBindable": true,
1593
+ "allowedValues": null,
1594
+ "description": "a muted line under the tile (\"All channels\", \"simulated\")"
1595
+ },
1596
+ {
1597
+ "name": "source",
1598
+ "types": [
1599
+ "object"
1600
+ ],
1601
+ "isRequired": false,
1602
+ "isBindable": true,
1603
+ "allowedValues": null,
1604
+ "description": "where the number comes from ({\"name\",\"url\"}), shown as the source line"
1605
+ }
1606
+ ],
1607
+ "slots": [],
1608
+ "sourcing": {
1609
+ "needsSource": true,
1610
+ "namesSources": false,
1611
+ "rowsProps": [],
1612
+ "figureProps": [
1613
+ "value"
1614
+ ]
1615
+ }
1616
+ },
1617
+ "Label": {
1618
+ "categories": [
1619
+ "inline"
1620
+ ],
1621
+ "providesItemScope": false,
1622
+ "textContentProp": "text",
1623
+ "summary": "a short label above a value, an input or a group",
1624
+ "props": [
1625
+ {
1626
+ "name": "text",
1627
+ "types": [
1628
+ "string",
1629
+ "number"
1630
+ ],
1631
+ "isRequired": true,
1632
+ "isBindable": true,
1633
+ "allowedValues": null,
1634
+ "description": "the label, in the owner's language — a few words"
1635
+ }
1636
+ ],
1637
+ "slots": []
1638
+ },
1639
+ "Link": {
1640
+ "categories": [
1641
+ "inline"
1642
+ ],
1643
+ "providesItemScope": false,
1644
+ "textContentProp": "text",
1645
+ "summary": "a text link that opens an http(s) page in a new tab",
1646
+ "props": [
1647
+ {
1648
+ "name": "text",
1649
+ "types": [
1650
+ "string",
1651
+ "number"
1652
+ ],
1653
+ "isRequired": true,
1654
+ "isBindable": true,
1655
+ "allowedValues": null,
1656
+ "description": "the link text, in the owner's language"
1657
+ },
1658
+ {
1659
+ "name": "url",
1660
+ "types": [
1661
+ "string"
1662
+ ],
1663
+ "isRequired": true,
1664
+ "isBindable": true,
1665
+ "allowedValues": null,
1666
+ "description": "the http(s) address it opens in a new tab"
1667
+ }
1668
+ ],
1669
+ "slots": []
1670
+ },
1671
+ "List": {
1672
+ "categories": [
1673
+ "block"
1674
+ ],
1675
+ "providesItemScope": false,
1676
+ "textContentProp": null,
1677
+ "summary": "a hairline-divided list: items (strings or title/description/meta/value) or ListItem children",
1678
+ "props": [
1679
+ {
1680
+ "name": "items",
1681
+ "types": [
1682
+ "array"
1683
+ ],
1684
+ "isRequired": false,
1685
+ "isBindable": true,
1686
+ "allowedValues": null,
1687
+ "description": "the short form: strings, or {\"title\",\"description\"?,\"meta\"?,\"value\"?}"
1688
+ },
1689
+ {
1690
+ "name": "marker",
1691
+ "types": [
1692
+ "string"
1693
+ ],
1694
+ "isRequired": false,
1695
+ "isBindable": false,
1696
+ "allowedValues": [
1697
+ "none",
1698
+ "bullet",
1699
+ "number",
1700
+ "check"
1701
+ ],
1702
+ "description": "bullet, number, check or none (default none)"
1703
+ },
1704
+ {
1705
+ "name": "emptyText",
1706
+ "types": [
1707
+ "string"
1708
+ ],
1709
+ "isRequired": false,
1710
+ "isBindable": true,
1711
+ "allowedValues": null,
1712
+ "description": "the line shown when the list has no entries"
1713
+ }
1714
+ ],
1715
+ "slots": [
1716
+ {
1717
+ "name": "children",
1718
+ "acceptsCategories": [],
1719
+ "acceptsNodeTypes": [
1720
+ "ListItem",
1721
+ "Repeat"
1722
+ ],
1723
+ "minChildren": 0,
1724
+ "maxChildren": null,
1725
+ "sizeClass": "regular",
1726
+ "description": "ListItem nodes and Repeats of ListItems"
1727
+ }
1728
+ ]
1729
+ },
1730
+ "ListItem": {
1731
+ "categories": [],
1732
+ "providesItemScope": false,
1733
+ "textContentProp": null,
1734
+ "summary": "one List entry: title, description, meta, value, plus nodes under it and at its end",
1735
+ "props": [
1736
+ {
1737
+ "name": "title",
1738
+ "types": [
1739
+ "string",
1740
+ "number"
1741
+ ],
1742
+ "isRequired": false,
1743
+ "isBindable": true,
1744
+ "allowedValues": null,
1745
+ "description": "the entry, bold"
1746
+ },
1747
+ {
1748
+ "name": "description",
1749
+ "types": [
1750
+ "string"
1751
+ ],
1752
+ "isRequired": false,
1753
+ "isBindable": true,
1754
+ "allowedValues": null,
1755
+ "description": "a line under the title"
1756
+ },
1757
+ {
1758
+ "name": "meta",
1759
+ "types": [
1760
+ "string"
1761
+ ],
1762
+ "isRequired": false,
1763
+ "isBindable": true,
1764
+ "allowedValues": null,
1765
+ "description": "a muted line (a date, a source)"
1766
+ },
1767
+ {
1768
+ "name": "value",
1769
+ "types": [
1770
+ "string",
1771
+ "number"
1772
+ ],
1773
+ "isRequired": false,
1774
+ "isBindable": true,
1775
+ "allowedValues": null,
1776
+ "description": "a figure at the end of the entry"
1777
+ }
1778
+ ],
1779
+ "slots": [
1780
+ {
1781
+ "name": "children",
1782
+ "acceptsCategories": [
1783
+ "inline",
1784
+ "block",
1785
+ "data",
1786
+ "media",
1787
+ "input",
1788
+ "layout"
1789
+ ],
1790
+ "acceptsNodeTypes": [],
1791
+ "minChildren": 0,
1792
+ "maxChildren": null,
1793
+ "sizeClass": "regular",
1794
+ "description": "nodes shown under the title"
1795
+ },
1796
+ {
1797
+ "name": "trailing",
1798
+ "acceptsCategories": [
1799
+ "inline",
1800
+ "input",
1801
+ "data"
1802
+ ],
1803
+ "acceptsNodeTypes": [],
1804
+ "minChildren": 0,
1805
+ "maxChildren": 2,
1806
+ "sizeClass": "compact",
1807
+ "description": "at the end of the entry: a badge, an icon, a sparkline"
1808
+ }
1809
+ ]
1810
+ },
1811
+ "Map": {
1812
+ "categories": [
1813
+ "heavy"
1814
+ ],
1815
+ "providesItemScope": false,
1816
+ "textContentProp": null,
1817
+ "summary": "an interactive map: labelled points with rating badges, a carousel of the points, an optional route line, full-screen expand",
1818
+ "props": [
1819
+ {
1820
+ "name": "points",
1821
+ "types": [
1822
+ "array"
1823
+ ],
1824
+ "isRequired": true,
1825
+ "isBindable": true,
1826
+ "allowedValues": null,
1827
+ "description": "the places, each {\"label\",\"lat\",\"lng\"} with optional \"rating\" (0–5), \"subtitle\" (category), \"detail\" (a status line such as opening state) with \"detailTone\" (a tone of the kit: success for open, danger for closed, warning for closing soon; also neutral, muted, info), \"image\" (an http(s) photo URL) and \"action\" (the name of an openEntity action of this tree)"
1828
+ },
1829
+ {
1830
+ "name": "title",
1831
+ "types": [
1832
+ "string"
1833
+ ],
1834
+ "isRequired": false,
1835
+ "isBindable": true,
1836
+ "allowedValues": null,
1837
+ "description": "what the points are (e.g. \"Cafés in Münster\"), the heading of the full-screen list"
1838
+ },
1839
+ {
1840
+ "name": "route",
1841
+ "types": [
1842
+ "boolean"
1843
+ ],
1844
+ "isRequired": false,
1845
+ "isBindable": true,
1846
+ "allowedValues": null,
1847
+ "description": "draw a route line through the points in their order and number the markers"
1848
+ },
1849
+ {
1850
+ "name": "routePath",
1851
+ "types": [
1852
+ "array"
1853
+ ],
1854
+ "isRequired": false,
1855
+ "isBindable": true,
1856
+ "allowedValues": null,
1857
+ "description": "the route line as [{\"lat\",\"lng\"}, …] when a tool returned the real path; without it the line joins the points directly"
1858
+ },
1859
+ {
1860
+ "name": "routeLabel",
1861
+ "types": [
1862
+ "string"
1863
+ ],
1864
+ "isRequired": false,
1865
+ "isBindable": true,
1866
+ "allowedValues": null,
1867
+ "description": "one short line on the route, e.g. its duration or length, shown on the map"
1868
+ },
1869
+ {
1870
+ "name": "carousel",
1871
+ "types": [
1872
+ "string"
1873
+ ],
1874
+ "isRequired": false,
1875
+ "isBindable": true,
1876
+ "allowedValues": [
1877
+ "auto",
1878
+ "hidden"
1879
+ ],
1880
+ "description": "the carousel of the points along the bottom edge: auto (shown, default) or hidden"
1881
+ },
1882
+ {
1883
+ "name": "minHeight",
1884
+ "types": [
1885
+ "number"
1886
+ ],
1887
+ "isRequired": false,
1888
+ "isBindable": true,
1889
+ "allowedValues": null,
1890
+ "description": "the map height in CSS pixels (240–560, default 330)"
1891
+ },
1892
+ {
1893
+ "name": "pointAction",
1894
+ "types": [
1895
+ "string"
1896
+ ],
1897
+ "isRequired": false,
1898
+ "isBindable": false,
1899
+ "allowedValues": null,
1900
+ "description": "the name of the action a point without its own \"action\" runs — over $from points a row-bound openEntity action ({\"type\":\"openEntity\",\"ref\":{\"$item\":\"entityRef\"}}) opens each row's entity"
1901
+ }
1902
+ ],
1903
+ "slots": []
1904
+ },
1905
+ "Markdown": {
1906
+ "categories": [
1907
+ "block"
1908
+ ],
1909
+ "providesItemScope": false,
1910
+ "textContentProp": "markdown",
1911
+ "summary": "formatted text: a safe Markdown subset (no HTML, no images), http(s) links in a new tab",
1912
+ "props": [
1913
+ {
1914
+ "name": "markdown",
1915
+ "types": [
1916
+ "string"
1917
+ ],
1918
+ "isRequired": true,
1919
+ "isBindable": true,
1920
+ "allowedValues": null,
1921
+ "description": "the formatted text (Markdown without HTML, images or code fences), in the owner's language"
1922
+ }
1923
+ ],
1924
+ "slots": []
1925
+ },
1926
+ "Math": {
1927
+ "categories": [
1928
+ "block",
1929
+ "inline"
1930
+ ],
1931
+ "providesItemScope": false,
1932
+ "textContentProp": "latex",
1933
+ "summary": "a formula typeset from LaTeX, as a centred block or inline in a sentence, with an optional heading and caption",
1934
+ "props": [
1935
+ {
1936
+ "name": "latex",
1937
+ "types": [
1938
+ "string"
1939
+ ],
1940
+ "isRequired": true,
1941
+ "isBindable": true,
1942
+ "allowedValues": null,
1943
+ "description": "the formula in LaTeX math notation, without $ delimiters, e.g. \"CR = \\frac{N_{Conversions}}{N_{Visitors}} \\times 100\\%\""
1944
+ },
1945
+ {
1946
+ "name": "display",
1947
+ "types": [
1948
+ "string"
1949
+ ],
1950
+ "isRequired": false,
1951
+ "isBindable": false,
1952
+ "allowedValues": [
1953
+ "block",
1954
+ "inline"
1955
+ ],
1956
+ "description": "\"block\" (default) centres the formula on its own line, \"inline\" sets it inside a line of text"
1957
+ },
1958
+ {
1959
+ "name": "title",
1960
+ "types": [
1961
+ "string"
1962
+ ],
1963
+ "isRequired": false,
1964
+ "isBindable": true,
1965
+ "allowedValues": null,
1966
+ "description": "a short heading above a block formula (\"Conversion rate\"), shown with a LaTeX badge"
1967
+ },
1968
+ {
1969
+ "name": "caption",
1970
+ "types": [
1971
+ "string"
1972
+ ],
1973
+ "isRequired": false,
1974
+ "isBindable": true,
1975
+ "allowedValues": null,
1976
+ "description": "one muted line under a block formula: what the symbols mean, or a worked example"
1977
+ }
1978
+ ],
1979
+ "slots": []
1980
+ },
1981
+ "Popover": {
1982
+ "categories": [
1983
+ "inline"
1984
+ ],
1985
+ "providesItemScope": false,
1986
+ "textContentProp": "text",
1987
+ "summary": "a small button (label + info icon) that opens a floating explanation on click",
1988
+ "props": [
1989
+ {
1990
+ "name": "label",
1991
+ "types": [
1992
+ "string"
1993
+ ],
1994
+ "isRequired": true,
1995
+ "isBindable": true,
1996
+ "allowedValues": null,
1997
+ "description": "the button text (e.g. \"Method\")"
1998
+ },
1999
+ {
2000
+ "name": "text",
2001
+ "types": [
2002
+ "string"
2003
+ ],
2004
+ "isRequired": false,
2005
+ "isBindable": true,
2006
+ "allowedValues": null,
2007
+ "description": "the explanation as plain text"
2008
+ },
2009
+ {
2010
+ "name": "icon",
2011
+ "types": [
2012
+ "string"
2013
+ ],
2014
+ "isRequired": false,
2015
+ "isBindable": false,
2016
+ "allowedValues": [
2017
+ "info",
2018
+ "help",
2019
+ "none"
2020
+ ],
2021
+ "description": "the icon before the label: info (default), help or none"
2022
+ },
2023
+ {
2024
+ "name": "placement",
2025
+ "types": [
2026
+ "string"
2027
+ ],
2028
+ "isRequired": false,
2029
+ "isBindable": false,
2030
+ "allowedValues": [
2031
+ "start",
2032
+ "end"
2033
+ ],
2034
+ "description": "which edge of the button the panel lines up with: start or end (default — for a button at the right of a title row)"
2035
+ }
2036
+ ],
2037
+ "slots": [
2038
+ {
2039
+ "name": "content",
2040
+ "acceptsCategories": [
2041
+ "inline",
2042
+ "block",
2043
+ "data",
2044
+ "media"
2045
+ ],
2046
+ "acceptsNodeTypes": [],
2047
+ "minChildren": 0,
2048
+ "maxChildren": null,
2049
+ "sizeClass": "compact",
2050
+ "description": "the explanation, when it is more than one plain text"
2051
+ }
2052
+ ]
2053
+ },
2054
+ "Pressable": {
2055
+ "categories": [
2056
+ "input"
2057
+ ],
2058
+ "providesItemScope": false,
2059
+ "textContentProp": null,
2060
+ "summary": "makes its content one clickable area that sets a state value or runs an action",
2061
+ "props": [
2062
+ {
2063
+ "name": "onClick",
2064
+ "types": [
2065
+ "event"
2066
+ ],
2067
+ "isRequired": true,
2068
+ "isBindable": true,
2069
+ "allowedValues": null,
2070
+ "description": "{\"set\": \"<state name>\"} (writes `value`) or {\"action\": \"<action name>\"}"
2071
+ },
2072
+ {
2073
+ "name": "value",
2074
+ "types": [
2075
+ "string",
2076
+ "number",
2077
+ "boolean"
2078
+ ],
2079
+ "isRequired": false,
2080
+ "isBindable": true,
2081
+ "allowedValues": null,
2082
+ "description": "the value a {\"set\": …} click writes into the state"
2083
+ },
2084
+ {
2085
+ "name": "isSelected",
2086
+ "types": [
2087
+ "boolean"
2088
+ ],
2089
+ "isRequired": false,
2090
+ "isBindable": true,
2091
+ "allowedValues": null,
2092
+ "description": "draw the selection ring (bind a computed comparison, e.g. channel == \"Organic\")"
2093
+ },
2094
+ {
2095
+ "name": "label",
2096
+ "types": [
2097
+ "string"
2098
+ ],
2099
+ "isRequired": false,
2100
+ "isBindable": true,
2101
+ "allowedValues": null,
2102
+ "description": "what the click does, for screen readers (e.g. \"Show the organic channel\")"
2103
+ }
2104
+ ],
2105
+ "slots": [
2106
+ {
2107
+ "name": "children",
2108
+ "acceptsCategories": [
2109
+ "inline",
2110
+ "block",
2111
+ "data",
2112
+ "media",
2113
+ "layout"
2114
+ ],
2115
+ "acceptsNodeTypes": [],
2116
+ "minChildren": 1,
2117
+ "maxChildren": null,
2118
+ "sizeClass": "regular",
2119
+ "description": "what the clickable area shows (no inputs, no other pressable)"
2120
+ }
2121
+ ]
2122
+ },
2123
+ "Quote": {
2124
+ "categories": [
2125
+ "block"
2126
+ ],
2127
+ "providesItemScope": false,
2128
+ "textContentProp": "text",
2129
+ "summary": "a quotation: the quoted words, who said them and where they were published",
2130
+ "props": [
2131
+ {
2132
+ "name": "text",
2133
+ "types": [
2134
+ "string"
2135
+ ],
2136
+ "isRequired": false,
2137
+ "isBindable": true,
2138
+ "allowedValues": null,
2139
+ "description": "the quoted words, verbatim"
2140
+ },
2141
+ {
2142
+ "name": "attribution",
2143
+ "types": [
2144
+ "string"
2145
+ ],
2146
+ "isRequired": false,
2147
+ "isBindable": true,
2148
+ "allowedValues": null,
2149
+ "description": "who said or wrote it"
2150
+ },
2151
+ {
2152
+ "name": "source",
2153
+ "types": [
2154
+ "object"
2155
+ ],
2156
+ "isRequired": false,
2157
+ "isBindable": true,
2158
+ "allowedValues": null,
2159
+ "description": "where it was published ({\"name\",\"url\"}), shown as a link after the attribution"
2160
+ }
2161
+ ],
2162
+ "slots": [
2163
+ {
2164
+ "name": "children",
2165
+ "acceptsCategories": [
2166
+ "inline",
2167
+ "block"
2168
+ ],
2169
+ "acceptsNodeTypes": [],
2170
+ "minChildren": 0,
2171
+ "maxChildren": null,
2172
+ "sizeClass": "regular",
2173
+ "description": "the quoted content, when it is more than one plain text"
2174
+ }
2175
+ ]
2176
+ },
2177
+ "RadioGroup": {
2178
+ "categories": [
2179
+ "input"
2180
+ ],
2181
+ "providesItemScope": false,
2182
+ "textContentProp": null,
2183
+ "summary": "radio buttons: one of a few explained choices, the picked one written to a state value",
2184
+ "props": [
2185
+ {
2186
+ "name": "options",
2187
+ "types": [
2188
+ "array"
2189
+ ],
2190
+ "isRequired": true,
2191
+ "isBindable": true,
2192
+ "allowedValues": null,
2193
+ "description": "the choices: a list of labels, or of {\"id\", \"label\", \"description\", \"disabled\"} objects; the picked id (or label) is written to the state"
2194
+ },
2195
+ {
2196
+ "name": "value",
2197
+ "types": [
2198
+ "string",
2199
+ "number"
2200
+ ],
2201
+ "isRequired": false,
2202
+ "isBindable": true,
2203
+ "allowedValues": null,
2204
+ "description": "the picked choice, usually {\"$state\": \"<name>\"}"
2205
+ },
2206
+ {
2207
+ "name": "onChange",
2208
+ "types": [
2209
+ "event"
2210
+ ],
2211
+ "isRequired": false,
2212
+ "isBindable": true,
2213
+ "allowedValues": null,
2214
+ "description": "{\"set\": \"<state name>\"} — writes the picked id"
2215
+ },
2216
+ {
2217
+ "name": "label",
2218
+ "types": [
2219
+ "string"
2220
+ ],
2221
+ "isRequired": false,
2222
+ "isBindable": true,
2223
+ "allowedValues": null,
2224
+ "description": "a short label above the group"
2225
+ },
2226
+ {
2227
+ "name": "direction",
2228
+ "types": [
2229
+ "string"
2230
+ ],
2231
+ "isRequired": false,
2232
+ "isBindable": true,
2233
+ "allowedValues": [
2234
+ "column",
2235
+ "row"
2236
+ ],
2237
+ "description": "the buttons under each other (default) or side by side"
2238
+ }
2239
+ ],
2240
+ "slots": [],
2241
+ "optionsProp": "options"
2242
+ },
2243
+ "Repeat": {
2244
+ "categories": [
2245
+ "data"
2246
+ ],
2247
+ "providesItemScope": true,
2248
+ "textContentProp": null,
2249
+ "summary": "its children once per item, $item bound to the item (table rows, list items, tiles)",
2250
+ "props": [
2251
+ {
2252
+ "name": "items",
2253
+ "types": [
2254
+ "array"
2255
+ ],
2256
+ "isRequired": true,
2257
+ "isBindable": true,
2258
+ "allowedValues": null,
2259
+ "description": "the list to repeat over, usually a binding ({\"$data\":…}, {\"$computed\":…})"
2260
+ },
2261
+ {
2262
+ "name": "limit",
2263
+ "types": [
2264
+ "number"
2265
+ ],
2266
+ "isRequired": false,
2267
+ "isBindable": false,
2268
+ "allowedValues": null,
2269
+ "description": "show the first N items only"
2270
+ }
2271
+ ],
2272
+ "slots": [
2273
+ {
2274
+ "name": "children",
2275
+ "acceptsCategories": [
2276
+ "inline",
2277
+ "block",
2278
+ "data",
2279
+ "media",
2280
+ "input",
2281
+ "layout"
2282
+ ],
2283
+ "acceptsNodeTypes": [
2284
+ "TableRow",
2285
+ "ListItem"
2286
+ ],
2287
+ "minChildren": 1,
2288
+ "maxChildren": null,
2289
+ "sizeClass": "regular",
2290
+ "description": "the nodes rendered once per item"
2291
+ }
2292
+ ],
2293
+ "sourcing": {
2294
+ "needsSource": false,
2295
+ "namesSources": false,
2296
+ "rowsProps": [
2297
+ "items"
2298
+ ],
2299
+ "figureProps": []
2300
+ },
2301
+ "itemsProp": "items"
2302
+ },
2303
+ "Select": {
2304
+ "categories": [
2305
+ "input"
2306
+ ],
2307
+ "providesItemScope": false,
2308
+ "textContentProp": null,
2309
+ "summary": "a drop-down: one of a longer list of choices, the picked one written to a state value",
2310
+ "props": [
2311
+ {
2312
+ "name": "options",
2313
+ "types": [
2314
+ "array"
2315
+ ],
2316
+ "isRequired": true,
2317
+ "isBindable": true,
2318
+ "allowedValues": null,
2319
+ "description": "the choices: a list of labels, or of {\"id\", \"label\", \"description\", \"disabled\"} objects; the picked id (or label) is written to the state"
2320
+ },
2321
+ {
2322
+ "name": "value",
2323
+ "types": [
2324
+ "string",
2325
+ "number"
2326
+ ],
2327
+ "isRequired": false,
2328
+ "isBindable": true,
2329
+ "allowedValues": null,
2330
+ "description": "the picked choice, usually {\"$state\": \"<name>\"}"
2331
+ },
2332
+ {
2333
+ "name": "onChange",
2334
+ "types": [
2335
+ "event"
2336
+ ],
2337
+ "isRequired": false,
2338
+ "isBindable": true,
2339
+ "allowedValues": null,
2340
+ "description": "{\"set\": \"<state name>\"} — writes the picked id"
2341
+ },
2342
+ {
2343
+ "name": "label",
2344
+ "types": [
2345
+ "string"
2346
+ ],
2347
+ "isRequired": false,
2348
+ "isBindable": true,
2349
+ "allowedValues": null,
2350
+ "description": "a short label above the control"
2351
+ },
2352
+ {
2353
+ "name": "placeholder",
2354
+ "types": [
2355
+ "string"
2356
+ ],
2357
+ "isRequired": false,
2358
+ "isBindable": true,
2359
+ "allowedValues": null,
2360
+ "description": "shown while nothing is picked"
2361
+ }
2362
+ ],
2363
+ "slots": [],
2364
+ "optionsProp": "options"
2365
+ },
2366
+ "Slider": {
2367
+ "categories": [
2368
+ "input"
2369
+ ],
2370
+ "providesItemScope": false,
2371
+ "textContentProp": null,
2372
+ "summary": "a slider between min and max that writes the number to a state value and shows it formatted",
2373
+ "props": [
2374
+ {
2375
+ "name": "min",
2376
+ "types": [
2377
+ "number"
2378
+ ],
2379
+ "isRequired": true,
2380
+ "isBindable": true,
2381
+ "allowedValues": null,
2382
+ "description": "the smallest value"
2383
+ },
2384
+ {
2385
+ "name": "max",
2386
+ "types": [
2387
+ "number"
2388
+ ],
2389
+ "isRequired": true,
2390
+ "isBindable": true,
2391
+ "allowedValues": null,
2392
+ "description": "the largest value"
2393
+ },
2394
+ {
2395
+ "name": "step",
2396
+ "types": [
2397
+ "number"
2398
+ ],
2399
+ "isRequired": false,
2400
+ "isBindable": true,
2401
+ "allowedValues": null,
2402
+ "description": "the step between two values (default 1)"
2403
+ },
2404
+ {
2405
+ "name": "value",
2406
+ "types": [
2407
+ "number"
2408
+ ],
2409
+ "isRequired": false,
2410
+ "isBindable": true,
2411
+ "allowedValues": null,
2412
+ "description": "the current value, usually {\"$state\": \"<name>\"}"
2413
+ },
2414
+ {
2415
+ "name": "onChange",
2416
+ "types": [
2417
+ "event"
2418
+ ],
2419
+ "isRequired": false,
2420
+ "isBindable": true,
2421
+ "allowedValues": null,
2422
+ "description": "{\"set\": \"<state name>\"} — writes the number"
2423
+ },
2424
+ {
2425
+ "name": "label",
2426
+ "types": [
2427
+ "string"
2428
+ ],
2429
+ "isRequired": false,
2430
+ "isBindable": true,
2431
+ "allowedValues": null,
2432
+ "description": "what the number is, shown left of the value"
2433
+ },
2434
+ {
2435
+ "name": "unit",
2436
+ "types": [
2437
+ "string"
2438
+ ],
2439
+ "isRequired": false,
2440
+ "isBindable": true,
2441
+ "allowedValues": null,
2442
+ "description": "written after the shown value (\"%\", \"€\", \"km\")"
2443
+ },
2444
+ {
2445
+ "name": "decimals",
2446
+ "types": [
2447
+ "number"
2448
+ ],
2449
+ "isRequired": false,
2450
+ "isBindable": true,
2451
+ "allowedValues": null,
2452
+ "description": "decimal places of the shown value (default: as many as the step has)"
2453
+ },
2454
+ {
2455
+ "name": "showValue",
2456
+ "types": [
2457
+ "boolean"
2458
+ ],
2459
+ "isRequired": false,
2460
+ "isBindable": true,
2461
+ "allowedValues": null,
2462
+ "description": "show the formatted value beside the label (default true)"
2463
+ }
2464
+ ],
2465
+ "slots": []
2466
+ },
2467
+ "SourceRef": {
2468
+ "categories": [
2469
+ "inline",
2470
+ "block"
2471
+ ],
2472
+ "providesItemScope": false,
2473
+ "textContentProp": null,
2474
+ "summary": "the source line of the shown values: each source with icon and link, licence and author when given",
2475
+ "props": [
2476
+ {
2477
+ "name": "sources",
2478
+ "types": [
2479
+ "array"
2480
+ ],
2481
+ "isRequired": true,
2482
+ "isBindable": true,
2483
+ "allowedValues": null,
2484
+ "description": "the sources, each {\"name\", \"url\"?, \"title\"?, \"author\"?, \"license\"?, \"licenseUrl\"?} — name = the publisher or site"
2485
+ }
2486
+ ],
2487
+ "slots": [],
2488
+ "sourcing": {
2489
+ "needsSource": false,
2490
+ "namesSources": true,
2491
+ "rowsProps": [],
2492
+ "figureProps": []
2493
+ }
2494
+ },
2495
+ "Spacer": {
2496
+ "categories": [
2497
+ "block"
2498
+ ],
2499
+ "providesItemScope": false,
2500
+ "textContentProp": null,
2501
+ "summary": "empty room: a fixed step, or all the free room of a row (grow)",
2502
+ "props": [
2503
+ {
2504
+ "name": "size",
2505
+ "types": [
2506
+ "string"
2507
+ ],
2508
+ "isRequired": false,
2509
+ "isBindable": false,
2510
+ "allowedValues": [
2511
+ "small",
2512
+ "medium",
2513
+ "large"
2514
+ ],
2515
+ "description": "the extra space: small, medium (default) or large"
2516
+ },
2517
+ {
2518
+ "name": "grow",
2519
+ "types": [
2520
+ "boolean"
2521
+ ],
2522
+ "isRequired": false,
2523
+ "isBindable": false,
2524
+ "allowedValues": null,
2525
+ "description": "take all the free room of the row or column, pushing the following nodes to the end"
2526
+ }
2527
+ ],
2528
+ "slots": []
2529
+ },
2530
+ "Stack": {
2531
+ "categories": [
2532
+ "layout"
2533
+ ],
2534
+ "providesItemScope": false,
2535
+ "textContentProp": null,
2536
+ "summary": "a row or a column of nodes with one gap step between them; rows wrap on a narrow screen",
2537
+ "props": [
2538
+ {
2539
+ "name": "direction",
2540
+ "types": [
2541
+ "string"
2542
+ ],
2543
+ "isRequired": false,
2544
+ "isBindable": false,
2545
+ "allowedValues": [
2546
+ "row",
2547
+ "column"
2548
+ ],
2549
+ "description": "row (side by side) or column (one under the other, the default)"
2550
+ },
2551
+ {
2552
+ "name": "gap",
2553
+ "types": [
2554
+ "string"
2555
+ ],
2556
+ "isRequired": false,
2557
+ "isBindable": false,
2558
+ "allowedValues": [
2559
+ "none",
2560
+ "xsmall",
2561
+ "small",
2562
+ "medium",
2563
+ "large"
2564
+ ],
2565
+ "description": "the space between the children: none, xsmall, small, medium (default, between rows and tiles) or large (between sections)"
2566
+ },
2567
+ {
2568
+ "name": "align",
2569
+ "types": [
2570
+ "string"
2571
+ ],
2572
+ "isRequired": false,
2573
+ "isBindable": false,
2574
+ "allowedValues": [
2575
+ "start",
2576
+ "center",
2577
+ "end",
2578
+ "stretch",
2579
+ "baseline"
2580
+ ],
2581
+ "description": "cross-axis alignment: start, center, end, stretch (the column default) or baseline"
2582
+ },
2583
+ {
2584
+ "name": "justify",
2585
+ "types": [
2586
+ "string"
2587
+ ],
2588
+ "isRequired": false,
2589
+ "isBindable": false,
2590
+ "allowedValues": [
2591
+ "start",
2592
+ "center",
2593
+ "end",
2594
+ "between"
2595
+ ],
2596
+ "description": "main-axis distribution: start (default), center, end or between (first and last at the edges, e.g. a title left and a control right)"
2597
+ },
2598
+ {
2599
+ "name": "wrap",
2600
+ "types": [
2601
+ "boolean"
2602
+ ],
2603
+ "isRequired": false,
2604
+ "isBindable": false,
2605
+ "allowedValues": null,
2606
+ "description": "a row continues on the next line when it does not fit (default true)"
2607
+ }
2608
+ ],
2609
+ "slots": [
2610
+ {
2611
+ "name": "children",
2612
+ "acceptsCategories": [
2613
+ "inline",
2614
+ "block",
2615
+ "data",
2616
+ "media",
2617
+ "input",
2618
+ "layout",
2619
+ "heavy"
2620
+ ],
2621
+ "acceptsNodeTypes": [],
2622
+ "minChildren": 0,
2623
+ "maxChildren": null,
2624
+ "sizeClass": "regular",
2625
+ "description": "the nodes of the row or column, in order"
2626
+ }
2627
+ ]
2628
+ },
2629
+ "Surface": {
2630
+ "categories": [
2631
+ "layout"
2632
+ ],
2633
+ "providesItemScope": false,
2634
+ "textContentProp": null,
2635
+ "summary": "a titled surface grouping nodes, with optional media, header controls, body and footer",
2636
+ "props": [
2637
+ {
2638
+ "name": "title",
2639
+ "types": [
2640
+ "string"
2641
+ ],
2642
+ "isRequired": false,
2643
+ "isBindable": true,
2644
+ "allowedValues": null,
2645
+ "description": "the title of the surface, in the owner's language"
2646
+ },
2647
+ {
2648
+ "name": "subtitle",
2649
+ "types": [
2650
+ "string"
2651
+ ],
2652
+ "isRequired": false,
2653
+ "isBindable": true,
2654
+ "allowedValues": null,
2655
+ "description": "one muted line under the title (what the numbers are, the period)"
2656
+ },
2657
+ {
2658
+ "name": "density",
2659
+ "types": [
2660
+ "string"
2661
+ ],
2662
+ "isRequired": false,
2663
+ "isBindable": false,
2664
+ "allowedValues": [
2665
+ "regular",
2666
+ "compact"
2667
+ ],
2668
+ "description": "regular (default) or compact (smaller padding, for tiles in a grid or carousel)"
2669
+ }
2670
+ ],
2671
+ "slots": [
2672
+ {
2673
+ "name": "media",
2674
+ "acceptsCategories": [
2675
+ "media"
2676
+ ],
2677
+ "acceptsNodeTypes": [],
2678
+ "minChildren": 0,
2679
+ "maxChildren": 1,
2680
+ "sizeClass": "full",
2681
+ "description": "one image or video flush with the top of the surface"
2682
+ },
2683
+ {
2684
+ "name": "header",
2685
+ "acceptsCategories": [
2686
+ "inline",
2687
+ "input"
2688
+ ],
2689
+ "acceptsNodeTypes": [],
2690
+ "minChildren": 0,
2691
+ "maxChildren": 3,
2692
+ "sizeClass": "compact",
2693
+ "description": "controls and badges at the end of the title row (tabs, a badge, a popover)"
2694
+ },
2695
+ {
2696
+ "name": "children",
2697
+ "acceptsCategories": [
2698
+ "inline",
2699
+ "block",
2700
+ "data",
2701
+ "media",
2702
+ "input",
2703
+ "layout",
2704
+ "heavy"
2705
+ ],
2706
+ "acceptsNodeTypes": [],
2707
+ "minChildren": 0,
2708
+ "maxChildren": null,
2709
+ "sizeClass": "regular",
2710
+ "description": "the body, one node under the other"
2711
+ },
2712
+ {
2713
+ "name": "footer",
2714
+ "acceptsCategories": [
2715
+ "inline",
2716
+ "block",
2717
+ "input"
2718
+ ],
2719
+ "acceptsNodeTypes": [],
2720
+ "minChildren": 0,
2721
+ "maxChildren": null,
2722
+ "sizeClass": "compact",
2723
+ "description": "a caption line or small actions at the foot"
2724
+ }
2725
+ ]
2726
+ },
2727
+ "Svg": {
2728
+ "categories": [
2729
+ "data",
2730
+ "media"
2731
+ ],
2732
+ "providesItemScope": false,
2733
+ "textContentProp": null,
2734
+ "summary": "a sanitised vector graphic from SVG markup (no scripts, no external references); the markup may follow the state through a computed text",
2735
+ "props": [
2736
+ {
2737
+ "name": "markup",
2738
+ "types": [
2739
+ "string"
2740
+ ],
2741
+ "isRequired": true,
2742
+ "isBindable": true,
2743
+ "allowedValues": null,
2744
+ "description": "one <svg> element with a viewBox, e.g. \"<svg viewBox='0 0 200 200'>…</svg>\"; bind it to a computed text to make the drawing follow the state"
2745
+ },
2746
+ {
2747
+ "name": "label",
2748
+ "types": [
2749
+ "string"
2750
+ ],
2751
+ "isRequired": false,
2752
+ "isBindable": true,
2753
+ "allowedValues": null,
2754
+ "description": "what the graphic shows, in one sentence (read out by screen readers)"
2755
+ },
2756
+ {
2757
+ "name": "title",
2758
+ "types": [
2759
+ "string"
2760
+ ],
2761
+ "isRequired": false,
2762
+ "isBindable": true,
2763
+ "allowedValues": null,
2764
+ "description": "a short heading above the graphic"
2765
+ },
2766
+ {
2767
+ "name": "caption",
2768
+ "types": [
2769
+ "string"
2770
+ ],
2771
+ "isRequired": false,
2772
+ "isBindable": true,
2773
+ "allowedValues": null,
2774
+ "description": "one muted line under the heading"
2775
+ }
2776
+ ],
2777
+ "slots": []
2778
+ },
2779
+ "Table": {
2780
+ "categories": [
2781
+ "data"
2782
+ ],
2783
+ "providesItemScope": false,
2784
+ "textContentProp": null,
2785
+ "summary": "a table: columns + rows, or TableRow / Repeat children whose TableCells hold other nodes",
2786
+ "props": [
2787
+ {
2788
+ "name": "columns",
2789
+ "types": [
2790
+ "array"
2791
+ ],
2792
+ "isRequired": false,
2793
+ "isBindable": false,
2794
+ "allowedValues": null,
2795
+ "description": "the short form: [{\"key\",\"label\",\"align\"?,\"format\"?,\"decimals\"?,\"currency\"?,\"unit\"?}] — the header row and how each cell is shown"
2796
+ },
2797
+ {
2798
+ "name": "rows",
2799
+ "types": [
2800
+ "array"
2801
+ ],
2802
+ "isRequired": false,
2803
+ "isBindable": true,
2804
+ "allowedValues": null,
2805
+ "description": "the short form: the rows (objects with the column keys), usually a binding"
2806
+ },
2807
+ {
2808
+ "name": "caption",
2809
+ "types": [
2810
+ "string"
2811
+ ],
2812
+ "isRequired": false,
2813
+ "isBindable": true,
2814
+ "allowedValues": null,
2815
+ "description": "a muted line under the table (what the figures are, the date)"
2816
+ },
2817
+ {
2818
+ "name": "emptyText",
2819
+ "types": [
2820
+ "string"
2821
+ ],
2822
+ "isRequired": false,
2823
+ "isBindable": true,
2824
+ "allowedValues": null,
2825
+ "description": "the line shown when the short form has no rows"
2826
+ },
2827
+ {
2828
+ "name": "source",
2829
+ "types": [
2830
+ "object",
2831
+ "array"
2832
+ ],
2833
+ "isRequired": false,
2834
+ "isBindable": true,
2835
+ "allowedValues": null,
2836
+ "description": "where the figures come from ({\"name\",\"url\"}, or a list of them when the values come from several pages), shown as the source line"
2837
+ }
2838
+ ],
2839
+ "slots": [
2840
+ {
2841
+ "name": "children",
2842
+ "acceptsCategories": [],
2843
+ "acceptsNodeTypes": [
2844
+ "TableRow",
2845
+ "Repeat"
2846
+ ],
2847
+ "minChildren": 0,
2848
+ "maxChildren": null,
2849
+ "sizeClass": "regular",
2850
+ "description": "TableRow nodes and Repeats of TableRows, in display order"
2851
+ }
2852
+ ],
2853
+ "sourcing": {
2854
+ "needsSource": true,
2855
+ "namesSources": false,
2856
+ "rowsProps": [
2857
+ "rows"
2858
+ ],
2859
+ "figureProps": []
2860
+ }
2861
+ },
2862
+ "TableCell": {
2863
+ "categories": [],
2864
+ "providesItemScope": false,
2865
+ "textContentProp": "value",
2866
+ "summary": "one table cell: a formatted value, a share bar or heat tint, and compact nodes (icon, badge, sparkline)",
2867
+ "props": [
2868
+ {
2869
+ "name": "value",
2870
+ "types": [
2871
+ "string",
2872
+ "number",
2873
+ "boolean"
2874
+ ],
2875
+ "isRequired": false,
2876
+ "isBindable": true,
2877
+ "allowedValues": null,
2878
+ "description": "the cell text or number, usually {\"$item\":\"field\"}"
2879
+ },
2880
+ {
2881
+ "name": "format",
2882
+ "types": [
2883
+ "string"
2884
+ ],
2885
+ "isRequired": false,
2886
+ "isBindable": false,
2887
+ "allowedValues": [
2888
+ "number",
2889
+ "percent",
2890
+ "currency",
2891
+ "compact",
2892
+ "date",
2893
+ "text"
2894
+ ],
2895
+ "description": "how a numeric value is shown (default number)"
2896
+ },
2897
+ {
2898
+ "name": "currency",
2899
+ "types": [
2900
+ "string"
2901
+ ],
2902
+ "isRequired": false,
2903
+ "isBindable": false,
2904
+ "allowedValues": null,
2905
+ "description": "the ISO currency code for format currency (default EUR)"
2906
+ },
2907
+ {
2908
+ "name": "decimals",
2909
+ "types": [
2910
+ "number"
2911
+ ],
2912
+ "isRequired": false,
2913
+ "isBindable": false,
2914
+ "allowedValues": null,
2915
+ "description": "the fraction digits of a numeric value (default: up to 2)"
2916
+ },
2917
+ {
2918
+ "name": "unit",
2919
+ "types": [
2920
+ "string"
2921
+ ],
2922
+ "isRequired": false,
2923
+ "isBindable": false,
2924
+ "allowedValues": null,
2925
+ "description": "a unit written after the value"
2926
+ },
2927
+ {
2928
+ "name": "align",
2929
+ "types": [
2930
+ "string"
2931
+ ],
2932
+ "isRequired": false,
2933
+ "isBindable": false,
2934
+ "allowedValues": [
2935
+ "start",
2936
+ "center",
2937
+ "end"
2938
+ ],
2939
+ "description": "start, center or end (numbers: end)"
2940
+ },
2941
+ {
2942
+ "name": "tone",
2943
+ "types": [
2944
+ "string"
2945
+ ],
2946
+ "isRequired": false,
2947
+ "isBindable": true,
2948
+ "allowedValues": [
2949
+ "neutral",
2950
+ "muted",
2951
+ "success",
2952
+ "warning",
2953
+ "danger",
2954
+ "info",
2955
+ "default",
2956
+ "positive",
2957
+ "negative"
2958
+ ],
2959
+ "description": "the judgement colour of the value (success: a +2 in green, danger: a -3 in red)"
2960
+ },
2961
+ {
2962
+ "name": "signed",
2963
+ "types": [
2964
+ "boolean"
2965
+ ],
2966
+ "isRequired": false,
2967
+ "isBindable": false,
2968
+ "allowedValues": null,
2969
+ "description": "a positive number gets a plus sign (a change column)"
2970
+ },
2971
+ {
2972
+ "name": "bar",
2973
+ "types": [
2974
+ "number"
2975
+ ],
2976
+ "isRequired": false,
2977
+ "isBindable": true,
2978
+ "allowedValues": null,
2979
+ "description": "a share bar in the cell, the filled part from 0 to 1"
2980
+ },
2981
+ {
2982
+ "name": "heat",
2983
+ "types": [
2984
+ "number"
2985
+ ],
2986
+ "isRequired": false,
2987
+ "isBindable": true,
2988
+ "allowedValues": null,
2989
+ "description": "tints the cell by intensity from 0 to 1 (a heatmap cell); no value = an empty cell"
2990
+ }
2991
+ ],
2992
+ "slots": [
2993
+ {
2994
+ "name": "children",
2995
+ "acceptsCategories": [
2996
+ "inline",
2997
+ "block",
2998
+ "data",
2999
+ "media",
3000
+ "input"
3001
+ ],
3002
+ "acceptsNodeTypes": [],
3003
+ "minChildren": 0,
3004
+ "maxChildren": null,
3005
+ "sizeClass": "compact",
3006
+ "description": "nodes shown in the cell after the value (compact: a chart is a sparkline, an image a thumbnail)"
3007
+ }
3008
+ ],
3009
+ "sourcing": {
3010
+ "needsSource": false,
3011
+ "namesSources": false,
3012
+ "rowsProps": [],
3013
+ "figureProps": [
3014
+ "value"
3015
+ ]
3016
+ }
3017
+ },
3018
+ "TableRow": {
3019
+ "categories": [],
3020
+ "providesItemScope": false,
3021
+ "textContentProp": null,
3022
+ "summary": "one table row of TableCells; header for the column titles, emphasis for a total row",
3023
+ "props": [
3024
+ {
3025
+ "name": "header",
3026
+ "types": [
3027
+ "boolean"
3028
+ ],
3029
+ "isRequired": false,
3030
+ "isBindable": false,
3031
+ "allowedValues": null,
3032
+ "description": "the column header row"
3033
+ },
3034
+ {
3035
+ "name": "emphasis",
3036
+ "types": [
3037
+ "boolean"
3038
+ ],
3039
+ "isRequired": false,
3040
+ "isBindable": false,
3041
+ "allowedValues": null,
3042
+ "description": "a total or summary row, shown bold"
3043
+ }
3044
+ ],
3045
+ "slots": [
3046
+ {
3047
+ "name": "children",
3048
+ "acceptsCategories": [],
3049
+ "acceptsNodeTypes": [
3050
+ "TableCell"
3051
+ ],
3052
+ "minChildren": 1,
3053
+ "maxChildren": null,
3054
+ "sizeClass": "regular",
3055
+ "description": "the TableCell nodes, one per column"
3056
+ }
3057
+ ]
3058
+ },
3059
+ "Tabs": {
3060
+ "categories": [
3061
+ "input"
3062
+ ],
3063
+ "providesItemScope": false,
3064
+ "textContentProp": null,
3065
+ "summary": "a segmented control: a few short choices side by side, the picked one written to a state value",
3066
+ "props": [
3067
+ {
3068
+ "name": "options",
3069
+ "types": [
3070
+ "array"
3071
+ ],
3072
+ "isRequired": true,
3073
+ "isBindable": true,
3074
+ "allowedValues": null,
3075
+ "description": "the choices: a list of labels, or of {\"id\", \"label\", \"description\", \"disabled\"} objects; the picked id (or label) is written to the state"
3076
+ },
3077
+ {
3078
+ "name": "value",
3079
+ "types": [
3080
+ "string",
3081
+ "number"
3082
+ ],
3083
+ "isRequired": false,
3084
+ "isBindable": true,
3085
+ "allowedValues": null,
3086
+ "description": "the picked choice, usually {\"$state\": \"<name>\"}"
3087
+ },
3088
+ {
3089
+ "name": "onChange",
3090
+ "types": [
3091
+ "event"
3092
+ ],
3093
+ "isRequired": false,
3094
+ "isBindable": true,
3095
+ "allowedValues": null,
3096
+ "description": "{\"set\": \"<state name>\"} — writes the picked id"
3097
+ },
3098
+ {
3099
+ "name": "label",
3100
+ "types": [
3101
+ "string"
3102
+ ],
3103
+ "isRequired": false,
3104
+ "isBindable": true,
3105
+ "allowedValues": null,
3106
+ "description": "a short label above the control"
3107
+ }
3108
+ ],
3109
+ "slots": [],
3110
+ "optionsProp": "options"
3111
+ },
3112
+ "Text": {
3113
+ "categories": [
3114
+ "inline",
3115
+ "block"
3116
+ ],
3117
+ "providesItemScope": false,
3118
+ "textContentProp": "text",
3119
+ "summary": "plain text, a paragraph or an inline run; its children are inline nodes on the same line",
3120
+ "props": [
3121
+ {
3122
+ "name": "text",
3123
+ "types": [
3124
+ "string",
3125
+ "number"
3126
+ ],
3127
+ "isRequired": false,
3128
+ "isBindable": true,
3129
+ "allowedValues": null,
3130
+ "description": "the text, in the owner's language (a Text with only children may leave it out)"
3131
+ },
3132
+ {
3133
+ "name": "weight",
3134
+ "types": [
3135
+ "string"
3136
+ ],
3137
+ "isRequired": false,
3138
+ "isBindable": false,
3139
+ "allowedValues": [
3140
+ "regular",
3141
+ "medium",
3142
+ "bold"
3143
+ ],
3144
+ "description": "regular (default), medium or bold"
3145
+ },
3146
+ {
3147
+ "name": "tone",
3148
+ "types": [
3149
+ "string"
3150
+ ],
3151
+ "isRequired": false,
3152
+ "isBindable": true,
3153
+ "allowedValues": [
3154
+ "neutral",
3155
+ "muted",
3156
+ "success",
3157
+ "warning",
3158
+ "danger",
3159
+ "info",
3160
+ "default",
3161
+ "positive",
3162
+ "negative"
3163
+ ],
3164
+ "description": "neutral (default), muted (secondary text), success (green), warning (amber), danger (red) or info (blue)"
3165
+ },
3166
+ {
3167
+ "name": "maxLines",
3168
+ "types": [
3169
+ "number"
3170
+ ],
3171
+ "isRequired": false,
3172
+ "isBindable": false,
3173
+ "allowedValues": null,
3174
+ "description": "clamp the text at this many lines (1–10); the full text shows on hover"
3175
+ }
3176
+ ],
3177
+ "slots": [
3178
+ {
3179
+ "name": "children",
3180
+ "acceptsCategories": [
3181
+ "inline"
3182
+ ],
3183
+ "acceptsNodeTypes": [],
3184
+ "minChildren": 0,
3185
+ "maxChildren": null,
3186
+ "sizeClass": "compact",
3187
+ "description": "inline nodes that follow the text on the same line"
3188
+ }
3189
+ ]
3190
+ },
3191
+ "Textarea": {
3192
+ "categories": [
3193
+ "input"
3194
+ ],
3195
+ "providesItemScope": false,
3196
+ "textContentProp": null,
3197
+ "summary": "a multi-line text field that writes what is typed to a state value",
3198
+ "props": [
3199
+ {
3200
+ "name": "value",
3201
+ "types": [
3202
+ "string"
3203
+ ],
3204
+ "isRequired": false,
3205
+ "isBindable": true,
3206
+ "allowedValues": null,
3207
+ "description": "the current text, usually {\"$state\": \"<name>\"}"
3208
+ },
3209
+ {
3210
+ "name": "onChange",
3211
+ "types": [
3212
+ "event"
3213
+ ],
3214
+ "isRequired": false,
3215
+ "isBindable": true,
3216
+ "allowedValues": null,
3217
+ "description": "{\"set\": \"<state name>\"} — writes what is typed"
3218
+ },
3219
+ {
3220
+ "name": "label",
3221
+ "types": [
3222
+ "string"
3223
+ ],
3224
+ "isRequired": false,
3225
+ "isBindable": true,
3226
+ "allowedValues": null,
3227
+ "description": "a short label above the field"
3228
+ },
3229
+ {
3230
+ "name": "placeholder",
3231
+ "types": [
3232
+ "string"
3233
+ ],
3234
+ "isRequired": false,
3235
+ "isBindable": true,
3236
+ "allowedValues": null,
3237
+ "description": "shown while the field is empty"
3238
+ },
3239
+ {
3240
+ "name": "rows",
3241
+ "types": [
3242
+ "number"
3243
+ ],
3244
+ "isRequired": false,
3245
+ "isBindable": true,
3246
+ "allowedValues": null,
3247
+ "description": "the visible lines (default 3)"
3248
+ },
3249
+ {
3250
+ "name": "maxLength",
3251
+ "types": [
3252
+ "number"
3253
+ ],
3254
+ "isRequired": false,
3255
+ "isBindable": true,
3256
+ "allowedValues": null,
3257
+ "description": "the most characters the field takes, shown as a counter"
3258
+ }
3259
+ ],
3260
+ "slots": []
3261
+ },
3262
+ "Title": {
3263
+ "categories": [
3264
+ "block"
3265
+ ],
3266
+ "providesItemScope": false,
3267
+ "textContentProp": "text",
3268
+ "summary": "a heading: the title of the view or of one section of it",
3269
+ "props": [
3270
+ {
3271
+ "name": "text",
3272
+ "types": [
3273
+ "string",
3274
+ "number"
3275
+ ],
3276
+ "isRequired": true,
3277
+ "isBindable": true,
3278
+ "allowedValues": null,
3279
+ "description": "the heading, in the owner's language"
3280
+ },
3281
+ {
3282
+ "name": "level",
3283
+ "types": [
3284
+ "string"
3285
+ ],
3286
+ "isRequired": false,
3287
+ "isBindable": false,
3288
+ "allowedValues": [
3289
+ "widget",
3290
+ "section"
3291
+ ],
3292
+ "description": "widget = the title of the whole view (default), section = the title of one part of it"
3293
+ }
3294
+ ],
3295
+ "slots": []
3296
+ },
3297
+ "Video": {
3298
+ "categories": [
3299
+ "media"
3300
+ ],
3301
+ "providesItemScope": false,
3302
+ "textContentProp": null,
3303
+ "summary": "one video: title, thumbnail, length, and a videoId or url that plays it",
3304
+ "props": [
3305
+ {
3306
+ "name": "title",
3307
+ "types": [
3308
+ "string"
3309
+ ],
3310
+ "isRequired": true,
3311
+ "isBindable": true,
3312
+ "allowedValues": null,
3313
+ "description": "the video title, as the source names it"
3314
+ },
3315
+ {
3316
+ "name": "videoId",
3317
+ "types": [
3318
+ "string"
3319
+ ],
3320
+ "isRequired": false,
3321
+ "isBindable": true,
3322
+ "allowedValues": null,
3323
+ "description": "the id the video connector returned (plays embedded)"
3324
+ },
3325
+ {
3326
+ "name": "url",
3327
+ "types": [
3328
+ "string"
3329
+ ],
3330
+ "isRequired": false,
3331
+ "isBindable": true,
3332
+ "allowedValues": null,
3333
+ "description": "an http(s) link that opens the video, when there is no videoId"
3334
+ },
3335
+ {
3336
+ "name": "thumbnail",
3337
+ "types": [
3338
+ "string"
3339
+ ],
3340
+ "isRequired": false,
3341
+ "isBindable": true,
3342
+ "allowedValues": null,
3343
+ "description": "the thumbnail image URL"
3344
+ },
3345
+ {
3346
+ "name": "durationSeconds",
3347
+ "types": [
3348
+ "number"
3349
+ ],
3350
+ "isRequired": false,
3351
+ "isBindable": true,
3352
+ "allowedValues": null,
3353
+ "description": "the length in seconds"
3354
+ },
3355
+ {
3356
+ "name": "channel",
3357
+ "types": [
3358
+ "string"
3359
+ ],
3360
+ "isRequired": false,
3361
+ "isBindable": true,
3362
+ "allowedValues": null,
3363
+ "description": "who published it"
3364
+ },
3365
+ {
3366
+ "name": "source",
3367
+ "types": [
3368
+ "object"
3369
+ ],
3370
+ "isRequired": false,
3371
+ "isBindable": true,
3372
+ "allowedValues": null,
3373
+ "description": "where the video was found ({\"name\",\"url\"}), shown as the source line"
3374
+ }
3375
+ ],
3376
+ "slots": []
3377
+ },
3378
+ "Widget": {
3379
+ "categories": [
3380
+ "heavy"
3381
+ ],
3382
+ "providesItemScope": false,
3383
+ "textContentProp": null,
3384
+ "summary": "an existing domain widget embedded in the tree (only widgets declared embeddable)",
3385
+ "props": [
3386
+ {
3387
+ "name": "widget",
3388
+ "types": [
3389
+ "string"
3390
+ ],
3391
+ "isRequired": true,
3392
+ "isBindable": false,
3393
+ "allowedValues": null,
3394
+ "description": "the wire name of an embeddable domain widget"
3395
+ },
3396
+ {
3397
+ "name": "fields",
3398
+ "types": [
3399
+ "object"
3400
+ ],
3401
+ "isRequired": false,
3402
+ "isBindable": false,
3403
+ "allowedValues": null,
3404
+ "description": "the widget's own payload fields, as its fence would carry them next to `type`"
3405
+ }
3406
+ ],
3407
+ "slots": []
3408
+ }
3409
+ },
3410
+ "embeddableWidgets": {
3411
+ "CustomVisualization": {
3412
+ "sizeClass": "full"
3413
+ }
3414
+ },
3415
+ "widgetTypes": [
3416
+ "ComposedView",
3417
+ "ConversationSearchResults",
3418
+ "CustomVisualization",
3419
+ "EntityMention",
3420
+ "MultiChoice",
3421
+ "QuickReplies",
3422
+ "SuggestedActions",
3423
+ "ToolTrace",
3424
+ "WebSearchResults"
3425
+ ],
3426
+ "dataSources": {},
3427
+ "entityTypes": []
3428
+ }