@feedlog-ai/webcomponents 0.0.36 → 0.0.38

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 (73) hide show
  1. package/README.md +9 -17
  2. package/dist/cjs/feedlog-badge.cjs.entry.js +3 -3
  3. package/dist/cjs/feedlog-button_3.cjs.entry.js +16 -1385
  4. package/dist/cjs/feedlog-card.cjs.entry.js +3 -3
  5. package/dist/cjs/feedlog-issues-client.cjs.entry.js +102 -74
  6. package/dist/cjs/feedlog-issues.cjs.entry.js +4 -11
  7. package/dist/cjs/feedlog-toolkit.cjs.js +2 -2
  8. package/dist/cjs/{index-CXKBwRlh.js → index-prPyjPBk.js} +1 -1
  9. package/dist/cjs/loader.cjs.js +2 -2
  10. package/dist/cjs/purify.es-ppGw41aq.js +1384 -0
  11. package/dist/collection/components/feedlog-badge/feedlog-badge.css +35 -45
  12. package/dist/collection/components/feedlog-badge/feedlog-badge.js +1 -1
  13. package/dist/collection/components/feedlog-button/feedlog-button.css +16 -66
  14. package/dist/collection/components/feedlog-button/feedlog-button.js +1 -1
  15. package/dist/collection/components/feedlog-card/feedlog-card.css +22 -24
  16. package/dist/collection/components/feedlog-card/feedlog-card.js +1 -1
  17. package/dist/collection/components/feedlog-card/feedlog-card.stories.js +1 -1
  18. package/dist/collection/components/feedlog-issue/feedlog-issue.css +99 -187
  19. package/dist/collection/components/feedlog-issue/feedlog-issue.js +1 -1
  20. package/dist/collection/components/feedlog-issue/feedlog-issue.stories.js +19 -19
  21. package/dist/collection/components/feedlog-issues/feedlog-issues.css +34 -63
  22. package/dist/collection/components/feedlog-issues/feedlog-issues.js +2 -14
  23. package/dist/collection/components/feedlog-issues/feedlog-issues.stories.js +72 -52
  24. package/dist/collection/components/feedlog-issues-client/feedlog-issues-client.js +22 -28
  25. package/dist/collection/components/feedlog-issues-list/feedlog-issues-list.js +3 -3
  26. package/dist/collection/utils/markdown.js +6 -1
  27. package/dist/components/feedlog-badge.js +1 -1
  28. package/dist/components/feedlog-button.js +1 -1
  29. package/dist/components/feedlog-card.js +1 -1
  30. package/dist/components/feedlog-issue.js +1 -1
  31. package/dist/components/feedlog-issues-client.js +1 -1
  32. package/dist/components/feedlog-issues-list.js +1 -1
  33. package/dist/components/feedlog-issues.js +1 -1
  34. package/dist/components/index.js +1 -1
  35. package/dist/components/p-BoxVrJId.js +1 -0
  36. package/dist/components/{p-BRjVS8bz.js → p-CvIMO_S7.js} +2 -2
  37. package/dist/components/p-DFD585IK.js +1 -0
  38. package/dist/components/p-I6NOP29P.js +1 -0
  39. package/dist/components/p-fDVosM5p.js +1 -0
  40. package/dist/esm/feedlog-badge.entry.js +3 -3
  41. package/dist/esm/feedlog-button_3.entry.js +15 -1384
  42. package/dist/esm/feedlog-card.entry.js +3 -3
  43. package/dist/esm/feedlog-issues-client.entry.js +102 -74
  44. package/dist/esm/feedlog-issues.entry.js +4 -11
  45. package/dist/esm/feedlog-toolkit.js +3 -3
  46. package/dist/esm/{index-CgNWSmzU.js → index-Cu1eYdKa.js} +1 -1
  47. package/dist/esm/loader.js +3 -3
  48. package/dist/esm/purify.es-Bow7VsVH.js +1381 -0
  49. package/dist/feedlog-toolkit/feedlog-toolkit.css +1 -1
  50. package/dist/feedlog-toolkit/feedlog-toolkit.esm.js +1 -1
  51. package/dist/feedlog-toolkit/p-001d7353.entry.js +1 -0
  52. package/dist/feedlog-toolkit/p-556062d0.entry.js +1 -0
  53. package/dist/feedlog-toolkit/p-62554649.entry.js +1 -0
  54. package/dist/feedlog-toolkit/p-Bow7VsVH.js +2 -0
  55. package/dist/feedlog-toolkit/p-Cu1eYdKa.js +2 -0
  56. package/dist/feedlog-toolkit/p-b558fc9f.entry.js +1 -0
  57. package/dist/feedlog-toolkit/p-ca90ade9.entry.js +1 -0
  58. package/dist/types/components/feedlog-issues/feedlog-issues.d.ts +0 -5
  59. package/dist/types/components/feedlog-issues-client/feedlog-issues-client.d.ts +1 -0
  60. package/dist/types/index.d.ts +1 -1
  61. package/hydrate/index.js +130 -101
  62. package/hydrate/index.mjs +130 -101
  63. package/package.json +4 -7
  64. package/dist/components/p-BBbiSGNf.js +0 -1
  65. package/dist/components/p-CuFKEckF.js +0 -1
  66. package/dist/components/p-DMdb-G26.js +0 -1
  67. package/dist/components/p-DzATWlAC.js +0 -1
  68. package/dist/feedlog-toolkit/p-32663f65.entry.js +0 -1
  69. package/dist/feedlog-toolkit/p-891c349f.entry.js +0 -3
  70. package/dist/feedlog-toolkit/p-CgNWSmzU.js +0 -2
  71. package/dist/feedlog-toolkit/p-b51c95a6.entry.js +0 -1
  72. package/dist/feedlog-toolkit/p-da0268a8.entry.js +0 -1
  73. package/dist/feedlog-toolkit/p-f22117ae.entry.js +0 -1
