@seed-ship/mcp-ui-solid 6.3.1 → 6.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/CHANGELOG.md +56 -0
  2. package/dist/components/GraphRenderer.cjs +30 -24
  3. package/dist/components/GraphRenderer.cjs.map +1 -1
  4. package/dist/components/GraphRenderer.d.ts.map +1 -1
  5. package/dist/components/GraphRenderer.js +30 -24
  6. package/dist/components/GraphRenderer.js.map +1 -1
  7. package/dist/components/PortalDropdownMenu.cjs +82 -0
  8. package/dist/components/PortalDropdownMenu.cjs.map +1 -0
  9. package/dist/components/PortalDropdownMenu.d.ts +56 -0
  10. package/dist/components/PortalDropdownMenu.d.ts.map +1 -0
  11. package/dist/components/PortalDropdownMenu.js +82 -0
  12. package/dist/components/PortalDropdownMenu.js.map +1 -0
  13. package/dist/components/UIResourceRenderer.cjs +260 -256
  14. package/dist/components/UIResourceRenderer.cjs.map +1 -1
  15. package/dist/components/UIResourceRenderer.d.ts.map +1 -1
  16. package/dist/components/UIResourceRenderer.js +260 -256
  17. package/dist/components/UIResourceRenderer.js.map +1 -1
  18. package/dist/components/index.d.ts +2 -0
  19. package/dist/components/index.d.ts.map +1 -1
  20. package/dist/components.cjs +2 -0
  21. package/dist/components.cjs.map +1 -1
  22. package/dist/components.d.cts +2 -0
  23. package/dist/components.d.ts +2 -0
  24. package/dist/components.js +2 -0
  25. package/dist/components.js.map +1 -1
  26. package/dist/index.cjs +2 -0
  27. package/dist/index.cjs.map +1 -1
  28. package/dist/index.d.cts +2 -0
  29. package/dist/index.d.ts +2 -0
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +2 -0
  32. package/dist/index.js.map +1 -1
  33. package/package.json +1 -1
  34. package/src/components/GraphRenderer.tsx +29 -20
  35. package/src/components/PortalDropdownMenu.test.tsx +113 -0
  36. package/src/components/PortalDropdownMenu.tsx +130 -0
  37. package/src/components/UIResourceRenderer.tsx +22 -13
  38. package/src/components/index.ts +4 -0
  39. package/src/index.ts +2 -0
  40. package/tsconfig.tsbuildinfo +1 -1
@@ -21,10 +21,11 @@ const CodeBlockRenderer = require("./CodeBlockRenderer.cjs");
21
21
  const MapRenderer = require("./MapRenderer.cjs");
22
22
  const GraphRenderer = require("./GraphRenderer.cjs");
23
23
  const ExpandableWrapper = require("./ExpandableWrapper.cjs");
24
+ const PortalDropdownMenu = require("./PortalDropdownMenu.cjs");
24
25
  const RenderContext = require("./RenderContext.cjs");
25
26
  const useAction = require("../hooks/useAction.cjs");
26
27
  const marked_esm = require("../node_modules/.pnpm/marked@16.4.2/node_modules/marked/lib/marked.esm.cjs");
