@feedlog-ai/webcomponents 0.0.9 → 0.0.11

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 (51) hide show
  1. package/dist/cjs/feedlog-badge.cjs.entry.js +21 -0
  2. package/dist/cjs/feedlog-button_2.cjs.entry.js +101 -0
  3. package/dist/cjs/feedlog-github-issues-client.cjs.entry.js +55 -5
  4. package/dist/cjs/feedlog-github-issues.cjs.entry.js +5 -2
  5. package/dist/cjs/feedlog-issues-list.cjs.entry.js +66 -0
  6. package/dist/cjs/feedlog-toolkit.cjs.js +1 -1
  7. package/dist/cjs/loader.cjs.js +1 -1
  8. package/dist/collection/collection-manifest.json +1 -0
  9. package/dist/collection/components/feedlog-github-issues/feedlog-github-issues.css +36 -1
  10. package/dist/collection/components/feedlog-github-issues/feedlog-github-issues.js +7 -4
  11. package/dist/collection/components/feedlog-github-issues-client/feedlog-github-issues-client.js +55 -5
  12. package/dist/collection/components/feedlog-issue/feedlog-issue.css +205 -0
  13. package/dist/collection/components/feedlog-issue/feedlog-issue.js +137 -0
  14. package/dist/collection/components/feedlog-issue/feedlog-issue.stories.js +113 -0
  15. package/dist/collection/components/feedlog-issues-list/feedlog-issues-list.css +64 -55
  16. package/dist/collection/components/feedlog-issues-list/feedlog-issues-list.js +6 -6
  17. package/dist/collection/components/index.js +1 -0
  18. package/dist/components/feedlog-github-issues-client.js +1 -1
  19. package/dist/components/feedlog-github-issues.js +1 -1
  20. package/dist/components/feedlog-issue.d.ts +11 -0
  21. package/dist/components/feedlog-issue.js +1 -0
  22. package/dist/components/feedlog-issues-list.js +1 -1
  23. package/dist/components/p-5qPAHrMz.js +1 -0
  24. package/dist/components/p-DaNa3wCt.js +1 -0
  25. package/dist/esm/feedlog-badge.entry.js +19 -0
  26. package/dist/esm/feedlog-button_2.entry.js +98 -0
  27. package/dist/esm/feedlog-github-issues-client.entry.js +55 -5
  28. package/dist/esm/feedlog-github-issues.entry.js +5 -2
  29. package/dist/esm/feedlog-issues-list.entry.js +64 -0
  30. package/dist/esm/feedlog-toolkit.js +1 -1
  31. package/dist/esm/loader.js +1 -1
  32. package/dist/feedlog-toolkit/feedlog-toolkit.esm.js +1 -1
  33. package/dist/feedlog-toolkit/p-386ab9fb.entry.js +1 -0
  34. package/dist/feedlog-toolkit/p-5df44120.entry.js +1 -0
  35. package/dist/feedlog-toolkit/{p-964cfcd8.entry.js → p-767ecb94.entry.js} +1 -1
  36. package/dist/feedlog-toolkit/p-95fea2f4.entry.js +1 -0
  37. package/dist/feedlog-toolkit/p-f172074f.entry.js +1 -0
  38. package/dist/types/components/feedlog-github-issues/feedlog-github-issues.d.ts +4 -3
  39. package/dist/types/components/feedlog-github-issues-client/feedlog-github-issues-client.d.ts +9 -2
  40. package/dist/types/components/feedlog-issue/feedlog-issue.d.ts +31 -0
  41. package/dist/types/components/feedlog-issue/feedlog-issue.stories.d.ts +12 -0
  42. package/dist/types/components/feedlog-issues-list/feedlog-issues-list.d.ts +4 -4
  43. package/dist/types/components/index.d.ts +1 -0
  44. package/dist/types/components.d.ts +85 -11
  45. package/package.json +2 -2
  46. package/dist/cjs/feedlog-badge_3.cjs.entry.js +0 -119
  47. package/dist/components/p-C7AZiNqt.js +0 -1
  48. package/dist/components/p-rh0Uv7Ks.js +0 -1
  49. package/dist/esm/feedlog-badge_3.entry.js +0 -115
  50. package/dist/feedlog-toolkit/p-4874f7e8.entry.js +0 -1
  51. package/dist/feedlog-toolkit/p-f16f2491.entry.js +0 -1
@@ -5,8 +5,8 @@
5
5
  * It contains typing information for all components that exist in this project.
6
6
  */
7
7
  import { HTMLStencilElement, JSXBase } from "./stencil-public-runtime";
