@seed-ship/mcp-ui-solid 4.3.1 → 4.3.3
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 +28 -0
- package/dist/components/UIResourceRenderer.cjs +295 -193
- package/dist/components/UIResourceRenderer.cjs.map +1 -1
- package/dist/components/UIResourceRenderer.d.ts.map +1 -1
- package/dist/components/UIResourceRenderer.js +295 -193
- package/dist/components/UIResourceRenderer.js.map +1 -1
- package/package.json +1 -1
- package/src/components/UIResourceRenderer.tsx +104 -11
- 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="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="mt-3 flex items-center justify-between text-xs text-gray-500 dark:text-gray-400"><span>Showing <!$><!/>–<!$><!/> of <!$><!/></span><div class="flex items-center gap-1"><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">◀ Prev</button><span class=px-2>Page <!$><!/> / <!$><!/></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">Next ▶`), _tmpl$21 = /* @__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$22 = /* @__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 cursor-pointer select-none hover:bg-gray-100 dark:hover:bg-gray-800/50 transition-colors"><span class="inline-flex items-center gap-1"><!$><!/><span class="text-[10px] leading-none">`), _tmpl$23 = /* @__PURE__ */ template(`<span class="ml-2 text-sm font-medium text-gray-500 dark:text-gray-400">`), _tmpl$24 = /* @__PURE__ */ template(`<div class="mt-3 flex items-center"><span><!$><!/> <!$><!/>%`), _tmpl$25 = /* @__PURE__ */ template(`<p class="mt-2 text-xs text-gray-500 dark:text-gray-400">`), _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 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$27 = /* @__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$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"><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$29 = /* @__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$30 = /* @__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"loading=lazy>`, true, false, false), _tmpl$31 = /* @__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$32 = /* @__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$33 = /* @__PURE__ */ template(`<p class="text-xs text-gray-500 dark:text-gray-400 truncate">`), _tmpl$34 = /* @__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$35 = /* @__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$36 = /* @__PURE__ */ template(`<span aria-hidden=true>`), _tmpl$37 = /* @__PURE__ */ template(`<a rel="noopener noreferrer"><!$><!/><!$><!/>`), _tmpl$38 = /* @__PURE__ */ template(`<span class="animate-spin h-4 w-4 border-2 border-current border-t-transparent rounded-full"aria-hidden=true>`), _tmpl$39 = /* @__PURE__ */ template(`<button><!$><!/><!$><!/><!$><!/>`), _tmpl$40 = /* @__PURE__ */ template(`<p class="text-xs text-red-600 dark:text-red-400 mt-1">Type: <!$><!/>`), _tmpl$41 = /* @__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$42 = /* @__PURE__ */ template(`<p class="text-xs text-red-500 dark:text-red-500 mt-2">`), _tmpl$43 = /* @__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$44 = /* @__PURE__ */ template(`<li>`), _tmpl$45 = /* @__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$46 = /* @__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$47 = /* @__PURE__ */ template(`<div><div class="grid gap-4"></div><!$><!/>`), _tmpl$48 = /* @__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(`<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__ */ 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 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__ */ template(`<p class="text-xs text-gray-500 dark:text-gray-400 mb-2"><!$><!/> result<!$><!/> on <!$><!/>`), _tmpl$22 = /* @__PURE__ */ 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__ */ template(`<div class="mt-3 flex items-center justify-between text-xs text-gray-500 dark:text-gray-400"><span>Showing <!$><!/>–<!$><!/> of <!$><!/></span><div class="flex items-center gap-1"><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">◀ Prev</button><span class=px-2>Page <!$><!/> / <!$><!/></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">Next ▶`), _tmpl$24 = /* @__PURE__ */ template(`<button class="px-4 py-1.5 rounded-md bg-gray-100 dark:bg-gray-700 hover:bg-gray-200 dark:hover:bg-gray-600 text-gray-700 dark:text-gray-300 transition-colors"><!$><!/> (<!$><!/> suivant<!$><!/>)`), _tmpl$25 = /* @__PURE__ */ template(`<div class="mt-3 flex flex-col items-center gap-2 text-xs text-gray-500 dark:text-gray-400"><span><!$><!/>–<!$><!/> of <!$><!/></span><!$><!/>`), _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 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$27 = /* @__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 cursor-pointer select-none hover:bg-gray-100 dark:hover:bg-gray-800/50 transition-colors"><span class="inline-flex items-center gap-1"><!$><!/><span class="text-[10px] leading-none">`), _tmpl$28 = /* @__PURE__ */ template(`<span class="ml-2 text-sm font-medium text-gray-500 dark:text-gray-400">`), _tmpl$29 = /* @__PURE__ */ template(`<div class="mt-3 flex items-center"><span><!$><!/> <!$><!/>%`), _tmpl$30 = /* @__PURE__ */ template(`<p class="mt-2 text-xs text-gray-500 dark:text-gray-400">`), _tmpl$31 = /* @__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$32 = /* @__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$33 = /* @__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$34 = /* @__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$35 = /* @__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"loading=lazy>`, true, false, false), _tmpl$36 = /* @__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$37 = /* @__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$38 = /* @__PURE__ */ template(`<p class="text-xs text-gray-500 dark:text-gray-400 truncate">`), _tmpl$39 = /* @__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$40 = /* @__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$41 = /* @__PURE__ */ template(`<span aria-hidden=true>`), _tmpl$42 = /* @__PURE__ */ template(`<a rel="noopener noreferrer"><!$><!/><!$><!/>`), _tmpl$43 = /* @__PURE__ */ template(`<span class="animate-spin h-4 w-4 border-2 border-current border-t-transparent rounded-full"aria-hidden=true>`), _tmpl$44 = /* @__PURE__ */ template(`<button><!$><!/><!$><!/><!$><!/>`), _tmpl$45 = /* @__PURE__ */ template(`<p class="text-xs text-red-600 dark:text-red-400 mt-1">Type: <!$><!/>`), _tmpl$46 = /* @__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$47 = /* @__PURE__ */ template(`<p class="text-xs text-red-500 dark:text-red-500 mt-2">`), _tmpl$48 = /* @__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$49 = /* @__PURE__ */ template(`<li>`), _tmpl$50 = /* @__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$51 = /* @__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$52 = /* @__PURE__ */ template(`<div><div class="grid gap-4"></div><!$><!/>`), _tmpl$53 = /* @__PURE__ */ template(`<div>`);
|
|
23
23
|
function CopyButton(props) {
|
|
24
24
|
const [copied, setCopied] = createSignal(false);
|
|
25
25
|
const handleCopy = async () => {
|
|
@@ -280,6 +280,7 @@ function TableRenderer(props) {
|
|
|
280
280
|
setSortDir("asc");
|
|
281
281
|
}
|
|
282
282
|
setClientPage(0);
|
|
283
|
+
setProgressivePages(1);
|
|
283
284
|
};
|
|
284
285
|
const sortedRows = createMemo(() => {
|
|
285
286
|
var _a;
|
|
@@ -309,18 +310,51 @@ function TableRenderer(props) {
|
|
|
309
310
|
if (sortKey() !== key) return "↕";
|
|
310
311
|
return sortDir() === "asc" ? "↑" : "↓";
|
|
311
312
|
};
|
|
313
|
+
const [searchQuery, setSearchQuery] = createSignal("");
|
|
314
|
+
const [debouncedQuery, setDebouncedQuery] = createSignal("");
|
|
315
|
+
let searchTimer = null;
|
|
316
|
+
const isSearchable = () => tableParams.searchable === true || tableParams.searchable !== false && allRows().length > 10;
|
|
317
|
+
const searchPlaceholder = () => tableParams.searchPlaceholder || "Rechercher dans le tableau...";
|
|
318
|
+
const handleSearch = (value) => {
|
|
319
|
+
setSearchQuery(value);
|
|
320
|
+
if (searchTimer) clearTimeout(searchTimer);
|
|
321
|
+
searchTimer = setTimeout(() => {
|
|
322
|
+
setDebouncedQuery(value);
|
|
323
|
+
setClientPage(0);
|
|
324
|
+
setProgressivePages(1);
|
|
325
|
+
}, 200);
|
|
326
|
+
};
|
|
327
|
+
const normalize = (s) => s.normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase();
|
|
328
|
+
const filteredRows = createMemo(() => {
|
|
329
|
+
const q = normalize(debouncedQuery());
|
|
330
|
+
if (!q) return sortedRows();
|
|
331
|
+
const cols = columns();
|
|
332
|
+
return sortedRows().filter((row) => cols.some((col) => {
|
|
333
|
+
const val = row[col.key];
|
|
334
|
+
if (val == null) return false;
|
|
335
|
+
return normalize(String(val)).includes(q);
|
|
336
|
+
}));
|
|
337
|
+
});
|
|
312
338
|
const clientPageSize = () => tableParams.pageSize ?? 25;
|
|
313
339
|
const hasServerPagination = () => !!tableParams.pagination;
|
|
314
|
-
const
|
|
340
|
+
const isProgressiveMode = () => !!tableParams.showAllLabel;
|
|
341
|
+
const needsClientPagination = () => !hasServerPagination() && clientPageSize() > 0 && filteredRows().length > clientPageSize();
|
|
315
342
|
const [clientPage, setClientPage] = createSignal(tableParams.initialPage ?? 0);
|
|
316
|
-
const
|
|
343
|
+
const [progressivePages, setProgressivePages] = createSignal(1);
|
|
344
|
+
const clientTotalPages = () => needsClientPagination() ? Math.ceil(filteredRows().length / clientPageSize()) : 1;
|
|
317
345
|
const clientVisibleRows = createMemo(() => {
|
|
318
|
-
if (!needsClientPagination()) return
|
|
346
|
+
if (!needsClientPagination()) return filteredRows();
|
|
347
|
+
if (isProgressiveMode()) {
|
|
348
|
+
return filteredRows().slice(0, progressivePages() * clientPageSize());
|
|
349
|
+
}
|
|
319
350
|
const start = clientPage() * clientPageSize();
|
|
320
|
-
return
|
|
351
|
+
return filteredRows().slice(start, start + clientPageSize());
|
|
321
352
|
});
|
|
322
|
-
const clientRangeStart = () => needsClientPagination() ? clientPage() * clientPageSize() + 1 : 1;
|
|
323
|
-
const clientRangeEnd = () => needsClientPagination() ? Math.min((clientPage() + 1) * clientPageSize(),
|
|
353
|
+
const clientRangeStart = () => needsClientPagination() ? isProgressiveMode() ? 1 : clientPage() * clientPageSize() + 1 : 1;
|
|
354
|
+
const clientRangeEnd = () => needsClientPagination() ? isProgressiveMode() ? Math.min(progressivePages() * clientPageSize(), filteredRows().length) : Math.min((clientPage() + 1) * clientPageSize(), filteredRows().length) : filteredRows().length;
|
|
355
|
+
const progressiveHasMore = () => isProgressiveMode() && needsClientPagination() && progressivePages() < clientTotalPages();
|
|
356
|
+
const progressiveRemaining = () => filteredRows().length - progressivePages() * clientPageSize();
|
|
357
|
+
const showMoreLabel = () => tableParams.showAllLabel || "Show more";
|
|
324
358
|
const [virtualizer, setVirtualizer] = createSignal(null);
|
|
325
359
|
const [isVirtualizing, setIsVirtualizing] = createSignal(false);
|
|
326
360
|
const shouldVirtualize = createMemo(() => {
|
|
@@ -514,7 +548,7 @@ ${dataRows}`;
|
|
|
514
548
|
},
|
|
515
549
|
copyLabel: "Copy table (TSV)",
|
|
516
550
|
get children() {
|
|
517
|
-
var _el$29 = getNextElement(_tmpl$
|
|
551
|
+
var _el$29 = getNextElement(_tmpl$26), _el$142 = _el$29.firstChild, [_el$143, _co$35] = getNextMarker(_el$142.nextSibling), _el$44 = _el$143.nextSibling, _el$132 = _el$44.firstChild, [_el$133, _co$30] = getNextMarker(_el$132.nextSibling), _el$134 = _el$133.nextSibling, [_el$135, _co$31] = getNextMarker(_el$134.nextSibling), _el$70 = _el$135.nextSibling, _el$71 = _el$70.firstChild, _el$72 = _el$71.firstChild, _el$73 = _el$72.firstChild, _el$74 = _el$72.nextSibling, [_el$75, _co$14] = getNextMarker(_el$74.nextSibling), _el$136 = _el$70.nextSibling, [_el$137, _co$32] = getNextMarker(_el$136.nextSibling), _el$138 = _el$137.nextSibling, [_el$139, _co$33] = getNextMarker(_el$138.nextSibling), _el$140 = _el$139.nextSibling, [_el$141, _co$34] = getNextMarker(_el$140.nextSibling);
|
|
518
552
|
insert(_el$29, createComponent(Show, {
|
|
519
553
|
when: exportable,
|
|
520
554
|
get fallback() {
|
|
@@ -572,7 +606,7 @@ ${dataRows}`;
|
|
|
572
606
|
runHydrationEvents();
|
|
573
607
|
return _el$30;
|
|
574
608
|
}
|
|
575
|
-
}), _el$
|
|
609
|
+
}), _el$143, _co$35);
|
|
576
610
|
insert(_el$44, createComponent(Show, {
|
|
577
611
|
get when() {
|
|
578
612
|
return tableParams.title;
|
|
@@ -597,18 +631,59 @@ ${dataRows}`;
|
|
|
597
631
|
}), _el$54, _co$1);
|
|
598
632
|
return _el$45;
|
|
599
633
|
}
|
|
600
|
-
}), _el$
|
|
634
|
+
}), _el$133, _co$30);
|
|
635
|
+
insert(_el$44, createComponent(Show, {
|
|
636
|
+
get when() {
|
|
637
|
+
return isSearchable();
|
|
638
|
+
},
|
|
639
|
+
get children() {
|
|
640
|
+
return [(() => {
|
|
641
|
+
var _el$55 = getNextElement(_tmpl$20), _el$56 = _el$55.firstChild, _el$57 = _el$56.nextSibling, _el$59 = _el$57.nextSibling, [_el$60, _co$10] = getNextMarker(_el$59.nextSibling);
|
|
642
|
+
_el$57.$$input = (e) => handleSearch(e.currentTarget.value);
|
|
643
|
+
insert(_el$55, createComponent(Show, {
|
|
644
|
+
get when() {
|
|
645
|
+
return searchQuery();
|
|
646
|
+
},
|
|
647
|
+
get children() {
|
|
648
|
+
var _el$58 = getNextElement(_tmpl$19);
|
|
649
|
+
_el$58.$$click = () => {
|
|
650
|
+
handleSearch("");
|
|
651
|
+
setSearchQuery("");
|
|
652
|
+
setDebouncedQuery("");
|
|
653
|
+
};
|
|
654
|
+
runHydrationEvents();
|
|
655
|
+
return _el$58;
|
|
656
|
+
}
|
|
657
|
+
}), _el$60, _co$10);
|
|
658
|
+
effect(() => setAttribute(_el$57, "placeholder", searchPlaceholder()));
|
|
659
|
+
effect(() => setProperty(_el$57, "value", searchQuery()));
|
|
660
|
+
runHydrationEvents();
|
|
661
|
+
return _el$55;
|
|
662
|
+
})(), createComponent(Show, {
|
|
663
|
+
get when() {
|
|
664
|
+
return memo(() => !!debouncedQuery())() && filteredRows().length !== sortedRows().length;
|
|
665
|
+
},
|
|
666
|
+
get children() {
|
|
667
|
+
var _el$61 = getNextElement(_tmpl$21), _el$64 = _el$61.firstChild, [_el$65, _co$11] = getNextMarker(_el$64.nextSibling), _el$62 = _el$65.nextSibling, _el$66 = _el$62.nextSibling, [_el$67, _co$12] = getNextMarker(_el$66.nextSibling), _el$63 = _el$67.nextSibling, _el$68 = _el$63.nextSibling, [_el$69, _co$13] = getNextMarker(_el$68.nextSibling);
|
|
668
|
+
insert(_el$61, () => filteredRows().length, _el$65, _co$11);
|
|
669
|
+
insert(_el$61, () => filteredRows().length !== 1 ? "s" : "", _el$67, _co$12);
|
|
670
|
+
insert(_el$61, () => sortedRows().length, _el$69, _co$13);
|
|
671
|
+
return _el$61;
|
|
672
|
+
}
|
|
673
|
+
})];
|
|
674
|
+
}
|
|
675
|
+
}), _el$135, _co$31);
|
|
601
676
|
var _ref$ = scrollContainerRef;
|
|
602
|
-
typeof _ref$ === "function" ? use(_ref$, _el$
|
|
603
|
-
insert(_el$
|
|
677
|
+
typeof _ref$ === "function" ? use(_ref$, _el$70) : scrollContainerRef = _el$70;
|
|
678
|
+
insert(_el$73, createComponent(For, {
|
|
604
679
|
get each() {
|
|
605
680
|
return tableParams.columns;
|
|
606
681
|
},
|
|
607
682
|
children: (column) => (() => {
|
|
608
|
-
var _el$
|
|
609
|
-
addEventListener(_el$
|
|
610
|
-
insert(_el$
|
|
611
|
-
insert(_el$
|
|
683
|
+
var _el$144 = getNextElement(_tmpl$27), _el$145 = _el$144.firstChild, _el$147 = _el$145.firstChild, [_el$148, _co$36] = getNextMarker(_el$147.nextSibling), _el$146 = _el$148.nextSibling;
|
|
684
|
+
addEventListener(_el$144, "click", () => handleSort(column.key));
|
|
685
|
+
insert(_el$145, () => column.label, _el$148, _co$36);
|
|
686
|
+
insert(_el$146, () => sortIndicator(column.key));
|
|
612
687
|
effect((_p$) => {
|
|
613
688
|
var _v$11 = column.width ? {
|
|
614
689
|
width: column.width
|
|
@@ -616,19 +691,19 @@ ${dataRows}`;
|
|
|
616
691
|
"opacity-30": sortKey() !== column.key,
|
|
617
692
|
"opacity-100 text-blue-600 dark:text-blue-400": sortKey() === column.key
|
|
618
693
|
};
|
|
619
|
-
_p$.e = style(_el$
|
|
620
|
-
_v$12 !== _p$.t && setAttribute(_el$
|
|
621
|
-
_p$.a = classList(_el$
|
|
694
|
+
_p$.e = style(_el$144, _v$11, _p$.e);
|
|
695
|
+
_v$12 !== _p$.t && setAttribute(_el$144, "title", _p$.t = _v$12);
|
|
696
|
+
_p$.a = classList(_el$146, _v$13, _p$.a);
|
|
622
697
|
return _p$;
|
|
623
698
|
}, {
|
|
624
699
|
e: void 0,
|
|
625
700
|
t: void 0,
|
|
626
701
|
a: void 0
|
|
627
702
|
});
|
|
628
|
-
return _el$
|
|
703
|
+
return _el$144;
|
|
629
704
|
})()
|
|
630
705
|
}));
|
|
631
|
-
insert(_el$
|
|
706
|
+
insert(_el$71, createComponent(Show, {
|
|
632
707
|
get when() {
|
|
633
708
|
return isVirtualizing();
|
|
634
709
|
},
|
|
@@ -638,53 +713,80 @@ ${dataRows}`;
|
|
|
638
713
|
get children() {
|
|
639
714
|
return createComponent(VirtualizedTableBody, {});
|
|
640
715
|
}
|
|
641
|
-
}), _el$
|
|
716
|
+
}), _el$75, _co$14);
|
|
642
717
|
insert(_el$44, createComponent(Show, {
|
|
643
718
|
get when() {
|
|
644
719
|
return tableParams.pagination;
|
|
645
720
|
},
|
|
646
721
|
get children() {
|
|
647
|
-
var _el$
|
|
648
|
-
insert(_el$
|
|
649
|
-
insert(_el$
|
|
650
|
-
insert(_el$
|
|
651
|
-
return _el$
|
|
722
|
+
var _el$76 = getNextElement(_tmpl$22), _el$77 = _el$76.firstChild, _el$78 = _el$77.firstChild, _el$83 = _el$78.nextSibling, [_el$84, _co$15] = getNextMarker(_el$83.nextSibling), _el$79 = _el$84.nextSibling, _el$85 = _el$79.nextSibling, [_el$86, _co$16] = getNextMarker(_el$85.nextSibling), _el$81 = _el$86.nextSibling, _el$87 = _el$81.nextSibling, [_el$88, _co$17] = getNextMarker(_el$87.nextSibling);
|
|
723
|
+
insert(_el$77, () => tableParams.pagination.currentPage * tableParams.pagination.pageSize + 1, _el$84, _co$15);
|
|
724
|
+
insert(_el$77, () => Math.min((tableParams.pagination.currentPage + 1) * tableParams.pagination.pageSize, tableParams.pagination.totalRows), _el$86, _co$16);
|
|
725
|
+
insert(_el$77, () => tableParams.pagination.totalRows, _el$88, _co$17);
|
|
726
|
+
return _el$76;
|
|
652
727
|
}
|
|
653
|
-
}), _el$
|
|
728
|
+
}), _el$137, _co$32);
|
|
654
729
|
insert(_el$44, createComponent(Show, {
|
|
655
730
|
get when() {
|
|
656
|
-
return needsClientPagination();
|
|
731
|
+
return memo(() => !!needsClientPagination())() && !isProgressiveMode();
|
|
657
732
|
},
|
|
658
733
|
get children() {
|
|
659
|
-
var _el$
|
|
660
|
-
insert(_el$
|
|
661
|
-
insert(_el$
|
|
662
|
-
insert(_el$
|
|
663
|
-
_el$
|
|
664
|
-
insert(_el$
|
|
665
|
-
insert(_el$
|
|
666
|
-
_el$
|
|
734
|
+
var _el$89 = getNextElement(_tmpl$23), _el$90 = _el$89.firstChild, _el$91 = _el$90.firstChild, _el$94 = _el$91.nextSibling, [_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), _el$93 = _el$97.nextSibling, _el$98 = _el$93.nextSibling, [_el$99, _co$20] = getNextMarker(_el$98.nextSibling), _el$100 = _el$90.nextSibling, _el$101 = _el$100.firstChild, _el$102 = _el$101.nextSibling, _el$103 = _el$102.firstChild, _el$105 = _el$103.nextSibling, [_el$106, _co$21] = getNextMarker(_el$105.nextSibling), _el$104 = _el$106.nextSibling, _el$107 = _el$104.nextSibling, [_el$108, _co$22] = getNextMarker(_el$107.nextSibling), _el$109 = _el$102.nextSibling;
|
|
735
|
+
insert(_el$90, clientRangeStart, _el$95, _co$18);
|
|
736
|
+
insert(_el$90, clientRangeEnd, _el$97, _co$19);
|
|
737
|
+
insert(_el$90, () => filteredRows().length.toLocaleString("fr-FR"), _el$99, _co$20);
|
|
738
|
+
_el$101.$$click = () => setClientPage((p) => p - 1);
|
|
739
|
+
insert(_el$102, () => clientPage() + 1, _el$106, _co$21);
|
|
740
|
+
insert(_el$102, clientTotalPages, _el$108, _co$22);
|
|
741
|
+
_el$109.$$click = () => setClientPage((p) => p + 1);
|
|
667
742
|
effect((_p$) => {
|
|
668
743
|
var _v$8 = clientPage() === 0, _v$9 = clientPage() >= clientTotalPages() - 1;
|
|
669
|
-
_v$8 !== _p$.e && setProperty(_el$
|
|
670
|
-
_v$9 !== _p$.t && setProperty(_el$
|
|
744
|
+
_v$8 !== _p$.e && setProperty(_el$101, "disabled", _p$.e = _v$8);
|
|
745
|
+
_v$9 !== _p$.t && setProperty(_el$109, "disabled", _p$.t = _v$9);
|
|
671
746
|
return _p$;
|
|
672
747
|
}, {
|
|
673
748
|
e: void 0,
|
|
674
749
|
t: void 0
|
|
675
750
|
});
|
|
676
751
|
runHydrationEvents();
|
|
677
|
-
return _el$
|
|
752
|
+
return _el$89;
|
|
753
|
+
}
|
|
754
|
+
}), _el$139, _co$33);
|
|
755
|
+
insert(_el$44, createComponent(Show, {
|
|
756
|
+
get when() {
|
|
757
|
+
return memo(() => !!needsClientPagination())() && isProgressiveMode();
|
|
758
|
+
},
|
|
759
|
+
get children() {
|
|
760
|
+
var _el$110 = getNextElement(_tmpl$25), _el$111 = _el$110.firstChild, _el$114 = _el$111.firstChild, [_el$115, _co$23] = getNextMarker(_el$114.nextSibling), _el$112 = _el$115.nextSibling, _el$116 = _el$112.nextSibling, [_el$117, _co$24] = getNextMarker(_el$116.nextSibling), _el$113 = _el$117.nextSibling, _el$118 = _el$113.nextSibling, [_el$119, _co$25] = getNextMarker(_el$118.nextSibling), _el$130 = _el$111.nextSibling, [_el$131, _co$29] = getNextMarker(_el$130.nextSibling);
|
|
761
|
+
insert(_el$111, clientRangeStart, _el$115, _co$23);
|
|
762
|
+
insert(_el$111, clientRangeEnd, _el$117, _co$24);
|
|
763
|
+
insert(_el$111, () => filteredRows().length.toLocaleString("fr-FR"), _el$119, _co$25);
|
|
764
|
+
insert(_el$110, createComponent(Show, {
|
|
765
|
+
get when() {
|
|
766
|
+
return progressiveHasMore();
|
|
767
|
+
},
|
|
768
|
+
get children() {
|
|
769
|
+
var _el$120 = getNextElement(_tmpl$24), _el$124 = _el$120.firstChild, [_el$125, _co$26] = getNextMarker(_el$124.nextSibling), _el$121 = _el$125.nextSibling, _el$126 = _el$121.nextSibling, [_el$127, _co$27] = getNextMarker(_el$126.nextSibling), _el$122 = _el$127.nextSibling, _el$128 = _el$122.nextSibling, [_el$129, _co$28] = getNextMarker(_el$128.nextSibling);
|
|
770
|
+
_el$129.nextSibling;
|
|
771
|
+
_el$120.$$click = () => setProgressivePages((p) => p + 1);
|
|
772
|
+
insert(_el$120, showMoreLabel, _el$125, _co$26);
|
|
773
|
+
insert(_el$120, () => Math.min(progressiveRemaining(), clientPageSize()), _el$127, _co$27);
|
|
774
|
+
insert(_el$120, () => Math.min(progressiveRemaining(), clientPageSize()) > 1 ? "es" : "e", _el$129, _co$28);
|
|
775
|
+
runHydrationEvents();
|
|
776
|
+
return _el$120;
|
|
777
|
+
}
|
|
778
|
+
}), _el$131, _co$29);
|
|
779
|
+
return _el$110;
|
|
678
780
|
}
|
|
679
|
-
}), _el$
|
|
781
|
+
}), _el$141, _co$34);
|
|
680
782
|
effect((_p$) => {
|
|
681
783
|
var _v$0 = isVirtualizing() ? {
|
|
682
784
|
"max-height": "500px",
|
|
683
785
|
"overflow-y": "auto"
|
|
684
786
|
} : {}, _v$1 = tableParams.title || "Data table", _v$10 = tableParams.title ? `${tableId}-title` : void 0;
|
|
685
|
-
_p$.e = style(_el$
|
|
686
|
-
_v$1 !== _p$.t && setAttribute(_el$
|
|
687
|
-
_v$10 !== _p$.a && setAttribute(_el$
|
|
787
|
+
_p$.e = style(_el$70, _v$0, _p$.e);
|
|
788
|
+
_v$1 !== _p$.t && setAttribute(_el$70, "aria-label", _p$.t = _v$1);
|
|
789
|
+
_v$10 !== _p$.a && setAttribute(_el$71, "aria-labelledby", _p$.a = _v$10);
|
|
688
790
|
return _p$;
|
|
689
791
|
}, {
|
|
690
792
|
e: void 0,
|
|
@@ -704,51 +806,51 @@ function MetricRenderer(props) {
|
|
|
704
806
|
return `${title}: ${value}${unit ? " " + unit : ""}`;
|
|
705
807
|
};
|
|
706
808
|
return (() => {
|
|
707
|
-
var _el$
|
|
708
|
-
insert(_el$
|
|
809
|
+
var _el$149 = getNextElement(_tmpl$31), _el$171 = _el$149.firstChild, [_el$172, _co$42] = getNextMarker(_el$171.nextSibling), _el$150 = _el$172.nextSibling, _el$151 = _el$150.firstChild, _el$152 = _el$151.firstChild, _el$153 = _el$152.nextSibling, _el$154 = _el$153.firstChild, _el$156 = _el$154.nextSibling, [_el$157, _co$37] = getNextMarker(_el$156.nextSibling), _el$167 = _el$151.nextSibling, [_el$168, _co$40] = getNextMarker(_el$167.nextSibling), _el$169 = _el$168.nextSibling, [_el$170, _co$41] = getNextMarker(_el$169.nextSibling);
|
|
810
|
+
insert(_el$149, createComponent(CopyButton, {
|
|
709
811
|
getText: getMetricText,
|
|
710
812
|
title: "Copy metric",
|
|
711
813
|
position: "top-right"
|
|
712
|
-
}), _el$
|
|
713
|
-
insert(_el$
|
|
714
|
-
insert(_el$
|
|
715
|
-
insert(_el$
|
|
814
|
+
}), _el$172, _co$42);
|
|
815
|
+
insert(_el$152, () => metricParams.title);
|
|
816
|
+
insert(_el$154, () => metricParams.value);
|
|
817
|
+
insert(_el$153, createComponent(Show, {
|
|
716
818
|
get when() {
|
|
717
819
|
return metricParams.unit;
|
|
718
820
|
},
|
|
719
821
|
get children() {
|
|
720
|
-
var _el$
|
|
721
|
-
insert(_el$
|
|
722
|
-
return _el$
|
|
822
|
+
var _el$155 = getNextElement(_tmpl$28);
|
|
823
|
+
insert(_el$155, () => metricParams.unit);
|
|
824
|
+
return _el$155;
|
|
723
825
|
}
|
|
724
|
-
}), _el$
|
|
725
|
-
insert(_el$
|
|
826
|
+
}), _el$157, _co$37);
|
|
827
|
+
insert(_el$150, createComponent(Show, {
|
|
726
828
|
get when() {
|
|
727
829
|
return metricParams.trend;
|
|
728
830
|
},
|
|
729
831
|
get children() {
|
|
730
|
-
var _el$
|
|
731
|
-
_el$
|
|
732
|
-
insert(_el$
|
|
832
|
+
var _el$158 = getNextElement(_tmpl$29), _el$159 = _el$158.firstChild, _el$162 = _el$159.firstChild, [_el$163, _co$38] = getNextMarker(_el$162.nextSibling), _el$160 = _el$163.nextSibling, _el$164 = _el$160.nextSibling, [_el$165, _co$39] = getNextMarker(_el$164.nextSibling);
|
|
833
|
+
_el$165.nextSibling;
|
|
834
|
+
insert(_el$159, (() => {
|
|
733
835
|
var _c$ = memo(() => metricParams.trend.direction === "up");
|
|
734
836
|
return () => _c$() ? "�" : metricParams.trend.direction === "down" ? "�" : "�";
|
|
735
|
-
})(), _el$
|
|
736
|
-
insert(_el$
|
|
737
|
-
effect(() => className(_el$
|
|
738
|
-
return _el$
|
|
837
|
+
})(), _el$163, _co$38);
|
|
838
|
+
insert(_el$159, () => Math.abs(metricParams.trend.value), _el$165, _co$39);
|
|
839
|
+
effect(() => className(_el$159, `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"}`));
|
|
840
|
+
return _el$158;
|
|
739
841
|
}
|
|
740
|
-
}), _el$
|
|
741
|
-
insert(_el$
|
|
842
|
+
}), _el$168, _co$40);
|
|
843
|
+
insert(_el$150, createComponent(Show, {
|
|
742
844
|
get when() {
|
|
743
845
|
return metricParams.subtitle;
|
|
744
846
|
},
|
|
745
847
|
get children() {
|
|
746
|
-
var _el$
|
|
747
|
-
insert(_el$
|
|
748
|
-
return _el$
|
|
848
|
+
var _el$166 = getNextElement(_tmpl$30);
|
|
849
|
+
insert(_el$166, () => metricParams.subtitle);
|
|
850
|
+
return _el$166;
|
|
749
851
|
}
|
|
750
|
-
}), _el$
|
|
751
|
-
return _el$
|
|
852
|
+
}), _el$170, _co$41);
|
|
853
|
+
return _el$149;
|
|
752
854
|
})();
|
|
753
855
|
}
|
|
754
856
|
function extractImageFromMarkdown(content) {
|
|
@@ -789,62 +891,62 @@ function TextRenderer(props) {
|
|
|
789
891
|
},
|
|
790
892
|
get fallback() {
|
|
791
893
|
return (() => {
|
|
792
|
-
var _el$
|
|
793
|
-
insert(_el$
|
|
894
|
+
var _el$173 = getNextElement(_tmpl$32), _el$175 = _el$173.firstChild, [_el$176, _co$43] = getNextMarker(_el$175.nextSibling), _el$174 = _el$176.nextSibling;
|
|
895
|
+
insert(_el$173, createComponent(CopyButton, {
|
|
794
896
|
getText: getTextContent,
|
|
795
897
|
title: "Copy text",
|
|
796
898
|
position: "top-right"
|
|
797
|
-
}), _el$
|
|
899
|
+
}), _el$176, _co$43);
|
|
798
900
|
effect((_p$) => {
|
|
799
901
|
var _v$14 = `prose prose-sm dark:prose-invert max-w-none ${textParams.className || ""}`, _v$15 = htmlContent();
|
|
800
|
-
_v$14 !== _p$.e && className(_el$
|
|
801
|
-
_v$15 !== _p$.t && setProperty(_el$
|
|
902
|
+
_v$14 !== _p$.e && className(_el$174, _p$.e = _v$14);
|
|
903
|
+
_v$15 !== _p$.t && setProperty(_el$174, "innerHTML", _p$.t = _v$15);
|
|
802
904
|
return _p$;
|
|
803
905
|
}, {
|
|
804
906
|
e: void 0,
|
|
805
907
|
t: void 0
|
|
806
908
|
});
|
|
807
|
-
return _el$
|
|
909
|
+
return _el$173;
|
|
808
910
|
})();
|
|
809
911
|
},
|
|
810
912
|
children: (data) => (() => {
|
|
811
|
-
var _el$
|
|
812
|
-
insert(_el$
|
|
913
|
+
var _el$177 = getNextElement(_tmpl$33), _el$178 = _el$177.firstChild, _el$179 = _el$178.firstChild, _el$180 = _el$179.firstChild, _el$181 = _el$178.nextSibling, _el$182 = _el$181.firstChild;
|
|
914
|
+
insert(_el$182, () => data().credit);
|
|
813
915
|
effect((_p$) => {
|
|
814
916
|
var _v$16 = data().linkUrl, _v$17 = data().imageUrl, _v$18 = data().alt;
|
|
815
|
-
_v$16 !== _p$.e && setAttribute(_el$
|
|
816
|
-
_v$17 !== _p$.t && setAttribute(_el$
|
|
817
|
-
_v$18 !== _p$.a && setAttribute(_el$
|
|
917
|
+
_v$16 !== _p$.e && setAttribute(_el$179, "href", _p$.e = _v$16);
|
|
918
|
+
_v$17 !== _p$.t && setAttribute(_el$180, "src", _p$.t = _v$17);
|
|
919
|
+
_v$18 !== _p$.a && setAttribute(_el$180, "alt", _p$.a = _v$18);
|
|
818
920
|
return _p$;
|
|
819
921
|
}, {
|
|
820
922
|
e: void 0,
|
|
821
923
|
t: void 0,
|
|
822
924
|
a: void 0
|
|
823
925
|
});
|
|
824
|
-
return _el$
|
|
926
|
+
return _el$177;
|
|
825
927
|
})()
|
|
826
928
|
});
|
|
827
929
|
}
|
|
828
930
|
function IframeRenderer(props) {
|
|
829
931
|
const params = props.component.params;
|
|
830
932
|
return (() => {
|
|
831
|
-
var _el$
|
|
832
|
-
insert(_el$
|
|
933
|
+
var _el$183 = getNextElement(_tmpl$35), _el$187 = _el$183.firstChild, [_el$188, _co$44] = getNextMarker(_el$187.nextSibling), _el$186 = _el$188.nextSibling;
|
|
934
|
+
insert(_el$183, createComponent(Show, {
|
|
833
935
|
get when() {
|
|
834
936
|
return params.title;
|
|
835
937
|
},
|
|
836
938
|
get children() {
|
|
837
|
-
var _el$
|
|
838
|
-
insert(_el$
|
|
839
|
-
return _el$
|
|
939
|
+
var _el$184 = getNextElement(_tmpl$34), _el$185 = _el$184.firstChild;
|
|
940
|
+
insert(_el$185, () => params.title);
|
|
941
|
+
return _el$184;
|
|
840
942
|
}
|
|
841
|
-
}), _el$
|
|
943
|
+
}), _el$188, _co$44);
|
|
842
944
|
effect((_p$) => {
|
|
843
945
|
var _v$19 = params.url, _v$20 = params.title || "Embedded content", _v$21 = `height: ${params.height || "400px"}; min-height: 300px;`, _v$22 = getIframeSandbox(params.url);
|
|
844
|
-
_v$19 !== _p$.e && setAttribute(_el$
|
|
845
|
-
_v$20 !== _p$.t && setAttribute(_el$
|
|
846
|
-
_p$.a = style(_el$
|
|
847
|
-
_v$22 !== _p$.o && setAttribute(_el$
|
|
946
|
+
_v$19 !== _p$.e && setAttribute(_el$186, "src", _p$.e = _v$19);
|
|
947
|
+
_v$20 !== _p$.t && setAttribute(_el$186, "title", _p$.t = _v$20);
|
|
948
|
+
_p$.a = style(_el$186, _v$21, _p$.a);
|
|
949
|
+
_v$22 !== _p$.o && setAttribute(_el$186, "sandbox", _p$.o = _v$22);
|
|
848
950
|
return _p$;
|
|
849
951
|
}, {
|
|
850
952
|
e: void 0,
|
|
@@ -852,30 +954,30 @@ function IframeRenderer(props) {
|
|
|
852
954
|
a: void 0,
|
|
853
955
|
o: void 0
|
|
854
956
|
});
|
|
855
|
-
return _el$
|
|
957
|
+
return _el$183;
|
|
856
958
|
})();
|
|
857
959
|
}
|
|
858
960
|
function ImageRenderer(props) {
|
|
859
961
|
const params = props.component.params;
|
|
860
962
|
return (() => {
|
|
861
|
-
var _el$
|
|
862
|
-
insert(_el$
|
|
963
|
+
var _el$189 = getNextElement(_tmpl$37), _el$190 = _el$189.firstChild, _el$191 = _el$190.firstChild, _el$192 = _el$191.firstChild, _el$195 = _el$190.nextSibling, [_el$196, _co$45] = getNextMarker(_el$195.nextSibling);
|
|
964
|
+
insert(_el$189, createComponent(Show, {
|
|
863
965
|
get when() {
|
|
864
966
|
return params.caption;
|
|
865
967
|
},
|
|
866
968
|
get children() {
|
|
867
|
-
var _el$
|
|
868
|
-
insert(_el$
|
|
869
|
-
return _el$
|
|
969
|
+
var _el$193 = getNextElement(_tmpl$36), _el$194 = _el$193.firstChild;
|
|
970
|
+
insert(_el$194, () => params.caption);
|
|
971
|
+
return _el$193;
|
|
870
972
|
}
|
|
871
|
-
}), _el$
|
|
973
|
+
}), _el$196, _co$45);
|
|
872
974
|
effect((_p$) => {
|
|
873
975
|
var _v$23 = `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$24 = params.url, _v$25 = `View full size: ${params.alt || "image"}`, _v$26 = params.url, _v$27 = params.alt || "Image";
|
|
874
|
-
_v$23 !== _p$.e && className(_el$
|
|
875
|
-
_v$24 !== _p$.t && setAttribute(_el$
|
|
876
|
-
_v$25 !== _p$.a && setAttribute(_el$
|
|
877
|
-
_v$26 !== _p$.o && setAttribute(_el$
|
|
878
|
-
_v$27 !== _p$.i && setAttribute(_el$
|
|
976
|
+
_v$23 !== _p$.e && className(_el$189, _p$.e = _v$23);
|
|
977
|
+
_v$24 !== _p$.t && setAttribute(_el$191, "href", _p$.t = _v$24);
|
|
978
|
+
_v$25 !== _p$.a && setAttribute(_el$191, "aria-label", _p$.a = _v$25);
|
|
979
|
+
_v$26 !== _p$.o && setAttribute(_el$192, "src", _p$.o = _v$26);
|
|
980
|
+
_v$27 !== _p$.i && setAttribute(_el$192, "alt", _p$.i = _v$27);
|
|
879
981
|
return _p$;
|
|
880
982
|
}, {
|
|
881
983
|
e: void 0,
|
|
@@ -884,30 +986,30 @@ function ImageRenderer(props) {
|
|
|
884
986
|
o: void 0,
|
|
885
987
|
i: void 0
|
|
886
988
|
});
|
|
887
|
-
return _el$
|
|
989
|
+
return _el$189;
|
|
888
990
|
})();
|
|
889
991
|
}
|
|
890
992
|
function LinkRenderer(props) {
|
|
891
993
|
const params = props.component.params;
|
|
892
994
|
return (() => {
|
|
893
|
-
var _el$
|
|
894
|
-
_el$
|
|
895
|
-
insert(_el$
|
|
896
|
-
insert(_el$
|
|
995
|
+
var _el$197 = getNextElement(_tmpl$39), _el$198 = _el$197.firstChild, _el$199 = _el$198.nextSibling, _el$200 = _el$199.firstChild, _el$202 = _el$200.nextSibling, [_el$203, _co$46] = getNextMarker(_el$202.nextSibling);
|
|
996
|
+
_el$197.$$click = (e) => e.stopPropagation();
|
|
997
|
+
insert(_el$200, () => params.label || params.url);
|
|
998
|
+
insert(_el$199, createComponent(Show, {
|
|
897
999
|
get when() {
|
|
898
1000
|
return params.description;
|
|
899
1001
|
},
|
|
900
1002
|
get children() {
|
|
901
|
-
var _el$
|
|
902
|
-
insert(_el$
|
|
903
|
-
return _el$
|
|
1003
|
+
var _el$201 = getNextElement(_tmpl$38);
|
|
1004
|
+
insert(_el$201, () => params.description);
|
|
1005
|
+
return _el$201;
|
|
904
1006
|
}
|
|
905
|
-
}), _el$
|
|
1007
|
+
}), _el$203, _co$46);
|
|
906
1008
|
effect((_p$) => {
|
|
907
1009
|
var _v$28 = params.url, _v$29 = `${params.label || "Link"}: ${params.description || params.url} (opens in new tab)`, _v$30 = `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 || ""}`;
|
|
908
|
-
_v$28 !== _p$.e && setAttribute(_el$
|
|
909
|
-
_v$29 !== _p$.t && setAttribute(_el$
|
|
910
|
-
_v$30 !== _p$.a && className(_el$
|
|
1010
|
+
_v$28 !== _p$.e && setAttribute(_el$197, "href", _p$.e = _v$28);
|
|
1011
|
+
_v$29 !== _p$.t && setAttribute(_el$197, "aria-label", _p$.t = _v$29);
|
|
1012
|
+
_v$30 !== _p$.a && className(_el$197, _p$.a = _v$30);
|
|
911
1013
|
return _p$;
|
|
912
1014
|
}, {
|
|
913
1015
|
e: void 0,
|
|
@@ -915,7 +1017,7 @@ function LinkRenderer(props) {
|
|
|
915
1017
|
a: void 0
|
|
916
1018
|
});
|
|
917
1019
|
runHydrationEvents();
|
|
918
|
-
return _el$
|
|
1020
|
+
return _el$197;
|
|
919
1021
|
})();
|
|
920
1022
|
}
|
|
921
1023
|
function ComponentRenderer(props) {
|
|
@@ -929,12 +1031,12 @@ function ComponentRenderer(props) {
|
|
|
929
1031
|
details: validation.errors
|
|
930
1032
|
});
|
|
931
1033
|
return (() => {
|
|
932
|
-
var _el$
|
|
933
|
-
insert(_el$
|
|
1034
|
+
var _el$204 = getNextElement(_tmpl$40), _el$205 = _el$204.firstChild, _el$206 = _el$205.nextSibling;
|
|
1035
|
+
insert(_el$206, () => {
|
|
934
1036
|
var _a2, _b;
|
|
935
1037
|
return ((_b = (_a2 = validation.errors) == null ? void 0 : _a2[0]) == null ? void 0 : _b.message) || "Unknown validation error";
|
|
936
1038
|
});
|
|
937
|
-
return _el$
|
|
1039
|
+
return _el$204;
|
|
938
1040
|
})();
|
|
939
1041
|
}
|
|
940
1042
|
return createComponent(GenerativeUIErrorBoundary, {
|
|
@@ -1180,27 +1282,27 @@ function ActionRenderer(props) {
|
|
|
1180
1282
|
const isDisabled = () => params.disabled || params.action === "tool-call" && isExecuting();
|
|
1181
1283
|
if (params.type === "link" || params.action === "link") {
|
|
1182
1284
|
return (() => {
|
|
1183
|
-
var _el$
|
|
1184
|
-
_el$
|
|
1185
|
-
insert(_el$
|
|
1285
|
+
var _el$207 = getNextElement(_tmpl$42), _el$209 = _el$207.firstChild, [_el$210, _co$47] = getNextMarker(_el$209.nextSibling), _el$211 = _el$210.nextSibling, [_el$212, _co$48] = getNextMarker(_el$211.nextSibling);
|
|
1286
|
+
_el$207.$$click = handleClick;
|
|
1287
|
+
insert(_el$207, createComponent(Show, {
|
|
1186
1288
|
get when() {
|
|
1187
1289
|
return params.icon;
|
|
1188
1290
|
},
|
|
1189
1291
|
get children() {
|
|
1190
|
-
var _el$
|
|
1191
|
-
insert(_el$
|
|
1192
|
-
return _el$
|
|
1292
|
+
var _el$208 = getNextElement(_tmpl$41);
|
|
1293
|
+
insert(_el$208, () => params.icon);
|
|
1294
|
+
return _el$208;
|
|
1193
1295
|
}
|
|
1194
|
-
}), _el$
|
|
1195
|
-
insert(_el$
|
|
1296
|
+
}), _el$210, _co$47);
|
|
1297
|
+
insert(_el$207, () => params.label, _el$212, _co$48);
|
|
1196
1298
|
effect((_p$) => {
|
|
1197
1299
|
var _v$31 = params.url || "#", _v$32 = params.url ? "_blank" : void 0, _v$33 = params.ariaLabel || params.label, _v$34 = `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
|
|
1198
1300
|
${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"}
|
|
1199
1301
|
${params.className || ""}`;
|
|
1200
|
-
_v$31 !== _p$.e && setAttribute(_el$
|
|
1201
|
-
_v$32 !== _p$.t && setAttribute(_el$
|
|
1202
|
-
_v$33 !== _p$.a && setAttribute(_el$
|
|
1203
|
-
_v$34 !== _p$.o && className(_el$
|
|
1302
|
+
_v$31 !== _p$.e && setAttribute(_el$207, "href", _p$.e = _v$31);
|
|
1303
|
+
_v$32 !== _p$.t && setAttribute(_el$207, "target", _p$.t = _v$32);
|
|
1304
|
+
_v$33 !== _p$.a && setAttribute(_el$207, "aria-label", _p$.a = _v$33);
|
|
1305
|
+
_v$34 !== _p$.o && className(_el$207, _p$.o = _v$34);
|
|
1204
1306
|
return _p$;
|
|
1205
1307
|
}, {
|
|
1206
1308
|
e: void 0,
|
|
@@ -1209,42 +1311,42 @@ function ActionRenderer(props) {
|
|
|
1209
1311
|
o: void 0
|
|
1210
1312
|
});
|
|
1211
1313
|
runHydrationEvents();
|
|
1212
|
-
return _el$
|
|
1314
|
+
return _el$207;
|
|
1213
1315
|
})();
|
|
1214
1316
|
}
|
|
1215
1317
|
return (() => {
|
|
1216
|
-
var _el$
|
|
1217
|
-
_el$
|
|
1218
|
-
insert(_el$
|
|
1318
|
+
var _el$213 = getNextElement(_tmpl$44), _el$216 = _el$213.firstChild, [_el$217, _co$49] = getNextMarker(_el$216.nextSibling), _el$218 = _el$217.nextSibling, [_el$219, _co$50] = getNextMarker(_el$218.nextSibling), _el$220 = _el$219.nextSibling, [_el$221, _co$51] = getNextMarker(_el$220.nextSibling);
|
|
1319
|
+
_el$213.$$click = handleClick;
|
|
1320
|
+
insert(_el$213, createComponent(Show, {
|
|
1219
1321
|
get when() {
|
|
1220
1322
|
return memo(() => !!isExecuting())() && params.action === "tool-call";
|
|
1221
1323
|
},
|
|
1222
1324
|
get children() {
|
|
1223
|
-
return getNextElement(_tmpl$
|
|
1325
|
+
return getNextElement(_tmpl$43);
|
|
1224
1326
|
}
|
|
1225
|
-
}), _el$
|
|
1226
|
-
insert(_el$
|
|
1327
|
+
}), _el$217, _co$49);
|
|
1328
|
+
insert(_el$213, createComponent(Show, {
|
|
1227
1329
|
get when() {
|
|
1228
1330
|
return memo(() => !!params.icon)() && !(isExecuting() && params.action === "tool-call");
|
|
1229
1331
|
},
|
|
1230
1332
|
get children() {
|
|
1231
|
-
var _el$
|
|
1232
|
-
insert(_el$
|
|
1233
|
-
return _el$
|
|
1333
|
+
var _el$215 = getNextElement(_tmpl$41);
|
|
1334
|
+
insert(_el$215, () => params.icon);
|
|
1335
|
+
return _el$215;
|
|
1234
1336
|
}
|
|
1235
|
-
}), _el$
|
|
1236
|
-
insert(_el$
|
|
1337
|
+
}), _el$219, _co$50);
|
|
1338
|
+
insert(_el$213, () => params.label, _el$221, _co$51);
|
|
1237
1339
|
effect((_p$) => {
|
|
1238
1340
|
var _v$35 = params.action === "submit" ? "submit" : "button", _v$36 = isDisabled(), _v$37 = isExecuting() && params.action === "tool-call", _v$38 = params.ariaLabel || params.label, _v$39 = `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
|
|
1239
1341
|
${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"}
|
|
1240
1342
|
${isDisabled() ? "opacity-50 cursor-not-allowed" : ""}
|
|
1241
1343
|
${params.size === "sm" ? "px-3 py-1.5 text-xs" : params.size === "lg" ? "px-6 py-3 text-base" : ""}
|
|
1242
1344
|
${params.className || ""}`;
|
|
1243
|
-
_v$35 !== _p$.e && setAttribute(_el$
|
|
1244
|
-
_v$36 !== _p$.t && setProperty(_el$
|
|
1245
|
-
_v$37 !== _p$.a && setAttribute(_el$
|
|
1246
|
-
_v$38 !== _p$.o && setAttribute(_el$
|
|
1247
|
-
_v$39 !== _p$.i && className(_el$
|
|
1345
|
+
_v$35 !== _p$.e && setAttribute(_el$213, "type", _p$.e = _v$35);
|
|
1346
|
+
_v$36 !== _p$.t && setProperty(_el$213, "disabled", _p$.t = _v$36);
|
|
1347
|
+
_v$37 !== _p$.a && setAttribute(_el$213, "aria-busy", _p$.a = _v$37);
|
|
1348
|
+
_v$38 !== _p$.o && setAttribute(_el$213, "aria-label", _p$.o = _v$38);
|
|
1349
|
+
_v$39 !== _p$.i && className(_el$213, _p$.i = _v$39);
|
|
1248
1350
|
return _p$;
|
|
1249
1351
|
}, {
|
|
1250
1352
|
e: void 0,
|
|
@@ -1254,7 +1356,7 @@ function ActionRenderer(props) {
|
|
|
1254
1356
|
i: void 0
|
|
1255
1357
|
});
|
|
1256
1358
|
runHydrationEvents();
|
|
1257
|
-
return _el$
|
|
1359
|
+
return _el$213;
|
|
1258
1360
|
})();
|
|
1259
1361
|
}
|
|
1260
1362
|
function ErrorCardRenderer(props) {
|
|
@@ -1262,55 +1364,55 @@ function ErrorCardRenderer(props) {
|
|
|
1262
1364
|
return `Error in ${props.error.tool || "unknown tool"}: ${props.error.message || "Unknown error"}`;
|
|
1263
1365
|
};
|
|
1264
1366
|
return (() => {
|
|
1265
|
-
var _el$
|
|
1266
|
-
insert(_el$
|
|
1367
|
+
var _el$222 = getNextElement(_tmpl$48), _el$245 = _el$222.firstChild, [_el$246, _co$57] = getNextMarker(_el$245.nextSibling), _el$223 = _el$246.nextSibling, _el$224 = _el$223.firstChild, _el$225 = _el$224.nextSibling, _el$226 = _el$225.firstChild, _el$227 = _el$226.firstChild, _el$228 = _el$227.nextSibling, [_el$229, _co$52] = getNextMarker(_el$228.nextSibling), _el$230 = _el$226.nextSibling, _el$239 = _el$230.nextSibling, [_el$240, _co$54] = getNextMarker(_el$239.nextSibling), _el$241 = _el$240.nextSibling, [_el$242, _co$55] = getNextMarker(_el$241.nextSibling), _el$243 = _el$242.nextSibling, [_el$244, _co$56] = getNextMarker(_el$243.nextSibling);
|
|
1368
|
+
insert(_el$222, createComponent(CopyButton, {
|
|
1267
1369
|
getText: getErrorText,
|
|
1268
1370
|
title: "Copy error details",
|
|
1269
1371
|
position: "top-right"
|
|
1270
|
-
}), _el$
|
|
1271
|
-
insert(_el$
|
|
1272
|
-
insert(_el$
|
|
1273
|
-
insert(_el$
|
|
1372
|
+
}), _el$246, _co$57);
|
|
1373
|
+
insert(_el$226, () => props.error.tool || "Unknown", _el$229, _co$52);
|
|
1374
|
+
insert(_el$230, () => props.error.message || "An error occurred during tool execution");
|
|
1375
|
+
insert(_el$225, createComponent(Show, {
|
|
1274
1376
|
get when() {
|
|
1275
1377
|
return props.error.type;
|
|
1276
1378
|
},
|
|
1277
1379
|
get children() {
|
|
1278
|
-
var _el$
|
|
1279
|
-
insert(_el$
|
|
1280
|
-
return _el$
|
|
1380
|
+
var _el$231 = getNextElement(_tmpl$45), _el$232 = _el$231.firstChild, _el$233 = _el$232.nextSibling, [_el$234, _co$53] = getNextMarker(_el$233.nextSibling);
|
|
1381
|
+
insert(_el$231, () => props.error.type, _el$234, _co$53);
|
|
1382
|
+
return _el$231;
|
|
1281
1383
|
}
|
|
1282
|
-
}), _el$
|
|
1283
|
-
insert(_el$
|
|
1384
|
+
}), _el$240, _co$54);
|
|
1385
|
+
insert(_el$225, createComponent(Show, {
|
|
1284
1386
|
get when() {
|
|
1285
1387
|
var _a;
|
|
1286
1388
|
return (_a = props.error.suggestions) == null ? void 0 : _a.length;
|
|
1287
1389
|
},
|
|
1288
1390
|
get children() {
|
|
1289
|
-
var _el$
|
|
1290
|
-
insert(_el$
|
|
1391
|
+
var _el$235 = getNextElement(_tmpl$46), _el$236 = _el$235.firstChild, _el$237 = _el$236.nextSibling;
|
|
1392
|
+
insert(_el$237, createComponent(For, {
|
|
1291
1393
|
get each() {
|
|
1292
1394
|
return props.error.suggestions;
|
|
1293
1395
|
},
|
|
1294
1396
|
children: (suggestion) => (() => {
|
|
1295
|
-
var _el$
|
|
1296
|
-
insert(_el$
|
|
1297
|
-
return _el$
|
|
1397
|
+
var _el$247 = getNextElement(_tmpl$49);
|
|
1398
|
+
insert(_el$247, suggestion);
|
|
1399
|
+
return _el$247;
|
|
1298
1400
|
})()
|
|
1299
1401
|
}));
|
|
1300
|
-
return _el$
|
|
1402
|
+
return _el$235;
|
|
1301
1403
|
}
|
|
1302
|
-
}), _el$
|
|
1303
|
-
insert(_el$
|
|
1404
|
+
}), _el$242, _co$55);
|
|
1405
|
+
insert(_el$225, createComponent(Show, {
|
|
1304
1406
|
get when() {
|
|
1305
1407
|
return props.error.timestamp;
|
|
1306
1408
|
},
|
|
1307
1409
|
get children() {
|
|
1308
|
-
var _el$
|
|
1309
|
-
insert(_el$
|
|
1310
|
-
return _el$
|
|
1410
|
+
var _el$238 = getNextElement(_tmpl$47);
|
|
1411
|
+
insert(_el$238, () => new Date(props.error.timestamp).toLocaleString());
|
|
1412
|
+
return _el$238;
|
|
1311
1413
|
}
|
|
1312
|
-
}), _el$
|
|
1313
|
-
return _el$
|
|
1414
|
+
}), _el$244, _co$56);
|
|
1415
|
+
return _el$222;
|
|
1314
1416
|
})();
|
|
1315
1417
|
}
|
|
1316
1418
|
function isErrorResponse(content) {
|
|
@@ -1333,20 +1435,20 @@ function UIResourceHtmlRenderer(props) {
|
|
|
1333
1435
|
return ((_a = props.resource.metadata) == null ? void 0 : _a.title) || ((_b = props.resource.uri) == null ? void 0 : _b.replace("ui://deposium/", "")) || "Resource";
|
|
1334
1436
|
};
|
|
1335
1437
|
return (() => {
|
|
1336
|
-
var _el$
|
|
1337
|
-
insert(_el$
|
|
1438
|
+
var _el$248 = getNextElement(_tmpl$51), _el$252 = _el$248.firstChild, [_el$253, _co$58] = getNextMarker(_el$252.nextSibling), _el$251 = _el$253.nextSibling;
|
|
1439
|
+
insert(_el$248, createComponent(Show, {
|
|
1338
1440
|
get when() {
|
|
1339
1441
|
var _a;
|
|
1340
1442
|
return ((_a = props.resource.metadata) == null ? void 0 : _a.title) || props.resource.uri;
|
|
1341
1443
|
},
|
|
1342
1444
|
get children() {
|
|
1343
|
-
var _el$
|
|
1344
|
-
insert(_el$
|
|
1345
|
-
return _el$
|
|
1445
|
+
var _el$249 = getNextElement(_tmpl$50), _el$250 = _el$249.firstChild;
|
|
1446
|
+
insert(_el$250, resourceTitle);
|
|
1447
|
+
return _el$249;
|
|
1346
1448
|
}
|
|
1347
|
-
}), _el$
|
|
1348
|
-
effect(() => setProperty(_el$
|
|
1349
|
-
return _el$
|
|
1449
|
+
}), _el$253, _co$58);
|
|
1450
|
+
effect(() => setProperty(_el$251, "innerHTML", htmlContent()));
|
|
1451
|
+
return _el$248;
|
|
1350
1452
|
})();
|
|
1351
1453
|
}
|
|
1352
1454
|
const UIResourceRenderer = (props) => {
|
|
@@ -1426,24 +1528,24 @@ const UIResourceRenderer = (props) => {
|
|
|
1426
1528
|
return createComponent(RenderProvider, {
|
|
1427
1529
|
renderComponent,
|
|
1428
1530
|
get children() {
|
|
1429
|
-
var _el$
|
|
1430
|
-
insert(_el$
|
|
1531
|
+
var _el$254 = getNextElement(_tmpl$52), _el$255 = _el$254.firstChild, _el$256 = _el$255.nextSibling, [_el$257, _co$59] = getNextMarker(_el$256.nextSibling);
|
|
1532
|
+
insert(_el$255, createComponent(For, {
|
|
1431
1533
|
get each() {
|
|
1432
1534
|
return layoutData.components;
|
|
1433
1535
|
},
|
|
1434
1536
|
children: (component) => (() => {
|
|
1435
|
-
var _el$
|
|
1436
|
-
insert(_el$
|
|
1537
|
+
var _el$258 = getNextElement(_tmpl$53);
|
|
1538
|
+
insert(_el$258, createComponent(ComponentRenderer, {
|
|
1437
1539
|
component,
|
|
1438
1540
|
get onError() {
|
|
1439
1541
|
return props.onError;
|
|
1440
1542
|
}
|
|
1441
1543
|
}));
|
|
1442
|
-
effect((_$p) => style(_el$
|
|
1443
|
-
return _el$
|
|
1544
|
+
effect((_$p) => style(_el$258, getGridStyleString(component), _$p));
|
|
1545
|
+
return _el$258;
|
|
1444
1546
|
})()
|
|
1445
1547
|
}));
|
|
1446
|
-
insert(_el$
|
|
1548
|
+
insert(_el$254, createComponent(Show, {
|
|
1447
1549
|
get when() {
|
|
1448
1550
|
return shouldShowAutoFooter();
|
|
1449
1551
|
},
|
|
@@ -1454,21 +1556,21 @@ const UIResourceRenderer = (props) => {
|
|
|
1454
1556
|
}
|
|
1455
1557
|
});
|
|
1456
1558
|
}
|
|
1457
|
-
}), _el$
|
|
1559
|
+
}), _el$257, _co$59);
|
|
1458
1560
|
effect((_p$) => {
|
|
1459
1561
|
var _v$40 = `w-full ${props.class || ""}`, _v$41 = gridContainerStyle();
|
|
1460
|
-
_v$40 !== _p$.e && className(_el$
|
|
1461
|
-
_p$.t = style(_el$
|
|
1562
|
+
_v$40 !== _p$.e && className(_el$254, _p$.e = _v$40);
|
|
1563
|
+
_p$.t = style(_el$255, _v$41, _p$.t);
|
|
1462
1564
|
return _p$;
|
|
1463
1565
|
}, {
|
|
1464
1566
|
e: void 0,
|
|
1465
1567
|
t: void 0
|
|
1466
1568
|
});
|
|
1467
|
-
return _el$
|
|
1569
|
+
return _el$254;
|
|
1468
1570
|
}
|
|
1469
1571
|
});
|
|
1470
1572
|
};
|
|
1471
|
-
delegateEvents(["click"]);
|
|
1573
|
+
delegateEvents(["click", "input"]);
|
|
1472
1574
|
export {
|
|
1473
1575
|
UIResourceRenderer,
|
|
1474
1576
|
renderCellValue
|