@feedlog-ai/webcomponents 0.0.21 → 0.0.23
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/README.md +12 -12
- package/dist/cjs/{feedlog-button_2.cjs.entry.js → feedlog-button_3.cjs.entry.js} +32 -0
- package/dist/cjs/{feedlog-github-issues-client.cjs.entry.js → feedlog-issues-client.cjs.entry.js} +4 -4
- package/dist/cjs/feedlog-issues.cjs.entry.js +71 -0
- package/dist/cjs/feedlog-toolkit.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +2 -2
- package/dist/collection/components/feedlog-issues/feedlog-issues.css +245 -0
- package/dist/collection/components/{feedlog-github-issues/feedlog-github-issues.js → feedlog-issues/feedlog-issues.js} +51 -12
- package/dist/collection/components/{feedlog-github-issues/feedlog-github-issues.stories.js → feedlog-issues/feedlog-issues.stories.js} +32 -18
- package/dist/collection/components/{feedlog-github-issues-client/feedlog-github-issues-client.js → feedlog-issues-client/feedlog-issues-client.js} +46 -8
- package/dist/collection/components/feedlog-issues-list/feedlog-issues-list.css +36 -0
- package/dist/collection/components/feedlog-issues-list/feedlog-issues-list.js +42 -1
- package/dist/collection/components/index.js +2 -2
- package/dist/components/{feedlog-github-issues.d.ts → feedlog-issues-client.d.ts} +4 -4
- package/dist/components/feedlog-issues-client.js +1 -0
- package/dist/components/feedlog-issues-list.js +1 -1
- package/dist/components/feedlog-issues.d.ts +11 -0
- package/dist/components/feedlog-issues.js +1 -0
- package/dist/components/p-BR3ookRG.js +1 -0
- package/dist/components/p-DJOCetIC.js +1 -0
- package/dist/esm/{feedlog-button_2.entry.js → feedlog-button_3.entry.js} +32 -1
- package/dist/esm/{feedlog-github-issues-client.entry.js → feedlog-issues-client.entry.js} +4 -4
- package/dist/esm/feedlog-issues.entry.js +69 -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-4acededf.entry.js +1 -0
- package/dist/feedlog-toolkit/{p-70bf31c4.entry.js → p-6737a3f4.entry.js} +1 -1
- package/dist/feedlog-toolkit/{p-dad7b157.entry.js → p-f8e5e975.entry.js} +2 -2
- package/dist/types/components/{feedlog-github-issues/feedlog-github-issues.d.ts → feedlog-issues/feedlog-issues.d.ts} +13 -4
- package/dist/types/components/{feedlog-github-issues-client/feedlog-github-issues-client.d.ts → feedlog-issues-client/feedlog-issues-client.d.ts} +13 -5
- package/dist/types/components/feedlog-issues-list/feedlog-issues-list.d.ts +9 -0
- package/dist/types/components/index.d.ts +2 -2
- package/dist/types/components.d.ts +172 -124
- package/package.json +2 -2
- package/dist/cjs/feedlog-github-issues.cjs.entry.js +0 -70
- package/dist/cjs/feedlog-issues-list.cjs.entry.js +0 -33
- package/dist/collection/components/feedlog-github-issues/feedlog-github-issues.css +0 -104
- package/dist/components/feedlog-github-issues-client.d.ts +0 -11
- package/dist/components/feedlog-github-issues-client.js +0 -1
- package/dist/components/feedlog-github-issues.js +0 -1
- package/dist/components/p-CyaPkQyN.js +0 -1
- package/dist/esm/feedlog-github-issues.entry.js +0 -68
- package/dist/esm/feedlog-issues-list.entry.js +0 -31
- package/dist/feedlog-toolkit/p-3154bc80.entry.js +0 -1
- package/dist/feedlog-toolkit/p-5688651c.entry.js +0 -1
- /package/dist/types/components/{feedlog-github-issues/feedlog-github-issues.stories.d.ts → feedlog-issues/feedlog-issues.stories.d.ts} +0 -0
package/README.md
CHANGED
|
@@ -118,18 +118,18 @@ The playground lets you configure:
|
|
|
118
118
|
></script>
|
|
119
119
|
</head>
|
|
120
120
|
<body>
|
|
121
|
-
<feedlog-
|
|
121
|
+
<feedlog-issues-client
|
|
122
122
|
api-key="your-api-key"
|
|
123
123
|
type="bug"
|
|
124
124
|
limit="10"
|
|
125
125
|
theme="light"
|
|
126
126
|
max-width="42rem"
|
|
127
127
|
>
|
|
128
|
-
</feedlog-
|
|
128
|
+
</feedlog-issues-client>
|
|
129
129
|
|
|
130
130
|
<script>
|
|
131
131
|
// Listen for events
|
|
132
|
-
const client = document.querySelector('feedlog-
|
|
132
|
+
const client = document.querySelector('feedlog-issues-client');
|
|
133
133
|
|
|
134
134
|
client.addEventListener('feedlogUpvote', event => {
|
|
135
135
|
console.log('Issue upvoted:', event.detail);
|
|
@@ -147,12 +147,12 @@ The playground lets you configure:
|
|
|
147
147
|
|
|
148
148
|
```tsx
|
|
149
149
|
import React from 'react';
|
|
150
|
-
import {
|
|
150
|
+
import { FeedlogIssuesClient } from '@feedlog-ai/webcomponents/dist/components';
|
|
151
151
|
|
|
152
152
|
function App() {
|
|
153
153
|
return (
|
|
154
154
|
<div>
|
|
155
|
-
<feedlog-
|
|
155
|
+
<feedlog-issues-client
|
|
156
156
|
api-key="your-api-key"
|
|
157
157
|
type="bug"
|
|
158
158
|
limit={10}
|
|
@@ -174,7 +174,7 @@ function App() {
|
|
|
174
174
|
|
|
175
175
|
```vue
|
|
176
176
|
<template>
|
|
177
|
-
<feedlog-
|
|
177
|
+
<feedlog-issues-client
|
|
178
178
|
api-key="your-api-key"
|
|
179
179
|
type="bug"
|
|
180
180
|
:limit="10"
|
|
@@ -183,7 +183,7 @@ function App() {
|
|
|
183
183
|
@feedlog-upvote="handleUpvote"
|
|
184
184
|
@feedlog-error="handleError"
|
|
185
185
|
>
|
|
186
|
-
</feedlog-
|
|
186
|
+
</feedlog-issues-client>
|
|
187
187
|
</template>
|
|
188
188
|
|
|
189
189
|
<script setup lang="ts">
|
|
@@ -205,7 +205,7 @@ import { Component } from '@angular/core';
|
|
|
205
205
|
@Component({
|
|
206
206
|
selector: 'app-root',
|
|
207
207
|
template: `
|
|
208
|
-
<feedlog-
|
|
208
|
+
<feedlog-issues-client
|
|
209
209
|
api-key="your-api-key"
|
|
210
210
|
type="bug"
|
|
211
211
|
limit="10"
|
|
@@ -214,7 +214,7 @@ import { Component } from '@angular/core';
|
|
|
214
214
|
(feedlogUpvote)="onUpvote($event)"
|
|
215
215
|
(feedlogError)="onError($event)"
|
|
216
216
|
>
|
|
217
|
-
</feedlog-
|
|
217
|
+
</feedlog-issues-client>
|
|
218
218
|
`,
|
|
219
219
|
})
|
|
220
220
|
export class AppComponent {
|
|
@@ -235,7 +235,7 @@ The package also includes additional UI components:
|
|
|
235
235
|
- `feedlog-badge`: Label component with variant support
|
|
236
236
|
- `feedlog-button`: Button component with variants and sizes
|
|
237
237
|
- `feedlog-card`: Reusable card container component
|
|
238
|
-
- `feedlog-
|
|
238
|
+
- `feedlog-issues`: Issues display component (used internally by client)
|
|
239
239
|
- `feedlog-issues-list`: Issues list component (used internally)
|
|
240
240
|
|
|
241
241
|
## Build Outputs
|
|
@@ -284,8 +284,8 @@ interface ErrorEventDetail {
|
|
|
284
284
|
Components use Shadow DOM for encapsulation. You can style them using CSS custom properties. See the [main README](../../README.md#-style-customization) for full copy-paste examples.
|
|
285
285
|
|
|
286
286
|
```css
|
|
287
|
-
feedlog-
|
|
288
|
-
feedlog-
|
|
287
|
+
feedlog-issues-client,
|
|
288
|
+
feedlog-issues {
|
|
289
289
|
/* Card */
|
|
290
290
|
--feedlog-card-padding: 1.25rem;
|
|
291
291
|
--feedlog-card-accent-width: 3px;
|
|
@@ -1637,5 +1637,37 @@ const FeedlogIssueComponent = class {
|
|
|
1637
1637
|
};
|
|
1638
1638
|
FeedlogIssueComponent.style = feedlogIssueCss();
|
|
1639
1639
|
|
|
1640
|
+
const feedlogIssuesListCss = () => `:host{display:block;--feedlog-muted-foreground:#64748b;--feedlog-foreground:oklch(0.145 0 0);--feedlog-empty-illustration-bg:oklch(0.96 0.01 260);--feedlog-empty-illustration-stroke:oklch(0.75 0.02 260);--feedlog-empty-illustration-muted:oklch(0.82 0.01 260)}:host(.dark){--feedlog-muted-foreground:oklch(0.72 0.02 260);--feedlog-foreground:oklch(0.985 0 0);--feedlog-empty-illustration-bg:oklch(0.28 0.02 260);--feedlog-empty-illustration-stroke:oklch(0.45 0.02 260);--feedlog-empty-illustration-muted:oklch(0.38 0.01 260)}.issues-list{display:flex;flex-direction:column;gap:0.5rem}.empty-state{text-align:center;padding:3rem 1.5rem;color:var(--feedlog-muted-foreground);font-size:0.875rem}.empty-state-content{display:flex;flex-direction:column;align-items:center;text-align:center;max-width:20rem}.empty-state-illustration{margin-bottom:1.5rem;opacity:0.9}.empty-state-title{margin:0 0 0.5rem 0;font-size:1.125rem;font-weight:600;color:var(--feedlog-foreground);line-height:1.4}.empty-state-message{margin:0;font-size:0.875rem;color:var(--feedlog-muted-foreground);line-height:1.5}`;
|
|
1641
|
+
|
|
1642
|
+
const FeedlogIssuesList = class {
|
|
1643
|
+
constructor(hostRef) {
|
|
1644
|
+
index.registerInstance(this, hostRef);
|
|
1645
|
+
this.feedlogUpvote = index.createEvent(this, "feedlogUpvote");
|
|
1646
|
+
/**
|
|
1647
|
+
* Array of issues to display
|
|
1648
|
+
*/
|
|
1649
|
+
this.issues = [];
|
|
1650
|
+
/**
|
|
1651
|
+
* Theme variant: 'light' or 'dark'
|
|
1652
|
+
*/
|
|
1653
|
+
this.theme = 'light';
|
|
1654
|
+
this.handleUpvote = (event) => {
|
|
1655
|
+
event.stopPropagation();
|
|
1656
|
+
this.feedlogUpvote.emit(event.detail);
|
|
1657
|
+
};
|
|
1658
|
+
}
|
|
1659
|
+
renderEmptyStateIllustration() {
|
|
1660
|
+
return (index.h("svg", { class: "empty-state-illustration", xmlns: "http://www.w3.org/2000/svg", width: "120", height: "96", viewBox: "0 0 120 96", fill: "none", "aria-hidden": "true" }, index.h("path", { d: "M20 36h80v44c0 4.4-3.6 8-8 8H28c-4.4 0-8-3.6-8-8V36z", fill: "var(--feedlog-empty-illustration-bg)", stroke: "var(--feedlog-empty-illustration-stroke)", "stroke-width": "1.5", "stroke-linejoin": "round" }), index.h("path", { d: "M20 36l20-24h40l20 24", fill: "none", stroke: "var(--feedlog-empty-illustration-stroke)", "stroke-width": "1.5", "stroke-linecap": "round", "stroke-linejoin": "round" }), index.h("path", { d: "M44 52h32M44 60h24M44 68h28", stroke: "var(--feedlog-empty-illustration-muted)", "stroke-width": "1.25", "stroke-linecap": "round" })));
|
|
1661
|
+
}
|
|
1662
|
+
render() {
|
|
1663
|
+
return (index.h(index.Host, { key: 'd797fd4978179c9081678e2fb3e7e2be756b4ea2', class: this.theme === 'dark' ? 'dark' : '' }, index.h("div", { key: '1fe373bbad55cf718d65279ae718f9b95e89e37f', class: "issues-list" }, this.issues.length === 0 ? (index.h("div", { class: "empty-state" }, this.emptyStateTitle && this.emptyStateMessage ? (index.h("div", { class: "empty-state-content" }, this.renderEmptyStateIllustration(), index.h("h2", { class: "empty-state-title" }, this.emptyStateTitle), index.h("p", { class: "empty-state-message" }, this.emptyStateMessage))) : (index.h("p", null, "No issues found")))) : (this.issues.map(issue => {
|
|
1664
|
+
var _a, _b;
|
|
1665
|
+
return (index.h("feedlog-issue", { key: issue.id, issue: issue, issueUrl: (_b = (_a = this.getIssueUrl) === null || _a === void 0 ? void 0 : _a.call(this, issue)) !== null && _b !== void 0 ? _b : undefined, theme: this.theme, onFeedlogUpvote: (e) => this.handleUpvote(e) }));
|
|
1666
|
+
})))));
|
|
1667
|
+
}
|
|
1668
|
+
};
|
|
1669
|
+
FeedlogIssuesList.style = feedlogIssuesListCss();
|
|
1670
|
+
|
|
1640
1671
|
exports.feedlog_button = FeedlogButton;
|
|
1641
1672
|
exports.feedlog_issue = FeedlogIssueComponent;
|
|
1673
|
+
exports.feedlog_issues_list = FeedlogIssuesList;
|
package/dist/cjs/{feedlog-github-issues-client.cjs.entry.js → feedlog-issues-client.cjs.entry.js}
RENAMED
|
@@ -343,7 +343,7 @@ class FeedlogSDK {
|
|
|
343
343
|
}
|
|
344
344
|
}
|
|
345
345
|
|
|
346
|
-
const
|
|
346
|
+
const FeedlogIssuesClient = class {
|
|
347
347
|
constructor(hostRef) {
|
|
348
348
|
index.registerInstance(this, hostRef);
|
|
349
349
|
this.feedlogUpvote = index.createEvent(this, "feedlogUpvote");
|
|
@@ -488,7 +488,7 @@ const FeedlogGithubIssuesClient = class {
|
|
|
488
488
|
if (this.isDisconnected || currentRequestId !== this.fetchRequestId) {
|
|
489
489
|
return;
|
|
490
490
|
}
|
|
491
|
-
const errorMsg = err instanceof Error ? err.message : '
|
|
491
|
+
const errorMsg = err instanceof Error ? err.message : "Couldn't load updates";
|
|
492
492
|
this.error = errorMsg;
|
|
493
493
|
this.issues = [];
|
|
494
494
|
this.feedlogError.emit({
|
|
@@ -553,8 +553,8 @@ const FeedlogGithubIssuesClient = class {
|
|
|
553
553
|
}
|
|
554
554
|
}
|
|
555
555
|
render() {
|
|
556
|
-
return (index.h("feedlog-
|
|
556
|
+
return (index.h("feedlog-issues", { key: '8c8635788f390477f1e5217e423d79438c45858d', issues: this.issues, maxWidth: this.maxWidth, theme: this.theme, heading: this.heading, subtitle: this.subtitle, emptyStateTitle: this.emptyStateTitle, emptyStateMessage: this.emptyStateMessage, getIssueUrl: this.getIssueUrl, loading: this.loading, error: this.error, hasMore: this.hasMore, isLoadingMore: this.isLoadingMore, onFeedlogUpvote: this.handleUpvote, onFeedlogLoadMore: async () => this.loadMore() }));
|
|
557
557
|
}
|
|
558
558
|
};
|
|
559
559
|
|
|
560
|
-
exports.
|
|
560
|
+
exports.feedlog_issues_client = FeedlogIssuesClient;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var index = require('./index-DnsqTPII.js');
|
|
4
|
+
|
|
5
|
+
const feedlogIssuesCss = () => `: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;--feedlog-padding:2rem;--feedlog-shadow:0 1px 3px 0 rgba(0, 0, 0, 0.08), 0 1px 2px -1px rgba(0, 0, 0, 0.08)}:host(.dark){--feedlog-background:oklch(0.18 0.01 260);--feedlog-foreground:oklch(0.985 0 0);--feedlog-card:oklch(0.24 0.01 260);--feedlog-card-foreground:oklch(0.985 0 0);--feedlog-muted:oklch(0.32 0.01 260);--feedlog-muted-foreground:oklch(0.72 0.02 260);--feedlog-border:oklch(0.34 0.01 260);--feedlog-accent-color:#3b82f6;--feedlog-destructive:oklch(0.396 0.141 25.723);--feedlog-blue-400:oklch(0.707 0.165 254.624);--feedlog-blue-600:oklch(0.546 0.245 262.881);--feedlog-blue-900-30:color-mix(in oklab, oklch(0.379 0.146 265.522) 30%, transparent);--feedlog-red-900-30:color-mix(in oklab, oklch(0.396 0.141 25.723) 30%, transparent);--feedlog-shadow:0 1px 3px 0 rgba(0, 0, 0, 0.3)}.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{padding:0}.loading-skeletons{display:flex;flex-direction:column;gap:var(--feedlog-gap)}.skeleton-card{background-color:var(--feedlog-card);border:1px solid var(--feedlog-border);border-radius:var(--feedlog-radius);box-shadow:var(--feedlog-shadow);position:relative;overflow:hidden}.skeleton-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--feedlog-muted)}.skeleton-content{padding:1.25rem;padding-left:calc(1.25rem + 3px);display:flex;flex-direction:column;gap:0.875rem}.skeleton-header{display:flex;align-items:center;justify-content:space-between;gap:0.75rem}.skeleton-badge{width:4.5rem;height:1.25rem;border-radius:0.375rem;background-color:var(--feedlog-muted);animation:skeleton-pulse 1.5s ease-in-out infinite}.skeleton-timestamp{width:3rem;height:0.75rem;border-radius:0.25rem;background-color:var(--feedlog-muted);animation:skeleton-pulse 1.5s ease-in-out infinite 0.2s}.skeleton-main{display:flex;flex-direction:column;gap:0.5rem}.skeleton-title{height:0.9375rem;border-radius:0.25rem;background-color:var(--feedlog-muted);animation:skeleton-pulse 1.5s ease-in-out infinite 0.1s;width:85%}.skeleton-body{display:flex;flex-direction:column;gap:0.375rem}.skeleton-line{height:0.8125rem;border-radius:0.25rem;background-color:var(--feedlog-muted);animation:skeleton-pulse 1.5s ease-in-out infinite 0.15s;width:100%}.skeleton-line.short{width:70%}.skeleton-repo{width:6rem;height:0.75rem;border-radius:0.25rem;background-color:var(--feedlog-muted);animation:skeleton-pulse 1.5s ease-in-out infinite 0.25s}.skeleton-footer{display:flex;justify-content:flex-end}.skeleton-upvote{width:2.5rem;height:2rem;border-radius:0.5rem;background-color:var(--feedlog-muted);animation:skeleton-pulse 1.5s ease-in-out infinite 0.3s}@keyframes skeleton-pulse{0%,100%{opacity:1}50%{opacity:0.5}}.error-state{display:flex;align-items:center;justify-content:center;padding:3rem 2rem;min-height:12rem}.error-state-content{display:flex;flex-direction:column;align-items:center;text-align:center;max-width:20rem;padding:2rem}.error-icon{color:var(--feedlog-muted-foreground);opacity:0.8;margin-bottom:1rem}.error-state-title{margin:0 0 0.5rem 0;font-size:1.125rem;font-weight:600;color:var(--feedlog-foreground);line-height:1.4}.error-state-message{margin:0 0 1.25rem 0;font-size:0.875rem;color:var(--feedlog-muted-foreground);line-height:1.5}.load-more-container{display:flex;justify-content:center;padding:2rem 0;gap:1rem}`;
|
|
6
|
+
|
|
7
|
+
const FeedlogIssues = class {
|
|
8
|
+
constructor(hostRef) {
|
|
9
|
+
index.registerInstance(this, hostRef);
|
|
10
|
+
this.feedlogUpvote = index.createEvent(this, "feedlogUpvote");
|
|
11
|
+
this.feedlogLoadMore = index.createEvent(this, "feedlogLoadMore");
|
|
12
|
+
/**
|
|
13
|
+
* Array of issues to display
|
|
14
|
+
*/
|
|
15
|
+
this.issues = [];
|
|
16
|
+
/**
|
|
17
|
+
* Maximum width of the container
|
|
18
|
+
*/
|
|
19
|
+
this.maxWidth = '42rem';
|
|
20
|
+
/**
|
|
21
|
+
* Theme variant: 'light' or 'dark'
|
|
22
|
+
*/
|
|
23
|
+
this.theme = 'light';
|
|
24
|
+
/**
|
|
25
|
+
* Loading state - shows loading indicator when true
|
|
26
|
+
*/
|
|
27
|
+
this.loading = false;
|
|
28
|
+
/**
|
|
29
|
+
* Error message - shows error state when set
|
|
30
|
+
*/
|
|
31
|
+
this.error = null;
|
|
32
|
+
/**
|
|
33
|
+
* Whether there are more issues to load
|
|
34
|
+
*/
|
|
35
|
+
this.hasMore = false;
|
|
36
|
+
/**
|
|
37
|
+
* Whether more issues are currently loading
|
|
38
|
+
*/
|
|
39
|
+
this.isLoadingMore = false;
|
|
40
|
+
/**
|
|
41
|
+
* Internal state for theme
|
|
42
|
+
*/
|
|
43
|
+
this.currentTheme = 'light';
|
|
44
|
+
this.handleUpvote = (event) => {
|
|
45
|
+
event.stopPropagation();
|
|
46
|
+
this.feedlogUpvote.emit(event.detail);
|
|
47
|
+
};
|
|
48
|
+
this.handleLoadMore = () => {
|
|
49
|
+
this.feedlogLoadMore.emit();
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
componentWillLoad() {
|
|
53
|
+
this.currentTheme = this.theme;
|
|
54
|
+
}
|
|
55
|
+
renderErrorIcon() {
|
|
56
|
+
return (index.h("svg", { class: "error-icon", xmlns: "http://www.w3.org/2000/svg", width: "48", height: "48", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "1.5", "stroke-linecap": "round", "stroke-linejoin": "round", "aria-hidden": "true" }, index.h("circle", { cx: "12", cy: "12", r: "10" }), index.h("line", { x1: "12", y1: "8", x2: "12", y2: "12" }), index.h("line", { x1: "12", y1: "16", x2: "12.01", y2: "16" })));
|
|
57
|
+
}
|
|
58
|
+
renderIssuesList() {
|
|
59
|
+
var _a, _b;
|
|
60
|
+
return (index.h("feedlog-issues-list", { issues: this.issues, theme: this.currentTheme, getIssueUrl: this.getIssueUrl, emptyStateTitle: (_a = this.emptyStateTitle) !== null && _a !== void 0 ? _a : 'No updates yet', emptyStateMessage: (_b = this.emptyStateMessage) !== null && _b !== void 0 ? _b : 'Check back later for new updates.', onFeedlogUpvote: (e) => this.handleUpvote(e) }));
|
|
61
|
+
}
|
|
62
|
+
render() {
|
|
63
|
+
const containerStyle = {
|
|
64
|
+
maxWidth: this.maxWidth,
|
|
65
|
+
};
|
|
66
|
+
return (index.h(index.Host, { key: '812719c5d6f25108834d1a422dee280c18033e36', class: this.currentTheme === 'dark' ? 'dark' : '' }, index.h("div", { key: '1e415969878bad8fb14ea9e648d2c2d2e0d492a1', class: "issues-container", style: containerStyle }, (this.heading || this.subtitle) && (index.h("header", { key: '5bf1308396ff3bc04a57763317fa71a34d48cc95', class: "issues-header" }, index.h("div", { key: '19494458a1bcd11c3d91c08e98887f9d6ed33314', class: "header-content" }, this.heading && index.h("h1", { key: 'f89bd679a9dd9262c93573ef0bfbbb23bd892a87', class: "issues-title" }, this.heading), this.subtitle && index.h("p", { key: '2bcc73dfb95d7ae8971004522fe44cca5128701b', class: "issues-subtitle" }, this.subtitle)))), this.loading && (index.h("div", { key: '85c06c80b624cd16d532bea5f0ad6fb7cc06f692', class: "loading-state", role: "status", "aria-label": "Loading issues" }, index.h("div", { key: '766cd9e7c18586f937a1b864e7bcfce60fe79707', class: "loading-skeletons" }, [1, 2, 3].map(i => (index.h("div", { key: i, class: "skeleton-card" }, index.h("div", { class: "skeleton-content" }, index.h("div", { class: "skeleton-header" }, index.h("div", { class: "skeleton-badge" }), index.h("div", { class: "skeleton-timestamp" })), index.h("div", { class: "skeleton-main" }, index.h("div", { class: "skeleton-title" }), index.h("div", { class: "skeleton-body" }, index.h("div", { class: "skeleton-line" }), index.h("div", { class: "skeleton-line short" })), index.h("div", { class: "skeleton-repo" })), index.h("div", { class: "skeleton-footer" }, index.h("div", { class: "skeleton-upvote" }))))))))), this.error && (index.h("div", { key: '5ca08a9ddc95b4ef59d6c776a24e08b5ac65c0b3', class: "error-state", role: "alert" }, index.h("div", { key: '93218f816564cff58f591b53d1aad6b6bc8a1c64', class: "error-state-content" }, this.renderErrorIcon(), index.h("h2", { key: 'f141f75b92164af3f4d139a17937b0533641bcc0', class: "error-state-title" }, "Something went wrong"), index.h("p", { key: '61225c7f4f46944787d4a6448386c8209cdaf74c', class: "error-state-message" }, this.error)))), !this.loading && !this.error && (index.h("div", { key: '5ac699f4c5d0e5b5d20f1546efe24f80cba70748' }, this.renderIssuesList(), this.hasMore && (index.h("div", { key: '9ad22c48dac0d8874dfae9735c850b2ca52836e7', class: "load-more-container" }, index.h("feedlog-button", { key: 'de55c05ca8b80ec5df98051653ca135874edc98b', onFeedlogClick: this.handleLoadMore, disabled: this.isLoadingMore, variant: "outline" }, this.isLoadingMore ? 'Loading...' : 'Load More Issues'))))))));
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
FeedlogIssues.style = feedlogIssuesCss();
|
|
70
|
+
|
|
71
|
+
exports.feedlog_issues = FeedlogIssues;
|
|
@@ -18,7 +18,7 @@ var patchBrowser = () => {
|
|
|
18
18
|
|
|
19
19
|
patchBrowser().then(async (options) => {
|
|
20
20
|
await index.globalScripts();
|
|
21
|
-
return index.bootstrapLazy([["feedlog-
|
|
21
|
+
return index.bootstrapLazy([["feedlog-card.cjs",[[257,"feedlog-card"]]],["feedlog-badge.cjs",[[257,"feedlog-badge",{"variant":[1]}]]],["feedlog-button_3.cjs",[[1,"feedlog-issues-list",{"issues":[16],"theme":[1],"getIssueUrl":[16],"emptyStateTitle":[1,"empty-state-title"],"emptyStateMessage":[1,"empty-state-message"]}],[257,"feedlog-button",{"variant":[1],"size":[1],"disabled":[4],"type":[1]}],[257,"feedlog-issue",{"issue":[16],"issueUrl":[1,"issue-url"],"theme":[1]}]]],["feedlog-issues.cjs",[[1,"feedlog-issues",{"issues":[16],"maxWidth":[1,"max-width"],"theme":[1025],"heading":[1],"subtitle":[1],"emptyStateTitle":[1,"empty-state-title"],"emptyStateMessage":[1,"empty-state-message"],"loading":[4],"error":[1],"hasMore":[4,"has-more"],"isLoadingMore":[4,"is-loading-more"],"getIssueUrl":[16],"currentTheme":[32]}]]],["feedlog-issues-client.cjs",[[1,"feedlog-issues-client",{"apiKey":[1,"api-key"],"type":[1],"limit":[2],"sortBy":[1,"sort-by"],"endpoint":[1],"maxWidth":[1,"max-width"],"theme":[1],"heading":[1],"subtitle":[1],"emptyStateTitle":[1,"empty-state-title"],"emptyStateMessage":[1,"empty-state-message"],"getIssueUrl":[16],"issues":[32],"loading":[32],"error":[32],"cursor":[32],"hasMore":[32],"isLoadingMore":[32]}]]]], options);
|
|
22
22
|
});
|
|
23
23
|
|
|
24
24
|
exports.setNonce = index.setNonce;
|
package/dist/cjs/loader.cjs.js
CHANGED
|
@@ -5,7 +5,7 @@ var index = require('./index-DnsqTPII.js');
|
|
|
5
5
|
const defineCustomElements = async (win, options) => {
|
|
6
6
|
if (typeof window === 'undefined') return undefined;
|
|
7
7
|
await index.globalScripts();
|
|
8
|
-
return index.bootstrapLazy([["feedlog-
|
|
8
|
+
return index.bootstrapLazy([["feedlog-card.cjs",[[257,"feedlog-card"]]],["feedlog-badge.cjs",[[257,"feedlog-badge",{"variant":[1]}]]],["feedlog-button_3.cjs",[[1,"feedlog-issues-list",{"issues":[16],"theme":[1],"getIssueUrl":[16],"emptyStateTitle":[1,"empty-state-title"],"emptyStateMessage":[1,"empty-state-message"]}],[257,"feedlog-button",{"variant":[1],"size":[1],"disabled":[4],"type":[1]}],[257,"feedlog-issue",{"issue":[16],"issueUrl":[1,"issue-url"],"theme":[1]}]]],["feedlog-issues.cjs",[[1,"feedlog-issues",{"issues":[16],"maxWidth":[1,"max-width"],"theme":[1025],"heading":[1],"subtitle":[1],"emptyStateTitle":[1,"empty-state-title"],"emptyStateMessage":[1,"empty-state-message"],"loading":[4],"error":[1],"hasMore":[4,"has-more"],"isLoadingMore":[4,"is-loading-more"],"getIssueUrl":[16],"currentTheme":[32]}]]],["feedlog-issues-client.cjs",[[1,"feedlog-issues-client",{"apiKey":[1,"api-key"],"type":[1],"limit":[2],"sortBy":[1,"sort-by"],"endpoint":[1],"maxWidth":[1,"max-width"],"theme":[1],"heading":[1],"subtitle":[1],"emptyStateTitle":[1,"empty-state-title"],"emptyStateMessage":[1,"empty-state-message"],"getIssueUrl":[16],"issues":[32],"loading":[32],"error":[32],"cursor":[32],"hasMore":[32],"isLoadingMore":[32]}]]]], options);
|
|
9
9
|
};
|
|
10
10
|
|
|
11
11
|
exports.setNonce = index.setNonce;
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
"components/feedlog-card/feedlog-card.js",
|
|
4
4
|
"components/feedlog-badge/feedlog-badge.js",
|
|
5
5
|
"components/feedlog-button/feedlog-button.js",
|
|
6
|
-
"components/feedlog-
|
|
7
|
-
"components/feedlog-
|
|
6
|
+
"components/feedlog-issues/feedlog-issues.js",
|
|
7
|
+
"components/feedlog-issues-client/feedlog-issues-client.js",
|
|
8
8
|
"components/feedlog-issue/feedlog-issue.js",
|
|
9
9
|
"components/feedlog-issues-list/feedlog-issues-list.js"
|
|
10
10
|
],
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
:host {
|
|
2
|
+
display: block;
|
|
3
|
+
font-family:
|
|
4
|
+
ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, 'Liberation Mono', monospace;
|
|
5
|
+
|
|
6
|
+
/* Light theme defaults */
|
|
7
|
+
--feedlog-background: #ffffff;
|
|
8
|
+
--feedlog-foreground: oklch(0.145 0 0);
|
|
9
|
+
--feedlog-card: #ffffff;
|
|
10
|
+
--feedlog-card-foreground: oklch(0.145 0 0);
|
|
11
|
+
--feedlog-muted: #ececf0;
|
|
12
|
+
--feedlog-muted-foreground: #717182;
|
|
13
|
+
--feedlog-border: rgba(0, 0, 0, 0.1);
|
|
14
|
+
--feedlog-accent-color: #2563eb;
|
|
15
|
+
--feedlog-destructive: #d4183d;
|
|
16
|
+
--feedlog-blue-400: oklch(0.707 0.165 254.624);
|
|
17
|
+
--feedlog-blue-600: oklch(0.546 0.245 262.881);
|
|
18
|
+
--feedlog-blue-100: oklch(0.932 0.032 255.585);
|
|
19
|
+
--feedlog-red-100: #fce7f3;
|
|
20
|
+
--feedlog-red-400: #f472b6;
|
|
21
|
+
--feedlog-red-600: #db2777;
|
|
22
|
+
--feedlog-radius: 0.625rem;
|
|
23
|
+
--feedlog-gap: 0.5rem;
|
|
24
|
+
--feedlog-padding: 2rem;
|
|
25
|
+
--feedlog-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.08), 0 1px 2px -1px rgba(0, 0, 0, 0.08);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
:host(.dark) {
|
|
29
|
+
/* Dark theme values */
|
|
30
|
+
--feedlog-background: oklch(0.18 0.01 260);
|
|
31
|
+
--feedlog-foreground: oklch(0.985 0 0);
|
|
32
|
+
--feedlog-card: oklch(0.24 0.01 260);
|
|
33
|
+
--feedlog-card-foreground: oklch(0.985 0 0);
|
|
34
|
+
--feedlog-muted: oklch(0.32 0.01 260);
|
|
35
|
+
--feedlog-muted-foreground: oklch(0.72 0.02 260);
|
|
36
|
+
--feedlog-border: oklch(0.34 0.01 260);
|
|
37
|
+
--feedlog-accent-color: #3b82f6;
|
|
38
|
+
--feedlog-destructive: oklch(0.396 0.141 25.723);
|
|
39
|
+
--feedlog-blue-400: oklch(0.707 0.165 254.624);
|
|
40
|
+
--feedlog-blue-600: oklch(0.546 0.245 262.881);
|
|
41
|
+
--feedlog-blue-900-30: color-mix(in oklab, oklch(0.379 0.146 265.522) 30%, transparent);
|
|
42
|
+
--feedlog-red-900-30: color-mix(in oklab, oklch(0.396 0.141 25.723) 30%, transparent);
|
|
43
|
+
--feedlog-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.3);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
.issues-container {
|
|
48
|
+
min-height: 100vh;
|
|
49
|
+
background-color: var(--feedlog-background);
|
|
50
|
+
padding: var(--feedlog-padding);
|
|
51
|
+
margin: 0 auto;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.issues-header {
|
|
55
|
+
margin-bottom: 1.5rem;
|
|
56
|
+
display: flex;
|
|
57
|
+
align-items: flex-start;
|
|
58
|
+
justify-content: space-between;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.header-content {
|
|
62
|
+
flex: 1;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.issues-title {
|
|
66
|
+
color: var(--feedlog-foreground);
|
|
67
|
+
margin: 0 0 0.25rem 0;
|
|
68
|
+
font-size: 1.5rem;
|
|
69
|
+
font-weight: 500;
|
|
70
|
+
line-height: 1.5;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.issues-subtitle {
|
|
74
|
+
color: var(--feedlog-muted-foreground);
|
|
75
|
+
font-size: 0.875rem;
|
|
76
|
+
margin: 0;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.loading-state {
|
|
80
|
+
padding: 0;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.loading-skeletons {
|
|
84
|
+
display: flex;
|
|
85
|
+
flex-direction: column;
|
|
86
|
+
gap: var(--feedlog-gap);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
.skeleton-card {
|
|
90
|
+
background-color: var(--feedlog-card);
|
|
91
|
+
border: 1px solid var(--feedlog-border);
|
|
92
|
+
border-radius: var(--feedlog-radius);
|
|
93
|
+
box-shadow: var(--feedlog-shadow);
|
|
94
|
+
position: relative;
|
|
95
|
+
overflow: hidden;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
.skeleton-card::before {
|
|
99
|
+
content: '';
|
|
100
|
+
position: absolute;
|
|
101
|
+
left: 0;
|
|
102
|
+
top: 0;
|
|
103
|
+
bottom: 0;
|
|
104
|
+
width: 3px;
|
|
105
|
+
background: var(--feedlog-muted);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
.skeleton-content {
|
|
109
|
+
padding: 1.25rem;
|
|
110
|
+
padding-left: calc(1.25rem + 3px);
|
|
111
|
+
display: flex;
|
|
112
|
+
flex-direction: column;
|
|
113
|
+
gap: 0.875rem;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
.skeleton-header {
|
|
117
|
+
display: flex;
|
|
118
|
+
align-items: center;
|
|
119
|
+
justify-content: space-between;
|
|
120
|
+
gap: 0.75rem;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
.skeleton-badge {
|
|
124
|
+
width: 4.5rem;
|
|
125
|
+
height: 1.25rem;
|
|
126
|
+
border-radius: 0.375rem;
|
|
127
|
+
background-color: var(--feedlog-muted);
|
|
128
|
+
animation: skeleton-pulse 1.5s ease-in-out infinite;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
.skeleton-timestamp {
|
|
132
|
+
width: 3rem;
|
|
133
|
+
height: 0.75rem;
|
|
134
|
+
border-radius: 0.25rem;
|
|
135
|
+
background-color: var(--feedlog-muted);
|
|
136
|
+
animation: skeleton-pulse 1.5s ease-in-out infinite 0.2s;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
.skeleton-main {
|
|
140
|
+
display: flex;
|
|
141
|
+
flex-direction: column;
|
|
142
|
+
gap: 0.5rem;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
.skeleton-title {
|
|
146
|
+
height: 0.9375rem;
|
|
147
|
+
border-radius: 0.25rem;
|
|
148
|
+
background-color: var(--feedlog-muted);
|
|
149
|
+
animation: skeleton-pulse 1.5s ease-in-out infinite 0.1s;
|
|
150
|
+
width: 85%;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
.skeleton-body {
|
|
154
|
+
display: flex;
|
|
155
|
+
flex-direction: column;
|
|
156
|
+
gap: 0.375rem;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
.skeleton-line {
|
|
160
|
+
height: 0.8125rem;
|
|
161
|
+
border-radius: 0.25rem;
|
|
162
|
+
background-color: var(--feedlog-muted);
|
|
163
|
+
animation: skeleton-pulse 1.5s ease-in-out infinite 0.15s;
|
|
164
|
+
width: 100%;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
.skeleton-line.short {
|
|
168
|
+
width: 70%;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
.skeleton-repo {
|
|
172
|
+
width: 6rem;
|
|
173
|
+
height: 0.75rem;
|
|
174
|
+
border-radius: 0.25rem;
|
|
175
|
+
background-color: var(--feedlog-muted);
|
|
176
|
+
animation: skeleton-pulse 1.5s ease-in-out infinite 0.25s;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
.skeleton-footer {
|
|
180
|
+
display: flex;
|
|
181
|
+
justify-content: flex-end;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
.skeleton-upvote {
|
|
185
|
+
width: 2.5rem;
|
|
186
|
+
height: 2rem;
|
|
187
|
+
border-radius: 0.5rem;
|
|
188
|
+
background-color: var(--feedlog-muted);
|
|
189
|
+
animation: skeleton-pulse 1.5s ease-in-out infinite 0.3s;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
@keyframes skeleton-pulse {
|
|
193
|
+
0%,
|
|
194
|
+
100% {
|
|
195
|
+
opacity: 1;
|
|
196
|
+
}
|
|
197
|
+
50% {
|
|
198
|
+
opacity: 0.5;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
.error-state {
|
|
203
|
+
display: flex;
|
|
204
|
+
align-items: center;
|
|
205
|
+
justify-content: center;
|
|
206
|
+
padding: 3rem 2rem;
|
|
207
|
+
min-height: 12rem;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
.error-state-content {
|
|
211
|
+
display: flex;
|
|
212
|
+
flex-direction: column;
|
|
213
|
+
align-items: center;
|
|
214
|
+
text-align: center;
|
|
215
|
+
max-width: 20rem;
|
|
216
|
+
padding: 2rem;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
.error-icon {
|
|
220
|
+
color: var(--feedlog-muted-foreground);
|
|
221
|
+
opacity: 0.8;
|
|
222
|
+
margin-bottom: 1rem;
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
.error-state-title {
|
|
226
|
+
margin: 0 0 0.5rem 0;
|
|
227
|
+
font-size: 1.125rem;
|
|
228
|
+
font-weight: 600;
|
|
229
|
+
color: var(--feedlog-foreground);
|
|
230
|
+
line-height: 1.4;
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
.error-state-message {
|
|
234
|
+
margin: 0 0 1.25rem 0;
|
|
235
|
+
font-size: 0.875rem;
|
|
236
|
+
color: var(--feedlog-muted-foreground);
|
|
237
|
+
line-height: 1.5;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
.load-more-container {
|
|
241
|
+
display: flex;
|
|
242
|
+
justify-content: center;
|
|
243
|
+
padding: 2rem 0;
|
|
244
|
+
gap: 1rem;
|
|
245
|
+
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { h, Host } from "@stencil/core";
|
|
2
2
|
/**
|
|
3
|
-
* Feedlog
|
|
3
|
+
* Feedlog Issues Component
|
|
4
4
|
*
|
|
5
|
-
* Component for displaying
|
|
5
|
+
* Component for displaying issues with support for bugs and enhancements.
|
|
6
6
|
* Includes full list rendering, loading/error states, and pagination support.
|
|
7
7
|
*/
|
|
8
|
-
export class
|
|
8
|
+
export class FeedlogIssues {
|
|
9
9
|
constructor() {
|
|
10
10
|
/**
|
|
11
11
|
* Array of issues to display
|
|
@@ -50,28 +50,29 @@ export class FeedlogGithubIssues {
|
|
|
50
50
|
componentWillLoad() {
|
|
51
51
|
this.currentTheme = this.theme;
|
|
52
52
|
}
|
|
53
|
+
renderErrorIcon() {
|
|
54
|
+
return (h("svg", { class: "error-icon", xmlns: "http://www.w3.org/2000/svg", width: "48", height: "48", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "1.5", "stroke-linecap": "round", "stroke-linejoin": "round", "aria-hidden": "true" }, h("circle", { cx: "12", cy: "12", r: "10" }), h("line", { x1: "12", y1: "8", x2: "12", y2: "12" }), h("line", { x1: "12", y1: "16", x2: "12.01", y2: "16" })));
|
|
55
|
+
}
|
|
53
56
|
renderIssuesList() {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
return (h("feedlog-issue", { key: issue.id, issue: issue, issueUrl: (_b = (_a = this.getIssueUrl) === null || _a === void 0 ? void 0 : _a.call(this, issue)) !== null && _b !== void 0 ? _b : undefined, theme: this.currentTheme, onFeedlogUpvote: (e) => this.handleUpvote(e) }));
|
|
57
|
-
}))));
|
|
57
|
+
var _a, _b;
|
|
58
|
+
return (h("feedlog-issues-list", { issues: this.issues, theme: this.currentTheme, getIssueUrl: this.getIssueUrl, emptyStateTitle: (_a = this.emptyStateTitle) !== null && _a !== void 0 ? _a : 'No updates yet', emptyStateMessage: (_b = this.emptyStateMessage) !== null && _b !== void 0 ? _b : 'Check back later for new updates.', onFeedlogUpvote: (e) => this.handleUpvote(e) }));
|
|
58
59
|
}
|
|
59
60
|
render() {
|
|
60
61
|
const containerStyle = {
|
|
61
62
|
maxWidth: this.maxWidth,
|
|
62
63
|
};
|
|
63
|
-
return (h(Host, { key: '
|
|
64
|
+
return (h(Host, { key: '812719c5d6f25108834d1a422dee280c18033e36', class: this.currentTheme === 'dark' ? 'dark' : '' }, h("div", { key: '1e415969878bad8fb14ea9e648d2c2d2e0d492a1', class: "issues-container", style: containerStyle }, (this.heading || this.subtitle) && (h("header", { key: '5bf1308396ff3bc04a57763317fa71a34d48cc95', class: "issues-header" }, h("div", { key: '19494458a1bcd11c3d91c08e98887f9d6ed33314', class: "header-content" }, this.heading && h("h1", { key: 'f89bd679a9dd9262c93573ef0bfbbb23bd892a87', class: "issues-title" }, this.heading), this.subtitle && h("p", { key: '2bcc73dfb95d7ae8971004522fe44cca5128701b', class: "issues-subtitle" }, this.subtitle)))), this.loading && (h("div", { key: '85c06c80b624cd16d532bea5f0ad6fb7cc06f692', class: "loading-state", role: "status", "aria-label": "Loading issues" }, h("div", { key: '766cd9e7c18586f937a1b864e7bcfce60fe79707', class: "loading-skeletons" }, [1, 2, 3].map(i => (h("div", { key: i, class: "skeleton-card" }, h("div", { class: "skeleton-content" }, h("div", { class: "skeleton-header" }, h("div", { class: "skeleton-badge" }), h("div", { class: "skeleton-timestamp" })), h("div", { class: "skeleton-main" }, h("div", { class: "skeleton-title" }), h("div", { class: "skeleton-body" }, h("div", { class: "skeleton-line" }), h("div", { class: "skeleton-line short" })), h("div", { class: "skeleton-repo" })), h("div", { class: "skeleton-footer" }, h("div", { class: "skeleton-upvote" }))))))))), this.error && (h("div", { key: '5ca08a9ddc95b4ef59d6c776a24e08b5ac65c0b3', class: "error-state", role: "alert" }, h("div", { key: '93218f816564cff58f591b53d1aad6b6bc8a1c64', class: "error-state-content" }, this.renderErrorIcon(), h("h2", { key: 'f141f75b92164af3f4d139a17937b0533641bcc0', class: "error-state-title" }, "Something went wrong"), h("p", { key: '61225c7f4f46944787d4a6448386c8209cdaf74c', class: "error-state-message" }, this.error)))), !this.loading && !this.error && (h("div", { key: '5ac699f4c5d0e5b5d20f1546efe24f80cba70748' }, this.renderIssuesList(), this.hasMore && (h("div", { key: '9ad22c48dac0d8874dfae9735c850b2ca52836e7', class: "load-more-container" }, h("feedlog-button", { key: 'de55c05ca8b80ec5df98051653ca135874edc98b', onFeedlogClick: this.handleLoadMore, disabled: this.isLoadingMore, variant: "outline" }, this.isLoadingMore ? 'Loading...' : 'Load More Issues'))))))));
|
|
64
65
|
}
|
|
65
|
-
static get is() { return "feedlog-
|
|
66
|
+
static get is() { return "feedlog-issues"; }
|
|
66
67
|
static get encapsulation() { return "shadow"; }
|
|
67
68
|
static get originalStyleUrls() {
|
|
68
69
|
return {
|
|
69
|
-
"$": ["feedlog-
|
|
70
|
+
"$": ["feedlog-issues.css"]
|
|
70
71
|
};
|
|
71
72
|
}
|
|
72
73
|
static get styleUrls() {
|
|
73
74
|
return {
|
|
74
|
-
"$": ["feedlog-
|
|
75
|
+
"$": ["feedlog-issues.css"]
|
|
75
76
|
};
|
|
76
77
|
}
|
|
77
78
|
static get properties() {
|
|
@@ -178,6 +179,44 @@ export class FeedlogGithubIssues {
|
|
|
178
179
|
"reflect": false,
|
|
179
180
|
"attribute": "subtitle"
|
|
180
181
|
},
|
|
182
|
+
"emptyStateTitle": {
|
|
183
|
+
"type": "string",
|
|
184
|
+
"mutable": false,
|
|
185
|
+
"complexType": {
|
|
186
|
+
"original": "string",
|
|
187
|
+
"resolved": "string | undefined",
|
|
188
|
+
"references": {}
|
|
189
|
+
},
|
|
190
|
+
"required": false,
|
|
191
|
+
"optional": true,
|
|
192
|
+
"docs": {
|
|
193
|
+
"tags": [],
|
|
194
|
+
"text": "Empty state title. Defaults to \"No updates yet\"."
|
|
195
|
+
},
|
|
196
|
+
"getter": false,
|
|
197
|
+
"setter": false,
|
|
198
|
+
"reflect": false,
|
|
199
|
+
"attribute": "empty-state-title"
|
|
200
|
+
},
|
|
201
|
+
"emptyStateMessage": {
|
|
202
|
+
"type": "string",
|
|
203
|
+
"mutable": false,
|
|
204
|
+
"complexType": {
|
|
205
|
+
"original": "string",
|
|
206
|
+
"resolved": "string | undefined",
|
|
207
|
+
"references": {}
|
|
208
|
+
},
|
|
209
|
+
"required": false,
|
|
210
|
+
"optional": true,
|
|
211
|
+
"docs": {
|
|
212
|
+
"tags": [],
|
|
213
|
+
"text": "Empty state message. Defaults to \"Check back later for new updates.\"."
|
|
214
|
+
},
|
|
215
|
+
"getter": false,
|
|
216
|
+
"setter": false,
|
|
217
|
+
"reflect": false,
|
|
218
|
+
"attribute": "empty-state-message"
|
|
219
|
+
},
|
|
181
220
|
"loading": {
|
|
182
221
|
"type": "boolean",
|
|
183
222
|
"mutable": false,
|
|
@@ -276,7 +315,7 @@ export class FeedlogGithubIssues {
|
|
|
276
315
|
"optional": true,
|
|
277
316
|
"docs": {
|
|
278
317
|
"tags": [],
|
|
279
|
-
"text": "Optional callback to resolve
|
|
318
|
+
"text": "Optional callback to resolve issue URL when githubIssueLink is not available.\nRequired because repository.owner was removed from the API for privacy."
|
|
280
319
|
},
|
|
281
320
|
"getter": false,
|
|
282
321
|
"setter": false
|