@feedlog-ai/webcomponents 0.0.35 → 0.0.37
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 +9 -17
- package/dist/cjs/feedlog-badge.cjs.entry.js +3 -3
- package/dist/cjs/feedlog-button_3.cjs.entry.js +16 -1385
- package/dist/cjs/feedlog-card.cjs.entry.js +3 -3
- package/dist/cjs/feedlog-issues-client.cjs.entry.js +102 -74
- package/dist/cjs/feedlog-issues.cjs.entry.js +4 -11
- package/dist/cjs/feedlog-toolkit.cjs.js +2 -2
- package/dist/cjs/{index-CXKBwRlh.js → index-prPyjPBk.js} +1 -1
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/purify.es-ppGw41aq.js +1384 -0
- package/dist/collection/components/feedlog-badge/feedlog-badge.css +35 -45
- package/dist/collection/components/feedlog-badge/feedlog-badge.js +1 -1
- package/dist/collection/components/feedlog-button/feedlog-button.css +16 -66
- package/dist/collection/components/feedlog-button/feedlog-button.js +1 -1
- package/dist/collection/components/feedlog-card/feedlog-card.css +22 -24
- package/dist/collection/components/feedlog-card/feedlog-card.js +1 -1
- package/dist/collection/components/feedlog-card/feedlog-card.stories.js +1 -1
- package/dist/collection/components/feedlog-issue/feedlog-issue.css +99 -187
- package/dist/collection/components/feedlog-issue/feedlog-issue.js +1 -1
- package/dist/collection/components/feedlog-issue/feedlog-issue.stories.js +19 -19
- package/dist/collection/components/feedlog-issues/feedlog-issues.css +34 -63
- package/dist/collection/components/feedlog-issues/feedlog-issues.js +2 -14
- package/dist/collection/components/feedlog-issues/feedlog-issues.stories.js +72 -52
- package/dist/collection/components/feedlog-issues-client/feedlog-issues-client.js +22 -28
- package/dist/collection/components/feedlog-issues-list/feedlog-issues-list.js +3 -3
- package/dist/collection/utils/markdown.js +6 -1
- package/dist/components/feedlog-badge.js +1 -1
- package/dist/components/feedlog-button.js +1 -1
- package/dist/components/feedlog-card.js +1 -1
- package/dist/components/feedlog-issue.js +1 -1
- package/dist/components/feedlog-issues-client.js +1 -1
- package/dist/components/feedlog-issues-list.js +1 -1
- package/dist/components/feedlog-issues.js +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/p-BoxVrJId.js +1 -0
- package/dist/components/{p-BRjVS8bz.js → p-CvIMO_S7.js} +2 -2
- package/dist/components/p-DFD585IK.js +1 -0
- package/dist/components/p-I6NOP29P.js +1 -0
- package/dist/components/p-fDVosM5p.js +1 -0
- package/dist/esm/feedlog-badge.entry.js +3 -3
- package/dist/esm/feedlog-button_3.entry.js +15 -1384
- package/dist/esm/feedlog-card.entry.js +3 -3
- package/dist/esm/feedlog-issues-client.entry.js +102 -74
- package/dist/esm/feedlog-issues.entry.js +4 -11
- package/dist/esm/feedlog-toolkit.js +3 -3
- package/dist/esm/{index-CgNWSmzU.js → index-Cu1eYdKa.js} +1 -1
- package/dist/esm/loader.js +3 -3
- package/dist/esm/purify.es-Bow7VsVH.js +1381 -0
- package/dist/feedlog-toolkit/feedlog-toolkit.css +1 -1
- package/dist/feedlog-toolkit/feedlog-toolkit.esm.js +1 -1
- package/dist/feedlog-toolkit/p-001d7353.entry.js +1 -0
- package/dist/feedlog-toolkit/p-556062d0.entry.js +1 -0
- package/dist/feedlog-toolkit/p-62554649.entry.js +1 -0
- package/dist/feedlog-toolkit/p-Bow7VsVH.js +2 -0
- package/dist/feedlog-toolkit/p-Cu1eYdKa.js +2 -0
- package/dist/feedlog-toolkit/p-b558fc9f.entry.js +1 -0
- package/dist/feedlog-toolkit/p-ca90ade9.entry.js +1 -0
- package/dist/types/components/feedlog-issues/feedlog-issues.d.ts +0 -5
- package/dist/types/components/feedlog-issues-client/feedlog-issues-client.d.ts +1 -0
- package/dist/types/index.d.ts +1 -1
- package/hydrate/index.js +130 -101
- package/hydrate/index.mjs +130 -101
- package/package.json +4 -7
- package/dist/components/p-BBbiSGNf.js +0 -1
- package/dist/components/p-CuFKEckF.js +0 -1
- package/dist/components/p-DMdb-G26.js +0 -1
- package/dist/components/p-DzATWlAC.js +0 -1
- package/dist/feedlog-toolkit/p-32663f65.entry.js +0 -1
- package/dist/feedlog-toolkit/p-891c349f.entry.js +0 -3
- package/dist/feedlog-toolkit/p-CgNWSmzU.js +0 -2
- package/dist/feedlog-toolkit/p-b51c95a6.entry.js +0 -1
- package/dist/feedlog-toolkit/p-da0268a8.entry.js +0 -1
- package/dist/feedlog-toolkit/p-f22117ae.entry.js +0 -1
package/hydrate/index.mjs
CHANGED
|
@@ -219,7 +219,7 @@ function hydrateFactory($stencilWindow, $stencilHydrateOpts, $stencilHydrateResu
|
|
|
219
219
|
const NAMESPACE = 'feedlog-toolkit';
|
|
220
220
|
const BUILD = /* feedlog-toolkit */ { hotModuleReplacement: false, hydratedSelectorName: "hydrated", slotRelocation: true, state: true, updatable: true};
|
|
221
221
|
|
|
222
|
-
const globalStyles = ":root{--feedlog-
|
|
222
|
+
const globalStyles = ":root{--feedlog-background:#ffffff;--feedlog-foreground:#09090b;--feedlog-card:#ffffff;--feedlog-card-foreground:#09090b;--feedlog-popover:#ffffff;--feedlog-popover-foreground:#09090b;--feedlog-primary:#18181b;--feedlog-primary-foreground:#fafafa;--feedlog-secondary:#f4f4f5;--feedlog-secondary-foreground:#18181b;--feedlog-muted:#f4f4f5;--feedlog-muted-foreground:#71717a;--feedlog-accent:#f4f4f5;--feedlog-accent-foreground:#18181b;--feedlog-destructive:#ef4444;--feedlog-destructive-foreground:#fafafa;--feedlog-success:#22c55e;--feedlog-success-foreground:#ffffff;--feedlog-warning:#f59e0b;--feedlog-warning-foreground:#ffffff;--feedlog-border:#f0f0f2;--feedlog-input:#e4e4e7;--feedlog-ring:#18181b;--feedlog-badge-enhancement-bg:#eef2ff;--feedlog-badge-enhancement-text:#4338ca;--feedlog-badge-secondary-bg:#f1f5f9;--feedlog-badge-secondary-text:#475569;--feedlog-badge-destructive-bg:#fef2f2;--feedlog-badge-destructive-text:#b91c1c;--feedlog-space-1:0.25rem;--feedlog-space-2:0.5rem;--feedlog-space-3:0.75rem;--feedlog-space-4:1rem;--feedlog-space-5:1.25rem;--feedlog-space-6:1.5rem;--feedlog-space-8:2rem;--feedlog-space-10:2.5rem;--feedlog-font-family:ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;--feedlog-font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;--feedlog-text-xs:0.75rem;--feedlog-text-sm:0.875rem;--feedlog-text-base:1rem;--feedlog-text-lg:1.125rem;--feedlog-text-xl:1.25rem;--feedlog-font-normal:400;--feedlog-font-medium:500;--feedlog-font-semibold:600;--feedlog-font-bold:700;--feedlog-radius-sm:0.25rem;--feedlog-radius:0.5rem;--feedlog-radius-lg:0.75rem;--feedlog-radius-full:9999px;--feedlog-shadow-sm:0 2px 8px -2px rgba(0, 0, 0, 0.05);--feedlog-shadow:0 4px 20px -2px rgba(0, 0, 0, 0.05);--feedlog-shadow-md:0 8px 30px -4px rgba(0, 0, 0, 0.06)}.dark{--feedlog-background:#09090b;--feedlog-foreground:#fafafa;--feedlog-card:#09090b;--feedlog-card-foreground:#fafafa;--feedlog-popover:#09090b;--feedlog-popover-foreground:#fafafa;--feedlog-primary:#fafafa;--feedlog-primary-foreground:#18181b;--feedlog-secondary:#27272a;--feedlog-secondary-foreground:#fafafa;--feedlog-muted:#27272a;--feedlog-muted-foreground:#a1a1aa;--feedlog-accent:#27272a;--feedlog-accent-foreground:#fafafa;--feedlog-destructive:#7f1d1d;--feedlog-destructive-foreground:#fafafa;--feedlog-success:#14532d;--feedlog-success-foreground:#fafafa;--feedlog-warning:#78350f;--feedlog-warning-foreground:#fafafa;--feedlog-border:#27272a;--feedlog-input:#27272a;--feedlog-ring:#d4d4d8;--feedlog-badge-enhancement-bg:rgba(67, 56, 202, 0.2);--feedlog-badge-enhancement-text:#c7d2fe;--feedlog-badge-secondary-bg:rgba(71, 85, 105, 0.2);--feedlog-badge-secondary-text:#cbd5e1;--feedlog-badge-destructive-bg:rgba(185, 28, 28, 0.2);--feedlog-badge-destructive-text:#fecaca}";
|
|
223
223
|
|
|
224
224
|
/*
|
|
225
225
|
Stencil Hydrate Platform v4.40.1 | MIT Licensed | https://stenciljs.com
|
|
@@ -4971,7 +4971,7 @@ var setScopedSSR = (opts) => {
|
|
|
4971
4971
|
var needsScopedSSR = () => scopedSSR;
|
|
4972
4972
|
var scopedSSR = false;
|
|
4973
4973
|
|
|
4974
|
-
const feedlogBadgeCss = () => `:host{display:inline-block;--feedlog-badge-font-size:
|
|
4974
|
+
const feedlogBadgeCss = () => `:host{display:inline-block;--feedlog-badge-font-size:var(--feedlog-text-xs);--feedlog-badge-font-weight:var(--feedlog-font-medium);--feedlog-badge-padding-x:var(--feedlog-space-3);--feedlog-badge-padding-y:0.25rem;--feedlog-badge-border-radius:9999px;--feedlog-blue-bg:var(--feedlog-badge-enhancement-bg, #eef2ff);--feedlog-blue-text:var(--feedlog-badge-enhancement-text, #4338ca);--feedlog-blue-border:color-mix(in oklab, var(--feedlog-blue-text) 15%, transparent);--feedlog-red-bg:var(--feedlog-badge-destructive-bg, #fef2f2);--feedlog-red-text:var(--feedlog-badge-destructive-text, #b91c1c);--feedlog-red-border:color-mix(in oklab, var(--feedlog-red-text) 15%, transparent);--feedlog-muted-bg:var(--feedlog-badge-secondary-bg, #f1f5f9);--feedlog-muted-text:var(--feedlog-badge-secondary-text, #475569);--feedlog-muted-border:color-mix(in oklab, var(--feedlog-muted-text) 15%, transparent)}:host(.dark){}.badge{display:inline-flex;align-items:center;justify-content:center;gap:var(--feedlog-space-1);font-size:var(--feedlog-badge-font-size);font-weight:var(--feedlog-badge-font-weight);padding:var(--feedlog-badge-padding-y) var(--feedlog-badge-padding-x);border-radius:var(--feedlog-badge-border-radius);white-space:nowrap;transition:background-color 0.2s ease, color 0.2s ease, opacity 0.2s ease;font-family:var(--feedlog-font-family);border:1px solid transparent}.badge-default{background-color:var(--feedlog-blue-bg);color:var(--feedlog-blue-text);border:1px solid var(--feedlog-blue-border)}.badge-default:hover{opacity:0.9}.badge-enhancement{background-color:var(--feedlog-blue-bg);color:var(--feedlog-blue-text);border:1px solid var(--feedlog-blue-border)}.badge-enhancement:hover{opacity:0.9}.badge-destructive{background-color:var(--feedlog-red-bg);color:var(--feedlog-red-text);border:1px solid var(--feedlog-red-border)}.badge-destructive:hover{opacity:0.9}.badge-secondary{background-color:var(--feedlog-muted-bg);color:var(--feedlog-muted-text);border:1px solid var(--feedlog-muted-border)}.badge-secondary:hover{opacity:0.9}`;
|
|
4975
4975
|
|
|
4976
4976
|
/**
|
|
4977
4977
|
* Feedlog Badge Component
|
|
@@ -4987,7 +4987,7 @@ class FeedlogBadge {
|
|
|
4987
4987
|
this.variant = 'default';
|
|
4988
4988
|
}
|
|
4989
4989
|
render() {
|
|
4990
|
-
return (hAsync("span", { key: '
|
|
4990
|
+
return (hAsync("span", { key: '6ea83e77cecfa5589ba64b86d96053668407be8f', class: `badge badge-${this.variant}`, part: "base" }, hAsync("slot", { key: '292fba2dd5ca3ec6455c9114f883e21c74846695' })));
|
|
4991
4991
|
}
|
|
4992
4992
|
static get style() { return feedlogBadgeCss(); }
|
|
4993
4993
|
static get cmpMeta() { return {
|
|
@@ -5002,7 +5002,7 @@ class FeedlogBadge {
|
|
|
5002
5002
|
}; }
|
|
5003
5003
|
}
|
|
5004
5004
|
|
|
5005
|
-
const feedlogButtonCss = () => `:host{display:inline-block
|
|
5005
|
+
const feedlogButtonCss = () => `:host{display:inline-block}button{display:inline-flex;align-items:center;justify-content:center;gap:var(--feedlog-space-2);white-space:nowrap;font-size:var(--feedlog-text-sm);font-weight:var(--feedlog-font-medium);border-radius:var(--feedlog-radius);border:1px solid transparent;cursor:pointer;transition:all 0.15s ease;outline:none;font-family:var(--feedlog-font-family)}button:disabled{opacity:0.5;cursor:not-allowed;pointer-events:none}button:focus-visible{outline:2px solid var(--feedlog-ring);outline-offset:2px}.button-default{background-color:var(--feedlog-primary);color:var(--feedlog-primary-foreground)}.button-default:hover:not(:disabled){opacity:0.9}.button-outline{background-color:var(--feedlog-background);color:var(--feedlog-foreground);border-color:var(--feedlog-input)}.button-outline:hover:not(:disabled){background-color:var(--feedlog-accent);color:var(--feedlog-accent-foreground)}.button-ghost{background-color:transparent;color:var(--feedlog-foreground)}.button-ghost:hover:not(:disabled){background-color:var(--feedlog-accent);color:var(--feedlog-accent-foreground)}.button-destructive{background-color:var(--feedlog-destructive);color:var(--feedlog-destructive-foreground)}.button-destructive:hover:not(:disabled){opacity:0.9}.button-size-sm{height:2rem;padding:0 0.75rem;font-size:var(--feedlog-text-xs)}.button-size-sm:has(svg:only-child){width:2rem;padding:0}.button-size-default{height:2.5rem;padding:0.5rem 1rem}.button-size-lg{height:2.75rem;padding:0.5rem 1.5rem;font-size:var(--feedlog-text-base)}button svg{pointer-events:none;flex-shrink:0;width:1rem;height:1rem}`;
|
|
5006
5006
|
|
|
5007
5007
|
/**
|
|
5008
5008
|
* Feedlog Button Component
|
|
@@ -5037,7 +5037,7 @@ class FeedlogButton {
|
|
|
5037
5037
|
}
|
|
5038
5038
|
render() {
|
|
5039
5039
|
const sizeClass = this.size === 'default' ? 'button-size-default' : `button-size-${this.size}`;
|
|
5040
|
-
return (hAsync("button", { key: '
|
|
5040
|
+
return (hAsync("button", { key: 'f8f507c061284f630e36111ee671b29b6d3b20dd', type: this.type, class: `button button-${this.variant} ${sizeClass}`, disabled: this.disabled, onClick: this.handleClick, part: "base" }, hAsync("slot", { key: '48403bd46271b21a4eb54c94c9193dadcd32fdcf' })));
|
|
5041
5041
|
}
|
|
5042
5042
|
static get style() { return feedlogButtonCss(); }
|
|
5043
5043
|
static get cmpMeta() { return {
|
|
@@ -5055,7 +5055,7 @@ class FeedlogButton {
|
|
|
5055
5055
|
}; }
|
|
5056
5056
|
}
|
|
5057
5057
|
|
|
5058
|
-
const feedlogCardCss = () => `:host{display:block;font-family:
|
|
5058
|
+
const feedlogCardCss = () => `:host{display:block;font-family:var(--feedlog-font-family)}.feedlog-card{background-color:var(--feedlog-card);color:var(--feedlog-card-foreground);border:1px solid var(--feedlog-border);border-radius:var(--feedlog-radius);box-shadow:var(--feedlog-shadow-sm);transition:box-shadow 0.15s ease;position:relative;display:flex;flex-direction:column}.feedlog-card:hover{box-shadow:var(--feedlog-shadow)}.feedlog-card-header{padding:var(--feedlog-space-6);display:flex;flex-direction:column;gap:var(--feedlog-space-1)}.feedlog-card-content{padding:var(--feedlog-space-6);padding-top:0}.feedlog-card-footer{padding:var(--feedlog-space-6);padding-top:0;display:flex;align-items:center}::slotted([slot="header"]),::slotted([slot="content"]),::slotted([slot="footer"]){display:block}`;
|
|
5059
5059
|
|
|
5060
5060
|
/**
|
|
5061
5061
|
* Feedlog Card Component
|
|
@@ -5067,7 +5067,7 @@ class FeedlogCard {
|
|
|
5067
5067
|
registerInstance(this, hostRef);
|
|
5068
5068
|
}
|
|
5069
5069
|
render() {
|
|
5070
|
-
return (hAsync("div", { key: '
|
|
5070
|
+
return (hAsync("div", { key: 'c95d00e338fcf8d985407cda878f50d173c86c71', class: "feedlog-card", part: "base" }, hAsync("div", { key: '5001f2e08495d54abb59ddcada568c9ff4c6fb87', class: "feedlog-card-header", part: "header" }, hAsync("slot", { key: 'b6c6f18a458249aedfb4a95679d4592cfcac4187', name: "header" })), hAsync("div", { key: '99faa1bd9af52fb23cb304e0a87d35b8e14a6358', class: "feedlog-card-content", part: "content" }, hAsync("slot", { key: '44370b05b0c2335d6c7271f2807189a7a208be71', name: "content" })), hAsync("div", { key: 'e3876d4f589f9ecf917b5a9b5919363c19d08c93', class: "feedlog-card-footer", part: "footer" }, hAsync("slot", { key: 'be69074d341c8e88f9227d2f035f22838469b035', name: "footer" }))));
|
|
5071
5071
|
}
|
|
5072
5072
|
static get style() { return feedlogCardCss(); }
|
|
5073
5073
|
static get cmpMeta() { return {
|
|
@@ -6527,6 +6527,11 @@ function createDOMPurify() {
|
|
|
6527
6527
|
}
|
|
6528
6528
|
var purify = createDOMPurify();
|
|
6529
6529
|
|
|
6530
|
+
var purify_es = /*#__PURE__*/Object.freeze({
|
|
6531
|
+
__proto__: null,
|
|
6532
|
+
default: purify
|
|
6533
|
+
});
|
|
6534
|
+
|
|
6530
6535
|
/**
|
|
6531
6536
|
* Parse markdown to sanitized HTML for safe rendering.
|
|
6532
6537
|
* Uses marked for parsing and DOMPurify for XSS protection.
|
|
@@ -6535,10 +6540,15 @@ function parseMarkdown(markdown) {
|
|
|
6535
6540
|
if (markdown == null || markdown === '') {
|
|
6536
6541
|
return '';
|
|
6537
6542
|
}
|
|
6538
|
-
const
|
|
6543
|
+
const parsed = g.parse(markdown, {
|
|
6539
6544
|
gfm: true,
|
|
6540
6545
|
breaks: true,
|
|
6546
|
+
async: false,
|
|
6541
6547
|
});
|
|
6548
|
+
if (typeof parsed !== 'string') {
|
|
6549
|
+
throw new Error('marked.parse returned a Promise; async markdown is not supported');
|
|
6550
|
+
}
|
|
6551
|
+
const html = parsed;
|
|
6542
6552
|
return purify.sanitize(html, {
|
|
6543
6553
|
ALLOWED_TAGS: [
|
|
6544
6554
|
'p',
|
|
@@ -6574,7 +6584,7 @@ function parseMarkdown(markdown) {
|
|
|
6574
6584
|
});
|
|
6575
6585
|
}
|
|
6576
6586
|
|
|
6577
|
-
const feedlogIssueCss = () => `:host{display:block;font-family:ui-sans-serif,\\n system-ui,\\n -apple-system,\\n BlinkMacSystemFont,\\n 'Segoe UI',\\n Roboto,\\n 'Helvetica Neue',\\n Arial,\\n sans-serif;--feedlog-background:#ffffff;--feedlog-foreground:oklch(0.145 0 0);--feedlog-card:#ffffff;--feedlog-card-foreground:oklch(0.145 0 0);--feedlog-muted:#f1f5f9;--feedlog-muted-foreground:#64748b;--feedlog-border:rgba(0, 0, 0, 0.08);--feedlog-accent-color:#2563eb;--feedlog-destructive:#d4183d;--feedlog-blue-400:oklch(0.707 0.165 254.624);--feedlog-blue-600:oklch(0.546 0.245 262.881);--feedlog-red-600:#db2777;--feedlog-radius:0.625rem;--feedlog-gap:0.5rem;--feedlog-card-padding:1.25rem;--feedlog-title-font-size:1.125rem;--feedlog-title-font-weight:600;--feedlog-body-font-size:0.875rem;--feedlog-body-line-height:1.6;--feedlog-timestamp-font-size:0.6875rem;--feedlog-timestamp-color:var(--feedlog-muted-foreground);--feedlog-card-radius:0.75rem;--feedlog-icon-color:var(--feedlog-muted-foreground);--feedlog-icon-color-muted:var(--feedlog-muted-foreground);--feedlog-pin-color:var(--feedlog-accent-color);--feedlog-upvote-icon-color:var(--feedlog-blue-600);--feedlog-upvote-icon-filled-color:var(--feedlog-red-600);--feedlog-shadow:0 1px 2px rgba(0, 0, 0, 0.04), 0 4px 12px rgba(0, 0, 0, 0.06), inset 0 1px 0 rgba(255, 255, 255, 0.5);--feedlog-shadow-hover-enhancement:0 8px 16px rgba(37, 99, 235, 0.08), 0 12px 24px rgba(37, 99, 235, 0.05), inset 0 1px 0 rgba(255, 255, 255, 0.6);--feedlog-shadow-hover-bug:0 8px 16px rgba(212, 24, 61, 0.08), 0 12px 24px rgba(212, 24, 61, 0.05), inset 0 1px 0 rgba(255, 255, 255, 0.6)}:host(.dark){--feedlog-background:oklch(0.18 0.01 260);--feedlog-foreground:oklch(0.985 0 0);--feedlog-card:oklch(0.24 0.01 260);--feedlog-card-foreground:oklch(0.985 0 0);--feedlog-muted:oklch(0.32 0.01 260);--feedlog-muted-foreground:oklch(0.72 0.02 260);--feedlog-border:oklch(0.34 0.01 260);--feedlog-accent-color:#3b82f6;--feedlog-destructive:oklch(0.396 0.141 25.723);--feedlog-blue-300:oklch(0.78 0.12 255);--feedlog-blue-400:oklch(0.707 0.165 254.624);--feedlog-blue-600:oklch(0.546 0.245 262.881);--feedlog-upvote-icon-color:var(--feedlog-blue-400);--feedlog-upvote-icon-filled-color:var(--feedlog-red-600);--feedlog-shadow:0 1px 2px rgba(0, 0, 0, 0.2), 0 4px 12px rgba(0, 0, 0, 0.25), inset 0 1px 0 rgba(255, 255, 255, 0.05);--feedlog-shadow-hover-enhancement:0 8px 16px rgba(59, 130, 246, 0.15), 0 12px 24px rgba(59, 130, 246, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.08);--feedlog-shadow-hover-bug:0 8px 16px rgba(220, 38, 38, 0.15), 0 12px 24px rgba(220, 38, 38, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.08)}.issue-card{background:linear-gradient(180deg, var(--feedlog-card) 0%, color-mix(in oklab, var(--feedlog-card) 98%, var(--feedlog-muted) 2%) 100%);border:1px solid var(--feedlog-border);border-radius:var(--feedlog-card-radius, var(--feedlog-radius));box-shadow:var(--feedlog-shadow);transition:box-shadow 0.2s ease,\\n transform 0.2s ease;position:relative;overflow:hidden}.issue-card.issue-type-enhancement:hover{box-shadow:var(--feedlog-shadow-hover-enhancement)}.issue-card.issue-type-bug:hover{box-shadow:var(--feedlog-shadow-hover-bug)}.issue-media{display:none;aspect-ratio:16 / 9;overflow:hidden;border-radius:var(--feedlog-card-radius, var(--feedlog-radius)) var(--feedlog-card-radius, var(--feedlog-radius)) 0 0;background-color:var(--feedlog-muted);border-bottom:1px solid var(--feedlog-border)}.issue-media.has-media{display:block}.issue-media ::slotted(img),.issue-media ::slotted(video){width:100%;height:100%;object-fit:cover;display:block}.issue-content{padding:var(--feedlog-card-padding);display:flex;flex-direction:column;gap:0.875rem}.issue-header-top{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:0.875rem}.issue-badges{display:flex;align-items:center;gap:0.375rem;flex-wrap:wrap;margin-left:-0.25rem}.issue-meta-right{display:flex;align-items:center;gap:0.5rem}.pinned-indicator{display:flex;align-items:center;color:var(--feedlog-pin-color, var(--feedlog-accent-color));opacity:0.9}.pin-icon{width:0.875rem;height:0.875rem;color:inherit}.issue-timestamp{font-size:var(--feedlog-timestamp-font-size);color:var(--feedlog-timestamp-color);white-space:nowrap;flex-shrink:0;cursor:help}.issue-main{display:flex;flex-direction:column;gap:0}.issue-footer{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:0.75rem;margin-top:0.75rem;padding-top:1rem;border-top:1px solid var(--feedlog-border);flex-wrap:wrap}.issue-footer-meta{display:flex;align-items:center;gap:0.5rem;font-size:0.75rem;color:var(--feedlog-muted-foreground);flex-wrap:wrap}.issue-title{color:var(--feedlog-card-foreground);font-size:var(--feedlog-title-font-size);font-weight:var(--feedlog-title-font-weight);margin:0 0 0.5rem 0;line-height:1.3;letter-spacing:-0.015em;word-break:break-word}.issue-body{color:var(--feedlog-muted-foreground);font-size:var(--feedlog-body-font-size);line-height:var(--feedlog-body-line-height);margin:0 0 0.75rem 0;word-break:break-word}.issue-body :first-child{margin-top:0}.issue-body :last-child{margin-bottom:0}.issue-body p{margin:0 0 0.75em 0}.issue-body p:last-child{margin-bottom:0}.issue-body a{color:var(--feedlog-accent-color);text-decoration:none}.issue-body a:hover{text-decoration:underline}.issue-body code{background-color:var(--feedlog-muted);padding:0.125em 0.375em;border-radius:0.25rem;font-size:0.9em}.issue-body pre{margin:0.5em 0;padding:0.75rem;background-color:var(--feedlog-muted);border-radius:0.25rem;overflow-x:auto;font-size:0.85em}.issue-body pre code{background:none;padding:0}.issue-body strong{font-weight:600}.issue-body ul,.issue-body ol{margin:0.5em 0;padding-left:1.25em}.issue-body li{margin:0.25em 0}.issue-body blockquote{margin:0.5em 0;padding-left:1em;border-left:3px solid var(--feedlog-muted);color:var(--feedlog-muted-foreground)}.repo-name{font-weight:500}.github-link{display:inline-flex;align-items:center;gap:0.25rem;color:var(--feedlog-muted-foreground);text-decoration:none;font-weight:500;font-size:0.75rem;padding:0.25rem 0.5rem;border-radius:0.375rem;transition:background-color 0.2s ease,\\n color 0.2s ease}.github-link:hover{color:var(--feedlog-card-foreground);background-color:var(--feedlog-muted)}.github-link-icon{flex-shrink:0;color:inherit}.github-link-text{white-space:nowrap}.github-number{color:var(--feedlog-blue-600);font-weight:600}:host(.dark) .github-number{color:var(--feedlog-blue-400)}.upvote-button{display:inline-flex;flex-direction:row;align-items:center;border-radius:9999px;background:linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);border:1px solid #e2e8f0;cursor:pointer;transition:all 0.3s cubic-bezier(0.4, 0, 0.2, 1);flex-shrink:0;box-shadow:0 1px 2px 0 rgba(0, 0, 0, 0.05);overflow:hidden;padding:0.375rem 0.875rem;gap:0.5rem;font-family:inherit;line-height:1}.upvote-button:hover{background:linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%);border-color:#cbd5e1;transform:translateY(-1px);box-shadow:0 4px 6px -1px rgba(0, 0, 0, 0.08),\\n 0 2px 4px -2px rgba(0, 0, 0, 0.04)}.upvote-button:active{transform:translateY(0);box-shadow:0 1px 2px 0 rgba(0, 0, 0, 0.05)}.upvote-button.upvoted{background:linear-gradient(180deg, #eff6ff 0%, #e0e7ff 100%);border-color:#bfdbfe}.upvote-button.upvoted:hover{background:linear-gradient(180deg, #dbeafe 0%, #c7d2fe 100%);border-color:#93c5fd}.upvote-action{display:flex;flex-direction:row;align-items:center;gap:0.375rem;color:#475569;font-size:0.875rem;font-weight:600;transition:color 0.2s ease}.upvote-button:hover .upvote-action{color:#0f172a}.upvote-button.upvoted .upvote-action{color:#2563eb}.upvote-button.upvoted:hover .upvote-action{color:#1d4ed8}.upvote-icon{width:1.125rem;height:1.125rem;min-width:1.125rem;min-height:1.125rem;color:inherit;flex-shrink:0;display:block;vertical-align:middle;transition:transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275)}.upvote-button:hover .upvote-icon{transform:translateY(-2px)}.upvote-button:active .upvote-icon{transform:translateY(0) scale(0.9)}.upvote-icon.filled{color:inherit}.upvote-icon.outline{color:inherit}.reel-container{position:relative;display:inline-flex;align-items:center;height:1.25rem;overflow:hidden;border-left:1px solid #e2e8f0;padding-left:0.5rem;transition:border-color 0.2s ease}.upvote-button:hover .reel-container{border-color:#cbd5e1}.upvote-button.upvoted .reel-container{border-color:#bfdbfe}.upvote-button.upvoted:hover .reel-container{border-color:#93c5fd}.upvote-count{font-size:0.875rem;font-weight:600;color:#475569;transition:color 0.2s ease;line-height:1.25rem}.upvote-button:hover .upvote-count{color:#0f172a}.upvote-button.upvoted .upvote-count{color:#2563eb}.upvote-button.upvoted:hover .upvote-count{color:#1d4ed8}.reel-number{display:inline-block;animation:reelIn 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards}@keyframes reelIn{0%{transform:translateY(100%);opacity:0}100%{transform:translateY(0);opacity:1}}:host(.dark) .upvote-button{background:linear-gradient(180deg, var(--feedlog-card) 0%, color-mix(in oklab, var(--feedlog-card) 95%, var(--feedlog-muted) 5%) 100%);border-color:var(--feedlog-border)}:host(.dark) .upvote-button:hover{background:var(--feedlog-muted);border-color:var(--feedlog-muted-foreground)}:host(.dark) .upvote-button.upvoted{background:linear-gradient(180deg, rgba(37, 99, 235, 0.15) 0%, rgba(37, 99, 235, 0.2) 100%);border-color:rgba(37, 99, 235, 0.3)}:host(.dark) .upvote-button.upvoted:hover{background:linear-gradient(180deg, rgba(37, 99, 235, 0.25) 0%, rgba(37, 99, 235, 0.3) 100%);border-color:rgba(37, 99, 235, 0.4)}:host(.dark) .upvote-action,:host(.dark) .upvote-count{color:var(--feedlog-muted-foreground)}:host(.dark) .upvote-button:hover .upvote-action,:host(.dark) .upvote-button:hover .upvote-count{color:var(--feedlog-card-foreground)}:host(.dark) .upvote-button.upvoted .upvote-action,:host(.dark) .upvote-button.upvoted .upvote-count{color:var(--feedlog-blue-400)}:host(.dark) .upvote-button.upvoted:hover .upvote-action,:host(.dark) .upvote-button.upvoted:hover .upvote-count{color:var(--feedlog-blue-300)}:host(.dark) .reel-container{border-color:var(--feedlog-border)}:host(.dark) .upvote-button:hover .reel-container{border-color:var(--feedlog-muted-foreground)}:host(.dark) .upvote-button.upvoted .reel-container{border-color:rgba(37, 99, 235, 0.3)}:host(.dark) .upvote-button.upvoted:hover .reel-container{border-color:rgba(37, 99, 235, 0.4)}`;
|
|
6587
|
+
const feedlogIssueCss = () => `:host{display:block;font-family:var(--feedlog-font-family);--feedlog-card-padding:var(--feedlog-space-6);--feedlog-title-font-size:var(--feedlog-text-xl);--feedlog-title-font-weight:var(--feedlog-font-semibold);--feedlog-body-font-size:var(--feedlog-text-sm);--feedlog-body-line-height:1.6;--feedlog-timestamp-font-size:var(--feedlog-text-xs);--feedlog-timestamp-color:var(--feedlog-muted-foreground);--feedlog-card-radius:16px;--feedlog-icon-color:var(--feedlog-muted-foreground);--feedlog-icon-color-muted:var(--feedlog-muted-foreground);--feedlog-pin-color:var(--feedlog-primary);--feedlog-upvote-icon-color:var(--feedlog-primary);--feedlog-upvote-icon-filled-color:var(--feedlog-primary)}:host(.dark){}.issue-card{background-color:var(--feedlog-card);border:1px solid var(--feedlog-border);border-radius:var(--feedlog-card-radius, var(--feedlog-radius));box-shadow:var(--feedlog-shadow-sm);transition:box-shadow 0.2s ease,\\n transform 0.2s ease;position:relative;overflow:hidden}.issue-card:hover{box-shadow:var(--feedlog-shadow);transform:translateY(-2px)}.issue-media{display:none;aspect-ratio:16 / 9;overflow:hidden;border-radius:var(--feedlog-card-radius, var(--feedlog-radius)) var(--feedlog-card-radius, var(--feedlog-radius)) 0 0;background-color:var(--feedlog-muted);border-bottom:1px solid var(--feedlog-border)}.issue-media.has-media{display:block}.issue-media ::slotted(img),.issue-media ::slotted(video){width:100%;height:100%;object-fit:cover;display:block}.issue-content{padding:var(--feedlog-card-padding);display:flex;flex-direction:column;gap:var(--feedlog-space-3)}.issue-header-top{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--feedlog-space-4);margin-bottom:var(--feedlog-space-3)}.issue-badges{display:flex;align-items:center;gap:var(--feedlog-space-1);flex-wrap:wrap;margin-left:-0.25rem}.issue-meta-right{display:flex;align-items:center;gap:var(--feedlog-space-2)}.pinned-indicator{display:flex;align-items:center;color:var(--feedlog-pin-color, var(--feedlog-primary));opacity:0.9}.pin-icon{width:0.875rem;height:0.875rem;color:inherit}.issue-timestamp{font-size:var(--feedlog-timestamp-font-size);color:var(--feedlog-timestamp-color);white-space:nowrap;flex-shrink:0;cursor:help}.issue-main{display:flex;flex-direction:column;gap:0}.issue-footer{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:var(--feedlog-space-3);margin-top:var(--feedlog-space-3);padding-top:var(--feedlog-space-4);border-top:1px solid var(--feedlog-border);flex-wrap:wrap}.issue-footer-meta{display:flex;align-items:center;gap:var(--feedlog-space-2);font-size:var(--feedlog-text-xs);color:var(--feedlog-muted-foreground);flex-wrap:wrap}.issue-footer .upvote-button{margin-left:auto}.issue-title{color:var(--feedlog-card-foreground);font-size:var(--feedlog-title-font-size);font-weight:var(--feedlog-title-font-weight);margin:0 0 var(--feedlog-space-3) 0;line-height:1.3;letter-spacing:-0.02em;word-break:break-word}.issue-body{color:var(--feedlog-muted-foreground);font-size:var(--feedlog-body-font-size);line-height:var(--feedlog-body-line-height);margin:0 0 var(--feedlog-space-3) 0;word-break:break-word}.issue-body h1,.issue-body h2,.issue-body h3,.issue-body h4,.issue-body h5,.issue-body h6{color:var(--feedlog-card-foreground);margin-top:1.5em;margin-bottom:0.5em;font-weight:var(--feedlog-font-semibold);letter-spacing:-0.01em}.issue-body h1{font-size:1.5em}.issue-body h2{font-size:1.25em}.issue-body h3{font-size:1.125em}.issue-body :first-child{margin-top:0}.issue-body :last-child{margin-bottom:0}.issue-body p{margin:0 0 0.75em 0}.issue-body p:last-child{margin-bottom:0}.issue-body a{color:var(--feedlog-primary);text-decoration:none}.issue-body a:hover{text-decoration:underline}.issue-body code{background-color:var(--feedlog-muted);padding:0.125em 0.375em;border-radius:var(--feedlog-radius-sm);font-size:0.9em}.issue-body pre{margin:0.5em 0;padding:var(--feedlog-space-3);background-color:var(--feedlog-muted);border-radius:var(--feedlog-radius-sm);overflow-x:auto;font-size:0.85em}.issue-body pre code{background:none;padding:0}.issue-body strong{font-weight:var(--feedlog-font-semibold)}.issue-body ul,.issue-body ol{margin:0.5em 0;padding-left:1.25em}.issue-body li{margin:0.25em 0}.issue-body blockquote{margin:0.5em 0;padding-left:1em;border-left:3px solid var(--feedlog-muted);color:var(--feedlog-muted-foreground)}.repo-name{font-weight:var(--feedlog-font-medium)}.github-link{display:inline-flex;align-items:center;gap:var(--feedlog-space-1);color:var(--feedlog-muted-foreground);text-decoration:none;font-weight:var(--feedlog-font-medium);font-size:var(--feedlog-text-xs);padding:var(--feedlog-space-1) var(--feedlog-space-2);border-radius:var(--feedlog-radius-sm);transition:background-color 0.2s ease,\\n color 0.2s ease}.github-link:hover{color:var(--feedlog-card-foreground);background-color:var(--feedlog-muted)}.github-link-icon{flex-shrink:0;color:inherit}.github-link-text{white-space:nowrap}.github-number{color:var(--feedlog-primary);font-weight:var(--feedlog-font-semibold)}:host(.dark) .github-number{color:var(--feedlog-primary)}.upvote-button{display:inline-flex;flex-direction:row;align-items:center;border-radius:9999px;background-color:var(--feedlog-muted);border:1px solid transparent;cursor:pointer;transition:all 0.2s ease;flex-shrink:0;overflow:hidden;padding:var(--feedlog-space-1) var(--feedlog-space-3);gap:var(--feedlog-space-2);font-family:inherit;line-height:1}.upvote-button:hover{background-color:color-mix(in oklab, var(--feedlog-muted) 90%, var(--feedlog-foreground))}.upvote-button:active{transform:translateY(1px)}.upvote-button.upvoted{background-color:var(--feedlog-badge-enhancement-bg, #eef2ff);border-color:color-mix(in oklab, var(--feedlog-badge-enhancement-text, #4338ca) 15%, transparent)}.upvote-button.upvoted:hover{opacity:0.9}.upvote-action{display:flex;flex-direction:row;align-items:center;gap:var(--feedlog-space-1);color:var(--feedlog-muted-foreground);font-size:var(--feedlog-text-sm);font-weight:var(--feedlog-font-medium);transition:color 0.2s ease}.upvote-button:hover .upvote-action{color:var(--feedlog-foreground)}.upvote-button.upvoted .upvote-action{color:var(--feedlog-badge-enhancement-text, #4338ca)}.upvote-button.upvoted:hover .upvote-action{color:var(--feedlog-badge-enhancement-text, #4338ca)}.upvote-icon{width:1.125rem;height:1.125rem;min-width:1.125rem;min-height:1.125rem;color:inherit;flex-shrink:0;display:block;vertical-align:middle;transition:transform 0.2s ease}.upvote-button:hover .upvote-icon{transform:translateY(-1px)}.upvote-button:active .upvote-icon{transform:translateY(0) scale(0.95)}.upvote-icon.filled{color:inherit}.upvote-icon.outline{color:inherit}.reel-container{position:relative;display:inline-flex;align-items:center;height:1.25rem;overflow:hidden;border-left:1px solid var(--feedlog-border);padding-left:var(--feedlog-space-2);transition:border-color 0.2s ease}.upvote-button.upvoted .reel-container{border-color:color-mix(in oklab, var(--feedlog-badge-enhancement-text, #4338ca) 20%, transparent)}.upvote-count{font-size:var(--feedlog-text-sm);font-weight:var(--feedlog-font-medium);color:var(--feedlog-muted-foreground);transition:color 0.2s ease;line-height:1.25rem}.upvote-button:hover .upvote-count{color:var(--feedlog-foreground)}.upvote-button.upvoted .upvote-count{color:var(--feedlog-badge-enhancement-text, #4338ca)}.upvote-button.upvoted:hover .upvote-count{color:var(--feedlog-badge-enhancement-text, #4338ca)}.reel-number{display:inline-block;animation:reelIn 0.3s ease forwards}@keyframes reelIn{0%{transform:translateY(100%);opacity:0}100%{transform:translateY(0);opacity:1}}:host(.dark) .upvote-button{background-color:var(--feedlog-muted);border-color:transparent}:host(.dark) .upvote-button:hover{background-color:color-mix(in oklab, var(--feedlog-muted) 80%, var(--feedlog-foreground))}:host(.dark) .upvote-button.upvoted{background-color:var(--feedlog-badge-enhancement-bg);border-color:color-mix(in oklab, var(--feedlog-badge-enhancement-text) 15%, transparent)}`;
|
|
6578
6588
|
|
|
6579
6589
|
/**
|
|
6580
6590
|
* Feedlog Issue Component
|
|
@@ -6708,7 +6718,7 @@ class FeedlogIssueComponent {
|
|
|
6708
6718
|
const statusBadgeLabel = this.getStatusBadgeLabel();
|
|
6709
6719
|
const githubUrl = (_b = issue.githubIssueLink) !== null && _b !== void 0 ? _b : issueUrl;
|
|
6710
6720
|
const showGithubButton = githubUrl != null && githubUrl !== '';
|
|
6711
|
-
return (hAsync(Host, { class: this.theme === 'dark' ? 'dark' : '', "data-upvoted": issue.hasUpvoted ? 'true' : 'false' }, hAsync("div", { class: `issue-card issue-type-${issue.type}
|
|
6721
|
+
return (hAsync(Host, { class: this.theme === 'dark' ? 'dark' : '', "data-upvoted": issue.hasUpvoted ? 'true' : 'false' }, hAsync("div", { class: `issue-card issue-type-${issue.type}`, part: "base" }, hAsync("div", { class: "issue-media", part: "media" }, hAsync("slot", { name: "media" })), hAsync("div", { class: "issue-content", part: "content" }, hAsync("div", { class: "issue-main", part: "main" }, hAsync("div", { class: "issue-header-top", part: "header-top" }, hAsync("div", { class: "issue-badges", part: "badges" }, issue.type === 'bug' ? (hAsync("feedlog-badge", { variant: "destructive", part: "badge badge-bug" }, "Bug")) : (hAsync("feedlog-badge", { variant: "enhancement", part: "badge badge-enhancement" }, "Enhancement")), statusBadgeLabel && (hAsync("feedlog-badge", { variant: "secondary", part: "badge badge-status" }, statusBadgeLabel))), hAsync("div", { class: "issue-meta-right", part: "meta-right" }, issue.pinnedAt && (hAsync("div", { class: "pinned-indicator", title: "Pinned issue", part: "pinned-indicator" }, this.renderPinIcon())), hAsync("span", { class: "issue-timestamp", title: timestampTitle, part: "timestamp" }, timestampLabel, " ", this.formatDate(timestampDate)))), hAsync("h3", { class: "issue-title", part: "title" }, displayTitle), issue.body != null && issue.body !== '' && (hAsync("div", { class: "issue-body", innerHTML: parseMarkdown(issue.body), part: "body" })), (repoName != null || showGithubButton || issue.type !== 'bug') && (hAsync("div", { class: "issue-footer", part: "footer" }, (repoName != null || showGithubButton) && (hAsync("div", { class: "issue-footer-meta", part: "footer-meta" }, repoName != null && (hAsync("span", { class: "repo-name", title: repoTooltip, part: "repo-name" }, repoName)), showGithubButton && (hAsync("a", { part: "github-link", class: "github-link", href: githubUrl, target: "_blank", rel: "noopener noreferrer", title: "View on GitHub" }, this.renderExternalLinkIcon(), hAsync("span", { class: "github-link-text", part: "github-link-text" }, "View on GitHub"))))), issue.type !== 'bug' && (hAsync("button", { part: `upvote-button ${issue.hasUpvoted ? 'upvoted' : ''}`, class: `upvote-button ${issue.hasUpvoted ? 'upvoted' : ''}`, onClick: (e) => this.handleUpvote(e), title: issue.hasUpvoted ? 'Remove upvote' : 'Upvote this issue' }, hAsync("div", { class: "upvote-action", part: "upvote-action" }, hAsync("slot", { name: "upvote-icon" }, this.renderUpvoteIcon(issue.hasUpvoted)), hAsync("span", { class: "upvote-label", part: "upvote-label" }, "Upvote")), hAsync("div", { class: "reel-container", part: "upvote-reel-container" }, hAsync("span", { class: "upvote-count reel-number", key: issue.upvoteCount, part: "upvote-count" }, issue.upvoteCount)))))))))));
|
|
6712
6722
|
}
|
|
6713
6723
|
get host() { return getElement(this); }
|
|
6714
6724
|
static get style() { return feedlogIssueCss(); }
|
|
@@ -6726,7 +6736,7 @@ class FeedlogIssueComponent {
|
|
|
6726
6736
|
}; }
|
|
6727
6737
|
}
|
|
6728
6738
|
|
|
6729
|
-
const feedlogIssuesCss = () => `:host{display:block;font-family:
|
|
6739
|
+
const feedlogIssuesCss = () => `:host{display:block;font-family:var(--feedlog-font-family);--feedlog-theme-bg:var(--feedlog-background);--feedlog-gap:var(--feedlog-space-2);--feedlog-padding:var(--feedlog-space-8);--feedlog-min-height:100%}:host(.dark){--feedlog-theme-bg:var(--feedlog-background)}.issues-container{min-height:var(--feedlog-min-height);background-color:var(--feedlog-background, var(--feedlog-theme-bg, #ffffff));padding:var(--feedlog-padding);margin:0 auto;border-radius:var(--feedlog-radius-lg)}.issues-header{margin-bottom:var(--feedlog-space-6);display:flex;align-items:flex-start;justify-content:space-between}.header-content{flex:1}.issues-title{color:var(--feedlog-foreground);margin:0 0 var(--feedlog-space-1) 0;font-size:var(--feedlog-text-xl);font-weight:var(--feedlog-font-semibold);line-height:1.5}.issues-subtitle{color:var(--feedlog-muted-foreground);font-size:var(--feedlog-text-sm);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-sm);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:var(--feedlog-space-5);padding-left:calc(var(--feedlog-space-5) + 3px);display:flex;flex-direction:column;gap:var(--feedlog-space-3)}.skeleton-header{display:flex;align-items:center;justify-content:space-between;gap:var(--feedlog-space-3)}.skeleton-badge{width:4.5rem;height:1.25rem;border-radius:var(--feedlog-radius-sm);background-color:var(--feedlog-muted);animation:skeleton-pulse 1.5s ease-in-out infinite}.skeleton-timestamp{width:3rem;height:0.75rem;border-radius:var(--feedlog-radius-sm);background-color:var(--feedlog-muted);animation:skeleton-pulse 1.5s ease-in-out infinite 0.2s}.skeleton-main{display:flex;flex-direction:column;gap:var(--feedlog-space-2)}.skeleton-title{height:0.9375rem;border-radius:var(--feedlog-radius-sm);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:var(--feedlog-space-1)}.skeleton-line{height:0.8125rem;border-radius:var(--feedlog-radius-sm);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:var(--feedlog-radius-sm);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:var(--feedlog-radius);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:var(--feedlog-space-10) var(--feedlog-space-8);min-height:12rem}.error-state-content{display:flex;flex-direction:column;align-items:center;text-align:center;max-width:20rem;padding:var(--feedlog-space-8)}.error-icon{color:var(--feedlog-muted-foreground);opacity:0.8;margin-bottom:var(--feedlog-space-4)}.error-state-title{margin:0 0 var(--feedlog-space-2) 0;font-size:var(--feedlog-text-lg);font-weight:var(--feedlog-font-semibold);color:var(--feedlog-foreground);line-height:1.4}.error-state-message{margin:0 0 var(--feedlog-space-5) 0;font-size:var(--feedlog-text-sm);color:var(--feedlog-muted-foreground);line-height:1.5}.load-more-container{display:flex;justify-content:center;padding:var(--feedlog-space-8) 0;gap:var(--feedlog-space-4)}`;
|
|
6730
6740
|
|
|
6731
6741
|
/**
|
|
6732
6742
|
* Feedlog Issues Component
|
|
@@ -6767,10 +6777,6 @@ class FeedlogIssues {
|
|
|
6767
6777
|
* Whether more issues are currently loading
|
|
6768
6778
|
*/
|
|
6769
6779
|
this.isLoadingMore = false;
|
|
6770
|
-
/**
|
|
6771
|
-
* Internal state for theme
|
|
6772
|
-
*/
|
|
6773
|
-
this.currentTheme = 'light';
|
|
6774
6780
|
this.handleUpvote = (event) => {
|
|
6775
6781
|
event.stopPropagation();
|
|
6776
6782
|
this.feedlogUpvote.emit(event.detail);
|
|
@@ -6779,25 +6785,22 @@ class FeedlogIssues {
|
|
|
6779
6785
|
this.feedlogLoadMore.emit();
|
|
6780
6786
|
};
|
|
6781
6787
|
}
|
|
6782
|
-
componentWillLoad() {
|
|
6783
|
-
this.currentTheme = this.theme;
|
|
6784
|
-
}
|
|
6785
6788
|
renderErrorIcon() {
|
|
6786
6789
|
return (hAsync("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" }, hAsync("circle", { cx: "12", cy: "12", r: "10" }), hAsync("line", { x1: "12", y1: "8", x2: "12", y2: "12" }), hAsync("line", { x1: "12", y1: "16", x2: "12.01", y2: "16" })));
|
|
6787
6790
|
}
|
|
6788
6791
|
renderIssuesList() {
|
|
6789
6792
|
var _a, _b;
|
|
6790
|
-
return (hAsync("feedlog-issues-list", { issues: this.issues, limit: this.limit, theme: this.
|
|
6793
|
+
return (hAsync("feedlog-issues-list", { issues: this.issues, limit: this.limit, theme: this.theme, 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), part: "issues-list" }, hAsync("slot", { name: "empty-state", slot: "empty-state" })));
|
|
6791
6794
|
}
|
|
6792
6795
|
render() {
|
|
6793
6796
|
const containerStyle = {
|
|
6794
6797
|
maxWidth: this.maxWidth,
|
|
6795
6798
|
};
|
|
6796
|
-
return (hAsync(Host, { key: '
|
|
6799
|
+
return (hAsync(Host, { key: '79835dd61383b41124f48d204977951236a7f8ce', class: this.theme === 'dark' ? 'dark' : '' }, hAsync("div", { key: '62228927cba9bd4cf58d8b4f3ec2751ba423dd67', class: "issues-container", style: containerStyle, part: "base" }, hAsync("slot", { key: 'c57d46adc472c2b03857db3e07cc5b549bd110f1', name: "header" }, (this.heading || this.subtitle) && (hAsync("header", { key: '080059a002a373d76bee863b368a12ffdba59384', class: "issues-header", part: "header" }, hAsync("div", { key: 'db85f995fb6f1f9fe961ea6726cf82da17fc9c2d', class: "header-content", part: "header-content" }, this.heading && (hAsync("h1", { key: 'e7b510ecd2039072b384d6dcb531ebf0b091010b', class: "issues-title", part: "title" }, this.heading)), this.subtitle && (hAsync("p", { key: '323f9a635b6a1c2ca9d955d12dc1925c0be59cf8', class: "issues-subtitle", part: "subtitle" }, this.subtitle)))))), this.loading && (hAsync("slot", { key: 'ba63923aa7cac4b3ab050b423d5f65dcbbe81677', name: "loading" }, hAsync("div", { key: '4bf1fc0d367acb0285eb124875c42e541939d388', class: "loading-state", role: "status", "aria-label": "Loading issues", part: "loading-state" }, hAsync("div", { key: 'fa369824bd1cb8e3b5c393613952611658e6919a', class: "loading-skeletons", part: "loading-skeletons" }, [1, 2, 3].map(i => (hAsync("div", { key: i, class: "skeleton-card", part: "skeleton-card" }, hAsync("div", { class: "skeleton-content", part: "skeleton-content" }, hAsync("div", { class: "skeleton-header", part: "skeleton-header" }, hAsync("div", { class: "skeleton-badge", part: "skeleton-badge" }), hAsync("div", { class: "skeleton-timestamp", part: "skeleton-timestamp" })), hAsync("div", { class: "skeleton-main", part: "skeleton-main" }, hAsync("div", { class: "skeleton-title", part: "skeleton-title" }), hAsync("div", { class: "skeleton-body", part: "skeleton-body" }, hAsync("div", { class: "skeleton-line", part: "skeleton-line" }), hAsync("div", { class: "skeleton-line short", part: "skeleton-line short" })), hAsync("div", { class: "skeleton-repo", part: "skeleton-repo" })), hAsync("div", { class: "skeleton-footer", part: "skeleton-footer" }, hAsync("div", { class: "skeleton-upvote", part: "skeleton-upvote" })))))))))), this.error && (hAsync("slot", { key: '5ad8c400e465213de6e9d1f2a4d5e70c86a7ca2d', name: "error" }, hAsync("div", { key: '0a1a62f25e9ccac249ea7426cc7839e95a24b60f', class: "error-state", role: "alert", part: "error-state" }, hAsync("div", { key: '3286f0ab99dbead8e7949317de510e643bfbc897', class: "error-state-content", part: "error-state-content" }, this.renderErrorIcon(), hAsync("h2", { key: '78319f0bbc6cc972bb2a4478134194b0592c13ba', class: "error-state-title", part: "error-title" }, "Something went wrong"), hAsync("p", { key: 'ba262bf4d991326d36a04667b1109fed008d7cfd', class: "error-state-message", part: "error-message" }, this.error))))), !this.loading && !this.error && (hAsync("div", { key: 'adc09c9a78afb9c163d23813eebb23a4c031be52', part: "list-container" }, this.renderIssuesList(), this.hasMore && (hAsync("slot", { key: '26010e848f5fc2976f0ab0c1d7f134efb023f173', name: "load-more" }, hAsync("div", { key: 'adbfb37d368383405dc9edd136ed7c0003b8cb67', class: "load-more-container", part: "load-more-container" }, hAsync("feedlog-button", { key: '8d00e17e29dd9148e71e86cb178b9e058f50ce32', onFeedlogClick: this.handleLoadMore, disabled: this.isLoadingMore, variant: "outline", part: "load-more-btn" }, this.isLoadingMore ? 'Loading...' : 'Load More Issues')))))))));
|
|
6797
6800
|
}
|
|
6798
6801
|
static get style() { return feedlogIssuesCss(); }
|
|
6799
6802
|
static get cmpMeta() { return {
|
|
6800
|
-
"$flags$":
|
|
6803
|
+
"$flags$": 265,
|
|
6801
6804
|
"$tagName$": "feedlog-issues",
|
|
6802
6805
|
"$members$": {
|
|
6803
6806
|
"issues": [16],
|
|
@@ -6812,8 +6815,7 @@ class FeedlogIssues {
|
|
|
6812
6815
|
"error": [1],
|
|
6813
6816
|
"hasMore": [4, "has-more"],
|
|
6814
6817
|
"isLoadingMore": [4, "is-loading-more"],
|
|
6815
|
-
"getIssueUrl": [16]
|
|
6816
|
-
"currentTheme": [32]
|
|
6818
|
+
"getIssueUrl": [16]
|
|
6817
6819
|
},
|
|
6818
6820
|
"$listeners$": undefined,
|
|
6819
6821
|
"$lazyBundleId$": "-",
|
|
@@ -6821,37 +6823,64 @@ class FeedlogIssues {
|
|
|
6821
6823
|
}; }
|
|
6822
6824
|
}
|
|
6823
6825
|
|
|
6826
|
+
function getDefaultExportFromCjs (x) {
|
|
6827
|
+
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
|
|
6828
|
+
}
|
|
6829
|
+
|
|
6830
|
+
function getAugmentedNamespace(n) {
|
|
6831
|
+
if (n.__esModule) return n;
|
|
6832
|
+
var f = n.default;
|
|
6833
|
+
if (typeof f == "function") {
|
|
6834
|
+
var a = function a () {
|
|
6835
|
+
if (this instanceof a) {
|
|
6836
|
+
return Reflect.construct(f, arguments, this.constructor);
|
|
6837
|
+
}
|
|
6838
|
+
return f.apply(this, arguments);
|
|
6839
|
+
};
|
|
6840
|
+
a.prototype = f.prototype;
|
|
6841
|
+
} else a = {};
|
|
6842
|
+
Object.defineProperty(a, '__esModule', {value: true});
|
|
6843
|
+
Object.keys(n).forEach(function (k) {
|
|
6844
|
+
var d = Object.getOwnPropertyDescriptor(n, k);
|
|
6845
|
+
Object.defineProperty(a, k, d.get ? d : {
|
|
6846
|
+
enumerable: true,
|
|
6847
|
+
get: function () {
|
|
6848
|
+
return n[k];
|
|
6849
|
+
}
|
|
6850
|
+
});
|
|
6851
|
+
});
|
|
6852
|
+
return a;
|
|
6853
|
+
}
|
|
6854
|
+
|
|
6855
|
+
var require$$0 = /*@__PURE__*/getAugmentedNamespace(purify_es);
|
|
6856
|
+
|
|
6857
|
+
var browser;
|
|
6858
|
+
var hasRequiredBrowser;
|
|
6859
|
+
|
|
6860
|
+
function requireBrowser () {
|
|
6861
|
+
if (hasRequiredBrowser) return browser;
|
|
6862
|
+
hasRequiredBrowser = 1;
|
|
6863
|
+
browser = self.DOMPurify || (self.DOMPurify = require$$0.default || require$$0);
|
|
6864
|
+
return browser;
|
|
6865
|
+
}
|
|
6866
|
+
|
|
6867
|
+
var browserExports = requireBrowser();
|
|
6868
|
+
var DOMPurify = /*@__PURE__*/getDefaultExportFromCjs(browserExports);
|
|
6869
|
+
|
|
6824
6870
|
/**
|
|
6825
6871
|
* HTML and XSS sanitization utilities
|
|
6826
6872
|
*/
|
|
6827
6873
|
/**
|
|
6828
|
-
*
|
|
6829
|
-
*
|
|
6830
|
-
*/
|
|
6831
|
-
/**
|
|
6832
|
-
* Sanitize HTML by removing dangerous tags and attributes
|
|
6833
|
-
* Removes script tags, event handlers, and other potentially malicious content
|
|
6874
|
+
* Sanitize HTML using DOMPurify (safe for untrusted content).
|
|
6875
|
+
* Removes scripts, dangerous URLs, and unsafe attributes.
|
|
6834
6876
|
*/
|
|
6835
6877
|
function sanitizeHtml(html) {
|
|
6836
6878
|
if (typeof html !== 'string') {
|
|
6837
6879
|
return '';
|
|
6838
6880
|
}
|
|
6839
|
-
|
|
6840
|
-
|
|
6841
|
-
|
|
6842
|
-
sanitized = sanitized.replace(/\s*on\w+\s*=\s*["'][^"']*["']/gi, '');
|
|
6843
|
-
sanitized = sanitized.replace(/\s*on\w+\s*=\s*[^\s>]*/gi, '');
|
|
6844
|
-
// Remove iframe tags
|
|
6845
|
-
sanitized = sanitized.replace(/<iframe\b[^<]*(?:(?!<\/iframe>)<[^<]*)*<\/iframe>/gi, '');
|
|
6846
|
-
// Remove style tags
|
|
6847
|
-
sanitized = sanitized.replace(/<style\b[^<]*(?:(?!<\/style>)<[^<]*)*<\/style>/gi, '');
|
|
6848
|
-
// Remove embed and object tags
|
|
6849
|
-
sanitized = sanitized.replace(/<(embed|object)\b[^<]*>/gi, '');
|
|
6850
|
-
// Remove javascript: protocol
|
|
6851
|
-
sanitized = sanitized.replace(/javascript:/gi, '');
|
|
6852
|
-
// Remove data: protocol for potentially dangerous mime types
|
|
6853
|
-
sanitized = sanitized.replace(/data:(?!image\/(?:png|jpg|jpeg|gif|webp);)/gi, '');
|
|
6854
|
-
return sanitized;
|
|
6881
|
+
return DOMPurify.sanitize(html, {
|
|
6882
|
+
USE_PROFILES: { html: true },
|
|
6883
|
+
});
|
|
6855
6884
|
}
|
|
6856
6885
|
|
|
6857
6886
|
/**
|
|
@@ -6932,13 +6961,7 @@ class FeedlogSDK {
|
|
|
6932
6961
|
return this.validateIssuesResponse(data);
|
|
6933
6962
|
}
|
|
6934
6963
|
catch (error) {
|
|
6935
|
-
|
|
6936
|
-
throw error;
|
|
6937
|
-
}
|
|
6938
|
-
if (error instanceof TypeError && error.message.includes('fetch')) {
|
|
6939
|
-
throw new FeedlogNetworkError('Network error: Unable to reach API', undefined, error);
|
|
6940
|
-
}
|
|
6941
|
-
throw new FeedlogError(`Failed to fetch issues: ${error instanceof Error ? error.message : 'Unknown error'}`, undefined, error);
|
|
6964
|
+
this.wrapFetchError(error, 'Failed to fetch issues');
|
|
6942
6965
|
}
|
|
6943
6966
|
}
|
|
6944
6967
|
/**
|
|
@@ -6973,13 +6996,7 @@ class FeedlogSDK {
|
|
|
6973
6996
|
return this.validateUpvoteResponse(data);
|
|
6974
6997
|
}
|
|
6975
6998
|
catch (error) {
|
|
6976
|
-
|
|
6977
|
-
throw error;
|
|
6978
|
-
}
|
|
6979
|
-
if (error instanceof TypeError && error.message.includes('fetch')) {
|
|
6980
|
-
throw new FeedlogNetworkError('Network error: Unable to reach API', undefined, error);
|
|
6981
|
-
}
|
|
6982
|
-
throw new FeedlogError(`Failed to toggle upvote: ${error instanceof Error ? error.message : 'Unknown error'}`, undefined, error);
|
|
6999
|
+
this.wrapFetchError(error, 'Failed to toggle upvote');
|
|
6983
7000
|
}
|
|
6984
7001
|
}
|
|
6985
7002
|
/**
|
|
@@ -7006,7 +7023,9 @@ class FeedlogSDK {
|
|
|
7006
7023
|
url.searchParams.set('cursor', params.cursor);
|
|
7007
7024
|
}
|
|
7008
7025
|
if (params.limit !== undefined) {
|
|
7009
|
-
|
|
7026
|
+
const n = Number(params.limit);
|
|
7027
|
+
const clamped = Number.isFinite(n) ? Math.max(1, Math.min(100, Math.floor(n))) : 10;
|
|
7028
|
+
url.searchParams.set('limit', String(clamped));
|
|
7010
7029
|
}
|
|
7011
7030
|
return url.toString();
|
|
7012
7031
|
}
|
|
@@ -7014,13 +7033,19 @@ class FeedlogSDK {
|
|
|
7014
7033
|
* Get request headers
|
|
7015
7034
|
*/
|
|
7016
7035
|
getAuthHeaders() {
|
|
7017
|
-
|
|
7036
|
+
return {
|
|
7018
7037
|
'Content-Type': 'application/json',
|
|
7038
|
+
'x-api-key': this.apiKey,
|
|
7019
7039
|
};
|
|
7020
|
-
|
|
7021
|
-
|
|
7040
|
+
}
|
|
7041
|
+
wrapFetchError(error, context) {
|
|
7042
|
+
if (error instanceof FeedlogError) {
|
|
7043
|
+
throw error;
|
|
7022
7044
|
}
|
|
7023
|
-
|
|
7045
|
+
if (error instanceof TypeError && error.message.includes('fetch')) {
|
|
7046
|
+
throw new FeedlogNetworkError('Network error: Unable to reach API', undefined, error);
|
|
7047
|
+
}
|
|
7048
|
+
throw new FeedlogError(`${context}: ${error instanceof Error ? error.message : 'Unknown error'}`, undefined, error);
|
|
7024
7049
|
}
|
|
7025
7050
|
/**
|
|
7026
7051
|
* Fetch with timeout support using AbortController
|
|
@@ -7105,13 +7130,23 @@ class FeedlogSDK {
|
|
|
7105
7130
|
const repoName = rawRepoName != null && rawRepoName !== '' ? String(rawRepoName) : null;
|
|
7106
7131
|
const rawRepoDesc = repo.description;
|
|
7107
7132
|
const repoDescription = rawRepoDesc != null && rawRepoDesc !== '' ? sanitizeHtml(String(rawRepoDesc)) : null;
|
|
7133
|
+
const revision = typeof issue.revision === 'number' && Number.isFinite(issue.revision) ? issue.revision : 1;
|
|
7134
|
+
const upvoteCount = typeof issue.upvoteCount === 'number' && Number.isFinite(issue.upvoteCount)
|
|
7135
|
+
? issue.upvoteCount
|
|
7136
|
+
: 0;
|
|
7137
|
+
const updatedAt = typeof issue.updatedAt === 'string' && issue.updatedAt.length > 0
|
|
7138
|
+
? issue.updatedAt
|
|
7139
|
+
: new Date().toISOString();
|
|
7140
|
+
const createdAt = typeof issue.createdAt === 'string' && issue.createdAt.length > 0
|
|
7141
|
+
? issue.createdAt
|
|
7142
|
+
: new Date().toISOString();
|
|
7108
7143
|
return {
|
|
7109
7144
|
id: String(issue.id),
|
|
7110
7145
|
githubIssueLink,
|
|
7111
7146
|
type: issue.type || 'bug',
|
|
7112
7147
|
status: issue.status || 'open',
|
|
7113
7148
|
pinnedAt: issue.pinnedAt ? String(issue.pinnedAt) : null,
|
|
7114
|
-
revision
|
|
7149
|
+
revision,
|
|
7115
7150
|
title: sanitizedTitle,
|
|
7116
7151
|
body: sanitizedBody,
|
|
7117
7152
|
repository: {
|
|
@@ -7119,9 +7154,9 @@ class FeedlogSDK {
|
|
|
7119
7154
|
name: repoName,
|
|
7120
7155
|
description: repoDescription,
|
|
7121
7156
|
},
|
|
7122
|
-
updatedAt
|
|
7123
|
-
createdAt
|
|
7124
|
-
upvoteCount
|
|
7157
|
+
updatedAt,
|
|
7158
|
+
createdAt,
|
|
7159
|
+
upvoteCount,
|
|
7125
7160
|
hasUpvoted: Boolean(issue.hasUpvoted),
|
|
7126
7161
|
};
|
|
7127
7162
|
}
|
|
@@ -7262,7 +7297,9 @@ class FeedlogIssuesClient {
|
|
|
7262
7297
|
this.cursor = null;
|
|
7263
7298
|
this.hasMore = false;
|
|
7264
7299
|
this.issues = [];
|
|
7265
|
-
this.fetchIssues()
|
|
7300
|
+
void this.fetchIssues().catch(() => {
|
|
7301
|
+
/* errors handled inside fetchIssues */
|
|
7302
|
+
});
|
|
7266
7303
|
this.previousType = this.type;
|
|
7267
7304
|
this.previousLimit = this.limit;
|
|
7268
7305
|
this.previousSortBy = this.sortBy;
|
|
@@ -7282,6 +7319,22 @@ class FeedlogIssuesClient {
|
|
|
7282
7319
|
this.feedlogError.emit({ error: errorMsg });
|
|
7283
7320
|
}
|
|
7284
7321
|
}
|
|
7322
|
+
buildFetchParams() {
|
|
7323
|
+
const params = {};
|
|
7324
|
+
if (this.type) {
|
|
7325
|
+
params.type = this.type;
|
|
7326
|
+
}
|
|
7327
|
+
if (this.sortBy) {
|
|
7328
|
+
params.sortBy = this.sortBy;
|
|
7329
|
+
}
|
|
7330
|
+
if (this.limit) {
|
|
7331
|
+
params.limit = this.limit;
|
|
7332
|
+
}
|
|
7333
|
+
if (this.cursor) {
|
|
7334
|
+
params.cursor = this.cursor;
|
|
7335
|
+
}
|
|
7336
|
+
return params;
|
|
7337
|
+
}
|
|
7285
7338
|
async fetchIssues() {
|
|
7286
7339
|
if (!this.sdk) {
|
|
7287
7340
|
return;
|
|
@@ -7291,19 +7344,7 @@ class FeedlogIssuesClient {
|
|
|
7291
7344
|
try {
|
|
7292
7345
|
this.loading = true;
|
|
7293
7346
|
this.error = null;
|
|
7294
|
-
const params =
|
|
7295
|
-
if (this.type) {
|
|
7296
|
-
params.type = this.type;
|
|
7297
|
-
}
|
|
7298
|
-
if (this.sortBy) {
|
|
7299
|
-
params.sortBy = this.sortBy;
|
|
7300
|
-
}
|
|
7301
|
-
if (this.limit) {
|
|
7302
|
-
params.limit = this.limit;
|
|
7303
|
-
}
|
|
7304
|
-
if (this.cursor) {
|
|
7305
|
-
params.cursor = this.cursor;
|
|
7306
|
-
}
|
|
7347
|
+
const params = this.buildFetchParams();
|
|
7307
7348
|
const response = await this.sdk.fetchIssues(params);
|
|
7308
7349
|
// Ignore response if component disconnected or a newer request was made
|
|
7309
7350
|
if (this.isDisconnected || currentRequestId !== this.fetchRequestId) {
|
|
@@ -7342,19 +7383,7 @@ class FeedlogIssuesClient {
|
|
|
7342
7383
|
const currentRequestId = this.fetchRequestId;
|
|
7343
7384
|
this.isLoadingMore = true;
|
|
7344
7385
|
try {
|
|
7345
|
-
const params =
|
|
7346
|
-
if (this.type) {
|
|
7347
|
-
params.type = this.type;
|
|
7348
|
-
}
|
|
7349
|
-
if (this.sortBy) {
|
|
7350
|
-
params.sortBy = this.sortBy;
|
|
7351
|
-
}
|
|
7352
|
-
if (this.limit) {
|
|
7353
|
-
params.limit = this.limit;
|
|
7354
|
-
}
|
|
7355
|
-
if (this.cursor) {
|
|
7356
|
-
params.cursor = this.cursor;
|
|
7357
|
-
}
|
|
7386
|
+
const params = this.buildFetchParams();
|
|
7358
7387
|
const response = await this.sdk.fetchIssues(params);
|
|
7359
7388
|
// Ignore response if component disconnected or a newer request was made
|
|
7360
7389
|
if (this.isDisconnected || currentRequestId !== this.fetchRequestId) {
|
|
@@ -7389,11 +7418,11 @@ class FeedlogIssuesClient {
|
|
|
7389
7418
|
const style = hostBg
|
|
7390
7419
|
? { '--feedlog-background': hostBg }
|
|
7391
7420
|
: undefined;
|
|
7392
|
-
return (hAsync("feedlog-issues", { key: '
|
|
7421
|
+
return (hAsync("feedlog-issues", { key: '2d9528bb33630664824ab584e10208359d579eb6', style: style, issues: this.issues, limit: this.limit, 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(), part: "base" }, hAsync("slot", { key: 'efe89b9fd0f337af7930823762296487ebcb758e', name: "header", slot: "header" }), hAsync("slot", { key: 'ffebd688ebf25bb464ceefd6a161f7140e03933b', name: "loading", slot: "loading" }), hAsync("slot", { key: 'b59010966b6f7768814ba838c05ffd62cfd1c26a', name: "error", slot: "error" }), hAsync("slot", { key: '99b1abfcbb62703b3642fb02d79d8d1488421ee3', name: "empty-state", slot: "empty-state" }), hAsync("slot", { key: 'c47c1dc83e8434b8f66d1b42b65e812aa5e1f8ee', name: "load-more", slot: "load-more" })));
|
|
7393
7422
|
}
|
|
7394
7423
|
get el() { return getElement(this); }
|
|
7395
7424
|
static get cmpMeta() { return {
|
|
7396
|
-
"$flags$":
|
|
7425
|
+
"$flags$": 265,
|
|
7397
7426
|
"$tagName$": "feedlog-issues-client",
|
|
7398
7427
|
"$members$": {
|
|
7399
7428
|
"apiKey": [1, "api-key"],
|
|
@@ -7490,13 +7519,13 @@ class FeedlogIssuesList {
|
|
|
7490
7519
|
return null;
|
|
7491
7520
|
const totalPages = Math.ceil(this.issues.length / this.limit);
|
|
7492
7521
|
const pageNumbers = this.getPageNumbers();
|
|
7493
|
-
return (hAsync("nav", { class: "pagination", "aria-label": "Issues pagination" }, hAsync("button", { type: "button", class: "pagination-btn pagination-arrow", "aria-label": "Previous page", disabled: this.currentPage <= 1, onClick: () => this.goToPage(this.currentPage - 1) }, "\u2039"), pageNumbers.map((p, i) => p === 'ellipsis' ? (hAsync("span", { key: i
|
|
7522
|
+
return (hAsync("nav", { class: "pagination", "aria-label": "Issues pagination", part: "pagination" }, hAsync("button", { type: "button", class: "pagination-btn pagination-arrow", "aria-label": "Previous page", disabled: this.currentPage <= 1, onClick: () => this.goToPage(this.currentPage - 1), part: "pagination-btn pagination-arrow" }, "\u2039"), pageNumbers.map((p, i) => p === 'ellipsis' ? (hAsync("span", { key: `ellipsis-${i}`, class: "pagination-ellipsis", "aria-hidden": "true", part: "pagination-ellipsis" }, "\u2026")) : (hAsync("button", { key: `page-${p}`, type: "button", class: "pagination-btn", "aria-current": p === this.currentPage ? 'page' : undefined, onClick: () => this.goToPage(p), part: `pagination-btn ${p === this.currentPage ? 'pagination-btn-active' : ''}` }, p))), hAsync("button", { type: "button", class: "pagination-btn pagination-arrow", "aria-label": "Next page", disabled: this.currentPage >= totalPages, onClick: () => this.goToPage(this.currentPage + 1), part: "pagination-btn pagination-arrow" }, "\u203A")));
|
|
7494
7523
|
}
|
|
7495
7524
|
render() {
|
|
7496
7525
|
const visibleIssues = this.getVisibleIssues();
|
|
7497
|
-
return (hAsync(Host, { key: '
|
|
7526
|
+
return (hAsync(Host, { key: 'cfbc683e096ad29327539323e1db97aba4bba373', class: this.theme === 'dark' ? 'dark' : '' }, hAsync("div", { key: 'fb342265514ab879e37136955cb0dc444f381646', class: "issues-list", part: "base" }, visibleIssues.length === 0 ? (hAsync("div", { class: "empty-state", part: "empty-state" }, this.emptyStateTitle && this.emptyStateMessage ? (hAsync("div", { class: "empty-state-content", part: "empty-state-content" }, this.renderEmptyStateIllustration(), hAsync("h2", { class: "empty-state-title", part: "empty-state-title" }, this.emptyStateTitle), hAsync("p", { class: "empty-state-message", part: "empty-state-message" }, this.emptyStateMessage))) : (hAsync("slot", { name: "empty-state" }, hAsync("p", null, "No issues found"))))) : (visibleIssues.map(issue => {
|
|
7498
7527
|
var _a, _b;
|
|
7499
|
-
return (hAsync("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) }));
|
|
7528
|
+
return (hAsync("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), part: "issue" }));
|
|
7500
7529
|
}))), this.renderPagination()));
|
|
7501
7530
|
}
|
|
7502
7531
|
static get watchers() { return {
|
|
@@ -7509,7 +7538,7 @@ class FeedlogIssuesList {
|
|
|
7509
7538
|
}; }
|
|
7510
7539
|
static get style() { return feedlogIssuesListCss(); }
|
|
7511
7540
|
static get cmpMeta() { return {
|
|
7512
|
-
"$flags$":
|
|
7541
|
+
"$flags$": 265,
|
|
7513
7542
|
"$tagName$": "feedlog-issues-list",
|
|
7514
7543
|
"$members$": {
|
|
7515
7544
|
"issues": [16],
|