@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.js
CHANGED
|
@@ -221,7 +221,7 @@ function hydrateFactory($stencilWindow, $stencilHydrateOpts, $stencilHydrateResu
|
|
|
221
221
|
const NAMESPACE = 'feedlog-toolkit';
|
|
222
222
|
const BUILD = /* feedlog-toolkit */ { hotModuleReplacement: false, hydratedSelectorName: "hydrated", slotRelocation: true, state: true, updatable: true};
|
|
223
223
|
|
|
224
|
-
const globalStyles = ":root{--feedlog-
|
|
224
|
+
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}";
|
|
225
225
|
|
|
226
226
|
/*
|
|
227
227
|
Stencil Hydrate Platform v4.40.1 | MIT Licensed | https://stenciljs.com
|
|
@@ -4973,7 +4973,7 @@ var setScopedSSR = (opts) => {
|
|
|
4973
4973
|
var needsScopedSSR = () => scopedSSR;
|
|
4974
4974
|
var scopedSSR = false;
|
|
4975
4975
|
|
|
4976
|
-
const feedlogBadgeCss = () => `:host{display:inline-block;--feedlog-badge-font-size:
|
|
4976
|
+
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}`;
|
|
4977
4977
|
|
|
4978
4978
|
/**
|
|
4979
4979
|
* Feedlog Badge Component
|
|
@@ -4989,7 +4989,7 @@ class FeedlogBadge {
|
|
|
4989
4989
|
this.variant = 'default';
|
|
4990
4990
|
}
|
|
4991
4991
|
render() {
|
|
4992
|
-
return (hAsync("span", { key: '
|
|
4992
|
+
return (hAsync("span", { key: '6ea83e77cecfa5589ba64b86d96053668407be8f', class: `badge badge-${this.variant}`, part: "base" }, hAsync("slot", { key: '292fba2dd5ca3ec6455c9114f883e21c74846695' })));
|
|
4993
4993
|
}
|
|
4994
4994
|
static get style() { return feedlogBadgeCss(); }
|
|
4995
4995
|
static get cmpMeta() { return {
|
|
@@ -5004,7 +5004,7 @@ class FeedlogBadge {
|
|
|
5004
5004
|
}; }
|
|
5005
5005
|
}
|
|
5006
5006
|
|
|
5007
|
-
const feedlogButtonCss = () => `:host{display:inline-block
|
|
5007
|
+
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}`;
|
|
5008
5008
|
|
|
5009
5009
|
/**
|
|
5010
5010
|
* Feedlog Button Component
|
|
@@ -5039,7 +5039,7 @@ class FeedlogButton {
|
|
|
5039
5039
|
}
|
|
5040
5040
|
render() {
|
|
5041
5041
|
const sizeClass = this.size === 'default' ? 'button-size-default' : `button-size-${this.size}`;
|
|
5042
|
-
return (hAsync("button", { key: '
|
|
5042
|
+
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' })));
|
|
5043
5043
|
}
|
|
5044
5044
|
static get style() { return feedlogButtonCss(); }
|
|
5045
5045
|
static get cmpMeta() { return {
|
|
@@ -5057,7 +5057,7 @@ class FeedlogButton {
|
|
|
5057
5057
|
}; }
|
|
5058
5058
|
}
|
|
5059
5059
|
|
|
5060
|
-
const feedlogCardCss = () => `:host{display:block;font-family:
|
|
5060
|
+
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}`;
|
|
5061
5061
|
|
|
5062
5062
|
/**
|
|
5063
5063
|
* Feedlog Card Component
|
|
@@ -5069,7 +5069,7 @@ class FeedlogCard {
|
|
|
5069
5069
|
registerInstance(this, hostRef);
|
|
5070
5070
|
}
|
|
5071
5071
|
render() {
|
|
5072
|
-
return (hAsync("div", { key: '
|
|
5072
|
+
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" }))));
|
|
5073
5073
|
}
|
|
5074
5074
|
static get style() { return feedlogCardCss(); }
|
|
5075
5075
|
static get cmpMeta() { return {
|
|
@@ -6529,6 +6529,11 @@ function createDOMPurify() {
|
|
|
6529
6529
|
}
|
|
6530
6530
|
var purify = createDOMPurify();
|
|
6531
6531
|
|
|
6532
|
+
var purify_es = /*#__PURE__*/Object.freeze({
|
|
6533
|
+
__proto__: null,
|
|
6534
|
+
default: purify
|
|
6535
|
+
});
|
|
6536
|
+
|
|
6532
6537
|
/**
|
|
6533
6538
|
* Parse markdown to sanitized HTML for safe rendering.
|
|
6534
6539
|
* Uses marked for parsing and DOMPurify for XSS protection.
|
|
@@ -6537,10 +6542,15 @@ function parseMarkdown(markdown) {
|
|
|
6537
6542
|
if (markdown == null || markdown === '') {
|
|
6538
6543
|
return '';
|
|
6539
6544
|
}
|
|
6540
|
-
const
|
|
6545
|
+
const parsed = g.parse(markdown, {
|
|
6541
6546
|
gfm: true,
|
|
6542
6547
|
breaks: true,
|
|
6548
|
+
async: false,
|
|
6543
6549
|
});
|
|
6550
|
+
if (typeof parsed !== 'string') {
|
|
6551
|
+
throw new Error('marked.parse returned a Promise; async markdown is not supported');
|
|
6552
|
+
}
|
|
6553
|
+
const html = parsed;
|
|
6544
6554
|
return purify.sanitize(html, {
|
|
6545
6555
|
ALLOWED_TAGS: [
|
|
6546
6556
|
'p',
|
|
@@ -6576,7 +6586,7 @@ function parseMarkdown(markdown) {
|
|
|
6576
6586
|
});
|
|
6577
6587
|
}
|
|
6578
6588
|
|
|
6579
|
-
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)}`;
|
|
6589
|
+
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)}`;
|
|
6580
6590
|
|
|
6581
6591
|
/**
|
|
6582
6592
|
* Feedlog Issue Component
|
|
@@ -6710,7 +6720,7 @@ class FeedlogIssueComponent {
|
|
|
6710
6720
|
const statusBadgeLabel = this.getStatusBadgeLabel();
|
|
6711
6721
|
const githubUrl = (_b = issue.githubIssueLink) !== null && _b !== void 0 ? _b : issueUrl;
|
|
6712
6722
|
const showGithubButton = githubUrl != null && githubUrl !== '';
|
|
6713
|
-
return (hAsync(Host, { class: this.theme === 'dark' ? 'dark' : '', "data-upvoted": issue.hasUpvoted ? 'true' : 'false' }, hAsync("div", { class: `issue-card issue-type-${issue.type}
|
|
6723
|
+
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)))))))))));
|
|
6714
6724
|
}
|
|
6715
6725
|
get host() { return getElement(this); }
|
|
6716
6726
|
static get style() { return feedlogIssueCss(); }
|
|
@@ -6728,7 +6738,7 @@ class FeedlogIssueComponent {
|
|
|
6728
6738
|
}; }
|
|
6729
6739
|
}
|
|
6730
6740
|
|
|
6731
|
-
const feedlogIssuesCss = () => `:host{display:block;font-family:
|
|
6741
|
+
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)}`;
|
|
6732
6742
|
|
|
6733
6743
|
/**
|
|
6734
6744
|
* Feedlog Issues Component
|
|
@@ -6769,10 +6779,6 @@ class FeedlogIssues {
|
|
|
6769
6779
|
* Whether more issues are currently loading
|
|
6770
6780
|
*/
|
|
6771
6781
|
this.isLoadingMore = false;
|
|
6772
|
-
/**
|
|
6773
|
-
* Internal state for theme
|
|
6774
|
-
*/
|
|
6775
|
-
this.currentTheme = 'light';
|
|
6776
6782
|
this.handleUpvote = (event) => {
|
|
6777
6783
|
event.stopPropagation();
|
|
6778
6784
|
this.feedlogUpvote.emit(event.detail);
|
|
@@ -6781,25 +6787,22 @@ class FeedlogIssues {
|
|
|
6781
6787
|
this.feedlogLoadMore.emit();
|
|
6782
6788
|
};
|
|
6783
6789
|
}
|
|
6784
|
-
componentWillLoad() {
|
|
6785
|
-
this.currentTheme = this.theme;
|
|
6786
|
-
}
|
|
6787
6790
|
renderErrorIcon() {
|
|
6788
6791
|
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" })));
|
|
6789
6792
|
}
|
|
6790
6793
|
renderIssuesList() {
|
|
6791
6794
|
var _a, _b;
|
|
6792
|
-
return (hAsync("feedlog-issues-list", { issues: this.issues, limit: this.limit, theme: this.
|
|
6795
|
+
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" })));
|
|
6793
6796
|
}
|
|
6794
6797
|
render() {
|
|
6795
6798
|
const containerStyle = {
|
|
6796
6799
|
maxWidth: this.maxWidth,
|
|
6797
6800
|
};
|
|
6798
|
-
return (hAsync(Host, { key: '
|
|
6801
|
+
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')))))))));
|
|
6799
6802
|
}
|
|
6800
6803
|
static get style() { return feedlogIssuesCss(); }
|
|
6801
6804
|
static get cmpMeta() { return {
|
|
6802
|
-
"$flags$":
|
|
6805
|
+
"$flags$": 265,
|
|
6803
6806
|
"$tagName$": "feedlog-issues",
|
|
6804
6807
|
"$members$": {
|
|
6805
6808
|
"issues": [16],
|
|
@@ -6814,8 +6817,7 @@ class FeedlogIssues {
|
|
|
6814
6817
|
"error": [1],
|
|
6815
6818
|
"hasMore": [4, "has-more"],
|
|
6816
6819
|
"isLoadingMore": [4, "is-loading-more"],
|
|
6817
|
-
"getIssueUrl": [16]
|
|
6818
|
-
"currentTheme": [32]
|
|
6820
|
+
"getIssueUrl": [16]
|
|
6819
6821
|
},
|
|
6820
6822
|
"$listeners$": undefined,
|
|
6821
6823
|
"$lazyBundleId$": "-",
|
|
@@ -6823,37 +6825,64 @@ class FeedlogIssues {
|
|
|
6823
6825
|
}; }
|
|
6824
6826
|
}
|
|
6825
6827
|
|
|
6828
|
+
function getDefaultExportFromCjs (x) {
|
|
6829
|
+
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
|
|
6830
|
+
}
|
|
6831
|
+
|
|
6832
|
+
function getAugmentedNamespace(n) {
|
|
6833
|
+
if (n.__esModule) return n;
|
|
6834
|
+
var f = n.default;
|
|
6835
|
+
if (typeof f == "function") {
|
|
6836
|
+
var a = function a () {
|
|
6837
|
+
if (this instanceof a) {
|
|
6838
|
+
return Reflect.construct(f, arguments, this.constructor);
|
|
6839
|
+
}
|
|
6840
|
+
return f.apply(this, arguments);
|
|
6841
|
+
};
|
|
6842
|
+
a.prototype = f.prototype;
|
|
6843
|
+
} else a = {};
|
|
6844
|
+
Object.defineProperty(a, '__esModule', {value: true});
|
|
6845
|
+
Object.keys(n).forEach(function (k) {
|
|
6846
|
+
var d = Object.getOwnPropertyDescriptor(n, k);
|
|
6847
|
+
Object.defineProperty(a, k, d.get ? d : {
|
|
6848
|
+
enumerable: true,
|
|
6849
|
+
get: function () {
|
|
6850
|
+
return n[k];
|
|
6851
|
+
}
|
|
6852
|
+
});
|
|
6853
|
+
});
|
|
6854
|
+
return a;
|
|
6855
|
+
}
|
|
6856
|
+
|
|
6857
|
+
var require$$0 = /*@__PURE__*/getAugmentedNamespace(purify_es);
|
|
6858
|
+
|
|
6859
|
+
var browser;
|
|
6860
|
+
var hasRequiredBrowser;
|
|
6861
|
+
|
|
6862
|
+
function requireBrowser () {
|
|
6863
|
+
if (hasRequiredBrowser) return browser;
|
|
6864
|
+
hasRequiredBrowser = 1;
|
|
6865
|
+
browser = self.DOMPurify || (self.DOMPurify = require$$0.default || require$$0);
|
|
6866
|
+
return browser;
|
|
6867
|
+
}
|
|
6868
|
+
|
|
6869
|
+
var browserExports = requireBrowser();
|
|
6870
|
+
var DOMPurify = /*@__PURE__*/getDefaultExportFromCjs(browserExports);
|
|
6871
|
+
|
|
6826
6872
|
/**
|
|
6827
6873
|
* HTML and XSS sanitization utilities
|
|
6828
6874
|
*/
|
|
6829
6875
|
/**
|
|
6830
|
-
*
|
|
6831
|
-
*
|
|
6832
|
-
*/
|
|
6833
|
-
/**
|
|
6834
|
-
* Sanitize HTML by removing dangerous tags and attributes
|
|
6835
|
-
* Removes script tags, event handlers, and other potentially malicious content
|
|
6876
|
+
* Sanitize HTML using DOMPurify (safe for untrusted content).
|
|
6877
|
+
* Removes scripts, dangerous URLs, and unsafe attributes.
|
|
6836
6878
|
*/
|
|
6837
6879
|
function sanitizeHtml(html) {
|
|
6838
6880
|
if (typeof html !== 'string') {
|
|
6839
6881
|
return '';
|
|
6840
6882
|
}
|
|
6841
|
-
|
|
6842
|
-
|
|
6843
|
-
|
|
6844
|
-
sanitized = sanitized.replace(/\s*on\w+\s*=\s*["'][^"']*["']/gi, '');
|
|
6845
|
-
sanitized = sanitized.replace(/\s*on\w+\s*=\s*[^\s>]*/gi, '');
|
|
6846
|
-
// Remove iframe tags
|
|
6847
|
-
sanitized = sanitized.replace(/<iframe\b[^<]*(?:(?!<\/iframe>)<[^<]*)*<\/iframe>/gi, '');
|
|
6848
|
-
// Remove style tags
|
|
6849
|
-
sanitized = sanitized.replace(/<style\b[^<]*(?:(?!<\/style>)<[^<]*)*<\/style>/gi, '');
|
|
6850
|
-
// Remove embed and object tags
|
|
6851
|
-
sanitized = sanitized.replace(/<(embed|object)\b[^<]*>/gi, '');
|
|
6852
|
-
// Remove javascript: protocol
|
|
6853
|
-
sanitized = sanitized.replace(/javascript:/gi, '');
|
|
6854
|
-
// Remove data: protocol for potentially dangerous mime types
|
|
6855
|
-
sanitized = sanitized.replace(/data:(?!image\/(?:png|jpg|jpeg|gif|webp);)/gi, '');
|
|
6856
|
-
return sanitized;
|
|
6883
|
+
return DOMPurify.sanitize(html, {
|
|
6884
|
+
USE_PROFILES: { html: true },
|
|
6885
|
+
});
|
|
6857
6886
|
}
|
|
6858
6887
|
|
|
6859
6888
|
/**
|
|
@@ -6934,13 +6963,7 @@ class FeedlogSDK {
|
|
|
6934
6963
|
return this.validateIssuesResponse(data);
|
|
6935
6964
|
}
|
|
6936
6965
|
catch (error) {
|
|
6937
|
-
|
|
6938
|
-
throw error;
|
|
6939
|
-
}
|
|
6940
|
-
if (error instanceof TypeError && error.message.includes('fetch')) {
|
|
6941
|
-
throw new FeedlogNetworkError('Network error: Unable to reach API', undefined, error);
|
|
6942
|
-
}
|
|
6943
|
-
throw new FeedlogError(`Failed to fetch issues: ${error instanceof Error ? error.message : 'Unknown error'}`, undefined, error);
|
|
6966
|
+
this.wrapFetchError(error, 'Failed to fetch issues');
|
|
6944
6967
|
}
|
|
6945
6968
|
}
|
|
6946
6969
|
/**
|
|
@@ -6975,13 +6998,7 @@ class FeedlogSDK {
|
|
|
6975
6998
|
return this.validateUpvoteResponse(data);
|
|
6976
6999
|
}
|
|
6977
7000
|
catch (error) {
|
|
6978
|
-
|
|
6979
|
-
throw error;
|
|
6980
|
-
}
|
|
6981
|
-
if (error instanceof TypeError && error.message.includes('fetch')) {
|
|
6982
|
-
throw new FeedlogNetworkError('Network error: Unable to reach API', undefined, error);
|
|
6983
|
-
}
|
|
6984
|
-
throw new FeedlogError(`Failed to toggle upvote: ${error instanceof Error ? error.message : 'Unknown error'}`, undefined, error);
|
|
7001
|
+
this.wrapFetchError(error, 'Failed to toggle upvote');
|
|
6985
7002
|
}
|
|
6986
7003
|
}
|
|
6987
7004
|
/**
|
|
@@ -7008,7 +7025,9 @@ class FeedlogSDK {
|
|
|
7008
7025
|
url.searchParams.set('cursor', params.cursor);
|
|
7009
7026
|
}
|
|
7010
7027
|
if (params.limit !== undefined) {
|
|
7011
|
-
|
|
7028
|
+
const n = Number(params.limit);
|
|
7029
|
+
const clamped = Number.isFinite(n) ? Math.max(1, Math.min(100, Math.floor(n))) : 10;
|
|
7030
|
+
url.searchParams.set('limit', String(clamped));
|
|
7012
7031
|
}
|
|
7013
7032
|
return url.toString();
|
|
7014
7033
|
}
|
|
@@ -7016,13 +7035,19 @@ class FeedlogSDK {
|
|
|
7016
7035
|
* Get request headers
|
|
7017
7036
|
*/
|
|
7018
7037
|
getAuthHeaders() {
|
|
7019
|
-
|
|
7038
|
+
return {
|
|
7020
7039
|
'Content-Type': 'application/json',
|
|
7040
|
+
'x-api-key': this.apiKey,
|
|
7021
7041
|
};
|
|
7022
|
-
|
|
7023
|
-
|
|
7042
|
+
}
|
|
7043
|
+
wrapFetchError(error, context) {
|
|
7044
|
+
if (error instanceof FeedlogError) {
|
|
7045
|
+
throw error;
|
|
7024
7046
|
}
|
|
7025
|
-
|
|
7047
|
+
if (error instanceof TypeError && error.message.includes('fetch')) {
|
|
7048
|
+
throw new FeedlogNetworkError('Network error: Unable to reach API', undefined, error);
|
|
7049
|
+
}
|
|
7050
|
+
throw new FeedlogError(`${context}: ${error instanceof Error ? error.message : 'Unknown error'}`, undefined, error);
|
|
7026
7051
|
}
|
|
7027
7052
|
/**
|
|
7028
7053
|
* Fetch with timeout support using AbortController
|
|
@@ -7107,13 +7132,23 @@ class FeedlogSDK {
|
|
|
7107
7132
|
const repoName = rawRepoName != null && rawRepoName !== '' ? String(rawRepoName) : null;
|
|
7108
7133
|
const rawRepoDesc = repo.description;
|
|
7109
7134
|
const repoDescription = rawRepoDesc != null && rawRepoDesc !== '' ? sanitizeHtml(String(rawRepoDesc)) : null;
|
|
7135
|
+
const revision = typeof issue.revision === 'number' && Number.isFinite(issue.revision) ? issue.revision : 1;
|
|
7136
|
+
const upvoteCount = typeof issue.upvoteCount === 'number' && Number.isFinite(issue.upvoteCount)
|
|
7137
|
+
? issue.upvoteCount
|
|
7138
|
+
: 0;
|
|
7139
|
+
const updatedAt = typeof issue.updatedAt === 'string' && issue.updatedAt.length > 0
|
|
7140
|
+
? issue.updatedAt
|
|
7141
|
+
: new Date().toISOString();
|
|
7142
|
+
const createdAt = typeof issue.createdAt === 'string' && issue.createdAt.length > 0
|
|
7143
|
+
? issue.createdAt
|
|
7144
|
+
: new Date().toISOString();
|
|
7110
7145
|
return {
|
|
7111
7146
|
id: String(issue.id),
|
|
7112
7147
|
githubIssueLink,
|
|
7113
7148
|
type: issue.type || 'bug',
|
|
7114
7149
|
status: issue.status || 'open',
|
|
7115
7150
|
pinnedAt: issue.pinnedAt ? String(issue.pinnedAt) : null,
|
|
7116
|
-
revision
|
|
7151
|
+
revision,
|
|
7117
7152
|
title: sanitizedTitle,
|
|
7118
7153
|
body: sanitizedBody,
|
|
7119
7154
|
repository: {
|
|
@@ -7121,9 +7156,9 @@ class FeedlogSDK {
|
|
|
7121
7156
|
name: repoName,
|
|
7122
7157
|
description: repoDescription,
|
|
7123
7158
|
},
|
|
7124
|
-
updatedAt
|
|
7125
|
-
createdAt
|
|
7126
|
-
upvoteCount
|
|
7159
|
+
updatedAt,
|
|
7160
|
+
createdAt,
|
|
7161
|
+
upvoteCount,
|
|
7127
7162
|
hasUpvoted: Boolean(issue.hasUpvoted),
|
|
7128
7163
|
};
|
|
7129
7164
|
}
|
|
@@ -7264,7 +7299,9 @@ class FeedlogIssuesClient {
|
|
|
7264
7299
|
this.cursor = null;
|
|
7265
7300
|
this.hasMore = false;
|
|
7266
7301
|
this.issues = [];
|
|
7267
|
-
this.fetchIssues()
|
|
7302
|
+
void this.fetchIssues().catch(() => {
|
|
7303
|
+
/* errors handled inside fetchIssues */
|
|
7304
|
+
});
|
|
7268
7305
|
this.previousType = this.type;
|
|
7269
7306
|
this.previousLimit = this.limit;
|
|
7270
7307
|
this.previousSortBy = this.sortBy;
|
|
@@ -7284,6 +7321,22 @@ class FeedlogIssuesClient {
|
|
|
7284
7321
|
this.feedlogError.emit({ error: errorMsg });
|
|
7285
7322
|
}
|
|
7286
7323
|
}
|
|
7324
|
+
buildFetchParams() {
|
|
7325
|
+
const params = {};
|
|
7326
|
+
if (this.type) {
|
|
7327
|
+
params.type = this.type;
|
|
7328
|
+
}
|
|
7329
|
+
if (this.sortBy) {
|
|
7330
|
+
params.sortBy = this.sortBy;
|
|
7331
|
+
}
|
|
7332
|
+
if (this.limit) {
|
|
7333
|
+
params.limit = this.limit;
|
|
7334
|
+
}
|
|
7335
|
+
if (this.cursor) {
|
|
7336
|
+
params.cursor = this.cursor;
|
|
7337
|
+
}
|
|
7338
|
+
return params;
|
|
7339
|
+
}
|
|
7287
7340
|
async fetchIssues() {
|
|
7288
7341
|
if (!this.sdk) {
|
|
7289
7342
|
return;
|
|
@@ -7293,19 +7346,7 @@ class FeedlogIssuesClient {
|
|
|
7293
7346
|
try {
|
|
7294
7347
|
this.loading = true;
|
|
7295
7348
|
this.error = null;
|
|
7296
|
-
const params =
|
|
7297
|
-
if (this.type) {
|
|
7298
|
-
params.type = this.type;
|
|
7299
|
-
}
|
|
7300
|
-
if (this.sortBy) {
|
|
7301
|
-
params.sortBy = this.sortBy;
|
|
7302
|
-
}
|
|
7303
|
-
if (this.limit) {
|
|
7304
|
-
params.limit = this.limit;
|
|
7305
|
-
}
|
|
7306
|
-
if (this.cursor) {
|
|
7307
|
-
params.cursor = this.cursor;
|
|
7308
|
-
}
|
|
7349
|
+
const params = this.buildFetchParams();
|
|
7309
7350
|
const response = await this.sdk.fetchIssues(params);
|
|
7310
7351
|
// Ignore response if component disconnected or a newer request was made
|
|
7311
7352
|
if (this.isDisconnected || currentRequestId !== this.fetchRequestId) {
|
|
@@ -7344,19 +7385,7 @@ class FeedlogIssuesClient {
|
|
|
7344
7385
|
const currentRequestId = this.fetchRequestId;
|
|
7345
7386
|
this.isLoadingMore = true;
|
|
7346
7387
|
try {
|
|
7347
|
-
const params =
|
|
7348
|
-
if (this.type) {
|
|
7349
|
-
params.type = this.type;
|
|
7350
|
-
}
|
|
7351
|
-
if (this.sortBy) {
|
|
7352
|
-
params.sortBy = this.sortBy;
|
|
7353
|
-
}
|
|
7354
|
-
if (this.limit) {
|
|
7355
|
-
params.limit = this.limit;
|
|
7356
|
-
}
|
|
7357
|
-
if (this.cursor) {
|
|
7358
|
-
params.cursor = this.cursor;
|
|
7359
|
-
}
|
|
7388
|
+
const params = this.buildFetchParams();
|
|
7360
7389
|
const response = await this.sdk.fetchIssues(params);
|
|
7361
7390
|
// Ignore response if component disconnected or a newer request was made
|
|
7362
7391
|
if (this.isDisconnected || currentRequestId !== this.fetchRequestId) {
|
|
@@ -7391,11 +7420,11 @@ class FeedlogIssuesClient {
|
|
|
7391
7420
|
const style = hostBg
|
|
7392
7421
|
? { '--feedlog-background': hostBg }
|
|
7393
7422
|
: undefined;
|
|
7394
|
-
return (hAsync("feedlog-issues", { key: '
|
|
7423
|
+
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" })));
|
|
7395
7424
|
}
|
|
7396
7425
|
get el() { return getElement(this); }
|
|
7397
7426
|
static get cmpMeta() { return {
|
|
7398
|
-
"$flags$":
|
|
7427
|
+
"$flags$": 265,
|
|
7399
7428
|
"$tagName$": "feedlog-issues-client",
|
|
7400
7429
|
"$members$": {
|
|
7401
7430
|
"apiKey": [1, "api-key"],
|
|
@@ -7492,13 +7521,13 @@ class FeedlogIssuesList {
|
|
|
7492
7521
|
return null;
|
|
7493
7522
|
const totalPages = Math.ceil(this.issues.length / this.limit);
|
|
7494
7523
|
const pageNumbers = this.getPageNumbers();
|
|
7495
|
-
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
|
|
7524
|
+
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")));
|
|
7496
7525
|
}
|
|
7497
7526
|
render() {
|
|
7498
7527
|
const visibleIssues = this.getVisibleIssues();
|
|
7499
|
-
return (hAsync(Host, { key: '
|
|
7528
|
+
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 => {
|
|
7500
7529
|
var _a, _b;
|
|
7501
|
-
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) }));
|
|
7530
|
+
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" }));
|
|
7502
7531
|
}))), this.renderPagination()));
|
|
7503
7532
|
}
|
|
7504
7533
|
static get watchers() { return {
|
|
@@ -7511,7 +7540,7 @@ class FeedlogIssuesList {
|
|
|
7511
7540
|
}; }
|
|
7512
7541
|
static get style() { return feedlogIssuesListCss(); }
|
|
7513
7542
|
static get cmpMeta() { return {
|
|
7514
|
-
"$flags$":
|
|
7543
|
+
"$flags$": 265,
|
|
7515
7544
|
"$tagName$": "feedlog-issues-list",
|
|
7516
7545
|
"$members$": {
|
|
7517
7546
|
"issues": [16],
|