@seed-ship/mcp-ui-solid 2.2.9 → 2.2.11
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/dist/components/ArtifactRenderer.cjs +4 -3
- package/dist/components/ArtifactRenderer.cjs.map +1 -1
- package/dist/components/ArtifactRenderer.js +4 -3
- package/dist/components/ArtifactRenderer.js.map +1 -1
- package/dist/components/CodeBlockRenderer.cjs +6 -1
- package/dist/components/CodeBlockRenderer.cjs.map +1 -1
- package/dist/components/CodeBlockRenderer.d.ts.map +1 -1
- package/dist/components/CodeBlockRenderer.js +6 -1
- package/dist/components/CodeBlockRenderer.js.map +1 -1
- package/dist/components/UIResourceRenderer.cjs +267 -263
- package/dist/components/UIResourceRenderer.cjs.map +1 -1
- package/dist/components/UIResourceRenderer.d.ts.map +1 -1
- package/dist/components/UIResourceRenderer.js +267 -263
- package/dist/components/UIResourceRenderer.js.map +1 -1
- package/dist/services/validation.cjs +115 -15
- package/dist/services/validation.cjs.map +1 -1
- package/dist/services/validation.d.ts.map +1 -1
- package/dist/services/validation.js +115 -15
- package/dist/services/validation.js.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types.d.cts +1 -1
- package/dist/types.d.ts +1 -1
- package/package.json +1 -1
- package/src/components/ArtifactRenderer.tsx +3 -3
- package/src/components/CodeBlockRenderer.tsx +7 -1
- package/src/components/UIResourceRenderer.tsx +9 -0
- package/src/services/validation.test.ts +142 -2
- package/src/services/validation.ts +135 -17
- package/src/types/index.ts +1 -1
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -19,7 +19,7 @@ import { ExpandableWrapper } from "./ExpandableWrapper.js";
|
|
|
19
19
|
import { RenderProvider } from "./RenderContext.js";
|
|
20
20
|
import { useAction } from "../hooks/useAction.js";
|
|
21
21
|
import { marked as k } from "../node_modules/.pnpm/marked@16.4.2/node_modules/marked/lib/marked.esm.js";
|
|
22
|
-
var _tmpl$ = /* @__PURE__ */ 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__ */ template(`<button>`), _tmpl$3 = /* @__PURE__ */ 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__ */ 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$5 = /* @__PURE__ */ 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$6 = /* @__PURE__ */ template(`<h3 class="text-sm font-semibold text-gray-900 dark:text-white mb-3">`), _tmpl$7 = /* @__PURE__ */ 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$8 = /* @__PURE__ */ 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$9 = /* @__PURE__ */ template(`<tbody class="bg-white dark:bg-gray-800 divide-y divide-gray-200 dark:divide-gray-700">`), _tmpl$0 = /* @__PURE__ */ template(`<tr>`), _tmpl$1 = /* @__PURE__ */ 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"><div>`), _tmpl$10 = /* @__PURE__ */ template(`<tbody class="bg-white dark:bg-gray-800 relative">`), _tmpl$11 = /* @__PURE__ */ 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$12 = /* @__PURE__ */ 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$13 = /* @__PURE__ */ 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$14 = /* @__PURE__ */ template(`<div class="absolute right-0 mt-1 w-36 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-600 rounded-lg shadow-lg py-1 text-sm"><!$><!/><!$><!/><!$><!/>`), _tmpl$15 = /* @__PURE__ */ 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"><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$16 = /* @__PURE__ */ template(`<span class="ml-2 text-xs font-normal text-gray-400">(virtualized: <!$><!/> rows)`), _tmpl$17 = /* @__PURE__ */ template(`<h3 class="text-sm font-semibold text-gray-900 dark:text-white mb-3"><!$><!/><!$><!/>`), _tmpl$18 = /* @__PURE__ */ template(`<div class="mt-3 flex items-center justify-between text-xs text-gray-500 dark:text-gray-400"><span>Showing <!$><!/> - <!$><!/> of <!$><!/>`), _tmpl$19 = /* @__PURE__ */ 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 overflow-hidden group"><!$><!/><div class=p-4><!$><!/><div class=overflow-x-auto 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-50 dark:bg-gray-900/50 sticky top-0 z-10"><tr></tr></thead><!$><!/></table></div><!$><!/>`), _tmpl$20 = /* @__PURE__ */ 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-50 dark:bg-gray-900/50">`), _tmpl$21 = /* @__PURE__ */ template(`<span class="ml-2 text-sm font-medium text-gray-500 dark:text-gray-400">`), _tmpl$22 = /* @__PURE__ */ template(`<div class="mt-3 flex items-center"><span><!$><!/> <!$><!/>%`), _tmpl$23 = /* @__PURE__ */ template(`<p class="mt-2 text-xs text-gray-500 dark:text-gray-400">`), _tmpl$24 = /* @__PURE__ */ 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$25 = /* @__PURE__ */ 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>`), _tmpl$26 = /* @__PURE__ */ 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]"><a target=_blank rel="noopener noreferrer"class=cursor-zoom-in><img class="max-w-full max-h-[400px] object-contain rounded shadow-sm hover:opacity-90 transition-opacity"loading=lazy></a></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">`, true, false, false), _tmpl$27 = /* @__PURE__ */ 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$28 = /* @__PURE__ */ 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"sandbox="allow-scripts allow-same-origin allow-popups allow-forms"loading=lazy>`, true, false, false), _tmpl$29 = /* @__PURE__ */ 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$30 = /* @__PURE__ */ 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$31 = /* @__PURE__ */ template(`<p class="text-xs text-gray-500 dark:text-gray-400 truncate">`), _tmpl$32 = /* @__PURE__ */ 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$33 = /* @__PURE__ */ 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$34 = /* @__PURE__ */ template(`<span aria-hidden=true>`), _tmpl$35 = /* @__PURE__ */ template(`<a rel="noopener noreferrer"><!$><!/><!$><!/>`), _tmpl$36 = /* @__PURE__ */ template(`<span class="animate-spin h-4 w-4 border-2 border-current border-t-transparent rounded-full"aria-hidden=true>`), _tmpl$37 = /* @__PURE__ */ template(`<button><!$><!/><!$><!/><!$><!/>`), _tmpl$38 = /* @__PURE__ */ template(`<p class="text-xs text-red-600 dark:text-red-400 mt-1">Type: <!$><!/>`), _tmpl$39 = /* @__PURE__ */ 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$40 = /* @__PURE__ */ template(`<p class="text-xs text-red-500 dark:text-red-500 mt-2">`), _tmpl$41 = /* @__PURE__ */ 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$42 = /* @__PURE__ */ template(`<li>`), _tmpl$43 = /* @__PURE__ */ 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$44 = /* @__PURE__ */ 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"><!$><!/><div class="p-4 prose prose-sm dark:prose-invert max-w-none">`), _tmpl$45 = /* @__PURE__ */ template(`<div><div class="grid gap-4"></div><!$><!/>`), _tmpl$46 = /* @__PURE__ */ template(`<div>`);
|
|
22
|
+
var _tmpl$ = /* @__PURE__ */ 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__ */ template(`<button>`), _tmpl$3 = /* @__PURE__ */ 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__ */ 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__ */ 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$6 = /* @__PURE__ */ 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$7 = /* @__PURE__ */ template(`<h3 class="text-sm font-semibold text-gray-900 dark:text-white mb-3">`), _tmpl$8 = /* @__PURE__ */ 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$9 = /* @__PURE__ */ 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$0 = /* @__PURE__ */ template(`<tbody class="bg-white dark:bg-gray-800 divide-y divide-gray-200 dark:divide-gray-700">`), _tmpl$1 = /* @__PURE__ */ template(`<tr>`), _tmpl$10 = /* @__PURE__ */ 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"><div>`), _tmpl$11 = /* @__PURE__ */ template(`<tbody class="bg-white dark:bg-gray-800 relative">`), _tmpl$12 = /* @__PURE__ */ 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$13 = /* @__PURE__ */ 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$14 = /* @__PURE__ */ 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$15 = /* @__PURE__ */ template(`<div class="absolute right-0 mt-1 w-36 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-600 rounded-lg shadow-lg py-1 text-sm"><!$><!/><!$><!/><!$><!/>`), _tmpl$16 = /* @__PURE__ */ 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"><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__ */ template(`<span class="ml-2 text-xs font-normal text-gray-400">(virtualized: <!$><!/> rows)`), _tmpl$18 = /* @__PURE__ */ template(`<h3 class="text-sm font-semibold text-gray-900 dark:text-white mb-3"><!$><!/><!$><!/>`), _tmpl$19 = /* @__PURE__ */ template(`<div class="mt-3 flex items-center justify-between text-xs text-gray-500 dark:text-gray-400"><span>Showing <!$><!/> - <!$><!/> of <!$><!/>`), _tmpl$20 = /* @__PURE__ */ 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 overflow-hidden group"><!$><!/><div class=p-4><!$><!/><div class=overflow-x-auto 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-50 dark:bg-gray-900/50 sticky top-0 z-10"><tr></tr></thead><!$><!/></table></div><!$><!/>`), _tmpl$21 = /* @__PURE__ */ 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-50 dark:bg-gray-900/50">`), _tmpl$22 = /* @__PURE__ */ template(`<span class="ml-2 text-sm font-medium text-gray-500 dark:text-gray-400">`), _tmpl$23 = /* @__PURE__ */ template(`<div class="mt-3 flex items-center"><span><!$><!/> <!$><!/>%`), _tmpl$24 = /* @__PURE__ */ template(`<p class="mt-2 text-xs text-gray-500 dark:text-gray-400">`), _tmpl$25 = /* @__PURE__ */ 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$26 = /* @__PURE__ */ 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>`), _tmpl$27 = /* @__PURE__ */ 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]"><a target=_blank rel="noopener noreferrer"class=cursor-zoom-in><img class="max-w-full max-h-[400px] object-contain rounded shadow-sm hover:opacity-90 transition-opacity"loading=lazy></a></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">`, true, false, false), _tmpl$28 = /* @__PURE__ */ 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$29 = /* @__PURE__ */ 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"sandbox="allow-scripts allow-same-origin allow-popups allow-forms"loading=lazy>`, true, false, false), _tmpl$30 = /* @__PURE__ */ 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$31 = /* @__PURE__ */ 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$32 = /* @__PURE__ */ template(`<p class="text-xs text-gray-500 dark:text-gray-400 truncate">`), _tmpl$33 = /* @__PURE__ */ 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$34 = /* @__PURE__ */ 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$35 = /* @__PURE__ */ template(`<span aria-hidden=true>`), _tmpl$36 = /* @__PURE__ */ template(`<a rel="noopener noreferrer"><!$><!/><!$><!/>`), _tmpl$37 = /* @__PURE__ */ template(`<span class="animate-spin h-4 w-4 border-2 border-current border-t-transparent rounded-full"aria-hidden=true>`), _tmpl$38 = /* @__PURE__ */ template(`<button><!$><!/><!$><!/><!$><!/>`), _tmpl$39 = /* @__PURE__ */ template(`<p class="text-xs text-red-600 dark:text-red-400 mt-1">Type: <!$><!/>`), _tmpl$40 = /* @__PURE__ */ 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$41 = /* @__PURE__ */ template(`<p class="text-xs text-red-500 dark:text-red-500 mt-2">`), _tmpl$42 = /* @__PURE__ */ 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$43 = /* @__PURE__ */ template(`<li>`), _tmpl$44 = /* @__PURE__ */ 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$45 = /* @__PURE__ */ 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"><!$><!/><div class="p-4 prose prose-sm dark:prose-invert max-w-none">`), _tmpl$46 = /* @__PURE__ */ template(`<div><div class="grid gap-4"></div><!$><!/>`), _tmpl$47 = /* @__PURE__ */ template(`<div>`);
|
|
23
23
|
function CopyButton(props) {
|
|
24
24
|
const [copied, setCopied] = createSignal(false);
|
|
25
25
|
const handleCopy = async () => {
|
|
@@ -62,15 +62,19 @@ function CopyButton(props) {
|
|
|
62
62
|
})();
|
|
63
63
|
}
|
|
64
64
|
function ChartRenderer(props) {
|
|
65
|
+
var _a, _b;
|
|
65
66
|
const [useNative, setUseNative] = createSignal(false);
|
|
66
67
|
const [iframeUrl, setIframeUrl] = createSignal();
|
|
67
68
|
const [isLoading, setIsLoading] = createSignal(true);
|
|
68
69
|
const [error, setError] = createSignal();
|
|
69
70
|
const params = () => props.component.params;
|
|
70
71
|
const rendererPref = () => {
|
|
71
|
-
var
|
|
72
|
-
return ((
|
|
72
|
+
var _a2;
|
|
73
|
+
return ((_a2 = params()) == null ? void 0 : _a2.renderer) || "auto";
|
|
73
74
|
};
|
|
75
|
+
if (!((_b = (_a = params()) == null ? void 0 : _a.data) == null ? void 0 : _b.datasets)) {
|
|
76
|
+
return getNextElement(_tmpl$4);
|
|
77
|
+
}
|
|
74
78
|
createEffect(async () => {
|
|
75
79
|
const pref = rendererPref();
|
|
76
80
|
if (pref === "iframe") {
|
|
@@ -119,70 +123,70 @@ function ChartRenderer(props) {
|
|
|
119
123
|
},
|
|
120
124
|
get fallback() {
|
|
121
125
|
return (() => {
|
|
122
|
-
var _el$
|
|
123
|
-
insert(_el$
|
|
126
|
+
var _el$5 = getNextElement(_tmpl$9), _el$15 = _el$5.firstChild, [_el$16, _co$2] = getNextMarker(_el$15.nextSibling), _el$17 = _el$16.nextSibling, [_el$18, _co$3] = getNextMarker(_el$17.nextSibling), _el$19 = _el$18.nextSibling, [_el$20, _co$4] = getNextMarker(_el$19.nextSibling);
|
|
127
|
+
insert(_el$5, createComponent(Show, {
|
|
124
128
|
get when() {
|
|
125
129
|
return isLoading();
|
|
126
130
|
},
|
|
127
131
|
get children() {
|
|
128
|
-
return getNextElement(_tmpl$
|
|
132
|
+
return getNextElement(_tmpl$5);
|
|
129
133
|
}
|
|
130
|
-
}), _el$
|
|
131
|
-
insert(_el$
|
|
134
|
+
}), _el$16, _co$2);
|
|
135
|
+
insert(_el$5, createComponent(Show, {
|
|
132
136
|
get when() {
|
|
133
137
|
return error();
|
|
134
138
|
},
|
|
135
139
|
get children() {
|
|
136
|
-
var _el$
|
|
137
|
-
insert(_el$
|
|
138
|
-
return _el$
|
|
140
|
+
var _el$7 = getNextElement(_tmpl$6), _el$8 = _el$7.firstChild, _el$9 = _el$8.firstChild, _el$0 = _el$9.nextSibling;
|
|
141
|
+
insert(_el$0, error);
|
|
142
|
+
return _el$7;
|
|
139
143
|
}
|
|
140
|
-
}), _el$
|
|
141
|
-
insert(_el$
|
|
144
|
+
}), _el$18, _co$3);
|
|
145
|
+
insert(_el$5, createComponent(Show, {
|
|
142
146
|
get when() {
|
|
143
147
|
return memo(() => !!iframeUrl())() && !error();
|
|
144
148
|
},
|
|
145
149
|
get children() {
|
|
146
|
-
var _el$
|
|
147
|
-
insert(_el$
|
|
150
|
+
var _el$1 = getNextElement(_tmpl$8), _el$13 = _el$1.firstChild, [_el$14, _co$] = getNextMarker(_el$13.nextSibling), _el$11 = _el$14.nextSibling, _el$12 = _el$11.firstChild;
|
|
151
|
+
insert(_el$1, createComponent(Show, {
|
|
148
152
|
get when() {
|
|
149
|
-
var
|
|
150
|
-
return (
|
|
153
|
+
var _a2;
|
|
154
|
+
return (_a2 = params()) == null ? void 0 : _a2.title;
|
|
151
155
|
},
|
|
152
156
|
get children() {
|
|
153
|
-
var _el$
|
|
154
|
-
insert(_el$
|
|
155
|
-
var
|
|
156
|
-
return (
|
|
157
|
+
var _el$10 = getNextElement(_tmpl$7);
|
|
158
|
+
insert(_el$10, () => {
|
|
159
|
+
var _a2;
|
|
160
|
+
return (_a2 = params()) == null ? void 0 : _a2.title;
|
|
157
161
|
});
|
|
158
|
-
return _el$
|
|
162
|
+
return _el$10;
|
|
159
163
|
}
|
|
160
|
-
}), _el$
|
|
161
|
-
_el$
|
|
162
|
-
var
|
|
164
|
+
}), _el$14, _co$);
|
|
165
|
+
_el$12.addEventListener("error", () => {
|
|
166
|
+
var _a2;
|
|
163
167
|
setError("Failed to load chart");
|
|
164
|
-
(
|
|
168
|
+
(_a2 = props.onError) == null ? void 0 : _a2.call(props, {
|
|
165
169
|
type: "render",
|
|
166
170
|
message: "Chart rendering failed",
|
|
167
171
|
componentId: props.component.id
|
|
168
172
|
});
|
|
169
173
|
});
|
|
170
174
|
effect((_p$) => {
|
|
171
|
-
var
|
|
172
|
-
var _v$3 = ((
|
|
173
|
-
_v$3 !== _p$.e && setAttribute(_el$
|
|
174
|
-
_v$4 !== _p$.t && setAttribute(_el$
|
|
175
|
-
_v$5 !== _p$.a && setAttribute(_el$
|
|
175
|
+
var _a2, _b2, _c, _d;
|
|
176
|
+
var _v$3 = ((_a2 = params()) == null ? void 0 : _a2.title) ? `Chart: ${(_b2 = params()) == null ? void 0 : _b2.title}` : "Chart visualization", _v$4 = iframeUrl(), _v$5 = ((_c = params()) == null ? void 0 : _c.title) ? `Chart: ${(_d = params()) == null ? void 0 : _d.title}` : "Chart visualization";
|
|
177
|
+
_v$3 !== _p$.e && setAttribute(_el$11, "aria-label", _p$.e = _v$3);
|
|
178
|
+
_v$4 !== _p$.t && setAttribute(_el$12, "src", _p$.t = _v$4);
|
|
179
|
+
_v$5 !== _p$.a && setAttribute(_el$12, "alt", _p$.a = _v$5);
|
|
176
180
|
return _p$;
|
|
177
181
|
}, {
|
|
178
182
|
e: void 0,
|
|
179
183
|
t: void 0,
|
|
180
184
|
a: void 0
|
|
181
185
|
});
|
|
182
|
-
return _el$
|
|
186
|
+
return _el$1;
|
|
183
187
|
}
|
|
184
|
-
}), _el$
|
|
185
|
-
return _el$
|
|
188
|
+
}), _el$20, _co$4);
|
|
189
|
+
return _el$5;
|
|
186
190
|
})();
|
|
187
191
|
},
|
|
188
192
|
get children() {
|
|
@@ -191,8 +195,8 @@ function ChartRenderer(props) {
|
|
|
191
195
|
return props.component;
|
|
192
196
|
},
|
|
193
197
|
onError: (err) => {
|
|
194
|
-
var
|
|
195
|
-
return (
|
|
198
|
+
var _a2;
|
|
199
|
+
return (_a2 = props.onError) == null ? void 0 : _a2.call(props, {
|
|
196
200
|
type: "render",
|
|
197
201
|
message: err.message,
|
|
198
202
|
componentId: props.component.id
|
|
@@ -377,28 +381,28 @@ ${dataRows}`;
|
|
|
377
381
|
};
|
|
378
382
|
const tableId = `table-${Math.random().toString(36).slice(2, 9)}`;
|
|
379
383
|
const StandardTableBody = () => (() => {
|
|
380
|
-
var _el$
|
|
381
|
-
insert(_el$
|
|
384
|
+
var _el$21 = getNextElement(_tmpl$0);
|
|
385
|
+
insert(_el$21, createComponent(For, {
|
|
382
386
|
get each() {
|
|
383
387
|
return tableParams.rows.slice(0, DEFAULT_RESOURCE_LIMITS.maxTableRows);
|
|
384
388
|
},
|
|
385
389
|
children: (row, i) => (() => {
|
|
386
|
-
var _el$
|
|
387
|
-
insert(_el$
|
|
390
|
+
var _el$22 = getNextElement(_tmpl$1);
|
|
391
|
+
insert(_el$22, createComponent(For, {
|
|
388
392
|
get each() {
|
|
389
393
|
return tableParams.columns;
|
|
390
394
|
},
|
|
391
395
|
children: (column) => (() => {
|
|
392
|
-
var _el$
|
|
393
|
-
effect(() => setProperty(_el$
|
|
394
|
-
return _el$
|
|
396
|
+
var _el$23 = getNextElement(_tmpl$10), _el$24 = _el$23.firstChild;
|
|
397
|
+
effect(() => setProperty(_el$24, "innerHTML", renderCellValue(row[column.key])));
|
|
398
|
+
return _el$23;
|
|
395
399
|
})()
|
|
396
400
|
}));
|
|
397
|
-
effect(() => className(_el$
|
|
398
|
-
return _el$
|
|
401
|
+
effect(() => className(_el$22, `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"}`));
|
|
402
|
+
return _el$22;
|
|
399
403
|
})()
|
|
400
404
|
}));
|
|
401
|
-
return _el$
|
|
405
|
+
return _el$21;
|
|
402
406
|
})();
|
|
403
407
|
const VirtualizedTableBody = () => {
|
|
404
408
|
const v = virtualizer();
|
|
@@ -408,39 +412,39 @@ ${dataRows}`;
|
|
|
408
412
|
const opts = virtualizeOpts();
|
|
409
413
|
const rowHeight = opts.rowHeight ?? 48;
|
|
410
414
|
return (() => {
|
|
411
|
-
var _el$
|
|
412
|
-
setStyleProperty(_el$
|
|
413
|
-
insert(_el$
|
|
415
|
+
var _el$25 = getNextElement(_tmpl$11);
|
|
416
|
+
setStyleProperty(_el$25, "height", `${totalSize}px`);
|
|
417
|
+
insert(_el$25, createComponent(For, {
|
|
414
418
|
each: items,
|
|
415
419
|
children: (virtualRow) => {
|
|
416
420
|
const row = tableParams.rows[virtualRow.index];
|
|
417
421
|
return (() => {
|
|
418
|
-
var _el$
|
|
419
|
-
setStyleProperty(_el$
|
|
420
|
-
insert(_el$
|
|
422
|
+
var _el$26 = getNextElement(_tmpl$1);
|
|
423
|
+
setStyleProperty(_el$26, "height", `${rowHeight}px`);
|
|
424
|
+
insert(_el$26, createComponent(For, {
|
|
421
425
|
get each() {
|
|
422
426
|
return tableParams.columns;
|
|
423
427
|
},
|
|
424
428
|
children: (column) => (() => {
|
|
425
|
-
var _el$
|
|
426
|
-
effect(() => setProperty(_el$
|
|
427
|
-
return _el$
|
|
429
|
+
var _el$27 = getNextElement(_tmpl$10), _el$28 = _el$27.firstChild;
|
|
430
|
+
effect(() => setProperty(_el$28, "innerHTML", renderCellValue(row[column.key])));
|
|
431
|
+
return _el$27;
|
|
428
432
|
})()
|
|
429
433
|
}));
|
|
430
434
|
effect((_p$) => {
|
|
431
435
|
var _v$6 = `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$7 = `translateY(${virtualRow.start}px)`;
|
|
432
|
-
_v$6 !== _p$.e && className(_el$
|
|
433
|
-
_v$7 !== _p$.t && setStyleProperty(_el$
|
|
436
|
+
_v$6 !== _p$.e && className(_el$26, _p$.e = _v$6);
|
|
437
|
+
_v$7 !== _p$.t && setStyleProperty(_el$26, "transform", _p$.t = _v$7);
|
|
434
438
|
return _p$;
|
|
435
439
|
}, {
|
|
436
440
|
e: void 0,
|
|
437
441
|
t: void 0
|
|
438
442
|
});
|
|
439
|
-
return _el$
|
|
443
|
+
return _el$26;
|
|
440
444
|
})();
|
|
441
445
|
}
|
|
442
446
|
}));
|
|
443
|
-
return _el$
|
|
447
|
+
return _el$25;
|
|
444
448
|
})();
|
|
445
449
|
};
|
|
446
450
|
return createComponent(ExpandableWrapper, {
|
|
@@ -452,8 +456,8 @@ ${dataRows}`;
|
|
|
452
456
|
},
|
|
453
457
|
copyLabel: "Copy table (TSV)",
|
|
454
458
|
get children() {
|
|
455
|
-
var _el$
|
|
456
|
-
insert(_el$
|
|
459
|
+
var _el$29 = getNextElement(_tmpl$20), _el$78 = _el$29.firstChild, [_el$79, _co$16] = getNextMarker(_el$78.nextSibling), _el$44 = _el$79.nextSibling, _el$74 = _el$44.firstChild, [_el$75, _co$14] = getNextMarker(_el$74.nextSibling), _el$55 = _el$75.nextSibling, _el$56 = _el$55.firstChild, _el$57 = _el$56.firstChild, _el$58 = _el$57.firstChild, _el$59 = _el$57.nextSibling, [_el$60, _co$10] = getNextMarker(_el$59.nextSibling), _el$76 = _el$55.nextSibling, [_el$77, _co$15] = getNextMarker(_el$76.nextSibling);
|
|
460
|
+
insert(_el$29, createComponent(Show, {
|
|
457
461
|
when: exportable,
|
|
458
462
|
get fallback() {
|
|
459
463
|
return createComponent(CopyButton, {
|
|
@@ -463,95 +467,95 @@ ${dataRows}`;
|
|
|
463
467
|
});
|
|
464
468
|
},
|
|
465
469
|
get children() {
|
|
466
|
-
var _el$
|
|
467
|
-
_el$
|
|
468
|
-
insert(_el$
|
|
470
|
+
var _el$30 = getNextElement(_tmpl$16), _el$31 = _el$30.firstChild, _el$42 = _el$31.nextSibling, [_el$43, _co$8] = getNextMarker(_el$42.nextSibling);
|
|
471
|
+
_el$31.$$click = () => setShowExportMenu(!showExportMenu());
|
|
472
|
+
insert(_el$30, createComponent(Show, {
|
|
469
473
|
get when() {
|
|
470
474
|
return showExportMenu();
|
|
471
475
|
},
|
|
472
476
|
get children() {
|
|
473
|
-
var _el$
|
|
474
|
-
insert(_el$
|
|
477
|
+
var _el$32 = getNextElement(_tmpl$15), _el$36 = _el$32.firstChild, [_el$37, _co$5] = getNextMarker(_el$36.nextSibling), _el$38 = _el$37.nextSibling, [_el$39, _co$6] = getNextMarker(_el$38.nextSibling), _el$40 = _el$39.nextSibling, [_el$41, _co$7] = getNextMarker(_el$40.nextSibling);
|
|
478
|
+
insert(_el$32, createComponent(Show, {
|
|
475
479
|
get when() {
|
|
476
480
|
return exportFormats.includes("tsv");
|
|
477
481
|
},
|
|
478
482
|
get children() {
|
|
479
|
-
var _el$
|
|
480
|
-
_el$
|
|
483
|
+
var _el$33 = getNextElement(_tmpl$12);
|
|
484
|
+
_el$33.$$click = () => handleExport("tsv");
|
|
481
485
|
runHydrationEvents();
|
|
482
|
-
return _el$
|
|
486
|
+
return _el$33;
|
|
483
487
|
}
|
|
484
|
-
}), _el$
|
|
485
|
-
insert(_el$
|
|
488
|
+
}), _el$37, _co$5);
|
|
489
|
+
insert(_el$32, createComponent(Show, {
|
|
486
490
|
get when() {
|
|
487
491
|
return exportFormats.includes("csv");
|
|
488
492
|
},
|
|
489
493
|
get children() {
|
|
490
|
-
var _el$
|
|
491
|
-
_el$
|
|
494
|
+
var _el$34 = getNextElement(_tmpl$13);
|
|
495
|
+
_el$34.$$click = () => handleExport("csv");
|
|
492
496
|
runHydrationEvents();
|
|
493
|
-
return _el$
|
|
497
|
+
return _el$34;
|
|
494
498
|
}
|
|
495
|
-
}), _el$
|
|
496
|
-
insert(_el$
|
|
499
|
+
}), _el$39, _co$6);
|
|
500
|
+
insert(_el$32, createComponent(Show, {
|
|
497
501
|
get when() {
|
|
498
502
|
return exportFormats.includes("json");
|
|
499
503
|
},
|
|
500
504
|
get children() {
|
|
501
|
-
var _el$
|
|
502
|
-
_el$
|
|
505
|
+
var _el$35 = getNextElement(_tmpl$14);
|
|
506
|
+
_el$35.$$click = () => handleExport("json");
|
|
503
507
|
runHydrationEvents();
|
|
504
|
-
return _el$
|
|
508
|
+
return _el$35;
|
|
505
509
|
}
|
|
506
|
-
}), _el$
|
|
507
|
-
return _el$
|
|
510
|
+
}), _el$41, _co$7);
|
|
511
|
+
return _el$32;
|
|
508
512
|
}
|
|
509
|
-
}), _el$
|
|
513
|
+
}), _el$43, _co$8);
|
|
510
514
|
runHydrationEvents();
|
|
511
|
-
return _el$
|
|
515
|
+
return _el$30;
|
|
512
516
|
}
|
|
513
|
-
}), _el$
|
|
514
|
-
insert(_el$
|
|
517
|
+
}), _el$79, _co$16);
|
|
518
|
+
insert(_el$44, createComponent(Show, {
|
|
515
519
|
get when() {
|
|
516
520
|
return tableParams.title;
|
|
517
521
|
},
|
|
518
522
|
get children() {
|
|
519
|
-
var _el$
|
|
520
|
-
setAttribute(_el$
|
|
521
|
-
insert(_el$
|
|
522
|
-
insert(_el$
|
|
523
|
+
var _el$45 = getNextElement(_tmpl$18), _el$51 = _el$45.firstChild, [_el$52, _co$0] = getNextMarker(_el$51.nextSibling), _el$53 = _el$52.nextSibling, [_el$54, _co$1] = getNextMarker(_el$53.nextSibling);
|
|
524
|
+
setAttribute(_el$45, "id", `${tableId}-title`);
|
|
525
|
+
insert(_el$45, () => tableParams.title, _el$52, _co$0);
|
|
526
|
+
insert(_el$45, createComponent(Show, {
|
|
523
527
|
get when() {
|
|
524
528
|
return isVirtualizing();
|
|
525
529
|
},
|
|
526
530
|
get children() {
|
|
527
|
-
var _el$
|
|
528
|
-
_el$
|
|
529
|
-
insert(_el$
|
|
531
|
+
var _el$46 = getNextElement(_tmpl$17), _el$47 = _el$46.firstChild, _el$49 = _el$47.nextSibling, [_el$50, _co$9] = getNextMarker(_el$49.nextSibling);
|
|
532
|
+
_el$50.nextSibling;
|
|
533
|
+
insert(_el$46, () => {
|
|
530
534
|
var _a;
|
|
531
535
|
return (_a = tableParams.rows) == null ? void 0 : _a.length;
|
|
532
|
-
}, _el$
|
|
533
|
-
return _el$
|
|
536
|
+
}, _el$50, _co$9);
|
|
537
|
+
return _el$46;
|
|
534
538
|
}
|
|
535
|
-
}), _el$
|
|
536
|
-
return _el$
|
|
539
|
+
}), _el$54, _co$1);
|
|
540
|
+
return _el$45;
|
|
537
541
|
}
|
|
538
|
-
}), _el$
|
|
542
|
+
}), _el$75, _co$14);
|
|
539
543
|
var _ref$ = scrollContainerRef;
|
|
540
|
-
typeof _ref$ === "function" ? use(_ref$, _el$
|
|
541
|
-
insert(_el$
|
|
544
|
+
typeof _ref$ === "function" ? use(_ref$, _el$55) : scrollContainerRef = _el$55;
|
|
545
|
+
insert(_el$58, createComponent(For, {
|
|
542
546
|
get each() {
|
|
543
547
|
return tableParams.columns;
|
|
544
548
|
},
|
|
545
549
|
children: (column) => (() => {
|
|
546
|
-
var _el$
|
|
547
|
-
insert(_el$
|
|
548
|
-
effect((_$p) => style(_el$
|
|
550
|
+
var _el$80 = getNextElement(_tmpl$21);
|
|
551
|
+
insert(_el$80, () => column.label);
|
|
552
|
+
effect((_$p) => style(_el$80, column.width ? {
|
|
549
553
|
width: column.width
|
|
550
554
|
} : {}, _$p));
|
|
551
|
-
return _el$
|
|
555
|
+
return _el$80;
|
|
552
556
|
})()
|
|
553
557
|
}));
|
|
554
|
-
insert(_el$
|
|
558
|
+
insert(_el$56, createComponent(Show, {
|
|
555
559
|
get when() {
|
|
556
560
|
return isVirtualizing();
|
|
557
561
|
},
|
|
@@ -561,34 +565,34 @@ ${dataRows}`;
|
|
|
561
565
|
get children() {
|
|
562
566
|
return createComponent(VirtualizedTableBody, {});
|
|
563
567
|
}
|
|
564
|
-
}), _el$
|
|
565
|
-
insert(_el$
|
|
568
|
+
}), _el$60, _co$10);
|
|
569
|
+
insert(_el$44, createComponent(Show, {
|
|
566
570
|
get when() {
|
|
567
571
|
return tableParams.pagination;
|
|
568
572
|
},
|
|
569
573
|
get children() {
|
|
570
|
-
var _el$
|
|
571
|
-
insert(_el$
|
|
572
|
-
insert(_el$
|
|
573
|
-
insert(_el$
|
|
574
|
-
return _el$
|
|
574
|
+
var _el$61 = getNextElement(_tmpl$19), _el$62 = _el$61.firstChild, _el$63 = _el$62.firstChild, _el$68 = _el$63.nextSibling, [_el$69, _co$11] = getNextMarker(_el$68.nextSibling), _el$64 = _el$69.nextSibling, _el$70 = _el$64.nextSibling, [_el$71, _co$12] = getNextMarker(_el$70.nextSibling), _el$66 = _el$71.nextSibling, _el$72 = _el$66.nextSibling, [_el$73, _co$13] = getNextMarker(_el$72.nextSibling);
|
|
575
|
+
insert(_el$62, () => tableParams.pagination.currentPage * tableParams.pagination.pageSize + 1, _el$69, _co$11);
|
|
576
|
+
insert(_el$62, () => Math.min((tableParams.pagination.currentPage + 1) * tableParams.pagination.pageSize, tableParams.pagination.totalRows), _el$71, _co$12);
|
|
577
|
+
insert(_el$62, () => tableParams.pagination.totalRows, _el$73, _co$13);
|
|
578
|
+
return _el$61;
|
|
575
579
|
}
|
|
576
|
-
}), _el$
|
|
580
|
+
}), _el$77, _co$15);
|
|
577
581
|
effect((_p$) => {
|
|
578
582
|
var _v$8 = isVirtualizing() ? {
|
|
579
583
|
"max-height": "500px",
|
|
580
584
|
"overflow-y": "auto"
|
|
581
585
|
} : {}, _v$9 = tableParams.title || "Data table", _v$0 = tableParams.title ? `${tableId}-title` : void 0;
|
|
582
|
-
_p$.e = style(_el$
|
|
583
|
-
_v$9 !== _p$.t && setAttribute(_el$
|
|
584
|
-
_v$0 !== _p$.a && setAttribute(_el$
|
|
586
|
+
_p$.e = style(_el$55, _v$8, _p$.e);
|
|
587
|
+
_v$9 !== _p$.t && setAttribute(_el$55, "aria-label", _p$.t = _v$9);
|
|
588
|
+
_v$0 !== _p$.a && setAttribute(_el$56, "aria-labelledby", _p$.a = _v$0);
|
|
585
589
|
return _p$;
|
|
586
590
|
}, {
|
|
587
591
|
e: void 0,
|
|
588
592
|
t: void 0,
|
|
589
593
|
a: void 0
|
|
590
594
|
});
|
|
591
|
-
return _el$
|
|
595
|
+
return _el$29;
|
|
592
596
|
}
|
|
593
597
|
});
|
|
594
598
|
}
|
|
@@ -601,51 +605,51 @@ function MetricRenderer(props) {
|
|
|
601
605
|
return `${title}: ${value}${unit ? " " + unit : ""}`;
|
|
602
606
|
};
|
|
603
607
|
return (() => {
|
|
604
|
-
var _el$
|
|
605
|
-
insert(_el$
|
|
608
|
+
var _el$81 = getNextElement(_tmpl$25), _el$103 = _el$81.firstChild, [_el$104, _co$22] = getNextMarker(_el$103.nextSibling), _el$82 = _el$104.nextSibling, _el$83 = _el$82.firstChild, _el$84 = _el$83.firstChild, _el$85 = _el$84.nextSibling, _el$86 = _el$85.firstChild, _el$88 = _el$86.nextSibling, [_el$89, _co$17] = getNextMarker(_el$88.nextSibling), _el$99 = _el$83.nextSibling, [_el$100, _co$20] = getNextMarker(_el$99.nextSibling), _el$101 = _el$100.nextSibling, [_el$102, _co$21] = getNextMarker(_el$101.nextSibling);
|
|
609
|
+
insert(_el$81, createComponent(CopyButton, {
|
|
606
610
|
getText: getMetricText,
|
|
607
611
|
title: "Copy metric",
|
|
608
612
|
position: "top-right"
|
|
609
|
-
}), _el$
|
|
610
|
-
insert(_el$
|
|
611
|
-
insert(_el$
|
|
612
|
-
insert(_el$
|
|
613
|
+
}), _el$104, _co$22);
|
|
614
|
+
insert(_el$84, () => metricParams.title);
|
|
615
|
+
insert(_el$86, () => metricParams.value);
|
|
616
|
+
insert(_el$85, createComponent(Show, {
|
|
613
617
|
get when() {
|
|
614
618
|
return metricParams.unit;
|
|
615
619
|
},
|
|
616
620
|
get children() {
|
|
617
|
-
var _el$
|
|
618
|
-
insert(_el$
|
|
619
|
-
return _el$
|
|
621
|
+
var _el$87 = getNextElement(_tmpl$22);
|
|
622
|
+
insert(_el$87, () => metricParams.unit);
|
|
623
|
+
return _el$87;
|
|
620
624
|
}
|
|
621
|
-
}), _el$
|
|
622
|
-
insert(_el$
|
|
625
|
+
}), _el$89, _co$17);
|
|
626
|
+
insert(_el$82, createComponent(Show, {
|
|
623
627
|
get when() {
|
|
624
628
|
return metricParams.trend;
|
|
625
629
|
},
|
|
626
630
|
get children() {
|
|
627
|
-
var _el$
|
|
628
|
-
_el$
|
|
629
|
-
insert(_el$
|
|
631
|
+
var _el$90 = getNextElement(_tmpl$23), _el$91 = _el$90.firstChild, _el$94 = _el$91.firstChild, [_el$95, _co$18] = getNextMarker(_el$94.nextSibling), _el$92 = _el$95.nextSibling, _el$96 = _el$92.nextSibling, [_el$97, _co$19] = getNextMarker(_el$96.nextSibling);
|
|
632
|
+
_el$97.nextSibling;
|
|
633
|
+
insert(_el$91, (() => {
|
|
630
634
|
var _c$ = memo(() => metricParams.trend.direction === "up");
|
|
631
635
|
return () => _c$() ? "�" : metricParams.trend.direction === "down" ? "�" : "�";
|
|
632
|
-
})(), _el$
|
|
633
|
-
insert(_el$
|
|
634
|
-
effect(() => className(_el$
|
|
635
|
-
return _el$
|
|
636
|
+
})(), _el$95, _co$18);
|
|
637
|
+
insert(_el$91, () => Math.abs(metricParams.trend.value), _el$97, _co$19);
|
|
638
|
+
effect(() => className(_el$91, `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"}`));
|
|
639
|
+
return _el$90;
|
|
636
640
|
}
|
|
637
|
-
}), _el$
|
|
638
|
-
insert(_el$
|
|
641
|
+
}), _el$100, _co$20);
|
|
642
|
+
insert(_el$82, createComponent(Show, {
|
|
639
643
|
get when() {
|
|
640
644
|
return metricParams.subtitle;
|
|
641
645
|
},
|
|
642
646
|
get children() {
|
|
643
|
-
var _el$
|
|
644
|
-
insert(_el$
|
|
645
|
-
return _el$
|
|
647
|
+
var _el$98 = getNextElement(_tmpl$24);
|
|
648
|
+
insert(_el$98, () => metricParams.subtitle);
|
|
649
|
+
return _el$98;
|
|
646
650
|
}
|
|
647
|
-
}), _el$
|
|
648
|
-
return _el$
|
|
651
|
+
}), _el$102, _co$21);
|
|
652
|
+
return _el$81;
|
|
649
653
|
})();
|
|
650
654
|
}
|
|
651
655
|
function extractImageFromMarkdown(content) {
|
|
@@ -686,91 +690,91 @@ function TextRenderer(props) {
|
|
|
686
690
|
},
|
|
687
691
|
get fallback() {
|
|
688
692
|
return (() => {
|
|
689
|
-
var _el$
|
|
690
|
-
insert(_el$
|
|
693
|
+
var _el$105 = getNextElement(_tmpl$26), _el$107 = _el$105.firstChild, [_el$108, _co$23] = getNextMarker(_el$107.nextSibling), _el$106 = _el$108.nextSibling;
|
|
694
|
+
insert(_el$105, createComponent(CopyButton, {
|
|
691
695
|
getText: getTextContent,
|
|
692
696
|
title: "Copy text",
|
|
693
697
|
position: "top-right"
|
|
694
|
-
}), _el$
|
|
698
|
+
}), _el$108, _co$23);
|
|
695
699
|
effect((_p$) => {
|
|
696
700
|
var _v$1 = `prose prose-sm dark:prose-invert max-w-none ${textParams.className || ""}`, _v$10 = htmlContent();
|
|
697
|
-
_v$1 !== _p$.e && className(_el$
|
|
698
|
-
_v$10 !== _p$.t && setProperty(_el$
|
|
701
|
+
_v$1 !== _p$.e && className(_el$106, _p$.e = _v$1);
|
|
702
|
+
_v$10 !== _p$.t && setProperty(_el$106, "innerHTML", _p$.t = _v$10);
|
|
699
703
|
return _p$;
|
|
700
704
|
}, {
|
|
701
705
|
e: void 0,
|
|
702
706
|
t: void 0
|
|
703
707
|
});
|
|
704
|
-
return _el$
|
|
708
|
+
return _el$105;
|
|
705
709
|
})();
|
|
706
710
|
},
|
|
707
711
|
children: (data) => (() => {
|
|
708
|
-
var _el$
|
|
709
|
-
insert(_el$
|
|
712
|
+
var _el$109 = getNextElement(_tmpl$27), _el$110 = _el$109.firstChild, _el$111 = _el$110.firstChild, _el$112 = _el$111.firstChild, _el$113 = _el$110.nextSibling, _el$114 = _el$113.firstChild;
|
|
713
|
+
insert(_el$114, () => data().credit);
|
|
710
714
|
effect((_p$) => {
|
|
711
715
|
var _v$11 = data().linkUrl, _v$12 = data().imageUrl, _v$13 = data().alt;
|
|
712
|
-
_v$11 !== _p$.e && setAttribute(_el$
|
|
713
|
-
_v$12 !== _p$.t && setAttribute(_el$
|
|
714
|
-
_v$13 !== _p$.a && setAttribute(_el$
|
|
716
|
+
_v$11 !== _p$.e && setAttribute(_el$111, "href", _p$.e = _v$11);
|
|
717
|
+
_v$12 !== _p$.t && setAttribute(_el$112, "src", _p$.t = _v$12);
|
|
718
|
+
_v$13 !== _p$.a && setAttribute(_el$112, "alt", _p$.a = _v$13);
|
|
715
719
|
return _p$;
|
|
716
720
|
}, {
|
|
717
721
|
e: void 0,
|
|
718
722
|
t: void 0,
|
|
719
723
|
a: void 0
|
|
720
724
|
});
|
|
721
|
-
return _el$
|
|
725
|
+
return _el$109;
|
|
722
726
|
})()
|
|
723
727
|
});
|
|
724
728
|
}
|
|
725
729
|
function IframeRenderer(props) {
|
|
726
730
|
const params = props.component.params;
|
|
727
731
|
return (() => {
|
|
728
|
-
var _el$
|
|
729
|
-
insert(_el$
|
|
732
|
+
var _el$115 = getNextElement(_tmpl$29), _el$119 = _el$115.firstChild, [_el$120, _co$24] = getNextMarker(_el$119.nextSibling), _el$118 = _el$120.nextSibling;
|
|
733
|
+
insert(_el$115, createComponent(Show, {
|
|
730
734
|
get when() {
|
|
731
735
|
return params.title;
|
|
732
736
|
},
|
|
733
737
|
get children() {
|
|
734
|
-
var _el$
|
|
735
|
-
insert(_el$
|
|
736
|
-
return _el$
|
|
738
|
+
var _el$116 = getNextElement(_tmpl$28), _el$117 = _el$116.firstChild;
|
|
739
|
+
insert(_el$117, () => params.title);
|
|
740
|
+
return _el$116;
|
|
737
741
|
}
|
|
738
|
-
}), _el$
|
|
742
|
+
}), _el$120, _co$24);
|
|
739
743
|
effect((_p$) => {
|
|
740
744
|
var _v$14 = params.url, _v$15 = params.title || "Embedded content", _v$16 = `height: ${params.height || "400px"}; min-height: 300px;`;
|
|
741
|
-
_v$14 !== _p$.e && setAttribute(_el$
|
|
742
|
-
_v$15 !== _p$.t && setAttribute(_el$
|
|
743
|
-
_p$.a = style(_el$
|
|
745
|
+
_v$14 !== _p$.e && setAttribute(_el$118, "src", _p$.e = _v$14);
|
|
746
|
+
_v$15 !== _p$.t && setAttribute(_el$118, "title", _p$.t = _v$15);
|
|
747
|
+
_p$.a = style(_el$118, _v$16, _p$.a);
|
|
744
748
|
return _p$;
|
|
745
749
|
}, {
|
|
746
750
|
e: void 0,
|
|
747
751
|
t: void 0,
|
|
748
752
|
a: void 0
|
|
749
753
|
});
|
|
750
|
-
return _el$
|
|
754
|
+
return _el$115;
|
|
751
755
|
})();
|
|
752
756
|
}
|
|
753
757
|
function ImageRenderer(props) {
|
|
754
758
|
const params = props.component.params;
|
|
755
759
|
return (() => {
|
|
756
|
-
var _el$
|
|
757
|
-
insert(_el$
|
|
760
|
+
var _el$121 = getNextElement(_tmpl$31), _el$122 = _el$121.firstChild, _el$123 = _el$122.firstChild, _el$124 = _el$123.firstChild, _el$127 = _el$122.nextSibling, [_el$128, _co$25] = getNextMarker(_el$127.nextSibling);
|
|
761
|
+
insert(_el$121, createComponent(Show, {
|
|
758
762
|
get when() {
|
|
759
763
|
return params.caption;
|
|
760
764
|
},
|
|
761
765
|
get children() {
|
|
762
|
-
var _el$
|
|
763
|
-
insert(_el$
|
|
764
|
-
return _el$
|
|
766
|
+
var _el$125 = getNextElement(_tmpl$30), _el$126 = _el$125.firstChild;
|
|
767
|
+
insert(_el$126, () => params.caption);
|
|
768
|
+
return _el$125;
|
|
765
769
|
}
|
|
766
|
-
}), _el$
|
|
770
|
+
}), _el$128, _co$25);
|
|
767
771
|
effect((_p$) => {
|
|
768
772
|
var _v$17 = `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$18 = params.url, _v$19 = `View full size: ${params.alt || "image"}`, _v$20 = params.url, _v$21 = params.alt || "Image";
|
|
769
|
-
_v$17 !== _p$.e && className(_el$
|
|
770
|
-
_v$18 !== _p$.t && setAttribute(_el$
|
|
771
|
-
_v$19 !== _p$.a && setAttribute(_el$
|
|
772
|
-
_v$20 !== _p$.o && setAttribute(_el$
|
|
773
|
-
_v$21 !== _p$.i && setAttribute(_el$
|
|
773
|
+
_v$17 !== _p$.e && className(_el$121, _p$.e = _v$17);
|
|
774
|
+
_v$18 !== _p$.t && setAttribute(_el$123, "href", _p$.t = _v$18);
|
|
775
|
+
_v$19 !== _p$.a && setAttribute(_el$123, "aria-label", _p$.a = _v$19);
|
|
776
|
+
_v$20 !== _p$.o && setAttribute(_el$124, "src", _p$.o = _v$20);
|
|
777
|
+
_v$21 !== _p$.i && setAttribute(_el$124, "alt", _p$.i = _v$21);
|
|
774
778
|
return _p$;
|
|
775
779
|
}, {
|
|
776
780
|
e: void 0,
|
|
@@ -779,30 +783,30 @@ function ImageRenderer(props) {
|
|
|
779
783
|
o: void 0,
|
|
780
784
|
i: void 0
|
|
781
785
|
});
|
|
782
|
-
return _el$
|
|
786
|
+
return _el$121;
|
|
783
787
|
})();
|
|
784
788
|
}
|
|
785
789
|
function LinkRenderer(props) {
|
|
786
790
|
const params = props.component.params;
|
|
787
791
|
return (() => {
|
|
788
|
-
var _el$
|
|
789
|
-
_el$
|
|
790
|
-
insert(_el$
|
|
791
|
-
insert(_el$
|
|
792
|
+
var _el$129 = getNextElement(_tmpl$33), _el$130 = _el$129.firstChild, _el$131 = _el$130.nextSibling, _el$132 = _el$131.firstChild, _el$134 = _el$132.nextSibling, [_el$135, _co$26] = getNextMarker(_el$134.nextSibling);
|
|
793
|
+
_el$129.$$click = (e) => e.stopPropagation();
|
|
794
|
+
insert(_el$132, () => params.label || params.url);
|
|
795
|
+
insert(_el$131, createComponent(Show, {
|
|
792
796
|
get when() {
|
|
793
797
|
return params.description;
|
|
794
798
|
},
|
|
795
799
|
get children() {
|
|
796
|
-
var _el$
|
|
797
|
-
insert(_el$
|
|
798
|
-
return _el$
|
|
800
|
+
var _el$133 = getNextElement(_tmpl$32);
|
|
801
|
+
insert(_el$133, () => params.description);
|
|
802
|
+
return _el$133;
|
|
799
803
|
}
|
|
800
|
-
}), _el$
|
|
804
|
+
}), _el$135, _co$26);
|
|
801
805
|
effect((_p$) => {
|
|
802
806
|
var _v$22 = params.url, _v$23 = `${params.label || "Link"}: ${params.description || params.url} (opens in new tab)`, _v$24 = `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 || ""}`;
|
|
803
|
-
_v$22 !== _p$.e && setAttribute(_el$
|
|
804
|
-
_v$23 !== _p$.t && setAttribute(_el$
|
|
805
|
-
_v$24 !== _p$.a && className(_el$
|
|
807
|
+
_v$22 !== _p$.e && setAttribute(_el$129, "href", _p$.e = _v$22);
|
|
808
|
+
_v$23 !== _p$.t && setAttribute(_el$129, "aria-label", _p$.t = _v$23);
|
|
809
|
+
_v$24 !== _p$.a && className(_el$129, _p$.a = _v$24);
|
|
806
810
|
return _p$;
|
|
807
811
|
}, {
|
|
808
812
|
e: void 0,
|
|
@@ -810,7 +814,7 @@ function LinkRenderer(props) {
|
|
|
810
814
|
a: void 0
|
|
811
815
|
});
|
|
812
816
|
runHydrationEvents();
|
|
813
|
-
return _el$
|
|
817
|
+
return _el$129;
|
|
814
818
|
})();
|
|
815
819
|
}
|
|
816
820
|
function ComponentRenderer(props) {
|
|
@@ -824,12 +828,12 @@ function ComponentRenderer(props) {
|
|
|
824
828
|
details: validation.errors
|
|
825
829
|
});
|
|
826
830
|
return (() => {
|
|
827
|
-
var _el$
|
|
828
|
-
insert(_el$
|
|
831
|
+
var _el$136 = getNextElement(_tmpl$34), _el$137 = _el$136.firstChild, _el$138 = _el$137.nextSibling;
|
|
832
|
+
insert(_el$138, () => {
|
|
829
833
|
var _a2, _b;
|
|
830
834
|
return ((_b = (_a2 = validation.errors) == null ? void 0 : _a2[0]) == null ? void 0 : _b.message) || "Unknown validation error";
|
|
831
835
|
});
|
|
832
|
-
return _el$
|
|
836
|
+
return _el$136;
|
|
833
837
|
})();
|
|
834
838
|
}
|
|
835
839
|
return createComponent(GenerativeUIErrorBoundary, {
|
|
@@ -1075,27 +1079,27 @@ function ActionRenderer(props) {
|
|
|
1075
1079
|
const isDisabled = () => params.disabled || params.action === "tool-call" && isExecuting();
|
|
1076
1080
|
if (params.type === "link" || params.action === "link") {
|
|
1077
1081
|
return (() => {
|
|
1078
|
-
var _el$
|
|
1079
|
-
_el$
|
|
1080
|
-
insert(_el$
|
|
1082
|
+
var _el$139 = getNextElement(_tmpl$36), _el$141 = _el$139.firstChild, [_el$142, _co$27] = getNextMarker(_el$141.nextSibling), _el$143 = _el$142.nextSibling, [_el$144, _co$28] = getNextMarker(_el$143.nextSibling);
|
|
1083
|
+
_el$139.$$click = handleClick;
|
|
1084
|
+
insert(_el$139, createComponent(Show, {
|
|
1081
1085
|
get when() {
|
|
1082
1086
|
return params.icon;
|
|
1083
1087
|
},
|
|
1084
1088
|
get children() {
|
|
1085
|
-
var _el$
|
|
1086
|
-
insert(_el$
|
|
1087
|
-
return _el$
|
|
1089
|
+
var _el$140 = getNextElement(_tmpl$35);
|
|
1090
|
+
insert(_el$140, () => params.icon);
|
|
1091
|
+
return _el$140;
|
|
1088
1092
|
}
|
|
1089
|
-
}), _el$
|
|
1090
|
-
insert(_el$
|
|
1093
|
+
}), _el$142, _co$27);
|
|
1094
|
+
insert(_el$139, () => params.label, _el$144, _co$28);
|
|
1091
1095
|
effect((_p$) => {
|
|
1092
1096
|
var _v$25 = params.url || "#", _v$26 = params.url ? "_blank" : void 0, _v$27 = params.ariaLabel || params.label, _v$28 = `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
|
|
1093
1097
|
${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"}
|
|
1094
1098
|
${params.className || ""}`;
|
|
1095
|
-
_v$25 !== _p$.e && setAttribute(_el$
|
|
1096
|
-
_v$26 !== _p$.t && setAttribute(_el$
|
|
1097
|
-
_v$27 !== _p$.a && setAttribute(_el$
|
|
1098
|
-
_v$28 !== _p$.o && className(_el$
|
|
1099
|
+
_v$25 !== _p$.e && setAttribute(_el$139, "href", _p$.e = _v$25);
|
|
1100
|
+
_v$26 !== _p$.t && setAttribute(_el$139, "target", _p$.t = _v$26);
|
|
1101
|
+
_v$27 !== _p$.a && setAttribute(_el$139, "aria-label", _p$.a = _v$27);
|
|
1102
|
+
_v$28 !== _p$.o && className(_el$139, _p$.o = _v$28);
|
|
1099
1103
|
return _p$;
|
|
1100
1104
|
}, {
|
|
1101
1105
|
e: void 0,
|
|
@@ -1104,42 +1108,42 @@ function ActionRenderer(props) {
|
|
|
1104
1108
|
o: void 0
|
|
1105
1109
|
});
|
|
1106
1110
|
runHydrationEvents();
|
|
1107
|
-
return _el$
|
|
1111
|
+
return _el$139;
|
|
1108
1112
|
})();
|
|
1109
1113
|
}
|
|
1110
1114
|
return (() => {
|
|
1111
|
-
var _el$
|
|
1112
|
-
_el$
|
|
1113
|
-
insert(_el$
|
|
1115
|
+
var _el$145 = getNextElement(_tmpl$38), _el$148 = _el$145.firstChild, [_el$149, _co$29] = getNextMarker(_el$148.nextSibling), _el$150 = _el$149.nextSibling, [_el$151, _co$30] = getNextMarker(_el$150.nextSibling), _el$152 = _el$151.nextSibling, [_el$153, _co$31] = getNextMarker(_el$152.nextSibling);
|
|
1116
|
+
_el$145.$$click = handleClick;
|
|
1117
|
+
insert(_el$145, createComponent(Show, {
|
|
1114
1118
|
get when() {
|
|
1115
1119
|
return memo(() => !!isExecuting())() && params.action === "tool-call";
|
|
1116
1120
|
},
|
|
1117
1121
|
get children() {
|
|
1118
|
-
return getNextElement(_tmpl$
|
|
1122
|
+
return getNextElement(_tmpl$37);
|
|
1119
1123
|
}
|
|
1120
|
-
}), _el$
|
|
1121
|
-
insert(_el$
|
|
1124
|
+
}), _el$149, _co$29);
|
|
1125
|
+
insert(_el$145, createComponent(Show, {
|
|
1122
1126
|
get when() {
|
|
1123
1127
|
return memo(() => !!params.icon)() && !(isExecuting() && params.action === "tool-call");
|
|
1124
1128
|
},
|
|
1125
1129
|
get children() {
|
|
1126
|
-
var _el$
|
|
1127
|
-
insert(_el$
|
|
1128
|
-
return _el$
|
|
1130
|
+
var _el$147 = getNextElement(_tmpl$35);
|
|
1131
|
+
insert(_el$147, () => params.icon);
|
|
1132
|
+
return _el$147;
|
|
1129
1133
|
}
|
|
1130
|
-
}), _el$
|
|
1131
|
-
insert(_el$
|
|
1134
|
+
}), _el$151, _co$30);
|
|
1135
|
+
insert(_el$145, () => params.label, _el$153, _co$31);
|
|
1132
1136
|
effect((_p$) => {
|
|
1133
1137
|
var _v$29 = params.action === "submit" ? "submit" : "button", _v$30 = isDisabled(), _v$31 = isExecuting() && params.action === "tool-call", _v$32 = params.ariaLabel || params.label, _v$33 = `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
|
|
1134
1138
|
${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"}
|
|
1135
1139
|
${isDisabled() ? "opacity-50 cursor-not-allowed" : ""}
|
|
1136
1140
|
${params.size === "sm" ? "px-3 py-1.5 text-xs" : params.size === "lg" ? "px-6 py-3 text-base" : ""}
|
|
1137
1141
|
${params.className || ""}`;
|
|
1138
|
-
_v$29 !== _p$.e && setAttribute(_el$
|
|
1139
|
-
_v$30 !== _p$.t && setProperty(_el$
|
|
1140
|
-
_v$31 !== _p$.a && setAttribute(_el$
|
|
1141
|
-
_v$32 !== _p$.o && setAttribute(_el$
|
|
1142
|
-
_v$33 !== _p$.i && className(_el$
|
|
1142
|
+
_v$29 !== _p$.e && setAttribute(_el$145, "type", _p$.e = _v$29);
|
|
1143
|
+
_v$30 !== _p$.t && setProperty(_el$145, "disabled", _p$.t = _v$30);
|
|
1144
|
+
_v$31 !== _p$.a && setAttribute(_el$145, "aria-busy", _p$.a = _v$31);
|
|
1145
|
+
_v$32 !== _p$.o && setAttribute(_el$145, "aria-label", _p$.o = _v$32);
|
|
1146
|
+
_v$33 !== _p$.i && className(_el$145, _p$.i = _v$33);
|
|
1143
1147
|
return _p$;
|
|
1144
1148
|
}, {
|
|
1145
1149
|
e: void 0,
|
|
@@ -1149,7 +1153,7 @@ function ActionRenderer(props) {
|
|
|
1149
1153
|
i: void 0
|
|
1150
1154
|
});
|
|
1151
1155
|
runHydrationEvents();
|
|
1152
|
-
return _el$
|
|
1156
|
+
return _el$145;
|
|
1153
1157
|
})();
|
|
1154
1158
|
}
|
|
1155
1159
|
function ErrorCardRenderer(props) {
|
|
@@ -1157,55 +1161,55 @@ function ErrorCardRenderer(props) {
|
|
|
1157
1161
|
return `Error in ${props.error.tool || "unknown tool"}: ${props.error.message || "Unknown error"}`;
|
|
1158
1162
|
};
|
|
1159
1163
|
return (() => {
|
|
1160
|
-
var _el$
|
|
1161
|
-
insert(_el$
|
|
1164
|
+
var _el$154 = getNextElement(_tmpl$42), _el$177 = _el$154.firstChild, [_el$178, _co$37] = getNextMarker(_el$177.nextSibling), _el$155 = _el$178.nextSibling, _el$156 = _el$155.firstChild, _el$157 = _el$156.nextSibling, _el$158 = _el$157.firstChild, _el$159 = _el$158.firstChild, _el$160 = _el$159.nextSibling, [_el$161, _co$32] = getNextMarker(_el$160.nextSibling), _el$162 = _el$158.nextSibling, _el$171 = _el$162.nextSibling, [_el$172, _co$34] = getNextMarker(_el$171.nextSibling), _el$173 = _el$172.nextSibling, [_el$174, _co$35] = getNextMarker(_el$173.nextSibling), _el$175 = _el$174.nextSibling, [_el$176, _co$36] = getNextMarker(_el$175.nextSibling);
|
|
1165
|
+
insert(_el$154, createComponent(CopyButton, {
|
|
1162
1166
|
getText: getErrorText,
|
|
1163
1167
|
title: "Copy error details",
|
|
1164
1168
|
position: "top-right"
|
|
1165
|
-
}), _el$
|
|
1166
|
-
insert(_el$
|
|
1167
|
-
insert(_el$
|
|
1168
|
-
insert(_el$
|
|
1169
|
+
}), _el$178, _co$37);
|
|
1170
|
+
insert(_el$158, () => props.error.tool || "Unknown", _el$161, _co$32);
|
|
1171
|
+
insert(_el$162, () => props.error.message || "An error occurred during tool execution");
|
|
1172
|
+
insert(_el$157, createComponent(Show, {
|
|
1169
1173
|
get when() {
|
|
1170
1174
|
return props.error.type;
|
|
1171
1175
|
},
|
|
1172
1176
|
get children() {
|
|
1173
|
-
var _el$
|
|
1174
|
-
insert(_el$
|
|
1175
|
-
return _el$
|
|
1177
|
+
var _el$163 = getNextElement(_tmpl$39), _el$164 = _el$163.firstChild, _el$165 = _el$164.nextSibling, [_el$166, _co$33] = getNextMarker(_el$165.nextSibling);
|
|
1178
|
+
insert(_el$163, () => props.error.type, _el$166, _co$33);
|
|
1179
|
+
return _el$163;
|
|
1176
1180
|
}
|
|
1177
|
-
}), _el$
|
|
1178
|
-
insert(_el$
|
|
1181
|
+
}), _el$172, _co$34);
|
|
1182
|
+
insert(_el$157, createComponent(Show, {
|
|
1179
1183
|
get when() {
|
|
1180
1184
|
var _a;
|
|
1181
1185
|
return (_a = props.error.suggestions) == null ? void 0 : _a.length;
|
|
1182
1186
|
},
|
|
1183
1187
|
get children() {
|
|
1184
|
-
var _el$
|
|
1185
|
-
insert(_el$
|
|
1188
|
+
var _el$167 = getNextElement(_tmpl$40), _el$168 = _el$167.firstChild, _el$169 = _el$168.nextSibling;
|
|
1189
|
+
insert(_el$169, createComponent(For, {
|
|
1186
1190
|
get each() {
|
|
1187
1191
|
return props.error.suggestions;
|
|
1188
1192
|
},
|
|
1189
1193
|
children: (suggestion) => (() => {
|
|
1190
|
-
var _el$
|
|
1191
|
-
insert(_el$
|
|
1192
|
-
return _el$
|
|
1194
|
+
var _el$179 = getNextElement(_tmpl$43);
|
|
1195
|
+
insert(_el$179, suggestion);
|
|
1196
|
+
return _el$179;
|
|
1193
1197
|
})()
|
|
1194
1198
|
}));
|
|
1195
|
-
return _el$
|
|
1199
|
+
return _el$167;
|
|
1196
1200
|
}
|
|
1197
|
-
}), _el$
|
|
1198
|
-
insert(_el$
|
|
1201
|
+
}), _el$174, _co$35);
|
|
1202
|
+
insert(_el$157, createComponent(Show, {
|
|
1199
1203
|
get when() {
|
|
1200
1204
|
return props.error.timestamp;
|
|
1201
1205
|
},
|
|
1202
1206
|
get children() {
|
|
1203
|
-
var _el$
|
|
1204
|
-
insert(_el$
|
|
1205
|
-
return _el$
|
|
1207
|
+
var _el$170 = getNextElement(_tmpl$41);
|
|
1208
|
+
insert(_el$170, () => new Date(props.error.timestamp).toLocaleString());
|
|
1209
|
+
return _el$170;
|
|
1206
1210
|
}
|
|
1207
|
-
}), _el$
|
|
1208
|
-
return _el$
|
|
1211
|
+
}), _el$176, _co$36);
|
|
1212
|
+
return _el$154;
|
|
1209
1213
|
})();
|
|
1210
1214
|
}
|
|
1211
1215
|
function isErrorResponse(content) {
|
|
@@ -1228,20 +1232,20 @@ function UIResourceHtmlRenderer(props) {
|
|
|
1228
1232
|
return ((_a = props.resource.metadata) == null ? void 0 : _a.title) || ((_b = props.resource.uri) == null ? void 0 : _b.replace("ui://deposium/", "")) || "Resource";
|
|
1229
1233
|
};
|
|
1230
1234
|
return (() => {
|
|
1231
|
-
var _el$
|
|
1232
|
-
insert(_el$
|
|
1235
|
+
var _el$180 = getNextElement(_tmpl$45), _el$184 = _el$180.firstChild, [_el$185, _co$38] = getNextMarker(_el$184.nextSibling), _el$183 = _el$185.nextSibling;
|
|
1236
|
+
insert(_el$180, createComponent(Show, {
|
|
1233
1237
|
get when() {
|
|
1234
1238
|
var _a;
|
|
1235
1239
|
return ((_a = props.resource.metadata) == null ? void 0 : _a.title) || props.resource.uri;
|
|
1236
1240
|
},
|
|
1237
1241
|
get children() {
|
|
1238
|
-
var _el$
|
|
1239
|
-
insert(_el$
|
|
1240
|
-
return _el$
|
|
1242
|
+
var _el$181 = getNextElement(_tmpl$44), _el$182 = _el$181.firstChild;
|
|
1243
|
+
insert(_el$182, resourceTitle);
|
|
1244
|
+
return _el$181;
|
|
1241
1245
|
}
|
|
1242
|
-
}), _el$
|
|
1243
|
-
effect(() => setProperty(_el$
|
|
1244
|
-
return _el$
|
|
1246
|
+
}), _el$185, _co$38);
|
|
1247
|
+
effect(() => setProperty(_el$183, "innerHTML", htmlContent()));
|
|
1248
|
+
return _el$180;
|
|
1245
1249
|
})();
|
|
1246
1250
|
}
|
|
1247
1251
|
const UIResourceRenderer = (props) => {
|
|
@@ -1321,24 +1325,24 @@ const UIResourceRenderer = (props) => {
|
|
|
1321
1325
|
return createComponent(RenderProvider, {
|
|
1322
1326
|
renderComponent,
|
|
1323
1327
|
get children() {
|
|
1324
|
-
var _el$
|
|
1325
|
-
insert(_el$
|
|
1328
|
+
var _el$186 = getNextElement(_tmpl$46), _el$187 = _el$186.firstChild, _el$188 = _el$187.nextSibling, [_el$189, _co$39] = getNextMarker(_el$188.nextSibling);
|
|
1329
|
+
insert(_el$187, createComponent(For, {
|
|
1326
1330
|
get each() {
|
|
1327
1331
|
return layoutData.components;
|
|
1328
1332
|
},
|
|
1329
1333
|
children: (component) => (() => {
|
|
1330
|
-
var _el$
|
|
1331
|
-
insert(_el$
|
|
1334
|
+
var _el$190 = getNextElement(_tmpl$47);
|
|
1335
|
+
insert(_el$190, createComponent(ComponentRenderer, {
|
|
1332
1336
|
component,
|
|
1333
1337
|
get onError() {
|
|
1334
1338
|
return props.onError;
|
|
1335
1339
|
}
|
|
1336
1340
|
}));
|
|
1337
|
-
effect((_$p) => style(_el$
|
|
1338
|
-
return _el$
|
|
1341
|
+
effect((_$p) => style(_el$190, getGridStyleString(component), _$p));
|
|
1342
|
+
return _el$190;
|
|
1339
1343
|
})()
|
|
1340
1344
|
}));
|
|
1341
|
-
insert(_el$
|
|
1345
|
+
insert(_el$186, createComponent(Show, {
|
|
1342
1346
|
get when() {
|
|
1343
1347
|
return shouldShowAutoFooter();
|
|
1344
1348
|
},
|
|
@@ -1349,17 +1353,17 @@ const UIResourceRenderer = (props) => {
|
|
|
1349
1353
|
}
|
|
1350
1354
|
});
|
|
1351
1355
|
}
|
|
1352
|
-
}), _el$
|
|
1356
|
+
}), _el$189, _co$39);
|
|
1353
1357
|
effect((_p$) => {
|
|
1354
1358
|
var _v$34 = `w-full ${props.class || ""}`, _v$35 = gridContainerStyle();
|
|
1355
|
-
_v$34 !== _p$.e && className(_el$
|
|
1356
|
-
_p$.t = style(_el$
|
|
1359
|
+
_v$34 !== _p$.e && className(_el$186, _p$.e = _v$34);
|
|
1360
|
+
_p$.t = style(_el$187, _v$35, _p$.t);
|
|
1357
1361
|
return _p$;
|
|
1358
1362
|
}, {
|
|
1359
1363
|
e: void 0,
|
|
1360
1364
|
t: void 0
|
|
1361
1365
|
});
|
|
1362
|
-
return _el$
|
|
1366
|
+
return _el$186;
|
|
1363
1367
|
}
|
|
1364
1368
|
});
|
|
1365
1369
|
};
|