@feedlog-ai/webcomponents 0.0.24 → 0.0.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/feedlog-badge.cjs.entry.js +1 -1
- package/dist/cjs/feedlog-button_3.cjs.entry.js +58 -5
- package/dist/cjs/feedlog-card.cjs.entry.js +1 -1
- package/dist/cjs/feedlog-issues-client.cjs.entry.js +9 -2
- package/dist/cjs/feedlog-issues.cjs.entry.js +4 -4
- package/dist/cjs/feedlog-toolkit.cjs.js +2 -2
- package/dist/cjs/{index-DnsqTPII.js → index-Bk1-M_w_.js} +49 -1
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/collection/__mocks__/feedlog-core.js +10 -0
- package/dist/collection/components/feedlog-issues/feedlog-issues.css +3 -1
- package/dist/collection/components/feedlog-issues/feedlog-issues.js +21 -2
- package/dist/collection/components/feedlog-issues/feedlog-issues.stories.js +51 -0
- package/dist/collection/components/feedlog-issues-client/feedlog-issues-client.js +8 -1
- package/dist/collection/components/feedlog-issues-list/feedlog-issues-list.css +57 -0
- package/dist/collection/components/feedlog-issues-list/feedlog-issues-list.js +80 -2
- 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-CLFvFGWa.js +1 -0
- package/dist/components/p-DeVUfQ0-.js +1 -0
- package/dist/esm/feedlog-badge.entry.js +1 -1
- package/dist/esm/feedlog-button_3.entry.js +58 -5
- package/dist/esm/feedlog-card.entry.js +1 -1
- package/dist/esm/feedlog-issues-client.entry.js +9 -2
- package/dist/esm/feedlog-issues.entry.js +4 -4
- package/dist/esm/feedlog-toolkit.js +3 -3
- package/dist/esm/{index-rs_66Oq4.js → index-CHawAwGP.js} +49 -2
- package/dist/esm/loader.js +3 -3
- package/dist/feedlog-toolkit/feedlog-toolkit.esm.js +1 -1
- package/dist/feedlog-toolkit/{p-da51c7fd.entry.js → p-13089dc5.entry.js} +1 -1
- package/dist/feedlog-toolkit/p-7f8133b3.entry.js +1 -0
- package/dist/feedlog-toolkit/{p-rs_66Oq4.js → p-CHawAwGP.js} +2 -2
- package/dist/feedlog-toolkit/{p-4e90285c.entry.js → p-bc48ec0d.entry.js} +1 -1
- package/dist/feedlog-toolkit/p-c974a35e.entry.js +1 -0
- package/dist/feedlog-toolkit/{p-f8e5e975.entry.js → p-d029db94.entry.js} +2 -2
- package/dist/types/__mocks__/feedlog-core.d.ts +5 -0
- package/dist/types/components/feedlog-issues/feedlog-issues.d.ts +4 -0
- package/dist/types/components/feedlog-issues/feedlog-issues.stories.d.ts +2 -0
- package/dist/types/components/feedlog-issues-client/feedlog-issues-client.d.ts +1 -0
- package/dist/types/components/feedlog-issues-list/feedlog-issues-list.d.ts +10 -0
- package/dist/types/components.d.ts +16 -0
- package/package.json +2 -2
- package/dist/components/p-BR3ookRG.js +0 -1
- package/dist/components/p-DKGIKLzX.js +0 -1
- package/dist/feedlog-toolkit/p-2fbb5aad.entry.js +0 -1
- package/dist/feedlog-toolkit/p-6737a3f4.entry.js +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var index = require('./index-
|
|
3
|
+
var index = require('./index-Bk1-M_w_.js');
|
|
4
4
|
|
|
5
5
|
const feedlogBadgeCss = () => `:host{display:inline-block;--feedlog-badge-font-size:0.75rem;--feedlog-badge-font-weight:500;--feedlog-badge-padding-x:0.5rem;--feedlog-badge-padding-y:0.125rem;--feedlog-badge-border-radius:calc(0.625rem - 2px);--feedlog-blue-500:oklch(0.623 0.214 259.815);--feedlog-blue-600:oklch(0.546 0.245 262.881);--feedlog-blue-700:oklch(0.488 0.243 264.376);--feedlog-destructive:#d4183d;--feedlog-destructive-hover:#b91c1c}:host(.dark){--feedlog-blue-500:oklch(0.623 0.214 259.815);--feedlog-blue-600:oklch(0.546 0.245 262.881);--feedlog-destructive:oklch(0.396 0.141 25.723);--feedlog-destructive-hover:oklch(0.45 0.16 25.723)}.badge{display:inline-flex;align-items:center;justify-content:center;gap:0.25rem;font-size:var(--feedlog-badge-font-size);font-weight:var(--feedlog-badge-font-weight);padding:var(--feedlog-badge-padding-y) var(--feedlog-badge-padding-x);border-radius:var(--feedlog-badge-border-radius);white-space:nowrap;transition:background-color 0.15s ease;font-family:inherit}.badge-default{background-color:var(--feedlog-blue-600);color:#ffffff}.badge-default:hover{background-color:var(--feedlog-blue-700)}:host(.dark) .badge-default{background-color:var(--feedlog-blue-500)}:host(.dark) .badge-default:hover{background-color:var(--feedlog-blue-600)}.badge-enhancement{background-color:var(--feedlog-blue-600);color:#ffffff}.badge-enhancement:hover{background-color:var(--feedlog-blue-700)}:host(.dark) .badge-enhancement{background-color:var(--feedlog-blue-500)}:host(.dark) .badge-enhancement:hover{background-color:var(--feedlog-blue-600)}.badge-destructive{background-color:var(--feedlog-destructive);color:#ffffff}.badge-destructive:hover{background-color:var(--feedlog-destructive-hover)}.badge-secondary{background-color:var(--feedlog-muted, #f1f5f9);color:var(--feedlog-muted-foreground, #64748b)}:host(.dark) .badge-secondary{background-color:var(--feedlog-muted, oklch(0.32 0.01 260));color:var(--feedlog-muted-foreground, oklch(0.72 0.02 260))}`;
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var index = require('./index-
|
|
3
|
+
var index = require('./index-Bk1-M_w_.js');
|
|
4
4
|
|
|
5
5
|
const feedlogButtonCss = () => `:host{display:inline-block;font-family:ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, 'Liberation Mono', monospace;--feedlog-background:#ffffff;--feedlog-foreground:oklch(0.145 0 0);--feedlog-primary:#030213;--feedlog-primary-foreground:oklch(1 0 0);--feedlog-secondary:oklch(0.95 0.0058 264.53);--feedlog-secondary-foreground:#030213;--feedlog-muted:#ececf0;--feedlog-accent:#e9ebef;--feedlog-accent-foreground:#030213;--feedlog-border:rgba(0, 0, 0, 0.1);--feedlog-input:transparent;--feedlog-ring:oklch(0.708 0 0);--feedlog-destructive:#d4183d;--feedlog-radius:0.625rem}:host(.dark){--feedlog-background:oklch(0.145 0 0);--feedlog-foreground:oklch(0.985 0 0);--feedlog-primary:oklch(0.985 0 0);--feedlog-primary-foreground:oklch(0.205 0 0);--feedlog-secondary:oklch(0.269 0 0);--feedlog-secondary-foreground:oklch(0.985 0 0);--feedlog-muted:oklch(0.269 0 0);--feedlog-accent:oklch(0.269 0 0);--feedlog-accent-foreground:oklch(0.985 0 0);--feedlog-border:oklch(0.269 0 0);--feedlog-input:oklch(0.269 0 0);--feedlog-ring:oklch(0.439 0 0);--feedlog-destructive:oklch(0.396 0.141 25.723)}button{display:inline-flex;align-items:center;justify-content:center;gap:0.5rem;white-space:nowrap;font-size:0.875rem;font-weight:500;border-radius:calc(var(--feedlog-radius) - 2px);border:1px solid transparent;cursor:pointer;transition:all 0.15s ease;outline:none;font-family:inherit}button:disabled{opacity:0.5;cursor:not-allowed;pointer-events:none}button:focus-visible{border-color:var(--feedlog-ring);box-shadow:0 0 0 3px color-mix(in oklab, var(--feedlog-ring) 50%, transparent)}.button-default{background-color:var(--feedlog-primary);color:var(--feedlog-primary-foreground);border-color:transparent}.button-default:hover:not(:disabled){background-color:color-mix(in oklab, var(--feedlog-primary) 90%, transparent)}.button-outline{background-color:var(--feedlog-background);color:var(--feedlog-foreground);border-color:var(--feedlog-border)}.button-outline:hover:not(:disabled){background-color:var(--feedlog-accent);color:var(--feedlog-accent-foreground)}:host(.dark) .button-outline{background-color:transparent;border-color:var(--feedlog-input)}:host(.dark) .button-outline:hover:not(:disabled){background-color:color-mix(in oklab, var(--feedlog-accent) 50%, transparent)}.button-ghost{background-color:transparent;color:var(--feedlog-foreground);border-color:transparent}.button-ghost:hover:not(:disabled){background-color:var(--feedlog-accent);color:var(--feedlog-accent-foreground)}.button-destructive{background-color:var(--feedlog-destructive);color:#ffffff;border-color:transparent}.button-destructive:hover:not(:disabled){background-color:color-mix(in oklab, var(--feedlog-destructive) 90%, transparent)}:host(.dark) .button-destructive{background-color:color-mix(in oklab, var(--feedlog-destructive) 60%, transparent)}.button-size-sm{height:2rem;padding:0 0.75rem;font-size:0.75rem}.button-size-sm:has(svg:only-child){width:2rem;padding:0}.button-size-default{height:2.25rem;padding:0.5rem 1rem}.button-size-lg{height:2.5rem;padding:0.625rem 1.5rem;font-size:1rem}button svg{pointer-events:none;flex-shrink:0;width:1rem;height:1rem}`;
|
|
6
6
|
|
|
@@ -1637,7 +1637,7 @@ const FeedlogIssueComponent = class {
|
|
|
1637
1637
|
};
|
|
1638
1638
|
FeedlogIssueComponent.style = feedlogIssueCss();
|
|
1639
1639
|
|
|
1640
|
-
const feedlogIssuesListCss = () => `:host{display:block;--feedlog-muted-foreground:#64748b;--feedlog-foreground:oklch(0.145 0 0);--feedlog-empty-illustration-bg:oklch(0.96 0.01 260);--feedlog-empty-illustration-stroke:oklch(0.75 0.02 260);--feedlog-empty-illustration-muted:oklch(0.82 0.01 260)}:host(.dark){--feedlog-muted-foreground:oklch(0.72 0.02 260);--feedlog-foreground:oklch(0.985 0 0);--feedlog-empty-illustration-bg:oklch(0.28 0.02 260);--feedlog-empty-illustration-stroke:oklch(0.45 0.02 260);--feedlog-empty-illustration-muted:oklch(0.38 0.01 260)}.issues-list{display:flex;flex-direction:column;gap:0.5rem}.empty-state{text-align:center;padding:3rem 1.5rem;color:var(--feedlog-muted-foreground);font-size:0.875rem}.empty-state-content{display:flex;flex-direction:column;align-items:center;text-align:center;max-width:20rem}.empty-state-illustration{margin-bottom:1.5rem;opacity:0.9}.empty-state-title{margin:0 0 0.5rem 0;font-size:1.125rem;font-weight:600;color:var(--feedlog-foreground);line-height:1.4}.empty-state-message{margin:0;font-size:0.875rem;color:var(--feedlog-muted-foreground);line-height:1.5}`;
|
|
1640
|
+
const feedlogIssuesListCss = () => `:host{display:block;--feedlog-muted-foreground:#64748b;--feedlog-foreground:oklch(0.145 0 0);--feedlog-empty-illustration-bg:oklch(0.96 0.01 260);--feedlog-empty-illustration-stroke:oklch(0.75 0.02 260);--feedlog-empty-illustration-muted:oklch(0.82 0.01 260)}:host(.dark){--feedlog-muted-foreground:oklch(0.72 0.02 260);--feedlog-foreground:oklch(0.985 0 0);--feedlog-empty-illustration-bg:oklch(0.28 0.02 260);--feedlog-empty-illustration-stroke:oklch(0.45 0.02 260);--feedlog-empty-illustration-muted:oklch(0.38 0.01 260)}.issues-list{display:flex;flex-direction:column;gap:0.5rem}.empty-state{text-align:center;padding:3rem 1.5rem;color:var(--feedlog-muted-foreground);font-size:0.875rem}.empty-state-content{display:flex;flex-direction:column;align-items:center;text-align:center;max-width:20rem}.empty-state-illustration{margin-bottom:1.5rem;opacity:0.9}.empty-state-title{margin:0 0 0.5rem 0;font-size:1.125rem;font-weight:600;color:var(--feedlog-foreground);line-height:1.4}.empty-state-message{margin:0;font-size:0.875rem;color:var(--feedlog-muted-foreground);line-height:1.5}.pagination{display:flex;align-items:center;justify-content:center;gap:0.25rem;margin-top:1.5rem;flex-wrap:wrap}.pagination-btn{min-width:2rem;height:2rem;padding:0 0.5rem;color:var(--feedlog-foreground);background:transparent;border:1px solid var(--feedlog-border, oklch(0.9 0 0));border-radius:var(--feedlog-radius, 0.375rem);font-size:0.875rem;font-weight:500;cursor:pointer;transition:background-color 0.15s, border-color 0.15s}.pagination-btn:hover:not(:disabled){background:var(--feedlog-muted, oklch(0.96 0 0))}.pagination-btn[aria-current='page']{background:var(--feedlog-accent-color, oklch(0.55 0.2 250));color:white;border-color:var(--feedlog-accent-color, oklch(0.55 0.2 250))}.pagination-btn:disabled{opacity:0.5;cursor:not-allowed}.pagination-arrow{font-size:1.25rem;line-height:1}.pagination-ellipsis{padding:0 0.25rem;color:var(--feedlog-muted-foreground);font-size:0.875rem}:host(.dark) .pagination-btn{border-color:oklch(0.4 0.02 260)}:host(.dark) .pagination-btn:hover:not(:disabled){background:oklch(0.35 0.02 260)}`;
|
|
1641
1641
|
|
|
1642
1642
|
const FeedlogIssuesList = class {
|
|
1643
1643
|
constructor(hostRef) {
|
|
@@ -1651,20 +1651,73 @@ const FeedlogIssuesList = class {
|
|
|
1651
1651
|
* Theme variant: 'light' or 'dark'
|
|
1652
1652
|
*/
|
|
1653
1653
|
this.theme = 'light';
|
|
1654
|
+
this.currentPage = 1;
|
|
1654
1655
|
this.handleUpvote = (event) => {
|
|
1655
1656
|
event.stopPropagation();
|
|
1656
1657
|
this.feedlogUpvote.emit(event.detail);
|
|
1657
1658
|
};
|
|
1658
1659
|
}
|
|
1660
|
+
resetPage() {
|
|
1661
|
+
this.currentPage = 1;
|
|
1662
|
+
}
|
|
1659
1663
|
renderEmptyStateIllustration() {
|
|
1660
1664
|
return (index.h("svg", { class: "empty-state-illustration", xmlns: "http://www.w3.org/2000/svg", width: "120", height: "96", viewBox: "0 0 120 96", fill: "none", "aria-hidden": "true" }, index.h("path", { d: "M20 36h80v44c0 4.4-3.6 8-8 8H28c-4.4 0-8-3.6-8-8V36z", fill: "var(--feedlog-empty-illustration-bg)", stroke: "var(--feedlog-empty-illustration-stroke)", "stroke-width": "1.5", "stroke-linejoin": "round" }), index.h("path", { d: "M20 36l20-24h40l20 24", fill: "none", stroke: "var(--feedlog-empty-illustration-stroke)", "stroke-width": "1.5", "stroke-linecap": "round", "stroke-linejoin": "round" }), index.h("path", { d: "M44 52h32M44 60h24M44 68h28", stroke: "var(--feedlog-empty-illustration-muted)", "stroke-width": "1.25", "stroke-linecap": "round" })));
|
|
1661
1665
|
}
|
|
1666
|
+
getVisibleIssues() {
|
|
1667
|
+
if (this.issues.length === 0)
|
|
1668
|
+
return [];
|
|
1669
|
+
if (this.limit == null || this.issues.length <= this.limit) {
|
|
1670
|
+
return this.issues;
|
|
1671
|
+
}
|
|
1672
|
+
const offset = (this.currentPage - 1) * this.limit;
|
|
1673
|
+
return this.issues.slice(offset, offset + this.limit);
|
|
1674
|
+
}
|
|
1675
|
+
getPageNumbers() {
|
|
1676
|
+
if (this.limit == null)
|
|
1677
|
+
return [];
|
|
1678
|
+
const totalPages = Math.ceil(this.issues.length / this.limit);
|
|
1679
|
+
if (totalPages <= 1)
|
|
1680
|
+
return [];
|
|
1681
|
+
const toShow = new Set([1, totalPages]);
|
|
1682
|
+
const start = Math.max(1, this.currentPage - 1);
|
|
1683
|
+
const end = Math.min(totalPages, this.currentPage + 1);
|
|
1684
|
+
for (let i = start; i <= end; i++)
|
|
1685
|
+
toShow.add(i);
|
|
1686
|
+
const sorted = Array.from(toShow).sort((a, b) => a - b);
|
|
1687
|
+
const result = [];
|
|
1688
|
+
for (let i = 0; i < sorted.length; i++) {
|
|
1689
|
+
if (i > 0 && sorted[i] - sorted[i - 1] > 1)
|
|
1690
|
+
result.push('ellipsis');
|
|
1691
|
+
result.push(sorted[i]);
|
|
1692
|
+
}
|
|
1693
|
+
return result;
|
|
1694
|
+
}
|
|
1695
|
+
goToPage(page) {
|
|
1696
|
+
const totalPages = this.limit != null ? Math.ceil(this.issues.length / this.limit) : 1;
|
|
1697
|
+
this.currentPage = Math.max(1, Math.min(page, totalPages));
|
|
1698
|
+
}
|
|
1699
|
+
renderPagination() {
|
|
1700
|
+
if (this.limit == null || this.issues.length <= this.limit)
|
|
1701
|
+
return null;
|
|
1702
|
+
const totalPages = Math.ceil(this.issues.length / this.limit);
|
|
1703
|
+
const pageNumbers = this.getPageNumbers();
|
|
1704
|
+
return (index.h("nav", { class: "pagination", "aria-label": "Issues pagination" }, index.h("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' ? (index.h("span", { key: i, class: "pagination-ellipsis", "aria-hidden": "true" }, "\u2026")) : (index.h("button", { key: i, type: "button", class: "pagination-btn", "aria-current": p === this.currentPage ? 'page' : undefined, onClick: () => this.goToPage(p) }, p))), index.h("button", { type: "button", class: "pagination-btn pagination-arrow", "aria-label": "Next page", disabled: this.currentPage >= totalPages, onClick: () => this.goToPage(this.currentPage + 1) }, "\u203A")));
|
|
1705
|
+
}
|
|
1662
1706
|
render() {
|
|
1663
|
-
|
|
1707
|
+
const visibleIssues = this.getVisibleIssues();
|
|
1708
|
+
return (index.h(index.Host, { key: '474f5ca0d8edc94a8e9a03d83c6a977270391d65', class: this.theme === 'dark' ? 'dark' : '' }, index.h("div", { key: '8f2f8125653ec5f80b167945a33cefe483c1a001', class: "issues-list" }, visibleIssues.length === 0 ? (index.h("div", { class: "empty-state" }, this.emptyStateTitle && this.emptyStateMessage ? (index.h("div", { class: "empty-state-content" }, this.renderEmptyStateIllustration(), index.h("h2", { class: "empty-state-title" }, this.emptyStateTitle), index.h("p", { class: "empty-state-message" }, this.emptyStateMessage))) : (index.h("p", null, "No issues found")))) : (visibleIssues.map(issue => {
|
|
1664
1709
|
var _a, _b;
|
|
1665
1710
|
return (index.h("feedlog-issue", { key: issue.id, issue: issue, issueUrl: (_b = (_a = this.getIssueUrl) === null || _a === void 0 ? void 0 : _a.call(this, issue)) !== null && _b !== void 0 ? _b : undefined, theme: this.theme, onFeedlogUpvote: (e) => this.handleUpvote(e) }));
|
|
1666
|
-
})))));
|
|
1667
|
-
}
|
|
1711
|
+
}))), this.renderPagination()));
|
|
1712
|
+
}
|
|
1713
|
+
static get watchers() { return {
|
|
1714
|
+
"issues": [{
|
|
1715
|
+
"resetPage": 0
|
|
1716
|
+
}],
|
|
1717
|
+
"limit": [{
|
|
1718
|
+
"resetPage": 0
|
|
1719
|
+
}]
|
|
1720
|
+
}; }
|
|
1668
1721
|
};
|
|
1669
1722
|
FeedlogIssuesList.style = feedlogIssuesListCss();
|
|
1670
1723
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var index = require('./index-
|
|
3
|
+
var index = require('./index-Bk1-M_w_.js');
|
|
4
4
|
|
|
5
5
|
const feedlogCardCss = () => `:host{display:block;font-family:ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, 'Liberation Mono', monospace;--feedlog-card:#ffffff;--feedlog-card-foreground:oklch(0.145 0 0);--feedlog-border:rgba(0, 0, 0, 0.1);--feedlog-radius:0.625rem;--feedlog-card-shadow:0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);--feedlog-card-hover-shadow:0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1)}:host(.dark){--feedlog-card:oklch(0.145 0 0);--feedlog-card-foreground:oklch(0.985 0 0);--feedlog-border:oklch(0.269 0 0);--feedlog-card-shadow:0 4px 6px -1px rgba(0, 0, 0, 0.3), 0 2px 4px -2px rgba(0, 0, 0, 0.3);--feedlog-card-hover-shadow:0 10px 15px -3px rgba(0, 0, 0, 0.3), 0 4px 6px -4px rgba(0, 0, 0, 0.3)}.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-card-shadow);transition:box-shadow 0.15s ease;position:relative}.feedlog-card:hover{box-shadow:var(--feedlog-card-hover-shadow)}::slotted([slot="header"]){display:block}::slotted([slot="content"]){display:block}::slotted([slot="footer"]){display:block}`;
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var index = require('./index-
|
|
3
|
+
var index = require('./index-Bk1-M_w_.js');
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* HTML and XSS sanitization utilities
|
|
@@ -553,8 +553,15 @@ const FeedlogIssuesClient = class {
|
|
|
553
553
|
}
|
|
554
554
|
}
|
|
555
555
|
render() {
|
|
556
|
-
|
|
556
|
+
var _a, _b;
|
|
557
|
+
// Explicitly forward --feedlog-background from host to child (inheritance can fail across nested shadow DOM)
|
|
558
|
+
const hostBg = (_b = (_a = this.el) === null || _a === void 0 ? void 0 : _a.style) === null || _b === void 0 ? void 0 : _b.getPropertyValue('--feedlog-background');
|
|
559
|
+
const style = hostBg
|
|
560
|
+
? { '--feedlog-background': hostBg }
|
|
561
|
+
: undefined;
|
|
562
|
+
return (index.h("feedlog-issues", { key: '15ae96d7d7b51964026f873f8b97e10530ed02b4', 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() }));
|
|
557
563
|
}
|
|
564
|
+
get el() { return index.getElement(this); }
|
|
558
565
|
};
|
|
559
566
|
|
|
560
567
|
exports.feedlog_issues_client = FeedlogIssuesClient;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var index = require('./index-
|
|
3
|
+
var index = require('./index-Bk1-M_w_.js');
|
|
4
4
|
|
|
5
|
-
const feedlogIssuesCss = () => `:host{display:block;font-family:ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, 'Liberation Mono', monospace;--feedlog-theme-bg:#ffffff;--feedlog-foreground:oklch(0.145 0 0);--feedlog-card:#ffffff;--feedlog-card-foreground:oklch(0.145 0 0);--feedlog-muted:#ececf0;--feedlog-muted-foreground:#717182;--feedlog-border:rgba(0, 0, 0, 0.1);--feedlog-accent-color:#2563eb;--feedlog-destructive:#d4183d;--feedlog-blue-400:oklch(0.707 0.165 254.624);--feedlog-blue-600:oklch(0.546 0.245 262.881);--feedlog-blue-100:oklch(0.932 0.032 255.585);--feedlog-red-100:#fce7f3;--feedlog-red-400:#f472b6;--feedlog-red-600:#db2777;--feedlog-radius:0.625rem;--feedlog-gap:0.5rem;--feedlog-padding:2rem;--feedlog-shadow:0 1px 3px 0 rgba(0, 0, 0, 0.08), 0 1px 2px -1px rgba(0, 0, 0, 0.08)}:host(.dark){--feedlog-theme-bg:oklch(0.18 0.01 260);--feedlog-foreground:oklch(0.985 0 0);--feedlog-card:oklch(0.24 0.01 260);--feedlog-card-foreground:oklch(0.985 0 0);--feedlog-muted:oklch(0.32 0.01 260);--feedlog-muted-foreground:oklch(0.72 0.02 260);--feedlog-border:oklch(0.34 0.01 260);--feedlog-accent-color:#3b82f6;--feedlog-destructive:oklch(0.396 0.141 25.723);--feedlog-blue-400:oklch(0.707 0.165 254.624);--feedlog-blue-600:oklch(0.546 0.245 262.881);--feedlog-blue-900-30:color-mix(in oklab, oklch(0.379 0.146 265.522) 30%, transparent);--feedlog-red-900-30:color-mix(in oklab, oklch(0.396 0.141 25.723) 30%, transparent);--feedlog-shadow:0 1px 3px 0 rgba(0, 0, 0, 0.3)}.issues-container{min-height:
|
|
5
|
+
const feedlogIssuesCss = () => `:host{display:block;font-family:ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, 'Liberation Mono', monospace;--feedlog-theme-bg:#ffffff;--feedlog-foreground:oklch(0.145 0 0);--feedlog-card:#ffffff;--feedlog-card-foreground:oklch(0.145 0 0);--feedlog-muted:#ececf0;--feedlog-muted-foreground:#717182;--feedlog-border:rgba(0, 0, 0, 0.1);--feedlog-accent-color:#2563eb;--feedlog-destructive:#d4183d;--feedlog-blue-400:oklch(0.707 0.165 254.624);--feedlog-blue-600:oklch(0.546 0.245 262.881);--feedlog-blue-100:oklch(0.932 0.032 255.585);--feedlog-red-100:#fce7f3;--feedlog-red-400:#f472b6;--feedlog-red-600:#db2777;--feedlog-radius:0.625rem;--feedlog-gap:0.5rem;--feedlog-padding:2rem;--feedlog-min-height:100%;--feedlog-shadow:0 1px 3px 0 rgba(0, 0, 0, 0.08), 0 1px 2px -1px rgba(0, 0, 0, 0.08)}:host(.dark){--feedlog-theme-bg:oklch(0.18 0.01 260);--feedlog-foreground:oklch(0.985 0 0);--feedlog-card:oklch(0.24 0.01 260);--feedlog-card-foreground:oklch(0.985 0 0);--feedlog-muted:oklch(0.32 0.01 260);--feedlog-muted-foreground:oklch(0.72 0.02 260);--feedlog-border:oklch(0.34 0.01 260);--feedlog-accent-color:#3b82f6;--feedlog-destructive:oklch(0.396 0.141 25.723);--feedlog-blue-400:oklch(0.707 0.165 254.624);--feedlog-blue-600:oklch(0.546 0.245 262.881);--feedlog-blue-900-30:color-mix(in oklab, oklch(0.379 0.146 265.522) 30%, transparent);--feedlog-red-900-30:color-mix(in oklab, oklch(0.396 0.141 25.723) 30%, transparent);--feedlog-shadow:0 1px 3px 0 rgba(0, 0, 0, 0.3)}.issues-container{min-height: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)}.issues-header{margin-bottom:1.5rem;display:flex;align-items:flex-start;justify-content:space-between}.header-content{flex:1}.issues-title{color:var(--feedlog-foreground);margin:0 0 0.25rem 0;font-size:1.5rem;font-weight:500;line-height:1.5}.issues-subtitle{color:var(--feedlog-muted-foreground);font-size:0.875rem;margin:0}.loading-state{padding:0}.loading-skeletons{display:flex;flex-direction:column;gap:var(--feedlog-gap)}.skeleton-card{background-color:var(--feedlog-card);border:1px solid var(--feedlog-border);border-radius:var(--feedlog-radius);box-shadow:var(--feedlog-shadow);position:relative;overflow:hidden}.skeleton-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--feedlog-muted)}.skeleton-content{padding:1.25rem;padding-left:calc(1.25rem + 3px);display:flex;flex-direction:column;gap:0.875rem}.skeleton-header{display:flex;align-items:center;justify-content:space-between;gap:0.75rem}.skeleton-badge{width:4.5rem;height:1.25rem;border-radius:0.375rem;background-color:var(--feedlog-muted);animation:skeleton-pulse 1.5s ease-in-out infinite}.skeleton-timestamp{width:3rem;height:0.75rem;border-radius:0.25rem;background-color:var(--feedlog-muted);animation:skeleton-pulse 1.5s ease-in-out infinite 0.2s}.skeleton-main{display:flex;flex-direction:column;gap:0.5rem}.skeleton-title{height:0.9375rem;border-radius:0.25rem;background-color:var(--feedlog-muted);animation:skeleton-pulse 1.5s ease-in-out infinite 0.1s;width:85%}.skeleton-body{display:flex;flex-direction:column;gap:0.375rem}.skeleton-line{height:0.8125rem;border-radius:0.25rem;background-color:var(--feedlog-muted);animation:skeleton-pulse 1.5s ease-in-out infinite 0.15s;width:100%}.skeleton-line.short{width:70%}.skeleton-repo{width:6rem;height:0.75rem;border-radius:0.25rem;background-color:var(--feedlog-muted);animation:skeleton-pulse 1.5s ease-in-out infinite 0.25s}.skeleton-footer{display:flex;justify-content:flex-end}.skeleton-upvote{width:2.5rem;height:2rem;border-radius:0.5rem;background-color:var(--feedlog-muted);animation:skeleton-pulse 1.5s ease-in-out infinite 0.3s}@keyframes skeleton-pulse{0%,100%{opacity:1}50%{opacity:0.5}}.error-state{display:flex;align-items:center;justify-content:center;padding:3rem 2rem;min-height:12rem}.error-state-content{display:flex;flex-direction:column;align-items:center;text-align:center;max-width:20rem;padding:2rem}.error-icon{color:var(--feedlog-muted-foreground);opacity:0.8;margin-bottom:1rem}.error-state-title{margin:0 0 0.5rem 0;font-size:1.125rem;font-weight:600;color:var(--feedlog-foreground);line-height:1.4}.error-state-message{margin:0 0 1.25rem 0;font-size:0.875rem;color:var(--feedlog-muted-foreground);line-height:1.5}.load-more-container{display:flex;justify-content:center;padding:2rem 0;gap:1rem}`;
|
|
6
6
|
|
|
7
7
|
const FeedlogIssues = class {
|
|
8
8
|
constructor(hostRef) {
|
|
@@ -57,13 +57,13 @@ const FeedlogIssues = class {
|
|
|
57
57
|
}
|
|
58
58
|
renderIssuesList() {
|
|
59
59
|
var _a, _b;
|
|
60
|
-
return (index.h("feedlog-issues-list", { issues: this.issues, theme: this.currentTheme, getIssueUrl: this.getIssueUrl, emptyStateTitle: (_a = this.emptyStateTitle) !== null && _a !== void 0 ? _a : 'No updates yet', emptyStateMessage: (_b = this.emptyStateMessage) !== null && _b !== void 0 ? _b : 'Check back later for new updates.', onFeedlogUpvote: (e) => this.handleUpvote(e) }));
|
|
60
|
+
return (index.h("feedlog-issues-list", { issues: this.issues, limit: this.limit, theme: this.currentTheme, getIssueUrl: this.getIssueUrl, emptyStateTitle: (_a = this.emptyStateTitle) !== null && _a !== void 0 ? _a : 'No updates yet', emptyStateMessage: (_b = this.emptyStateMessage) !== null && _b !== void 0 ? _b : 'Check back later for new updates.', onFeedlogUpvote: (e) => this.handleUpvote(e) }));
|
|
61
61
|
}
|
|
62
62
|
render() {
|
|
63
63
|
const containerStyle = {
|
|
64
64
|
maxWidth: this.maxWidth,
|
|
65
65
|
};
|
|
66
|
-
return (index.h(index.Host, { key: '
|
|
66
|
+
return (index.h(index.Host, { key: '96686863c5eb831e64993c681c7780e035c0e2b2', class: this.currentTheme === 'dark' ? 'dark' : '' }, index.h("div", { key: '54d01678053f4fe58eb547f9954f497402495a83', class: "issues-container", style: containerStyle }, (this.heading || this.subtitle) && (index.h("header", { key: '889aa47cb4ceea60ca4a5615f512793d726059d9', class: "issues-header" }, index.h("div", { key: '8b4ac6a9ed0c6120ec838a1329416f3471cd2751', class: "header-content" }, this.heading && index.h("h1", { key: 'cfc52f28bc5131715a5c7a0b9231e440b4c0b67c', class: "issues-title" }, this.heading), this.subtitle && index.h("p", { key: '8b4488546ceb6e807d689b8fca2b2fd85722f824', class: "issues-subtitle" }, this.subtitle)))), this.loading && (index.h("div", { key: '35c382f4417893c17951b73dedb12452e805668c', class: "loading-state", role: "status", "aria-label": "Loading issues" }, index.h("div", { key: '2d83dd9d40bf7b2a14744ee4a715108a9cdebd60', class: "loading-skeletons" }, [1, 2, 3].map(i => (index.h("div", { key: i, class: "skeleton-card" }, index.h("div", { class: "skeleton-content" }, index.h("div", { class: "skeleton-header" }, index.h("div", { class: "skeleton-badge" }), index.h("div", { class: "skeleton-timestamp" })), index.h("div", { class: "skeleton-main" }, index.h("div", { class: "skeleton-title" }), index.h("div", { class: "skeleton-body" }, index.h("div", { class: "skeleton-line" }), index.h("div", { class: "skeleton-line short" })), index.h("div", { class: "skeleton-repo" })), index.h("div", { class: "skeleton-footer" }, index.h("div", { class: "skeleton-upvote" }))))))))), this.error && (index.h("div", { key: '43efd42ce0d213131ba97d42d1f98c52515ea9fd', class: "error-state", role: "alert" }, index.h("div", { key: 'ad22b0378e290556c896c628dadabf6091bbf972', class: "error-state-content" }, this.renderErrorIcon(), index.h("h2", { key: '9a9779f52de12aa2241ba9ddda6cf8297a4af84d', class: "error-state-title" }, "Something went wrong"), index.h("p", { key: 'c697040d37909d882730e5d9ab3a3b147061fc51', class: "error-state-message" }, this.error)))), !this.loading && !this.error && (index.h("div", { key: 'afc12552ff7ccc808c7191c1dd1e26d3b95bf2fd' }, this.renderIssuesList(), this.hasMore && (index.h("div", { key: '0f6c84bdeda386e4eec439fb80f4ee1606b9b559', class: "load-more-container" }, index.h("feedlog-button", { key: 'e6983bd889a6cdfd4a4b8a06f3a6a97c2d276243', onFeedlogClick: this.handleLoadMore, disabled: this.isLoadingMore, variant: "outline" }, this.isLoadingMore ? 'Loading...' : 'Load More Issues'))))))));
|
|
67
67
|
}
|
|
68
68
|
};
|
|
69
69
|
FeedlogIssues.style = feedlogIssuesCss();
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var index = require('./index-
|
|
3
|
+
var index = require('./index-Bk1-M_w_.js');
|
|
4
4
|
|
|
5
5
|
var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
|
|
6
6
|
/*
|
|
@@ -18,7 +18,7 @@ var patchBrowser = () => {
|
|
|
18
18
|
|
|
19
19
|
patchBrowser().then(async (options) => {
|
|
20
20
|
await index.globalScripts();
|
|
21
|
-
return index.bootstrapLazy([["feedlog-card.cjs",[[257,"feedlog-card"]]],["feedlog-badge.cjs",[[257,"feedlog-badge",{"variant":[1]}]]],["feedlog-button_3.cjs",[[1,"feedlog-issues-list",{"issues":[16],"theme":[1],"getIssueUrl":[16],"emptyStateTitle":[1,"empty-state-title"],"emptyStateMessage":[1,"empty-state-message"]}],[257,"feedlog-button",{"variant":[1],"size":[1],"disabled":[4],"type":[1]}],[257,"feedlog-issue",{"issue":[16],"issueUrl":[1,"issue-url"],"theme":[1]}]]],["feedlog-issues.cjs",[[1,"feedlog-issues",{"issues":[16],"maxWidth":[1,"max-width"],"theme":[1025],"heading":[1],"subtitle":[1],"emptyStateTitle":[1,"empty-state-title"],"emptyStateMessage":[1,"empty-state-message"],"loading":[4],"error":[1],"hasMore":[4,"has-more"],"isLoadingMore":[4,"is-loading-more"],"getIssueUrl":[16],"currentTheme":[32]}]]],["feedlog-issues-client.cjs",[[1,"feedlog-issues-client",{"apiKey":[1,"api-key"],"type":[1],"limit":[2],"sortBy":[1,"sort-by"],"endpoint":[1],"maxWidth":[1,"max-width"],"theme":[1],"heading":[1],"subtitle":[1],"emptyStateTitle":[1,"empty-state-title"],"emptyStateMessage":[1,"empty-state-message"],"getIssueUrl":[16],"issues":[32],"loading":[32],"error":[32],"cursor":[32],"hasMore":[32],"isLoadingMore":[32]}]]]], options);
|
|
21
|
+
return index.bootstrapLazy([["feedlog-card.cjs",[[257,"feedlog-card"]]],["feedlog-badge.cjs",[[257,"feedlog-badge",{"variant":[1]}]]],["feedlog-button_3.cjs",[[1,"feedlog-issues-list",{"issues":[16],"limit":[2],"theme":[1],"getIssueUrl":[16],"emptyStateTitle":[1,"empty-state-title"],"emptyStateMessage":[1,"empty-state-message"],"currentPage":[32]},null,{"issues":[{"resetPage":0}],"limit":[{"resetPage":0}]}],[257,"feedlog-button",{"variant":[1],"size":[1],"disabled":[4],"type":[1]}],[257,"feedlog-issue",{"issue":[16],"issueUrl":[1,"issue-url"],"theme":[1]}]]],["feedlog-issues.cjs",[[1,"feedlog-issues",{"issues":[16],"maxWidth":[1,"max-width"],"limit":[2],"theme":[1025],"heading":[1],"subtitle":[1],"emptyStateTitle":[1,"empty-state-title"],"emptyStateMessage":[1,"empty-state-message"],"loading":[4],"error":[1],"hasMore":[4,"has-more"],"isLoadingMore":[4,"is-loading-more"],"getIssueUrl":[16],"currentTheme":[32]}]]],["feedlog-issues-client.cjs",[[1,"feedlog-issues-client",{"apiKey":[1,"api-key"],"type":[1],"limit":[2],"sortBy":[1,"sort-by"],"endpoint":[1],"maxWidth":[1,"max-width"],"theme":[1],"heading":[1],"subtitle":[1],"emptyStateTitle":[1,"empty-state-title"],"emptyStateMessage":[1,"empty-state-message"],"getIssueUrl":[16],"issues":[32],"loading":[32],"error":[32],"cursor":[32],"hasMore":[32],"isLoadingMore":[32]}]]]], options);
|
|
22
22
|
});
|
|
23
23
|
|
|
24
24
|
exports.setNonce = index.setNonce;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
const NAMESPACE = 'feedlog-toolkit';
|
|
4
|
-
const BUILD = /* feedlog-toolkit */ { hotModuleReplacement: false, hydratedSelectorName: "hydrated", lazyLoad: true, propChangeCallback:
|
|
4
|
+
const BUILD = /* feedlog-toolkit */ { hotModuleReplacement: false, hydratedSelectorName: "hydrated", lazyLoad: true, propChangeCallback: true, state: true, updatable: true};
|
|
5
5
|
|
|
6
6
|
const globalScripts = () => {};
|
|
7
7
|
const globalStyles = ":root{--feedlog-font-size:16px;--feedlog-background:#ffffff;--feedlog-foreground:oklch(0.145 0 0);--feedlog-card:#ffffff;--feedlog-card-foreground:oklch(0.145 0 0);--feedlog-popover:oklch(1 0 0);--feedlog-popover-foreground:oklch(0.145 0 0);--feedlog-primary:#030213;--feedlog-primary-foreground:oklch(1 0 0);--feedlog-secondary:oklch(0.95 0.0058 264.53);--feedlog-secondary-foreground:#030213;--feedlog-muted:#ececf0;--feedlog-muted-foreground:#717182;--feedlog-accent:#e9ebef;--feedlog-accent-foreground:#030213;--feedlog-destructive:#d4183d;--feedlog-destructive-foreground:#ffffff;--feedlog-border:rgba(0, 0, 0, 0.1);--feedlog-input:transparent;--feedlog-input-background:#f3f3f5;--feedlog-switch-background:#cbced4;--feedlog-ring:oklch(0.708 0 0);--feedlog-radius:0.625rem;--feedlog-blue-100:oklch(0.932 0.032 255.585);--feedlog-blue-400:oklch(0.707 0.165 254.624);--feedlog-blue-500:oklch(0.623 0.214 259.815);--feedlog-blue-600:oklch(0.546 0.245 262.881);--feedlog-blue-700:oklch(0.488 0.243 264.376);--feedlog-blue-900:oklch(0.379 0.146 265.522);--feedlog-font-family:ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, 'Liberation Mono', monospace}.dark{--feedlog-background:oklch(0.145 0 0);--feedlog-foreground:oklch(0.985 0 0);--feedlog-card:oklch(0.145 0 0);--feedlog-card-foreground:oklch(0.985 0 0);--feedlog-popover:oklch(0.145 0 0);--feedlog-popover-foreground:oklch(0.985 0 0);--feedlog-primary:oklch(0.985 0 0);--feedlog-primary-foreground:oklch(0.205 0 0);--feedlog-secondary:oklch(0.269 0 0);--feedlog-secondary-foreground:oklch(0.985 0 0);--feedlog-muted:oklch(0.269 0 0);--feedlog-muted-foreground:oklch(0.708 0 0);--feedlog-accent:oklch(0.269 0 0);--feedlog-accent-foreground:oklch(0.985 0 0);--feedlog-destructive:oklch(0.396 0.141 25.723);--feedlog-destructive-foreground:oklch(0.637 0.237 25.331);--feedlog-border:oklch(0.269 0 0);--feedlog-input:oklch(0.269 0 0);--feedlog-ring:oklch(0.439 0 0)}";
|
|
@@ -2670,6 +2670,7 @@ var setValue = (ref, propName, newVal, cmpMeta) => {
|
|
|
2670
2670
|
`Couldn't find host element for "${cmpMeta.$tagName$}" as it is unknown to this Stencil runtime. This usually happens when integrating a 3rd party Stencil component with another Stencil component or application. Please reach out to the maintainers of the 3rd party Stencil component or report this on the Stencil Discord server (https://chat.stenciljs.com) or comment on this similar [GitHub issue](https://github.com/stenciljs/core/issues/5457).`
|
|
2671
2671
|
);
|
|
2672
2672
|
}
|
|
2673
|
+
const elm = hostRef.$hostElement$ ;
|
|
2673
2674
|
const oldVal = hostRef.$instanceValues$.get(propName);
|
|
2674
2675
|
const flags = hostRef.$flags$;
|
|
2675
2676
|
const instance = hostRef.$lazyInstance$ ;
|
|
@@ -2680,6 +2681,27 @@ var setValue = (ref, propName, newVal, cmpMeta) => {
|
|
|
2680
2681
|
const didValueChange = newVal !== oldVal && !areBothNaN;
|
|
2681
2682
|
if ((!(flags & 8 /* isConstructingInstance */) || oldVal === void 0) && didValueChange) {
|
|
2682
2683
|
hostRef.$instanceValues$.set(propName, newVal);
|
|
2684
|
+
if (cmpMeta.$watchers$) {
|
|
2685
|
+
const watchMethods = cmpMeta.$watchers$[propName];
|
|
2686
|
+
if (watchMethods) {
|
|
2687
|
+
watchMethods.map((watcher) => {
|
|
2688
|
+
try {
|
|
2689
|
+
const [[watchMethodName, watcherFlags]] = Object.entries(watcher);
|
|
2690
|
+
if (flags & 128 /* isWatchReady */ || watcherFlags & 1 /* Immediate */) {
|
|
2691
|
+
if (!instance) {
|
|
2692
|
+
hostRef.$fetchedCbList$.push(() => {
|
|
2693
|
+
hostRef.$lazyInstance$[watchMethodName](newVal, oldVal, propName);
|
|
2694
|
+
});
|
|
2695
|
+
} else {
|
|
2696
|
+
instance[watchMethodName](newVal, oldVal, propName);
|
|
2697
|
+
}
|
|
2698
|
+
}
|
|
2699
|
+
} catch (e) {
|
|
2700
|
+
consoleError(e, elm);
|
|
2701
|
+
}
|
|
2702
|
+
});
|
|
2703
|
+
}
|
|
2704
|
+
}
|
|
2683
2705
|
if ((flags & (2 /* hasRendered */ | 16 /* isQueuedForUpdate */)) === 2 /* hasRendered */) {
|
|
2684
2706
|
if (instance.componentShouldUpdate) {
|
|
2685
2707
|
if (instance.componentShouldUpdate(newVal, oldVal, propName) === false) {
|
|
@@ -2696,6 +2718,17 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
|
|
|
2696
2718
|
var _a, _b;
|
|
2697
2719
|
const prototype = Cstr.prototype;
|
|
2698
2720
|
if (cmpMeta.$members$ || BUILD.propChangeCallback) {
|
|
2721
|
+
{
|
|
2722
|
+
if (Cstr.watchers && !cmpMeta.$watchers$) {
|
|
2723
|
+
cmpMeta.$watchers$ = Cstr.watchers;
|
|
2724
|
+
}
|
|
2725
|
+
if (Cstr.deserializers && !cmpMeta.$deserializers$) {
|
|
2726
|
+
cmpMeta.$deserializers$ = Cstr.deserializers;
|
|
2727
|
+
}
|
|
2728
|
+
if (Cstr.serializers && !cmpMeta.$serializers$) {
|
|
2729
|
+
cmpMeta.$serializers$ = Cstr.serializers;
|
|
2730
|
+
}
|
|
2731
|
+
}
|
|
2699
2732
|
const members = Object.entries((_a = cmpMeta.$members$) != null ? _a : {});
|
|
2700
2733
|
members.map(([memberName, [memberFlags]]) => {
|
|
2701
2734
|
if ((memberFlags & 31 /* Prop */ || (flags & 2 /* proxyState */) && memberFlags & 32 /* State */)) {
|
|
@@ -2845,6 +2878,11 @@ var initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {
|
|
|
2845
2878
|
throw new Error(`Constructor for "${cmpMeta.$tagName$}#${hostRef.$modeName$}" was not found`);
|
|
2846
2879
|
}
|
|
2847
2880
|
if (!Cstr.isProxied) {
|
|
2881
|
+
{
|
|
2882
|
+
cmpMeta.$watchers$ = Cstr.watchers;
|
|
2883
|
+
cmpMeta.$serializers$ = Cstr.serializers;
|
|
2884
|
+
cmpMeta.$deserializers$ = Cstr.deserializers;
|
|
2885
|
+
}
|
|
2848
2886
|
proxyComponent(Cstr, cmpMeta, 2 /* proxyState */);
|
|
2849
2887
|
Cstr.isProxied = true;
|
|
2850
2888
|
}
|
|
@@ -2860,6 +2898,9 @@ var initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {
|
|
|
2860
2898
|
{
|
|
2861
2899
|
hostRef.$flags$ &= -9 /* isConstructingInstance */;
|
|
2862
2900
|
}
|
|
2901
|
+
{
|
|
2902
|
+
hostRef.$flags$ |= 128 /* isWatchReady */;
|
|
2903
|
+
}
|
|
2863
2904
|
endNewInstance();
|
|
2864
2905
|
fireConnectedCallback(hostRef.$lazyInstance$, elm);
|
|
2865
2906
|
} else {
|
|
@@ -2980,6 +3021,7 @@ var bootstrapLazy = (lazyBundles, options = {}) => {
|
|
|
2980
3021
|
let hasSlotRelocation = false;
|
|
2981
3022
|
lazyBundles.map((lazyBundle) => {
|
|
2982
3023
|
lazyBundle[1].map((compactMeta) => {
|
|
3024
|
+
var _a2, _b, _c;
|
|
2983
3025
|
const cmpMeta = {
|
|
2984
3026
|
$flags$: compactMeta[0],
|
|
2985
3027
|
$tagName$: compactMeta[1],
|
|
@@ -2992,6 +3034,11 @@ var bootstrapLazy = (lazyBundles, options = {}) => {
|
|
|
2992
3034
|
{
|
|
2993
3035
|
cmpMeta.$members$ = compactMeta[2];
|
|
2994
3036
|
}
|
|
3037
|
+
{
|
|
3038
|
+
cmpMeta.$watchers$ = (_a2 = compactMeta[4]) != null ? _a2 : {};
|
|
3039
|
+
cmpMeta.$serializers$ = (_b = compactMeta[5]) != null ? _b : {};
|
|
3040
|
+
cmpMeta.$deserializers$ = (_c = compactMeta[6]) != null ? _c : {};
|
|
3041
|
+
}
|
|
2995
3042
|
const tagName = transformTag(cmpMeta.$tagName$);
|
|
2996
3043
|
const HostElement = class extends HTMLElement {
|
|
2997
3044
|
// StencilLazyHost
|
|
@@ -3100,6 +3147,7 @@ function transformTag(tag) {
|
|
|
3100
3147
|
exports.Host = Host;
|
|
3101
3148
|
exports.bootstrapLazy = bootstrapLazy;
|
|
3102
3149
|
exports.createEvent = createEvent;
|
|
3150
|
+
exports.getElement = getElement;
|
|
3103
3151
|
exports.globalScripts = globalScripts;
|
|
3104
3152
|
exports.h = h;
|
|
3105
3153
|
exports.promiseResolve = promiseResolve;
|
package/dist/cjs/loader.cjs.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var index = require('./index-
|
|
3
|
+
var index = require('./index-Bk1-M_w_.js');
|
|
4
4
|
|
|
5
5
|
const defineCustomElements = async (win, options) => {
|
|
6
6
|
if (typeof window === 'undefined') return undefined;
|
|
7
7
|
await index.globalScripts();
|
|
8
|
-
return index.bootstrapLazy([["feedlog-card.cjs",[[257,"feedlog-card"]]],["feedlog-badge.cjs",[[257,"feedlog-badge",{"variant":[1]}]]],["feedlog-button_3.cjs",[[1,"feedlog-issues-list",{"issues":[16],"theme":[1],"getIssueUrl":[16],"emptyStateTitle":[1,"empty-state-title"],"emptyStateMessage":[1,"empty-state-message"]}],[257,"feedlog-button",{"variant":[1],"size":[1],"disabled":[4],"type":[1]}],[257,"feedlog-issue",{"issue":[16],"issueUrl":[1,"issue-url"],"theme":[1]}]]],["feedlog-issues.cjs",[[1,"feedlog-issues",{"issues":[16],"maxWidth":[1,"max-width"],"theme":[1025],"heading":[1],"subtitle":[1],"emptyStateTitle":[1,"empty-state-title"],"emptyStateMessage":[1,"empty-state-message"],"loading":[4],"error":[1],"hasMore":[4,"has-more"],"isLoadingMore":[4,"is-loading-more"],"getIssueUrl":[16],"currentTheme":[32]}]]],["feedlog-issues-client.cjs",[[1,"feedlog-issues-client",{"apiKey":[1,"api-key"],"type":[1],"limit":[2],"sortBy":[1,"sort-by"],"endpoint":[1],"maxWidth":[1,"max-width"],"theme":[1],"heading":[1],"subtitle":[1],"emptyStateTitle":[1,"empty-state-title"],"emptyStateMessage":[1,"empty-state-message"],"getIssueUrl":[16],"issues":[32],"loading":[32],"error":[32],"cursor":[32],"hasMore":[32],"isLoadingMore":[32]}]]]], options);
|
|
8
|
+
return index.bootstrapLazy([["feedlog-card.cjs",[[257,"feedlog-card"]]],["feedlog-badge.cjs",[[257,"feedlog-badge",{"variant":[1]}]]],["feedlog-button_3.cjs",[[1,"feedlog-issues-list",{"issues":[16],"limit":[2],"theme":[1],"getIssueUrl":[16],"emptyStateTitle":[1,"empty-state-title"],"emptyStateMessage":[1,"empty-state-message"],"currentPage":[32]},null,{"issues":[{"resetPage":0}],"limit":[{"resetPage":0}]}],[257,"feedlog-button",{"variant":[1],"size":[1],"disabled":[4],"type":[1]}],[257,"feedlog-issue",{"issue":[16],"issueUrl":[1,"issue-url"],"theme":[1]}]]],["feedlog-issues.cjs",[[1,"feedlog-issues",{"issues":[16],"maxWidth":[1,"max-width"],"limit":[2],"theme":[1025],"heading":[1],"subtitle":[1],"emptyStateTitle":[1,"empty-state-title"],"emptyStateMessage":[1,"empty-state-message"],"loading":[4],"error":[1],"hasMore":[4,"has-more"],"isLoadingMore":[4,"is-loading-more"],"getIssueUrl":[16],"currentTheme":[32]}]]],["feedlog-issues-client.cjs",[[1,"feedlog-issues-client",{"apiKey":[1,"api-key"],"type":[1],"limit":[2],"sortBy":[1,"sort-by"],"endpoint":[1],"maxWidth":[1,"max-width"],"theme":[1],"heading":[1],"subtitle":[1],"emptyStateTitle":[1,"empty-state-title"],"emptyStateMessage":[1,"empty-state-message"],"getIssueUrl":[16],"issues":[32],"loading":[32],"error":[32],"cursor":[32],"hasMore":[32],"isLoadingMore":[32]}]]]], options);
|
|
9
9
|
};
|
|
10
10
|
|
|
11
11
|
exports.setNonce = index.setNonce;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mock for @feedlog-ai/core used in tests.
|
|
3
|
+
* Mapped via Stencil testing config moduleNameMapper to avoid CI resolution issues.
|
|
4
|
+
*/
|
|
5
|
+
export const FeedlogSDK = jest.fn().mockImplementation(() => ({
|
|
6
|
+
fetchIssues: jest
|
|
7
|
+
.fn()
|
|
8
|
+
.mockResolvedValue({ issues: [], pagination: { cursor: null, hasMore: false } }),
|
|
9
|
+
toggleUpvote: jest.fn(),
|
|
10
|
+
}));
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
--feedlog-radius: 0.625rem;
|
|
23
23
|
--feedlog-gap: 0.5rem;
|
|
24
24
|
--feedlog-padding: 2rem;
|
|
25
|
+
--feedlog-min-height: 100%;
|
|
25
26
|
--feedlog-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.08), 0 1px 2px -1px rgba(0, 0, 0, 0.08);
|
|
26
27
|
}
|
|
27
28
|
|
|
@@ -45,11 +46,12 @@
|
|
|
45
46
|
|
|
46
47
|
|
|
47
48
|
.issues-container {
|
|
48
|
-
min-height:
|
|
49
|
+
min-height: var(--feedlog-min-height);
|
|
49
50
|
/* Parent can override via --feedlog-background (e.g. transparent); fallback to theme default */
|
|
50
51
|
background-color: var(--feedlog-background, var(--feedlog-theme-bg, #ffffff));
|
|
51
52
|
padding: var(--feedlog-padding);
|
|
52
53
|
margin: 0 auto;
|
|
54
|
+
border-radius: var(--feedlog-radius);
|
|
53
55
|
}
|
|
54
56
|
|
|
55
57
|
.issues-header {
|
|
@@ -55,13 +55,13 @@ export class FeedlogIssues {
|
|
|
55
55
|
}
|
|
56
56
|
renderIssuesList() {
|
|
57
57
|
var _a, _b;
|
|
58
|
-
return (h("feedlog-issues-list", { issues: this.issues, theme: this.currentTheme, getIssueUrl: this.getIssueUrl, emptyStateTitle: (_a = this.emptyStateTitle) !== null && _a !== void 0 ? _a : 'No updates yet', emptyStateMessage: (_b = this.emptyStateMessage) !== null && _b !== void 0 ? _b : 'Check back later for new updates.', onFeedlogUpvote: (e) => this.handleUpvote(e) }));
|
|
58
|
+
return (h("feedlog-issues-list", { issues: this.issues, limit: this.limit, theme: this.currentTheme, getIssueUrl: this.getIssueUrl, emptyStateTitle: (_a = this.emptyStateTitle) !== null && _a !== void 0 ? _a : 'No updates yet', emptyStateMessage: (_b = this.emptyStateMessage) !== null && _b !== void 0 ? _b : 'Check back later for new updates.', onFeedlogUpvote: (e) => this.handleUpvote(e) }));
|
|
59
59
|
}
|
|
60
60
|
render() {
|
|
61
61
|
const containerStyle = {
|
|
62
62
|
maxWidth: this.maxWidth,
|
|
63
63
|
};
|
|
64
|
-
return (h(Host, { key: '
|
|
64
|
+
return (h(Host, { key: '96686863c5eb831e64993c681c7780e035c0e2b2', class: this.currentTheme === 'dark' ? 'dark' : '' }, h("div", { key: '54d01678053f4fe58eb547f9954f497402495a83', class: "issues-container", style: containerStyle }, (this.heading || this.subtitle) && (h("header", { key: '889aa47cb4ceea60ca4a5615f512793d726059d9', class: "issues-header" }, h("div", { key: '8b4ac6a9ed0c6120ec838a1329416f3471cd2751', class: "header-content" }, this.heading && h("h1", { key: 'cfc52f28bc5131715a5c7a0b9231e440b4c0b67c', class: "issues-title" }, this.heading), this.subtitle && h("p", { key: '8b4488546ceb6e807d689b8fca2b2fd85722f824', class: "issues-subtitle" }, this.subtitle)))), this.loading && (h("div", { key: '35c382f4417893c17951b73dedb12452e805668c', class: "loading-state", role: "status", "aria-label": "Loading issues" }, h("div", { key: '2d83dd9d40bf7b2a14744ee4a715108a9cdebd60', class: "loading-skeletons" }, [1, 2, 3].map(i => (h("div", { key: i, class: "skeleton-card" }, h("div", { class: "skeleton-content" }, h("div", { class: "skeleton-header" }, h("div", { class: "skeleton-badge" }), h("div", { class: "skeleton-timestamp" })), h("div", { class: "skeleton-main" }, h("div", { class: "skeleton-title" }), h("div", { class: "skeleton-body" }, h("div", { class: "skeleton-line" }), h("div", { class: "skeleton-line short" })), h("div", { class: "skeleton-repo" })), h("div", { class: "skeleton-footer" }, h("div", { class: "skeleton-upvote" }))))))))), this.error && (h("div", { key: '43efd42ce0d213131ba97d42d1f98c52515ea9fd', class: "error-state", role: "alert" }, h("div", { key: 'ad22b0378e290556c896c628dadabf6091bbf972', class: "error-state-content" }, this.renderErrorIcon(), h("h2", { key: '9a9779f52de12aa2241ba9ddda6cf8297a4af84d', class: "error-state-title" }, "Something went wrong"), h("p", { key: 'c697040d37909d882730e5d9ab3a3b147061fc51', class: "error-state-message" }, this.error)))), !this.loading && !this.error && (h("div", { key: 'afc12552ff7ccc808c7191c1dd1e26d3b95bf2fd' }, this.renderIssuesList(), this.hasMore && (h("div", { key: '0f6c84bdeda386e4eec439fb80f4ee1606b9b559', class: "load-more-container" }, h("feedlog-button", { key: 'e6983bd889a6cdfd4a4b8a06f3a6a97c2d276243', onFeedlogClick: this.handleLoadMore, disabled: this.isLoadingMore, variant: "outline" }, this.isLoadingMore ? 'Loading...' : 'Load More Issues'))))))));
|
|
65
65
|
}
|
|
66
66
|
static get is() { return "feedlog-issues"; }
|
|
67
67
|
static get encapsulation() { return "shadow"; }
|
|
@@ -121,6 +121,25 @@ export class FeedlogIssues {
|
|
|
121
121
|
"attribute": "max-width",
|
|
122
122
|
"defaultValue": "'42rem'"
|
|
123
123
|
},
|
|
124
|
+
"limit": {
|
|
125
|
+
"type": "number",
|
|
126
|
+
"mutable": false,
|
|
127
|
+
"complexType": {
|
|
128
|
+
"original": "number",
|
|
129
|
+
"resolved": "number | undefined",
|
|
130
|
+
"references": {}
|
|
131
|
+
},
|
|
132
|
+
"required": false,
|
|
133
|
+
"optional": true,
|
|
134
|
+
"docs": {
|
|
135
|
+
"tags": [],
|
|
136
|
+
"text": "Page size for issues list pagination. When set, enables pagination when issues exceed this limit."
|
|
137
|
+
},
|
|
138
|
+
"getter": false,
|
|
139
|
+
"setter": false,
|
|
140
|
+
"reflect": false,
|
|
141
|
+
"attribute": "limit"
|
|
142
|
+
},
|
|
124
143
|
"theme": {
|
|
125
144
|
"type": "string",
|
|
126
145
|
"mutable": true,
|
|
@@ -96,6 +96,7 @@ const sampleIssues = [
|
|
|
96
96
|
hasUpvoted: false,
|
|
97
97
|
},
|
|
98
98
|
];
|
|
99
|
+
const manyIssues = Array.from({ length: 200 }, (_, i) => (Object.assign(Object.assign({}, sampleIssues[0]), { id: `issue-${i + 1}`, title: `Issue ${i + 1}` })));
|
|
99
100
|
const meta = {
|
|
100
101
|
title: 'Components/Issues',
|
|
101
102
|
component: 'feedlog-issues',
|
|
@@ -132,6 +133,10 @@ const meta = {
|
|
|
132
133
|
control: 'text',
|
|
133
134
|
description: 'Empty state message',
|
|
134
135
|
},
|
|
136
|
+
limit: {
|
|
137
|
+
control: 'number',
|
|
138
|
+
description: 'Page size for pagination',
|
|
139
|
+
},
|
|
135
140
|
},
|
|
136
141
|
args: {
|
|
137
142
|
issues: sampleIssues,
|
|
@@ -227,6 +232,52 @@ export const NarrowWidth = {
|
|
|
227
232
|
}
|
|
228
233
|
},
|
|
229
234
|
};
|
|
235
|
+
export const TransparentBackground = {
|
|
236
|
+
args: {
|
|
237
|
+
issues: sampleIssues,
|
|
238
|
+
},
|
|
239
|
+
parameters: {
|
|
240
|
+
docs: {
|
|
241
|
+
description: {
|
|
242
|
+
story: 'Use `--feedlog-background: transparent` to let the parent background show through. Useful when embedding in dashboards or custom layouts.',
|
|
243
|
+
},
|
|
244
|
+
},
|
|
245
|
+
},
|
|
246
|
+
render: (props) => (h("div", { style: {
|
|
247
|
+
background: 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)',
|
|
248
|
+
padding: '2rem',
|
|
249
|
+
borderRadius: '8px',
|
|
250
|
+
} }, h("feedlog-issues", Object.assign({}, props, { style: { '--feedlog-background': 'transparent' } })))),
|
|
251
|
+
play: async ({ canvasElement, args }) => {
|
|
252
|
+
const element = canvasElement.querySelector('feedlog-issues');
|
|
253
|
+
if (element && args.issues) {
|
|
254
|
+
element.issues = args.issues;
|
|
255
|
+
}
|
|
256
|
+
},
|
|
257
|
+
};
|
|
258
|
+
export const Paginated = {
|
|
259
|
+
args: {
|
|
260
|
+
issues: manyIssues,
|
|
261
|
+
limit: 10,
|
|
262
|
+
heading: 'Community feedback',
|
|
263
|
+
subtitle: 'Upvote issues you care about',
|
|
264
|
+
},
|
|
265
|
+
parameters: {
|
|
266
|
+
docs: {
|
|
267
|
+
description: {
|
|
268
|
+
story: 'Pagination with 200 issues, 10 per page. Shows first/last pages, 3 pages around current, and prev/next arrows.',
|
|
269
|
+
},
|
|
270
|
+
},
|
|
271
|
+
},
|
|
272
|
+
render: props => h("feedlog-issues", Object.assign({}, props)),
|
|
273
|
+
play: async ({ canvasElement, args }) => {
|
|
274
|
+
const element = canvasElement.querySelector('feedlog-issues');
|
|
275
|
+
if (element && args.issues) {
|
|
276
|
+
element.issues = args.issues;
|
|
277
|
+
element.limit = args.limit;
|
|
278
|
+
}
|
|
279
|
+
},
|
|
280
|
+
};
|
|
230
281
|
export const CustomCSSVars = {
|
|
231
282
|
args: {
|
|
232
283
|
issues: sampleIssues,
|
|
@@ -213,7 +213,13 @@ export class FeedlogIssuesClient {
|
|
|
213
213
|
}
|
|
214
214
|
}
|
|
215
215
|
render() {
|
|
216
|
-
|
|
216
|
+
var _a, _b;
|
|
217
|
+
// Explicitly forward --feedlog-background from host to child (inheritance can fail across nested shadow DOM)
|
|
218
|
+
const hostBg = (_b = (_a = this.el) === null || _a === void 0 ? void 0 : _a.style) === null || _b === void 0 ? void 0 : _b.getPropertyValue('--feedlog-background');
|
|
219
|
+
const style = hostBg
|
|
220
|
+
? { '--feedlog-background': hostBg }
|
|
221
|
+
: undefined;
|
|
222
|
+
return (h("feedlog-issues", { key: '15ae96d7d7b51964026f873f8b97e10530ed02b4', 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() }));
|
|
217
223
|
}
|
|
218
224
|
static get is() { return "feedlog-issues-client"; }
|
|
219
225
|
static get encapsulation() { return "shadow"; }
|
|
@@ -504,4 +510,5 @@ export class FeedlogIssuesClient {
|
|
|
504
510
|
}
|
|
505
511
|
}];
|
|
506
512
|
}
|
|
513
|
+
static get elementRef() { return "el"; }
|
|
507
514
|
}
|
|
@@ -55,3 +55,60 @@
|
|
|
55
55
|
color: var(--feedlog-muted-foreground);
|
|
56
56
|
line-height: 1.5;
|
|
57
57
|
}
|
|
58
|
+
|
|
59
|
+
.pagination {
|
|
60
|
+
display: flex;
|
|
61
|
+
align-items: center;
|
|
62
|
+
justify-content: center;
|
|
63
|
+
gap: 0.25rem;
|
|
64
|
+
margin-top: 1.5rem;
|
|
65
|
+
flex-wrap: wrap;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.pagination-btn {
|
|
69
|
+
min-width: 2rem;
|
|
70
|
+
height: 2rem;
|
|
71
|
+
padding: 0 0.5rem;
|
|
72
|
+
color: var(--feedlog-foreground);
|
|
73
|
+
background: transparent;
|
|
74
|
+
border: 1px solid var(--feedlog-border, oklch(0.9 0 0));
|
|
75
|
+
border-radius: var(--feedlog-radius, 0.375rem);
|
|
76
|
+
font-size: 0.875rem;
|
|
77
|
+
font-weight: 500;
|
|
78
|
+
cursor: pointer;
|
|
79
|
+
transition: background-color 0.15s, border-color 0.15s;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.pagination-btn:hover:not(:disabled) {
|
|
83
|
+
background: var(--feedlog-muted, oklch(0.96 0 0));
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
.pagination-btn[aria-current='page'] {
|
|
87
|
+
background: var(--feedlog-accent-color, oklch(0.55 0.2 250));
|
|
88
|
+
color: white;
|
|
89
|
+
border-color: var(--feedlog-accent-color, oklch(0.55 0.2 250));
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.pagination-btn:disabled {
|
|
93
|
+
opacity: 0.5;
|
|
94
|
+
cursor: not-allowed;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
.pagination-arrow {
|
|
98
|
+
font-size: 1.25rem;
|
|
99
|
+
line-height: 1;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
.pagination-ellipsis {
|
|
103
|
+
padding: 0 0.25rem;
|
|
104
|
+
color: var(--feedlog-muted-foreground);
|
|
105
|
+
font-size: 0.875rem;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
:host(.dark) .pagination-btn {
|
|
109
|
+
border-color: oklch(0.4 0.02 260);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
:host(.dark) .pagination-btn:hover:not(:disabled) {
|
|
113
|
+
background: oklch(0.35 0.02 260);
|
|
114
|
+
}
|