@feedlog-ai/webcomponents 0.0.27 → 0.0.28

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 (31) hide show
  1. package/README.md +6 -5
  2. package/dist/cjs/feedlog-badge.cjs.entry.js +1 -1
  3. package/dist/cjs/feedlog-button_3.cjs.entry.js +29 -2
  4. package/dist/cjs/feedlog-issues.cjs.entry.js +1 -1
  5. package/dist/collection/components/feedlog-badge/feedlog-badge.css +50 -50
  6. package/dist/collection/components/feedlog-issue/feedlog-issue.css +89 -64
  7. package/dist/collection/components/feedlog-issue/feedlog-issue.js +28 -1
  8. package/dist/collection/components/feedlog-issue/feedlog-issue.stories.js +3 -2
  9. package/dist/collection/components/feedlog-issues/feedlog-issues.css +0 -2
  10. package/dist/collection/components/feedlog-issues/feedlog-issues.stories.js +3 -2
  11. package/dist/components/feedlog-badge.js +1 -1
  12. package/dist/components/feedlog-issue.js +1 -1
  13. package/dist/components/feedlog-issues-client.js +1 -1
  14. package/dist/components/feedlog-issues-list.js +1 -1
  15. package/dist/components/feedlog-issues.js +1 -1
  16. package/dist/components/{p-BuX7UXwe.js → p-B85wbrJg.js} +2 -2
  17. package/dist/components/{p-GzOCQT_k.js → p-DrIHp7WA.js} +1 -1
  18. package/dist/components/p-DzATWlAC.js +1 -0
  19. package/dist/components/{p-DMKFbFjj.js → p-w376pIno.js} +1 -1
  20. package/dist/esm/feedlog-badge.entry.js +1 -1
  21. package/dist/esm/feedlog-button_3.entry.js +30 -3
  22. package/dist/esm/feedlog-issues.entry.js +1 -1
  23. package/dist/feedlog-toolkit/feedlog-toolkit.esm.js +1 -1
  24. package/dist/feedlog-toolkit/{p-7f8133b3.entry.js → p-08a0ec85.entry.js} +1 -1
  25. package/dist/feedlog-toolkit/p-bf8244fc.entry.js +1 -0
  26. package/dist/feedlog-toolkit/p-def7865f.entry.js +3 -0
  27. package/dist/types/components/feedlog-issue/feedlog-issue.d.ts +5 -0
  28. package/package.json +2 -2
  29. package/dist/components/p-Chc3XZ5Y.js +0 -1
  30. package/dist/feedlog-toolkit/p-13089dc5.entry.js +0 -1
  31. package/dist/feedlog-toolkit/p-f868da29.entry.js +0 -3
package/README.md CHANGED
@@ -288,15 +288,16 @@ feedlog-issues-client,
288
288
  feedlog-issues {
289
289
  /* Card */
290
290
  --feedlog-card-padding: 1.25rem;
291
- --feedlog-card-accent-width: 3px;
291
+ --feedlog-card-radius: 0.75rem;
292
292
  --feedlog-radius: 0.625rem;
293
293
  --feedlog-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.08);
294
- --feedlog-shadow-hover: 0 4px 12px -2px rgba(0, 0, 0, 0.1);
294
+ --feedlog-shadow-hover-enhancement: 0 4px 12px -2px rgba(0, 0, 0, 0.1);
295
+ --feedlog-shadow-hover-bug: 0 4px 12px -2px rgba(0, 0, 0, 0.1);
295
296
  /* Typography */
296
- --feedlog-title-font-size: 0.9375rem;
297
+ --feedlog-title-font-size: 1.125rem;
297
298
  --feedlog-title-font-weight: 600;
298
- --feedlog-body-font-size: 0.8125rem;
299
- --feedlog-body-line-height: 1.5;
299
+ --feedlog-body-font-size: 0.875rem;
300
+ --feedlog-body-line-height: 1.6;
300
301
  --feedlog-timestamp-font-size: 0.6875rem;
301
302
  /* Colors */
302
303
  --feedlog-accent-color: #2563eb;
@@ -2,7 +2,7 @@
2
2
 
3
3
  var index = require('./index-Bk1-M_w_.js');
4
4
 