27
- 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 flex-shrink-0"><!$><!/><!$><!/>`), _tmpl$19 = /* @__PURE__ */ web.template(`<button type=button class="absolute right-2 top-1/2 -translate-y-1/2 text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 text-sm"aria-label="Clear search">&times;`), _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><!$><!/>&ndash;<!$><!/> / <!$><!/></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">&#x25C0;</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">&#x25B6;</button><!$><!/>`), _tmpl$26 = /* @__PURE__ */ web.template(`<div><!$><!/><div><!$><!/><!$><!/><div role=region tabindex=0><table class="min-w-full divide-y divide-gray-200 dark:divide-gray-700 border-separate border-spacing-0"><thead class="bg-gray-100 dark:bg-gray-900 sticky top-0 z-10"><tr></tr></thead><!$><!/></table></div><!$><!/><!$><!/>`), _tmpl$27 = /* @__PURE__ */ web.template(`<th scope=col class="px-6 py-3 text-left text-xs font-semibold text-gray-500 dark:text-gray-400 uppercase tracking-wider border-b border-gray-200 dark:border-gray-700 first:pl-6 last:pr-6 bg-gray-100 dark:bg-gray-900 cursor-pointer select-none hover:bg-gray-200 dark:hover:bg-gray-800 transition-colors"><span class="inline-flex items-center gap-1"><!$><!/><span class="text-[10px] leading-none">`), _tmpl$28 = /* @__PURE__ */ web.template(`<option>`), _tmpl$29 = /* @__PURE__ */ web.template(`<span class="ml-2 text-sm font-medium text-gray-500 dark:text-gray-400">`), _tmpl$30 = /* @__PURE__ */ web.template(`<div class="mt-3 flex items-center"><span><!$><!/> <!$><!/>%`), _tmpl$31 = /* @__PURE__ */ web.template(`<p class="mt-2 text-xs text-gray-500 dark:text-gray-400">`), _tmpl$32 = /* @__PURE__ */ web.template(`<div class="relative w-full h-full bg-white dark:bg-gray-800 rounded-lg shadow-sm border border-gray-200 dark:border-gray-700 p-4 group"><!$><!/><div class="flex flex-col h-full justify-between"><div><p class="text-xs font-medium text-gray-500 dark:text-gray-400 uppercase tracking-wide"></p><div class="mt-2 flex items-baseline"><p class="text-2xl font-semibold text-gray-900 dark:text-white"></p><!$><!/></div></div><!$><!/><!$><!/>`), _tmpl$33 = /* @__PURE__ */ web.template(`<div class="relative w-full h-full bg-white dark:bg-gray-800 rounded-lg shadow-sm border border-gray-200 dark:border-gray-700 p-4 group"><!$><!/><div>`), _tmpl$34 = /* @__PURE__ */ web.template(`<div class="w-full h-full bg-white dark:bg-gray-800 rounded-lg shadow-sm border border-gray-200 dark:border-gray-700 overflow-hidden flex flex-col"><div class="flex-1 flex items-center justify-center p-4 bg-gray-50 dark:bg-gray-900 min-h-[200px]"><a target=_blank rel="noopener noreferrer"class=cursor-zoom-in><img class="max-w-full max-h-[400px] object-contain rounded shadow-sm hover:opacity-90 transition-opacity"loading=lazy></a></div><div class="p-3 border-t border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-800"><p class="text-sm text-gray-600 dark:text-gray-400 text-center italic">`, true, false, false), _tmpl$35 = /* @__PURE__ */ web.template(`<div class="px-4 py-2 border-b border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-900"><h3 class="text-sm font-semibold text-gray-900 dark:text-white">`), _tmpl$36 = /* @__PURE__ */ web.template(`<div class="w-full h-full bg-white dark:bg-gray-800 rounded-lg shadow-sm border border-gray-200 dark:border-gray-700 overflow-hidden flex flex-col"><!$><!/><iframe class="w-full border-0 flex-1"loading=lazy>`, true, false, false), _tmpl$37 = /* @__PURE__ */ web.template(`<figcaption class="p-3 border-t border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-800"><p class="text-sm text-gray-600 dark:text-gray-400 text-center">`), _tmpl$38 = /* @__PURE__ */ web.template(`<figure><div class="flex-1 flex items-center justify-center p-4 bg-gray-50 dark:bg-gray-900 min-h-[200px]"><a target=_blank rel="noopener noreferrer"class="cursor-zoom-in focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 rounded"><img class="max-w-full max-h-[500px] object-contain rounded shadow-sm hover:opacity-95 transition-opacity"loading=lazy></a></div><!$><!/>`, true, false, false), _tmpl$39 = /* @__PURE__ */ web.template(`<p class="text-xs text-gray-500 dark:text-gray-400 truncate">`), _tmpl$40 = /* @__PURE__ */ web.template(`<a target=_blank rel="noopener noreferrer"><div class="p-2 bg-blue-50 dark:bg-blue-900/30 rounded-full text-blue-600 dark:text-blue-400 group-hover:bg-blue-100 dark:group-hover:bg-blue-900/50 shrink-0 transition-colors"aria-hidden=true><svg xmlns=http://www.w3.org/2000/svg class="w-5 h-5"viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 stroke-linecap=round stroke-linejoin=round><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></div><div class="flex-1 min-w-0"><h4 class="text-sm font-medium text-gray-900 dark:text-white truncate group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors"></h4><!$><!/></div><svg xmlns=http://www.w3.org/2000/svg class="w-4 h-4 text-gray-400 group-hover:text-gray-600 dark:group-hover:text-gray-300 shrink-0 transition-colors"viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 stroke-linecap=round stroke-linejoin=round aria-hidden=true><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15 3 21 3 21 9"></polyline><line x1=10 y1=14 x2=21 y2=3>`), _tmpl$41 = /* @__PURE__ */ web.template(`<div class="inline-flex items-center gap-1.5 px-2 py-1 rounded-md bg-yellow-50 dark:bg-yellow-900/20 border border-yellow-200 dark:border-yellow-800 text-xs text-yellow-800 dark:text-yellow-200"role=alert aria-label="Component validation warning"><svg xmlns=http://www.w3.org/2000/svg class="w-3.5 h-3.5"viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 stroke-linecap=round stroke-linejoin=round aria-hidden=true><path d="M10.29 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1=12 y1=9 x2=12 y2=13></line><line x1=12 y1=17 x2=12.01 y2=17></line></svg><span>Invalid <!$><!/>`), _tmpl$42 = /* @__PURE__ */ web.template(`<div class="w-full h-full bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-lg p-4"><p class="text-sm font-medium text-red-900 dark:text-red-100">Validation Error</p><p class="text-xs text-red-700 dark:text-red-300 mt-1">`), _tmpl$43 = /* @__PURE__ */ web.template(`<span aria-hidden=true>`), _tmpl$44 = /* @__PURE__ */ web.template(`<a rel="noopener noreferrer"><!$><!/><!$><!/>`), _tmpl$45 = /* @__PURE__ */ web.template(`<span class="animate-spin h-4 w-4 border-2 border-current border-t-transparent rounded-full"aria-hidden=true>`), _tmpl$46 = /* @__PURE__ */ web.template(`<button><!$><!/><!$><!/><!$><!/>`), _tmpl$47 = /* @__PURE__ */ web.template(`<p class="text-xs text-red-600 dark:text-red-400 mt-1">Type: <!$><!/>`), _tmpl$48 = /* @__PURE__ */ web.template(`<div class=mt-3><p class="text-xs font-medium text-red-700 dark:text-red-300">Suggestions:</p><ul class="mt-1 text-xs text-red-600 dark:text-red-400 list-disc list-inside">`), _tmpl$49 = /* @__PURE__ */ web.template(`<p class="text-xs text-red-500 dark:text-red-500 mt-2">`), _tmpl$50 = /* @__PURE__ */ web.template(`<div class="relative w-full bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-lg p-4 group"><!$><!/><div class="flex items-start gap-3"><div class="p-2 bg-red-100 dark:bg-red-900/40 rounded-full shrink-0"><svg class="w-5 h-5 text-red-600 dark:text-red-400"fill=none viewBox="0 0 24 24"stroke=currentColor><path stroke-linecap=round stroke-linejoin=round stroke-width=2 d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"></path></svg></div><div class="flex-1 min-w-0"><h4 class="text-sm font-semibold text-red-800 dark:text-red-200">Tool Error: <!$><!/></h4><p class="text-sm text-red-700 dark:text-red-300 mt-1"></p><!$><!/><!$><!/><!$><!/>`), _tmpl$51 = /* @__PURE__ */ web.template(`<li>`), _tmpl$52 = /* @__PURE__ */ web.template(`<div class="px-4 py-2 border-b border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-900"><h3 class="text-sm font-semibold text-gray-900 dark:text-white capitalize">`), _tmpl$53 = /* @__PURE__ */ web.template(`<div class="w-full bg-white dark:bg-gray-800 rounded-lg shadow-sm border border-gray-200 dark:border-gray-700 overflow-hidden"><!$><!/><div class="p-4 prose prose-sm dark:prose-invert max-w-none">`), _tmpl$54 = /* @__PURE__ */ web.template(`<div><div class="grid gap-4"></div><!$><!/>`), _tmpl$55 = /* @__PURE__ */ web.template(`<div>`);
28
+ var _tmpl$ = /* @__PURE__ */ web.template(`<svg class="w-3 h-3 text-gray-500 dark:text-gray-400"fill=none viewBox="0 0 24 24"stroke=currentColor><path stroke-linecap=round stroke-linejoin=round stroke-width=2 d="M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z">`), _tmpl$2 = /* @__PURE__ */ web.template(`<button>`), _tmpl$3 = /* @__PURE__ */ web.template(`<svg class="w-3 h-3 text-green-500"fill=none viewBox="0 0 24 24"stroke=currentColor><path stroke-linecap=round stroke-linejoin=round stroke-width=2 d="M5 13l4 4L19 7">`), _tmpl$4 = /* @__PURE__ */ web.template(`<div class="p-4 bg-white dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-gray-700"><p class="text-red-500 dark:text-red-400 text-sm">Invalid chart data: missing data.datasets`), _tmpl$5 = /* @__PURE__ */ web.template(`<div class="absolute inset-0 flex items-center justify-center"><div class="animate-spin rounded-full h-8 w-8 border-b-2 border-blue-600">`), _tmpl$6 = /* @__PURE__ */ web.template(`<div class="absolute inset-0 flex items-center justify-center p-4"><div class=text-center><p class="text-red-600 dark:text-red-400 text-sm font-medium">Chart Error</p><p class="text-gray-600 dark:text-gray-400 text-xs mt-1">`), _tmpl$7 = /* @__PURE__ */ web.template(`<h3 class="text-sm font-semibold text-gray-900 dark:text-white mb-3">`), _tmpl$8 = /* @__PURE__ */ web.template(`<div class="w-full h-full p-4"><!$><!/><div class="w-full h-full"role=img><img class="w-full h-auto max-h-[300px] object-contain">`), _tmpl$9 = /* @__PURE__ */ web.template(`<div class="relative w-full h-full min-h-[300px] bg-white dark:bg-gray-800 rounded-lg shadow-sm border border-gray-200 dark:border-gray-700 overflow-hidden"><!$><!/><!$><!/><!$><!/>`), _tmpl$0 = /* @__PURE__ */ web.template(`<tbody class="bg-white dark:bg-gray-800 divide-y divide-gray-200 dark:divide-gray-700">`), _tmpl$1 = /* @__PURE__ */ web.template(`<tr>`), _tmpl$10 = /* @__PURE__ */ web.template(`<td class="px-6 py-4 text-sm text-gray-700 dark:text-gray-200 whitespace-normal break-words leading-relaxed first:pl-6 last:pr-6"><div>`), _tmpl$11 = /* @__PURE__ */ web.template(`<tbody class="bg-white dark:bg-gray-800 relative">`), _tmpl$12 = /* @__PURE__ */ web.template(`<button class="w-full text-left px-3 py-1.5 hover:bg-gray-100 dark:hover:bg-gray-700 text-gray-700 dark:text-gray-300">Copy TSV`), _tmpl$13 = /* @__PURE__ */ web.template(`<button class="w-full text-left px-3 py-1.5 hover:bg-gray-100 dark:hover:bg-gray-700 text-gray-700 dark:text-gray-300">Download CSV`), _tmpl$14 = /* @__PURE__ */ web.template(`<button class="w-full text-left px-3 py-1.5 hover:bg-gray-100 dark:hover:bg-gray-700 text-gray-700 dark:text-gray-300">Download JSON`), _tmpl$15 = /* @__PURE__ */ web.template(`<div class="absolute right-10 top-2 z-10"><button class="opacity-60 hover:opacity-100 px-2 py-1 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-600 rounded-full hover:bg-gray-100 dark:hover:bg-gray-700 transition-all shadow-sm"title="Export table"aria-label="Export table"aria-haspopup=menu><svg class="w-3 h-3 text-gray-500 dark:text-gray-400"fill=none viewBox="0 0 24 24"stroke=currentColor><path stroke-linecap=round stroke-linejoin=round stroke-width=2 d="M12 10v6m0 0l-3-3m3 3l3-3m2 8H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"></path></svg></button><!$><!/>`), _tmpl$16 = /* @__PURE__ */ web.template(`<span class="ml-2 text-xs font-normal text-gray-400">(virtualized: <!$><!/> rows)`), _tmpl$17 = /* @__PURE__ */ web.template(`<h3 class="text-sm font-semibold text-gray-900 dark:text-white mb-3 flex-shrink-0"><!$><!/><!$><!/>`), _tmpl$18 = /* @__PURE__ */ web.template(`<button type=button class="absolute right-2 top-1/2 -translate-y-1/2 text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 text-sm"aria-label="Clear search">&times;`), _tmpl$19 = /* @__PURE__ */ web.template(`<div class="relative mb-3"><span class="absolute left-3 top-1/2 -translate-y-1/2 text-gray-400 pointer-events-none text-sm">🔍</span><input type=text class="w-full max-w-xs min-w-[200px] pl-8 pr-8 py-1.5 text-sm border border-gray-200 dark:border-gray-600 rounded-md bg-white dark:bg-gray-700 text-gray-900 dark:text-white placeholder-gray-400 focus:border-blue-400 focus:ring-1 focus:ring-blue-400 outline-none"><!$><!/>`), _tmpl$20 = /* @__PURE__ */ web.template(`<p class="text-xs text-gray-500 dark:text-gray-400 mb-2"><!$><!/> result<!$><!/> on <!$><!/>`), _tmpl$21 = /* @__PURE__ */ web.template(`<div class="mt-3 flex items-center justify-between text-xs text-gray-500 dark:text-gray-400"><span>Showing <!$><!/> - <!$><!/> of <!$><!/>`), _tmpl$22 = /* @__PURE__ */ web.template(`<select class="ml-2 px-1 py-0.5 text-xs border border-gray-200 dark:border-gray-600 rounded bg-white dark:bg-gray-700 text-gray-700 dark:text-gray-300">`), _tmpl$23 = /* @__PURE__ */ web.template(`<span class=text-gray-400>/ page`), _tmpl$24 = /* @__PURE__ */ web.template(`<div class="mt-3 flex items-center justify-between text-xs text-gray-500 dark:text-gray-400"><span><!$><!/>&ndash;<!$><!/> / <!$><!/></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">&#x25C0;</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">&#x25B6;</button><!$><!/>`), _tmpl$25 = /* @__PURE__ */ web.template(`<div><!$><!/><div><!$><!/><!$><!/><div role=region tabindex=0><table class="min-w-full divide-y divide-gray-200 dark:divide-gray-700 border-separate border-spacing-0"><thead class="bg-gray-100 dark:bg-gray-900 sticky top-0 z-10"><tr></tr></thead><!$><!/></table></div><!$><!/><!$><!/>`), _tmpl$26 = /* @__PURE__ */ web.template(`<th scope=col class="px-6 py-3 text-left text-xs font-semibold text-gray-500 dark:text-gray-400 uppercase tracking-wider border-b border-gray-200 dark:border-gray-700 first:pl-6 last:pr-6 bg-gray-100 dark:bg-gray-900 cursor-pointer select-none hover:bg-gray-200 dark:hover:bg-gray-800 transition-colors"><span class="inline-flex items-center gap-1"><!$><!/><span class="text-[10px] leading-none">`), _tmpl$27 = /* @__PURE__ */ web.template(`<option>`), _tmpl$28 = /* @__PURE__ */ web.template(`<span class="ml-2 text-sm font-medium text-gray-500 dark:text-gray-400">`), _tmpl$29 = /* @__PURE__ */ web.template(`<div class="mt-3 flex items-center"><span><!$><!/> <!$><!/>%`), _tmpl$30 = /* @__PURE__ */ web.template(`<p class="mt-2 text-xs text-gray-500 dark:text-gray-400">`), _tmpl$31 = /* @__PURE__ */ web.template(`<div class="relative w-full h-full bg-white dark:bg-gray-800 rounded-lg shadow-sm border border-gray-200 dark:border-gray-700 p-4 group"><!$><!/><div class="flex flex-col h-full justify-between"><div><p class="text-xs font-medium text-gray-500 dark:text-gray-400 uppercase tracking-wide"></p><div class="mt-2 flex items-baseline"><p class="text-2xl font-semibold text-gray-900 dark:text-white"></p><!$><!/></div></div><!$><!/><!$><!/>`), _tmpl$32 = /* @__PURE__ */ web.template(`<div class="relative w-full h-full bg-white dark:bg-gray-800 rounded-lg shadow-sm border border-gray-200 dark:border-gray-700 p-4 group"><!$><!/><div>`), _tmpl$33 = /* @__PURE__ */ web.template(`<div class="w-full h-full bg-white dark:bg-gray-800 rounded-lg shadow-sm border border-gray-200 dark:border-gray-700 overflow-hidden flex flex-col"><div class="flex-1 flex items-center justify-center p-4 bg-gray-50 dark:bg-gray-900 min-h-[200px]"><a target=_blank rel="noopener noreferrer"class=cursor-zoom-in><img class="max-w-full max-h-[400px] object-contain rounded shadow-sm hover:opacity-90 transition-opacity"loading=lazy></a></div><div class="p-3 border-t border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-800"><p class="text-sm text-gray-600 dark:text-gray-400 text-center italic">`, true, false, false), _tmpl$34 = /* @__PURE__ */ web.template(`<div class="px-4 py-2 border-b border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-900"><h3 class="text-sm font-semibold text-gray-900 dark:text-white">`), _tmpl$35 = /* @__PURE__ */ web.template(`<div class="w-full h-full bg-white dark:bg-gray-800 rounded-lg shadow-sm border border-gray-200 dark:border-gray-700 overflow-hidden flex flex-col"><!$><!/><iframe class="w-full border-0 flex-1"loading=lazy>`, true, false, false), _tmpl$36 = /* @__PURE__ */ web.template(`<figcaption class="p-3 border-t border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-800"><p class="text-sm text-gray-600 dark:text-gray-400 text-center">`), _tmpl$37 = /* @__PURE__ */ web.template(`<figure><div class="flex-1 flex items-center justify-center p-4 bg-gray-50 dark:bg-gray-900 min-h-[200px]"><a target=_blank rel="noopener noreferrer"class="cursor-zoom-in focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 rounded"><img class="max-w-full max-h-[500px] object-contain rounded shadow-sm hover:opacity-95 transition-opacity"loading=lazy></a></div><!$><!/>`, true, false, false), _tmpl$38 = /* @__PURE__ */ web.template(`<p class="text-xs text-gray-500 dark:text-gray-400 truncate">`), _tmpl$39 = /* @__PURE__ */ web.template(`<a target=_blank rel="noopener noreferrer"><div class="p-2 bg-blue-50 dark:bg-blue-900/30 rounded-full text-blue-600 dark:text-blue-400 group-hover:bg-blue-100 dark:group-hover:bg-blue-900/50 shrink-0 transition-colors"aria-hidden=true><svg xmlns=http://www.w3.org/2000/svg class="w-5 h-5"viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 stroke-linecap=round stroke-linejoin=round><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></div><div class="flex-1 min-w-0"><h4 class="text-sm font-medium text-gray-900 dark:text-white truncate group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors"></h4><!$><!/></div><svg xmlns=http://www.w3.org/2000/svg class="w-4 h-4 text-gray-400 group-hover:text-gray-600 dark:group-hover:text-gray-300 shrink-0 transition-colors"viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 stroke-linecap=round stroke-linejoin=round aria-hidden=true><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15 3 21 3 21 9"></polyline><line x1=10 y1=14 x2=21 y2=3>`), _tmpl$40 = /* @__PURE__ */ web.template(`<div class="inline-flex items-center gap-1.5 px-2 py-1 rounded-md bg-yellow-50 dark:bg-yellow-900/20 border border-yellow-200 dark:border-yellow-800 text-xs text-yellow-800 dark:text-yellow-200"role=alert aria-label="Component validation warning"><svg xmlns=http://www.w3.org/2000/svg class="w-3.5 h-3.5"viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 stroke-linecap=round stroke-linejoin=round aria-hidden=true><path d="M10.29 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1=12 y1=9 x2=12 y2=13></line><line x1=12 y1=17 x2=12.01 y2=17></line></svg><span>Invalid <!$><!/>`), _tmpl$41 = /* @__PURE__ */ web.template(`<div class="w-full h-full bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-lg p-4"><p class="text-sm font-medium text-red-900 dark:text-red-100">Validation Error</p><p class="text-xs text-red-700 dark:text-red-300 mt-1">`), _tmpl$42 = /* @__PURE__ */ web.template(`<span aria-hidden=true>`), _tmpl$43 = /* @__PURE__ */ web.template(`<a rel="noopener noreferrer"><!$><!/><!$><!/>`), _tmpl$44 = /* @__PURE__ */ web.template(`<span class="animate-spin h-4 w-4 border-2 border-current border-t-transparent rounded-full"aria-hidden=true>`), _tmpl$45 = /* @__PURE__ */ web.template(`<button><!$><!/><!$><!/><!$><!/>`), _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>`);
28
29
  function CopyButton(props) {
29
30
  const [copied, setCopied] = solidJs.createSignal(false);
30
31
  const handleCopy = async () => {
@@ -523,6 +524,7 @@ ${dataRows}`;
523
524
  const exportFormats = typeof exportable === "object" && (exportable == null ? void 0 : exportable.formats) ? exportable.formats : ["csv", "json"];
