@seed-ship/mcp-ui-solid 4.3.5 → 4.3.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/UIResourceRenderer.cjs +234 -219
- package/dist/components/UIResourceRenderer.cjs.map +1 -1
- package/dist/components/UIResourceRenderer.d.ts.map +1 -1
- package/dist/components/UIResourceRenderer.js +234 -219
- package/dist/components/UIResourceRenderer.js.map +1 -1
- package/package.json +1 -1
- package/src/components/UIResourceRenderer.tsx +57 -53
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -21,7 +21,7 @@ const ExpandableWrapper = require("./ExpandableWrapper.cjs");
|
|
|
21
21
|
const RenderContext = require("./RenderContext.cjs");
|
|
22
22
|
const useAction = require("../hooks/useAction.cjs");
|
|
23
23
|
const marked_esm = require("../node_modules/.pnpm/marked@16.4.2/node_modules/marked/lib/marked.esm.cjs");
|
|
24
|
-
var _tmpl$ = /* @__PURE__ */ web.template(`<svg class="w-3 h-3 text-gray-500 dark:text-gray-400"fill=none viewBox="0 0 24 24"stroke=currentColor><path stroke-linecap=round stroke-linejoin=round stroke-width=2 d="M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z">`), _tmpl$2 = /* @__PURE__ */ web.template(`<button>`), _tmpl$3 = /* @__PURE__ */ web.template(`<svg class="w-3 h-3 text-green-500"fill=none viewBox="0 0 24 24"stroke=currentColor><path stroke-linecap=round stroke-linejoin=round stroke-width=2 d="M5 13l4 4L19 7">`), _tmpl$4 = /* @__PURE__ */ web.template(`<div class="p-4 bg-white dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-gray-700"><p class="text-red-500 dark:text-red-400 text-sm">Invalid chart data: missing data.datasets`), _tmpl$5 = /* @__PURE__ */ web.template(`<div class="absolute inset-0 flex items-center justify-center"><div class="animate-spin rounded-full h-8 w-8 border-b-2 border-blue-600">`), _tmpl$6 = /* @__PURE__ */ web.template(`<div class="absolute inset-0 flex items-center justify-center p-4"><div class=text-center><p class="text-red-600 dark:text-red-400 text-sm font-medium">Chart Error</p><p class="text-gray-600 dark:text-gray-400 text-xs mt-1">`), _tmpl$7 = /* @__PURE__ */ web.template(`<h3 class="text-sm font-semibold text-gray-900 dark:text-white mb-3">`), _tmpl$8 = /* @__PURE__ */ web.template(`<div class="w-full h-full p-4"><!$><!/><div class="w-full h-full"role=img><img class="w-full h-auto max-h-[300px] object-contain">`), _tmpl$9 = /* @__PURE__ */ web.template(`<div class="relative w-full h-full min-h-[300px] bg-white dark:bg-gray-800 rounded-lg shadow-sm border border-gray-200 dark:border-gray-700 overflow-hidden"><!$><!/><!$><!/><!$><!/>`), _tmpl$0 = /* @__PURE__ */ web.template(`<tbody class="bg-white dark:bg-gray-800 divide-y divide-gray-200 dark:divide-gray-700">`), _tmpl$1 = /* @__PURE__ */ web.template(`<tr>`), _tmpl$10 = /* @__PURE__ */ web.template(`<td class="px-6 py-4 text-sm text-gray-700 dark:text-gray-200 whitespace-normal break-words leading-relaxed first:pl-6 last:pr-6"><div>`), _tmpl$11 = /* @__PURE__ */ web.template(`<tbody class="bg-white dark:bg-gray-800 relative">`), _tmpl$12 = /* @__PURE__ */ web.template(`<button class="w-full text-left px-3 py-1.5 hover:bg-gray-100 dark:hover:bg-gray-700 text-gray-700 dark:text-gray-300">Copy TSV`), _tmpl$13 = /* @__PURE__ */ web.template(`<button class="w-full text-left px-3 py-1.5 hover:bg-gray-100 dark:hover:bg-gray-700 text-gray-700 dark:text-gray-300">Download CSV`), _tmpl$14 = /* @__PURE__ */ web.template(`<button class="w-full text-left px-3 py-1.5 hover:bg-gray-100 dark:hover:bg-gray-700 text-gray-700 dark:text-gray-300">Download JSON`), _tmpl$15 = /* @__PURE__ */ web.template(`<div class="absolute right-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__ */ web.template(`<div class="absolute right-10 top-2 z-10"><button class="opacity-60 hover:opacity-100 px-2 py-1 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-600 rounded-full hover:bg-gray-100 dark:hover:bg-gray-700 transition-all shadow-sm"title="Export table"aria-label="Export table"><svg class="w-3 h-3 text-gray-500 dark:text-gray-400"fill=none viewBox="0 0 24 24"stroke=currentColor><path stroke-linecap=round stroke-linejoin=round stroke-width=2 d="M12 10v6m0 0l-3-3m3 3l3-3m2 8H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"></path></svg></button><!$><!/>`), _tmpl$17 = /* @__PURE__ */ web.template(`<span class="ml-2 text-xs font-normal text-gray-400">(virtualized: <!$><!/> rows)`), _tmpl$18 = /* @__PURE__ */ web.template(`<h3 class="text-sm font-semibold text-gray-900 dark:text-white mb-3"><!$><!/><!$><!/>`), _tmpl$19 = /* @__PURE__ */ web.template(`<button type=button class="absolute right-2 top-1/2 -translate-y-1/2 text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 text-sm"aria-label="Clear search">×`), _tmpl$20 = /* @__PURE__ */ web.template(`<div class="relative mb-3"><span class="absolute left-3 top-1/2 -translate-y-1/2 text-gray-400 pointer-events-none text-sm">🔍</span><input type=text class="w-full pl-8 pr-8 py-1.5 text-sm border border-gray-200 dark:border-gray-600 rounded-md bg-white dark:bg-gray-700 text-gray-900 dark:text-white placeholder-gray-400 focus:border-blue-400 focus:ring-1 focus:ring-blue-400 outline-none"><!$><!/>`), _tmpl$21 = /* @__PURE__ */ web.template(`<p class="text-xs text-gray-500 dark:text-gray-400 mb-2"><!$><!/> result<!$><!/> on <!$><!/>`), _tmpl$22 = /* @__PURE__ */ web.template(`<div class="mt-3 flex items-center justify-between text-xs text-gray-500 dark:text-gray-400"><span>Showing <!$><!/> - <!$><!/> of <!$><!/>`), _tmpl$23 = /* @__PURE__ */ web.template(`<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__ */ web.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__ */ web.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__ */ web.template(`<div class="relative w-full h-full bg-white dark:bg-gray-800 rounded-lg shadow-sm border border-gray-200 dark:border-gray-700 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__ */ web.template(`<th scope=col class="px-6 py-3 text-left text-xs font-semibold text-gray-500 dark:text-gray-400 uppercase tracking-wider border-b border-gray-200 dark:border-gray-700 first:pl-6 last:pr-6 bg-gray-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__ */ web.template(`<span class="ml-2 text-sm font-medium text-gray-500 dark:text-gray-400">`), _tmpl$29 = /* @__PURE__ */ web.template(`<div class="mt-3 flex items-center"><span><!$><!/> <!$><!/>%`), _tmpl$30 = /* @__PURE__ */ web.template(`<p class="mt-2 text-xs text-gray-500 dark:text-gray-400">`), _tmpl$31 = /* @__PURE__ */ web.template(`<div class="relative w-full h-full bg-white dark:bg-gray-800 rounded-lg shadow-sm border border-gray-200 dark:border-gray-700 p-4 group"><!$><!/><div class="flex flex-col h-full justify-between"><div><p class="text-xs font-medium text-gray-500 dark:text-gray-400 uppercase tracking-wide"></p><div class="mt-2 flex items-baseline"><p class="text-2xl font-semibold text-gray-900 dark:text-white"></p><!$><!/></div></div><!$><!/><!$><!/>`), _tmpl$32 = /* @__PURE__ */ web.template(`<div class="relative w-full h-full bg-white dark:bg-gray-800 rounded-lg shadow-sm border border-gray-200 dark:border-gray-700 p-4 group"><!$><!/><div>`), _tmpl$33 = /* @__PURE__ */ web.template(`<div class="w-full h-full bg-white dark:bg-gray-800 rounded-lg shadow-sm border border-gray-200 dark:border-gray-700 overflow-hidden flex flex-col"><div class="flex-1 flex items-center justify-center p-4 bg-gray-50 dark:bg-gray-900 min-h-[200px]"><a target=_blank rel="noopener noreferrer"class=cursor-zoom-in><img class="max-w-full max-h-[400px] object-contain rounded shadow-sm hover:opacity-90 transition-opacity"loading=lazy></a></div><div class="p-3 border-t border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-800"><p class="text-sm text-gray-600 dark:text-gray-400 text-center italic">`, true, false, false), _tmpl$34 = /* @__PURE__ */ web.template(`<div class="px-4 py-2 border-b border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-900"><h3 class="text-sm font-semibold text-gray-900 dark:text-white">`), _tmpl$35 = /* @__PURE__ */ web.template(`<div class="w-full h-full bg-white dark:bg-gray-800 rounded-lg shadow-sm border border-gray-200 dark:border-gray-700 overflow-hidden flex flex-col"><!$><!/><iframe class="w-full border-0 flex-1"loading=lazy>`, true, false, false), _tmpl$36 = /* @__PURE__ */ web.template(`<figcaption class="p-3 border-t border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-800"><p class="text-sm text-gray-600 dark:text-gray-400 text-center">`), _tmpl$37 = /* @__PURE__ */ web.template(`<figure><div class="flex-1 flex items-center justify-center p-4 bg-gray-50 dark:bg-gray-900 min-h-[200px]"><a target=_blank rel="noopener noreferrer"class="cursor-zoom-in focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 rounded"><img class="max-w-full max-h-[500px] object-contain rounded shadow-sm hover:opacity-95 transition-opacity"loading=lazy></a></div><!$><!/>`, true, false, false), _tmpl$38 = /* @__PURE__ */ web.template(`<p class="text-xs text-gray-500 dark:text-gray-400 truncate">`), _tmpl$39 = /* @__PURE__ */ web.template(`<a target=_blank rel="noopener noreferrer"><div class="p-2 bg-blue-50 dark:bg-blue-900/30 rounded-full text-blue-600 dark:text-blue-400 group-hover:bg-blue-100 dark:group-hover:bg-blue-900/50 shrink-0 transition-colors"aria-hidden=true><svg xmlns=http://www.w3.org/2000/svg class="w-5 h-5"viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 stroke-linecap=round stroke-linejoin=round><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></div><div class="flex-1 min-w-0"><h4 class="text-sm font-medium text-gray-900 dark:text-white truncate group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors"></h4><!$><!/></div><svg xmlns=http://www.w3.org/2000/svg class="w-4 h-4 text-gray-400 group-hover:text-gray-600 dark:group-hover:text-gray-300 shrink-0 transition-colors"viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 stroke-linecap=round stroke-linejoin=round aria-hidden=true><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15 3 21 3 21 9"></polyline><line x1=10 y1=14 x2=21 y2=3>`), _tmpl$40 = /* @__PURE__ */ web.template(`<div class="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__ */ web.template(`<span aria-hidden=true>`), _tmpl$42 = /* @__PURE__ */ web.template(`<a rel="noopener noreferrer"><!$><!/><!$><!/>`), _tmpl$43 = /* @__PURE__ */ web.template(`<span class="animate-spin h-4 w-4 border-2 border-current border-t-transparent rounded-full"aria-hidden=true>`), _tmpl$44 = /* @__PURE__ */ web.template(`<button><!$><!/><!$><!/><!$><!/>`), _tmpl$45 = /* @__PURE__ */ web.template(`<p class="text-xs text-red-600 dark:text-red-400 mt-1">Type: <!$><!/>`), _tmpl$46 = /* @__PURE__ */ web.template(`<div class=mt-3><p class="text-xs font-medium text-red-700 dark:text-red-300">Suggestions:</p><ul class="mt-1 text-xs text-red-600 dark:text-red-400 list-disc list-inside">`), _tmpl$47 = /* @__PURE__ */ web.template(`<p class="text-xs text-red-500 dark:text-red-500 mt-2">`), _tmpl$48 = /* @__PURE__ */ web.template(`<div class="relative w-full bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-lg p-4 group"><!$><!/><div class="flex items-start gap-3"><div class="p-2 bg-red-100 dark:bg-red-900/40 rounded-full shrink-0"><svg class="w-5 h-5 text-red-600 dark:text-red-400"fill=none viewBox="0 0 24 24"stroke=currentColor><path stroke-linecap=round stroke-linejoin=round stroke-width=2 d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"></path></svg></div><div class="flex-1 min-w-0"><h4 class="text-sm font-semibold text-red-800 dark:text-red-200">Tool Error: <!$><!/></h4><p class="text-sm text-red-700 dark:text-red-300 mt-1"></p><!$><!/><!$><!/><!$><!/>`), _tmpl$49 = /* @__PURE__ */ web.template(`<li>`), _tmpl$50 = /* @__PURE__ */ web.template(`<div class="px-4 py-2 border-b border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-900"><h3 class="text-sm font-semibold text-gray-900 dark:text-white capitalize">`), _tmpl$51 = /* @__PURE__ */ web.template(`<div class="w-full bg-white dark:bg-gray-800 rounded-lg shadow-sm border border-gray-200 dark:border-gray-700 overflow-hidden"><!$><!/><div class="p-4 prose prose-sm dark:prose-invert max-w-none">`), _tmpl$52 = /* @__PURE__ */ web.template(`<div><div class="grid gap-4"></div><!$><!/>`), _tmpl$53 = /* @__PURE__ */ web.template(`<div>`);
|
|
24
|
+
var _tmpl$ = /* @__PURE__ */ web.template(`<svg class="w-3 h-3 text-gray-500 dark:text-gray-400"fill=none viewBox="0 0 24 24"stroke=currentColor><path stroke-linecap=round stroke-linejoin=round stroke-width=2 d="M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z">`), _tmpl$2 = /* @__PURE__ */ web.template(`<button>`), _tmpl$3 = /* @__PURE__ */ web.template(`<svg class="w-3 h-3 text-green-500"fill=none viewBox="0 0 24 24"stroke=currentColor><path stroke-linecap=round stroke-linejoin=round stroke-width=2 d="M5 13l4 4L19 7">`), _tmpl$4 = /* @__PURE__ */ web.template(`<div class="p-4 bg-white dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-gray-700"><p class="text-red-500 dark:text-red-400 text-sm">Invalid chart data: missing data.datasets`), _tmpl$5 = /* @__PURE__ */ web.template(`<div class="absolute inset-0 flex items-center justify-center"><div class="animate-spin rounded-full h-8 w-8 border-b-2 border-blue-600">`), _tmpl$6 = /* @__PURE__ */ web.template(`<div class="absolute inset-0 flex items-center justify-center p-4"><div class=text-center><p class="text-red-600 dark:text-red-400 text-sm font-medium">Chart Error</p><p class="text-gray-600 dark:text-gray-400 text-xs mt-1">`), _tmpl$7 = /* @__PURE__ */ web.template(`<h3 class="text-sm font-semibold text-gray-900 dark:text-white mb-3">`), _tmpl$8 = /* @__PURE__ */ web.template(`<div class="w-full h-full p-4"><!$><!/><div class="w-full h-full"role=img><img class="w-full h-auto max-h-[300px] object-contain">`), _tmpl$9 = /* @__PURE__ */ web.template(`<div class="relative w-full h-full min-h-[300px] bg-white dark:bg-gray-800 rounded-lg shadow-sm border border-gray-200 dark:border-gray-700 overflow-hidden"><!$><!/><!$><!/><!$><!/>`), _tmpl$0 = /* @__PURE__ */ web.template(`<tbody class="bg-white dark:bg-gray-800 divide-y divide-gray-200 dark:divide-gray-700">`), _tmpl$1 = /* @__PURE__ */ web.template(`<tr>`), _tmpl$10 = /* @__PURE__ */ web.template(`<td class="px-6 py-4 text-sm text-gray-700 dark:text-gray-200 whitespace-normal break-words leading-relaxed first:pl-6 last:pr-6"><div>`), _tmpl$11 = /* @__PURE__ */ web.template(`<tbody class="bg-white dark:bg-gray-800 relative">`), _tmpl$12 = /* @__PURE__ */ web.template(`<button class="w-full text-left px-3 py-1.5 hover:bg-gray-100 dark:hover:bg-gray-700 text-gray-700 dark:text-gray-300">Copy TSV`), _tmpl$13 = /* @__PURE__ */ web.template(`<button class="w-full text-left px-3 py-1.5 hover:bg-gray-100 dark:hover:bg-gray-700 text-gray-700 dark:text-gray-300">Download CSV`), _tmpl$14 = /* @__PURE__ */ web.template(`<button class="w-full text-left px-3 py-1.5 hover:bg-gray-100 dark:hover:bg-gray-700 text-gray-700 dark:text-gray-300">Download JSON`), _tmpl$15 = /* @__PURE__ */ web.template(`<div class="absolute right-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__ */ web.template(`<div class="absolute right-10 top-2 z-10"><button class="opacity-60 hover:opacity-100 px-2 py-1 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-600 rounded-full hover:bg-gray-100 dark:hover:bg-gray-700 transition-all shadow-sm"title="Export table"aria-label="Export table"><svg class="w-3 h-3 text-gray-500 dark:text-gray-400"fill=none viewBox="0 0 24 24"stroke=currentColor><path stroke-linecap=round stroke-linejoin=round stroke-width=2 d="M12 10v6m0 0l-3-3m3 3l3-3m2 8H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"></path></svg></button><!$><!/>`), _tmpl$17 = /* @__PURE__ */ web.template(`<span class="ml-2 text-xs font-normal text-gray-400">(virtualized: <!$><!/> rows)`), _tmpl$18 = /* @__PURE__ */ web.template(`<h3 class="text-sm font-semibold text-gray-900 dark:text-white mb-3"><!$><!/><!$><!/>`), _tmpl$19 = /* @__PURE__ */ web.template(`<button type=button class="absolute right-2 top-1/2 -translate-y-1/2 text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 text-sm"aria-label="Clear search">×`), _tmpl$20 = /* @__PURE__ */ web.template(`<div class="relative mb-3"><span class="absolute left-3 top-1/2 -translate-y-1/2 text-gray-400 pointer-events-none text-sm">🔍</span><input type=text class="w-full max-w-xs min-w-[200px] pl-8 pr-8 py-1.5 text-sm border border-gray-200 dark:border-gray-600 rounded-md bg-white dark:bg-gray-700 text-gray-900 dark:text-white placeholder-gray-400 focus:border-blue-400 focus:ring-1 focus:ring-blue-400 outline-none"><!$><!/>`), _tmpl$21 = /* @__PURE__ */ web.template(`<p class="text-xs text-gray-500 dark:text-gray-400 mb-2"><!$><!/> result<!$><!/> on <!$><!/>`), _tmpl$22 = /* @__PURE__ */ web.template(`<div class="mt-3 flex items-center justify-between text-xs text-gray-500 dark:text-gray-400"><span>Showing <!$><!/> - <!$><!/> of <!$><!/>`), _tmpl$23 = /* @__PURE__ */ web.template(`<select class="ml-2 px-1 py-0.5 text-xs border border-gray-200 dark:border-gray-600 rounded bg-white dark:bg-gray-700 text-gray-700 dark:text-gray-300">`), _tmpl$24 = /* @__PURE__ */ web.template(`<span class=text-gray-400>/ page`), _tmpl$25 = /* @__PURE__ */ web.template(`<div class="mt-3 flex items-center justify-between text-xs text-gray-500 dark:text-gray-400"><span><!$><!/>–<!$><!/> / <!$><!/></span><div class="flex items-center gap-2"><button class="px-2 py-1 rounded hover:bg-gray-100 dark:hover:bg-gray-700 disabled:opacity-40 disabled:cursor-not-allowed transition-colors">◀</button><span><!$><!/> / <!$><!/></span><button class="px-2 py-1 rounded hover:bg-gray-100 dark:hover:bg-gray-700 disabled:opacity-40 disabled:cursor-not-allowed transition-colors">▶</button><!$><!/>`), _tmpl$26 = /* @__PURE__ */ web.template(`<div 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-100 dark:bg-gray-900 sticky top-0 z-10"><tr></tr></thead><!$><!/></table></div><!$><!/><!$><!/>`), _tmpl$27 = /* @__PURE__ */ web.template(`<th scope=col class="px-6 py-3 text-left text-xs font-semibold text-gray-500 dark:text-gray-400 uppercase tracking-wider border-b border-gray-200 dark:border-gray-700 first:pl-6 last:pr-6 bg-gray-100 dark:bg-gray-900 cursor-pointer select-none hover:bg-gray-200 dark:hover:bg-gray-800 transition-colors"><span class="inline-flex items-center gap-1"><!$><!/><span class="text-[10px] leading-none">`), _tmpl$28 = /* @__PURE__ */ web.template(`<option>`), _tmpl$29 = /* @__PURE__ */ web.template(`<span class="ml-2 text-sm font-medium text-gray-500 dark:text-gray-400">`), _tmpl$30 = /* @__PURE__ */ web.template(`<div class="mt-3 flex items-center"><span><!$><!/> <!$><!/>%`), _tmpl$31 = /* @__PURE__ */ web.template(`<p class="mt-2 text-xs text-gray-500 dark:text-gray-400">`), _tmpl$32 = /* @__PURE__ */ web.template(`<div class="relative w-full h-full bg-white dark:bg-gray-800 rounded-lg shadow-sm border border-gray-200 dark:border-gray-700 p-4 group"><!$><!/><div class="flex flex-col h-full justify-between"><div><p class="text-xs font-medium text-gray-500 dark:text-gray-400 uppercase tracking-wide"></p><div class="mt-2 flex items-baseline"><p class="text-2xl font-semibold text-gray-900 dark:text-white"></p><!$><!/></div></div><!$><!/><!$><!/>`), _tmpl$33 = /* @__PURE__ */ web.template(`<div class="relative w-full h-full bg-white dark:bg-gray-800 rounded-lg shadow-sm border border-gray-200 dark:border-gray-700 p-4 group"><!$><!/><div>`), _tmpl$34 = /* @__PURE__ */ web.template(`<div class="w-full h-full bg-white dark:bg-gray-800 rounded-lg shadow-sm border border-gray-200 dark:border-gray-700 overflow-hidden flex flex-col"><div class="flex-1 flex items-center justify-center p-4 bg-gray-50 dark:bg-gray-900 min-h-[200px]"><a target=_blank rel="noopener noreferrer"class=cursor-zoom-in><img class="max-w-full max-h-[400px] object-contain rounded shadow-sm hover:opacity-90 transition-opacity"loading=lazy></a></div><div class="p-3 border-t border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-800"><p class="text-sm text-gray-600 dark:text-gray-400 text-center italic">`, true, false, false), _tmpl$35 = /* @__PURE__ */ web.template(`<div class="px-4 py-2 border-b border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-900"><h3 class="text-sm font-semibold text-gray-900 dark:text-white">`), _tmpl$36 = /* @__PURE__ */ web.template(`<div class="w-full h-full bg-white dark:bg-gray-800 rounded-lg shadow-sm border border-gray-200 dark:border-gray-700 overflow-hidden flex flex-col"><!$><!/><iframe class="w-full border-0 flex-1"loading=lazy>`, true, false, false), _tmpl$37 = /* @__PURE__ */ web.template(`<figcaption class="p-3 border-t border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-800"><p class="text-sm text-gray-600 dark:text-gray-400 text-center">`), _tmpl$38 = /* @__PURE__ */ web.template(`<figure><div class="flex-1 flex items-center justify-center p-4 bg-gray-50 dark:bg-gray-900 min-h-[200px]"><a target=_blank rel="noopener noreferrer"class="cursor-zoom-in focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 rounded"><img class="max-w-full max-h-[500px] object-contain rounded shadow-sm hover:opacity-95 transition-opacity"loading=lazy></a></div><!$><!/>`, true, false, false), _tmpl$39 = /* @__PURE__ */ web.template(`<p class="text-xs text-gray-500 dark:text-gray-400 truncate">`), _tmpl$40 = /* @__PURE__ */ web.template(`<a target=_blank rel="noopener noreferrer"><div class="p-2 bg-blue-50 dark:bg-blue-900/30 rounded-full text-blue-600 dark:text-blue-400 group-hover:bg-blue-100 dark:group-hover:bg-blue-900/50 shrink-0 transition-colors"aria-hidden=true><svg xmlns=http://www.w3.org/2000/svg class="w-5 h-5"viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 stroke-linecap=round stroke-linejoin=round><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></div><div class="flex-1 min-w-0"><h4 class="text-sm font-medium text-gray-900 dark:text-white truncate group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors"></h4><!$><!/></div><svg xmlns=http://www.w3.org/2000/svg class="w-4 h-4 text-gray-400 group-hover:text-gray-600 dark:group-hover:text-gray-300 shrink-0 transition-colors"viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 stroke-linecap=round stroke-linejoin=round aria-hidden=true><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15 3 21 3 21 9"></polyline><line x1=10 y1=14 x2=21 y2=3>`), _tmpl$41 = /* @__PURE__ */ web.template(`<div class="w-full h-full bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-lg p-4"><p class="text-sm font-medium text-red-900 dark:text-red-100">Validation Error</p><p class="text-xs text-red-700 dark:text-red-300 mt-1">`), _tmpl$42 = /* @__PURE__ */ web.template(`<span aria-hidden=true>`), _tmpl$43 = /* @__PURE__ */ web.template(`<a rel="noopener noreferrer"><!$><!/><!$><!/>`), _tmpl$44 = /* @__PURE__ */ web.template(`<span class="animate-spin h-4 w-4 border-2 border-current border-t-transparent rounded-full"aria-hidden=true>`), _tmpl$45 = /* @__PURE__ */ web.template(`<button><!$><!/><!$><!/><!$><!/>`), _tmpl$46 = /* @__PURE__ */ web.template(`<p class="text-xs text-red-600 dark:text-red-400 mt-1">Type: <!$><!/>`), _tmpl$47 = /* @__PURE__ */ web.template(`<div class=mt-3><p class="text-xs font-medium text-red-700 dark:text-red-300">Suggestions:</p><ul class="mt-1 text-xs text-red-600 dark:text-red-400 list-disc list-inside">`), _tmpl$48 = /* @__PURE__ */ web.template(`<p class="text-xs text-red-500 dark:text-red-500 mt-2">`), _tmpl$49 = /* @__PURE__ */ web.template(`<div class="relative w-full bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-lg p-4 group"><!$><!/><div class="flex items-start gap-3"><div class="p-2 bg-red-100 dark:bg-red-900/40 rounded-full shrink-0"><svg class="w-5 h-5 text-red-600 dark:text-red-400"fill=none viewBox="0 0 24 24"stroke=currentColor><path stroke-linecap=round stroke-linejoin=round stroke-width=2 d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"></path></svg></div><div class="flex-1 min-w-0"><h4 class="text-sm font-semibold text-red-800 dark:text-red-200">Tool Error: <!$><!/></h4><p class="text-sm text-red-700 dark:text-red-300 mt-1"></p><!$><!/><!$><!/><!$><!/>`), _tmpl$50 = /* @__PURE__ */ web.template(`<li>`), _tmpl$51 = /* @__PURE__ */ web.template(`<div class="px-4 py-2 border-b border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-900"><h3 class="text-sm font-semibold text-gray-900 dark:text-white capitalize">`), _tmpl$52 = /* @__PURE__ */ web.template(`<div class="w-full bg-white dark:bg-gray-800 rounded-lg shadow-sm border border-gray-200 dark:border-gray-700 overflow-hidden"><!$><!/><div class="p-4 prose prose-sm dark:prose-invert max-w-none">`), _tmpl$53 = /* @__PURE__ */ web.template(`<div><div class="grid gap-4"></div><!$><!/>`), _tmpl$54 = /* @__PURE__ */ web.template(`<div>`);
|
|
25
25
|
function CopyButton(props) {
|
|
26
26
|
const [copied, setCopied] = solidJs.createSignal(false);
|
|
27
27
|
const handleCopy = async () => {
|
|
@@ -282,7 +282,6 @@ function TableRenderer(props) {
|
|
|
282
282
|
setSortDir("asc");
|
|
283
283
|
}
|
|
284
284
|
setClientPage(0);
|
|
285
|
-
setProgressivePages(1);
|
|
286
285
|
};
|
|
287
286
|
const sortedRows = solidJs.createMemo(() => {
|
|
288
287
|
var _a;
|
|
@@ -323,7 +322,6 @@ function TableRenderer(props) {
|
|
|
323
322
|
searchTimer = setTimeout(() => {
|
|
324
323
|
setDebouncedQuery(value);
|
|
325
324
|
setClientPage(0);
|
|
326
|
-
setProgressivePages(1);
|
|
327
325
|
}, 200);
|
|
328
326
|
};
|
|
329
327
|
const normalize = (s) => s.normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase();
|
|
@@ -338,28 +336,45 @@ function TableRenderer(props) {
|
|
|
338
336
|
}));
|
|
339
337
|
});
|
|
340
338
|
const isExpanded = ExpandableWrapper.useExpanded();
|
|
341
|
-
const
|
|
342
|
-
const
|
|
343
|
-
const
|
|
339
|
+
const defaultPageSize = () => tableParams.pageSize ?? 25;
|
|
340
|
+
const chatDefault = () => tableParams.chatPageSize ?? Math.min(10, defaultPageSize());
|
|
341
|
+
const [userPageSize, setUserPageSize] = solidJs.createSignal(null);
|
|
342
|
+
const clientPageSize = () => {
|
|
343
|
+
const ups = userPageSize();
|
|
344
|
+
if (ups !== null) return ups;
|
|
345
|
+
return isExpanded() ? defaultPageSize() : chatDefault();
|
|
346
|
+
};
|
|
347
|
+
const showAll = () => userPageSize() === 0;
|
|
344
348
|
const hasServerPagination = () => !!tableParams.pagination;
|
|
345
|
-
const
|
|
346
|
-
const needsClientPagination = () => !hasServerPagination() && clientPageSize() > 0 && filteredRows().length > clientPageSize();
|
|
349
|
+
const needsClientPagination = () => !hasServerPagination() && !showAll() && clientPageSize() > 0 && filteredRows().length > clientPageSize();
|
|
347
350
|
const [clientPage, setClientPage] = solidJs.createSignal(tableParams.initialPage ?? 0);
|
|
348
|
-
const [progressivePages, setProgressivePages] = solidJs.createSignal(1);
|
|
349
351
|
const clientTotalPages = () => needsClientPagination() ? Math.ceil(filteredRows().length / clientPageSize()) : 1;
|
|
350
352
|
const clientVisibleRows = solidJs.createMemo(() => {
|
|
351
|
-
if (!needsClientPagination()) return filteredRows();
|
|
352
|
-
if (isProgressiveMode()) {
|
|
353
|
-
return filteredRows().slice(0, progressivePages() * clientPageSize());
|
|
354
|
-
}
|
|
353
|
+
if (showAll() || !needsClientPagination()) return filteredRows();
|
|
355
354
|
const start = clientPage() * clientPageSize();
|
|
356
355
|
return filteredRows().slice(start, start + clientPageSize());
|
|
357
356
|
});
|
|
358
|
-
const clientRangeStart = () => needsClientPagination() ?
|
|
359
|
-
const clientRangeEnd = () => needsClientPagination() ?
|
|
360
|
-
const
|
|
361
|
-
|
|
362
|
-
|
|
357
|
+
const clientRangeStart = () => needsClientPagination() ? clientPage() * clientPageSize() + 1 : 1;
|
|
358
|
+
const clientRangeEnd = () => needsClientPagination() ? Math.min((clientPage() + 1) * clientPageSize(), filteredRows().length) : filteredRows().length;
|
|
359
|
+
const pageSizeOptions = () => {
|
|
360
|
+
const total = filteredRows().length;
|
|
361
|
+
const opts = [];
|
|
362
|
+
for (const n of [10, 30, 60, 100]) {
|
|
363
|
+
if (n < total) opts.push({
|
|
364
|
+
value: n,
|
|
365
|
+
label: String(n)
|
|
366
|
+
});
|
|
367
|
+
}
|
|
368
|
+
opts.push({
|
|
369
|
+
value: 0,
|
|
370
|
+
label: "All"
|
|
371
|
+
});
|
|
372
|
+
return opts;
|
|
373
|
+
};
|
|
374
|
+
const handlePageSizeChange = (val) => {
|
|
375
|
+
setUserPageSize(val === 0 ? 0 : val);
|
|
376
|
+
setClientPage(0);
|
|
377
|
+
};
|
|
363
378
|
const [virtualizer, setVirtualizer] = solidJs.createSignal(null);
|
|
364
379
|
const [isVirtualizing, setIsVirtualizing] = solidJs.createSignal(false);
|
|
365
380
|
const shouldVirtualize = solidJs.createMemo(() => {
|
|
@@ -553,7 +568,7 @@ ${dataRows}`;
|
|
|
553
568
|
},
|
|
554
569
|
copyLabel: "Copy table (CSV)",
|
|
555
570
|
get children() {
|
|
556
|
-
var _el$29 = web.getNextElement(_tmpl$26), _el$
|
|
571
|
+
var _el$29 = web.getNextElement(_tmpl$26), _el$120 = _el$29.firstChild, [_el$121, _co$28] = web.getNextMarker(_el$120.nextSibling), _el$44 = _el$121.nextSibling, _el$112 = _el$44.firstChild, [_el$113, _co$24] = web.getNextMarker(_el$112.nextSibling), _el$114 = _el$113.nextSibling, [_el$115, _co$25] = web.getNextMarker(_el$114.nextSibling), _el$70 = _el$115.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] = web.getNextMarker(_el$74.nextSibling), _el$116 = _el$70.nextSibling, [_el$117, _co$26] = web.getNextMarker(_el$116.nextSibling), _el$118 = _el$117.nextSibling, [_el$119, _co$27] = web.getNextMarker(_el$118.nextSibling);
|
|
557
572
|
web.insert(_el$29, web.createComponent(solidJs.Show, {
|
|
558
573
|
when: exportable,
|
|
559
574
|
get fallback() {
|
|
@@ -611,7 +626,7 @@ ${dataRows}`;
|
|
|
611
626
|
web.runHydrationEvents();
|
|
612
627
|
return _el$30;
|
|
613
628
|
}
|
|
614
|
-
}), _el$
|
|
629
|
+
}), _el$121, _co$28);
|
|
615
630
|
web.insert(_el$44, web.createComponent(solidJs.Show, {
|
|
616
631
|
get when() {
|
|
617
632
|
return tableParams.title;
|
|
@@ -636,7 +651,7 @@ ${dataRows}`;
|
|
|
636
651
|
}), _el$54, _co$1);
|
|
637
652
|
return _el$45;
|
|
638
653
|
}
|
|
639
|
-
}), _el$
|
|
654
|
+
}), _el$113, _co$24);
|
|
640
655
|
web.insert(_el$44, web.createComponent(solidJs.Show, {
|
|
641
656
|
get when() {
|
|
642
657
|
return isSearchable();
|
|
@@ -677,7 +692,7 @@ ${dataRows}`;
|
|
|
677
692
|
}
|
|
678
693
|
})];
|
|
679
694
|
}
|
|
680
|
-
}), _el$
|
|
695
|
+
}), _el$115, _co$25);
|
|
681
696
|
var _ref$ = scrollContainerRef;
|
|
682
697
|
typeof _ref$ === "function" ? web.use(_ref$, _el$70) : scrollContainerRef = _el$70;
|
|
683
698
|
web.insert(_el$73, web.createComponent(solidJs.For, {
|
|
@@ -685,10 +700,10 @@ ${dataRows}`;
|
|
|
685
700
|
return tableParams.columns;
|
|
686
701
|
},
|
|
687
702
|
children: (column) => (() => {
|
|
688
|
-
var _el$
|
|
689
|
-
web.addEventListener(_el$
|
|
690
|
-
web.insert(_el$
|
|
691
|
-
web.insert(_el$
|
|
703
|
+
var _el$122 = web.getNextElement(_tmpl$27), _el$123 = _el$122.firstChild, _el$125 = _el$123.firstChild, [_el$126, _co$29] = web.getNextMarker(_el$125.nextSibling), _el$124 = _el$126.nextSibling;
|
|
704
|
+
web.addEventListener(_el$122, "click", () => handleSort(column.key));
|
|
705
|
+
web.insert(_el$123, () => column.label, _el$126, _co$29);
|
|
706
|
+
web.insert(_el$124, () => sortIndicator(column.key));
|
|
692
707
|
web.effect((_p$) => {
|
|
693
708
|
var _v$11 = column.width ? {
|
|
694
709
|
width: column.width
|
|
@@ -696,16 +711,16 @@ ${dataRows}`;
|
|
|
696
711
|
"opacity-30": sortKey() !== column.key,
|
|
697
712
|
"opacity-100 text-blue-600 dark:text-blue-400": sortKey() === column.key
|
|
698
713
|
};
|
|
699
|
-
_p$.e = web.style(_el$
|
|
700
|
-
_v$12 !== _p$.t && web.setAttribute(_el$
|
|
701
|
-
_p$.a = web.classList(_el$
|
|
714
|
+
_p$.e = web.style(_el$122, _v$11, _p$.e);
|
|
715
|
+
_v$12 !== _p$.t && web.setAttribute(_el$122, "title", _p$.t = _v$12);
|
|
716
|
+
_p$.a = web.classList(_el$124, _v$13, _p$.a);
|
|
702
717
|
return _p$;
|
|
703
718
|
}, {
|
|
704
719
|
e: void 0,
|
|
705
720
|
t: void 0,
|
|
706
721
|
a: void 0
|
|
707
722
|
});
|
|
708
|
-
return _el$
|
|
723
|
+
return _el$122;
|
|
709
724
|
})()
|
|
710
725
|
}));
|
|
711
726
|
web.insert(_el$71, web.createComponent(solidJs.Show, {
|
|
@@ -730,24 +745,48 @@ ${dataRows}`;
|
|
|
730
745
|
web.insert(_el$77, () => tableParams.pagination.totalRows, _el$88, _co$17);
|
|
731
746
|
return _el$76;
|
|
732
747
|
}
|
|
733
|
-
}), _el$
|
|
748
|
+
}), _el$117, _co$26);
|
|
734
749
|
web.insert(_el$44, web.createComponent(solidJs.Show, {
|
|
735
750
|
get when() {
|
|
736
|
-
return
|
|
751
|
+
return needsClientPagination();
|
|
737
752
|
},
|
|
738
753
|
get children() {
|
|
739
|
-
var _el$89 = web.getNextElement(_tmpl$
|
|
740
|
-
web.insert(_el$90, clientRangeStart, _el$
|
|
741
|
-
web.insert(_el$90, clientRangeEnd, _el$
|
|
742
|
-
web.insert(_el$90, () => filteredRows().length.toLocaleString("fr-FR"), _el$
|
|
743
|
-
_el$
|
|
744
|
-
web.insert(_el$
|
|
745
|
-
web.insert(_el$
|
|
746
|
-
_el$
|
|
754
|
+
var _el$89 = web.getNextElement(_tmpl$25), _el$90 = _el$89.firstChild, _el$93 = _el$90.firstChild, [_el$94, _co$18] = web.getNextMarker(_el$93.nextSibling), _el$91 = _el$94.nextSibling, _el$95 = _el$91.nextSibling, [_el$96, _co$19] = web.getNextMarker(_el$95.nextSibling), _el$92 = _el$96.nextSibling, _el$97 = _el$92.nextSibling, [_el$98, _co$20] = web.getNextMarker(_el$97.nextSibling), _el$99 = _el$90.nextSibling, _el$100 = _el$99.firstChild, _el$101 = _el$100.nextSibling, _el$103 = _el$101.firstChild, [_el$104, _co$21] = web.getNextMarker(_el$103.nextSibling), _el$102 = _el$104.nextSibling, _el$105 = _el$102.nextSibling, [_el$106, _co$22] = web.getNextMarker(_el$105.nextSibling), _el$107 = _el$101.nextSibling, _el$110 = _el$107.nextSibling, [_el$111, _co$23] = web.getNextMarker(_el$110.nextSibling);
|
|
755
|
+
web.insert(_el$90, clientRangeStart, _el$94, _co$18);
|
|
756
|
+
web.insert(_el$90, clientRangeEnd, _el$96, _co$19);
|
|
757
|
+
web.insert(_el$90, () => filteredRows().length.toLocaleString("fr-FR"), _el$98, _co$20);
|
|
758
|
+
_el$100.$$click = () => setClientPage((p) => p - 1);
|
|
759
|
+
web.insert(_el$101, () => clientPage() + 1, _el$104, _co$21);
|
|
760
|
+
web.insert(_el$101, clientTotalPages, _el$106, _co$22);
|
|
761
|
+
_el$107.$$click = () => setClientPage((p) => p + 1);
|
|
762
|
+
web.insert(_el$99, web.createComponent(solidJs.Show, {
|
|
763
|
+
get when() {
|
|
764
|
+
return web.memo(() => !!isExpanded())() && filteredRows().length > 10;
|
|
765
|
+
},
|
|
766
|
+
get children() {
|
|
767
|
+
return [(() => {
|
|
768
|
+
var _el$108 = web.getNextElement(_tmpl$23);
|
|
769
|
+
_el$108.addEventListener("change", (e) => handlePageSizeChange(Number(e.currentTarget.value)));
|
|
770
|
+
web.insert(_el$108, web.createComponent(solidJs.For, {
|
|
771
|
+
get each() {
|
|
772
|
+
return pageSizeOptions();
|
|
773
|
+
},
|
|
774
|
+
children: (opt) => (() => {
|
|
775
|
+
var _el$127 = web.getNextElement(_tmpl$28);
|
|
776
|
+
web.insert(_el$127, () => opt.label);
|
|
777
|
+
web.effect(() => web.setProperty(_el$127, "value", opt.value));
|
|
778
|
+
return _el$127;
|
|
779
|
+
})()
|
|
780
|
+
}));
|
|
781
|
+
web.effect(() => web.setProperty(_el$108, "value", clientPageSize()));
|
|
782
|
+
return _el$108;
|
|
783
|
+
})(), web.getNextElement(_tmpl$24)];
|
|
784
|
+
}
|
|
785
|
+
}), _el$111, _co$23);
|
|
747
786
|
web.effect((_p$) => {
|
|
748
787
|
var _v$8 = clientPage() === 0, _v$9 = clientPage() >= clientTotalPages() - 1;
|
|
749
|
-
_v$8 !== _p$.e && web.setProperty(_el$
|
|
750
|
-
_v$9 !== _p$.t && web.setProperty(_el$
|
|
788
|
+
_v$8 !== _p$.e && web.setProperty(_el$100, "disabled", _p$.e = _v$8);
|
|
789
|
+
_v$9 !== _p$.t && web.setProperty(_el$107, "disabled", _p$.t = _v$9);
|
|
751
790
|
return _p$;
|
|
752
791
|
}, {
|
|
753
792
|
e: void 0,
|
|
@@ -756,40 +795,16 @@ ${dataRows}`;
|
|
|
756
795
|
web.runHydrationEvents();
|
|
757
796
|
return _el$89;
|
|
758
797
|
}
|
|
759
|
-
}), _el$
|
|
760
|
-
web.insert(_el$44, web.createComponent(solidJs.Show, {
|
|
761
|
-
get when() {
|
|
762
|
-
return web.memo(() => !!needsClientPagination())() && isProgressiveMode();
|
|
763
|
-
},
|
|
764
|
-
get children() {
|
|
765
|
-
var _el$110 = web.getNextElement(_tmpl$25), _el$111 = _el$110.firstChild, _el$114 = _el$111.firstChild, [_el$115, _co$23] = web.getNextMarker(_el$114.nextSibling), _el$112 = _el$115.nextSibling, _el$116 = _el$112.nextSibling, [_el$117, _co$24] = web.getNextMarker(_el$116.nextSibling), _el$113 = _el$117.nextSibling, _el$118 = _el$113.nextSibling, [_el$119, _co$25] = web.getNextMarker(_el$118.nextSibling), _el$130 = _el$111.nextSibling, [_el$131, _co$29] = web.getNextMarker(_el$130.nextSibling);
|
|
766
|
-
web.insert(_el$111, clientRangeStart, _el$115, _co$23);
|
|
767
|
-
web.insert(_el$111, clientRangeEnd, _el$117, _co$24);
|
|
768
|
-
web.insert(_el$111, () => filteredRows().length.toLocaleString("fr-FR"), _el$119, _co$25);
|
|
769
|
-
web.insert(_el$110, web.createComponent(solidJs.Show, {
|
|
770
|
-
get when() {
|
|
771
|
-
return progressiveHasMore();
|
|
772
|
-
},
|
|
773
|
-
get children() {
|
|
774
|
-
var _el$120 = web.getNextElement(_tmpl$24), _el$124 = _el$120.firstChild, [_el$125, _co$26] = web.getNextMarker(_el$124.nextSibling), _el$121 = _el$125.nextSibling, _el$126 = _el$121.nextSibling, [_el$127, _co$27] = web.getNextMarker(_el$126.nextSibling), _el$122 = _el$127.nextSibling, _el$128 = _el$122.nextSibling, [_el$129, _co$28] = web.getNextMarker(_el$128.nextSibling);
|
|
775
|
-
_el$129.nextSibling;
|
|
776
|
-
_el$120.$$click = () => setProgressivePages((p) => p + 1);
|
|
777
|
-
web.insert(_el$120, showMoreLabel, _el$125, _co$26);
|
|
778
|
-
web.insert(_el$120, () => Math.min(progressiveRemaining(), clientPageSize()), _el$127, _co$27);
|
|
779
|
-
web.insert(_el$120, () => Math.min(progressiveRemaining(), clientPageSize()) > 1 ? "es" : "e", _el$129, _co$28);
|
|
780
|
-
web.runHydrationEvents();
|
|
781
|
-
return _el$120;
|
|
782
|
-
}
|
|
783
|
-
}), _el$131, _co$29);
|
|
784
|
-
return _el$110;
|
|
785
|
-
}
|
|
786
|
-
}), _el$141, _co$34);
|
|
798
|
+
}), _el$119, _co$27);
|
|
787
799
|
web.effect((_p$) => {
|
|
788
800
|
var _v$0 = isVirtualizing() ? {
|
|
789
801
|
"max-height": "500px",
|
|
790
802
|
"overflow-y": "auto"
|
|
791
803
|
} : clientVisibleRows().length > 8 ? {
|
|
792
|
-
"max-height": isExpanded() ? "
|
|
804
|
+
"max-height": isExpanded() ? "calc(100vh - 180px)" : "400px",
|
|
805
|
+
"overflow-y": "auto"
|
|
806
|
+
} : isExpanded() ? {
|
|
807
|
+
"max-height": "calc(100vh - 180px)",
|
|
793
808
|
"overflow-y": "auto"
|
|
794
809
|
} : {}, _v$1 = tableParams.title || "Data table", _v$10 = tableParams.title ? `${tableId}-title` : void 0;
|
|
795
810
|
_p$.e = web.style(_el$70, _v$0, _p$.e);
|
|
@@ -814,51 +829,51 @@ function MetricRenderer(props) {
|
|
|
814
829
|
return `${title}: ${value}${unit ? " " + unit : ""}`;
|
|
815
830
|
};
|
|
816
831
|
return (() => {
|
|
817
|
-
var _el$
|
|
818
|
-
web.insert(_el$
|
|
832
|
+
var _el$128 = web.getNextElement(_tmpl$32), _el$150 = _el$128.firstChild, [_el$151, _co$35] = web.getNextMarker(_el$150.nextSibling), _el$129 = _el$151.nextSibling, _el$130 = _el$129.firstChild, _el$131 = _el$130.firstChild, _el$132 = _el$131.nextSibling, _el$133 = _el$132.firstChild, _el$135 = _el$133.nextSibling, [_el$136, _co$30] = web.getNextMarker(_el$135.nextSibling), _el$146 = _el$130.nextSibling, [_el$147, _co$33] = web.getNextMarker(_el$146.nextSibling), _el$148 = _el$147.nextSibling, [_el$149, _co$34] = web.getNextMarker(_el$148.nextSibling);
|
|
833
|
+
web.insert(_el$128, web.createComponent(CopyButton, {
|
|
819
834
|
getText: getMetricText,
|
|
820
835
|
title: "Copy metric",
|
|
821
836
|
position: "top-right"
|
|
822
|
-
}), _el$
|
|
823
|
-
web.insert(_el$
|
|
824
|
-
web.insert(_el$
|
|
825
|
-
web.insert(_el$
|
|
837
|
+
}), _el$151, _co$35);
|
|
838
|
+
web.insert(_el$131, () => metricParams.title);
|
|
839
|
+
web.insert(_el$133, () => metricParams.value);
|
|
840
|
+
web.insert(_el$132, web.createComponent(solidJs.Show, {
|
|
826
841
|
get when() {
|
|
827
842
|
return metricParams.unit;
|
|
828
843
|
},
|
|
829
844
|
get children() {
|
|
830
|
-
var _el$
|
|
831
|
-
web.insert(_el$
|
|
832
|
-
return _el$
|
|
845
|
+
var _el$134 = web.getNextElement(_tmpl$29);
|
|
846
|
+
web.insert(_el$134, () => metricParams.unit);
|
|
847
|
+
return _el$134;
|
|
833
848
|
}
|
|
834
|
-
}), _el$
|
|
835
|
-
web.insert(_el$
|
|
849
|
+
}), _el$136, _co$30);
|
|
850
|
+
web.insert(_el$129, web.createComponent(solidJs.Show, {
|
|
836
851
|
get when() {
|
|
837
852
|
return metricParams.trend;
|
|
838
853
|
},
|
|
839
854
|
get children() {
|
|
840
|
-
var _el$
|
|
841
|
-
_el$
|
|
842
|
-
web.insert(_el$
|
|
855
|
+
var _el$137 = web.getNextElement(_tmpl$30), _el$138 = _el$137.firstChild, _el$141 = _el$138.firstChild, [_el$142, _co$31] = web.getNextMarker(_el$141.nextSibling), _el$139 = _el$142.nextSibling, _el$143 = _el$139.nextSibling, [_el$144, _co$32] = web.getNextMarker(_el$143.nextSibling);
|
|
856
|
+
_el$144.nextSibling;
|
|
857
|
+
web.insert(_el$138, (() => {
|
|
843
858
|
var _c$ = web.memo(() => metricParams.trend.direction === "up");
|
|
844
859
|
return () => _c$() ? "�" : metricParams.trend.direction === "down" ? "�" : "�";
|
|
845
|
-
})(), _el$
|
|
846
|
-
web.insert(_el$
|
|
847
|
-
web.effect(() => web.className(_el$
|
|
848
|
-
return _el$
|
|
860
|
+
})(), _el$142, _co$31);
|
|
861
|
+
web.insert(_el$138, () => Math.abs(metricParams.trend.value), _el$144, _co$32);
|
|
862
|
+
web.effect(() => web.className(_el$138, `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"}`));
|
|
863
|
+
return _el$137;
|
|
849
864
|
}
|
|
850
|
-
}), _el$
|
|
851
|
-
web.insert(_el$
|
|
865
|
+
}), _el$147, _co$33);
|
|
866
|
+
web.insert(_el$129, web.createComponent(solidJs.Show, {
|
|
852
867
|
get when() {
|
|
853
868
|
return metricParams.subtitle;
|
|
854
869
|
},
|
|
855
870
|
get children() {
|
|
856
|
-
var _el$
|
|
857
|
-
web.insert(_el$
|
|
858
|
-
return _el$
|
|
871
|
+
var _el$145 = web.getNextElement(_tmpl$31);
|
|
872
|
+
web.insert(_el$145, () => metricParams.subtitle);
|
|
873
|
+
return _el$145;
|
|
859
874
|
}
|
|
860
|
-
}), _el$
|
|
861
|
-
return _el$
|
|
875
|
+
}), _el$149, _co$34);
|
|
876
|
+
return _el$128;
|
|
862
877
|
})();
|
|
863
878
|
}
|
|
864
879
|
function extractImageFromMarkdown(content) {
|
|
@@ -899,62 +914,62 @@ function TextRenderer(props) {
|
|
|
899
914
|
},
|
|
900
915
|
get fallback() {
|
|
901
916
|
return (() => {
|
|
902
|
-
var _el$
|
|
903
|
-
web.insert(_el$
|
|
917
|
+
var _el$152 = web.getNextElement(_tmpl$33), _el$154 = _el$152.firstChild, [_el$155, _co$36] = web.getNextMarker(_el$154.nextSibling), _el$153 = _el$155.nextSibling;
|
|
918
|
+
web.insert(_el$152, web.createComponent(CopyButton, {
|
|
904
919
|
getText: getTextContent,
|
|
905
920
|
title: "Copy text",
|
|
906
921
|
position: "top-right"
|
|
907
|
-
}), _el$
|
|
922
|
+
}), _el$155, _co$36);
|
|
908
923
|
web.effect((_p$) => {
|
|
909
924
|
var _v$14 = `prose prose-sm dark:prose-invert max-w-none ${textParams.className || ""}`, _v$15 = htmlContent();
|
|
910
|
-
_v$14 !== _p$.e && web.className(_el$
|
|
911
|
-
_v$15 !== _p$.t && web.setProperty(_el$
|
|
925
|
+
_v$14 !== _p$.e && web.className(_el$153, _p$.e = _v$14);
|
|
926
|
+
_v$15 !== _p$.t && web.setProperty(_el$153, "innerHTML", _p$.t = _v$15);
|
|
912
927
|
return _p$;
|
|
913
928
|
}, {
|
|
914
929
|
e: void 0,
|
|
915
930
|
t: void 0
|
|
916
931
|
});
|
|
917
|
-
return _el$
|
|
932
|
+
return _el$152;
|
|
918
933
|
})();
|
|
919
934
|
},
|
|
920
935
|
children: (data) => (() => {
|
|
921
|
-
var _el$
|
|
922
|
-
web.insert(_el$
|
|
936
|
+
var _el$156 = web.getNextElement(_tmpl$34), _el$157 = _el$156.firstChild, _el$158 = _el$157.firstChild, _el$159 = _el$158.firstChild, _el$160 = _el$157.nextSibling, _el$161 = _el$160.firstChild;
|
|
937
|
+
web.insert(_el$161, () => data().credit);
|
|
923
938
|
web.effect((_p$) => {
|
|
924
939
|
var _v$16 = data().linkUrl, _v$17 = data().imageUrl, _v$18 = data().alt;
|
|
925
|
-
_v$16 !== _p$.e && web.setAttribute(_el$
|
|
926
|
-
_v$17 !== _p$.t && web.setAttribute(_el$
|
|
927
|
-
_v$18 !== _p$.a && web.setAttribute(_el$
|
|
940
|
+
_v$16 !== _p$.e && web.setAttribute(_el$158, "href", _p$.e = _v$16);
|
|
941
|
+
_v$17 !== _p$.t && web.setAttribute(_el$159, "src", _p$.t = _v$17);
|
|
942
|
+
_v$18 !== _p$.a && web.setAttribute(_el$159, "alt", _p$.a = _v$18);
|
|
928
943
|
return _p$;
|
|
929
944
|
}, {
|
|
930
945
|
e: void 0,
|
|
931
946
|
t: void 0,
|
|
932
947
|
a: void 0
|
|
933
948
|
});
|
|
934
|
-
return _el$
|
|
949
|
+
return _el$156;
|
|
935
950
|
})()
|
|
936
951
|
});
|
|
937
952
|
}
|
|
938
953
|
function IframeRenderer(props) {
|
|
939
954
|
const params = props.component.params;
|
|
940
955
|
return (() => {
|
|
941
|
-
var _el$
|
|
942
|
-
web.insert(_el$
|
|
956
|
+
var _el$162 = web.getNextElement(_tmpl$36), _el$166 = _el$162.firstChild, [_el$167, _co$37] = web.getNextMarker(_el$166.nextSibling), _el$165 = _el$167.nextSibling;
|
|
957
|
+
web.insert(_el$162, web.createComponent(solidJs.Show, {
|
|
943
958
|
get when() {
|
|
944
959
|
return params.title;
|
|
945
960
|
},
|
|
946
961
|
get children() {
|
|
947
|
-
var _el$
|
|
948
|
-
web.insert(_el$
|
|
949
|
-
return _el$
|
|
962
|
+
var _el$163 = web.getNextElement(_tmpl$35), _el$164 = _el$163.firstChild;
|
|
963
|
+
web.insert(_el$164, () => params.title);
|
|
964
|
+
return _el$163;
|
|
950
965
|
}
|
|
951
|
-
}), _el$
|
|
966
|
+
}), _el$167, _co$37);
|
|
952
967
|
web.effect((_p$) => {
|
|
953
968
|
var _v$19 = params.url, _v$20 = params.title || "Embedded content", _v$21 = `height: ${params.height || "400px"}; min-height: 300px;`, _v$22 = validation.getIframeSandbox(params.url);
|
|
954
|
-
_v$19 !== _p$.e && web.setAttribute(_el$
|
|
955
|
-
_v$20 !== _p$.t && web.setAttribute(_el$
|
|
956
|
-
_p$.a = web.style(_el$
|
|
957
|
-
_v$22 !== _p$.o && web.setAttribute(_el$
|
|
969
|
+
_v$19 !== _p$.e && web.setAttribute(_el$165, "src", _p$.e = _v$19);
|
|
970
|
+
_v$20 !== _p$.t && web.setAttribute(_el$165, "title", _p$.t = _v$20);
|
|
971
|
+
_p$.a = web.style(_el$165, _v$21, _p$.a);
|
|
972
|
+
_v$22 !== _p$.o && web.setAttribute(_el$165, "sandbox", _p$.o = _v$22);
|
|
958
973
|
return _p$;
|
|
959
974
|
}, {
|
|
960
975
|
e: void 0,
|
|
@@ -962,30 +977,30 @@ function IframeRenderer(props) {
|
|
|
962
977
|
a: void 0,
|
|
963
978
|
o: void 0
|
|
964
979
|
});
|
|
965
|
-
return _el$
|
|
980
|
+
return _el$162;
|
|
966
981
|
})();
|
|
967
982
|
}
|
|
968
983
|
function ImageRenderer(props) {
|
|
969
984
|
const params = props.component.params;
|
|
970
985
|
return (() => {
|
|
971
|
-
var _el$
|
|
972
|
-
web.insert(_el$
|
|
986
|
+
var _el$168 = web.getNextElement(_tmpl$38), _el$169 = _el$168.firstChild, _el$170 = _el$169.firstChild, _el$171 = _el$170.firstChild, _el$174 = _el$169.nextSibling, [_el$175, _co$38] = web.getNextMarker(_el$174.nextSibling);
|
|
987
|
+
web.insert(_el$168, web.createComponent(solidJs.Show, {
|
|
973
988
|
get when() {
|
|
974
989
|
return params.caption;
|
|
975
990
|
},
|
|
976
991
|
get children() {
|
|
977
|
-
var _el$
|
|
978
|
-
web.insert(_el$
|
|
979
|
-
return _el$
|
|
992
|
+
var _el$172 = web.getNextElement(_tmpl$37), _el$173 = _el$172.firstChild;
|
|
993
|
+
web.insert(_el$173, () => params.caption);
|
|
994
|
+
return _el$172;
|
|
980
995
|
}
|
|
981
|
-
}), _el$
|
|
996
|
+
}), _el$175, _co$38);
|
|
982
997
|
web.effect((_p$) => {
|
|
983
998
|
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";
|
|
984
|
-
_v$23 !== _p$.e && web.className(_el$
|
|
985
|
-
_v$24 !== _p$.t && web.setAttribute(_el$
|
|
986
|
-
_v$25 !== _p$.a && web.setAttribute(_el$
|
|
987
|
-
_v$26 !== _p$.o && web.setAttribute(_el$
|
|
988
|
-
_v$27 !== _p$.i && web.setAttribute(_el$
|
|
999
|
+
_v$23 !== _p$.e && web.className(_el$168, _p$.e = _v$23);
|
|
1000
|
+
_v$24 !== _p$.t && web.setAttribute(_el$170, "href", _p$.t = _v$24);
|
|
1001
|
+
_v$25 !== _p$.a && web.setAttribute(_el$170, "aria-label", _p$.a = _v$25);
|
|
1002
|
+
_v$26 !== _p$.o && web.setAttribute(_el$171, "src", _p$.o = _v$26);
|
|
1003
|
+
_v$27 !== _p$.i && web.setAttribute(_el$171, "alt", _p$.i = _v$27);
|
|
989
1004
|
return _p$;
|
|
990
1005
|
}, {
|
|
991
1006
|
e: void 0,
|
|
@@ -994,30 +1009,30 @@ function ImageRenderer(props) {
|
|
|
994
1009
|
o: void 0,
|
|
995
1010
|
i: void 0
|
|
996
1011
|
});
|
|
997
|
-
return _el$
|
|
1012
|
+
return _el$168;
|
|
998
1013
|
})();
|
|
999
1014
|
}
|
|
1000
1015
|
function LinkRenderer(props) {
|
|
1001
1016
|
const params = props.component.params;
|
|
1002
1017
|
return (() => {
|
|
1003
|
-
var _el$
|
|
1004
|
-
_el$
|
|
1005
|
-
web.insert(_el$
|
|
1006
|
-
web.insert(_el$
|
|
1018
|
+
var _el$176 = web.getNextElement(_tmpl$40), _el$177 = _el$176.firstChild, _el$178 = _el$177.nextSibling, _el$179 = _el$178.firstChild, _el$181 = _el$179.nextSibling, [_el$182, _co$39] = web.getNextMarker(_el$181.nextSibling);
|
|
1019
|
+
_el$176.$$click = (e) => e.stopPropagation();
|
|
1020
|
+
web.insert(_el$179, () => params.label || params.url);
|
|
1021
|
+
web.insert(_el$178, web.createComponent(solidJs.Show, {
|
|
1007
1022
|
get when() {
|
|
1008
1023
|
return params.description;
|
|
1009
1024
|
},
|
|
1010
1025
|
get children() {
|
|
1011
|
-
var _el$
|
|
1012
|
-
web.insert(_el$
|
|
1013
|
-
return _el$
|
|
1026
|
+
var _el$180 = web.getNextElement(_tmpl$39);
|
|
1027
|
+
web.insert(_el$180, () => params.description);
|
|
1028
|
+
return _el$180;
|
|
1014
1029
|
}
|
|
1015
|
-
}), _el$
|
|
1030
|
+
}), _el$182, _co$39);
|
|
1016
1031
|
web.effect((_p$) => {
|
|
1017
1032
|
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 || ""}`;
|
|
1018
|
-
_v$28 !== _p$.e && web.setAttribute(_el$
|
|
1019
|
-
_v$29 !== _p$.t && web.setAttribute(_el$
|
|
1020
|
-
_v$30 !== _p$.a && web.className(_el$
|
|
1033
|
+
_v$28 !== _p$.e && web.setAttribute(_el$176, "href", _p$.e = _v$28);
|
|
1034
|
+
_v$29 !== _p$.t && web.setAttribute(_el$176, "aria-label", _p$.t = _v$29);
|
|
1035
|
+
_v$30 !== _p$.a && web.className(_el$176, _p$.a = _v$30);
|
|
1021
1036
|
return _p$;
|
|
1022
1037
|
}, {
|
|
1023
1038
|
e: void 0,
|
|
@@ -1025,7 +1040,7 @@ function LinkRenderer(props) {
|
|
|
1025
1040
|
a: void 0
|
|
1026
1041
|
});
|
|
1027
1042
|
web.runHydrationEvents();
|
|
1028
|
-
return _el$
|
|
1043
|
+
return _el$176;
|
|
1029
1044
|
})();
|
|
1030
1045
|
}
|
|
1031
1046
|
function ComponentRenderer(props) {
|
|
@@ -1039,12 +1054,12 @@ function ComponentRenderer(props) {
|
|
|
1039
1054
|
details: validation$1.errors
|
|
1040
1055
|
});
|
|
1041
1056
|
return (() => {
|
|
1042
|
-
var _el$
|
|
1043
|
-
web.insert(_el$
|
|
1057
|
+
var _el$183 = web.getNextElement(_tmpl$41), _el$184 = _el$183.firstChild, _el$185 = _el$184.nextSibling;
|
|
1058
|
+
web.insert(_el$185, () => {
|
|
1044
1059
|
var _a2, _b;
|
|
1045
1060
|
return ((_b = (_a2 = validation$1.errors) == null ? void 0 : _a2[0]) == null ? void 0 : _b.message) || "Unknown validation error";
|
|
1046
1061
|
});
|
|
1047
|
-
return _el$
|
|
1062
|
+
return _el$183;
|
|
1048
1063
|
})();
|
|
1049
1064
|
}
|
|
1050
1065
|
return web.createComponent(GenerativeUIErrorBoundary.GenerativeUIErrorBoundary, {
|
|
@@ -1290,27 +1305,27 @@ function ActionRenderer(props) {
|
|
|
1290
1305
|
const isDisabled = () => params.disabled || params.action === "tool-call" && isExecuting();
|
|
1291
1306
|
if (params.type === "link" || params.action === "link") {
|
|
1292
1307
|
return (() => {
|
|
1293
|
-
var _el$
|
|
1294
|
-
_el$
|
|
1295
|
-
web.insert(_el$
|
|
1308
|
+
var _el$186 = web.getNextElement(_tmpl$43), _el$188 = _el$186.firstChild, [_el$189, _co$40] = web.getNextMarker(_el$188.nextSibling), _el$190 = _el$189.nextSibling, [_el$191, _co$41] = web.getNextMarker(_el$190.nextSibling);
|
|
1309
|
+
_el$186.$$click = handleClick;
|
|
1310
|
+
web.insert(_el$186, web.createComponent(solidJs.Show, {
|
|
1296
1311
|
get when() {
|
|
1297
1312
|
return params.icon;
|
|
1298
1313
|
},
|
|
1299
1314
|
get children() {
|
|
1300
|
-
var _el$
|
|
1301
|
-
web.insert(_el$
|
|
1302
|
-
return _el$
|
|
1315
|
+
var _el$187 = web.getNextElement(_tmpl$42);
|
|
1316
|
+
web.insert(_el$187, () => params.icon);
|
|
1317
|
+
return _el$187;
|
|
1303
1318
|
}
|
|
1304
|
-
}), _el$
|
|
1305
|
-
web.insert(_el$
|
|
1319
|
+
}), _el$189, _co$40);
|
|
1320
|
+
web.insert(_el$186, () => params.label, _el$191, _co$41);
|
|
1306
1321
|
web.effect((_p$) => {
|
|
1307
1322
|
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
|
|
1308
1323
|
${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"}
|
|
1309
1324
|
${params.className || ""}`;
|
|
1310
|
-
_v$31 !== _p$.e && web.setAttribute(_el$
|
|
1311
|
-
_v$32 !== _p$.t && web.setAttribute(_el$
|
|
1312
|
-
_v$33 !== _p$.a && web.setAttribute(_el$
|
|
1313
|
-
_v$34 !== _p$.o && web.className(_el$
|
|
1325
|
+
_v$31 !== _p$.e && web.setAttribute(_el$186, "href", _p$.e = _v$31);
|
|
1326
|
+
_v$32 !== _p$.t && web.setAttribute(_el$186, "target", _p$.t = _v$32);
|
|
1327
|
+
_v$33 !== _p$.a && web.setAttribute(_el$186, "aria-label", _p$.a = _v$33);
|
|
1328
|
+
_v$34 !== _p$.o && web.className(_el$186, _p$.o = _v$34);
|
|
1314
1329
|
return _p$;
|
|
1315
1330
|
}, {
|
|
1316
1331
|
e: void 0,
|
|
@@ -1319,42 +1334,42 @@ function ActionRenderer(props) {
|
|
|
1319
1334
|
o: void 0
|
|
1320
1335
|
});
|
|
1321
1336
|
web.runHydrationEvents();
|
|
1322
|
-
return _el$
|
|
1337
|
+
return _el$186;
|
|
1323
1338
|
})();
|
|
1324
1339
|
}
|
|
1325
1340
|
return (() => {
|
|
1326
|
-
var _el$
|
|
1327
|
-
_el$
|
|
1328
|
-
web.insert(_el$
|
|
1341
|
+
var _el$192 = web.getNextElement(_tmpl$45), _el$195 = _el$192.firstChild, [_el$196, _co$42] = web.getNextMarker(_el$195.nextSibling), _el$197 = _el$196.nextSibling, [_el$198, _co$43] = web.getNextMarker(_el$197.nextSibling), _el$199 = _el$198.nextSibling, [_el$200, _co$44] = web.getNextMarker(_el$199.nextSibling);
|
|
1342
|
+
_el$192.$$click = handleClick;
|
|
1343
|
+
web.insert(_el$192, web.createComponent(solidJs.Show, {
|
|
1329
1344
|
get when() {
|
|
1330
1345
|
return web.memo(() => !!isExecuting())() && params.action === "tool-call";
|
|
1331
1346
|
},
|
|
1332
1347
|
get children() {
|
|
1333
|
-
return web.getNextElement(_tmpl$
|
|
1348
|
+
return web.getNextElement(_tmpl$44);
|
|
1334
1349
|
}
|
|
1335
|
-
}), _el$
|
|
1336
|
-
web.insert(_el$
|
|
1350
|
+
}), _el$196, _co$42);
|
|
1351
|
+
web.insert(_el$192, web.createComponent(solidJs.Show, {
|
|
1337
1352
|
get when() {
|
|
1338
1353
|
return web.memo(() => !!params.icon)() && !(isExecuting() && params.action === "tool-call");
|
|
1339
1354
|
},
|
|
1340
1355
|
get children() {
|
|
1341
|
-
var _el$
|
|
1342
|
-
web.insert(_el$
|
|
1343
|
-
return _el$
|
|
1356
|
+
var _el$194 = web.getNextElement(_tmpl$42);
|
|
1357
|
+
web.insert(_el$194, () => params.icon);
|
|
1358
|
+
return _el$194;
|
|
1344
1359
|
}
|
|
1345
|
-
}), _el$
|
|
1346
|
-
web.insert(_el$
|
|
1360
|
+
}), _el$198, _co$43);
|
|
1361
|
+
web.insert(_el$192, () => params.label, _el$200, _co$44);
|
|
1347
1362
|
web.effect((_p$) => {
|
|
1348
1363
|
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
|
|
1349
1364
|
${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"}
|
|
1350
1365
|
${isDisabled() ? "opacity-50 cursor-not-allowed" : ""}
|
|
1351
1366
|
${params.size === "sm" ? "px-3 py-1.5 text-xs" : params.size === "lg" ? "px-6 py-3 text-base" : ""}
|
|
1352
1367
|
${params.className || ""}`;
|
|
1353
|
-
_v$35 !== _p$.e && web.setAttribute(_el$
|
|
1354
|
-
_v$36 !== _p$.t && web.setProperty(_el$
|
|
1355
|
-
_v$37 !== _p$.a && web.setAttribute(_el$
|
|
1356
|
-
_v$38 !== _p$.o && web.setAttribute(_el$
|
|
1357
|
-
_v$39 !== _p$.i && web.className(_el$
|
|
1368
|
+
_v$35 !== _p$.e && web.setAttribute(_el$192, "type", _p$.e = _v$35);
|
|
1369
|
+
_v$36 !== _p$.t && web.setProperty(_el$192, "disabled", _p$.t = _v$36);
|
|
1370
|
+
_v$37 !== _p$.a && web.setAttribute(_el$192, "aria-busy", _p$.a = _v$37);
|
|
1371
|
+
_v$38 !== _p$.o && web.setAttribute(_el$192, "aria-label", _p$.o = _v$38);
|
|
1372
|
+
_v$39 !== _p$.i && web.className(_el$192, _p$.i = _v$39);
|
|
1358
1373
|
return _p$;
|
|
1359
1374
|
}, {
|
|
1360
1375
|
e: void 0,
|
|
@@ -1364,7 +1379,7 @@ function ActionRenderer(props) {
|
|
|
1364
1379
|
i: void 0
|
|
1365
1380
|
});
|
|
1366
1381
|
web.runHydrationEvents();
|
|
1367
|
-
return _el$
|
|
1382
|
+
return _el$192;
|
|
1368
1383
|
})();
|
|
1369
1384
|
}
|
|
1370
1385
|
function ErrorCardRenderer(props) {
|
|
@@ -1372,55 +1387,55 @@ function ErrorCardRenderer(props) {
|
|
|
1372
1387
|
return `Error in ${props.error.tool || "unknown tool"}: ${props.error.message || "Unknown error"}`;
|
|
1373
1388
|
};
|
|
1374
1389
|
return (() => {
|
|
1375
|
-
var _el$
|
|
1376
|
-
web.insert(_el$
|
|
1390
|
+
var _el$201 = web.getNextElement(_tmpl$49), _el$224 = _el$201.firstChild, [_el$225, _co$50] = web.getNextMarker(_el$224.nextSibling), _el$202 = _el$225.nextSibling, _el$203 = _el$202.firstChild, _el$204 = _el$203.nextSibling, _el$205 = _el$204.firstChild, _el$206 = _el$205.firstChild, _el$207 = _el$206.nextSibling, [_el$208, _co$45] = web.getNextMarker(_el$207.nextSibling), _el$209 = _el$205.nextSibling, _el$218 = _el$209.nextSibling, [_el$219, _co$47] = web.getNextMarker(_el$218.nextSibling), _el$220 = _el$219.nextSibling, [_el$221, _co$48] = web.getNextMarker(_el$220.nextSibling), _el$222 = _el$221.nextSibling, [_el$223, _co$49] = web.getNextMarker(_el$222.nextSibling);
|
|
1391
|
+
web.insert(_el$201, web.createComponent(CopyButton, {
|
|
1377
1392
|
getText: getErrorText,
|
|
1378
1393
|
title: "Copy error details",
|
|
1379
1394
|
position: "top-right"
|
|
1380
|
-
}), _el$
|
|
1381
|
-
web.insert(_el$
|
|
1382
|
-
web.insert(_el$
|
|
1383
|
-
web.insert(_el$
|
|
1395
|
+
}), _el$225, _co$50);
|
|
1396
|
+
web.insert(_el$205, () => props.error.tool || "Unknown", _el$208, _co$45);
|
|
1397
|
+
web.insert(_el$209, () => props.error.message || "An error occurred during tool execution");
|
|
1398
|
+
web.insert(_el$204, web.createComponent(solidJs.Show, {
|
|
1384
1399
|
get when() {
|
|
1385
1400
|
return props.error.type;
|
|
1386
1401
|
},
|
|
1387
1402
|
get children() {
|
|
1388
|
-
var _el$
|
|
1389
|
-
web.insert(_el$
|
|
1390
|
-
return _el$
|
|
1403
|
+
var _el$210 = web.getNextElement(_tmpl$46), _el$211 = _el$210.firstChild, _el$212 = _el$211.nextSibling, [_el$213, _co$46] = web.getNextMarker(_el$212.nextSibling);
|
|
1404
|
+
web.insert(_el$210, () => props.error.type, _el$213, _co$46);
|
|
1405
|
+
return _el$210;
|
|
1391
1406
|
}
|
|
1392
|
-
}), _el$
|
|
1393
|
-
web.insert(_el$
|
|
1407
|
+
}), _el$219, _co$47);
|
|
1408
|
+
web.insert(_el$204, web.createComponent(solidJs.Show, {
|
|
1394
1409
|
get when() {
|
|
1395
1410
|
var _a;
|
|
1396
1411
|
return (_a = props.error.suggestions) == null ? void 0 : _a.length;
|
|
1397
1412
|
},
|
|
1398
1413
|
get children() {
|
|
1399
|
-
var _el$
|
|
1400
|
-
web.insert(_el$
|
|
1414
|
+
var _el$214 = web.getNextElement(_tmpl$47), _el$215 = _el$214.firstChild, _el$216 = _el$215.nextSibling;
|
|
1415
|
+
web.insert(_el$216, web.createComponent(solidJs.For, {
|
|
1401
1416
|
get each() {
|
|
1402
1417
|
return props.error.suggestions;
|
|
1403
1418
|
},
|
|
1404
1419
|
children: (suggestion) => (() => {
|
|
1405
|
-
var _el$
|
|
1406
|
-
web.insert(_el$
|
|
1407
|
-
return _el$
|
|
1420
|
+
var _el$226 = web.getNextElement(_tmpl$50);
|
|
1421
|
+
web.insert(_el$226, suggestion);
|
|
1422
|
+
return _el$226;
|
|
1408
1423
|
})()
|
|
1409
1424
|
}));
|
|
1410
|
-
return _el$
|
|
1425
|
+
return _el$214;
|
|
1411
1426
|
}
|
|
1412
|
-
}), _el$
|
|
1413
|
-
web.insert(_el$
|
|
1427
|
+
}), _el$221, _co$48);
|
|
1428
|
+
web.insert(_el$204, web.createComponent(solidJs.Show, {
|
|
1414
1429
|
get when() {
|
|
1415
1430
|
return props.error.timestamp;
|
|
1416
1431
|
},
|
|
1417
1432
|
get children() {
|
|
1418
|
-
var _el$
|
|
1419
|
-
web.insert(_el$
|
|
1420
|
-
return _el$
|
|
1433
|
+
var _el$217 = web.getNextElement(_tmpl$48);
|
|
1434
|
+
web.insert(_el$217, () => new Date(props.error.timestamp).toLocaleString());
|
|
1435
|
+
return _el$217;
|
|
1421
1436
|
}
|
|
1422
|
-
}), _el$
|
|
1423
|
-
return _el$
|
|
1437
|
+
}), _el$223, _co$49);
|
|
1438
|
+
return _el$201;
|
|
1424
1439
|
})();
|
|
1425
1440
|
}
|
|
1426
1441
|
function isErrorResponse(content) {
|
|
@@ -1443,20 +1458,20 @@ function UIResourceHtmlRenderer(props) {
|
|
|
1443
1458
|
return ((_a = props.resource.metadata) == null ? void 0 : _a.title) || ((_b = props.resource.uri) == null ? void 0 : _b.replace("ui://deposium/", "")) || "Resource";
|
|
1444
1459
|
};
|
|
1445
1460
|
return (() => {
|
|
1446
|
-
var _el$
|
|
1447
|
-
web.insert(_el$
|
|
1461
|
+
var _el$227 = web.getNextElement(_tmpl$52), _el$231 = _el$227.firstChild, [_el$232, _co$51] = web.getNextMarker(_el$231.nextSibling), _el$230 = _el$232.nextSibling;
|
|
1462
|
+
web.insert(_el$227, web.createComponent(solidJs.Show, {
|
|
1448
1463
|
get when() {
|
|
1449
1464
|
var _a;
|
|
1450
1465
|
return ((_a = props.resource.metadata) == null ? void 0 : _a.title) || props.resource.uri;
|
|
1451
1466
|
},
|
|
1452
1467
|
get children() {
|
|
1453
|
-
var _el$
|
|
1454
|
-
web.insert(_el$
|
|
1455
|
-
return _el$
|
|
1468
|
+
var _el$228 = web.getNextElement(_tmpl$51), _el$229 = _el$228.firstChild;
|
|
1469
|
+
web.insert(_el$229, resourceTitle);
|
|
1470
|
+
return _el$228;
|
|
1456
1471
|
}
|
|
1457
|
-
}), _el$
|
|
1458
|
-
web.effect(() => web.setProperty(_el$
|
|
1459
|
-
return _el$
|
|
1472
|
+
}), _el$232, _co$51);
|
|
1473
|
+
web.effect(() => web.setProperty(_el$230, "innerHTML", htmlContent()));
|
|
1474
|
+
return _el$227;
|
|
1460
1475
|
})();
|
|
1461
1476
|
}
|
|
1462
1477
|
const UIResourceRenderer = (props) => {
|
|
@@ -1536,24 +1551,24 @@ const UIResourceRenderer = (props) => {
|
|
|
1536
1551
|
return web.createComponent(RenderContext.RenderProvider, {
|
|
1537
1552
|
renderComponent,
|
|
1538
1553
|
get children() {
|
|
1539
|
-
var _el$
|
|
1540
|
-
web.insert(_el$
|
|
1554
|
+
var _el$233 = web.getNextElement(_tmpl$53), _el$234 = _el$233.firstChild, _el$235 = _el$234.nextSibling, [_el$236, _co$52] = web.getNextMarker(_el$235.nextSibling);
|
|
1555
|
+
web.insert(_el$234, web.createComponent(solidJs.For, {
|
|
1541
1556
|
get each() {
|
|
1542
1557
|
return layoutData.components;
|
|
1543
1558
|
},
|
|
1544
1559
|
children: (component) => (() => {
|
|
1545
|
-
var _el$
|
|
1546
|
-
web.insert(_el$
|
|
1560
|
+
var _el$237 = web.getNextElement(_tmpl$54);
|
|
1561
|
+
web.insert(_el$237, web.createComponent(ComponentRenderer, {
|
|
1547
1562
|
component,
|
|
1548
1563
|
get onError() {
|
|
1549
1564
|
return props.onError;
|
|
1550
1565
|
}
|
|
1551
1566
|
}));
|
|
1552
|
-
web.effect((_$p) => web.style(_el$
|
|
1553
|
-
return _el$
|
|
1567
|
+
web.effect((_$p) => web.style(_el$237, getGridStyleString(component), _$p));
|
|
1568
|
+
return _el$237;
|
|
1554
1569
|
})()
|
|
1555
1570
|
}));
|
|
1556
|
-
web.insert(_el$
|
|
1571
|
+
web.insert(_el$233, web.createComponent(solidJs.Show, {
|
|
1557
1572
|
get when() {
|
|
1558
1573
|
return shouldShowAutoFooter();
|
|
1559
1574
|
},
|
|
@@ -1564,17 +1579,17 @@ const UIResourceRenderer = (props) => {
|
|
|
1564
1579
|
}
|
|
1565
1580
|
});
|
|
1566
1581
|
}
|
|
1567
|
-
}), _el$
|
|
1582
|
+
}), _el$236, _co$52);
|
|
1568
1583
|
web.effect((_p$) => {
|
|
1569
1584
|
var _v$40 = `w-full ${props.class || ""}`, _v$41 = gridContainerStyle();
|
|
1570
|
-
_v$40 !== _p$.e && web.className(_el$
|
|
1571
|
-
_p$.t = web.style(_el$
|
|
1585
|
+
_v$40 !== _p$.e && web.className(_el$233, _p$.e = _v$40);
|
|
1586
|
+
_p$.t = web.style(_el$234, _v$41, _p$.t);
|
|
1572
1587
|
return _p$;
|
|
1573
1588
|
}, {
|
|
1574
1589
|
e: void 0,
|
|
1575
1590
|
t: void 0
|
|
1576
1591
|
});
|
|
1577
|
-
return _el$
|
|
1592
|
+
return _el$233;
|
|
1578
1593
|
}
|
|
1579
1594
|
});
|
|
1580
1595
|
};
|