8
- import { FeedlogIssue } from "@feedlog-ai/core";
9
- export { FeedlogIssue } from "@feedlog-ai/core";
8
+ import { FeedlogIssue as FeedlogIssueType } from "@feedlog-ai/core";
9
+ export { FeedlogIssue as FeedlogIssueType } from "@feedlog-ai/core";
10
10
  export namespace Components {
11
11
  /**
12
12
  * Feedlog Badge Component
@@ -54,7 +54,7 @@ export namespace Components {
54
54
  /**
55
55
  * Feedlog GitHub Issues Component
56
56
  * Component for displaying GitHub issues with support for bugs and enhancements.
57
- * This component handles the UI rendering and delegates to feedlog-issues-list for the actual list.
57
+ * Includes full list rendering, loading/error states, and pagination support.
58
58
  */
59
59
  interface FeedlogGithubIssues {
60
60
  /**
@@ -80,7 +80,7 @@ export namespace Components {
80
80
  * Array of issues to display
81
81
  * @default []
82
82
  */
83
- "issues": FeedlogIssue[];
83
+ "issues": FeedlogIssueType[];
84
84
  /**
85
85
  * Loading state - shows loading indicator when true
86
86
  * @default false
@@ -142,6 +142,21 @@ export namespace Components {
142
142
  */
143
143
  "type"?: 'bug' | 'enhancement';
144
144
  }
145
+ /**
146
+ * Feedlog Issue Component
147
+ * A component for displaying a single GitHub issue.
148
+ */
149
+ interface FeedlogIssue {
150
+ /**
151
+ * The issue to display
152
+ */
153
+ "issue": FeedlogIssueType;
154
+ /**
155
+ * Theme variant: 'light' or 'dark'
156
+ * @default 'light'
157
+ */
158
+ "theme": 'light' | 'dark';
159
+ }
145
160
  /**
146
161
  * Feedlog Issues List Component
147
162
  * A component for displaying a list of GitHub issues with support for bugs and enhancements.
@@ -151,7 +166,7 @@ export namespace Components {
151
166
  * Array of issues to display
152
167
  * @default []
153
168
  */
154
- "issues": FeedlogIssue[];
169
+ "issues": FeedlogIssueType[];
155
170
  /**
156
171
  * Theme variant: 'light' or 'dark'
157
172
  * @default 'light'
@@ -171,6 +186,10 @@ export interface FeedlogGithubIssuesClientCustomEvent<T> extends CustomEvent<T>
171
186
  detail: T;
172
187
  target: HTMLFeedlogGithubIssuesClientElement;
173
188
  }
189
+ export interface FeedlogIssueCustomEvent<T> extends CustomEvent<T> {
190
+ detail: T;
191
+ target: HTMLFeedlogIssueElement;
192
+ }
174
193
  export interface FeedlogIssuesListCustomEvent<T> extends CustomEvent<T> {
175
194
  detail: T;
176
195
  target: HTMLFeedlogIssuesListElement;
@@ -228,7 +247,7 @@ declare global {
228
247
  /**
229
248
  * Feedlog GitHub Issues Component
230
249
  * Component for displaying GitHub issues with support for bugs and enhancements.
231
- * This component handles the UI rendering and delegates to feedlog-issues-list for the actual list.
250
+ * Includes full list rendering, loading/error states, and pagination support.
232
251
  */
233
252
  interface HTMLFeedlogGithubIssuesElement extends Components.FeedlogGithubIssues, HTMLStencilElement {
234
253
  addEventListener<K extends keyof HTMLFeedlogGithubIssuesElementEventMap>(type: K, listener: (this: HTMLFeedlogGithubIssuesElement, ev: FeedlogGithubIssuesCustomEvent<HTMLFeedlogGithubIssuesElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
@@ -267,6 +286,31 @@ declare global {
267
286
  prototype: HTMLFeedlogGithubIssuesClientElement;
268
287
  new (): HTMLFeedlogGithubIssuesClientElement;
269
288
  };
289
+ interface HTMLFeedlogIssueElementEventMap {
290
+ "feedlogUpvote": {
291
+ issueId: string;
292
+ currentUpvoted: boolean;
293
+ currentCount: number;
294
+ };
295
+ }
296
+ /**
297
+ * Feedlog Issue Component
298
+ * A component for displaying a single GitHub issue.
299
+ */
300
+ interface HTMLFeedlogIssueElement extends Components.FeedlogIssue, HTMLStencilElement {
301
+ addEventListener<K extends keyof HTMLFeedlogIssueElementEventMap>(type: K, listener: (this: HTMLFeedlogIssueElement, ev: FeedlogIssueCustomEvent<HTMLFeedlogIssueElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
302
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
303
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
304
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
305
+ removeEventListener<K extends keyof HTMLFeedlogIssueElementEventMap>(type: K, listener: (this: HTMLFeedlogIssueElement, ev: FeedlogIssueCustomEvent<HTMLFeedlogIssueElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
306
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
307
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
308
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
309
+ }
310
+ var HTMLFeedlogIssueElement: {
311
+ prototype: HTMLFeedlogIssueElement;
312
+ new (): HTMLFeedlogIssueElement;
313
+ };
270
314
  interface HTMLFeedlogIssuesListElementEventMap {
271
315
  "feedlogUpvote": {
272
316
  issueId: string;
@@ -298,6 +342,7 @@ declare global {
298
342
  "feedlog-card": HTMLFeedlogCardElement;
299
343
  "feedlog-github-issues": HTMLFeedlogGithubIssuesElement;
300
344
  "feedlog-github-issues-client": HTMLFeedlogGithubIssuesClientElement;
345
+ "feedlog-issue": HTMLFeedlogIssueElement;
301
346
  "feedlog-issues-list": HTMLFeedlogIssuesListElement;
302
347
  }
303
348
  }
@@ -352,7 +397,7 @@ declare namespace LocalJSX {
352
397
  /**
353
398
  * Feedlog GitHub Issues Component
354
399
  * Component for displaying GitHub issues with support for bugs and enhancements.
355
- * This component handles the UI rendering and delegates to feedlog-issues-list for the actual list.
400
+ * Includes full list rendering, loading/error states, and pagination support.
356
401
  */
357
402
  interface FeedlogGithubIssues {
358
403
  /**
@@ -378,7 +423,7 @@ declare namespace LocalJSX {
378
423
  * Array of issues to display
379
424
  * @default []
380
425
  */
381
- "issues"?: FeedlogIssue[];
426
+ "issues"?: FeedlogIssueType[];
382
427
  /**
383
428
  * Loading state - shows loading indicator when true
384
429
  * @default false
@@ -460,6 +505,29 @@ declare namespace LocalJSX {
460
505
  */
461
506
  "type"?: 'bug' | 'enhancement';
462
507
  }
508
+ /**
509
+ * Feedlog Issue Component
510
+ * A component for displaying a single GitHub issue.
511
+ */
512
+ interface FeedlogIssue {
513
+ /**
514
+ * The issue to display
515
+ */
516
+ "issue": FeedlogIssueType;
517
+ /**
518
+ * Event emitted when the issue is upvoted
519
+ */
520
+ "onFeedlogUpvote"?: (event: FeedlogIssueCustomEvent<{
521
+ issueId: string;
522
+ currentUpvoted: boolean;
523
+ currentCount: number;
524
+ }>) => void;
525
+ /**
526
+ * Theme variant: 'light' or 'dark'
527
+ * @default 'light'
528
+ */
529
+ "theme"?: 'light' | 'dark';
530
+ }
463
531
  /**
464
532
  * Feedlog Issues List Component
465
533
  * A component for displaying a list of GitHub issues with support for bugs and enhancements.
@@ -469,9 +537,9 @@ declare namespace LocalJSX {
469
537
  * Array of issues to display
470
538
  * @default []
471
539
  */
472
- "issues"?: FeedlogIssue[];
540
+ "issues"?: FeedlogIssueType[];
473
541
  /**
474
- * Event emitted when an issue is upvoted
542
+ * Emitted when an issue is upvoted
475
543
  */
476
544
  "onFeedlogUpvote"?: (event: FeedlogIssuesListCustomEvent<{
477
545
  issueId: string;
@@ -490,6 +558,7 @@ declare namespace LocalJSX {
490
558
  "feedlog-card": FeedlogCard;
491
559
  "feedlog-github-issues": FeedlogGithubIssues;
492
560
  "feedlog-github-issues-client": FeedlogGithubIssuesClient;
561
+ "feedlog-issue": FeedlogIssue;
493
562
  "feedlog-issues-list": FeedlogIssuesList;
494
563
  }
495
564
  }
@@ -515,7 +584,7 @@ declare module "@stencil/core" {
515
584
  /**
516
585
  * Feedlog GitHub Issues Component
517
586
  * Component for displaying GitHub issues with support for bugs and enhancements.
518
- * This component handles the UI rendering and delegates to feedlog-issues-list for the actual list.
587
+ * Includes full list rendering, loading/error states, and pagination support.
519
588
  */
520
589
  "feedlog-github-issues": LocalJSX.FeedlogGithubIssues & JSXBase.HTMLAttributes<HTMLFeedlogGithubIssuesElement>;
521
590
  /**
@@ -524,6 +593,11 @@ declare module "@stencil/core" {
524
593
  * This component uses the SDK internally to fetch data and delegates to feedlog-github-issues for rendering.
525
594
  */
526
595
  "feedlog-github-issues-client": LocalJSX.FeedlogGithubIssuesClient & JSXBase.HTMLAttributes<HTMLFeedlogGithubIssuesClientElement>;
596
+ /**
597
+ * Feedlog Issue Component
598
+ * A component for displaying a single GitHub issue.
599
+ */
600
+ "feedlog-issue": LocalJSX.FeedlogIssue & JSXBase.HTMLAttributes<HTMLFeedlogIssueElement>;
527
601
  /**
528
602
  * Feedlog Issues List Component
529
603
  * A component for displaying a list of GitHub issues with support for bugs and enhancements.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@feedlog-ai/webcomponents",
3
- "version": "0.0.9",
3
+ "version": "0.0.11",
4
4
  "description": "Stencil web components for Feedlog Toolkit - Data visualization components",
5
5
  "main": "./dist/index.cjs.js",
6
6
  "module": "./dist/index.js",
@@ -24,7 +24,7 @@
24
24
  "clean": "rm -rf dist loader"
25
25
  },
26
26
  "dependencies": {
27
- "@feedlog-ai/core": "^0.0.9"
27
+ "@feedlog-ai/core": "^0.0.11"
28
28
  },
29
29
  "devDependencies": {
30
30
  "@stencil/core": "^4.0.0",
@@ -1,119 +0,0 @@
1
- 'use strict';
2
-
3
- var index = require('./index-5lluu_3h.js');
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;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)}`;
6
-
7
- const FeedlogBadge = class {
8
- constructor(hostRef) {
9
- index.registerInstance(this, hostRef);
10
- /**
11
- * Badge variant style
12
- */
13
- this.variant = 'default';
14
- }
15
- render() {
16
- return (index.h("span", { key: '482a74feb8d254a75383c30c7b39790edd04a05b', class: `badge badge-${this.variant}` }, index.h("slot", { key: '8d2db3fe0c2bc58e17829db4de7d0233189bb101' })));
17
- }
18
- };
19
- FeedlogBadge.style = feedlogBadgeCss();
20
-
21
- 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}`;
22
-
23
- const FeedlogButton = class {
24
- constructor(hostRef) {
25
- index.registerInstance(this, hostRef);
26
- this.feedlogClick = index.createEvent(this, "feedlogClick");
27
- /**
28
- * Button variant style
29
- */
30
- this.variant = 'default';
31
- /**
32
- * Button size
33
- */
34
- this.size = 'default';
35
- /**
36
- * Disabled state
37
- */
38
- this.disabled = false;
39
- /**
40
- * Button type
41
- */
42
- this.type = 'button';
43
- this.handleClick = (event) => {
44
- if (!this.disabled) {
45
- this.feedlogClick.emit(event);
46
- }
47
- };
48
- }
49
- render() {
50
- const sizeClass = this.size === 'default' ? 'button-size-default' : `button-size-${this.size}`;
51
- return (index.h("button", { key: '6cdd8347def51592707b1fb9aab0dc565ca0f76f', type: this.type, class: `button button-${this.variant} ${sizeClass}`, disabled: this.disabled, onClick: this.handleClick }, index.h("slot", { key: '3f3845195fa4b8a551473ecf1d5702321a31763e' })));
52
- }
53
- };
54
- FeedlogButton.style = feedlogButtonCss();
55
-
56
- const feedlogIssuesListCss = () => `:host{display: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-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}:host(.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-muted:oklch(0.269 0 0);--feedlog-muted-foreground:oklch(0.708 0 0);--feedlog-border:oklch(0.269 0 0);--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)}.issues-list{display:flex;flex-direction:column;gap:var(--feedlog-gap)}.empty-state{text-align:center;padding:3rem 1.5rem;color:var(--feedlog-muted-foreground);font-size:0.875rem}.issue-card{background-color:var(--feedlog-card);border:1px solid var(--feedlog-border);border-radius:var(--feedlog-radius);box-shadow:0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);transition:box-shadow 0.15s ease;position:relative}.issue-card:hover{box-shadow:0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1)}.issue-content{padding:1.5rem;display:flex;flex-direction:column;gap:1rem}.issue-header{display:flex;align-items:center;gap:0.5rem;justify-content:space-between}.issue-type-badge{width:fit-content}.pinned-indicator{font-size:1rem;opacity:0.7}.issue-main{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.issue-details{flex:1;min-width:0}.issue-title{color:var(--feedlog-card-foreground);font-size:0.875rem;font-weight:600;margin:0 0 0.375rem 0;line-height:1.4;word-break:break-word}.issue-body{color:var(--feedlog-muted-foreground);font-size:0.75rem;line-height:1.625;margin:0 0 0.75rem 0;word-break:break-word;white-space:pre-wrap}.issue-repository{display:flex;align-items:center;gap:0.5rem;font-size:0.75rem;color:var(--feedlog-muted-foreground);margin-bottom:0.5rem}.repo-name{font-weight:500}.github-number{color:var(--feedlog-blue-600);font-weight:600}:host(.dark) .github-number{color:var(--feedlog-blue-400)}.upvote-button{display:flex;flex-direction:column;align-items:center;gap:0.125rem;padding:0.5rem 0.75rem;border-radius:0.5rem;background-color:var(--feedlog-muted);border:1px solid transparent;cursor:pointer;transition:all 0.15s ease;flex-shrink:0;font-size:0.75rem;font-weight:600}.upvote-button:hover{background-color:var(--feedlog-blue-100);border-color:var(--feedlog-blue-400)}.upvote-button.upvoted{background-color:var(--feedlog-red-100);border-color:var(--feedlog-red-400)}.upvote-button.upvoted:hover{background-color:var(--feedlog-red-100);border-color:var(--feedlog-red-600)}:host(.dark) .upvote-button:hover{background-color:var(--feedlog-blue-900-30);border-color:var(--feedlog-blue-600)}:host(.dark) .upvote-button.upvoted{background-color:var(--feedlog-red-900-30);border-color:var(--feedlog-red-600)}.upvote-icon{width:1rem;height:1rem;stroke-width:2}.upvote-icon.filled{color:var(--feedlog-red-600)}.upvote-icon.outline{color:var(--feedlog-blue-600)}:host(.dark) .upvote-icon.outline{color:var(--feedlog-blue-400)}.upvote-count{font-size:0.75rem;font-weight:600;color:var(--feedlog-card-foreground)}.issue-footer{display:flex;flex-direction:column;gap:0.25rem;font-size:0.75rem}.issue-date{color:var(--feedlog-muted-foreground);cursor:help}`;
57
-
58
- /**
59
- * Heart icon SVG component (filled)
60
- */
61
- const HeartFilledIcon = () => (index.h("svg", { class: "upvote-icon filled", xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", viewBox: "0 0 24 24", fill: "currentColor", stroke: "none" }, index.h("path", { d: "M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z" })));
62
- /**
63
- * Heart icon SVG component (outline)
64
- */
65
- const HeartOutlineIcon = () => (index.h("svg", { class: "upvote-icon outline", xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" }, index.h("path", { d: "M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z" })));
66
- const FeedlogIssuesList = class {
67
- constructor(hostRef) {
68
- index.registerInstance(this, hostRef);
69
- this.feedlogUpvote = index.createEvent(this, "feedlogUpvote");
70
- /**
71
- * Array of issues to display
72
- */
73
- this.issues = [];
74
- /**
75
- * Theme variant: 'light' or 'dark'
76
- */
77
- this.theme = 'light';
78
- this.handleUpvote = (event, issue) => {
79
- event.stopPropagation();
80
- this.feedlogUpvote.emit({
81
- issueId: issue.id,
82
- currentUpvoted: issue.hasUpvoted,
83
- currentCount: issue.upvoteCount,
84
- });
85
- };
86
- }
87
- render() {
88
- return (index.h(index.Host, { key: '81b2b973309388f09d20629da416b92545567618', class: this.theme === 'dark' ? 'dark' : '' }, index.h("div", { key: 'ed22c88736ee13621f39b3095f71c361b0d04b44', class: "issues-list" }, this.issues.length === 0 ? (index.h("div", { class: "empty-state" }, index.h("p", null, "No issues found"))) : (this.issues.map(issue => (index.h("div", { key: issue.id, class: "issue-card" }, index.h("div", { class: "issue-content" }, index.h("div", { class: "issue-header" }, index.h("div", { class: "issue-type-badge" }, issue.type === 'bug' ? (index.h("feedlog-badge", { variant: "destructive" }, "Bug")) : (index.h("feedlog-badge", { variant: "enhancement" }, "Enhancement"))), issue.pinnedAt && (index.h("div", { class: "pinned-indicator", title: "Pinned issue" }, "\uD83D\uDCCC"))), index.h("div", { class: "issue-main" }, index.h("div", { class: "issue-details" }, index.h("h3", { class: "issue-title" }, issue.title), index.h("p", { class: "issue-body" }, issue.body), index.h("div", { class: "issue-repository" }, index.h("span", { class: "repo-name" }, issue.repository.owner, "/", issue.repository.name))), issue.type !== 'bug' && (index.h("button", { class: `upvote-button ${issue.hasUpvoted ? 'upvoted' : ''}`, onClick: (e) => this.handleUpvote(e, issue), title: issue.hasUpvoted ? 'Remove upvote' : 'Upvote this issue' }, issue.hasUpvoted ? index.h(HeartFilledIcon, null) : index.h(HeartOutlineIcon, null), index.h("span", { class: "upvote-count" }, issue.upvoteCount)))), index.h("div", { class: "issue-footer" }, index.h("span", { class: "issue-date", title: `Updated: ${issue.updatedAt}` }, "Updated ", this.formatDate(issue.updatedAt)), index.h("span", { class: "issue-date", title: `Created: ${issue.createdAt}` }, "Created ", this.formatDate(issue.createdAt)))))))))));
89
- }
90
- /**
91
- * Format an ISO date string to a relative time string
92
- */
93
- formatDate(dateString) {
94
- try {
95
- const date = new Date(dateString);
96
- const now = new Date();
97
- const seconds = Math.floor((now.getTime() - date.getTime()) / 1000);
98
- if (seconds < 60)
99
- return 'just now';
100
- if (seconds < 3600)
101
- return `${Math.floor(seconds / 60)}m ago`;
102
- if (seconds < 86400)
103
- return `${Math.floor(seconds / 3600)}h ago`;
104
- if (seconds < 604800)
105
- return `${Math.floor(seconds / 86400)}d ago`;
106
- if (seconds < 2592000)
107
- return `${Math.floor(seconds / 604800)}w ago`;
108
- return date.toLocaleDateString();
109
- }
110
- catch (_a) {
111
- return 'unknown date';
112
- }
113
- }
114
- };
115
- FeedlogIssuesList.style = feedlogIssuesListCss();
116
-
117
- exports.feedlog_badge = FeedlogBadge;
118
- exports.feedlog_button = FeedlogButton;
119
- exports.feedlog_issues_list = FeedlogIssuesList;
@@ -1 +0,0 @@
1
- import{t as e,p as o,H as r,c as t,h as s,a as d}from"./index.js";import{d as l}from"./p-CHtSMTyP.js";const a=()=>s("svg",{class:"upvote-icon filled",xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor",stroke:"none"},s("path",{d:"M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"})),i=()=>s("svg",{class:"upvote-icon outline",xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},s("path",{d:"M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"})),n=o(class extends r{constructor(e){super(),!1!==e&&this.__registerHost(),this.__attachShadow(),this.feedlogUpvote=t(this,"feedlogUpvote"),this.issues=[],this.theme="light",this.handleUpvote=(e,o)=>{e.stopPropagation(),this.feedlogUpvote.emit({issueId:o.id,currentUpvoted:o.hasUpvoted,currentCount:o.upvoteCount})}}render(){return s(d,{key:"81b2b973309388f09d20629da416b92545567618",class:"dark"===this.theme?"dark":""},s("div",{key:"ed22c88736ee13621f39b3095f71c361b0d04b44",class:"issues-list"},0===this.issues.length?s("div",{class:"empty-state"},s("p",null,"No issues found")):this.issues.map((e=>s("div",{key:e.id,class:"issue-card"},s("div",{class:"issue-content"},s("div",{class:"issue-header"},s("div",{class:"issue-type-badge"},"bug"===e.type?s("feedlog-badge",{variant:"destructive"},"Bug"):s("feedlog-badge",{variant:"enhancement"},"Enhancement")),e.pinnedAt&&s("div",{class:"pinned-indicator",title:"Pinned issue"},"📌")),s("div",{class:"issue-main"},s("div",{class:"issue-details"},s("h3",{class:"issue-title"},e.title),s("p",{class:"issue-body"},e.body),s("div",{class:"issue-repository"},s("span",{class:"repo-name"},e.repository.owner,"/",e.repository.name))),"bug"!==e.type&&s("button",{class:"upvote-button "+(e.hasUpvoted?"upvoted":""),onClick:o=>this.handleUpvote(o,e),title:e.hasUpvoted?"Remove upvote":"Upvote this issue"},s(e.hasUpvoted?a:i,null),s("span",{class:"upvote-count"},e.upvoteCount))),s("div",{class:"issue-footer"},s("span",{class:"issue-date",title:`Updated: ${e.updatedAt}`},"Updated ",this.formatDate(e.updatedAt)),s("span",{class:"issue-date",title:`Created: ${e.createdAt}`},"Created ",this.formatDate(e.createdAt)))))))))}formatDate(e){try{const o=new Date(e),r=new Date,t=Math.floor((r.getTime()-o.getTime())/1e3);return t<60?"just now":t<3600?`${Math.floor(t/60)}m ago`:t<86400?`${Math.floor(t/3600)}h ago`:t<604800?`${Math.floor(t/86400)}d ago`:t<2592e3?`${Math.floor(t/604800)}w ago`:o.toLocaleDateString()}catch(e){return"unknown date"}}static get style(){return":host{display: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-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}:host(.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-muted:oklch(0.269 0 0);--feedlog-muted-foreground:oklch(0.708 0 0);--feedlog-border:oklch(0.269 0 0);--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)}.issues-list{display:flex;flex-direction:column;gap:var(--feedlog-gap)}.empty-state{text-align:center;padding:3rem 1.5rem;color:var(--feedlog-muted-foreground);font-size:0.875rem}.issue-card{background-color:var(--feedlog-card);border:1px solid var(--feedlog-border);border-radius:var(--feedlog-radius);box-shadow:0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);transition:box-shadow 0.15s ease;position:relative}.issue-card:hover{box-shadow:0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1)}.issue-content{padding:1.5rem;display:flex;flex-direction:column;gap:1rem}.issue-header{display:flex;align-items:center;gap:0.5rem;justify-content:space-between}.issue-type-badge{width:fit-content}.pinned-indicator{font-size:1rem;opacity:0.7}.issue-main{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.issue-details{flex:1;min-width:0}.issue-title{color:var(--feedlog-card-foreground);font-size:0.875rem;font-weight:600;margin:0 0 0.375rem 0;line-height:1.4;word-break:break-word}.issue-body{color:var(--feedlog-muted-foreground);font-size:0.75rem;line-height:1.625;margin:0 0 0.75rem 0;word-break:break-word;white-space:pre-wrap}.issue-repository{display:flex;align-items:center;gap:0.5rem;font-size:0.75rem;color:var(--feedlog-muted-foreground);margin-bottom:0.5rem}.repo-name{font-weight:500}.github-number{color:var(--feedlog-blue-600);font-weight:600}:host(.dark) .github-number{color:var(--feedlog-blue-400)}.upvote-button{display:flex;flex-direction:column;align-items:center;gap:0.125rem;padding:0.5rem 0.75rem;border-radius:0.5rem;background-color:var(--feedlog-muted);border:1px solid transparent;cursor:pointer;transition:all 0.15s ease;flex-shrink:0;font-size:0.75rem;font-weight:600}.upvote-button:hover{background-color:var(--feedlog-blue-100);border-color:var(--feedlog-blue-400)}.upvote-button.upvoted{background-color:var(--feedlog-red-100);border-color:var(--feedlog-red-400)}.upvote-button.upvoted:hover{background-color:var(--feedlog-red-100);border-color:var(--feedlog-red-600)}:host(.dark) .upvote-button:hover{background-color:var(--feedlog-blue-900-30);border-color:var(--feedlog-blue-600)}:host(.dark) .upvote-button.upvoted{background-color:var(--feedlog-red-900-30);border-color:var(--feedlog-red-600)}.upvote-icon{width:1rem;height:1rem;stroke-width:2}.upvote-icon.filled{color:var(--feedlog-red-600)}.upvote-icon.outline{color:var(--feedlog-blue-600)}:host(.dark) .upvote-icon.outline{color:var(--feedlog-blue-400)}.upvote-count{font-size:0.75rem;font-weight:600;color:var(--feedlog-card-foreground)}.issue-footer{display:flex;flex-direction:column;gap:0.25rem;font-size:0.75rem}.issue-date{color:var(--feedlog-muted-foreground);cursor:help}"}},[1,"feedlog-issues-list",{issues:[16],theme:[1]}]);function u(){"undefined"!=typeof customElements&&["feedlog-issues-list","feedlog-badge"].forEach((o=>{switch(o){case"feedlog-issues-list":customElements.get(e(o))||customElements.define(e(o),n);break;case"feedlog-badge":customElements.get(e(o))||l()}}))}u();export{n as F,u as d}
@@ -1 +0,0 @@
1
- import{t as e,p as s,H as t,c as o,h as d,a as i}from"./index.js";import{d as a}from"./p-CHtSMTyP.js";import{d as r}from"./p-DMdb-G26.js";import{d as c}from"./p-C7AZiNqt.js";const l=s(class extends t{constructor(e){super(),!1!==e&&this.__registerHost(),this.__attachShadow(),this.feedlogUpvote=o(this,"feedlogUpvote"),this.feedlogLoadMore=o(this,"feedlogLoadMore"),this.issues=[],this.maxWidth="42rem",this.theme="light",this.loading=!1,this.error=null,this.hasMore=!1,this.isLoadingMore=!1,this.currentTheme="light",this.handleUpvote=e=>{e.stopPropagation(),this.feedlogUpvote.emit(e.detail)},this.handleLoadMore=()=>{this.feedlogLoadMore.emit()}}componentWillLoad(){this.currentTheme=this.theme}render(){return d(i,{key:"57a57d901c1c45d66e6fe3658b3fbcbce6282018",class:"dark"===this.currentTheme?"dark":""},d("div",{key:"7ffe5de2a145065f0e58f5d1525aee5e5770806c",class:"github-issues-container",style:{maxWidth:this.maxWidth}},(this.heading||this.subtitle)&&d("header",{key:"413bf7d4c519f94f411ac9fc09e6776c14806871",class:"issues-header"},d("div",{key:"481b2feb7b34089e9cd69e602d5a8a1dc4ce88ec",class:"header-content"},this.heading&&d("h1",{key:"267a0cde7d18ad560c59c2a80150b9a0d5b613d5",class:"issues-title"},this.heading),this.subtitle&&d("p",{key:"6f71de0f4ac2b7c0b89cd24b24196e9a9a6576b3",class:"issues-subtitle"},this.subtitle))),this.loading&&d("div",{key:"6f9c52861aca5b5bd2137cf0ad929b13e7d74539",class:"loading-state"},d("p",{key:"d2a82cb61df5595fd74c5c9f6bbae825a4b2397c"},"Loading issues...")),this.error&&d("div",{key:"cd7ceea5eb432edc239ebf394661f659f04545d4",class:"error-state"},d("p",{key:"09657cce843d286cee8bdcf5c05aa5ffc35267f6"},"Error: ",this.error)),!this.loading&&!this.error&&d("div",{key:"73310effa8344b29e21b473b8cb64fee053eae26"},d("feedlog-issues-list",{key:"17183fa9301d1cdecaed3dcf9c21addd8871111b",issues:this.issues,theme:this.currentTheme,onFeedlogUpvote:this.handleUpvote}),this.hasMore&&d("div",{key:"9c7ef450db1b12f933f1ed83c6a5e7b8275b35b1",class:"load-more-container"},d("feedlog-button",{key:"77d0bf2d339aaaabf8233752c923a224c120ae9d",onFeedlogClick:this.handleLoadMore,disabled:this.isLoadingMore,variant:"outline"},this.isLoadingMore?"Loading...":"Load More Issues")))))}static get style(){return":host{display: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-muted-foreground:#717182;--feedlog-destructive:#d4183d;--feedlog-padding:2rem}:host(.dark){--feedlog-background:oklch(0.145 0 0);--feedlog-foreground:oklch(0.985 0 0);--feedlog-muted-foreground:oklch(0.708 0 0);--feedlog-destructive:oklch(0.637 0.237 25.331)}.github-issues-container{min-height:100vh;background-color:var(--feedlog-background);padding:var(--feedlog-padding);margin:0 auto}.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,.error-state{padding:2rem;text-align:center;color:var(--feedlog-muted-foreground)}.error-state{color:var(--feedlog-destructive)}.load-more-container{display:flex;justify-content:center;padding:2rem 0;gap:1rem}"}},[1,"feedlog-github-issues",{issues:[16],maxWidth:[1,"max-width"],theme:[1025],heading:[1],subtitle:[1],loading:[4],error:[1],hasMore:[4,"has-more"],isLoadingMore:[4,"is-loading-more"],currentTheme:[32]}]);function f(){"undefined"!=typeof customElements&&["feedlog-github-issues","feedlog-badge","feedlog-button","feedlog-issues-list"].forEach((s=>{switch(s){case"feedlog-github-issues":customElements.get(e(s))||customElements.define(e(s),l);break;case"feedlog-badge":customElements.get(e(s))||a();break;case"feedlog-button":customElements.get(e(s))||r();break;case"feedlog-issues-list":customElements.get(e(s))||c()}}))}f();export{l as F,f as d}
@@ -1,115 +0,0 @@
1
- import { r as registerInstance, h, c as createEvent, H as Host } from './index-CkB6Yzeb.js';
2
-
3
- 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;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)}`;
4
-
5
- const FeedlogBadge = class {
6
- constructor(hostRef) {
7
- registerInstance(this, hostRef);
8
- /**
9
- * Badge variant style
10
- */
11
- this.variant = 'default';
12
- }
13
- render() {
14
- return (h("span", { key: '482a74feb8d254a75383c30c7b39790edd04a05b', class: `badge badge-${this.variant}` }, h("slot", { key: '8d2db3fe0c2bc58e17829db4de7d0233189bb101' })));
15
- }
16
- };
17
- FeedlogBadge.style = feedlogBadgeCss();
18
-
19
- 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}`;
20
-
21
- const FeedlogButton = class {
22
- constructor(hostRef) {
23
- registerInstance(this, hostRef);
24
- this.feedlogClick = createEvent(this, "feedlogClick");
25
- /**
26
- * Button variant style
27
- */
28
- this.variant = 'default';
29
- /**
30
- * Button size
31
- */
32
- this.size = 'default';
33
- /**
34
- * Disabled state
35
- */
36
- this.disabled = false;
37
- /**
38
- * Button type
39
- */
40
- this.type = 'button';
41
- this.handleClick = (event) => {
42
- if (!this.disabled) {
43
- this.feedlogClick.emit(event);
44
- }
45
- };
46
- }
47
- render() {
48
- const sizeClass = this.size === 'default' ? 'button-size-default' : `button-size-${this.size}`;
49
- return (h("button", { key: '6cdd8347def51592707b1fb9aab0dc565ca0f76f', type: this.type, class: `button button-${this.variant} ${sizeClass}`, disabled: this.disabled, onClick: this.handleClick }, h("slot", { key: '3f3845195fa4b8a551473ecf1d5702321a31763e' })));
50
- }
51
- };
52
- FeedlogButton.style = feedlogButtonCss();
53
-
54
- const feedlogIssuesListCss = () => `:host{display: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-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}:host(.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-muted:oklch(0.269 0 0);--feedlog-muted-foreground:oklch(0.708 0 0);--feedlog-border:oklch(0.269 0 0);--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)}.issues-list{display:flex;flex-direction:column;gap:var(--feedlog-gap)}.empty-state{text-align:center;padding:3rem 1.5rem;color:var(--feedlog-muted-foreground);font-size:0.875rem}.issue-card{background-color:var(--feedlog-card);border:1px solid var(--feedlog-border);border-radius:var(--feedlog-radius);box-shadow:0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);transition:box-shadow 0.15s ease;position:relative}.issue-card:hover{box-shadow:0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1)}.issue-content{padding:1.5rem;display:flex;flex-direction:column;gap:1rem}.issue-header{display:flex;align-items:center;gap:0.5rem;justify-content:space-between}.issue-type-badge{width:fit-content}.pinned-indicator{font-size:1rem;opacity:0.7}.issue-main{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.issue-details{flex:1;min-width:0}.issue-title{color:var(--feedlog-card-foreground);font-size:0.875rem;font-weight:600;margin:0 0 0.375rem 0;line-height:1.4;word-break:break-word}.issue-body{color:var(--feedlog-muted-foreground);font-size:0.75rem;line-height:1.625;margin:0 0 0.75rem 0;word-break:break-word;white-space:pre-wrap}.issue-repository{display:flex;align-items:center;gap:0.5rem;font-size:0.75rem;color:var(--feedlog-muted-foreground);margin-bottom:0.5rem}.repo-name{font-weight:500}.github-number{color:var(--feedlog-blue-600);font-weight:600}:host(.dark) .github-number{color:var(--feedlog-blue-400)}.upvote-button{display:flex;flex-direction:column;align-items:center;gap:0.125rem;padding:0.5rem 0.75rem;border-radius:0.5rem;background-color:var(--feedlog-muted);border:1px solid transparent;cursor:pointer;transition:all 0.15s ease;flex-shrink:0;font-size:0.75rem;font-weight:600}.upvote-button:hover{background-color:var(--feedlog-blue-100);border-color:var(--feedlog-blue-400)}.upvote-button.upvoted{background-color:var(--feedlog-red-100);border-color:var(--feedlog-red-400)}.upvote-button.upvoted:hover{background-color:var(--feedlog-red-100);border-color:var(--feedlog-red-600)}:host(.dark) .upvote-button:hover{background-color:var(--feedlog-blue-900-30);border-color:var(--feedlog-blue-600)}:host(.dark) .upvote-button.upvoted{background-color:var(--feedlog-red-900-30);border-color:var(--feedlog-red-600)}.upvote-icon{width:1rem;height:1rem;stroke-width:2}.upvote-icon.filled{color:var(--feedlog-red-600)}.upvote-icon.outline{color:var(--feedlog-blue-600)}:host(.dark) .upvote-icon.outline{color:var(--feedlog-blue-400)}.upvote-count{font-size:0.75rem;font-weight:600;color:var(--feedlog-card-foreground)}.issue-footer{display:flex;flex-direction:column;gap:0.25rem;font-size:0.75rem}.issue-date{color:var(--feedlog-muted-foreground);cursor:help}`;
55
-
56
- /**
57
- * Heart icon SVG component (filled)
58
- */
59
- const HeartFilledIcon = () => (h("svg", { class: "upvote-icon filled", xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", viewBox: "0 0 24 24", fill: "currentColor", stroke: "none" }, h("path", { d: "M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z" })));
60
- /**
61
- * Heart icon SVG component (outline)
62
- */
63
- const HeartOutlineIcon = () => (h("svg", { class: "upvote-icon outline", xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" }, h("path", { d: "M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z" })));
64
- const FeedlogIssuesList = class {
65
- constructor(hostRef) {
66
- registerInstance(this, hostRef);
67
- this.feedlogUpvote = createEvent(this, "feedlogUpvote");
68
- /**
69
- * Array of issues to display
70
- */
71
- this.issues = [];
72
- /**
73
- * Theme variant: 'light' or 'dark'
74
- */
75
- this.theme = 'light';
76
- this.handleUpvote = (event, issue) => {
77
- event.stopPropagation();
78
- this.feedlogUpvote.emit({
79
- issueId: issue.id,
80
- currentUpvoted: issue.hasUpvoted,
81
- currentCount: issue.upvoteCount,
82
- });
83
- };
84
- }
85
- render() {
86
- return (h(Host, { key: '81b2b973309388f09d20629da416b92545567618', class: this.theme === 'dark' ? 'dark' : '' }, h("div", { key: 'ed22c88736ee13621f39b3095f71c361b0d04b44', class: "issues-list" }, this.issues.length === 0 ? (h("div", { class: "empty-state" }, h("p", null, "No issues found"))) : (this.issues.map(issue => (h("div", { key: issue.id, class: "issue-card" }, h("div", { class: "issue-content" }, h("div", { class: "issue-header" }, h("div", { class: "issue-type-badge" }, issue.type === 'bug' ? (h("feedlog-badge", { variant: "destructive" }, "Bug")) : (h("feedlog-badge", { variant: "enhancement" }, "Enhancement"))), issue.pinnedAt && (h("div", { class: "pinned-indicator", title: "Pinned issue" }, "\uD83D\uDCCC"))), h("div", { class: "issue-main" }, h("div", { class: "issue-details" }, h("h3", { class: "issue-title" }, issue.title), h("p", { class: "issue-body" }, issue.body), h("div", { class: "issue-repository" }, h("span", { class: "repo-name" }, issue.repository.owner, "/", issue.repository.name))), issue.type !== 'bug' && (h("button", { class: `upvote-button ${issue.hasUpvoted ? 'upvoted' : ''}`, onClick: (e) => this.handleUpvote(e, issue), title: issue.hasUpvoted ? 'Remove upvote' : 'Upvote this issue' }, issue.hasUpvoted ? h(HeartFilledIcon, null) : h(HeartOutlineIcon, null), h("span", { class: "upvote-count" }, issue.upvoteCount)))), h("div", { class: "issue-footer" }, h("span", { class: "issue-date", title: `Updated: ${issue.updatedAt}` }, "Updated ", this.formatDate(issue.updatedAt)), h("span", { class: "issue-date", title: `Created: ${issue.createdAt}` }, "Created ", this.formatDate(issue.createdAt)))))))))));
87
- }
88
- /**
89
- * Format an ISO date string to a relative time string
90
- */
91
- formatDate(dateString) {
92
- try {
93
- const date = new Date(dateString);
94
- const now = new Date();
95
- const seconds = Math.floor((now.getTime() - date.getTime()) / 1000);
96
- if (seconds < 60)
97
- return 'just now';
98
- if (seconds < 3600)
99
- return `${Math.floor(seconds / 60)}m ago`;
100
- if (seconds < 86400)
101
- return `${Math.floor(seconds / 3600)}h ago`;
102
- if (seconds < 604800)
103
- return `${Math.floor(seconds / 86400)}d ago`;
104
- if (seconds < 2592000)
105
- return `${Math.floor(seconds / 604800)}w ago`;
106
- return date.toLocaleDateString();
107
- }
108
- catch (_a) {
109
- return 'unknown date';
110
- }
111
- }
112
- };
113
- FeedlogIssuesList.style = feedlogIssuesListCss();
114
-
115
- export { FeedlogBadge as feedlog_badge, FeedlogButton as feedlog_button, FeedlogIssuesList as feedlog_issues_list };
@@ -1 +0,0 @@
1
- import{r as e,h as o,c as r,H as d}from"./p-CkB6Yzeb.js";const t=class{constructor(o){e(this,o),this.variant="default"}render(){return o("span",{key:"482a74feb8d254a75383c30c7b39790edd04a05b",class:`badge badge-${this.variant}`},o("slot",{key:"8d2db3fe0c2bc58e17829db4de7d0233189bb101"}))}};t.style=":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;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)}";const l=class{constructor(o){e(this,o),this.feedlogClick=r(this,"feedlogClick"),this.variant="default",this.size="default",this.disabled=!1,this.type="button",this.handleClick=e=>{this.disabled||this.feedlogClick.emit(e)}}render(){return o("button",{key:"6cdd8347def51592707b1fb9aab0dc565ca0f76f",type:this.type,class:`button button-${this.variant} ${"default"===this.size?"button-size-default":`button-size-${this.size}`}`,disabled:this.disabled,onClick:this.handleClick},o("slot",{key:"3f3845195fa4b8a551473ecf1d5702321a31763e"}))}};l.style=":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}";const a=()=>o("svg",{class:"upvote-icon filled",xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor",stroke:"none"},o("path",{d:"M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"})),n=()=>o("svg",{class:"upvote-icon outline",xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},o("path",{d:"M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"})),s=class{constructor(o){e(this,o),this.feedlogUpvote=r(this,"feedlogUpvote"),this.issues=[],this.theme="light",this.handleUpvote=(e,o)=>{e.stopPropagation(),this.feedlogUpvote.emit({issueId:o.id,currentUpvoted:o.hasUpvoted,currentCount:o.upvoteCount})}}render(){return o(d,{key:"81b2b973309388f09d20629da416b92545567618",class:"dark"===this.theme?"dark":""},o("div",{key:"ed22c88736ee13621f39b3095f71c361b0d04b44",class:"issues-list"},0===this.issues.length?o("div",{class:"empty-state"},o("p",null,"No issues found")):this.issues.map((e=>o("div",{key:e.id,class:"issue-card"},o("div",{class:"issue-content"},o("div",{class:"issue-header"},o("div",{class:"issue-type-badge"},"bug"===e.type?o("feedlog-badge",{variant:"destructive"},"Bug"):o("feedlog-badge",{variant:"enhancement"},"Enhancement")),e.pinnedAt&&o("div",{class:"pinned-indicator",title:"Pinned issue"},"📌")),o("div",{class:"issue-main"},o("div",{class:"issue-details"},o("h3",{class:"issue-title"},e.title),o("p",{class:"issue-body"},e.body),o("div",{class:"issue-repository"},o("span",{class:"repo-name"},e.repository.owner,"/",e.repository.name))),"bug"!==e.type&&o("button",{class:"upvote-button "+(e.hasUpvoted?"upvoted":""),onClick:o=>this.handleUpvote(o,e),title:e.hasUpvoted?"Remove upvote":"Upvote this issue"},o(e.hasUpvoted?a:n,null),o("span",{class:"upvote-count"},e.upvoteCount))),o("div",{class:"issue-footer"},o("span",{class:"issue-date",title:`Updated: ${e.updatedAt}`},"Updated ",this.formatDate(e.updatedAt)),o("span",{class:"issue-date",title:`Created: ${e.createdAt}`},"Created ",this.formatDate(e.createdAt)))))))))}formatDate(e){try{const o=new Date(e),r=new Date,d=Math.floor((r.getTime()-o.getTime())/1e3);return d<60?"just now":d<3600?`${Math.floor(d/60)}m ago`:d<86400?`${Math.floor(d/3600)}h ago`:d<604800?`${Math.floor(d/86400)}d ago`:d<2592e3?`${Math.floor(d/604800)}w ago`:o.toLocaleDateString()}catch(e){return"unknown date"}}};s.style=":host{display: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-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}:host(.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-muted:oklch(0.269 0 0);--feedlog-muted-foreground:oklch(0.708 0 0);--feedlog-border:oklch(0.269 0 0);--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)}.issues-list{display:flex;flex-direction:column;gap:var(--feedlog-gap)}.empty-state{text-align:center;padding:3rem 1.5rem;color:var(--feedlog-muted-foreground);font-size:0.875rem}.issue-card{background-color:var(--feedlog-card);border:1px solid var(--feedlog-border);border-radius:var(--feedlog-radius);box-shadow:0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);transition:box-shadow 0.15s ease;position:relative}.issue-card:hover{box-shadow:0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1)}.issue-content{padding:1.5rem;display:flex;flex-direction:column;gap:1rem}.issue-header{display:flex;align-items:center;gap:0.5rem;justify-content:space-between}.issue-type-badge{width:fit-content}.pinned-indicator{font-size:1rem;opacity:0.7}.issue-main{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.issue-details{flex:1;min-width:0}.issue-title{color:var(--feedlog-card-foreground);font-size:0.875rem;font-weight:600;margin:0 0 0.375rem 0;line-height:1.4;word-break:break-word}.issue-body{color:var(--feedlog-muted-foreground);font-size:0.75rem;line-height:1.625;margin:0 0 0.75rem 0;word-break:break-word;white-space:pre-wrap}.issue-repository{display:flex;align-items:center;gap:0.5rem;font-size:0.75rem;color:var(--feedlog-muted-foreground);margin-bottom:0.5rem}.repo-name{font-weight:500}.github-number{color:var(--feedlog-blue-600);font-weight:600}:host(.dark) .github-number{color:var(--feedlog-blue-400)}.upvote-button{display:flex;flex-direction:column;align-items:center;gap:0.125rem;padding:0.5rem 0.75rem;border-radius:0.5rem;background-color:var(--feedlog-muted);border:1px solid transparent;cursor:pointer;transition:all 0.15s ease;flex-shrink:0;font-size:0.75rem;font-weight:600}.upvote-button:hover{background-color:var(--feedlog-blue-100);border-color:var(--feedlog-blue-400)}.upvote-button.upvoted{background-color:var(--feedlog-red-100);border-color:var(--feedlog-red-400)}.upvote-button.upvoted:hover{background-color:var(--feedlog-red-100);border-color:var(--feedlog-red-600)}:host(.dark) .upvote-button:hover{background-color:var(--feedlog-blue-900-30);border-color:var(--feedlog-blue-600)}:host(.dark) .upvote-button.upvoted{background-color:var(--feedlog-red-900-30);border-color:var(--feedlog-red-600)}.upvote-icon{width:1rem;height:1rem;stroke-width:2}.upvote-icon.filled{color:var(--feedlog-red-600)}.upvote-icon.outline{color:var(--feedlog-blue-600)}:host(.dark) .upvote-icon.outline{color:var(--feedlog-blue-400)}.upvote-count{font-size:0.75rem;font-weight:600;color:var(--feedlog-card-foreground)}.issue-footer{display:flex;flex-direction:column;gap:0.25rem;font-size:0.75rem}.issue-date{color:var(--feedlog-muted-foreground);cursor:help}";export{t as feedlog_badge,l as feedlog_button,s as feedlog_issues_list}
@@ -1 +0,0 @@
1
- import{r as e,c as s,h as t,H as d}from"./p-CkB6Yzeb.js";const o=class{constructor(t){e(this,t),this.feedlogUpvote=s(this,"feedlogUpvote"),this.feedlogLoadMore=s(this,"feedlogLoadMore"),this.issues=[],this.maxWidth="42rem",this.theme="light",this.loading=!1,this.error=null,this.hasMore=!1,this.isLoadingMore=!1,this.currentTheme="light",this.handleUpvote=e=>{e.stopPropagation(),this.feedlogUpvote.emit(e.detail)},this.handleLoadMore=()=>{this.feedlogLoadMore.emit()}}componentWillLoad(){this.currentTheme=this.theme}render(){return t(d,{key:"57a57d901c1c45d66e6fe3658b3fbcbce6282018",class:"dark"===this.currentTheme?"dark":""},t("div",{key:"7ffe5de2a145065f0e58f5d1525aee5e5770806c",class:"github-issues-container",style:{maxWidth:this.maxWidth}},(this.heading||this.subtitle)&&t("header",{key:"413bf7d4c519f94f411ac9fc09e6776c14806871",class:"issues-header"},t("div",{key:"481b2feb7b34089e9cd69e602d5a8a1dc4ce88ec",class:"header-content"},this.heading&&t("h1",{key:"267a0cde7d18ad560c59c2a80150b9a0d5b613d5",class:"issues-title"},this.heading),this.subtitle&&t("p",{key:"6f71de0f4ac2b7c0b89cd24b24196e9a9a6576b3",class:"issues-subtitle"},this.subtitle))),this.loading&&t("div",{key:"6f9c52861aca5b5bd2137cf0ad929b13e7d74539",class:"loading-state"},t("p",{key:"d2a82cb61df5595fd74c5c9f6bbae825a4b2397c"},"Loading issues...")),this.error&&t("div",{key:"cd7ceea5eb432edc239ebf394661f659f04545d4",class:"error-state"},t("p",{key:"09657cce843d286cee8bdcf5c05aa5ffc35267f6"},"Error: ",this.error)),!this.loading&&!this.error&&t("div",{key:"73310effa8344b29e21b473b8cb64fee053eae26"},t("feedlog-issues-list",{key:"17183fa9301d1cdecaed3dcf9c21addd8871111b",issues:this.issues,theme:this.currentTheme,onFeedlogUpvote:this.handleUpvote}),this.hasMore&&t("div",{key:"9c7ef450db1b12f933f1ed83c6a5e7b8275b35b1",class:"load-more-container"},t("feedlog-button",{key:"77d0bf2d339aaaabf8233752c923a224c120ae9d",onFeedlogClick:this.handleLoadMore,disabled:this.isLoadingMore,variant:"outline"},this.isLoadingMore?"Loading...":"Load More Issues")))))}};o.style=":host{display: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-muted-foreground:#717182;--feedlog-destructive:#d4183d;--feedlog-padding:2rem}:host(.dark){--feedlog-background:oklch(0.145 0 0);--feedlog-foreground:oklch(0.985 0 0);--feedlog-muted-foreground:oklch(0.708 0 0);--feedlog-destructive:oklch(0.637 0.237 25.331)}.github-issues-container{min-height:100vh;background-color:var(--feedlog-background);padding:var(--feedlog-padding);margin:0 auto}.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,.error-state{padding:2rem;text-align:center;color:var(--feedlog-muted-foreground)}.error-state{color:var(--feedlog-destructive)}.load-more-container{display:flex;justify-content:center;padding:2rem 0;gap:1rem}";export{o as feedlog_github_issues}