524
525
  const exportFilename = typeof exportable === "object" && (exportable == null ? void 0 : exportable.filename) || `table-${Math.random().toString(36).slice(2, 9)}`;
525
526
  const [showExportMenu, setShowExportMenu] = solidJs.createSignal(false);
527
+ let exportTriggerRef;
526
528
  const handleExport = (format) => {
527
529
  setShowExportMenu(false);
528
530
  switch (format) {
@@ -617,7 +619,7 @@ ${dataRows}`;
617
619
  return props.toolbarVariant;
618
620
  },
619
621
  get children() {
620
- 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);
622
+ var _el$29 = web.getNextElement(_tmpl$25), _el$113 = _el$29.firstChild, [_el$114, _co$25] = web.getNextMarker(_el$113.nextSibling), _el$37 = _el$114.nextSibling, _el$105 = _el$37.firstChild, [_el$106, _co$21] = web.getNextMarker(_el$105.nextSibling), _el$107 = _el$106.nextSibling, [_el$108, _co$22] = web.getNextMarker(_el$107.nextSibling), _el$63 = _el$108.nextSibling, _el$64 = _el$63.firstChild, _el$65 = _el$64.firstChild, _el$66 = _el$65.firstChild, _el$67 = _el$65.nextSibling, [_el$68, _co$11] = web.getNextMarker(_el$67.nextSibling), _el$109 = _el$63.nextSibling, [_el$110, _co$23] = web.getNextMarker(_el$109.nextSibling), _el$111 = _el$110.nextSibling, [_el$112, _co$24] = web.getNextMarker(_el$111.nextSibling);
621
623
  web.insert(_el$29, web.createComponent(solidJs.Show, {
622
624
  when: exportable,
623
625
  get fallback() {
@@ -628,131 +630,133 @@ ${dataRows}`;
628
630
  });
629
631
  },
