@seed-ship/mcp-ui-solid 4.3.2 → 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 +15 -0
- package/dist/components/UIResourceRenderer.cjs +274 -208
- package/dist/components/UIResourceRenderer.cjs.map +1 -1
- package/dist/components/UIResourceRenderer.d.ts.map +1 -1
- package/dist/components/UIResourceRenderer.js +274 -208
- package/dist/components/UIResourceRenderer.js.map +1 -1
- package/package.json +1 -1
- package/src/components/UIResourceRenderer.tsx +72 -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(`<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$22 = /* @__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$23 = /* @__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$24 = /* @__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$25 = /* @__PURE__ */ template(`<span class="ml-2 text-sm font-medium text-gray-500 dark:text-gray-400">`), _tmpl$26 = /* @__PURE__ */ template(`<div class="mt-3 flex items-center"><span><!$><!/> <!$><!/>%`), _tmpl$27 = /* @__PURE__ */ template(`<p class="mt-2 text-xs text-gray-500 dark:text-gray-400">`), _tmpl$28 = /* @__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$29 = /* @__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$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"><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$31 = /* @__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$32 = /* @__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$33 = /* @__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$34 = /* @__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$35 = /* @__PURE__ */ template(`<p class="text-xs text-gray-500 dark:text-gray-400 truncate">`), _tmpl$36 = /* @__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$37 = /* @__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$38 = /* @__PURE__ */ template(`<span aria-hidden=true>`), _tmpl$39 = /* @__PURE__ */ template(`<a rel="noopener noreferrer"><!$><!/><!$><!/>`), _tmpl$40 = /* @__PURE__ */ template(`<span class="animate-spin h-4 w-4 border-2 border-current border-t-transparent rounded-full"aria-hidden=true>`), _tmpl$41 = /* @__PURE__ */ template(`<button><!$><!/><!$><!/><!$><!/>`), _tmpl$42 = /* @__PURE__ */ template(`<p class="text-xs text-red-600 dark:text-red-400 mt-1">Type: <!$><!/>`), _tmpl$43 = /* @__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$44 = /* @__PURE__ */ template(`<p class="text-xs text-red-500 dark:text-red-500 mt-2">`), _tmpl$45 = /* @__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$46 = /* @__PURE__ */ template(`<li>`), _tmpl$47 = /* @__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$48 = /* @__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$49 = /* @__PURE__ */ template(`<div><div class="grid gap-4"></div><!$><!/>`), _tmpl$50 = /* @__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 () => {
|
|
@@ -310,25 +310,50 @@ function TableRenderer(props) {
|
|
|
310
310
|
if (sortKey() !== key) return "↕";
|
|
311
311
|
return sortDir() === "asc" ? "↑" : "↓";
|
|
312
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
|
+
});
|
|
313
338
|
const clientPageSize = () => tableParams.pageSize ?? 25;
|
|
314
339
|
const hasServerPagination = () => !!tableParams.pagination;
|
|
315
340
|
const isProgressiveMode = () => !!tableParams.showAllLabel;
|
|
316
|
-
const needsClientPagination = () => !hasServerPagination() && clientPageSize() > 0 &&
|
|
341
|
+
const needsClientPagination = () => !hasServerPagination() && clientPageSize() > 0 && filteredRows().length > clientPageSize();
|
|
317
342
|
const [clientPage, setClientPage] = createSignal(tableParams.initialPage ?? 0);
|
|
318
343
|
const [progressivePages, setProgressivePages] = createSignal(1);
|
|
319
|
-
const clientTotalPages = () => needsClientPagination() ? Math.ceil(
|
|
344
|
+
const clientTotalPages = () => needsClientPagination() ? Math.ceil(filteredRows().length / clientPageSize()) : 1;
|
|
320
345
|
const clientVisibleRows = createMemo(() => {
|
|
321
|
-
if (!needsClientPagination()) return
|
|
346
|
+
if (!needsClientPagination()) return filteredRows();
|
|
322
347
|
if (isProgressiveMode()) {
|
|
323
|
-
return
|
|
348
|
+
return filteredRows().slice(0, progressivePages() * clientPageSize());
|
|
324
349
|
}
|
|
325
350
|
const start = clientPage() * clientPageSize();
|
|
326
|
-
return
|
|
351
|
+
return filteredRows().slice(start, start + clientPageSize());
|
|
327
352
|
});
|
|
328
353
|
const clientRangeStart = () => needsClientPagination() ? isProgressiveMode() ? 1 : clientPage() * clientPageSize() + 1 : 1;
|
|
329
|
-
const clientRangeEnd = () => needsClientPagination() ? isProgressiveMode() ? Math.min(progressivePages() * clientPageSize(),
|
|
354
|
+
const clientRangeEnd = () => needsClientPagination() ? isProgressiveMode() ? Math.min(progressivePages() * clientPageSize(), filteredRows().length) : Math.min((clientPage() + 1) * clientPageSize(), filteredRows().length) : filteredRows().length;
|
|
330
355
|
const progressiveHasMore = () => isProgressiveMode() && needsClientPagination() && progressivePages() < clientTotalPages();
|
|
331
|
-
const progressiveRemaining = () =>
|
|
356
|
+
const progressiveRemaining = () => filteredRows().length - progressivePages() * clientPageSize();
|
|
332
357
|
const showMoreLabel = () => tableParams.showAllLabel || "Show more";
|
|
333
358
|
const [virtualizer, setVirtualizer] = createSignal(null);
|
|
334
359
|
const [isVirtualizing, setIsVirtualizing] = createSignal(false);
|
|
@@ -523,7 +548,7 @@ ${dataRows}`;
|
|
|
523
548
|
},
|
|
524
549
|
copyLabel: "Copy table (TSV)",
|
|
525
550
|
get children() {
|
|
526
|
-
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);
|
|
527
552
|
insert(_el$29, createComponent(Show, {
|
|
528
553
|
when: exportable,
|
|
529
554
|
get fallback() {
|
|
@@ -581,7 +606,7 @@ ${dataRows}`;
|
|
|
581
606
|
runHydrationEvents();
|
|
582
607
|
return _el$30;
|
|
583
608
|
}
|
|
584
|
-
}), _el$
|
|
609
|
+
}), _el$143, _co$35);
|
|
585
610
|
insert(_el$44, createComponent(Show, {
|
|
586
611
|
get when() {
|
|
587
612
|
return tableParams.title;
|
|
@@ -606,18 +631,59 @@ ${dataRows}`;
|
|
|
606
631
|
}), _el$54, _co$1);
|
|
607
632
|
return _el$45;
|
|
608
633
|
}
|
|
609
|
-
}), _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);
|
|
610
676
|
var _ref$ = scrollContainerRef;
|
|
611
|
-
typeof _ref$ === "function" ? use(_ref$, _el$
|
|
612
|
-
insert(_el$
|
|
677
|
+
typeof _ref$ === "function" ? use(_ref$, _el$70) : scrollContainerRef = _el$70;
|
|
678
|
+
insert(_el$73, createComponent(For, {
|
|
613
679
|
get each() {
|
|
614
680
|
return tableParams.columns;
|
|
615
681
|
},
|
|
616
682
|
children: (column) => (() => {
|
|
617
|
-
var _el$
|
|
618
|
-
addEventListener(_el$
|
|
619
|
-
insert(_el$
|
|
620
|
-
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));
|
|
621
687
|
effect((_p$) => {
|
|
622
688
|
var _v$11 = column.width ? {
|
|
623
689
|
width: column.width
|
|
@@ -625,19 +691,19 @@ ${dataRows}`;
|
|
|
625
691
|
"opacity-30": sortKey() !== column.key,
|
|
626
692
|
"opacity-100 text-blue-600 dark:text-blue-400": sortKey() === column.key
|
|
627
693
|
};
|
|
628
|
-
_p$.e = style(_el$
|
|
629
|
-
_v$12 !== _p$.t && setAttribute(_el$
|
|
630
|
-
_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);
|
|
631
697
|
return _p$;
|
|
632
698
|
}, {
|
|
633
699
|
e: void 0,
|
|
634
700
|
t: void 0,
|
|
635
701
|
a: void 0
|
|
636
702
|
});
|
|
637
|
-
return _el$
|
|
703
|
+
return _el$144;
|
|
638
704
|
})()
|
|
639
705
|
}));
|
|
640
|
-
insert(_el$
|
|
706
|
+
insert(_el$71, createComponent(Show, {
|
|
641
707
|
get when() {
|
|
642
708
|
return isVirtualizing();
|
|
643
709
|
},
|
|
@@ -647,80 +713,80 @@ ${dataRows}`;
|
|
|
647
713
|
get children() {
|
|
648
714
|
return createComponent(VirtualizedTableBody, {});
|
|
649
715
|
}
|
|
650
|
-
}), _el$
|
|
716
|
+
}), _el$75, _co$14);
|
|
651
717
|
insert(_el$44, createComponent(Show, {
|
|
652
718
|
get when() {
|
|
653
719
|
return tableParams.pagination;
|
|
654
720
|
},
|
|
655
721
|
get children() {
|
|
656
|
-
var _el$
|
|
657
|
-
insert(_el$
|
|
658
|
-
insert(_el$
|
|
659
|
-
insert(_el$
|
|
660
|
-
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;
|
|
661
727
|
}
|
|
662
|
-
}), _el$
|
|
728
|
+
}), _el$137, _co$32);
|
|
663
729
|
insert(_el$44, createComponent(Show, {
|
|
664
730
|
get when() {
|
|
665
731
|
return memo(() => !!needsClientPagination())() && !isProgressiveMode();
|
|
666
732
|
},
|
|
667
733
|
get children() {
|
|
668
|
-
var _el$
|
|
669
|
-
insert(_el$
|
|
670
|
-
insert(_el$
|
|
671
|
-
insert(_el$
|
|
672
|
-
_el$
|
|
673
|
-
insert(_el$
|
|
674
|
-
insert(_el$
|
|
675
|
-
_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);
|
|
676
742
|
effect((_p$) => {
|
|
677
743
|
var _v$8 = clientPage() === 0, _v$9 = clientPage() >= clientTotalPages() - 1;
|
|
678
|
-
_v$8 !== _p$.e && setProperty(_el$
|
|
679
|
-
_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);
|
|
680
746
|
return _p$;
|
|
681
747
|
}, {
|
|
682
748
|
e: void 0,
|
|
683
749
|
t: void 0
|
|
684
750
|
});
|
|
685
751
|
runHydrationEvents();
|
|
686
|
-
return _el$
|
|
752
|
+
return _el$89;
|
|
687
753
|
}
|
|
688
|
-
}), _el$
|
|
754
|
+
}), _el$139, _co$33);
|
|
689
755
|
insert(_el$44, createComponent(Show, {
|
|
690
756
|
get when() {
|
|
691
757
|
return memo(() => !!needsClientPagination())() && isProgressiveMode();
|
|
692
758
|
},
|
|
693
759
|
get children() {
|
|
694
|
-
var _el$
|
|
695
|
-
insert(_el$
|
|
696
|
-
insert(_el$
|
|
697
|
-
insert(_el$
|
|
698
|
-
insert(_el$
|
|
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, {
|
|
699
765
|
get when() {
|
|
700
766
|
return progressiveHasMore();
|
|
701
767
|
},
|
|
702
768
|
get children() {
|
|
703
|
-
var _el$
|
|
704
|
-
_el$
|
|
705
|
-
_el$
|
|
706
|
-
insert(_el$
|
|
707
|
-
insert(_el$
|
|
708
|
-
insert(_el$
|
|
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);
|
|
709
775
|
runHydrationEvents();
|
|
710
|
-
return _el$
|
|
776
|
+
return _el$120;
|
|
711
777
|
}
|
|
712
|
-
}), _el$
|
|
713
|
-
return _el$
|
|
778
|
+
}), _el$131, _co$29);
|
|
779
|
+
return _el$110;
|
|
714
780
|
}
|
|
715
|
-
}), _el$
|
|
781
|
+
}), _el$141, _co$34);
|
|
716
782
|
effect((_p$) => {
|
|
717
783
|
var _v$0 = isVirtualizing() ? {
|
|
718
784
|
"max-height": "500px",
|
|
719
785
|
"overflow-y": "auto"
|
|
720
786
|
} : {}, _v$1 = tableParams.title || "Data table", _v$10 = tableParams.title ? `${tableId}-title` : void 0;
|
|
721
|
-
_p$.e = style(_el$
|
|
722
|
-
_v$1 !== _p$.t && setAttribute(_el$
|
|
723
|
-
_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);
|
|
724
790
|
return _p$;
|
|
725
791
|
}, {
|
|
726
792
|
e: void 0,
|
|
@@ -740,51 +806,51 @@ function MetricRenderer(props) {
|
|
|
740
806
|
return `${title}: ${value}${unit ? " " + unit : ""}`;
|
|
741
807
|
};
|
|
742
808
|
return (() => {
|
|
743
|
-
var _el$
|
|
744
|
-
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, {
|
|
745
811
|
getText: getMetricText,
|
|
746
812
|
title: "Copy metric",
|
|
747
813
|
position: "top-right"
|
|
748
|
-
}), _el$
|
|
749
|
-
insert(_el$
|
|
750
|
-
insert(_el$
|
|
751
|
-
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, {
|
|
752
818
|
get when() {
|
|
753
819
|
return metricParams.unit;
|
|
754
820
|
},
|
|
755
821
|
get children() {
|
|
756
|
-
var _el$
|
|
757
|
-
insert(_el$
|
|
758
|
-
return _el$
|
|
822
|
+
var _el$155 = getNextElement(_tmpl$28);
|
|
823
|
+
insert(_el$155, () => metricParams.unit);
|
|
824
|
+
return _el$155;
|
|
759
825
|
}
|
|
760
|
-
}), _el$
|
|
761
|
-
insert(_el$
|
|
826
|
+
}), _el$157, _co$37);
|
|
827
|
+
insert(_el$150, createComponent(Show, {
|
|
762
828
|
get when() {
|
|
763
829
|
return metricParams.trend;
|
|
764
830
|
},
|
|
765
831
|
get children() {
|
|
766
|
-
var _el$
|
|
767
|
-
_el$
|
|
768
|
-
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, (() => {
|
|
769
835
|
var _c$ = memo(() => metricParams.trend.direction === "up");
|
|
770
836
|
return () => _c$() ? "�" : metricParams.trend.direction === "down" ? "�" : "�";
|
|
771
|
-
})(), _el$
|
|
772
|
-
insert(_el$
|
|
773
|
-
effect(() => className(_el$
|
|
774
|
-
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;
|
|
775
841
|
}
|
|
776
|
-
}), _el$
|
|
777
|
-
insert(_el$
|
|
842
|
+
}), _el$168, _co$40);
|
|
843
|
+
insert(_el$150, createComponent(Show, {
|
|
778
844
|
get when() {
|
|
779
845
|
return metricParams.subtitle;
|
|
780
846
|
},
|
|
781
847
|
get children() {
|
|
782
|
-
var _el$
|
|
783
|
-
insert(_el$
|
|
784
|
-
return _el$
|
|
848
|
+
var _el$166 = getNextElement(_tmpl$30);
|
|
849
|
+
insert(_el$166, () => metricParams.subtitle);
|
|
850
|
+
return _el$166;
|
|
785
851
|
}
|
|
786
|
-
}), _el$
|
|
787
|
-
return _el$
|
|
852
|
+
}), _el$170, _co$41);
|
|
853
|
+
return _el$149;
|
|
788
854
|
})();
|
|
789
855
|
}
|
|
790
856
|
function extractImageFromMarkdown(content) {
|
|
@@ -825,62 +891,62 @@ function TextRenderer(props) {
|
|
|
825
891
|
},
|
|
826
892
|
get fallback() {
|
|
827
893
|
return (() => {
|
|
828
|
-
var _el$
|
|
829
|
-
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, {
|
|
830
896
|
getText: getTextContent,
|
|
831
897
|
title: "Copy text",
|
|
832
898
|
position: "top-right"
|
|
833
|
-
}), _el$
|
|
899
|
+
}), _el$176, _co$43);
|
|
834
900
|
effect((_p$) => {
|
|
835
901
|
var _v$14 = `prose prose-sm dark:prose-invert max-w-none ${textParams.className || ""}`, _v$15 = htmlContent();
|
|
836
|
-
_v$14 !== _p$.e && className(_el$
|
|
837
|
-
_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);
|
|
838
904
|
return _p$;
|
|
839
905
|
}, {
|
|
840
906
|
e: void 0,
|
|
841
907
|
t: void 0
|
|
842
908
|
});
|
|
843
|
-
return _el$
|
|
909
|
+
return _el$173;
|
|
844
910
|
})();
|
|
845
911
|
},
|
|
846
912
|
children: (data) => (() => {
|
|
847
|
-
var _el$
|
|
848
|
-
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);
|
|
849
915
|
effect((_p$) => {
|
|
850
916
|
var _v$16 = data().linkUrl, _v$17 = data().imageUrl, _v$18 = data().alt;
|
|
851
|
-
_v$16 !== _p$.e && setAttribute(_el$
|
|
852
|
-
_v$17 !== _p$.t && setAttribute(_el$
|
|
853
|
-
_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);
|
|
854
920
|
return _p$;
|
|
855
921
|
}, {
|
|
856
922
|
e: void 0,
|
|
857
923
|
t: void 0,
|
|
858
924
|
a: void 0
|
|
859
925
|
});
|
|
860
|
-
return _el$
|
|
926
|
+
return _el$177;
|
|
861
927
|
})()
|
|
862
928
|
});
|
|
863
929
|
}
|
|
864
930
|
function IframeRenderer(props) {
|
|
865
931
|
const params = props.component.params;
|
|
866
932
|
return (() => {
|
|
867
|
-
var _el$
|
|
868
|
-
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, {
|
|
869
935
|
get when() {
|
|
870
936
|
return params.title;
|
|
871
937
|
},
|
|
872
938
|
get children() {
|
|
873
|
-
var _el$
|
|
874
|
-
insert(_el$
|
|
875
|
-
return _el$
|
|
939
|
+
var _el$184 = getNextElement(_tmpl$34), _el$185 = _el$184.firstChild;
|
|
940
|
+
insert(_el$185, () => params.title);
|
|
941
|
+
return _el$184;
|
|
876
942
|
}
|
|
877
|
-
}), _el$
|
|
943
|
+
}), _el$188, _co$44);
|
|
878
944
|
effect((_p$) => {
|
|
879
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);
|
|
880
|
-
_v$19 !== _p$.e && setAttribute(_el$
|
|
881
|
-
_v$20 !== _p$.t && setAttribute(_el$
|
|
882
|
-
_p$.a = style(_el$
|
|
883
|
-
_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);
|
|
884
950
|
return _p$;
|
|
885
951
|
}, {
|
|
886
952
|
e: void 0,
|
|
@@ -888,30 +954,30 @@ function IframeRenderer(props) {
|
|
|
888
954
|
a: void 0,
|
|
889
955
|
o: void 0
|
|
890
956
|
});
|
|
891
|
-
return _el$
|
|
957
|
+
return _el$183;
|
|
892
958
|
})();
|
|
893
959
|
}
|
|
894
960
|
function ImageRenderer(props) {
|
|
895
961
|
const params = props.component.params;
|
|
896
962
|
return (() => {
|
|
897
|
-
var _el$
|
|
898
|
-
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, {
|
|
899
965
|
get when() {
|
|
900
966
|
return params.caption;
|
|
901
967
|
},
|
|
902
968
|
get children() {
|
|
903
|
-
var _el$
|
|
904
|
-
insert(_el$
|
|
905
|
-
return _el$
|
|
969
|
+
var _el$193 = getNextElement(_tmpl$36), _el$194 = _el$193.firstChild;
|
|
970
|
+
insert(_el$194, () => params.caption);
|
|
971
|
+
return _el$193;
|
|
906
972
|
}
|
|
907
|
-
}), _el$
|
|
973
|
+
}), _el$196, _co$45);
|
|
908
974
|
effect((_p$) => {
|
|
909
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";
|
|
910
|
-
_v$23 !== _p$.e && className(_el$
|
|
911
|
-
_v$24 !== _p$.t && setAttribute(_el$
|
|
912
|
-
_v$25 !== _p$.a && setAttribute(_el$
|
|
913
|
-
_v$26 !== _p$.o && setAttribute(_el$
|
|
914
|
-
_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);
|
|
915
981
|
return _p$;
|
|
916
982
|
}, {
|
|
917
983
|
e: void 0,
|
|
@@ -920,30 +986,30 @@ function ImageRenderer(props) {
|
|
|
920
986
|
o: void 0,
|
|
921
987
|
i: void 0
|
|
922
988
|
});
|
|
923
|
-
return _el$
|
|
989
|
+
return _el$189;
|
|
924
990
|
})();
|
|
925
991
|
}
|
|
926
992
|
function LinkRenderer(props) {
|
|
927
993
|
const params = props.component.params;
|
|
928
994
|
return (() => {
|
|
929
|
-
var _el$
|
|
930
|
-
_el$
|
|
931
|
-
insert(_el$
|
|
932
|
-
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, {
|
|
933
999
|
get when() {
|
|
934
1000
|
return params.description;
|
|
935
1001
|
},
|
|
936
1002
|
get children() {
|
|
937
|
-
var _el$
|
|
938
|
-
insert(_el$
|
|
939
|
-
return _el$
|
|
1003
|
+
var _el$201 = getNextElement(_tmpl$38);
|
|
1004
|
+
insert(_el$201, () => params.description);
|
|
1005
|
+
return _el$201;
|
|
940
1006
|
}
|
|
941
|
-
}), _el$
|
|
1007
|
+
}), _el$203, _co$46);
|
|
942
1008
|
effect((_p$) => {
|
|
943
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 || ""}`;
|
|
944
|
-
_v$28 !== _p$.e && setAttribute(_el$
|
|
945
|
-
_v$29 !== _p$.t && setAttribute(_el$
|
|
946
|
-
_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);
|
|
947
1013
|
return _p$;
|
|
948
1014
|
}, {
|
|
949
1015
|
e: void 0,
|
|
@@ -951,7 +1017,7 @@ function LinkRenderer(props) {
|
|
|
951
1017
|
a: void 0
|
|
952
1018
|
});
|
|
953
1019
|
runHydrationEvents();
|
|
954
|
-
return _el$
|
|
1020
|
+
return _el$197;
|
|
955
1021
|
})();
|
|
956
1022
|
}
|
|
957
1023
|
function ComponentRenderer(props) {
|
|
@@ -965,12 +1031,12 @@ function ComponentRenderer(props) {
|
|
|
965
1031
|
details: validation.errors
|
|
966
1032
|
});
|
|
967
1033
|
return (() => {
|
|
968
|
-
var _el$
|
|
969
|
-
insert(_el$
|
|
1034
|
+
var _el$204 = getNextElement(_tmpl$40), _el$205 = _el$204.firstChild, _el$206 = _el$205.nextSibling;
|
|
1035
|
+
insert(_el$206, () => {
|
|
970
1036
|
var _a2, _b;
|
|
971
1037
|
return ((_b = (_a2 = validation.errors) == null ? void 0 : _a2[0]) == null ? void 0 : _b.message) || "Unknown validation error";
|
|
972
1038
|
});
|
|
973
|
-
return _el$
|
|
1039
|
+
return _el$204;
|
|
974
1040
|
})();
|
|
975
1041
|
}
|
|
976
1042
|
return createComponent(GenerativeUIErrorBoundary, {
|
|
@@ -1216,27 +1282,27 @@ function ActionRenderer(props) {
|
|
|
1216
1282
|
const isDisabled = () => params.disabled || params.action === "tool-call" && isExecuting();
|
|
1217
1283
|
if (params.type === "link" || params.action === "link") {
|
|
1218
1284
|
return (() => {
|
|
1219
|
-
var _el$
|
|
1220
|
-
_el$
|
|
1221
|
-
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, {
|
|
1222
1288
|
get when() {
|
|
1223
1289
|
return params.icon;
|
|
1224
1290
|
},
|
|
1225
1291
|
get children() {
|
|
1226
|
-
var _el$
|
|
1227
|
-
insert(_el$
|
|
1228
|
-
return _el$
|
|
1292
|
+
var _el$208 = getNextElement(_tmpl$41);
|
|
1293
|
+
insert(_el$208, () => params.icon);
|
|
1294
|
+
return _el$208;
|
|
1229
1295
|
}
|
|
1230
|
-
}), _el$
|
|
1231
|
-
insert(_el$
|
|
1296
|
+
}), _el$210, _co$47);
|
|
1297
|
+
insert(_el$207, () => params.label, _el$212, _co$48);
|
|
1232
1298
|
effect((_p$) => {
|
|
1233
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
|
|
1234
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"}
|
|
1235
1301
|
${params.className || ""}`;
|
|
1236
|
-
_v$31 !== _p$.e && setAttribute(_el$
|
|
1237
|
-
_v$32 !== _p$.t && setAttribute(_el$
|
|
1238
|
-
_v$33 !== _p$.a && setAttribute(_el$
|
|
1239
|
-
_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);
|
|
1240
1306
|
return _p$;
|
|
1241
1307
|
}, {
|
|
1242
1308
|
e: void 0,
|
|
@@ -1245,42 +1311,42 @@ function ActionRenderer(props) {
|
|
|
1245
1311
|
o: void 0
|
|
1246
1312
|
});
|
|
1247
1313
|
runHydrationEvents();
|
|
1248
|
-
return _el$
|
|
1314
|
+
return _el$207;
|
|
1249
1315
|
})();
|
|
1250
1316
|
}
|
|
1251
1317
|
return (() => {
|
|
1252
|
-
var _el$
|
|
1253
|
-
_el$
|
|
1254
|
-
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, {
|
|
1255
1321
|
get when() {
|
|
1256
1322
|
return memo(() => !!isExecuting())() && params.action === "tool-call";
|
|
1257
1323
|
},
|
|
1258
1324
|
get children() {
|
|
1259
|
-
return getNextElement(_tmpl$
|
|
1325
|
+
return getNextElement(_tmpl$43);
|
|
1260
1326
|
}
|
|
1261
|
-
}), _el$
|
|
1262
|
-
insert(_el$
|
|
1327
|
+
}), _el$217, _co$49);
|
|
1328
|
+
insert(_el$213, createComponent(Show, {
|
|
1263
1329
|
get when() {
|
|
1264
1330
|
return memo(() => !!params.icon)() && !(isExecuting() && params.action === "tool-call");
|
|
1265
1331
|
},
|
|
1266
1332
|
get children() {
|
|
1267
|
-
var _el$
|
|
1268
|
-
insert(_el$
|
|
1269
|
-
return _el$
|
|
1333
|
+
var _el$215 = getNextElement(_tmpl$41);
|
|
1334
|
+
insert(_el$215, () => params.icon);
|
|
1335
|
+
return _el$215;
|
|
1270
1336
|
}
|
|
1271
|
-
}), _el$
|
|
1272
|
-
insert(_el$
|
|
1337
|
+
}), _el$219, _co$50);
|
|
1338
|
+
insert(_el$213, () => params.label, _el$221, _co$51);
|
|
1273
1339
|
effect((_p$) => {
|
|
1274
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
|
|
1275
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"}
|
|
1276
1342
|
${isDisabled() ? "opacity-50 cursor-not-allowed" : ""}
|
|
1277
1343
|
${params.size === "sm" ? "px-3 py-1.5 text-xs" : params.size === "lg" ? "px-6 py-3 text-base" : ""}
|
|
1278
1344
|
${params.className || ""}`;
|
|
1279
|
-
_v$35 !== _p$.e && setAttribute(_el$
|
|
1280
|
-
_v$36 !== _p$.t && setProperty(_el$
|
|
1281
|
-
_v$37 !== _p$.a && setAttribute(_el$
|
|
1282
|
-
_v$38 !== _p$.o && setAttribute(_el$
|
|
1283
|
-
_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);
|
|
1284
1350
|
return _p$;
|
|
1285
1351
|
}, {
|
|
1286
1352
|
e: void 0,
|
|
@@ -1290,7 +1356,7 @@ function ActionRenderer(props) {
|
|
|
1290
1356
|
i: void 0
|
|
1291
1357
|
});
|
|
1292
1358
|
runHydrationEvents();
|
|
1293
|
-
return _el$
|
|
1359
|
+
return _el$213;
|
|
1294
1360
|
})();
|
|
1295
1361
|
}
|
|
1296
1362
|
function ErrorCardRenderer(props) {
|
|
@@ -1298,55 +1364,55 @@ function ErrorCardRenderer(props) {
|
|
|
1298
1364
|
return `Error in ${props.error.tool || "unknown tool"}: ${props.error.message || "Unknown error"}`;
|
|
1299
1365
|
};
|
|
1300
1366
|
return (() => {
|
|
1301
|
-
var _el$
|
|
1302
|
-
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, {
|
|
1303
1369
|
getText: getErrorText,
|
|
1304
1370
|
title: "Copy error details",
|
|
1305
1371
|
position: "top-right"
|
|
1306
|
-
}), _el$
|
|
1307
|
-
insert(_el$
|
|
1308
|
-
insert(_el$
|
|
1309
|
-
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, {
|
|
1310
1376
|
get when() {
|
|
1311
1377
|
return props.error.type;
|
|
1312
1378
|
},
|
|
1313
1379
|
get children() {
|
|
1314
|
-
var _el$
|
|
1315
|
-
insert(_el$
|
|
1316
|
-
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;
|
|
1317
1383
|
}
|
|
1318
|
-
}), _el$
|
|
1319
|
-
insert(_el$
|
|
1384
|
+
}), _el$240, _co$54);
|
|
1385
|
+
insert(_el$225, createComponent(Show, {
|
|
1320
1386
|
get when() {
|
|
1321
1387
|
var _a;
|
|
1322
1388
|
return (_a = props.error.suggestions) == null ? void 0 : _a.length;
|
|
1323
1389
|
},
|
|
1324
1390
|
get children() {
|
|
1325
|
-
var _el$
|
|
1326
|
-
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, {
|
|
1327
1393
|
get each() {
|
|
1328
1394
|
return props.error.suggestions;
|
|
1329
1395
|
},
|
|
1330
1396
|
children: (suggestion) => (() => {
|
|
1331
|
-
var _el$
|
|
1332
|
-
insert(_el$
|
|
1333
|
-
return _el$
|
|
1397
|
+
var _el$247 = getNextElement(_tmpl$49);
|
|
1398
|
+
insert(_el$247, suggestion);
|
|
1399
|
+
return _el$247;
|
|
1334
1400
|
})()
|
|
1335
1401
|
}));
|
|
1336
|
-
return _el$
|
|
1402
|
+
return _el$235;
|
|
1337
1403
|
}
|
|
1338
|
-
}), _el$
|
|
1339
|
-
insert(_el$
|
|
1404
|
+
}), _el$242, _co$55);
|
|
1405
|
+
insert(_el$225, createComponent(Show, {
|
|
1340
1406
|
get when() {
|
|
1341
1407
|
return props.error.timestamp;
|
|
1342
1408
|
},
|
|
1343
1409
|
get children() {
|
|
1344
|
-
var _el$
|
|
1345
|
-
insert(_el$
|
|
1346
|
-
return _el$
|
|
1410
|
+
var _el$238 = getNextElement(_tmpl$47);
|
|
1411
|
+
insert(_el$238, () => new Date(props.error.timestamp).toLocaleString());
|
|
1412
|
+
return _el$238;
|
|
1347
1413
|
}
|
|
1348
|
-
}), _el$
|
|
1349
|
-
return _el$
|
|
1414
|
+
}), _el$244, _co$56);
|
|
1415
|
+
return _el$222;
|
|
1350
1416
|
})();
|
|
1351
1417
|
}
|
|
1352
1418
|
function isErrorResponse(content) {
|
|
@@ -1369,20 +1435,20 @@ function UIResourceHtmlRenderer(props) {
|
|
|
1369
1435
|
return ((_a = props.resource.metadata) == null ? void 0 : _a.title) || ((_b = props.resource.uri) == null ? void 0 : _b.replace("ui://deposium/", "")) || "Resource";
|
|
1370
1436
|
};
|
|
1371
1437
|
return (() => {
|
|
1372
|
-
var _el$
|
|
1373
|
-
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, {
|
|
1374
1440
|
get when() {
|
|
1375
1441
|
var _a;
|
|
1376
1442
|
return ((_a = props.resource.metadata) == null ? void 0 : _a.title) || props.resource.uri;
|
|
1377
1443
|
},
|
|
1378
1444
|
get children() {
|
|
1379
|
-
var _el$
|
|
1380
|
-
insert(_el$
|
|
1381
|
-
return _el$
|
|
1445
|
+
var _el$249 = getNextElement(_tmpl$50), _el$250 = _el$249.firstChild;
|
|
1446
|
+
insert(_el$250, resourceTitle);
|
|
1447
|
+
return _el$249;
|
|
1382
1448
|
}
|
|
1383
|
-
}), _el$
|
|
1384
|
-
effect(() => setProperty(_el$
|
|
1385
|
-
return _el$
|
|
1449
|
+
}), _el$253, _co$58);
|
|
1450
|
+
effect(() => setProperty(_el$251, "innerHTML", htmlContent()));
|
|
1451
|
+
return _el$248;
|
|
1386
1452
|
})();
|
|
1387
1453
|
}
|
|
1388
1454
|
const UIResourceRenderer = (props) => {
|
|
@@ -1462,24 +1528,24 @@ const UIResourceRenderer = (props) => {
|
|
|
1462
1528
|
return createComponent(RenderProvider, {
|
|
1463
1529
|
renderComponent,
|
|
1464
1530
|
get children() {
|
|
1465
|
-
var _el$
|
|
1466
|
-
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, {
|
|
1467
1533
|
get each() {
|
|
1468
1534
|
return layoutData.components;
|
|
1469
1535
|
},
|
|
1470
1536
|
children: (component) => (() => {
|
|
1471
|
-
var _el$
|
|
1472
|
-
insert(_el$
|
|
1537
|
+
var _el$258 = getNextElement(_tmpl$53);
|
|
1538
|
+
insert(_el$258, createComponent(ComponentRenderer, {
|
|
1473
1539
|
component,
|
|
1474
1540
|
get onError() {
|
|
1475
1541
|
return props.onError;
|
|
1476
1542
|
}
|
|
1477
1543
|
}));
|
|
1478
|
-
effect((_$p) => style(_el$
|
|
1479
|
-
return _el$
|
|
1544
|
+
effect((_$p) => style(_el$258, getGridStyleString(component), _$p));
|
|
1545
|
+
return _el$258;
|
|
1480
1546
|
})()
|
|
1481
1547
|
}));
|
|
1482
|
-
insert(_el$
|
|
1548
|
+
insert(_el$254, createComponent(Show, {
|
|
1483
1549
|
get when() {
|
|
1484
1550
|
return shouldShowAutoFooter();
|
|
1485
1551
|
},
|
|
@@ -1490,21 +1556,21 @@ const UIResourceRenderer = (props) => {
|
|
|
1490
1556
|
}
|
|
1491
1557
|
});
|
|
1492
1558
|
}
|
|
1493
|
-
}), _el$
|
|
1559
|
+
}), _el$257, _co$59);
|
|
1494
1560
|
effect((_p$) => {
|
|
1495
1561
|
var _v$40 = `w-full ${props.class || ""}`, _v$41 = gridContainerStyle();
|
|
1496
|
-
_v$40 !== _p$.e && className(_el$
|
|
1497
|
-
_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);
|
|
1498
1564
|
return _p$;
|
|
1499
1565
|
}, {
|
|
1500
1566
|
e: void 0,
|
|
1501
1567
|
t: void 0
|
|
1502
1568
|
});
|
|
1503
|
-
return _el$
|
|
1569
|
+
return _el$254;
|
|
1504
1570
|
}
|
|
1505
1571
|
});
|
|
1506
1572
|
};
|
|
1507
|
-
delegateEvents(["click"]);
|
|
1573
|
+
delegateEvents(["click", "input"]);
|
|
1508
1574
|
export {
|
|
1509
1575
|
UIResourceRenderer,
|
|
1510
1576
|
renderCellValue
|