@seed-ship/mcp-ui-solid 6.19.1 → 6.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +519 -0
- package/README.md +791 -1
- package/dist/adapters/connector.cjs +15 -4
- package/dist/adapters/connector.cjs.map +1 -1
- package/dist/adapters/connector.d.ts +38 -0
- package/dist/adapters/connector.d.ts.map +1 -1
- package/dist/adapters/connector.js +15 -4
- package/dist/adapters/connector.js.map +1 -1
- package/dist/adapters/index.d.ts +4 -3
- package/dist/adapters/index.d.ts.map +1 -1
- package/dist/adapters/macro-run.cjs +25 -13
- package/dist/adapters/macro-run.cjs.map +1 -1
- package/dist/adapters/macro-run.d.ts +37 -2
- package/dist/adapters/macro-run.d.ts.map +1 -1
- package/dist/adapters/macro-run.js +25 -13
- package/dist/adapters/macro-run.js.map +1 -1
- package/dist/adapters.cjs +2 -0
- package/dist/adapters.cjs.map +1 -1
- package/dist/adapters.js +4 -2
- package/dist/components/ActionGroupRenderer.cjs +3 -1
- package/dist/components/ActionGroupRenderer.cjs.map +1 -1
- package/dist/components/ActionGroupRenderer.d.ts.map +1 -1
- package/dist/components/ActionGroupRenderer.js +3 -1
- package/dist/components/ActionGroupRenderer.js.map +1 -1
- package/dist/components/AgentCard.cjs +11 -8
- package/dist/components/AgentCard.cjs.map +1 -1
- package/dist/components/AgentCard.d.ts.map +1 -1
- package/dist/components/AgentCard.js +11 -8
- package/dist/components/AgentCard.js.map +1 -1
- package/dist/components/AgentHandoff.cjs +6 -1
- package/dist/components/AgentHandoff.cjs.map +1 -1
- package/dist/components/AgentHandoff.d.ts.map +1 -1
- package/dist/components/AgentHandoff.js +6 -1
- package/dist/components/AgentHandoff.js.map +1 -1
- package/dist/components/ArtifactRenderer.cjs +25 -6
- package/dist/components/ArtifactRenderer.cjs.map +1 -1
- package/dist/components/ArtifactRenderer.d.ts.map +1 -1
- package/dist/components/ArtifactRenderer.js +25 -6
- package/dist/components/ArtifactRenderer.js.map +1 -1
- package/dist/components/AutocompleteDropdown.cjs +30 -24
- package/dist/components/AutocompleteDropdown.cjs.map +1 -1
- package/dist/components/AutocompleteDropdown.d.ts.map +1 -1
- package/dist/components/AutocompleteDropdown.js +30 -24
- package/dist/components/AutocompleteDropdown.js.map +1 -1
- package/dist/components/AutocompleteFormField.cjs +3 -1
- package/dist/components/AutocompleteFormField.cjs.map +1 -1
- package/dist/components/AutocompleteFormField.d.ts.map +1 -1
- package/dist/components/AutocompleteFormField.js +4 -2
- package/dist/components/AutocompleteFormField.js.map +1 -1
- package/dist/components/BriefingDiff.cjs +45 -39
- package/dist/components/BriefingDiff.cjs.map +1 -1
- package/dist/components/BriefingDiff.d.ts.map +1 -1
- package/dist/components/BriefingDiff.js +45 -39
- package/dist/components/BriefingDiff.js.map +1 -1
- package/dist/components/CarouselRenderer.cjs +8 -2
- package/dist/components/CarouselRenderer.cjs.map +1 -1
- package/dist/components/CarouselRenderer.d.ts.map +1 -1
- package/dist/components/CarouselRenderer.js +8 -2
- package/dist/components/CarouselRenderer.js.map +1 -1
- package/dist/components/ChartJSRenderer.cjs +60 -36
- package/dist/components/ChartJSRenderer.cjs.map +1 -1
- package/dist/components/ChartJSRenderer.d.ts.map +1 -1
- package/dist/components/ChartJSRenderer.js +61 -37
- package/dist/components/ChartJSRenderer.js.map +1 -1
- package/dist/components/ChatPrompt.cjs +15 -9
- package/dist/components/ChatPrompt.cjs.map +1 -1
- package/dist/components/ChatPrompt.d.ts.map +1 -1
- package/dist/components/ChatPrompt.js +15 -9
- package/dist/components/ChatPrompt.js.map +1 -1
- package/dist/components/CodeBlockRenderer.cjs +34 -16
- package/dist/components/CodeBlockRenderer.cjs.map +1 -1
- package/dist/components/CodeBlockRenderer.d.ts.map +1 -1
- package/dist/components/CodeBlockRenderer.js +34 -16
- package/dist/components/CodeBlockRenderer.js.map +1 -1
- package/dist/components/DataPreviewSection.cjs +91 -44
- package/dist/components/DataPreviewSection.cjs.map +1 -1
- package/dist/components/DataPreviewSection.d.ts.map +1 -1
- package/dist/components/DataPreviewSection.js +92 -45
- package/dist/components/DataPreviewSection.js.map +1 -1
- package/dist/components/DegradedFallback.cjs +20 -16
- package/dist/components/DegradedFallback.cjs.map +1 -1
- package/dist/components/DegradedFallback.d.ts.map +1 -1
- package/dist/components/DegradedFallback.js +20 -16
- package/dist/components/DegradedFallback.js.map +1 -1
- package/dist/components/FooterRenderer.cjs +21 -17
- package/dist/components/FooterRenderer.cjs.map +1 -1
- package/dist/components/FooterRenderer.d.ts.map +1 -1
- package/dist/components/FooterRenderer.js +21 -17
- package/dist/components/FooterRenderer.js.map +1 -1
- package/dist/components/FormFieldRenderer.cjs +116 -93
- package/dist/components/FormFieldRenderer.cjs.map +1 -1
- package/dist/components/FormFieldRenderer.d.ts.map +1 -1
- package/dist/components/FormFieldRenderer.js +116 -93
- package/dist/components/FormFieldRenderer.js.map +1 -1
- package/dist/components/FormRenderer.cjs +55 -31
- package/dist/components/FormRenderer.cjs.map +1 -1
- package/dist/components/FormRenderer.d.ts.map +1 -1
- package/dist/components/FormRenderer.js +55 -31
- package/dist/components/FormRenderer.js.map +1 -1
- package/dist/components/GenerativeUIErrorBoundary.cjs +20 -15
- package/dist/components/GenerativeUIErrorBoundary.cjs.map +1 -1
- package/dist/components/GenerativeUIErrorBoundary.d.ts.map +1 -1
- package/dist/components/GenerativeUIErrorBoundary.js +20 -15
- package/dist/components/GenerativeUIErrorBoundary.js.map +1 -1
- package/dist/components/GraphRenderer.cjs +56 -33
- package/dist/components/GraphRenderer.cjs.map +1 -1
- package/dist/components/GraphRenderer.d.ts.map +1 -1
- package/dist/components/GraphRenderer.js +56 -33
- package/dist/components/GraphRenderer.js.map +1 -1
- package/dist/components/ImageGalleryRenderer.cjs +13 -4
- package/dist/components/ImageGalleryRenderer.cjs.map +1 -1
- package/dist/components/ImageGalleryRenderer.d.ts.map +1 -1
- package/dist/components/ImageGalleryRenderer.js +13 -4
- package/dist/components/ImageGalleryRenderer.js.map +1 -1
- package/dist/components/LightboxOverlay.cjs +16 -8
- package/dist/components/LightboxOverlay.cjs.map +1 -1
- package/dist/components/LightboxOverlay.d.ts.map +1 -1
- package/dist/components/LightboxOverlay.js +17 -9
- package/dist/components/LightboxOverlay.js.map +1 -1
- package/dist/components/MapRenderer.cjs +59 -29
- package/dist/components/MapRenderer.cjs.map +1 -1
- package/dist/components/MapRenderer.d.ts +10 -2
- package/dist/components/MapRenderer.d.ts.map +1 -1
- package/dist/components/MapRenderer.js +60 -30
- package/dist/components/MapRenderer.js.map +1 -1
- package/dist/components/ModalRenderer.cjs +4 -1
- package/dist/components/ModalRenderer.cjs.map +1 -1
- package/dist/components/ModalRenderer.d.ts.map +1 -1
- package/dist/components/ModalRenderer.js +5 -2
- package/dist/components/ModalRenderer.js.map +1 -1
- package/dist/components/ScratchpadPanel.cjs +578 -535
- package/dist/components/ScratchpadPanel.cjs.map +1 -1
- package/dist/components/ScratchpadPanel.d.ts.map +1 -1
- package/dist/components/ScratchpadPanel.js +578 -535
- package/dist/components/ScratchpadPanel.js.map +1 -1
- package/dist/components/StreamingUIRenderer.cjs +92 -28
- package/dist/components/StreamingUIRenderer.cjs.map +1 -1
- package/dist/components/StreamingUIRenderer.d.ts.map +1 -1
- package/dist/components/StreamingUIRenderer.js +92 -28
- package/dist/components/StreamingUIRenderer.js.map +1 -1
- package/dist/components/UIResourceRenderer.cjs +456 -363
- package/dist/components/UIResourceRenderer.cjs.map +1 -1
- package/dist/components/UIResourceRenderer.d.ts +21 -0
- package/dist/components/UIResourceRenderer.d.ts.map +1 -1
- package/dist/components/UIResourceRenderer.js +458 -365
- package/dist/components/UIResourceRenderer.js.map +1 -1
- package/dist/components/VerifiedText.cjs +39 -20
- package/dist/components/VerifiedText.cjs.map +1 -1
- package/dist/components/VerifiedText.d.ts +2 -1
- package/dist/components/VerifiedText.d.ts.map +1 -1
- package/dist/components/VerifiedText.js +39 -20
- package/dist/components/VerifiedText.js.map +1 -1
- package/dist/components/VideoRenderer.cjs +10 -5
- package/dist/components/VideoRenderer.cjs.map +1 -1
- package/dist/components/VideoRenderer.d.ts.map +1 -1
- package/dist/components/VideoRenderer.js +10 -5
- package/dist/components/VideoRenderer.js.map +1 -1
- package/dist/components/chart-data-table.cjs +38 -17
- package/dist/components/chart-data-table.cjs.map +1 -1
- package/dist/components/chart-data-table.d.ts +30 -1
- package/dist/components/chart-data-table.d.ts.map +1 -1
- package/dist/components/chart-data-table.js +38 -17
- package/dist/components/chart-data-table.js.map +1 -1
- package/dist/context/MCPActionContext.cjs +3 -1
- package/dist/context/MCPActionContext.cjs.map +1 -1
- package/dist/context/MCPActionContext.d.ts.map +1 -1
- package/dist/context/MCPActionContext.js +3 -1
- package/dist/context/MCPActionContext.js.map +1 -1
- package/dist/context/MCPUIStringsContext.cjs +285 -2
- package/dist/context/MCPUIStringsContext.cjs.map +1 -1
- package/dist/context/MCPUIStringsContext.d.ts +600 -3
- package/dist/context/MCPUIStringsContext.d.ts.map +1 -1
- package/dist/context/MCPUIStringsContext.js +285 -2
- package/dist/context/MCPUIStringsContext.js.map +1 -1
- package/dist/hooks/index.d.ts +2 -2
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/useStreamingUI.cjs +28 -10
- package/dist/hooks/useStreamingUI.cjs.map +1 -1
- package/dist/hooks/useStreamingUI.d.ts +37 -0
- package/dist/hooks/useStreamingUI.d.ts.map +1 -1
- package/dist/hooks/useStreamingUI.js +28 -10
- package/dist/hooks/useStreamingUI.js.map +1 -1
- package/dist/hooks.cjs +1 -0
- package/dist/hooks.cjs.map +1 -1
- package/dist/hooks.js +2 -1
- package/dist/index.cjs +23 -8
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +9 -3
- package/dist/index.d.ts +9 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18 -3
- package/dist/index.js.map +1 -1
- package/dist/services/validation.cjs +41 -16
- package/dist/services/validation.cjs.map +1 -1
- package/dist/services/validation.d.ts +47 -2
- package/dist/services/validation.d.ts.map +1 -1
- package/dist/services/validation.js +41 -16
- package/dist/services/validation.js.map +1 -1
- package/dist/utils/degraded-projections.cjs +37 -12
- package/dist/utils/degraded-projections.cjs.map +1 -1
- package/dist/utils/degraded-projections.d.ts +39 -3
- package/dist/utils/degraded-projections.d.ts.map +1 -1
- package/dist/utils/degraded-projections.js +37 -12
- package/dist/utils/degraded-projections.js.map +1 -1
- package/dist/utils/format-string.cjs +10 -0
- package/dist/utils/format-string.cjs.map +1 -0
- package/dist/utils/format-string.d.ts +26 -0
- package/dist/utils/format-string.d.ts.map +1 -0
- package/dist/utils/format-string.js +10 -0
- package/dist/utils/format-string.js.map +1 -0
- package/dist/validation.cjs +3 -0
- package/dist/validation.cjs.map +1 -1
- package/dist/validation.d.cts +2 -1
- package/dist/validation.d.ts +2 -1
- package/dist/validation.d.ts.map +1 -1
- package/dist/validation.js +4 -1
- package/package.json +1 -1
- package/src/adapters/connector.ts +58 -4
- package/src/adapters/index.ts +12 -2
- package/src/adapters/macro-run.ts +71 -11
- package/src/components/ActionGroupRenderer.tsx +3 -1
- package/src/components/AgentCard.tsx +27 -9
- package/src/components/AgentHandoff.tsx +4 -1
- package/src/components/ArtifactRenderer.tsx +17 -5
- package/src/components/AutocompleteDropdown.tsx +8 -6
- package/src/components/AutocompleteFormField.tsx +5 -1
- package/src/components/BriefingDiff.tsx +11 -3
- package/src/components/CarouselRenderer.tsx +4 -2
- package/src/components/ChartJSRenderer.tsx +18 -9
- package/src/components/ChatPrompt.tsx +13 -8
- package/src/components/CodeBlockRenderer.tsx +12 -10
- package/src/components/DataPreviewSection.tsx +92 -26
- package/src/components/DegradedFallback.tsx +4 -2
- package/src/components/FooterRenderer.tsx +3 -1
- package/src/components/FormFieldRenderer.tsx +34 -19
- package/src/components/FormRenderer.tsx +38 -10
- package/src/components/GenerativeUIErrorBoundary.tsx +8 -3
- package/src/components/GraphRenderer.tsx +31 -16
- package/src/components/ImageGalleryRenderer.tsx +8 -4
- package/src/components/LightboxOverlay.tsx +6 -4
- package/src/components/MapRenderer.tsx +57 -20
- package/src/components/ModalRenderer.tsx +3 -1
- package/src/components/ScratchpadPanel.tsx +95 -44
- package/src/components/StreamingUIRenderer.tsx +41 -11
- package/src/components/UIResourceRenderer.tsx +145 -63
- package/src/components/VerifiedText.tsx +19 -9
- package/src/components/VideoRenderer.tsx +6 -4
- package/src/components/chart-data-table.ts +68 -14
- package/src/context/MCPActionContext.tsx +4 -1
- package/src/context/MCPUIStringsContext.tsx +1004 -1
- package/src/hooks/index.ts +2 -1
- package/src/hooks/useStreamingUI.ts +64 -10
- package/src/index.ts +23 -0
- package/src/services/validation.ts +93 -16
- package/src/utils/degraded-projections.ts +75 -12
- package/src/utils/format-string.ts +33 -0
- package/src/validation.ts +5 -0
|
@@ -72,6 +72,20 @@ export interface MCPUIStrings {
|
|
|
72
72
|
// ── Generic chrome ────────────────────────────────────────
|
|
73
73
|
/** Label of the streaming retry button. */
|
|
74
74
|
retry: string
|
|
75
|
+
/** Label of a generic inline "confirm" button (scratchpad filter editor). */
|
|
76
|
+
ok?: string
|
|
77
|
+
/** Label of a generic "cancel" button (scratchpad, chat prompt). */
|
|
78
|
+
cancel?: string
|
|
79
|
+
/** Label of a generic "confirm" button (chat prompt). */
|
|
80
|
+
confirm?: string
|
|
81
|
+
/** Label of a generic "submit" button (chat prompt, form renderers). */
|
|
82
|
+
submit?: string
|
|
83
|
+
/** `aria-label` of a generic "dismiss" button (chat prompt). */
|
|
84
|
+
dismiss?: string
|
|
85
|
+
/** Affirmative value label (streaming metadata, scratchpad feedback). */
|
|
86
|
+
yes?: string
|
|
87
|
+
/** Negative value label (scratchpad feedback). */
|
|
88
|
+
no?: string
|
|
75
89
|
|
|
76
90
|
// ── Chart data access ─────────────────────────────────────
|
|
77
91
|
/** Label of the native chart view button. */
|
|
@@ -98,6 +112,686 @@ export interface MCPUIStrings {
|
|
|
98
112
|
// ── Grid layout ────────────────────────────────────────────
|
|
99
113
|
/** Fallback `aria-label` for a grid region without a title. */
|
|
100
114
|
gridRegion?: string
|
|
115
|
+
|
|
116
|
+
// ── AutocompleteDropdown ───────────────────────────────────
|
|
117
|
+
/** `aria-label` of the suggestions listbox. */
|
|
118
|
+
autocompleteSuggestions?: string
|
|
119
|
+
/** Fallback loading message of the suggestions listbox. */
|
|
120
|
+
autocompleteLoading?: string
|
|
121
|
+
/** Fallback empty state of the suggestions listbox. */
|
|
122
|
+
autocompleteEmpty?: string
|
|
123
|
+
|
|
124
|
+
// ── CarouselRenderer ───────────────────────────────────────
|
|
125
|
+
/** Toolbar title of the carousel's expandable wrapper. */
|
|
126
|
+
carouselTitle?: string
|
|
127
|
+
/** `copyLabel` of the carousel's copy button (title + `aria-label`). */
|
|
128
|
+
carouselCopy?: string
|
|
129
|
+
|
|
130
|
+
// ── MapRenderer ────────────────────────────────────────────
|
|
131
|
+
/** Toolbar title of the map's expandable wrapper. */
|
|
132
|
+
mapTitle?: string
|
|
133
|
+
/** `copyLabel` of the map's copy button (title + `aria-label`). */
|
|
134
|
+
mapCopy?: string
|
|
135
|
+
|
|
136
|
+
// ── ChartJSRenderer export ─────────────────────────────────
|
|
137
|
+
/** `title` of the chart PNG export button. */
|
|
138
|
+
chartDownloadPng?: string
|
|
139
|
+
/** `aria-label` of the chart PNG export button. */
|
|
140
|
+
chartDownloadPngAria?: string
|
|
141
|
+
/** `copyLabel` of the chart's copy button (title + `aria-label`). */
|
|
142
|
+
chartCopy?: string
|
|
143
|
+
/** Overlay shown while the chart library and data are loading. */
|
|
144
|
+
chartLoading?: string
|
|
145
|
+
|
|
146
|
+
// ── CodeBlockRenderer toolbar ──────────────────────────────
|
|
147
|
+
/** `placeholder` of the in-code search input. */
|
|
148
|
+
codeSearchPlaceholder?: string
|
|
149
|
+
/** `aria-label` of the in-code search input. */
|
|
150
|
+
codeSearchAria?: string
|
|
151
|
+
/** `aria-label` of the code download button. */
|
|
152
|
+
codeDownloadAria?: string
|
|
153
|
+
/** `title` of the code download button. */
|
|
154
|
+
codeDownload?: string
|
|
155
|
+
/** `aria-label` of the word-wrap toggle. */
|
|
156
|
+
codeToggleWordWrap?: string
|
|
157
|
+
/** `aria-label` and `title` of the code copy button. */
|
|
158
|
+
codeCopy?: string
|
|
159
|
+
/** Heading and toolbar title of a code block with no filename or language. */
|
|
160
|
+
codeTitle?: string
|
|
161
|
+
/** `title` of the word-wrap toggle while word wrap is OFF. */
|
|
162
|
+
codeWordWrapEnable?: string
|
|
163
|
+
/** `title` of the word-wrap toggle while word wrap is ON. */
|
|
164
|
+
codeWordWrapDisable?: string
|
|
165
|
+
|
|
166
|
+
// ── DataPreviewSection ─────────────────────────────────────
|
|
167
|
+
/** `title` of the CSV export button. Template — `{count}` = row count. */
|
|
168
|
+
exportCsvRows?: string
|
|
169
|
+
/** `title` of the JSON export button. Template — `{count}` = row count. */
|
|
170
|
+
exportJsonRows?: string
|
|
171
|
+
/**
|
|
172
|
+
* `title` of a sortable column header (data preview and tables).
|
|
173
|
+
* Template — `{column}` = the column label.
|
|
174
|
+
*/
|
|
175
|
+
sortBy?: string
|
|
176
|
+
|
|
177
|
+
// ── Form fields (chips, tags, filters) ─────────────────────
|
|
178
|
+
/**
|
|
179
|
+
* `aria-label` of a chip/tag/filter removal button.
|
|
180
|
+
* Template — `{name}` = the item being removed.
|
|
181
|
+
*/
|
|
182
|
+
removeItem?: string
|
|
183
|
+
/** `placeholder` of the multi-select options filter input. */
|
|
184
|
+
filterPlaceholder?: string
|
|
185
|
+
/** Badge shown next to a field whose type the renderer does not support. */
|
|
186
|
+
fieldNotSupported?: string
|
|
187
|
+
/** Empty state of the multi-select / autocomplete option list. */
|
|
188
|
+
fieldNoMatches?: string
|
|
189
|
+
/** Fallback help text of a `fieldset` field with none. */
|
|
190
|
+
fieldGroupContainer?: string
|
|
191
|
+
/** Fallback `placeholder` of the multi-select trigger. */
|
|
192
|
+
fieldSelectPlaceholder?: string
|
|
193
|
+
/** Fallback `placeholder` of the tags input. */
|
|
194
|
+
fieldTagsPlaceholder?: string
|
|
195
|
+
|
|
196
|
+
// ── ScratchpadPanel ────────────────────────────────────────
|
|
197
|
+
/** `aria-label` of the scratchpad close button. */
|
|
198
|
+
scratchpadClose?: string
|
|
199
|
+
/** Heading of the filter preview block. */
|
|
200
|
+
scratchpadPreview?: string
|
|
201
|
+
/** Empty state of the filter preview block. */
|
|
202
|
+
scratchpadNoResults?: string
|
|
203
|
+
/** Label of the "refine the filters" button in the empty preview. */
|
|
204
|
+
scratchpadModifyFilters?: string
|
|
205
|
+
/** Empty state of the active-filter chip row. */
|
|
206
|
+
scratchpadNoFilters?: string
|
|
207
|
+
/** Label of the collapsed embedded form's "edit" button. */
|
|
208
|
+
scratchpadEdit?: string
|
|
209
|
+
/** Label of the free-text feedback "send" button. */
|
|
210
|
+
scratchpadSend?: string
|
|
211
|
+
/** Label of the debug toggle while the raw SSE payload is hidden. */
|
|
212
|
+
scratchpadShowRaw?: string
|
|
213
|
+
/** Label of the debug toggle while the raw SSE payload is shown. */
|
|
214
|
+
scratchpadHideRaw?: string
|
|
215
|
+
/** Fallback `placeholder` of the free-text feedback input. */
|
|
216
|
+
scratchpadCommentPlaceholder?: string
|
|
217
|
+
/** Fallback message of an error section with none. */
|
|
218
|
+
scratchpadError?: string
|
|
219
|
+
/** Fallback name of a source card with none. */
|
|
220
|
+
scratchpadSource?: string
|
|
221
|
+
|
|
222
|
+
// ── GraphRenderer ──────────────────────────────────────────
|
|
223
|
+
/** `title` and `aria-label` of the graph export menu trigger. */
|
|
224
|
+
graphExport?: string
|
|
225
|
+
/** `copyLabel` of the graph's copy button (title + `aria-label`). */
|
|
226
|
+
graphCopy?: string
|
|
227
|
+
/** Toolbar title of the graph's expandable wrapper when untitled. */
|
|
228
|
+
graphTitle?: string
|
|
229
|
+
/**
|
|
230
|
+
* Visible label of the graph export menu trigger button.
|
|
231
|
+
* @since 6.20.0
|
|
232
|
+
*/
|
|
233
|
+
graphExportMenu?: string
|
|
234
|
+
/** Label of the "download PNG" item in the graph export menu. */
|
|
235
|
+
graphDownloadPng?: string
|
|
236
|
+
/** Hint under the "download PNG" item. */
|
|
237
|
+
graphDownloadPngHint?: string
|
|
238
|
+
/** Label of the "download Mermaid" item in the graph export menu. */
|
|
239
|
+
graphDownloadMermaid?: string
|
|
240
|
+
/** Hint under the "download Mermaid" item. */
|
|
241
|
+
graphDownloadMermaidHint?: string
|
|
242
|
+
/** Label of the "download JSON" item in the graph export menu. */
|
|
243
|
+
graphDownloadJson?: string
|
|
244
|
+
/** Hint under the "download JSON" item. */
|
|
245
|
+
graphDownloadJsonHint?: string
|
|
246
|
+
|
|
247
|
+
// ── ImageGalleryRenderer ───────────────────────────────────
|
|
248
|
+
/** `copyLabel` of the gallery's copy button (title + `aria-label`). */
|
|
249
|
+
galleryCopy?: string
|
|
250
|
+
/** Toolbar title of the gallery's expandable wrapper when untitled. */
|
|
251
|
+
galleryTitle?: string
|
|
252
|
+
|
|
253
|
+
// ── VideoRenderer ──────────────────────────────────────────
|
|
254
|
+
/** `copyLabel` of the video's copy button (title + `aria-label`). */
|
|
255
|
+
videoCopy?: string
|
|
256
|
+
/** Toolbar title and iframe `title` of an untitled video. */
|
|
257
|
+
videoTitle?: string
|
|
258
|
+
|
|
259
|
+
// ── FormFieldRenderer — prefill source badges ──────────────
|
|
260
|
+
/** `title` of the `detected` prefill-source badge. */
|
|
261
|
+
sourceDetected?: string
|
|
262
|
+
/** `title` of the `inferred` prefill-source badge. */
|
|
263
|
+
sourceInferred?: string
|
|
264
|
+
/** `title` of the `user` prefill-source badge. */
|
|
265
|
+
sourcePrevious?: string
|
|
266
|
+
|
|
267
|
+
// ── LightboxOverlay ────────────────────────────────────────
|
|
268
|
+
/** `aria-label` of the lightbox dialog. */
|
|
269
|
+
lightboxLabel?: string
|
|
270
|
+
/** `aria-label` of the lightbox close button. */
|
|
271
|
+
lightboxClose?: string
|
|
272
|
+
/** `aria-label` of the lightbox "previous image" button. */
|
|
273
|
+
lightboxPrevious?: string
|
|
274
|
+
/** `aria-label` of the lightbox "next image" button. */
|
|
275
|
+
lightboxNext?: string
|
|
276
|
+
|
|
277
|
+
// ── ModalRenderer ──────────────────────────────────────────
|
|
278
|
+
/** `aria-label` of the modal close button. */
|
|
279
|
+
modalClose?: string
|
|
280
|
+
|
|
281
|
+
// ── UIResourceRenderer — copy buttons ──────────────────────
|
|
282
|
+
/** Default `title`/`aria-label` of the generic copy button. */
|
|
283
|
+
copy?: string
|
|
284
|
+
/** `title` of the metric card copy button. */
|
|
285
|
+
copyMetric?: string
|
|
286
|
+
/** `title` of the text card copy button. */
|
|
287
|
+
copyText?: string
|
|
288
|
+
/** `title` of the error card copy button. */
|
|
289
|
+
copyErrorDetails?: string
|
|
290
|
+
|
|
291
|
+
// ── UIResourceRenderer — table chrome ──────────────────────
|
|
292
|
+
/** Toolbar title of the table's expandable wrapper when untitled. */
|
|
293
|
+
tableTitle?: string
|
|
294
|
+
/** `title`/`copyLabel` of the table CSV copy button. */
|
|
295
|
+
tableCopyCsv?: string
|
|
296
|
+
/** `title` and `aria-label` of the table export menu trigger. */
|
|
297
|
+
tableExport?: string
|
|
298
|
+
/** `aria-label` of the table search reset button. */
|
|
299
|
+
tableClearSearch?: string
|
|
300
|
+
/** Fallback `aria-label` of the table scroll region when untitled. */
|
|
301
|
+
tableAriaLabel?: string
|
|
302
|
+
/**
|
|
303
|
+
* `placeholder` of the table search input. The payload's
|
|
304
|
+
* `params.searchPlaceholder` still wins when set.
|
|
305
|
+
*/
|
|
306
|
+
tableSearchPlaceholder?: string
|
|
307
|
+
/** Label of the "copy as TSV" item in the export menu. */
|
|
308
|
+
tableCopyTsv?: string
|
|
309
|
+
/** Label of the "download CSV" item in the export menu. */
|
|
310
|
+
tableDownloadCsv?: string
|
|
311
|
+
/** Label of the "download JSON" item in the export menu. */
|
|
312
|
+
tableDownloadJson?: string
|
|
313
|
+
/** Suffix rendered after the pagination page-size selector. */
|
|
314
|
+
perPageSuffix?: string
|
|
315
|
+
|
|
316
|
+
// ── UIResourceRenderer — media and links ───────────────────
|
|
317
|
+
/** Fallback `alt` text of an image without one. */
|
|
318
|
+
imageAlt?: string
|
|
319
|
+
/**
|
|
320
|
+
* `aria-label` of the image zoom link.
|
|
321
|
+
* Template — `{alt}` = the image's alternative text.
|
|
322
|
+
*/
|
|
323
|
+
imageViewFullSize?: string
|
|
324
|
+
/** Fallback `title` of an iframe without one. */
|
|
325
|
+
iframeTitle?: string
|
|
326
|
+
/** Fallback label of a link component without one. */
|
|
327
|
+
linkLabel?: string
|
|
328
|
+
/**
|
|
329
|
+
* `aria-label` of a link component.
|
|
330
|
+
* Template — `{label}` and `{description}`.
|
|
331
|
+
*/
|
|
332
|
+
linkOpensInNewTab?: string
|
|
333
|
+
|
|
334
|
+
// ── UIResourceRenderer — misc chrome ───────────────────────
|
|
335
|
+
/** `aria-label` of the inline component-validation warning chip. */
|
|
336
|
+
validationWarning?: string
|
|
337
|
+
/** Fallback heading of an HTML resource without a title or URI. */
|
|
338
|
+
resourceTitle?: string
|
|
339
|
+
/** Heading of the chart renderer's error overlay. */
|
|
340
|
+
chartError?: string
|
|
341
|
+
/** Heading of the blocking component-validation error card. */
|
|
342
|
+
validationError?: string
|
|
343
|
+
/** Fallback detail of a validation error carrying no message. */
|
|
344
|
+
validationUnknownError?: string
|
|
345
|
+
/** Fallback message inside the error card's copyable text. */
|
|
346
|
+
errorUnknown?: string
|
|
347
|
+
/** Fallback tool name in the error card heading. */
|
|
348
|
+
errorUnknownToolName?: string
|
|
349
|
+
/** Fallback body of an error card carrying no message. */
|
|
350
|
+
errorToolExecution?: string
|
|
351
|
+
|
|
352
|
+
// ── VerifiedText ───────────────────────────────────────────
|
|
353
|
+
/** `title` of a segment verified against the source data. */
|
|
354
|
+
verifiedTitle?: string
|
|
355
|
+
/** `aria-label` of the verified marker glyph. */
|
|
356
|
+
verifiedAria?: string
|
|
357
|
+
/** `aria-label` of the unverified marker glyph. */
|
|
358
|
+
unverifiedAria?: string
|
|
359
|
+
/** `title` of an unverified number with no closest source match. */
|
|
360
|
+
verifiedNotFound?: string
|
|
361
|
+
/**
|
|
362
|
+
* `title` of an unverified number that has a closest source match.
|
|
363
|
+
* Template — `{closest}` = the nearest source number, `{pct}` = the
|
|
364
|
+
* relative distance in percent.
|
|
365
|
+
*/
|
|
366
|
+
verifiedNotFoundClosest?: string
|
|
367
|
+
/** Placeholder rendered in `strip` mode in place of the number. */
|
|
368
|
+
verifiedStripLabel?: string
|
|
369
|
+
/**
|
|
370
|
+
* Confidence summary of a validated answer.
|
|
371
|
+
* Template — `{pct}` = the confidence as a whole percentage.
|
|
372
|
+
*/
|
|
373
|
+
verifiedConfidence?: string
|
|
374
|
+
/**
|
|
375
|
+
* Count of unverified numbers next to the confidence summary.
|
|
376
|
+
* Template — `{count}` = how many numbers failed verification.
|
|
377
|
+
*/
|
|
378
|
+
verifiedUnverifiedCount?: string
|
|
379
|
+
|
|
380
|
+
// ── ChatPrompt ─────────────────────────────────────────────
|
|
381
|
+
/** Placeholder shown while the form's live preview is loading. */
|
|
382
|
+
promptLoadingPreview?: string
|
|
383
|
+
/** Submitted label of a confirmed `confirm` prompt (no `confirmLabel`). */
|
|
384
|
+
promptConfirmed?: string
|
|
385
|
+
/** Submitted label of a cancelled `confirm` prompt (no `cancelLabel`). */
|
|
386
|
+
promptCancelled?: string
|
|
387
|
+
/** Submitted label of a `form` prompt whose fields are all empty. */
|
|
388
|
+
promptFormSubmitted?: string
|
|
389
|
+
|
|
390
|
+
// ── FormRenderer ───────────────────────────────────────────
|
|
391
|
+
/** Fallback error when the submit action fails without a message. */
|
|
392
|
+
formSubmissionFailed?: string
|
|
393
|
+
/**
|
|
394
|
+
* Auto-submit countdown notice.
|
|
395
|
+
* Template — `{label}` = the submit label, `{seconds}` = seconds left.
|
|
396
|
+
*/
|
|
397
|
+
formSubmitCountdown?: string
|
|
398
|
+
|
|
399
|
+
// ── ActionGroupRenderer ────────────────────────────────────
|
|
400
|
+
/** Fallback `aria-label` of an action group without one. */
|
|
401
|
+
actionGroupLabel?: string
|
|
402
|
+
|
|
403
|
+
// ── ArtifactRenderer ───────────────────────────────────────
|
|
404
|
+
/** Fallback description of an artifact card without one. */
|
|
405
|
+
artifactDescription?: string
|
|
406
|
+
|
|
407
|
+
// ── DegradedFallback ───────────────────────────────────────
|
|
408
|
+
/** Fallback caption of the degraded-renderer notice. */
|
|
409
|
+
degradedCaption?: string
|
|
410
|
+
|
|
411
|
+
// ── StreamingUIRenderer — metadata panel ───────────────────
|
|
412
|
+
/** Label of the provider cell. */
|
|
413
|
+
metaProvider?: string
|
|
414
|
+
/** Label of the model cell. */
|
|
415
|
+
metaModel?: string
|
|
416
|
+
/** Label of the execution-time cell. */
|
|
417
|
+
metaExecutionTime?: string
|
|
418
|
+
/** Label of the cost cell. */
|
|
419
|
+
metaCost?: string
|
|
420
|
+
/** Label of the time-to-first-byte cell. */
|
|
421
|
+
metaTtfb?: string
|
|
422
|
+
/** Label of the cache-hit cell. */
|
|
423
|
+
metaCached?: string
|
|
424
|
+
|
|
425
|
+
// ── 6.20.0 — generic chrome ─────────────────
|
|
426
|
+
/** Label of a generic "download" link (artifact card). */
|
|
427
|
+
download?: string
|
|
428
|
+
/** Placeholder shown in place of a value the renderer could not determine. */
|
|
429
|
+
unknown?: string
|
|
430
|
+
|
|
431
|
+
// ── UIResourceRenderer — table citation chips ─────────────
|
|
432
|
+
/**
|
|
433
|
+
* Visible placeholder kept in a table cell for a citation marker that no
|
|
434
|
+
* `citationMap` resolves (empty map only — see `transformCellCitations`).
|
|
435
|
+
* Template — `{id}` = the marker number.
|
|
436
|
+
*
|
|
437
|
+
* The former literal was French (`[réf. {id}]`).
|
|
438
|
+
*/
|
|
439
|
+
citationUnresolved?: string
|
|
440
|
+
|
|
441
|
+
// ── UIResourceRenderer — error / fallback chrome ──────────
|
|
442
|
+
/**
|
|
443
|
+
* Inline (`errorMode: 'inline-warn'`) validation chip text.
|
|
444
|
+
* Template — `{type}` = the component type.
|
|
445
|
+
*/
|
|
446
|
+
invalidComponent?: string
|
|
447
|
+
/**
|
|
448
|
+
* Heading of the tool-error card.
|
|
449
|
+
* Template — `{tool}` = the tool name (`errorUnknownToolName` when absent).
|
|
450
|
+
*/
|
|
451
|
+
toolErrorTitle?: string
|
|
452
|
+
/**
|
|
453
|
+
* Error-type line of the tool-error card.
|
|
454
|
+
* Template — `{type}` = the error type.
|
|
455
|
+
*/
|
|
456
|
+
errorTypeLabel?: string
|
|
457
|
+
/** Heading above the tool-error suggestion list. */
|
|
458
|
+
errorSuggestions?: string
|
|
459
|
+
/** Message shown in place of a chart whose payload has no `data.datasets`. */
|
|
460
|
+
chartInvalidData?: string
|
|
461
|
+
/** Prefix of the unsupported-component notice (the type follows in a `<code>`). */
|
|
462
|
+
unsupportedComponentType?: string
|
|
463
|
+
|
|
464
|
+
// ── DataPreviewSection — pagination ───────────────────────
|
|
465
|
+
/** Visible label of the previous-page button (glyph stays decorative). */
|
|
466
|
+
previewPrev?: string
|
|
467
|
+
/** Visible label of the next-page button (glyph stays decorative). */
|
|
468
|
+
previewNext?: string
|
|
469
|
+
/**
|
|
470
|
+
* Page indicator between the two buttons.
|
|
471
|
+
* Template — `{page}` = the 1-based page, `{total}` = the page count.
|
|
472
|
+
*/
|
|
473
|
+
previewPageIndicator?: string
|
|
474
|
+
|
|
475
|
+
// ── FormFieldRenderer ─────────────────────────────────────
|
|
476
|
+
/** Inline notice while an entity reference is being resolved. */
|
|
477
|
+
fieldResolving?: string
|
|
478
|
+
|
|
479
|
+
// ── FormRenderer / ScratchpadPanel — prefill summary ──────
|
|
480
|
+
/**
|
|
481
|
+
* Prefill summary for a single pre-filled field.
|
|
482
|
+
* Template — `{count}` = always 1, `{total}` = the field count.
|
|
483
|
+
*
|
|
484
|
+
* The former literal was French (`{count} champ pré-rempli sur {total}`).
|
|
485
|
+
*/
|
|
486
|
+
formPrefilledOne?: string
|
|
487
|
+
/**
|
|
488
|
+
* Prefill summary for several pre-filled fields.
|
|
489
|
+
* Template — `{count}` = how many, `{total}` = the field count.
|
|
490
|
+
*
|
|
491
|
+
* The former literal was French (`{count} champs pré-remplis sur {total}`).
|
|
492
|
+
*/
|
|
493
|
+
formPrefilledMany?: string
|
|
494
|
+
/** Busy label of the submit button while the form is submitting. */
|
|
495
|
+
formSubmitting?: string
|
|
496
|
+
/** Label of the form's reset button. */
|
|
497
|
+
formReset?: string
|
|
498
|
+
|
|
499
|
+
// ── GenerativeUIErrorBoundary — default fallback ──────────
|
|
500
|
+
/** Heading of the default error-boundary fallback card. */
|
|
501
|
+
errorBoundaryTitle?: string
|
|
502
|
+
/**
|
|
503
|
+
* Metadata line of the fallback card.
|
|
504
|
+
* Template — `{type}` = the component type, `{id}` = its truncated id.
|
|
505
|
+
* Both fall back to `unknown`.
|
|
506
|
+
*/
|
|
507
|
+
errorBoundaryMeta?: string
|
|
508
|
+
/** Label of the fallback card's retry button. */
|
|
509
|
+
errorBoundaryRetry?: string
|
|
510
|
+
|
|
511
|
+
// ── ScratchpadPanel (continued) ───────────────────────────
|
|
512
|
+
/** Label of the `waiting_human` search button. */
|
|
513
|
+
scratchpadSearch?: string
|
|
514
|
+
/** Label of the "advance to the next step" button in the steps view. */
|
|
515
|
+
scratchpadNextStep?: string
|
|
516
|
+
/** Label preceding the interrogation plan summary. */
|
|
517
|
+
scratchpadPlan?: string
|
|
518
|
+
/** Label of the "modify this prompt" button of a prompt section. */
|
|
519
|
+
scratchpadModify?: string
|
|
520
|
+
/** Label of the "show details" toggle of an error section. */
|
|
521
|
+
scratchpadDetails?: string
|
|
522
|
+
/** Unit suffix after an action section's item count. */
|
|
523
|
+
scratchpadItems?: string
|
|
524
|
+
|
|
525
|
+
// ── VideoRenderer ─────────────────────────────────────────
|
|
526
|
+
/** Fallback text of a `<video>` element the browser cannot play. */
|
|
527
|
+
videoUnsupported?: string
|
|
528
|
+
|
|
529
|
+
// ── DataPreviewSection (page info) ────────────────────────
|
|
530
|
+
/** Paginated row range. Template — `{start}`, `{end}`, `{total}`. */
|
|
531
|
+
previewShowingRange?: string
|
|
532
|
+
/** Unpaginated row count, singular. Template — `{count}`. */
|
|
533
|
+
previewRowsOne?: string
|
|
534
|
+
/** Unpaginated row count, plural. Template — `{count}`. */
|
|
535
|
+
previewRowsMany?: string
|
|
536
|
+
/**
|
|
537
|
+
* Suffix appended when the payload declares more rows than were sent.
|
|
538
|
+
* Template — `{total}`. Keeps its leading space.
|
|
539
|
+
*/
|
|
540
|
+
previewTotalSuffix?: string
|
|
541
|
+
|
|
542
|
+
// ── ScratchpadPanel status badge ──────────────────────────
|
|
543
|
+
/** Status badge — the run is still loading. */
|
|
544
|
+
statusLoading?: string
|
|
545
|
+
/** Status badge — an action is available to the user. */
|
|
546
|
+
statusActionAvailable?: string
|
|
547
|
+
/** Status badge — the run is waiting for a human answer. */
|
|
548
|
+
statusYourTurn?: string
|
|
549
|
+
/** Status badge — the run is processing. */
|
|
550
|
+
statusProcessing?: string
|
|
551
|
+
/** Status badge — the run finished. (The error badge reuses `scratchpadError`.) */
|
|
552
|
+
statusComplete?: string
|
|
553
|
+
|
|
554
|
+
// ── AgentCard status ──────────────────────────────────────
|
|
555
|
+
/** Agent badge — idle. */
|
|
556
|
+
agentStatusIdle?: string
|
|
557
|
+
/** Agent badge — running. */
|
|
558
|
+
agentStatusRunning?: string
|
|
559
|
+
/** Agent badge — waiting. */
|
|
560
|
+
agentStatusWaiting?: string
|
|
561
|
+
/** Agent badge — done. */
|
|
562
|
+
agentStatusDone?: string
|
|
563
|
+
/** Agent badge — errored. */
|
|
564
|
+
agentStatusError?: string
|
|
565
|
+
|
|
566
|
+
// ── AgentHandoff ──────────────────────────────────────────
|
|
567
|
+
/**
|
|
568
|
+
* Fallback summary of a handoff that carries only an item count.
|
|
569
|
+
* Template — `{count}`. `content.summary` still wins.
|
|
570
|
+
*/
|
|
571
|
+
handoffItems?: string
|
|
572
|
+
|
|
573
|
+
// ── DegradedFallback (fallback ladder) ────────────────────
|
|
574
|
+
/** Truncation notice under the degraded table. Template — `{count}`. */
|
|
575
|
+
degradedMoreRows?: string
|
|
576
|
+
/** Caption of the chart's degraded table. */
|
|
577
|
+
chartDegradedCaption?: string
|
|
578
|
+
/** Notice above the chart's degraded table. Template — `{error}`. */
|
|
579
|
+
chartRenderFailed?: string
|
|
580
|
+
/** Caption of the degraded table shown when chart.js is missing. */
|
|
581
|
+
chartQuickchartCaption?: string
|
|
582
|
+
/** Caption of the graph's degraded table. */
|
|
583
|
+
graphDegradedCaption?: string
|
|
584
|
+
/** Notice above the graph's degraded table. Template — `{error}`. */
|
|
585
|
+
graphRenderFailed?: string
|
|
586
|
+
/** Fallback reason when the G6 render throws without a message. */
|
|
587
|
+
graphRenderError?: string
|
|
588
|
+
/** Fallback reason when the Chart.js render throws without a message. */
|
|
589
|
+
chartRenderError?: string
|
|
590
|
+
/** Error shown when the PNG export is unavailable in the active renderer. */
|
|
591
|
+
graphPngUnsupported?: string
|
|
592
|
+
/** Error shown when the PNG export throws without a message. */
|
|
593
|
+
graphPngExportFailed?: string
|
|
594
|
+
/** Error shown when the Leaflet bundle fails to load. */
|
|
595
|
+
mapLibraryUnavailable?: string
|
|
596
|
+
/** Caption of the map's degraded coordinate table. */
|
|
597
|
+
mapDegradedCaption?: string
|
|
598
|
+
/** Notice above the map's degraded table. Template — `{error}`. */
|
|
599
|
+
mapRenderFailed?: string
|
|
600
|
+
/** Fallback reason when the Leaflet render throws without a message. */
|
|
601
|
+
mapRenderError?: string
|
|
602
|
+
|
|
603
|
+
// ── Degraded / accessible table headers ───────────────────
|
|
604
|
+
/** Column header of the map projection — feature type. */
|
|
605
|
+
degradedColType?: string
|
|
606
|
+
/** Column header of the map projection — latitude. */
|
|
607
|
+
degradedColLat?: string
|
|
608
|
+
/** Column header of the map projection — longitude. */
|
|
609
|
+
degradedColLng?: string
|
|
610
|
+
/** Column header of the map projection — property summary. */
|
|
611
|
+
degradedColInfo?: string
|
|
612
|
+
/** `Type` cell of a marker row in the map projection (6.20.0). */
|
|
613
|
+
degradedMarker?: string
|
|
614
|
+
/** `Type` cell of a GeoJSON feature without a geometry type (6.20.0). */
|
|
615
|
+
degradedFeature?: string
|
|
616
|
+
/** Column header of the graph projection — edge source. */
|
|
617
|
+
degradedColSource?: string
|
|
618
|
+
/** Column header of the graph projection — edge target. */
|
|
619
|
+
degradedColTarget?: string
|
|
620
|
+
/** Column header of the graph projection — node id. */
|
|
621
|
+
degradedColNode?: string
|
|
622
|
+
/** Column header of the graph / chart projections — label. */
|
|
623
|
+
degradedColLabel?: string
|
|
624
|
+
/** Fallback name of a dataset without a label. Template — `{n}`. */
|
|
625
|
+
degradedSeries?: string
|
|
626
|
+
/** Column header of the chart data table — series name. */
|
|
627
|
+
chartTableSeries?: string
|
|
628
|
+
/** Column header of the chart data table — point index. */
|
|
629
|
+
chartTablePoint?: string
|
|
630
|
+
|
|
631
|
+
// ── AutocompleteDropdown / AutocompleteFormField ──────────
|
|
632
|
+
/** Hint prose between the arrow keys and the Enter key cap. */
|
|
633
|
+
autocompleteHintNavigate?: string
|
|
634
|
+
/** Hint prose between the Enter and Esc key caps. */
|
|
635
|
+
autocompleteHintSelect?: string
|
|
636
|
+
/** Hint prose after the Esc key cap. */
|
|
637
|
+
autocompleteHintDismiss?: string
|
|
638
|
+
/** Ghost-text hint of the completion field. */
|
|
639
|
+
autocompleteTabToAccept?: string
|
|
640
|
+
|
|
641
|
+
// ── FormFieldRenderer (entity picker) ─────────────────────
|
|
642
|
+
/** Placeholder of a multi-value entity picker that already has values. */
|
|
643
|
+
fieldAddMorePlaceholder?: string
|
|
644
|
+
|
|
645
|
+
// ── ImageGalleryRenderer ──────────────────────────────────
|
|
646
|
+
/** Accessible name of a gallery thumbnail. Template — `{index}`. */
|
|
647
|
+
galleryViewImage?: string
|
|
648
|
+
/** `alt` of a gallery image without one. Template — `{index}`. */
|
|
649
|
+
galleryImageAlt?: string
|
|
650
|
+
/** Noun substituted into `imageViewFullSize` when the image has no `alt`. */
|
|
651
|
+
imageAltFallback?: string
|
|
652
|
+
|
|
653
|
+
// ── Chart image fallback (quickchart) ─────────────────────
|
|
654
|
+
/** `alt` / `aria-label` of the chart image when the payload has no title. */
|
|
655
|
+
chartVisualizationAlt?: string
|
|
656
|
+
/** `alt` / `aria-label` of the chart image with a title. Template — `{title}`. */
|
|
657
|
+
chartWithTitleAlt?: string
|
|
658
|
+
/** Error shown when the chart image fails to load. */
|
|
659
|
+
chartLoadFailed?: string
|
|
660
|
+
|
|
661
|
+
// ── Table pagination (continued) ──────────────────────────
|
|
662
|
+
/** Page-size option that disables pagination. */
|
|
663
|
+
paginationAllRows?: string
|
|
664
|
+
|
|
665
|
+
// ── Form validation messages ──────────────────────────────
|
|
666
|
+
/** Template — `{field}`. */
|
|
667
|
+
fieldRequired?: string
|
|
668
|
+
/** Template — `{field}`. */
|
|
669
|
+
fieldMustBeChecked?: string
|
|
670
|
+
/** Template — `{min}`. */
|
|
671
|
+
fieldMinLength?: string
|
|
672
|
+
/** Template — `{max}`. */
|
|
673
|
+
fieldMaxLength?: string
|
|
674
|
+
/** Value does not match the field's `pattern`. */
|
|
675
|
+
fieldInvalidPattern?: string
|
|
676
|
+
/** Value is not a valid email address. */
|
|
677
|
+
fieldInvalidEmail?: string
|
|
678
|
+
/** Value is not a number. */
|
|
679
|
+
fieldInvalidNumber?: string
|
|
680
|
+
/** Template — `{min}`. */
|
|
681
|
+
fieldMinValue?: string
|
|
682
|
+
/** Template — `{max}`. */
|
|
683
|
+
fieldMaxValue?: string
|
|
684
|
+
/** Template — `{min}`. */
|
|
685
|
+
fieldMinDate?: string
|
|
686
|
+
/** Template — `{max}`. */
|
|
687
|
+
fieldMaxDate?: string
|
|
688
|
+
/** Value is not one of the field's options. */
|
|
689
|
+
fieldInvalidOption?: string
|
|
690
|
+
/**
|
|
691
|
+
* Value does not match the field's `valueFormat`. Template — `{format}`.
|
|
692
|
+
* `field.valueFormatHint` still wins.
|
|
693
|
+
*/
|
|
694
|
+
fieldInvalidFormat?: string
|
|
695
|
+
|
|
696
|
+
// ── Locale (6.20.0) ───────────────────────────
|
|
697
|
+
/**
|
|
698
|
+
* BCP-47 tag used for number / date formatting and string collation in
|
|
699
|
+
* library chrome and table cells (`toLocaleString`, `localeCompare`).
|
|
700
|
+
* Default `'en-US'`. Former behaviour: a hardcoded `'fr-FR'` / `'fr'` in
|
|
701
|
+
* table sorting, DataPreviewSection cells and map popups, and the
|
|
702
|
+
* runtime's implicit locale elsewhere (non-deterministic across SSR and
|
|
703
|
+
* hydration).
|
|
704
|
+
*/
|
|
705
|
+
locale?: string
|
|
706
|
+
|
|
707
|
+
// ── BriefingDiff ──────────────────────────────────────────
|
|
708
|
+
/** Stats summary — added entries. Template — `{count}`. */
|
|
709
|
+
briefingAdded?: string
|
|
710
|
+
/** Stats summary — removed entries. Template — `{count}`. */
|
|
711
|
+
briefingRemoved?: string
|
|
712
|
+
/** Stats summary — changed entries. Template — `{count}`. */
|
|
713
|
+
briefingChanged?: string
|
|
714
|
+
|
|
715
|
+
// ── FooterRenderer ────────────────────────────────────────
|
|
716
|
+
/** Number of sources in the footer. Template — `{count}`. */
|
|
717
|
+
footerSources?: string
|
|
718
|
+
|
|
719
|
+
// ── FormFieldRenderer (6.20.0) ────────────────────────
|
|
720
|
+
/** Warning under a field whose `type` is unknown. Template — `{type}`. */
|
|
721
|
+
fieldUnknownType?: string
|
|
722
|
+
/** Trigger text of a multiselect with selections. Template — `{count}`. */
|
|
723
|
+
fieldSelectedCount?: string
|
|
724
|
+
|
|
725
|
+
// ── ScratchpadPanel (6.20.0) ──────────────────────────
|
|
726
|
+
/** Error code line of the error state. Template — `{code}`. */
|
|
727
|
+
scratchpadErrorCode?: string
|
|
728
|
+
/** Row count of a data-source section. Template — `{count}`. */
|
|
729
|
+
scratchpadResultCount?: string
|
|
730
|
+
|
|
731
|
+
// ── UIResourceRenderer table (6.20.0) ─────────────────
|
|
732
|
+
/** Suffix of the table title while rows are virtualized. Template — `{count}`. */
|
|
733
|
+
tableVirtualizedRows?: string
|
|
734
|
+
/** Search result count, singular. Template — `{count}`, `{total}`. */
|
|
735
|
+
tableSearchResultsOne?: string
|
|
736
|
+
/** Search result count, plural. Template — `{count}`, `{total}`. */
|
|
737
|
+
tableSearchResultsMany?: string
|
|
738
|
+
/** Server-side pagination range. Template — `{start}`, `{end}`, `{total}`. */
|
|
739
|
+
tableServerPageRange?: string
|
|
740
|
+
|
|
741
|
+
// ── UIResourceRenderer tool-error card (6.20.0) ───────
|
|
742
|
+
/**
|
|
743
|
+
* Text put on the clipboard by the error card's Copy button.
|
|
744
|
+
* Template — `{tool}`, `{message}`.
|
|
745
|
+
*/
|
|
746
|
+
errorCopyText?: string
|
|
747
|
+
/** Tool name substituted into `errorCopyText` when the error has none. */
|
|
748
|
+
errorUnknownTool?: string
|
|
749
|
+
|
|
750
|
+
// ── StreamingUIRenderer / useStreamingUI (6.20.0) ─────
|
|
751
|
+
/** Progress message before the stream starts. */
|
|
752
|
+
streamInitializing?: string
|
|
753
|
+
/** Progress message while connecting. */
|
|
754
|
+
streamConnecting?: string
|
|
755
|
+
/** Progress message while a component streams in. Template — `{type}`. */
|
|
756
|
+
streamLoadingComponent?: string
|
|
757
|
+
/** Progress message once the stream completed. */
|
|
758
|
+
streamDashboardLoaded?: string
|
|
759
|
+
/** Progress message after a stream error. Template — `{message}`. */
|
|
760
|
+
streamErrorProgress?: string
|
|
761
|
+
/** Error title when the stream connection fails. */
|
|
762
|
+
streamConnectionFailed?: string
|
|
763
|
+
/** Error message when the server answers with a non-OK status and no message. */
|
|
764
|
+
streamRequestFailed?: string
|
|
765
|
+
/** Error message when the server answers without a body. */
|
|
766
|
+
streamEmptyResponse?: string
|
|
767
|
+
/** Error message when streaming is started during SSR. */
|
|
768
|
+
streamServerSide?: string
|
|
769
|
+
/** Error message when the failure carries no message. */
|
|
770
|
+
streamUnknownError?: string
|
|
771
|
+
|
|
772
|
+
// ── Degraded and unavailable states shown to end users (6.20.0) ──
|
|
773
|
+
/** StreamingUIRenderer error heading when streaming was started during SSR (the hook keeps the machine code `'ssr'`). */
|
|
774
|
+
streamServerSideTitle?: string
|
|
775
|
+
/** GraphRenderer heading when the `@antv/g6` peer is missing (the install hint below it stays English, policy P3). */
|
|
776
|
+
graphUnavailable?: string
|
|
777
|
+
/** MapRenderer banner when the PMTiles overlay fails to load or render. */
|
|
778
|
+
mapPmtilesUnavailable?: string
|
|
779
|
+
/** MapRenderer sentence appended to the PMTiles banner. */
|
|
780
|
+
mapBaseMapStillShown?: string
|
|
781
|
+
/** Chart error when `renderer: 'native'` is forced and chart.js is missing. */
|
|
782
|
+
chartJsUnavailable?: string
|
|
783
|
+
/** DegradedFallback message when chart.js is missing and the quickchart fallback is not allowed. */
|
|
784
|
+
chartIframeUnavailable?: string
|
|
785
|
+
/** DataPreviewSection fallback when the section content is not `{ columns, rows }`. */
|
|
786
|
+
previewInvalidContent?: string
|
|
787
|
+
/** Tooltip of the default citation chip button. Template — `{label}` (file name and page). */
|
|
788
|
+
citationViewSource?: string
|
|
789
|
+
/** ArtifactRenderer file size below 1 KB. Template — `{size}`. */
|
|
790
|
+
sizeBytes?: string
|
|
791
|
+
/** ArtifactRenderer file size in kilobytes. Template — `{size}`. */
|
|
792
|
+
sizeKilobytes?: string
|
|
793
|
+
/** ArtifactRenderer file size in megabytes. Template — `{size}`. */
|
|
794
|
+
sizeMegabytes?: string
|
|
101
795
|
}
|
|
102
796
|
|
|
103
797
|
/**
|
|
@@ -114,6 +808,13 @@ export const DEFAULT_MCPUI_STRINGS: Required<MCPUIStrings> = {
|
|
|
114
808
|
feedbackPositiveAck: 'Thanks!',
|
|
115
809
|
feedbackNegativeAck: "Noted — we'll improve",
|
|
116
810
|
retry: 'Retry',
|
|
811
|
+
ok: 'OK',
|
|
812
|
+
cancel: 'Cancel',
|
|
813
|
+
confirm: 'Confirm',
|
|
814
|
+
submit: 'Submit',
|
|
815
|
+
dismiss: 'Dismiss',
|
|
816
|
+
yes: 'Yes',
|
|
817
|
+
no: 'No',
|
|
117
818
|
chartView: 'Chart',
|
|
118
819
|
chartDataView: 'Data',
|
|
119
820
|
chartViewSelector: 'Chart or data view',
|
|
@@ -124,8 +825,278 @@ export const DEFAULT_MCPUI_STRINGS: Required<MCPUIStrings> = {
|
|
|
124
825
|
paginationNext: 'Next page',
|
|
125
826
|
paginationPageSize: 'Rows per page',
|
|
126
827
|
gridRegion: 'Layout grid',
|
|
828
|
+
autocompleteSuggestions: 'Suggestions',
|
|
829
|
+
autocompleteLoading: 'Loading...',
|
|
830
|
+
autocompleteEmpty: 'No suggestions found',
|
|
831
|
+
carouselTitle: 'Carousel',
|
|
832
|
+
carouselCopy: 'Copy items (JSON)',
|
|
833
|
+
mapTitle: 'Map',
|
|
834
|
+
mapCopy: 'Copy markers as GeoJSON',
|
|
835
|
+
chartDownloadPng: 'Download PNG',
|
|
836
|
+
chartDownloadPngAria: 'Download chart as PNG',
|
|
837
|
+
chartCopy: 'Copy chart data (JSON)',
|
|
838
|
+
chartLoading: 'Loading chart...',
|
|
839
|
+
codeSearchPlaceholder: 'Search\u2026',
|
|
840
|
+
codeSearchAria: 'Search in code',
|
|
841
|
+
codeDownloadAria: 'Download code as file',
|
|
842
|
+
codeDownload: 'Download code',
|
|
843
|
+
codeToggleWordWrap: 'Toggle word wrap',
|
|
844
|
+
codeCopy: 'Copy code',
|
|
845
|
+
codeTitle: 'Code',
|
|
846
|
+
codeWordWrapEnable: 'Enable word wrap',
|
|
847
|
+
codeWordWrapDisable: 'Disable word wrap',
|
|
848
|
+
exportCsvRows: 'Export CSV ({count} rows)',
|
|
849
|
+
exportJsonRows: 'Export JSON ({count} rows)',
|
|
850
|
+
sortBy: 'Sort by {column}',
|
|
851
|
+
removeItem: 'Remove {name}',
|
|
852
|
+
filterPlaceholder: 'Filter...',
|
|
853
|
+
fieldNotSupported: 'Not supported',
|
|
854
|
+
fieldNoMatches: 'No matches',
|
|
855
|
+
fieldGroupContainer: 'Group container',
|
|
856
|
+
fieldSelectPlaceholder: 'Select...',
|
|
857
|
+
fieldTagsPlaceholder: 'Type and press Enter...',
|
|
858
|
+
scratchpadClose: 'Close',
|
|
859
|
+
scratchpadPreview: 'Preview',
|
|
860
|
+
scratchpadNoResults: 'No results for these filters',
|
|
861
|
+
scratchpadModifyFilters: 'Modify filters',
|
|
862
|
+
scratchpadNoFilters: 'No filters',
|
|
863
|
+
// Former literal was French ('Modifier') — the library ships English
|
|
864
|
+
// defaults, so this one changed on purpose.
|
|
865
|
+
scratchpadEdit: 'Edit',
|
|
866
|
+
scratchpadSend: 'Send',
|
|
867
|
+
scratchpadShowRaw: 'Show raw SSE payload',
|
|
868
|
+
scratchpadHideRaw: 'Hide raw SSE payload',
|
|
869
|
+
scratchpadCommentPlaceholder: 'Add a comment...',
|
|
870
|
+
scratchpadError: 'Error',
|
|
871
|
+
scratchpadSource: 'Source',
|
|
872
|
+
graphExport: 'Export graph',
|
|
873
|
+
graphCopy: 'Copy graph (JSON)',
|
|
874
|
+
graphTitle: 'Graph',
|
|
875
|
+
graphExportMenu: 'Export \u25BE',
|
|
876
|
+
graphDownloadPng: 'Download PNG',
|
|
877
|
+
graphDownloadPngHint: 'visual snapshot',
|
|
878
|
+
graphDownloadMermaid: 'Download Mermaid',
|
|
879
|
+
graphDownloadMermaidHint: 'markdown / GitHub',
|
|
880
|
+
graphDownloadJson: 'Download JSON',
|
|
881
|
+
graphDownloadJsonHint: 'raw data',
|
|
882
|
+
galleryCopy: 'Copy image URLs',
|
|
883
|
+
galleryTitle: 'Gallery',
|
|
884
|
+
videoCopy: 'Copy video URL',
|
|
885
|
+
videoTitle: 'Video',
|
|
886
|
+
sourceDetected: 'Detected from message',
|
|
887
|
+
sourceInferred: 'Inferred from context',
|
|
888
|
+
sourcePrevious: 'Previously provided',
|
|
889
|
+
lightboxLabel: 'Image lightbox',
|
|
890
|
+
lightboxClose: 'Close lightbox',
|
|
891
|
+
lightboxPrevious: 'Previous image',
|
|
892
|
+
lightboxNext: 'Next image',
|
|
893
|
+
modalClose: 'Close modal',
|
|
894
|
+
copy: 'Copy',
|
|
895
|
+
copyMetric: 'Copy metric',
|
|
896
|
+
copyText: 'Copy text',
|
|
897
|
+
copyErrorDetails: 'Copy error details',
|
|
898
|
+
tableTitle: 'Table',
|
|
899
|
+
tableCopyCsv: 'Copy table (CSV)',
|
|
900
|
+
tableExport: 'Export table',
|
|
901
|
+
tableClearSearch: 'Clear search',
|
|
902
|
+
tableAriaLabel: 'Data table',
|
|
903
|
+
// Former literal was French ('Rechercher dans le tableau...') — the
|
|
904
|
+
// library ships English defaults, so this one changed on purpose.
|
|
905
|
+
tableSearchPlaceholder: 'Search the table...',
|
|
906
|
+
tableCopyTsv: 'Copy TSV',
|
|
907
|
+
tableDownloadCsv: 'Download CSV',
|
|
908
|
+
tableDownloadJson: 'Download JSON',
|
|
909
|
+
perPageSuffix: '/ page',
|
|
910
|
+
imageAlt: 'Image',
|
|
911
|
+
imageViewFullSize: 'View full size: {alt}',
|
|
912
|
+
iframeTitle: 'Embedded content',
|
|
913
|
+
linkLabel: 'Link',
|
|
914
|
+
linkOpensInNewTab: '{label}: {description} (opens in new tab)',
|
|
915
|
+
validationWarning: 'Component validation warning',
|
|
916
|
+
resourceTitle: 'Resource',
|
|
917
|
+
chartError: 'Chart Error',
|
|
918
|
+
validationError: 'Validation Error',
|
|
919
|
+
validationUnknownError: 'Unknown validation error',
|
|
920
|
+
errorUnknown: 'Unknown error',
|
|
921
|
+
errorUnknownToolName: 'Unknown',
|
|
922
|
+
errorToolExecution: 'An error occurred during tool execution',
|
|
923
|
+
verifiedTitle: 'Verified against source data',
|
|
924
|
+
verifiedAria: 'verified',
|
|
925
|
+
unverifiedAria: 'unverified',
|
|
926
|
+
verifiedNotFound: 'Not found in source data',
|
|
927
|
+
verifiedNotFoundClosest: 'Not found in source data. Closest: {closest} ({pct}% off)',
|
|
928
|
+
// Former literal was French ('[non v\u00E9rifi\u00E9]') — see above.
|
|
929
|
+
verifiedStripLabel: '[unverified]',
|
|
930
|
+
verifiedConfidence: '{pct}% verified',
|
|
931
|
+
verifiedUnverifiedCount: '({count} unverified)',
|
|
932
|
+
promptLoadingPreview: 'Loading preview...',
|
|
933
|
+
promptConfirmed: 'Confirmed',
|
|
934
|
+
promptCancelled: 'Cancelled',
|
|
935
|
+
promptFormSubmitted: 'Form submitted',
|
|
936
|
+
formSubmissionFailed: 'Submission failed',
|
|
937
|
+
formSubmitCountdown: '{label} in {seconds}s...',
|
|
938
|
+
actionGroupLabel: 'Action group',
|
|
939
|
+
artifactDescription: 'Generated artifact',
|
|
940
|
+
degradedCaption: 'Showing the underlying data \u2014 the interactive view is unavailable.',
|
|
941
|
+
metaProvider: 'Provider',
|
|
942
|
+
metaModel: 'Model',
|
|
943
|
+
metaExecutionTime: 'Execution Time',
|
|
944
|
+
metaCost: 'Cost',
|
|
945
|
+
metaTtfb: 'TTFB',
|
|
946
|
+
metaCached: 'Cached',
|
|
947
|
+
download: 'Download',
|
|
948
|
+
unknown: 'unknown',
|
|
949
|
+
// Former literal was French ('[r\u00E9f. {id}]') — see above.
|
|
950
|
+
citationUnresolved: '[ref. {id}]',
|
|
951
|
+
invalidComponent: 'Invalid {type}',
|
|
952
|
+
toolErrorTitle: 'Tool Error: {tool}',
|
|
953
|
+
errorTypeLabel: 'Type: {type}',
|
|
954
|
+
errorSuggestions: 'Suggestions:',
|
|
955
|
+
chartInvalidData: 'Invalid chart data: missing data.datasets',
|
|
956
|
+
unsupportedComponentType: 'Unsupported component type:',
|
|
957
|
+
previewPrev: 'Prev',
|
|
958
|
+
previewNext: 'Next',
|
|
959
|
+
previewPageIndicator: 'Page {page} / {total}',
|
|
960
|
+
fieldResolving: 'Resolving...',
|
|
961
|
+
// Former literals were French ('{count} champ(s) pr\u00E9-rempli(s) sur {total}').
|
|
962
|
+
formPrefilledOne: '{count} field pre-filled out of {total}',
|
|
963
|
+
formPrefilledMany: '{count} fields pre-filled out of {total}',
|
|
964
|
+
formSubmitting: 'Submitting...',
|
|
965
|
+
formReset: 'Reset',
|
|
966
|
+
errorBoundaryTitle: 'Component Failed to Render',
|
|
967
|
+
errorBoundaryMeta: 'Type: {type} | ID: {id}...',
|
|
968
|
+
errorBoundaryRetry: 'Retry Rendering',
|
|
969
|
+
scratchpadSearch: 'Search',
|
|
970
|
+
scratchpadNextStep: 'Next',
|
|
971
|
+
scratchpadPlan: 'Plan:',
|
|
972
|
+
scratchpadModify: 'Modify',
|
|
973
|
+
scratchpadDetails: 'Details',
|
|
974
|
+
scratchpadItems: 'items',
|
|
975
|
+
videoUnsupported: 'Your browser does not support the video tag.',
|
|
976
|
+
previewShowingRange: 'Showing {start}–{end} of {total}',
|
|
977
|
+
previewRowsOne: '{count} row',
|
|
978
|
+
previewRowsMany: '{count} rows',
|
|
979
|
+
previewTotalSuffix: ' ({total} total)',
|
|
980
|
+
statusLoading: 'Loading...',
|
|
981
|
+
statusActionAvailable: 'Action available',
|
|
982
|
+
statusYourTurn: 'Your turn',
|
|
983
|
+
statusProcessing: 'Processing...',
|
|
984
|
+
statusComplete: 'Complete',
|
|
985
|
+
agentStatusIdle: 'Idle',
|
|
986
|
+
agentStatusRunning: 'Running',
|
|
987
|
+
agentStatusWaiting: 'Waiting',
|
|
988
|
+
agentStatusDone: 'Done',
|
|
989
|
+
agentStatusError: 'Error',
|
|
990
|
+
handoffItems: '{count} items',
|
|
991
|
+
degradedMoreRows: '+{count} more rows not shown.',
|
|
992
|
+
chartDegradedCaption:
|
|
993
|
+
'Showing the chart data as a table — the interactive chart is unavailable.',
|
|
994
|
+
chartRenderFailed: 'Chart rendering failed: {error}',
|
|
995
|
+
chartQuickchartCaption: 'Showing the chart data as a table.',
|
|
996
|
+
graphDegradedCaption:
|
|
997
|
+
'Showing the graph data as a table — the interactive view is unavailable.',
|
|
998
|
+
graphRenderFailed: 'Graph rendering failed: {error}',
|
|
999
|
+
graphRenderError: 'Failed to render graph',
|
|
1000
|
+
chartRenderError: 'Chart rendering failed',
|
|
1001
|
+
graphPngUnsupported: 'PNG export not supported in current renderer mode',
|
|
1002
|
+
graphPngExportFailed: 'PNG export failed',
|
|
1003
|
+
mapLibraryUnavailable: 'Map library could not be loaded.',
|
|
1004
|
+
mapDegradedCaption:
|
|
1005
|
+
'Showing the map data as a coordinate table — the interactive map is unavailable.',
|
|
1006
|
+
mapRenderFailed: 'Map rendering failed: {error}',
|
|
1007
|
+
mapRenderError: 'Failed to render map',
|
|
1008
|
+
degradedColType: 'Type',
|
|
1009
|
+
degradedColLat: 'Lat',
|
|
1010
|
+
degradedColLng: 'Lng',
|
|
1011
|
+
degradedColInfo: 'Info',
|
|
1012
|
+
degradedColSource: 'Source',
|
|
1013
|
+
degradedColTarget: 'Target',
|
|
1014
|
+
degradedColNode: 'Node',
|
|
1015
|
+
degradedColLabel: 'Label',
|
|
1016
|
+
degradedSeries: 'Series {n}',
|
|
1017
|
+
chartTableSeries: 'Series',
|
|
1018
|
+
chartTablePoint: 'Point',
|
|
1019
|
+
autocompleteHintNavigate: ' to navigate, ',
|
|
1020
|
+
autocompleteHintSelect: ' to select, ',
|
|
1021
|
+
autocompleteHintDismiss: ' to dismiss',
|
|
1022
|
+
autocompleteTabToAccept: 'Tab to accept',
|
|
1023
|
+
fieldAddMorePlaceholder: 'Add more...',
|
|
1024
|
+
galleryViewImage: 'View image {index}',
|
|
1025
|
+
galleryImageAlt: 'Image {index}',
|
|
1026
|
+
imageAltFallback: 'image',
|
|
1027
|
+
chartVisualizationAlt: 'Chart visualization',
|
|
1028
|
+
chartWithTitleAlt: 'Chart: {title}',
|
|
1029
|
+
chartLoadFailed: 'Failed to load chart',
|
|
1030
|
+
paginationAllRows: 'All',
|
|
1031
|
+
fieldRequired: '{field} is required',
|
|
1032
|
+
fieldMustBeChecked: '{field} must be checked',
|
|
1033
|
+
fieldMinLength: 'Minimum {min} characters required',
|
|
1034
|
+
fieldMaxLength: 'Maximum {max} characters allowed',
|
|
1035
|
+
fieldInvalidPattern: 'Invalid format',
|
|
1036
|
+
fieldInvalidEmail: 'Invalid email address',
|
|
1037
|
+
fieldInvalidNumber: 'Must be a valid number',
|
|
1038
|
+
fieldMinValue: 'Minimum value is {min}',
|
|
1039
|
+
fieldMaxValue: 'Maximum value is {max}',
|
|
1040
|
+
fieldMinDate: 'Date must be after {min}',
|
|
1041
|
+
fieldMaxDate: 'Date must be before {max}',
|
|
1042
|
+
fieldInvalidOption: 'Please select a valid option',
|
|
1043
|
+
fieldInvalidFormat: 'Invalid format (expected: {format})',
|
|
1044
|
+
|
|
1045
|
+
// ── 6.20.0 ─────────────────────────────────────
|
|
1046
|
+
// DEFAULT CHANGE: formatting / collation used 'fr-FR' / 'fr' (or the
|
|
1047
|
+
// runtime's implicit locale) — now one explicit, overridable tag.
|
|
1048
|
+
locale: 'en-US',
|
|
1049
|
+
briefingAdded: '+{count} added',
|
|
1050
|
+
briefingRemoved: '{count} removed',
|
|
1051
|
+
briefingChanged: '{count} changed',
|
|
1052
|
+
footerSources: '{count} sources',
|
|
1053
|
+
degradedMarker: 'marker',
|
|
1054
|
+
degradedFeature: 'feature',
|
|
1055
|
+
fieldUnknownType: 'Unknown field type: {type}',
|
|
1056
|
+
fieldSelectedCount: '{count} selected',
|
|
1057
|
+
scratchpadErrorCode: 'Code: {code}',
|
|
1058
|
+
scratchpadResultCount: '{count} results',
|
|
1059
|
+
tableVirtualizedRows: '(virtualized: {count} rows)',
|
|
1060
|
+
tableSearchResultsOne: '{count} result on {total}',
|
|
1061
|
+
tableSearchResultsMany: '{count} results on {total}',
|
|
1062
|
+
tableServerPageRange: 'Showing {start} - {end} of {total}',
|
|
1063
|
+
errorCopyText: 'Error in {tool}: {message}',
|
|
1064
|
+
errorUnknownTool: 'unknown tool',
|
|
1065
|
+
streamInitializing: 'Initializing...',
|
|
1066
|
+
streamConnecting: 'Connecting to server...',
|
|
1067
|
+
streamLoadingComponent: 'Loading {type} component...',
|
|
1068
|
+
streamDashboardLoaded: 'Dashboard loaded',
|
|
1069
|
+
streamErrorProgress: 'Error: {message}',
|
|
1070
|
+
streamConnectionFailed: 'Stream connection failed',
|
|
1071
|
+
streamRequestFailed: 'Stream request failed',
|
|
1072
|
+
streamEmptyResponse: 'Response body is null',
|
|
1073
|
+
streamServerSide: 'Streaming UI cannot start on server-side',
|
|
1074
|
+
streamUnknownError: 'Unknown error',
|
|
1075
|
+
streamServerSideTitle: 'Streaming unavailable',
|
|
1076
|
+
graphUnavailable: 'Graph rendering unavailable',
|
|
1077
|
+
mapPmtilesUnavailable:
|
|
1078
|
+
'PMTiles layer unavailable \u2014 the optional "protomaps-leaflet" peer dependency failed to load or render.',
|
|
1079
|
+
mapBaseMapStillShown: 'The base map is still shown.',
|
|
1080
|
+
chartJsUnavailable: 'Chart.js is not available. Install chart.js peer dependency.',
|
|
1081
|
+
chartIframeUnavailable:
|
|
1082
|
+
'Interactive chart unavailable \u2014 install the chart.js peer dependency, or set allowQuickchartFallback to use the external quickchart.io renderer.',
|
|
1083
|
+
previewInvalidContent: '[DataPreviewSection] Invalid content format',
|
|
1084
|
+
citationViewSource: 'View source - {label}',
|
|
1085
|
+
sizeBytes: '{size} B',
|
|
1086
|
+
sizeKilobytes: '{size} KB',
|
|
1087
|
+
sizeMegabytes: '{size} MB',
|
|
127
1088
|
}
|
|
128
1089
|
|
|
1090
|
+
/**
|
|
1091
|
+
* Substitutes `{name}` placeholders in a chrome string template.
|
|
1092
|
+
*
|
|
1093
|
+
* Lives in `../utils/format-string` — a runtime-free module — so the pure
|
|
1094
|
+
* adapters under `src/adapters` can interpolate their own templates without
|
|
1095
|
+
* importing `solid-js`. Re-exported here (and from the root barrel) so every
|
|
1096
|
+
* existing import path keeps working.
|
|
1097
|
+
*/
|
|
1098
|
+
export { formatMCPUIString } from '../utils/format-string'
|
|
1099
|
+
|
|
129
1100
|
export const MCPUIStringsContext = createContext<MCPUIStrings>(DEFAULT_MCPUI_STRINGS)
|
|
130
1101
|
|
|
131
1102
|
/**
|
|
@@ -133,8 +1104,40 @@ export const MCPUIStringsContext = createContext<MCPUIStrings>(DEFAULT_MCPUI_STR
|
|
|
133
1104
|
* `<MCPUIStringsProvider>` is mounted above — every renderer works
|
|
134
1105
|
* standalone with English chrome.
|
|
135
1106
|
*/
|
|
1107
|
+
const resolvedLocales = new Map<string, string>()
|
|
1108
|
+
|
|
1109
|
+
/**
|
|
1110
|
+
* Returns `locale` in canonical BCP-47 form, or `DEFAULT_MCPUI_STRINGS.locale`
|
|
1111
|
+
* (`'en-US'`) when it is missing or not a valid tag. Renderers pass the result
|
|
1112
|
+
* straight to `Intl` / `toLocaleString` / `localeCompare`, which throw a
|
|
1113
|
+
* `RangeError` on an invalid tag such as `'not_a_locale'`.
|
|
1114
|
+
*
|
|
1115
|
+
* @since v6.20.0
|
|
1116
|
+
*/
|
|
1117
|
+
export function resolveMCPUILocale(locale: unknown): string {
|
|
1118
|
+
const fallback = DEFAULT_MCPUI_STRINGS.locale
|
|
1119
|
+
if (typeof locale !== 'string' || locale.trim() === '') return fallback
|
|
1120
|
+
const cached = resolvedLocales.get(locale)
|
|
1121
|
+
if (cached) return cached
|
|
1122
|
+
let resolved = fallback
|
|
1123
|
+
try {
|
|
1124
|
+
const [canonical] = Intl.getCanonicalLocales(locale)
|
|
1125
|
+
if (canonical) resolved = canonical
|
|
1126
|
+
} catch {
|
|
1127
|
+
resolved = fallback
|
|
1128
|
+
}
|
|
1129
|
+
if (resolvedLocales.size < 64) resolvedLocales.set(locale, resolved)
|
|
1130
|
+
return resolved
|
|
1131
|
+
}
|
|
1132
|
+
|
|
136
1133
|
export function useMCPUIStrings(): Required<MCPUIStrings> {
|
|
137
|
-
|
|
1134
|
+
const context = useContext(MCPUIStringsContext)
|
|
1135
|
+
// The last source wins: `locale` is always a valid tag, whatever the provider passed.
|
|
1136
|
+
return mergeProps(DEFAULT_MCPUI_STRINGS, context, {
|
|
1137
|
+
get locale() {
|
|
1138
|
+
return resolveMCPUILocale(context?.locale)
|
|
1139
|
+
},
|
|
1140
|
+
})
|
|
138
1141
|
}
|
|
139
1142
|
|
|
140
1143
|
export interface MCPUIStringsProviderProps {
|