630
632
  get children() {
631
- var _el$30 = web.getNextElement(_tmpl$16), _el$31 = _el$30.firstChild, _el$42 = _el$31.nextSibling, [_el$43, _co$8] = web.getNextMarker(_el$42.nextSibling);
633
+ var _el$30 = web.getNextElement(_tmpl$15), _el$31 = _el$30.firstChild, _el$35 = _el$31.nextSibling, [_el$36, _co$5] = web.getNextMarker(_el$35.nextSibling);
632
634
  _el$31.$$click = () => setShowExportMenu(!showExportMenu());
633
- web.insert(_el$30, web.createComponent(solidJs.Show, {
634
- get when() {
635
+ var _ref$ = exportTriggerRef;
636
+ typeof _ref$ === "function" ? web.use(_ref$, _el$31) : exportTriggerRef = _el$31;
637
+ web.insert(_el$30, web.createComponent(PortalDropdownMenu.PortalDropdownMenu, {
638
+ get open() {
635
639
  return showExportMenu();
636
640
  },
641
+ onClose: () => setShowExportMenu(false),
642
+ trigger: exportTriggerRef,
643
+ width: 144,
637
644
  get children() {
638
- var _el$32 = web.getNextElement(_tmpl$15), _el$36 = _el$32.firstChild, [_el$37, _co$5] = web.getNextMarker(_el$36.nextSibling), _el$38 = _el$37.nextSibling, [_el$39, _co$6] = web.getNextMarker(_el$38.nextSibling), _el$40 = _el$39.nextSibling, [_el$41, _co$7] = web.getNextMarker(_el$40.nextSibling);
639
- web.insert(_el$32, web.createComponent(solidJs.Show, {
645
+ return [web.createComponent(solidJs.Show, {
640
646
  get when() {
641
647
  return exportFormats.includes("tsv");
642
648
  },
643
649
  get children() {
644
- var _el$33 = web.getNextElement(_tmpl$12);
645
- _el$33.$$click = () => handleExport("tsv");
650
+ var _el$32 = web.getNextElement(_tmpl$12);
651
+ _el$32.$$click = () => handleExport("tsv");
646
652
  web.runHydrationEvents();
647
- return _el$33;
653
+ return _el$32;
648
654
  }
649
- }), _el$37, _co$5);
650
- web.insert(_el$32, web.createComponent(solidJs.Show, {
655
+ }), web.createComponent(solidJs.Show, {
651
656
  get when() {
652
657
  return exportFormats.includes("csv");
653
658
  },
654
659
  get children() {
655
- var _el$34 = web.getNextElement(_tmpl$13);
656
- _el$34.$$click = () => handleExport("csv");
660
+ var _el$33 = web.getNextElement(_tmpl$13);
661
+ _el$33.$$click = () => handleExport("csv");
657
662
  web.runHydrationEvents();
658
- return _el$34;
663
+ return _el$33;
659
664
  }
660
- }), _el$39, _co$6);
661
- web.insert(_el$32, web.createComponent(solidJs.Show, {
665
+ }), web.createComponent(solidJs.Show, {
662
666
  get when() {
663
667
  return exportFormats.includes("json");
664
668
  },
665
669
  get children() {
666
- var _el$35 = web.getNextElement(_tmpl$14);
667
- _el$35.$$click = () => handleExport("json");
670
+ var _el$34 = web.getNextElement(_tmpl$14);
671
+ _el$34.$$click = () => handleExport("json");
668
672
  web.runHydrationEvents();
669
- return _el$35;
673
+ return _el$34;
670
674
  }
671
- }), _el$41, _co$7);
672
- return _el$32;
675
+ })];
673
676
  }
674
- }), _el$43, _co$8);
677
+ }), _el$36, _co$5);
678
+ web.effect(() => web.setAttribute(_el$31, "aria-expanded", showExportMenu()));
675
679
  web.runHydrationEvents();
676
680
  return _el$30;
677
681
  }
678
- }), _el$121, _co$28);
679
- web.insert(_el$44, web.createComponent(solidJs.Show, {
682
+ }), _el$114, _co$25);
683
+ web.insert(_el$37, web.createComponent(solidJs.Show, {
680
684
  get when() {
681
685
  return tableParams.title;
682
686
  },
683
687
  get children() {
684
- var _el$45 = web.getNextElement(_tmpl$18), _el$51 = _el$45.firstChild, [_el$52, _co$0] = web.getNextMarker(_el$51.nextSibling), _el$53 = _el$52.nextSibling, [_el$54, _co$1] = web.getNextMarker(_el$53.nextSibling);
685
- web.setAttribute(_el$45, "id", `${tableId}-title`);
686
- web.insert(_el$45, () => tableParams.title, _el$52, _co$0);
687
- web.insert(_el$45, web.createComponent(solidJs.Show, {
688
+ var _el$38 = web.getNextElement(_tmpl$17), _el$44 = _el$38.firstChild, [_el$45, _co$7] = web.getNextMarker(_el$44.nextSibling), _el$46 = _el$45.nextSibling, [_el$47, _co$8] = web.getNextMarker(_el$46.nextSibling);
689
+ web.setAttribute(_el$38, "id", `${tableId}-title`);
690
+ web.insert(_el$38, () => tableParams.title, _el$45, _co$7);
691
+ web.insert(_el$38, web.createComponent(solidJs.Show, {
688
692
  get when() {
689
693
  return isVirtualizing();
690
694
  },
691
695
  get children() {
692
- var _el$46 = web.getNextElement(_tmpl$17), _el$47 = _el$46.firstChild, _el$49 = _el$47.nextSibling, [_el$50, _co$9] = web.getNextMarker(_el$49.nextSibling);
693
- _el$50.nextSibling;
694
- web.insert(_el$46, () => {
696
+ var _el$39 = web.getNextElement(_tmpl$16), _el$40 = _el$39.firstChild, _el$42 = _el$40.nextSibling, [_el$43, _co$6] = web.getNextMarker(_el$42.nextSibling);
697
+ _el$43.nextSibling;
698
+ web.insert(_el$39, () => {
695
699
  var _a;
696
700
  return (_a = tableParams.rows) == null ? void 0 : _a.length;
697
- }, _el$50, _co$9);
698
- return _el$46;
701
+ }, _el$43, _co$6);
702
+ return _el$39;
699
703
  }
700
- }), _el$54, _co$1);
701
- return _el$45;
704
+ }), _el$47, _co$8);
705
+ return _el$38;
702
706
  }
703
- }), _el$113, _co$24);
704
- web.insert(_el$44, web.createComponent(solidJs.Show, {
707
+ }), _el$106, _co$21);
708
+ web.insert(_el$37, web.createComponent(solidJs.Show, {
705
709
  get when() {
706
710
  return isSearchable();
707
711
  },
708
712
  get children() {
709
713
  return [(() => {
710
- var _el$55 = web.getNextElement(_tmpl$20), _el$56 = _el$55.firstChild, _el$57 = _el$56.nextSibling, _el$59 = _el$57.nextSibling, [_el$60, _co$10] = web.getNextMarker(_el$59.nextSibling);
711
- _el$57.$$input = (e) => handleSearch(e.currentTarget.value);
712
- web.insert(_el$55, web.createComponent(solidJs.Show, {
714
+ var _el$48 = web.getNextElement(_tmpl$19), _el$49 = _el$48.firstChild, _el$50 = _el$49.nextSibling, _el$52 = _el$50.nextSibling, [_el$53, _co$9] = web.getNextMarker(_el$52.nextSibling);
715
+ _el$50.$$input = (e) => handleSearch(e.currentTarget.value);
716
+ web.insert(_el$48, web.createComponent(solidJs.Show, {
713
717
  get when() {
714
718
  return searchQuery();
715
719
  },
716
720
  get children() {
717
- var _el$58 = web.getNextElement(_tmpl$19);
718
- _el$58.$$click = () => {
721
+ var _el$51 = web.getNextElement(_tmpl$18);
722
+ _el$51.$$click = () => {
719
723
  handleSearch("");
720
724
  setSearchQuery("");
721
725
  setDebouncedQuery("");
722
726
  };
723
727
  web.runHydrationEvents();
724
- return _el$58;
728
+ return _el$51;
725
729
  }
726
- }), _el$60, _co$10);
727
- web.effect(() => web.setAttribute(_el$57, "placeholder", searchPlaceholder()));
728
- web.effect(() => web.setProperty(_el$57, "value", searchQuery()));
730
+ }), _el$53, _co$9);
731
+ web.effect(() => web.setAttribute(_el$50, "placeholder", searchPlaceholder()));
732
+ web.effect(() => web.setProperty(_el$50, "value", searchQuery()));
729
733
  web.runHydrationEvents();
730
- return _el$55;
734
+ return _el$48;
731
735
  })(), web.createComponent(solidJs.Show, {
732
736
  get when() {
733
737
  return web.memo(() => !!debouncedQuery())() && filteredRows().length !== sortedRows().length;
734
738
  },
735
739
  get children() {
736
- var _el$61 = web.getNextElement(_tmpl$21), _el$64 = _el$61.firstChild, [_el$65, _co$11] = web.getNextMarker(_el$64.nextSibling), _el$62 = _el$65.nextSibling, _el$66 = _el$62.nextSibling, [_el$67, _co$12] = web.getNextMarker(_el$66.nextSibling), _el$63 = _el$67.nextSibling, _el$68 = _el$63.nextSibling, [_el$69, _co$13] = web.getNextMarker(_el$68.nextSibling);
737
- web.insert(_el$61, () => filteredRows().length, _el$65, _co$11);
738
- web.insert(_el$61, () => filteredRows().length !== 1 ? "s" : "", _el$67, _co$12);
739
- web.insert(_el$61, () => sortedRows().length, _el$69, _co$13);
740
- return _el$61;
740
+ var _el$54 = web.getNextElement(_tmpl$20), _el$57 = _el$54.firstChild, [_el$58, _co$0] = web.getNextMarker(_el$57.nextSibling), _el$55 = _el$58.nextSibling, _el$59 = _el$55.nextSibling, [_el$60, _co$1] = web.getNextMarker(_el$59.nextSibling), _el$56 = _el$60.nextSibling, _el$61 = _el$56.nextSibling, [_el$62, _co$10] = web.getNextMarker(_el$61.nextSibling);
741
+ web.insert(_el$54, () => filteredRows().length, _el$58, _co$0);
742
+ web.insert(_el$54, () => filteredRows().length !== 1 ? "s" : "", _el$60, _co$1);
743
+ web.insert(_el$54, () => sortedRows().length, _el$62, _co$10);
744
+ return _el$54;
741
745
  }
742
746
  })];
743
747
  }
744
- }), _el$115, _co$25);
745
- var _ref$ = scrollContainerRef;
746
- typeof _ref$ === "function" ? web.use(_ref$, _el$70) : scrollContainerRef = _el$70;
747
- web.insert(_el$73, web.createComponent(solidJs.For, {
748
+ }), _el$108, _co$22);
749
+ var _ref$2 = scrollContainerRef;
750
+ typeof _ref$2 === "function" ? web.use(_ref$2, _el$63) : scrollContainerRef = _el$63;
751
+ web.insert(_el$66, web.createComponent(solidJs.For, {
748
752
  get each() {
749
753
  return tableParams.columns;
750
754
  },
751
755
  children: (column) => (() => {
752
- 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;
753
- web.addEventListener(_el$122, "click", () => handleSort(column.key));
754
- web.insert(_el$123, () => column.label, _el$126, _co$29);
755
- web.insert(_el$124, () => sortIndicator(column.key));
756
+ var _el$115 = web.getNextElement(_tmpl$26), _el$116 = _el$115.firstChild, _el$118 = _el$116.firstChild, [_el$119, _co$26] = web.getNextMarker(_el$118.nextSibling), _el$117 = _el$119.nextSibling;
757
+ web.addEventListener(_el$115, "click", () => handleSort(column.key));
758
+ web.insert(_el$116, () => column.label, _el$119, _co$26);
759
+ web.insert(_el$117, () => sortIndicator(column.key));
756
760
  web.effect((_p$) => {
757
761
  var _v$14 = column.width ? {
758
762
  width: column.width
@@ -760,19 +764,19 @@ ${dataRows}`;
760
764
  "opacity-30": sortKey() !== column.key,
761
765
  "opacity-100 text-blue-600 dark:text-blue-400": sortKey() === column.key
762
766
  };
763
- _p$.e = web.style(_el$122, _v$14, _p$.e);
764
- _v$15 !== _p$.t && web.setAttribute(_el$122, "title", _p$.t = _v$15);
765
- _p$.a = web.classList(_el$124, _v$16, _p$.a);
767
+ _p$.e = web.style(_el$115, _v$14, _p$.e);
768
+ _v$15 !== _p$.t && web.setAttribute(_el$115, "title", _p$.t = _v$15);
769
+ _p$.a = web.classList(_el$117, _v$16, _p$.a);
766
770
  return _p$;
767
771
  }, {
768
772
  e: void 0,
769
773
  t: void 0,
770
774
  a: void 0
771
775
  });
772
- return _el$122;
776
+ return _el$115;
773
777
  })()
774
778
  }));
775
- web.insert(_el$71, web.createComponent(solidJs.Show, {
779
+ web.insert(_el$64, web.createComponent(solidJs.Show, {
776
780
  get when() {
777
781
  return isVirtualizing();
778
782
  },
@@ -782,69 +786,69 @@ ${dataRows}`;
782
786
  get children() {
783
787
  return web.createComponent(VirtualizedTableBody, {});
784
788
  }
785
- }), _el$75, _co$14);
786
- web.insert(_el$44, web.createComponent(solidJs.Show, {
789
+ }), _el$68, _co$11);
790
+ web.insert(_el$37, web.createComponent(solidJs.Show, {
787
791
  get when() {
788
792
  return tableParams.pagination;
789
793
  },
790
794
  get children() {
791
- var _el$76 = web.getNextElement(_tmpl$22), _el$77 = _el$76.firstChild, _el$78 = _el$77.firstChild, _el$83 = _el$78.nextSibling, [_el$84, _co$15] = web.getNextMarker(_el$83.nextSibling), _el$79 = _el$84.nextSibling, _el$85 = _el$79.nextSibling, [_el$86, _co$16] = web.getNextMarker(_el$85.nextSibling), _el$81 = _el$86.nextSibling, _el$87 = _el$81.nextSibling, [_el$88, _co$17] = web.getNextMarker(_el$87.nextSibling);
792
- web.insert(_el$77, () => tableParams.pagination.currentPage * tableParams.pagination.pageSize + 1, _el$84, _co$15);
793
- web.insert(_el$77, () => Math.min((tableParams.pagination.currentPage + 1) * tableParams.pagination.pageSize, tableParams.pagination.totalRows), _el$86, _co$16);
794
- web.insert(_el$77, () => tableParams.pagination.totalRows, _el$88, _co$17);
795
- return _el$76;
795
+ var _el$69 = web.getNextElement(_tmpl$21), _el$70 = _el$69.firstChild, _el$71 = _el$70.firstChild, _el$76 = _el$71.nextSibling, [_el$77, _co$12] = web.getNextMarker(_el$76.nextSibling), _el$72 = _el$77.nextSibling, _el$78 = _el$72.nextSibling, [_el$79, _co$13] = web.getNextMarker(_el$78.nextSibling), _el$74 = _el$79.nextSibling, _el$80 = _el$74.nextSibling, [_el$81, _co$14] = web.getNextMarker(_el$80.nextSibling);
796
+ web.insert(_el$70, () => tableParams.pagination.currentPage * tableParams.pagination.pageSize + 1, _el$77, _co$12);
797
+ web.insert(_el$70, () => Math.min((tableParams.pagination.currentPage + 1) * tableParams.pagination.pageSize, tableParams.pagination.totalRows), _el$79, _co$13);
798
+ web.insert(_el$70, () => tableParams.pagination.totalRows, _el$81, _co$14);
799
+ return _el$69;
796
800
  }
797
- }), _el$117, _co$26);
798
- web.insert(_el$44, web.createComponent(solidJs.Show, {
801
+ }), _el$110, _co$23);
802
+ web.insert(_el$37, web.createComponent(solidJs.Show, {
799
803
  get when() {
800
804
  return needsClientPagination();
801
805
  },
802
806
  get children() {
803
- 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);
804
- web.insert(_el$90, clientRangeStart, _el$94, _co$18);
805
- web.insert(_el$90, clientRangeEnd, _el$96, _co$19);
806
- web.insert(_el$90, () => filteredRows().length.toLocaleString("fr-FR"), _el$98, _co$20);
807
- _el$100.$$click = () => setClientPage((p) => p - 1);
808
- web.insert(_el$101, () => clientPage() + 1, _el$104, _co$21);
809
- web.insert(_el$101, clientTotalPages, _el$106, _co$22);
810
- _el$107.$$click = () => setClientPage((p) => p + 1);
811
- web.insert(_el$99, web.createComponent(solidJs.Show, {
807
+ var _el$82 = web.getNextElement(_tmpl$24), _el$83 = _el$82.firstChild, _el$86 = _el$83.firstChild, [_el$87, _co$15] = web.getNextMarker(_el$86.nextSibling), _el$84 = _el$87.nextSibling, _el$88 = _el$84.nextSibling, [_el$89, _co$16] = web.getNextMarker(_el$88.nextSibling), _el$85 = _el$89.nextSibling, _el$90 = _el$85.nextSibling, [_el$91, _co$17] = web.getNextMarker(_el$90.nextSibling), _el$92 = _el$83.nextSibling, _el$93 = _el$92.firstChild, _el$94 = _el$93.nextSibling, _el$96 = _el$94.firstChild, [_el$97, _co$18] = web.getNextMarker(_el$96.nextSibling), _el$95 = _el$97.nextSibling, _el$98 = _el$95.nextSibling, [_el$99, _co$19] = web.getNextMarker(_el$98.nextSibling), _el$100 = _el$94.nextSibling, _el$103 = _el$100.nextSibling, [_el$104, _co$20] = web.getNextMarker(_el$103.nextSibling);
808
+ web.insert(_el$83, clientRangeStart, _el$87, _co$15);
809
+ web.insert(_el$83, clientRangeEnd, _el$89, _co$16);
810
+ web.insert(_el$83, () => filteredRows().length.toLocaleString("fr-FR"), _el$91, _co$17);
811
+ _el$93.$$click = () => setClientPage((p) => p - 1);
812
+ web.insert(_el$94, () => clientPage() + 1, _el$97, _co$18);
813
+ web.insert(_el$94, clientTotalPages, _el$99, _co$19);
814
+ _el$100.$$click = () => setClientPage((p) => p + 1);
815
+ web.insert(_el$92, web.createComponent(solidJs.Show, {
812
816
  get when() {
813
817
  return web.memo(() => !!isExpanded())() && filteredRows().length > 10;
814
818
  },
815
819
  get children() {
816
820
  return [(() => {
817
- var _el$108 = web.getNextElement(_tmpl$23);
818
- _el$108.addEventListener("change", (e) => handlePageSizeChange(Number(e.currentTarget.value)));
819
- web.insert(_el$108, web.createComponent(solidJs.For, {
821
+ var _el$101 = web.getNextElement(_tmpl$22);
822
+ _el$101.addEventListener("change", (e) => handlePageSizeChange(Number(e.currentTarget.value)));
823
+ web.insert(_el$101, web.createComponent(solidJs.For, {
820
824
  get each() {
821
825
  return pageSizeOptions();
822
826
  },
823
827
  children: (opt) => (() => {
824
- var _el$127 = web.getNextElement(_tmpl$28);
825
- web.insert(_el$127, () => opt.label);
826
- web.effect(() => web.setProperty(_el$127, "value", opt.value));
827
- return _el$127;
828
+ var _el$120 = web.getNextElement(_tmpl$27);
829
+ web.insert(_el$120, () => opt.label);
830
+ web.effect(() => web.setProperty(_el$120, "value", opt.value));
831
+ return _el$120;
828
832
  })()
829
833
  }));
830
- web.effect(() => web.setProperty(_el$108, "value", clientPageSize()));
831
- return _el$108;
832
- })(), web.getNextElement(_tmpl$24)];
834
+ web.effect(() => web.setProperty(_el$101, "value", clientPageSize()));
835
+ return _el$101;
836
+ })(), web.getNextElement(_tmpl$23)];
833
837
  }
834
- }), _el$111, _co$23);
838
+ }), _el$104, _co$20);
835
839
  web.effect((_p$) => {
836
840
  var _v$8 = clientPage() === 0, _v$9 = clientPage() >= clientTotalPages() - 1;
837
- _v$8 !== _p$.e && web.setProperty(_el$100, "disabled", _p$.e = _v$8);
838
- _v$9 !== _p$.t && web.setProperty(_el$107, "disabled", _p$.t = _v$9);
841
+ _v$8 !== _p$.e && web.setProperty(_el$93, "disabled", _p$.e = _v$8);
842
+ _v$9 !== _p$.t && web.setProperty(_el$100, "disabled", _p$.t = _v$9);
839
843
  return _p$;
840
844
  }, {
841
845
  e: void 0,
842
846
  t: void 0
843
847
  });
844
848
  web.runHydrationEvents();
845
- return _el$89;
849
+ return _el$82;
846
850
  }
847
- }), _el$119, _co$27);
851
+ }), _el$112, _co$24);
848
852
  web.effect((_p$) => {
849
853
  var _v$0 = `relative w-full bg-white dark:bg-gray-800 rounded-lg shadow-sm border border-gray-200 dark:border-gray-700 overflow-hidden group ${isExpanded() ? "flex-1 min-h-0 flex flex-col" : "h-full"}`, _v$1 = `p-4 ${isExpanded() ? "flex-1 min-h-0 flex flex-col" : ""}`, _v$10 = `overflow-x-auto ${isExpanded() ? "flex-1 min-h-0" : ""}`, _v$11 = (
850
854
  // v6.1.0 — when expanded, the scroll container fills the
@@ -877,11 +881,11 @@ ${dataRows}`;
877
881
  })()
878
882
  ), _v$12 = tableParams.title || "Data table", _v$13 = tableParams.title ? `${tableId}-title` : void 0;
879
883
  _v$0 !== _p$.e && web.className(_el$29, _p$.e = _v$0);
880
- _v$1 !== _p$.t && web.className(_el$44, _p$.t = _v$1);
881
- _v$10 !== _p$.a && web.className(_el$70, _p$.a = _v$10);
882
- _p$.o = web.style(_el$70, _v$11, _p$.o);
883
- _v$12 !== _p$.i && web.setAttribute(_el$70, "aria-label", _p$.i = _v$12);
884
- _v$13 !== _p$.n && web.setAttribute(_el$71, "aria-labelledby", _p$.n = _v$13);
884
+ _v$1 !== _p$.t && web.className(_el$37, _p$.t = _v$1);
885
+ _v$10 !== _p$.a && web.className(_el$63, _p$.a = _v$10);
886
+ _p$.o = web.style(_el$63, _v$11, _p$.o);
887
+ _v$12 !== _p$.i && web.setAttribute(_el$63, "aria-label", _p$.i = _v$12);
888
+ _v$13 !== _p$.n && web.setAttribute(_el$64, "aria-labelledby", _p$.n = _v$13);
885
889
  return _p$;
886
890
  }, {
887
891
  e: void 0,
@@ -904,51 +908,51 @@ function MetricRenderer(props) {
904
908
  return `${title}: ${value}${unit ? " " + unit : ""}`;
905
909
  };
906
910
  return (() => {
907
- 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);
908
- web.insert(_el$128, web.createComponent(CopyButton, {
911
+ var _el$121 = web.getNextElement(_tmpl$31), _el$143 = _el$121.firstChild, [_el$144, _co$32] = web.getNextMarker(_el$143.nextSibling), _el$122 = _el$144.nextSibling, _el$123 = _el$122.firstChild, _el$124 = _el$123.firstChild, _el$125 = _el$124.nextSibling, _el$126 = _el$125.firstChild, _el$128 = _el$126.nextSibling, [_el$129, _co$27] = web.getNextMarker(_el$128.nextSibling), _el$139 = _el$123.nextSibling, [_el$140, _co$30] = web.getNextMarker(_el$139.nextSibling), _el$141 = _el$140.nextSibling, [_el$142, _co$31] = web.getNextMarker(_el$141.nextSibling);
912
+ web.insert(_el$121, web.createComponent(CopyButton, {
909
913
  getText: getMetricText,
910
914
  title: "Copy metric",
911
915
  position: "top-right"
912
- }), _el$151, _co$35);
913
- web.insert(_el$131, () => metricParams.title);
914
- web.insert(_el$133, () => metricParams.value);
915
- web.insert(_el$132, web.createComponent(solidJs.Show, {
916
+ }), _el$144, _co$32);
917
+ web.insert(_el$124, () => metricParams.title);
918
+ web.insert(_el$126, () => metricParams.value);
919
+ web.insert(_el$125, web.createComponent(solidJs.Show, {
916
920
  get when() {
917
921
  return metricParams.unit;
918
922
  },
919
923
  get children() {
920
- var _el$134 = web.getNextElement(_tmpl$29);
921
- web.insert(_el$134, () => metricParams.unit);
922
- return _el$134;
924
+ var _el$127 = web.getNextElement(_tmpl$28);
925
+ web.insert(_el$127, () => metricParams.unit);
926
+ return _el$127;
923
927
  }
924
- }), _el$136, _co$30);
925
- web.insert(_el$129, web.createComponent(solidJs.Show, {
928
+ }), _el$129, _co$27);
929
+ web.insert(_el$122, web.createComponent(solidJs.Show, {
926
930
  get when() {
927
931
  return metricParams.trend;
928
932
  },
929
933
  get children() {
930
- 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);
931
- _el$144.nextSibling;
932
- web.insert(_el$138, (() => {
934
+ var _el$130 = web.getNextElement(_tmpl$29), _el$131 = _el$130.firstChild, _el$134 = _el$131.firstChild, [_el$135, _co$28] = web.getNextMarker(_el$134.nextSibling), _el$132 = _el$135.nextSibling, _el$136 = _el$132.nextSibling, [_el$137, _co$29] = web.getNextMarker(_el$136.nextSibling);
935
+ _el$137.nextSibling;
936
+ web.insert(_el$131, (() => {
933
937
  var _c$ = web.memo(() => metricParams.trend.direction === "up");
934
938
  return () => _c$() ? "�" : metricParams.trend.direction === "down" ? "�" : "�";
935
- })(), _el$142, _co$31);
936
- web.insert(_el$138, () => Math.abs(metricParams.trend.value), _el$144, _co$32);
937
- 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"}`));
938
- return _el$137;
939
+ })(), _el$135, _co$28);
940
+ web.insert(_el$131, () => Math.abs(metricParams.trend.value), _el$137, _co$29);
941
+ web.effect(() => web.className(_el$131, `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"}`));
942
+ return _el$130;
939
943
  }
