@noxion/renderer 0.1.0 → 0.2.0
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/components/DocsBreadcrumb.d.ts +5 -0
- package/dist/components/DocsBreadcrumb.d.ts.map +1 -0
- package/dist/components/DocsBreadcrumb.js +10 -0
- package/dist/components/DocsBreadcrumb.js.map +1 -0
- package/dist/components/DocsSidebar.d.ts +5 -0
- package/dist/components/DocsSidebar.d.ts.map +1 -0
- package/dist/components/DocsSidebar.js +15 -0
- package/dist/components/DocsSidebar.js.map +1 -0
- package/dist/components/EmptyState.d.ts.map +1 -1
- package/dist/components/EmptyState.js +2 -1
- package/dist/components/EmptyState.js.map +1 -1
- package/dist/components/FeaturedPostCard.d.ts +5 -0
- package/dist/components/FeaturedPostCard.d.ts.map +1 -0
- package/dist/components/FeaturedPostCard.js +19 -0
- package/dist/components/FeaturedPostCard.js.map +1 -0
- package/dist/components/Footer.d.ts.map +1 -1
- package/dist/components/Footer.js +2 -1
- package/dist/components/Footer.js.map +1 -1
- package/dist/components/Header.d.ts +1 -1
- package/dist/components/Header.d.ts.map +1 -1
- package/dist/components/Header.js +4 -2
- package/dist/components/Header.js.map +1 -1
- package/dist/components/HeroSection.d.ts +7 -0
- package/dist/components/HeroSection.d.ts.map +1 -0
- package/dist/components/HeroSection.js +16 -0
- package/dist/components/HeroSection.js.map +1 -0
- package/dist/components/NoxionLogo.d.ts +5 -0
- package/dist/components/NoxionLogo.d.ts.map +1 -0
- package/dist/components/NoxionLogo.js +7 -0
- package/dist/components/NoxionLogo.js.map +1 -0
- package/dist/components/PortfolioFilter.d.ts +5 -0
- package/dist/components/PortfolioFilter.d.ts.map +1 -0
- package/dist/components/PortfolioFilter.js +20 -0
- package/dist/components/PortfolioFilter.js.map +1 -0
- package/dist/components/PortfolioProjectCard.d.ts +5 -0
- package/dist/components/PortfolioProjectCard.d.ts.map +1 -0
- package/dist/components/PortfolioProjectCard.js +13 -0
- package/dist/components/PortfolioProjectCard.js.map +1 -0
- package/dist/components/PostCard.d.ts +1 -1
- package/dist/components/PostCard.d.ts.map +1 -1
- package/dist/components/PostCard.js +13 -4
- package/dist/components/PostCard.js.map +1 -1
- package/dist/components/Search.d.ts.map +1 -1
- package/dist/components/Search.js +2 -1
- package/dist/components/Search.js.map +1 -1
- package/dist/components/TagFilter.d.ts +1 -1
- package/dist/components/TagFilter.d.ts.map +1 -1
- package/dist/components/TagFilter.js +15 -9
- package/dist/components/TagFilter.js.map +1 -1
- package/dist/components/ThemeToggle.d.ts.map +1 -1
- package/dist/components/ThemeToggle.js +4 -8
- package/dist/components/ThemeToggle.js.map +1 -1
- package/dist/index.d.ts +14 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -1
- package/dist/index.js.map +1 -1
- package/dist/templates/DocsPage.d.ts +3 -0
- package/dist/templates/DocsPage.d.ts.map +1 -0
- package/dist/templates/DocsPage.js +13 -0
- package/dist/templates/DocsPage.js.map +1 -0
- package/dist/templates/HomePage.d.ts.map +1 -1
- package/dist/templates/HomePage.js +11 -2
- package/dist/templates/HomePage.js.map +1 -1
- package/dist/templates/PortfolioGrid.d.ts +3 -0
- package/dist/templates/PortfolioGrid.d.ts.map +1 -0
- package/dist/templates/PortfolioGrid.js +10 -0
- package/dist/templates/PortfolioGrid.js.map +1 -0
- package/dist/templates/PortfolioProject.d.ts +3 -0
- package/dist/templates/PortfolioProject.d.ts.map +1 -0
- package/dist/templates/PortfolioProject.js +12 -0
- package/dist/templates/PortfolioProject.js.map +1 -0
- package/dist/templates/PostPage.d.ts +10 -0
- package/dist/templates/PostPage.d.ts.map +1 -1
- package/dist/templates/PostPage.js +24 -2
- package/dist/templates/PostPage.js.map +1 -1
- package/dist/templates/index.d.ts +3 -0
- package/dist/templates/index.d.ts.map +1 -1
- package/dist/templates/index.js +3 -0
- package/dist/templates/index.js.map +1 -1
- package/dist/theme/ThemeProvider.d.ts.map +1 -1
- package/dist/theme/ThemeProvider.js +1 -1
- package/dist/theme/ThemeProvider.js.map +1 -1
- package/dist/theme/define-theme.js +1 -1
- package/dist/theme/define-theme.js.map +1 -1
- package/dist/theme/extend-theme.d.ts +27 -0
- package/dist/theme/extend-theme.d.ts.map +1 -0
- package/dist/theme/extend-theme.js +102 -0
- package/dist/theme/extend-theme.js.map +1 -0
- package/dist/theme/template-resolver.d.ts.map +1 -1
- package/dist/theme/template-resolver.js +35 -1
- package/dist/theme/template-resolver.js.map +1 -1
- package/dist/theme/types.d.ts +56 -0
- package/dist/theme/types.d.ts.map +1 -1
- package/dist/theme/validate-theme.d.ts +14 -0
- package/dist/theme/validate-theme.d.ts.map +1 -0
- package/dist/theme/validate-theme.js +235 -0
- package/dist/theme/validate-theme.js.map +1 -0
- package/package.json +2 -1
- package/src/styles/noxion.css +1426 -280
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DocsBreadcrumb.d.ts","sourceRoot":"","sources":["../../src/components/DocsBreadcrumb.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE1D,wBAAgB,cAAc,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,mBAAmB,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,kDA+BhG"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
export function DocsBreadcrumb({ items, className }) {
|
|
3
|
+
if (items.length === 0)
|
|
4
|
+
return null;
|
|
5
|
+
return (_jsx("nav", { className: className ? `noxion-docs-breadcrumb ${className}` : "noxion-docs-breadcrumb", "aria-label": "Breadcrumb", children: _jsx("ol", { className: "noxion-docs-breadcrumb__list", children: items.map((item, index) => {
|
|
6
|
+
const isLast = index === items.length - 1;
|
|
7
|
+
return (_jsxs("li", { className: "noxion-docs-breadcrumb__item", children: [item.href && !isLast ? (_jsx("a", { href: item.href, className: "noxion-docs-breadcrumb__link", children: item.label })) : (_jsx("span", { className: "noxion-docs-breadcrumb__current", "aria-current": isLast ? "page" : undefined, children: item.label })), !isLast && (_jsx("span", { className: "noxion-docs-breadcrumb__separator", "aria-hidden": "true", children: "/" }))] }, item.label));
|
|
8
|
+
}) }) }));
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=DocsBreadcrumb.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DocsBreadcrumb.js","sourceRoot":"","sources":["../../src/components/DocsBreadcrumb.tsx"],"names":[],"mappings":";AAEA,MAAM,UAAU,cAAc,CAAC,EAAE,KAAK,EAAE,SAAS,EAAgD;IAC/F,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEpC,OAAO,CACL,cACE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,0BAA0B,SAAS,EAAE,CAAC,CAAC,CAAC,wBAAwB,gBAC5E,YAAY,YAEvB,aAAI,SAAS,EAAC,8BAA8B,YACzC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBACzB,MAAM,MAAM,GAAG,KAAK,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC1C,OAAO,CACL,cAAqB,SAAS,EAAC,8BAA8B,aAC1D,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CACtB,YAAG,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAC,8BAA8B,YACzD,IAAI,CAAC,KAAK,GACT,CACL,CAAC,CAAC,CAAC,CACF,eAAM,SAAS,EAAC,iCAAiC,kBAAe,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,YACxF,IAAI,CAAC,KAAK,GACN,CACR,EACA,CAAC,MAAM,IAAI,CACV,eAAM,SAAS,EAAC,mCAAmC,iBAAa,MAAM,kBAAS,CAChF,KAZM,IAAI,CAAC,KAAK,CAad,CACN,CAAC;YACJ,CAAC,CAAC,GACC,GACD,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DocsSidebar.d.ts","sourceRoot":"","sources":["../../src/components/DocsSidebar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAmB,MAAM,gBAAgB,CAAC;AA8BxE,wBAAgB,WAAW,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,gBAAgB,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,kDAevG"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
function SidebarItem({ item, currentSlug, depth = 0 }) {
|
|
3
|
+
const isActive = currentSlug === item.slug;
|
|
4
|
+
const hasChildren = item.children && item.children.length > 0;
|
|
5
|
+
const baseClass = isActive
|
|
6
|
+
? "noxion-docs-sidebar__link noxion-docs-sidebar__link--active"
|
|
7
|
+
: "noxion-docs-sidebar__link";
|
|
8
|
+
return (_jsxs("li", { className: "noxion-docs-sidebar__item", children: [_jsx("a", { href: `/${item.slug}`, className: baseClass, style: { paddingLeft: `${depth * 0.75 + 0.5}rem` }, "aria-current": isActive ? "page" : undefined, children: item.title }), hasChildren && (_jsx("ul", { className: "noxion-docs-sidebar__list", children: item.children.map((child) => (_jsx(SidebarItem, { item: child, currentSlug: currentSlug, depth: depth + 1 }, child.id))) }))] }));
|
|
9
|
+
}
|
|
10
|
+
export function DocsSidebar({ items, currentSlug, className }) {
|
|
11
|
+
if (items.length === 0)
|
|
12
|
+
return null;
|
|
13
|
+
return (_jsx("nav", { className: className ? `noxion-docs-sidebar ${className}` : "noxion-docs-sidebar", "aria-label": "Documentation navigation", children: _jsx("ul", { className: "noxion-docs-sidebar__list", children: items.map((item) => (_jsx(SidebarItem, { item: item, currentSlug: currentSlug }, item.id))) }) }));
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=DocsSidebar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DocsSidebar.js","sourceRoot":"","sources":["../../src/components/DocsSidebar.tsx"],"names":[],"mappings":";AAEA,SAAS,WAAW,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,GAAG,CAAC,EAAmE;IACpH,MAAM,QAAQ,GAAG,WAAW,KAAK,IAAI,CAAC,IAAI,CAAC;IAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IAC9D,MAAM,SAAS,GAAG,QAAQ;QACxB,CAAC,CAAC,6DAA6D;QAC/D,CAAC,CAAC,2BAA2B,CAAC;IAEhC,OAAO,CACL,cAAI,SAAS,EAAC,2BAA2B,aACvC,YACE,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,EACrB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,EAAE,WAAW,EAAE,GAAG,KAAK,GAAG,IAAI,GAAG,GAAG,KAAK,EAAE,kBACpC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,YAE1C,IAAI,CAAC,KAAK,GACT,EACH,WAAW,IAAI,CACd,aAAI,SAAS,EAAC,2BAA2B,YACtC,IAAI,CAAC,QAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAC7B,KAAC,WAAW,IAAgB,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,IAAjE,KAAK,CAAC,EAAE,CAA6D,CACxF,CAAC,GACC,CACN,IACE,CACN,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAA6C;IACtG,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEpC,OAAO,CACL,cACE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,uBAAuB,SAAS,EAAE,CAAC,CAAC,CAAC,qBAAqB,gBACtE,0BAA0B,YAErC,aAAI,SAAS,EAAC,2BAA2B,YACtC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACnB,KAAC,WAAW,IAAe,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,IAA7C,IAAI,CAAC,EAAE,CAA0C,CACpE,CAAC,GACC,GACD,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmptyState.d.ts","sourceRoot":"","sources":["../../src/components/EmptyState.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"EmptyState.d.ts","sourceRoot":"","sources":["../../src/components/EmptyState.tsx"],"names":[],"mappings":"AAEA,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,UAAU,CAAC,EACzB,KAA0B,EAC1B,OAA6C,EAC7C,SAAS,GACV,EAAE,eAAe,2CAUjB"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { FileText } from "lucide-react";
|
|
2
3
|
export function EmptyState({ title = "Nothing here yet", message = "Check back later for new content.", className, }) {
|
|
3
|
-
return (_jsxs("div", { className: className ? `noxion-empty-state ${className}` : "noxion-empty-state", children: [_jsx("h2", { className: "noxion-empty-state__title", children: title }), _jsx("p", { className: "noxion-empty-state__message", children: message })] }));
|
|
4
|
+
return (_jsxs("div", { className: className ? `noxion-empty-state ${className}` : "noxion-empty-state", children: [_jsx("span", { className: "noxion-empty-state__icon", children: _jsx(FileText, { size: 32, strokeWidth: 1.5 }) }), _jsx("h2", { className: "noxion-empty-state__title", children: title }), _jsx("p", { className: "noxion-empty-state__message", children: message })] }));
|
|
4
5
|
}
|
|
5
6
|
//# sourceMappingURL=EmptyState.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmptyState.js","sourceRoot":"","sources":["../../src/components/EmptyState.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"EmptyState.js","sourceRoot":"","sources":["../../src/components/EmptyState.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAQxC,MAAM,UAAU,UAAU,CAAC,EACzB,KAAK,GAAG,kBAAkB,EAC1B,OAAO,GAAG,mCAAmC,EAC7C,SAAS,GACO;IAChB,OAAO,CACL,eAAK,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,sBAAsB,SAAS,EAAE,CAAC,CAAC,CAAC,oBAAoB,aAClF,eAAM,SAAS,EAAC,0BAA0B,YACxC,KAAC,QAAQ,IAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,GAAG,GAAI,GACnC,EACP,aAAI,SAAS,EAAC,2BAA2B,YAAE,KAAK,GAAM,EACtD,YAAG,SAAS,EAAC,6BAA6B,YAAE,OAAO,GAAK,IACpD,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { PostCardProps } from "../theme/types";
|
|
2
|
+
export declare function FeaturedPostCard({ title, slug, date, tags, coverImage, category, description, author, className, }: PostCardProps & {
|
|
3
|
+
className?: string;
|
|
4
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
//# sourceMappingURL=FeaturedPostCard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FeaturedPostCard.d.ts","sourceRoot":"","sources":["../../src/components/FeaturedPostCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAWpD,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,UAAU,EACV,QAAQ,EACR,WAAW,EACX,MAAM,EACN,SAAS,GACV,EAAE,aAAa,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,2CAoDxC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
function formatDate(dateStr) {
|
|
3
|
+
try {
|
|
4
|
+
const d = new Date(dateStr + (dateStr.includes("T") ? "" : "T00:00:00"));
|
|
5
|
+
return d.toLocaleDateString("en-US", { month: "short", day: "numeric", year: "numeric" });
|
|
6
|
+
}
|
|
7
|
+
catch {
|
|
8
|
+
return dateStr;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export function FeaturedPostCard({ title, slug, date, tags, coverImage, category, description, author, className, }) {
|
|
12
|
+
const hasImage = Boolean(coverImage);
|
|
13
|
+
const baseClass = hasImage
|
|
14
|
+
? "noxion-featured-card"
|
|
15
|
+
: "noxion-featured-card noxion-featured-card--no-cover";
|
|
16
|
+
const cardClass = className ? `${baseClass} ${className}` : baseClass;
|
|
17
|
+
return (_jsxs("a", { href: `/${slug}`, className: cardClass, children: [_jsx("div", { className: "noxion-featured-card__cover", children: hasImage && (_jsxs(_Fragment, { children: [_jsx("img", { src: coverImage, alt: title, loading: "eager", decoding: "async", className: "noxion-featured-card__cover-image" }), _jsx("div", { className: "noxion-featured-card__cover-overlay" })] })) }), _jsxs("div", { className: "noxion-featured-card__content", children: [category && (_jsx("span", { className: "noxion-featured-card__category", children: category })), _jsx("h2", { className: "noxion-featured-card__title", children: title }), description && (_jsx("p", { className: "noxion-featured-card__description", children: description })), _jsxs("div", { className: "noxion-featured-card__meta", children: [author && (_jsx("span", { className: "noxion-featured-card__author", children: author })), date && (_jsx("time", { dateTime: date, className: "noxion-featured-card__date", children: formatDate(date) }))] }), tags.length > 0 && (_jsx("div", { className: "noxion-featured-card__tags", children: tags.map((tag) => (_jsx("span", { className: "noxion-featured-card__tag", children: tag }, tag))) }))] })] }));
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=FeaturedPostCard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FeaturedPostCard.js","sourceRoot":"","sources":["../../src/components/FeaturedPostCard.tsx"],"names":[],"mappings":";AAEA,SAAS,UAAU,CAAC,OAAe;IACjC,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;QACzE,OAAO,CAAC,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IAC5F,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,EAC/B,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,UAAU,EACV,QAAQ,EACR,WAAW,EACX,MAAM,EACN,SAAS,GAC8B;IACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACrC,MAAM,SAAS,GAAG,QAAQ;QACxB,CAAC,CAAC,sBAAsB;QACxB,CAAC,CAAC,qDAAqD,CAAC;IAC1D,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAEtE,OAAO,CACL,aAAG,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,SAAS,EAAE,SAAS,aACvC,cAAK,SAAS,EAAC,6BAA6B,YACzC,QAAQ,IAAI,CACX,8BACE,cACE,GAAG,EAAE,UAAU,EACf,GAAG,EAAE,KAAK,EACV,OAAO,EAAC,OAAO,EACf,QAAQ,EAAC,OAAO,EAChB,SAAS,EAAC,mCAAmC,GAC7C,EACF,cAAK,SAAS,EAAC,qCAAqC,GAAG,IACtD,CACJ,GACG,EAEN,eAAK,SAAS,EAAC,+BAA+B,aAC3C,QAAQ,IAAI,CACX,eAAM,SAAS,EAAC,gCAAgC,YAAE,QAAQ,GAAQ,CACnE,EACD,aAAI,SAAS,EAAC,6BAA6B,YAAE,KAAK,GAAM,EACvD,WAAW,IAAI,CACd,YAAG,SAAS,EAAC,mCAAmC,YAAE,WAAW,GAAK,CACnE,EACD,eAAK,SAAS,EAAC,4BAA4B,aACxC,MAAM,IAAI,CACT,eAAM,SAAS,EAAC,8BAA8B,YAAE,MAAM,GAAQ,CAC/D,EACA,IAAI,IAAI,CACP,eAAM,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAC,4BAA4B,YACzD,UAAU,CAAC,IAAI,CAAC,GACZ,CACR,IACG,EACL,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAClB,cAAK,SAAS,EAAC,4BAA4B,YACxC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CACjB,eAAgB,SAAS,EAAC,2BAA2B,YAAE,GAAG,IAA/C,GAAG,CAAoD,CACnE,CAAC,GACE,CACP,IACG,IACJ,CACL,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Footer.d.ts","sourceRoot":"","sources":["../../src/components/Footer.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Footer.d.ts","sourceRoot":"","sources":["../../src/components/Footer.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,wBAAgB,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,WAAW,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,2CAmB3F"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { ArrowUpRight } from "lucide-react";
|
|
2
3
|
export function Footer({ siteName, author, className }) {
|
|
3
4
|
const year = new Date().getFullYear();
|
|
4
|
-
return (_jsxs("footer", { className: className ? `noxion-footer ${className}` : "noxion-footer", children: [_jsxs("span", { className: "noxion-footer__copyright", children: ["\u00A9 ", year, " ", author ?? siteName] }),
|
|
5
|
+
return (_jsxs("footer", { className: className ? `noxion-footer ${className}` : "noxion-footer", children: [_jsxs("span", { className: "noxion-footer__copyright", children: ["\u00A9 ", year, " ", author ?? siteName] }), _jsxs("a", { href: "https://github.com/jiwonme/noxion", target: "_blank", rel: "noopener noreferrer", className: "noxion-footer__powered-by", children: ["Powered by Noxion", _jsx(ArrowUpRight, { size: 12, strokeWidth: 2 })] })] }));
|
|
5
6
|
}
|
|
6
7
|
//# sourceMappingURL=Footer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Footer.js","sourceRoot":"","sources":["../../src/components/Footer.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"Footer.js","sourceRoot":"","sources":["../../src/components/Footer.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG5C,MAAM,UAAU,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAwC;IAC1F,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAEtC,OAAO,CACL,kBAAQ,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,iBAAiB,SAAS,EAAE,CAAC,CAAC,CAAC,eAAe,aAC3E,gBAAM,SAAS,EAAC,0BAA0B,wBAChC,IAAI,OAAG,MAAM,IAAI,QAAQ,IAC5B,EACP,aACE,IAAI,EAAC,mCAAmC,EACxC,MAAM,EAAC,QAAQ,EACf,GAAG,EAAC,qBAAqB,EACzB,SAAS,EAAC,2BAA2B,kCAGrC,KAAC,YAAY,IAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,GAAI,IACxC,IACG,CACV,CAAC;AACJ,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { HeaderProps } from "../theme/types";
|
|
2
|
-
export declare function Header({ siteName, navigation, className }: HeaderProps & {
|
|
2
|
+
export declare function Header({ siteName, logo, navigation, className }: HeaderProps & {
|
|
3
3
|
className?: string;
|
|
4
4
|
}): import("react/jsx-runtime").JSX.Element;
|
|
5
5
|
//# sourceMappingURL=Header.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Header.d.ts","sourceRoot":"","sources":["../../src/components/Header.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Header.d.ts","sourceRoot":"","sources":["../../src/components/Header.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAGlD,wBAAgB,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAe,EAAE,SAAS,EAAE,EAAE,WAAW,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,2CAsB1G"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
|
|
3
|
-
|
|
3
|
+
import { ThemeToggle } from "./ThemeToggle";
|
|
4
|
+
export function Header({ siteName, logo, navigation = [], className }) {
|
|
5
|
+
return (_jsxs("header", { className: className ? `noxion-header ${className}` : "noxion-header", children: [_jsx("a", { href: "/", className: "noxion-header__logo", children: logo || siteName }), navigation.length > 0 && (_jsx("nav", { className: "noxion-header__nav", children: navigation.map((item) => (_jsx("a", { href: item.href, className: "noxion-header__nav-link", children: item.label }, item.href))) })), _jsx("div", { className: "noxion-header__actions", children: _jsx(ThemeToggle, {}) })] }));
|
|
4
6
|
}
|
|
5
7
|
//# sourceMappingURL=Header.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Header.js","sourceRoot":"","sources":["../../src/components/Header.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"Header.js","sourceRoot":"","sources":["../../src/components/Header.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,MAAM,UAAU,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,GAAG,EAAE,EAAE,SAAS,EAAwC;IACzG,OAAO,CACL,kBAAQ,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,iBAAiB,SAAS,EAAE,CAAC,CAAC,CAAC,eAAe,aAC3E,YAAG,IAAI,EAAC,GAAG,EAAC,SAAS,EAAC,qBAAqB,YACxC,IAAI,IAAI,QAAQ,GACf,EAEH,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,CACxB,cAAK,SAAS,EAAC,oBAAoB,YAChC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACxB,YAAmB,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAC,yBAAyB,YACpE,IAAI,CAAC,KAAK,IADL,IAAI,CAAC,IAAI,CAEb,CACL,CAAC,GACE,CACP,EAED,cAAK,SAAS,EAAC,wBAAwB,YACrC,KAAC,WAAW,KAAG,GACX,IACC,CACV,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { PostCardProps } from "../theme/types";
|
|
2
|
+
export interface HeroSectionProps {
|
|
3
|
+
posts: PostCardProps[];
|
|
4
|
+
className?: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function HeroSection({ posts, className }: HeroSectionProps): import("react/jsx-runtime").JSX.Element | null;
|
|
7
|
+
//# sourceMappingURL=HeroSection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HeroSection.d.ts","sourceRoot":"","sources":["../../src/components/HeroSection.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAKpD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,WAAW,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,gBAAgB,kDAsBjE"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useNoxionComponents } from "../theme/ThemeProvider";
|
|
4
|
+
import { FeaturedPostCard as DefaultFeaturedPostCard } from "./FeaturedPostCard";
|
|
5
|
+
import { PostCard as DefaultPostCard } from "./PostCard";
|
|
6
|
+
export function HeroSection({ posts, className }) {
|
|
7
|
+
const overrides = useNoxionComponents();
|
|
8
|
+
const FeaturedCard = (overrides.FeaturedPostCard ?? DefaultFeaturedPostCard);
|
|
9
|
+
const Card = (overrides.PostCard ?? DefaultPostCard);
|
|
10
|
+
if (posts.length === 0)
|
|
11
|
+
return null;
|
|
12
|
+
const [primary, ...secondary] = posts;
|
|
13
|
+
const baseClass = className ? `noxion-home-hero ${className}` : "noxion-home-hero";
|
|
14
|
+
return (_jsxs("section", { className: baseClass, children: [_jsx(FeaturedCard, { ...primary, className: "noxion-home-hero__primary" }), secondary.length > 0 && (_jsx("div", { className: "noxion-home-hero__secondary", children: secondary.map((post) => (_jsx(Card, { ...post }, post.slug))) }))] }));
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=HeroSection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HeroSection.js","sourceRoot":"","sources":["../../src/components/HeroSection.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAIb,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,IAAI,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,YAAY,CAAC;AAOzD,MAAM,UAAU,WAAW,CAAC,EAAE,KAAK,EAAE,SAAS,EAAoB;IAChE,MAAM,SAAS,GAAG,mBAAmB,EAAE,CAAC;IACxC,MAAM,YAAY,GAAG,CAAC,SAAS,CAAC,gBAAgB,IAAI,uBAAuB,CAA0D,CAAC;IACtI,MAAM,IAAI,GAAG,CAAC,SAAS,CAAC,QAAQ,IAAI,eAAe,CAA0D,CAAC;IAE9G,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEpC,MAAM,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,GAAG,KAAK,CAAC;IACtC,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,oBAAoB,SAAS,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC;IAEnF,OAAO,CACL,mBAAS,SAAS,EAAE,SAAS,aAC3B,KAAC,YAAY,OAAK,OAAO,EAAE,SAAS,EAAC,2BAA2B,GAAG,EAClE,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CACvB,cAAK,SAAS,EAAC,6BAA6B,YACzC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACvB,KAAC,IAAI,OAAqB,IAAI,IAAnB,IAAI,CAAC,IAAI,CAAc,CACnC,CAAC,GACE,CACP,IACO,CACX,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NoxionLogo.d.ts","sourceRoot":"","sources":["../../src/components/NoxionLogo.tsx"],"names":[],"mappings":"AAAA,wBAAgB,UAAU,CAAC,EAAE,SAAS,EAAE,MAAW,EAAE,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,2CAqB7F"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
export function NoxionLogo({ className, height = 20 }) {
|
|
3
|
+
const aspectRatio = 1022 / 268;
|
|
4
|
+
const width = Math.round(height * aspectRatio);
|
|
5
|
+
return (_jsx("svg", { className: className, width: width, height: height, viewBox: "0 0 1022 268", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-label": "Noxion", role: "img", children: _jsx("path", { d: "M200.556 246.892C203.668 248.275 207.472 249.312 213.35 249.658V262.452H117.913V249.658C122.754 249.312 127.595 248.621 131.053 247.238C136.586 244.817 139.352 239.284 139.352 230.294V162.52C139.352 136.24 134.165 120.334 107.194 120.334C97.5118 120.334 89.2129 122.063 78.1478 126.212V230.294C78.1478 239.284 80.914 244.125 86.7924 246.892C89.9045 248.275 93.7082 249.312 99.2407 249.658V262.452H4.14941V249.658C8.64463 249.312 13.4856 248.621 16.9435 247.238C22.8219 244.817 25.5882 239.284 25.5882 230.294V125.175C25.5882 114.455 23.8592 110.998 12.7941 110.652C9.33621 110.652 3.80362 110.998 -3.13534e-05 111.343V99.2408C13.4856 94.3998 40.457 87.1383 57.0548 87.1383C73.6525 87.1383 78.1478 93.7083 78.1478 108.577V118.259C96.1287 99.9324 117.222 87.1383 141.773 87.1383C176.351 87.1383 191.912 105.465 191.912 147.651V230.294C191.912 239.284 195.024 244.125 200.556 246.892ZM387.681 169.09C387.681 222.687 351.719 267.639 290.169 267.639C241.067 267.639 204.76 238.593 204.76 183.959C204.76 124.829 247.637 87.1383 303.655 87.1383C354.485 87.1383 387.681 117.568 387.681 169.09ZM331.663 180.501C331.663 136.586 321.29 107.194 293.627 107.194C268.039 107.194 260.777 132.436 260.777 171.164C260.777 214.734 270.113 247.583 298.122 247.583C321.29 247.583 331.663 224.07 331.663 180.501ZM488.694 172.548L531.571 231.677C539.524 242.742 548.861 248.966 558.197 250.35V262.452H463.797V250.35C477.283 250.35 480.395 242.051 474.517 233.752L447.545 196.407L429.218 219.229C415.733 236.518 420.574 248.621 436.134 250.35V262.452H367.668V250.35C379.771 247.583 393.257 238.939 404.322 225.453L438.901 184.65L394.294 123.1C386.341 112.035 380.463 105.811 371.126 104.428V91.9793H465.526V104.428C452.04 104.428 445.47 112.727 451.349 121.025L480.049 160.445L498.03 135.548C508.404 121.371 503.563 106.848 488.002 104.428V91.9793H556.122V104.428C544.02 107.194 532.263 117.568 522.927 129.324L488.694 172.548ZM562.117 26.2799C562.117 6.91581 575.257 5.80998e-05 590.125 5.80998e-05C604.994 5.80998e-05 617.788 6.91581 617.788 26.2799C617.788 45.2981 604.994 52.2139 590.125 52.2139C575.257 52.2139 562.117 45.2981 562.117 26.2799ZM620.209 108.577V230.294C620.209 239.284 622.975 244.125 628.854 246.892C631.966 248.275 635.769 249.312 641.302 249.658V262.452H546.211V249.658C550.706 249.312 555.547 248.621 559.005 247.238C564.883 244.817 567.649 239.284 567.649 230.294V125.175C567.649 114.11 565.575 110.652 553.818 110.652C550.36 110.652 545.519 110.998 542.061 111.343V99.2408C555.547 94.3998 582.518 87.1383 599.116 87.1383C615.714 87.1383 620.209 93.7083 620.209 108.577ZM816.618 169.09C816.618 222.687 780.657 267.639 719.107 267.639C670.005 267.639 633.697 238.593 633.697 183.959C633.697 124.829 676.575 87.1383 732.592 87.1383C783.423 87.1383 816.618 117.568 816.618 169.09ZM760.601 180.501C760.601 136.586 750.227 107.194 722.564 107.194C696.976 107.194 689.715 132.436 689.715 171.164C689.715 214.734 699.051 247.583 727.06 247.583C750.227 247.583 760.601 224.07 760.601 180.501ZM1009.1 246.892C1012.21 248.275 1016.02 249.312 1021.9 249.658V262.452H926.46V249.658C931.301 249.312 936.142 248.621 939.6 247.238C945.132 244.817 947.898 239.284 947.898 230.294V162.52C947.898 136.24 942.712 120.334 915.74 120.334C906.058 120.334 897.759 122.063 886.694 126.212V230.294C886.694 239.284 889.46 244.125 895.339 246.892C898.451 248.275 902.255 249.312 907.787 249.658V262.452H812.696V249.658C817.191 249.312 822.032 248.621 825.49 247.238C831.368 244.817 834.135 239.284 834.135 230.294V125.175C834.135 114.455 832.406 110.998 821.341 110.652C817.883 110.652 812.35 110.998 808.546 111.343V99.2408C822.032 94.3998 849.003 87.1383 865.601 87.1383C882.199 87.1383 886.694 93.7083 886.694 108.577V118.259C904.675 99.9324 925.768 87.1383 950.319 87.1383C984.898 87.1383 1000.46 105.465 1000.46 147.651V230.294C1000.46 239.284 1003.57 244.125 1009.1 246.892Z", fill: "currentColor" }) }));
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=NoxionLogo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NoxionLogo.js","sourceRoot":"","sources":["../../src/components/NoxionLogo.tsx"],"names":[],"mappings":";AAAA,MAAM,UAAU,UAAU,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,EAAE,EAA2C;IAC5F,MAAM,WAAW,GAAG,IAAI,GAAG,GAAG,CAAC;IAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC;IAE/C,OAAO,CACL,cACE,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAC,cAAc,EACtB,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,4BAA4B,gBACvB,QAAQ,EACnB,IAAI,EAAC,KAAK,YAEV,eACE,CAAC,EAAC,ixHAAixH,EACnxH,IAAI,EAAC,cAAc,GACnB,GACE,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { PortfolioFilterProps } from "../theme/types";
|
|
2
|
+
export declare function PortfolioFilter({ technologies, selectedTechnologies, onToggle, className, }: PortfolioFilterProps & {
|
|
3
|
+
className?: string;
|
|
4
|
+
}): import("react/jsx-runtime").JSX.Element | null;
|
|
5
|
+
//# sourceMappingURL=PortfolioFilter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PortfolioFilter.d.ts","sourceRoot":"","sources":["../../src/components/PortfolioFilter.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAE3D,wBAAgB,eAAe,CAAC,EAC9B,YAAY,EACZ,oBAAoB,EACpB,QAAQ,EACR,SAAS,GACV,EAAE,oBAAoB,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,kDA6C/C"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useState } from "react";
|
|
4
|
+
export function PortfolioFilter({ technologies, selectedTechnologies, onToggle, className, }) {
|
|
5
|
+
const [expanded, setExpanded] = useState(false);
|
|
6
|
+
if (technologies.length === 0)
|
|
7
|
+
return null;
|
|
8
|
+
const maxVisible = 8;
|
|
9
|
+
const shouldCollapse = technologies.length > maxVisible;
|
|
10
|
+
const visibleTechs = shouldCollapse && !expanded ? technologies.slice(0, maxVisible) : technologies;
|
|
11
|
+
const hiddenCount = shouldCollapse ? technologies.length - maxVisible : 0;
|
|
12
|
+
return (_jsxs("div", { className: className ? `noxion-portfolio-filter ${className}` : "noxion-portfolio-filter", children: [visibleTechs.map((tech) => {
|
|
13
|
+
const isSelected = selectedTechnologies.includes(tech);
|
|
14
|
+
const tagClass = isSelected
|
|
15
|
+
? "noxion-portfolio-filter__tag noxion-portfolio-filter__tag--selected"
|
|
16
|
+
: "noxion-portfolio-filter__tag";
|
|
17
|
+
return (_jsx("button", { onClick: () => onToggle(tech), type: "button", className: tagClass, children: tech }, tech));
|
|
18
|
+
}), shouldCollapse && !expanded && hiddenCount > 0 && (_jsxs("button", { type: "button", onClick: () => setExpanded(true), className: "noxion-portfolio-filter__tag noxion-portfolio-filter__tag--more", children: ["+", hiddenCount] })), shouldCollapse && expanded && (_jsx("button", { type: "button", onClick: () => setExpanded(false), className: "noxion-portfolio-filter__tag noxion-portfolio-filter__tag--more", children: "Show less" }))] }));
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=PortfolioFilter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PortfolioFilter.js","sourceRoot":"","sources":["../../src/components/PortfolioFilter.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAGjC,MAAM,UAAU,eAAe,CAAC,EAC9B,YAAY,EACZ,oBAAoB,EACpB,QAAQ,EACR,SAAS,GACqC;IAC9C,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEhD,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAE3C,MAAM,UAAU,GAAG,CAAC,CAAC;IACrB,MAAM,cAAc,GAAG,YAAY,CAAC,MAAM,GAAG,UAAU,CAAC;IACxD,MAAM,YAAY,GAAG,cAAc,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;IACpG,MAAM,WAAW,GAAG,cAAc,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAE1E,OAAO,CACL,eAAK,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,2BAA2B,SAAS,EAAE,CAAC,CAAC,CAAC,yBAAyB,aAC3F,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBACzB,MAAM,UAAU,GAAG,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACvD,MAAM,QAAQ,GAAG,UAAU;oBACzB,CAAC,CAAC,qEAAqE;oBACvE,CAAC,CAAC,8BAA8B,CAAC;gBACnC,OAAO,CACL,iBAAmB,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAE,QAAQ,YAChF,IAAI,IADM,IAAI,CAER,CACV,CAAC;YACJ,CAAC,CAAC,EAED,cAAc,IAAI,CAAC,QAAQ,IAAI,WAAW,GAAG,CAAC,IAAI,CACjD,kBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,EAChC,SAAS,EAAC,iEAAiE,kBAEzE,WAAW,IACN,CACV,EAEA,cAAc,IAAI,QAAQ,IAAI,CAC7B,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,EACjC,SAAS,EAAC,iEAAiE,0BAGpE,CACV,IACG,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { PortfolioCardProps } from "../theme/types";
|
|
2
|
+
export declare function PortfolioProjectCard({ title, slug, description, coverImage, technologies, projectUrl, year, featured, className, }: PortfolioCardProps & {
|
|
3
|
+
className?: string;
|
|
4
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
//# sourceMappingURL=PortfolioProjectCard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PortfolioProjectCard.d.ts","sourceRoot":"","sources":["../../src/components/PortfolioProjectCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,wBAAgB,oBAAoB,CAAC,EACnC,KAAK,EACL,IAAI,EACJ,WAAW,EACX,UAAU,EACV,YAAY,EACZ,UAAU,EACV,IAAI,EACJ,QAAQ,EACR,SAAS,GACV,EAAE,kBAAkB,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,2CA6D7C"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
export function PortfolioProjectCard({ title, slug, description, coverImage, technologies, projectUrl, year, featured, className, }) {
|
|
3
|
+
const classes = ["noxion-portfolio-card"];
|
|
4
|
+
if (featured)
|
|
5
|
+
classes.push("noxion-portfolio-card--featured");
|
|
6
|
+
if (!coverImage)
|
|
7
|
+
classes.push("noxion-portfolio-card--no-cover");
|
|
8
|
+
if (className)
|
|
9
|
+
classes.push(className);
|
|
10
|
+
const cardClass = classes.join(" ");
|
|
11
|
+
return (_jsxs("div", { className: cardClass, children: [_jsx("div", { className: "noxion-portfolio-card__cover", children: coverImage && (_jsx("img", { src: coverImage, alt: title, loading: "lazy", decoding: "async", className: "noxion-portfolio-card__cover-image" })) }), _jsxs("div", { className: "noxion-portfolio-card__body", children: [_jsxs("div", { className: "noxion-portfolio-card__header", children: [_jsx("a", { href: `/${slug}`, className: "noxion-portfolio-card__title-link", children: _jsx("h3", { className: "noxion-portfolio-card__title", children: title }) }), year && (_jsx("span", { className: "noxion-portfolio-card__year", children: year }))] }), description && (_jsx("p", { className: "noxion-portfolio-card__description", children: description })), technologies && technologies.length > 0 && (_jsx("div", { className: "noxion-portfolio-card__tech", children: technologies.map((tech) => (_jsx("span", { className: "noxion-portfolio-card__tech-tag", children: tech }, tech))) })), _jsxs("div", { className: "noxion-portfolio-card__actions", children: [_jsx("a", { href: `/${slug}`, className: "noxion-portfolio-card__link", children: "Details" }), projectUrl && (_jsx("a", { href: projectUrl, className: "noxion-portfolio-card__link noxion-portfolio-card__link--external", target: "_blank", rel: "noopener noreferrer", children: "Visit" }))] })] })] }));
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=PortfolioProjectCard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PortfolioProjectCard.js","sourceRoot":"","sources":["../../src/components/PortfolioProjectCard.tsx"],"names":[],"mappings":";AAEA,MAAM,UAAU,oBAAoB,CAAC,EACnC,KAAK,EACL,IAAI,EACJ,WAAW,EACX,UAAU,EACV,YAAY,EACZ,UAAU,EACV,IAAI,EACJ,QAAQ,EACR,SAAS,GACmC;IAC5C,MAAM,OAAO,GAAG,CAAC,uBAAuB,CAAC,CAAC;IAC1C,IAAI,QAAQ;QAAE,OAAO,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IAC9D,IAAI,CAAC,UAAU;QAAE,OAAO,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IACjE,IAAI,SAAS;QAAE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACvC,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEpC,OAAO,CACL,eAAK,SAAS,EAAE,SAAS,aACvB,cAAK,SAAS,EAAC,8BAA8B,YAC1C,UAAU,IAAI,CACb,cACE,GAAG,EAAE,UAAU,EACf,GAAG,EAAE,KAAK,EACV,OAAO,EAAC,MAAM,EACd,QAAQ,EAAC,OAAO,EAChB,SAAS,EAAC,oCAAoC,GAC9C,CACH,GACG,EAEN,eAAK,SAAS,EAAC,6BAA6B,aAC1C,eAAK,SAAS,EAAC,+BAA+B,aAC5C,YAAG,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,SAAS,EAAC,mCAAmC,YAChE,aAAI,SAAS,EAAC,8BAA8B,YAAE,KAAK,GAAM,GACvD,EACH,IAAI,IAAI,CACP,eAAM,SAAS,EAAC,6BAA6B,YAAE,IAAI,GAAQ,CAC5D,IACG,EAEL,WAAW,IAAI,CACd,YAAG,SAAS,EAAC,oCAAoC,YAAE,WAAW,GAAK,CACpE,EAEA,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,CAC1C,cAAK,SAAS,EAAC,6BAA6B,YACzC,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAC1B,eAAiB,SAAS,EAAC,iCAAiC,YAAE,IAAI,IAAvD,IAAI,CAA2D,CAC3E,CAAC,GACE,CACP,EAED,eAAK,SAAS,EAAC,gCAAgC,aAC7C,YAAG,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,SAAS,EAAC,6BAA6B,wBAExD,EACH,UAAU,IAAI,CACb,YACE,IAAI,EAAE,UAAU,EAChB,SAAS,EAAC,mEAAmE,EAC7E,MAAM,EAAC,QAAQ,EACf,GAAG,EAAC,qBAAqB,sBAGvB,CACL,IACG,IACF,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { PostCardProps } from "../theme/types";
|
|
2
|
-
export declare function PostCard({ title, slug, date, tags, coverImage, category, description, className, }: PostCardProps & {
|
|
2
|
+
export declare function PostCard({ title, slug, date, tags, coverImage, category, description, author, className, }: PostCardProps & {
|
|
3
3
|
className?: string;
|
|
4
4
|
}): import("react/jsx-runtime").JSX.Element;
|
|
5
5
|
//# sourceMappingURL=PostCard.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PostCard.d.ts","sourceRoot":"","sources":["../../src/components/PostCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"PostCard.d.ts","sourceRoot":"","sources":["../../src/components/PostCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAWpD,wBAAgB,QAAQ,CAAC,EACvB,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,UAAU,EACV,QAAQ,EACR,WAAW,EACX,MAAM,EACN,SAAS,GACV,EAAE,aAAa,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,2CA0DxC"}
|
|
@@ -1,8 +1,17 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
function formatDate(dateStr) {
|
|
3
|
+
try {
|
|
4
|
+
const d = new Date(dateStr + (dateStr.includes("T") ? "" : "T00:00:00"));
|
|
5
|
+
return d.toLocaleDateString("en-US", { month: "short", day: "numeric", year: "numeric" });
|
|
6
|
+
}
|
|
7
|
+
catch {
|
|
8
|
+
return dateStr;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export function PostCard({ title, slug, date, tags, coverImage, category, description, author, className, }) {
|
|
3
12
|
const hasImage = Boolean(coverImage);
|
|
4
|
-
const baseClass = hasImage ? "noxion-post-card" : "noxion-post-card noxion-post-card--
|
|
13
|
+
const baseClass = hasImage ? "noxion-post-card" : "noxion-post-card noxion-post-card--no-cover";
|
|
5
14
|
const cardClass = className ? `${baseClass} ${className}` : baseClass;
|
|
6
|
-
return (_jsxs("a", { href: `/${slug}`, className: cardClass, children: [
|
|
15
|
+
return (_jsxs("a", { href: `/${slug}`, className: cardClass, children: [_jsx("div", { className: "noxion-post-card__cover", children: hasImage && (_jsxs(_Fragment, { children: [_jsx("img", { src: coverImage, alt: title, loading: "lazy", decoding: "async", className: "noxion-post-card__cover-image" }), _jsx("div", { className: "noxion-post-card__cover-overlay" })] })) }), _jsxs("div", { className: "noxion-post-card__body", children: [_jsx("div", { className: "noxion-post-card__header", children: category && (_jsx("span", { className: "noxion-post-card__category", children: category })) }), _jsx("h3", { className: "noxion-post-card__title", children: title }), description && (_jsx("p", { className: "noxion-post-card__description", children: description })), _jsxs("div", { className: "noxion-post-card__meta", children: [author && (_jsx("span", { className: "noxion-post-card__author", children: author })), date && (_jsx("time", { dateTime: date, className: "noxion-post-card__date", children: formatDate(date) }))] }), tags.length > 0 && (_jsx("div", { className: "noxion-post-card__tags", children: tags.map((tag) => (_jsx("span", { className: "noxion-post-card__tag", children: tag }, tag))) }))] })] }));
|
|
7
16
|
}
|
|
8
17
|
//# sourceMappingURL=PostCard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PostCard.js","sourceRoot":"","sources":["../../src/components/PostCard.tsx"],"names":[],"mappings":";AAEA,MAAM,UAAU,QAAQ,CAAC,EACvB,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,UAAU,EACV,QAAQ,EACR,WAAW,EACX,SAAS,GAC8B;IACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACrC,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"PostCard.js","sourceRoot":"","sources":["../../src/components/PostCard.tsx"],"names":[],"mappings":";AAEA,SAAS,UAAU,CAAC,OAAe;IACjC,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;QACzE,OAAO,CAAC,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IAC5F,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,EACvB,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,UAAU,EACV,QAAQ,EACR,WAAW,EACX,MAAM,EACN,SAAS,GAC8B;IACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACrC,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,6CAA6C,CAAC;IAChG,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAEtE,OAAO,CACL,aAAG,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,SAAS,EAAE,SAAS,aACvC,cAAK,SAAS,EAAC,yBAAyB,YACrC,QAAQ,IAAI,CACX,8BACE,cACE,GAAG,EAAE,UAAU,EACf,GAAG,EAAE,KAAK,EACV,OAAO,EAAC,MAAM,EACd,QAAQ,EAAC,OAAO,EAChB,SAAS,EAAC,+BAA+B,GACzC,EACF,cAAK,SAAS,EAAC,iCAAiC,GAAG,IAClD,CACJ,GACG,EAEN,eAAK,SAAS,EAAC,wBAAwB,aACrC,cAAK,SAAS,EAAC,0BAA0B,YACtC,QAAQ,IAAI,CACX,eAAM,SAAS,EAAC,4BAA4B,YAAE,QAAQ,GAAQ,CAC/D,GACG,EAEN,aAAI,SAAS,EAAC,yBAAyB,YAAE,KAAK,GAAM,EAEnD,WAAW,IAAI,CACd,YAAG,SAAS,EAAC,+BAA+B,YAAE,WAAW,GAAK,CAC/D,EAED,eAAK,SAAS,EAAC,wBAAwB,aACpC,MAAM,IAAI,CACT,eAAM,SAAS,EAAC,0BAA0B,YAAE,MAAM,GAAQ,CAC3D,EACA,IAAI,IAAI,CACP,eAAM,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAC,wBAAwB,YACrD,UAAU,CAAC,IAAI,CAAC,GACZ,CACR,IACG,EAEL,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAClB,cAAK,SAAS,EAAC,wBAAwB,YACpC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CACjB,eAAgB,SAAS,EAAC,uBAAuB,YAC9C,GAAG,IADK,GAAG,CAEP,CACR,CAAC,GACE,CACP,IACG,IACJ,CACL,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Search.d.ts","sourceRoot":"","sources":["../../src/components/Search.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Search.d.ts","sourceRoot":"","sources":["../../src/components/Search.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,wBAAgB,MAAM,CAAC,EACrB,QAAQ,EACR,WAA+B,EAC/B,SAAS,GACV,EAAE,WAAW,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,2CAsCtC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { useRef, useEffect, useCallback } from "react";
|
|
4
|
+
import { Search as SearchIcon } from "lucide-react";
|
|
4
5
|
export function Search({ onSearch, placeholder = "Search posts...", className, }) {
|
|
5
6
|
const inputRef = useRef(null);
|
|
6
7
|
const debounceRef = useRef(null);
|
|
@@ -19,6 +20,6 @@ export function Search({ onSearch, placeholder = "Search posts...", className, }
|
|
|
19
20
|
document.addEventListener("keydown", handler);
|
|
20
21
|
return () => document.removeEventListener("keydown", handler);
|
|
21
22
|
}, []);
|
|
22
|
-
return (_jsxs("div", { className: className ? `noxion-search ${className}` : "noxion-search", children: [_jsx("input", { ref: inputRef, type: "text", placeholder: placeholder, onChange: (e) => handleInput(e.target.value), className: "noxion-search__input" }), _jsx("kbd", { className: "noxion-search__kbd", children: "\u2318K" })] }));
|
|
23
|
+
return (_jsxs("div", { className: className ? `noxion-search ${className}` : "noxion-search", children: [_jsx("span", { className: "noxion-search__icon", children: _jsx(SearchIcon, { size: 14, strokeWidth: 2 }) }), _jsx("input", { ref: inputRef, type: "text", placeholder: placeholder, onChange: (e) => handleInput(e.target.value), className: "noxion-search__input" }), _jsx("kbd", { className: "noxion-search__kbd", children: "\u2318K" })] }));
|
|
23
24
|
}
|
|
24
25
|
//# sourceMappingURL=Search.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Search.js","sourceRoot":"","sources":["../../src/components/Search.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Search.js","sourceRoot":"","sources":["../../src/components/Search.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AAGpD,MAAM,UAAU,MAAM,CAAC,EACrB,QAAQ,EACR,WAAW,GAAG,iBAAiB,EAC/B,SAAS,GAC4B;IACrC,MAAM,QAAQ,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAC;IAChD,MAAM,WAAW,GAAG,MAAM,CAAuC,IAAI,CAAC,CAAC;IAEvE,MAAM,WAAW,GAAG,WAAW,CAC7B,CAAC,KAAa,EAAE,EAAE;QAChB,IAAI,WAAW,CAAC,OAAO;YAAE,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC3D,WAAW,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;IAC/D,CAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,OAAO,GAAG,CAAC,CAAgB,EAAE,EAAE;YACnC,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;gBAC9C,CAAC,CAAC,cAAc,EAAE,CAAC;gBACnB,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;YAC5B,CAAC;QACH,CAAC,CAAC;QACF,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC9C,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAChE,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACL,eAAK,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,iBAAiB,SAAS,EAAE,CAAC,CAAC,CAAC,eAAe,aACxE,eAAM,SAAS,EAAC,qBAAqB,YACnC,KAAC,UAAU,IAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,GAAI,GACnC,EACP,gBACE,GAAG,EAAE,QAAQ,EACb,IAAI,EAAC,MAAM,EACX,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC5C,SAAS,EAAC,sBAAsB,GAChC,EACF,cAAK,SAAS,EAAC,oBAAoB,wBAAS,IACxC,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { TagFilterProps } from "../theme/types";
|
|
2
|
-
export declare function TagFilter({ tags, selectedTags, onToggle, className }: TagFilterProps & {
|
|
2
|
+
export declare function TagFilter({ tags, selectedTags, onToggle, maxVisible, className }: TagFilterProps & {
|
|
3
3
|
className?: string;
|
|
4
4
|
}): import("react/jsx-runtime").JSX.Element | null;
|
|
5
5
|
//# sourceMappingURL=TagFilter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TagFilter.d.ts","sourceRoot":"","sources":["../../src/components/TagFilter.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TagFilter.d.ts","sourceRoot":"","sources":["../../src/components/TagFilter.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD,wBAAgB,SAAS,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,cAAc,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,kDA4CzH"}
|
|
@@ -1,13 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useState } from "react";
|
|
4
|
+
export function TagFilter({ tags, selectedTags, onToggle, maxVisible, className }) {
|
|
5
|
+
const [expanded, setExpanded] = useState(false);
|
|
3
6
|
if (tags.length === 0)
|
|
4
7
|
return null;
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
const shouldCollapse = maxVisible !== undefined && tags.length > maxVisible;
|
|
9
|
+
const visibleTags = shouldCollapse && !expanded ? tags.slice(0, maxVisible) : tags;
|
|
10
|
+
const hiddenCount = shouldCollapse ? tags.length - maxVisible : 0;
|
|
11
|
+
return (_jsxs("div", { className: className ? `noxion-tag-filter ${className}` : "noxion-tag-filter", children: [visibleTags.map((tag) => {
|
|
12
|
+
const isSelected = selectedTags.includes(tag);
|
|
13
|
+
const tagClass = isSelected
|
|
14
|
+
? "noxion-tag-filter__tag noxion-tag-filter__tag--selected"
|
|
15
|
+
: "noxion-tag-filter__tag";
|
|
16
|
+
return (_jsx("button", { onClick: () => onToggle(tag), type: "button", className: tagClass, children: tag }, tag));
|
|
17
|
+
}), shouldCollapse && !expanded && hiddenCount > 0 && (_jsxs("button", { type: "button", onClick: () => setExpanded(true), className: "noxion-tag-filter__tag noxion-tag-filter__tag--more", children: ["+", hiddenCount] })), shouldCollapse && expanded && (_jsx("button", { type: "button", onClick: () => setExpanded(false), className: "noxion-tag-filter__tag noxion-tag-filter__tag--more", children: "Show less" }))] }));
|
|
12
18
|
}
|
|
13
19
|
//# sourceMappingURL=TagFilter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TagFilter.js","sourceRoot":"","sources":["../../src/components/TagFilter.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"TagFilter.js","sourceRoot":"","sources":["../../src/components/TagFilter.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAGjC,MAAM,UAAU,SAAS,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAA2C;IACxH,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEhD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEnC,MAAM,cAAc,GAAG,UAAU,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC;IAC5E,MAAM,WAAW,GAAG,cAAc,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACnF,MAAM,WAAW,GAAG,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,UAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAEnE,OAAO,CACL,eAAK,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,qBAAqB,SAAS,EAAE,CAAC,CAAC,CAAC,mBAAmB,aAC/E,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;gBACvB,MAAM,UAAU,GAAG,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAC9C,MAAM,QAAQ,GAAG,UAAU;oBACzB,CAAC,CAAC,yDAAyD;oBAC3D,CAAC,CAAC,wBAAwB,CAAC;gBAC7B,OAAO,CACL,iBAAkB,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAE,QAAQ,YAC9E,GAAG,IADO,GAAG,CAEP,CACV,CAAC;YACJ,CAAC,CAAC,EAED,cAAc,IAAI,CAAC,QAAQ,IAAI,WAAW,GAAG,CAAC,IAAI,CACjD,kBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,EAChC,SAAS,EAAC,qDAAqD,kBAE7D,WAAW,IACN,CACV,EAEA,cAAc,IAAI,QAAQ,IAAI,CAC7B,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,EACjC,SAAS,EAAC,qDAAqD,0BAGxD,CACV,IACG,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeToggle.d.ts","sourceRoot":"","sources":["../../src/components/ThemeToggle.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ThemeToggle.d.ts","sourceRoot":"","sources":["../../src/components/ThemeToggle.tsx"],"names":[],"mappings":"AAaA,wBAAgB,WAAW,CAAC,EAAE,SAAS,EAAE,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,2CAsBhE"}
|
|
@@ -1,17 +1,13 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { Sun, Moon, Monitor } from "lucide-react";
|
|
3
4
|
import { useThemePreference } from "../hooks/useTheme";
|
|
4
|
-
const
|
|
5
|
-
light: "\u2600\uFE0F",
|
|
6
|
-
dark: "\uD83C\uDF19",
|
|
7
|
-
system: "\uD83D\uDCBB",
|
|
8
|
-
};
|
|
5
|
+
const CYCLE = ["system", "light", "dark"];
|
|
9
6
|
const LABELS = {
|
|
10
7
|
light: "Light",
|
|
11
8
|
dark: "Dark",
|
|
12
9
|
system: "System",
|
|
13
10
|
};
|
|
14
|
-
const CYCLE = ["system", "light", "dark"];
|
|
15
11
|
export function ThemeToggle({ className }) {
|
|
16
12
|
const { preference, setPreference } = useThemePreference();
|
|
17
13
|
const nextPreference = () => {
|
|
@@ -19,6 +15,6 @@ export function ThemeToggle({ className }) {
|
|
|
19
15
|
const next = CYCLE[(currentIndex + 1) % CYCLE.length];
|
|
20
16
|
setPreference(next);
|
|
21
17
|
};
|
|
22
|
-
return (
|
|
18
|
+
return (_jsxs("button", { onClick: nextPreference, type: "button", "aria-label": `Theme: ${LABELS[preference]}. Click to change.`, title: LABELS[preference], className: className ? `noxion-theme-toggle ${className}` : "noxion-theme-toggle", children: [preference === "light" && _jsx(Sun, { size: 16, strokeWidth: 1.75 }), preference === "dark" && _jsx(Moon, { size: 16, strokeWidth: 1.75 }), preference === "system" && _jsx(Monitor, { size: 16, strokeWidth: 1.75 })] }));
|
|
23
19
|
}
|
|
24
20
|
//# sourceMappingURL=ThemeToggle.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeToggle.js","sourceRoot":"","sources":["../../src/components/ThemeToggle.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,kBAAkB,EAAwB,MAAM,mBAAmB,CAAC;AAE7E,MAAM,KAAK,
|
|
1
|
+
{"version":3,"file":"ThemeToggle.js","sourceRoot":"","sources":["../../src/components/ThemeToggle.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAwB,MAAM,mBAAmB,CAAC;AAE7E,MAAM,KAAK,GAAsB,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAE7D,MAAM,MAAM,GAAoC;IAC9C,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;CACjB,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,EAAE,SAAS,EAA0B;IAC/D,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,kBAAkB,EAAE,CAAC;IAE3D,MAAM,cAAc,GAAG,GAAG,EAAE;QAC1B,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC/C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;QACtD,aAAa,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC,CAAC;IAEF,OAAO,CACL,kBACE,OAAO,EAAE,cAAc,EACvB,IAAI,EAAC,QAAQ,gBACD,UAAU,MAAM,CAAC,UAAU,CAAC,oBAAoB,EAC5D,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,EACzB,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,uBAAuB,SAAS,EAAE,CAAC,CAAC,CAAC,qBAAqB,aAEhF,UAAU,KAAK,OAAO,IAAI,KAAC,GAAG,IAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,GAAI,EAC9D,UAAU,KAAK,MAAM,IAAI,KAAC,IAAI,IAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,GAAI,EAC9D,UAAU,KAAK,QAAQ,IAAI,KAAC,OAAO,IAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,GAAI,IAC7D,CACV,CAAC;AACJ,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export { defineTheme, defaultTheme } from "./theme/define-theme";
|
|
2
|
+
export { extendTheme } from "./theme/extend-theme";
|
|
3
|
+
export type { ExtendThemeOverrides } from "./theme/extend-theme";
|
|
2
4
|
export { generateCSSVariables, generateThemeStylesheet } from "./theme/css-generator";
|
|
3
5
|
export { resolveComponents } from "./theme/component-resolver";
|
|
4
6
|
export { NoxionThemeProvider, useNoxionTheme, useNoxionTokens, useNoxionComponents, useNoxionLayout, useNoxionSlots, useNoxionTemplate, } from "./theme/ThemeProvider";
|
|
@@ -6,13 +8,17 @@ export type { NoxionThemeProviderProps } from "./theme/ThemeProvider";
|
|
|
6
8
|
export { resolveSlots } from "./theme/slot-resolver";
|
|
7
9
|
export { resolveTemplate } from "./theme/template-resolver";
|
|
8
10
|
export { BaseLayout, BlogLayout, DocsLayout, MagazineLayout } from "./layouts";
|
|
9
|
-
export { HomePage, PostPage, ArchivePage, TagPage } from "./templates";
|
|
10
|
-
export type { NoxionTheme, NoxionThemeColors, NoxionThemeFonts, NoxionThemeSpacing, NoxionThemeShadows, NoxionThemeTransitions, NoxionThemeBreakpoints, NoxionThemeTokens, NoxionLayout, ComponentOverrides, NoxionSlotMap, NoxionTemplateMap, NoxionTemplateProps, NoxionLayoutProps, NoxionThemePackage, HeaderProps, FooterProps, PostCardProps, PostListProps, TOCProps, SearchProps, TagFilterProps, } from "./theme/types";
|
|
11
|
+
export { HomePage, PostPage, ArchivePage, TagPage, DocsPage, PortfolioGrid, PortfolioProject } from "./templates";
|
|
12
|
+
export type { NoxionTheme, NoxionThemeColors, NoxionThemeFonts, NoxionThemeSpacing, NoxionThemeShadows, NoxionThemeTransitions, NoxionThemeBreakpoints, NoxionThemeTokens, NoxionLayout, ComponentOverrides, NoxionSlotMap, NoxionTemplateMap, NoxionTemplateProps, NoxionLayoutProps, NoxionThemePackage, NoxionThemeMetadata, HeaderProps, FooterProps, PostCardProps, PostListProps, TOCProps, SearchProps, TagFilterProps, DocsSidebarItem, DocsSidebarProps, DocsBreadcrumbItem, DocsBreadcrumbProps, DocsNavigationLink, DocsPageProps, PortfolioCardProps, PortfolioFilterProps, } from "./theme/types";
|
|
11
13
|
export { NotionPage } from "./components/NotionPage";
|
|
12
14
|
export type { NotionPageProps } from "./components/NotionPage";
|
|
13
15
|
export { PostCard } from "./components/PostCard";
|
|
16
|
+
export { FeaturedPostCard } from "./components/FeaturedPostCard";
|
|
14
17
|
export { PostList } from "./components/PostList";
|
|
18
|
+
export { HeroSection } from "./components/HeroSection";
|
|
19
|
+
export type { HeroSectionProps } from "./components/HeroSection";
|
|
15
20
|
export { Header } from "./components/Header";
|
|
21
|
+
export { NoxionLogo } from "./components/NoxionLogo";
|
|
16
22
|
export { Footer } from "./components/Footer";
|
|
17
23
|
export { TagFilter } from "./components/TagFilter";
|
|
18
24
|
export { EmptyState } from "./components/EmptyState";
|
|
@@ -20,7 +26,13 @@ export type { EmptyStateProps } from "./components/EmptyState";
|
|
|
20
26
|
export { ThemeToggle } from "./components/ThemeToggle";
|
|
21
27
|
export { TOC } from "./components/TOC";
|
|
22
28
|
export { Search } from "./components/Search";
|
|
29
|
+
export { DocsSidebar } from "./components/DocsSidebar";
|
|
30
|
+
export { DocsBreadcrumb } from "./components/DocsBreadcrumb";
|
|
31
|
+
export { PortfolioProjectCard } from "./components/PortfolioProjectCard";
|
|
32
|
+
export { PortfolioFilter } from "./components/PortfolioFilter";
|
|
23
33
|
export { useThemePreference } from "./hooks/useTheme";
|
|
24
34
|
export type { ThemePreference } from "./hooks/useTheme";
|
|
25
35
|
export { useSearch } from "./hooks/useSearch";
|
|
36
|
+
export { validateTheme, formatValidationResult } from "./theme/validate-theme";
|
|
37
|
+
export type { ValidationResult, ValidationIssue, ValidationSeverity } from "./theme/validate-theme";
|
|
26
38
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEtE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC/E,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEtE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC/E,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAClH,YAAY,EACV,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,sBAAsB,EACtB,iBAAiB,EACjB,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,WAAW,EACX,WAAW,EACX,aAAa,EACb,aAAa,EACb,QAAQ,EACR,WAAW,EACX,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACb,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAC/E,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC"}
|