@mgamadeus/ddd-agents 0.1.0-alpha.21 → 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.
- package/README.md +3 -2
- package/dist/chat.js +22 -72
- package/dist/chat.js.map +1 -1
- package/dist/chunks/{ConversationMarkdown-W7NHglmL.js → ConversationMarkdown-CJhAnuVa.js} +110 -8
- package/dist/chunks/ConversationMarkdown-CJhAnuVa.js.map +1 -0
- package/dist/chunks/{WebSearchResultsConversationWidget-BvnLWHyi.js → WebSearchResultsConversationWidget-DRBQvycE.js} +140 -1125
- package/dist/chunks/WebSearchResultsConversationWidget-DRBQvycE.js.map +1 -0
- package/dist/chunks/{canvasBodies-9SuF6NAB.js → canvasBodies-DLjDkviP.js} +9 -6
- package/dist/chunks/canvasBodies-DLjDkviP.js.map +1 -0
- package/dist/chunks/{canvas-behaviours-BRFR1ALE.js → decide-canvas-open-DBWoWtAC.js} +18 -2
- package/dist/chunks/decide-canvas-open-DBWoWtAC.js.map +1 -0
- package/dist/chunks/entity-detail-name-3A82gDAp.js +15 -0
- package/dist/chunks/entity-detail-name-3A82gDAp.js.map +1 -0
- package/dist/chunks/icon-names-Di6c4zLo.js +86 -0
- package/dist/chunks/icon-names-Di6c4zLo.js.map +1 -0
- package/dist/chunks/index-7Qc_3GbG.js +1046 -0
- package/dist/chunks/index-7Qc_3GbG.js.map +1 -0
- package/dist/chunks/{widget-image-readiness-signal-DeOuL89j.js → widget-image-readiness-signal-D3ci53xr.js} +2 -2
- package/dist/chunks/{widget-image-readiness-signal-DeOuL89j.js.map → widget-image-readiness-signal-D3ci53xr.js.map} +1 -1
- package/dist/chunks/{widget-name-resolver-DyIY6Zu4.js → widget-name-resolver-C8SfpiR5.js} +48 -116
- package/dist/chunks/widget-name-resolver-C8SfpiR5.js.map +1 -0
- package/dist/client-testing.js +68 -1
- package/dist/client-testing.js.map +1 -1
- package/dist/files/chat/Conversation.module.scss +268 -0
- package/dist/files/chat/ConversationViewBody/ConversationViewBody.module.scss +336 -0
- package/dist/files/chat/_conversation-tokens.scss +37 -0
- package/dist/files/image-render/WidgetImageRender.module.scss +22 -0
- package/dist/files/kit/ComposedViewConversationWidget.md +59 -0
- package/dist/files/kit/components/data/data.preview-fixtures.json +3298 -0
- package/dist/files/kit/components/embedding/widget.preview-fixtures.json +147 -0
- package/dist/files/kit/components/entity/entity-link.preview-fixtures.json +340 -0
- package/dist/files/kit/components/form/form.preview-fixtures.json +319 -0
- package/dist/files/kit/components/inputs/button.preview-fixtures.json +301 -0
- package/dist/files/kit/components/inputs/checkbox.preview-fixtures.json +35 -0
- package/dist/files/kit/components/inputs/date-picker.preview-fixtures.json +36 -0
- package/dist/files/kit/components/inputs/input.preview-fixtures.json +55 -0
- package/dist/files/kit/components/inputs/radio-group.preview-fixtures.json +76 -0
- package/dist/files/kit/components/inputs/select.preview-fixtures.json +314 -0
- package/dist/files/kit/components/inputs/slider.preview-fixtures.json +178 -0
- package/dist/files/kit/components/inputs/tabs.preview-fixtures.json +304 -0
- package/dist/files/kit/components/inputs/textarea.preview-fixtures.json +37 -0
- package/dist/files/kit/components/layout/layout.preview-fixtures.json +892 -0
- package/dist/files/kit/components/map/map.preview-fixtures.json +339 -0
- package/dist/files/kit/components/media/image-group.preview-fixtures.json +228 -0
- package/dist/files/kit/components/media/image.preview-fixtures.json +61 -0
- package/dist/files/kit/components/media/video-card/video-card.preview-fixtures.json +121 -0
- package/dist/files/kit/components/media/video.preview-fixtures.json +68 -0
- package/dist/files/kit/components/rich/code.preview-fixtures.json +105 -0
- package/dist/files/kit/components/rich/diagram.preview-fixtures.json +89 -0
- package/dist/files/kit/components/rich/math.preview-fixtures.json +152 -0
- package/dist/files/kit/components/rich/svg.preview-fixtures.json +243 -0
- package/dist/files/kit/components/text/badge.preview-fixtures.json +44 -0
- package/dist/files/kit/components/text/caption.preview-fixtures.json +31 -0
- package/dist/files/kit/components/text/favicon.preview-fixtures.json +69 -0
- package/dist/files/kit/components/text/label.preview-fixtures.json +48 -0
- package/dist/files/kit/components/text/link.preview-fixtures.json +103 -0
- package/dist/files/kit/components/text/markdown.preview-fixtures.json +29 -0
- package/dist/files/kit/components/text/source-ref.preview-fixtures.json +51 -0
- package/dist/files/kit/components/text/text.preview-fixtures.json +106 -0
- package/dist/files/kit/components/text/title.preview-fixtures.json +172 -0
- package/dist/files/kit/composed-view-widget-contract.json +88 -0
- package/dist/files/kit/composed-view.preview-fixtures.json +376 -0
- package/dist/files/renderer/conversation-widget-layout.module.scss +47 -0
- package/dist/files/renderer/widget-tree/composed-node-schema.json +3428 -0
- package/dist/files/styles/_conversation-widget-container.scss +6 -0
- package/dist/files/styles/_media.scss +50 -0
- package/dist/files/styles/_spacings.scss +23 -0
- package/dist/files/styles/_surfaces.scss +28 -0
- package/dist/files/widgets/ClockConversationWidget/ClockConversationWidget.md +53 -0
- package/dist/files/widgets/ClockConversationWidget/clock.preview-fixtures.json +76 -0
- package/dist/files/widgets/ConceptExplainerConversationWidget/ConceptExplainerConversationWidget.md +86 -0
- package/dist/files/widgets/ConceptExplainerConversationWidget/concept-explainer.preview-fixtures.json +23 -0
- package/dist/files/widgets/ConversationSearchResultsConversationWidget/ConversationSearchResultsConversationWidget.md +59 -0
- package/dist/files/widgets/ConversationSearchResultsConversationWidget/conversation-search-results.preview-fixtures.json +85 -0
- package/dist/files/widgets/CurrencyConverterConversationWidget/CurrencyConverterConversationWidget.md +51 -0
- package/dist/files/widgets/CurrencyConverterConversationWidget/currency-converter.preview-fixtures.json +73 -0
- package/dist/files/widgets/CustomVisualizationConversationWidget/CustomVisualizationConversationWidget.md +83 -0
- package/dist/files/widgets/CustomVisualizationConversationWidget/custom-visualization.preview-fixtures.json +227 -0
- package/dist/files/widgets/CustomVisualizationConversationWidget/sandbox-frame/custom-visualization-frame.html +188 -0
- package/dist/files/widgets/EntityMentionConversationWidget/EntityMentionConversationWidget.md +55 -0
- package/dist/files/widgets/EntityMentionConversationWidget/entity-mention.preview-fixtures.json +55 -0
- package/dist/files/widgets/MultiChoiceConversationWidget/MultiChoiceConversationWidget.md +61 -0
- package/dist/files/widgets/MultiChoiceConversationWidget/multi-choice-widget-contract.json +43 -0
- package/dist/files/widgets/MultiChoiceConversationWidget/multi-choice.preview-fixtures.json +103 -0
- package/dist/files/widgets/QuickRepliesConversationWidget/QuickRepliesConversationWidget.md +65 -0
- package/dist/files/widgets/QuickRepliesConversationWidget/quick-replies-widget-contract.json +43 -0
- package/dist/files/widgets/QuickRepliesConversationWidget/quick-replies.preview-fixtures.json +45 -0
- package/dist/files/widgets/SuggestedActions/SuggestedActions.md +60 -0
- package/dist/files/widgets/SuggestedActions/suggested-actions.preview-fixtures.json +19 -0
- package/dist/files/widgets/ToolTraceConversationWidget/ToolTraceConversationWidget.md +48 -0
- package/dist/files/widgets/ToolTraceConversationWidget/tool-trace.preview-fixtures.json +32 -0
- package/dist/files/widgets/WebSearchResultsConversationWidget/WebSearchResultsConversationWidget.md +49 -0
- package/dist/files/widgets/WebSearchResultsConversationWidget/web-search-results.preview-fixtures.json +57 -0
- package/dist/files/widgets/WritingDraftConversationWidget/WritingDraftConversationWidget.md +66 -0
- package/dist/files/widgets/WritingDraftConversationWidget/writing-draft.preview-fixtures.json +129 -0
- package/dist/image-render.js +11 -10
- package/dist/image-render.js.map +1 -1
- package/dist/index.js +32 -28
- package/dist/index.js.map +1 -1
- package/dist/kit.js +11 -2
- package/dist/kit.js.map +1 -1
- package/dist/preview.js +7 -6
- package/dist/provider.js +71 -0
- package/dist/provider.js.map +1 -0
- package/dist/renderer.js +138 -63
- package/dist/renderer.js.map +1 -1
- package/dist/styles.css +32 -17
- package/dist/types/client/testing/test-conversation-widgets.d.ts +25 -0
- package/dist/types/client/testing/widget-hydration-stand-ins.d.ts +33 -0
- package/dist/types/entries/chat.d.ts +10 -0
- package/dist/types/entries/client-testing.d.ts +2 -0
- package/dist/types/entries/index.d.ts +4 -3
- package/dist/types/entries/kit.d.ts +7 -0
- package/dist/types/entries/preview.d.ts +1 -0
- package/dist/types/entries/provider.d.ts +1 -0
- package/dist/types/entries/renderer.d.ts +16 -0
- package/dist/types/entries/widgets.d.ts +13 -0
- package/dist/types/kit/components/data/apex-chart-component.d.ts +3 -0
- package/dist/types/kit/components/data/chart-model.d.ts +164 -0
- package/dist/types/kit/components/data/data-value-format.d.ts +44 -0
- package/dist/types/kit/components/data/use-chart-palette.d.ts +9 -0
- package/dist/types/kit/components/data/use-number-locale.d.ts +5 -0
- package/dist/types/provider/index.d.ts +1 -0
- package/dist/types/renderer/_access/ConversationWidgetGateSkeleton.d.ts +6 -0
- package/dist/types/renderer/_agent-space/use-conversation-widget-agent-space-fallback.d.ts +16 -0
- package/dist/types/renderer/canvas/use-anchor-widget-agent-space-key.d.ts +17 -0
- package/dist/types/renderer/conversationWidgetRegistry.d.ts +6 -0
- package/dist/types/renderer/read-conversation-widget-variant.d.ts +22 -0
- package/dist/types/widgets/_shared/CardFooter.d.ts +6 -0
- package/dist/types/widgets/_shared/WidgetLabel.d.ts +8 -0
- package/dist/types/widgets/_shared/entity-update-channel.d.ts +17 -0
- package/dist/types/widgets/_shared/use-element-visible.d.ts +6 -0
- package/dist/widgets.js +120 -27
- package/dist/widgets.js.map +1 -1
- package/package.json +74 -1
- package/public-api.json +761 -0
- package/dist/chunks/ConversationMarkdown-W7NHglmL.js.map +0 -1
- package/dist/chunks/WebSearchResultsConversationWidget-BvnLWHyi.js.map +0 -1
- package/dist/chunks/canvas-behaviours-BRFR1ALE.js.map +0 -1
- package/dist/chunks/canvasBodies-9SuF6NAB.js.map +0 -1
- package/dist/chunks/decide-canvas-open-Ct-wnNEJ.js +0 -20
- package/dist/chunks/decide-canvas-open-Ct-wnNEJ.js.map +0 -1
- package/dist/chunks/widget-name-resolver-DyIY6Zu4.js.map +0 -1
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
{
|
|
2
|
+
"wireName": "ComposedView",
|
|
3
|
+
"fixtures": [
|
|
4
|
+
{
|
|
5
|
+
"name": "svg-radar",
|
|
6
|
+
"description": "ChatGPT reference 14, the radar graphic alone (Svg node only, static markup): heading, caption, the five-axis polygon over its grid.",
|
|
7
|
+
"payload": {
|
|
8
|
+
"view": {
|
|
9
|
+
"type": "Svg",
|
|
10
|
+
"title": "Marketing Performance Radar",
|
|
11
|
+
"caption": "Interaktives Fünf-Achsen-Profil · Demo",
|
|
12
|
+
"label": "Radar: SEO 76, Content 62, Ads 48, Social 86, Email 70 of 100",
|
|
13
|
+
"markup": "<svg viewBox='0 0 200 200'><g fill='none' stroke='currentColor' stroke-opacity='0.2'><polygon points='100.0,20.0 176.1,75.3 147.0,164.7 53.0,164.7 23.9,75.3'/><polygon points='100.0,40.0 157.1,81.5 135.3,148.5 64.7,148.5 42.9,81.5'/><polygon points='100.0,60.0 138.0,87.6 123.5,132.4 76.5,132.4 62.0,87.6'/><polygon points='100.0,80.0 119.0,93.8 111.8,116.2 88.2,116.2 81.0,93.8'/><line x1='100' y1='100' x2='100.0' y2='20.0'/><line x1='100' y1='100' x2='176.1' y2='75.3'/><line x1='100' y1='100' x2='147.0' y2='164.7'/><line x1='100' y1='100' x2='53.0' y2='164.7'/><line x1='100' y1='100' x2='23.9' y2='75.3'/></g><polygon points='100.0,39.2 147.2,84.7 122.6,131.1 59.6,155.7 46.7,82.7' fill='#4a90d9' fill-opacity='0.22' stroke='#4a90d9' stroke-width='2' stroke-linejoin='round'/><g fill='#4a90d9'><circle r='3.5' cx='100.0' cy='39.2'/><circle r='3.5' cx='147.2' cy='84.7'/><circle r='3.5' cx='122.6' cy='131.1'/><circle r='3.5' cx='59.6' cy='155.7'/><circle r='3.5' cx='46.7' cy='82.7'/></g></svg>"
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"expectedState": "data",
|
|
17
|
+
"width": 528
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"name": "svg-radar-sliders",
|
|
21
|
+
"description": "ChatGPT reference 14 in full: the radar drawn from a computed SVG text over five state values, with one Slider (lane L5) per axis inside a Surface (lane L1) — moving a slider reshapes the polygon.",
|
|
22
|
+
"payload": {
|
|
23
|
+
"state": {
|
|
24
|
+
"seo": 76,
|
|
25
|
+
"content": 62,
|
|
26
|
+
"ads": 48,
|
|
27
|
+
"social": 86,
|
|
28
|
+
"email": 70
|
|
29
|
+
},
|
|
30
|
+
"data": {
|
|
31
|
+
"axes": [
|
|
32
|
+
{
|
|
33
|
+
"key": "seo",
|
|
34
|
+
"label": "SEO",
|
|
35
|
+
"dx": 0,
|
|
36
|
+
"dy": -1
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"key": "content",
|
|
40
|
+
"label": "Content",
|
|
41
|
+
"dx": 0.9511,
|
|
42
|
+
"dy": -0.309
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"key": "ads",
|
|
46
|
+
"label": "Ads",
|
|
47
|
+
"dx": 0.5878,
|
|
48
|
+
"dy": 0.809
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"key": "social",
|
|
52
|
+
"label": "Social",
|
|
53
|
+
"dx": -0.5878,
|
|
54
|
+
"dy": 0.809
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"key": "email",
|
|
58
|
+
"label": "Email",
|
|
59
|
+
"dx": -0.9511,
|
|
60
|
+
"dy": -0.309
|
|
61
|
+
}
|
|
62
|
+
]
|
|
63
|
+
},
|
|
64
|
+
"computed": {
|
|
65
|
+
"values": "[seo, content, ads, social, email]",
|
|
66
|
+
"shape": "join(map(axes, (a, i) => fixed(100 + a.dx * 0.8 * values[i], 1) + ',' + fixed(100 + a.dy * 0.8 * values[i], 1)), ' ')",
|
|
67
|
+
"grid": "join(map([1, 0.75, 0.5, 0.25], s => \"<polygon points='\" + join(map(axes, a => fixed(100 + a.dx * 80 * s, 1) + ',' + fixed(100 + a.dy * 80 * s, 1)), ' ') + \"'/>\"), '')",
|
|
68
|
+
"spokes": "join(map(axes, a => \"<line x1='100' y1='100' x2='\" + fixed(100 + a.dx * 80, 1) + \"' y2='\" + fixed(100 + a.dy * 80, 1) + \"'/>\"), '')",
|
|
69
|
+
"dots": "join(map(axes, (a, i) => \"<circle r='3.5' cx='\" + fixed(100 + a.dx * 0.8 * values[i], 1) + \"' cy='\" + fixed(100 + a.dy * 0.8 * values[i], 1) + \"'/>\"), '')",
|
|
70
|
+
"radar": "\"<svg viewBox='0 0 200 200'><g fill='none' stroke='currentColor' stroke-opacity='0.2'>\" + grid + spokes + \"</g><polygon points='\" + shape + \"' fill='#4a90d9' fill-opacity='0.22' stroke='#4a90d9' stroke-width='2' stroke-linejoin='round'/><g fill='#4a90d9'>\" + dots + \"</g></svg>\""
|
|
71
|
+
},
|
|
72
|
+
"view": {
|
|
73
|
+
"type": "Surface",
|
|
74
|
+
"title": "Marketing Performance Radar",
|
|
75
|
+
"subtitle": "Interaktives Fünf-Achsen-Profil · Demo",
|
|
76
|
+
"children": [
|
|
77
|
+
{
|
|
78
|
+
"type": "Svg",
|
|
79
|
+
"label": "Marketing performance radar over SEO, Content, Ads, Social and Email",
|
|
80
|
+
"markup": {
|
|
81
|
+
"$computed": "radar"
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
"type": "Stack",
|
|
86
|
+
"direction": "column",
|
|
87
|
+
"gap": "medium",
|
|
88
|
+
"children": [
|
|
89
|
+
{
|
|
90
|
+
"type": "Slider",
|
|
91
|
+
"label": "SEO",
|
|
92
|
+
"min": 0,
|
|
93
|
+
"max": 100,
|
|
94
|
+
"step": 1,
|
|
95
|
+
"unit": "/100",
|
|
96
|
+
"showValue": true,
|
|
97
|
+
"value": {
|
|
98
|
+
"$state": "seo"
|
|
99
|
+
},
|
|
100
|
+
"onChange": {
|
|
101
|
+
"set": "seo"
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"type": "Slider",
|
|
106
|
+
"label": "Content",
|
|
107
|
+
"min": 0,
|
|
108
|
+
"max": 100,
|
|
109
|
+
"step": 1,
|
|
110
|
+
"unit": "/100",
|
|
111
|
+
"showValue": true,
|
|
112
|
+
"value": {
|
|
113
|
+
"$state": "content"
|
|
114
|
+
},
|
|
115
|
+
"onChange": {
|
|
116
|
+
"set": "content"
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
"type": "Slider",
|
|
121
|
+
"label": "Ads",
|
|
122
|
+
"min": 0,
|
|
123
|
+
"max": 100,
|
|
124
|
+
"step": 1,
|
|
125
|
+
"unit": "/100",
|
|
126
|
+
"showValue": true,
|
|
127
|
+
"value": {
|
|
128
|
+
"$state": "ads"
|
|
129
|
+
},
|
|
130
|
+
"onChange": {
|
|
131
|
+
"set": "ads"
|
|
132
|
+
}
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
"type": "Slider",
|
|
136
|
+
"label": "Social",
|
|
137
|
+
"min": 0,
|
|
138
|
+
"max": 100,
|
|
139
|
+
"step": 1,
|
|
140
|
+
"unit": "/100",
|
|
141
|
+
"showValue": true,
|
|
142
|
+
"value": {
|
|
143
|
+
"$state": "social"
|
|
144
|
+
},
|
|
145
|
+
"onChange": {
|
|
146
|
+
"set": "social"
|
|
147
|
+
}
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
"type": "Slider",
|
|
151
|
+
"label": "Email",
|
|
152
|
+
"min": 0,
|
|
153
|
+
"max": 100,
|
|
154
|
+
"step": 1,
|
|
155
|
+
"unit": "/100",
|
|
156
|
+
"showValue": true,
|
|
157
|
+
"value": {
|
|
158
|
+
"$state": "email"
|
|
159
|
+
},
|
|
160
|
+
"onChange": {
|
|
161
|
+
"set": "email"
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
]
|
|
165
|
+
}
|
|
166
|
+
]
|
|
167
|
+
}
|
|
168
|
+
},
|
|
169
|
+
"expectedState": "data",
|
|
170
|
+
"width": 528,
|
|
171
|
+
"interactions": [
|
|
172
|
+
{
|
|
173
|
+
"name": "move the SEO slider to the middle",
|
|
174
|
+
"click": {
|
|
175
|
+
"selector": "[class*='MuiSlider-root']"
|
|
176
|
+
}
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
"name": "raise SEO by one step",
|
|
180
|
+
"press": "ArrowRight"
|
|
181
|
+
}
|
|
182
|
+
]
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
"name": "svg-unsafe-parts",
|
|
186
|
+
"description": "Error state: the markup carries a script, an onload handler and an outside image — they are removed, the rest is drawn (observed as data), the node reports failed INVALID_PROP.",
|
|
187
|
+
"payload": {
|
|
188
|
+
"view": {
|
|
189
|
+
"type": "Svg",
|
|
190
|
+
"title": "Sanitised graphic",
|
|
191
|
+
"markup": "<svg viewBox='0 0 100 100' onload='alert(1)'><script>alert(1)</script><image href='https://example.com/x.png' width='100' height='100'/><circle cx='50' cy='50' r='40' fill='#4a90d9'/></svg>"
|
|
192
|
+
}
|
|
193
|
+
},
|
|
194
|
+
"expectedState": "error",
|
|
195
|
+
"width": 528
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
"name": "svg-empty",
|
|
199
|
+
"description": "Empty state: empty markup renders nothing and reports empty.",
|
|
200
|
+
"payload": {
|
|
201
|
+
"view": {
|
|
202
|
+
"type": "Svg",
|
|
203
|
+
"markup": ""
|
|
204
|
+
}
|
|
205
|
+
},
|
|
206
|
+
"expectedState": "empty",
|
|
207
|
+
"width": 528
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
"name": "svg-loading",
|
|
211
|
+
"description": "Loading state: the markup is bound to a pending tool result — the skeleton shows.",
|
|
212
|
+
"payload": {
|
|
213
|
+
"view": {
|
|
214
|
+
"type": "Svg",
|
|
215
|
+
"title": "Marketing Performance Radar",
|
|
216
|
+
"markup": {
|
|
217
|
+
"$from": {
|
|
218
|
+
"toolCall": "call_svg_1",
|
|
219
|
+
"path": "$.markup",
|
|
220
|
+
"state": "pending"
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
},
|
|
225
|
+
"expectedState": "loading",
|
|
226
|
+
"width": 528
|
|
227
|
+
},
|
|
228
|
+
{
|
|
229
|
+
"name": "svg-narrow",
|
|
230
|
+
"description": "The radar at the narrow width.",
|
|
231
|
+
"payload": {
|
|
232
|
+
"view": {
|
|
233
|
+
"type": "Svg",
|
|
234
|
+
"title": "Marketing Performance Radar",
|
|
235
|
+
"caption": "Interaktives Fünf-Achsen-Profil · Demo",
|
|
236
|
+
"markup": "<svg viewBox='0 0 200 200'><g fill='none' stroke='currentColor' stroke-opacity='0.2'><polygon points='100.0,20.0 176.1,75.3 147.0,164.7 53.0,164.7 23.9,75.3'/><polygon points='100.0,40.0 157.1,81.5 135.3,148.5 64.7,148.5 42.9,81.5'/><polygon points='100.0,60.0 138.0,87.6 123.5,132.4 76.5,132.4 62.0,87.6'/><polygon points='100.0,80.0 119.0,93.8 111.8,116.2 88.2,116.2 81.0,93.8'/><line x1='100' y1='100' x2='100.0' y2='20.0'/><line x1='100' y1='100' x2='176.1' y2='75.3'/><line x1='100' y1='100' x2='147.0' y2='164.7'/><line x1='100' y1='100' x2='53.0' y2='164.7'/><line x1='100' y1='100' x2='23.9' y2='75.3'/></g><polygon points='100.0,39.2 147.2,84.7 122.6,131.1 59.6,155.7 46.7,82.7' fill='#4a90d9' fill-opacity='0.22' stroke='#4a90d9' stroke-width='2' stroke-linejoin='round'/><g fill='#4a90d9'><circle r='3.5' cx='100.0' cy='39.2'/><circle r='3.5' cx='147.2' cy='84.7'/><circle r='3.5' cx='122.6' cy='131.1'/><circle r='3.5' cx='59.6' cy='155.7'/><circle r='3.5' cx='46.7' cy='82.7'/></g></svg>"
|
|
237
|
+
}
|
|
238
|
+
},
|
|
239
|
+
"expectedState": "data",
|
|
240
|
+
"width": 360
|
|
241
|
+
}
|
|
242
|
+
]
|
|
243
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
{
|
|
2
|
+
"wireName": "ComposedView",
|
|
3
|
+
"fixtures": [
|
|
4
|
+
{
|
|
5
|
+
"name": "text-badge-tones",
|
|
6
|
+
"description": "One Badge per tone, the status chips of screenshot 52 (Live) and the majority verdicts of 04.",
|
|
7
|
+
"payload": {
|
|
8
|
+
"view": {
|
|
9
|
+
"type": "Stack",
|
|
10
|
+
"direction": "row",
|
|
11
|
+
"gap": "small",
|
|
12
|
+
"children": [
|
|
13
|
+
{
|
|
14
|
+
"type": "Badge",
|
|
15
|
+
"text": "Mehrheit",
|
|
16
|
+
"tone": "success"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"type": "Badge",
|
|
20
|
+
"text": "Knapp",
|
|
21
|
+
"tone": "warning"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"type": "Badge",
|
|
25
|
+
"text": "Keine Mehrheit",
|
|
26
|
+
"tone": "danger"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"type": "Badge",
|
|
30
|
+
"text": "Live",
|
|
31
|
+
"tone": "info"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"type": "Badge",
|
|
35
|
+
"text": "Modelliert"
|
|
36
|
+
}
|
|
37
|
+
]
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
"expectedState": "data",
|
|
41
|
+
"width": 528
|
|
42
|
+
}
|
|
43
|
+
]
|
|
44
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"wireName": "ComposedView",
|
|
3
|
+
"fixtures": [
|
|
4
|
+
{
|
|
5
|
+
"name": "text-caption-under-value",
|
|
6
|
+
"description": "A Caption as the sub-line of a value and as a method note (the KPI caption role of screenshot 52).",
|
|
7
|
+
"payload": {
|
|
8
|
+
"view": {
|
|
9
|
+
"type": "Stack",
|
|
10
|
+
"gap": "xsmall",
|
|
11
|
+
"children": [
|
|
12
|
+
{
|
|
13
|
+
"type": "Label",
|
|
14
|
+
"text": "Besucher"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"type": "Title",
|
|
18
|
+
"text": "7.420"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"type": "Caption",
|
|
22
|
+
"text": "Letzte 7 Tage · errechnet aus Organic + Paid + Direct"
|
|
23
|
+
}
|
|
24
|
+
]
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
"expectedState": "data",
|
|
28
|
+
"width": 360
|
|
29
|
+
}
|
|
30
|
+
]
|
|
31
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
{
|
|
2
|
+
"wireName": "ComposedView",
|
|
3
|
+
"fixtures": [
|
|
4
|
+
{
|
|
5
|
+
"name": "text-favicon-sources",
|
|
6
|
+
"description": "Site icons in front of source names (screenshot 46): by page url, by bare domain, and a url that names no site (glyph).",
|
|
7
|
+
"payload": {
|
|
8
|
+
"view": {
|
|
9
|
+
"type": "Stack",
|
|
10
|
+
"gap": "xsmall",
|
|
11
|
+
"children": [
|
|
12
|
+
{
|
|
13
|
+
"type": "Stack",
|
|
14
|
+
"direction": "row",
|
|
15
|
+
"gap": "xsmall",
|
|
16
|
+
"align": "center",
|
|
17
|
+
"children": [
|
|
18
|
+
{
|
|
19
|
+
"type": "Favicon",
|
|
20
|
+
"url": "https://www1.wdr.de/nachrichten",
|
|
21
|
+
"name": "WDR"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"type": "Caption",
|
|
25
|
+
"text": "WDR · 23. Oktober 2026"
|
|
26
|
+
}
|
|
27
|
+
]
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"type": "Stack",
|
|
31
|
+
"direction": "row",
|
|
32
|
+
"gap": "xsmall",
|
|
33
|
+
"align": "center",
|
|
34
|
+
"children": [
|
|
35
|
+
{
|
|
36
|
+
"type": "Favicon",
|
|
37
|
+
"url": "antenne-muenster.de",
|
|
38
|
+
"name": "Antenne Münster"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"type": "Caption",
|
|
42
|
+
"text": "Antenne Münster · 24. Oktober 2026"
|
|
43
|
+
}
|
|
44
|
+
]
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"type": "Stack",
|
|
48
|
+
"direction": "row",
|
|
49
|
+
"gap": "xsmall",
|
|
50
|
+
"align": "center",
|
|
51
|
+
"children": [
|
|
52
|
+
{
|
|
53
|
+
"type": "Favicon",
|
|
54
|
+
"url": "kein-link"
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"type": "Caption",
|
|
58
|
+
"text": "unbekannte Quelle"
|
|
59
|
+
}
|
|
60
|
+
]
|
|
61
|
+
}
|
|
62
|
+
]
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
"expectedState": "error",
|
|
66
|
+
"width": 528
|
|
67
|
+
}
|
|
68
|
+
]
|
|
69
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"wireName": "ComposedView",
|
|
3
|
+
"fixtures": [
|
|
4
|
+
{
|
|
5
|
+
"name": "text-labels-over-values",
|
|
6
|
+
"description": "Labels above values in a row, the filter labels of screenshot 52 (Zeitraum, Kanal).",
|
|
7
|
+
"payload": {
|
|
8
|
+
"view": {
|
|
9
|
+
"type": "Stack",
|
|
10
|
+
"direction": "row",
|
|
11
|
+
"gap": "large",
|
|
12
|
+
"children": [
|
|
13
|
+
{
|
|
14
|
+
"type": "Stack",
|
|
15
|
+
"gap": "xsmall",
|
|
16
|
+
"children": [
|
|
17
|
+
{
|
|
18
|
+
"type": "Label",
|
|
19
|
+
"text": "Zeitraum"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"type": "Text",
|
|
23
|
+
"text": "7 Tage"
|
|
24
|
+
}
|
|
25
|
+
]
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"type": "Stack",
|
|
29
|
+
"gap": "xsmall",
|
|
30
|
+
"children": [
|
|
31
|
+
{
|
|
32
|
+
"type": "Label",
|
|
33
|
+
"text": "Kanal"
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"type": "Text",
|
|
37
|
+
"text": "Alle Kanäle"
|
|
38
|
+
}
|
|
39
|
+
]
|
|
40
|
+
}
|
|
41
|
+
]
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
"expectedState": "data",
|
|
45
|
+
"width": 528
|
|
46
|
+
}
|
|
47
|
+
]
|
|
48
|
+
}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
{
|
|
2
|
+
"wireName": "ComposedView",
|
|
3
|
+
"fixtures": [
|
|
4
|
+
{
|
|
5
|
+
"name": "text-follow-up-links",
|
|
6
|
+
"description": "Screenshot 50 rebuilt with what a ComposedView may do: Title, Text, a Label and three Links that open pages in a new tab. The follow-up pills that ISSUE A NEW CHAT TURN are deliberately not part of the kit — model-written pills stay QuickReplies / SuggestedActions.",
|
|
7
|
+
"payload": {
|
|
8
|
+
"view": {
|
|
9
|
+
"type": "Stack",
|
|
10
|
+
"gap": "small",
|
|
11
|
+
"children": [
|
|
12
|
+
{
|
|
13
|
+
"type": "Title",
|
|
14
|
+
"text": "10. Follow-up-Vorschläge – klickbare Folgefragen"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"type": "Text",
|
|
18
|
+
"text": "Ein kleines, aber praktisches Element: Du kannst eine vorgeschlagene Seite anklicken, um direkt weiterzulesen."
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"type": "Surface",
|
|
22
|
+
"title": "Weitere Widget-Demos ausprobieren",
|
|
23
|
+
"children": [
|
|
24
|
+
{
|
|
25
|
+
"type": "Stack",
|
|
26
|
+
"gap": "xsmall",
|
|
27
|
+
"children": [
|
|
28
|
+
{
|
|
29
|
+
"type": "Link",
|
|
30
|
+
"text": "3D-Sonnensystem",
|
|
31
|
+
"url": "https://science.nasa.gov/solar-system/"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"type": "Link",
|
|
35
|
+
"text": "SaaS-Dashboard",
|
|
36
|
+
"url": "https://developers.openai.com/apps-sdk"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"type": "Link",
|
|
40
|
+
"text": "Routenplaner",
|
|
41
|
+
"url": "https://www.google.com/maps/dir/M%C3%BCnster/K%C3%B6ln"
|
|
42
|
+
}
|
|
43
|
+
]
|
|
44
|
+
}
|
|
45
|
+
]
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"type": "Text",
|
|
49
|
+
"text": "Hier sind außerdem native Folgefrage-Elemente:"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"type": "Stack",
|
|
53
|
+
"gap": "xsmall",
|
|
54
|
+
"children": [
|
|
55
|
+
{
|
|
56
|
+
"type": "Link",
|
|
57
|
+
"text": "Interaktives 3D-Sonnensystem zeigen",
|
|
58
|
+
"url": "https://science.nasa.gov/solar-system/"
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"type": "Link",
|
|
62
|
+
"text": "Weitere Widget-Typen vergleichen",
|
|
63
|
+
"url": "https://developers.openai.com/apps-sdk"
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"type": "Link",
|
|
67
|
+
"text": "Reisedashboard demonstrieren",
|
|
68
|
+
"url": "https://www.muenster.de/tourismus.html"
|
|
69
|
+
}
|
|
70
|
+
]
|
|
71
|
+
}
|
|
72
|
+
]
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
"expectedState": "data",
|
|
76
|
+
"width": 720
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"name": "text-link-unsafe-url",
|
|
80
|
+
"description": "A Link whose url is javascript: — the text shows without a link (the node reports failed INVALID_PROP).",
|
|
81
|
+
"payload": {
|
|
82
|
+
"view": {
|
|
83
|
+
"type": "Stack",
|
|
84
|
+
"gap": "xsmall",
|
|
85
|
+
"children": [
|
|
86
|
+
{
|
|
87
|
+
"type": "Link",
|
|
88
|
+
"text": "Artikel öffnen",
|
|
89
|
+
"url": "https://www.antenne-muenster.de/"
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"type": "Link",
|
|
93
|
+
"text": "Kein Link (javascript:)",
|
|
94
|
+
"url": "javascript:alert(1)"
|
|
95
|
+
}
|
|
96
|
+
]
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
"expectedState": "error",
|
|
100
|
+
"width": 528
|
|
101
|
+
}
|
|
102
|
+
]
|
|
103
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"wireName": "ComposedView",
|
|
3
|
+
"fixtures": [
|
|
4
|
+
{
|
|
5
|
+
"name": "text-markdown-coalition",
|
|
6
|
+
"description": "Screenshot 04 as one Markdown node: heading, paragraph, a table with ✓/✗, a source link.",
|
|
7
|
+
"payload": {
|
|
8
|
+
"view": {
|
|
9
|
+
"type": "Markdown",
|
|
10
|
+
"markdown": "## Rechnerische Koalitionsmöglichkeiten\n\nAuf Grundlage der GMS-Umfrage vom 19. Oktober 2026 ergibt sich bei modellierten 180 Sitzen folgende Verteilung:\n\n| Koalition | Sitze | Mehrheit (91) |\n|---|---:|---|\n| CSU + Freie Wähler | 94 | ✓ |\n| CSU + Grüne | 104 | ✓ |\n| CSU + SPD | 86 | ✗ |\n\nQuelle: [wahlrecht.de](https://www.wahlrecht.de/umfragen/landtage/bayern.htm)"
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
"expectedState": "data",
|
|
14
|
+
"width": 720
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"name": "text-markdown-safe-subset",
|
|
18
|
+
"description": "Raw HTML, an image and a javascript: link in model Markdown: none reach the DOM, the link keeps its text.",
|
|
19
|
+
"payload": {
|
|
20
|
+
"view": {
|
|
21
|
+
"type": "Markdown",
|
|
22
|
+
"markdown": "**Fett**, *kursiv* und `Code`.\n\n<script>alert(1)</script><b>HTML</b> \n\n- [WDR](https://www1.wdr.de) öffnet in einem neuen Tab\n- [böse](javascript:alert(1)) bleibt Text\n\n> Ein Zitat."
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"expectedState": "data",
|
|
26
|
+
"width": 528
|
|
27
|
+
}
|
|
28
|
+
]
|
|
29
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
{
|
|
2
|
+
"wireName": "ComposedView",
|
|
3
|
+
"fixtures": [
|
|
4
|
+
{
|
|
5
|
+
"name": "text-source-ref-news",
|
|
6
|
+
"description": "Screenshot 46's source line in a regular slot: every source with favicon and link.",
|
|
7
|
+
"payload": {
|
|
8
|
+
"view": {
|
|
9
|
+
"type": "SourceRef",
|
|
10
|
+
"sources": [
|
|
11
|
+
{
|
|
12
|
+
"name": "WDR",
|
|
13
|
+
"url": "https://www1.wdr.de/nachrichten/westfalen-lippe/index.html"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"name": "Antenne Münster",
|
|
17
|
+
"url": "https://www.antenne-muenster.de/"
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"name": "Westfälische Nachrichten",
|
|
21
|
+
"url": "https://www.wn.de/muenster"
|
|
22
|
+
}
|
|
23
|
+
]
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
"expectedState": "data",
|
|
27
|
+
"width": 720
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"name": "text-source-ref-licensed-image",
|
|
31
|
+
"description": "An image source with author and licence (the attribution line lane L22 fills from Wikimedia Commons).",
|
|
32
|
+
"payload": {
|
|
33
|
+
"view": {
|
|
34
|
+
"type": "SourceRef",
|
|
35
|
+
"sources": [
|
|
36
|
+
{
|
|
37
|
+
"name": "Wikimedia Commons",
|
|
38
|
+
"url": "https://commons.wikimedia.org/wiki/File:Cologne_Cathedral.jpg",
|
|
39
|
+
"title": "Kölner Dom, Westfassade",
|
|
40
|
+
"author": "Raimond Spekking",
|
|
41
|
+
"license": "CC BY-SA 4.0",
|
|
42
|
+
"licenseUrl": "https://creativecommons.org/licenses/by-sa/4.0/"
|
|
43
|
+
}
|
|
44
|
+
]
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
"expectedState": "data",
|
|
48
|
+
"width": 528
|
|
49
|
+
}
|
|
50
|
+
]
|
|
51
|
+
}
|