package/hydrate/index.js CHANGED
@@ -221,7 +221,7 @@ function hydrateFactory($stencilWindow, $stencilHydrateOpts, $stencilHydrateResu
221
221
  const NAMESPACE = 'feedlog-toolkit';
222
222
  const BUILD = /* feedlog-toolkit */ { hotModuleReplacement: false, hydratedSelectorName: "hydrated", slotRelocation: true, state: true, updatable: true};
223
223
 
224
- const globalStyles = ":root{--feedlog-font-size:16px;--feedlog-background:#ffffff;--feedlog-foreground:oklch(0.145 0 0);--feedlog-card:#ffffff;--feedlog-card-foreground:oklch(0.145 0 0);--feedlog-popover:oklch(1 0 0);--feedlog-popover-foreground:oklch(0.145 0 0);--feedlog-primary:#030213;--feedlog-primary-foreground:oklch(1 0 0);--feedlog-secondary:oklch(0.95 0.0058 264.53);--feedlog-secondary-foreground:#030213;--feedlog-muted:#ececf0;--feedlog-muted-foreground:#717182;--feedlog-accent:#e9ebef;--feedlog-accent-foreground:#030213;--feedlog-destructive:#d4183d;--feedlog-destructive-foreground:#ffffff;--feedlog-border:rgba(0, 0, 0, 0.1);--feedlog-input:transparent;--feedlog-input-background:#f3f3f5;--feedlog-switch-background:#cbced4;--feedlog-ring:oklch(0.708 0 0);--feedlog-radius:0.625rem;--feedlog-blue-100:oklch(0.932 0.032 255.585);--feedlog-blue-400:oklch(0.707 0.165 254.624);--feedlog-blue-500:oklch(0.623 0.214 259.815);--feedlog-blue-600:oklch(0.546 0.245 262.881);--feedlog-blue-700:oklch(0.488 0.243 264.376);--feedlog-blue-900:oklch(0.379 0.146 265.522);--feedlog-font-family:ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, 'Liberation Mono', monospace}.dark{--feedlog-background:oklch(0.145 0 0);--feedlog-foreground:oklch(0.985 0 0);--feedlog-card:oklch(0.145 0 0);--feedlog-card-foreground:oklch(0.985 0 0);--feedlog-popover:oklch(0.145 0 0);--feedlog-popover-foreground:oklch(0.985 0 0);--feedlog-primary:oklch(0.985 0 0);--feedlog-primary-foreground:oklch(0.205 0 0);--feedlog-secondary:oklch(0.269 0 0);--feedlog-secondary-foreground:oklch(0.985 0 0);--feedlog-muted:oklch(0.269 0 0);--feedlog-muted-foreground:oklch(0.708 0 0);--feedlog-accent:oklch(0.269 0 0);--feedlog-accent-foreground:oklch(0.985 0 0);--feedlog-destructive:oklch(0.396 0.141 25.723);--feedlog-destructive-foreground:oklch(0.637 0.237 25.331);--feedlog-border:oklch(0.269 0 0);--feedlog-input:oklch(0.269 0 0);--feedlog-ring:oklch(0.439 0 0)}";
224
+ const globalStyles = ":root{--feedlog-background:#ffffff;--feedlog-foreground:#09090b;--feedlog-card:#ffffff;--feedlog-card-foreground:#09090b;--feedlog-popover:#ffffff;--feedlog-popover-foreground:#09090b;--feedlog-primary:#18181b;--feedlog-primary-foreground:#fafafa;--feedlog-secondary:#f4f4f5;--feedlog-secondary-foreground:#18181b;--feedlog-muted:#f4f4f5;--feedlog-muted-foreground:#71717a;--feedlog-accent:#f4f4f5;--feedlog-accent-foreground:#18181b;--feedlog-destructive:#ef4444;--feedlog-destructive-foreground:#fafafa;--feedlog-success:#22c55e;--feedlog-success-foreground:#ffffff;--feedlog-warning:#f59e0b;--feedlog-warning-foreground:#ffffff;--feedlog-border:#f0f0f2;--feedlog-input:#e4e4e7;--feedlog-ring:#18181b;--feedlog-badge-enhancement-bg:#eef2ff;--feedlog-badge-enhancement-text:#4338ca;--feedlog-badge-secondary-bg:#f1f5f9;--feedlog-badge-secondary-text:#475569;--feedlog-badge-destructive-bg:#fef2f2;--feedlog-badge-destructive-text:#b91c1c;--feedlog-space-1:0.25rem;--feedlog-space-2:0.5rem;--feedlog-space-3:0.75rem;--feedlog-space-4:1rem;--feedlog-space-5:1.25rem;--feedlog-space-6:1.5rem;--feedlog-space-8:2rem;--feedlog-space-10:2.5rem;--feedlog-font-family:ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;--feedlog-font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;--feedlog-text-xs:0.75rem;--feedlog-text-sm:0.875rem;--feedlog-text-base:1rem;--feedlog-text-lg:1.125rem;--feedlog-text-xl:1.25rem;--feedlog-font-normal:400;--feedlog-font-medium:500;--feedlog-font-semibold:600;--feedlog-font-bold:700;--feedlog-radius-sm:0.25rem;--feedlog-radius:0.5rem;--feedlog-radius-lg:0.75rem;--feedlog-radius-full:9999px;--feedlog-shadow-sm:0 2px 8px -2px rgba(0, 0, 0, 0.05);--feedlog-shadow:0 4px 20px -2px rgba(0, 0, 0, 0.05);--feedlog-shadow-md:0 8px 30px -4px rgba(0, 0, 0, 0.06)}.dark{--feedlog-background:#09090b;--feedlog-foreground:#fafafa;--feedlog-card:#09090b;--feedlog-card-foreground:#fafafa;--feedlog-popover:#09090b;--feedlog-popover-foreground:#fafafa;--feedlog-primary:#fafafa;--feedlog-primary-foreground:#18181b;--feedlog-secondary:#27272a;--feedlog-secondary-foreground:#fafafa;--feedlog-muted:#27272a;--feedlog-muted-foreground:#a1a1aa;--feedlog-accent:#27272a;--feedlog-accent-foreground:#fafafa;--feedlog-destructive:#7f1d1d;--feedlog-destructive-foreground:#fafafa;--feedlog-success:#14532d;--feedlog-success-foreground:#fafafa;--feedlog-warning:#78350f;--feedlog-warning-foreground:#fafafa;--feedlog-border:#27272a;--feedlog-input:#27272a;--feedlog-ring:#d4d4d8;--feedlog-badge-enhancement-bg:rgba(67, 56, 202, 0.2);--feedlog-badge-enhancement-text:#c7d2fe;--feedlog-badge-secondary-bg:rgba(71, 85, 105, 0.2);--feedlog-badge-secondary-text:#cbd5e1;--feedlog-badge-destructive-bg:rgba(185, 28, 28, 0.2);--feedlog-badge-destructive-text:#fecaca}";
225
225
 
226
226
  /*
227
227
  Stencil Hydrate Platform v4.40.1 | MIT Licensed | https://stenciljs.com
@@ -4973,7 +4973,7 @@ var setScopedSSR = (opts) => {
4973
4973
  var needsScopedSSR = () => scopedSSR;
4974
4974
  var scopedSSR = false;
4975
4975
 
4976
- const feedlogBadgeCss = () => `:host{display:inline-block;--feedlog-badge-font-size:0.75rem;--feedlog-badge-font-weight:500;--feedlog-badge-padding-x:0.625rem;--feedlog-badge-padding-y:0.125rem;--feedlog-badge-border-radius:9999px;--feedlog-blue-bg:#eff6ff;--feedlog-blue-text:#1e40af;--feedlog-blue-bg-hover:#dbeafe;--feedlog-red-bg:#fef2f2;--feedlog-red-text:#991b1b;--feedlog-red-bg-hover:#fee2e2;--feedlog-muted-bg:#f1f5f9;--feedlog-muted-text:#475569;--feedlog-muted-bg-hover:#e2e8f0}:host(.dark){--feedlog-blue-bg:rgba(37, 99, 235, 0.15);--feedlog-blue-text:#93c5fd;--feedlog-blue-bg-hover:rgba(37, 99, 235, 0.25);--feedlog-red-bg:rgba(220, 38, 38, 0.15);--feedlog-red-text:#fca5a5;--feedlog-red-bg-hover:rgba(220, 38, 38, 0.25);--feedlog-muted-bg:oklch(0.32 0.01 260);--feedlog-muted-text:oklch(0.8 0.02 260);--feedlog-muted-bg-hover:oklch(0.38 0.01 260)}.badge{display:inline-flex;align-items:center;justify-content:center;gap:0.25rem;font-size:var(--feedlog-badge-font-size);font-weight:var(--feedlog-badge-font-weight);padding:var(--feedlog-badge-padding-y) var(--feedlog-badge-padding-x);border-radius:var(--feedlog-badge-border-radius);white-space:nowrap;transition:background-color 0.2s ease, color 0.2s ease;font-family:inherit;border:1px solid transparent}.badge-default{background-color:var(--feedlog-blue-bg);color:var(--feedlog-blue-text)}.badge-default:hover{background-color:var(--feedlog-blue-bg-hover)}.badge-enhancement{background-color:var(--feedlog-blue-bg);color:var(--feedlog-blue-text)}.badge-enhancement:hover{background-color:var(--feedlog-blue-bg-hover)}.badge-destructive{background-color:var(--feedlog-red-bg);color:var(--feedlog-red-text)}.badge-destructive:hover{background-color:var(--feedlog-red-bg-hover)}.badge-secondary{background-color:var(--feedlog-muted-bg);color:var(--feedlog-muted-text)}.badge-secondary:hover{background-color:var(--feedlog-muted-bg-hover)}`;
4976
+ const feedlogBadgeCss = () => `:host{display:inline-block;--feedlog-badge-font-size:var(--feedlog-text-xs);--feedlog-badge-font-weight:var(--feedlog-font-medium);--feedlog-badge-padding-x:var(--feedlog-space-3);--feedlog-badge-padding-y:0.25rem;--feedlog-badge-border-radius:9999px;--feedlog-blue-bg:var(--feedlog-badge-enhancement-bg, #eef2ff);--feedlog-blue-text:var(--feedlog-badge-enhancement-text, #4338ca);--feedlog-blue-border:color-mix(in oklab, var(--feedlog-blue-text) 15%, transparent);--feedlog-red-bg:var(--feedlog-badge-destructive-bg, #fef2f2);--feedlog-red-text:var(--feedlog-badge-destructive-text, #b91c1c);--feedlog-red-border:color-mix(in oklab, var(--feedlog-red-text) 15%, transparent);--feedlog-muted-bg:var(--feedlog-badge-secondary-bg, #f1f5f9);--feedlog-muted-text:var(--feedlog-badge-secondary-text, #475569);--feedlog-muted-border:color-mix(in oklab, var(--feedlog-muted-text) 15%, transparent)}:host(.dark){}.badge{display:inline-flex;align-items:center;justify-content:center;gap:var(--feedlog-space-1);font-size:var(--feedlog-badge-font-size);font-weight:var(--feedlog-badge-font-weight);padding:var(--feedlog-badge-padding-y) var(--feedlog-badge-padding-x);border-radius:var(--feedlog-badge-border-radius);white-space:nowrap;transition:background-color 0.2s ease, color 0.2s ease, opacity 0.2s ease;font-family:var(--feedlog-font-family);border:1px solid transparent}.badge-default{background-color:var(--feedlog-blue-bg);color:var(--feedlog-blue-text);border:1px solid var(--feedlog-blue-border)}.badge-default:hover{opacity:0.9}.badge-enhancement{background-color:var(--feedlog-blue-bg);color:var(--feedlog-blue-text);border:1px solid var(--feedlog-blue-border)}.badge-enhancement:hover{opacity:0.9}.badge-destructive{background-color:var(--feedlog-red-bg);color:var(--feedlog-red-text);border:1px solid var(--feedlog-red-border)}.badge-destructive:hover{opacity:0.9}.badge-secondary{background-color:var(--feedlog-muted-bg);color:var(--feedlog-muted-text);border:1px solid var(--feedlog-muted-border)}.badge-secondary:hover{opacity:0.9}`;
4977
4977
 
4978
4978
  /**
4979
4979
  * Feedlog Badge Component
@@ -4989,7 +4989,7 @@ class FeedlogBadge {
4989
4989
  this.variant = 'default';
4990
4990
  }
4991
4991
  render() {
4992
- return (hAsync("span", { key: '22e5d49e033459b4e3e409ffa0e76641457ad740', class: `badge badge-${this.variant}` }, hAsync("slot", { key: '8f986c5150aa39034f090a258231e45363f9cac9' })));
4992
+ return (hAsync("span", { key: '6ea83e77cecfa5589ba64b86d96053668407be8f', class: `badge badge-${this.variant}`, part: "base" }, hAsync("slot", { key: '292fba2dd5ca3ec6455c9114f883e21c74846695' })));
4993
4993
  }
4994
4994
  static get style() { return feedlogBadgeCss(); }
4995
4995
  static get cmpMeta() { return {
@@ -5004,7 +5004,7 @@ class FeedlogBadge {
5004
5004
  }; }
5005
5005
  }
5006
5006
 
5007
- const feedlogButtonCss = () => `:host{display:inline-block;font-family:ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, 'Liberation Mono', monospace;--feedlog-background:#ffffff;--feedlog-foreground:oklch(0.145 0 0);--feedlog-primary:#030213;--feedlog-primary-foreground:oklch(1 0 0);--feedlog-secondary:oklch(0.95 0.0058 264.53);--feedlog-secondary-foreground:#030213;--feedlog-muted:#ececf0;--feedlog-accent:#e9ebef;--feedlog-accent-foreground:#030213;--feedlog-border:rgba(0, 0, 0, 0.1);--feedlog-input:transparent;--feedlog-ring:oklch(0.708 0 0);--feedlog-destructive:#d4183d;--feedlog-radius:0.625rem}:host(.dark){--feedlog-background:oklch(0.145 0 0);--feedlog-foreground:oklch(0.985 0 0);--feedlog-primary:oklch(0.985 0 0);--feedlog-primary-foreground:oklch(0.205 0 0);--feedlog-secondary:oklch(0.269 0 0);--feedlog-secondary-foreground:oklch(0.985 0 0);--feedlog-muted:oklch(0.269 0 0);--feedlog-accent:oklch(0.269 0 0);--feedlog-accent-foreground:oklch(0.985 0 0);--feedlog-border:oklch(0.269 0 0);--feedlog-input:oklch(0.269 0 0);--feedlog-ring:oklch(0.439 0 0);--feedlog-destructive:oklch(0.396 0.141 25.723)}button{display:inline-flex;align-items:center;justify-content:center;gap:0.5rem;white-space:nowrap;font-size:0.875rem;font-weight:500;border-radius:calc(var(--feedlog-radius) - 2px);border:1px solid transparent;cursor:pointer;transition:all 0.15s ease;outline:none;font-family:inherit}button:disabled{opacity:0.5;cursor:not-allowed;pointer-events:none}button:focus-visible{border-color:var(--feedlog-ring);box-shadow:0 0 0 3px color-mix(in oklab, var(--feedlog-ring) 50%, transparent)}.button-default{background-color:var(--feedlog-primary);color:var(--feedlog-primary-foreground);border-color:transparent}.button-default:hover:not(:disabled){background-color:color-mix(in oklab, var(--feedlog-primary) 90%, transparent)}.button-outline{background-color:var(--feedlog-background);color:var(--feedlog-foreground);border-color:var(--feedlog-border)}.button-outline:hover:not(:disabled){background-color:var(--feedlog-accent);color:var(--feedlog-accent-foreground)}:host(.dark) .button-outline{background-color:transparent;border-color:var(--feedlog-input)}:host(.dark) .button-outline:hover:not(:disabled){background-color:color-mix(in oklab, var(--feedlog-accent) 50%, transparent)}.button-ghost{background-color:transparent;color:var(--feedlog-foreground);border-color:transparent}.button-ghost:hover:not(:disabled){background-color:var(--feedlog-accent);color:var(--feedlog-accent-foreground)}.button-destructive{background-color:var(--feedlog-destructive);color:#ffffff;border-color:transparent}.button-destructive:hover:not(:disabled){background-color:color-mix(in oklab, var(--feedlog-destructive) 90%, transparent)}:host(.dark) .button-destructive{background-color:color-mix(in oklab, var(--feedlog-destructive) 60%, transparent)}.button-size-sm{height:2rem;padding:0 0.75rem;font-size:0.75rem}.button-size-sm:has(svg:only-child){width:2rem;padding:0}.button-size-default{height:2.25rem;padding:0.5rem 1rem}.button-size-lg{height:2.5rem;padding:0.625rem 1.5rem;font-size:1rem}button svg{pointer-events:none;flex-shrink:0;width:1rem;height:1rem}`;
5007
+ const feedlogButtonCss = () => `:host{display:inline-block}button{display:inline-flex;align-items:center;justify-content:center;gap:var(--feedlog-space-2);white-space:nowrap;font-size:var(--feedlog-text-sm);font-weight:var(--feedlog-font-medium);border-radius:var(--feedlog-radius);border:1px solid transparent;cursor:pointer;transition:all 0.15s ease;outline:none;font-family:var(--feedlog-font-family)}button:disabled{opacity:0.5;cursor:not-allowed;pointer-events:none}button:focus-visible{outline:2px solid var(--feedlog-ring);outline-offset:2px}.button-default{background-color:var(--feedlog-primary);color:var(--feedlog-primary-foreground)}.button-default:hover:not(:disabled){opacity:0.9}.button-outline{background-color:var(--feedlog-background);color:var(--feedlog-foreground);border-color:var(--feedlog-input)}.button-outline:hover:not(:disabled){background-color:var(--feedlog-accent);color:var(--feedlog-accent-foreground)}.button-ghost{background-color:transparent;color:var(--feedlog-foreground)}.button-ghost:hover:not(:disabled){background-color:var(--feedlog-accent);color:var(--feedlog-accent-foreground)}.button-destructive{background-color:var(--feedlog-destructive);color:var(--feedlog-destructive-foreground)}.button-destructive:hover:not(:disabled){opacity:0.9}.button-size-sm{height:2rem;padding:0 0.75rem;font-size:var(--feedlog-text-xs)}.button-size-sm:has(svg:only-child){width:2rem;padding:0}.button-size-default{height:2.5rem;padding:0.5rem 1rem}.button-size-lg{height:2.75rem;padding:0.5rem 1.5rem;font-size:var(--feedlog-text-base)}button svg{pointer-events:none;flex-shrink:0;width:1rem;height:1rem}`;
5008
5008
 
5009
5009
  /**
5010
5010
  * Feedlog Button Component
@@ -5039,7 +5039,7 @@ class FeedlogButton {
5039
5039
  }
5040
5040
  render() {
5041
5041
  const sizeClass = this.size === 'default' ? 'button-size-default' : `button-size-${this.size}`;
5042
- return (hAsync("button", { key: '6cdd8347def51592707b1fb9aab0dc565ca0f76f', type: this.type, class: `button button-${this.variant} ${sizeClass}`, disabled: this.disabled, onClick: this.handleClick }, hAsync("slot", { key: '3f3845195fa4b8a551473ecf1d5702321a31763e' })));
5042
+ return (hAsync("button", { key: 'f8f507c061284f630e36111ee671b29b6d3b20dd', type: this.type, class: `button button-${this.variant} ${sizeClass}`, disabled: this.disabled, onClick: this.handleClick, part: "base" }, hAsync("slot", { key: '48403bd46271b21a4eb54c94c9193dadcd32fdcf' })));
5043
5043
  }
5044
5044
  static get style() { return feedlogButtonCss(); }
5045
5045
  static get cmpMeta() { return {
@@ -5057,7 +5057,7 @@ class FeedlogButton {
5057
5057
  }; }
5058
5058
  }
5059
5059
 
5060
- const feedlogCardCss = () => `:host{display:block;font-family:ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, 'Liberation Mono', monospace;--feedlog-card:#ffffff;--feedlog-card-foreground:oklch(0.145 0 0);--feedlog-border:rgba(0, 0, 0, 0.1);--feedlog-radius:0.625rem;--feedlog-card-shadow:0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);--feedlog-card-hover-shadow:0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1)}:host(.dark){--feedlog-card:oklch(0.145 0 0);--feedlog-card-foreground:oklch(0.985 0 0);--feedlog-border:oklch(0.269 0 0);--feedlog-card-shadow:0 4px 6px -1px rgba(0, 0, 0, 0.3), 0 2px 4px -2px rgba(0, 0, 0, 0.3);--feedlog-card-hover-shadow:0 10px 15px -3px rgba(0, 0, 0, 0.3), 0 4px 6px -4px rgba(0, 0, 0, 0.3)}.feedlog-card{background-color:var(--feedlog-card);color:var(--feedlog-card-foreground);border:1px solid var(--feedlog-border);border-radius:var(--feedlog-radius);box-shadow:var(--feedlog-card-shadow);transition:box-shadow 0.15s ease;position:relative}.feedlog-card:hover{box-shadow:var(--feedlog-card-hover-shadow)}::slotted([slot="header"]){display:block}::slotted([slot="content"]){display:block}::slotted([slot="footer"]){display:block}`;
5060
+ const feedlogCardCss = () => `:host{display:block;font-family:var(--feedlog-font-family)}.feedlog-card{background-color:var(--feedlog-card);color:var(--feedlog-card-foreground);border:1px solid var(--feedlog-border);border-radius:var(--feedlog-radius);box-shadow:var(--feedlog-shadow-sm);transition:box-shadow 0.15s ease;position:relative;display:flex;flex-direction:column}.feedlog-card:hover{box-shadow:var(--feedlog-shadow)}.feedlog-card-header{padding:var(--feedlog-space-6);display:flex;flex-direction:column;gap:var(--feedlog-space-1)}.feedlog-card-content{padding:var(--feedlog-space-6);padding-top:0}.feedlog-card-footer{padding:var(--feedlog-space-6);padding-top:0;display:flex;align-items:center}::slotted([slot="header"]),::slotted([slot="content"]),::slotted([slot="footer"]){display:block}`;
5061
5061
 
5062
5062
  /**
5063
5063
  * Feedlog Card Component
@@ -5069,7 +5069,7 @@ class FeedlogCard {
5069
5069
  registerInstance(this, hostRef);
5070
5070
  }
5071
5071
  render() {
5072
- return (hAsync("div", { key: '293a80e66adedfc1af29daf72390a4f464321b96', class: "feedlog-card" }, hAsync("slot", { key: 'b7e5a827f89035e791d9c756db0f66198e6c5a38', name: "header" }), hAsync("slot", { key: 'da89fee0a01068c8438564848f218faa9c5d849e', name: "content" }), hAsync("slot", { key: '30b05e80e4189c0f73810a48f64e072dfac83267', name: "footer" })));
5072
+ return (hAsync("div", { key: 'c95d00e338fcf8d985407cda878f50d173c86c71', class: "feedlog-card", part: "base" }, hAsync("div", { key: '5001f2e08495d54abb59ddcada568c9ff4c6fb87', class: "feedlog-card-header", part: "header" }, hAsync("slot", { key: 'b6c6f18a458249aedfb4a95679d4592cfcac4187', name: "header" })), hAsync("div", { key: '99faa1bd9af52fb23cb304e0a87d35b8e14a6358', class: "feedlog-card-content", part: "content" }, hAsync("slot", { key: '44370b05b0c2335d6c7271f2807189a7a208be71', name: "content" })), hAsync("div", { key: 'e3876d4f589f9ecf917b5a9b5919363c19d08c93', class: "feedlog-card-footer", part: "footer" }, hAsync("slot", { key: 'be69074d341c8e88f9227d2f035f22838469b035', name: "footer" }))));
5073
5073
  }
5074
5074
  static get style() { return feedlogCardCss(); }
5075
5075
  static get cmpMeta() { return {
@@ -6529,6 +6529,11 @@ function createDOMPurify() {
6529
6529
  }
6530
6530
  var purify = createDOMPurify();
6531
6531
 
6532
+ var purify_es = /*#__PURE__*/Object.freeze({
6533
+ __proto__: null,
6534
+ default: purify
6535
+ });
6536
+
6532
6537
  /**
6533
6538
  * Parse markdown to sanitized HTML for safe rendering.
6534
6539
  * Uses marked for parsing and DOMPurify for XSS protection.
@@ -6537,10 +6542,15 @@ function parseMarkdown(markdown) {
6537
6542
  if (markdown == null || markdown === '') {
6538
6543
  return '';
6539
6544
  }
6540
- const html = g.parse(markdown, {
6545
+ const parsed = g.parse(markdown, {
6541
6546
  gfm: true,
6542
6547
  breaks: true,
6548
+ async: false,
6543
6549
  });
6550
+ if (typeof parsed !== 'string') {
6551
+ throw new Error('marked.parse returned a Promise; async markdown is not supported');
6552
+ }
6553
+ const html = parsed;
6544
6554
  return purify.sanitize(html, {
6545
6555
  ALLOWED_TAGS: [
6546
6556
  'p',
@@ -6576,7 +6586,7 @@ function parseMarkdown(markdown) {
6576
6586
  });
6577
6587
  }
6578
6588
 
6579
- const feedlogIssueCss = () => `:host{display:block;font-family:ui-sans-serif,\\n system-ui,\\n -apple-system,\\n BlinkMacSystemFont,\\n 'Segoe UI',\\n Roboto,\\n 'Helvetica Neue',\\n Arial,\\n sans-serif;--feedlog-background:#ffffff;--feedlog-foreground:oklch(0.145 0 0);--feedlog-card:#ffffff;--feedlog-card-foreground:oklch(0.145 0 0);--feedlog-muted:#f1f5f9;--feedlog-muted-foreground:#64748b;--feedlog-border:rgba(0, 0, 0, 0.08);--feedlog-accent-color:#2563eb;--feedlog-destructive:#d4183d;--feedlog-blue-400:oklch(0.707 0.165 254.624);--feedlog-blue-600:oklch(0.546 0.245 262.881);--feedlog-red-600:#db2777;--feedlog-radius:0.625rem;--feedlog-gap:0.5rem;--feedlog-card-padding:1.25rem;--feedlog-title-font-size:1.125rem;--feedlog-title-font-weight:600;--feedlog-body-font-size:0.875rem;--feedlog-body-line-height:1.6;--feedlog-timestamp-font-size:0.6875rem;--feedlog-timestamp-color:var(--feedlog-muted-foreground);--feedlog-card-radius:0.75rem;--feedlog-icon-color:var(--feedlog-muted-foreground);--feedlog-icon-color-muted:var(--feedlog-muted-foreground);--feedlog-pin-color:var(--feedlog-accent-color);--feedlog-upvote-icon-color:var(--feedlog-blue-600);--feedlog-upvote-icon-filled-color:var(--feedlog-red-600);--feedlog-shadow:0 1px 2px rgba(0, 0, 0, 0.04), 0 4px 12px rgba(0, 0, 0, 0.06), inset 0 1px 0 rgba(255, 255, 255, 0.5);--feedlog-shadow-hover-enhancement:0 8px 16px rgba(37, 99, 235, 0.08), 0 12px 24px rgba(37, 99, 235, 0.05), inset 0 1px 0 rgba(255, 255, 255, 0.6);--feedlog-shadow-hover-bug:0 8px 16px rgba(212, 24, 61, 0.08), 0 12px 24px rgba(212, 24, 61, 0.05), inset 0 1px 0 rgba(255, 255, 255, 0.6)}:host(.dark){--feedlog-background:oklch(0.18 0.01 260);--feedlog-foreground:oklch(0.985 0 0);--feedlog-card:oklch(0.24 0.01 260);--feedlog-card-foreground:oklch(0.985 0 0);--feedlog-muted:oklch(0.32 0.01 260);--feedlog-muted-foreground:oklch(0.72 0.02 260);--feedlog-border:oklch(0.34 0.01 260);--feedlog-accent-color:#3b82f6;--feedlog-destructive:oklch(0.396 0.141 25.723);--feedlog-blue-300:oklch(0.78 0.12 255);--feedlog-blue-400:oklch(0.707 0.165 254.624);--feedlog-blue-600:oklch(0.546 0.245 262.881);--feedlog-upvote-icon-color:var(--feedlog-blue-400);--feedlog-upvote-icon-filled-color:var(--feedlog-red-600);--feedlog-shadow:0 1px 2px rgba(0, 0, 0, 0.2), 0 4px 12px rgba(0, 0, 0, 0.25), inset 0 1px 0 rgba(255, 255, 255, 0.05);--feedlog-shadow-hover-enhancement:0 8px 16px rgba(59, 130, 246, 0.15), 0 12px 24px rgba(59, 130, 246, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.08);--feedlog-shadow-hover-bug:0 8px 16px rgba(220, 38, 38, 0.15), 0 12px 24px rgba(220, 38, 38, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.08)}.issue-card{background:linear-gradient(180deg, var(--feedlog-card) 0%, color-mix(in oklab, var(--feedlog-card) 98%, var(--feedlog-muted) 2%) 100%);border:1px solid var(--feedlog-border);border-radius:var(--feedlog-card-radius, var(--feedlog-radius));box-shadow:var(--feedlog-shadow);transition:box-shadow 0.2s ease,\\n transform 0.2s ease;position:relative;overflow:hidden}.issue-card.issue-type-enhancement:hover{box-shadow:var(--feedlog-shadow-hover-enhancement)}.issue-card.issue-type-bug:hover{box-shadow:var(--feedlog-shadow-hover-bug)}.issue-media{display:none;aspect-ratio:16 / 9;overflow:hidden;border-radius:var(--feedlog-card-radius, var(--feedlog-radius)) var(--feedlog-card-radius, var(--feedlog-radius)) 0 0;background-color:var(--feedlog-muted);border-bottom:1px solid var(--feedlog-border)}.issue-media.has-media{display:block}.issue-media ::slotted(img),.issue-media ::slotted(video){width:100%;height:100%;object-fit:cover;display:block}.issue-content{padding:var(--feedlog-card-padding);display:flex;flex-direction:column;gap:0.875rem}.issue-header-top{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:0.875rem}.issue-badges{display:flex;align-items:center;gap:0.375rem;flex-wrap:wrap;margin-left:-0.25rem}.issue-meta-right{display:flex;align-items:center;gap:0.5rem}.pinned-indicator{display:flex;align-items:center;color:var(--feedlog-pin-color, var(--feedlog-accent-color));opacity:0.9}.pin-icon{width:0.875rem;height:0.875rem;color:inherit}.issue-timestamp{font-size:var(--feedlog-timestamp-font-size);color:var(--feedlog-timestamp-color);white-space:nowrap;flex-shrink:0;cursor:help}.issue-main{display:flex;flex-direction:column;gap:0}.issue-footer{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:0.75rem;margin-top:0.75rem;padding-top:1rem;border-top:1px solid var(--feedlog-border);flex-wrap:wrap}.issue-footer-meta{display:flex;align-items:center;gap:0.5rem;font-size:0.75rem;color:var(--feedlog-muted-foreground);flex-wrap:wrap}.issue-title{color:var(--feedlog-card-foreground);font-size:var(--feedlog-title-font-size);font-weight:var(--feedlog-title-font-weight);margin:0 0 0.5rem 0;line-height:1.3;letter-spacing:-0.015em;word-break:break-word}.issue-body{color:var(--feedlog-muted-foreground);font-size:var(--feedlog-body-font-size);line-height:var(--feedlog-body-line-height);margin:0 0 0.75rem 0;word-break:break-word}.issue-body :first-child{margin-top:0}.issue-body :last-child{margin-bottom:0}.issue-body p{margin:0 0 0.75em 0}.issue-body p:last-child{margin-bottom:0}.issue-body a{color:var(--feedlog-accent-color);text-decoration:none}.issue-body a:hover{text-decoration:underline}.issue-body code{background-color:var(--feedlog-muted);padding:0.125em 0.375em;border-radius:0.25rem;font-size:0.9em}.issue-body pre{margin:0.5em 0;padding:0.75rem;background-color:var(--feedlog-muted);border-radius:0.25rem;overflow-x:auto;font-size:0.85em}.issue-body pre code{background:none;padding:0}.issue-body strong{font-weight:600}.issue-body ul,.issue-body ol{margin:0.5em 0;padding-left:1.25em}.issue-body li{margin:0.25em 0}.issue-body blockquote{margin:0.5em 0;padding-left:1em;border-left:3px solid var(--feedlog-muted);color:var(--feedlog-muted-foreground)}.repo-name{font-weight:500}.github-link{display:inline-flex;align-items:center;gap:0.25rem;color:var(--feedlog-muted-foreground);text-decoration:none;font-weight:500;font-size:0.75rem;padding:0.25rem 0.5rem;border-radius:0.375rem;transition:background-color 0.2s ease,\\n color 0.2s ease}.github-link:hover{color:var(--feedlog-card-foreground);background-color:var(--feedlog-muted)}.github-link-icon{flex-shrink:0;color:inherit}.github-link-text{white-space:nowrap}.github-number{color:var(--feedlog-blue-600);font-weight:600}:host(.dark) .github-number{color:var(--feedlog-blue-400)}.upvote-button{display:inline-flex;flex-direction:row;align-items:center;border-radius:9999px;background:linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);border:1px solid #e2e8f0;cursor:pointer;transition:all 0.3s cubic-bezier(0.4, 0, 0.2, 1);flex-shrink:0;box-shadow:0 1px 2px 0 rgba(0, 0, 0, 0.05);overflow:hidden;padding:0.375rem 0.875rem;gap:0.5rem;font-family:inherit;line-height:1}.upvote-button:hover{background:linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%);border-color:#cbd5e1;transform:translateY(-1px);box-shadow:0 4px 6px -1px rgba(0, 0, 0, 0.08),\\n 0 2px 4px -2px rgba(0, 0, 0, 0.04)}.upvote-button:active{transform:translateY(0);box-shadow:0 1px 2px 0 rgba(0, 0, 0, 0.05)}.upvote-button.upvoted{background:linear-gradient(180deg, #eff6ff 0%, #e0e7ff 100%);border-color:#bfdbfe}.upvote-button.upvoted:hover{background:linear-gradient(180deg, #dbeafe 0%, #c7d2fe 100%);border-color:#93c5fd}.upvote-action{display:flex;flex-direction:row;align-items:center;gap:0.375rem;color:#475569;font-size:0.875rem;font-weight:600;transition:color 0.2s ease}.upvote-button:hover .upvote-action{color:#0f172a}.upvote-button.upvoted .upvote-action{color:#2563eb}.upvote-button.upvoted:hover .upvote-action{color:#1d4ed8}.upvote-icon{width:1.125rem;height:1.125rem;min-width:1.125rem;min-height:1.125rem;color:inherit;flex-shrink:0;display:block;vertical-align:middle;transition:transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275)}.upvote-button:hover .upvote-icon{transform:translateY(-2px)}.upvote-button:active .upvote-icon{transform:translateY(0) scale(0.9)}.upvote-icon.filled{color:inherit}.upvote-icon.outline{color:inherit}.reel-container{position:relative;display:inline-flex;align-items:center;height:1.25rem;overflow:hidden;border-left:1px solid #e2e8f0;padding-left:0.5rem;transition:border-color 0.2s ease}.upvote-button:hover .reel-container{border-color:#cbd5e1}.upvote-button.upvoted .reel-container{border-color:#bfdbfe}.upvote-button.upvoted:hover .reel-container{border-color:#93c5fd}.upvote-count{font-size:0.875rem;font-weight:600;color:#475569;transition:color 0.2s ease;line-height:1.25rem}.upvote-button:hover .upvote-count{color:#0f172a}.upvote-button.upvoted .upvote-count{color:#2563eb}.upvote-button.upvoted:hover .upvote-count{color:#1d4ed8}.reel-number{display:inline-block;animation:reelIn 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards}@keyframes reelIn{0%{transform:translateY(100%);opacity:0}100%{transform:translateY(0);opacity:1}}:host(.dark) .upvote-button{background:linear-gradient(180deg, var(--feedlog-card) 0%, color-mix(in oklab, var(--feedlog-card) 95%, var(--feedlog-muted) 5%) 100%);border-color:var(--feedlog-border)}:host(.dark) .upvote-button:hover{background:var(--feedlog-muted);border-color:var(--feedlog-muted-foreground)}:host(.dark) .upvote-button.upvoted{background:linear-gradient(180deg, rgba(37, 99, 235, 0.15) 0%, rgba(37, 99, 235, 0.2) 100%);border-color:rgba(37, 99, 235, 0.3)}:host(.dark) .upvote-button.upvoted:hover{background:linear-gradient(180deg, rgba(37, 99, 235, 0.25) 0%, rgba(37, 99, 235, 0.3) 100%);border-color:rgba(37, 99, 235, 0.4)}:host(.dark) .upvote-action,:host(.dark) .upvote-count{color:var(--feedlog-muted-foreground)}:host(.dark) .upvote-button:hover .upvote-action,:host(.dark) .upvote-button:hover .upvote-count{color:var(--feedlog-card-foreground)}:host(.dark) .upvote-button.upvoted .upvote-action,:host(.dark) .upvote-button.upvoted .upvote-count{color:var(--feedlog-blue-400)}:host(.dark) .upvote-button.upvoted:hover .upvote-action,:host(.dark) .upvote-button.upvoted:hover .upvote-count{color:var(--feedlog-blue-300)}:host(.dark) .reel-container{border-color:var(--feedlog-border)}:host(.dark) .upvote-button:hover .reel-container{border-color:var(--feedlog-muted-foreground)}:host(.dark) .upvote-button.upvoted .reel-container{border-color:rgba(37, 99, 235, 0.3)}:host(.dark) .upvote-button.upvoted:hover .reel-container{border-color:rgba(37, 99, 235, 0.4)}`;
6589
+ const feedlogIssueCss = () => `:host{display:block;font-family:var(--feedlog-font-family);--feedlog-card-padding:var(--feedlog-space-6);--feedlog-title-font-size:var(--feedlog-text-xl);--feedlog-title-font-weight:var(--feedlog-font-semibold);--feedlog-body-font-size:var(--feedlog-text-sm);--feedlog-body-line-height:1.6;--feedlog-timestamp-font-size:var(--feedlog-text-xs);--feedlog-timestamp-color:var(--feedlog-muted-foreground);--feedlog-card-radius:16px;--feedlog-icon-color:var(--feedlog-muted-foreground);--feedlog-icon-color-muted:var(--feedlog-muted-foreground);--feedlog-pin-color:var(--feedlog-primary);--feedlog-upvote-icon-color:var(--feedlog-primary);--feedlog-upvote-icon-filled-color:var(--feedlog-primary)}:host(.dark){}.issue-card{background-color:var(--feedlog-card);border:1px solid var(--feedlog-border);border-radius:var(--feedlog-card-radius, var(--feedlog-radius));box-shadow:var(--feedlog-shadow-sm);transition:box-shadow 0.2s ease,\\n transform 0.2s ease;position:relative;overflow:hidden}.issue-card:hover{box-shadow:var(--feedlog-shadow);transform:translateY(-2px)}.issue-media{display:none;aspect-ratio:16 / 9;overflow:hidden;border-radius:var(--feedlog-card-radius, var(--feedlog-radius)) var(--feedlog-card-radius, var(--feedlog-radius)) 0 0;background-color:var(--feedlog-muted);border-bottom:1px solid var(--feedlog-border)}.issue-media.has-media{display:block}.issue-media ::slotted(img),.issue-media ::slotted(video){width:100%;height:100%;object-fit:cover;display:block}.issue-content{padding:var(--feedlog-card-padding);display:flex;flex-direction:column;gap:var(--feedlog-space-3)}.issue-header-top{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--feedlog-space-4);margin-bottom:var(--feedlog-space-3)}.issue-badges{display:flex;align-items:center;gap:var(--feedlog-space-1);flex-wrap:wrap;margin-left:-0.25rem}.issue-meta-right{display:flex;align-items:center;gap:var(--feedlog-space-2)}.pinned-indicator{display:flex;align-items:center;color:var(--feedlog-pin-color, var(--feedlog-primary));opacity:0.9}.pin-icon{width:0.875rem;height:0.875rem;color:inherit}.issue-timestamp{font-size:var(--feedlog-timestamp-font-size);color:var(--feedlog-timestamp-color);white-space:nowrap;flex-shrink:0;cursor:help}.issue-main{display:flex;flex-direction:column;gap:0}.issue-footer{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:var(--feedlog-space-3);margin-top:var(--feedlog-space-3);padding-top:var(--feedlog-space-4);border-top:1px solid var(--feedlog-border);flex-wrap:wrap}.issue-footer-meta{display:flex;align-items:center;gap:var(--feedlog-space-2);font-size:var(--feedlog-text-xs);color:var(--feedlog-muted-foreground);flex-wrap:wrap}.issue-footer .upvote-button{margin-left:auto}.issue-title{color:var(--feedlog-card-foreground);font-size:var(--feedlog-title-font-size);font-weight:var(--feedlog-title-font-weight);margin:0 0 var(--feedlog-space-3) 0;line-height:1.3;letter-spacing:-0.02em;word-break:break-word}.issue-body{color:var(--feedlog-muted-foreground);font-size:var(--feedlog-body-font-size);line-height:var(--feedlog-body-line-height);margin:0 0 var(--feedlog-space-3) 0;word-break:break-word}.issue-body h1,.issue-body h2,.issue-body h3,.issue-body h4,.issue-body h5,.issue-body h6{color:var(--feedlog-card-foreground);margin-top:1.5em;margin-bottom:0.5em;font-weight:var(--feedlog-font-semibold);letter-spacing:-0.01em}.issue-body h1{font-size:1.5em}.issue-body h2{font-size:1.25em}.issue-body h3{font-size:1.125em}.issue-body :first-child{margin-top:0}.issue-body :last-child{margin-bottom:0}.issue-body p{margin:0 0 0.75em 0}.issue-body p:last-child{margin-bottom:0}.issue-body a{color:var(--feedlog-primary);text-decoration:none}.issue-body a:hover{text-decoration:underline}.issue-body code{background-color:var(--feedlog-muted);padding:0.125em 0.375em;border-radius:var(--feedlog-radius-sm);font-size:0.9em}.issue-body pre{margin:0.5em 0;padding:var(--feedlog-space-3);background-color:var(--feedlog-muted);border-radius:var(--feedlog-radius-sm);overflow-x:auto;font-size:0.85em}.issue-body pre code{background:none;padding:0}.issue-body strong{font-weight:var(--feedlog-font-semibold)}.issue-body ul,.issue-body ol{margin:0.5em 0;padding-left:1.25em}.issue-body li{margin:0.25em 0}.issue-body blockquote{margin:0.5em 0;padding-left:1em;border-left:3px solid var(--feedlog-muted);color:var(--feedlog-muted-foreground)}.repo-name{font-weight:var(--feedlog-font-medium)}.github-link{display:inline-flex;align-items:center;gap:var(--feedlog-space-1);color:var(--feedlog-muted-foreground);text-decoration:none;font-weight:var(--feedlog-font-medium);font-size:var(--feedlog-text-xs);padding:var(--feedlog-space-1) var(--feedlog-space-2);border-radius:var(--feedlog-radius-sm);transition:background-color 0.2s ease,\\n color 0.2s ease}.github-link:hover{color:var(--feedlog-card-foreground);background-color:var(--feedlog-muted)}.github-link-icon{flex-shrink:0;color:inherit}.github-link-text{white-space:nowrap}.github-number{color:var(--feedlog-primary);font-weight:var(--feedlog-font-semibold)}:host(.dark) .github-number{color:var(--feedlog-primary)}.upvote-button{display:inline-flex;flex-direction:row;align-items:center;border-radius:9999px;background-color:var(--feedlog-muted);border:1px solid transparent;cursor:pointer;transition:all 0.2s ease;flex-shrink:0;overflow:hidden;padding:var(--feedlog-space-1) var(--feedlog-space-3);gap:var(--feedlog-space-2);font-family:inherit;line-height:1}.upvote-button:hover{background-color:color-mix(in oklab, var(--feedlog-muted) 90%, var(--feedlog-foreground))}.upvote-button:active{transform:translateY(1px)}.upvote-button.upvoted{background-color:var(--feedlog-badge-enhancement-bg, #eef2ff);border-color:color-mix(in oklab, var(--feedlog-badge-enhancement-text, #4338ca) 15%, transparent)}.upvote-button.upvoted:hover{opacity:0.9}.upvote-action{display:flex;flex-direction:row;align-items:center;gap:var(--feedlog-space-1);color:var(--feedlog-muted-foreground);font-size:var(--feedlog-text-sm);font-weight:var(--feedlog-font-medium);transition:color 0.2s ease}.upvote-button:hover .upvote-action{color:var(--feedlog-foreground)}.upvote-button.upvoted .upvote-action{color:var(--feedlog-badge-enhancement-text, #4338ca)}.upvote-button.upvoted:hover .upvote-action{color:var(--feedlog-badge-enhancement-text, #4338ca)}.upvote-icon{width:1.125rem;height:1.125rem;min-width:1.125rem;min-height:1.125rem;color:inherit;flex-shrink:0;display:block;vertical-align:middle;transition:transform 0.2s ease}.upvote-button:hover .upvote-icon{transform:translateY(-1px)}.upvote-button:active .upvote-icon{transform:translateY(0) scale(0.95)}.upvote-icon.filled{color:inherit}.upvote-icon.outline{color:inherit}.reel-container{position:relative;display:inline-flex;align-items:center;height:1.25rem;overflow:hidden;border-left:1px solid var(--feedlog-border);padding-left:var(--feedlog-space-2);transition:border-color 0.2s ease}.upvote-button.upvoted .reel-container{border-color:color-mix(in oklab, var(--feedlog-badge-enhancement-text, #4338ca) 20%, transparent)}.upvote-count{font-size:var(--feedlog-text-sm);font-weight:var(--feedlog-font-medium);color:var(--feedlog-muted-foreground);transition:color 0.2s ease;line-height:1.25rem}.upvote-button:hover .upvote-count{color:var(--feedlog-foreground)}.upvote-button.upvoted .upvote-count{color:var(--feedlog-badge-enhancement-text, #4338ca)}.upvote-button.upvoted:hover .upvote-count{color:var(--feedlog-badge-enhancement-text, #4338ca)}.reel-number{display:inline-block;animation:reelIn 0.3s ease forwards}@keyframes reelIn{0%{transform:translateY(100%);opacity:0}100%{transform:translateY(0);opacity:1}}:host(.dark) .upvote-button{background-color:var(--feedlog-muted);border-color:transparent}:host(.dark) .upvote-button:hover{background-color:color-mix(in oklab, var(--feedlog-muted) 80%, var(--feedlog-foreground))}:host(.dark) .upvote-button.upvoted{background-color:var(--feedlog-badge-enhancement-bg);border-color:color-mix(in oklab, var(--feedlog-badge-enhancement-text) 15%, transparent)}`;
6580
6590
 
6581
6591
  /**
6582
6592
  * Feedlog Issue Component
@@ -6710,7 +6720,7 @@ class FeedlogIssueComponent {
6710
6720
  const statusBadgeLabel = this.getStatusBadgeLabel();
6711
6721
  const githubUrl = (_b = issue.githubIssueLink) !== null && _b !== void 0 ? _b : issueUrl;
6712
6722
  const showGithubButton = githubUrl != null && githubUrl !== '';
6713
- return (hAsync(Host, { class: this.theme === 'dark' ? 'dark' : '', "data-upvoted": issue.hasUpvoted ? 'true' : 'false' }, hAsync("div", { class: `issue-card issue-type-${issue.type}` }, hAsync("div", { class: "issue-media", part: "media" }, hAsync("slot", { name: "media" })), hAsync("div", { class: "issue-content" }, hAsync("div", { class: "issue-main" }, hAsync("div", { class: "issue-header-top" }, hAsync("div", { class: "issue-badges" }, issue.type === 'bug' ? (hAsync("feedlog-badge", { variant: "destructive" }, "Bug")) : (hAsync("feedlog-badge", { variant: "enhancement" }, "Enhancement")), statusBadgeLabel && (hAsync("feedlog-badge", { variant: "secondary" }, statusBadgeLabel))), hAsync("div", { class: "issue-meta-right" }, issue.pinnedAt && (hAsync("div", { class: "pinned-indicator", title: "Pinned issue" }, this.renderPinIcon())), hAsync("span", { class: "issue-timestamp", title: timestampTitle }, timestampLabel, " ", this.formatDate(timestampDate)))), hAsync("h3", { class: "issue-title" }, displayTitle), issue.body != null && issue.body !== '' && (hAsync("div", { class: "issue-body", innerHTML: parseMarkdown(issue.body) })), (repoName != null || showGithubButton || issue.type !== 'bug') && (hAsync("div", { class: "issue-footer" }, (repoName != null || showGithubButton) && (hAsync("div", { class: "issue-footer-meta" }, repoName != null && (hAsync("span", { class: "repo-name", title: repoTooltip }, repoName)), showGithubButton && (hAsync("a", { part: "github-link", class: "github-link", href: githubUrl, target: "_blank", rel: "noopener noreferrer", title: "View on GitHub" }, this.renderExternalLinkIcon(), hAsync("span", { class: "github-link-text" }, "View on GitHub"))))), issue.type !== 'bug' && (hAsync("button", { part: "upvote-button", class: `upvote-button ${issue.hasUpvoted ? 'upvoted' : ''}`, onClick: (e) => this.handleUpvote(e), title: issue.hasUpvoted ? 'Remove upvote' : 'Upvote this issue' }, hAsync("div", { class: "upvote-action" }, hAsync("slot", { name: "upvote-icon" }, this.renderUpvoteIcon(issue.hasUpvoted)), hAsync("span", { class: "upvote-label" }, "Upvote")), hAsync("div", { class: "reel-container" }, hAsync("span", { class: "upvote-count reel-number", key: issue.upvoteCount }, issue.upvoteCount)))))))))));
6723
+ return (hAsync(Host, { class: this.theme === 'dark' ? 'dark' : '', "data-upvoted": issue.hasUpvoted ? 'true' : 'false' }, hAsync("div", { class: `issue-card issue-type-${issue.type}`, part: "base" }, hAsync("div", { class: "issue-media", part: "media" }, hAsync("slot", { name: "media" })), hAsync("div", { class: "issue-content", part: "content" }, hAsync("div", { class: "issue-main", part: "main" }, hAsync("div", { class: "issue-header-top", part: "header-top" }, hAsync("div", { class: "issue-badges", part: "badges" }, issue.type === 'bug' ? (hAsync("feedlog-badge", { variant: "destructive", part: "badge badge-bug" }, "Bug")) : (hAsync("feedlog-badge", { variant: "enhancement", part: "badge badge-enhancement" }, "Enhancement")), statusBadgeLabel && (hAsync("feedlog-badge", { variant: "secondary", part: "badge badge-status" }, statusBadgeLabel))), hAsync("div", { class: "issue-meta-right", part: "meta-right" }, issue.pinnedAt && (hAsync("div", { class: "pinned-indicator", title: "Pinned issue", part: "pinned-indicator" }, this.renderPinIcon())), hAsync("span", { class: "issue-timestamp", title: timestampTitle, part: "timestamp" }, timestampLabel, " ", this.formatDate(timestampDate)))), hAsync("h3", { class: "issue-title", part: "title" }, displayTitle), issue.body != null && issue.body !== '' && (hAsync("div", { class: "issue-body", innerHTML: parseMarkdown(issue.body), part: "body" })), (repoName != null || showGithubButton || issue.type !== 'bug') && (hAsync("div", { class: "issue-footer", part: "footer" }, (repoName != null || showGithubButton) && (hAsync("div", { class: "issue-footer-meta", part: "footer-meta" }, repoName != null && (hAsync("span", { class: "repo-name", title: repoTooltip, part: "repo-name" }, repoName)), showGithubButton && (hAsync("a", { part: "github-link", class: "github-link", href: githubUrl, target: "_blank", rel: "noopener noreferrer", title: "View on GitHub" }, this.renderExternalLinkIcon(), hAsync("span", { class: "github-link-text", part: "github-link-text" }, "View on GitHub"))))), issue.type !== 'bug' && (hAsync("button", { part: `upvote-button ${issue.hasUpvoted ? 'upvoted' : ''}`, class: `upvote-button ${issue.hasUpvoted ? 'upvoted' : ''}`, onClick: (e) => this.handleUpvote(e), title: issue.hasUpvoted ? 'Remove upvote' : 'Upvote this issue' }, hAsync("div", { class: "upvote-action", part: "upvote-action" }, hAsync("slot", { name: "upvote-icon" }, this.renderUpvoteIcon(issue.hasUpvoted)), hAsync("span", { class: "upvote-label", part: "upvote-label" }, "Upvote")), hAsync("div", { class: "reel-container", part: "upvote-reel-container" }, hAsync("span", { class: "upvote-count reel-number", key: issue.upvoteCount, part: "upvote-count" }, issue.upvoteCount)))))))))));
6714
6724
  }
6715
6725
  get host() { return getElement(this); }
6716
6726
  static get style() { return feedlogIssueCss(); }
@@ -6728,7 +6738,7 @@ class FeedlogIssueComponent {
6728
6738
  }; }
6729
6739
  }
6730
6740
 
6731
- const feedlogIssuesCss = () => `:host{display:block;font-family:ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, 'Liberation Mono', monospace;--feedlog-theme-bg:#ffffff;--feedlog-foreground:oklch(0.145 0 0);--feedlog-card:#ffffff;--feedlog-card-foreground:oklch(0.145 0 0);--feedlog-muted:#ececf0;--feedlog-muted-foreground:#717182;--feedlog-border:rgba(0, 0, 0, 0.1);--feedlog-accent-color:#2563eb;--feedlog-destructive:#d4183d;--feedlog-blue-400:oklch(0.707 0.165 254.624);--feedlog-blue-600:oklch(0.546 0.245 262.881);--feedlog-blue-100:oklch(0.932 0.032 255.585);--feedlog-red-100:#fce7f3;--feedlog-red-400:#f472b6;--feedlog-red-600:#db2777;--feedlog-radius:0.625rem;--feedlog-gap:0.5rem;--feedlog-padding:2rem;--feedlog-min-height:100%;--feedlog-shadow:0 1px 3px 0 rgba(0, 0, 0, 0.08), 0 1px 2px -1px rgba(0, 0, 0, 0.08)}:host(.dark){--feedlog-theme-bg:oklch(0.18 0.01 260);--feedlog-foreground:oklch(0.985 0 0);--feedlog-card:oklch(0.24 0.01 260);--feedlog-card-foreground:oklch(0.985 0 0);--feedlog-muted:oklch(0.32 0.01 260);--feedlog-muted-foreground:oklch(0.72 0.02 260);--feedlog-border:oklch(0.34 0.01 260);--feedlog-accent-color:#3b82f6;--feedlog-destructive:oklch(0.396 0.141 25.723);--feedlog-blue-400:oklch(0.707 0.165 254.624);--feedlog-blue-600:oklch(0.546 0.245 262.881);--feedlog-shadow:0 1px 3px 0 rgba(0, 0, 0, 0.3)}.issues-container{min-height:var(--feedlog-min-height);background-color:var(--feedlog-background, var(--feedlog-theme-bg, #ffffff));padding:var(--feedlog-padding);margin:0 auto;border-radius:var(--feedlog-radius)}.issues-header{margin-bottom:1.5rem;display:flex;align-items:flex-start;justify-content:space-between}.header-content{flex:1}.issues-title{color:var(--feedlog-foreground);margin:0 0 0.25rem 0;font-size:1.5rem;font-weight:500;line-height:1.5}.issues-subtitle{color:var(--feedlog-muted-foreground);font-size:0.875rem;margin:0}.loading-state{padding:0}.loading-skeletons{display:flex;flex-direction:column;gap:var(--feedlog-gap)}.skeleton-card{background-color:var(--feedlog-card);border:1px solid var(--feedlog-border);border-radius:var(--feedlog-radius);box-shadow:var(--feedlog-shadow);position:relative;overflow:hidden}.skeleton-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--feedlog-muted)}.skeleton-content{padding:1.25rem;padding-left:calc(1.25rem + 3px);display:flex;flex-direction:column;gap:0.875rem}.skeleton-header{display:flex;align-items:center;justify-content:space-between;gap:0.75rem}.skeleton-badge{width:4.5rem;height:1.25rem;border-radius:0.375rem;background-color:var(--feedlog-muted);animation:skeleton-pulse 1.5s ease-in-out infinite}.skeleton-timestamp{width:3rem;height:0.75rem;border-radius:0.25rem;background-color:var(--feedlog-muted);animation:skeleton-pulse 1.5s ease-in-out infinite 0.2s}.skeleton-main{display:flex;flex-direction:column;gap:0.5rem}.skeleton-title{height:0.9375rem;border-radius:0.25rem;background-color:var(--feedlog-muted);animation:skeleton-pulse 1.5s ease-in-out infinite 0.1s;width:85%}.skeleton-body{display:flex;flex-direction:column;gap:0.375rem}.skeleton-line{height:0.8125rem;border-radius:0.25rem;background-color:var(--feedlog-muted);animation:skeleton-pulse 1.5s ease-in-out infinite 0.15s;width:100%}.skeleton-line.short{width:70%}.skeleton-repo{width:6rem;height:0.75rem;border-radius:0.25rem;background-color:var(--feedlog-muted);animation:skeleton-pulse 1.5s ease-in-out infinite 0.25s}.skeleton-footer{display:flex;justify-content:flex-end}.skeleton-upvote{width:2.5rem;height:2rem;border-radius:0.5rem;background-color:var(--feedlog-muted);animation:skeleton-pulse 1.5s ease-in-out infinite 0.3s}@keyframes skeleton-pulse{0%,100%{opacity:1}50%{opacity:0.5}}.error-state{display:flex;align-items:center;justify-content:center;padding:3rem 2rem;min-height:12rem}.error-state-content{display:flex;flex-direction:column;align-items:center;text-align:center;max-width:20rem;padding:2rem}.error-icon{color:var(--feedlog-muted-foreground);opacity:0.8;margin-bottom:1rem}.error-state-title{margin:0 0 0.5rem 0;font-size:1.125rem;font-weight:600;color:var(--feedlog-foreground);line-height:1.4}.error-state-message{margin:0 0 1.25rem 0;font-size:0.875rem;color:var(--feedlog-muted-foreground);line-height:1.5}.load-more-container{display:flex;justify-content:center;padding:2rem 0;gap:1rem}`;
6741
+ const feedlogIssuesCss = () => `:host{display:block;font-family:var(--feedlog-font-family);--feedlog-theme-bg:var(--feedlog-background);--feedlog-gap:var(--feedlog-space-2);--feedlog-padding:var(--feedlog-space-8);--feedlog-min-height:100%}:host(.dark){--feedlog-theme-bg:var(--feedlog-background)}.issues-container{min-height:var(--feedlog-min-height);background-color:var(--feedlog-background, var(--feedlog-theme-bg, #ffffff));padding:var(--feedlog-padding);margin:0 auto;border-radius:var(--feedlog-radius-lg)}.issues-header{margin-bottom:var(--feedlog-space-6);display:flex;align-items:flex-start;justify-content:space-between}.header-content{flex:1}.issues-title{color:var(--feedlog-foreground);margin:0 0 var(--feedlog-space-1) 0;font-size:var(--feedlog-text-xl);font-weight:var(--feedlog-font-semibold);line-height:1.5}.issues-subtitle{color:var(--feedlog-muted-foreground);font-size:var(--feedlog-text-sm);margin:0}.loading-state{padding:0}.loading-skeletons{display:flex;flex-direction:column;gap:var(--feedlog-gap)}.skeleton-card{background-color:var(--feedlog-card);border:1px solid var(--feedlog-border);border-radius:var(--feedlog-radius);box-shadow:var(--feedlog-shadow-sm);position:relative;overflow:hidden}.skeleton-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--feedlog-muted)}.skeleton-content{padding:var(--feedlog-space-5);padding-left:calc(var(--feedlog-space-5) + 3px);display:flex;flex-direction:column;gap:var(--feedlog-space-3)}.skeleton-header{display:flex;align-items:center;justify-content:space-between;gap:var(--feedlog-space-3)}.skeleton-badge{width:4.5rem;height:1.25rem;border-radius:var(--feedlog-radius-sm);background-color:var(--feedlog-muted);animation:skeleton-pulse 1.5s ease-in-out infinite}.skeleton-timestamp{width:3rem;height:0.75rem;border-radius:var(--feedlog-radius-sm);background-color:var(--feedlog-muted);animation:skeleton-pulse 1.5s ease-in-out infinite 0.2s}.skeleton-main{display:flex;flex-direction:column;gap:var(--feedlog-space-2)}.skeleton-title{height:0.9375rem;border-radius:var(--feedlog-radius-sm);background-color:var(--feedlog-muted);animation:skeleton-pulse 1.5s ease-in-out infinite 0.1s;width:85%}.skeleton-body{display:flex;flex-direction:column;gap:var(--feedlog-space-1)}.skeleton-line{height:0.8125rem;border-radius:var(--feedlog-radius-sm);background-color:var(--feedlog-muted);animation:skeleton-pulse 1.5s ease-in-out infinite 0.15s;width:100%}.skeleton-line.short{width:70%}.skeleton-repo{width:6rem;height:0.75rem;border-radius:var(--feedlog-radius-sm);background-color:var(--feedlog-muted);animation:skeleton-pulse 1.5s ease-in-out infinite 0.25s}.skeleton-footer{display:flex;justify-content:flex-end}.skeleton-upvote{width:2.5rem;height:2rem;border-radius:var(--feedlog-radius);background-color:var(--feedlog-muted);animation:skeleton-pulse 1.5s ease-in-out infinite 0.3s}@keyframes skeleton-pulse{0%,100%{opacity:1}50%{opacity:0.5}}.error-state{display:flex;align-items:center;justify-content:center;padding:var(--feedlog-space-10) var(--feedlog-space-8);min-height:12rem}.error-state-content{display:flex;flex-direction:column;align-items:center;text-align:center;max-width:20rem;padding:var(--feedlog-space-8)}.error-icon{color:var(--feedlog-muted-foreground);opacity:0.8;margin-bottom:var(--feedlog-space-4)}.error-state-title{margin:0 0 var(--feedlog-space-2) 0;font-size:var(--feedlog-text-lg);font-weight:var(--feedlog-font-semibold);color:var(--feedlog-foreground);line-height:1.4}.error-state-message{margin:0 0 var(--feedlog-space-5) 0;font-size:var(--feedlog-text-sm);color:var(--feedlog-muted-foreground);line-height:1.5}.load-more-container{display:flex;justify-content:center;padding:var(--feedlog-space-8) 0;gap:var(--feedlog-space-4)}`;
6732
6742
 
6733
6743
  /**
6734
6744
  * Feedlog Issues Component
@@ -6769,10 +6779,6 @@ class FeedlogIssues {
6769
6779
  * Whether more issues are currently loading
6770
6780
  */
6771
6781
  this.isLoadingMore = false;
6772
- /**
6773
- * Internal state for theme
6774
- */
6775
- this.currentTheme = 'light';
6776
6782
  this.handleUpvote = (event) => {
6777
6783
  event.stopPropagation();
6778
6784
  this.feedlogUpvote.emit(event.detail);
@@ -6781,25 +6787,22 @@ class FeedlogIssues {
6781
6787
  this.feedlogLoadMore.emit();
6782
6788
  };
6783
6789
  }
6784
- componentWillLoad() {
6785
- this.currentTheme = this.theme;
6786
- }
6787
6790
  renderErrorIcon() {
6788
6791
  return (hAsync("svg", { class: "error-icon", xmlns: "http://www.w3.org/2000/svg", width: "48", height: "48", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "1.5", "stroke-linecap": "round", "stroke-linejoin": "round", "aria-hidden": "true" }, hAsync("circle", { cx: "12", cy: "12", r: "10" }), hAsync("line", { x1: "12", y1: "8", x2: "12", y2: "12" }), hAsync("line", { x1: "12", y1: "16", x2: "12.01", y2: "16" })));
6789
6792
  }
6790
6793
  renderIssuesList() {
6791
6794
  var _a, _b;
6792
- return (hAsync("feedlog-issues-list", { issues: this.issues, limit: this.limit, theme: this.currentTheme, getIssueUrl: this.getIssueUrl, emptyStateTitle: (_a = this.emptyStateTitle) !== null && _a !== void 0 ? _a : 'No updates yet', emptyStateMessage: (_b = this.emptyStateMessage) !== null && _b !== void 0 ? _b : 'Check back later for new updates.', onFeedlogUpvote: (e) => this.handleUpvote(e) }));
6795
+ return (hAsync("feedlog-issues-list", { issues: this.issues, limit: this.limit, theme: this.theme, getIssueUrl: this.getIssueUrl, emptyStateTitle: (_a = this.emptyStateTitle) !== null && _a !== void 0 ? _a : 'No updates yet', emptyStateMessage: (_b = this.emptyStateMessage) !== null && _b !== void 0 ? _b : 'Check back later for new updates.', onFeedlogUpvote: (e) => this.handleUpvote(e), part: "issues-list" }, hAsync("slot", { name: "empty-state", slot: "empty-state" })));
6793
6796
  }
6794
6797
  render() {
6795
6798
  const containerStyle = {
6796
6799
  maxWidth: this.maxWidth,
6797
6800
  };
6798
- return (hAsync(Host, { key: '96686863c5eb831e64993c681c7780e035c0e2b2', class: this.currentTheme === 'dark' ? 'dark' : '' }, hAsync("div", { key: '54d01678053f4fe58eb547f9954f497402495a83', class: "issues-container", style: containerStyle }, (this.heading || this.subtitle) && (hAsync("header", { key: '889aa47cb4ceea60ca4a5615f512793d726059d9', class: "issues-header" }, hAsync("div", { key: '8b4ac6a9ed0c6120ec838a1329416f3471cd2751', class: "header-content" }, this.heading && hAsync("h1", { key: 'cfc52f28bc5131715a5c7a0b9231e440b4c0b67c', class: "issues-title" }, this.heading), this.subtitle && hAsync("p", { key: '8b4488546ceb6e807d689b8fca2b2fd85722f824', class: "issues-subtitle" }, this.subtitle)))), this.loading && (hAsync("div", { key: '35c382f4417893c17951b73dedb12452e805668c', class: "loading-state", role: "status", "aria-label": "Loading issues" }, hAsync("div", { key: '2d83dd9d40bf7b2a14744ee4a715108a9cdebd60', class: "loading-skeletons" }, [1, 2, 3].map(i => (hAsync("div", { key: i, class: "skeleton-card" }, hAsync("div", { class: "skeleton-content" }, hAsync("div", { class: "skeleton-header" }, hAsync("div", { class: "skeleton-badge" }), hAsync("div", { class: "skeleton-timestamp" })), hAsync("div", { class: "skeleton-main" }, hAsync("div", { class: "skeleton-title" }), hAsync("div", { class: "skeleton-body" }, hAsync("div", { class: "skeleton-line" }), hAsync("div", { class: "skeleton-line short" })), hAsync("div", { class: "skeleton-repo" })), hAsync("div", { class: "skeleton-footer" }, hAsync("div", { class: "skeleton-upvote" }))))))))), this.error && (hAsync("div", { key: '43efd42ce0d213131ba97d42d1f98c52515ea9fd', class: "error-state", role: "alert" }, hAsync("div", { key: 'ad22b0378e290556c896c628dadabf6091bbf972', class: "error-state-content" }, this.renderErrorIcon(), hAsync("h2", { key: '9a9779f52de12aa2241ba9ddda6cf8297a4af84d', class: "error-state-title" }, "Something went wrong"), hAsync("p", { key: 'c697040d37909d882730e5d9ab3a3b147061fc51', class: "error-state-message" }, this.error)))), !this.loading && !this.error && (hAsync("div", { key: 'afc12552ff7ccc808c7191c1dd1e26d3b95bf2fd' }, this.renderIssuesList(), this.hasMore && (hAsync("div", { key: '0f6c84bdeda386e4eec439fb80f4ee1606b9b559', class: "load-more-container" }, hAsync("feedlog-button", { key: 'e6983bd889a6cdfd4a4b8a06f3a6a97c2d276243', onFeedlogClick: this.handleLoadMore, disabled: this.isLoadingMore, variant: "outline" }, this.isLoadingMore ? 'Loading...' : 'Load More Issues'))))))));
6801
+ return (hAsync(Host, { key: '79835dd61383b41124f48d204977951236a7f8ce', class: this.theme === 'dark' ? 'dark' : '' }, hAsync("div", { key: '62228927cba9bd4cf58d8b4f3ec2751ba423dd67', class: "issues-container", style: containerStyle, part: "base" }, hAsync("slot", { key: 'c57d46adc472c2b03857db3e07cc5b549bd110f1', name: "header" }, (this.heading || this.subtitle) && (hAsync("header", { key: '080059a002a373d76bee863b368a12ffdba59384', class: "issues-header", part: "header" }, hAsync("div", { key: 'db85f995fb6f1f9fe961ea6726cf82da17fc9c2d', class: "header-content", part: "header-content" }, this.heading && (hAsync("h1", { key: 'e7b510ecd2039072b384d6dcb531ebf0b091010b', class: "issues-title", part: "title" }, this.heading)), this.subtitle && (hAsync("p", { key: '323f9a635b6a1c2ca9d955d12dc1925c0be59cf8', class: "issues-subtitle", part: "subtitle" }, this.subtitle)))))), this.loading && (hAsync("slot", { key: 'ba63923aa7cac4b3ab050b423d5f65dcbbe81677', name: "loading" }, hAsync("div", { key: '4bf1fc0d367acb0285eb124875c42e541939d388', class: "loading-state", role: "status", "aria-label": "Loading issues", part: "loading-state" }, hAsync("div", { key: 'fa369824bd1cb8e3b5c393613952611658e6919a', class: "loading-skeletons", part: "loading-skeletons" }, [1, 2, 3].map(i => (hAsync("div", { key: i, class: "skeleton-card", part: "skeleton-card" }, hAsync("div", { class: "skeleton-content", part: "skeleton-content" }, hAsync("div", { class: "skeleton-header", part: "skeleton-header" }, hAsync("div", { class: "skeleton-badge", part: "skeleton-badge" }), hAsync("div", { class: "skeleton-timestamp", part: "skeleton-timestamp" })), hAsync("div", { class: "skeleton-main", part: "skeleton-main" }, hAsync("div", { class: "skeleton-title", part: "skeleton-title" }), hAsync("div", { class: "skeleton-body", part: "skeleton-body" }, hAsync("div", { class: "skeleton-line", part: "skeleton-line" }), hAsync("div", { class: "skeleton-line short", part: "skeleton-line short" })), hAsync("div", { class: "skeleton-repo", part: "skeleton-repo" })), hAsync("div", { class: "skeleton-footer", part: "skeleton-footer" }, hAsync("div", { class: "skeleton-upvote", part: "skeleton-upvote" })))))))))), this.error && (hAsync("slot", { key: '5ad8c400e465213de6e9d1f2a4d5e70c86a7ca2d', name: "error" }, hAsync("div", { key: '0a1a62f25e9ccac249ea7426cc7839e95a24b60f', class: "error-state", role: "alert", part: "error-state" }, hAsync("div", { key: '3286f0ab99dbead8e7949317de510e643bfbc897', class: "error-state-content", part: "error-state-content" }, this.renderErrorIcon(), hAsync("h2", { key: '78319f0bbc6cc972bb2a4478134194b0592c13ba', class: "error-state-title", part: "error-title" }, "Something went wrong"), hAsync("p", { key: 'ba262bf4d991326d36a04667b1109fed008d7cfd', class: "error-state-message", part: "error-message" }, this.error))))), !this.loading && !this.error && (hAsync("div", { key: 'adc09c9a78afb9c163d23813eebb23a4c031be52', part: "list-container" }, this.renderIssuesList(), this.hasMore && (hAsync("slot", { key: '26010e848f5fc2976f0ab0c1d7f134efb023f173', name: "load-more" }, hAsync("div", { key: 'adbfb37d368383405dc9edd136ed7c0003b8cb67', class: "load-more-container", part: "load-more-container" }, hAsync("feedlog-button", { key: '8d00e17e29dd9148e71e86cb178b9e058f50ce32', onFeedlogClick: this.handleLoadMore, disabled: this.isLoadingMore, variant: "outline", part: "load-more-btn" }, this.isLoadingMore ? 'Loading...' : 'Load More Issues')))))))));
6799
6802
  }
6800
6803
  static get style() { return feedlogIssuesCss(); }
6801
6804
  static get cmpMeta() { return {
6802
- "$flags$": 9,
6805
+ "$flags$": 265,
6803
6806
  "$tagName$": "feedlog-issues",
6804
6807
  "$members$": {
6805
6808
  "issues": [16],
@@ -6814,8 +6817,7 @@ class FeedlogIssues {
6814
6817
  "error": [1],
6815
6818
  "hasMore": [4, "has-more"],
6816
6819
  "isLoadingMore": [4, "is-loading-more"],
6817
- "getIssueUrl": [16],
6818
- "currentTheme": [32]
6820
+ "getIssueUrl": [16]
6819
6821
  },
6820
6822
  "$listeners$": undefined,
6821
6823
  "$lazyBundleId$": "-",
@@ -6823,37 +6825,64 @@ class FeedlogIssues {
6823
6825
  }; }
6824
6826
  }
6825
6827
 
6828
+ function getDefaultExportFromCjs (x) {
6829
+ return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
6830
+ }
6831
+
6832
+ function getAugmentedNamespace(n) {
6833
+ if (n.__esModule) return n;
6834
+ var f = n.default;
6835
+ if (typeof f == "function") {
6836
+ var a = function a () {
6837
+ if (this instanceof a) {
6838
+ return Reflect.construct(f, arguments, this.constructor);
6839
+ }
6840
+ return f.apply(this, arguments);
6841
+ };
6842
+ a.prototype = f.prototype;
6843
+ } else a = {};
6844
+ Object.defineProperty(a, '__esModule', {value: true});
6845
+ Object.keys(n).forEach(function (k) {
6846
+ var d = Object.getOwnPropertyDescriptor(n, k);
6847
+ Object.defineProperty(a, k, d.get ? d : {
6848
+ enumerable: true,
6849
+ get: function () {
6850
+ return n[k];
6851
+ }
6852
+ });
6853
+ });
6854
+ return a;
6855
+ }
6856
+
6857
+ var require$$0 = /*@__PURE__*/getAugmentedNamespace(purify_es);
6858
+
6859
+ var browser;
6860
+ var hasRequiredBrowser;
6861
+
6862
+ function requireBrowser () {
6863
+ if (hasRequiredBrowser) return browser;
6864
+ hasRequiredBrowser = 1;
6865
+ browser = self.DOMPurify || (self.DOMPurify = require$$0.default || require$$0);
6866
+ return browser;
6867
+ }
6868
+
6869
+ var browserExports = requireBrowser();
6870
+ var DOMPurify = /*@__PURE__*/getDefaultExportFromCjs(browserExports);
6871
+
6826
6872
  /**
6827
6873
  * HTML and XSS sanitization utilities
6828
6874
  */
6829
6875
  /**
6830
- * Basic HTML entity escaping to prevent XSS
6831
- * This is a lightweight alternative to DOMPurify
6832
- */
6833
- /**
6834
- * Sanitize HTML by removing dangerous tags and attributes
6835
- * Removes script tags, event handlers, and other potentially malicious content
6876
+ * Sanitize HTML using DOMPurify (safe for untrusted content).
6877
+ * Removes scripts, dangerous URLs, and unsafe attributes.
6836
6878
  */
6837
6879
  function sanitizeHtml(html) {
6838
6880
  if (typeof html !== 'string') {
6839
6881
  return '';
6840
6882
  }
6841
- // Remove script tags and content
6842
- let sanitized = html.replace(/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi, '');
6843
- // Remove on* event handlers
6844
- sanitized = sanitized.replace(/\s*on\w+\s*=\s*["'][^"']*["']/gi, '');
6845
- sanitized = sanitized.replace(/\s*on\w+\s*=\s*[^\s>]*/gi, '');
6846
- // Remove iframe tags
6847
- sanitized = sanitized.replace(/<iframe\b[^<]*(?:(?!<\/iframe>)<[^<]*)*<\/iframe>/gi, '');
6848
- // Remove style tags
6849
- sanitized = sanitized.replace(/<style\b[^<]*(?:(?!<\/style>)<[^<]*)*<\/style>/gi, '');
6850
- // Remove embed and object tags
6851
- sanitized = sanitized.replace(/<(embed|object)\b[^<]*>/gi, '');
6852
- // Remove javascript: protocol
6853
- sanitized = sanitized.replace(/javascript:/gi, '');
6854
- // Remove data: protocol for potentially dangerous mime types
6855
- sanitized = sanitized.replace(/data:(?!image\/(?:png|jpg|jpeg|gif|webp);)/gi, '');
6856
- return sanitized;
6883
+ return DOMPurify.sanitize(html, {
6884
+ USE_PROFILES: { html: true },
6885
+ });
6857
6886
  }
6858
6887
 
6859
6888
  /**
@@ -6934,13 +6963,7 @@ class FeedlogSDK {
6934
6963
  return this.validateIssuesResponse(data);
6935
6964
  }
6936
6965
  catch (error) {
6937
- if (error instanceof FeedlogError) {
6938
- throw error;
6939
- }
6940
- if (error instanceof TypeError && error.message.includes('fetch')) {
6941
- throw new FeedlogNetworkError('Network error: Unable to reach API', undefined, error);
6942
- }
6943
- throw new FeedlogError(`Failed to fetch issues: ${error instanceof Error ? error.message : 'Unknown error'}`, undefined, error);
6966
+ this.wrapFetchError(error, 'Failed to fetch issues');
6944
6967
  }
6945
6968
  }
6946
6969
  /**
@@ -6975,13 +6998,7 @@ class FeedlogSDK {
6975
6998
  return this.validateUpvoteResponse(data);
6976
6999
  }
6977
7000
  catch (error) {
6978
- if (error instanceof FeedlogError) {
6979
- throw error;
6980
- }
6981
- if (error instanceof TypeError && error.message.includes('fetch')) {
6982
- throw new FeedlogNetworkError('Network error: Unable to reach API', undefined, error);
6983
- }
6984
- throw new FeedlogError(`Failed to toggle upvote: ${error instanceof Error ? error.message : 'Unknown error'}`, undefined, error);
7001
+ this.wrapFetchError(error, 'Failed to toggle upvote');
6985
7002
  }
6986
7003
  }
6987
7004
  /**
@@ -7008,7 +7025,9 @@ class FeedlogSDK {
7008
7025
  url.searchParams.set('cursor', params.cursor);
7009
7026
  }
7010
7027
  if (params.limit !== undefined) {
7011
- url.searchParams.set('limit', params.limit.toString());
7028
+ const n = Number(params.limit);
7029
+ const clamped = Number.isFinite(n) ? Math.max(1, Math.min(100, Math.floor(n))) : 10;
7030
+ url.searchParams.set('limit', String(clamped));
7012
7031
  }
7013
7032
  return url.toString();
7014
7033
  }
@@ -7016,13 +7035,19 @@ class FeedlogSDK {
7016
7035
  * Get request headers
7017
7036
  */
7018
7037
  getAuthHeaders() {
7019
- const headers = {
7038
+ return {
7020
7039
  'Content-Type': 'application/json',
7040
+ 'x-api-key': this.apiKey,
7021
7041
  };
7022
- if (this.apiKey) {
7023
- headers['x-api-key'] = this.apiKey;
7042
+ }
7043
+ wrapFetchError(error, context) {
7044
+ if (error instanceof FeedlogError) {
7045
+ throw error;
7024
7046
  }
7025
- return headers;
7047
+ if (error instanceof TypeError && error.message.includes('fetch')) {
7048
+ throw new FeedlogNetworkError('Network error: Unable to reach API', undefined, error);
7049
+ }
7050
+ throw new FeedlogError(`${context}: ${error instanceof Error ? error.message : 'Unknown error'}`, undefined, error);
7026
7051
  }
7027
7052
  /**
7028
7053
  * Fetch with timeout support using AbortController
@@ -7107,13 +7132,23 @@ class FeedlogSDK {
7107
7132
  const repoName = rawRepoName != null && rawRepoName !== '' ? String(rawRepoName) : null;
7108
7133
  const rawRepoDesc = repo.description;
7109
7134
  const repoDescription = rawRepoDesc != null && rawRepoDesc !== '' ? sanitizeHtml(String(rawRepoDesc)) : null;
7135
+ const revision = typeof issue.revision === 'number' && Number.isFinite(issue.revision) ? issue.revision : 1;
7136
+ const upvoteCount = typeof issue.upvoteCount === 'number' && Number.isFinite(issue.upvoteCount)
7137
+ ? issue.upvoteCount
7138
+ : 0;
7139
+ const updatedAt = typeof issue.updatedAt === 'string' && issue.updatedAt.length > 0
7140
+ ? issue.updatedAt
7141
+ : new Date().toISOString();
7142
+ const createdAt = typeof issue.createdAt === 'string' && issue.createdAt.length > 0
7143
+ ? issue.createdAt
7144
+ : new Date().toISOString();
7110
7145
  return {
7111
7146
  id: String(issue.id),
7112
7147
  githubIssueLink,
7113
7148
  type: issue.type || 'bug',
7114
7149
  status: issue.status || 'open',
7115
7150
  pinnedAt: issue.pinnedAt ? String(issue.pinnedAt) : null,
7116
- revision: Number(issue.revision) || 1,
7151
+ revision,
7117
7152
  title: sanitizedTitle,
7118
7153
  body: sanitizedBody,
7119
7154
  repository: {
@@ -7121,9 +7156,9 @@ class FeedlogSDK {
7121
7156
  name: repoName,
7122
7157
  description: repoDescription,
7123
7158
  },
7124
- updatedAt: String(issue.updatedAt) || new Date().toISOString(),
7125
- createdAt: String(issue.createdAt) || new Date().toISOString(),
7126
- upvoteCount: Number(issue.upvoteCount) || 0,
7159
+ updatedAt,
7160
+ createdAt,
7161
+ upvoteCount,
7127
7162
  hasUpvoted: Boolean(issue.hasUpvoted),
7128
7163
  };
7129
7164
  }
@@ -7264,7 +7299,9 @@ class FeedlogIssuesClient {
7264
7299
  this.cursor = null;
7265
7300
  this.hasMore = false;
7266
7301
  this.issues = [];
7267
- this.fetchIssues();
7302
+ void this.fetchIssues().catch(() => {
7303
+ /* errors handled inside fetchIssues */
7304
+ });
7268
7305
  this.previousType = this.type;
7269
7306
  this.previousLimit = this.limit;
7270
7307
  this.previousSortBy = this.sortBy;
@@ -7284,6 +7321,22 @@ class FeedlogIssuesClient {
7284
7321
  this.feedlogError.emit({ error: errorMsg });
7285
7322
  }
7286
7323
  }
7324
+ buildFetchParams() {
7325
+ const params = {};
7326
+ if (this.type) {
7327
+ params.type = this.type;
7328
+ }
7329
+ if (this.sortBy) {
7330
+ params.sortBy = this.sortBy;
7331
+ }
7332
+ if (this.limit) {
7333
+ params.limit = this.limit;
7334
+ }
7335
+ if (this.cursor) {
7336
+ params.cursor = this.cursor;
7337
+ }
7338
+ return params;
7339
+ }
7287
7340
  async fetchIssues() {
7288
7341
  if (!this.sdk) {
7289
7342
  return;
@@ -7293,19 +7346,7 @@ class FeedlogIssuesClient {
7293
7346
  try {
7294
7347
  this.loading = true;
7295
7348
  this.error = null;
7296
- const params = {};
7297
- if (this.type) {
7298
- params.type = this.type;
7299
- }
7300
- if (this.sortBy) {
7301
- params.sortBy = this.sortBy;
7302
- }
7303
- if (this.limit) {
7304
- params.limit = this.limit;
7305
- }
7306
- if (this.cursor) {
7307
- params.cursor = this.cursor;
7308
- }
7349
+ const params = this.buildFetchParams();
7309
7350
  const response = await this.sdk.fetchIssues(params);
7310
7351
  // Ignore response if component disconnected or a newer request was made
7311
7352
  if (this.isDisconnected || currentRequestId !== this.fetchRequestId) {
@@ -7344,19 +7385,7 @@ class FeedlogIssuesClient {
7344
7385
  const currentRequestId = this.fetchRequestId;
7345
7386
  this.isLoadingMore = true;
7346
7387
  try {
7347
- const params = {};
7348
- if (this.type) {
7349
- params.type = this.type;
7350
- }
7351
- if (this.sortBy) {
7352
- params.sortBy = this.sortBy;
7353
- }
7354
- if (this.limit) {
7355
- params.limit = this.limit;
7356
- }
7357
- if (this.cursor) {
7358
- params.cursor = this.cursor;
7359
- }
7388
+ const params = this.buildFetchParams();
7360
7389
  const response = await this.sdk.fetchIssues(params);
7361
7390
  // Ignore response if component disconnected or a newer request was made
7362
7391
  if (this.isDisconnected || currentRequestId !== this.fetchRequestId) {
@@ -7391,11 +7420,11 @@ class FeedlogIssuesClient {
7391
7420
  const style = hostBg
7392
7421
  ? { '--feedlog-background': hostBg }
7393
7422
  : undefined;
7394
- return (hAsync("feedlog-issues", { key: '0528f8bbb5f1e735c3b50a4325221ee8bfdfadda', style: style, issues: this.issues, limit: this.limit, maxWidth: this.maxWidth, theme: this.theme, heading: this.heading, subtitle: this.subtitle, emptyStateTitle: this.emptyStateTitle, emptyStateMessage: this.emptyStateMessage, getIssueUrl: this.getIssueUrl, loading: this.loading, error: this.error, hasMore: this.hasMore, isLoadingMore: this.isLoadingMore, onFeedlogUpvote: this.handleUpvote, onFeedlogLoadMore: async () => this.loadMore() }));
7423
+ return (hAsync("feedlog-issues", { key: '2d9528bb33630664824ab584e10208359d579eb6', style: style, issues: this.issues, limit: this.limit, maxWidth: this.maxWidth, theme: this.theme, heading: this.heading, subtitle: this.subtitle, emptyStateTitle: this.emptyStateTitle, emptyStateMessage: this.emptyStateMessage, getIssueUrl: this.getIssueUrl, loading: this.loading, error: this.error, hasMore: this.hasMore, isLoadingMore: this.isLoadingMore, onFeedlogUpvote: this.handleUpvote, onFeedlogLoadMore: async () => this.loadMore(), part: "base" }, hAsync("slot", { key: 'efe89b9fd0f337af7930823762296487ebcb758e', name: "header", slot: "header" }), hAsync("slot", { key: 'ffebd688ebf25bb464ceefd6a161f7140e03933b', name: "loading", slot: "loading" }), hAsync("slot", { key: 'b59010966b6f7768814ba838c05ffd62cfd1c26a', name: "error", slot: "error" }), hAsync("slot", { key: '99b1abfcbb62703b3642fb02d79d8d1488421ee3', name: "empty-state", slot: "empty-state" }), hAsync("slot", { key: 'c47c1dc83e8434b8f66d1b42b65e812aa5e1f8ee', name: "load-more", slot: "load-more" })));
7395
7424
  }
7396
7425
  get el() { return getElement(this); }
7397
7426
  static get cmpMeta() { return {
7398
- "$flags$": 9,
7427
+ "$flags$": 265,
7399
7428
  "$tagName$": "feedlog-issues-client",
7400
7429
  "$members$": {
7401
7430
  "apiKey": [1, "api-key"],
@@ -7492,13 +7521,13 @@ class FeedlogIssuesList {
7492
7521
  return null;
7493
7522
  const totalPages = Math.ceil(this.issues.length / this.limit);
7494
7523
  const pageNumbers = this.getPageNumbers();
7495
- return (hAsync("nav", { class: "pagination", "aria-label": "Issues pagination" }, hAsync("button", { type: "button", class: "pagination-btn pagination-arrow", "aria-label": "Previous page", disabled: this.currentPage <= 1, onClick: () => this.goToPage(this.currentPage - 1) }, "\u2039"), pageNumbers.map((p, i) => p === 'ellipsis' ? (hAsync("span", { key: i, class: "pagination-ellipsis", "aria-hidden": "true" }, "\u2026")) : (hAsync("button", { key: i, type: "button", class: "pagination-btn", "aria-current": p === this.currentPage ? 'page' : undefined, onClick: () => this.goToPage(p) }, p))), hAsync("button", { type: "button", class: "pagination-btn pagination-arrow", "aria-label": "Next page", disabled: this.currentPage >= totalPages, onClick: () => this.goToPage(this.currentPage + 1) }, "\u203A")));
7524
+ return (hAsync("nav", { class: "pagination", "aria-label": "Issues pagination", part: "pagination" }, hAsync("button", { type: "button", class: "pagination-btn pagination-arrow", "aria-label": "Previous page", disabled: this.currentPage <= 1, onClick: () => this.goToPage(this.currentPage - 1), part: "pagination-btn pagination-arrow" }, "\u2039"), pageNumbers.map((p, i) => p === 'ellipsis' ? (hAsync("span", { key: `ellipsis-${i}`, class: "pagination-ellipsis", "aria-hidden": "true", part: "pagination-ellipsis" }, "\u2026")) : (hAsync("button", { key: `page-${p}`, type: "button", class: "pagination-btn", "aria-current": p === this.currentPage ? 'page' : undefined, onClick: () => this.goToPage(p), part: `pagination-btn ${p === this.currentPage ? 'pagination-btn-active' : ''}` }, p))), hAsync("button", { type: "button", class: "pagination-btn pagination-arrow", "aria-label": "Next page", disabled: this.currentPage >= totalPages, onClick: () => this.goToPage(this.currentPage + 1), part: "pagination-btn pagination-arrow" }, "\u203A")));
7496
7525
  }
7497
7526
  render() {
7498
7527
  const visibleIssues = this.getVisibleIssues();
7499
- return (hAsync(Host, { key: '474f5ca0d8edc94a8e9a03d83c6a977270391d65', class: this.theme === 'dark' ? 'dark' : '' }, hAsync("div", { key: '8f2f8125653ec5f80b167945a33cefe483c1a001', class: "issues-list" }, visibleIssues.length === 0 ? (hAsync("div", { class: "empty-state" }, this.emptyStateTitle && this.emptyStateMessage ? (hAsync("div", { class: "empty-state-content" }, this.renderEmptyStateIllustration(), hAsync("h2", { class: "empty-state-title" }, this.emptyStateTitle), hAsync("p", { class: "empty-state-message" }, this.emptyStateMessage))) : (hAsync("p", null, "No issues found")))) : (visibleIssues.map(issue => {
7528
+ return (hAsync(Host, { key: 'cfbc683e096ad29327539323e1db97aba4bba373', class: this.theme === 'dark' ? 'dark' : '' }, hAsync("div", { key: 'fb342265514ab879e37136955cb0dc444f381646', class: "issues-list", part: "base" }, visibleIssues.length === 0 ? (hAsync("div", { class: "empty-state", part: "empty-state" }, this.emptyStateTitle && this.emptyStateMessage ? (hAsync("div", { class: "empty-state-content", part: "empty-state-content" }, this.renderEmptyStateIllustration(), hAsync("h2", { class: "empty-state-title", part: "empty-state-title" }, this.emptyStateTitle), hAsync("p", { class: "empty-state-message", part: "empty-state-message" }, this.emptyStateMessage))) : (hAsync("slot", { name: "empty-state" }, hAsync("p", null, "No issues found"))))) : (visibleIssues.map(issue => {
7500
7529
  var _a, _b;
7501
- return (hAsync("feedlog-issue", { key: issue.id, issue: issue, issueUrl: (_b = (_a = this.getIssueUrl) === null || _a === void 0 ? void 0 : _a.call(this, issue)) !== null && _b !== void 0 ? _b : undefined, theme: this.theme, onFeedlogUpvote: (e) => this.handleUpvote(e) }));
7530
+ return (hAsync("feedlog-issue", { key: issue.id, issue: issue, issueUrl: (_b = (_a = this.getIssueUrl) === null || _a === void 0 ? void 0 : _a.call(this, issue)) !== null && _b !== void 0 ? _b : undefined, theme: this.theme, onFeedlogUpvote: (e) => this.handleUpvote(e), part: "issue" }));
7502
7531
  }))), this.renderPagination()));
7503
7532
  }
7504
7533
  static get watchers() { return {
@@ -7511,7 +7540,7 @@ class FeedlogIssuesList {
7511
7540
  }; }
7512
7541
  static get style() { return feedlogIssuesListCss(); }
7513
7542
  static get cmpMeta() { return {
7514
- "$flags$": 9,
7543
+ "$flags$": 265,
7515
7544
  "$tagName$": "feedlog-issues-list",
7516
7545
  "$members$": {
7517
7546
  "issues": [16],