@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
|
@@ -12,6 +12,13 @@ const DEFAULT_MCPUI_STRINGS = {
|
|
|
12
12
|
feedbackPositiveAck: "Thanks!",
|
|
13
13
|
feedbackNegativeAck: "Noted — we'll improve",
|
|
14
14
|
retry: "Retry",
|
|
15
|
+
ok: "OK",
|
|
16
|
+
cancel: "Cancel",
|
|
17
|
+
confirm: "Confirm",
|
|
18
|
+
submit: "Submit",
|
|
19
|
+
dismiss: "Dismiss",
|
|
20
|
+
yes: "Yes",
|
|
21
|
+
no: "No",
|
|
15
22
|
chartView: "Chart",
|
|
16
23
|
chartDataView: "Data",
|
|
17
24
|
chartViewSelector: "Chart or data view",
|
|
@@ -21,11 +28,286 @@ const DEFAULT_MCPUI_STRINGS = {
|
|
|
21
28
|
paginationPrevious: "Previous page",
|
|
22
29
|
paginationNext: "Next page",
|
|
23
30
|
paginationPageSize: "Rows per page",
|
|
24
|
-
gridRegion: "Layout grid"
|
|
31
|
+
gridRegion: "Layout grid",
|
|
32
|
+
autocompleteSuggestions: "Suggestions",
|
|
33
|
+
autocompleteLoading: "Loading...",
|
|
34
|
+
autocompleteEmpty: "No suggestions found",
|
|
35
|
+
carouselTitle: "Carousel",
|
|
36
|
+
carouselCopy: "Copy items (JSON)",
|
|
37
|
+
mapTitle: "Map",
|
|
38
|
+
mapCopy: "Copy markers as GeoJSON",
|
|
39
|
+
chartDownloadPng: "Download PNG",
|
|
40
|
+
chartDownloadPngAria: "Download chart as PNG",
|
|
41
|
+
chartCopy: "Copy chart data (JSON)",
|
|
42
|
+
chartLoading: "Loading chart...",
|
|
43
|
+
codeSearchPlaceholder: "Search…",
|
|
44
|
+
codeSearchAria: "Search in code",
|
|
45
|
+
codeDownloadAria: "Download code as file",
|
|
46
|
+
codeDownload: "Download code",
|
|
47
|
+
codeToggleWordWrap: "Toggle word wrap",
|
|
48
|
+
codeCopy: "Copy code",
|
|
49
|
+
codeTitle: "Code",
|
|
50
|
+
codeWordWrapEnable: "Enable word wrap",
|
|
51
|
+
codeWordWrapDisable: "Disable word wrap",
|
|
52
|
+
exportCsvRows: "Export CSV ({count} rows)",
|
|
53
|
+
exportJsonRows: "Export JSON ({count} rows)",
|
|
54
|
+
sortBy: "Sort by {column}",
|
|
55
|
+
removeItem: "Remove {name}",
|
|
56
|
+
filterPlaceholder: "Filter...",
|
|
57
|
+
fieldNotSupported: "Not supported",
|
|
58
|
+
fieldNoMatches: "No matches",
|
|
59
|
+
fieldGroupContainer: "Group container",
|
|
60
|
+
fieldSelectPlaceholder: "Select...",
|
|
61
|
+
fieldTagsPlaceholder: "Type and press Enter...",
|
|
62
|
+
scratchpadClose: "Close",
|
|
63
|
+
scratchpadPreview: "Preview",
|
|
64
|
+
scratchpadNoResults: "No results for these filters",
|
|
65
|
+
scratchpadModifyFilters: "Modify filters",
|
|
66
|
+
scratchpadNoFilters: "No filters",
|
|
67
|
+
// Former literal was French ('Modifier') — the library ships English
|
|
68
|
+
// defaults, so this one changed on purpose.
|
|
69
|
+
scratchpadEdit: "Edit",
|
|
70
|
+
scratchpadSend: "Send",
|
|
71
|
+
scratchpadShowRaw: "Show raw SSE payload",
|
|
72
|
+
scratchpadHideRaw: "Hide raw SSE payload",
|
|
73
|
+
scratchpadCommentPlaceholder: "Add a comment...",
|
|
74
|
+
scratchpadError: "Error",
|
|
75
|
+
scratchpadSource: "Source",
|
|
76
|
+
graphExport: "Export graph",
|
|
77
|
+
graphCopy: "Copy graph (JSON)",
|
|
78
|
+
graphTitle: "Graph",
|
|
79
|
+
graphExportMenu: "Export ▾",
|
|
80
|
+
graphDownloadPng: "Download PNG",
|
|
81
|
+
graphDownloadPngHint: "visual snapshot",
|
|
82
|
+
graphDownloadMermaid: "Download Mermaid",
|
|
83
|
+
graphDownloadMermaidHint: "markdown / GitHub",
|
|
84
|
+
graphDownloadJson: "Download JSON",
|
|
85
|
+
graphDownloadJsonHint: "raw data",
|
|
86
|
+
galleryCopy: "Copy image URLs",
|
|
87
|
+
galleryTitle: "Gallery",
|
|
88
|
+
videoCopy: "Copy video URL",
|
|
89
|
+
videoTitle: "Video",
|
|
90
|
+
sourceDetected: "Detected from message",
|
|
91
|
+
sourceInferred: "Inferred from context",
|
|
92
|
+
sourcePrevious: "Previously provided",
|
|
93
|
+
lightboxLabel: "Image lightbox",
|
|
94
|
+
lightboxClose: "Close lightbox",
|
|
95
|
+
lightboxPrevious: "Previous image",
|
|
96
|
+
lightboxNext: "Next image",
|
|
97
|
+
modalClose: "Close modal",
|
|
98
|
+
copy: "Copy",
|
|
99
|
+
copyMetric: "Copy metric",
|
|
100
|
+
copyText: "Copy text",
|
|
101
|
+
copyErrorDetails: "Copy error details",
|
|
102
|
+
tableTitle: "Table",
|
|
103
|
+
tableCopyCsv: "Copy table (CSV)",
|
|
104
|
+
tableExport: "Export table",
|
|
105
|
+
tableClearSearch: "Clear search",
|
|
106
|
+
tableAriaLabel: "Data table",
|
|
107
|
+
// Former literal was French ('Rechercher dans le tableau...') — the
|
|
108
|
+
// library ships English defaults, so this one changed on purpose.
|
|
109
|
+
tableSearchPlaceholder: "Search the table...",
|
|
110
|
+
tableCopyTsv: "Copy TSV",
|
|
111
|
+
tableDownloadCsv: "Download CSV",
|
|
112
|
+
tableDownloadJson: "Download JSON",
|
|
113
|
+
perPageSuffix: "/ page",
|
|
114
|
+
imageAlt: "Image",
|
|
115
|
+
imageViewFullSize: "View full size: {alt}",
|
|
116
|
+
iframeTitle: "Embedded content",
|
|
117
|
+
linkLabel: "Link",
|
|
118
|
+
linkOpensInNewTab: "{label}: {description} (opens in new tab)",
|
|
119
|
+
validationWarning: "Component validation warning",
|
|
120
|
+
resourceTitle: "Resource",
|
|
121
|
+
chartError: "Chart Error",
|
|
122
|
+
validationError: "Validation Error",
|
|
123
|
+
validationUnknownError: "Unknown validation error",
|
|
124
|
+
errorUnknown: "Unknown error",
|
|
125
|
+
errorUnknownToolName: "Unknown",
|
|
126
|
+
errorToolExecution: "An error occurred during tool execution",
|
|
127
|
+
verifiedTitle: "Verified against source data",
|
|
128
|
+
verifiedAria: "verified",
|
|
129
|
+
unverifiedAria: "unverified",
|
|
130
|
+
verifiedNotFound: "Not found in source data",
|
|
131
|
+
verifiedNotFoundClosest: "Not found in source data. Closest: {closest} ({pct}% off)",
|
|
132
|
+
// Former literal was French ('[non v\u00E9rifi\u00E9]') — see above.
|
|
133
|
+
verifiedStripLabel: "[unverified]",
|
|
134
|
+
verifiedConfidence: "{pct}% verified",
|
|
135
|
+
verifiedUnverifiedCount: "({count} unverified)",
|
|
136
|
+
promptLoadingPreview: "Loading preview...",
|
|
137
|
+
promptConfirmed: "Confirmed",
|
|
138
|
+
promptCancelled: "Cancelled",
|
|
139
|
+
promptFormSubmitted: "Form submitted",
|
|
140
|
+
formSubmissionFailed: "Submission failed",
|
|
141
|
+
formSubmitCountdown: "{label} in {seconds}s...",
|
|
142
|
+
actionGroupLabel: "Action group",
|
|
143
|
+
artifactDescription: "Generated artifact",
|
|
144
|
+
degradedCaption: "Showing the underlying data — the interactive view is unavailable.",
|
|
145
|
+
metaProvider: "Provider",
|
|
146
|
+
metaModel: "Model",
|
|
147
|
+
metaExecutionTime: "Execution Time",
|
|
148
|
+
metaCost: "Cost",
|
|
149
|
+
metaTtfb: "TTFB",
|
|
150
|
+
metaCached: "Cached",
|
|
151
|
+
download: "Download",
|
|
152
|
+
unknown: "unknown",
|
|
153
|
+
// Former literal was French ('[r\u00E9f. {id}]') — see above.
|
|
154
|
+
citationUnresolved: "[ref. {id}]",
|
|
155
|
+
invalidComponent: "Invalid {type}",
|
|
156
|
+
toolErrorTitle: "Tool Error: {tool}",
|
|
157
|
+
errorTypeLabel: "Type: {type}",
|
|
158
|
+
errorSuggestions: "Suggestions:",
|
|
159
|
+
chartInvalidData: "Invalid chart data: missing data.datasets",
|
|
160
|
+
unsupportedComponentType: "Unsupported component type:",
|
|
161
|
+
previewPrev: "Prev",
|
|
162
|
+
previewNext: "Next",
|
|
163
|
+
previewPageIndicator: "Page {page} / {total}",
|
|
164
|
+
fieldResolving: "Resolving...",
|
|
165
|
+
// Former literals were French ('{count} champ(s) pr\u00E9-rempli(s) sur {total}').
|
|
166
|
+
formPrefilledOne: "{count} field pre-filled out of {total}",
|
|
167
|
+
formPrefilledMany: "{count} fields pre-filled out of {total}",
|
|
168
|
+
formSubmitting: "Submitting...",
|
|
169
|
+
formReset: "Reset",
|
|
170
|
+
errorBoundaryTitle: "Component Failed to Render",
|
|
171
|
+
errorBoundaryMeta: "Type: {type} | ID: {id}...",
|
|
172
|
+
errorBoundaryRetry: "Retry Rendering",
|
|
173
|
+
scratchpadSearch: "Search",
|
|
174
|
+
scratchpadNextStep: "Next",
|
|
175
|
+
scratchpadPlan: "Plan:",
|
|
176
|
+
scratchpadModify: "Modify",
|
|
177
|
+
scratchpadDetails: "Details",
|
|
178
|
+
scratchpadItems: "items",
|
|
179
|
+
videoUnsupported: "Your browser does not support the video tag.",
|
|
180
|
+
previewShowingRange: "Showing {start}–{end} of {total}",
|
|
181
|
+
previewRowsOne: "{count} row",
|
|
182
|
+
previewRowsMany: "{count} rows",
|
|
183
|
+
previewTotalSuffix: " ({total} total)",
|
|
184
|
+
statusLoading: "Loading...",
|
|
185
|
+
statusActionAvailable: "Action available",
|
|
186
|
+
statusYourTurn: "Your turn",
|
|
187
|
+
statusProcessing: "Processing...",
|
|
188
|
+
statusComplete: "Complete",
|
|
189
|
+
agentStatusIdle: "Idle",
|
|
190
|
+
agentStatusRunning: "Running",
|
|
191
|
+
agentStatusWaiting: "Waiting",
|
|
192
|
+
agentStatusDone: "Done",
|
|
193
|
+
agentStatusError: "Error",
|
|
194
|
+
handoffItems: "{count} items",
|
|
195
|
+
degradedMoreRows: "+{count} more rows not shown.",
|
|
196
|
+
chartDegradedCaption: "Showing the chart data as a table — the interactive chart is unavailable.",
|
|
197
|
+
chartRenderFailed: "Chart rendering failed: {error}",
|
|
198
|
+
chartQuickchartCaption: "Showing the chart data as a table.",
|
|
199
|
+
graphDegradedCaption: "Showing the graph data as a table — the interactive view is unavailable.",
|
|
200
|
+
graphRenderFailed: "Graph rendering failed: {error}",
|
|
201
|
+
graphRenderError: "Failed to render graph",
|
|
202
|
+
chartRenderError: "Chart rendering failed",
|
|
203
|
+
graphPngUnsupported: "PNG export not supported in current renderer mode",
|
|
204
|
+
graphPngExportFailed: "PNG export failed",
|
|
205
|
+
mapLibraryUnavailable: "Map library could not be loaded.",
|
|
206
|
+
mapDegradedCaption: "Showing the map data as a coordinate table — the interactive map is unavailable.",
|
|
207
|
+
mapRenderFailed: "Map rendering failed: {error}",
|
|
208
|
+
mapRenderError: "Failed to render map",
|
|
209
|
+
degradedColType: "Type",
|
|
210
|
+
degradedColLat: "Lat",
|
|
211
|
+
degradedColLng: "Lng",
|
|
212
|
+
degradedColInfo: "Info",
|
|
213
|
+
degradedColSource: "Source",
|
|
214
|
+
degradedColTarget: "Target",
|
|
215
|
+
degradedColNode: "Node",
|
|
216
|
+
degradedColLabel: "Label",
|
|
217
|
+
degradedSeries: "Series {n}",
|
|
218
|
+
chartTableSeries: "Series",
|
|
219
|
+
chartTablePoint: "Point",
|
|
220
|
+
autocompleteHintNavigate: " to navigate, ",
|
|
221
|
+
autocompleteHintSelect: " to select, ",
|
|
222
|
+
autocompleteHintDismiss: " to dismiss",
|
|
223
|
+
autocompleteTabToAccept: "Tab to accept",
|
|
224
|
+
fieldAddMorePlaceholder: "Add more...",
|
|
225
|
+
galleryViewImage: "View image {index}",
|
|
226
|
+
galleryImageAlt: "Image {index}",
|
|
227
|
+
imageAltFallback: "image",
|
|
228
|
+
chartVisualizationAlt: "Chart visualization",
|
|
229
|
+
chartWithTitleAlt: "Chart: {title}",
|
|
230
|
+
chartLoadFailed: "Failed to load chart",
|
|
231
|
+
paginationAllRows: "All",
|
|
232
|
+
fieldRequired: "{field} is required",
|
|
233
|
+
fieldMustBeChecked: "{field} must be checked",
|
|
234
|
+
fieldMinLength: "Minimum {min} characters required",
|
|
235
|
+
fieldMaxLength: "Maximum {max} characters allowed",
|
|
236
|
+
fieldInvalidPattern: "Invalid format",
|
|
237
|
+
fieldInvalidEmail: "Invalid email address",
|
|
238
|
+
fieldInvalidNumber: "Must be a valid number",
|
|
239
|
+
fieldMinValue: "Minimum value is {min}",
|
|
240
|
+
fieldMaxValue: "Maximum value is {max}",
|
|
241
|
+
fieldMinDate: "Date must be after {min}",
|
|
242
|
+
fieldMaxDate: "Date must be before {max}",
|
|
243
|
+
fieldInvalidOption: "Please select a valid option",
|
|
244
|
+
fieldInvalidFormat: "Invalid format (expected: {format})",
|
|
245
|
+
// ── 6.20.0 ─────────────────────────────────────
|
|
246
|
+
// DEFAULT CHANGE: formatting / collation used 'fr-FR' / 'fr' (or the
|
|
247
|
+
// runtime's implicit locale) — now one explicit, overridable tag.
|
|
248
|
+
locale: "en-US",
|
|
249
|
+
briefingAdded: "+{count} added",
|
|
250
|
+
briefingRemoved: "{count} removed",
|
|
251
|
+
briefingChanged: "{count} changed",
|
|
252
|
+
footerSources: "{count} sources",
|
|
253
|
+
degradedMarker: "marker",
|
|
254
|
+
degradedFeature: "feature",
|
|
255
|
+
fieldUnknownType: "Unknown field type: {type}",
|
|
256
|
+
fieldSelectedCount: "{count} selected",
|
|
257
|
+
scratchpadErrorCode: "Code: {code}",
|
|
258
|
+
scratchpadResultCount: "{count} results",
|
|
259
|
+
tableVirtualizedRows: "(virtualized: {count} rows)",
|
|
260
|
+
tableSearchResultsOne: "{count} result on {total}",
|
|
261
|
+
tableSearchResultsMany: "{count} results on {total}",
|
|
262
|
+
tableServerPageRange: "Showing {start} - {end} of {total}",
|
|
263
|
+
errorCopyText: "Error in {tool}: {message}",
|
|
264
|
+
errorUnknownTool: "unknown tool",
|
|
265
|
+
streamInitializing: "Initializing...",
|
|
266
|
+
streamConnecting: "Connecting to server...",
|
|
267
|
+
streamLoadingComponent: "Loading {type} component...",
|
|
268
|
+
streamDashboardLoaded: "Dashboard loaded",
|
|
269
|
+
streamErrorProgress: "Error: {message}",
|
|
270
|
+
streamConnectionFailed: "Stream connection failed",
|
|
271
|
+
streamRequestFailed: "Stream request failed",
|
|
272
|
+
streamEmptyResponse: "Response body is null",
|
|
273
|
+
streamServerSide: "Streaming UI cannot start on server-side",
|
|
274
|
+
streamUnknownError: "Unknown error",
|
|
275
|
+
streamServerSideTitle: "Streaming unavailable",
|
|
276
|
+
graphUnavailable: "Graph rendering unavailable",
|
|
277
|
+
mapPmtilesUnavailable: 'PMTiles layer unavailable — the optional "protomaps-leaflet" peer dependency failed to load or render.',
|
|
278
|
+
mapBaseMapStillShown: "The base map is still shown.",
|
|
279
|
+
chartJsUnavailable: "Chart.js is not available. Install chart.js peer dependency.",
|
|
280
|
+
chartIframeUnavailable: "Interactive chart unavailable — install the chart.js peer dependency, or set allowQuickchartFallback to use the external quickchart.io renderer.",
|
|
281
|
+
previewInvalidContent: "[DataPreviewSection] Invalid content format",
|
|
282
|
+
citationViewSource: "View source - {label}",
|
|
283
|
+
sizeBytes: "{size} B",
|
|
284
|
+
sizeKilobytes: "{size} KB",
|
|
285
|
+
sizeMegabytes: "{size} MB"
|
|
25
286
|
};
|
|
26
287
|
const MCPUIStringsContext = solidJs.createContext(DEFAULT_MCPUI_STRINGS);
|
|
288
|
+
const resolvedLocales = /* @__PURE__ */ new Map();
|
|
289
|
+
function resolveMCPUILocale(locale) {
|
|
290
|
+
const fallback = DEFAULT_MCPUI_STRINGS.locale;
|
|
291
|
+
if (typeof locale !== "string" || locale.trim() === "") return fallback;
|
|
292
|
+
const cached = resolvedLocales.get(locale);
|
|
293
|
+
if (cached) return cached;
|
|
294
|
+
let resolved = fallback;
|
|
295
|
+
try {
|
|
296
|
+
const [canonical] = Intl.getCanonicalLocales(locale);
|
|
297
|
+
if (canonical) resolved = canonical;
|
|
298
|
+
} catch {
|
|
299
|
+
resolved = fallback;
|
|
300
|
+
}
|
|
301
|
+
if (resolvedLocales.size < 64) resolvedLocales.set(locale, resolved);
|
|
302
|
+
return resolved;
|
|
303
|
+
}
|
|
27
304
|
function useMCPUIStrings() {
|
|
28
|
-
|
|
305
|
+
const context = solidJs.useContext(MCPUIStringsContext);
|
|
306
|
+
return solidJs.mergeProps(DEFAULT_MCPUI_STRINGS, context, {
|
|
307
|
+
get locale() {
|
|
308
|
+
return resolveMCPUILocale(context == null ? void 0 : context.locale);
|
|
309
|
+
}
|
|
310
|
+
});
|
|
29
311
|
}
|
|
30
312
|
function MCPUIStringsProvider(props) {
|
|
31
313
|
const value = solidJs.mergeProps(DEFAULT_MCPUI_STRINGS, () => props.strings);
|
|
@@ -39,5 +321,6 @@ function MCPUIStringsProvider(props) {
|
|
|
39
321
|
exports.DEFAULT_MCPUI_STRINGS = DEFAULT_MCPUI_STRINGS;
|
|
40
322
|
exports.MCPUIStringsContext = MCPUIStringsContext;
|
|
41
323
|
exports.MCPUIStringsProvider = MCPUIStringsProvider;
|
|
324
|
+
exports.resolveMCPUILocale = resolveMCPUILocale;
|
|
42
325
|
exports.useMCPUIStrings = useMCPUIStrings;
|
|
43
326
|
//# sourceMappingURL=MCPUIStringsContext.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MCPUIStringsContext.cjs","sources":["../../src/context/MCPUIStringsContext.tsx"],"sourcesContent":["/**\n * MCPUIStringsContext — i18n for the library's own \"chrome\" strings.\n *\n * @since v6.6.0 (D2 / R4 of ROADMAP-opendata-macro-mcpui)\n *\n * ## Scope — chrome only, NOT content\n *\n * MCP-UI renders two kinds of text :\n *\n * - **Content** — table headers, chart titles, action labels, prompt\n * questions. These come from the payload and are ALREADY localized by\n * whoever produced the payload (the connector / MCP server). MCP-UI\n * renders them verbatim and this context never touches them.\n * - **Chrome** — the handful of strings the library itself hardcodes :\n * the expand-button tooltip, the feedback acknowledgements, etc. THIS\n * is what `MCPUIStrings` covers.\n *\n * There is deliberately no full i18n framework here : no per-renderer\n * `locale` prop, no message catalogue, no ICU. A flat string map behind a\n * context is enough — the chrome surface is small and static.\n *\n * ## Defaults are English\n *\n * `DEFAULT_MCPUI_STRINGS` is English. A published library should not ship\n * hardcoded French. Consumers that want another language wrap their tree\n * in `<MCPUIStringsProvider strings={...}>` with a partial override.\n *\n * Component props that already carry a label (e.g. `FeedbackInline`'s\n * `positiveAck`, `ExpandableWrapper`'s `copyLabel`) keep priority over the\n * provider — the provider only fills the gap when no explicit prop is set.\n *\n * @example\n * ```tsx\n * import { MCPUIStringsProvider } from '@seed-ship/mcp-ui-solid'\n *\n * <MCPUIStringsProvider strings={{ expand: 'Agrandir', feedbackUseful: 'Utile' }}>\n * <App />\n * </MCPUIStringsProvider>\n * ```\n */\n\nimport { createContext, mergeProps, useContext, type JSX } from 'solid-js'\n\n/**\n * The library's own chrome strings. Flat map, no interpolation.\n *\n * The original chrome keys remain required. Later additions are optional\n * so existing typed dictionaries remain valid across minor releases.\n * `useMCPUIStrings` resolves omitted keys to their English defaults.\n */\nexport interface MCPUIStrings {\n // ── ExpandableWrapper toolbar ──────────────────────────────\n /** `title` of the expand-to-fullscreen button. */\n expand: string\n /** Heading + `aria-label` of the fullscreen modal when no title is given. */\n expandedView: string\n /** Default tooltip of the copy button (overridden by `copyLabel` prop). */\n copyToClipboard: string\n /** `aria-label` of the close button in the fullscreen modal. */\n closeExpandedView: string\n\n // ── FeedbackInline (response-quality feedback) ─────────────\n /** `title` of the thumb-up button. */\n feedbackUseful: string\n /** `title` of the thumb-down button. */\n feedbackNotUseful: string\n /** Acknowledgement shown after a positive rating (overridden by `positiveAck`). */\n feedbackPositiveAck: string\n /** Acknowledgement shown after a negative rating (overridden by `negativeAck`). */\n feedbackNegativeAck: string\n\n // ── Generic chrome ────────────────────────────────────────\n /** Label of the streaming retry button. */\n retry: string\n\n // ── Chart data access ─────────────────────────────────────\n /** Label of the native chart view button. */\n chartView?: string\n /** Label of the exact-data table view button. */\n chartDataView?: string\n /** Accessible name of the chart/data view selector. */\n chartViewSelector?: string\n /** Caption and accessible name for the chart's data table. */\n chartDataTable?: string\n /** Screen-reader description associated with the chart canvas. */\n chartDataSummary?: string\n /** Empty state shown when a chart has no data points. */\n chartNoData?: string\n\n // ── Table pagination ──────────────────────────────────────\n /** Accessible name of the pagination \"previous page\" button. */\n paginationPrevious?: string\n /** Accessible name of the pagination \"next page\" button. */\n paginationNext?: string\n /** Accessible name of the pagination page-size `<select>`. */\n paginationPageSize?: string\n\n // ── Grid layout ────────────────────────────────────────────\n /** Fallback `aria-label` for a grid region without a title. */\n gridRegion?: string\n}\n\n/**\n * English defaults. A published library ships no hardcoded non-English\n * chrome — consumers localize via `<MCPUIStringsProvider>`.\n */\nexport const DEFAULT_MCPUI_STRINGS: Required<MCPUIStrings> = {\n expand: 'Expand',\n expandedView: 'Expanded view',\n copyToClipboard: 'Copy to clipboard',\n closeExpandedView: 'Close expanded view',\n feedbackUseful: 'Useful',\n feedbackNotUseful: 'Not useful',\n feedbackPositiveAck: 'Thanks!',\n feedbackNegativeAck: \"Noted — we'll improve\",\n retry: 'Retry',\n chartView: 'Chart',\n chartDataView: 'Data',\n chartViewSelector: 'Chart or data view',\n chartDataTable: 'Chart data',\n chartDataSummary: 'Exact values are available in the data view.',\n chartNoData: 'No chart data',\n paginationPrevious: 'Previous page',\n paginationNext: 'Next page',\n paginationPageSize: 'Rows per page',\n gridRegion: 'Layout grid',\n}\n\nexport const MCPUIStringsContext = createContext<MCPUIStrings>(DEFAULT_MCPUI_STRINGS)\n\n/**\n * Reads the active chrome strings. Returns `DEFAULT_MCPUI_STRINGS` when no\n * `<MCPUIStringsProvider>` is mounted above — every renderer works\n * standalone with English chrome.\n */\nexport function useMCPUIStrings(): Required<MCPUIStrings> {\n return mergeProps(DEFAULT_MCPUI_STRINGS, useContext(MCPUIStringsContext))\n}\n\nexport interface MCPUIStringsProviderProps {\n /**\n * Partial override of the chrome strings. Any key left unset falls back\n * to the English `DEFAULT_MCPUI_STRINGS` — so a consumer can localize\n * just the strings they care about.\n */\n strings?: Partial<MCPUIStrings>\n children: JSX.Element\n}\n\n/**\n * Provides localized chrome strings to every MCP-UI renderer below it.\n * Merges the partial `strings` override over the English defaults.\n */\nexport function MCPUIStringsProvider(props: MCPUIStringsProviderProps): JSX.Element {\n // The function source keeps replacement `strings` objects reactive while\n // mergeProps fills any omitted key without taking a one-time snapshot.\n const value = mergeProps(DEFAULT_MCPUI_STRINGS, () => props.strings)\n return (\n <MCPUIStringsContext.Provider value={value}>\n {props.children}\n </MCPUIStringsContext.Provider>\n )\n}\n"],"names":["DEFAULT_MCPUI_STRINGS","expand","expandedView","copyToClipboard","closeExpandedView","feedbackUseful","feedbackNotUseful","feedbackPositiveAck","feedbackNegativeAck","retry","chartView","chartDataView","chartViewSelector","chartDataTable","chartDataSummary","chartNoData","paginationPrevious","paginationNext","paginationPageSize","gridRegion","MCPUIStringsContext","createContext","useMCPUIStrings","mergeProps","useContext","MCPUIStringsProvider","props","value","strings","_$createComponent","Provider","children"],"mappings":";;;;AA0GO,MAAMA,wBAAgD;AAAA,EAC3DC,QAAQ;AAAA,EACRC,cAAc;AAAA,EACdC,iBAAiB;AAAA,EACjBC,mBAAmB;AAAA,EACnBC,gBAAgB;AAAA,EAChBC,mBAAmB;AAAA,EACnBC,qBAAqB;AAAA,EACrBC,qBAAqB;AAAA,EACrBC,OAAO;AAAA,EACPC,WAAW;AAAA,EACXC,eAAe;AAAA,EACfC,mBAAmB;AAAA,EACnBC,gBAAgB;AAAA,EAChBC,kBAAkB;AAAA,EAClBC,aAAa;AAAA,EACbC,oBAAoB;AAAA,EACpBC,gBAAgB;AAAA,EAChBC,oBAAoB;AAAA,EACpBC,YAAY;AACd;AAEO,MAAMC,sBAAsBC,QAAAA,cAA4BrB,qBAAqB;AAO7E,SAASsB,kBAA0C;AACxD,SAAOC,mBAAWvB,uBAAuBwB,QAAAA,WAAWJ,mBAAmB,CAAC;AAC1E;AAgBO,SAASK,qBAAqBC,OAA+C;AAGlF,QAAMC,QAAQJ,QAAAA,WAAWvB,uBAAuB,MAAM0B,MAAME,OAAO;AACnE,SAAAC,IAAAA,gBACGT,oBAAoBU,UAAQ;AAAA,IAACH;AAAAA,IAAY,IAAAI,WAAA;AAAA,aACvCL,MAAMK;AAAAA,IAAQ;AAAA,EAAA,CAAA;AAGrB;;;;;"}
|
|
1
|
+
{"version":3,"file":"MCPUIStringsContext.cjs","sources":["../../src/context/MCPUIStringsContext.tsx"],"sourcesContent":["/**\n * MCPUIStringsContext — i18n for the library's own \"chrome\" strings.\n *\n * @since v6.6.0 (D2 / R4 of ROADMAP-opendata-macro-mcpui)\n *\n * ## Scope — chrome only, NOT content\n *\n * MCP-UI renders two kinds of text :\n *\n * - **Content** — table headers, chart titles, action labels, prompt\n * questions. These come from the payload and are ALREADY localized by\n * whoever produced the payload (the connector / MCP server). MCP-UI\n * renders them verbatim and this context never touches them.\n * - **Chrome** — the handful of strings the library itself hardcodes :\n * the expand-button tooltip, the feedback acknowledgements, etc. THIS\n * is what `MCPUIStrings` covers.\n *\n * There is deliberately no full i18n framework here : no per-renderer\n * `locale` prop, no message catalogue, no ICU. A flat string map behind a\n * context is enough — the chrome surface is small and static.\n *\n * ## Defaults are English\n *\n * `DEFAULT_MCPUI_STRINGS` is English. A published library should not ship\n * hardcoded French. Consumers that want another language wrap their tree\n * in `<MCPUIStringsProvider strings={...}>` with a partial override.\n *\n * Component props that already carry a label (e.g. `FeedbackInline`'s\n * `positiveAck`, `ExpandableWrapper`'s `copyLabel`) keep priority over the\n * provider — the provider only fills the gap when no explicit prop is set.\n *\n * @example\n * ```tsx\n * import { MCPUIStringsProvider } from '@seed-ship/mcp-ui-solid'\n *\n * <MCPUIStringsProvider strings={{ expand: 'Agrandir', feedbackUseful: 'Utile' }}>\n * <App />\n * </MCPUIStringsProvider>\n * ```\n */\n\nimport { createContext, mergeProps, useContext, type JSX } from 'solid-js'\n\n/**\n * The library's own chrome strings. Flat map, no interpolation.\n *\n * The original chrome keys remain required. Later additions are optional\n * so existing typed dictionaries remain valid across minor releases.\n * `useMCPUIStrings` resolves omitted keys to their English defaults.\n */\nexport interface MCPUIStrings {\n // ── ExpandableWrapper toolbar ──────────────────────────────\n /** `title` of the expand-to-fullscreen button. */\n expand: string\n /** Heading + `aria-label` of the fullscreen modal when no title is given. */\n expandedView: string\n /** Default tooltip of the copy button (overridden by `copyLabel` prop). */\n copyToClipboard: string\n /** `aria-label` of the close button in the fullscreen modal. */\n closeExpandedView: string\n\n // ── FeedbackInline (response-quality feedback) ─────────────\n /** `title` of the thumb-up button. */\n feedbackUseful: string\n /** `title` of the thumb-down button. */\n feedbackNotUseful: string\n /** Acknowledgement shown after a positive rating (overridden by `positiveAck`). */\n feedbackPositiveAck: string\n /** Acknowledgement shown after a negative rating (overridden by `negativeAck`). */\n feedbackNegativeAck: string\n\n // ── Generic chrome ────────────────────────────────────────\n /** Label of the streaming retry button. */\n retry: string\n /** Label of a generic inline \"confirm\" button (scratchpad filter editor). */\n ok?: string\n /** Label of a generic \"cancel\" button (scratchpad, chat prompt). */\n cancel?: string\n /** Label of a generic \"confirm\" button (chat prompt). */\n confirm?: string\n /** Label of a generic \"submit\" button (chat prompt, form renderers). */\n submit?: string\n /** `aria-label` of a generic \"dismiss\" button (chat prompt). */\n dismiss?: string\n /** Affirmative value label (streaming metadata, scratchpad feedback). */\n yes?: string\n /** Negative value label (scratchpad feedback). */\n no?: string\n\n // ── Chart data access ─────────────────────────────────────\n /** Label of the native chart view button. */\n chartView?: string\n /** Label of the exact-data table view button. */\n chartDataView?: string\n /** Accessible name of the chart/data view selector. */\n chartViewSelector?: string\n /** Caption and accessible name for the chart's data table. */\n chartDataTable?: string\n /** Screen-reader description associated with the chart canvas. */\n chartDataSummary?: string\n /** Empty state shown when a chart has no data points. */\n chartNoData?: string\n\n // ── Table pagination ──────────────────────────────────────\n /** Accessible name of the pagination \"previous page\" button. */\n paginationPrevious?: string\n /** Accessible name of the pagination \"next page\" button. */\n paginationNext?: string\n /** Accessible name of the pagination page-size `<select>`. */\n paginationPageSize?: string\n\n // ── Grid layout ────────────────────────────────────────────\n /** Fallback `aria-label` for a grid region without a title. */\n gridRegion?: string\n\n // ── AutocompleteDropdown ───────────────────────────────────\n /** `aria-label` of the suggestions listbox. */\n autocompleteSuggestions?: string\n /** Fallback loading message of the suggestions listbox. */\n autocompleteLoading?: string\n /** Fallback empty state of the suggestions listbox. */\n autocompleteEmpty?: string\n\n // ── CarouselRenderer ───────────────────────────────────────\n /** Toolbar title of the carousel's expandable wrapper. */\n carouselTitle?: string\n /** `copyLabel` of the carousel's copy button (title + `aria-label`). */\n carouselCopy?: string\n\n // ── MapRenderer ────────────────────────────────────────────\n /** Toolbar title of the map's expandable wrapper. */\n mapTitle?: string\n /** `copyLabel` of the map's copy button (title + `aria-label`). */\n mapCopy?: string\n\n // ── ChartJSRenderer export ─────────────────────────────────\n /** `title` of the chart PNG export button. */\n chartDownloadPng?: string\n /** `aria-label` of the chart PNG export button. */\n chartDownloadPngAria?: string\n /** `copyLabel` of the chart's copy button (title + `aria-label`). */\n chartCopy?: string\n /** Overlay shown while the chart library and data are loading. */\n chartLoading?: string\n\n // ── CodeBlockRenderer toolbar ──────────────────────────────\n /** `placeholder` of the in-code search input. */\n codeSearchPlaceholder?: string\n /** `aria-label` of the in-code search input. */\n codeSearchAria?: string\n /** `aria-label` of the code download button. */\n codeDownloadAria?: string\n /** `title` of the code download button. */\n codeDownload?: string\n /** `aria-label` of the word-wrap toggle. */\n codeToggleWordWrap?: string\n /** `aria-label` and `title` of the code copy button. */\n codeCopy?: string\n /** Heading and toolbar title of a code block with no filename or language. */\n codeTitle?: string\n /** `title` of the word-wrap toggle while word wrap is OFF. */\n codeWordWrapEnable?: string\n /** `title` of the word-wrap toggle while word wrap is ON. */\n codeWordWrapDisable?: string\n\n // ── DataPreviewSection ─────────────────────────────────────\n /** `title` of the CSV export button. Template — `{count}` = row count. */\n exportCsvRows?: string\n /** `title` of the JSON export button. Template — `{count}` = row count. */\n exportJsonRows?: string\n /**\n * `title` of a sortable column header (data preview and tables).\n * Template — `{column}` = the column label.\n */\n sortBy?: string\n\n // ── Form fields (chips, tags, filters) ─────────────────────\n /**\n * `aria-label` of a chip/tag/filter removal button.\n * Template — `{name}` = the item being removed.\n */\n removeItem?: string\n /** `placeholder` of the multi-select options filter input. */\n filterPlaceholder?: string\n /** Badge shown next to a field whose type the renderer does not support. */\n fieldNotSupported?: string\n /** Empty state of the multi-select / autocomplete option list. */\n fieldNoMatches?: string\n /** Fallback help text of a `fieldset` field with none. */\n fieldGroupContainer?: string\n /** Fallback `placeholder` of the multi-select trigger. */\n fieldSelectPlaceholder?: string\n /** Fallback `placeholder` of the tags input. */\n fieldTagsPlaceholder?: string\n\n // ── ScratchpadPanel ────────────────────────────────────────\n /** `aria-label` of the scratchpad close button. */\n scratchpadClose?: string\n /** Heading of the filter preview block. */\n scratchpadPreview?: string\n /** Empty state of the filter preview block. */\n scratchpadNoResults?: string\n /** Label of the \"refine the filters\" button in the empty preview. */\n scratchpadModifyFilters?: string\n /** Empty state of the active-filter chip row. */\n scratchpadNoFilters?: string\n /** Label of the collapsed embedded form's \"edit\" button. */\n scratchpadEdit?: string\n /** Label of the free-text feedback \"send\" button. */\n scratchpadSend?: string\n /** Label of the debug toggle while the raw SSE payload is hidden. */\n scratchpadShowRaw?: string\n /** Label of the debug toggle while the raw SSE payload is shown. */\n scratchpadHideRaw?: string\n /** Fallback `placeholder` of the free-text feedback input. */\n scratchpadCommentPlaceholder?: string\n /** Fallback message of an error section with none. */\n scratchpadError?: string\n /** Fallback name of a source card with none. */\n scratchpadSource?: string\n\n // ── GraphRenderer ──────────────────────────────────────────\n /** `title` and `aria-label` of the graph export menu trigger. */\n graphExport?: string\n /** `copyLabel` of the graph's copy button (title + `aria-label`). */\n graphCopy?: string\n /** Toolbar title of the graph's expandable wrapper when untitled. */\n graphTitle?: string\n /**\n * Visible label of the graph export menu trigger button.\n * @since 6.20.0\n */\n graphExportMenu?: string\n /** Label of the \"download PNG\" item in the graph export menu. */\n graphDownloadPng?: string\n /** Hint under the \"download PNG\" item. */\n graphDownloadPngHint?: string\n /** Label of the \"download Mermaid\" item in the graph export menu. */\n graphDownloadMermaid?: string\n /** Hint under the \"download Mermaid\" item. */\n graphDownloadMermaidHint?: string\n /** Label of the \"download JSON\" item in the graph export menu. */\n graphDownloadJson?: string\n /** Hint under the \"download JSON\" item. */\n graphDownloadJsonHint?: string\n\n // ── ImageGalleryRenderer ───────────────────────────────────\n /** `copyLabel` of the gallery's copy button (title + `aria-label`). */\n galleryCopy?: string\n /** Toolbar title of the gallery's expandable wrapper when untitled. */\n galleryTitle?: string\n\n // ── VideoRenderer ──────────────────────────────────────────\n /** `copyLabel` of the video's copy button (title + `aria-label`). */\n videoCopy?: string\n /** Toolbar title and iframe `title` of an untitled video. */\n videoTitle?: string\n\n // ── FormFieldRenderer — prefill source badges ──────────────\n /** `title` of the `detected` prefill-source badge. */\n sourceDetected?: string\n /** `title` of the `inferred` prefill-source badge. */\n sourceInferred?: string\n /** `title` of the `user` prefill-source badge. */\n sourcePrevious?: string\n\n // ── LightboxOverlay ────────────────────────────────────────\n /** `aria-label` of the lightbox dialog. */\n lightboxLabel?: string\n /** `aria-label` of the lightbox close button. */\n lightboxClose?: string\n /** `aria-label` of the lightbox \"previous image\" button. */\n lightboxPrevious?: string\n /** `aria-label` of the lightbox \"next image\" button. */\n lightboxNext?: string\n\n // ── ModalRenderer ──────────────────────────────────────────\n /** `aria-label` of the modal close button. */\n modalClose?: string\n\n // ── UIResourceRenderer — copy buttons ──────────────────────\n /** Default `title`/`aria-label` of the generic copy button. */\n copy?: string\n /** `title` of the metric card copy button. */\n copyMetric?: string\n /** `title` of the text card copy button. */\n copyText?: string\n /** `title` of the error card copy button. */\n copyErrorDetails?: string\n\n // ── UIResourceRenderer — table chrome ──────────────────────\n /** Toolbar title of the table's expandable wrapper when untitled. */\n tableTitle?: string\n /** `title`/`copyLabel` of the table CSV copy button. */\n tableCopyCsv?: string\n /** `title` and `aria-label` of the table export menu trigger. */\n tableExport?: string\n /** `aria-label` of the table search reset button. */\n tableClearSearch?: string\n /** Fallback `aria-label` of the table scroll region when untitled. */\n tableAriaLabel?: string\n /**\n * `placeholder` of the table search input. The payload's\n * `params.searchPlaceholder` still wins when set.\n */\n tableSearchPlaceholder?: string\n /** Label of the \"copy as TSV\" item in the export menu. */\n tableCopyTsv?: string\n /** Label of the \"download CSV\" item in the export menu. */\n tableDownloadCsv?: string\n /** Label of the \"download JSON\" item in the export menu. */\n tableDownloadJson?: string\n /** Suffix rendered after the pagination page-size selector. */\n perPageSuffix?: string\n\n // ── UIResourceRenderer — media and links ───────────────────\n /** Fallback `alt` text of an image without one. */\n imageAlt?: string\n /**\n * `aria-label` of the image zoom link.\n * Template — `{alt}` = the image's alternative text.\n */\n imageViewFullSize?: string\n /** Fallback `title` of an iframe without one. */\n iframeTitle?: string\n /** Fallback label of a link component without one. */\n linkLabel?: string\n /**\n * `aria-label` of a link component.\n * Template — `{label}` and `{description}`.\n */\n linkOpensInNewTab?: string\n\n // ── UIResourceRenderer — misc chrome ───────────────────────\n /** `aria-label` of the inline component-validation warning chip. */\n validationWarning?: string\n /** Fallback heading of an HTML resource without a title or URI. */\n resourceTitle?: string\n /** Heading of the chart renderer's error overlay. */\n chartError?: string\n /** Heading of the blocking component-validation error card. */\n validationError?: string\n /** Fallback detail of a validation error carrying no message. */\n validationUnknownError?: string\n /** Fallback message inside the error card's copyable text. */\n errorUnknown?: string\n /** Fallback tool name in the error card heading. */\n errorUnknownToolName?: string\n /** Fallback body of an error card carrying no message. */\n errorToolExecution?: string\n\n // ── VerifiedText ───────────────────────────────────────────\n /** `title` of a segment verified against the source data. */\n verifiedTitle?: string\n /** `aria-label` of the verified marker glyph. */\n verifiedAria?: string\n /** `aria-label` of the unverified marker glyph. */\n unverifiedAria?: string\n /** `title` of an unverified number with no closest source match. */\n verifiedNotFound?: string\n /**\n * `title` of an unverified number that has a closest source match.\n * Template — `{closest}` = the nearest source number, `{pct}` = the\n * relative distance in percent.\n */\n verifiedNotFoundClosest?: string\n /** Placeholder rendered in `strip` mode in place of the number. */\n verifiedStripLabel?: string\n /**\n * Confidence summary of a validated answer.\n * Template — `{pct}` = the confidence as a whole percentage.\n */\n verifiedConfidence?: string\n /**\n * Count of unverified numbers next to the confidence summary.\n * Template — `{count}` = how many numbers failed verification.\n */\n verifiedUnverifiedCount?: string\n\n // ── ChatPrompt ─────────────────────────────────────────────\n /** Placeholder shown while the form's live preview is loading. */\n promptLoadingPreview?: string\n /** Submitted label of a confirmed `confirm` prompt (no `confirmLabel`). */\n promptConfirmed?: string\n /** Submitted label of a cancelled `confirm` prompt (no `cancelLabel`). */\n promptCancelled?: string\n /** Submitted label of a `form` prompt whose fields are all empty. */\n promptFormSubmitted?: string\n\n // ── FormRenderer ───────────────────────────────────────────\n /** Fallback error when the submit action fails without a message. */\n formSubmissionFailed?: string\n /**\n * Auto-submit countdown notice.\n * Template — `{label}` = the submit label, `{seconds}` = seconds left.\n */\n formSubmitCountdown?: string\n\n // ── ActionGroupRenderer ────────────────────────────────────\n /** Fallback `aria-label` of an action group without one. */\n actionGroupLabel?: string\n\n // ── ArtifactRenderer ───────────────────────────────────────\n /** Fallback description of an artifact card without one. */\n artifactDescription?: string\n\n // ── DegradedFallback ───────────────────────────────────────\n /** Fallback caption of the degraded-renderer notice. */\n degradedCaption?: string\n\n // ── StreamingUIRenderer — metadata panel ───────────────────\n /** Label of the provider cell. */\n metaProvider?: string\n /** Label of the model cell. */\n metaModel?: string\n /** Label of the execution-time cell. */\n metaExecutionTime?: string\n /** Label of the cost cell. */\n metaCost?: string\n /** Label of the time-to-first-byte cell. */\n metaTtfb?: string\n /** Label of the cache-hit cell. */\n metaCached?: string\n\n // ── 6.20.0 — generic chrome ─────────────────\n /** Label of a generic \"download\" link (artifact card). */\n download?: string\n /** Placeholder shown in place of a value the renderer could not determine. */\n unknown?: string\n\n // ── UIResourceRenderer — table citation chips ─────────────\n /**\n * Visible placeholder kept in a table cell for a citation marker that no\n * `citationMap` resolves (empty map only — see `transformCellCitations`).\n * Template — `{id}` = the marker number.\n *\n * The former literal was French (`[réf. {id}]`).\n */\n citationUnresolved?: string\n\n // ── UIResourceRenderer — error / fallback chrome ──────────\n /**\n * Inline (`errorMode: 'inline-warn'`) validation chip text.\n * Template — `{type}` = the component type.\n */\n invalidComponent?: string\n /**\n * Heading of the tool-error card.\n * Template — `{tool}` = the tool name (`errorUnknownToolName` when absent).\n */\n toolErrorTitle?: string\n /**\n * Error-type line of the tool-error card.\n * Template — `{type}` = the error type.\n */\n errorTypeLabel?: string\n /** Heading above the tool-error suggestion list. */\n errorSuggestions?: string\n /** Message shown in place of a chart whose payload has no `data.datasets`. */\n chartInvalidData?: string\n /** Prefix of the unsupported-component notice (the type follows in a `<code>`). */\n unsupportedComponentType?: string\n\n // ── DataPreviewSection — pagination ───────────────────────\n /** Visible label of the previous-page button (glyph stays decorative). */\n previewPrev?: string\n /** Visible label of the next-page button (glyph stays decorative). */\n previewNext?: string\n /**\n * Page indicator between the two buttons.\n * Template — `{page}` = the 1-based page, `{total}` = the page count.\n */\n previewPageIndicator?: string\n\n // ── FormFieldRenderer ─────────────────────────────────────\n /** Inline notice while an entity reference is being resolved. */\n fieldResolving?: string\n\n // ── FormRenderer / ScratchpadPanel — prefill summary ──────\n /**\n * Prefill summary for a single pre-filled field.\n * Template — `{count}` = always 1, `{total}` = the field count.\n *\n * The former literal was French (`{count} champ pré-rempli sur {total}`).\n */\n formPrefilledOne?: string\n /**\n * Prefill summary for several pre-filled fields.\n * Template — `{count}` = how many, `{total}` = the field count.\n *\n * The former literal was French (`{count} champs pré-remplis sur {total}`).\n */\n formPrefilledMany?: string\n /** Busy label of the submit button while the form is submitting. */\n formSubmitting?: string\n /** Label of the form's reset button. */\n formReset?: string\n\n // ── GenerativeUIErrorBoundary — default fallback ──────────\n /** Heading of the default error-boundary fallback card. */\n errorBoundaryTitle?: string\n /**\n * Metadata line of the fallback card.\n * Template — `{type}` = the component type, `{id}` = its truncated id.\n * Both fall back to `unknown`.\n */\n errorBoundaryMeta?: string\n /** Label of the fallback card's retry button. */\n errorBoundaryRetry?: string\n\n // ── ScratchpadPanel (continued) ───────────────────────────\n /** Label of the `waiting_human` search button. */\n scratchpadSearch?: string\n /** Label of the \"advance to the next step\" button in the steps view. */\n scratchpadNextStep?: string\n /** Label preceding the interrogation plan summary. */\n scratchpadPlan?: string\n /** Label of the \"modify this prompt\" button of a prompt section. */\n scratchpadModify?: string\n /** Label of the \"show details\" toggle of an error section. */\n scratchpadDetails?: string\n /** Unit suffix after an action section's item count. */\n scratchpadItems?: string\n\n // ── VideoRenderer ─────────────────────────────────────────\n /** Fallback text of a `<video>` element the browser cannot play. */\n videoUnsupported?: string\n\n // ── DataPreviewSection (page info) ────────────────────────\n /** Paginated row range. Template — `{start}`, `{end}`, `{total}`. */\n previewShowingRange?: string\n /** Unpaginated row count, singular. Template — `{count}`. */\n previewRowsOne?: string\n /** Unpaginated row count, plural. Template — `{count}`. */\n previewRowsMany?: string\n /**\n * Suffix appended when the payload declares more rows than were sent.\n * Template — `{total}`. Keeps its leading space.\n */\n previewTotalSuffix?: string\n\n // ── ScratchpadPanel status badge ──────────────────────────\n /** Status badge — the run is still loading. */\n statusLoading?: string\n /** Status badge — an action is available to the user. */\n statusActionAvailable?: string\n /** Status badge — the run is waiting for a human answer. */\n statusYourTurn?: string\n /** Status badge — the run is processing. */\n statusProcessing?: string\n /** Status badge — the run finished. (The error badge reuses `scratchpadError`.) */\n statusComplete?: string\n\n // ── AgentCard status ──────────────────────────────────────\n /** Agent badge — idle. */\n agentStatusIdle?: string\n /** Agent badge — running. */\n agentStatusRunning?: string\n /** Agent badge — waiting. */\n agentStatusWaiting?: string\n /** Agent badge — done. */\n agentStatusDone?: string\n /** Agent badge — errored. */\n agentStatusError?: string\n\n // ── AgentHandoff ──────────────────────────────────────────\n /**\n * Fallback summary of a handoff that carries only an item count.\n * Template — `{count}`. `content.summary` still wins.\n */\n handoffItems?: string\n\n // ── DegradedFallback (fallback ladder) ────────────────────\n /** Truncation notice under the degraded table. Template — `{count}`. */\n degradedMoreRows?: string\n /** Caption of the chart's degraded table. */\n chartDegradedCaption?: string\n /** Notice above the chart's degraded table. Template — `{error}`. */\n chartRenderFailed?: string\n /** Caption of the degraded table shown when chart.js is missing. */\n chartQuickchartCaption?: string\n /** Caption of the graph's degraded table. */\n graphDegradedCaption?: string\n /** Notice above the graph's degraded table. Template — `{error}`. */\n graphRenderFailed?: string\n /** Fallback reason when the G6 render throws without a message. */\n graphRenderError?: string\n /** Fallback reason when the Chart.js render throws without a message. */\n chartRenderError?: string\n /** Error shown when the PNG export is unavailable in the active renderer. */\n graphPngUnsupported?: string\n /** Error shown when the PNG export throws without a message. */\n graphPngExportFailed?: string\n /** Error shown when the Leaflet bundle fails to load. */\n mapLibraryUnavailable?: string\n /** Caption of the map's degraded coordinate table. */\n mapDegradedCaption?: string\n /** Notice above the map's degraded table. Template — `{error}`. */\n mapRenderFailed?: string\n /** Fallback reason when the Leaflet render throws without a message. */\n mapRenderError?: string\n\n // ── Degraded / accessible table headers ───────────────────\n /** Column header of the map projection — feature type. */\n degradedColType?: string\n /** Column header of the map projection — latitude. */\n degradedColLat?: string\n /** Column header of the map projection — longitude. */\n degradedColLng?: string\n /** Column header of the map projection — property summary. */\n degradedColInfo?: string\n /** `Type` cell of a marker row in the map projection (6.20.0). */\n degradedMarker?: string\n /** `Type` cell of a GeoJSON feature without a geometry type (6.20.0). */\n degradedFeature?: string\n /** Column header of the graph projection — edge source. */\n degradedColSource?: string\n /** Column header of the graph projection — edge target. */\n degradedColTarget?: string\n /** Column header of the graph projection — node id. */\n degradedColNode?: string\n /** Column header of the graph / chart projections — label. */\n degradedColLabel?: string\n /** Fallback name of a dataset without a label. Template — `{n}`. */\n degradedSeries?: string\n /** Column header of the chart data table — series name. */\n chartTableSeries?: string\n /** Column header of the chart data table — point index. */\n chartTablePoint?: string\n\n // ── AutocompleteDropdown / AutocompleteFormField ──────────\n /** Hint prose between the arrow keys and the Enter key cap. */\n autocompleteHintNavigate?: string\n /** Hint prose between the Enter and Esc key caps. */\n autocompleteHintSelect?: string\n /** Hint prose after the Esc key cap. */\n autocompleteHintDismiss?: string\n /** Ghost-text hint of the completion field. */\n autocompleteTabToAccept?: string\n\n // ── FormFieldRenderer (entity picker) ─────────────────────\n /** Placeholder of a multi-value entity picker that already has values. */\n fieldAddMorePlaceholder?: string\n\n // ── ImageGalleryRenderer ──────────────────────────────────\n /** Accessible name of a gallery thumbnail. Template — `{index}`. */\n galleryViewImage?: string\n /** `alt` of a gallery image without one. Template — `{index}`. */\n galleryImageAlt?: string\n /** Noun substituted into `imageViewFullSize` when the image has no `alt`. */\n imageAltFallback?: string\n\n // ── Chart image fallback (quickchart) ─────────────────────\n /** `alt` / `aria-label` of the chart image when the payload has no title. */\n chartVisualizationAlt?: string\n /** `alt` / `aria-label` of the chart image with a title. Template — `{title}`. */\n chartWithTitleAlt?: string\n /** Error shown when the chart image fails to load. */\n chartLoadFailed?: string\n\n // ── Table pagination (continued) ──────────────────────────\n /** Page-size option that disables pagination. */\n paginationAllRows?: string\n\n // ── Form validation messages ──────────────────────────────\n /** Template — `{field}`. */\n fieldRequired?: string\n /** Template — `{field}`. */\n fieldMustBeChecked?: string\n /** Template — `{min}`. */\n fieldMinLength?: string\n /** Template — `{max}`. */\n fieldMaxLength?: string\n /** Value does not match the field's `pattern`. */\n fieldInvalidPattern?: string\n /** Value is not a valid email address. */\n fieldInvalidEmail?: string\n /** Value is not a number. */\n fieldInvalidNumber?: string\n /** Template — `{min}`. */\n fieldMinValue?: string\n /** Template — `{max}`. */\n fieldMaxValue?: string\n /** Template — `{min}`. */\n fieldMinDate?: string\n /** Template — `{max}`. */\n fieldMaxDate?: string\n /** Value is not one of the field's options. */\n fieldInvalidOption?: string\n /**\n * Value does not match the field's `valueFormat`. Template — `{format}`.\n * `field.valueFormatHint` still wins.\n */\n fieldInvalidFormat?: string\n\n // ── Locale (6.20.0) ───────────────────────────\n /**\n * BCP-47 tag used for number / date formatting and string collation in\n * library chrome and table cells (`toLocaleString`, `localeCompare`).\n * Default `'en-US'`. Former behaviour: a hardcoded `'fr-FR'` / `'fr'` in\n * table sorting, DataPreviewSection cells and map popups, and the\n * runtime's implicit locale elsewhere (non-deterministic across SSR and\n * hydration).\n */\n locale?: string\n\n // ── BriefingDiff ──────────────────────────────────────────\n /** Stats summary — added entries. Template — `{count}`. */\n briefingAdded?: string\n /** Stats summary — removed entries. Template — `{count}`. */\n briefingRemoved?: string\n /** Stats summary — changed entries. Template — `{count}`. */\n briefingChanged?: string\n\n // ── FooterRenderer ────────────────────────────────────────\n /** Number of sources in the footer. Template — `{count}`. */\n footerSources?: string\n\n // ── FormFieldRenderer (6.20.0) ────────────────────────\n /** Warning under a field whose `type` is unknown. Template — `{type}`. */\n fieldUnknownType?: string\n /** Trigger text of a multiselect with selections. Template — `{count}`. */\n fieldSelectedCount?: string\n\n // ── ScratchpadPanel (6.20.0) ──────────────────────────\n /** Error code line of the error state. Template — `{code}`. */\n scratchpadErrorCode?: string\n /** Row count of a data-source section. Template — `{count}`. */\n scratchpadResultCount?: string\n\n // ── UIResourceRenderer table (6.20.0) ─────────────────\n /** Suffix of the table title while rows are virtualized. Template — `{count}`. */\n tableVirtualizedRows?: string\n /** Search result count, singular. Template — `{count}`, `{total}`. */\n tableSearchResultsOne?: string\n /** Search result count, plural. Template — `{count}`, `{total}`. */\n tableSearchResultsMany?: string\n /** Server-side pagination range. Template — `{start}`, `{end}`, `{total}`. */\n tableServerPageRange?: string\n\n // ── UIResourceRenderer tool-error card (6.20.0) ───────\n /**\n * Text put on the clipboard by the error card's Copy button.\n * Template — `{tool}`, `{message}`.\n */\n errorCopyText?: string\n /** Tool name substituted into `errorCopyText` when the error has none. */\n errorUnknownTool?: string\n\n // ── StreamingUIRenderer / useStreamingUI (6.20.0) ─────\n /** Progress message before the stream starts. */\n streamInitializing?: string\n /** Progress message while connecting. */\n streamConnecting?: string\n /** Progress message while a component streams in. Template — `{type}`. */\n streamLoadingComponent?: string\n /** Progress message once the stream completed. */\n streamDashboardLoaded?: string\n /** Progress message after a stream error. Template — `{message}`. */\n streamErrorProgress?: string\n /** Error title when the stream connection fails. */\n streamConnectionFailed?: string\n /** Error message when the server answers with a non-OK status and no message. */\n streamRequestFailed?: string\n /** Error message when the server answers without a body. */\n streamEmptyResponse?: string\n /** Error message when streaming is started during SSR. */\n streamServerSide?: string\n /** Error message when the failure carries no message. */\n streamUnknownError?: string\n\n // ── Degraded and unavailable states shown to end users (6.20.0) ──\n /** StreamingUIRenderer error heading when streaming was started during SSR (the hook keeps the machine code `'ssr'`). */\n streamServerSideTitle?: string\n /** GraphRenderer heading when the `@antv/g6` peer is missing (the install hint below it stays English, policy P3). */\n graphUnavailable?: string\n /** MapRenderer banner when the PMTiles overlay fails to load or render. */\n mapPmtilesUnavailable?: string\n /** MapRenderer sentence appended to the PMTiles banner. */\n mapBaseMapStillShown?: string\n /** Chart error when `renderer: 'native'` is forced and chart.js is missing. */\n chartJsUnavailable?: string\n /** DegradedFallback message when chart.js is missing and the quickchart fallback is not allowed. */\n chartIframeUnavailable?: string\n /** DataPreviewSection fallback when the section content is not `{ columns, rows }`. */\n previewInvalidContent?: string\n /** Tooltip of the default citation chip button. Template — `{label}` (file name and page). */\n citationViewSource?: string\n /** ArtifactRenderer file size below 1 KB. Template — `{size}`. */\n sizeBytes?: string\n /** ArtifactRenderer file size in kilobytes. Template — `{size}`. */\n sizeKilobytes?: string\n /** ArtifactRenderer file size in megabytes. Template — `{size}`. */\n sizeMegabytes?: string\n}\n\n/**\n * English defaults. A published library ships no hardcoded non-English\n * chrome — consumers localize via `<MCPUIStringsProvider>`.\n */\nexport const DEFAULT_MCPUI_STRINGS: Required<MCPUIStrings> = {\n expand: 'Expand',\n expandedView: 'Expanded view',\n copyToClipboard: 'Copy to clipboard',\n closeExpandedView: 'Close expanded view',\n feedbackUseful: 'Useful',\n feedbackNotUseful: 'Not useful',\n feedbackPositiveAck: 'Thanks!',\n feedbackNegativeAck: \"Noted — we'll improve\",\n retry: 'Retry',\n ok: 'OK',\n cancel: 'Cancel',\n confirm: 'Confirm',\n submit: 'Submit',\n dismiss: 'Dismiss',\n yes: 'Yes',\n no: 'No',\n chartView: 'Chart',\n chartDataView: 'Data',\n chartViewSelector: 'Chart or data view',\n chartDataTable: 'Chart data',\n chartDataSummary: 'Exact values are available in the data view.',\n chartNoData: 'No chart data',\n paginationPrevious: 'Previous page',\n paginationNext: 'Next page',\n paginationPageSize: 'Rows per page',\n gridRegion: 'Layout grid',\n autocompleteSuggestions: 'Suggestions',\n autocompleteLoading: 'Loading...',\n autocompleteEmpty: 'No suggestions found',\n carouselTitle: 'Carousel',\n carouselCopy: 'Copy items (JSON)',\n mapTitle: 'Map',\n mapCopy: 'Copy markers as GeoJSON',\n chartDownloadPng: 'Download PNG',\n chartDownloadPngAria: 'Download chart as PNG',\n chartCopy: 'Copy chart data (JSON)',\n chartLoading: 'Loading chart...',\n codeSearchPlaceholder: 'Search\\u2026',\n codeSearchAria: 'Search in code',\n codeDownloadAria: 'Download code as file',\n codeDownload: 'Download code',\n codeToggleWordWrap: 'Toggle word wrap',\n codeCopy: 'Copy code',\n codeTitle: 'Code',\n codeWordWrapEnable: 'Enable word wrap',\n codeWordWrapDisable: 'Disable word wrap',\n exportCsvRows: 'Export CSV ({count} rows)',\n exportJsonRows: 'Export JSON ({count} rows)',\n sortBy: 'Sort by {column}',\n removeItem: 'Remove {name}',\n filterPlaceholder: 'Filter...',\n fieldNotSupported: 'Not supported',\n fieldNoMatches: 'No matches',\n fieldGroupContainer: 'Group container',\n fieldSelectPlaceholder: 'Select...',\n fieldTagsPlaceholder: 'Type and press Enter...',\n scratchpadClose: 'Close',\n scratchpadPreview: 'Preview',\n scratchpadNoResults: 'No results for these filters',\n scratchpadModifyFilters: 'Modify filters',\n scratchpadNoFilters: 'No filters',\n // Former literal was French ('Modifier') — the library ships English\n // defaults, so this one changed on purpose.\n scratchpadEdit: 'Edit',\n scratchpadSend: 'Send',\n scratchpadShowRaw: 'Show raw SSE payload',\n scratchpadHideRaw: 'Hide raw SSE payload',\n scratchpadCommentPlaceholder: 'Add a comment...',\n scratchpadError: 'Error',\n scratchpadSource: 'Source',\n graphExport: 'Export graph',\n graphCopy: 'Copy graph (JSON)',\n graphTitle: 'Graph',\n graphExportMenu: 'Export \\u25BE',\n graphDownloadPng: 'Download PNG',\n graphDownloadPngHint: 'visual snapshot',\n graphDownloadMermaid: 'Download Mermaid',\n graphDownloadMermaidHint: 'markdown / GitHub',\n graphDownloadJson: 'Download JSON',\n graphDownloadJsonHint: 'raw data',\n galleryCopy: 'Copy image URLs',\n galleryTitle: 'Gallery',\n videoCopy: 'Copy video URL',\n videoTitle: 'Video',\n sourceDetected: 'Detected from message',\n sourceInferred: 'Inferred from context',\n sourcePrevious: 'Previously provided',\n lightboxLabel: 'Image lightbox',\n lightboxClose: 'Close lightbox',\n lightboxPrevious: 'Previous image',\n lightboxNext: 'Next image',\n modalClose: 'Close modal',\n copy: 'Copy',\n copyMetric: 'Copy metric',\n copyText: 'Copy text',\n copyErrorDetails: 'Copy error details',\n tableTitle: 'Table',\n tableCopyCsv: 'Copy table (CSV)',\n tableExport: 'Export table',\n tableClearSearch: 'Clear search',\n tableAriaLabel: 'Data table',\n // Former literal was French ('Rechercher dans le tableau...') — the\n // library ships English defaults, so this one changed on purpose.\n tableSearchPlaceholder: 'Search the table...',\n tableCopyTsv: 'Copy TSV',\n tableDownloadCsv: 'Download CSV',\n tableDownloadJson: 'Download JSON',\n perPageSuffix: '/ page',\n imageAlt: 'Image',\n imageViewFullSize: 'View full size: {alt}',\n iframeTitle: 'Embedded content',\n linkLabel: 'Link',\n linkOpensInNewTab: '{label}: {description} (opens in new tab)',\n validationWarning: 'Component validation warning',\n resourceTitle: 'Resource',\n chartError: 'Chart Error',\n validationError: 'Validation Error',\n validationUnknownError: 'Unknown validation error',\n errorUnknown: 'Unknown error',\n errorUnknownToolName: 'Unknown',\n errorToolExecution: 'An error occurred during tool execution',\n verifiedTitle: 'Verified against source data',\n verifiedAria: 'verified',\n unverifiedAria: 'unverified',\n verifiedNotFound: 'Not found in source data',\n verifiedNotFoundClosest: 'Not found in source data. Closest: {closest} ({pct}% off)',\n // Former literal was French ('[non v\\u00E9rifi\\u00E9]') — see above.\n verifiedStripLabel: '[unverified]',\n verifiedConfidence: '{pct}% verified',\n verifiedUnverifiedCount: '({count} unverified)',\n promptLoadingPreview: 'Loading preview...',\n promptConfirmed: 'Confirmed',\n promptCancelled: 'Cancelled',\n promptFormSubmitted: 'Form submitted',\n formSubmissionFailed: 'Submission failed',\n formSubmitCountdown: '{label} in {seconds}s...',\n actionGroupLabel: 'Action group',\n artifactDescription: 'Generated artifact',\n degradedCaption: 'Showing the underlying data \\u2014 the interactive view is unavailable.',\n metaProvider: 'Provider',\n metaModel: 'Model',\n metaExecutionTime: 'Execution Time',\n metaCost: 'Cost',\n metaTtfb: 'TTFB',\n metaCached: 'Cached',\n download: 'Download',\n unknown: 'unknown',\n // Former literal was French ('[r\\u00E9f. {id}]') — see above.\n citationUnresolved: '[ref. {id}]',\n invalidComponent: 'Invalid {type}',\n toolErrorTitle: 'Tool Error: {tool}',\n errorTypeLabel: 'Type: {type}',\n errorSuggestions: 'Suggestions:',\n chartInvalidData: 'Invalid chart data: missing data.datasets',\n unsupportedComponentType: 'Unsupported component type:',\n previewPrev: 'Prev',\n previewNext: 'Next',\n previewPageIndicator: 'Page {page} / {total}',\n fieldResolving: 'Resolving...',\n // Former literals were French ('{count} champ(s) pr\\u00E9-rempli(s) sur {total}').\n formPrefilledOne: '{count} field pre-filled out of {total}',\n formPrefilledMany: '{count} fields pre-filled out of {total}',\n formSubmitting: 'Submitting...',\n formReset: 'Reset',\n errorBoundaryTitle: 'Component Failed to Render',\n errorBoundaryMeta: 'Type: {type} | ID: {id}...',\n errorBoundaryRetry: 'Retry Rendering',\n scratchpadSearch: 'Search',\n scratchpadNextStep: 'Next',\n scratchpadPlan: 'Plan:',\n scratchpadModify: 'Modify',\n scratchpadDetails: 'Details',\n scratchpadItems: 'items',\n videoUnsupported: 'Your browser does not support the video tag.',\n previewShowingRange: 'Showing {start}–{end} of {total}',\n previewRowsOne: '{count} row',\n previewRowsMany: '{count} rows',\n previewTotalSuffix: ' ({total} total)',\n statusLoading: 'Loading...',\n statusActionAvailable: 'Action available',\n statusYourTurn: 'Your turn',\n statusProcessing: 'Processing...',\n statusComplete: 'Complete',\n agentStatusIdle: 'Idle',\n agentStatusRunning: 'Running',\n agentStatusWaiting: 'Waiting',\n agentStatusDone: 'Done',\n agentStatusError: 'Error',\n handoffItems: '{count} items',\n degradedMoreRows: '+{count} more rows not shown.',\n chartDegradedCaption:\n 'Showing the chart data as a table — the interactive chart is unavailable.',\n chartRenderFailed: 'Chart rendering failed: {error}',\n chartQuickchartCaption: 'Showing the chart data as a table.',\n graphDegradedCaption:\n 'Showing the graph data as a table — the interactive view is unavailable.',\n graphRenderFailed: 'Graph rendering failed: {error}',\n graphRenderError: 'Failed to render graph',\n chartRenderError: 'Chart rendering failed',\n graphPngUnsupported: 'PNG export not supported in current renderer mode',\n graphPngExportFailed: 'PNG export failed',\n mapLibraryUnavailable: 'Map library could not be loaded.',\n mapDegradedCaption:\n 'Showing the map data as a coordinate table — the interactive map is unavailable.',\n mapRenderFailed: 'Map rendering failed: {error}',\n mapRenderError: 'Failed to render map',\n degradedColType: 'Type',\n degradedColLat: 'Lat',\n degradedColLng: 'Lng',\n degradedColInfo: 'Info',\n degradedColSource: 'Source',\n degradedColTarget: 'Target',\n degradedColNode: 'Node',\n degradedColLabel: 'Label',\n degradedSeries: 'Series {n}',\n chartTableSeries: 'Series',\n chartTablePoint: 'Point',\n autocompleteHintNavigate: ' to navigate, ',\n autocompleteHintSelect: ' to select, ',\n autocompleteHintDismiss: ' to dismiss',\n autocompleteTabToAccept: 'Tab to accept',\n fieldAddMorePlaceholder: 'Add more...',\n galleryViewImage: 'View image {index}',\n galleryImageAlt: 'Image {index}',\n imageAltFallback: 'image',\n chartVisualizationAlt: 'Chart visualization',\n chartWithTitleAlt: 'Chart: {title}',\n chartLoadFailed: 'Failed to load chart',\n paginationAllRows: 'All',\n fieldRequired: '{field} is required',\n fieldMustBeChecked: '{field} must be checked',\n fieldMinLength: 'Minimum {min} characters required',\n fieldMaxLength: 'Maximum {max} characters allowed',\n fieldInvalidPattern: 'Invalid format',\n fieldInvalidEmail: 'Invalid email address',\n fieldInvalidNumber: 'Must be a valid number',\n fieldMinValue: 'Minimum value is {min}',\n fieldMaxValue: 'Maximum value is {max}',\n fieldMinDate: 'Date must be after {min}',\n fieldMaxDate: 'Date must be before {max}',\n fieldInvalidOption: 'Please select a valid option',\n fieldInvalidFormat: 'Invalid format (expected: {format})',\n\n // ── 6.20.0 ─────────────────────────────────────\n // DEFAULT CHANGE: formatting / collation used 'fr-FR' / 'fr' (or the\n // runtime's implicit locale) — now one explicit, overridable tag.\n locale: 'en-US',\n briefingAdded: '+{count} added',\n briefingRemoved: '{count} removed',\n briefingChanged: '{count} changed',\n footerSources: '{count} sources',\n degradedMarker: 'marker',\n degradedFeature: 'feature',\n fieldUnknownType: 'Unknown field type: {type}',\n fieldSelectedCount: '{count} selected',\n scratchpadErrorCode: 'Code: {code}',\n scratchpadResultCount: '{count} results',\n tableVirtualizedRows: '(virtualized: {count} rows)',\n tableSearchResultsOne: '{count} result on {total}',\n tableSearchResultsMany: '{count} results on {total}',\n tableServerPageRange: 'Showing {start} - {end} of {total}',\n errorCopyText: 'Error in {tool}: {message}',\n errorUnknownTool: 'unknown tool',\n streamInitializing: 'Initializing...',\n streamConnecting: 'Connecting to server...',\n streamLoadingComponent: 'Loading {type} component...',\n streamDashboardLoaded: 'Dashboard loaded',\n streamErrorProgress: 'Error: {message}',\n streamConnectionFailed: 'Stream connection failed',\n streamRequestFailed: 'Stream request failed',\n streamEmptyResponse: 'Response body is null',\n streamServerSide: 'Streaming UI cannot start on server-side',\n streamUnknownError: 'Unknown error',\n streamServerSideTitle: 'Streaming unavailable',\n graphUnavailable: 'Graph rendering unavailable',\n mapPmtilesUnavailable:\n 'PMTiles layer unavailable \\u2014 the optional \"protomaps-leaflet\" peer dependency failed to load or render.',\n mapBaseMapStillShown: 'The base map is still shown.',\n chartJsUnavailable: 'Chart.js is not available. Install chart.js peer dependency.',\n chartIframeUnavailable:\n 'Interactive chart unavailable \\u2014 install the chart.js peer dependency, or set allowQuickchartFallback to use the external quickchart.io renderer.',\n previewInvalidContent: '[DataPreviewSection] Invalid content format',\n citationViewSource: 'View source - {label}',\n sizeBytes: '{size} B',\n sizeKilobytes: '{size} KB',\n sizeMegabytes: '{size} MB',\n}\n\n/**\n * Substitutes `{name}` placeholders in a chrome string template.\n *\n * Lives in `../utils/format-string` — a runtime-free module — so the pure\n * adapters under `src/adapters` can interpolate their own templates without\n * importing `solid-js`. Re-exported here (and from the root barrel) so every\n * existing import path keeps working.\n */\nexport { formatMCPUIString } from '../utils/format-string'\n\nexport const MCPUIStringsContext = createContext<MCPUIStrings>(DEFAULT_MCPUI_STRINGS)\n\n/**\n * Reads the active chrome strings. Returns `DEFAULT_MCPUI_STRINGS` when no\n * `<MCPUIStringsProvider>` is mounted above — every renderer works\n * standalone with English chrome.\n */\nconst resolvedLocales = new Map<string, string>()\n\n/**\n * Returns `locale` in canonical BCP-47 form, or `DEFAULT_MCPUI_STRINGS.locale`\n * (`'en-US'`) when it is missing or not a valid tag. Renderers pass the result\n * straight to `Intl` / `toLocaleString` / `localeCompare`, which throw a\n * `RangeError` on an invalid tag such as `'not_a_locale'`.\n *\n * @since v6.20.0\n */\nexport function resolveMCPUILocale(locale: unknown): string {\n const fallback = DEFAULT_MCPUI_STRINGS.locale\n if (typeof locale !== 'string' || locale.trim() === '') return fallback\n const cached = resolvedLocales.get(locale)\n if (cached) return cached\n let resolved = fallback\n try {\n const [canonical] = Intl.getCanonicalLocales(locale)\n if (canonical) resolved = canonical\n } catch {\n resolved = fallback\n }\n if (resolvedLocales.size < 64) resolvedLocales.set(locale, resolved)\n return resolved\n}\n\nexport function useMCPUIStrings(): Required<MCPUIStrings> {\n const context = useContext(MCPUIStringsContext)\n // The last source wins: `locale` is always a valid tag, whatever the provider passed.\n return mergeProps(DEFAULT_MCPUI_STRINGS, context, {\n get locale() {\n return resolveMCPUILocale(context?.locale)\n },\n })\n}\n\nexport interface MCPUIStringsProviderProps {\n /**\n * Partial override of the chrome strings. Any key left unset falls back\n * to the English `DEFAULT_MCPUI_STRINGS` — so a consumer can localize\n * just the strings they care about.\n */\n strings?: Partial<MCPUIStrings>\n children: JSX.Element\n}\n\n/**\n * Provides localized chrome strings to every MCP-UI renderer below it.\n * Merges the partial `strings` override over the English defaults.\n */\nexport function MCPUIStringsProvider(props: MCPUIStringsProviderProps): JSX.Element {\n // The function source keeps replacement `strings` objects reactive while\n // mergeProps fills any omitted key without taking a one-time snapshot.\n const value = mergeProps(DEFAULT_MCPUI_STRINGS, () => props.strings)\n return (\n <MCPUIStringsContext.Provider value={value}>\n {props.children}\n </MCPUIStringsContext.Provider>\n )\n}\n"],"names":["DEFAULT_MCPUI_STRINGS","expand","expandedView","copyToClipboard","closeExpandedView","feedbackUseful","feedbackNotUseful","feedbackPositiveAck","feedbackNegativeAck","retry","ok","cancel","confirm","submit","dismiss","yes","no","chartView","chartDataView","chartViewSelector","chartDataTable","chartDataSummary","chartNoData","paginationPrevious","paginationNext","paginationPageSize","gridRegion","autocompleteSuggestions","autocompleteLoading","autocompleteEmpty","carouselTitle","carouselCopy","mapTitle","mapCopy","chartDownloadPng","chartDownloadPngAria","chartCopy","chartLoading","codeSearchPlaceholder","codeSearchAria","codeDownloadAria","codeDownload","codeToggleWordWrap","codeCopy","codeTitle","codeWordWrapEnable","codeWordWrapDisable","exportCsvRows","exportJsonRows","sortBy","removeItem","filterPlaceholder","fieldNotSupported","fieldNoMatches","fieldGroupContainer","fieldSelectPlaceholder","fieldTagsPlaceholder","scratchpadClose","scratchpadPreview","scratchpadNoResults","scratchpadModifyFilters","scratchpadNoFilters","scratchpadEdit","scratchpadSend","scratchpadShowRaw","scratchpadHideRaw","scratchpadCommentPlaceholder","scratchpadError","scratchpadSource","graphExport","graphCopy","graphTitle","graphExportMenu","graphDownloadPng","graphDownloadPngHint","graphDownloadMermaid","graphDownloadMermaidHint","graphDownloadJson","graphDownloadJsonHint","galleryCopy","galleryTitle","videoCopy","videoTitle","sourceDetected","sourceInferred","sourcePrevious","lightboxLabel","lightboxClose","lightboxPrevious","lightboxNext","modalClose","copy","copyMetric","copyText","copyErrorDetails","tableTitle","tableCopyCsv","tableExport","tableClearSearch","tableAriaLabel","tableSearchPlaceholder","tableCopyTsv","tableDownloadCsv","tableDownloadJson","perPageSuffix","imageAlt","imageViewFullSize","iframeTitle","linkLabel","linkOpensInNewTab","validationWarning","resourceTitle","chartError","validationError","validationUnknownError","errorUnknown","errorUnknownToolName","errorToolExecution","verifiedTitle","verifiedAria","unverifiedAria","verifiedNotFound","verifiedNotFoundClosest","verifiedStripLabel","verifiedConfidence","verifiedUnverifiedCount","promptLoadingPreview","promptConfirmed","promptCancelled","promptFormSubmitted","formSubmissionFailed","formSubmitCountdown","actionGroupLabel","artifactDescription","degradedCaption","metaProvider","metaModel","metaExecutionTime","metaCost","metaTtfb","metaCached","download","unknown","citationUnresolved","invalidComponent","toolErrorTitle","errorTypeLabel","errorSuggestions","chartInvalidData","unsupportedComponentType","previewPrev","previewNext","previewPageIndicator","fieldResolving","formPrefilledOne","formPrefilledMany","formSubmitting","formReset","errorBoundaryTitle","errorBoundaryMeta","errorBoundaryRetry","scratchpadSearch","scratchpadNextStep","scratchpadPlan","scratchpadModify","scratchpadDetails","scratchpadItems","videoUnsupported","previewShowingRange","previewRowsOne","previewRowsMany","previewTotalSuffix","statusLoading","statusActionAvailable","statusYourTurn","statusProcessing","statusComplete","agentStatusIdle","agentStatusRunning","agentStatusWaiting","agentStatusDone","agentStatusError","handoffItems","degradedMoreRows","chartDegradedCaption","chartRenderFailed","chartQuickchartCaption","graphDegradedCaption","graphRenderFailed","graphRenderError","chartRenderError","graphPngUnsupported","graphPngExportFailed","mapLibraryUnavailable","mapDegradedCaption","mapRenderFailed","mapRenderError","degradedColType","degradedColLat","degradedColLng","degradedColInfo","degradedColSource","degradedColTarget","degradedColNode","degradedColLabel","degradedSeries","chartTableSeries","chartTablePoint","autocompleteHintNavigate","autocompleteHintSelect","autocompleteHintDismiss","autocompleteTabToAccept","fieldAddMorePlaceholder","galleryViewImage","galleryImageAlt","imageAltFallback","chartVisualizationAlt","chartWithTitleAlt","chartLoadFailed","paginationAllRows","fieldRequired","fieldMustBeChecked","fieldMinLength","fieldMaxLength","fieldInvalidPattern","fieldInvalidEmail","fieldInvalidNumber","fieldMinValue","fieldMaxValue","fieldMinDate","fieldMaxDate","fieldInvalidOption","fieldInvalidFormat","locale","briefingAdded","briefingRemoved","briefingChanged","footerSources","degradedMarker","degradedFeature","fieldUnknownType","fieldSelectedCount","scratchpadErrorCode","scratchpadResultCount","tableVirtualizedRows","tableSearchResultsOne","tableSearchResultsMany","tableServerPageRange","errorCopyText","errorUnknownTool","streamInitializing","streamConnecting","streamLoadingComponent","streamDashboardLoaded","streamErrorProgress","streamConnectionFailed","streamRequestFailed","streamEmptyResponse","streamServerSide","streamUnknownError","streamServerSideTitle","graphUnavailable","mapPmtilesUnavailable","mapBaseMapStillShown","chartJsUnavailable","chartIframeUnavailable","previewInvalidContent","citationViewSource","sizeBytes","sizeKilobytes","sizeMegabytes","MCPUIStringsContext","createContext","resolvedLocales","Map","resolveMCPUILocale","fallback","trim","cached","get","resolved","canonical","Intl","getCanonicalLocales","size","set","useMCPUIStrings","context","useContext","mergeProps","MCPUIStringsProvider","props","value","strings","_$createComponent","Provider","children"],"mappings":"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"}
|