@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.
- package/dist/cjs/feedlog-badge.cjs.entry.js +21 -0
- package/dist/cjs/feedlog-button_2.cjs.entry.js +101 -0
- package/dist/cjs/feedlog-github-issues-client.cjs.entry.js +55 -5
- package/dist/cjs/feedlog-github-issues.cjs.entry.js +5 -2
- package/dist/cjs/feedlog-issues-list.cjs.entry.js +66 -0
- package/dist/cjs/feedlog-toolkit.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/feedlog-github-issues/feedlog-github-issues.css +36 -1
- package/dist/collection/components/feedlog-github-issues/feedlog-github-issues.js +7 -4
- package/dist/collection/components/feedlog-github-issues-client/feedlog-github-issues-client.js +55 -5
- package/dist/collection/components/feedlog-issue/feedlog-issue.css +205 -0
- package/dist/collection/components/feedlog-issue/feedlog-issue.js +137 -0
- package/dist/collection/components/feedlog-issue/feedlog-issue.stories.js +113 -0
- package/dist/collection/components/feedlog-issues-list/feedlog-issues-list.css +64 -55
- package/dist/collection/components/feedlog-issues-list/feedlog-issues-list.js +6 -6
- package/dist/collection/components/index.js +1 -0
- package/dist/components/feedlog-github-issues-client.js +1 -1
- package/dist/components/feedlog-github-issues.js +1 -1
- package/dist/components/feedlog-issue.d.ts +11 -0
- package/dist/components/feedlog-issue.js +1 -0
- package/dist/components/feedlog-issues-list.js +1 -1
- package/dist/components/p-5qPAHrMz.js +1 -0
- package/dist/components/p-DaNa3wCt.js +1 -0
- package/dist/esm/feedlog-badge.entry.js +19 -0
- package/dist/esm/feedlog-button_2.entry.js +98 -0
- package/dist/esm/feedlog-github-issues-client.entry.js +55 -5
- package/dist/esm/feedlog-github-issues.entry.js +5 -2
- package/dist/esm/feedlog-issues-list.entry.js +64 -0
- package/dist/esm/feedlog-toolkit.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/feedlog-toolkit/feedlog-toolkit.esm.js +1 -1
- package/dist/feedlog-toolkit/p-386ab9fb.entry.js +1 -0
- package/dist/feedlog-toolkit/p-5df44120.entry.js +1 -0
- package/dist/feedlog-toolkit/{p-964cfcd8.entry.js → p-767ecb94.entry.js} +1 -1
- package/dist/feedlog-toolkit/p-95fea2f4.entry.js +1 -0
- package/dist/feedlog-toolkit/p-f172074f.entry.js +1 -0
- package/dist/types/components/feedlog-github-issues/feedlog-github-issues.d.ts +4 -3
- package/dist/types/components/feedlog-github-issues-client/feedlog-github-issues-client.d.ts +9 -2
- package/dist/types/components/feedlog-issue/feedlog-issue.d.ts +31 -0
- package/dist/types/components/feedlog-issue/feedlog-issue.stories.d.ts +12 -0
- package/dist/types/components/feedlog-issues-list/feedlog-issues-list.d.ts +4 -4
- package/dist/types/components/index.d.ts +1 -0
- package/dist/types/components.d.ts +85 -11
- package/package.json +2 -2
- package/dist/cjs/feedlog-badge_3.cjs.entry.js +0 -119
- package/dist/components/p-C7AZiNqt.js +0 -1
- package/dist/components/p-rh0Uv7Ks.js +0 -1
- package/dist/esm/feedlog-badge_3.entry.js +0 -115
- package/dist/feedlog-toolkit/p-4874f7e8.entry.js +0 -1
- 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
|
-
*
|
|
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":
|
|
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":
|
|
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
|
-
*
|
|
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
|
-
*
|
|
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"?:
|
|
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"?:
|
|
540
|
+
"issues"?: FeedlogIssueType[];
|
|
473
541
|
/**
|
|
474
|
-
*
|
|
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
|
-
*
|
|
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.
|
|
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.
|
|
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}
|