@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.
Files changed (48) hide show
  1. package/README.md +12 -12
  2. package/dist/cjs/{feedlog-button_2.cjs.entry.js → feedlog-button_3.cjs.entry.js} +32 -0
  3. package/dist/cjs/{feedlog-github-issues-client.cjs.entry.js → feedlog-issues-client.cjs.entry.js} +4 -4
  4. package/dist/cjs/feedlog-issues.cjs.entry.js +71 -0
  5. package/dist/cjs/feedlog-toolkit.cjs.js +1 -1
  6. package/dist/cjs/loader.cjs.js +1 -1
  7. package/dist/collection/collection-manifest.json +2 -2
  8. package/dist/collection/components/feedlog-issues/feedlog-issues.css +245 -0
  9. package/dist/collection/components/{feedlog-github-issues/feedlog-github-issues.js → feedlog-issues/feedlog-issues.js} +51 -12
  10. package/dist/collection/components/{feedlog-github-issues/feedlog-github-issues.stories.js → feedlog-issues/feedlog-issues.stories.js} +32 -18
  11. package/dist/collection/components/{feedlog-github-issues-client/feedlog-github-issues-client.js → feedlog-issues-client/feedlog-issues-client.js} +46 -8
  12. package/dist/collection/components/feedlog-issues-list/feedlog-issues-list.css +36 -0
  13. package/dist/collection/components/feedlog-issues-list/feedlog-issues-list.js +42 -1
  14. package/dist/collection/components/index.js +2 -2
  15. package/dist/components/{feedlog-github-issues.d.ts → feedlog-issues-client.d.ts} +4 -4
  16. package/dist/components/feedlog-issues-client.js +1 -0
  17. package/dist/components/feedlog-issues-list.js +1 -1
  18. package/dist/components/feedlog-issues.d.ts +11 -0
  19. package/dist/components/feedlog-issues.js +1 -0
  20. package/dist/components/p-BR3ookRG.js +1 -0
  21. package/dist/components/p-DJOCetIC.js +1 -0
  22. package/dist/esm/{feedlog-button_2.entry.js → feedlog-button_3.entry.js} +32 -1
  23. package/dist/esm/{feedlog-github-issues-client.entry.js → feedlog-issues-client.entry.js} +4 -4
  24. package/dist/esm/feedlog-issues.entry.js +69 -0
  25. package/dist/esm/feedlog-toolkit.js +1 -1
  26. package/dist/esm/loader.js +1 -1
  27. package/dist/feedlog-toolkit/feedlog-toolkit.esm.js +1 -1
  28. package/dist/feedlog-toolkit/p-4acededf.entry.js +1 -0
  29. package/dist/feedlog-toolkit/{p-70bf31c4.entry.js → p-6737a3f4.entry.js} +1 -1
  30. package/dist/feedlog-toolkit/{p-dad7b157.entry.js → p-f8e5e975.entry.js} +2 -2
  31. package/dist/types/components/{feedlog-github-issues/feedlog-github-issues.d.ts → feedlog-issues/feedlog-issues.d.ts} +13 -4
  32. package/dist/types/components/{feedlog-github-issues-client/feedlog-github-issues-client.d.ts → feedlog-issues-client/feedlog-issues-client.d.ts} +13 -5
  33. package/dist/types/components/feedlog-issues-list/feedlog-issues-list.d.ts +9 -0
  34. package/dist/types/components/index.d.ts +2 -2
  35. package/dist/types/components.d.ts +172 -124
  36. package/package.json +2 -2
  37. package/dist/cjs/feedlog-github-issues.cjs.entry.js +0 -70
  38. package/dist/cjs/feedlog-issues-list.cjs.entry.js +0 -33
  39. package/dist/collection/components/feedlog-github-issues/feedlog-github-issues.css +0 -104
  40. package/dist/components/feedlog-github-issues-client.d.ts +0 -11
  41. package/dist/components/feedlog-github-issues-client.js +0 -1
  42. package/dist/components/feedlog-github-issues.js +0 -1
  43. package/dist/components/p-CyaPkQyN.js +0 -1
  44. package/dist/esm/feedlog-github-issues.entry.js +0 -68
  45. package/dist/esm/feedlog-issues-list.entry.js +0 -31
  46. package/dist/feedlog-toolkit/p-3154bc80.entry.js +0 -1
  47. package/dist/feedlog-toolkit/p-5688651c.entry.js +0 -1
  48. /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-github-issues-client
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-github-issues-client>
128
+ </feedlog-issues-client>
129
129
 
130
130
  <script>
131
131
  // Listen for events
132
- const client = document.querySelector('feedlog-github-issues-client');
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 { FeedlogGithubIssuesClient } from '@feedlog-ai/webcomponents/dist/components';
150
+ import { FeedlogIssuesClient } from '@feedlog-ai/webcomponents/dist/components';
151
151
 