5
- const feedlogBadgeCss = () => `:host{display:inline-block;--feedlog-badge-font-size:0.75rem;--feedlog-badge-font-weight:500;--feedlog-badge-padding-x:0.5rem;--feedlog-badge-padding-y:0.125rem;--feedlog-badge-border-radius:calc(0.625rem - 2px);--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-destructive:#d4183d;--feedlog-destructive-hover:#b91c1c}:host(.dark){--feedlog-blue-500:oklch(0.623 0.214 259.815);--feedlog-blue-600:oklch(0.546 0.245 262.881);--feedlog-destructive:oklch(0.396 0.141 25.723);--feedlog-destructive-hover:oklch(0.45 0.16 25.723)}.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.15s ease;font-family:inherit}.badge-default{background-color:var(--feedlog-blue-600);color:#ffffff}.badge-default:hover{background-color:var(--feedlog-blue-700)}:host(.dark) .badge-default{background-color:var(--feedlog-blue-500)}:host(.dark) .badge-default:hover{background-color:var(--feedlog-blue-600)}.badge-enhancement{background-color:var(--feedlog-blue-600);color:#ffffff}.badge-enhancement:hover{background-color:var(--feedlog-blue-700)}:host(.dark) .badge-enhancement{background-color:var(--feedlog-blue-500)}:host(.dark) .badge-enhancement:hover{background-color:var(--feedlog-blue-600)}.badge-destructive{background-color:var(--feedlog-destructive);color:#ffffff}.badge-destructive:hover{background-color:var(--feedlog-destructive-hover)}.badge-secondary{background-color:var(--feedlog-muted, #f1f5f9);color:var(--feedlog-muted-foreground, #64748b)}:host(.dark) .badge-secondary{background-color:var(--feedlog-muted, oklch(0.32 0.01 260));color:var(--feedlog-muted-foreground, oklch(0.72 0.02 260))}`;
5
+ 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)}`;
6
6
 
7
7
  const FeedlogBadge = class {
8
8
  constructor(hostRef) {
@@ -1531,7 +1531,7 @@ function parseMarkdown(markdown) {
1531
1531
  });
1532
1532
  }
1533
1533
 
1534
- 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-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-card-padding:1.25rem;--feedlog-title-font-size:0.9375rem;--feedlog-title-font-weight:600;--feedlog-body-font-size:0.8125rem;--feedlog-body-line-height:1.5;--feedlog-timestamp-font-size:0.6875rem;--feedlog-timestamp-color:var(--feedlog-muted-foreground);--feedlog-card-accent-width:3px;--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 3px 0 rgba(0, 0, 0, 0.08), 0 1px 2px -1px rgba(0, 0, 0, 0.08);--feedlog-shadow-hover:0 4px 12px -2px rgba(0, 0, 0, 0.1), 0 2px 6px -2px rgba(0, 0, 0, 0.08)}: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-400:oklch(0.707 0.165 254.624);--feedlog-blue-600:oklch(0.546 0.245 262.881);--feedlog-blue-900-30:color-mix(in oklab, oklch(0.379 0.146 265.522) 30%, transparent);--feedlog-red-900-30:color-mix(in oklab, oklch(0.396 0.141 25.723) 30%, transparent);--feedlog-upvote-icon-color:var(--feedlog-blue-400);--feedlog-upvote-icon-filled-color:var(--feedlog-red-600);--feedlog-shadow:0 1px 3px 0 rgba(0, 0, 0, 0.3);--feedlog-shadow-hover:0 4px 12px -2px rgba(0, 0, 0, 0.4)}.issue-card{background-color:var(--feedlog-card);border:1px solid var(--feedlog-border);border-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::before{content:'';position:absolute;left:0;top:0;bottom:0;width:var(--feedlog-card-accent-width);background:var(--feedlog-accent-color)}.issue-card.issue-type-bug::before{background:var(--feedlog-destructive)}.issue-card:hover{box-shadow:var(--feedlog-shadow-hover)}.issue-content{padding:var(--feedlog-card-padding);padding-left:calc(var(--feedlog-card-padding) + var(--feedlog-card-accent-width));display:flex;flex-direction:column;gap:0.875rem}.issue-header{display:flex;align-items:flex-start;justify-content:space-between;gap:0.75rem;min-height:1.5rem}.issue-header-left{display:flex;align-items:center;gap:0.375rem;flex-wrap:wrap}.issue-type-badge{width:fit-content}.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;align-items:center;justify-content:flex-end;margin-top:0.75rem}.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.4;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.5em 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)}.issue-repository{display:flex;align-items:center;gap:0.5rem;font-size:0.75rem;color:var(--feedlog-muted-foreground);flex-wrap:wrap}.repo-name{font-weight:500}.github-link{display:inline-flex;align-items:center;gap:0.25rem;color:var(--feedlog-accent-color);text-decoration:none;font-weight:500;font-size:0.75rem;padding:0.125rem 0.375rem;border-radius:0.25rem;transition:background-color 0.15s ease,\\n color 0.15s ease}.github-link:hover{text-decoration:underline}.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:0.375rem;background-color:#ffffff;border:1px solid #e2e8f0;cursor:pointer;transition:all 0.2s 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.75rem;gap:0.5rem;font-family:inherit;line-height:1}.upvote-button:hover{background-color:#f8fafc;border-color:#cbd5e1;transform:translateY(-1px);box-shadow:0 4px 6px -1px rgba(0, 0, 0, 0.08), 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-color:#eff6ff;border-color:#bfdbfe}.upvote-button.upvoted:hover{background-color:#dbeafe;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-color:var(--feedlog-card);border-color:var(--feedlog-border)}:host(.dark) .upvote-button:hover{background-color:var(--feedlog-muted);border-color:var(--feedlog-muted-foreground)}:host(.dark) .upvote-button.upvoted{background-color:rgba(37, 99, 235, 0.15);border-color:rgba(37, 99, 235, 0.3)}:host(.dark) .upvote-button.upvoted:hover{background-color:rgba(37, 99, 235, 0.25);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)}`;
1534
+ 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.5rem}.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)}`;
1535
1535
 
1536
1536
  const FeedlogIssueComponent = class {
1537
1537
  constructor(hostRef) {
@@ -1541,6 +1541,9 @@ const FeedlogIssueComponent = class {
1541
1541
  * Theme variant: 'light' or 'dark'
1542
1542
  */
1543
1543
  this.theme = 'light';
1544
+ this.handleMediaSlotChange = () => {
1545
+ this.updateMediaVisibility();
1546
+ };
1544
1547
  this.handleUpvote = (event) => {
1545
1548
  event.stopPropagation();
1546
1549
  this.feedlogUpvote.emit({
@@ -1550,6 +1553,29 @@ const FeedlogIssueComponent = class {
1550
1553
  });
1551
1554
  };
1552
1555
  }
1556
+ componentDidLoad() {
1557
+ var _a;
1558
+ const mediaSlot = (_a = this.host.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('slot[name="media"]');
1559
+ if (mediaSlot) {
1560
+ mediaSlot.addEventListener('slotchange', this.handleMediaSlotChange);
1561
+ this.updateMediaVisibility();
1562
+ }
1563
+ }
1564
+ disconnectedCallback() {
1565
+ var _a;
1566
+ const mediaSlot = (_a = this.host.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('slot[name="media"]');
1567
+ if (mediaSlot) {
1568
+ mediaSlot.removeEventListener('slotchange', this.handleMediaSlotChange);
1569
+ }
1570
+ }
1571
+ updateMediaVisibility() {
1572
+ var _a;
1573
+ const mediaEl = (_a = this.host.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.issue-media');
1574
+ if (!mediaEl)
1575
+ return;
1576
+ const slot = this.host.querySelector('[slot="media"]');
1577
+ mediaEl.classList.toggle('has-media', !!slot);
1578
+ }
1553
1579
  /**
1554
1580
  * Renders the pin icon SVG (Lucide/Feather style)
1555
1581
  */
@@ -1634,8 +1660,9 @@ const FeedlogIssueComponent = class {
1634
1660
  const statusBadgeLabel = this.getStatusBadgeLabel();
1635
1661
  const githubUrl = (_b = issue.githubIssueLink) !== null && _b !== void 0 ? _b : issueUrl;
1636
1662
  const showGithubButton = githubUrl != null && githubUrl !== '';
1637
- return (index.h(index.Host, { class: this.theme === 'dark' ? 'dark' : '', "data-upvoted": issue.hasUpvoted ? 'true' : 'false' }, index.h("div", { class: `issue-card issue-type-${issue.type}` }, index.h("div", { class: "issue-content" }, index.h("div", { class: "issue-header" }, index.h("div", { class: "issue-header-left" }, index.h("div", { class: "issue-type-badge" }, issue.type === 'bug' ? (index.h("feedlog-badge", { variant: "destructive" }, "Bug")) : (index.h("feedlog-badge", { variant: "enhancement" }, "Enhancement"))), statusBadgeLabel && (index.h("feedlog-badge", { variant: "secondary" }, statusBadgeLabel)), issue.pinnedAt && (index.h("div", { class: "pinned-indicator", title: "Pinned issue" }, this.renderPinIcon()))), index.h("span", { class: "issue-timestamp", title: timestampTitle }, timestampLabel, " ", this.formatDate(timestampDate))), index.h("div", { class: "issue-main" }, index.h("h3", { class: "issue-title" }, displayTitle), issue.body != null && issue.body !== '' && (index.h("div", { class: "issue-body", innerHTML: parseMarkdown(issue.body) })), index.h("div", { class: "issue-repository" }, repoName != null && (index.h("span", { class: "repo-name", title: repoTooltip }, repoName)), showGithubButton && (index.h("a", { part: "github-link", class: "github-link", href: githubUrl, target: "_blank", rel: "noopener noreferrer", title: "View on GitHub" }, this.renderExternalLinkIcon(), index.h("span", { class: "github-link-text" }, "View on GitHub")))), issue.type !== 'bug' && (index.h("div", { class: "issue-footer" }, index.h("button", { part: "upvote-button", class: `upvote-button ${issue.hasUpvoted ? 'upvoted' : ''}`, onClick: (e) => this.handleUpvote(e), title: issue.hasUpvoted ? 'Remove upvote' : 'Upvote this issue' }, index.h("div", { class: "upvote-action" }, index.h("slot", { name: "upvote-icon" }, this.renderUpvoteIcon(issue.hasUpvoted)), index.h("span", { class: "upvote-label" }, "Upvote")), index.h("div", { class: "reel-container" }, index.h("span", { class: "upvote-count reel-number", key: issue.upvoteCount }, issue.upvoteCount))))))))));
1663
+ return (index.h(index.Host, { class: this.theme === 'dark' ? 'dark' : '', "data-upvoted": issue.hasUpvoted ? 'true' : 'false' }, index.h("div", { class: `issue-card issue-type-${issue.type}` }, index.h("div", { class: "issue-media", part: "media" }, index.h("slot", { name: "media" })), index.h("div", { class: "issue-content" }, index.h("div", { class: "issue-main" }, index.h("div", { class: "issue-header-top" }, index.h("div", { class: "issue-badges" }, issue.type === 'bug' ? (index.h("feedlog-badge", { variant: "destructive" }, "Bug")) : (index.h("feedlog-badge", { variant: "enhancement" }, "Enhancement")), statusBadgeLabel && (index.h("feedlog-badge", { variant: "secondary" }, statusBadgeLabel))), index.h("div", { class: "issue-meta-right" }, issue.pinnedAt && (index.h("div", { class: "pinned-indicator", title: "Pinned issue" }, this.renderPinIcon())), index.h("span", { class: "issue-timestamp", title: timestampTitle }, timestampLabel, " ", this.formatDate(timestampDate)))), index.h("h3", { class: "issue-title" }, displayTitle), issue.body != null && issue.body !== '' && (index.h("div", { class: "issue-body", innerHTML: parseMarkdown(issue.body) })), (repoName != null || showGithubButton || issue.type !== 'bug') && (index.h("div", { class: "issue-footer" }, (repoName != null || showGithubButton) && (index.h("div", { class: "issue-footer-meta" }, repoName != null && (index.h("span", { class: "repo-name", title: repoTooltip }, repoName)), showGithubButton && (index.h("a", { part: "github-link", class: "github-link", href: githubUrl, target: "_blank", rel: "noopener noreferrer", title: "View on GitHub" }, this.renderExternalLinkIcon(), index.h("span", { class: "github-link-text" }, "View on GitHub"))))), issue.type !== 'bug' && (index.h("button", { part: "upvote-button", class: `upvote-button ${issue.hasUpvoted ? 'upvoted' : ''}`, onClick: (e) => this.handleUpvote(e), title: issue.hasUpvoted ? 'Remove upvote' : 'Upvote this issue' }, index.h("div", { class: "upvote-action" }, index.h("slot", { name: "upvote-icon" }, this.renderUpvoteIcon(issue.hasUpvoted)), index.h("span", { class: "upvote-label" }, "Upvote")), index.h("div", { class: "reel-container" }, index.h("span", { class: "upvote-count reel-number", key: issue.upvoteCount }, issue.upvoteCount)))))))))));
1638
1664
  }
1665
+ get host() { return index.getElement(this); }
1639
1666
  };
1640
1667
  FeedlogIssueComponent.style = feedlogIssueCss();
1641
1668
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  var index = require('./index-Bk1-M_w_.js');
4
4
 
5
- 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-blue-900-30:color-mix(in oklab, oklch(0.379 0.146 265.522) 30%, transparent);--feedlog-red-900-30:color-mix(in oklab, oklch(0.396 0.141 25.723) 30%, transparent);--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}`;
5
+ 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}`;
6
6
 
7
7
  const FeedlogIssues = class {
8
8
  constructor(hostRef) {
@@ -4,26 +4,42 @@
4
4
  /* Light theme defaults */
5
5
  --feedlog-badge-font-size: 0.75rem;
6
6
  --feedlog-badge-font-weight: 500;
7
- --feedlog-badge-padding-x: 0.5rem;
7
+ --feedlog-badge-padding-x: 0.625rem;
8
8
  --feedlog-badge-padding-y: 0.125rem;
9
- --feedlog-badge-border-radius: calc(0.625rem - 2px);
10
-
11
- /* Default/Enhancement variant colors */
12
- --feedlog-blue-500: oklch(0.623 0.214 259.815);
13
- --feedlog-blue-600: oklch(0.546 0.245 262.881);
14
- --feedlog-blue-700: oklch(0.488 0.243 264.376);
15
-
16
- /* Destructive variant colors */
17
- --feedlog-destructive: #d4183d;
18
- --feedlog-destructive-hover: #b91c1c;
9
+ --feedlog-badge-border-radius: 9999px; /* Pill shape */
10
+
11
+ /* Default/Enhancement variant colors - Soft Blue */
12
+ --feedlog-blue-bg: #eff6ff;
13
+ --feedlog-blue-text: #1e40af;
14
+ --feedlog-blue-bg-hover: #dbeafe;
15
+
16
+ /* Destructive variant colors - Soft Red */
17
+ --feedlog-red-bg: #fef2f2;
18
+ --feedlog-red-text: #991b1b;
19
+ --feedlog-red-bg-hover: #fee2e2;
20
+
21
+ /* Secondary variant - Muted */
22
+ --feedlog-muted-bg: #f1f5f9;
23
+ --feedlog-muted-text: #475569;
24
+ --feedlog-muted-bg-hover: #e2e8f0;
19
25
  }
20
26
 
21
27
  :host(.dark) {
22
28
  /* Dark theme values */
23
- --feedlog-blue-500: oklch(0.623 0.214 259.815);
24
- --feedlog-blue-600: oklch(0.546 0.245 262.881);
25
- --feedlog-destructive: oklch(0.396 0.141 25.723);
26
- --feedlog-destructive-hover: oklch(0.45 0.16 25.723);
29
+ /* Default/Enhancement variant colors - Dark Blue */
30
+ --feedlog-blue-bg: rgba(37, 99, 235, 0.15);
31
+ --feedlog-blue-text: #93c5fd;
32
+ --feedlog-blue-bg-hover: rgba(37, 99, 235, 0.25);
33
+
34
+ /* Destructive variant colors - Dark Red */
35
+ --feedlog-red-bg: rgba(220, 38, 38, 0.15);
36
+ --feedlog-red-text: #fca5a5;
37
+ --feedlog-red-bg-hover: rgba(220, 38, 38, 0.25);
38
+
39
+ /* Secondary variant - Dark Muted */
40
+ --feedlog-muted-bg: oklch(0.32 0.01 260);
41
+ --feedlog-muted-text: oklch(0.8 0.02 260);
42
+ --feedlog-muted-bg-hover: oklch(0.38 0.01 260);
27
43
  }
28
44
 
29
45
  .badge {
@@ -36,63 +52,47 @@
36
52
  padding: var(--feedlog-badge-padding-y) var(--feedlog-badge-padding-x);
37
53
  border-radius: var(--feedlog-badge-border-radius);
38
54
  white-space: nowrap;
39
- transition: background-color 0.15s ease;
55
+ transition: background-color 0.2s ease, color 0.2s ease;
40
56
  font-family: inherit;
57
+ border: 1px solid transparent;
41
58
  }
42
59
 
43
- /* Default variant - uses blue like enhancement */
60
+ /* Default variant - Soft Blue */
44
61
  .badge-default {
45
- background-color: var(--feedlog-blue-600);
46
- color: #ffffff;
62
+ background-color: var(--feedlog-blue-bg);
63
+ color: var(--feedlog-blue-text);
47
64
  }
48
65
 
49
66
  .badge-default:hover {
50
- background-color: var(--feedlog-blue-700);
51
- }
52
-
53
- :host(.dark) .badge-default {
54
- background-color: var(--feedlog-blue-500);
55
- }
56
-
57
- :host(.dark) .badge-default:hover {
58
- background-color: var(--feedlog-blue-600);
67
+ background-color: var(--feedlog-blue-bg-hover);
59
68
  }
60
69
 
61
- /* Enhancement variant - blue styling */
70
+ /* Enhancement variant - Soft Blue */
62
71
  .badge-enhancement {
63
- background-color: var(--feedlog-blue-600);
64
- color: #ffffff;
72
+ background-color: var(--feedlog-blue-bg);
73
+ color: var(--feedlog-blue-text);
65
74
  }
66
75
 
67
76
  .badge-enhancement:hover {
68
- background-color: var(--feedlog-blue-700);
69
- }
70
-
71
- :host(.dark) .badge-enhancement {
72
- background-color: var(--feedlog-blue-500);
73
- }
74
-
75
- :host(.dark) .badge-enhancement:hover {
76
- background-color: var(--feedlog-blue-600);
77
+ background-color: var(--feedlog-blue-bg-hover);
77
78
  }
78
79
 
79
- /* Destructive variant - red/danger styling */
80
+ /* Destructive variant - Soft Red */
80
81
  .badge-destructive {
81
- background-color: var(--feedlog-destructive);
82
- color: #ffffff;
82
+ background-color: var(--feedlog-red-bg);
83
+ color: var(--feedlog-red-text);
83
84
  }
84
85
 
85
86
  .badge-destructive:hover {
86
- background-color: var(--feedlog-destructive-hover);
87
+ background-color: var(--feedlog-red-bg-hover);
87
88
  }
88
89
 
89
- /* Secondary variant - muted styling for status badges */
90
+ /* Secondary variant - Muted styling */
90
91
  .badge-secondary {
91
- background-color: var(--feedlog-muted, #f1f5f9);
92
- color: var(--feedlog-muted-foreground, #64748b);
92
+ background-color: var(--feedlog-muted-bg);
93
+ color: var(--feedlog-muted-text);
93
94
  }
94
95
 
95
- :host(.dark) .badge-secondary {
96
- background-color: var(--feedlog-muted, oklch(0.32 0.01 260));
97
- color: var(--feedlog-muted-foreground, oklch(0.72 0.02 260));
96
+ .badge-secondary:hover {
97
+ background-color: var(--feedlog-muted-bg-hover);
98
98
  }
@@ -23,29 +23,28 @@
23
23
  --feedlog-destructive: #d4183d;
24
24
  --feedlog-blue-400: oklch(0.707 0.165 254.624);
25
25
  --feedlog-blue-600: oklch(0.546 0.245 262.881);
26
- --feedlog-blue-100: oklch(0.932 0.032 255.585);
27
- --feedlog-red-100: #fce7f3;
28
- --feedlog-red-400: #f472b6;
29
26
  --feedlog-red-600: #db2777;
30
27
  --feedlog-radius: 0.625rem;
31
28
  --feedlog-gap: 0.5rem;
32
29
 
33
30
  /* Customization variables */
34
31
  --feedlog-card-padding: 1.25rem;
35
- --feedlog-title-font-size: 0.9375rem;
32
+ --feedlog-title-font-size: 1.125rem;
36
33
  --feedlog-title-font-weight: 600;
37
- --feedlog-body-font-size: 0.8125rem;
38
- --feedlog-body-line-height: 1.5;
34
+ --feedlog-body-font-size: 0.875rem;
35
+ --feedlog-body-line-height: 1.6;
39
36
  --feedlog-timestamp-font-size: 0.6875rem;
40
37
  --feedlog-timestamp-color: var(--feedlog-muted-foreground);
41
- --feedlog-card-accent-width: 3px;
38
+ --feedlog-card-radius: 0.75rem;
42
39
  --feedlog-icon-color: var(--feedlog-muted-foreground);
43
40
  --feedlog-icon-color-muted: var(--feedlog-muted-foreground);
44
41
  --feedlog-pin-color: var(--feedlog-accent-color);
45
42
  --feedlog-upvote-icon-color: var(--feedlog-blue-600);
46
43
  --feedlog-upvote-icon-filled-color: var(--feedlog-red-600);
47
- --feedlog-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.08), 0 1px 2px -1px rgba(0, 0, 0, 0.08);
48
- --feedlog-shadow-hover: 0 4px 12px -2px rgba(0, 0, 0, 0.1), 0 2px 6px -2px rgba(0, 0, 0, 0.08);
44
+ /* Layered shadows for depth */
45
+ --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);
46
+ --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);
47
+ --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);
49
48
  }
50
49
 
51
50
  :host(.dark) {
@@ -59,20 +58,20 @@
59
58
  --feedlog-border: oklch(0.34 0.01 260);
60
59
  --feedlog-accent-color: #3b82f6;
61
60
  --feedlog-destructive: oklch(0.396 0.141 25.723);
61
+ --feedlog-blue-300: oklch(0.78 0.12 255);
62
62
  --feedlog-blue-400: oklch(0.707 0.165 254.624);
63
63
  --feedlog-blue-600: oklch(0.546 0.245 262.881);
64
- --feedlog-blue-900-30: color-mix(in oklab, oklch(0.379 0.146 265.522) 30%, transparent);
65
- --feedlog-red-900-30: color-mix(in oklab, oklch(0.396 0.141 25.723) 30%, transparent);
66
64
  --feedlog-upvote-icon-color: var(--feedlog-blue-400);
67
65
  --feedlog-upvote-icon-filled-color: var(--feedlog-red-600);
68
- --feedlog-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.3);
69
- --feedlog-shadow-hover: 0 4px 12px -2px rgba(0, 0, 0, 0.4);
66
+ --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);
67
+ --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);
68
+ --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);
70
69
  }
71
70
 
72
71
  .issue-card {
73
- background-color: var(--feedlog-card);
72
+ background: linear-gradient(180deg, var(--feedlog-card) 0%, color-mix(in oklab, var(--feedlog-card) 98%, var(--feedlog-muted) 2%) 100%);
74
73
  border: 1px solid var(--feedlog-border);
75
- border-radius: var(--feedlog-radius);
74
+ border-radius: var(--feedlog-card-radius, var(--feedlog-radius));
76
75
  box-shadow: var(--feedlog-shadow);
77
76
  transition:
78
77
  box-shadow 0.2s ease,
@@ -81,49 +80,66 @@
81
80
  overflow: hidden;
82
81
  }
83
82
 
84
- .issue-card::before {
85
- content: '';
86
- position: absolute;
87
- left: 0;
88
- top: 0;
89
- bottom: 0;
90
- width: var(--feedlog-card-accent-width);
91
- background: var(--feedlog-accent-color);
83
+ .issue-card:hover {
92
84
  }
93
85
 
94
- .issue-card.issue-type-bug::before {
95
- background: var(--feedlog-destructive);
86
+ .issue-card.issue-type-enhancement:hover {
87
+ box-shadow: var(--feedlog-shadow-hover-enhancement);
96
88
  }
97
89
 
98
- .issue-card:hover {
99
- box-shadow: var(--feedlog-shadow-hover);
90
+ .issue-card.issue-type-bug:hover {
91
+ box-shadow: var(--feedlog-shadow-hover-bug);
92
+ }
93
+
94
+ /* Media area - ready for future images/videos. Hidden until media support is added. */
95
+ .issue-media {
96
+ display: none;
97
+ aspect-ratio: 16 / 9;
98
+ overflow: hidden;
99
+ border-radius: var(--feedlog-card-radius, var(--feedlog-radius)) var(--feedlog-card-radius, var(--feedlog-radius)) 0 0;
100
+ background-color: var(--feedlog-muted);
101
+ border-bottom: 1px solid var(--feedlog-border);
102
+ }
103
+
104
+ .issue-media.has-media {
105
+ display: block;
106
+ }
107
+
108
+ .issue-media ::slotted(img),
109
+ .issue-media ::slotted(video) {
110
+ width: 100%;
111
+ height: 100%;
112
+ object-fit: cover;
113
+ display: block;
100
114
  }
101
115
 
102
116
  .issue-content {
103
117
  padding: var(--feedlog-card-padding);
104
- padding-left: calc(var(--feedlog-card-padding) + var(--feedlog-card-accent-width));
105
118
  display: flex;
106
119
  flex-direction: column;
107
120
  gap: 0.875rem;
108
121
  }
109
122
 
110
- .issue-header {
123
+ .issue-header-top {
111
124
  display: flex;
112
125
  align-items: flex-start;
113
126
  justify-content: space-between;
114
- gap: 0.75rem;
115
- min-height: 1.5rem;
127
+ gap: 1rem;
128
+ margin-bottom: 0.5rem;
116
129
  }
117
130
 
118
- .issue-header-left {
131
+ .issue-badges {
119
132
  display: flex;
120
133
  align-items: center;
121
134
  gap: 0.375rem;
122
135
  flex-wrap: wrap;
136
+ margin-left: -0.25rem;
123
137
  }
124
138
 
125
- .issue-type-badge {
126
- width: fit-content;
139
+ .issue-meta-right {
140
+ display: flex;
141
+ align-items: center;
142
+ gap: 0.5rem;
127
143
  }
128
144
 
129
145
  .pinned-indicator {
@@ -155,9 +171,23 @@
155
171
 
156
172
  .issue-footer {
157
173
  display: flex;
174
+ flex-direction: row;
158
175
  align-items: center;
159
- justify-content: flex-end;
176
+ justify-content: space-between;
177
+ gap: 0.75rem;
160
178
  margin-top: 0.75rem;
179
+ padding-top: 1rem;
180
+ border-top: 1px solid var(--feedlog-border);
181
+ flex-wrap: wrap;
182
+ }
183
+
184
+ .issue-footer-meta {
185
+ display: flex;
186
+ align-items: center;
187
+ gap: 0.5rem;
188
+ font-size: 0.75rem;
189
+ color: var(--feedlog-muted-foreground);
190
+ flex-wrap: wrap;
161
191
  }
162
192
 
163
193
  .issue-title {
@@ -165,7 +195,8 @@
165
195
  font-size: var(--feedlog-title-font-size);
166
196
  font-weight: var(--feedlog-title-font-weight);
167
197
  margin: 0 0 0.5rem 0;
168
- line-height: 1.4;
198
+ line-height: 1.3;
199
+ letter-spacing: -0.015em;
169
200
  word-break: break-word;
170
201
  }
171
202
 
@@ -186,7 +217,7 @@
186
217
  }
187
218
 
188
219
  .issue-body p {
189
- margin: 0 0 0.5em 0;
220
+ margin: 0 0 0.75em 0;
190
221
  }
191
222
 
192
223
  .issue-body p:last-child {
@@ -244,15 +275,6 @@
244
275
  color: var(--feedlog-muted-foreground);
245
276
  }
246
277
 
247
- .issue-repository {
248
- display: flex;
249
- align-items: center;
250
- gap: 0.5rem;
251
- font-size: 0.75rem;
252
- color: var(--feedlog-muted-foreground);
253
- flex-wrap: wrap;
254
- }
255
-
256
278
  .repo-name {
257
279
  font-weight: 500;
258
280
  }
@@ -261,19 +283,20 @@
261
283
  display: inline-flex;
262
284
  align-items: center;
263
285
  gap: 0.25rem;
264
- color: var(--feedlog-accent-color);
286
+ color: var(--feedlog-muted-foreground);
265
287
  text-decoration: none;
266
288
  font-weight: 500;
267
289
  font-size: 0.75rem;
268
- padding: 0.125rem 0.375rem;
269
- border-radius: 0.25rem;
290
+ padding: 0.25rem 0.5rem;
291
+ border-radius: 0.375rem;
270
292
  transition:
271
- background-color 0.15s ease,
272
- color 0.15s ease;
293
+ background-color 0.2s ease,
294
+ color 0.2s ease;
273
295
  }
274
296
 
275
297
  .github-link:hover {
276
- text-decoration: underline;
298
+ color: var(--feedlog-card-foreground);
299
+ background-color: var(--feedlog-muted);
277
300
  }
278
301
 
279
302
  .github-link-icon {
@@ -298,25 +321,27 @@
298
321
  display: inline-flex;
299
322
  flex-direction: row;
300
323
  align-items: center;
301
- border-radius: 0.375rem; /* 6px */
302
- background-color: #ffffff;
324
+ border-radius: 9999px;
325
+ background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
303
326
  border: 1px solid #e2e8f0;
304
327
  cursor: pointer;
305
- transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
328
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
306
329
  flex-shrink: 0;
307
330
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
308
331
  overflow: hidden;
309
- padding: 0.375rem 0.75rem;
332
+ padding: 0.375rem 0.875rem;
310
333
  gap: 0.5rem;
311
334
  font-family: inherit;
312
335
  line-height: 1;
313
336
  }
314
337
 
315
338
  .upvote-button:hover {
316
- background-color: #f8fafc;
339
+ background: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%);
317
340
  border-color: #cbd5e1;
318
341
  transform: translateY(-1px);
319
- box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.08), 0 2px 4px -2px rgba(0, 0, 0, 0.04);
342
+ box-shadow:
343
+ 0 4px 6px -1px rgba(0, 0, 0, 0.08),
344
+ 0 2px 4px -2px rgba(0, 0, 0, 0.04);
320
345
  }
321
346
 
322
347
  .upvote-button:active {
@@ -325,12 +350,12 @@
325
350
  }
326
351
 
327
352
  .upvote-button.upvoted {
328
- background-color: #eff6ff;
353
+ background: linear-gradient(180deg, #eff6ff 0%, #e0e7ff 100%);
329
354
  border-color: #bfdbfe;
330
355
  }
331
356
 
332
357
  .upvote-button.upvoted:hover {
333
- background-color: #dbeafe;
358
+ background: linear-gradient(180deg, #dbeafe 0%, #c7d2fe 100%);
334
359
  border-color: #93c5fd;
335
360
  }
336
361
 
@@ -446,22 +471,22 @@
446
471
 
447
472
  /* Dark theme overrides */
448
473
  :host(.dark) .upvote-button {
449
- background-color: var(--feedlog-card);
474
+ background: linear-gradient(180deg, var(--feedlog-card) 0%, color-mix(in oklab, var(--feedlog-card) 95%, var(--feedlog-muted) 5%) 100%);
450
475
  border-color: var(--feedlog-border);
451
476
  }
452
477
 
453
478
  :host(.dark) .upvote-button:hover {
454
- background-color: var(--feedlog-muted);
479
+ background: var(--feedlog-muted);
455
480
  border-color: var(--feedlog-muted-foreground);
456
481
  }
457
482
 
458
483
  :host(.dark) .upvote-button.upvoted {
459
- background-color: rgba(37, 99, 235, 0.15);
484
+ background: linear-gradient(180deg, rgba(37, 99, 235, 0.15) 0%, rgba(37, 99, 235, 0.2) 100%);
460
485
  border-color: rgba(37, 99, 235, 0.3);
461
486
  }
462
487
 
463
488
  :host(.dark) .upvote-button.upvoted:hover {
464
- background-color: rgba(37, 99, 235, 0.25);
489
+ background: linear-gradient(180deg, rgba(37, 99, 235, 0.25) 0%, rgba(37, 99, 235, 0.3) 100%);
465
490
  border-color: rgba(37, 99, 235, 0.4);
466
491
  }
467
492