docs(ui): publish complete component catalog

This commit is contained in:
2026-07-19 23:21:33 +05:30
parent b190bbf41c
commit 45f2820871
975 changed files with 49638 additions and 294 deletions
+17 -3
View File
@@ -29,6 +29,12 @@ const uiReference = existsSync(uiReferencePath)
}>;
})
: undefined;
const componentSlug = (name: string) =>
(name === "file-upload" ? "file-upload-primitive" : name)
.replace(/([a-z0-9])([A-Z])/g, "$1-$2")
.replace(/[^a-zA-Z0-9]+/g, "-")
.replace(/^-|-$/g, "")
.toLowerCase();
const uiReferenceText = uiReference
? uiReference.components
.map(
@@ -49,6 +55,7 @@ const code = (s: string) =>
const navigation = [
["/getting-started", "Get started"],
["/packages", "Packages"],
["/components", "Components"],
["/language", "Language"],
["/architecture", "Architecture"],
] as const;
@@ -119,8 +126,8 @@ function marketingShell(description: string, body: string) {
view {
<SkipLink label="Skip to content" href="#main" class="docs-skip-link" />
<div class="docs-shell marketing-shell">
<header class="topbar marketing-header"><a class="brand" href="/"><span>W</span> WRNexusJS</a><nav aria-label="Primary"><a href="/getting-started">Get started</a><a href="/packages">Packages</a><a href="/language">Language</a><a href="/architecture">Architecture</a></nav><div class="topbar-actions"><a class="preview-pill" href="/access">Private preview · v${version}</a><button data-wire-theme-toggle class="theme-button" aria-label="Toggle color theme">◐</button></div></header>
<div class="marketing-mobile-nav"><details><summary>Menu</summary><nav><a href="/getting-started">Get started</a><a href="/packages">Packages</a><a href="/language">Language</a><a href="/architecture">Architecture</a><a href="/tutorial">Tutorial</a><a href="/examples">Examples</a></nav></details></div>
<header class="topbar marketing-header"><a class="brand" href="/"><span>W</span> WRNexusJS</a><nav aria-label="Primary"><a href="/getting-started">Get started</a><a href="/packages">Packages</a><a href="/components">Components</a><a href="/language">Language</a><a href="/architecture">Architecture</a></nav><div class="topbar-actions"><a class="preview-pill" href="/access">Private preview · v${version}</a><button data-wire-theme-toggle class="theme-button" aria-label="Toggle color theme">◐</button></div></header>
<div class="marketing-mobile-nav"><details><summary>Menu</summary><nav><a href="/getting-started">Get started</a><a href="/packages">Packages</a><a href="/components">Components</a><a href="/language">Language</a><a href="/architecture">Architecture</a><a href="/tutorial">Tutorial</a><a href="/examples">Examples</a></nav></details></div>
<main id="main" class="marketing-main">${marketingBody}</main>
<footer><div class="footer-brand"><span class="footer-mark" aria-hidden="true">W</span><p><strong>WRNexusJS ${version}</strong><span>Build from the server. Ship only what matters.</span></p></div><nav aria-label="Footer"><a href="/getting-started">Documentation</a><a href="/roadmap">Roadmap</a><a href="/security">Security</a><a href="/support">Support</a><a href="/llms.txt">AI guide</a></nav><p class="footer-meta">Bun-native · Created by <a href="https://workroot.in/">WorkRoot</a></p></footer>
<BackToTop />
@@ -464,6 +471,7 @@ const routes = [
"/architecture",
"/language",
"/packages",
"/components",
...Object.keys(guides).map((x) => `/guides/${x}`),
"/examples",
"/showcase",
@@ -477,7 +485,13 @@ const routes = [
"/search",
"/404",
].filter(Boolean);
const urls = [...new Set([...routes, ...packageNames.map((x) => `/packages/${x}`)])];
const urls = [
...new Set([
...routes,
...packageNames.map((x) => `/packages/${x}`),
...(uiReference?.components.map((item) => `/components/${componentSlug(item.name)}`) ?? []),
]),
];
writeFileSync(
join(pub, "robots.txt"),
`User-agent: *\nAllow: /\nSitemap: https://wrnexusjs.dev/sitemap.xml\n`,