@seed-ship/mcp-ui-solid 6.23.0 → 6.25.1
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 +167 -0
- package/README.md +154 -2
- package/dist/components/ActionGroupRenderer.cjs +6 -6
- package/dist/components/ActionGroupRenderer.cjs.map +1 -1
- package/dist/components/ActionGroupRenderer.js +6 -6
- package/dist/components/ActionGroupRenderer.js.map +1 -1
- package/dist/components/AutocompleteDropdown.cjs +6 -6
- package/dist/components/AutocompleteDropdown.cjs.map +1 -1
- package/dist/components/AutocompleteDropdown.js +6 -6
- package/dist/components/AutocompleteDropdown.js.map +1 -1
- package/dist/components/AutocompleteFormField.cjs +6 -5
- package/dist/components/AutocompleteFormField.cjs.map +1 -1
- package/dist/components/AutocompleteFormField.d.ts.map +1 -1
- package/dist/components/AutocompleteFormField.js +6 -5
- package/dist/components/AutocompleteFormField.js.map +1 -1
- package/dist/components/ChartJSRenderer.cjs +406 -70
- package/dist/components/ChartJSRenderer.cjs.map +1 -1
- package/dist/components/ChartJSRenderer.d.ts.map +1 -1
- package/dist/components/ChartJSRenderer.js +407 -71
- package/dist/components/ChartJSRenderer.js.map +1 -1
- package/dist/components/ChatPrompt.cjs +5 -5
- package/dist/components/ChatPrompt.cjs.map +1 -1
- package/dist/components/ChatPrompt.js +5 -5
- package/dist/components/ChatPrompt.js.map +1 -1
- package/dist/components/ComponentToolbar.cjs +5 -5
- package/dist/components/ComponentToolbar.cjs.map +1 -1
- package/dist/components/ComponentToolbar.js +5 -5
- package/dist/components/ComponentToolbar.js.map +1 -1
- package/dist/components/DegradedFallback.cjs +35 -3
- package/dist/components/DegradedFallback.cjs.map +1 -1
- package/dist/components/DegradedFallback.d.ts +7 -0
- package/dist/components/DegradedFallback.d.ts.map +1 -1
- package/dist/components/DegradedFallback.js +35 -3
- package/dist/components/DegradedFallback.js.map +1 -1
- package/dist/components/ExpandableWrapper.cjs +10 -7
- package/dist/components/ExpandableWrapper.cjs.map +1 -1
- package/dist/components/ExpandableWrapper.d.ts.map +1 -1
- package/dist/components/ExpandableWrapper.js +10 -7
- package/dist/components/ExpandableWrapper.js.map +1 -1
- package/dist/components/FormFieldRenderer.cjs +13 -12
- package/dist/components/FormFieldRenderer.cjs.map +1 -1
- package/dist/components/FormFieldRenderer.d.ts.map +1 -1
- package/dist/components/FormFieldRenderer.js +13 -12
- package/dist/components/FormFieldRenderer.js.map +1 -1
- package/dist/components/FormRenderer.cjs +1 -1
- package/dist/components/FormRenderer.cjs.map +1 -1
- package/dist/components/FormRenderer.js +1 -1
- package/dist/components/FormRenderer.js.map +1 -1
- package/dist/components/GenerativeUIErrorBoundary.cjs +1 -1
- package/dist/components/GenerativeUIErrorBoundary.cjs.map +1 -1
- package/dist/components/GenerativeUIErrorBoundary.js +1 -1
- package/dist/components/GenerativeUIErrorBoundary.js.map +1 -1
- package/dist/components/GhostText.cjs +2 -2
- package/dist/components/GhostText.cjs.map +1 -1
- package/dist/components/GhostText.js +2 -2
- package/dist/components/GhostText.js.map +1 -1
- package/dist/components/GraphRenderer.cjs +100 -29
- package/dist/components/GraphRenderer.cjs.map +1 -1
- package/dist/components/GraphRenderer.d.ts +1 -1
- package/dist/components/GraphRenderer.d.ts.map +1 -1
- package/dist/components/GraphRenderer.js +100 -29
- package/dist/components/GraphRenderer.js.map +1 -1
- package/dist/components/MissingValue.cjs +43 -0
- package/dist/components/MissingValue.cjs.map +1 -0
- package/dist/components/MissingValue.d.ts +27 -0
- package/dist/components/MissingValue.d.ts.map +1 -0
- package/dist/components/MissingValue.js +43 -0
- package/dist/components/MissingValue.js.map +1 -0
- package/dist/components/ModalRenderer.cjs +39 -31
- package/dist/components/ModalRenderer.cjs.map +1 -1
- package/dist/components/ModalRenderer.d.ts.map +1 -1
- package/dist/components/ModalRenderer.js +40 -32
- package/dist/components/ModalRenderer.js.map +1 -1
- package/dist/components/PortalDropdownMenu.cjs +6 -3
- package/dist/components/PortalDropdownMenu.cjs.map +1 -1
- package/dist/components/PortalDropdownMenu.d.ts.map +1 -1
- package/dist/components/PortalDropdownMenu.js +7 -4
- package/dist/components/PortalDropdownMenu.js.map +1 -1
- package/dist/components/ScratchpadPanel.cjs +38 -44
- package/dist/components/ScratchpadPanel.cjs.map +1 -1
- package/dist/components/ScratchpadPanel.d.ts.map +1 -1
- package/dist/components/ScratchpadPanel.js +38 -44
- package/dist/components/ScratchpadPanel.js.map +1 -1
- package/dist/components/UIResourceRenderer.cjs +255 -217
- package/dist/components/UIResourceRenderer.cjs.map +1 -1
- package/dist/components/UIResourceRenderer.d.ts.map +1 -1
- package/dist/components/UIResourceRenderer.js +255 -217
- package/dist/components/UIResourceRenderer.js.map +1 -1
- package/dist/components/chart-data-table.cjs +30 -5
- package/dist/components/chart-data-table.cjs.map +1 -1
- package/dist/components/chart-data-table.d.ts +18 -1
- package/dist/components/chart-data-table.d.ts.map +1 -1
- package/dist/components/chart-data-table.js +30 -5
- package/dist/components/chart-data-table.js.map +1 -1
- package/dist/components/chart-missing-plugin.cjs +194 -0
- package/dist/components/chart-missing-plugin.cjs.map +1 -0
- package/dist/components/chart-missing-plugin.d.ts +129 -0
- package/dist/components/chart-missing-plugin.d.ts.map +1 -0
- package/dist/components/chart-missing-plugin.js +194 -0
- package/dist/components/chart-missing-plugin.js.map +1 -0
- package/dist/context/MCPUIStringsContext.cjs +12 -1
- package/dist/context/MCPUIStringsContext.cjs.map +1 -1
- package/dist/context/MCPUIStringsContext.d.ts +62 -0
- package/dist/context/MCPUIStringsContext.d.ts.map +1 -1
- package/dist/context/MCPUIStringsContext.js +12 -1
- package/dist/context/MCPUIStringsContext.js.map +1 -1
- package/dist/services/component-registry.cjs +9 -2
- package/dist/services/component-registry.cjs.map +1 -1
- package/dist/services/component-registry.d.ts.map +1 -1
- package/dist/services/component-registry.js +9 -2
- package/dist/services/component-registry.js.map +1 -1
- package/dist/services/validation.cjs +31 -8
- package/dist/services/validation.cjs.map +1 -1
- package/dist/services/validation.d.ts.map +1 -1
- package/dist/services/validation.js +31 -8
- package/dist/services/validation.js.map +1 -1
- package/dist/types/index.d.ts +14 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/degraded-projections.cjs +19 -3
- package/dist/utils/degraded-projections.cjs.map +1 -1
- package/dist/utils/degraded-projections.d.ts +22 -2
- package/dist/utils/degraded-projections.d.ts.map +1 -1
- package/dist/utils/degraded-projections.js +19 -3
- package/dist/utils/degraded-projections.js.map +1 -1
- package/dist/utils/math-markdown.cjs +1 -1
- package/dist/utils/math-markdown.cjs.map +1 -1
- package/dist/utils/math-markdown.js +1 -1
- package/dist/utils/math-markdown.js.map +1 -1
- package/dist/utils/missing-value.cjs +60 -0
- package/dist/utils/missing-value.cjs.map +1 -0
- package/dist/utils/missing-value.d.ts +79 -0
- package/dist/utils/missing-value.d.ts.map +1 -0
- package/dist/utils/missing-value.js +60 -0
- package/dist/utils/missing-value.js.map +1 -0
- package/dist/utils/theme.cjs +91 -0
- package/dist/utils/theme.cjs.map +1 -0
- package/dist/utils/theme.d.ts +11 -0
- package/dist/utils/theme.d.ts.map +1 -0
- package/dist/utils/theme.js +91 -0
- package/dist/utils/theme.js.map +1 -0
- package/docs/SECURITY-DEPENDENCIES.md +81 -0
- package/docs/THEMING.md +205 -0
- package/package.json +7 -5
- package/src/components/ActionGroupRenderer.tsx +6 -6
- package/src/components/AutocompleteDropdown.tsx +17 -17
- package/src/components/AutocompleteFormField.tsx +10 -9
- package/src/components/ChartJSRenderer.tsx +609 -212
- package/src/components/ChatPrompt.tsx +16 -16
- package/src/components/ComponentToolbar.tsx +5 -5
- package/src/components/DegradedFallback.tsx +33 -11
- package/src/components/ExpandableWrapper.tsx +15 -11
- package/src/components/FormFieldRenderer.tsx +52 -51
- package/src/components/FormRenderer.tsx +12 -12
- package/src/components/GenerativeUIErrorBoundary.tsx +6 -6
- package/src/components/GhostText.tsx +7 -7
- package/src/components/GraphRenderer.tsx +83 -67
- package/src/components/MissingValue.tsx +61 -0
- package/src/components/ModalRenderer.tsx +11 -5
- package/src/components/PortalDropdownMenu.tsx +6 -2
- package/src/components/ScratchpadPanel.tsx +144 -141
- package/src/components/UIResourceRenderer.tsx +143 -110
- package/src/components/chart-data-table.ts +50 -6
- package/src/components/chart-missing-plugin.ts +336 -0
- package/src/context/MCPUIStringsContext.tsx +76 -0
- package/src/services/component-registry.ts +10 -2
- package/src/services/validation.ts +44 -9
- package/src/styles/autocomplete.css +53 -53
- package/src/types/index.ts +13 -1
- package/src/utils/degraded-projections.ts +44 -4
- package/src/utils/math-markdown.ts +1 -1
- package/src/utils/missing-value.ts +127 -0
- package/src/utils/theme.ts +101 -0
|
@@ -37,6 +37,8 @@ const duplicateMountRegistry = require("../utils/duplicate-mount-registry.cjs");
|
|
|
37
37
|
const MCPUITelemetryContext = require("../context/MCPUITelemetryContext.cjs");
|
|
38
38
|
const MCPUIStringsContext = require("../context/MCPUIStringsContext.cjs");
|
|
39
39
|
const MCPUIConfigContext = require("../context/MCPUIConfigContext.cjs");
|
|
40
|
+
const missingValue = require("../utils/missing-value.cjs");
|
|
41
|
+
const MissingValue = require("./MissingValue.cjs");
|
|
40
42
|
const iframeCoep = require("../utils/iframe-coep.cjs");
|
|
41
43
|
const IframeFallbackLink = require("./IframeFallbackLink.cjs");
|
|
42
44
|
const GridRenderer = require("./GridRenderer.cjs");
|
|
@@ -63,7 +65,7 @@ const marked = require("marked");
|
|
|
63
65
|
const MCPUIMathContext = require("../context/MCPUIMathContext.cjs");
|
|
64
66
|
const mathMarkdown = require("../utils/math-markdown.cjs");
|
|
65
67
|
const formatString = require("../utils/format-string.cjs");
|
|
66
|
-
var _tmpl$ = /* @__PURE__ */ web.template(`<svg class="w-3 h-3 text-gray-500 dark:text-gray-400"fill=none viewBox="0 0 24 24"stroke=currentColor><path stroke-linecap=round stroke-linejoin=round stroke-width=2 d="M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z">`), _tmpl$2 = /* @__PURE__ */ web.template(`<button data-mcp-ui-action=copy type=button>`), _tmpl$3 = /* @__PURE__ */ web.template(`<svg class="w-3 h-3 text-green-500"fill=none viewBox="0 0 24 24"stroke=currentColor><path stroke-linecap=round stroke-linejoin=round stroke-width=2 d="M5 13l4 4L19 7">`), _tmpl$4 = /* @__PURE__ */ web.template(`<div class="p-4 bg-white dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-gray-700"><p class="text-red-500 dark:text-red-400 text-sm">`), _tmpl$5 = /* @__PURE__ */ web.template(`<div class=p-3>`), _tmpl$6 = /* @__PURE__ */ web.template(`<div class="absolute inset-0 flex items-center justify-center"><div class="animate-spin rounded-full h-8 w-8 border-b-2 border-blue-600">`), _tmpl$7 = /* @__PURE__ */ web.template(`<div class="absolute inset-0 flex items-center justify-center p-4"><div class=text-center><p class="text-red-600 dark:text-red-400 text-sm font-medium"></p><p class="text-gray-600 dark:text-gray-400 text-xs mt-1">`), _tmpl$8 = /* @__PURE__ */ web.template(`<h3 class="text-sm font-semibold text-gray-900 dark:text-white mb-3">`), _tmpl$9 = /* @__PURE__ */ web.template(`<div class="w-full h-full p-4"><!$><!/><div class="w-full h-full"role=img><img class="w-full h-auto max-h-[300px] object-contain">`), _tmpl$0 = /* @__PURE__ */ web.template(`<div class="relative w-full h-full min-h-[300px] bg-white dark:bg-gray-800 rounded-lg shadow-sm border border-gray-200 dark:border-gray-700 overflow-hidden"><!$><!/><!$><!/><!$><!/><!$><!/>`), _tmpl$1 = /* @__PURE__ */ web.template(`<tbody class="bg-white dark:bg-gray-800 divide-y divide-gray-200 dark:divide-gray-700">`), _tmpl$10 = /* @__PURE__ */ web.template(`<tr>`), _tmpl$11 = /* @__PURE__ */ web.template(`<td class="px-6 py-4 text-sm text-gray-700 dark:text-gray-200 whitespace-normal break-words leading-relaxed first:pl-6 last:pr-6">`), _tmpl$12 = /* @__PURE__ */ web.template(`<tbody class="bg-white dark:bg-gray-800 relative">`), _tmpl$13 = /* @__PURE__ */ web.template(`<button class="w-full text-left px-3 py-1.5 hover:bg-gray-100 dark:hover:bg-gray-700 text-gray-700 dark:text-gray-300">`), _tmpl$14 = /* @__PURE__ */ web.template(`<div class="absolute right-10 top-2 z-10"><button class="opacity-60 hover:opacity-100 px-2 py-1 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-600 rounded-full hover:bg-gray-100 dark:hover:bg-gray-700 transition-all shadow-sm"aria-haspopup=menu><svg class="w-3 h-3 text-gray-500 dark:text-gray-400"fill=none viewBox="0 0 24 24"stroke=currentColor><path stroke-linecap=round stroke-linejoin=round stroke-width=2 d="M12 10v6m0 0l-3-3m3 3l3-3m2 8H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"></path></svg></button><!$><!/>`), _tmpl$15 = /* @__PURE__ */ web.template(`<span class="ml-2 text-xs font-normal text-gray-400">`), _tmpl$16 = /* @__PURE__ */ web.template(`<h3 class="text-sm font-semibold text-gray-900 dark:text-white mb-3 flex-shrink-0"><!$><!/><!$><!/>`), _tmpl$17 = /* @__PURE__ */ web.template(`<button type=button class="absolute right-2 top-1/2 -translate-y-1/2 text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 text-sm">×`), _tmpl$18 = /* @__PURE__ */ web.template(`<div class="relative mb-3"><span class="absolute left-3 top-1/2 -translate-y-1/2 text-gray-400 pointer-events-none text-sm">🔍</span><input type=text class="w-full max-w-xs min-w-[200px] pl-8 pr-8 py-1.5 text-sm border border-gray-200 dark:border-gray-600 rounded-md bg-white dark:bg-gray-700 text-gray-900 dark:text-white placeholder-gray-400 focus:border-blue-400 focus:ring-1 focus:ring-blue-400 outline-none"><!$><!/>`), _tmpl$19 = /* @__PURE__ */ web.template(`<p class="text-xs text-gray-500 dark:text-gray-400 mb-2">`), _tmpl$20 = /* @__PURE__ */ web.template(`<div class="mt-3 flex items-center justify-between text-xs text-gray-500 dark:text-gray-400"><span>`), _tmpl$21 = /* @__PURE__ */ web.template(`<select class="ml-2 px-1 py-0.5 text-xs border border-gray-200 dark:border-gray-600 rounded bg-white dark:bg-gray-700 text-gray-700 dark:text-gray-300"data-mcp-ui-action=page-size>`), _tmpl$22 = /* @__PURE__ */ web.template(`<span class=text-gray-400>`), _tmpl$23 = /* @__PURE__ */ web.template(`<div class="mt-3 flex items-center justify-between text-xs text-gray-500 dark:text-gray-400"><span><!$><!/>–<!$><!/> / <!$><!/></span><div class="flex items-center gap-2"><button type=button class="px-2 py-1 rounded hover:bg-gray-100 dark:hover:bg-gray-700 disabled:opacity-40 disabled:cursor-not-allowed transition-colors"data-mcp-ui-action=page-prev><span aria-hidden=true>◀</span></button><span aria-live=polite><!$><!/> / <!$><!/></span><button type=button class="px-2 py-1 rounded hover:bg-gray-100 dark:hover:bg-gray-700 disabled:opacity-40 disabled:cursor-not-allowed transition-colors"data-mcp-ui-action=page-next><span aria-hidden=true>▶</span></button><!$><!/>`), _tmpl$24 = /* @__PURE__ */ web.template(`<div><!$><!/><div><!$><!/><!$><!/><div role=region tabindex=0><table class="min-w-full divide-y divide-gray-200 dark:divide-gray-700 border-separate border-spacing-0"><thead class="bg-gray-100 dark:bg-gray-900 sticky top-0 z-10"><tr></tr></thead><!$><!/></table></div><!$><!/><!$><!/>`), _tmpl$25 = /* @__PURE__ */ web.template(`<th scope=col class="px-6 py-3 text-left text-xs font-semibold text-gray-500 dark:text-gray-400 uppercase tracking-wider border-b border-gray-200 dark:border-gray-700 first:pl-6 last:pr-6 bg-gray-100 dark:bg-gray-900 cursor-pointer select-none hover:bg-gray-200 dark:hover:bg-gray-800 transition-colors"><span class="inline-flex items-center gap-1"><!$><!/><span class="text-[10px] leading-none">`), _tmpl$26 = /* @__PURE__ */ web.template(`<option>`), _tmpl$27 = /* @__PURE__ */ web.template(`<span class="ml-2 text-sm font-medium text-gray-500 dark:text-gray-400">`), _tmpl$28 = /* @__PURE__ */ web.template(`<div class="mt-3 flex items-center"><span><!$><!/> <!$><!/>%`), _tmpl$29 = /* @__PURE__ */ web.template(`<p class="mt-2 text-xs text-gray-500 dark:text-gray-400">`), _tmpl$30 = /* @__PURE__ */ web.template(`<div class="relative w-full h-full bg-white dark:bg-gray-800 rounded-lg shadow-sm border border-gray-200 dark:border-gray-700 p-4 group"><!$><!/><div class="flex flex-col h-full justify-between"><div><p class="text-xs font-medium text-gray-500 dark:text-gray-400 uppercase tracking-wide"></p><div class="mt-2 flex items-baseline"><p class="text-2xl font-semibold text-gray-900 dark:text-white"></p><!$><!/></div></div><!$><!/><!$><!/>`), _tmpl$31 = /* @__PURE__ */ web.template(`<div class="relative w-full h-full bg-white dark:bg-gray-800 rounded-lg shadow-sm border border-gray-200 dark:border-gray-700 p-4 group"><!$><!/><!$><!/>`), _tmpl$32 = /* @__PURE__ */ web.template(`<img class="max-w-full max-h-[400px] object-contain rounded shadow-sm hover:opacity-90 transition-opacity"loading=lazy>`, true, false, false), _tmpl$33 = /* @__PURE__ */ web.template(`<div class="w-full h-full bg-white dark:bg-gray-800 rounded-lg shadow-sm border border-gray-200 dark:border-gray-700 overflow-hidden flex flex-col"><div class="flex-1 flex items-center justify-center p-4 bg-gray-50 dark:bg-gray-900 min-h-[200px]"></div><div class="p-3 border-t border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-800"><p class="text-sm text-gray-600 dark:text-gray-400 text-center italic">`), _tmpl$34 = /* @__PURE__ */ web.template(`<a target=_blank rel="noopener noreferrer"class=cursor-zoom-in>`), _tmpl$35 = /* @__PURE__ */ web.template(`<div class="px-4 py-2 border-b border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-900"><h3 class="text-sm font-semibold text-gray-900 dark:text-white">`), _tmpl$36 = /* @__PURE__ */ web.template(`<div class="w-full h-full bg-white dark:bg-gray-800 rounded-lg shadow-sm border border-gray-200 dark:border-gray-700 overflow-hidden flex flex-col"><!$><!/><iframe class="w-full border-0 flex-1"loading=lazy></iframe><!$><!/>`, true, false, false), _tmpl$37 = /* @__PURE__ */ web.template(`<figcaption class="p-3 border-t border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-800"><p class="text-sm text-gray-600 dark:text-gray-400 text-center">`), _tmpl$38 = /* @__PURE__ */ web.template(`<figure><div class="flex-1 flex items-center justify-center p-4 bg-gray-50 dark:bg-gray-900 min-h-[200px]"><a target=_blank rel="noopener noreferrer"class="cursor-zoom-in focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 rounded"><img class="max-w-full max-h-[500px] object-contain rounded shadow-sm hover:opacity-95 transition-opacity"loading=lazy></a></div><!$><!/>`, true, false, false), _tmpl$39 = /* @__PURE__ */ web.template(`<p class="text-xs text-gray-500 dark:text-gray-400 truncate">`), _tmpl$40 = /* @__PURE__ */ web.template(`<a target=_blank rel="noopener noreferrer"><div class="p-2 bg-blue-50 dark:bg-blue-900/30 rounded-full text-blue-600 dark:text-blue-400 group-hover:bg-blue-100 dark:group-hover:bg-blue-900/50 shrink-0 transition-colors"aria-hidden=true><svg xmlns=http://www.w3.org/2000/svg class="w-5 h-5"viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 stroke-linecap=round stroke-linejoin=round><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></div><div class="flex-1 min-w-0"><h4 class="text-sm font-medium text-gray-900 dark:text-white truncate group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors"></h4><!$><!/></div><svg xmlns=http://www.w3.org/2000/svg class="w-4 h-4 text-gray-400 group-hover:text-gray-600 dark:group-hover:text-gray-300 shrink-0 transition-colors"viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 stroke-linecap=round stroke-linejoin=round aria-hidden=true><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15 3 21 3 21 9"></polyline><line x1=10 y1=14 x2=21 y2=3>`), _tmpl$41 = /* @__PURE__ */ web.template(`<div class="inline-flex items-center gap-1.5 px-2 py-1 rounded-md bg-yellow-50 dark:bg-yellow-900/20 border border-yellow-200 dark:border-yellow-800 text-xs text-yellow-800 dark:text-yellow-200"role=alert><svg xmlns=http://www.w3.org/2000/svg class="w-3.5 h-3.5"viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 stroke-linecap=round stroke-linejoin=round aria-hidden=true><path d="M10.29 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1=12 y1=9 x2=12 y2=13></line><line x1=12 y1=17 x2=12.01 y2=17></line></svg><span>`), _tmpl$42 = /* @__PURE__ */ web.template(`<div class="w-full h-full bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-lg p-4"><p class="text-sm font-medium text-red-900 dark:text-red-100"></p><p class="text-xs text-red-700 dark:text-red-300 mt-1">`), _tmpl$43 = /* @__PURE__ */ web.template(`<div role=alert class="w-full rounded-lg border border-amber-300 bg-amber-50 px-3 py-2 text-sm text-amber-800 dark:border-amber-700/50 dark:bg-amber-900/20 dark:text-amber-200"><!$><!/> <code class=font-mono>`), _tmpl$44 = /* @__PURE__ */ web.template(`<span aria-hidden=true>`), _tmpl$45 = /* @__PURE__ */ web.template(`<a rel="noopener noreferrer"><!$><!/><!$><!/>`), _tmpl$46 = /* @__PURE__ */ web.template(`<span class="animate-spin h-4 w-4 border-2 border-current border-t-transparent rounded-full"aria-hidden=true>`), _tmpl$47 = /* @__PURE__ */ web.template(`<button type=button><!$><!/><!$><!/><!$><!/>`), _tmpl$48 = /* @__PURE__ */ web.template(`<p class="text-xs text-red-600 dark:text-red-400 mt-1">`), _tmpl$49 = /* @__PURE__ */ web.template(`<div class=mt-3><p class="text-xs font-medium text-red-700 dark:text-red-300"></p><ul class="mt-1 text-xs text-red-600 dark:text-red-400 list-disc list-inside">`), _tmpl$50 = /* @__PURE__ */ web.template(`<p class="text-xs text-red-500 dark:text-red-500 mt-2">`), _tmpl$51 = /* @__PURE__ */ web.template(`<div class="relative w-full bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-lg p-4 group"><!$><!/><div class="flex items-start gap-3"><div class="p-2 bg-red-100 dark:bg-red-900/40 rounded-full shrink-0"><svg class="w-5 h-5 text-red-600 dark:text-red-400"fill=none viewBox="0 0 24 24"stroke=currentColor><path stroke-linecap=round stroke-linejoin=round stroke-width=2 d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"></path></svg></div><div class="flex-1 min-w-0"><h4 class="text-sm font-semibold text-red-800 dark:text-red-200"></h4><p class="text-sm text-red-700 dark:text-red-300 mt-1"></p><!$><!/><!$><!/><!$><!/>`), _tmpl$52 = /* @__PURE__ */ web.template(`<li>`), _tmpl$53 = /* @__PURE__ */ web.template(`<div class="px-4 py-2 border-b border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-900"><h3 class="text-sm font-semibold text-gray-900 dark:text-white capitalize">`), _tmpl$54 = /* @__PURE__ */ web.template(`<div class="w-full bg-white dark:bg-gray-800 rounded-lg shadow-sm border border-gray-200 dark:border-gray-700 overflow-hidden"><!$><!/><!$><!/>`), _tmpl$55 = /* @__PURE__ */ web.template(`<div><div class="grid gap-4"data-mcp-ui-grid></div><!$><!/>`), _tmpl$56 = /* @__PURE__ */ web.template(`<div class=min-w-0>`);
|
|
68
|
+
var _tmpl$ = /* @__PURE__ */ web.template(`<svg class="w-3 h-3 text-[color:var(--mcp-ui-fg-muted,var(--color-gray-500,#6b7280))] dark:text-[color:var(--mcp-ui-fg-subtle,var(--color-gray-400,#9ca3af))]"fill=none viewBox="0 0 24 24"stroke=currentColor><path stroke-linecap=round stroke-linejoin=round stroke-width=2 d="M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z">`), _tmpl$2 = /* @__PURE__ */ web.template(`<button data-mcp-ui-action=copy type=button>`), _tmpl$3 = /* @__PURE__ */ web.template(`<svg class="w-3 h-3 text-[color:var(--mcp-ui-success,var(--color-green-500))]"fill=none viewBox="0 0 24 24"stroke=currentColor><path stroke-linecap=round stroke-linejoin=round stroke-width=2 d="M5 13l4 4L19 7">`), _tmpl$4 = /* @__PURE__ */ web.template(`<div class="p-4 bg-[color:var(--mcp-ui-surface,var(--color-white,#fff))] dark:bg-[color:var(--mcp-ui-surface,var(--color-gray-800,#1f2937))] rounded-lg border border-[color:var(--mcp-ui-border,var(--color-gray-200,#e5e7eb))] dark:border-[color:var(--mcp-ui-border,var(--color-gray-700,#374151))]"><p class="text-[color:var(--mcp-ui-danger,var(--color-red-500))] dark:text-[color:var(--mcp-ui-danger,var(--color-red-400))] text-sm">`), _tmpl$5 = /* @__PURE__ */ web.template(`<div class=p-3>`), _tmpl$6 = /* @__PURE__ */ web.template(`<div class="absolute inset-0 flex items-center justify-center"><div class="animate-spin rounded-full h-8 w-8 border-b-2 border-[color:var(--mcp-ui-accent-border,var(--color-blue-600))]">`), _tmpl$7 = /* @__PURE__ */ web.template(`<div class="absolute inset-0 flex items-center justify-center p-4"><div class=text-center><p class="text-[color:var(--mcp-ui-danger,var(--color-red-600))] dark:text-[color:var(--mcp-ui-danger,var(--color-red-400))] text-sm font-medium"></p><p class="text-[color:var(--mcp-ui-fg-muted,var(--color-gray-600,#4b5563))] dark:text-[color:var(--mcp-ui-fg-subtle,var(--color-gray-400,#9ca3af))] text-xs mt-1">`), _tmpl$8 = /* @__PURE__ */ web.template(`<h3 class="text-sm font-semibold text-[color:var(--mcp-ui-fg,var(--color-gray-900,#111827))] dark:text-[color:var(--mcp-ui-fg,var(--color-white,#fff))] mb-3">`), _tmpl$9 = /* @__PURE__ */ web.template(`<div class="w-full h-full p-4"><!$><!/><div class="w-full h-full"role=img><img class="w-full h-auto max-h-[300px] object-contain">`), _tmpl$0 = /* @__PURE__ */ web.template(`<div class="relative w-full h-full min-h-[300px] bg-[color:var(--mcp-ui-surface,var(--color-white,#fff))] dark:bg-[color:var(--mcp-ui-surface,var(--color-gray-800,#1f2937))] rounded-lg shadow-[var(--mcp-ui-shadow,var(--shadow-sm))] border border-[color:var(--mcp-ui-border,var(--color-gray-200,#e5e7eb))] dark:border-[color:var(--mcp-ui-border,var(--color-gray-700,#374151))] overflow-hidden"><!$><!/><!$><!/><!$><!/><!$><!/>`), _tmpl$1 = /* @__PURE__ */ web.template(`<tbody class="bg-[color:var(--mcp-ui-surface,var(--color-white,#fff))] dark:bg-[color:var(--mcp-ui-surface,var(--color-gray-800,#1f2937))] divide-y divide-[color:var(--mcp-ui-border,var(--color-gray-200,#e5e7eb))] dark:divide-[color:var(--mcp-ui-border,var(--color-gray-700,#374151))]">`), _tmpl$10 = /* @__PURE__ */ web.template(`<tr>`), _tmpl$11 = /* @__PURE__ */ web.template(`<td class="px-6 py-4 text-sm text-[color:var(--mcp-ui-fg,var(--color-gray-700,#374151))] dark:text-[color:var(--mcp-ui-fg,var(--color-gray-200,#e5e7eb))] whitespace-normal break-words leading-relaxed first:pl-6 last:pr-6">`), _tmpl$12 = /* @__PURE__ */ web.template(`<tbody class="bg-[color:var(--mcp-ui-surface,var(--color-white,#fff))] dark:bg-[color:var(--mcp-ui-surface,var(--color-gray-800,#1f2937))] relative">`), _tmpl$13 = /* @__PURE__ */ web.template(`<button class="w-full text-left px-3 py-1.5 hover:bg-[color:var(--mcp-ui-surface-hover,var(--color-gray-100,#f3f4f6))] dark:hover:bg-[color:var(--mcp-ui-surface-hover,var(--color-gray-700,#374151))] text-[color:var(--mcp-ui-fg,var(--color-gray-700,#374151))] dark:text-[color:var(--mcp-ui-fg,var(--color-gray-300,#d1d5db))]">`), _tmpl$14 = /* @__PURE__ */ web.template(`<div class="absolute right-10 top-2 z-10"><button class="opacity-60 hover:opacity-100 px-2 py-1 bg-[color:var(--mcp-ui-surface,var(--color-white,#fff))] dark:bg-[color:var(--mcp-ui-surface,var(--color-gray-800,#1f2937))] border border-[color:var(--mcp-ui-border,var(--color-gray-200,#e5e7eb))] dark:border-[color:var(--mcp-ui-border,var(--color-gray-600,#4b5563))] rounded-full hover:bg-[color:var(--mcp-ui-surface-hover,var(--color-gray-100,#f3f4f6))] dark:hover:bg-[color:var(--mcp-ui-surface-hover,var(--color-gray-700,#374151))] transition-all shadow-[var(--mcp-ui-shadow,var(--shadow-sm))]"aria-haspopup=menu><svg class="w-3 h-3 text-[color:var(--mcp-ui-fg-muted,var(--color-gray-500,#6b7280))] dark:text-[color:var(--mcp-ui-fg-subtle,var(--color-gray-400,#9ca3af))]"fill=none viewBox="0 0 24 24"stroke=currentColor><path stroke-linecap=round stroke-linejoin=round stroke-width=2 d="M12 10v6m0 0l-3-3m3 3l3-3m2 8H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"></path></svg></button><!$><!/>`), _tmpl$15 = /* @__PURE__ */ web.template(`<span class="ml-2 text-xs font-normal text-[color:var(--mcp-ui-fg-subtle,var(--color-gray-400,#9ca3af))]">`), _tmpl$16 = /* @__PURE__ */ web.template(`<h3 class="text-sm font-semibold text-[color:var(--mcp-ui-fg,var(--color-gray-900,#111827))] dark:text-[color:var(--mcp-ui-fg,var(--color-white,#fff))] mb-3 flex-shrink-0"><!$><!/><!$><!/>`), _tmpl$17 = /* @__PURE__ */ web.template(`<button type=button class="absolute right-2 top-1/2 -translate-y-1/2 text-[color:var(--mcp-ui-fg-subtle,var(--color-gray-400,#9ca3af))] hover:text-[color:var(--mcp-ui-fg-muted,var(--color-gray-600,#4b5563))] dark:hover:text-[color:var(--mcp-ui-fg,var(--color-gray-300,#d1d5db))] text-sm">×`), _tmpl$18 = /* @__PURE__ */ web.template(`<div class="relative mb-3"><span class="absolute left-3 top-1/2 -translate-y-1/2 text-[color:var(--mcp-ui-fg-subtle,var(--color-gray-400,#9ca3af))] pointer-events-none text-sm">🔍</span><input type=text class="w-full max-w-xs min-w-[200px] pl-8 pr-8 py-1.5 text-sm border border-[color:var(--mcp-ui-border,var(--color-gray-200,#e5e7eb))] dark:border-[color:var(--mcp-ui-border,var(--color-gray-600,#4b5563))] rounded-md bg-[color:var(--mcp-ui-surface,var(--color-white,#fff))] dark:bg-[color:var(--mcp-ui-surface-muted,var(--color-gray-700,#374151))] text-[color:var(--mcp-ui-fg,var(--color-gray-900,#111827))] dark:text-[color:var(--mcp-ui-fg,var(--color-white,#fff))] placeholder-[color:var(--mcp-ui-fg-subtle,var(--color-gray-400,#9ca3af))] focus:border-[color:var(--mcp-ui-focus,var(--color-blue-400))] focus:ring-1 focus:ring-[color:var(--mcp-ui-focus,var(--color-blue-400))] outline-none"><!$><!/>`), _tmpl$19 = /* @__PURE__ */ web.template(`<p class="text-xs text-[color:var(--mcp-ui-fg-muted,var(--color-gray-500,#6b7280))] dark:text-[color:var(--mcp-ui-fg-subtle,var(--color-gray-400,#9ca3af))] mb-2">`), _tmpl$20 = /* @__PURE__ */ web.template(`<div class="mt-3 flex items-center justify-between text-xs text-[color:var(--mcp-ui-fg-muted,var(--color-gray-500,#6b7280))] dark:text-[color:var(--mcp-ui-fg-subtle,var(--color-gray-400,#9ca3af))]"><span>`), _tmpl$21 = /* @__PURE__ */ web.template(`<select class="ml-2 px-1 py-0.5 text-xs border border-[color:var(--mcp-ui-border,var(--color-gray-200,#e5e7eb))] dark:border-[color:var(--mcp-ui-border,var(--color-gray-600,#4b5563))] rounded bg-[color:var(--mcp-ui-surface,var(--color-white,#fff))] dark:bg-[color:var(--mcp-ui-surface-muted,var(--color-gray-700,#374151))] text-[color:var(--mcp-ui-fg,var(--color-gray-700,#374151))] dark:text-[color:var(--mcp-ui-fg,var(--color-gray-300,#d1d5db))]"data-mcp-ui-action=page-size>`), _tmpl$22 = /* @__PURE__ */ web.template(`<span class=text-[color:var(--mcp-ui-fg-subtle,var(--color-gray-400,#9ca3af))]>`), _tmpl$23 = /* @__PURE__ */ web.template(`<div class="mt-3 flex items-center justify-between text-xs text-[color:var(--mcp-ui-fg-muted,var(--color-gray-500,#6b7280))] dark:text-[color:var(--mcp-ui-fg-subtle,var(--color-gray-400,#9ca3af))]"><span><!$><!/>–<!$><!/> / <!$><!/></span><div class="flex items-center gap-2"><button type=button class="px-2 py-1 rounded hover:bg-[color:var(--mcp-ui-surface-hover,var(--color-gray-100,#f3f4f6))] dark:hover:bg-[color:var(--mcp-ui-surface-hover,var(--color-gray-700,#374151))] disabled:opacity-40 disabled:cursor-not-allowed transition-colors"data-mcp-ui-action=page-prev><span aria-hidden=true>◀</span></button><span aria-live=polite><!$><!/> / <!$><!/></span><button type=button class="px-2 py-1 rounded hover:bg-[color:var(--mcp-ui-surface-hover,var(--color-gray-100,#f3f4f6))] dark:hover:bg-[color:var(--mcp-ui-surface-hover,var(--color-gray-700,#374151))] disabled:opacity-40 disabled:cursor-not-allowed transition-colors"data-mcp-ui-action=page-next><span aria-hidden=true>▶</span></button><!$><!/>`), _tmpl$24 = /* @__PURE__ */ web.template(`<div><!$><!/><div><!$><!/><!$><!/><div role=region tabindex=0><table class="min-w-full divide-y divide-[color:var(--mcp-ui-border,var(--color-gray-200,#e5e7eb))] dark:divide-[color:var(--mcp-ui-border,var(--color-gray-700,#374151))] border-separate border-spacing-0"><thead class="bg-[color:var(--mcp-ui-surface-muted,var(--color-gray-100,#f3f4f6))] dark:bg-[color:var(--mcp-ui-surface,var(--color-gray-900,#111827))] sticky top-0 z-10"><tr></tr></thead><!$><!/></table></div><!$><!/><!$><!/><!$><!/>`), _tmpl$25 = /* @__PURE__ */ web.template(`<th scope=col class="px-6 py-3 text-left text-xs font-semibold text-[color:var(--mcp-ui-fg-muted,var(--color-gray-500,#6b7280))] dark:text-[color:var(--mcp-ui-fg-subtle,var(--color-gray-400,#9ca3af))] uppercase tracking-wider border-b border-[color:var(--mcp-ui-border,var(--color-gray-200,#e5e7eb))] dark:border-[color:var(--mcp-ui-border,var(--color-gray-700,#374151))] first:pl-6 last:pr-6 bg-[color:var(--mcp-ui-surface-muted,var(--color-gray-100,#f3f4f6))] dark:bg-[color:var(--mcp-ui-surface,var(--color-gray-900,#111827))] cursor-pointer select-none hover:bg-[color:var(--mcp-ui-surface-hover,var(--color-gray-200,#e5e7eb))] dark:hover:bg-[color:var(--mcp-ui-surface-hover,var(--color-gray-800,#1f2937))] transition-colors"><span class="inline-flex items-center gap-1"><!$><!/><span class="text-[10px] leading-none">`), _tmpl$26 = /* @__PURE__ */ web.template(`<option>`), _tmpl$27 = /* @__PURE__ */ web.template(`<span class="ml-2 text-sm font-medium text-[color:var(--mcp-ui-fg-muted,var(--color-gray-500,#6b7280))] dark:text-[color:var(--mcp-ui-fg-subtle,var(--color-gray-400,#9ca3af))]">`), _tmpl$28 = /* @__PURE__ */ web.template(`<div class="mt-3 flex items-center"><span><!$><!/> <!$><!/>%`), _tmpl$29 = /* @__PURE__ */ web.template(`<p class="mt-2 text-xs text-[color:var(--mcp-ui-fg-muted,var(--color-gray-500,#6b7280))] dark:text-[color:var(--mcp-ui-fg-subtle,var(--color-gray-400,#9ca3af))]">`), _tmpl$30 = /* @__PURE__ */ web.template(`<div class="relative w-full h-full bg-[color:var(--mcp-ui-surface,var(--color-white,#fff))] dark:bg-[color:var(--mcp-ui-surface,var(--color-gray-800,#1f2937))] rounded-lg shadow-[var(--mcp-ui-shadow,var(--shadow-sm))] border border-[color:var(--mcp-ui-border,var(--color-gray-200,#e5e7eb))] dark:border-[color:var(--mcp-ui-border,var(--color-gray-700,#374151))] p-4 group"><!$><!/><div class="flex flex-col h-full justify-between"><div><p class="text-xs font-medium text-[color:var(--mcp-ui-fg-muted,var(--color-gray-500,#6b7280))] dark:text-[color:var(--mcp-ui-fg-subtle,var(--color-gray-400,#9ca3af))] uppercase tracking-wide"></p><div class="mt-2 flex items-baseline"><p class="text-2xl font-semibold text-[color:var(--mcp-ui-fg,var(--color-gray-900,#111827))] dark:text-[color:var(--mcp-ui-fg,var(--color-white,#fff))]"></p><!$><!/></div></div><!$><!/><!$><!/>`), _tmpl$31 = /* @__PURE__ */ web.template(`<div class="relative w-full h-full bg-[color:var(--mcp-ui-surface,var(--color-white,#fff))] dark:bg-[color:var(--mcp-ui-surface,var(--color-gray-800,#1f2937))] rounded-lg shadow-[var(--mcp-ui-shadow,var(--shadow-sm))] border border-[color:var(--mcp-ui-border,var(--color-gray-200,#e5e7eb))] dark:border-[color:var(--mcp-ui-border,var(--color-gray-700,#374151))] p-4 group"><!$><!/><!$><!/>`), _tmpl$32 = /* @__PURE__ */ web.template(`<img class="max-w-full max-h-[400px] object-contain rounded shadow-[var(--mcp-ui-shadow,var(--shadow-sm))] hover:opacity-90 transition-opacity"loading=lazy>`, true, false, false), _tmpl$33 = /* @__PURE__ */ web.template(`<div class="w-full h-full bg-[color:var(--mcp-ui-surface,var(--color-white,#fff))] dark:bg-[color:var(--mcp-ui-surface,var(--color-gray-800,#1f2937))] rounded-lg shadow-[var(--mcp-ui-shadow,var(--shadow-sm))] border border-[color:var(--mcp-ui-border,var(--color-gray-200,#e5e7eb))] dark:border-[color:var(--mcp-ui-border,var(--color-gray-700,#374151))] overflow-hidden flex flex-col"><div class="flex-1 flex items-center justify-center p-4 bg-[color:var(--mcp-ui-surface-muted,var(--color-gray-50,#f9fafb))] dark:bg-[color:var(--mcp-ui-surface,var(--color-gray-900,#111827))] min-h-[200px]"></div><div class="p-3 border-t border-[color:var(--mcp-ui-border,var(--color-gray-200,#e5e7eb))] dark:border-[color:var(--mcp-ui-border,var(--color-gray-700,#374151))] bg-[color:var(--mcp-ui-surface,var(--color-white,#fff))] dark:bg-[color:var(--mcp-ui-surface,var(--color-gray-800,#1f2937))]"><p class="text-sm text-[color:var(--mcp-ui-fg-muted,var(--color-gray-600,#4b5563))] dark:text-[color:var(--mcp-ui-fg-subtle,var(--color-gray-400,#9ca3af))] text-center italic">`), _tmpl$34 = /* @__PURE__ */ web.template(`<a target=_blank rel="noopener noreferrer"class=cursor-zoom-in>`), _tmpl$35 = /* @__PURE__ */ web.template(`<div class="px-4 py-2 border-b border-[color:var(--mcp-ui-border,var(--color-gray-200,#e5e7eb))] dark:border-[color:var(--mcp-ui-border,var(--color-gray-700,#374151))] bg-[color:var(--mcp-ui-surface-muted,var(--color-gray-50,#f9fafb))] dark:bg-[color:var(--mcp-ui-surface,var(--color-gray-900,#111827))]"><h3 class="text-sm font-semibold text-[color:var(--mcp-ui-fg,var(--color-gray-900,#111827))] dark:text-[color:var(--mcp-ui-fg,var(--color-white,#fff))]">`), _tmpl$36 = /* @__PURE__ */ web.template(`<div class="w-full h-full bg-[color:var(--mcp-ui-surface,var(--color-white,#fff))] dark:bg-[color:var(--mcp-ui-surface,var(--color-gray-800,#1f2937))] rounded-lg shadow-[var(--mcp-ui-shadow,var(--shadow-sm))] border border-[color:var(--mcp-ui-border,var(--color-gray-200,#e5e7eb))] dark:border-[color:var(--mcp-ui-border,var(--color-gray-700,#374151))] overflow-hidden flex flex-col"><!$><!/><iframe class="w-full border-0 flex-1"loading=lazy></iframe><!$><!/>`, true, false, false), _tmpl$37 = /* @__PURE__ */ web.template(`<figcaption class="p-3 border-t border-[color:var(--mcp-ui-border,var(--color-gray-200,#e5e7eb))] dark:border-[color:var(--mcp-ui-border,var(--color-gray-700,#374151))] bg-[color:var(--mcp-ui-surface,var(--color-white,#fff))] dark:bg-[color:var(--mcp-ui-surface,var(--color-gray-800,#1f2937))]"><p class="text-sm text-[color:var(--mcp-ui-fg-muted,var(--color-gray-600,#4b5563))] dark:text-[color:var(--mcp-ui-fg-subtle,var(--color-gray-400,#9ca3af))] text-center">`), _tmpl$38 = /* @__PURE__ */ web.template(`<figure><div class="flex-1 flex items-center justify-center p-4 bg-[color:var(--mcp-ui-surface-muted,var(--color-gray-50,#f9fafb))] dark:bg-[color:var(--mcp-ui-surface,var(--color-gray-900,#111827))] min-h-[200px]"><a target=_blank rel="noopener noreferrer"class="cursor-zoom-in focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-[color:var(--mcp-ui-focus,var(--color-blue-500))] rounded"><img class="max-w-full max-h-[500px] object-contain rounded shadow-[var(--mcp-ui-shadow,var(--shadow-sm))] hover:opacity-95 transition-opacity"loading=lazy></a></div><!$><!/>`, true, false, false), _tmpl$39 = /* @__PURE__ */ web.template(`<p class="text-xs text-[color:var(--mcp-ui-fg-muted,var(--color-gray-500,#6b7280))] dark:text-[color:var(--mcp-ui-fg-subtle,var(--color-gray-400,#9ca3af))] truncate">`), _tmpl$40 = /* @__PURE__ */ web.template(`<a target=_blank rel="noopener noreferrer"><div class="p-2 bg-[color:var(--mcp-ui-accent-soft,var(--color-blue-50))] dark:bg-[color:var(--mcp-ui-accent-soft,color-mix(in_oklab,var(--color-blue-900)_30%,transparent))] rounded-full text-[color:var(--mcp-ui-accent,var(--color-blue-600))] dark:text-[color:var(--mcp-ui-accent,var(--color-blue-400))] group-hover:bg-[color:var(--mcp-ui-accent-soft,var(--color-blue-100))] dark:group-hover:bg-[color:var(--mcp-ui-accent-soft,color-mix(in_oklab,var(--color-blue-900)_50%,transparent))] shrink-0 transition-colors"aria-hidden=true><svg xmlns=http://www.w3.org/2000/svg class="w-5 h-5"viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 stroke-linecap=round stroke-linejoin=round><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></div><div class="flex-1 min-w-0"><h4 class="text-sm font-medium text-[color:var(--mcp-ui-fg,var(--color-gray-900,#111827))] dark:text-[color:var(--mcp-ui-fg,var(--color-white,#fff))] truncate group-hover:text-[color:var(--mcp-ui-accent,var(--color-blue-600))] dark:group-hover:text-[color:var(--mcp-ui-accent,var(--color-blue-400))] transition-colors"></h4><!$><!/></div><svg xmlns=http://www.w3.org/2000/svg class="w-4 h-4 text-[color:var(--mcp-ui-fg-subtle,var(--color-gray-400,#9ca3af))] group-hover:text-[color:var(--mcp-ui-fg-muted,var(--color-gray-600,#4b5563))] dark:group-hover:text-[color:var(--mcp-ui-fg,var(--color-gray-300,#d1d5db))] shrink-0 transition-colors"viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 stroke-linecap=round stroke-linejoin=round aria-hidden=true><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15 3 21 3 21 9"></polyline><line x1=10 y1=14 x2=21 y2=3>`), _tmpl$41 = /* @__PURE__ */ web.template(`<div class="inline-flex items-center gap-1.5 px-2 py-1 rounded-md bg-[color:var(--mcp-ui-warning-soft,var(--color-yellow-50))] dark:bg-[color:var(--mcp-ui-warning-soft,color-mix(in_oklab,var(--color-yellow-900)_20%,transparent))] border border-[color:var(--mcp-ui-warning-border,var(--color-yellow-200))] dark:border-[color:var(--mcp-ui-warning-border,var(--color-yellow-800))] text-xs text-[color:var(--mcp-ui-warning,var(--color-yellow-800))] dark:text-[color:var(--mcp-ui-warning,var(--color-yellow-200))]"role=alert><svg xmlns=http://www.w3.org/2000/svg class="w-3.5 h-3.5"viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 stroke-linecap=round stroke-linejoin=round aria-hidden=true><path d="M10.29 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1=12 y1=9 x2=12 y2=13></line><line x1=12 y1=17 x2=12.01 y2=17></line></svg><span>`), _tmpl$42 = /* @__PURE__ */ web.template(`<div class="w-full h-full bg-[color:var(--mcp-ui-danger-soft,var(--color-red-50))] dark:bg-[color:var(--mcp-ui-danger-soft,color-mix(in_oklab,var(--color-red-900)_20%,transparent))] border border-[color:var(--mcp-ui-danger-border,var(--color-red-200))] dark:border-[color:var(--mcp-ui-danger-border,var(--color-red-800))] rounded-lg p-4"><p class="text-sm font-medium text-[color:var(--mcp-ui-danger,var(--color-red-900))] dark:text-[color:var(--mcp-ui-danger,var(--color-red-100))]"></p><p class="text-xs text-[color:var(--mcp-ui-danger,var(--color-red-700))] dark:text-[color:var(--mcp-ui-danger,var(--color-red-300))] mt-1">`), _tmpl$43 = /* @__PURE__ */ web.template(`<div role=alert class="w-full rounded-lg border border-[color:var(--mcp-ui-warning-border,var(--color-amber-300))] bg-[color:var(--mcp-ui-warning-soft,var(--color-amber-50))] px-3 py-2 text-sm text-[color:var(--mcp-ui-warning,var(--color-amber-800))] dark:border-[color:var(--mcp-ui-warning-border,color-mix(in_oklab,var(--color-amber-700)_50%,transparent))] dark:bg-[color:var(--mcp-ui-warning-soft,color-mix(in_oklab,var(--color-amber-900)_20%,transparent))] dark:text-[color:var(--mcp-ui-warning,var(--color-amber-200))]"><!$><!/> <code class=font-mono>`), _tmpl$44 = /* @__PURE__ */ web.template(`<span aria-hidden=true>`), _tmpl$45 = /* @__PURE__ */ web.template(`<a rel="noopener noreferrer"><!$><!/><!$><!/>`), _tmpl$46 = /* @__PURE__ */ web.template(`<span class="animate-spin h-4 w-4 border-2 border-current border-t-transparent rounded-full"aria-hidden=true>`), _tmpl$47 = /* @__PURE__ */ web.template(`<button type=button><!$><!/><!$><!/><!$><!/>`), _tmpl$48 = /* @__PURE__ */ web.template(`<p class="text-xs text-[color:var(--mcp-ui-danger,var(--color-red-600))] dark:text-[color:var(--mcp-ui-danger,var(--color-red-400))] mt-1">`), _tmpl$49 = /* @__PURE__ */ web.template(`<div class=mt-3><p class="text-xs font-medium text-[color:var(--mcp-ui-danger,var(--color-red-700))] dark:text-[color:var(--mcp-ui-danger,var(--color-red-300))]"></p><ul class="mt-1 text-xs text-[color:var(--mcp-ui-danger,var(--color-red-600))] dark:text-[color:var(--mcp-ui-danger,var(--color-red-400))] list-disc list-inside">`), _tmpl$50 = /* @__PURE__ */ web.template(`<p class="text-xs text-[color:var(--mcp-ui-danger,var(--color-red-500))] dark:text-[color:var(--mcp-ui-danger,var(--color-red-500))] mt-2">`), _tmpl$51 = /* @__PURE__ */ web.template(`<div class="relative w-full bg-[color:var(--mcp-ui-danger-soft,var(--color-red-50))] dark:bg-[color:var(--mcp-ui-danger-soft,color-mix(in_oklab,var(--color-red-900)_20%,transparent))] border border-[color:var(--mcp-ui-danger-border,var(--color-red-200))] dark:border-[color:var(--mcp-ui-danger-border,var(--color-red-800))] rounded-lg p-4 group"><!$><!/><div class="flex items-start gap-3"><div class="p-2 bg-[color:var(--mcp-ui-danger-soft,var(--color-red-100))] dark:bg-[color:var(--mcp-ui-danger-soft,color-mix(in_oklab,var(--color-red-900)_40%,transparent))] rounded-full shrink-0"><svg class="w-5 h-5 text-[color:var(--mcp-ui-danger,var(--color-red-600))] dark:text-[color:var(--mcp-ui-danger,var(--color-red-400))]"fill=none viewBox="0 0 24 24"stroke=currentColor><path stroke-linecap=round stroke-linejoin=round stroke-width=2 d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"></path></svg></div><div class="flex-1 min-w-0"><h4 class="text-sm font-semibold text-[color:var(--mcp-ui-danger,var(--color-red-800))] dark:text-[color:var(--mcp-ui-danger,var(--color-red-200))]"></h4><p class="text-sm text-[color:var(--mcp-ui-danger,var(--color-red-700))] dark:text-[color:var(--mcp-ui-danger,var(--color-red-300))] mt-1"></p><!$><!/><!$><!/><!$><!/>`), _tmpl$52 = /* @__PURE__ */ web.template(`<li>`), _tmpl$53 = /* @__PURE__ */ web.template(`<div class="px-4 py-2 border-b border-[color:var(--mcp-ui-border,var(--color-gray-200,#e5e7eb))] dark:border-[color:var(--mcp-ui-border,var(--color-gray-700,#374151))] bg-[color:var(--mcp-ui-surface-muted,var(--color-gray-50,#f9fafb))] dark:bg-[color:var(--mcp-ui-surface,var(--color-gray-900,#111827))]"><h3 class="text-sm font-semibold text-[color:var(--mcp-ui-fg,var(--color-gray-900,#111827))] dark:text-[color:var(--mcp-ui-fg,var(--color-white,#fff))] capitalize">`), _tmpl$54 = /* @__PURE__ */ web.template(`<div class="w-full bg-[color:var(--mcp-ui-surface,var(--color-white,#fff))] dark:bg-[color:var(--mcp-ui-surface,var(--color-gray-800,#1f2937))] rounded-lg shadow-[var(--mcp-ui-shadow,var(--shadow-sm))] border border-[color:var(--mcp-ui-border,var(--color-gray-200,#e5e7eb))] dark:border-[color:var(--mcp-ui-border,var(--color-gray-700,#374151))] overflow-hidden"><!$><!/><!$><!/>`), _tmpl$55 = /* @__PURE__ */ web.template(`<div><div class="grid gap-4"data-mcp-ui-grid></div><!$><!/>`), _tmpl$56 = /* @__PURE__ */ web.template(`<div class=min-w-0>`);
|
|
67
69
|
function CopyButton(props) {
|
|
68
70
|
const strings = MCPUIStringsContext.useMCPUIStrings();
|
|
69
71
|
const [copied, setCopied] = solidJs.createSignal(false);
|
|
@@ -94,7 +96,7 @@ function CopyButton(props) {
|
|
|
94
96
|
}
|
|
95
97
|
}));
|
|
96
98
|
web.effect((_p$) => {
|
|
97
|
-
var _v$ = `${positionClasses()} opacity-60 hover:opacity-100 px-2 py-1 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-600 rounded-full hover:bg-gray-100 dark:hover:bg-gray-700 transition-all shadow-sm z-10`, _v$2 = props.title || strings.copy, _v$3 = props.title || strings.copy;
|
|
99
|
+
var _v$ = `${positionClasses()} opacity-60 hover:opacity-100 px-2 py-1 bg-[color:var(--mcp-ui-surface,var(--color-white,#fff))] dark:bg-[color:var(--mcp-ui-surface,var(--color-gray-800,#1f2937))] border border-[color:var(--mcp-ui-border,var(--color-gray-200,#e5e7eb))] dark:border-[color:var(--mcp-ui-border,var(--color-gray-600,#4b5563))] rounded-full hover:bg-[color:var(--mcp-ui-surface-hover,var(--color-gray-100,#f3f4f6))] dark:hover:bg-[color:var(--mcp-ui-surface-hover,var(--color-gray-700,#374151))] transition-all shadow-[var(--mcp-ui-shadow,var(--shadow-sm))] z-10`, _v$2 = props.title || strings.copy, _v$3 = props.title || strings.copy;
|
|
98
100
|
_v$ !== _p$.e && web.className(_el$, _p$.e = _v$);
|
|
99
101
|
_v$2 !== _p$.t && web.setAttribute(_el$, "title", _p$.t = _v$2);
|
|
100
102
|
_v$3 !== _p$.a && web.setAttribute(_el$, "aria-label", _p$.a = _v$3);
|
|
@@ -218,7 +220,8 @@ function ChartRenderer(props) {
|
|
|
218
220
|
return strings.chartQuickchartCaption;
|
|
219
221
|
}
|
|
220
222
|
}, () => degradedProjections.chartToDegradedTable(params() ?? {}, {
|
|
221
|
-
series: strings.degradedSeries
|
|
223
|
+
series: strings.degradedSeries,
|
|
224
|
+
withUnit: strings.chartLabelWithUnit
|
|
222
225
|
}))));
|
|
223
226
|
return _el$7;
|
|
224
227
|
}
|
|
@@ -308,7 +311,7 @@ function ChartRenderer(props) {
|
|
|
308
311
|
}
|
|
309
312
|
});
|
|
310
313
|
}
|
|
311
|
-
const HIGHLIGHT_MARK_CLASS = "bg-yellow-200 dark:bg-[
|
|
314
|
+
const HIGHLIGHT_MARK_CLASS = "bg-[color:var(--mcp-ui-highlight,var(--color-yellow-200))] dark:bg-[color:var(--mcp-ui-highlight,#222F49)] text-inherit rounded px-0.5";
|
|
312
315
|
function highlightQuery(html, query) {
|
|
313
316
|
var _a, _b;
|
|
314
317
|
const q = query.trim();
|
|
@@ -357,9 +360,9 @@ function defaultCitationChip(pageNum, fileName, verified = true, viewSourceLabel
|
|
|
357
360
|
const safeDocName = encodeURIComponent(fileName || "");
|
|
358
361
|
const label = fileName ? `${fileName} - ${pageNum}` : `${pageNum}`;
|
|
359
362
|
if (!verified) {
|
|
360
|
-
return `<span class="citation-ref inline-flex items-center gap-0.5 align-middle opacity-60"><span class="text-gray-500 line-through">[${label}]</span></span>`;
|
|
363
|
+
return `<span class="citation-ref inline-flex items-center gap-0.5 align-middle opacity-60"><span class="text-[color:var(--mcp-ui-fg-muted,var(--color-gray-500,#6b7280))] line-through">[${label}]</span></span>`;
|
|
361
364
|
}
|
|
362
|
-
return ['<span class="citation-ref inline-flex items-center gap-0.5 align-middle">', `<span class="text-gray-500">[${label}]</span>`, '<button class="inline-flex items-center ml-0.5 px-1 py-0.5 text-xs bg-gray-800 hover:bg-gray-700 border border-gray-600 hover:border-teal-500 rounded cursor-pointer transition-colors align-middle"', ` data-citation-page="${pageNum}"`, ` data-citation-doc="${safeDocName}"`, ' data-citation-verified="true"', ` title="${escapeHtml.escapeHtml(formatString.formatMCPUIString(viewSourceLabel, {
|
|
365
|
+
return ['<span class="citation-ref inline-flex items-center gap-0.5 align-middle">', `<span class="text-[color:var(--mcp-ui-fg-muted,var(--color-gray-500,#6b7280))]">[${label}]</span>`, '<button class="inline-flex items-center ml-0.5 px-1 py-0.5 text-xs bg-[color:var(--mcp-ui-surface,var(--color-gray-800,#1f2937))] hover:bg-[color:var(--mcp-ui-surface-hover,var(--color-gray-700,#374151))] border border-[color:var(--mcp-ui-border,var(--color-gray-600,#4b5563))] hover:border-[color:var(--mcp-ui-info-border,var(--color-teal-500))] rounded cursor-pointer transition-colors align-middle"', ` data-citation-page="${pageNum}"`, ` data-citation-doc="${safeDocName}"`, ' data-citation-verified="true"', ` title="${escapeHtml.escapeHtml(formatString.formatMCPUIString(viewSourceLabel, {
|
|
363
366
|
label
|
|
364
367
|
}))}">`, '<svg class="w-3 h-3" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><polyline points="14 2 14 8 20 8"/></svg>', "</button>", "</span>"].join("");
|
|
365
368
|
}
|
|
@@ -386,7 +389,7 @@ function renderCellValue(value, citationCtx, mathRenderer) {
|
|
|
386
389
|
const label = value.name || value.label || value.title || value.url;
|
|
387
390
|
const sanitizedLabel = sanitizeHtml.sanitizeHtml(String(label));
|
|
388
391
|
const sanitizedUrl = sanitizeHtml.sanitizeHtml(String(value.url));
|
|
389
|
-
const anchor = `<a href="${sanitizedUrl}" target="_blank" rel="noopener noreferrer" class="text-blue-600 dark:text-blue-400 hover:underline">${sanitizedLabel}</a>`;
|
|
392
|
+
const anchor = `<a href="${sanitizedUrl}" target="_blank" rel="noopener noreferrer" class="text-[color:var(--mcp-ui-accent,var(--color-blue-600))] dark:text-[color:var(--mcp-ui-accent,var(--color-blue-400))] hover:underline">${sanitizedLabel}</a>`;
|
|
390
393
|
return sanitizeHtml.sanitizeHtml(anchor, sanitizeHtml.SANITIZE_PROFILES.cellLink);
|
|
391
394
|
}
|
|
392
395
|
if (value.name || value.label || value.title) {
|
|
@@ -399,8 +402,7 @@ function renderCellValue(value, citationCtx, mathRenderer) {
|
|
|
399
402
|
}
|
|
400
403
|
}
|
|
401
404
|
let strValue = String(value);
|
|
402
|
-
strValue =
|
|
403
|
-
strValue = strValue.replace(/^undefined\s*[–-]\s*/gi, "");
|
|
405
|
+
strValue = missingValue.stripUndefinedDebris(strValue);
|
|
404
406
|
if (strValue.trim().toLowerCase() === "undefined") {
|
|
405
407
|
return "-";
|
|
406
408
|
}
|
|
@@ -412,7 +414,7 @@ function renderCellValue(value, citationCtx, mathRenderer) {
|
|
|
412
414
|
}
|
|
413
415
|
const markdownLinkRegex = /\[([^\]]+)\]\(([^)]+)\)/g;
|
|
414
416
|
if (markdownLinkRegex.test(strValue)) {
|
|
415
|
-
const htmlValue = strValue.replace(/\[([^\]]+)\]\(([^)]+)\)/g, '<a href="$2" target="_blank" rel="noopener noreferrer" class="text-blue-600 dark:text-blue-400 hover:underline">$1</a>');
|
|
417
|
+
const htmlValue = strValue.replace(/\[([^\]]+)\]\(([^)]+)\)/g, '<a href="$2" target="_blank" rel="noopener noreferrer" class="text-[color:var(--mcp-ui-accent,var(--color-blue-600))] dark:text-[color:var(--mcp-ui-accent,var(--color-blue-400))] hover:underline">$1</a>');
|
|
416
418
|
return sanitizeHtml.sanitizeHtml(htmlValue, sanitizeHtml.SANITIZE_PROFILES.cellLink);
|
|
417
419
|
}
|
|
418
420
|
if (citationCtx) {
|
|
@@ -471,12 +473,14 @@ function TableRenderer(props) {
|
|
|
471
473
|
const dir = sortDir();
|
|
472
474
|
if (!key || !dir) return r;
|
|
473
475
|
const col = columns().find((c) => c.key === key);
|
|
474
|
-
const
|
|
476
|
+
const firstObserved = (_a = r.find((row) => !missingValue.isMissingCellValue(row == null ? void 0 : row[key]))) == null ? void 0 : _a[key];
|
|
477
|
+
const isNum = (col == null ? void 0 : col.type) === "number" || typeof firstObserved === "number";
|
|
475
478
|
return [...r].sort((a, b) => {
|
|
476
479
|
const va = a[key], vb = b[key];
|
|
477
|
-
|
|
478
|
-
if (
|
|
479
|
-
if (
|
|
480
|
+
const missA = missingValue.isMissingCellValue(va), missB = missingValue.isMissingCellValue(vb);
|
|
481
|
+
if (missA && missB) return 0;
|
|
482
|
+
if (missA) return 1;
|
|
483
|
+
if (missB) return -1;
|
|
480
484
|
let cmp;
|
|
481
485
|
if (isNum) {
|
|
482
486
|
cmp = (Number(va) || 0) - (Number(vb) || 0);
|
|
@@ -512,7 +516,7 @@ function TableRenderer(props) {
|
|
|
512
516
|
const cols = columns();
|
|
513
517
|
return sortedRows().filter((row) => cols.some((col) => {
|
|
514
518
|
const val = row[col.key];
|
|
515
|
-
if (val
|
|
519
|
+
if (missingValue.isMissingCellValue(val)) return false;
|
|
516
520
|
return normalize(String(val)).includes(q);
|
|
517
521
|
}));
|
|
518
522
|
});
|
|
@@ -680,6 +684,10 @@ ${dataRows}`;
|
|
|
680
684
|
}
|
|
681
685
|
};
|
|
682
686
|
const tableId = `table-${Math.random().toString(36).slice(2, 9)}`;
|
|
687
|
+
const hasMissingCells = solidJs.createMemo(() => {
|
|
688
|
+
const cols = columns();
|
|
689
|
+
return allRows().some((row) => cols.some((col) => missingValue.isMissingCellValue(row == null ? void 0 : row[col.key])));
|
|
690
|
+
});
|
|
683
691
|
const StandardTableBody = () => (() => {
|
|
684
692
|
var _el$25 = web.getNextElement(_tmpl$1);
|
|
685
693
|
web.insert(_el$25, web.createComponent(solidJs.For, {
|
|
@@ -694,13 +702,23 @@ ${dataRows}`;
|
|
|
694
702
|
},
|
|
695
703
|
children: (column) => (() => {
|
|
696
704
|
var _el$27 = web.getNextElement(_tmpl$11);
|
|
697
|
-
web.insert(_el$27, web.createComponent(
|
|
698
|
-
|
|
705
|
+
web.insert(_el$27, web.createComponent(solidJs.Show, {
|
|
706
|
+
get when() {
|
|
707
|
+
return !missingValue.isMissingCellValue(row[column.key]);
|
|
708
|
+
},
|
|
709
|
+
get fallback() {
|
|
710
|
+
return web.createComponent(MissingValue.MissingValueMark, {});
|
|
711
|
+
},
|
|
712
|
+
get children() {
|
|
713
|
+
return web.createComponent(SafeHtml.SafeHtml, {
|
|
714
|
+
html: () => highlightQuery(renderCellValue(row[column.key], citationCtx, mathRenderer()), debouncedQuery())
|
|
715
|
+
});
|
|
716
|
+
}
|
|
699
717
|
}));
|
|
700
718
|
return _el$27;
|
|
701
719
|
})()
|
|
702
720
|
}));
|
|
703
|
-
web.effect(() => web.className(_el$26, `hover:bg-gray-50 dark:hover:bg-gray-700
|
|
721
|
+
web.effect(() => web.className(_el$26, `hover:bg-[color:var(--mcp-ui-surface-hover,var(--color-gray-50,#f9fafb))] dark:hover:bg-[color:var(--mcp-ui-surface-hover,color-mix(in_oklab,var(--color-gray-700,#374151)_50%,transparent))] transition-colors ${i() % 2 === 0 ? "bg-[color:var(--mcp-ui-surface,var(--color-white,#fff))] dark:bg-[color:var(--mcp-ui-surface,var(--color-gray-800,#1f2937))]" : "bg-[color:var(--mcp-ui-surface-muted,color-mix(in_oklab,var(--color-gray-50,#f9fafb)_30%,transparent))] dark:bg-[color:var(--mcp-ui-surface,color-mix(in_oklab,var(--color-gray-800,#1f2937)_50%,transparent))]"}`));
|
|
704
722
|
return _el$26;
|
|
705
723
|
})()
|
|
706
724
|
}));
|
|
@@ -729,14 +747,24 @@ ${dataRows}`;
|
|
|
729
747
|
},
|
|
730
748
|
children: (column) => (() => {
|
|
731
749
|
var _el$30 = web.getNextElement(_tmpl$11);
|
|
732
|
-
web.insert(_el$30, web.createComponent(
|
|
733
|
-
|
|
750
|
+
web.insert(_el$30, web.createComponent(solidJs.Show, {
|
|
751
|
+
get when() {
|
|
752
|
+
return !missingValue.isMissingCellValue(row[column.key]);
|
|
753
|
+
},
|
|
754
|
+
get fallback() {
|
|
755
|
+
return web.createComponent(MissingValue.MissingValueMark, {});
|
|
756
|
+
},
|
|
757
|
+
get children() {
|
|
758
|
+
return web.createComponent(SafeHtml.SafeHtml, {
|
|
759
|
+
html: () => highlightQuery(renderCellValue(row[column.key], citationCtx, mathRenderer()), debouncedQuery())
|
|
760
|
+
});
|
|
761
|
+
}
|
|
734
762
|
}));
|
|
735
763
|
return _el$30;
|
|
736
764
|
})()
|
|
737
765
|
}));
|
|
738
766
|
web.effect((_p$) => {
|
|
739
|
-
var _v$7 = `hover:bg-gray-50 dark:hover:bg-gray-700
|
|
767
|
+
var _v$7 = `hover:bg-[color:var(--mcp-ui-surface-hover,var(--color-gray-50,#f9fafb))] dark:hover:bg-[color:var(--mcp-ui-surface-hover,color-mix(in_oklab,var(--color-gray-700,#374151)_50%,transparent))] transition-colors absolute left-0 right-0 ${virtualRow.index % 2 === 0 ? "bg-[color:var(--mcp-ui-surface,var(--color-white,#fff))] dark:bg-[color:var(--mcp-ui-surface,var(--color-gray-800,#1f2937))]" : "bg-[color:var(--mcp-ui-surface-muted,color-mix(in_oklab,var(--color-gray-50,#f9fafb)_30%,transparent))] dark:bg-[color:var(--mcp-ui-surface,color-mix(in_oklab,var(--color-gray-800,#1f2937)_50%,transparent))]"}`, _v$8 = `translateY(${virtualRow.start}px)`;
|
|
740
768
|
_v$7 !== _p$.e && web.className(_el$29, _p$.e = _v$7);
|
|
741
769
|
_v$8 !== _p$.t && web.setStyleProperty(_el$29, "transform", _p$.t = _v$8);
|
|
742
770
|
return _p$;
|
|
@@ -766,7 +794,7 @@ ${dataRows}`;
|
|
|
766
794
|
},
|
|
767
795
|
onExpandedChange: setSelfExpanded,
|
|
768
796
|
get children() {
|
|
769
|
-
var _el$31 = web.getNextElement(_tmpl$24), _el$
|
|
797
|
+
var _el$31 = web.getNextElement(_tmpl$24), _el$94 = _el$31.firstChild, [_el$95, _co$20] = web.getNextMarker(_el$94.nextSibling), _el$39 = _el$95.nextSibling, _el$84 = _el$39.firstChild, [_el$85, _co$15] = web.getNextMarker(_el$84.nextSibling), _el$86 = _el$85.nextSibling, [_el$87, _co$16] = web.getNextMarker(_el$86.nextSibling), _el$53 = _el$87.nextSibling, _el$54 = _el$53.firstChild, _el$55 = _el$54.firstChild, _el$56 = _el$55.firstChild, _el$57 = _el$55.nextSibling, [_el$58, _co$0] = web.getNextMarker(_el$57.nextSibling), _el$88 = _el$53.nextSibling, [_el$89, _co$17] = web.getNextMarker(_el$88.nextSibling), _el$90 = _el$89.nextSibling, [_el$91, _co$18] = web.getNextMarker(_el$90.nextSibling), _el$92 = _el$91.nextSibling, [_el$93, _co$19] = web.getNextMarker(_el$92.nextSibling);
|
|
770
798
|
web.insert(_el$31, web.createComponent(solidJs.Show, {
|
|
771
799
|
when: exportable,
|
|
772
800
|
get fallback() {
|
|
@@ -841,7 +869,7 @@ ${dataRows}`;
|
|
|
841
869
|
web.runHydrationEvents();
|
|
842
870
|
return _el$32;
|
|
843
871
|
}
|
|
844
|
-
}), _el$
|
|
872
|
+
}), _el$95, _co$20);
|
|
845
873
|
web.insert(_el$39, web.createComponent(solidJs.Show, {
|
|
846
874
|
get when() {
|
|
847
875
|
return tableParams.title;
|
|
@@ -918,10 +946,10 @@ ${dataRows}`;
|
|
|
918
946
|
return tableParams.columns;
|
|
919
947
|
},
|
|
920
948
|
children: (column) => (() => {
|
|
921
|
-
var _el$
|
|
922
|
-
web.addEventListener(_el$
|
|
923
|
-
web.insert(_el$
|
|
924
|
-
web.insert(_el$
|
|
949
|
+
var _el$96 = web.getNextElement(_tmpl$25), _el$97 = _el$96.firstChild, _el$99 = _el$97.firstChild, [_el$100, _co$21] = web.getNextMarker(_el$99.nextSibling), _el$98 = _el$100.nextSibling;
|
|
950
|
+
web.addEventListener(_el$96, "click", () => handleSort(column.key));
|
|
951
|
+
web.insert(_el$97, () => column.label, _el$100, _co$21);
|
|
952
|
+
web.insert(_el$98, () => sortIndicator(column.key));
|
|
925
953
|
web.effect((_p$) => {
|
|
926
954
|
var _v$20 = column.width ? {
|
|
927
955
|
width: column.width
|
|
@@ -929,18 +957,18 @@ ${dataRows}`;
|
|
|
929
957
|
column: column.label
|
|
930
958
|
}), _v$22 = {
|
|
931
959
|
"opacity-30": sortKey() !== column.key,
|
|
932
|
-
"opacity-100 text-blue-600 dark:text-blue-400": sortKey() === column.key
|
|
960
|
+
"opacity-100 text-[color:var(--mcp-ui-accent,var(--color-blue-600))] dark:text-[color:var(--mcp-ui-accent,var(--color-blue-400))]": sortKey() === column.key
|
|
933
961
|
};
|
|
934
|
-
_p$.e = web.style(_el$
|
|
935
|
-
_v$21 !== _p$.t && web.setAttribute(_el$
|
|
936
|
-
_p$.a = web.classList(_el$
|
|
962
|
+
_p$.e = web.style(_el$96, _v$20, _p$.e);
|
|
963
|
+
_v$21 !== _p$.t && web.setAttribute(_el$96, "title", _p$.t = _v$21);
|
|
964
|
+
_p$.a = web.classList(_el$98, _v$22, _p$.a);
|
|
937
965
|
return _p$;
|
|
938
966
|
}, {
|
|
939
967
|
e: void 0,
|
|
940
968
|
t: void 0,
|
|
941
969
|
a: void 0
|
|
942
970
|
});
|
|
943
|
-
return _el$
|
|
971
|
+
return _el$96;
|
|
944
972
|
})()
|
|
945
973
|
}));
|
|
946
974
|
web.insert(_el$54, web.createComponent(solidJs.Show, {
|
|
@@ -954,6 +982,16 @@ ${dataRows}`;
|
|
|
954
982
|
return web.createComponent(VirtualizedTableBody, {});
|
|
955
983
|
}
|
|
956
984
|
}), _el$58, _co$0);
|
|
985
|
+
web.insert(_el$39, web.createComponent(solidJs.Show, {
|
|
986
|
+
get when() {
|
|
987
|
+
return hasMissingCells();
|
|
988
|
+
},
|
|
989
|
+
get children() {
|
|
990
|
+
return web.createComponent(MissingValue.MissingValueLegend, {
|
|
991
|
+
"class": "mt-2 px-1"
|
|
992
|
+
});
|
|
993
|
+
}
|
|
994
|
+
}), _el$89, _co$17);
|
|
957
995
|
web.insert(_el$39, web.createComponent(solidJs.Show, {
|
|
958
996
|
get when() {
|
|
959
997
|
return tableParams.pagination;
|
|
@@ -967,7 +1005,7 @@ ${dataRows}`;
|
|
|
967
1005
|
}));
|
|
968
1006
|
return _el$59;
|
|
969
1007
|
}
|
|
970
|
-
}), _el$
|
|
1008
|
+
}), _el$91, _co$18);
|
|
971
1009
|
web.insert(_el$39, web.createComponent(solidJs.Show, {
|
|
972
1010
|
get when() {
|
|
973
1011
|
return needsClientPagination();
|
|
@@ -994,10 +1032,10 @@ ${dataRows}`;
|
|
|
994
1032
|
return pageSizeOptions();
|
|
995
1033
|
},
|
|
996
1034
|
children: (opt) => (() => {
|
|
997
|
-
var _el$
|
|
998
|
-
web.insert(_el$
|
|
999
|
-
web.effect(() => web.setProperty(_el$
|
|
1000
|
-
return _el$
|
|
1035
|
+
var _el$101 = web.getNextElement(_tmpl$26);
|
|
1036
|
+
web.insert(_el$101, () => opt.label);
|
|
1037
|
+
web.effect(() => web.setProperty(_el$101, "value", opt.value));
|
|
1038
|
+
return _el$101;
|
|
1001
1039
|
})()
|
|
1002
1040
|
}));
|
|
1003
1041
|
web.effect(() => web.setAttribute(_el$80, "aria-label", strings.paginationPageSize));
|
|
@@ -1026,9 +1064,9 @@ ${dataRows}`;
|
|
|
1026
1064
|
web.runHydrationEvents();
|
|
1027
1065
|
return _el$61;
|
|
1028
1066
|
}
|
|
1029
|
-
}), _el$
|
|
1067
|
+
}), _el$93, _co$19);
|
|
1030
1068
|
web.effect((_p$) => {
|
|
1031
|
-
var _v$14 = `relative w-full bg-white dark:bg-gray-800 rounded-lg shadow-sm border border-gray-200 dark:border-gray-700 overflow-hidden group ${isExpanded() ? "flex-1 min-h-0 flex flex-col" : "h-full"} ${tableParams.className || ""}`, _v$15 = `p-4 ${isExpanded() ? "flex-1 min-h-0 flex flex-col" : ""}`, _v$16 = `overflow-x-auto ${isExpanded() ? "flex-1 min-h-0" : ""}`, _v$17 = (
|
|
1069
|
+
var _v$14 = `relative w-full bg-[color:var(--mcp-ui-surface,var(--color-white,#fff))] dark:bg-[color:var(--mcp-ui-surface,var(--color-gray-800,#1f2937))] rounded-lg shadow-[var(--mcp-ui-shadow,var(--shadow-sm))] border border-[color:var(--mcp-ui-border,var(--color-gray-200,#e5e7eb))] dark:border-[color:var(--mcp-ui-border,var(--color-gray-700,#374151))] overflow-hidden group ${isExpanded() ? "flex-1 min-h-0 flex flex-col" : "h-full"} ${tableParams.className || ""}`, _v$15 = `p-4 ${isExpanded() ? "flex-1 min-h-0 flex flex-col" : ""}`, _v$16 = `overflow-x-auto ${isExpanded() ? "flex-1 min-h-0" : ""}`, _v$17 = (
|
|
1032
1070
|
// v6.1.0 — when expanded, the scroll container fills the
|
|
1033
1071
|
// remaining vertical space and scrolls internally.
|
|
1034
1072
|
// v6.3.0 — `params.maxHeight` opt-out (axe 1 deposium handoff)
|
|
@@ -1087,53 +1125,53 @@ function MetricRenderer(props) {
|
|
|
1087
1125
|
return `${title}: ${value}${unit ? " " + unit : ""}`;
|
|
1088
1126
|
};
|
|
1089
1127
|
return (() => {
|
|
1090
|
-
var _el$
|
|
1091
|
-
web.insert(_el$
|
|
1128
|
+
var _el$102 = web.getNextElement(_tmpl$30), _el$124 = _el$102.firstChild, [_el$125, _co$27] = web.getNextMarker(_el$124.nextSibling), _el$103 = _el$125.nextSibling, _el$104 = _el$103.firstChild, _el$105 = _el$104.firstChild, _el$106 = _el$105.nextSibling, _el$107 = _el$106.firstChild, _el$109 = _el$107.nextSibling, [_el$110, _co$22] = web.getNextMarker(_el$109.nextSibling), _el$120 = _el$104.nextSibling, [_el$121, _co$25] = web.getNextMarker(_el$120.nextSibling), _el$122 = _el$121.nextSibling, [_el$123, _co$26] = web.getNextMarker(_el$122.nextSibling);
|
|
1129
|
+
web.insert(_el$102, web.createComponent(CopyButton, {
|
|
1092
1130
|
getText: getMetricText,
|
|
1093
1131
|
get title() {
|
|
1094
1132
|
return strings.copyMetric;
|
|
1095
1133
|
},
|
|
1096
1134
|
position: "top-right"
|
|
1097
|
-
}), _el$
|
|
1098
|
-
web.insert(_el$
|
|
1099
|
-
web.insert(_el$
|
|
1100
|
-
web.insert(_el$
|
|
1135
|
+
}), _el$125, _co$27);
|
|
1136
|
+
web.insert(_el$105, () => metricParams.title);
|
|
1137
|
+
web.insert(_el$107, () => metricParams.value);
|
|
1138
|
+
web.insert(_el$106, web.createComponent(solidJs.Show, {
|
|
1101
1139
|
get when() {
|
|
1102
1140
|
return metricParams.unit;
|
|
1103
1141
|
},
|
|
1104
1142
|
get children() {
|
|
1105
|
-
var _el$
|
|
1106
|
-
web.insert(_el$
|
|
1107
|
-
return _el$
|
|
1143
|
+
var _el$108 = web.getNextElement(_tmpl$27);
|
|
1144
|
+
web.insert(_el$108, () => metricParams.unit);
|
|
1145
|
+
return _el$108;
|
|
1108
1146
|
}
|
|
1109
|
-
}), _el$
|
|
1110
|
-
web.insert(_el$
|
|
1147
|
+
}), _el$110, _co$22);
|
|
1148
|
+
web.insert(_el$103, web.createComponent(solidJs.Show, {
|
|
1111
1149
|
get when() {
|
|
1112
1150
|
return metricParams.trend;
|
|
1113
1151
|
},
|
|
1114
1152
|
get children() {
|
|
1115
|
-
var _el$
|
|
1116
|
-
_el$
|
|
1117
|
-
web.insert(_el$
|
|
1153
|
+
var _el$111 = web.getNextElement(_tmpl$28), _el$112 = _el$111.firstChild, _el$115 = _el$112.firstChild, [_el$116, _co$23] = web.getNextMarker(_el$115.nextSibling), _el$113 = _el$116.nextSibling, _el$117 = _el$113.nextSibling, [_el$118, _co$24] = web.getNextMarker(_el$117.nextSibling);
|
|
1154
|
+
_el$118.nextSibling;
|
|
1155
|
+
web.insert(_el$112, (() => {
|
|
1118
1156
|
var _c$ = web.memo(() => metricParams.trend.direction === "up");
|
|
1119
1157
|
return () => _c$() ? "�" : metricParams.trend.direction === "down" ? "�" : "�";
|
|
1120
|
-
})(), _el$
|
|
1121
|
-
web.insert(_el$
|
|
1122
|
-
web.effect(() => web.className(_el$
|
|
1123
|
-
return _el$
|
|
1158
|
+
})(), _el$116, _co$23);
|
|
1159
|
+
web.insert(_el$112, () => Math.abs(metricParams.trend.value), _el$118, _co$24);
|
|
1160
|
+
web.effect(() => web.className(_el$112, `text-sm font-medium ${metricParams.trend.direction === "up" ? "text-[color:var(--mcp-ui-success,var(--color-green-600))] dark:text-[color:var(--mcp-ui-success,var(--color-green-400))]" : metricParams.trend.direction === "down" ? "text-[color:var(--mcp-ui-danger,var(--color-red-600))] dark:text-[color:var(--mcp-ui-danger,var(--color-red-400))]" : "text-[color:var(--mcp-ui-fg-muted,var(--color-gray-600,#4b5563))] dark:text-[color:var(--mcp-ui-fg-subtle,var(--color-gray-400,#9ca3af))]"}`));
|
|
1161
|
+
return _el$111;
|
|
1124
1162
|
}
|
|
1125
|
-
}), _el$
|
|
1126
|
-
web.insert(_el$
|
|
1163
|
+
}), _el$121, _co$25);
|
|
1164
|
+
web.insert(_el$103, web.createComponent(solidJs.Show, {
|
|
1127
1165
|
get when() {
|
|
1128
1166
|
return metricParams.subtitle;
|
|
1129
1167
|
},
|
|
1130
1168
|
get children() {
|
|
1131
|
-
var _el$
|
|
1132
|
-
web.insert(_el$
|
|
1133
|
-
return _el$
|
|
1169
|
+
var _el$119 = web.getNextElement(_tmpl$29);
|
|
1170
|
+
web.insert(_el$119, () => metricParams.subtitle);
|
|
1171
|
+
return _el$119;
|
|
1134
1172
|
}
|
|
1135
|
-
}), _el$
|
|
1136
|
-
return _el$
|
|
1173
|
+
}), _el$123, _co$26);
|
|
1174
|
+
return _el$102;
|
|
1137
1175
|
})();
|
|
1138
1176
|
}
|
|
1139
1177
|
function extractImageFromMarkdown(content, fallbackAlt) {
|
|
@@ -1193,40 +1231,40 @@ function TextRenderer(props) {
|
|
|
1193
1231
|
},
|
|
1194
1232
|
get fallback() {
|
|
1195
1233
|
return (() => {
|
|
1196
|
-
var _el$
|
|
1197
|
-
web.insert(_el$
|
|
1234
|
+
var _el$126 = web.getNextElement(_tmpl$31), _el$127 = _el$126.firstChild, [_el$128, _co$28] = web.getNextMarker(_el$127.nextSibling), _el$129 = _el$128.nextSibling, [_el$130, _co$29] = web.getNextMarker(_el$129.nextSibling);
|
|
1235
|
+
web.insert(_el$126, web.createComponent(CopyButton, {
|
|
1198
1236
|
getText: getTextContent,
|
|
1199
1237
|
get title() {
|
|
1200
1238
|
return strings.copyText;
|
|
1201
1239
|
},
|
|
1202
1240
|
position: "top-right"
|
|
1203
|
-
}), _el$
|
|
1204
|
-
web.insert(_el$
|
|
1241
|
+
}), _el$128, _co$28);
|
|
1242
|
+
web.insert(_el$126, web.createComponent(SafeHtml.SafeHtml, {
|
|
1205
1243
|
get ["class"]() {
|
|
1206
1244
|
return `prose prose-sm dark:prose-invert max-w-none ${textParams.className || ""}`;
|
|
1207
1245
|
},
|
|
1208
1246
|
html: htmlContent
|
|
1209
|
-
}), _el$
|
|
1210
|
-
return _el$
|
|
1247
|
+
}), _el$130, _co$29);
|
|
1248
|
+
return _el$126;
|
|
1211
1249
|
})();
|
|
1212
1250
|
},
|
|
1213
1251
|
children: (data) => {
|
|
1214
1252
|
const image = () => (() => {
|
|
1215
|
-
var _el$
|
|
1253
|
+
var _el$131 = web.getNextElement(_tmpl$32);
|
|
1216
1254
|
web.effect((_p$) => {
|
|
1217
1255
|
var _v$23 = data().imageUrl, _v$24 = data().alt;
|
|
1218
|
-
_v$23 !== _p$.e && web.setAttribute(_el$
|
|
1219
|
-
_v$24 !== _p$.t && web.setAttribute(_el$
|
|
1256
|
+
_v$23 !== _p$.e && web.setAttribute(_el$131, "src", _p$.e = _v$23);
|
|
1257
|
+
_v$24 !== _p$.t && web.setAttribute(_el$131, "alt", _p$.t = _v$24);
|
|
1220
1258
|
return _p$;
|
|
1221
1259
|
}, {
|
|
1222
1260
|
e: void 0,
|
|
1223
1261
|
t: void 0
|
|
1224
1262
|
});
|
|
1225
|
-
return _el$
|
|
1263
|
+
return _el$131;
|
|
1226
1264
|
})();
|
|
1227
1265
|
return (() => {
|
|
1228
|
-
var _el$
|
|
1229
|
-
web.insert(_el$
|
|
1266
|
+
var _el$132 = web.getNextElement(_tmpl$33), _el$133 = _el$132.firstChild, _el$134 = _el$133.nextSibling, _el$135 = _el$134.firstChild;
|
|
1267
|
+
web.insert(_el$133, web.createComponent(solidJs.Show, {
|
|
1230
1268
|
get when() {
|
|
1231
1269
|
return data().linkUrl;
|
|
1232
1270
|
},
|
|
@@ -1234,14 +1272,14 @@ function TextRenderer(props) {
|
|
|
1234
1272
|
return image();
|
|
1235
1273
|
},
|
|
1236
1274
|
children: (href) => (() => {
|
|
1237
|
-
var _el$
|
|
1238
|
-
web.insert(_el$
|
|
1239
|
-
web.effect(() => web.setAttribute(_el$
|
|
1240
|
-
return _el$
|
|
1275
|
+
var _el$136 = web.getNextElement(_tmpl$34);
|
|
1276
|
+
web.insert(_el$136, image);
|
|
1277
|
+
web.effect(() => web.setAttribute(_el$136, "href", href()));
|
|
1278
|
+
return _el$136;
|
|
1241
1279
|
})()
|
|
1242
1280
|
}));
|
|
1243
|
-
web.insert(_el$
|
|
1244
|
-
return _el$
|
|
1281
|
+
web.insert(_el$135, () => data().credit);
|
|
1282
|
+
return _el$132;
|
|
1245
1283
|
})();
|
|
1246
1284
|
}
|
|
1247
1285
|
});
|
|
@@ -1254,34 +1292,34 @@ function IframeRenderer(props) {
|
|
|
1254
1292
|
customTrustedDomains: config.customTrustedIframeDomains
|
|
1255
1293
|
});
|
|
1256
1294
|
return (() => {
|
|
1257
|
-
var _el$
|
|
1258
|
-
web.insert(_el$
|
|
1295
|
+
var _el$137 = web.getNextElement(_tmpl$36), _el$141 = _el$137.firstChild, [_el$142, _co$30] = web.getNextMarker(_el$141.nextSibling), _el$140 = _el$142.nextSibling, _el$143 = _el$140.nextSibling, [_el$144, _co$31] = web.getNextMarker(_el$143.nextSibling);
|
|
1296
|
+
web.insert(_el$137, web.createComponent(solidJs.Show, {
|
|
1259
1297
|
get when() {
|
|
1260
1298
|
return params.title;
|
|
1261
1299
|
},
|
|
1262
1300
|
get children() {
|
|
1263
|
-
var _el$
|
|
1264
|
-
web.insert(_el$
|
|
1265
|
-
return _el$
|
|
1301
|
+
var _el$138 = web.getNextElement(_tmpl$35), _el$139 = _el$138.firstChild;
|
|
1302
|
+
web.insert(_el$139, () => params.title);
|
|
1303
|
+
return _el$138;
|
|
1266
1304
|
}
|
|
1267
|
-
}), _el$
|
|
1268
|
-
web.insert(_el$
|
|
1305
|
+
}), _el$142, _co$30);
|
|
1306
|
+
web.insert(_el$137, web.createComponent(IframeFallbackLink.IframeFallbackLink, {
|
|
1269
1307
|
get url() {
|
|
1270
1308
|
return params.url;
|
|
1271
1309
|
},
|
|
1272
|
-
"class": "border-t border-gray-200 dark:border-gray-700"
|
|
1273
|
-
}), _el$
|
|
1310
|
+
"class": "border-t border-[color:var(--mcp-ui-border,var(--color-gray-200,#e5e7eb))] dark:border-[color:var(--mcp-ui-border,var(--color-gray-700,#374151))]"
|
|
1311
|
+
}), _el$144, _co$31);
|
|
1274
1312
|
web.effect((_p$) => {
|
|
1275
1313
|
var _v$25 = params.url, _v$26 = params.title || strings.iframeTitle, _v$27 = `height: ${params.height || "400px"}; min-height: 300px;`, _v$28 = validation.getIframeSandbox(params.url, trustOptions()), _v$29 = iframeCoep.shouldSetCredentialless(params.url, config, {
|
|
1276
1314
|
// This iframe's sandbox never carries `allow-same-origin` for an
|
|
1277
1315
|
// untrusted host, so it already runs without cookies.
|
|
1278
1316
|
sandboxedWithoutSameOrigin: !validation.isTrustedIframeDomain(params.url, trustOptions())
|
|
1279
1317
|
}) || void 0;
|
|
1280
|
-
_v$25 !== _p$.e && web.setAttribute(_el$
|
|
1281
|
-
_v$26 !== _p$.t && web.setAttribute(_el$
|
|
1282
|
-
_p$.a = web.style(_el$
|
|
1283
|
-
_v$28 !== _p$.o && web.setAttribute(_el$
|
|
1284
|
-
_v$29 !== _p$.i && web.setAttribute(_el$
|
|
1318
|
+
_v$25 !== _p$.e && web.setAttribute(_el$140, "src", _p$.e = _v$25);
|
|
1319
|
+
_v$26 !== _p$.t && web.setAttribute(_el$140, "title", _p$.t = _v$26);
|
|
1320
|
+
_p$.a = web.style(_el$140, _v$27, _p$.a);
|
|
1321
|
+
_v$28 !== _p$.o && web.setAttribute(_el$140, "sandbox", _p$.o = _v$28);
|
|
1322
|
+
_v$29 !== _p$.i && web.setAttribute(_el$140, "credentialless", _p$.i = _v$29);
|
|
1285
1323
|
return _p$;
|
|
1286
1324
|
}, {
|
|
1287
1325
|
e: void 0,
|
|
@@ -1290,35 +1328,35 @@ function IframeRenderer(props) {
|
|
|
1290
1328
|
o: void 0,
|
|
1291
1329
|
i: void 0
|
|
1292
1330
|
});
|
|
1293
|
-
return _el$
|
|
1331
|
+
return _el$137;
|
|
1294
1332
|
})();
|
|
1295
1333
|
}
|
|
1296
1334
|
function ImageRenderer(props) {
|
|
1297
1335
|
const strings = MCPUIStringsContext.useMCPUIStrings();
|
|
1298
1336
|
const params = props.component.params;
|
|
1299
1337
|
return (() => {
|
|
1300
|
-
var _el$
|
|
1301
|
-
web.insert(_el$
|
|
1338
|
+
var _el$145 = web.getNextElement(_tmpl$38), _el$146 = _el$145.firstChild, _el$147 = _el$146.firstChild, _el$148 = _el$147.firstChild, _el$151 = _el$146.nextSibling, [_el$152, _co$32] = web.getNextMarker(_el$151.nextSibling);
|
|
1339
|
+
web.insert(_el$145, web.createComponent(solidJs.Show, {
|
|
1302
1340
|
get when() {
|
|
1303
1341
|
return params.caption;
|
|
1304
1342
|
},
|
|
1305
1343
|
get children() {
|
|
1306
|
-
var _el$
|
|
1307
|
-
web.insert(_el$
|
|
1308
|
-
return _el$
|
|
1344
|
+
var _el$149 = web.getNextElement(_tmpl$37), _el$150 = _el$149.firstChild;
|
|
1345
|
+
web.insert(_el$150, () => params.caption);
|
|
1346
|
+
return _el$149;
|
|
1309
1347
|
}
|
|
1310
|
-
}), _el$
|
|
1348
|
+
}), _el$152, _co$32);
|
|
1311
1349
|
web.effect((_p$) => {
|
|
1312
|
-
var _v$30 = `w-full h-full bg-white dark:bg-gray-800 rounded-lg shadow-sm border border-gray-200 dark:border-gray-700 overflow-hidden flex flex-col ${params.className || ""}`, _v$31 = safeUrl.safeUrl(params.url), _v$32 = formatString.formatMCPUIString(strings.imageViewFullSize, {
|
|
1350
|
+
var _v$30 = `w-full h-full bg-[color:var(--mcp-ui-surface,var(--color-white,#fff))] dark:bg-[color:var(--mcp-ui-surface,var(--color-gray-800,#1f2937))] rounded-lg shadow-[var(--mcp-ui-shadow,var(--shadow-sm))] border border-[color:var(--mcp-ui-border,var(--color-gray-200,#e5e7eb))] dark:border-[color:var(--mcp-ui-border,var(--color-gray-700,#374151))] overflow-hidden flex flex-col ${params.className || ""}`, _v$31 = safeUrl.safeUrl(params.url), _v$32 = formatString.formatMCPUIString(strings.imageViewFullSize, {
|
|
1313
1351
|
alt: params.alt || strings.imageAltFallback
|
|
1314
1352
|
}), _v$33 = safeUrl.safeUrl(params.url, {
|
|
1315
1353
|
allowDataImage: true
|
|
1316
1354
|
}), _v$34 = params.alt || strings.imageAlt;
|
|
1317
|
-
_v$30 !== _p$.e && web.className(_el$
|
|
1318
|
-
_v$31 !== _p$.t && web.setAttribute(_el$
|
|
1319
|
-
_v$32 !== _p$.a && web.setAttribute(_el$
|
|
1320
|
-
_v$33 !== _p$.o && web.setAttribute(_el$
|
|
1321
|
-
_v$34 !== _p$.i && web.setAttribute(_el$
|
|
1355
|
+
_v$30 !== _p$.e && web.className(_el$145, _p$.e = _v$30);
|
|
1356
|
+
_v$31 !== _p$.t && web.setAttribute(_el$147, "href", _p$.t = _v$31);
|
|
1357
|
+
_v$32 !== _p$.a && web.setAttribute(_el$147, "aria-label", _p$.a = _v$32);
|
|
1358
|
+
_v$33 !== _p$.o && web.setAttribute(_el$148, "src", _p$.o = _v$33);
|
|
1359
|
+
_v$34 !== _p$.i && web.setAttribute(_el$148, "alt", _p$.i = _v$34);
|
|
1322
1360
|
return _p$;
|
|
1323
1361
|
}, {
|
|
1324
1362
|
e: void 0,
|
|
@@ -1327,34 +1365,34 @@ function ImageRenderer(props) {
|
|
|
1327
1365
|
o: void 0,
|
|
1328
1366
|
i: void 0
|
|
1329
1367
|
});
|
|
1330
|
-
return _el$
|
|
1368
|
+
return _el$145;
|
|
1331
1369
|
})();
|
|
1332
1370
|
}
|
|
1333
1371
|
function LinkRenderer(props) {
|
|
1334
1372
|
const strings = MCPUIStringsContext.useMCPUIStrings();
|
|
1335
1373
|
const params = props.component.params;
|
|
1336
1374
|
return (() => {
|
|
1337
|
-
var _el$
|
|
1338
|
-
_el$
|
|
1339
|
-
web.insert(_el$
|
|
1340
|
-
web.insert(_el$
|
|
1375
|
+
var _el$153 = web.getNextElement(_tmpl$40), _el$154 = _el$153.firstChild, _el$155 = _el$154.nextSibling, _el$156 = _el$155.firstChild, _el$158 = _el$156.nextSibling, [_el$159, _co$33] = web.getNextMarker(_el$158.nextSibling);
|
|
1376
|
+
_el$153.$$click = (e) => e.stopPropagation();
|
|
1377
|
+
web.insert(_el$156, () => params.label || params.url);
|
|
1378
|
+
web.insert(_el$155, web.createComponent(solidJs.Show, {
|
|
1341
1379
|
get when() {
|
|
1342
1380
|
return params.description;
|
|
1343
1381
|
},
|
|
1344
1382
|
get children() {
|
|
1345
|
-
var _el$
|
|
1346
|
-
web.insert(_el$
|
|
1347
|
-
return _el$
|
|
1383
|
+
var _el$157 = web.getNextElement(_tmpl$39);
|
|
1384
|
+
web.insert(_el$157, () => params.description);
|
|
1385
|
+
return _el$157;
|
|
1348
1386
|
}
|
|
1349
|
-
}), _el$
|
|
1387
|
+
}), _el$159, _co$33);
|
|
1350
1388
|
web.effect((_p$) => {
|
|
1351
1389
|
var _v$35 = safeUrl.safeUrl(params.url), _v$36 = formatString.formatMCPUIString(strings.linkOpensInNewTab, {
|
|
1352
1390
|
label: params.label || strings.linkLabel,
|
|
1353
1391
|
description: params.description || params.url
|
|
1354
|
-
}), _v$37 = `flex items-center gap-3 p-4 bg-white dark:bg-gray-800 rounded-lg shadow-sm border border-gray-200 dark:border-gray-700 hover:bg-gray-50 dark:hover:bg-gray-700 transition-colors group h-full focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 ${params.className || ""}`;
|
|
1355
|
-
_v$35 !== _p$.e && web.setAttribute(_el$
|
|
1356
|
-
_v$36 !== _p$.t && web.setAttribute(_el$
|
|
1357
|
-
_v$37 !== _p$.a && web.className(_el$
|
|
1392
|
+
}), _v$37 = `flex items-center gap-3 p-4 bg-[color:var(--mcp-ui-surface,var(--color-white,#fff))] dark:bg-[color:var(--mcp-ui-surface,var(--color-gray-800,#1f2937))] rounded-lg shadow-[var(--mcp-ui-shadow,var(--shadow-sm))] border border-[color:var(--mcp-ui-border,var(--color-gray-200,#e5e7eb))] dark:border-[color:var(--mcp-ui-border,var(--color-gray-700,#374151))] hover:bg-[color:var(--mcp-ui-surface-hover,var(--color-gray-50,#f9fafb))] dark:hover:bg-[color:var(--mcp-ui-surface-hover,var(--color-gray-700,#374151))] transition-colors group h-full focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-[color:var(--mcp-ui-focus,var(--color-blue-500))] ${params.className || ""}`;
|
|
1393
|
+
_v$35 !== _p$.e && web.setAttribute(_el$153, "href", _p$.e = _v$35);
|
|
1394
|
+
_v$36 !== _p$.t && web.setAttribute(_el$153, "aria-label", _p$.t = _v$36);
|
|
1395
|
+
_v$37 !== _p$.a && web.className(_el$153, _p$.a = _v$37);
|
|
1358
1396
|
return _p$;
|
|
1359
1397
|
}, {
|
|
1360
1398
|
e: void 0,
|
|
@@ -1362,7 +1400,7 @@ function LinkRenderer(props) {
|
|
|
1362
1400
|
a: void 0
|
|
1363
1401
|
});
|
|
1364
1402
|
web.runHydrationEvents();
|
|
1365
|
-
return _el$
|
|
1403
|
+
return _el$153;
|
|
1366
1404
|
})();
|
|
1367
1405
|
}
|
|
1368
1406
|
function ComponentRenderer(props) {
|
|
@@ -1441,20 +1479,20 @@ function ComponentRenderer(props) {
|
|
|
1441
1479
|
}
|
|
1442
1480
|
if (mode === "inline-warn") {
|
|
1443
1481
|
return (() => {
|
|
1444
|
-
var _el$
|
|
1445
|
-
web.setAttribute(_el$
|
|
1446
|
-
web.insert(_el$
|
|
1482
|
+
var _el$160 = web.getNextElement(_tmpl$41), _el$161 = _el$160.firstChild, _el$162 = _el$161.nextSibling;
|
|
1483
|
+
web.setAttribute(_el$160, "title", firstError);
|
|
1484
|
+
web.insert(_el$162, () => formatString.formatMCPUIString(strings.invalidComponent, {
|
|
1447
1485
|
type: props.component.type
|
|
1448
1486
|
}));
|
|
1449
|
-
web.effect(() => web.setAttribute(_el$
|
|
1450
|
-
return _el$
|
|
1487
|
+
web.effect(() => web.setAttribute(_el$160, "aria-label", strings.validationWarning));
|
|
1488
|
+
return _el$160;
|
|
1451
1489
|
})();
|
|
1452
1490
|
}
|
|
1453
1491
|
return (() => {
|
|
1454
|
-
var _el$
|
|
1455
|
-
web.insert(_el$
|
|
1456
|
-
web.insert(_el$
|
|
1457
|
-
return _el$
|
|
1492
|
+
var _el$163 = web.getNextElement(_tmpl$42), _el$164 = _el$163.firstChild, _el$165 = _el$164.nextSibling;
|
|
1493
|
+
web.insert(_el$164, () => strings.validationError);
|
|
1494
|
+
web.insert(_el$165, firstError);
|
|
1495
|
+
return _el$163;
|
|
1458
1496
|
})();
|
|
1459
1497
|
}
|
|
1460
1498
|
return web.createComponent(GenerativeUIErrorBoundary.GenerativeUIErrorBoundary, {
|
|
@@ -1748,10 +1786,10 @@ function ComponentRenderer(props) {
|
|
|
1748
1786
|
function UnsupportedComponentFallback(props) {
|
|
1749
1787
|
const strings = MCPUIStringsContext.useMCPUIStrings();
|
|
1750
1788
|
return (() => {
|
|
1751
|
-
var _el$
|
|
1752
|
-
web.insert(_el$
|
|
1753
|
-
web.insert(_el$
|
|
1754
|
-
return _el$
|
|
1789
|
+
var _el$166 = web.getNextElement(_tmpl$43), _el$169 = _el$166.firstChild, [_el$170, _co$34] = web.getNextMarker(_el$169.nextSibling), _el$167 = _el$170.nextSibling, _el$168 = _el$167.nextSibling;
|
|
1790
|
+
web.insert(_el$166, () => strings.unsupportedComponentType, _el$170, _co$34);
|
|
1791
|
+
web.insert(_el$168, () => props.component.type);
|
|
1792
|
+
return _el$166;
|
|
1755
1793
|
})();
|
|
1756
1794
|
}
|
|
1757
1795
|
function ActionRenderer(props) {
|
|
@@ -1791,27 +1829,27 @@ function ActionRenderer(props) {
|
|
|
1791
1829
|
const isDisabled = () => params.disabled || isExecutable() && isExecuting();
|
|
1792
1830
|
if (params.type === "link" || params.action === "link") {
|
|
1793
1831
|
return (() => {
|
|
1794
|
-
var _el$
|
|
1795
|
-
_el$
|
|
1796
|
-
web.insert(_el$
|
|
1832
|
+
var _el$171 = web.getNextElement(_tmpl$45), _el$173 = _el$171.firstChild, [_el$174, _co$35] = web.getNextMarker(_el$173.nextSibling), _el$175 = _el$174.nextSibling, [_el$176, _co$36] = web.getNextMarker(_el$175.nextSibling);
|
|
1833
|
+
_el$171.$$click = handleClick;
|
|
1834
|
+
web.insert(_el$171, web.createComponent(solidJs.Show, {
|
|
1797
1835
|
get when() {
|
|
1798
1836
|
return params.icon;
|
|
1799
1837
|
},
|
|
1800
1838
|
get children() {
|
|
1801
|
-
var _el$
|
|
1802
|
-
web.insert(_el$
|
|
1803
|
-
return _el$
|
|
1839
|
+
var _el$172 = web.getNextElement(_tmpl$44);
|
|
1840
|
+
web.insert(_el$172, () => params.icon);
|
|
1841
|
+
return _el$172;
|
|
1804
1842
|
}
|
|
1805
|
-
}), _el$
|
|
1806
|
-
web.insert(_el$
|
|
1843
|
+
}), _el$174, _co$35);
|
|
1844
|
+
web.insert(_el$171, () => params.label, _el$176, _co$36);
|
|
1807
1845
|
web.effect((_p$) => {
|
|
1808
|
-
var _v$38 = safeUrl.safeUrl(params.url) ?? "#", _v$39 = safeUrl.safeUrl(params.url) ? "_blank" : void 0, _v$40 = params.ariaLabel || params.label, _v$41 = `inline-flex items-center gap-2 px-4 py-2 rounded-md text-sm font-medium transition-colors focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500
|
|
1809
|
-
${params.variant === "primary" ? "bg-blue-600 text-white hover:bg-blue-700" : params.variant === "outline" ? "border border-gray-300 text-gray-700 hover:bg-gray-50 dark:border-gray-600 dark:text-gray-300 dark:hover:bg-gray-800" : "text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-300"}
|
|
1846
|
+
var _v$38 = safeUrl.safeUrl(params.url) ?? "#", _v$39 = safeUrl.safeUrl(params.url) ? "_blank" : void 0, _v$40 = params.ariaLabel || params.label, _v$41 = `inline-flex items-center gap-2 px-4 py-2 rounded-md text-sm font-medium transition-colors focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-[color:var(--mcp-ui-focus,var(--color-blue-500))]
|
|
1847
|
+
${params.variant === "primary" ? "bg-[color:var(--mcp-ui-accent,var(--color-blue-600))] text-[color:var(--mcp-ui-accent-fg,var(--color-white,#fff))] hover:bg-[color:var(--mcp-ui-accent-hover,var(--color-blue-700))]" : params.variant === "outline" ? "border border-[color:var(--mcp-ui-border,var(--color-gray-300,#d1d5db))] text-[color:var(--mcp-ui-fg,var(--color-gray-700,#374151))] hover:bg-[color:var(--mcp-ui-surface-hover,var(--color-gray-50,#f9fafb))] dark:border-[color:var(--mcp-ui-border,var(--color-gray-600,#4b5563))] dark:text-[color:var(--mcp-ui-fg,var(--color-gray-300,#d1d5db))] dark:hover:bg-[color:var(--mcp-ui-surface-hover,var(--color-gray-800,#1f2937))]" : "text-[color:var(--mcp-ui-accent,var(--color-blue-600))] hover:text-[color:var(--mcp-ui-accent,var(--color-blue-800))] dark:text-[color:var(--mcp-ui-accent,var(--color-blue-400))] dark:hover:text-[color:var(--mcp-ui-accent,var(--color-blue-300))]"}
|
|
1810
1848
|
${params.className || ""}`;
|
|
1811
|
-
_v$38 !== _p$.e && web.setAttribute(_el$
|
|
1812
|
-
_v$39 !== _p$.t && web.setAttribute(_el$
|
|
1813
|
-
_v$40 !== _p$.a && web.setAttribute(_el$
|
|
1814
|
-
_v$41 !== _p$.o && web.className(_el$
|
|
1849
|
+
_v$38 !== _p$.e && web.setAttribute(_el$171, "href", _p$.e = _v$38);
|
|
1850
|
+
_v$39 !== _p$.t && web.setAttribute(_el$171, "target", _p$.t = _v$39);
|
|
1851
|
+
_v$40 !== _p$.a && web.setAttribute(_el$171, "aria-label", _p$.a = _v$40);
|
|
1852
|
+
_v$41 !== _p$.o && web.className(_el$171, _p$.o = _v$41);
|
|
1815
1853
|
return _p$;
|
|
1816
1854
|
}, {
|
|
1817
1855
|
e: void 0,
|
|
@@ -1820,41 +1858,41 @@ function ActionRenderer(props) {
|
|
|
1820
1858
|
o: void 0
|
|
1821
1859
|
});
|
|
1822
1860
|
web.runHydrationEvents();
|
|
1823
|
-
return _el$
|
|
1861
|
+
return _el$171;
|
|
1824
1862
|
})();
|
|
1825
1863
|
}
|
|
1826
1864
|
return (() => {
|
|
1827
|
-
var _el$
|
|
1828
|
-
_el$
|
|
1829
|
-
web.insert(_el$
|
|
1865
|
+
var _el$177 = web.getNextElement(_tmpl$47), _el$180 = _el$177.firstChild, [_el$181, _co$37] = web.getNextMarker(_el$180.nextSibling), _el$182 = _el$181.nextSibling, [_el$183, _co$38] = web.getNextMarker(_el$182.nextSibling), _el$184 = _el$183.nextSibling, [_el$185, _co$39] = web.getNextMarker(_el$184.nextSibling);
|
|
1866
|
+
_el$177.$$click = handleClick;
|
|
1867
|
+
web.insert(_el$177, web.createComponent(solidJs.Show, {
|
|
1830
1868
|
get when() {
|
|
1831
1869
|
return web.memo(() => !!isExecuting())() && isExecutable();
|
|
1832
1870
|
},
|
|
1833
1871
|
get children() {
|
|
1834
1872
|
return web.getNextElement(_tmpl$46);
|
|
1835
1873
|
}
|
|
1836
|
-
}), _el$
|
|
1837
|
-
web.insert(_el$
|
|
1874
|
+
}), _el$181, _co$37);
|
|
1875
|
+
web.insert(_el$177, web.createComponent(solidJs.Show, {
|
|
1838
1876
|
get when() {
|
|
1839
1877
|
return web.memo(() => !!params.icon)() && !(isExecuting() && isExecutable());
|
|
1840
1878
|
},
|
|
1841
1879
|
get children() {
|
|
1842
|
-
var _el$
|
|
1843
|
-
web.insert(_el$
|
|
1844
|
-
return _el$
|
|
1880
|
+
var _el$179 = web.getNextElement(_tmpl$44);
|
|
1881
|
+
web.insert(_el$179, () => params.icon);
|
|
1882
|
+
return _el$179;
|
|
1845
1883
|
}
|
|
1846
|
-
}), _el$
|
|
1847
|
-
web.insert(_el$
|
|
1884
|
+
}), _el$183, _co$38);
|
|
1885
|
+
web.insert(_el$177, () => params.label, _el$185, _co$39);
|
|
1848
1886
|
web.effect((_p$) => {
|
|
1849
|
-
var _v$42 = isDisabled(), _v$43 = isExecuting() && isExecutable(), _v$44 = params.ariaLabel || params.label, _v$45 = `inline-flex items-center gap-2 px-4 py-2 rounded-md text-sm font-medium transition-colors focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500
|
|
1850
|
-
${params.variant === "primary" ? "bg-blue-600 text-white hover:bg-blue-700 shadow-sm" : params.variant === "secondary" ? "bg-gray-100 text-gray-900 hover:bg-gray-200 dark:bg-gray-700 dark:text-white dark:hover:bg-gray-600" : params.variant === "outline" ? "border border-gray-300 text-gray-700 hover:bg-gray-50 dark:border-gray-600 dark:text-gray-300 dark:hover:bg-gray-800" : params.variant === "danger" ? "bg-red-600 text-white hover:bg-red-700" : "bg-transparent text-gray-700 hover:bg-gray-100 dark:text-gray-300 dark:hover:bg-gray-800"}
|
|
1887
|
+
var _v$42 = isDisabled(), _v$43 = isExecuting() && isExecutable(), _v$44 = params.ariaLabel || params.label, _v$45 = `inline-flex items-center gap-2 px-4 py-2 rounded-md text-sm font-medium transition-colors focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-[color:var(--mcp-ui-focus,var(--color-blue-500))]
|
|
1888
|
+
${params.variant === "primary" ? "bg-[color:var(--mcp-ui-accent,var(--color-blue-600))] text-[color:var(--mcp-ui-accent-fg,var(--color-white,#fff))] hover:bg-[color:var(--mcp-ui-accent-hover,var(--color-blue-700))] shadow-[var(--mcp-ui-shadow,var(--shadow-sm))]" : params.variant === "secondary" ? "bg-[color:var(--mcp-ui-surface-muted,var(--color-gray-100,#f3f4f6))] text-[color:var(--mcp-ui-fg,var(--color-gray-900,#111827))] hover:bg-[color:var(--mcp-ui-surface-hover,var(--color-gray-200,#e5e7eb))] dark:bg-[color:var(--mcp-ui-surface-muted,var(--color-gray-700,#374151))] dark:text-[color:var(--mcp-ui-fg,var(--color-white,#fff))] dark:hover:bg-[color:var(--mcp-ui-surface-hover,var(--color-gray-600,#4b5563))]" : params.variant === "outline" ? "border border-[color:var(--mcp-ui-border,var(--color-gray-300,#d1d5db))] text-[color:var(--mcp-ui-fg,var(--color-gray-700,#374151))] hover:bg-[color:var(--mcp-ui-surface-hover,var(--color-gray-50,#f9fafb))] dark:border-[color:var(--mcp-ui-border,var(--color-gray-600,#4b5563))] dark:text-[color:var(--mcp-ui-fg,var(--color-gray-300,#d1d5db))] dark:hover:bg-[color:var(--mcp-ui-surface-hover,var(--color-gray-800,#1f2937))]" : params.variant === "danger" ? "bg-[color:var(--mcp-ui-danger,var(--color-red-600))] text-[color:var(--mcp-ui-accent-fg,var(--color-white,#fff))] hover:bg-[color:var(--mcp-ui-danger-hover,var(--color-red-700))]" : "bg-transparent text-[color:var(--mcp-ui-fg,var(--color-gray-700,#374151))] hover:bg-[color:var(--mcp-ui-surface-hover,var(--color-gray-100,#f3f4f6))] dark:text-[color:var(--mcp-ui-fg,var(--color-gray-300,#d1d5db))] dark:hover:bg-[color:var(--mcp-ui-surface-hover,var(--color-gray-800,#1f2937))]"}
|
|
1851
1889
|
${isDisabled() ? "opacity-50 cursor-not-allowed" : ""}
|
|
1852
1890
|
${params.size === "sm" ? "px-3 py-1.5 text-xs" : params.size === "lg" ? "px-6 py-3 text-base" : ""}
|
|
1853
1891
|
${params.className || ""}`;
|
|
1854
|
-
_v$42 !== _p$.e && web.setProperty(_el$
|
|
1855
|
-
_v$43 !== _p$.t && web.setAttribute(_el$
|
|
1856
|
-
_v$44 !== _p$.a && web.setAttribute(_el$
|
|
1857
|
-
_v$45 !== _p$.o && web.className(_el$
|
|
1892
|
+
_v$42 !== _p$.e && web.setProperty(_el$177, "disabled", _p$.e = _v$42);
|
|
1893
|
+
_v$43 !== _p$.t && web.setAttribute(_el$177, "aria-busy", _p$.t = _v$43);
|
|
1894
|
+
_v$44 !== _p$.a && web.setAttribute(_el$177, "aria-label", _p$.a = _v$44);
|
|
1895
|
+
_v$45 !== _p$.o && web.className(_el$177, _p$.o = _v$45);
|
|
1858
1896
|
return _p$;
|
|
1859
1897
|
}, {
|
|
1860
1898
|
e: void 0,
|
|
@@ -1863,7 +1901,7 @@ function ActionRenderer(props) {
|
|
|
1863
1901
|
o: void 0
|
|
1864
1902
|
});
|
|
1865
1903
|
web.runHydrationEvents();
|
|
1866
|
-
return _el$
|
|
1904
|
+
return _el$177;
|
|
1867
1905
|
})();
|
|
1868
1906
|
}
|
|
1869
1907
|
function ErrorCardRenderer(props) {
|
|
@@ -1877,62 +1915,62 @@ function ErrorCardRenderer(props) {
|
|
|
1877
1915
|
});
|
|
1878
1916
|
};
|
|
1879
1917
|
return (() => {
|
|
1880
|
-
var _el$
|
|
1881
|
-
web.insert(_el$
|
|
1918
|
+
var _el$186 = web.getNextElement(_tmpl$51), _el$203 = _el$186.firstChild, [_el$204, _co$43] = web.getNextMarker(_el$203.nextSibling), _el$187 = _el$204.nextSibling, _el$188 = _el$187.firstChild, _el$189 = _el$188.nextSibling, _el$190 = _el$189.firstChild, _el$191 = _el$190.nextSibling, _el$197 = _el$191.nextSibling, [_el$198, _co$40] = web.getNextMarker(_el$197.nextSibling), _el$199 = _el$198.nextSibling, [_el$200, _co$41] = web.getNextMarker(_el$199.nextSibling), _el$201 = _el$200.nextSibling, [_el$202, _co$42] = web.getNextMarker(_el$201.nextSibling);
|
|
1919
|
+
web.insert(_el$186, web.createComponent(CopyButton, {
|
|
1882
1920
|
getText: getErrorText,
|
|
1883
1921
|
get title() {
|
|
1884
1922
|
return strings.copyErrorDetails;
|
|
1885
1923
|
},
|
|
1886
1924
|
position: "top-right"
|
|
1887
|
-
}), _el$
|
|
1888
|
-
web.insert(_el$
|
|
1925
|
+
}), _el$204, _co$43);
|
|
1926
|
+
web.insert(_el$190, () => formatString.formatMCPUIString(strings.toolErrorTitle, {
|
|
1889
1927
|
tool: props.error.tool || strings.errorUnknownToolName
|
|
1890
1928
|
}));
|
|
1891
|
-
web.insert(_el$
|
|
1892
|
-
web.insert(_el$
|
|
1929
|
+
web.insert(_el$191, () => props.error.message || strings.errorToolExecution);
|
|
1930
|
+
web.insert(_el$189, web.createComponent(solidJs.Show, {
|
|
1893
1931
|
get when() {
|
|
1894
1932
|
return props.error.type;
|
|
1895
1933
|
},
|
|
1896
1934
|
get children() {
|
|
1897
|
-
var _el$
|
|
1898
|
-
web.insert(_el$
|
|
1935
|
+
var _el$192 = web.getNextElement(_tmpl$48);
|
|
1936
|
+
web.insert(_el$192, () => formatString.formatMCPUIString(strings.errorTypeLabel, {
|
|
1899
1937
|
type: props.error.type
|
|
1900
1938
|
}));
|
|
1901
|
-
return _el$
|
|
1939
|
+
return _el$192;
|
|
1902
1940
|
}
|
|
1903
|
-
}), _el$
|
|
1904
|
-
web.insert(_el$
|
|
1941
|
+
}), _el$198, _co$40);
|
|
1942
|
+
web.insert(_el$189, web.createComponent(solidJs.Show, {
|
|
1905
1943
|
get when() {
|
|
1906
1944
|
var _a;
|
|
1907
1945
|
return (_a = props.error.suggestions) == null ? void 0 : _a.length;
|
|
1908
1946
|
},
|
|
1909
1947
|
get children() {
|
|
1910
|
-
var _el$
|
|
1911
|
-
web.insert(_el$
|
|
1912
|
-
web.insert(_el$
|
|
1948
|
+
var _el$193 = web.getNextElement(_tmpl$49), _el$194 = _el$193.firstChild, _el$195 = _el$194.nextSibling;
|
|
1949
|
+
web.insert(_el$194, () => strings.errorSuggestions);
|
|
1950
|
+
web.insert(_el$195, web.createComponent(solidJs.For, {
|
|
1913
1951
|
get each() {
|
|
1914
1952
|
return props.error.suggestions;
|
|
1915
1953
|
},
|
|
1916
1954
|
children: (suggestion) => (() => {
|
|
1917
|
-
var _el$
|
|
1918
|
-
web.insert(_el$
|
|
1919
|
-
return _el$
|
|
1955
|
+
var _el$205 = web.getNextElement(_tmpl$52);
|
|
1956
|
+
web.insert(_el$205, suggestion);
|
|
1957
|
+
return _el$205;
|
|
1920
1958
|
})()
|
|
1921
1959
|
}));
|
|
1922
|
-
return _el$
|
|
1960
|
+
return _el$193;
|
|
1923
1961
|
}
|
|
1924
|
-
}), _el$
|
|
1925
|
-
web.insert(_el$
|
|
1962
|
+
}), _el$200, _co$41);
|
|
1963
|
+
web.insert(_el$189, web.createComponent(solidJs.Show, {
|
|
1926
1964
|
get when() {
|
|
1927
1965
|
return web.memo(() => !!mounted())() && props.error.timestamp;
|
|
1928
1966
|
},
|
|
1929
1967
|
get children() {
|
|
1930
|
-
var _el$
|
|
1931
|
-
web.insert(_el$
|
|
1932
|
-
return _el$
|
|
1968
|
+
var _el$196 = web.getNextElement(_tmpl$50);
|
|
1969
|
+
web.insert(_el$196, () => new Date(props.error.timestamp).toLocaleString(strings.locale));
|
|
1970
|
+
return _el$196;
|
|
1933
1971
|
}
|
|
1934
|
-
}), _el$
|
|
1935
|
-
return _el$
|
|
1972
|
+
}), _el$202, _co$42);
|
|
1973
|
+
return _el$186;
|
|
1936
1974
|
})();
|
|
1937
1975
|
}
|
|
1938
1976
|
function isErrorResponse(content) {
|
|
@@ -1956,23 +1994,23 @@ function UIResourceHtmlRenderer(props) {
|
|
|
1956
1994
|
return ((_a = props.resource.metadata) == null ? void 0 : _a.title) || ((_b = props.resource.uri) == null ? void 0 : _b.replace("ui://deposium/", "")) || strings.resourceTitle;
|
|
1957
1995
|
};
|
|
1958
1996
|
return (() => {
|
|
1959
|
-
var _el$
|
|
1960
|
-
web.insert(_el$
|
|
1997
|
+
var _el$206 = web.getNextElement(_tmpl$54), _el$209 = _el$206.firstChild, [_el$210, _co$44] = web.getNextMarker(_el$209.nextSibling), _el$211 = _el$210.nextSibling, [_el$212, _co$45] = web.getNextMarker(_el$211.nextSibling);
|
|
1998
|
+
web.insert(_el$206, web.createComponent(solidJs.Show, {
|
|
1961
1999
|
get when() {
|
|
1962
2000
|
var _a;
|
|
1963
2001
|
return ((_a = props.resource.metadata) == null ? void 0 : _a.title) || props.resource.uri;
|
|
1964
2002
|
},
|
|
1965
2003
|
get children() {
|
|
1966
|
-
var _el$
|
|
1967
|
-
web.insert(_el$
|
|
1968
|
-
return _el$
|
|
2004
|
+
var _el$207 = web.getNextElement(_tmpl$53), _el$208 = _el$207.firstChild;
|
|
2005
|
+
web.insert(_el$208, resourceTitle);
|
|
2006
|
+
return _el$207;
|
|
1969
2007
|
}
|
|
1970
|
-
}), _el$
|
|
1971
|
-
web.insert(_el$
|
|
2008
|
+
}), _el$210, _co$44);
|
|
2009
|
+
web.insert(_el$206, web.createComponent(SafeHtml.SafeHtml, {
|
|
1972
2010
|
"class": "p-4 prose prose-sm dark:prose-invert max-w-none",
|
|
1973
2011
|
html: htmlContent
|
|
1974
|
-
}), _el$
|
|
1975
|
-
return _el$
|
|
2012
|
+
}), _el$212, _co$45);
|
|
2013
|
+
return _el$206;
|
|
1976
2014
|
})();
|
|
1977
2015
|
}
|
|
1978
2016
|
const UIResourceRenderer = (props) => {
|
|
@@ -2078,10 +2116,10 @@ const UIResourceRenderer = (props) => {
|
|
|
2078
2116
|
return web.createComponent(RenderContext.RenderProvider, {
|
|
2079
2117
|
renderComponent,
|
|
2080
2118
|
get children() {
|
|
2081
|
-
var _el$
|
|
2082
|
-
web.spread(_el$
|
|
2119
|
+
var _el$213 = web.getNextElement(_tmpl$55), _el$214 = _el$213.firstChild, _el$215 = _el$214.nextSibling, [_el$216, _co$46] = web.getNextMarker(_el$215.nextSibling);
|
|
2120
|
+
web.spread(_el$213, web.mergeProps({
|
|
2083
2121
|
get ["class"]() {
|
|
2084
|
-
return `w-full ${props.class || ""}`;
|
|
2122
|
+
return `mcp-ui-root [background-color:var(--mcp-ui-bg)] w-full ${props.class || ""}`;
|
|
2085
2123
|
}
|
|
2086
2124
|
}, () => isLayoutContent ? {
|
|
2087
2125
|
"data-mcp-ui-layout-id": outerKey()
|
|
@@ -2089,14 +2127,14 @@ const UIResourceRenderer = (props) => {
|
|
|
2089
2127
|
"data-mcp-ui-component-id": outerKey()
|
|
2090
2128
|
}), false, true);
|
|
2091
2129
|
var _ref$3 = responsiveGrid.ref;
|
|
2092
|
-
typeof _ref$3 === "function" ? web.use(_ref$3, _el$
|
|
2093
|
-
web.insert(_el$
|
|
2130
|
+
typeof _ref$3 === "function" ? web.use(_ref$3, _el$214) : responsiveGrid.ref = _el$214;
|
|
2131
|
+
web.insert(_el$214, web.createComponent(solidJs.For, {
|
|
2094
2132
|
get each() {
|
|
2095
2133
|
return layout().components;
|
|
2096
2134
|
},
|
|
2097
2135
|
children: (component) => (() => {
|
|
2098
|
-
var _el$
|
|
2099
|
-
web.insert(_el$
|
|
2136
|
+
var _el$217 = web.getNextElement(_tmpl$56);
|
|
2137
|
+
web.insert(_el$217, web.createComponent(ComponentRenderer, {
|
|
2100
2138
|
component,
|
|
2101
2139
|
get onError() {
|
|
2102
2140
|
return props.onError;
|
|
@@ -2113,17 +2151,17 @@ const UIResourceRenderer = (props) => {
|
|
|
2113
2151
|
}));
|
|
2114
2152
|
web.effect((_p$) => {
|
|
2115
2153
|
var _v$48 = getGridStyleString(component), _v$49 = stableKey.getUiResourceStableKey(component);
|
|
2116
|
-
_p$.e = web.style(_el$
|
|
2117
|
-
_v$49 !== _p$.t && web.setAttribute(_el$
|
|
2154
|
+
_p$.e = web.style(_el$217, _v$48, _p$.e);
|
|
2155
|
+
_v$49 !== _p$.t && web.setAttribute(_el$217, "data-mcp-ui-component-id", _p$.t = _v$49);
|
|
2118
2156
|
return _p$;
|
|
2119
2157
|
}, {
|
|
2120
2158
|
e: void 0,
|
|
2121
2159
|
t: void 0
|
|
2122
2160
|
});
|
|
2123
|
-
return _el$
|
|
2161
|
+
return _el$217;
|
|
2124
2162
|
})()
|
|
2125
2163
|
}));
|
|
2126
|
-
web.insert(_el$
|
|
2164
|
+
web.insert(_el$213, web.createComponent(solidJs.Show, {
|
|
2127
2165
|
get when() {
|
|
2128
2166
|
return shouldShowAutoFooter();
|
|
2129
2167
|
},
|
|
@@ -2134,18 +2172,18 @@ const UIResourceRenderer = (props) => {
|
|
|
2134
2172
|
}
|
|
2135
2173
|
});
|
|
2136
2174
|
}
|
|
2137
|
-
}), _el$
|
|
2175
|
+
}), _el$216, _co$46);
|
|
2138
2176
|
web.effect((_p$) => {
|
|
2139
2177
|
var _v$46 = gridContainerStyle(), _v$47 = responsiveGrid.stacked();
|
|
2140
|
-
_p$.e = web.style(_el$
|
|
2141
|
-
_v$47 !== _p$.t && web.setAttribute(_el$
|
|
2178
|
+
_p$.e = web.style(_el$214, _v$46, _p$.e);
|
|
2179
|
+
_v$47 !== _p$.t && web.setAttribute(_el$214, "data-mcp-ui-stacked", _p$.t = _v$47);
|
|
2142
2180
|
return _p$;
|
|
2143
2181
|
}, {
|
|
2144
2182
|
e: void 0,
|
|
2145
2183
|
t: void 0
|
|
2146
2184
|
});
|
|
2147
2185
|
web.runHydrationEvents();
|
|
2148
|
-
return _el$
|
|
2186
|
+
return _el$213;
|
|
2149
2187
|
}
|
|
2150
2188
|
});
|
|
2151
2189
|
};
|