@seed-ship/mcp-ui-solid 6.13.0 → 6.14.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 +27 -0
- package/dist/components/UIResourceRenderer.cjs +343 -297
- package/dist/components/UIResourceRenderer.cjs.map +1 -1
- package/dist/components/UIResourceRenderer.d.ts +19 -0
- package/dist/components/UIResourceRenderer.d.ts.map +1 -1
- package/dist/components/UIResourceRenderer.js +343 -297
- package/dist/components/UIResourceRenderer.js.map +1 -1
- package/package.json +1 -1
- package/src/components/ChartRenderer.quickchart.test.tsx +66 -0
- package/src/components/UIResourceRenderer.tsx +79 -7
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -18,6 +18,8 @@ const FormRenderer = require("./FormRenderer.cjs");
|
|
|
18
18
|
const ModalRenderer = require("./ModalRenderer.cjs");
|
|
19
19
|
const ActionGroupRenderer = require("./ActionGroupRenderer.cjs");
|
|
20
20
|
const ChartJSRenderer = require("./ChartJSRenderer.cjs");
|
|
21
|
+
const DegradedFallback = require("./DegradedFallback.cjs");
|
|
22
|
+
const degradedProjections = require("../utils/degraded-projections.cjs");
|
|
21
23
|
const ImageGalleryRenderer = require("./ImageGalleryRenderer.cjs");
|
|
22
24
|
const VideoRenderer = require("./VideoRenderer.cjs");
|
|
23
25
|
const CodeBlockRenderer = require("./CodeBlockRenderer.cjs");
|
|
@@ -28,7 +30,7 @@ const PortalDropdownMenu = require("./PortalDropdownMenu.cjs");
|
|
|
28
30
|
const RenderContext = require("./RenderContext.cjs");
|
|
29
31
|
const useAction = require("../hooks/useAction.cjs");
|
|
30
32
|
const marked_esm = require("../node_modules/.pnpm/marked@16.4.2/node_modules/marked/lib/marked.esm.cjs");
|
|
31
|
-
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>`), _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="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__ */ 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$7 = /* @__PURE__ */ web.template(`<h3 class="text-sm font-semibold text-gray-900 dark:text-white mb-3">`), _tmpl$8 = /* @__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$9 = /* @__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$0 = /* @__PURE__ */ web.template(`<tbody class="bg-white dark:bg-gray-800 divide-y divide-gray-200 dark:divide-gray-700">`), _tmpl$1 = /* @__PURE__ */ web.template(`<tr>`), _tmpl$10 = /* @__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"><div>`), _tmpl$11 = /* @__PURE__ */ web.template(`<tbody class="bg-white dark:bg-gray-800 relative">`), _tmpl$12 = /* @__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$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">Download CSV`), _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 JSON`), _tmpl$15 = /* @__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$16 = /* @__PURE__ */ web.template(`<span class="ml-2 text-xs font-normal text-gray-400">(virtualized: <!$><!/> rows)`), _tmpl$17 = /* @__PURE__ */ web.template(`<h3 class="text-sm font-semibold text-gray-900 dark:text-white mb-3 flex-shrink-0"><!$><!/><!$><!/>`), _tmpl$18 = /* @__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$19 = /* @__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$20 = /* @__PURE__ */ web.template(`<p class="text-xs text-gray-500 dark:text-gray-400 mb-2"><!$><!/> result<!$><!/> on <!$><!/>`), _tmpl$21 = /* @__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$22 = /* @__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">`), _tmpl$23 = /* @__PURE__ */ web.template(`<span class=text-gray-400>/ page`), _tmpl$24 = /* @__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 class="px-2 py-1 rounded hover:bg-gray-100 dark:hover:bg-gray-700 disabled:opacity-40 disabled:cursor-not-allowed transition-colors">◀</button><span><!$><!/> / <!$><!/></span><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">▶</button><!$><!/>`), _tmpl$25 = /* @__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$26 = /* @__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$27 = /* @__PURE__ */ web.template(`<option>`), _tmpl$28 = /* @__PURE__ */ web.template(`<span class="ml-2 text-sm font-medium text-gray-500 dark:text-gray-400">`), _tmpl$29 = /* @__PURE__ */ web.template(`<div class="mt-3 flex items-center"><span><!$><!/> <!$><!/>%`), _tmpl$30 = /* @__PURE__ */ web.template(`<p class="mt-2 text-xs text-gray-500 dark:text-gray-400">`), _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"><!$><!/><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$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>`), _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]"><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$34 = /* @__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$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"><!$><!/><iframe class="w-full border-0 flex-1"loading=lazy>`, true, false, false), _tmpl$36 = /* @__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$37 = /* @__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$38 = /* @__PURE__ */ web.template(`<p class="text-xs text-gray-500 dark:text-gray-400 truncate">`), _tmpl$39 = /* @__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$40 = /* @__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$41 = /* @__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$42 = /* @__PURE__ */ web.template(`<span aria-hidden=true>`), _tmpl$43 = /* @__PURE__ */ web.template(`<a rel="noopener noreferrer"><!$><!/><!$><!/>`), _tmpl$44 = /* @__PURE__ */ web.template(`<span class="animate-spin h-4 w-4 border-2 border-current border-t-transparent rounded-full"aria-hidden=true>`), _tmpl$45 = /* @__PURE__ */ web.template(`<button type=button><!$><!/><!$><!/><!$><!/>`), _tmpl$46 = /* @__PURE__ */ web.template(`<p class="text-xs text-red-600 dark:text-red-400 mt-1">Type: <!$><!/>`), _tmpl$47 = /* @__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$48 = /* @__PURE__ */ web.template(`<p class="text-xs text-red-500 dark:text-red-500 mt-2">`), _tmpl$49 = /* @__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$50 = /* @__PURE__ */ web.template(`<li>`), _tmpl$51 = /* @__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$52 = /* @__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"><!$><!/><div class="p-4 prose prose-sm dark:prose-invert max-w-none">`), _tmpl$53 = /* @__PURE__ */ web.template(`<div><div class="grid gap-4"></div><!$><!/>`), _tmpl$54 = /* @__PURE__ */ web.template(`<div>`);
|
|
33
|
+
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>`), _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"><div>`), _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">`), _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 class="px-2 py-1 rounded hover:bg-gray-100 dark:hover:bg-gray-700 disabled:opacity-40 disabled:cursor-not-allowed transition-colors">◀</button><span><!$><!/> / <!$><!/></span><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">▶</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"><!$><!/><div>`), _tmpl$34 = /* @__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]"><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$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 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$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">Validation Error</p><p class="text-xs text-red-700 dark:text-red-300 mt-1">`), _tmpl$43 = /* @__PURE__ */ web.template(`<span aria-hidden=true>`), _tmpl$44 = /* @__PURE__ */ web.template(`<a rel="noopener noreferrer"><!$><!/><!$><!/>`), _tmpl$45 = /* @__PURE__ */ web.template(`<span class="animate-spin h-4 w-4 border-2 border-current border-t-transparent rounded-full"aria-hidden=true>`), _tmpl$46 = /* @__PURE__ */ web.template(`<button type=button><!$><!/><!$><!/><!$><!/>`), _tmpl$47 = /* @__PURE__ */ web.template(`<p class="text-xs text-red-600 dark:text-red-400 mt-1">Type: <!$><!/>`), _tmpl$48 = /* @__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$49 = /* @__PURE__ */ web.template(`<p class="text-xs text-red-500 dark:text-red-500 mt-2">`), _tmpl$50 = /* @__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$51 = /* @__PURE__ */ web.template(`<li>`), _tmpl$52 = /* @__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$53 = /* @__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"><!$><!/><div class="p-4 prose prose-sm dark:prose-invert max-w-none">`), _tmpl$54 = /* @__PURE__ */ web.template(`<div><div class="grid gap-4"></div><!$><!/>`), _tmpl$55 = /* @__PURE__ */ web.template(`<div>`);
|
|
32
34
|
function CopyButton(props) {
|
|
33
35
|
const [copied, setCopied] = solidJs.createSignal(false);
|
|
34
36
|
const handleCopy = async () => {
|
|
@@ -76,11 +78,26 @@ function ChartRenderer(props) {
|
|
|
76
78
|
const [iframeUrl, setIframeUrl] = solidJs.createSignal();
|
|
77
79
|
const [isLoading, setIsLoading] = solidJs.createSignal(true);
|
|
78
80
|
const [error, setError] = solidJs.createSignal();
|
|
81
|
+
const [degraded, setDegraded] = solidJs.createSignal(false);
|
|
82
|
+
const telemetry = MCPUITelemetryContext.useTelemetry();
|
|
79
83
|
const params = () => props.component.params;
|
|
80
84
|
const rendererPref = () => {
|
|
81
85
|
var _a2;
|
|
82
86
|
return ((_a2 = params()) == null ? void 0 : _a2.renderer) || "auto";
|
|
83
87
|
};
|
|
88
|
+
const allowQuickchart = () => props.allowQuickchartFallback === true;
|
|
89
|
+
const signalBlockedFallback = (reason) => {
|
|
90
|
+
setDegraded(true);
|
|
91
|
+
setIsLoading(false);
|
|
92
|
+
const message = `Chart degraded to a data table: ${reason}`;
|
|
93
|
+
telemetry == null ? void 0 : telemetry.dispatch({
|
|
94
|
+
type: "render:error",
|
|
95
|
+
errorMessage: message,
|
|
96
|
+
id: props.component.id ?? "",
|
|
97
|
+
componentType: "chart",
|
|
98
|
+
ts: Date.now()
|
|
99
|
+
});
|
|
100
|
+
};
|
|
84
101
|
if (!((_b = (_a = params()) == null ? void 0 : _a.data) == null ? void 0 : _b.datasets)) {
|
|
85
102
|
return web.getNextElement(_tmpl$4);
|
|
86
103
|
}
|
|
@@ -88,7 +105,11 @@ function ChartRenderer(props) {
|
|
|
88
105
|
const pref = rendererPref();
|
|
89
106
|
if (pref === "iframe") {
|
|
90
107
|
setUseNative(false);
|
|
91
|
-
|
|
108
|
+
if (allowQuickchart()) {
|
|
109
|
+
buildIframeUrl();
|
|
110
|
+
} else {
|
|
111
|
+
signalBlockedFallback("renderer: 'iframe' requires the external quickchart.io service; set allowQuickchartFallback on the host to enable it.");
|
|
112
|
+
}
|
|
92
113
|
} else if (pref === "native") {
|
|
93
114
|
const available = await ChartJSRenderer.isChartJSAvailable();
|
|
94
115
|
if (available) {
|
|
@@ -103,9 +124,12 @@ function ChartRenderer(props) {
|
|
|
103
124
|
if (available) {
|
|
104
125
|
setUseNative(true);
|
|
105
126
|
setIsLoading(false);
|
|
106
|
-
} else {
|
|
127
|
+
} else if (allowQuickchart()) {
|
|
107
128
|
setUseNative(false);
|
|
108
129
|
buildIframeUrl();
|
|
130
|
+
} else {
|
|
131
|
+
setUseNative(false);
|
|
132
|
+
signalBlockedFallback("Chart.js peer is not installed.");
|
|
109
133
|
}
|
|
110
134
|
}
|
|
111
135
|
});
|
|
@@ -132,46 +156,59 @@ function ChartRenderer(props) {
|
|
|
132
156
|
},
|
|
133
157
|
get fallback() {
|
|
134
158
|
return (() => {
|
|
135
|
-
var _el$5 = web.getNextElement(_tmpl$
|
|
159
|
+
var _el$5 = web.getNextElement(_tmpl$0), _el$16 = _el$5.firstChild, [_el$17, _co$2] = web.getNextMarker(_el$16.nextSibling), _el$18 = _el$17.nextSibling, [_el$19, _co$3] = web.getNextMarker(_el$18.nextSibling), _el$20 = _el$19.nextSibling, [_el$21, _co$4] = web.getNextMarker(_el$20.nextSibling), _el$22 = _el$21.nextSibling, [_el$23, _co$5] = web.getNextMarker(_el$22.nextSibling);
|
|
160
|
+
web.insert(_el$5, web.createComponent(solidJs.Show, {
|
|
161
|
+
get when() {
|
|
162
|
+
return degraded();
|
|
163
|
+
},
|
|
164
|
+
get children() {
|
|
165
|
+
var _el$6 = web.getNextElement(_tmpl$5);
|
|
166
|
+
web.insert(_el$6, web.createComponent(DegradedFallback.DegradedFallback, web.mergeProps({
|
|
167
|
+
message: "Interactive chart unavailable — install the chart.js peer dependency, or set allowQuickchartFallback to use the external quickchart.io renderer.",
|
|
168
|
+
caption: "Showing the chart data as a table."
|
|
169
|
+
}, () => degradedProjections.chartToDegradedTable(params() ?? {}))));
|
|
170
|
+
return _el$6;
|
|
171
|
+
}
|
|
172
|
+
}), _el$17, _co$2);
|
|
136
173
|
web.insert(_el$5, web.createComponent(solidJs.Show, {
|
|
137
174
|
get when() {
|
|
138
175
|
return isLoading();
|
|
139
176
|
},
|
|
140
177
|
get children() {
|
|
141
|
-
return web.getNextElement(_tmpl$
|
|
178
|
+
return web.getNextElement(_tmpl$6);
|
|
142
179
|
}
|
|
143
|
-
}), _el$
|
|
180
|
+
}), _el$19, _co$3);
|
|
144
181
|
web.insert(_el$5, web.createComponent(solidJs.Show, {
|
|
145
182
|
get when() {
|
|
146
183
|
return error();
|
|
147
184
|
},
|
|
148
185
|
get children() {
|
|
149
|
-
var _el$
|
|
150
|
-
web.insert(_el$
|
|
151
|
-
return _el$
|
|
186
|
+
var _el$8 = web.getNextElement(_tmpl$7), _el$9 = _el$8.firstChild, _el$0 = _el$9.firstChild, _el$1 = _el$0.nextSibling;
|
|
187
|
+
web.insert(_el$1, error);
|
|
188
|
+
return _el$8;
|
|
152
189
|
}
|
|
153
|
-
}), _el$
|
|
190
|
+
}), _el$21, _co$4);
|
|
154
191
|
web.insert(_el$5, web.createComponent(solidJs.Show, {
|
|
155
192
|
get when() {
|
|
156
193
|
return web.memo(() => !!iframeUrl())() && !error();
|
|
157
194
|
},
|
|
158
195
|
get children() {
|
|
159
|
-
var _el$
|
|
160
|
-
web.insert(_el$
|
|
196
|
+
var _el$10 = web.getNextElement(_tmpl$9), _el$14 = _el$10.firstChild, [_el$15, _co$] = web.getNextMarker(_el$14.nextSibling), _el$12 = _el$15.nextSibling, _el$13 = _el$12.firstChild;
|
|
197
|
+
web.insert(_el$10, web.createComponent(solidJs.Show, {
|
|
161
198
|
get when() {
|
|
162
199
|
var _a2;
|
|
163
200
|
return (_a2 = params()) == null ? void 0 : _a2.title;
|
|
164
201
|
},
|
|
165
202
|
get children() {
|
|
166
|
-
var _el$
|
|
167
|
-
web.insert(_el$
|
|
203
|
+
var _el$11 = web.getNextElement(_tmpl$8);
|
|
204
|
+
web.insert(_el$11, () => {
|
|
168
205
|
var _a2;
|
|
169
206
|
return (_a2 = params()) == null ? void 0 : _a2.title;
|
|
170
207
|
});
|
|
171
|
-
return _el$
|
|
208
|
+
return _el$11;
|
|
172
209
|
}
|
|
173
|
-
}), _el$
|
|
174
|
-
_el$
|
|
210
|
+
}), _el$15, _co$);
|
|
211
|
+
_el$13.addEventListener("error", () => {
|
|
175
212
|
var _a2;
|
|
176
213
|
setError("Failed to load chart");
|
|
177
214
|
(_a2 = props.onError) == null ? void 0 : _a2.call(props, {
|
|
@@ -183,18 +220,18 @@ function ChartRenderer(props) {
|
|
|
183
220
|
web.effect((_p$) => {
|
|
184
221
|
var _a2, _b2, _c, _d;
|
|
185
222
|
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";
|
|
186
|
-
_v$3 !== _p$.e && web.setAttribute(_el$
|
|
187
|
-
_v$4 !== _p$.t && web.setAttribute(_el$
|
|
188
|
-
_v$5 !== _p$.a && web.setAttribute(_el$
|
|
223
|
+
_v$3 !== _p$.e && web.setAttribute(_el$12, "aria-label", _p$.e = _v$3);
|
|
224
|
+
_v$4 !== _p$.t && web.setAttribute(_el$13, "src", _p$.t = _v$4);
|
|
225
|
+
_v$5 !== _p$.a && web.setAttribute(_el$13, "alt", _p$.a = _v$5);
|
|
189
226
|
return _p$;
|
|
190
227
|
}, {
|
|
191
228
|
e: void 0,
|
|
192
229
|
t: void 0,
|
|
193
230
|
a: void 0
|
|
194
231
|
});
|
|
195
|
-
return _el$
|
|
232
|
+
return _el$10;
|
|
196
233
|
}
|
|
197
|
-
}), _el$
|
|
234
|
+
}), _el$23, _co$5);
|
|
198
235
|
return _el$5;
|
|
199
236
|
})();
|
|
200
237
|
},
|
|
@@ -544,28 +581,28 @@ ${dataRows}`;
|
|
|
544
581
|
};
|
|
545
582
|
const tableId = `table-${Math.random().toString(36).slice(2, 9)}`;
|
|
546
583
|
const StandardTableBody = () => (() => {
|
|
547
|
-
var _el$
|
|
548
|
-
web.insert(_el$
|
|
584
|
+
var _el$24 = web.getNextElement(_tmpl$1);
|
|
585
|
+
web.insert(_el$24, web.createComponent(solidJs.For, {
|
|
549
586
|
get each() {
|
|
550
587
|
return clientVisibleRows().slice(0, validation.DEFAULT_RESOURCE_LIMITS.maxTableRows);
|
|
551
588
|
},
|
|
552
589
|
children: (row, i) => (() => {
|
|
553
|
-
var _el$
|
|
554
|
-
web.insert(_el$
|
|
590
|
+
var _el$25 = web.getNextElement(_tmpl$10);
|
|
591
|
+
web.insert(_el$25, web.createComponent(solidJs.For, {
|
|
555
592
|
get each() {
|
|
556
593
|
return tableParams.columns;
|
|
557
594
|
},
|
|
558
595
|
children: (column) => (() => {
|
|
559
|
-
var _el$
|
|
560
|
-
web.effect(() => web.setProperty(_el$
|
|
561
|
-
return _el$
|
|
596
|
+
var _el$26 = web.getNextElement(_tmpl$11), _el$27 = _el$26.firstChild;
|
|
597
|
+
web.effect(() => web.setProperty(_el$27, "innerHTML", highlightQuery(renderCellValue(row[column.key], citationCtx), debouncedQuery())));
|
|
598
|
+
return _el$26;
|
|
562
599
|
})()
|
|
563
600
|
}));
|
|
564
|
-
web.effect(() => web.className(_el$
|
|
565
|
-
return _el$
|
|
601
|
+
web.effect(() => web.className(_el$25, `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"}`));
|
|
602
|
+
return _el$25;
|
|
566
603
|
})()
|
|
567
604
|
}));
|
|
568
|
-
return _el$
|
|
605
|
+
return _el$24;
|
|
569
606
|
})();
|
|
570
607
|
const VirtualizedTableBody = () => {
|
|
571
608
|
const v = virtualizer();
|
|
@@ -575,39 +612,39 @@ ${dataRows}`;
|
|
|
575
612
|
const opts = virtualizeOpts();
|
|
576
613
|
const rowHeight = opts.rowHeight ?? 48;
|
|
577
614
|
return (() => {
|
|
578
|
-
var _el$
|
|
579
|
-
web.setStyleProperty(_el$
|
|
580
|
-
web.insert(_el$
|
|
615
|
+
var _el$28 = web.getNextElement(_tmpl$12);
|
|
616
|
+
web.setStyleProperty(_el$28, "height", `${totalSize}px`);
|
|
617
|
+
web.insert(_el$28, web.createComponent(solidJs.For, {
|
|
581
618
|
each: items,
|
|
582
619
|
children: (virtualRow) => {
|
|
583
620
|
const row = tableParams.rows[virtualRow.index];
|
|
584
621
|
return (() => {
|
|
585
|
-
var _el$
|
|
586
|
-
web.setStyleProperty(_el$
|
|
587
|
-
web.insert(_el$
|
|
622
|
+
var _el$29 = web.getNextElement(_tmpl$10);
|
|
623
|
+
web.setStyleProperty(_el$29, "height", `${rowHeight}px`);
|
|
624
|
+
web.insert(_el$29, web.createComponent(solidJs.For, {
|
|
588
625
|
get each() {
|
|
589
626
|
return tableParams.columns;
|
|
590
627
|
},
|
|
591
628
|
children: (column) => (() => {
|
|
592
|
-
var _el$
|
|
593
|
-
web.effect(() => web.setProperty(_el$
|
|
594
|
-
return _el$
|
|
629
|
+
var _el$30 = web.getNextElement(_tmpl$11), _el$31 = _el$30.firstChild;
|
|
630
|
+
web.effect(() => web.setProperty(_el$31, "innerHTML", highlightQuery(renderCellValue(row[column.key], citationCtx), debouncedQuery())));
|
|
631
|
+
return _el$30;
|
|
595
632
|
})()
|
|
596
633
|
}));
|
|
597
634
|
web.effect((_p$) => {
|
|
598
635
|
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)`;
|
|
599
|
-
_v$6 !== _p$.e && web.className(_el$
|
|
600
|
-
_v$7 !== _p$.t && web.setStyleProperty(_el$
|
|
636
|
+
_v$6 !== _p$.e && web.className(_el$29, _p$.e = _v$6);
|
|
637
|
+
_v$7 !== _p$.t && web.setStyleProperty(_el$29, "transform", _p$.t = _v$7);
|
|
601
638
|
return _p$;
|
|
602
639
|
}, {
|
|
603
640
|
e: void 0,
|
|
604
641
|
t: void 0
|
|
605
642
|
});
|
|
606
|
-
return _el$
|
|
643
|
+
return _el$29;
|
|
607
644
|
})();
|
|
608
645
|
}
|
|
609
646
|
}));
|
|
610
|
-
return _el$
|
|
647
|
+
return _el$28;
|
|
611
648
|
})();
|
|
612
649
|
};
|
|
613
650
|
return web.createComponent(ExpandableWrapper.ExpandableWrapper, {
|
|
@@ -622,8 +659,8 @@ ${dataRows}`;
|
|
|
622
659
|
return props.toolbarVariant;
|
|
623
660
|
},
|
|
624
661
|
get children() {
|
|
625
|
-
var _el$
|
|
626
|
-
web.insert(_el$
|
|
662
|
+
var _el$32 = web.getNextElement(_tmpl$26), _el$116 = _el$32.firstChild, [_el$117, _co$26] = web.getNextMarker(_el$116.nextSibling), _el$40 = _el$117.nextSibling, _el$108 = _el$40.firstChild, [_el$109, _co$22] = web.getNextMarker(_el$108.nextSibling), _el$110 = _el$109.nextSibling, [_el$111, _co$23] = web.getNextMarker(_el$110.nextSibling), _el$66 = _el$111.nextSibling, _el$67 = _el$66.firstChild, _el$68 = _el$67.firstChild, _el$69 = _el$68.firstChild, _el$70 = _el$68.nextSibling, [_el$71, _co$12] = web.getNextMarker(_el$70.nextSibling), _el$112 = _el$66.nextSibling, [_el$113, _co$24] = web.getNextMarker(_el$112.nextSibling), _el$114 = _el$113.nextSibling, [_el$115, _co$25] = web.getNextMarker(_el$114.nextSibling);
|
|
663
|
+
web.insert(_el$32, web.createComponent(solidJs.Show, {
|
|
627
664
|
when: exportable,
|
|
628
665
|
get fallback() {
|
|
629
666
|
return web.createComponent(CopyButton, {
|
|
@@ -633,11 +670,11 @@ ${dataRows}`;
|
|
|
633
670
|
});
|
|
634
671
|
},
|
|
635
672
|
get children() {
|
|
636
|
-
var _el$
|
|
637
|
-
_el$
|
|
673
|
+
var _el$33 = web.getNextElement(_tmpl$16), _el$34 = _el$33.firstChild, _el$38 = _el$34.nextSibling, [_el$39, _co$6] = web.getNextMarker(_el$38.nextSibling);
|
|
674
|
+
_el$34.$$click = () => setShowExportMenu(!showExportMenu());
|
|
638
675
|
var _ref$ = exportTriggerRef;
|
|
639
|
-
typeof _ref$ === "function" ? web.use(_ref$, _el$
|
|
640
|
-
web.insert(_el$
|
|
676
|
+
typeof _ref$ === "function" ? web.use(_ref$, _el$34) : exportTriggerRef = _el$34;
|
|
677
|
+
web.insert(_el$33, web.createComponent(PortalDropdownMenu.PortalDropdownMenu, {
|
|
641
678
|
get open() {
|
|
642
679
|
return showExportMenu();
|
|
643
680
|
},
|
|
@@ -650,116 +687,116 @@ ${dataRows}`;
|
|
|
650
687
|
return exportFormats.includes("tsv");
|
|
651
688
|
},
|
|
652
689
|
get children() {
|
|
653
|
-
var _el$
|
|
654
|
-
_el$
|
|
690
|
+
var _el$35 = web.getNextElement(_tmpl$13);
|
|
691
|
+
_el$35.$$click = () => handleExport("tsv");
|
|
655
692
|
web.runHydrationEvents();
|
|
656
|
-
return _el$
|
|
693
|
+
return _el$35;
|
|
657
694
|
}
|
|
658
695
|
}), web.createComponent(solidJs.Show, {
|
|
659
696
|
get when() {
|
|
660
697
|
return exportFormats.includes("csv");
|
|
661
698
|
},
|
|
662
699
|
get children() {
|
|
663
|
-
var _el$
|
|
664
|
-
_el$
|
|
700
|
+
var _el$36 = web.getNextElement(_tmpl$14);
|
|
701
|
+
_el$36.$$click = () => handleExport("csv");
|
|
665
702
|
web.runHydrationEvents();
|
|
666
|
-
return _el$
|
|
703
|
+
return _el$36;
|
|
667
704
|
}
|
|
668
705
|
}), web.createComponent(solidJs.Show, {
|
|
669
706
|
get when() {
|
|
670
707
|
return exportFormats.includes("json");
|
|
671
708
|
},
|
|
672
709
|
get children() {
|
|
673
|
-
var _el$
|
|
674
|
-
_el$
|
|
710
|
+
var _el$37 = web.getNextElement(_tmpl$15);
|
|
711
|
+
_el$37.$$click = () => handleExport("json");
|
|
675
712
|
web.runHydrationEvents();
|
|
676
|
-
return _el$
|
|
713
|
+
return _el$37;
|
|
677
714
|
}
|
|
678
715
|
})];
|
|
679
716
|
}
|
|
680
|
-
}), _el$
|
|
681
|
-
web.effect(() => web.setAttribute(_el$
|
|
717
|
+
}), _el$39, _co$6);
|
|
718
|
+
web.effect(() => web.setAttribute(_el$34, "aria-expanded", showExportMenu()));
|
|
682
719
|
web.runHydrationEvents();
|
|
683
|
-
return _el$
|
|
720
|
+
return _el$33;
|
|
684
721
|
}
|
|
685
|
-
}), _el$
|
|
686
|
-
web.insert(_el$
|
|
722
|
+
}), _el$117, _co$26);
|
|
723
|
+
web.insert(_el$40, web.createComponent(solidJs.Show, {
|
|
687
724
|
get when() {
|
|
688
725
|
return tableParams.title;
|
|
689
726
|
},
|
|
690
727
|
get children() {
|
|
691
|
-
var _el$
|
|
692
|
-
web.setAttribute(_el$
|
|
693
|
-
web.insert(_el$
|
|
694
|
-
web.insert(_el$
|
|
728
|
+
var _el$41 = web.getNextElement(_tmpl$18), _el$47 = _el$41.firstChild, [_el$48, _co$8] = web.getNextMarker(_el$47.nextSibling), _el$49 = _el$48.nextSibling, [_el$50, _co$9] = web.getNextMarker(_el$49.nextSibling);
|
|
729
|
+
web.setAttribute(_el$41, "id", `${tableId}-title`);
|
|
730
|
+
web.insert(_el$41, () => tableParams.title, _el$48, _co$8);
|
|
731
|
+
web.insert(_el$41, web.createComponent(solidJs.Show, {
|
|
695
732
|
get when() {
|
|
696
733
|
return isVirtualizing();
|
|
697
734
|
},
|
|
698
735
|
get children() {
|
|
699
|
-
var _el$
|
|
700
|
-
_el$
|
|
701
|
-
web.insert(_el$
|
|
736
|
+
var _el$42 = web.getNextElement(_tmpl$17), _el$43 = _el$42.firstChild, _el$45 = _el$43.nextSibling, [_el$46, _co$7] = web.getNextMarker(_el$45.nextSibling);
|
|
737
|
+
_el$46.nextSibling;
|
|
738
|
+
web.insert(_el$42, () => {
|
|
702
739
|
var _a;
|
|
703
740
|
return (_a = tableParams.rows) == null ? void 0 : _a.length;
|
|
704
|
-
}, _el$
|
|
705
|
-
return _el$
|
|
741
|
+
}, _el$46, _co$7);
|
|
742
|
+
return _el$42;
|
|
706
743
|
}
|
|
707
|
-
}), _el$
|
|
708
|
-
return _el$
|
|
744
|
+
}), _el$50, _co$9);
|
|
745
|
+
return _el$41;
|
|
709
746
|
}
|
|
710
|
-
}), _el$
|
|
711
|
-
web.insert(_el$
|
|
747
|
+
}), _el$109, _co$22);
|
|
748
|
+
web.insert(_el$40, web.createComponent(solidJs.Show, {
|
|
712
749
|
get when() {
|
|
713
750
|
return isSearchable();
|
|
714
751
|
},
|
|
715
752
|
get children() {
|
|
716
753
|
return [(() => {
|
|
717
|
-
var _el$
|
|
718
|
-
_el$
|
|
719
|
-
web.insert(_el$
|
|
754
|
+
var _el$51 = web.getNextElement(_tmpl$20), _el$52 = _el$51.firstChild, _el$53 = _el$52.nextSibling, _el$55 = _el$53.nextSibling, [_el$56, _co$0] = web.getNextMarker(_el$55.nextSibling);
|
|
755
|
+
_el$53.$$input = (e) => handleSearch(e.currentTarget.value);
|
|
756
|
+
web.insert(_el$51, web.createComponent(solidJs.Show, {
|
|
720
757
|
get when() {
|
|
721
758
|
return searchQuery();
|
|
722
759
|
},
|
|
723
760
|
get children() {
|
|
724
|
-
var _el$
|
|
725
|
-
_el$
|
|
761
|
+
var _el$54 = web.getNextElement(_tmpl$19);
|
|
762
|
+
_el$54.$$click = () => {
|
|
726
763
|
handleSearch("");
|
|
727
764
|
setSearchQuery("");
|
|
728
765
|
setDebouncedQuery("");
|
|
729
766
|
};
|
|
730
767
|
web.runHydrationEvents();
|
|
731
|
-
return _el$
|
|
768
|
+
return _el$54;
|
|
732
769
|
}
|
|
733
|
-
}), _el$
|
|
734
|
-
web.effect(() => web.setAttribute(_el$
|
|
735
|
-
web.effect(() => web.setProperty(_el$
|
|
770
|
+
}), _el$56, _co$0);
|
|
771
|
+
web.effect(() => web.setAttribute(_el$53, "placeholder", searchPlaceholder()));
|
|
772
|
+
web.effect(() => web.setProperty(_el$53, "value", searchQuery()));
|
|
736
773
|
web.runHydrationEvents();
|
|
737
|
-
return _el$
|
|
774
|
+
return _el$51;
|
|
738
775
|
})(), web.createComponent(solidJs.Show, {
|
|
739
776
|
get when() {
|
|
740
777
|
return web.memo(() => !!debouncedQuery())() && filteredRows().length !== sortedRows().length;
|
|
741
778
|
},
|
|
742
779
|
get children() {
|
|
743
|
-
var _el$
|
|
744
|
-
web.insert(_el$
|
|
745
|
-
web.insert(_el$
|
|
746
|
-
web.insert(_el$
|
|
747
|
-
return _el$
|
|
780
|
+
var _el$57 = web.getNextElement(_tmpl$21), _el$60 = _el$57.firstChild, [_el$61, _co$1] = web.getNextMarker(_el$60.nextSibling), _el$58 = _el$61.nextSibling, _el$62 = _el$58.nextSibling, [_el$63, _co$10] = web.getNextMarker(_el$62.nextSibling), _el$59 = _el$63.nextSibling, _el$64 = _el$59.nextSibling, [_el$65, _co$11] = web.getNextMarker(_el$64.nextSibling);
|
|
781
|
+
web.insert(_el$57, () => filteredRows().length, _el$61, _co$1);
|
|
782
|
+
web.insert(_el$57, () => filteredRows().length !== 1 ? "s" : "", _el$63, _co$10);
|
|
783
|
+
web.insert(_el$57, () => sortedRows().length, _el$65, _co$11);
|
|
784
|
+
return _el$57;
|
|
748
785
|
}
|
|
749
786
|
})];
|
|
750
787
|
}
|
|
751
|
-
}), _el$
|
|
788
|
+
}), _el$111, _co$23);
|
|
752
789
|
var _ref$2 = scrollContainerRef;
|
|
753
|
-
typeof _ref$2 === "function" ? web.use(_ref$2, _el$
|
|
754
|
-
web.insert(_el$
|
|
790
|
+
typeof _ref$2 === "function" ? web.use(_ref$2, _el$66) : scrollContainerRef = _el$66;
|
|
791
|
+
web.insert(_el$69, web.createComponent(solidJs.For, {
|
|
755
792
|
get each() {
|
|
756
793
|
return tableParams.columns;
|
|
757
794
|
},
|
|
758
795
|
children: (column) => (() => {
|
|
759
|
-
var _el$
|
|
760
|
-
web.addEventListener(_el$
|
|
761
|
-
web.insert(_el$
|
|
762
|
-
web.insert(_el$
|
|
796
|
+
var _el$118 = web.getNextElement(_tmpl$27), _el$119 = _el$118.firstChild, _el$121 = _el$119.firstChild, [_el$122, _co$27] = web.getNextMarker(_el$121.nextSibling), _el$120 = _el$122.nextSibling;
|
|
797
|
+
web.addEventListener(_el$118, "click", () => handleSort(column.key));
|
|
798
|
+
web.insert(_el$119, () => column.label, _el$122, _co$27);
|
|
799
|
+
web.insert(_el$120, () => sortIndicator(column.key));
|
|
763
800
|
web.effect((_p$) => {
|
|
764
801
|
var _v$14 = column.width ? {
|
|
765
802
|
width: column.width
|
|
@@ -767,19 +804,19 @@ ${dataRows}`;
|
|
|
767
804
|
"opacity-30": sortKey() !== column.key,
|
|
768
805
|
"opacity-100 text-blue-600 dark:text-blue-400": sortKey() === column.key
|
|
769
806
|
};
|
|
770
|
-
_p$.e = web.style(_el$
|
|
771
|
-
_v$15 !== _p$.t && web.setAttribute(_el$
|
|
772
|
-
_p$.a = web.classList(_el$
|
|
807
|
+
_p$.e = web.style(_el$118, _v$14, _p$.e);
|
|
808
|
+
_v$15 !== _p$.t && web.setAttribute(_el$118, "title", _p$.t = _v$15);
|
|
809
|
+
_p$.a = web.classList(_el$120, _v$16, _p$.a);
|
|
773
810
|
return _p$;
|
|
774
811
|
}, {
|
|
775
812
|
e: void 0,
|
|
776
813
|
t: void 0,
|
|
777
814
|
a: void 0
|
|
778
815
|
});
|
|
779
|
-
return _el$
|
|
816
|
+
return _el$118;
|
|
780
817
|
})()
|
|
781
818
|
}));
|
|
782
|
-
web.insert(_el$
|
|
819
|
+
web.insert(_el$67, web.createComponent(solidJs.Show, {
|
|
783
820
|
get when() {
|
|
784
821
|
return isVirtualizing();
|
|
785
822
|
},
|
|
@@ -789,69 +826,69 @@ ${dataRows}`;
|
|
|
789
826
|
get children() {
|
|
790
827
|
return web.createComponent(VirtualizedTableBody, {});
|
|
791
828
|
}
|
|
792
|
-
}), _el$
|
|
793
|
-
web.insert(_el$
|
|
829
|
+
}), _el$71, _co$12);
|
|
830
|
+
web.insert(_el$40, web.createComponent(solidJs.Show, {
|
|
794
831
|
get when() {
|
|
795
832
|
return tableParams.pagination;
|
|
796
833
|
},
|
|
797
834
|
get children() {
|
|
798
|
-
var _el$
|
|
799
|
-
web.insert(_el$
|
|
800
|
-
web.insert(_el$
|
|
801
|
-
web.insert(_el$
|
|
802
|
-
return _el$
|
|
835
|
+
var _el$72 = web.getNextElement(_tmpl$22), _el$73 = _el$72.firstChild, _el$74 = _el$73.firstChild, _el$79 = _el$74.nextSibling, [_el$80, _co$13] = web.getNextMarker(_el$79.nextSibling), _el$75 = _el$80.nextSibling, _el$81 = _el$75.nextSibling, [_el$82, _co$14] = web.getNextMarker(_el$81.nextSibling), _el$77 = _el$82.nextSibling, _el$83 = _el$77.nextSibling, [_el$84, _co$15] = web.getNextMarker(_el$83.nextSibling);
|
|
836
|
+
web.insert(_el$73, () => tableParams.pagination.currentPage * tableParams.pagination.pageSize + 1, _el$80, _co$13);
|
|
837
|
+
web.insert(_el$73, () => Math.min((tableParams.pagination.currentPage + 1) * tableParams.pagination.pageSize, tableParams.pagination.totalRows), _el$82, _co$14);
|
|
838
|
+
web.insert(_el$73, () => tableParams.pagination.totalRows, _el$84, _co$15);
|
|
839
|
+
return _el$72;
|
|
803
840
|
}
|
|
804
|
-
}), _el$
|
|
805
|
-
web.insert(_el$
|
|
841
|
+
}), _el$113, _co$24);
|
|
842
|
+
web.insert(_el$40, web.createComponent(solidJs.Show, {
|
|
806
843
|
get when() {
|
|
807
844
|
return needsClientPagination();
|
|
808
845
|
},
|
|
809
846
|
get children() {
|
|
810
|
-
var _el$
|
|
811
|
-
web.insert(_el$
|
|
812
|
-
web.insert(_el$
|
|
813
|
-
web.insert(_el$
|
|
814
|
-
_el$
|
|
815
|
-
web.insert(_el$
|
|
816
|
-
web.insert(_el$
|
|
817
|
-
_el$
|
|
818
|
-
web.insert(_el$
|
|
847
|
+
var _el$85 = web.getNextElement(_tmpl$25), _el$86 = _el$85.firstChild, _el$89 = _el$86.firstChild, [_el$90, _co$16] = web.getNextMarker(_el$89.nextSibling), _el$87 = _el$90.nextSibling, _el$91 = _el$87.nextSibling, [_el$92, _co$17] = web.getNextMarker(_el$91.nextSibling), _el$88 = _el$92.nextSibling, _el$93 = _el$88.nextSibling, [_el$94, _co$18] = web.getNextMarker(_el$93.nextSibling), _el$95 = _el$86.nextSibling, _el$96 = _el$95.firstChild, _el$97 = _el$96.nextSibling, _el$99 = _el$97.firstChild, [_el$100, _co$19] = web.getNextMarker(_el$99.nextSibling), _el$98 = _el$100.nextSibling, _el$101 = _el$98.nextSibling, [_el$102, _co$20] = web.getNextMarker(_el$101.nextSibling), _el$103 = _el$97.nextSibling, _el$106 = _el$103.nextSibling, [_el$107, _co$21] = web.getNextMarker(_el$106.nextSibling);
|
|
848
|
+
web.insert(_el$86, clientRangeStart, _el$90, _co$16);
|
|
849
|
+
web.insert(_el$86, clientRangeEnd, _el$92, _co$17);
|
|
850
|
+
web.insert(_el$86, () => filteredRows().length.toLocaleString("fr-FR"), _el$94, _co$18);
|
|
851
|
+
_el$96.$$click = () => setClientPage((p) => p - 1);
|
|
852
|
+
web.insert(_el$97, () => clientPage() + 1, _el$100, _co$19);
|
|
853
|
+
web.insert(_el$97, clientTotalPages, _el$102, _co$20);
|
|
854
|
+
_el$103.$$click = () => setClientPage((p) => p + 1);
|
|
855
|
+
web.insert(_el$95, web.createComponent(solidJs.Show, {
|
|
819
856
|
get when() {
|
|
820
857
|
return web.memo(() => !!isExpanded())() && filteredRows().length > 10;
|
|
821
858
|
},
|
|
822
859
|
get children() {
|
|
823
860
|
return [(() => {
|
|
824
|
-
var _el$
|
|
825
|
-
_el$
|
|
826
|
-
web.insert(_el$
|
|
861
|
+
var _el$104 = web.getNextElement(_tmpl$23);
|
|
862
|
+
_el$104.addEventListener("change", (e) => handlePageSizeChange(Number(e.currentTarget.value)));
|
|
863
|
+
web.insert(_el$104, web.createComponent(solidJs.For, {
|
|
827
864
|
get each() {
|
|
828
865
|
return pageSizeOptions();
|
|
829
866
|
},
|
|
830
867
|
children: (opt) => (() => {
|
|
831
|
-
var _el$
|
|
832
|
-
web.insert(_el$
|
|
833
|
-
web.effect(() => web.setProperty(_el$
|
|
834
|
-
return _el$
|
|
868
|
+
var _el$123 = web.getNextElement(_tmpl$28);
|
|
869
|
+
web.insert(_el$123, () => opt.label);
|
|
870
|
+
web.effect(() => web.setProperty(_el$123, "value", opt.value));
|
|
871
|
+
return _el$123;
|
|
835
872
|
})()
|
|
836
873
|
}));
|
|
837
|
-
web.effect(() => web.setProperty(_el$
|
|
838
|
-
return _el$
|
|
839
|
-
})(), web.getNextElement(_tmpl$
|
|
874
|
+
web.effect(() => web.setProperty(_el$104, "value", clientPageSize()));
|
|
875
|
+
return _el$104;
|
|
876
|
+
})(), web.getNextElement(_tmpl$24)];
|
|
840
877
|
}
|
|
841
|
-
}), _el$
|
|
878
|
+
}), _el$107, _co$21);
|
|
842
879
|
web.effect((_p$) => {
|
|
843
880
|
var _v$8 = clientPage() === 0, _v$9 = clientPage() >= clientTotalPages() - 1;
|
|
844
|
-
_v$8 !== _p$.e && web.setProperty(_el$
|
|
845
|
-
_v$9 !== _p$.t && web.setProperty(_el$
|
|
881
|
+
_v$8 !== _p$.e && web.setProperty(_el$96, "disabled", _p$.e = _v$8);
|
|
882
|
+
_v$9 !== _p$.t && web.setProperty(_el$103, "disabled", _p$.t = _v$9);
|
|
846
883
|
return _p$;
|
|
847
884
|
}, {
|
|
848
885
|
e: void 0,
|
|
849
886
|
t: void 0
|
|
850
887
|
});
|
|
851
888
|
web.runHydrationEvents();
|
|
852
|
-
return _el$
|
|
889
|
+
return _el$85;
|
|
853
890
|
}
|
|
854
|
-
}), _el$
|
|
891
|
+
}), _el$115, _co$25);
|
|
855
892
|
web.effect((_p$) => {
|
|
856
893
|
var _v$0 = `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"}`, _v$1 = `p-4 ${isExpanded() ? "flex-1 min-h-0 flex flex-col" : ""}`, _v$10 = `overflow-x-auto ${isExpanded() ? "flex-1 min-h-0" : ""}`, _v$11 = (
|
|
857
894
|
// v6.1.0 — when expanded, the scroll container fills the
|
|
@@ -883,12 +920,12 @@ ${dataRows}`;
|
|
|
883
920
|
return {};
|
|
884
921
|
})()
|
|
885
922
|
), _v$12 = tableParams.title || "Data table", _v$13 = tableParams.title ? `${tableId}-title` : void 0;
|
|
886
|
-
_v$0 !== _p$.e && web.className(_el$
|
|
887
|
-
_v$1 !== _p$.t && web.className(_el$
|
|
888
|
-
_v$10 !== _p$.a && web.className(_el$
|
|
889
|
-
_p$.o = web.style(_el$
|
|
890
|
-
_v$12 !== _p$.i && web.setAttribute(_el$
|
|
891
|
-
_v$13 !== _p$.n && web.setAttribute(_el$
|
|
923
|
+
_v$0 !== _p$.e && web.className(_el$32, _p$.e = _v$0);
|
|
924
|
+
_v$1 !== _p$.t && web.className(_el$40, _p$.t = _v$1);
|
|
925
|
+
_v$10 !== _p$.a && web.className(_el$66, _p$.a = _v$10);
|
|
926
|
+
_p$.o = web.style(_el$66, _v$11, _p$.o);
|
|
927
|
+
_v$12 !== _p$.i && web.setAttribute(_el$66, "aria-label", _p$.i = _v$12);
|
|
928
|
+
_v$13 !== _p$.n && web.setAttribute(_el$67, "aria-labelledby", _p$.n = _v$13);
|
|
892
929
|
return _p$;
|
|
893
930
|
}, {
|
|
894
931
|
e: void 0,
|
|
@@ -898,7 +935,7 @@ ${dataRows}`;
|
|
|
898
935
|
i: void 0,
|
|
899
936
|
n: void 0
|
|
900
937
|
});
|
|
901
|
-
return _el$
|
|
938
|
+
return _el$32;
|
|
902
939
|
}
|
|
903
940
|
});
|
|
904
941
|
}
|
|
@@ -911,51 +948,51 @@ function MetricRenderer(props) {
|
|
|
911
948
|
return `${title}: ${value}${unit ? " " + unit : ""}`;
|
|
912
949
|
};
|
|
913
950
|
return (() => {
|
|
914
|
-
var _el$
|
|
915
|
-
web.insert(_el$
|
|
951
|
+
var _el$124 = web.getNextElement(_tmpl$32), _el$146 = _el$124.firstChild, [_el$147, _co$33] = web.getNextMarker(_el$146.nextSibling), _el$125 = _el$147.nextSibling, _el$126 = _el$125.firstChild, _el$127 = _el$126.firstChild, _el$128 = _el$127.nextSibling, _el$129 = _el$128.firstChild, _el$131 = _el$129.nextSibling, [_el$132, _co$28] = web.getNextMarker(_el$131.nextSibling), _el$142 = _el$126.nextSibling, [_el$143, _co$31] = web.getNextMarker(_el$142.nextSibling), _el$144 = _el$143.nextSibling, [_el$145, _co$32] = web.getNextMarker(_el$144.nextSibling);
|
|
952
|
+
web.insert(_el$124, web.createComponent(CopyButton, {
|
|
916
953
|
getText: getMetricText,
|
|
917
954
|
title: "Copy metric",
|
|
918
955
|
position: "top-right"
|
|
919
|
-
}), _el$
|
|
920
|
-
web.insert(_el$
|
|
921
|
-
web.insert(_el$
|
|
922
|
-
web.insert(_el$
|
|
956
|
+
}), _el$147, _co$33);
|
|
957
|
+
web.insert(_el$127, () => metricParams.title);
|
|
958
|
+
web.insert(_el$129, () => metricParams.value);
|
|
959
|
+
web.insert(_el$128, web.createComponent(solidJs.Show, {
|
|
923
960
|
get when() {
|
|
924
961
|
return metricParams.unit;
|
|
925
962
|
},
|
|
926
963
|
get children() {
|
|
927
|
-
var _el$
|
|
928
|
-
web.insert(_el$
|
|
929
|
-
return _el$
|
|
964
|
+
var _el$130 = web.getNextElement(_tmpl$29);
|
|
965
|
+
web.insert(_el$130, () => metricParams.unit);
|
|
966
|
+
return _el$130;
|
|
930
967
|
}
|
|
931
|
-
}), _el$
|
|
932
|
-
web.insert(_el$
|
|
968
|
+
}), _el$132, _co$28);
|
|
969
|
+
web.insert(_el$125, web.createComponent(solidJs.Show, {
|
|
933
970
|
get when() {
|
|
934
971
|
return metricParams.trend;
|
|
935
972
|
},
|
|
936
973
|
get children() {
|
|
937
|
-
var _el$
|
|
938
|
-
_el$
|
|
939
|
-
web.insert(_el$
|
|
974
|
+
var _el$133 = web.getNextElement(_tmpl$30), _el$134 = _el$133.firstChild, _el$137 = _el$134.firstChild, [_el$138, _co$29] = web.getNextMarker(_el$137.nextSibling), _el$135 = _el$138.nextSibling, _el$139 = _el$135.nextSibling, [_el$140, _co$30] = web.getNextMarker(_el$139.nextSibling);
|
|
975
|
+
_el$140.nextSibling;
|
|
976
|
+
web.insert(_el$134, (() => {
|
|
940
977
|
var _c$ = web.memo(() => metricParams.trend.direction === "up");
|
|
941
978
|
return () => _c$() ? "�" : metricParams.trend.direction === "down" ? "�" : "�";
|
|
942
|
-
})(), _el$
|
|
943
|
-
web.insert(_el$
|
|
944
|
-
web.effect(() => web.className(_el$
|
|
945
|
-
return _el$
|
|
979
|
+
})(), _el$138, _co$29);
|
|
980
|
+
web.insert(_el$134, () => Math.abs(metricParams.trend.value), _el$140, _co$30);
|
|
981
|
+
web.effect(() => web.className(_el$134, `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"}`));
|
|
982
|
+
return _el$133;
|
|
946
983
|
}
|
|
947
|
-
}), _el$
|
|
948
|
-
web.insert(_el$
|
|
984
|
+
}), _el$143, _co$31);
|
|
985
|
+
web.insert(_el$125, web.createComponent(solidJs.Show, {
|
|
949
986
|
get when() {
|
|
950
987
|
return metricParams.subtitle;
|
|
951
988
|
},
|
|
952
989
|
get children() {
|
|
953
|
-
var _el$
|
|
954
|
-
web.insert(_el$
|
|
955
|
-
return _el$
|
|
990
|
+
var _el$141 = web.getNextElement(_tmpl$31);
|
|
991
|
+
web.insert(_el$141, () => metricParams.subtitle);
|
|
992
|
+
return _el$141;
|
|
956
993
|
}
|
|
957
|
-
}), _el$
|
|
958
|
-
return _el$
|
|
994
|
+
}), _el$145, _co$32);
|
|
995
|
+
return _el$124;
|
|
959
996
|
})();
|
|
960
997
|
}
|
|
961
998
|
function extractImageFromMarkdown(content) {
|
|
@@ -996,62 +1033,62 @@ function TextRenderer(props) {
|
|
|
996
1033
|
},
|
|
997
1034
|
get fallback() {
|
|
998
1035
|
return (() => {
|
|
999
|
-
var _el$
|
|
1000
|
-
web.insert(_el$
|
|
1036
|
+
var _el$148 = web.getNextElement(_tmpl$33), _el$150 = _el$148.firstChild, [_el$151, _co$34] = web.getNextMarker(_el$150.nextSibling), _el$149 = _el$151.nextSibling;
|
|
1037
|
+
web.insert(_el$148, web.createComponent(CopyButton, {
|
|
1001
1038
|
getText: getTextContent,
|
|
1002
1039
|
title: "Copy text",
|
|
1003
1040
|
position: "top-right"
|
|
1004
|
-
}), _el$
|
|
1041
|
+
}), _el$151, _co$34);
|
|
1005
1042
|
web.effect((_p$) => {
|
|
1006
1043
|
var _v$17 = `prose prose-sm dark:prose-invert max-w-none ${textParams.className || ""}`, _v$18 = htmlContent();
|
|
1007
|
-
_v$17 !== _p$.e && web.className(_el$
|
|
1008
|
-
_v$18 !== _p$.t && web.setProperty(_el$
|
|
1044
|
+
_v$17 !== _p$.e && web.className(_el$149, _p$.e = _v$17);
|
|
1045
|
+
_v$18 !== _p$.t && web.setProperty(_el$149, "innerHTML", _p$.t = _v$18);
|
|
1009
1046
|
return _p$;
|
|
1010
1047
|
}, {
|
|
1011
1048
|
e: void 0,
|
|
1012
1049
|
t: void 0
|
|
1013
1050
|
});
|
|
1014
|
-
return _el$
|
|
1051
|
+
return _el$148;
|
|
1015
1052
|
})();
|
|
1016
1053
|
},
|
|
1017
1054
|
children: (data) => (() => {
|
|
1018
|
-
var _el$
|
|
1019
|
-
web.insert(_el$
|
|
1055
|
+
var _el$152 = web.getNextElement(_tmpl$34), _el$153 = _el$152.firstChild, _el$154 = _el$153.firstChild, _el$155 = _el$154.firstChild, _el$156 = _el$153.nextSibling, _el$157 = _el$156.firstChild;
|
|
1056
|
+
web.insert(_el$157, () => data().credit);
|
|
1020
1057
|
web.effect((_p$) => {
|
|
1021
1058
|
var _v$19 = data().linkUrl, _v$20 = data().imageUrl, _v$21 = data().alt;
|
|
1022
|
-
_v$19 !== _p$.e && web.setAttribute(_el$
|
|
1023
|
-
_v$20 !== _p$.t && web.setAttribute(_el$
|
|
1024
|
-
_v$21 !== _p$.a && web.setAttribute(_el$
|
|
1059
|
+
_v$19 !== _p$.e && web.setAttribute(_el$154, "href", _p$.e = _v$19);
|
|
1060
|
+
_v$20 !== _p$.t && web.setAttribute(_el$155, "src", _p$.t = _v$20);
|
|
1061
|
+
_v$21 !== _p$.a && web.setAttribute(_el$155, "alt", _p$.a = _v$21);
|
|
1025
1062
|
return _p$;
|
|
1026
1063
|
}, {
|
|
1027
1064
|
e: void 0,
|
|
1028
1065
|
t: void 0,
|
|
1029
1066
|
a: void 0
|
|
1030
1067
|
});
|
|
1031
|
-
return _el$
|
|
1068
|
+
return _el$152;
|
|
1032
1069
|
})()
|
|
1033
1070
|
});
|
|
1034
1071
|
}
|
|
1035
1072
|
function IframeRenderer(props) {
|
|
1036
1073
|
const params = props.component.params;
|
|
1037
1074
|
return (() => {
|
|
1038
|
-
var _el$
|
|
1039
|
-
web.insert(_el$
|
|
1075
|
+
var _el$158 = web.getNextElement(_tmpl$36), _el$162 = _el$158.firstChild, [_el$163, _co$35] = web.getNextMarker(_el$162.nextSibling), _el$161 = _el$163.nextSibling;
|
|
1076
|
+
web.insert(_el$158, web.createComponent(solidJs.Show, {
|
|
1040
1077
|
get when() {
|
|
1041
1078
|
return params.title;
|
|
1042
1079
|
},
|
|
1043
1080
|
get children() {
|
|
1044
|
-
var _el$
|
|
1045
|
-
web.insert(_el$
|
|
1046
|
-
return _el$
|
|
1081
|
+
var _el$159 = web.getNextElement(_tmpl$35), _el$160 = _el$159.firstChild;
|
|
1082
|
+
web.insert(_el$160, () => params.title);
|
|
1083
|
+
return _el$159;
|
|
1047
1084
|
}
|
|
1048
|
-
}), _el$
|
|
1085
|
+
}), _el$163, _co$35);
|
|
1049
1086
|
web.effect((_p$) => {
|
|
1050
1087
|
var _v$22 = params.url, _v$23 = params.title || "Embedded content", _v$24 = `height: ${params.height || "400px"}; min-height: 300px;`, _v$25 = validation.getIframeSandbox(params.url);
|
|
1051
|
-
_v$22 !== _p$.e && web.setAttribute(_el$
|
|
1052
|
-
_v$23 !== _p$.t && web.setAttribute(_el$
|
|
1053
|
-
_p$.a = web.style(_el$
|
|
1054
|
-
_v$25 !== _p$.o && web.setAttribute(_el$
|
|
1088
|
+
_v$22 !== _p$.e && web.setAttribute(_el$161, "src", _p$.e = _v$22);
|
|
1089
|
+
_v$23 !== _p$.t && web.setAttribute(_el$161, "title", _p$.t = _v$23);
|
|
1090
|
+
_p$.a = web.style(_el$161, _v$24, _p$.a);
|
|
1091
|
+
_v$25 !== _p$.o && web.setAttribute(_el$161, "sandbox", _p$.o = _v$25);
|
|
1055
1092
|
return _p$;
|
|
1056
1093
|
}, {
|
|
1057
1094
|
e: void 0,
|
|
@@ -1059,30 +1096,30 @@ function IframeRenderer(props) {
|
|
|
1059
1096
|
a: void 0,
|
|
1060
1097
|
o: void 0
|
|
1061
1098
|
});
|
|
1062
|
-
return _el$
|
|
1099
|
+
return _el$158;
|
|
1063
1100
|
})();
|
|
1064
1101
|
}
|
|
1065
1102
|
function ImageRenderer(props) {
|
|
1066
1103
|
const params = props.component.params;
|
|
1067
1104
|
return (() => {
|
|
1068
|
-
var _el$
|
|
1069
|
-
web.insert(_el$
|
|
1105
|
+
var _el$164 = web.getNextElement(_tmpl$38), _el$165 = _el$164.firstChild, _el$166 = _el$165.firstChild, _el$167 = _el$166.firstChild, _el$170 = _el$165.nextSibling, [_el$171, _co$36] = web.getNextMarker(_el$170.nextSibling);
|
|
1106
|
+
web.insert(_el$164, web.createComponent(solidJs.Show, {
|
|
1070
1107
|
get when() {
|
|
1071
1108
|
return params.caption;
|
|
1072
1109
|
},
|
|
1073
1110
|
get children() {
|
|
1074
|
-
var _el$
|
|
1075
|
-
web.insert(_el$
|
|
1076
|
-
return _el$
|
|
1111
|
+
var _el$168 = web.getNextElement(_tmpl$37), _el$169 = _el$168.firstChild;
|
|
1112
|
+
web.insert(_el$169, () => params.caption);
|
|
1113
|
+
return _el$168;
|
|
1077
1114
|
}
|
|
1078
|
-
}), _el$
|
|
1115
|
+
}), _el$171, _co$36);
|
|
1079
1116
|
web.effect((_p$) => {
|
|
1080
1117
|
var _v$26 = `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$27 = params.url, _v$28 = `View full size: ${params.alt || "image"}`, _v$29 = params.url, _v$30 = params.alt || "Image";
|
|
1081
|
-
_v$26 !== _p$.e && web.className(_el$
|
|
1082
|
-
_v$27 !== _p$.t && web.setAttribute(_el$
|
|
1083
|
-
_v$28 !== _p$.a && web.setAttribute(_el$
|
|
1084
|
-
_v$29 !== _p$.o && web.setAttribute(_el$
|
|
1085
|
-
_v$30 !== _p$.i && web.setAttribute(_el$
|
|
1118
|
+
_v$26 !== _p$.e && web.className(_el$164, _p$.e = _v$26);
|
|
1119
|
+
_v$27 !== _p$.t && web.setAttribute(_el$166, "href", _p$.t = _v$27);
|
|
1120
|
+
_v$28 !== _p$.a && web.setAttribute(_el$166, "aria-label", _p$.a = _v$28);
|
|
1121
|
+
_v$29 !== _p$.o && web.setAttribute(_el$167, "src", _p$.o = _v$29);
|
|
1122
|
+
_v$30 !== _p$.i && web.setAttribute(_el$167, "alt", _p$.i = _v$30);
|
|
1086
1123
|
return _p$;
|
|
1087
1124
|
}, {
|
|
1088
1125
|
e: void 0,
|
|
@@ -1091,30 +1128,30 @@ function ImageRenderer(props) {
|
|
|
1091
1128
|
o: void 0,
|
|
1092
1129
|
i: void 0
|
|
1093
1130
|
});
|
|
1094
|
-
return _el$
|
|
1131
|
+
return _el$164;
|
|
1095
1132
|
})();
|
|
1096
1133
|
}
|
|
1097
1134
|
function LinkRenderer(props) {
|
|
1098
1135
|
const params = props.component.params;
|
|
1099
1136
|
return (() => {
|
|
1100
|
-
var _el$
|
|
1101
|
-
_el$
|
|
1102
|
-
web.insert(_el$
|
|
1103
|
-
web.insert(_el$
|
|
1137
|
+
var _el$172 = web.getNextElement(_tmpl$40), _el$173 = _el$172.firstChild, _el$174 = _el$173.nextSibling, _el$175 = _el$174.firstChild, _el$177 = _el$175.nextSibling, [_el$178, _co$37] = web.getNextMarker(_el$177.nextSibling);
|
|
1138
|
+
_el$172.$$click = (e) => e.stopPropagation();
|
|
1139
|
+
web.insert(_el$175, () => params.label || params.url);
|
|
1140
|
+
web.insert(_el$174, web.createComponent(solidJs.Show, {
|
|
1104
1141
|
get when() {
|
|
1105
1142
|
return params.description;
|
|
1106
1143
|
},
|
|
1107
1144
|
get children() {
|
|
1108
|
-
var _el$
|
|
1109
|
-
web.insert(_el$
|
|
1110
|
-
return _el$
|
|
1145
|
+
var _el$176 = web.getNextElement(_tmpl$39);
|
|
1146
|
+
web.insert(_el$176, () => params.description);
|
|
1147
|
+
return _el$176;
|
|
1111
1148
|
}
|
|
1112
|
-
}), _el$
|
|
1149
|
+
}), _el$178, _co$37);
|
|
1113
1150
|
web.effect((_p$) => {
|
|
1114
1151
|
var _v$31 = params.url, _v$32 = `${params.label || "Link"}: ${params.description || params.url} (opens in new tab)`, _v$33 = `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 || ""}`;
|
|
1115
|
-
_v$31 !== _p$.e && web.setAttribute(_el$
|
|
1116
|
-
_v$32 !== _p$.t && web.setAttribute(_el$
|
|
1117
|
-
_v$33 !== _p$.a && web.className(_el$
|
|
1152
|
+
_v$31 !== _p$.e && web.setAttribute(_el$172, "href", _p$.e = _v$31);
|
|
1153
|
+
_v$32 !== _p$.t && web.setAttribute(_el$172, "aria-label", _p$.t = _v$32);
|
|
1154
|
+
_v$33 !== _p$.a && web.className(_el$172, _p$.a = _v$33);
|
|
1118
1155
|
return _p$;
|
|
1119
1156
|
}, {
|
|
1120
1157
|
e: void 0,
|
|
@@ -1122,7 +1159,7 @@ function LinkRenderer(props) {
|
|
|
1122
1159
|
a: void 0
|
|
1123
1160
|
});
|
|
1124
1161
|
web.runHydrationEvents();
|
|
1125
|
-
return _el$
|
|
1162
|
+
return _el$172;
|
|
1126
1163
|
})();
|
|
1127
1164
|
}
|
|
1128
1165
|
function ComponentRenderer(props) {
|
|
@@ -1189,16 +1226,16 @@ function ComponentRenderer(props) {
|
|
|
1189
1226
|
}
|
|
1190
1227
|
if (mode === "inline-warn") {
|
|
1191
1228
|
return (() => {
|
|
1192
|
-
var _el$
|
|
1193
|
-
web.setAttribute(_el$
|
|
1194
|
-
web.insert(_el$
|
|
1195
|
-
return _el$
|
|
1229
|
+
var _el$179 = web.getNextElement(_tmpl$41), _el$180 = _el$179.firstChild, _el$181 = _el$180.nextSibling, _el$182 = _el$181.firstChild, _el$183 = _el$182.nextSibling, [_el$184, _co$38] = web.getNextMarker(_el$183.nextSibling);
|
|
1230
|
+
web.setAttribute(_el$179, "title", firstError);
|
|
1231
|
+
web.insert(_el$181, () => props.component.type, _el$184, _co$38);
|
|
1232
|
+
return _el$179;
|
|
1196
1233
|
})();
|
|
1197
1234
|
}
|
|
1198
1235
|
return (() => {
|
|
1199
|
-
var _el$
|
|
1200
|
-
web.insert(_el$
|
|
1201
|
-
return _el$
|
|
1236
|
+
var _el$185 = web.getNextElement(_tmpl$42), _el$186 = _el$185.firstChild, _el$187 = _el$186.nextSibling;
|
|
1237
|
+
web.insert(_el$187, firstError);
|
|
1238
|
+
return _el$185;
|
|
1202
1239
|
})();
|
|
1203
1240
|
}
|
|
1204
1241
|
return web.createComponent(GenerativeUIErrorBoundary.GenerativeUIErrorBoundary, {
|
|
@@ -1227,6 +1264,9 @@ function ComponentRenderer(props) {
|
|
|
1227
1264
|
},
|
|
1228
1265
|
get toolbarVariant() {
|
|
1229
1266
|
return props.toolbarVariant;
|
|
1267
|
+
},
|
|
1268
|
+
get allowQuickchartFallback() {
|
|
1269
|
+
return props.allowQuickchartFallback;
|
|
1230
1270
|
}
|
|
1231
1271
|
});
|
|
1232
1272
|
}
|
|
@@ -1501,27 +1541,27 @@ function ActionRenderer(props) {
|
|
|
1501
1541
|
const isDisabled = () => params.disabled || isExecutable() && isExecuting();
|
|
1502
1542
|
if (params.type === "link" || params.action === "link") {
|
|
1503
1543
|
return (() => {
|
|
1504
|
-
var _el$
|
|
1505
|
-
_el$
|
|
1506
|
-
web.insert(_el$
|
|
1544
|
+
var _el$188 = web.getNextElement(_tmpl$44), _el$190 = _el$188.firstChild, [_el$191, _co$39] = web.getNextMarker(_el$190.nextSibling), _el$192 = _el$191.nextSibling, [_el$193, _co$40] = web.getNextMarker(_el$192.nextSibling);
|
|
1545
|
+
_el$188.$$click = handleClick;
|
|
1546
|
+
web.insert(_el$188, web.createComponent(solidJs.Show, {
|
|
1507
1547
|
get when() {
|
|
1508
1548
|
return params.icon;
|
|
1509
1549
|
},
|
|
1510
1550
|
get children() {
|
|
1511
|
-
var _el$
|
|
1512
|
-
web.insert(_el$
|
|
1513
|
-
return _el$
|
|
1551
|
+
var _el$189 = web.getNextElement(_tmpl$43);
|
|
1552
|
+
web.insert(_el$189, () => params.icon);
|
|
1553
|
+
return _el$189;
|
|
1514
1554
|
}
|
|
1515
|
-
}), _el$
|
|
1516
|
-
web.insert(_el$
|
|
1555
|
+
}), _el$191, _co$39);
|
|
1556
|
+
web.insert(_el$188, () => params.label, _el$193, _co$40);
|
|
1517
1557
|
web.effect((_p$) => {
|
|
1518
1558
|
var _v$34 = params.url || "#", _v$35 = params.url ? "_blank" : void 0, _v$36 = params.ariaLabel || params.label, _v$37 = `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
|
|
1519
1559
|
${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"}
|
|
1520
1560
|
${params.className || ""}`;
|
|
1521
|
-
_v$34 !== _p$.e && web.setAttribute(_el$
|
|
1522
|
-
_v$35 !== _p$.t && web.setAttribute(_el$
|
|
1523
|
-
_v$36 !== _p$.a && web.setAttribute(_el$
|
|
1524
|
-
_v$37 !== _p$.o && web.className(_el$
|
|
1561
|
+
_v$34 !== _p$.e && web.setAttribute(_el$188, "href", _p$.e = _v$34);
|
|
1562
|
+
_v$35 !== _p$.t && web.setAttribute(_el$188, "target", _p$.t = _v$35);
|
|
1563
|
+
_v$36 !== _p$.a && web.setAttribute(_el$188, "aria-label", _p$.a = _v$36);
|
|
1564
|
+
_v$37 !== _p$.o && web.className(_el$188, _p$.o = _v$37);
|
|
1525
1565
|
return _p$;
|
|
1526
1566
|
}, {
|
|
1527
1567
|
e: void 0,
|
|
@@ -1530,41 +1570,41 @@ function ActionRenderer(props) {
|
|
|
1530
1570
|
o: void 0
|
|
1531
1571
|
});
|
|
1532
1572
|
web.runHydrationEvents();
|
|
1533
|
-
return _el$
|
|
1573
|
+
return _el$188;
|
|
1534
1574
|
})();
|
|
1535
1575
|
}
|
|
1536
1576
|
return (() => {
|
|
1537
|
-
var _el$
|
|
1538
|
-
_el$
|
|
1539
|
-
web.insert(_el$
|
|
1577
|
+
var _el$194 = web.getNextElement(_tmpl$46), _el$197 = _el$194.firstChild, [_el$198, _co$41] = web.getNextMarker(_el$197.nextSibling), _el$199 = _el$198.nextSibling, [_el$200, _co$42] = web.getNextMarker(_el$199.nextSibling), _el$201 = _el$200.nextSibling, [_el$202, _co$43] = web.getNextMarker(_el$201.nextSibling);
|
|
1578
|
+
_el$194.$$click = handleClick;
|
|
1579
|
+
web.insert(_el$194, web.createComponent(solidJs.Show, {
|
|
1540
1580
|
get when() {
|
|
1541
1581
|
return web.memo(() => !!isExecuting())() && isExecutable();
|
|
1542
1582
|
},
|
|
1543
1583
|
get children() {
|
|
1544
|
-
return web.getNextElement(_tmpl$
|
|
1584
|
+
return web.getNextElement(_tmpl$45);
|
|
1545
1585
|
}
|
|
1546
|
-
}), _el$
|
|
1547
|
-
web.insert(_el$
|
|
1586
|
+
}), _el$198, _co$41);
|
|
1587
|
+
web.insert(_el$194, web.createComponent(solidJs.Show, {
|
|
1548
1588
|
get when() {
|
|
1549
1589
|
return web.memo(() => !!params.icon)() && !(isExecuting() && isExecutable());
|
|
1550
1590
|
},
|
|
1551
1591
|
get children() {
|
|
1552
|
-
var _el$
|
|
1553
|
-
web.insert(_el$
|
|
1554
|
-
return _el$
|
|
1592
|
+
var _el$196 = web.getNextElement(_tmpl$43);
|
|
1593
|
+
web.insert(_el$196, () => params.icon);
|
|
1594
|
+
return _el$196;
|
|
1555
1595
|
}
|
|
1556
|
-
}), _el$
|
|
1557
|
-
web.insert(_el$
|
|
1596
|
+
}), _el$200, _co$42);
|
|
1597
|
+
web.insert(_el$194, () => params.label, _el$202, _co$43);
|
|
1558
1598
|
web.effect((_p$) => {
|
|
1559
1599
|
var _v$38 = isDisabled(), _v$39 = isExecuting() && isExecutable(), _v$40 = params.ariaLabel || params.label, _v$41 = `inline-flex items-center gap-2 px-4 py-2 rounded-md text-sm font-medium transition-colors focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500
|
|
1560
1600
|
${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"}
|
|
1561
1601
|
${isDisabled() ? "opacity-50 cursor-not-allowed" : ""}
|
|
1562
1602
|
${params.size === "sm" ? "px-3 py-1.5 text-xs" : params.size === "lg" ? "px-6 py-3 text-base" : ""}
|
|
1563
1603
|
${params.className || ""}`;
|
|
1564
|
-
_v$38 !== _p$.e && web.setProperty(_el$
|
|
1565
|
-
_v$39 !== _p$.t && web.setAttribute(_el$
|
|
1566
|
-
_v$40 !== _p$.a && web.setAttribute(_el$
|
|
1567
|
-
_v$41 !== _p$.o && web.className(_el$
|
|
1604
|
+
_v$38 !== _p$.e && web.setProperty(_el$194, "disabled", _p$.e = _v$38);
|
|
1605
|
+
_v$39 !== _p$.t && web.setAttribute(_el$194, "aria-busy", _p$.t = _v$39);
|
|
1606
|
+
_v$40 !== _p$.a && web.setAttribute(_el$194, "aria-label", _p$.a = _v$40);
|
|
1607
|
+
_v$41 !== _p$.o && web.className(_el$194, _p$.o = _v$41);
|
|
1568
1608
|
return _p$;
|
|
1569
1609
|
}, {
|
|
1570
1610
|
e: void 0,
|
|
@@ -1573,7 +1613,7 @@ function ActionRenderer(props) {
|
|
|
1573
1613
|
o: void 0
|
|
1574
1614
|
});
|
|
1575
1615
|
web.runHydrationEvents();
|
|
1576
|
-
return _el$
|
|
1616
|
+
return _el$194;
|
|
1577
1617
|
})();
|
|
1578
1618
|
}
|
|
1579
1619
|
function ErrorCardRenderer(props) {
|
|
@@ -1581,55 +1621,55 @@ function ErrorCardRenderer(props) {
|
|
|
1581
1621
|
return `Error in ${props.error.tool || "unknown tool"}: ${props.error.message || "Unknown error"}`;
|
|
1582
1622
|
};
|
|
1583
1623
|
return (() => {
|
|
1584
|
-
var _el$
|
|
1585
|
-
web.insert(_el$
|
|
1624
|
+
var _el$203 = web.getNextElement(_tmpl$50), _el$226 = _el$203.firstChild, [_el$227, _co$49] = web.getNextMarker(_el$226.nextSibling), _el$204 = _el$227.nextSibling, _el$205 = _el$204.firstChild, _el$206 = _el$205.nextSibling, _el$207 = _el$206.firstChild, _el$208 = _el$207.firstChild, _el$209 = _el$208.nextSibling, [_el$210, _co$44] = web.getNextMarker(_el$209.nextSibling), _el$211 = _el$207.nextSibling, _el$220 = _el$211.nextSibling, [_el$221, _co$46] = web.getNextMarker(_el$220.nextSibling), _el$222 = _el$221.nextSibling, [_el$223, _co$47] = web.getNextMarker(_el$222.nextSibling), _el$224 = _el$223.nextSibling, [_el$225, _co$48] = web.getNextMarker(_el$224.nextSibling);
|
|
1625
|
+
web.insert(_el$203, web.createComponent(CopyButton, {
|
|
1586
1626
|
getText: getErrorText,
|
|
1587
1627
|
title: "Copy error details",
|
|
1588
1628
|
position: "top-right"
|
|
1589
|
-
}), _el$
|
|
1590
|
-
web.insert(_el$
|
|
1591
|
-
web.insert(_el$
|
|
1592
|
-
web.insert(_el$
|
|
1629
|
+
}), _el$227, _co$49);
|
|
1630
|
+
web.insert(_el$207, () => props.error.tool || "Unknown", _el$210, _co$44);
|
|
1631
|
+
web.insert(_el$211, () => props.error.message || "An error occurred during tool execution");
|
|
1632
|
+
web.insert(_el$206, web.createComponent(solidJs.Show, {
|
|
1593
1633
|
get when() {
|
|
1594
1634
|
return props.error.type;
|
|
1595
1635
|
},
|
|
1596
1636
|
get children() {
|
|
1597
|
-
var _el$
|
|
1598
|
-
web.insert(_el$
|
|
1599
|
-
return _el$
|
|
1637
|
+
var _el$212 = web.getNextElement(_tmpl$47), _el$213 = _el$212.firstChild, _el$214 = _el$213.nextSibling, [_el$215, _co$45] = web.getNextMarker(_el$214.nextSibling);
|
|
1638
|
+
web.insert(_el$212, () => props.error.type, _el$215, _co$45);
|
|
1639
|
+
return _el$212;
|
|
1600
1640
|
}
|
|
1601
|
-
}), _el$
|
|
1602
|
-
web.insert(_el$
|
|
1641
|
+
}), _el$221, _co$46);
|
|
1642
|
+
web.insert(_el$206, web.createComponent(solidJs.Show, {
|
|
1603
1643
|
get when() {
|
|
1604
1644
|
var _a;
|
|
1605
1645
|
return (_a = props.error.suggestions) == null ? void 0 : _a.length;
|
|
1606
1646
|
},
|
|
1607
1647
|
get children() {
|
|
1608
|
-
var _el$
|
|
1609
|
-
web.insert(_el$
|
|
1648
|
+
var _el$216 = web.getNextElement(_tmpl$48), _el$217 = _el$216.firstChild, _el$218 = _el$217.nextSibling;
|
|
1649
|
+
web.insert(_el$218, web.createComponent(solidJs.For, {
|
|
1610
1650
|
get each() {
|
|
1611
1651
|
return props.error.suggestions;
|
|
1612
1652
|
},
|
|
1613
1653
|
children: (suggestion) => (() => {
|
|
1614
|
-
var _el$
|
|
1615
|
-
web.insert(_el$
|
|
1616
|
-
return _el$
|
|
1654
|
+
var _el$228 = web.getNextElement(_tmpl$51);
|
|
1655
|
+
web.insert(_el$228, suggestion);
|
|
1656
|
+
return _el$228;
|
|
1617
1657
|
})()
|
|
1618
1658
|
}));
|
|
1619
|
-
return _el$
|
|
1659
|
+
return _el$216;
|
|
1620
1660
|
}
|
|
1621
|
-
}), _el$
|
|
1622
|
-
web.insert(_el$
|
|
1661
|
+
}), _el$223, _co$47);
|
|
1662
|
+
web.insert(_el$206, web.createComponent(solidJs.Show, {
|
|
1623
1663
|
get when() {
|
|
1624
1664
|
return props.error.timestamp;
|
|
1625
1665
|
},
|
|
1626
1666
|
get children() {
|
|
1627
|
-
var _el$
|
|
1628
|
-
web.insert(_el$
|
|
1629
|
-
return _el$
|
|
1667
|
+
var _el$219 = web.getNextElement(_tmpl$49);
|
|
1668
|
+
web.insert(_el$219, () => new Date(props.error.timestamp).toLocaleString());
|
|
1669
|
+
return _el$219;
|
|
1630
1670
|
}
|
|
1631
|
-
}), _el$
|
|
1632
|
-
return _el$
|
|
1671
|
+
}), _el$225, _co$48);
|
|
1672
|
+
return _el$203;
|
|
1633
1673
|
})();
|
|
1634
1674
|
}
|
|
1635
1675
|
function isErrorResponse(content) {
|
|
@@ -1652,20 +1692,20 @@ function UIResourceHtmlRenderer(props) {
|
|
|
1652
1692
|
return ((_a = props.resource.metadata) == null ? void 0 : _a.title) || ((_b = props.resource.uri) == null ? void 0 : _b.replace("ui://deposium/", "")) || "Resource";
|
|
1653
1693
|
};
|
|
1654
1694
|
return (() => {
|
|
1655
|
-
var _el$
|
|
1656
|
-
web.insert(_el$
|
|
1695
|
+
var _el$229 = web.getNextElement(_tmpl$53), _el$233 = _el$229.firstChild, [_el$234, _co$50] = web.getNextMarker(_el$233.nextSibling), _el$232 = _el$234.nextSibling;
|
|
1696
|
+
web.insert(_el$229, web.createComponent(solidJs.Show, {
|
|
1657
1697
|
get when() {
|
|
1658
1698
|
var _a;
|
|
1659
1699
|
return ((_a = props.resource.metadata) == null ? void 0 : _a.title) || props.resource.uri;
|
|
1660
1700
|
},
|
|
1661
1701
|
get children() {
|
|
1662
|
-
var _el$
|
|
1663
|
-
web.insert(_el$
|
|
1664
|
-
return _el$
|
|
1702
|
+
var _el$230 = web.getNextElement(_tmpl$52), _el$231 = _el$230.firstChild;
|
|
1703
|
+
web.insert(_el$231, resourceTitle);
|
|
1704
|
+
return _el$230;
|
|
1665
1705
|
}
|
|
1666
|
-
}), _el$
|
|
1667
|
-
web.effect(() => web.setProperty(_el$
|
|
1668
|
-
return _el$
|
|
1706
|
+
}), _el$234, _co$50);
|
|
1707
|
+
web.effect(() => web.setProperty(_el$232, "innerHTML", htmlContent()));
|
|
1708
|
+
return _el$229;
|
|
1669
1709
|
})();
|
|
1670
1710
|
}
|
|
1671
1711
|
const UIResourceRenderer = (props) => {
|
|
@@ -1763,13 +1803,16 @@ const UIResourceRenderer = (props) => {
|
|
|
1763
1803
|
},
|
|
1764
1804
|
get toolbarVariant() {
|
|
1765
1805
|
return props.toolbarVariant;
|
|
1806
|
+
},
|
|
1807
|
+
get allowQuickchartFallback() {
|
|
1808
|
+
return props.allowQuickchartFallback;
|
|
1766
1809
|
}
|
|
1767
1810
|
});
|
|
1768
1811
|
return web.createComponent(RenderContext.RenderProvider, {
|
|
1769
1812
|
renderComponent,
|
|
1770
1813
|
get children() {
|
|
1771
|
-
var _el$
|
|
1772
|
-
web.spread(_el$
|
|
1814
|
+
var _el$235 = web.getNextElement(_tmpl$54), _el$236 = _el$235.firstChild, _el$237 = _el$236.nextSibling, [_el$238, _co$51] = web.getNextMarker(_el$237.nextSibling);
|
|
1815
|
+
web.spread(_el$235, web.mergeProps({
|
|
1773
1816
|
get ["class"]() {
|
|
1774
1817
|
return `w-full ${props.class || ""}`;
|
|
1775
1818
|
}
|
|
@@ -1778,13 +1821,13 @@ const UIResourceRenderer = (props) => {
|
|
|
1778
1821
|
} : {
|
|
1779
1822
|
"data-mcp-ui-component-id": outerKey()
|
|
1780
1823
|
}), false, true);
|
|
1781
|
-
web.insert(_el$
|
|
1824
|
+
web.insert(_el$236, web.createComponent(solidJs.For, {
|
|
1782
1825
|
get each() {
|
|
1783
1826
|
return layoutData.components;
|
|
1784
1827
|
},
|
|
1785
1828
|
children: (component) => (() => {
|
|
1786
|
-
var _el$
|
|
1787
|
-
web.insert(_el$
|
|
1829
|
+
var _el$239 = web.getNextElement(_tmpl$55);
|
|
1830
|
+
web.insert(_el$239, web.createComponent(ComponentRenderer, {
|
|
1788
1831
|
component,
|
|
1789
1832
|
get onError() {
|
|
1790
1833
|
return props.onError;
|
|
@@ -1794,21 +1837,24 @@ const UIResourceRenderer = (props) => {
|
|
|
1794
1837
|
},
|
|
1795
1838
|
get toolbarVariant() {
|
|
1796
1839
|
return props.toolbarVariant;
|
|
1840
|
+
},
|
|
1841
|
+
get allowQuickchartFallback() {
|
|
1842
|
+
return props.allowQuickchartFallback;
|
|
1797
1843
|
}
|
|
1798
1844
|
}));
|
|
1799
1845
|
web.effect((_p$) => {
|
|
1800
1846
|
var _v$42 = getGridStyleString(component), _v$43 = stableKey.getUiResourceStableKey(component);
|
|
1801
|
-
_p$.e = web.style(_el$
|
|
1802
|
-
_v$43 !== _p$.t && web.setAttribute(_el$
|
|
1847
|
+
_p$.e = web.style(_el$239, _v$42, _p$.e);
|
|
1848
|
+
_v$43 !== _p$.t && web.setAttribute(_el$239, "data-mcp-ui-component-id", _p$.t = _v$43);
|
|
1803
1849
|
return _p$;
|
|
1804
1850
|
}, {
|
|
1805
1851
|
e: void 0,
|
|
1806
1852
|
t: void 0
|
|
1807
1853
|
});
|
|
1808
|
-
return _el$
|
|
1854
|
+
return _el$239;
|
|
1809
1855
|
})()
|
|
1810
1856
|
}));
|
|
1811
|
-
web.insert(_el$
|
|
1857
|
+
web.insert(_el$235, web.createComponent(solidJs.Show, {
|
|
1812
1858
|
get when() {
|
|
1813
1859
|
return shouldShowAutoFooter();
|
|
1814
1860
|
},
|
|
@@ -1819,10 +1865,10 @@ const UIResourceRenderer = (props) => {
|
|
|
1819
1865
|
}
|
|
1820
1866
|
});
|
|
1821
1867
|
}
|
|
1822
|
-
}), _el$
|
|
1823
|
-
web.effect((_$p) => web.style(_el$
|
|
1868
|
+
}), _el$238, _co$51);
|
|
1869
|
+
web.effect((_$p) => web.style(_el$236, gridContainerStyle(), _$p));
|
|
1824
1870
|
web.runHydrationEvents();
|
|
1825
|
-
return _el$
|
|
1871
|
+
return _el$235;
|
|
1826
1872
|
}
|
|
1827
1873
|
});
|
|
1828
1874
|
};
|