940
- }), _el$147, _co$33);
941
- web.insert(_el$129, web.createComponent(solidJs.Show, {
944
+ }), _el$140, _co$30);
945
+ web.insert(_el$122, web.createComponent(solidJs.Show, {
942
946
  get when() {
943
947
  return metricParams.subtitle;
944
948
  },
945
949
  get children() {
946
- var _el$145 = web.getNextElement(_tmpl$31);
947
- web.insert(_el$145, () => metricParams.subtitle);
948
- return _el$145;
950
+ var _el$138 = web.getNextElement(_tmpl$30);
951
+ web.insert(_el$138, () => metricParams.subtitle);
952
+ return _el$138;
949
953
  }
950
- }), _el$149, _co$34);
951
- return _el$128;
954
+ }), _el$142, _co$31);
955
+ return _el$121;
952
956
  })();
953
957
  }
954
958
  function extractImageFromMarkdown(content) {
@@ -989,62 +993,62 @@ function TextRenderer(props) {
989
993
  },
990
994
  get fallback() {
991
995
  return (() => {
992
- 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;
993
- web.insert(_el$152, web.createComponent(CopyButton, {
996
+ var _el$145 = web.getNextElement(_tmpl$32), _el$147 = _el$145.firstChild, [_el$148, _co$33] = web.getNextMarker(_el$147.nextSibling), _el$146 = _el$148.nextSibling;
997
+ web.insert(_el$145, web.createComponent(CopyButton, {
994
998
  getText: getTextContent,
995
999
  title: "Copy text",
996
1000
  position: "top-right"
997
- }), _el$155, _co$36);
1001
+ }), _el$148, _co$33);
998
1002
  web.effect((_p$) => {
999
1003
  var _v$17 = `prose prose-sm dark:prose-invert max-w-none ${textParams.className || ""}`, _v$18 = htmlContent();
1000
- _v$17 !== _p$.e && web.className(_el$153, _p$.e = _v$17);
1001
- _v$18 !== _p$.t && web.setProperty(_el$153, "innerHTML", _p$.t = _v$18);
1004
+ _v$17 !== _p$.e && web.className(_el$146, _p$.e = _v$17);
1005
+ _v$18 !== _p$.t && web.setProperty(_el$146, "innerHTML", _p$.t = _v$18);
1002
1006
  return _p$;
1003
1007
  }, {
1004
1008
  e: void 0,
1005
1009
  t: void 0
1006
1010
  });
1007
- return _el$152;
1011
+ return _el$145;
1008
1012
  })();
1009
1013
  },
1010
1014
  children: (data) => (() => {
1011
- 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;
1012
- web.insert(_el$161, () => data().credit);
1015
+ var _el$149 = web.getNextElement(_tmpl$33), _el$150 = _el$149.firstChild, _el$151 = _el$150.firstChild, _el$152 = _el$151.firstChild, _el$153 = _el$150.nextSibling, _el$154 = _el$153.firstChild;
1016
+ web.insert(_el$154, () => data().credit);
1013
1017
  web.effect((_p$) => {
1014
1018
  var _v$19 = data().linkUrl, _v$20 = data().imageUrl, _v$21 = data().alt;
1015
- _v$19 !== _p$.e && web.setAttribute(_el$158, "href", _p$.e = _v$19);
1016
- _v$20 !== _p$.t && web.setAttribute(_el$159, "src", _p$.t = _v$20);
1017
- _v$21 !== _p$.a && web.setAttribute(_el$159, "alt", _p$.a = _v$21);
1019
+ _v$19 !== _p$.e && web.setAttribute(_el$151, "href", _p$.e = _v$19);
1020
+ _v$20 !== _p$.t && web.setAttribute(_el$152, "src", _p$.t = _v$20);
1021
+ _v$21 !== _p$.a && web.setAttribute(_el$152, "alt", _p$.a = _v$21);
1018
1022
  return _p$;
1019
1023
  }, {
1020
1024
  e: void 0,
1021
1025
  t: void 0,
1022
1026
  a: void 0
1023
1027
  });
1024
- return _el$156;
1028
+ return _el$149;
1025
1029
  })()
1026
1030
  });
