@seed-ship/mcp-ui-solid 6.19.1 → 6.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +519 -0
- package/README.md +791 -1
- package/dist/adapters/connector.cjs +15 -4
- package/dist/adapters/connector.cjs.map +1 -1
- package/dist/adapters/connector.d.ts +38 -0
- package/dist/adapters/connector.d.ts.map +1 -1
- package/dist/adapters/connector.js +15 -4
- package/dist/adapters/connector.js.map +1 -1
- package/dist/adapters/index.d.ts +4 -3
- package/dist/adapters/index.d.ts.map +1 -1
- package/dist/adapters/macro-run.cjs +25 -13
- package/dist/adapters/macro-run.cjs.map +1 -1
- package/dist/adapters/macro-run.d.ts +37 -2
- package/dist/adapters/macro-run.d.ts.map +1 -1
- package/dist/adapters/macro-run.js +25 -13
- package/dist/adapters/macro-run.js.map +1 -1
- package/dist/adapters.cjs +2 -0
- package/dist/adapters.cjs.map +1 -1
- package/dist/adapters.js +4 -2
- package/dist/components/ActionGroupRenderer.cjs +3 -1
- package/dist/components/ActionGroupRenderer.cjs.map +1 -1
- package/dist/components/ActionGroupRenderer.d.ts.map +1 -1
- package/dist/components/ActionGroupRenderer.js +3 -1
- package/dist/components/ActionGroupRenderer.js.map +1 -1
- package/dist/components/AgentCard.cjs +11 -8
- package/dist/components/AgentCard.cjs.map +1 -1
- package/dist/components/AgentCard.d.ts.map +1 -1
- package/dist/components/AgentCard.js +11 -8
- package/dist/components/AgentCard.js.map +1 -1
- package/dist/components/AgentHandoff.cjs +6 -1
- package/dist/components/AgentHandoff.cjs.map +1 -1
- package/dist/components/AgentHandoff.d.ts.map +1 -1
- package/dist/components/AgentHandoff.js +6 -1
- package/dist/components/AgentHandoff.js.map +1 -1
- package/dist/components/ArtifactRenderer.cjs +25 -6
- package/dist/components/ArtifactRenderer.cjs.map +1 -1
- package/dist/components/ArtifactRenderer.d.ts.map +1 -1
- package/dist/components/ArtifactRenderer.js +25 -6
- package/dist/components/ArtifactRenderer.js.map +1 -1
- package/dist/components/AutocompleteDropdown.cjs +30 -24
- package/dist/components/AutocompleteDropdown.cjs.map +1 -1
- package/dist/components/AutocompleteDropdown.d.ts.map +1 -1
- package/dist/components/AutocompleteDropdown.js +30 -24
- package/dist/components/AutocompleteDropdown.js.map +1 -1
- package/dist/components/AutocompleteFormField.cjs +3 -1
- package/dist/components/AutocompleteFormField.cjs.map +1 -1
- package/dist/components/AutocompleteFormField.d.ts.map +1 -1
- package/dist/components/AutocompleteFormField.js +4 -2
- package/dist/components/AutocompleteFormField.js.map +1 -1
- package/dist/components/BriefingDiff.cjs +45 -39
- package/dist/components/BriefingDiff.cjs.map +1 -1
- package/dist/components/BriefingDiff.d.ts.map +1 -1
- package/dist/components/BriefingDiff.js +45 -39
- package/dist/components/BriefingDiff.js.map +1 -1
- package/dist/components/CarouselRenderer.cjs +8 -2
- package/dist/components/CarouselRenderer.cjs.map +1 -1
- package/dist/components/CarouselRenderer.d.ts.map +1 -1
- package/dist/components/CarouselRenderer.js +8 -2
- package/dist/components/CarouselRenderer.js.map +1 -1
- package/dist/components/ChartJSRenderer.cjs +60 -36
- package/dist/components/ChartJSRenderer.cjs.map +1 -1
- package/dist/components/ChartJSRenderer.d.ts.map +1 -1
- package/dist/components/ChartJSRenderer.js +61 -37
- package/dist/components/ChartJSRenderer.js.map +1 -1
- package/dist/components/ChatPrompt.cjs +15 -9
- package/dist/components/ChatPrompt.cjs.map +1 -1
- package/dist/components/ChatPrompt.d.ts.map +1 -1
- package/dist/components/ChatPrompt.js +15 -9
- package/dist/components/ChatPrompt.js.map +1 -1
- package/dist/components/CodeBlockRenderer.cjs +34 -16
- package/dist/components/CodeBlockRenderer.cjs.map +1 -1
- package/dist/components/CodeBlockRenderer.d.ts.map +1 -1
- package/dist/components/CodeBlockRenderer.js +34 -16
- package/dist/components/CodeBlockRenderer.js.map +1 -1
- package/dist/components/DataPreviewSection.cjs +91 -44
- package/dist/components/DataPreviewSection.cjs.map +1 -1
- package/dist/components/DataPreviewSection.d.ts.map +1 -1
- package/dist/components/DataPreviewSection.js +92 -45
- package/dist/components/DataPreviewSection.js.map +1 -1
- package/dist/components/DegradedFallback.cjs +20 -16
- package/dist/components/DegradedFallback.cjs.map +1 -1
- package/dist/components/DegradedFallback.d.ts.map +1 -1
- package/dist/components/DegradedFallback.js +20 -16
- package/dist/components/DegradedFallback.js.map +1 -1
- package/dist/components/FooterRenderer.cjs +21 -17
- package/dist/components/FooterRenderer.cjs.map +1 -1
- package/dist/components/FooterRenderer.d.ts.map +1 -1
- package/dist/components/FooterRenderer.js +21 -17
- package/dist/components/FooterRenderer.js.map +1 -1
- package/dist/components/FormFieldRenderer.cjs +116 -93
- package/dist/components/FormFieldRenderer.cjs.map +1 -1
- package/dist/components/FormFieldRenderer.d.ts.map +1 -1
- package/dist/components/FormFieldRenderer.js +116 -93
- package/dist/components/FormFieldRenderer.js.map +1 -1
- package/dist/components/FormRenderer.cjs +55 -31
- package/dist/components/FormRenderer.cjs.map +1 -1
- package/dist/components/FormRenderer.d.ts.map +1 -1
- package/dist/components/FormRenderer.js +55 -31
- package/dist/components/FormRenderer.js.map +1 -1
- package/dist/components/GenerativeUIErrorBoundary.cjs +20 -15
- package/dist/components/GenerativeUIErrorBoundary.cjs.map +1 -1
- package/dist/components/GenerativeUIErrorBoundary.d.ts.map +1 -1
- package/dist/components/GenerativeUIErrorBoundary.js +20 -15
- package/dist/components/GenerativeUIErrorBoundary.js.map +1 -1
- package/dist/components/GraphRenderer.cjs +56 -33
- package/dist/components/GraphRenderer.cjs.map +1 -1
- package/dist/components/GraphRenderer.d.ts.map +1 -1
- package/dist/components/GraphRenderer.js +56 -33
- package/dist/components/GraphRenderer.js.map +1 -1
- package/dist/components/ImageGalleryRenderer.cjs +13 -4
- package/dist/components/ImageGalleryRenderer.cjs.map +1 -1
- package/dist/components/ImageGalleryRenderer.d.ts.map +1 -1
- package/dist/components/ImageGalleryRenderer.js +13 -4
- package/dist/components/ImageGalleryRenderer.js.map +1 -1
- package/dist/components/LightboxOverlay.cjs +16 -8
- package/dist/components/LightboxOverlay.cjs.map +1 -1
- package/dist/components/LightboxOverlay.d.ts.map +1 -1
- package/dist/components/LightboxOverlay.js +17 -9
- package/dist/components/LightboxOverlay.js.map +1 -1
- package/dist/components/MapRenderer.cjs +59 -29
- package/dist/components/MapRenderer.cjs.map +1 -1
- package/dist/components/MapRenderer.d.ts +10 -2
- package/dist/components/MapRenderer.d.ts.map +1 -1
- package/dist/components/MapRenderer.js +60 -30
- package/dist/components/MapRenderer.js.map +1 -1
- package/dist/components/ModalRenderer.cjs +4 -1
- package/dist/components/ModalRenderer.cjs.map +1 -1
- package/dist/components/ModalRenderer.d.ts.map +1 -1
- package/dist/components/ModalRenderer.js +5 -2
- package/dist/components/ModalRenderer.js.map +1 -1
- package/dist/components/ScratchpadPanel.cjs +578 -535
- package/dist/components/ScratchpadPanel.cjs.map +1 -1
- package/dist/components/ScratchpadPanel.d.ts.map +1 -1
- package/dist/components/ScratchpadPanel.js +578 -535
- package/dist/components/ScratchpadPanel.js.map +1 -1
- package/dist/components/StreamingUIRenderer.cjs +92 -28
- package/dist/components/StreamingUIRenderer.cjs.map +1 -1
- package/dist/components/StreamingUIRenderer.d.ts.map +1 -1
- package/dist/components/StreamingUIRenderer.js +92 -28
- package/dist/components/StreamingUIRenderer.js.map +1 -1
- package/dist/components/UIResourceRenderer.cjs +456 -363
- package/dist/components/UIResourceRenderer.cjs.map +1 -1
- package/dist/components/UIResourceRenderer.d.ts +21 -0
- package/dist/components/UIResourceRenderer.d.ts.map +1 -1
- package/dist/components/UIResourceRenderer.js +458 -365
- package/dist/components/UIResourceRenderer.js.map +1 -1
- package/dist/components/VerifiedText.cjs +39 -20
- package/dist/components/VerifiedText.cjs.map +1 -1
- package/dist/components/VerifiedText.d.ts +2 -1
- package/dist/components/VerifiedText.d.ts.map +1 -1
- package/dist/components/VerifiedText.js +39 -20
- package/dist/components/VerifiedText.js.map +1 -1
- package/dist/components/VideoRenderer.cjs +10 -5
- package/dist/components/VideoRenderer.cjs.map +1 -1
- package/dist/components/VideoRenderer.d.ts.map +1 -1
- package/dist/components/VideoRenderer.js +10 -5
- package/dist/components/VideoRenderer.js.map +1 -1
- package/dist/components/chart-data-table.cjs +38 -17
- package/dist/components/chart-data-table.cjs.map +1 -1
- package/dist/components/chart-data-table.d.ts +30 -1
- package/dist/components/chart-data-table.d.ts.map +1 -1
- package/dist/components/chart-data-table.js +38 -17
- package/dist/components/chart-data-table.js.map +1 -1
- package/dist/context/MCPActionContext.cjs +3 -1
- package/dist/context/MCPActionContext.cjs.map +1 -1
- package/dist/context/MCPActionContext.d.ts.map +1 -1
- package/dist/context/MCPActionContext.js +3 -1
- package/dist/context/MCPActionContext.js.map +1 -1
- package/dist/context/MCPUIStringsContext.cjs +285 -2
- package/dist/context/MCPUIStringsContext.cjs.map +1 -1
- package/dist/context/MCPUIStringsContext.d.ts +600 -3
- package/dist/context/MCPUIStringsContext.d.ts.map +1 -1
- package/dist/context/MCPUIStringsContext.js +285 -2
- package/dist/context/MCPUIStringsContext.js.map +1 -1
- package/dist/hooks/index.d.ts +2 -2
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/useStreamingUI.cjs +28 -10
- package/dist/hooks/useStreamingUI.cjs.map +1 -1
- package/dist/hooks/useStreamingUI.d.ts +37 -0
- package/dist/hooks/useStreamingUI.d.ts.map +1 -1
- package/dist/hooks/useStreamingUI.js +28 -10
- package/dist/hooks/useStreamingUI.js.map +1 -1
- package/dist/hooks.cjs +1 -0
- package/dist/hooks.cjs.map +1 -1
- package/dist/hooks.js +2 -1
- package/dist/index.cjs +23 -8
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +9 -3
- package/dist/index.d.ts +9 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18 -3
- package/dist/index.js.map +1 -1
- package/dist/services/validation.cjs +41 -16
- package/dist/services/validation.cjs.map +1 -1
- package/dist/services/validation.d.ts +47 -2
- package/dist/services/validation.d.ts.map +1 -1
- package/dist/services/validation.js +41 -16
- package/dist/services/validation.js.map +1 -1
- package/dist/utils/degraded-projections.cjs +37 -12
- package/dist/utils/degraded-projections.cjs.map +1 -1
- package/dist/utils/degraded-projections.d.ts +39 -3
- package/dist/utils/degraded-projections.d.ts.map +1 -1
- package/dist/utils/degraded-projections.js +37 -12
- package/dist/utils/degraded-projections.js.map +1 -1
- package/dist/utils/format-string.cjs +10 -0
- package/dist/utils/format-string.cjs.map +1 -0
- package/dist/utils/format-string.d.ts +26 -0
- package/dist/utils/format-string.d.ts.map +1 -0
- package/dist/utils/format-string.js +10 -0
- package/dist/utils/format-string.js.map +1 -0
- package/dist/validation.cjs +3 -0
- package/dist/validation.cjs.map +1 -1
- package/dist/validation.d.cts +2 -1
- package/dist/validation.d.ts +2 -1
- package/dist/validation.d.ts.map +1 -1
- package/dist/validation.js +4 -1
- package/package.json +1 -1
- package/src/adapters/connector.ts +58 -4
- package/src/adapters/index.ts +12 -2
- package/src/adapters/macro-run.ts +71 -11
- package/src/components/ActionGroupRenderer.tsx +3 -1
- package/src/components/AgentCard.tsx +27 -9
- package/src/components/AgentHandoff.tsx +4 -1
- package/src/components/ArtifactRenderer.tsx +17 -5
- package/src/components/AutocompleteDropdown.tsx +8 -6
- package/src/components/AutocompleteFormField.tsx +5 -1
- package/src/components/BriefingDiff.tsx +11 -3
- package/src/components/CarouselRenderer.tsx +4 -2
- package/src/components/ChartJSRenderer.tsx +18 -9
- package/src/components/ChatPrompt.tsx +13 -8
- package/src/components/CodeBlockRenderer.tsx +12 -10
- package/src/components/DataPreviewSection.tsx +92 -26
- package/src/components/DegradedFallback.tsx +4 -2
- package/src/components/FooterRenderer.tsx +3 -1
- package/src/components/FormFieldRenderer.tsx +34 -19
- package/src/components/FormRenderer.tsx +38 -10
- package/src/components/GenerativeUIErrorBoundary.tsx +8 -3
- package/src/components/GraphRenderer.tsx +31 -16
- package/src/components/ImageGalleryRenderer.tsx +8 -4
- package/src/components/LightboxOverlay.tsx +6 -4
- package/src/components/MapRenderer.tsx +57 -20
- package/src/components/ModalRenderer.tsx +3 -1
- package/src/components/ScratchpadPanel.tsx +95 -44
- package/src/components/StreamingUIRenderer.tsx +41 -11
- package/src/components/UIResourceRenderer.tsx +145 -63
- package/src/components/VerifiedText.tsx +19 -9
- package/src/components/VideoRenderer.tsx +6 -4
- package/src/components/chart-data-table.ts +68 -14
- package/src/context/MCPActionContext.tsx +4 -1
- package/src/context/MCPUIStringsContext.tsx +1004 -1
- package/src/hooks/index.ts +2 -1
- package/src/hooks/useStreamingUI.ts +64 -10
- package/src/index.ts +23 -0
- package/src/services/validation.ts +93 -16
- package/src/utils/degraded-projections.ts +75 -12
- package/src/utils/format-string.ts +33 -0
- package/src/validation.ts +5 -0
|
@@ -57,8 +57,10 @@ const RenderContext = require("./RenderContext.cjs");
|
|
|
57
57
|
const useAction = require("../hooks/useAction.cjs");
|
|
58
58
|
const createResponsiveGrid = require("../hooks/createResponsiveGrid.cjs");
|
|
59
59
|
const marked = require("marked");
|
|
60
|
-
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">Invalid chart data: missing data.datasets`), _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">Chart Error</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">Copy TSV`), _tmpl$14 = /* @__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">Download CSV`), _tmpl$15 = /* @__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">Download JSON`), _tmpl$16 = /* @__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"title="Export table"aria-label="Export table"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$17 = /* @__PURE__ */ web.template(`<span class="ml-2 text-xs font-normal text-gray-400">(virtualized: <!$><!/> rows)`), _tmpl$18 = /* @__PURE__ */ web.template(`<h3 class="text-sm font-semibold text-gray-900 dark:text-white mb-3 flex-shrink-0"><!$><!/><!$><!/>`), _tmpl$19 = /* @__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"aria-label="Clear search">×`), _tmpl$20 = /* @__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$21 = /* @__PURE__ */ web.template(`<p class="text-xs text-gray-500 dark:text-gray-400 mb-2"><!$><!/> result<!$><!/> on <!$><!/>`), _tmpl$22 = /* @__PURE__ */ web.template(`<div class="mt-3 flex items-center justify-between text-xs text-gray-500 dark:text-gray-400"><span>Showing <!$><!/> - <!$><!/> of <!$><!/>`), _tmpl$23 = /* @__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$24 = /* @__PURE__ */ web.template(`<span class=text-gray-400>/ page`), _tmpl$25 = /* @__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$26 = /* @__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$27 = /* @__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$28 = /* @__PURE__ */ web.template(`<option>`), _tmpl$29 = /* @__PURE__ */ web.template(`<span class="ml-2 text-sm font-medium text-gray-500 dark:text-gray-400">`), _tmpl$30 = /* @__PURE__ */ web.template(`<div class="mt-3 flex items-center"><span><!$><!/> <!$><!/>%`), _tmpl$31 = /* @__PURE__ */ web.template(`<p class="mt-2 text-xs text-gray-500 dark:text-gray-400">`), _tmpl$32 = /* @__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$33 = /* @__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$34 = /* @__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$35 = /* @__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$36 = /* @__PURE__ */ web.template(`<a target=_blank rel="noopener noreferrer"class=cursor-zoom-in>`), _tmpl$37 = /* @__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$38 = /* @__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>`, true, false, false), _tmpl$39 = /* @__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$40 = /* @__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$41 = /* @__PURE__ */ web.template(`<p class="text-xs text-gray-500 dark:text-gray-400 truncate">`), _tmpl$42 = /* @__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$43 = /* @__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 aria-label="Component validation warning"><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>Invalid <!$><!/>`), _tmpl$44 = /* @__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">Validation Error</p><p class="text-xs text-red-700 dark:text-red-300 mt-1">`), _tmpl$45 = /* @__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">Unsupported component type: <code class=font-mono>`), _tmpl$46 = /* @__PURE__ */ web.template(`<span aria-hidden=true>`), _tmpl$47 = /* @__PURE__ */ web.template(`<a rel="noopener noreferrer"><!$><!/><!$><!/>`), _tmpl$48 = /* @__PURE__ */ web.template(`<span class="animate-spin h-4 w-4 border-2 border-current border-t-transparent rounded-full"aria-hidden=true>`), _tmpl$49 = /* @__PURE__ */ web.template(`<button type=button><!$><!/><!$><!/><!$><!/>`), _tmpl$50 = /* @__PURE__ */ web.template(`<p class="text-xs text-red-600 dark:text-red-400 mt-1">Type: <!$><!/>`), _tmpl$51 = /* @__PURE__ */ web.template(`<div class=mt-3><p class="text-xs font-medium text-red-700 dark:text-red-300">Suggestions:</p><ul class="mt-1 text-xs text-red-600 dark:text-red-400 list-disc list-inside">`), _tmpl$52 = /* @__PURE__ */ web.template(`<p class="text-xs text-red-500 dark:text-red-500 mt-2">`), _tmpl$53 = /* @__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">Tool Error: <!$><!/></h4><p class="text-sm text-red-700 dark:text-red-300 mt-1"></p><!$><!/><!$><!/><!$><!/>`), _tmpl$54 = /* @__PURE__ */ web.template(`<li>`), _tmpl$55 = /* @__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$56 = /* @__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$57 = /* @__PURE__ */ web.template(`<div><div class="grid gap-4"data-mcp-ui-grid></div><!$><!/>`), _tmpl$58 = /* @__PURE__ */ web.template(`<div class=min-w-0>`);
|
|
60
|
+
const formatString = require("../utils/format-string.cjs");
|
|
61
|
+
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>`, 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>`);
|
|
61
62
|
function CopyButton(props) {
|
|
63
|
+
const strings = MCPUIStringsContext.useMCPUIStrings();
|
|
62
64
|
const [copied, setCopied] = solidJs.createSignal(false);
|
|
63
65
|
const handleCopy = async () => {
|
|
64
66
|
try {
|
|
@@ -87,7 +89,7 @@ function CopyButton(props) {
|
|
|
87
89
|
}
|
|
88
90
|
}));
|
|
89
91
|
web.effect((_p$) => {
|
|
90
|
-
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 ||
|
|
92
|
+
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;
|
|
91
93
|
_v$ !== _p$.e && web.className(_el$, _p$.e = _v$);
|
|
92
94
|
_v$2 !== _p$.t && web.setAttribute(_el$, "title", _p$.t = _v$2);
|
|
93
95
|
_v$3 !== _p$.a && web.setAttribute(_el$, "aria-label", _p$.a = _v$3);
|
|
@@ -103,6 +105,7 @@ function CopyButton(props) {
|
|
|
103
105
|
}
|
|
104
106
|
function ChartRenderer(props) {
|
|
105
107
|
var _a, _b;
|
|
108
|
+
const strings = MCPUIStringsContext.useMCPUIStrings();
|
|
106
109
|
const [useNative, setUseNative] = solidJs.createSignal(false);
|
|
107
110
|
const [iframeUrl, setIframeUrl] = solidJs.createSignal();
|
|
108
111
|
const [isLoading, setIsLoading] = solidJs.createSignal(true);
|
|
@@ -115,6 +118,12 @@ function ChartRenderer(props) {
|
|
|
115
118
|
return ((_a2 = params()) == null ? void 0 : _a2.renderer) || "auto";
|
|
116
119
|
};
|
|
117
120
|
const allowQuickchart = () => props.allowQuickchartFallback === true;
|
|
121
|
+
const chartImageAlt = () => {
|
|
122
|
+
var _a2;
|
|
123
|
+
return ((_a2 = params()) == null ? void 0 : _a2.title) ? formatString.formatMCPUIString(strings.chartWithTitleAlt, {
|
|
124
|
+
title: String(params().title)
|
|
125
|
+
}) : strings.chartVisualizationAlt;
|
|
126
|
+
};
|
|
118
127
|
const signalBlockedFallback = (reason) => {
|
|
119
128
|
setDegraded(true);
|
|
120
129
|
setIsLoading(false);
|
|
@@ -128,7 +137,11 @@ function ChartRenderer(props) {
|
|
|
128
137
|
});
|
|
129
138
|
};
|
|
130
139
|
if (!((_b = (_a = params()) == null ? void 0 : _a.data) == null ? void 0 : _b.datasets)) {
|
|
131
|
-
return
|
|
140
|
+
return (() => {
|
|
141
|
+
var _el$4 = web.getNextElement(_tmpl$4), _el$5 = _el$4.firstChild;
|
|
142
|
+
web.insert(_el$5, () => strings.chartInvalidData);
|
|
143
|
+
return _el$4;
|
|
144
|
+
})();
|
|
132
145
|
}
|
|
133
146
|
solidJs.createEffect(async () => {
|
|
134
147
|
const pref = rendererPref();
|
|
@@ -145,7 +158,7 @@ function ChartRenderer(props) {
|
|
|
145
158
|
setUseNative(true);
|
|
146
159
|
setIsLoading(false);
|
|
147
160
|
} else {
|
|
148
|
-
setError(
|
|
161
|
+
setError(strings.chartJsUnavailable);
|
|
149
162
|
setIsLoading(false);
|
|
150
163
|
}
|
|
151
164
|
} else {
|
|
@@ -185,61 +198,68 @@ function ChartRenderer(props) {
|
|
|
185
198
|
},
|
|
186
199
|
get fallback() {
|
|
187
200
|
return (() => {
|
|
188
|
-
var _el$
|
|
189
|
-
web.insert(_el$
|
|
201
|
+
var _el$6 = web.getNextElement(_tmpl$0), _el$17 = _el$6.firstChild, [_el$18, _co$2] = web.getNextMarker(_el$17.nextSibling), _el$19 = _el$18.nextSibling, [_el$20, _co$3] = web.getNextMarker(_el$19.nextSibling), _el$21 = _el$20.nextSibling, [_el$22, _co$4] = web.getNextMarker(_el$21.nextSibling), _el$23 = _el$22.nextSibling, [_el$24, _co$5] = web.getNextMarker(_el$23.nextSibling);
|
|
202
|
+
web.insert(_el$6, web.createComponent(solidJs.Show, {
|
|
190
203
|
get when() {
|
|
191
204
|
return degraded();
|
|
192
205
|
},
|
|
193
206
|
get children() {
|
|
194
|
-
var _el$
|
|
195
|
-
web.insert(_el$
|
|
196
|
-
message
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
207
|
+
var _el$7 = web.getNextElement(_tmpl$5);
|
|
208
|
+
web.insert(_el$7, web.createComponent(DegradedFallback.DegradedFallback, web.mergeProps({
|
|
209
|
+
get message() {
|
|
210
|
+
return strings.chartIframeUnavailable;
|
|
211
|
+
},
|
|
212
|
+
get caption() {
|
|
213
|
+
return strings.chartQuickchartCaption;
|
|
214
|
+
}
|
|
215
|
+
}, () => degradedProjections.chartToDegradedTable(params() ?? {}, {
|
|
216
|
+
series: strings.degradedSeries
|
|
217
|
+
}))));
|
|
218
|
+
return _el$7;
|
|
200
219
|
}
|
|
201
|
-
}), _el$
|
|
202
|
-
web.insert(_el$
|
|
220
|
+
}), _el$18, _co$2);
|
|
221
|
+
web.insert(_el$6, web.createComponent(solidJs.Show, {
|
|
203
222
|
get when() {
|
|
204
223
|
return isLoading();
|
|
205
224
|
},
|
|
206
225
|
get children() {
|
|
207
226
|
return web.getNextElement(_tmpl$6);
|
|
208
227
|
}
|
|
209
|
-
}), _el$
|
|
210
|
-
web.insert(_el$
|
|
228
|
+
}), _el$20, _co$3);
|
|
229
|
+
web.insert(_el$6, web.createComponent(solidJs.Show, {
|
|
211
230
|
get when() {
|
|
212
231
|
return error();
|
|
213
232
|
},
|
|
214
233
|
get children() {
|
|
215
|
-
var _el$
|
|
216
|
-
web.insert(_el$1,
|
|
217
|
-
|
|
234
|
+
var _el$9 = web.getNextElement(_tmpl$7), _el$0 = _el$9.firstChild, _el$1 = _el$0.firstChild, _el$10 = _el$1.nextSibling;
|
|
235
|
+
web.insert(_el$1, () => strings.chartError);
|
|
236
|
+
web.insert(_el$10, error);
|
|
237
|
+
return _el$9;
|
|
218
238
|
}
|
|
219
|
-
}), _el$
|
|
220
|
-
web.insert(_el$
|
|
239
|
+
}), _el$22, _co$4);
|
|
240
|
+
web.insert(_el$6, web.createComponent(solidJs.Show, {
|
|
221
241
|
get when() {
|
|
222
242
|
return web.memo(() => !!iframeUrl())() && !error();
|
|
223
243
|
},
|
|
224
244
|
get children() {
|
|
225
|
-
var _el$
|
|
226
|
-
web.insert(_el$
|
|
245
|
+
var _el$11 = web.getNextElement(_tmpl$9), _el$15 = _el$11.firstChild, [_el$16, _co$] = web.getNextMarker(_el$15.nextSibling), _el$13 = _el$16.nextSibling, _el$14 = _el$13.firstChild;
|
|
246
|
+
web.insert(_el$11, web.createComponent(solidJs.Show, {
|
|
227
247
|
get when() {
|
|
228
248
|
var _a2;
|
|
229
249
|
return (_a2 = params()) == null ? void 0 : _a2.title;
|
|
230
250
|
},
|
|
231
251
|
get children() {
|
|
232
|
-
var _el$
|
|
233
|
-
web.insert(_el$
|
|
252
|
+
var _el$12 = web.getNextElement(_tmpl$8);
|
|
253
|
+
web.insert(_el$12, () => {
|
|
234
254
|
var _a2;
|
|
235
255
|
return (_a2 = params()) == null ? void 0 : _a2.title;
|
|
236
256
|
});
|
|
237
|
-
return _el$
|
|
257
|
+
return _el$12;
|
|
238
258
|
}
|
|
239
|
-
}), _el$
|
|
240
|
-
_el$
|
|
259
|
+
}), _el$16, _co$);
|
|
260
|
+
_el$14.addEventListener("error", () => {
|
|
241
261
|
var _a2;
|
|
242
|
-
setError(
|
|
262
|
+
setError(strings.chartLoadFailed);
|
|
243
263
|
(_a2 = props.onError) == null ? void 0 : _a2.call(props, {
|
|
244
264
|
type: "render",
|
|
245
265
|
message: "Chart rendering failed",
|
|
@@ -247,21 +267,20 @@ function ChartRenderer(props) {
|
|
|
247
267
|
});
|
|
248
268
|
});
|
|
249
269
|
web.effect((_p$) => {
|
|
250
|
-
var
|
|
251
|
-
|
|
252
|
-
_v$
|
|
253
|
-
_v$
|
|
254
|
-
_v$6 !== _p$.a && web.setAttribute(_el$13, "alt", _p$.a = _v$6);
|
|
270
|
+
var _v$4 = chartImageAlt(), _v$5 = iframeUrl(), _v$6 = chartImageAlt();
|
|
271
|
+
_v$4 !== _p$.e && web.setAttribute(_el$13, "aria-label", _p$.e = _v$4);
|
|
272
|
+
_v$5 !== _p$.t && web.setAttribute(_el$14, "src", _p$.t = _v$5);
|
|
273
|
+
_v$6 !== _p$.a && web.setAttribute(_el$14, "alt", _p$.a = _v$6);
|
|
255
274
|
return _p$;
|
|
256
275
|
}, {
|
|
257
276
|
e: void 0,
|
|
258
277
|
t: void 0,
|
|
259
278
|
a: void 0
|
|
260
279
|
});
|
|
261
|
-
return _el$
|
|
280
|
+
return _el$11;
|
|
262
281
|
}
|
|
263
|
-
}), _el$
|
|
264
|
-
return _el$
|
|
282
|
+
}), _el$24, _co$5);
|
|
283
|
+
return _el$6;
|
|
265
284
|
})();
|
|
266
285
|
},
|
|
267
286
|
get children() {
|
|
@@ -328,13 +347,15 @@ function highlightQuery(html, query) {
|
|
|
328
347
|
}
|
|
329
348
|
return template.innerHTML;
|
|
330
349
|
}
|
|
331
|
-
function defaultCitationChip(pageNum, fileName, verified = true) {
|
|
350
|
+
function defaultCitationChip(pageNum, fileName, verified = true, viewSourceLabel = MCPUIStringsContext.DEFAULT_MCPUI_STRINGS.citationViewSource) {
|
|
332
351
|
const safeDocName = encodeURIComponent(fileName || "");
|
|
333
352
|
const label = fileName ? `${fileName} - ${pageNum}` : `${pageNum}`;
|
|
334
353
|
if (!verified) {
|
|
335
354
|
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>`;
|
|
336
355
|
}
|
|
337
|
-
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="
|
|
356
|
+
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, {
|
|
357
|
+
label
|
|
358
|
+
}))}">`, '<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("");
|
|
338
359
|
}
|
|
339
360
|
function transformCellCitations(text, ctx) {
|
|
340
361
|
let out = text.replace(new RegExp("(?<![p.])\\[(\\d{1,2})\\](?!\\()", "g"), "[📄 CITATION $1]");
|
|
@@ -344,8 +365,10 @@ function transformCellCitations(text, ctx) {
|
|
|
344
365
|
const id = parseInt(idStr, 10);
|
|
345
366
|
const mapping = ctx.map[id] ?? ctx.map[String(id)];
|
|
346
367
|
if (ctx.render) return ctx.render(id, mapping);
|
|
347
|
-
if (mapping) return defaultCitationChip(mapping.page, mapping.file ?? "", true);
|
|
348
|
-
return Object.keys(ctx.map).length > 0 ? "" :
|
|
368
|
+
if (mapping) return defaultCitationChip(mapping.page, mapping.file ?? "", true, ctx.viewSourceLabel);
|
|
369
|
+
return Object.keys(ctx.map).length > 0 ? "" : formatString.formatMCPUIString(ctx.unresolvedLabel ?? MCPUIStringsContext.DEFAULT_MCPUI_STRINGS.citationUnresolved, {
|
|
370
|
+
id
|
|
371
|
+
});
|
|
349
372
|
});
|
|
350
373
|
}
|
|
351
374
|
function renderCellValue(value, citationCtx) {
|
|
@@ -405,7 +428,14 @@ function TableRenderer(props) {
|
|
|
405
428
|
const strings = MCPUIStringsContext.useMCPUIStrings();
|
|
406
429
|
const citationCtx = tableParams.citationMap ? {
|
|
407
430
|
map: tableParams.citationMap,
|
|
408
|
-
render: tableParams.citationRender
|
|
431
|
+
render: tableParams.citationRender,
|
|
432
|
+
// Getters, not snapshots: cells read the provider's current wording.
|
|
433
|
+
get unresolvedLabel() {
|
|
434
|
+
return strings.citationUnresolved;
|
|
435
|
+
},
|
|
436
|
+
get viewSourceLabel() {
|
|
437
|
+
return strings.citationViewSource;
|
|
438
|
+
}
|
|
409
439
|
} : void 0;
|
|
410
440
|
const allRows = () => tableParams.rows || [];
|
|
411
441
|
const columns = () => tableParams.columns || [];
|
|
@@ -441,7 +471,7 @@ function TableRenderer(props) {
|
|
|
441
471
|
if (isNum) {
|
|
442
472
|
cmp = (Number(va) || 0) - (Number(vb) || 0);
|
|
443
473
|
} else {
|
|
444
|
-
cmp = String(va).localeCompare(String(vb),
|
|
474
|
+
cmp = String(va).localeCompare(String(vb), strings.locale, {
|
|
445
475
|
sensitivity: "base"
|
|
446
476
|
});
|
|
447
477
|
}
|
|
@@ -456,7 +486,7 @@ function TableRenderer(props) {
|
|
|
456
486
|
const [debouncedQuery, setDebouncedQuery] = solidJs.createSignal("");
|
|
457
487
|
let searchTimer = null;
|
|
458
488
|
const isSearchable = () => tableParams.searchable !== false;
|
|
459
|
-
const searchPlaceholder = () => tableParams.searchPlaceholder ||
|
|
489
|
+
const searchPlaceholder = () => tableParams.searchPlaceholder || strings.tableSearchPlaceholder;
|
|
460
490
|
const handleSearch = (value) => {
|
|
461
491
|
setSearchQuery(value);
|
|
462
492
|
if (searchTimer) clearTimeout(searchTimer);
|
|
@@ -514,7 +544,7 @@ function TableRenderer(props) {
|
|
|
514
544
|
}
|
|
515
545
|
opts.push({
|
|
516
546
|
value: 0,
|
|
517
|
-
label:
|
|
547
|
+
label: strings.paginationAllRows
|
|
518
548
|
});
|
|
519
549
|
return opts;
|
|
520
550
|
};
|
|
@@ -641,30 +671,30 @@ ${dataRows}`;
|
|
|
641
671
|
};
|
|
642
672
|
const tableId = `table-${Math.random().toString(36).slice(2, 9)}`;
|
|
643
673
|
const StandardTableBody = () => (() => {
|
|
644
|
-
var _el$
|
|
645
|
-
web.insert(_el$
|
|
674
|
+
var _el$25 = web.getNextElement(_tmpl$1);
|
|
675
|
+
web.insert(_el$25, web.createComponent(solidJs.For, {
|
|
646
676
|
get each() {
|
|
647
677
|
return clientVisibleRows().slice(0, validation.DEFAULT_RESOURCE_LIMITS.maxTableRows);
|
|
648
678
|
},
|
|
649
679
|
children: (row, i) => (() => {
|
|
650
|
-
var _el$
|
|
651
|
-
web.insert(_el$
|
|
680
|
+
var _el$26 = web.getNextElement(_tmpl$10);
|
|
681
|
+
web.insert(_el$26, web.createComponent(solidJs.For, {
|
|
652
682
|
get each() {
|
|
653
683
|
return tableParams.columns;
|
|
654
684
|
},
|
|
655
685
|
children: (column) => (() => {
|
|
656
|
-
var _el$
|
|
657
|
-
web.insert(_el$
|
|
686
|
+
var _el$27 = web.getNextElement(_tmpl$11);
|
|
687
|
+
web.insert(_el$27, web.createComponent(SafeHtml.SafeHtml, {
|
|
658
688
|
html: () => highlightQuery(renderCellValue(row[column.key], citationCtx), debouncedQuery())
|
|
659
689
|
}));
|
|
660
|
-
return _el$
|
|
690
|
+
return _el$27;
|
|
661
691
|
})()
|
|
662
692
|
}));
|
|
663
|
-
web.effect(() => web.className(_el$
|
|
664
|
-
return _el$
|
|
693
|
+
web.effect(() => web.className(_el$26, `hover:bg-gray-50 dark:hover:bg-gray-700/50 transition-colors ${i() % 2 === 0 ? "bg-white dark:bg-gray-800" : "bg-gray-50/30 dark:bg-gray-800/50"}`));
|
|
694
|
+
return _el$26;
|
|
665
695
|
})()
|
|
666
696
|
}));
|
|
667
|
-
return _el$
|
|
697
|
+
return _el$25;
|
|
668
698
|
})();
|
|
669
699
|
const VirtualizedTableBody = () => {
|
|
670
700
|
const v = virtualizer();
|
|
@@ -674,72 +704,76 @@ ${dataRows}`;
|
|
|
674
704
|
const opts = virtualizeOpts();
|
|
675
705
|
const rowHeight = opts.rowHeight ?? 48;
|
|
676
706
|
return (() => {
|
|
677
|
-
var _el$
|
|
678
|
-
web.setStyleProperty(_el$
|
|
679
|
-
web.insert(_el$
|
|
707
|
+
var _el$28 = web.getNextElement(_tmpl$12);
|
|
708
|
+
web.setStyleProperty(_el$28, "height", `${totalSize}px`);
|
|
709
|
+
web.insert(_el$28, web.createComponent(solidJs.For, {
|
|
680
710
|
each: items,
|
|
681
711
|
children: (virtualRow) => {
|
|
682
712
|
const row = tableParams.rows[virtualRow.index];
|
|
683
713
|
return (() => {
|
|
684
|
-
var _el$
|
|
685
|
-
web.setStyleProperty(_el$
|
|
686
|
-
web.insert(_el$
|
|
714
|
+
var _el$29 = web.getNextElement(_tmpl$10);
|
|
715
|
+
web.setStyleProperty(_el$29, "height", `${rowHeight}px`);
|
|
716
|
+
web.insert(_el$29, web.createComponent(solidJs.For, {
|
|
687
717
|
get each() {
|
|
688
718
|
return tableParams.columns;
|
|
689
719
|
},
|
|
690
720
|
children: (column) => (() => {
|
|
691
|
-
var _el$
|
|
692
|
-
web.insert(_el$
|
|
721
|
+
var _el$30 = web.getNextElement(_tmpl$11);
|
|
722
|
+
web.insert(_el$30, web.createComponent(SafeHtml.SafeHtml, {
|
|
693
723
|
html: () => highlightQuery(renderCellValue(row[column.key], citationCtx), debouncedQuery())
|
|
694
724
|
}));
|
|
695
|
-
return _el$
|
|
725
|
+
return _el$30;
|
|
696
726
|
})()
|
|
697
727
|
}));
|
|
698
728
|
web.effect((_p$) => {
|
|
699
729
|
var _v$7 = `hover:bg-gray-50 dark:hover:bg-gray-700/50 transition-colors absolute left-0 right-0 ${virtualRow.index % 2 === 0 ? "bg-white dark:bg-gray-800" : "bg-gray-50/30 dark:bg-gray-800/50"}`, _v$8 = `translateY(${virtualRow.start}px)`;
|
|
700
|
-
_v$7 !== _p$.e && web.className(_el$
|
|
701
|
-
_v$8 !== _p$.t && web.setStyleProperty(_el$
|
|
730
|
+
_v$7 !== _p$.e && web.className(_el$29, _p$.e = _v$7);
|
|
731
|
+
_v$8 !== _p$.t && web.setStyleProperty(_el$29, "transform", _p$.t = _v$8);
|
|
702
732
|
return _p$;
|
|
703
733
|
}, {
|
|
704
734
|
e: void 0,
|
|
705
735
|
t: void 0
|
|
706
736
|
});
|
|
707
|
-
return _el$
|
|
737
|
+
return _el$29;
|
|
708
738
|
})();
|
|
709
739
|
}
|
|
710
740
|
}));
|
|
711
|
-
return _el$
|
|
741
|
+
return _el$28;
|
|
712
742
|
})();
|
|
713
743
|
};
|
|
714
744
|
return web.createComponent(ExpandableWrapper.ExpandableWrapper, {
|
|
715
745
|
get title() {
|
|
716
|
-
return tableParams.title ||
|
|
746
|
+
return tableParams.title || strings.tableTitle;
|
|
717
747
|
},
|
|
718
748
|
get copyData() {
|
|
719
749
|
return getTableCSV();
|
|
720
750
|
},
|
|
721
|
-
copyLabel
|
|
751
|
+
get copyLabel() {
|
|
752
|
+
return strings.tableCopyCsv;
|
|
753
|
+
},
|
|
722
754
|
get toolbarVariant() {
|
|
723
755
|
return props.toolbarVariant;
|
|
724
756
|
},
|
|
725
757
|
onExpandedChange: setSelfExpanded,
|
|
726
758
|
get children() {
|
|
727
|
-
var _el$
|
|
728
|
-
web.insert(_el$
|
|
759
|
+
var _el$31 = web.getNextElement(_tmpl$24), _el$92 = _el$31.firstChild, [_el$93, _co$19] = web.getNextMarker(_el$92.nextSibling), _el$39 = _el$93.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);
|
|
760
|
+
web.insert(_el$31, web.createComponent(solidJs.Show, {
|
|
729
761
|
when: exportable,
|
|
730
762
|
get fallback() {
|
|
731
763
|
return web.createComponent(CopyButton, {
|
|
732
764
|
getText: getTableCSV,
|
|
733
|
-
title
|
|
765
|
+
get title() {
|
|
766
|
+
return strings.tableCopyCsv;
|
|
767
|
+
},
|
|
734
768
|
position: "top-right"
|
|
735
769
|
});
|
|
736
770
|
},
|
|
737
771
|
get children() {
|
|
738
|
-
var _el$
|
|
739
|
-
_el$
|
|
772
|
+
var _el$32 = web.getNextElement(_tmpl$14), _el$33 = _el$32.firstChild, _el$37 = _el$33.nextSibling, [_el$38, _co$6] = web.getNextMarker(_el$37.nextSibling);
|
|
773
|
+
_el$33.$$click = () => setShowExportMenu(!showExportMenu());
|
|
740
774
|
var _ref$ = exportTriggerRef;
|
|
741
|
-
typeof _ref$ === "function" ? web.use(_ref$, _el$
|
|
742
|
-
web.insert(_el$
|
|
775
|
+
typeof _ref$ === "function" ? web.use(_ref$, _el$33) : exportTriggerRef = _el$33;
|
|
776
|
+
web.insert(_el$32, web.createComponent(PortalDropdownMenu.PortalDropdownMenu, {
|
|
743
777
|
get open() {
|
|
744
778
|
return showExportMenu();
|
|
745
779
|
},
|
|
@@ -752,136 +786,154 @@ ${dataRows}`;
|
|
|
752
786
|
return exportFormats.includes("tsv");
|
|
753
787
|
},
|
|
754
788
|
get children() {
|
|
755
|
-
var _el$
|
|
756
|
-
_el$
|
|
789
|
+
var _el$34 = web.getNextElement(_tmpl$13);
|
|
790
|
+
_el$34.$$click = () => handleExport("tsv");
|
|
791
|
+
web.insert(_el$34, () => strings.tableCopyTsv);
|
|
757
792
|
web.runHydrationEvents();
|
|
758
|
-
return _el$
|
|
793
|
+
return _el$34;
|
|
759
794
|
}
|
|
760
795
|
}), web.createComponent(solidJs.Show, {
|
|
761
796
|
get when() {
|
|
762
797
|
return exportFormats.includes("csv");
|
|
763
798
|
},
|
|
764
799
|
get children() {
|
|
765
|
-
var _el$
|
|
766
|
-
_el$
|
|
800
|
+
var _el$35 = web.getNextElement(_tmpl$13);
|
|
801
|
+
_el$35.$$click = () => handleExport("csv");
|
|
802
|
+
web.insert(_el$35, () => strings.tableDownloadCsv);
|
|
767
803
|
web.runHydrationEvents();
|
|
768
|
-
return _el$
|
|
804
|
+
return _el$35;
|
|
769
805
|
}
|
|
770
806
|
}), web.createComponent(solidJs.Show, {
|
|
771
807
|
get when() {
|
|
772
808
|
return exportFormats.includes("json");
|
|
773
809
|
},
|
|
774
810
|
get children() {
|
|
775
|
-
var _el$
|
|
776
|
-
_el$
|
|
811
|
+
var _el$36 = web.getNextElement(_tmpl$13);
|
|
812
|
+
_el$36.$$click = () => handleExport("json");
|
|
813
|
+
web.insert(_el$36, () => strings.tableDownloadJson);
|
|
777
814
|
web.runHydrationEvents();
|
|
778
|
-
return _el$
|
|
815
|
+
return _el$36;
|
|
779
816
|
}
|
|
780
817
|
})];
|
|
781
818
|
}
|
|
782
|
-
}), _el$
|
|
783
|
-
web.effect(() =>
|
|
819
|
+
}), _el$38, _co$6);
|
|
820
|
+
web.effect((_p$) => {
|
|
821
|
+
var _v$9 = strings.tableExport, _v$0 = strings.tableExport, _v$1 = showExportMenu();
|
|
822
|
+
_v$9 !== _p$.e && web.setAttribute(_el$33, "title", _p$.e = _v$9);
|
|
823
|
+
_v$0 !== _p$.t && web.setAttribute(_el$33, "aria-label", _p$.t = _v$0);
|
|
824
|
+
_v$1 !== _p$.a && web.setAttribute(_el$33, "aria-expanded", _p$.a = _v$1);
|
|
825
|
+
return _p$;
|
|
826
|
+
}, {
|
|
827
|
+
e: void 0,
|
|
828
|
+
t: void 0,
|
|
829
|
+
a: void 0
|
|
830
|
+
});
|
|
784
831
|
web.runHydrationEvents();
|
|
785
|
-
return _el$
|
|
832
|
+
return _el$32;
|
|
786
833
|
}
|
|
787
|
-
}), _el$
|
|
788
|
-
web.insert(_el$
|
|
834
|
+
}), _el$93, _co$19);
|
|
835
|
+
web.insert(_el$39, web.createComponent(solidJs.Show, {
|
|
789
836
|
get when() {
|
|
790
837
|
return tableParams.title;
|
|
791
838
|
},
|
|
792
839
|
get children() {
|
|
793
|
-
var _el$
|
|
794
|
-
web.setAttribute(_el$
|
|
795
|
-
web.insert(_el$
|
|
796
|
-
web.insert(_el$
|
|
840
|
+
var _el$40 = web.getNextElement(_tmpl$16), _el$42 = _el$40.firstChild, [_el$43, _co$7] = web.getNextMarker(_el$42.nextSibling), _el$44 = _el$43.nextSibling, [_el$45, _co$8] = web.getNextMarker(_el$44.nextSibling);
|
|
841
|
+
web.setAttribute(_el$40, "id", `${tableId}-title`);
|
|
842
|
+
web.insert(_el$40, () => tableParams.title, _el$43, _co$7);
|
|
843
|
+
web.insert(_el$40, web.createComponent(solidJs.Show, {
|
|
797
844
|
get when() {
|
|
798
845
|
return isVirtualizing();
|
|
799
846
|
},
|
|
800
847
|
get children() {
|
|
801
|
-
var _el$
|
|
802
|
-
_el$
|
|
803
|
-
web.insert(_el$40, () => {
|
|
848
|
+
var _el$41 = web.getNextElement(_tmpl$15);
|
|
849
|
+
web.insert(_el$41, () => {
|
|
804
850
|
var _a;
|
|
805
|
-
return (
|
|
806
|
-
|
|
807
|
-
|
|
851
|
+
return formatString.formatMCPUIString(strings.tableVirtualizedRows, {
|
|
852
|
+
count: ((_a = tableParams.rows) == null ? void 0 : _a.length) ?? 0
|
|
853
|
+
});
|
|
854
|
+
});
|
|
855
|
+
return _el$41;
|
|
808
856
|
}
|
|
809
|
-
}), _el$
|
|
810
|
-
return _el$
|
|
857
|
+
}), _el$45, _co$8);
|
|
858
|
+
return _el$40;
|
|
811
859
|
}
|
|
812
|
-
}), _el$
|
|
813
|
-
web.insert(_el$
|
|
860
|
+
}), _el$85, _co$15);
|
|
861
|
+
web.insert(_el$39, web.createComponent(solidJs.Show, {
|
|
814
862
|
get when() {
|
|
815
863
|
return isSearchable();
|
|
816
864
|
},
|
|
817
865
|
get children() {
|
|
818
866
|
return [(() => {
|
|
819
|
-
var _el$
|
|
820
|
-
_el$
|
|
821
|
-
web.insert(_el$
|
|
867
|
+
var _el$46 = web.getNextElement(_tmpl$18), _el$47 = _el$46.firstChild, _el$48 = _el$47.nextSibling, _el$50 = _el$48.nextSibling, [_el$51, _co$9] = web.getNextMarker(_el$50.nextSibling);
|
|
868
|
+
_el$48.$$input = (e) => handleSearch(e.currentTarget.value);
|
|
869
|
+
web.insert(_el$46, web.createComponent(solidJs.Show, {
|
|
822
870
|
get when() {
|
|
823
871
|
return searchQuery();
|
|
824
872
|
},
|
|
825
873
|
get children() {
|
|
826
|
-
var _el$
|
|
827
|
-
_el$
|
|
874
|
+
var _el$49 = web.getNextElement(_tmpl$17);
|
|
875
|
+
_el$49.$$click = () => {
|
|
828
876
|
handleSearch("");
|
|
829
877
|
setSearchQuery("");
|
|
830
878
|
setDebouncedQuery("");
|
|
831
879
|
};
|
|
880
|
+
web.effect(() => web.setAttribute(_el$49, "aria-label", strings.tableClearSearch));
|
|
832
881
|
web.runHydrationEvents();
|
|
833
|
-
return _el$
|
|
882
|
+
return _el$49;
|
|
834
883
|
}
|
|
835
|
-
}), _el$
|
|
836
|
-
web.effect(() => web.setAttribute(_el$
|
|
837
|
-
web.effect(() => web.setProperty(_el$
|
|
884
|
+
}), _el$51, _co$9);
|
|
885
|
+
web.effect(() => web.setAttribute(_el$48, "placeholder", searchPlaceholder()));
|
|
886
|
+
web.effect(() => web.setProperty(_el$48, "value", searchQuery()));
|
|
838
887
|
web.runHydrationEvents();
|
|
839
|
-
return _el$
|
|
888
|
+
return _el$46;
|
|
840
889
|
})(), web.createComponent(solidJs.Show, {
|
|
841
890
|
get when() {
|
|
842
891
|
return web.memo(() => !!debouncedQuery())() && filteredRows().length !== sortedRows().length;
|
|
843
892
|
},
|
|
844
893
|
get children() {
|
|
845
|
-
var _el$
|
|
846
|
-
web.insert(_el$
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
894
|
+
var _el$52 = web.getNextElement(_tmpl$19);
|
|
895
|
+
web.insert(_el$52, () => formatString.formatMCPUIString(filteredRows().length === 1 ? strings.tableSearchResultsOne : strings.tableSearchResultsMany, {
|
|
896
|
+
count: filteredRows().length,
|
|
897
|
+
total: sortedRows().length
|
|
898
|
+
}));
|
|
899
|
+
return _el$52;
|
|
850
900
|
}
|
|
851
901
|
})];
|
|
852
902
|
}
|
|
853
|
-
}), _el$
|
|
903
|
+
}), _el$87, _co$16);
|
|
854
904
|
var _ref$2 = scrollContainerRef;
|
|
855
|
-
typeof _ref$2 === "function" ? web.use(_ref$2, _el$
|
|
856
|
-
web.insert(_el$
|
|
905
|
+
typeof _ref$2 === "function" ? web.use(_ref$2, _el$53) : scrollContainerRef = _el$53;
|
|
906
|
+
web.insert(_el$56, web.createComponent(solidJs.For, {
|
|
857
907
|
get each() {
|
|
858
908
|
return tableParams.columns;
|
|
859
909
|
},
|
|
860
910
|
children: (column) => (() => {
|
|
861
|
-
var _el$
|
|
862
|
-
web.addEventListener(_el$
|
|
863
|
-
web.insert(_el$
|
|
864
|
-
web.insert(_el$
|
|
911
|
+
var _el$94 = web.getNextElement(_tmpl$25), _el$95 = _el$94.firstChild, _el$97 = _el$95.firstChild, [_el$98, _co$20] = web.getNextMarker(_el$97.nextSibling), _el$96 = _el$98.nextSibling;
|
|
912
|
+
web.addEventListener(_el$94, "click", () => handleSort(column.key));
|
|
913
|
+
web.insert(_el$95, () => column.label, _el$98, _co$20);
|
|
914
|
+
web.insert(_el$96, () => sortIndicator(column.key));
|
|
865
915
|
web.effect((_p$) => {
|
|
866
|
-
var _v$
|
|
916
|
+
var _v$20 = column.width ? {
|
|
867
917
|
width: column.width
|
|
868
|
-
} : {}, _v$
|
|
918
|
+
} : {}, _v$21 = formatString.formatMCPUIString(strings.sortBy, {
|
|
919
|
+
column: column.label
|
|
920
|
+
}), _v$22 = {
|
|
869
921
|
"opacity-30": sortKey() !== column.key,
|
|
870
922
|
"opacity-100 text-blue-600 dark:text-blue-400": sortKey() === column.key
|
|
871
923
|
};
|
|
872
|
-
_p$.e = web.style(_el$
|
|
873
|
-
_v$
|
|
874
|
-
_p$.a = web.classList(_el$
|
|
924
|
+
_p$.e = web.style(_el$94, _v$20, _p$.e);
|
|
925
|
+
_v$21 !== _p$.t && web.setAttribute(_el$94, "title", _p$.t = _v$21);
|
|
926
|
+
_p$.a = web.classList(_el$96, _v$22, _p$.a);
|
|
875
927
|
return _p$;
|
|
876
928
|
}, {
|
|
877
929
|
e: void 0,
|
|
878
930
|
t: void 0,
|
|
879
931
|
a: void 0
|
|
880
932
|
});
|
|
881
|
-
return _el$
|
|
933
|
+
return _el$94;
|
|
882
934
|
})()
|
|
883
935
|
}));
|
|
884
|
-
web.insert(_el$
|
|
936
|
+
web.insert(_el$54, web.createComponent(solidJs.Show, {
|
|
885
937
|
get when() {
|
|
886
938
|
return isVirtualizing();
|
|
887
939
|
},
|
|
@@ -891,63 +943,69 @@ ${dataRows}`;
|
|
|
891
943
|
get children() {
|
|
892
944
|
return web.createComponent(VirtualizedTableBody, {});
|
|
893
945
|
}
|
|
894
|
-
}), _el$
|
|
895
|
-
web.insert(_el$
|
|
946
|
+
}), _el$58, _co$0);
|
|
947
|
+
web.insert(_el$39, web.createComponent(solidJs.Show, {
|
|
896
948
|
get when() {
|
|
897
949
|
return tableParams.pagination;
|
|
898
950
|
},
|
|
899
951
|
get children() {
|
|
900
|
-
var _el$
|
|
901
|
-
web.insert(_el$
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
952
|
+
var _el$59 = web.getNextElement(_tmpl$20), _el$60 = _el$59.firstChild;
|
|
953
|
+
web.insert(_el$60, () => formatString.formatMCPUIString(strings.tableServerPageRange, {
|
|
954
|
+
start: tableParams.pagination.currentPage * tableParams.pagination.pageSize + 1,
|
|
955
|
+
end: Math.min((tableParams.pagination.currentPage + 1) * tableParams.pagination.pageSize, tableParams.pagination.totalRows),
|
|
956
|
+
total: tableParams.pagination.totalRows
|
|
957
|
+
}));
|
|
958
|
+
return _el$59;
|
|
905
959
|
}
|
|
906
|
-
}), _el$
|
|
907
|
-
web.insert(_el$
|
|
960
|
+
}), _el$89, _co$17);
|
|
961
|
+
web.insert(_el$39, web.createComponent(solidJs.Show, {
|
|
908
962
|
get when() {
|
|
909
963
|
return needsClientPagination();
|
|
910
964
|
},
|
|
911
965
|
get children() {
|
|
912
|
-
var _el$
|
|
913
|
-
web.insert(_el$
|
|
914
|
-
web.insert(_el$
|
|
915
|
-
web.insert(_el$
|
|
916
|
-
_el$
|
|
917
|
-
web.insert(_el$
|
|
918
|
-
web.insert(_el$
|
|
919
|
-
_el$
|
|
920
|
-
web.insert(_el$
|
|
966
|
+
var _el$61 = web.getNextElement(_tmpl$23), _el$62 = _el$61.firstChild, _el$65 = _el$62.firstChild, [_el$66, _co$1] = web.getNextMarker(_el$65.nextSibling), _el$63 = _el$66.nextSibling, _el$67 = _el$63.nextSibling, [_el$68, _co$10] = web.getNextMarker(_el$67.nextSibling), _el$64 = _el$68.nextSibling, _el$69 = _el$64.nextSibling, [_el$70, _co$11] = web.getNextMarker(_el$69.nextSibling), _el$71 = _el$62.nextSibling, _el$72 = _el$71.firstChild, _el$73 = _el$72.nextSibling, _el$75 = _el$73.firstChild, [_el$76, _co$12] = web.getNextMarker(_el$75.nextSibling), _el$74 = _el$76.nextSibling, _el$77 = _el$74.nextSibling, [_el$78, _co$13] = web.getNextMarker(_el$77.nextSibling), _el$79 = _el$73.nextSibling, _el$82 = _el$79.nextSibling, [_el$83, _co$14] = web.getNextMarker(_el$82.nextSibling);
|
|
967
|
+
web.insert(_el$62, clientRangeStart, _el$66, _co$1);
|
|
968
|
+
web.insert(_el$62, clientRangeEnd, _el$68, _co$10);
|
|
969
|
+
web.insert(_el$62, () => filteredRows().length.toLocaleString(strings.locale), _el$70, _co$11);
|
|
970
|
+
_el$72.$$click = () => setClientPage((p) => p - 1);
|
|
971
|
+
web.insert(_el$73, () => clientPage() + 1, _el$76, _co$12);
|
|
972
|
+
web.insert(_el$73, clientTotalPages, _el$78, _co$13);
|
|
973
|
+
_el$79.$$click = () => setClientPage((p) => p + 1);
|
|
974
|
+
web.insert(_el$71, web.createComponent(solidJs.Show, {
|
|
921
975
|
get when() {
|
|
922
976
|
return web.memo(() => !!isExpanded())() && filteredRows().length > 10;
|
|
923
977
|
},
|
|
924
978
|
get children() {
|
|
925
979
|
return [(() => {
|
|
926
|
-
var _el$
|
|
927
|
-
_el$
|
|
928
|
-
web.insert(_el$
|
|
980
|
+
var _el$80 = web.getNextElement(_tmpl$21);
|
|
981
|
+
_el$80.addEventListener("change", (e) => handlePageSizeChange(Number(e.currentTarget.value)));
|
|
982
|
+
web.insert(_el$80, web.createComponent(solidJs.For, {
|
|
929
983
|
get each() {
|
|
930
984
|
return pageSizeOptions();
|
|
931
985
|
},
|
|
932
986
|
children: (opt) => (() => {
|
|
933
|
-
var _el$
|
|
934
|
-
web.insert(_el$
|
|
935
|
-
web.effect(() => web.setProperty(_el$
|
|
936
|
-
return _el$
|
|
987
|
+
var _el$99 = web.getNextElement(_tmpl$26);
|
|
988
|
+
web.insert(_el$99, () => opt.label);
|
|
989
|
+
web.effect(() => web.setProperty(_el$99, "value", opt.value));
|
|
990
|
+
return _el$99;
|
|
937
991
|
})()
|
|
938
992
|
}));
|
|
939
|
-
web.effect(() => web.setAttribute(_el$
|
|
940
|
-
web.effect(() => web.setProperty(_el$
|
|
941
|
-
return _el$
|
|
942
|
-
})(),
|
|
993
|
+
web.effect(() => web.setAttribute(_el$80, "aria-label", strings.paginationPageSize));
|
|
994
|
+
web.effect(() => web.setProperty(_el$80, "value", clientPageSize()));
|
|
995
|
+
return _el$80;
|
|
996
|
+
})(), (() => {
|
|
997
|
+
var _el$81 = web.getNextElement(_tmpl$22);
|
|
998
|
+
web.insert(_el$81, () => strings.perPageSuffix);
|
|
999
|
+
return _el$81;
|
|
1000
|
+
})()];
|
|
943
1001
|
}
|
|
944
|
-
}), _el$
|
|
1002
|
+
}), _el$83, _co$14);
|
|
945
1003
|
web.effect((_p$) => {
|
|
946
|
-
var _v$
|
|
947
|
-
_v$
|
|
948
|
-
_v$
|
|
949
|
-
_v$
|
|
950
|
-
_v$
|
|
1004
|
+
var _v$10 = clientPage() === 0, _v$11 = strings.paginationPrevious, _v$12 = clientPage() >= clientTotalPages() - 1, _v$13 = strings.paginationNext;
|
|
1005
|
+
_v$10 !== _p$.e && web.setProperty(_el$72, "disabled", _p$.e = _v$10);
|
|
1006
|
+
_v$11 !== _p$.t && web.setAttribute(_el$72, "aria-label", _p$.t = _v$11);
|
|
1007
|
+
_v$12 !== _p$.a && web.setProperty(_el$79, "disabled", _p$.a = _v$12);
|
|
1008
|
+
_v$13 !== _p$.o && web.setAttribute(_el$79, "aria-label", _p$.o = _v$13);
|
|
951
1009
|
return _p$;
|
|
952
1010
|
}, {
|
|
953
1011
|
e: void 0,
|
|
@@ -956,11 +1014,11 @@ ${dataRows}`;
|
|
|
956
1014
|
o: void 0
|
|
957
1015
|
});
|
|
958
1016
|
web.runHydrationEvents();
|
|
959
|
-
return _el$
|
|
1017
|
+
return _el$61;
|
|
960
1018
|
}
|
|
961
|
-
}), _el$
|
|
1019
|
+
}), _el$91, _co$18);
|
|
962
1020
|
web.effect((_p$) => {
|
|
963
|
-
var _v$
|
|
1021
|
+
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 = (
|
|
964
1022
|
// v6.1.0 — when expanded, the scroll container fills the
|
|
965
1023
|
// remaining vertical space and scrolls internally.
|
|
966
1024
|
// v6.3.0 — `params.maxHeight` opt-out (axe 1 deposium handoff)
|
|
@@ -989,13 +1047,13 @@ ${dataRows}`;
|
|
|
989
1047
|
};
|
|
990
1048
|
return {};
|
|
991
1049
|
})()
|
|
992
|
-
), _v$
|
|
993
|
-
_v$
|
|
994
|
-
_v$
|
|
995
|
-
_v$
|
|
996
|
-
_p$.o = web.style(_el$
|
|
997
|
-
_v$
|
|
998
|
-
_v$
|
|
1050
|
+
), _v$18 = tableParams.title || strings.tableAriaLabel, _v$19 = tableParams.title ? `${tableId}-title` : void 0;
|
|
1051
|
+
_v$14 !== _p$.e && web.className(_el$31, _p$.e = _v$14);
|
|
1052
|
+
_v$15 !== _p$.t && web.className(_el$39, _p$.t = _v$15);
|
|
1053
|
+
_v$16 !== _p$.a && web.className(_el$53, _p$.a = _v$16);
|
|
1054
|
+
_p$.o = web.style(_el$53, _v$17, _p$.o);
|
|
1055
|
+
_v$18 !== _p$.i && web.setAttribute(_el$53, "aria-label", _p$.i = _v$18);
|
|
1056
|
+
_v$19 !== _p$.n && web.setAttribute(_el$54, "aria-labelledby", _p$.n = _v$19);
|
|
999
1057
|
return _p$;
|
|
1000
1058
|
}, {
|
|
1001
1059
|
e: void 0,
|
|
@@ -1005,11 +1063,12 @@ ${dataRows}`;
|
|
|
1005
1063
|
i: void 0,
|
|
1006
1064
|
n: void 0
|
|
1007
1065
|
});
|
|
1008
|
-
return _el$
|
|
1066
|
+
return _el$31;
|
|
1009
1067
|
}
|
|
1010
1068
|
});
|
|
1011
1069
|
}
|
|
1012
1070
|
function MetricRenderer(props) {
|
|
1071
|
+
const strings = MCPUIStringsContext.useMCPUIStrings();
|
|
1013
1072
|
const metricParams = props.component.params;
|
|
1014
1073
|
const getMetricText = () => {
|
|
1015
1074
|
const title = metricParams.title || metricParams.label || "";
|
|
@@ -1018,59 +1077,61 @@ function MetricRenderer(props) {
|
|
|
1018
1077
|
return `${title}: ${value}${unit ? " " + unit : ""}`;
|
|
1019
1078
|
};
|
|
1020
1079
|
return (() => {
|
|
1021
|
-
var _el$
|
|
1022
|
-
web.insert(_el$
|
|
1080
|
+
var _el$100 = web.getNextElement(_tmpl$30), _el$122 = _el$100.firstChild, [_el$123, _co$26] = web.getNextMarker(_el$122.nextSibling), _el$101 = _el$123.nextSibling, _el$102 = _el$101.firstChild, _el$103 = _el$102.firstChild, _el$104 = _el$103.nextSibling, _el$105 = _el$104.firstChild, _el$107 = _el$105.nextSibling, [_el$108, _co$21] = web.getNextMarker(_el$107.nextSibling), _el$118 = _el$102.nextSibling, [_el$119, _co$24] = web.getNextMarker(_el$118.nextSibling), _el$120 = _el$119.nextSibling, [_el$121, _co$25] = web.getNextMarker(_el$120.nextSibling);
|
|
1081
|
+
web.insert(_el$100, web.createComponent(CopyButton, {
|
|
1023
1082
|
getText: getMetricText,
|
|
1024
|
-
title
|
|
1083
|
+
get title() {
|
|
1084
|
+
return strings.copyMetric;
|
|
1085
|
+
},
|
|
1025
1086
|
position: "top-right"
|
|
1026
|
-
}), _el$
|
|
1027
|
-
web.insert(_el$
|
|
1028
|
-
web.insert(_el$
|
|
1029
|
-
web.insert(_el$
|
|
1087
|
+
}), _el$123, _co$26);
|
|
1088
|
+
web.insert(_el$103, () => metricParams.title);
|
|
1089
|
+
web.insert(_el$105, () => metricParams.value);
|
|
1090
|
+
web.insert(_el$104, web.createComponent(solidJs.Show, {
|
|
1030
1091
|
get when() {
|
|
1031
1092
|
return metricParams.unit;
|
|
1032
1093
|
},
|
|
1033
1094
|
get children() {
|
|
1034
|
-
var _el$
|
|
1035
|
-
web.insert(_el$
|
|
1036
|
-
return _el$
|
|
1095
|
+
var _el$106 = web.getNextElement(_tmpl$27);
|
|
1096
|
+
web.insert(_el$106, () => metricParams.unit);
|
|
1097
|
+
return _el$106;
|
|
1037
1098
|
}
|
|
1038
|
-
}), _el$
|
|
1039
|
-
web.insert(_el$
|
|
1099
|
+
}), _el$108, _co$21);
|
|
1100
|
+
web.insert(_el$101, web.createComponent(solidJs.Show, {
|
|
1040
1101
|
get when() {
|
|
1041
1102
|
return metricParams.trend;
|
|
1042
1103
|
},
|
|
1043
1104
|
get children() {
|
|
1044
|
-
var _el$
|
|
1045
|
-
_el$
|
|
1046
|
-
web.insert(_el$
|
|
1105
|
+
var _el$109 = web.getNextElement(_tmpl$28), _el$110 = _el$109.firstChild, _el$113 = _el$110.firstChild, [_el$114, _co$22] = web.getNextMarker(_el$113.nextSibling), _el$111 = _el$114.nextSibling, _el$115 = _el$111.nextSibling, [_el$116, _co$23] = web.getNextMarker(_el$115.nextSibling);
|
|
1106
|
+
_el$116.nextSibling;
|
|
1107
|
+
web.insert(_el$110, (() => {
|
|
1047
1108
|
var _c$ = web.memo(() => metricParams.trend.direction === "up");
|
|
1048
1109
|
return () => _c$() ? "�" : metricParams.trend.direction === "down" ? "�" : "�";
|
|
1049
|
-
})(), _el$
|
|
1050
|
-
web.insert(_el$
|
|
1051
|
-
web.effect(() => web.className(_el$
|
|
1052
|
-
return _el$
|
|
1110
|
+
})(), _el$114, _co$22);
|
|
1111
|
+
web.insert(_el$110, () => Math.abs(metricParams.trend.value), _el$116, _co$23);
|
|
1112
|
+
web.effect(() => web.className(_el$110, `text-sm font-medium ${metricParams.trend.direction === "up" ? "text-green-600 dark:text-green-400" : metricParams.trend.direction === "down" ? "text-red-600 dark:text-red-400" : "text-gray-600 dark:text-gray-400"}`));
|
|
1113
|
+
return _el$109;
|
|
1053
1114
|
}
|
|
1054
|
-
}), _el$
|
|
1055
|
-
web.insert(_el$
|
|
1115
|
+
}), _el$119, _co$24);
|
|
1116
|
+
web.insert(_el$101, web.createComponent(solidJs.Show, {
|
|
1056
1117
|
get when() {
|
|
1057
1118
|
return metricParams.subtitle;
|
|
1058
1119
|
},
|
|
1059
1120
|
get children() {
|
|
1060
|
-
var _el$
|
|
1061
|
-
web.insert(_el$
|
|
1062
|
-
return _el$
|
|
1121
|
+
var _el$117 = web.getNextElement(_tmpl$29);
|
|
1122
|
+
web.insert(_el$117, () => metricParams.subtitle);
|
|
1123
|
+
return _el$117;
|
|
1063
1124
|
}
|
|
1064
|
-
}), _el$
|
|
1065
|
-
return _el$
|
|
1125
|
+
}), _el$121, _co$25);
|
|
1126
|
+
return _el$100;
|
|
1066
1127
|
})();
|
|
1067
1128
|
}
|
|
1068
|
-
function extractImageFromMarkdown(content) {
|
|
1129
|
+
function extractImageFromMarkdown(content, fallbackAlt) {
|
|
1069
1130
|
const imagePattern = /\[!\[([^\]]*)\]\(([^)]+)\)\]\(([^)]+)\)\s*\*([^*]+)\*/;
|
|
1070
1131
|
const match = content.match(imagePattern);
|
|
1071
1132
|
if (match) {
|
|
1072
1133
|
return {
|
|
1073
|
-
alt: match[1] ||
|
|
1134
|
+
alt: match[1] || fallbackAlt,
|
|
1074
1135
|
imageUrl: match[2],
|
|
1075
1136
|
linkUrl: match[3],
|
|
1076
1137
|
credit: match[4].trim()
|
|
@@ -1079,10 +1140,11 @@ function extractImageFromMarkdown(content) {
|
|
|
1079
1140
|
return null;
|
|
1080
1141
|
}
|
|
1081
1142
|
function TextRenderer(props) {
|
|
1143
|
+
const strings = MCPUIStringsContext.useMCPUIStrings();
|
|
1082
1144
|
const textParams = props.component.params;
|
|
1083
1145
|
const imageData = solidJs.createMemo(() => {
|
|
1084
1146
|
if (textParams.markdown && textParams.content) {
|
|
1085
|
-
const extracted = extractImageFromMarkdown(textParams.content);
|
|
1147
|
+
const extracted = extractImageFromMarkdown(textParams.content, strings.imageAlt);
|
|
1086
1148
|
if (!extracted) return null;
|
|
1087
1149
|
const imageUrl = safeUrl.safeUrl(extracted.imageUrl, {
|
|
1088
1150
|
allowDataImage: true
|
|
@@ -1118,38 +1180,40 @@ function TextRenderer(props) {
|
|
|
1118
1180
|
},
|
|
1119
1181
|
get fallback() {
|
|
1120
1182
|
return (() => {
|
|
1121
|
-
var _el$
|
|
1122
|
-
web.insert(_el$
|
|
1183
|
+
var _el$124 = web.getNextElement(_tmpl$31), _el$125 = _el$124.firstChild, [_el$126, _co$27] = web.getNextMarker(_el$125.nextSibling), _el$127 = _el$126.nextSibling, [_el$128, _co$28] = web.getNextMarker(_el$127.nextSibling);
|
|
1184
|
+
web.insert(_el$124, web.createComponent(CopyButton, {
|
|
1123
1185
|
getText: getTextContent,
|
|
1124
|
-
title
|
|
1186
|
+
get title() {
|
|
1187
|
+
return strings.copyText;
|
|
1188
|
+
},
|
|
1125
1189
|
position: "top-right"
|
|
1126
|
-
}), _el$
|
|
1127
|
-
web.insert(_el$
|
|
1190
|
+
}), _el$126, _co$27);
|
|
1191
|
+
web.insert(_el$124, web.createComponent(SafeHtml.SafeHtml, {
|
|
1128
1192
|
get ["class"]() {
|
|
1129
1193
|
return `prose prose-sm dark:prose-invert max-w-none ${textParams.className || ""}`;
|
|
1130
1194
|
},
|
|
1131
1195
|
html: htmlContent
|
|
1132
|
-
}), _el$
|
|
1133
|
-
return _el$
|
|
1196
|
+
}), _el$128, _co$28);
|
|
1197
|
+
return _el$124;
|
|
1134
1198
|
})();
|
|
1135
1199
|
},
|
|
1136
1200
|
children: (data) => {
|
|
1137
1201
|
const image = () => (() => {
|
|
1138
|
-
var _el$
|
|
1202
|
+
var _el$129 = web.getNextElement(_tmpl$32);
|
|
1139
1203
|
web.effect((_p$) => {
|
|
1140
|
-
var _v$
|
|
1141
|
-
_v$
|
|
1142
|
-
_v$
|
|
1204
|
+
var _v$23 = data().imageUrl, _v$24 = data().alt;
|
|
1205
|
+
_v$23 !== _p$.e && web.setAttribute(_el$129, "src", _p$.e = _v$23);
|
|
1206
|
+
_v$24 !== _p$.t && web.setAttribute(_el$129, "alt", _p$.t = _v$24);
|
|
1143
1207
|
return _p$;
|
|
1144
1208
|
}, {
|
|
1145
1209
|
e: void 0,
|
|
1146
1210
|
t: void 0
|
|
1147
1211
|
});
|
|
1148
|
-
return _el$
|
|
1212
|
+
return _el$129;
|
|
1149
1213
|
})();
|
|
1150
1214
|
return (() => {
|
|
1151
|
-
var _el$
|
|
1152
|
-
web.insert(_el$
|
|
1215
|
+
var _el$130 = web.getNextElement(_tmpl$33), _el$131 = _el$130.firstChild, _el$132 = _el$131.nextSibling, _el$133 = _el$132.firstChild;
|
|
1216
|
+
web.insert(_el$131, web.createComponent(solidJs.Show, {
|
|
1153
1217
|
get when() {
|
|
1154
1218
|
return data().linkUrl;
|
|
1155
1219
|
},
|
|
@@ -1157,38 +1221,39 @@ function TextRenderer(props) {
|
|
|
1157
1221
|
return image();
|
|
1158
1222
|
},
|
|
1159
1223
|
children: (href) => (() => {
|
|
1160
|
-
var _el$
|
|
1161
|
-
web.insert(_el$
|
|
1162
|
-
web.effect(() => web.setAttribute(_el$
|
|
1163
|
-
return _el$
|
|
1224
|
+
var _el$134 = web.getNextElement(_tmpl$34);
|
|
1225
|
+
web.insert(_el$134, image);
|
|
1226
|
+
web.effect(() => web.setAttribute(_el$134, "href", href()));
|
|
1227
|
+
return _el$134;
|
|
1164
1228
|
})()
|
|
1165
1229
|
}));
|
|
1166
|
-
web.insert(_el$
|
|
1167
|
-
return _el$
|
|
1230
|
+
web.insert(_el$133, () => data().credit);
|
|
1231
|
+
return _el$130;
|
|
1168
1232
|
})();
|
|
1169
1233
|
}
|
|
1170
1234
|
});
|
|
1171
1235
|
}
|
|
1172
1236
|
function IframeRenderer(props) {
|
|
1237
|
+
const strings = MCPUIStringsContext.useMCPUIStrings();
|
|
1173
1238
|
const params = props.component.params;
|
|
1174
1239
|
return (() => {
|
|
1175
|
-
var _el$
|
|
1176
|
-
web.insert(_el$
|
|
1240
|
+
var _el$135 = web.getNextElement(_tmpl$36), _el$139 = _el$135.firstChild, [_el$140, _co$29] = web.getNextMarker(_el$139.nextSibling), _el$138 = _el$140.nextSibling;
|
|
1241
|
+
web.insert(_el$135, web.createComponent(solidJs.Show, {
|
|
1177
1242
|
get when() {
|
|
1178
1243
|
return params.title;
|
|
1179
1244
|
},
|
|
1180
1245
|
get children() {
|
|
1181
|
-
var _el$
|
|
1182
|
-
web.insert(_el$
|
|
1183
|
-
return _el$
|
|
1246
|
+
var _el$136 = web.getNextElement(_tmpl$35), _el$137 = _el$136.firstChild;
|
|
1247
|
+
web.insert(_el$137, () => params.title);
|
|
1248
|
+
return _el$136;
|
|
1184
1249
|
}
|
|
1185
|
-
}), _el$
|
|
1250
|
+
}), _el$140, _co$29);
|
|
1186
1251
|
web.effect((_p$) => {
|
|
1187
|
-
var _v$
|
|
1188
|
-
_v$
|
|
1189
|
-
_v$
|
|
1190
|
-
_p$.a = web.style(_el$
|
|
1191
|
-
_v$
|
|
1252
|
+
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);
|
|
1253
|
+
_v$25 !== _p$.e && web.setAttribute(_el$138, "src", _p$.e = _v$25);
|
|
1254
|
+
_v$26 !== _p$.t && web.setAttribute(_el$138, "title", _p$.t = _v$26);
|
|
1255
|
+
_p$.a = web.style(_el$138, _v$27, _p$.a);
|
|
1256
|
+
_v$28 !== _p$.o && web.setAttribute(_el$138, "sandbox", _p$.o = _v$28);
|
|
1192
1257
|
return _p$;
|
|
1193
1258
|
}, {
|
|
1194
1259
|
e: void 0,
|
|
@@ -1196,32 +1261,35 @@ function IframeRenderer(props) {
|
|
|
1196
1261
|
a: void 0,
|
|
1197
1262
|
o: void 0
|
|
1198
1263
|
});
|
|
1199
|
-
return _el$
|
|
1264
|
+
return _el$135;
|
|
1200
1265
|
})();
|
|
1201
1266
|
}
|
|
1202
1267
|
function ImageRenderer(props) {
|
|
1268
|
+
const strings = MCPUIStringsContext.useMCPUIStrings();
|
|
1203
1269
|
const params = props.component.params;
|
|
1204
1270
|
return (() => {
|
|
1205
|
-
var _el$
|
|
1206
|
-
web.insert(_el$
|
|
1271
|
+
var _el$141 = web.getNextElement(_tmpl$38), _el$142 = _el$141.firstChild, _el$143 = _el$142.firstChild, _el$144 = _el$143.firstChild, _el$147 = _el$142.nextSibling, [_el$148, _co$30] = web.getNextMarker(_el$147.nextSibling);
|
|
1272
|
+
web.insert(_el$141, web.createComponent(solidJs.Show, {
|
|
1207
1273
|
get when() {
|
|
1208
1274
|
return params.caption;
|
|
1209
1275
|
},
|
|
1210
1276
|
get children() {
|
|
1211
|
-
var _el$
|
|
1212
|
-
web.insert(_el$
|
|
1213
|
-
return _el$
|
|
1277
|
+
var _el$145 = web.getNextElement(_tmpl$37), _el$146 = _el$145.firstChild;
|
|
1278
|
+
web.insert(_el$146, () => params.caption);
|
|
1279
|
+
return _el$145;
|
|
1214
1280
|
}
|
|
1215
|
-
}), _el$
|
|
1281
|
+
}), _el$148, _co$30);
|
|
1216
1282
|
web.effect((_p$) => {
|
|
1217
|
-
var _v$
|
|
1283
|
+
var _v$29 = `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$30 = safeUrl.safeUrl(params.url), _v$31 = formatString.formatMCPUIString(strings.imageViewFullSize, {
|
|
1284
|
+
alt: params.alt || strings.imageAltFallback
|
|
1285
|
+
}), _v$32 = safeUrl.safeUrl(params.url, {
|
|
1218
1286
|
allowDataImage: true
|
|
1219
|
-
}), _v$
|
|
1220
|
-
_v$
|
|
1221
|
-
_v$
|
|
1222
|
-
_v$
|
|
1223
|
-
_v$
|
|
1224
|
-
_v$
|
|
1287
|
+
}), _v$33 = params.alt || strings.imageAlt;
|
|
1288
|
+
_v$29 !== _p$.e && web.className(_el$141, _p$.e = _v$29);
|
|
1289
|
+
_v$30 !== _p$.t && web.setAttribute(_el$143, "href", _p$.t = _v$30);
|
|
1290
|
+
_v$31 !== _p$.a && web.setAttribute(_el$143, "aria-label", _p$.a = _v$31);
|
|
1291
|
+
_v$32 !== _p$.o && web.setAttribute(_el$144, "src", _p$.o = _v$32);
|
|
1292
|
+
_v$33 !== _p$.i && web.setAttribute(_el$144, "alt", _p$.i = _v$33);
|
|
1225
1293
|
return _p$;
|
|
1226
1294
|
}, {
|
|
1227
1295
|
e: void 0,
|
|
@@ -1230,30 +1298,34 @@ function ImageRenderer(props) {
|
|
|
1230
1298
|
o: void 0,
|
|
1231
1299
|
i: void 0
|
|
1232
1300
|
});
|
|
1233
|
-
return _el$
|
|
1301
|
+
return _el$141;
|
|
1234
1302
|
})();
|
|
1235
1303
|
}
|
|
1236
1304
|
function LinkRenderer(props) {
|
|
1305
|
+
const strings = MCPUIStringsContext.useMCPUIStrings();
|
|
1237
1306
|
const params = props.component.params;
|
|
1238
1307
|
return (() => {
|
|
1239
|
-
var _el$
|
|
1240
|
-
_el$
|
|
1241
|
-
web.insert(_el$
|
|
1242
|
-
web.insert(_el$
|
|
1308
|
+
var _el$149 = web.getNextElement(_tmpl$40), _el$150 = _el$149.firstChild, _el$151 = _el$150.nextSibling, _el$152 = _el$151.firstChild, _el$154 = _el$152.nextSibling, [_el$155, _co$31] = web.getNextMarker(_el$154.nextSibling);
|
|
1309
|
+
_el$149.$$click = (e) => e.stopPropagation();
|
|
1310
|
+
web.insert(_el$152, () => params.label || params.url);
|
|
1311
|
+
web.insert(_el$151, web.createComponent(solidJs.Show, {
|
|
1243
1312
|
get when() {
|
|
1244
1313
|
return params.description;
|
|
1245
1314
|
},
|
|
1246
1315
|
get children() {
|
|
1247
|
-
var _el$
|
|
1248
|
-
web.insert(_el$
|
|
1249
|
-
return _el$
|
|
1316
|
+
var _el$153 = web.getNextElement(_tmpl$39);
|
|
1317
|
+
web.insert(_el$153, () => params.description);
|
|
1318
|
+
return _el$153;
|
|
1250
1319
|
}
|
|
1251
|
-
}), _el$
|
|
1320
|
+
}), _el$155, _co$31);
|
|
1252
1321
|
web.effect((_p$) => {
|
|
1253
|
-
var _v$
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
_v$
|
|
1322
|
+
var _v$34 = safeUrl.safeUrl(params.url), _v$35 = formatString.formatMCPUIString(strings.linkOpensInNewTab, {
|
|
1323
|
+
label: params.label || strings.linkLabel,
|
|
1324
|
+
description: params.description || params.url
|
|
1325
|
+
}), _v$36 = `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 || ""}`;
|
|
1326
|
+
_v$34 !== _p$.e && web.setAttribute(_el$149, "href", _p$.e = _v$34);
|
|
1327
|
+
_v$35 !== _p$.t && web.setAttribute(_el$149, "aria-label", _p$.t = _v$35);
|
|
1328
|
+
_v$36 !== _p$.a && web.className(_el$149, _p$.a = _v$36);
|
|
1257
1329
|
return _p$;
|
|
1258
1330
|
}, {
|
|
1259
1331
|
e: void 0,
|
|
@@ -1261,13 +1333,14 @@ function LinkRenderer(props) {
|
|
|
1261
1333
|
a: void 0
|
|
1262
1334
|
});
|
|
1263
1335
|
web.runHydrationEvents();
|
|
1264
|
-
return _el$
|
|
1336
|
+
return _el$149;
|
|
1265
1337
|
})();
|
|
1266
1338
|
}
|
|
1267
1339
|
function ComponentRenderer(props) {
|
|
1268
1340
|
var _a, _b, _c, _d, _e, _f, _g;
|
|
1269
1341
|
perf.markRenderStart(props.component.id);
|
|
1270
1342
|
const telemetry = MCPUITelemetryContext.useTelemetry();
|
|
1343
|
+
const strings = MCPUIStringsContext.useMCPUIStrings();
|
|
1271
1344
|
solidJs.onMount(() => {
|
|
1272
1345
|
perf.markRenderEnd(props.component.id);
|
|
1273
1346
|
if (telemetry) {
|
|
@@ -1322,7 +1395,7 @@ function ComponentRenderer(props) {
|
|
|
1322
1395
|
});
|
|
1323
1396
|
}
|
|
1324
1397
|
const mode = props.errorMode ?? "block";
|
|
1325
|
-
const firstError = ((_f = (_e = validation$1.errors) == null ? void 0 : _e[0]) == null ? void 0 : _f.message) ||
|
|
1398
|
+
const firstError = ((_f = (_e = validation$1.errors) == null ? void 0 : _e[0]) == null ? void 0 : _f.message) || strings.validationUnknownError;
|
|
1326
1399
|
if ((_g = validation$1.errors) == null ? void 0 : _g.some((e) => e.code === "UNKNOWN_COMPONENT_TYPE")) {
|
|
1327
1400
|
return web.createComponent(UnsupportedComponentFallback, {
|
|
1328
1401
|
get component() {
|
|
@@ -1335,16 +1408,20 @@ function ComponentRenderer(props) {
|
|
|
1335
1408
|
}
|
|
1336
1409
|
if (mode === "inline-warn") {
|
|
1337
1410
|
return (() => {
|
|
1338
|
-
var _el$
|
|
1339
|
-
web.setAttribute(_el$
|
|
1340
|
-
web.insert(_el$
|
|
1341
|
-
|
|
1411
|
+
var _el$156 = web.getNextElement(_tmpl$41), _el$157 = _el$156.firstChild, _el$158 = _el$157.nextSibling;
|
|
1412
|
+
web.setAttribute(_el$156, "title", firstError);
|
|
1413
|
+
web.insert(_el$158, () => formatString.formatMCPUIString(strings.invalidComponent, {
|
|
1414
|
+
type: props.component.type
|
|
1415
|
+
}));
|
|
1416
|
+
web.effect(() => web.setAttribute(_el$156, "aria-label", strings.validationWarning));
|
|
1417
|
+
return _el$156;
|
|
1342
1418
|
})();
|
|
1343
1419
|
}
|
|
1344
1420
|
return (() => {
|
|
1345
|
-
var _el$
|
|
1346
|
-
web.insert(_el$
|
|
1347
|
-
|
|
1421
|
+
var _el$159 = web.getNextElement(_tmpl$42), _el$160 = _el$159.firstChild, _el$161 = _el$160.nextSibling;
|
|
1422
|
+
web.insert(_el$160, () => strings.validationError);
|
|
1423
|
+
web.insert(_el$161, firstError);
|
|
1424
|
+
return _el$159;
|
|
1348
1425
|
})();
|
|
1349
1426
|
}
|
|
1350
1427
|
return web.createComponent(GenerativeUIErrorBoundary.GenerativeUIErrorBoundary, {
|
|
@@ -1636,10 +1713,12 @@ function ComponentRenderer(props) {
|
|
|
1636
1713
|
});
|
|
1637
1714
|
}
|
|
1638
1715
|
function UnsupportedComponentFallback(props) {
|
|
1716
|
+
const strings = MCPUIStringsContext.useMCPUIStrings();
|
|
1639
1717
|
return (() => {
|
|
1640
|
-
var _el$
|
|
1641
|
-
web.insert(_el$
|
|
1642
|
-
|
|
1718
|
+
var _el$162 = web.getNextElement(_tmpl$43), _el$165 = _el$162.firstChild, [_el$166, _co$32] = web.getNextMarker(_el$165.nextSibling), _el$163 = _el$166.nextSibling, _el$164 = _el$163.nextSibling;
|
|
1719
|
+
web.insert(_el$162, () => strings.unsupportedComponentType, _el$166, _co$32);
|
|
1720
|
+
web.insert(_el$164, () => props.component.type);
|
|
1721
|
+
return _el$162;
|
|
1643
1722
|
})();
|
|
1644
1723
|
}
|
|
1645
1724
|
function ActionRenderer(props) {
|
|
@@ -1679,27 +1758,27 @@ function ActionRenderer(props) {
|
|
|
1679
1758
|
const isDisabled = () => params.disabled || isExecutable() && isExecuting();
|
|
1680
1759
|
if (params.type === "link" || params.action === "link") {
|
|
1681
1760
|
return (() => {
|
|
1682
|
-
var _el$
|
|
1683
|
-
_el$
|
|
1684
|
-
web.insert(_el$
|
|
1761
|
+
var _el$167 = web.getNextElement(_tmpl$45), _el$169 = _el$167.firstChild, [_el$170, _co$33] = web.getNextMarker(_el$169.nextSibling), _el$171 = _el$170.nextSibling, [_el$172, _co$34] = web.getNextMarker(_el$171.nextSibling);
|
|
1762
|
+
_el$167.$$click = handleClick;
|
|
1763
|
+
web.insert(_el$167, web.createComponent(solidJs.Show, {
|
|
1685
1764
|
get when() {
|
|
1686
1765
|
return params.icon;
|
|
1687
1766
|
},
|
|
1688
1767
|
get children() {
|
|
1689
|
-
var _el$
|
|
1690
|
-
web.insert(_el$
|
|
1691
|
-
return _el$
|
|
1768
|
+
var _el$168 = web.getNextElement(_tmpl$44);
|
|
1769
|
+
web.insert(_el$168, () => params.icon);
|
|
1770
|
+
return _el$168;
|
|
1692
1771
|
}
|
|
1693
|
-
}), _el$
|
|
1694
|
-
web.insert(_el$
|
|
1772
|
+
}), _el$170, _co$33);
|
|
1773
|
+
web.insert(_el$167, () => params.label, _el$172, _co$34);
|
|
1695
1774
|
web.effect((_p$) => {
|
|
1696
|
-
var _v$
|
|
1775
|
+
var _v$37 = safeUrl.safeUrl(params.url) ?? "#", _v$38 = safeUrl.safeUrl(params.url) ? "_blank" : void 0, _v$39 = params.ariaLabel || params.label, _v$40 = `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
|
|
1697
1776
|
${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"}
|
|
1698
1777
|
${params.className || ""}`;
|
|
1699
|
-
_v$
|
|
1700
|
-
_v$
|
|
1701
|
-
_v$
|
|
1702
|
-
_v$
|
|
1778
|
+
_v$37 !== _p$.e && web.setAttribute(_el$167, "href", _p$.e = _v$37);
|
|
1779
|
+
_v$38 !== _p$.t && web.setAttribute(_el$167, "target", _p$.t = _v$38);
|
|
1780
|
+
_v$39 !== _p$.a && web.setAttribute(_el$167, "aria-label", _p$.a = _v$39);
|
|
1781
|
+
_v$40 !== _p$.o && web.className(_el$167, _p$.o = _v$40);
|
|
1703
1782
|
return _p$;
|
|
1704
1783
|
}, {
|
|
1705
1784
|
e: void 0,
|
|
@@ -1708,41 +1787,41 @@ function ActionRenderer(props) {
|
|
|
1708
1787
|
o: void 0
|
|
1709
1788
|
});
|
|
1710
1789
|
web.runHydrationEvents();
|
|
1711
|
-
return _el$
|
|
1790
|
+
return _el$167;
|
|
1712
1791
|
})();
|
|
1713
1792
|
}
|
|
1714
1793
|
return (() => {
|
|
1715
|
-
var _el$
|
|
1716
|
-
_el$
|
|
1717
|
-
web.insert(_el$
|
|
1794
|
+
var _el$173 = web.getNextElement(_tmpl$47), _el$176 = _el$173.firstChild, [_el$177, _co$35] = web.getNextMarker(_el$176.nextSibling), _el$178 = _el$177.nextSibling, [_el$179, _co$36] = web.getNextMarker(_el$178.nextSibling), _el$180 = _el$179.nextSibling, [_el$181, _co$37] = web.getNextMarker(_el$180.nextSibling);
|
|
1795
|
+
_el$173.$$click = handleClick;
|
|
1796
|
+
web.insert(_el$173, web.createComponent(solidJs.Show, {
|
|
1718
1797
|
get when() {
|
|
1719
1798
|
return web.memo(() => !!isExecuting())() && isExecutable();
|
|
1720
1799
|
},
|
|
1721
1800
|
get children() {
|
|
1722
|
-
return web.getNextElement(_tmpl$
|
|
1801
|
+
return web.getNextElement(_tmpl$46);
|
|
1723
1802
|
}
|
|
1724
|
-
}), _el$
|
|
1725
|
-
web.insert(_el$
|
|
1803
|
+
}), _el$177, _co$35);
|
|
1804
|
+
web.insert(_el$173, web.createComponent(solidJs.Show, {
|
|
1726
1805
|
get when() {
|
|
1727
1806
|
return web.memo(() => !!params.icon)() && !(isExecuting() && isExecutable());
|
|
1728
1807
|
},
|
|
1729
1808
|
get children() {
|
|
1730
|
-
var _el$
|
|
1731
|
-
web.insert(_el$
|
|
1732
|
-
return _el$
|
|
1809
|
+
var _el$175 = web.getNextElement(_tmpl$44);
|
|
1810
|
+
web.insert(_el$175, () => params.icon);
|
|
1811
|
+
return _el$175;
|
|
1733
1812
|
}
|
|
1734
|
-
}), _el$
|
|
1735
|
-
web.insert(_el$
|
|
1813
|
+
}), _el$179, _co$36);
|
|
1814
|
+
web.insert(_el$173, () => params.label, _el$181, _co$37);
|
|
1736
1815
|
web.effect((_p$) => {
|
|
1737
|
-
var _v$
|
|
1816
|
+
var _v$41 = isDisabled(), _v$42 = isExecuting() && isExecutable(), _v$43 = params.ariaLabel || params.label, _v$44 = `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
|
|
1738
1817
|
${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"}
|
|
1739
1818
|
${isDisabled() ? "opacity-50 cursor-not-allowed" : ""}
|
|
1740
1819
|
${params.size === "sm" ? "px-3 py-1.5 text-xs" : params.size === "lg" ? "px-6 py-3 text-base" : ""}
|
|
1741
1820
|
${params.className || ""}`;
|
|
1742
|
-
_v$
|
|
1743
|
-
_v$
|
|
1744
|
-
_v$
|
|
1745
|
-
_v$
|
|
1821
|
+
_v$41 !== _p$.e && web.setProperty(_el$173, "disabled", _p$.e = _v$41);
|
|
1822
|
+
_v$42 !== _p$.t && web.setAttribute(_el$173, "aria-busy", _p$.t = _v$42);
|
|
1823
|
+
_v$43 !== _p$.a && web.setAttribute(_el$173, "aria-label", _p$.a = _v$43);
|
|
1824
|
+
_v$44 !== _p$.o && web.className(_el$173, _p$.o = _v$44);
|
|
1746
1825
|
return _p$;
|
|
1747
1826
|
}, {
|
|
1748
1827
|
e: void 0,
|
|
@@ -1751,63 +1830,76 @@ function ActionRenderer(props) {
|
|
|
1751
1830
|
o: void 0
|
|
1752
1831
|
});
|
|
1753
1832
|
web.runHydrationEvents();
|
|
1754
|
-
return _el$
|
|
1833
|
+
return _el$173;
|
|
1755
1834
|
})();
|
|
1756
1835
|
}
|
|
1757
1836
|
function ErrorCardRenderer(props) {
|
|
1837
|
+
const strings = MCPUIStringsContext.useMCPUIStrings();
|
|
1838
|
+
const [mounted, setMounted] = solidJs.createSignal(false);
|
|
1839
|
+
solidJs.onMount(() => setMounted(true));
|
|
1758
1840
|
const getErrorText = () => {
|
|
1759
|
-
return
|
|
1841
|
+
return formatString.formatMCPUIString(strings.errorCopyText, {
|
|
1842
|
+
tool: props.error.tool || strings.errorUnknownTool,
|
|
1843
|
+
message: props.error.message || strings.errorUnknown
|
|
1844
|
+
});
|
|
1760
1845
|
};
|
|
1761
1846
|
return (() => {
|
|
1762
|
-
var _el$
|
|
1763
|
-
web.insert(_el$
|
|
1847
|
+
var _el$182 = web.getNextElement(_tmpl$51), _el$199 = _el$182.firstChild, [_el$200, _co$41] = web.getNextMarker(_el$199.nextSibling), _el$183 = _el$200.nextSibling, _el$184 = _el$183.firstChild, _el$185 = _el$184.nextSibling, _el$186 = _el$185.firstChild, _el$187 = _el$186.nextSibling, _el$193 = _el$187.nextSibling, [_el$194, _co$38] = web.getNextMarker(_el$193.nextSibling), _el$195 = _el$194.nextSibling, [_el$196, _co$39] = web.getNextMarker(_el$195.nextSibling), _el$197 = _el$196.nextSibling, [_el$198, _co$40] = web.getNextMarker(_el$197.nextSibling);
|
|
1848
|
+
web.insert(_el$182, web.createComponent(CopyButton, {
|
|
1764
1849
|
getText: getErrorText,
|
|
1765
|
-
title
|
|
1850
|
+
get title() {
|
|
1851
|
+
return strings.copyErrorDetails;
|
|
1852
|
+
},
|
|
1766
1853
|
position: "top-right"
|
|
1767
|
-
}), _el$
|
|
1768
|
-
web.insert(_el$
|
|
1769
|
-
|
|
1770
|
-
|
|
1854
|
+
}), _el$200, _co$41);
|
|
1855
|
+
web.insert(_el$186, () => formatString.formatMCPUIString(strings.toolErrorTitle, {
|
|
1856
|
+
tool: props.error.tool || strings.errorUnknownToolName
|
|
1857
|
+
}));
|
|
1858
|
+
web.insert(_el$187, () => props.error.message || strings.errorToolExecution);
|
|
1859
|
+
web.insert(_el$185, web.createComponent(solidJs.Show, {
|
|
1771
1860
|
get when() {
|
|
1772
1861
|
return props.error.type;
|
|
1773
1862
|
},
|
|
1774
1863
|
get children() {
|
|
1775
|
-
var _el$
|
|
1776
|
-
web.insert(_el$
|
|
1777
|
-
|
|
1864
|
+
var _el$188 = web.getNextElement(_tmpl$48);
|
|
1865
|
+
web.insert(_el$188, () => formatString.formatMCPUIString(strings.errorTypeLabel, {
|
|
1866
|
+
type: props.error.type
|
|
1867
|
+
}));
|
|
1868
|
+
return _el$188;
|
|
1778
1869
|
}
|
|
1779
|
-
}), _el$
|
|
1780
|
-
web.insert(_el$
|
|
1870
|
+
}), _el$194, _co$38);
|
|
1871
|
+
web.insert(_el$185, web.createComponent(solidJs.Show, {
|
|
1781
1872
|
get when() {
|
|
1782
1873
|
var _a;
|
|
1783
1874
|
return (_a = props.error.suggestions) == null ? void 0 : _a.length;
|
|
1784
1875
|
},
|
|
1785
1876
|
get children() {
|
|
1786
|
-
var _el$
|
|
1787
|
-
web.insert(_el$
|
|
1877
|
+
var _el$189 = web.getNextElement(_tmpl$49), _el$190 = _el$189.firstChild, _el$191 = _el$190.nextSibling;
|
|
1878
|
+
web.insert(_el$190, () => strings.errorSuggestions);
|
|
1879
|
+
web.insert(_el$191, web.createComponent(solidJs.For, {
|
|
1788
1880
|
get each() {
|
|
1789
1881
|
return props.error.suggestions;
|
|
1790
1882
|
},
|
|
1791
1883
|
children: (suggestion) => (() => {
|
|
1792
|
-
var _el$
|
|
1793
|
-
web.insert(_el$
|
|
1794
|
-
return _el$
|
|
1884
|
+
var _el$201 = web.getNextElement(_tmpl$52);
|
|
1885
|
+
web.insert(_el$201, suggestion);
|
|
1886
|
+
return _el$201;
|
|
1795
1887
|
})()
|
|
1796
1888
|
}));
|
|
1797
|
-
return _el$
|
|
1889
|
+
return _el$189;
|
|
1798
1890
|
}
|
|
1799
|
-
}), _el$
|
|
1800
|
-
web.insert(_el$
|
|
1891
|
+
}), _el$196, _co$39);
|
|
1892
|
+
web.insert(_el$185, web.createComponent(solidJs.Show, {
|
|
1801
1893
|
get when() {
|
|
1802
|
-
return props.error.timestamp;
|
|
1894
|
+
return web.memo(() => !!mounted())() && props.error.timestamp;
|
|
1803
1895
|
},
|
|
1804
1896
|
get children() {
|
|
1805
|
-
var _el$
|
|
1806
|
-
web.insert(_el$
|
|
1807
|
-
return _el$
|
|
1897
|
+
var _el$192 = web.getNextElement(_tmpl$50);
|
|
1898
|
+
web.insert(_el$192, () => new Date(props.error.timestamp).toLocaleString(strings.locale));
|
|
1899
|
+
return _el$192;
|
|
1808
1900
|
}
|
|
1809
|
-
}), _el$
|
|
1810
|
-
return _el$
|
|
1901
|
+
}), _el$198, _co$40);
|
|
1902
|
+
return _el$182;
|
|
1811
1903
|
})();
|
|
1812
1904
|
}
|
|
1813
1905
|
function isErrorResponse(content) {
|
|
@@ -1818,6 +1910,7 @@ function isUIResource(content) {
|
|
|
1818
1910
|
return content && typeof content === "object" && (((_a = content.uri) == null ? void 0 : _a.startsWith("ui://")) || ((_b = content.content) == null ? void 0 : _b.type) === "rawHtml" || ((_c = content.content) == null ? void 0 : _c.htmlString));
|
|
1819
1911
|
}
|
|
1820
1912
|
function UIResourceHtmlRenderer(props) {
|
|
1913
|
+
const strings = MCPUIStringsContext.useMCPUIStrings();
|
|
1821
1914
|
const htmlContent = () => {
|
|
1822
1915
|
var _a;
|
|
1823
1916
|
if ((_a = props.resource.content) == null ? void 0 : _a.htmlString) {
|
|
@@ -1827,26 +1920,26 @@ function UIResourceHtmlRenderer(props) {
|
|
|
1827
1920
|
};
|
|
1828
1921
|
const resourceTitle = () => {
|
|
1829
1922
|
var _a, _b;
|
|
1830
|
-
return ((_a = props.resource.metadata) == null ? void 0 : _a.title) || ((_b = props.resource.uri) == null ? void 0 : _b.replace("ui://deposium/", "")) ||
|
|
1923
|
+
return ((_a = props.resource.metadata) == null ? void 0 : _a.title) || ((_b = props.resource.uri) == null ? void 0 : _b.replace("ui://deposium/", "")) || strings.resourceTitle;
|
|
1831
1924
|
};
|
|
1832
1925
|
return (() => {
|
|
1833
|
-
var _el$
|
|
1834
|
-
web.insert(_el$
|
|
1926
|
+
var _el$202 = web.getNextElement(_tmpl$54), _el$205 = _el$202.firstChild, [_el$206, _co$42] = web.getNextMarker(_el$205.nextSibling), _el$207 = _el$206.nextSibling, [_el$208, _co$43] = web.getNextMarker(_el$207.nextSibling);
|
|
1927
|
+
web.insert(_el$202, web.createComponent(solidJs.Show, {
|
|
1835
1928
|
get when() {
|
|
1836
1929
|
var _a;
|
|
1837
1930
|
return ((_a = props.resource.metadata) == null ? void 0 : _a.title) || props.resource.uri;
|
|
1838
1931
|
},
|
|
1839
1932
|
get children() {
|
|
1840
|
-
var _el$
|
|
1841
|
-
web.insert(_el$
|
|
1842
|
-
return _el$
|
|
1933
|
+
var _el$203 = web.getNextElement(_tmpl$53), _el$204 = _el$203.firstChild;
|
|
1934
|
+
web.insert(_el$204, resourceTitle);
|
|
1935
|
+
return _el$203;
|
|
1843
1936
|
}
|
|
1844
|
-
}), _el$
|
|
1845
|
-
web.insert(_el$
|
|
1937
|
+
}), _el$206, _co$42);
|
|
1938
|
+
web.insert(_el$202, web.createComponent(SafeHtml.SafeHtml, {
|
|
1846
1939
|
"class": "p-4 prose prose-sm dark:prose-invert max-w-none",
|
|
1847
1940
|
html: htmlContent
|
|
1848
|
-
}), _el$
|
|
1849
|
-
return _el$
|
|
1941
|
+
}), _el$208, _co$43);
|
|
1942
|
+
return _el$202;
|
|
1850
1943
|
})();
|
|
1851
1944
|
}
|
|
1852
1945
|
const UIResourceRenderer = (props) => {
|
|
@@ -1952,8 +2045,8 @@ const UIResourceRenderer = (props) => {
|
|
|
1952
2045
|
return web.createComponent(RenderContext.RenderProvider, {
|
|
1953
2046
|
renderComponent,
|
|
1954
2047
|
get children() {
|
|
1955
|
-
var _el$
|
|
1956
|
-
web.spread(_el$
|
|
2048
|
+
var _el$209 = web.getNextElement(_tmpl$55), _el$210 = _el$209.firstChild, _el$211 = _el$210.nextSibling, [_el$212, _co$44] = web.getNextMarker(_el$211.nextSibling);
|
|
2049
|
+
web.spread(_el$209, web.mergeProps({
|
|
1957
2050
|
get ["class"]() {
|
|
1958
2051
|
return `w-full ${props.class || ""}`;
|
|
1959
2052
|
}
|
|
@@ -1963,14 +2056,14 @@ const UIResourceRenderer = (props) => {
|
|
|
1963
2056
|
"data-mcp-ui-component-id": outerKey()
|
|
1964
2057
|
}), false, true);
|
|
1965
2058
|
var _ref$3 = responsiveGrid.ref;
|
|
1966
|
-
typeof _ref$3 === "function" ? web.use(_ref$3, _el$
|
|
1967
|
-
web.insert(_el$
|
|
2059
|
+
typeof _ref$3 === "function" ? web.use(_ref$3, _el$210) : responsiveGrid.ref = _el$210;
|
|
2060
|
+
web.insert(_el$210, web.createComponent(solidJs.For, {
|
|
1968
2061
|
get each() {
|
|
1969
2062
|
return layout().components;
|
|
1970
2063
|
},
|
|
1971
2064
|
children: (component) => (() => {
|
|
1972
|
-
var _el$
|
|
1973
|
-
web.insert(_el$
|
|
2065
|
+
var _el$213 = web.getNextElement(_tmpl$56);
|
|
2066
|
+
web.insert(_el$213, web.createComponent(ComponentRenderer, {
|
|
1974
2067
|
component,
|
|
1975
2068
|
get onError() {
|
|
1976
2069
|
return props.onError;
|
|
@@ -1986,18 +2079,18 @@ const UIResourceRenderer = (props) => {
|
|
|
1986
2079
|
}
|
|
1987
2080
|
}));
|
|
1988
2081
|
web.effect((_p$) => {
|
|
1989
|
-
var _v$
|
|
1990
|
-
_p$.e = web.style(_el$
|
|
1991
|
-
_v$
|
|
2082
|
+
var _v$47 = getGridStyleString(component), _v$48 = stableKey.getUiResourceStableKey(component);
|
|
2083
|
+
_p$.e = web.style(_el$213, _v$47, _p$.e);
|
|
2084
|
+
_v$48 !== _p$.t && web.setAttribute(_el$213, "data-mcp-ui-component-id", _p$.t = _v$48);
|
|
1992
2085
|
return _p$;
|
|
1993
2086
|
}, {
|
|
1994
2087
|
e: void 0,
|
|
1995
2088
|
t: void 0
|
|
1996
2089
|
});
|
|
1997
|
-
return _el$
|
|
2090
|
+
return _el$213;
|
|
1998
2091
|
})()
|
|
1999
2092
|
}));
|
|
2000
|
-
web.insert(_el$
|
|
2093
|
+
web.insert(_el$209, web.createComponent(solidJs.Show, {
|
|
2001
2094
|
get when() {
|
|
2002
2095
|
return shouldShowAutoFooter();
|
|
2003
2096
|
},
|
|
@@ -2008,18 +2101,18 @@ const UIResourceRenderer = (props) => {
|
|
|
2008
2101
|
}
|
|
2009
2102
|
});
|
|
2010
2103
|
}
|
|
2011
|
-
}), _el$
|
|
2104
|
+
}), _el$212, _co$44);
|
|
2012
2105
|
web.effect((_p$) => {
|
|
2013
|
-
var _v$
|
|
2014
|
-
_p$.e = web.style(_el$
|
|
2015
|
-
_v$
|
|
2106
|
+
var _v$45 = gridContainerStyle(), _v$46 = responsiveGrid.stacked();
|
|
2107
|
+
_p$.e = web.style(_el$210, _v$45, _p$.e);
|
|
2108
|
+
_v$46 !== _p$.t && web.setAttribute(_el$210, "data-mcp-ui-stacked", _p$.t = _v$46);
|
|
2016
2109
|
return _p$;
|
|
2017
2110
|
}, {
|
|
2018
2111
|
e: void 0,
|
|
2019
2112
|
t: void 0
|
|
2020
2113
|
});
|
|
2021
2114
|
web.runHydrationEvents();
|
|
2022
|
-
return _el$
|
|
2115
|
+
return _el$209;
|
|
2023
2116
|
}
|
|
2024
2117
|
});
|
|
2025
2118
|
};
|