152
152
  function App() {
153
153
  return (
154
154
  <div>
155
- <feedlog-github-issues-client
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-github-issues-client
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-github-issues-client>
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-github-issues-client
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-github-issues-client>
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-github-issues`: Issues display component (used internally by client)
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-github-issues-client,
288
- feedlog-github-issues {
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;
@@ -343,7 +343,7 @@ class FeedlogSDK {
343
343
  }
344
344
  }
345
345
 
346
- const FeedlogGithubIssuesClient = class {
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 : 'Failed to fetch issues';
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-github-issues", { key: '5d5bbd34f21c89b18ecb78f2411cfb825ff78d12', issues: this.issues, maxWidth: this.maxWidth, theme: this.theme, heading: this.heading, subtitle: this.subtitle, getIssueUrl: this.getIssueUrl, loading: this.loading, error: this.error, hasMore: this.hasMore, isLoadingMore: this.isLoadingMore, onFeedlogUpvote: this.handleUpvote, onFeedlogLoadMore: async () => this.loadMore() }));
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.feedlog_github_issues_client = FeedlogGithubIssuesClient;
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-issues-list.cjs",[[1,"feedlog-issues-list",{"issues":[16],"theme":[1],"getIssueUrl":[16]}]]],["feedlog-card.cjs",[[257,"feedlog-card"]]],["feedlog-badge.cjs",[[257,"feedlog-badge",{"variant":[1]}]]],["feedlog-button_2.cjs",[[257,"feedlog-button",{"variant":[1],"size":[1],"disabled":[4],"type":[1]}],[257,"feedlog-issue",{"issue":[16],"issueUrl":[1,"issue-url"],"theme":[1]}]]],["feedlog-github-issues.cjs",[[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"],"getIssueUrl":[16],"currentTheme":[32]}]]],["feedlog-github-issues-client.cjs",[[1,"feedlog-github-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],"getIssueUrl":[16],"issues":[32],"loading":[32],"error":[32],"cursor":[32],"hasMore":[32],"isLoadingMore":[32]}]]]], options);
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;
@@ -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-issues-list.cjs",[[1,"feedlog-issues-list",{"issues":[16],"theme":[1],"getIssueUrl":[16]}]]],["feedlog-card.cjs",[[257,"feedlog-card"]]],["feedlog-badge.cjs",[[257,"feedlog-badge",{"variant":[1]}]]],["feedlog-button_2.cjs",[[257,"feedlog-button",{"variant":[1],"size":[1],"disabled":[4],"type":[1]}],[257,"feedlog-issue",{"issue":[16],"issueUrl":[1,"issue-url"],"theme":[1]}]]],["feedlog-github-issues.cjs",[[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"],"getIssueUrl":[16],"currentTheme":[32]}]]],["feedlog-github-issues-client.cjs",[[1,"feedlog-github-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],"getIssueUrl":[16],"issues":[32],"loading":[32],"error":[32],"cursor":[32],"hasMore":[32],"isLoadingMore":[32]}]]]], options);
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-github-issues/feedlog-github-issues.js",
7
- "components/feedlog-github-issues-client/feedlog-github-issues-client.js",
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 GitHub Issues Component
3
+ * Feedlog Issues Component
4
4
  *
5
- * Component for displaying GitHub issues with support for bugs and enhancements.
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 FeedlogGithubIssues {
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
- return (h("div", { class: "issues-list" }, this.issues.length === 0 ? (h("div", { class: "empty-state" }, h("p", null, "No issues found"))) : (this.issues.map(issue => {
55
- var _a, _b;
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: '8d371971cf80542020ff10d09e49b1e86cbd1170', class: this.currentTheme === 'dark' ? 'dark' : '' }, h("div", { key: '6a46103b04afbd473ca02a5f16125192a00f2e9b', class: "github-issues-container", style: containerStyle }, (this.heading || this.subtitle) && (h("header", { key: '55b481d2ea993566769670aeef1959aa76cc422e', class: "issues-header" }, h("div", { key: 'c80a94733595b2fc74f9e670b8ebe92498e762f5', class: "header-content" }, this.heading && h("h1", { key: '16cb4c7cf71d1d91b52dede91f900a79f9a66458', class: "issues-title" }, this.heading), this.subtitle && h("p", { key: 'ee0d7a228dc935b2fa88a03133e79888a60853df', class: "issues-subtitle" }, this.subtitle)))), this.loading && (h("div", { key: '3830120b4883517f73133bb3b51f26a3cd2c0503', class: "loading-state" }, h("p", { key: '13a5c0d3f466092c77b3cc6b8d3af448c44b4f48' }, "Loading issues..."))), this.error && (h("div", { key: '84b1c7407a0b3c858598663feb8d4a782ec1bff2', class: "error-state" }, h("p", { key: 'd846f63028dc9134a28270853d1af08cf3b75ef5' }, "Error: ", this.error))), !this.loading && !this.error && (h("div", { key: 'e9676a45008da5976db58180d72275e3080a51a1' }, this.renderIssuesList(), this.hasMore && (h("div", { key: '85ef1768fbcc1636bbeeaa2a74afaa552455d05e', class: "load-more-container" }, h("feedlog-button", { key: 'd408617ab69f6d70acbb9dfc360d3a09c79279b1', onFeedlogClick: this.handleLoadMore, disabled: this.isLoadingMore, variant: "outline" }, this.isLoadingMore ? 'Loading...' : 'Load More Issues'))))))));
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-github-issues"; }
66
+ static get is() { return "feedlog-issues"; }
66
67
  static get encapsulation() { return "shadow"; }
67
68
  static get originalStyleUrls() {
68
69
  return {
69
- "$": ["feedlog-github-issues.css"]
70
+ "$": ["feedlog-issues.css"]
70
71
  };
71
72
  }
72
73
  static get styleUrls() {
73
74
  return {
74
- "$": ["feedlog-github-issues.css"]
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 GitHub issue URL when githubIssueLink is not available.\nRequired because repository.owner was removed from the API for privacy."
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