1027
1031
  }
1028
1032
  function IframeRenderer(props) {
1029
1033
  const params = props.component.params;
1030
1034
  return (() => {
1031
- 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;
1032
- web.insert(_el$162, web.createComponent(solidJs.Show, {
1035
+ var _el$155 = web.getNextElement(_tmpl$35), _el$159 = _el$155.firstChild, [_el$160, _co$34] = web.getNextMarker(_el$159.nextSibling), _el$158 = _el$160.nextSibling;
1036
+ web.insert(_el$155, web.createComponent(solidJs.Show, {
1033
1037
  get when() {
1034
1038
  return params.title;
1035
1039
  },
1036
1040
  get children() {
1037
- var _el$163 = web.getNextElement(_tmpl$35), _el$164 = _el$163.firstChild;
1038
- web.insert(_el$164, () => params.title);
1039
- return _el$163;
1041
+ var _el$156 = web.getNextElement(_tmpl$34), _el$157 = _el$156.firstChild;
1042
+ web.insert(_el$157, () => params.title);
1043
+ return _el$156;
1040
1044
  }
1041
- }), _el$167, _co$37);
1045
+ }), _el$160, _co$34);
1042
1046
  web.effect((_p$) => {
1043
1047
  var _v$22 = params.url, _v$23 = params.title || "Embedded content", _v$24 = `height: ${params.height || "400px"}; min-height: 300px;`, _v$25 = validation.getIframeSandbox(params.url);
1044
- _v$22 !== _p$.e && web.setAttribute(_el$165, "src", _p$.e = _v$22);
1045
- _v$23 !== _p$.t && web.setAttribute(_el$165, "title", _p$.t = _v$23);
1046
- _p$.a = web.style(_el$165, _v$24, _p$.a);
1047
- _v$25 !== _p$.o && web.setAttribute(_el$165, "sandbox", _p$.o = _v$25);
1048
+ _v$22 !== _p$.e && web.setAttribute(_el$158, "src", _p$.e = _v$22);
1049
+ _v$23 !== _p$.t && web.setAttribute(_el$158, "title", _p$.t = _v$23);
1050
+ _p$.a = web.style(_el$158, _v$24, _p$.a);
1051
+ _v$25 !== _p$.o && web.setAttribute(_el$158, "sandbox", _p$.o = _v$25);
1048
1052
  return _p$;
1049
1053
  }, {
1050
1054
  e: void 0,
@@ -1052,30 +1056,30 @@ function IframeRenderer(props) {
1052
1056
  a: void 0,
1053
1057
  o: void 0
1054
1058
  });
1055
- return _el$162;
1059
+ return _el$155;
1056
1060
  })();
1057
1061
  }
1058
1062
  function ImageRenderer(props) {
1059
1063
  const params = props.component.params;
1060
1064
  return (() => {
1061
- 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);
1062
- web.insert(_el$168, web.createComponent(solidJs.Show, {
1065
+ var _el$161 = web.getNextElement(_tmpl$37), _el$162 = _el$161.firstChild, _el$163 = _el$162.firstChild, _el$164 = _el$163.firstChild, _el$167 = _el$162.nextSibling, [_el$168, _co$35] = web.getNextMarker(_el$167.nextSibling);
1066
+ web.insert(_el$161, web.createComponent(solidJs.Show, {
1063
1067
  get when() {
1064
1068
  return params.caption;
1065
1069
  },
1066
1070
  get children() {
1067
- var _el$172 = web.getNextElement(_tmpl$37), _el$173 = _el$172.firstChild;
1068
- web.insert(_el$173, () => params.caption);
1069
- return _el$172;
1071
+ var _el$165 = web.getNextElement(_tmpl$36), _el$166 = _el$165.firstChild;
1072
+ web.insert(_el$166, () => params.caption);
1073
+ return _el$165;
1070
1074
  }
1071
- }), _el$175, _co$38);
1075
+ }), _el$168, _co$35);
1072
1076
  web.effect((_p$) => {
1073
1077
  var _v$26 = `w-full h-full bg-white dark:bg-gray-800 rounded-lg shadow-sm border border-gray-200 dark:border-gray-700 overflow-hidden flex flex-col ${params.className || ""}`, _v$27 = params.url, _v$28 = `View full size: ${params.alt || "image"}`, _v$29 = params.url, _v$30 = params.alt || "Image";
1074
- _v$26 !== _p$.e && web.className(_el$168, _p$.e = _v$26);
1075
- _v$27 !== _p$.t && web.setAttribute(_el$170, "href", _p$.t = _v$27);
1076
- _v$28 !== _p$.a && web.setAttribute(_el$170, "aria-label", _p$.a = _v$28);
1077
- _v$29 !== _p$.o && web.setAttribute(_el$171, "src", _p$.o = _v$29);
1078
- _v$30 !== _p$.i && web.setAttribute(_el$171, "alt", _p$.i = _v$30);
1078
+ _v$26 !== _p$.e && web.className(_el$161, _p$.e = _v$26);
1079
+ _v$27 !== _p$.t && web.setAttribute(_el$163, "href", _p$.t = _v$27);
1080
+ _v$28 !== _p$.a && web.setAttribute(_el$163, "aria-label", _p$.a = _v$28);
1081
+ _v$29 !== _p$.o && web.setAttribute(_el$164, "src", _p$.o = _v$29);
1082
+ _v$30 !== _p$.i && web.setAttribute(_el$164, "alt", _p$.i = _v$30);
1079
1083
  return _p$;
1080
1084
  }, {
1081
1085
  e: void 0,
@@ -1084,30 +1088,30 @@ function ImageRenderer(props) {
1084
1088
  o: void 0,
1085
1089
  i: void 0
1086
1090
  });
1087
- return _el$168;
1091
+ return _el$161;
1088
1092
  })();
1089
1093
  }
1090
1094
  function LinkRenderer(props) {
1091
1095
  const params = props.component.params;
1092
1096
  return (() => {
1093
- 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);
1094
- _el$176.$$click = (e) => e.stopPropagation();
1095
- web.insert(_el$179, () => params.label || params.url);
1096
- web.insert(_el$178, web.createComponent(solidJs.Show, {
1097
+ var _el$169 = web.getNextElement(_tmpl$39), _el$170 = _el$169.firstChild, _el$171 = _el$170.nextSibling, _el$172 = _el$171.firstChild, _el$174 = _el$172.nextSibling, [_el$175, _co$36] = web.getNextMarker(_el$174.nextSibling);
1098
+ _el$169.$$click = (e) => e.stopPropagation();
1099
+ web.insert(_el$172, () => params.label || params.url);
1100
+ web.insert(_el$171, web.createComponent(solidJs.Show, {
1097
1101
  get when() {
1098
1102
  return params.description;
1099
1103
  },
1100
1104
  get children() {
1101
- var _el$180 = web.getNextElement(_tmpl$39);
1102
- web.insert(_el$180, () => params.description);
1103
- return _el$180;
1105
+ var _el$173 = web.getNextElement(_tmpl$38);
1106
+ web.insert(_el$173, () => params.description);
1107
+ return _el$173;
1104
1108
  }
1105
- }), _el$182, _co$39);
1109
+ }), _el$175, _co$36);
1106
1110
  web.effect((_p$) => {
1107
1111
  var _v$31 = params.url, _v$32 = `${params.label || "Link"}: ${params.description || params.url} (opens in new tab)`, _v$33 = `flex items-center gap-3 p-4 bg-white dark:bg-gray-800 rounded-lg shadow-sm border border-gray-200 dark:border-gray-700 hover:bg-gray-50 dark:hover:bg-gray-700 transition-colors group h-full focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 ${params.className || ""}`;
1108
- _v$31 !== _p$.e && web.setAttribute(_el$176, "href", _p$.e = _v$31);
1109
- _v$32 !== _p$.t && web.setAttribute(_el$176, "aria-label", _p$.t = _v$32);
1110
- _v$33 !== _p$.a && web.className(_el$176, _p$.a = _v$33);
1112
+ _v$31 !== _p$.e && web.setAttribute(_el$169, "href", _p$.e = _v$31);
1113
+ _v$32 !== _p$.t && web.setAttribute(_el$169, "aria-label", _p$.t = _v$32);
1114
+ _v$33 !== _p$.a && web.className(_el$169, _p$.a = _v$33);
1111
1115
  return _p$;
1112
1116
  }, {
1113
1117
  e: void 0,
@@ -1115,7 +1119,7 @@ function LinkRenderer(props) {
1115
1119
  a: void 0
1116
1120
  });
1117
1121
  web.runHydrationEvents();
1118
- return _el$176;
1122
+ return _el$169;
1119
1123
  })();
1120
1124
  }
1121
1125
  function ComponentRenderer(props) {
@@ -1182,16 +1186,16 @@ function ComponentRenderer(props) {
1182
1186
  }
1183
1187
  if (mode === "inline-warn") {
1184
1188
  return (() => {
1185
- var _el$183 = web.getNextElement(_tmpl$41), _el$184 = _el$183.firstChild, _el$185 = _el$184.nextSibling, _el$186 = _el$185.firstChild, _el$187 = _el$186.nextSibling, [_el$188, _co$40] = web.getNextMarker(_el$187.nextSibling);
1186
- web.setAttribute(_el$183, "title", firstError);
1187
- web.insert(_el$185, () => props.component.type, _el$188, _co$40);
1188
- return _el$183;
1189
+ var _el$176 = web.getNextElement(_tmpl$40), _el$177 = _el$176.firstChild, _el$178 = _el$177.nextSibling, _el$179 = _el$178.firstChild, _el$180 = _el$179.nextSibling, [_el$181, _co$37] = web.getNextMarker(_el$180.nextSibling);
1190
+ web.setAttribute(_el$176, "title", firstError);
1191
+ web.insert(_el$178, () => props.component.type, _el$181, _co$37);
1192
+ return _el$176;
1189
1193
  })();
1190
1194
  }
1191
1195
  return (() => {
1192
- var _el$189 = web.getNextElement(_tmpl$42), _el$190 = _el$189.firstChild, _el$191 = _el$190.nextSibling;
1193
- web.insert(_el$191, firstError);
1194
- return _el$189;
1196
+ var _el$182 = web.getNextElement(_tmpl$41), _el$183 = _el$182.firstChild, _el$184 = _el$183.nextSibling;
1197
+ web.insert(_el$184, firstError);
1198
+ return _el$182;
1195
1199
  })();
1196
1200
  }
1197
1201
  return web.createComponent(GenerativeUIErrorBoundary.GenerativeUIErrorBoundary, {
@@ -1485,27 +1489,27 @@ function ActionRenderer(props) {
1485
1489
  const isDisabled = () => params.disabled || params.action === "tool-call" && isExecuting();
1486
1490
  if (params.type === "link" || params.action === "link") {
1487
1491
  return (() => {
1488
- var _el$192 = web.getNextElement(_tmpl$44), _el$194 = _el$192.firstChild, [_el$195, _co$41] = web.getNextMarker(_el$194.nextSibling), _el$196 = _el$195.nextSibling, [_el$197, _co$42] = web.getNextMarker(_el$196.nextSibling);
1489
- _el$192.$$click = handleClick;
1490
- web.insert(_el$192, web.createComponent(solidJs.Show, {
1492
+ var _el$185 = web.getNextElement(_tmpl$43), _el$187 = _el$185.firstChild, [_el$188, _co$38] = web.getNextMarker(_el$187.nextSibling), _el$189 = _el$188.nextSibling, [_el$190, _co$39] = web.getNextMarker(_el$189.nextSibling);
1493
+ _el$185.$$click = handleClick;
1494
+ web.insert(_el$185, web.createComponent(solidJs.Show, {
1491
1495
  get when() {
1492
1496
  return params.icon;
1493
1497
  },
1494
1498
  get children() {
1495
- var _el$193 = web.getNextElement(_tmpl$43);
1496
- web.insert(_el$193, () => params.icon);
1497
- return _el$193;
1499
+ var _el$186 = web.getNextElement(_tmpl$42);
1500
+ web.insert(_el$186, () => params.icon);
1501
+ return _el$186;
1498
1502
  }
1499
- }), _el$195, _co$41);
1500
- web.insert(_el$192, () => params.label, _el$197, _co$42);
1503
+ }), _el$188, _co$38);
1504
+ web.insert(_el$185, () => params.label, _el$190, _co$39);
1501
1505
  web.effect((_p$) => {
1502
1506
  var _v$34 = params.url || "#", _v$35 = params.url ? "_blank" : void 0, _v$36 = params.ariaLabel || params.label, _v$37 = `inline-flex items-center gap-2 px-4 py-2 rounded-md text-sm font-medium transition-colors focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500
1503
1507
  ${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"}
1504
1508
  ${params.className || ""}`;
1505
- _v$34 !== _p$.e && web.setAttribute(_el$192, "href", _p$.e = _v$34);
1506
- _v$35 !== _p$.t && web.setAttribute(_el$192, "target", _p$.t = _v$35);
1507
- _v$36 !== _p$.a && web.setAttribute(_el$192, "aria-label", _p$.a = _v$36);
1508
- _v$37 !== _p$.o && web.className(_el$192, _p$.o = _v$37);
1509
+ _v$34 !== _p$.e && web.setAttribute(_el$185, "href", _p$.e = _v$34);
1510
+ _v$35 !== _p$.t && web.setAttribute(_el$185, "target", _p$.t = _v$35);
1511
+ _v$36 !== _p$.a && web.setAttribute(_el$185, "aria-label", _p$.a = _v$36);
1512
+ _v$37 !== _p$.o && web.className(_el$185, _p$.o = _v$37);
1509
1513
  return _p$;
1510
1514
  }, {
1511
1515
  e: void 0,
@@ -1514,42 +1518,42 @@ function ActionRenderer(props) {
1514
1518
  o: void 0
1515
1519
  });
1516
1520
  web.runHydrationEvents();
1517
- return _el$192;
1521
+ return _el$185;
1518
1522
  })();
1519
1523
  }
1520
1524
  return (() => {
1521
- var _el$198 = web.getNextElement(_tmpl$46), _el$201 = _el$198.firstChild, [_el$202, _co$43] = web.getNextMarker(_el$201.nextSibling), _el$203 = _el$202.nextSibling, [_el$204, _co$44] = web.getNextMarker(_el$203.nextSibling), _el$205 = _el$204.nextSibling, [_el$206, _co$45] = web.getNextMarker(_el$205.nextSibling);
1522
- _el$198.$$click = handleClick;
1523
- web.insert(_el$198, web.createComponent(solidJs.Show, {
1525
+ var _el$191 = web.getNextElement(_tmpl$45), _el$194 = _el$191.firstChild, [_el$195, _co$40] = web.getNextMarker(_el$194.nextSibling), _el$196 = _el$195.nextSibling, [_el$197, _co$41] = web.getNextMarker(_el$196.nextSibling), _el$198 = _el$197.nextSibling, [_el$199, _co$42] = web.getNextMarker(_el$198.nextSibling);
1526
+ _el$191.$$click = handleClick;
1527
+ web.insert(_el$191, web.createComponent(solidJs.Show, {
1524
1528
  get when() {
1525
1529
  return web.memo(() => !!isExecuting())() && params.action === "tool-call";
1526
1530
  },
1527
1531
  get children() {
1528
- return web.getNextElement(_tmpl$45);
1532
+ return web.getNextElement(_tmpl$44);
1529
1533
  }
1530
- }), _el$202, _co$43);
1531
- web.insert(_el$198, web.createComponent(solidJs.Show, {
1534
+ }), _el$195, _co$40);
1535
+ web.insert(_el$191, web.createComponent(solidJs.Show, {
1532
1536
  get when() {
1533
1537
  return web.memo(() => !!params.icon)() && !(isExecuting() && params.action === "tool-call");
1534
1538
  },
1535
1539
  get children() {
1536
- var _el$200 = web.getNextElement(_tmpl$43);
1537
- web.insert(_el$200, () => params.icon);
1538
- return _el$200;
1540
+ var _el$193 = web.getNextElement(_tmpl$42);
1541
+ web.insert(_el$193, () => params.icon);
1542
+ return _el$193;
1539
1543
  }
1540
- }), _el$204, _co$44);
1541
- web.insert(_el$198, () => params.label, _el$206, _co$45);
1544
+ }), _el$197, _co$41);
1545
+ web.insert(_el$191, () => params.label, _el$199, _co$42);
1542
1546
  web.effect((_p$) => {
1543
1547
  var _v$38 = params.action === "submit" ? "submit" : "button", _v$39 = isDisabled(), _v$40 = isExecuting() && params.action === "tool-call", _v$41 = params.ariaLabel || params.label, _v$42 = `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
1544
1548
  ${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"}
1545
1549
  ${isDisabled() ? "opacity-50 cursor-not-allowed" : ""}
1546
1550
  ${params.size === "sm" ? "px-3 py-1.5 text-xs" : params.size === "lg" ? "px-6 py-3 text-base" : ""}
1547
1551
  ${params.className || ""}`;
1548
- _v$38 !== _p$.e && web.setAttribute(_el$198, "type", _p$.e = _v$38);
1549
- _v$39 !== _p$.t && web.setProperty(_el$198, "disabled", _p$.t = _v$39);
1550
- _v$40 !== _p$.a && web.setAttribute(_el$198, "aria-busy", _p$.a = _v$40);
1551
- _v$41 !== _p$.o && web.setAttribute(_el$198, "aria-label", _p$.o = _v$41);
1552
- _v$42 !== _p$.i && web.className(_el$198, _p$.i = _v$42);
1552
+ _v$38 !== _p$.e && web.setAttribute(_el$191, "type", _p$.e = _v$38);
1553
+ _v$39 !== _p$.t && web.setProperty(_el$191, "disabled", _p$.t = _v$39);
1554
+ _v$40 !== _p$.a && web.setAttribute(_el$191, "aria-busy", _p$.a = _v$40);
1555
+ _v$41 !== _p$.o && web.setAttribute(_el$191, "aria-label", _p$.o = _v$41);
1556
+ _v$42 !== _p$.i && web.className(_el$191, _p$.i = _v$42);
1553
1557
  return _p$;
1554
1558
  }, {
1555
1559
  e: void 0,
@@ -1559,7 +1563,7 @@ function ActionRenderer(props) {
1559
1563
  i: void 0
1560
1564
  });
1561
1565
  web.runHydrationEvents();
1562
- return _el$198;
1566
+ return _el$191;
1563
1567
  })();
1564
1568
  }
1565
1569
  function ErrorCardRenderer(props) {
@@ -1567,55 +1571,55 @@ function ErrorCardRenderer(props) {
1567
1571
  return `Error in ${props.error.tool || "unknown tool"}: ${props.error.message || "Unknown error"}`;
1568
1572
  };
1569
1573
  return (() => {
1570
- var _el$207 = web.getNextElement(_tmpl$50), _el$230 = _el$207.firstChild, [_el$231, _co$51] = web.getNextMarker(_el$230.nextSibling), _el$208 = _el$231.nextSibling, _el$209 = _el$208.firstChild, _el$210 = _el$209.nextSibling, _el$211 = _el$210.firstChild, _el$212 = _el$211.firstChild, _el$213 = _el$212.nextSibling, [_el$214, _co$46] = web.getNextMarker(_el$213.nextSibling), _el$215 = _el$211.nextSibling, _el$224 = _el$215.nextSibling, [_el$225, _co$48] = web.getNextMarker(_el$224.nextSibling), _el$226 = _el$225.nextSibling, [_el$227, _co$49] = web.getNextMarker(_el$226.nextSibling), _el$228 = _el$227.nextSibling, [_el$229, _co$50] = web.getNextMarker(_el$228.nextSibling);
1571
- web.insert(_el$207, web.createComponent(CopyButton, {
1574
+ var _el$200 = web.getNextElement(_tmpl$49), _el$223 = _el$200.firstChild, [_el$224, _co$48] = web.getNextMarker(_el$223.nextSibling), _el$201 = _el$224.nextSibling, _el$202 = _el$201.firstChild, _el$203 = _el$202.nextSibling, _el$204 = _el$203.firstChild, _el$205 = _el$204.firstChild, _el$206 = _el$205.nextSibling, [_el$207, _co$43] = web.getNextMarker(_el$206.nextSibling), _el$208 = _el$204.nextSibling, _el$217 = _el$208.nextSibling, [_el$218, _co$45] = web.getNextMarker(_el$217.nextSibling), _el$219 = _el$218.nextSibling, [_el$220, _co$46] = web.getNextMarker(_el$219.nextSibling), _el$221 = _el$220.nextSibling, [_el$222, _co$47] = web.getNextMarker(_el$221.nextSibling);
1575
+ web.insert(_el$200, web.createComponent(CopyButton, {
1572
1576
  getText: getErrorText,
1573
1577
  title: "Copy error details",
1574
1578
  position: "top-right"
1575
- }), _el$231, _co$51);
1576
- web.insert(_el$211, () => props.error.tool || "Unknown", _el$214, _co$46);
1577
- web.insert(_el$215, () => props.error.message || "An error occurred during tool execution");
1578
- web.insert(_el$210, web.createComponent(solidJs.Show, {
1579
+ }), _el$224, _co$48);
1580
+ web.insert(_el$204, () => props.error.tool || "Unknown", _el$207, _co$43);
1581
+ web.insert(_el$208, () => props.error.message || "An error occurred during tool execution");
1582
+ web.insert(_el$203, web.createComponent(solidJs.Show, {
1579
1583
  get when() {
1580
1584
  return props.error.type;
1581
1585
  },
1582
1586
  get children() {
1583
- var _el$216 = web.getNextElement(_tmpl$47), _el$217 = _el$216.firstChild, _el$218 = _el$217.nextSibling, [_el$219, _co$47] = web.getNextMarker(_el$218.nextSibling);
1584
- web.insert(_el$216, () => props.error.type, _el$219, _co$47);
1585
- return _el$216;
1587
+ var _el$209 = web.getNextElement(_tmpl$46), _el$210 = _el$209.firstChild, _el$211 = _el$210.nextSibling, [_el$212, _co$44] = web.getNextMarker(_el$211.nextSibling);
1588
+ web.insert(_el$209, () => props.error.type, _el$212, _co$44);
1589
+ return _el$209;
1586
1590
  }
1587
- }), _el$225, _co$48);
1588
- web.insert(_el$210, web.createComponent(solidJs.Show, {
1591
+ }), _el$218, _co$45);
1592
+ web.insert(_el$203, web.createComponent(solidJs.Show, {
1589
1593
  get when() {
1590
1594
  var _a;
1591
1595
  return (_a = props.error.suggestions) == null ? void 0 : _a.length;
1592
1596
  },
1593
1597
  get children() {
1594
- var _el$220 = web.getNextElement(_tmpl$48), _el$221 = _el$220.firstChild, _el$222 = _el$221.nextSibling;
1595
- web.insert(_el$222, web.createComponent(solidJs.For, {
1598
+ var _el$213 = web.getNextElement(_tmpl$47), _el$214 = _el$213.firstChild, _el$215 = _el$214.nextSibling;
1599
+ web.insert(_el$215, web.createComponent(solidJs.For, {
1596
1600
  get each() {
1597
1601
  return props.error.suggestions;
1598
1602
  },
1599
1603
  children: (suggestion) => (() => {
1600
- var _el$232 = web.getNextElement(_tmpl$51);
1601
- web.insert(_el$232, suggestion);
1602
- return _el$232;
1604
+ var _el$225 = web.getNextElement(_tmpl$50);
1605
+ web.insert(_el$225, suggestion);
1606
+ return _el$225;
1603
1607
  })()
1604
1608
  }));
1605
- return _el$220;
1609
+ return _el$213;
1606
1610
  }
1607
- }), _el$227, _co$49);
1608
- web.insert(_el$210, web.createComponent(solidJs.Show, {
1611
+ }), _el$220, _co$46);
1612
+ web.insert(_el$203, web.createComponent(solidJs.Show, {
1609
1613
  get when() {
1610
1614
  return props.error.timestamp;
1611
1615
  },
1612
1616
  get children() {
1613
- var _el$223 = web.getNextElement(_tmpl$49);
1614
- web.insert(_el$223, () => new Date(props.error.timestamp).toLocaleString());
1615
- return _el$223;
1617
+ var _el$216 = web.getNextElement(_tmpl$48);
1618
+ web.insert(_el$216, () => new Date(props.error.timestamp).toLocaleString());
1619
+ return _el$216;
1616
1620
  }
1617
- }), _el$229, _co$50);
1618
- return _el$207;
1621
+ }), _el$222, _co$47);
1622
+ return _el$200;
1619
1623
  })();
1620
1624
  }
1621
1625
  function isErrorResponse(content) {
@@ -1638,20 +1642,20 @@ function UIResourceHtmlRenderer(props) {
1638
1642
  return ((_a = props.resource.metadata) == null ? void 0 : _a.title) || ((_b = props.resource.uri) == null ? void 0 : _b.replace("ui://deposium/", "")) || "Resource";
1639
1643
  };
1640
1644
  return (() => {
1641
- var _el$233 = web.getNextElement(_tmpl$53), _el$237 = _el$233.firstChild, [_el$238, _co$52] = web.getNextMarker(_el$237.nextSibling), _el$236 = _el$238.nextSibling;
1642
- web.insert(_el$233, web.createComponent(solidJs.Show, {
1645
+ var _el$226 = web.getNextElement(_tmpl$52), _el$230 = _el$226.firstChild, [_el$231, _co$49] = web.getNextMarker(_el$230.nextSibling), _el$229 = _el$231.nextSibling;
1646
+ web.insert(_el$226, web.createComponent(solidJs.Show, {
1643
1647
  get when() {
1644
1648
  var _a;
1645
1649
  return ((_a = props.resource.metadata) == null ? void 0 : _a.title) || props.resource.uri;
1646
1650
  },
1647
1651
  get children() {
1648
- var _el$234 = web.getNextElement(_tmpl$52), _el$235 = _el$234.firstChild;
1649
- web.insert(_el$235, resourceTitle);
1650
- return _el$234;
1652
+ var _el$227 = web.getNextElement(_tmpl$51), _el$228 = _el$227.firstChild;
1653
+ web.insert(_el$228, resourceTitle);
1654
+ return _el$227;
1651
1655
  }
1652
- }), _el$238, _co$52);
1653
- web.effect(() => web.setProperty(_el$236, "innerHTML", htmlContent()));
1654
- return _el$233;
1656
+ }), _el$231, _co$49);
1657
+ web.effect(() => web.setProperty(_el$229, "innerHTML", htmlContent()));
1658
+ return _el$226;
1655
1659
  })();
1656
1660
  }
1657
1661
  const UIResourceRenderer = (props) => {
@@ -1737,14 +1741,14 @@ const UIResourceRenderer = (props) => {
1737
1741
  return web.createComponent(RenderContext.RenderProvider, {
1738
1742
  renderComponent,
1739
1743
  get children() {
1740
- var _el$239 = web.getNextElement(_tmpl$54), _el$240 = _el$239.firstChild, _el$241 = _el$240.nextSibling, [_el$242, _co$53] = web.getNextMarker(_el$241.nextSibling);
1741
- web.insert(_el$240, web.createComponent(solidJs.For, {
1744
+ var _el$232 = web.getNextElement(_tmpl$53), _el$233 = _el$232.firstChild, _el$234 = _el$233.nextSibling, [_el$235, _co$50] = web.getNextMarker(_el$234.nextSibling);
1745
+ web.insert(_el$233, web.createComponent(solidJs.For, {
1742
1746
  get each() {
1743
1747
  return layoutData.components;
1744
1748
  },
1745
1749
  children: (component) => (() => {
1746
- var _el$243 = web.getNextElement(_tmpl$55);
1747
- web.insert(_el$243, web.createComponent(ComponentRenderer, {
1750
+ var _el$236 = web.getNextElement(_tmpl$54);
1751
+ web.insert(_el$236, web.createComponent(ComponentRenderer, {
1748
1752
  component,
1749
1753
  get onError() {
1750
1754
  return props.onError;
@@ -1756,11 +1760,11 @@ const UIResourceRenderer = (props) => {
1756
1760
  return props.toolbarVariant;
1757
1761
  }
1758
1762
  }));
1759
- web.effect((_$p) => web.style(_el$243, getGridStyleString(component), _$p));
1760
- return _el$243;
1763
+ web.effect((_$p) => web.style(_el$236, getGridStyleString(component), _$p));
1764
+ return _el$236;
1761
1765
  })()
1762
1766
  }));
1763
- web.insert(_el$239, web.createComponent(solidJs.Show, {
1767
+ web.insert(_el$232, web.createComponent(solidJs.Show, {
1764
1768
  get when() {
1765
1769
  return shouldShowAutoFooter();
1766
1770
  },
@@ -1771,17 +1775,17 @@ const UIResourceRenderer = (props) => {
1771
1775
  }
1772
1776
  });
1773
1777
  }
1774
- }), _el$242, _co$53);
1778
+ }), _el$235, _co$50);
1775
1779
  web.effect((_p$) => {
1776
1780
  var _v$43 = `w-full ${props.class || ""}`, _v$44 = gridContainerStyle();
1777
- _v$43 !== _p$.e && web.className(_el$239, _p$.e = _v$43);
1778
- _p$.t = web.style(_el$240, _v$44, _p$.t);
1781
+ _v$43 !== _p$.e && web.className(_el$232, _p$.e = _v$43);
1782
+ _p$.t = web.style(_el$233, _v$44, _p$.t);
1779
1783
  return _p$;
1780
1784
  }, {
1781
1785
  e: void 0,
1782
1786
  t: void 0
1783
1787
  });
1784
- return _el$239;
1788
+ return _el$232;
1785
1789
  }
1786
1790
  });
1787
1791
  };