@silicajs/theme-amethyst 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/index.d.ts CHANGED
@@ -1,13 +1,14 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { ThemeLayoutProps, ThemePageProps } from '@silicajs/core/theme';
2
+ import { ThemePageProps, ThemeRootLayoutProps, ThemeSiteLayoutProps } from '@silicajs/core/theme';
3
3
  import { Callout } from './callout.js';
4
4
  import { CodeBlock } from './code-block.js';
5
5
  import { Embed } from './embed.js';
6
6
  import { Mermaid } from './mermaid.js';
7
7
  import 'react';
8
8
 
9
- declare function Layout({ navigation, config, children, Provider, }: ThemeLayoutProps): react_jsx_runtime.JSX.Element;
10
- declare function PageRenderer({ page, graph, manifest }: ThemePageProps): react_jsx_runtime.JSX.Element;
9
+ declare function RootLayout({ config, children, Provider, }: ThemeRootLayoutProps): react_jsx_runtime.JSX.Element;
10
+ declare function SiteLayout({ navigationEndpoint, config, children, }: ThemeSiteLayoutProps): react_jsx_runtime.JSX.Element;
11
+ declare function PageRenderer({ page, breadcrumbs, backlinks }: ThemePageProps): react_jsx_runtime.JSX.Element;
11
12
  declare const components: {
12
13
  "silica-callout": typeof Callout;
13
14
  "silica-code-block": typeof CodeBlock;
@@ -15,7 +16,8 @@ declare const components: {
15
16
  "silica-mermaid": typeof Mermaid;
16
17
  };
17
18
  declare const _default: {
18
- Layout: typeof Layout;
19
+ RootLayout: typeof RootLayout;
20
+ SiteLayout: typeof SiteLayout;
19
21
  PageRenderer: typeof PageRenderer;
20
22
  components: {
21
23
  "silica-callout": typeof Callout;
@@ -25,4 +27,4 @@ declare const _default: {
25
27
  };
26
28
  };
27
29
 
28
- export { Layout, PageRenderer, components, _default as default };
30
+ export { PageRenderer, RootLayout, SiteLayout, components, _default as default };
package/dist/index.js CHANGED
@@ -38,50 +38,49 @@ const THEME_INIT_SCRIPT = String.raw`
38
38
  } catch (_) {}
39
39
  })();
40
40
  `;
41
- function Layout({
42
- navigation,
41
+ function RootLayout({
43
42
  config,
44
43
  children,
45
44
  Provider = DefaultProvider
46
45
  }) {
47
46
  return /* @__PURE__ */ jsxs("html", { lang: "en", suppressHydrationWarning: true, children: [
48
47
  /* @__PURE__ */ jsx("head", { children: /* @__PURE__ */ jsx("script", { dangerouslySetInnerHTML: { __html: THEME_INIT_SCRIPT } }) }),
49
- /* @__PURE__ */ jsx("body", { className: "min-h-svh bg-background font-sans text-foreground antialiased", children: /* @__PURE__ */ jsx(Provider, { children: /* @__PURE__ */ jsxs(SidebarProvider, { children: [
50
- /* @__PURE__ */ jsx(Sidebar, { navigation, config }),
51
- /* @__PURE__ */ jsxs(SidebarInset, { children: [
52
- /* @__PURE__ */ jsxs("header", { className: "sticky top-0 z-10 flex h-12 shrink-0 items-center gap-2 border-b border-border bg-background px-3 md:hidden", children: [
53
- /* @__PURE__ */ jsx(SidebarTrigger, {}),
54
- /* @__PURE__ */ jsx(
55
- SilicaLink,
56
- {
57
- href: "/",
58
- className: "truncate text-sm font-semibold tracking-tight text-foreground",
59
- children: config.title
60
- }
61
- )
62
- ] }),
63
- children
64
- ] })
65
- ] }) }) })
48
+ /* @__PURE__ */ jsx("body", { className: "min-h-svh bg-background font-sans text-foreground antialiased", children: /* @__PURE__ */ jsx(Provider, { children }) })
66
49
  ] });
67
50
  }
68
- function PageRenderer({ page, graph, manifest }) {
69
- const hasBreadcrumb = page.slug !== "index" && page.slug.includes("/");
51
+ function SiteLayout({
52
+ navigationEndpoint,
53
+ config,
54
+ children
55
+ }) {
56
+ return /* @__PURE__ */ jsxs(SidebarProvider, { children: [
57
+ /* @__PURE__ */ jsx(Sidebar, { navigationEndpoint, config }),
58
+ /* @__PURE__ */ jsxs(SidebarInset, { children: [
59
+ /* @__PURE__ */ jsxs("header", { className: "sticky top-0 z-10 flex h-12 shrink-0 items-center gap-2 border-b border-border bg-background px-3 md:hidden", children: [
60
+ /* @__PURE__ */ jsx(SidebarTrigger, {}),
61
+ /* @__PURE__ */ jsx(
62
+ SilicaLink,
63
+ {
64
+ href: "/",
65
+ className: "truncate text-sm font-semibold tracking-tight text-foreground",
66
+ children: config.title
67
+ }
68
+ )
69
+ ] }),
70
+ children
71
+ ] })
72
+ ] });
73
+ }
74
+ function PageRenderer({ page, breadcrumbs, backlinks }) {
75
+ const hasBreadcrumbs = breadcrumbs.length > 0;
70
76
  return /* @__PURE__ */ jsxs("div", { className: "mx-auto w-full max-w-6xl px-8 py-12 lg:grid lg:grid-cols-[minmax(0,1fr)_14rem] lg:gap-12", children: [
71
77
  /* @__PURE__ */ jsxs("article", { className: "min-w-0", children: [
72
78
  /* @__PURE__ */ jsxs("header", { className: "mb-10 flex flex-col gap-3", children: [
73
- hasBreadcrumb ? /* @__PURE__ */ jsx(
74
- Breadcrumbs,
75
- {
76
- slug: page.slug,
77
- allSlugs: manifest.allSlugs,
78
- className: "text-xs"
79
- }
80
- ) : null,
79
+ hasBreadcrumbs ? /* @__PURE__ */ jsx(Breadcrumbs, { items: breadcrumbs, className: "text-xs" }) : null,
81
80
  /* @__PURE__ */ jsx("h1", { className: "text-4xl font-bold tracking-tight text-foreground", children: page.title }),
82
81
  page.description ? /* @__PURE__ */ jsx("p", { className: "text-lg leading-relaxed text-muted-foreground", children: page.description }) : null,
83
82
  /* @__PURE__ */ jsx(PageProperties, { frontmatter: page.frontmatter }),
84
- page.entry.tags.length > 0 ? /* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-2 pt-1", children: page.entry.tags.map((tag) => /* @__PURE__ */ jsxs(
83
+ page.tags.length > 0 ? /* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-2 pt-1", children: page.tags.map((tag) => /* @__PURE__ */ jsxs(
85
84
  SilicaLink,
86
85
  {
87
86
  href: tagToHref(tag),
@@ -95,7 +94,7 @@ function PageRenderer({ page, graph, manifest }) {
95
94
  )) }) : null
96
95
  ] }),
97
96
  /* @__PURE__ */ jsx("div", { className: "prose max-w-none", children: page.content }),
98
- /* @__PURE__ */ jsx("div", { className: "mt-16", children: /* @__PURE__ */ jsx(Backlinks, { graph, slug: page.slug, manifest }) })
97
+ /* @__PURE__ */ jsx("div", { className: "mt-16", children: /* @__PURE__ */ jsx(Backlinks, { backlinks }) })
99
98
  ] }),
100
99
  /* @__PURE__ */ jsx("aside", { className: "mt-12 hidden lg:sticky lg:top-12 lg:mt-0 lg:block lg:self-start", children: /* @__PURE__ */ jsx(TableOfContents, { toc: page.toc }) })
101
100
  ] });
@@ -106,10 +105,11 @@ const components = {
106
105
  "silica-embed": Embed,
107
106
  "silica-mermaid": Mermaid
108
107
  };
109
- var index_default = { Layout, PageRenderer, components };
108
+ var index_default = { RootLayout, SiteLayout, PageRenderer, components };
110
109
  export {
111
- Layout,
112
110
  PageRenderer,
111
+ RootLayout,
112
+ SiteLayout,
113
113
  components,
114
114
  index_default as default
115
115
  };
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { tagToHref } from \"@silicajs/core/runtime\";\nimport type { ThemeLayoutProps, ThemePageProps } from \"@silicajs/core/theme\";\nimport {\n Backlinks,\n Breadcrumbs,\n PageProperties,\n SilicaLink,\n TableOfContents,\n} from \"@silicajs/components\";\nimport {\n SidebarInset,\n SidebarProvider,\n SidebarTrigger,\n} from \"@silicajs/ui/components/sidebar\";\n\nimport { Callout } from \"./callout.js\";\nimport { CodeBlock } from \"./code-block.js\";\nimport { Embed } from \"./embed.js\";\nimport { Mermaid } from \"./mermaid.js\";\nimport { Sidebar } from \"./sidebar.js\";\n\nfunction DefaultProvider({ children }: { children: ReactNode }) {\n return <>{children}</>;\n}\n\nconst THEME_INIT_SCRIPT = String.raw`\n(function () {\n try {\n var storageKey = \"silica-theme\";\n var root = document.documentElement;\n var stored = window.localStorage.getItem(storageKey);\n var theme =\n stored === \"dark\" || stored === \"light\"\n ? stored\n : window.matchMedia(\"(prefers-color-scheme: dark)\").matches\n ? \"dark\"\n : \"light\";\n\n root.classList.remove(\"dark\", \"light\");\n root.classList.add(theme);\n } catch (_) {}\n})();\n`;\n\nexport function Layout({\n navigation,\n config,\n children,\n Provider = DefaultProvider,\n}: ThemeLayoutProps) {\n return (\n <html lang=\"en\" suppressHydrationWarning>\n <head>\n <script dangerouslySetInnerHTML={{ __html: THEME_INIT_SCRIPT }} />\n </head>\n <body className=\"min-h-svh bg-background font-sans text-foreground antialiased\">\n <Provider>\n <SidebarProvider>\n <Sidebar navigation={navigation} config={config} />\n <SidebarInset>\n <header className=\"sticky top-0 z-10 flex h-12 shrink-0 items-center gap-2 border-b border-border bg-background px-3 md:hidden\">\n <SidebarTrigger />\n <SilicaLink\n href=\"/\"\n className=\"truncate text-sm font-semibold tracking-tight text-foreground\"\n >\n {config.title}\n </SilicaLink>\n </header>\n {children}\n </SidebarInset>\n </SidebarProvider>\n </Provider>\n </body>\n </html>\n );\n}\n\nexport function PageRenderer({ page, graph, manifest }: ThemePageProps) {\n const hasBreadcrumb = page.slug !== \"index\" && page.slug.includes(\"/\");\n return (\n <div className=\"mx-auto w-full max-w-6xl px-8 py-12 lg:grid lg:grid-cols-[minmax(0,1fr)_14rem] lg:gap-12\">\n <article className=\"min-w-0\">\n <header className=\"mb-10 flex flex-col gap-3\">\n {hasBreadcrumb ? (\n <Breadcrumbs\n slug={page.slug}\n allSlugs={manifest.allSlugs}\n className=\"text-xs\"\n />\n ) : null}\n <h1 className=\"text-4xl font-bold tracking-tight text-foreground\">\n {page.title}\n </h1>\n {page.description ? (\n <p className=\"text-lg leading-relaxed text-muted-foreground\">\n {page.description}\n </p>\n ) : null}\n <PageProperties frontmatter={page.frontmatter} />\n {page.entry.tags.length > 0 ? (\n <div className=\"flex flex-wrap gap-2 pt-1\">\n {page.entry.tags.map((tag) => (\n <SilicaLink\n key={tag}\n href={tagToHref(tag)}\n className=\"inline-flex h-6 items-center rounded-full border border-border px-2 text-xs text-muted-foreground transition-colors hover:border-primary/40 hover:text-foreground\"\n >\n <span className=\"text-muted-foreground/70\">#</span>\n <span className=\"ml-0.5\">{tag}</span>\n </SilicaLink>\n ))}\n </div>\n ) : null}\n </header>\n <div className=\"prose max-w-none\">{page.content}</div>\n <div className=\"mt-16\">\n <Backlinks graph={graph} slug={page.slug} manifest={manifest} />\n </div>\n </article>\n <aside className=\"mt-12 hidden lg:sticky lg:top-12 lg:mt-0 lg:block lg:self-start\">\n <TableOfContents toc={page.toc} />\n </aside>\n </div>\n );\n}\n\nexport const components = {\n \"silica-callout\": Callout,\n \"silica-code-block\": CodeBlock,\n \"silica-embed\": Embed,\n \"silica-mermaid\": Mermaid,\n};\n\nexport default { Layout, PageRenderer, components };\n"],"mappings":"AAuBS,wBAsCK,YAtCL;AAtBT,SAAS,iBAAiB;AAE1B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP,SAAS,eAAe;AACxB,SAAS,iBAAiB;AAC1B,SAAS,aAAa;AACtB,SAAS,eAAe;AACxB,SAAS,eAAe;AAExB,SAAS,gBAAgB,EAAE,SAAS,GAA4B;AAC9D,SAAO,gCAAG,UAAS;AACrB;AAEA,MAAM,oBAAoB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAmB1B,SAAS,OAAO;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW;AACb,GAAqB;AACnB,SACE,qBAAC,UAAK,MAAK,MAAK,0BAAwB,MACtC;AAAA,wBAAC,UACC,8BAAC,YAAO,yBAAyB,EAAE,QAAQ,kBAAkB,GAAG,GAClE;AAAA,IACA,oBAAC,UAAK,WAAU,iEACd,8BAAC,YACC,+BAAC,mBACC;AAAA,0BAAC,WAAQ,YAAwB,QAAgB;AAAA,MACjD,qBAAC,gBACC;AAAA,6BAAC,YAAO,WAAU,+GAChB;AAAA,8BAAC,kBAAe;AAAA,UAChB;AAAA,YAAC;AAAA;AAAA,cACC,MAAK;AAAA,cACL,WAAU;AAAA,cAET,iBAAO;AAAA;AAAA,UACV;AAAA,WACF;AAAA,QACC;AAAA,SACH;AAAA,OACF,GACF,GACF;AAAA,KACF;AAEJ;AAEO,SAAS,aAAa,EAAE,MAAM,OAAO,SAAS,GAAmB;AACtE,QAAM,gBAAgB,KAAK,SAAS,WAAW,KAAK,KAAK,SAAS,GAAG;AACrE,SACE,qBAAC,SAAI,WAAU,4FACb;AAAA,yBAAC,aAAQ,WAAU,WACjB;AAAA,2BAAC,YAAO,WAAU,6BACf;AAAA,wBACC;AAAA,UAAC;AAAA;AAAA,YACC,MAAM,KAAK;AAAA,YACX,UAAU,SAAS;AAAA,YACnB,WAAU;AAAA;AAAA,QACZ,IACE;AAAA,QACJ,oBAAC,QAAG,WAAU,qDACX,eAAK,OACR;AAAA,QACC,KAAK,cACJ,oBAAC,OAAE,WAAU,iDACV,eAAK,aACR,IACE;AAAA,QACJ,oBAAC,kBAAe,aAAa,KAAK,aAAa;AAAA,QAC9C,KAAK,MAAM,KAAK,SAAS,IACxB,oBAAC,SAAI,WAAU,6BACZ,eAAK,MAAM,KAAK,IAAI,CAAC,QACpB;AAAA,UAAC;AAAA;AAAA,YAEC,MAAM,UAAU,GAAG;AAAA,YACnB,WAAU;AAAA,YAEV;AAAA,kCAAC,UAAK,WAAU,4BAA2B,eAAC;AAAA,cAC5C,oBAAC,UAAK,WAAU,UAAU,eAAI;AAAA;AAAA;AAAA,UALzB;AAAA,QAMP,CACD,GACH,IACE;AAAA,SACN;AAAA,MACA,oBAAC,SAAI,WAAU,oBAAoB,eAAK,SAAQ;AAAA,MAChD,oBAAC,SAAI,WAAU,SACb,8BAAC,aAAU,OAAc,MAAM,KAAK,MAAM,UAAoB,GAChE;AAAA,OACF;AAAA,IACA,oBAAC,WAAM,WAAU,mEACf,8BAAC,mBAAgB,KAAK,KAAK,KAAK,GAClC;AAAA,KACF;AAEJ;AAEO,MAAM,aAAa;AAAA,EACxB,kBAAkB;AAAA,EAClB,qBAAqB;AAAA,EACrB,gBAAgB;AAAA,EAChB,kBAAkB;AACpB;AAEA,IAAO,gBAAQ,EAAE,QAAQ,cAAc,WAAW;","names":[]}
1
+ {"version":3,"sources":["../src/index.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { tagToHref } from \"@silicajs/core/runtime\";\nimport type {\n ThemePageProps,\n ThemeRootLayoutProps,\n ThemeSiteLayoutProps,\n} from \"@silicajs/core/theme\";\nimport {\n Backlinks,\n Breadcrumbs,\n PageProperties,\n SilicaLink,\n TableOfContents,\n} from \"@silicajs/components\";\nimport {\n SidebarInset,\n SidebarProvider,\n SidebarTrigger,\n} from \"@silicajs/ui/components/sidebar\";\n\nimport { Callout } from \"./callout.js\";\nimport { CodeBlock } from \"./code-block.js\";\nimport { Embed } from \"./embed.js\";\nimport { Mermaid } from \"./mermaid.js\";\nimport { Sidebar } from \"./sidebar.js\";\n\nfunction DefaultProvider({ children }: { children: ReactNode }) {\n return <>{children}</>;\n}\n\nconst THEME_INIT_SCRIPT = String.raw`\n(function () {\n try {\n var storageKey = \"silica-theme\";\n var root = document.documentElement;\n var stored = window.localStorage.getItem(storageKey);\n var theme =\n stored === \"dark\" || stored === \"light\"\n ? stored\n : window.matchMedia(\"(prefers-color-scheme: dark)\").matches\n ? \"dark\"\n : \"light\";\n\n root.classList.remove(\"dark\", \"light\");\n root.classList.add(theme);\n } catch (_) {}\n})();\n`;\n\nexport function RootLayout({\n config,\n children,\n Provider = DefaultProvider,\n}: ThemeRootLayoutProps) {\n return (\n <html lang=\"en\" suppressHydrationWarning>\n <head>\n <script dangerouslySetInnerHTML={{ __html: THEME_INIT_SCRIPT }} />\n </head>\n <body className=\"min-h-svh bg-background font-sans text-foreground antialiased\">\n <Provider>{children}</Provider>\n </body>\n </html>\n );\n}\n\nexport function SiteLayout({\n navigationEndpoint,\n config,\n children,\n}: ThemeSiteLayoutProps) {\n return (\n <SidebarProvider>\n <Sidebar navigationEndpoint={navigationEndpoint} config={config} />\n <SidebarInset>\n <header className=\"sticky top-0 z-10 flex h-12 shrink-0 items-center gap-2 border-b border-border bg-background px-3 md:hidden\">\n <SidebarTrigger />\n <SilicaLink\n href=\"/\"\n className=\"truncate text-sm font-semibold tracking-tight text-foreground\"\n >\n {config.title}\n </SilicaLink>\n </header>\n {children}\n </SidebarInset>\n </SidebarProvider>\n );\n}\n\nexport function PageRenderer({ page, breadcrumbs, backlinks }: ThemePageProps) {\n const hasBreadcrumbs = breadcrumbs.length > 0;\n return (\n <div className=\"mx-auto w-full max-w-6xl px-8 py-12 lg:grid lg:grid-cols-[minmax(0,1fr)_14rem] lg:gap-12\">\n <article className=\"min-w-0\">\n <header className=\"mb-10 flex flex-col gap-3\">\n {hasBreadcrumbs ? (\n <Breadcrumbs items={breadcrumbs} className=\"text-xs\" />\n ) : null}\n <h1 className=\"text-4xl font-bold tracking-tight text-foreground\">\n {page.title}\n </h1>\n {page.description ? (\n <p className=\"text-lg leading-relaxed text-muted-foreground\">\n {page.description}\n </p>\n ) : null}\n <PageProperties frontmatter={page.frontmatter} />\n {page.tags.length > 0 ? (\n <div className=\"flex flex-wrap gap-2 pt-1\">\n {page.tags.map((tag) => (\n <SilicaLink\n key={tag}\n href={tagToHref(tag)}\n className=\"inline-flex h-6 items-center rounded-full border border-border px-2 text-xs text-muted-foreground transition-colors hover:border-primary/40 hover:text-foreground\"\n >\n <span className=\"text-muted-foreground/70\">#</span>\n <span className=\"ml-0.5\">{tag}</span>\n </SilicaLink>\n ))}\n </div>\n ) : null}\n </header>\n <div className=\"prose max-w-none\">{page.content}</div>\n <div className=\"mt-16\">\n <Backlinks backlinks={backlinks} />\n </div>\n </article>\n <aside className=\"mt-12 hidden lg:sticky lg:top-12 lg:mt-0 lg:block lg:self-start\">\n <TableOfContents toc={page.toc} />\n </aside>\n </div>\n );\n}\n\nexport const components = {\n \"silica-callout\": Callout,\n \"silica-code-block\": CodeBlock,\n \"silica-embed\": Embed,\n \"silica-mermaid\": Mermaid,\n};\n\nexport default { RootLayout, SiteLayout, PageRenderer, components };\n"],"mappings":"AA2BS,wBA4BL,YA5BK;AA1BT,SAAS,iBAAiB;AAM1B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP,SAAS,eAAe;AACxB,SAAS,iBAAiB;AAC1B,SAAS,aAAa;AACtB,SAAS,eAAe;AACxB,SAAS,eAAe;AAExB,SAAS,gBAAgB,EAAE,SAAS,GAA4B;AAC9D,SAAO,gCAAG,UAAS;AACrB;AAEA,MAAM,oBAAoB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAmB1B,SAAS,WAAW;AAAA,EACzB;AAAA,EACA;AAAA,EACA,WAAW;AACb,GAAyB;AACvB,SACE,qBAAC,UAAK,MAAK,MAAK,0BAAwB,MACtC;AAAA,wBAAC,UACC,8BAAC,YAAO,yBAAyB,EAAE,QAAQ,kBAAkB,GAAG,GAClE;AAAA,IACA,oBAAC,UAAK,WAAU,iEACd,8BAAC,YAAU,UAAS,GACtB;AAAA,KACF;AAEJ;AAEO,SAAS,WAAW;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AACF,GAAyB;AACvB,SACE,qBAAC,mBACC;AAAA,wBAAC,WAAQ,oBAAwC,QAAgB;AAAA,IACjE,qBAAC,gBACC;AAAA,2BAAC,YAAO,WAAU,+GAChB;AAAA,4BAAC,kBAAe;AAAA,QAChB;AAAA,UAAC;AAAA;AAAA,YACC,MAAK;AAAA,YACL,WAAU;AAAA,YAET,iBAAO;AAAA;AAAA,QACV;AAAA,SACF;AAAA,MACC;AAAA,OACH;AAAA,KACF;AAEJ;AAEO,SAAS,aAAa,EAAE,MAAM,aAAa,UAAU,GAAmB;AAC7E,QAAM,iBAAiB,YAAY,SAAS;AAC5C,SACE,qBAAC,SAAI,WAAU,4FACb;AAAA,yBAAC,aAAQ,WAAU,WACjB;AAAA,2BAAC,YAAO,WAAU,6BACf;AAAA,yBACC,oBAAC,eAAY,OAAO,aAAa,WAAU,WAAU,IACnD;AAAA,QACJ,oBAAC,QAAG,WAAU,qDACX,eAAK,OACR;AAAA,QACC,KAAK,cACJ,oBAAC,OAAE,WAAU,iDACV,eAAK,aACR,IACE;AAAA,QACJ,oBAAC,kBAAe,aAAa,KAAK,aAAa;AAAA,QAC9C,KAAK,KAAK,SAAS,IAClB,oBAAC,SAAI,WAAU,6BACZ,eAAK,KAAK,IAAI,CAAC,QACd;AAAA,UAAC;AAAA;AAAA,YAEC,MAAM,UAAU,GAAG;AAAA,YACnB,WAAU;AAAA,YAEV;AAAA,kCAAC,UAAK,WAAU,4BAA2B,eAAC;AAAA,cAC5C,oBAAC,UAAK,WAAU,UAAU,eAAI;AAAA;AAAA;AAAA,UALzB;AAAA,QAMP,CACD,GACH,IACE;AAAA,SACN;AAAA,MACA,oBAAC,SAAI,WAAU,oBAAoB,eAAK,SAAQ;AAAA,MAChD,oBAAC,SAAI,WAAU,SACb,8BAAC,aAAU,WAAsB,GACnC;AAAA,OACF;AAAA,IACA,oBAAC,WAAM,WAAU,mEACf,8BAAC,mBAAgB,KAAK,KAAK,KAAK,GAClC;AAAA,KACF;AAEJ;AAEO,MAAM,aAAa;AAAA,EACxB,kBAAkB;AAAA,EAClB,qBAAqB;AAAA,EACrB,gBAAgB;AAAA,EAChB,kBAAkB;AACpB;AAEA,IAAO,gBAAQ,EAAE,YAAY,YAAY,cAAc,WAAW;","names":[]}
package/dist/sidebar.d.ts CHANGED
@@ -1,12 +1,10 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { ThemeNavigationEntry, ThemeLayoutConfig } from '@silicajs/core/theme';
2
+ import { ThemeLayoutConfig } from '@silicajs/core/theme';
3
3
 
4
4
  type SidebarProps = {
5
- navigation: {
6
- entries: ThemeNavigationEntry[];
7
- };
5
+ navigationEndpoint: string;
8
6
  config: ThemeLayoutConfig;
9
7
  };
10
- declare function Sidebar({ navigation, config }: SidebarProps): react_jsx_runtime.JSX.Element;
8
+ declare function Sidebar({ navigationEndpoint, config }: SidebarProps): react_jsx_runtime.JSX.Element;
11
9
 
12
10
  export { Sidebar, type SidebarProps };
package/dist/sidebar.js CHANGED
@@ -17,7 +17,7 @@ import {
17
17
  SidebarHeader,
18
18
  SidebarRail
19
19
  } from "@silicajs/ui/components/sidebar";
20
- function Sidebar({ navigation, config }) {
20
+ function Sidebar({ navigationEndpoint, config }) {
21
21
  return /* @__PURE__ */ jsxs(ShadcnSidebar, { children: [
22
22
  /* @__PURE__ */ jsxs(SidebarHeader, { className: "gap-3 border-b border-sidebar-border", children: [
23
23
  /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-2 px-1 pt-1", children: [
@@ -33,8 +33,8 @@ function Sidebar({ navigation, config }) {
33
33
  ] }),
34
34
  /* @__PURE__ */ jsx("div", { className: "px-1 pb-1", children: /* @__PURE__ */ jsx(SearchTrigger, { className: "w-full justify-start" }) })
35
35
  ] }),
36
- /* @__PURE__ */ jsx(SidebarContent, { children: /* @__PURE__ */ jsx(SidebarGroup, { children: /* @__PURE__ */ jsx(SidebarGroupContent, { children: /* @__PURE__ */ jsx(VaultTree, { entries: navigation.entries }) }) }) }),
37
- config.authEnabled ? /* @__PURE__ */ jsx(SidebarFooter, { className: "border-t border-sidebar-border", children: /* @__PURE__ */ jsx(Suspense, { fallback: null, children: /* @__PURE__ */ jsx(UserMenu, {}) }) }) : null,
36
+ /* @__PURE__ */ jsx(SidebarContent, { children: /* @__PURE__ */ jsx(SidebarGroup, { children: /* @__PURE__ */ jsx(SidebarGroupContent, { children: /* @__PURE__ */ jsx(VaultTree, { navigationEndpoint }) }) }) }),
37
+ config.authEnabled ? /* @__PURE__ */ jsx(SidebarFooter, { className: "border-t border-sidebar-border p-2", children: /* @__PURE__ */ jsx(Suspense, { fallback: null, children: /* @__PURE__ */ jsx(UserMenu, { logo: config.logo }) }) }) : null,
38
38
  /* @__PURE__ */ jsx(SidebarRail, {})
39
39
  ] });
40
40
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/sidebar.tsx"],"sourcesContent":["\"use client\";\n\nimport { Suspense } from \"react\";\nimport type {\n ThemeLayoutConfig,\n ThemeNavigationEntry,\n} from \"@silicajs/core/theme\";\nimport {\n DarkModeToggle,\n SearchTrigger,\n SilicaLink,\n UserMenu,\n VaultTree,\n} from \"@silicajs/components\";\nimport {\n Sidebar as ShadcnSidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupContent,\n SidebarHeader,\n SidebarRail,\n} from \"@silicajs/ui/components/sidebar\";\n\nexport type SidebarProps = {\n navigation: {\n entries: ThemeNavigationEntry[];\n };\n config: ThemeLayoutConfig;\n};\n\nexport function Sidebar({ navigation, config }: SidebarProps) {\n return (\n <ShadcnSidebar>\n <SidebarHeader className=\"gap-3 border-b border-sidebar-border\">\n <div className=\"flex items-center justify-between gap-2 px-1 pt-1\">\n <SilicaLink\n href=\"/\"\n className=\"truncate text-sm font-semibold tracking-tight text-foreground\"\n >\n {config.title}\n </SilicaLink>\n <DarkModeToggle />\n </div>\n <div className=\"px-1 pb-1\">\n <SearchTrigger className=\"w-full justify-start\" />\n </div>\n </SidebarHeader>\n <SidebarContent>\n <SidebarGroup>\n <SidebarGroupContent>\n <VaultTree entries={navigation.entries} />\n </SidebarGroupContent>\n </SidebarGroup>\n </SidebarContent>\n {config.authEnabled ? (\n <SidebarFooter className=\"border-t border-sidebar-border\">\n <Suspense fallback={null}>\n <UserMenu />\n </Suspense>\n </SidebarFooter>\n ) : null}\n <SidebarRail />\n </ShadcnSidebar>\n );\n}\n"],"mappings":";AAmCQ,SACE,KADF;AAjCR,SAAS,gBAAgB;AAKzB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE,WAAW;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AASA,SAAS,QAAQ,EAAE,YAAY,OAAO,GAAiB;AAC5D,SACE,qBAAC,iBACC;AAAA,yBAAC,iBAAc,WAAU,wCACvB;AAAA,2BAAC,SAAI,WAAU,qDACb;AAAA;AAAA,UAAC;AAAA;AAAA,YACC,MAAK;AAAA,YACL,WAAU;AAAA,YAET,iBAAO;AAAA;AAAA,QACV;AAAA,QACA,oBAAC,kBAAe;AAAA,SAClB;AAAA,MACA,oBAAC,SAAI,WAAU,aACb,8BAAC,iBAAc,WAAU,wBAAuB,GAClD;AAAA,OACF;AAAA,IACA,oBAAC,kBACC,8BAAC,gBACC,8BAAC,uBACC,8BAAC,aAAU,SAAS,WAAW,SAAS,GAC1C,GACF,GACF;AAAA,IACC,OAAO,cACN,oBAAC,iBAAc,WAAU,kCACvB,8BAAC,YAAS,UAAU,MAClB,8BAAC,YAAS,GACZ,GACF,IACE;AAAA,IACJ,oBAAC,eAAY;AAAA,KACf;AAEJ;","names":[]}
1
+ {"version":3,"sources":["../src/sidebar.tsx"],"sourcesContent":["\"use client\";\n\nimport { Suspense } from \"react\";\nimport type { ThemeLayoutConfig } from \"@silicajs/core/theme\";\nimport {\n DarkModeToggle,\n SearchTrigger,\n SilicaLink,\n UserMenu,\n VaultTree,\n} from \"@silicajs/components\";\nimport {\n Sidebar as ShadcnSidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupContent,\n SidebarHeader,\n SidebarRail,\n} from \"@silicajs/ui/components/sidebar\";\n\nexport type SidebarProps = {\n navigationEndpoint: string;\n config: ThemeLayoutConfig;\n};\n\nexport function Sidebar({ navigationEndpoint, config }: SidebarProps) {\n return (\n <ShadcnSidebar>\n <SidebarHeader className=\"gap-3 border-b border-sidebar-border\">\n <div className=\"flex items-center justify-between gap-2 px-1 pt-1\">\n <SilicaLink\n href=\"/\"\n className=\"truncate text-sm font-semibold tracking-tight text-foreground\"\n >\n {config.title}\n </SilicaLink>\n <DarkModeToggle />\n </div>\n <div className=\"px-1 pb-1\">\n <SearchTrigger className=\"w-full justify-start\" />\n </div>\n </SidebarHeader>\n <SidebarContent>\n <SidebarGroup>\n <SidebarGroupContent>\n <VaultTree navigationEndpoint={navigationEndpoint} />\n </SidebarGroupContent>\n </SidebarGroup>\n </SidebarContent>\n {config.authEnabled ? (\n <SidebarFooter className=\"border-t border-sidebar-border p-2\">\n <Suspense fallback={null}>\n <UserMenu logo={config.logo} />\n </Suspense>\n </SidebarFooter>\n ) : null}\n <SidebarRail />\n </ShadcnSidebar>\n );\n}\n"],"mappings":";AA8BQ,SACE,KADF;AA5BR,SAAS,gBAAgB;AAEzB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE,WAAW;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAOA,SAAS,QAAQ,EAAE,oBAAoB,OAAO,GAAiB;AACpE,SACE,qBAAC,iBACC;AAAA,yBAAC,iBAAc,WAAU,wCACvB;AAAA,2BAAC,SAAI,WAAU,qDACb;AAAA;AAAA,UAAC;AAAA;AAAA,YACC,MAAK;AAAA,YACL,WAAU;AAAA,YAET,iBAAO;AAAA;AAAA,QACV;AAAA,QACA,oBAAC,kBAAe;AAAA,SAClB;AAAA,MACA,oBAAC,SAAI,WAAU,aACb,8BAAC,iBAAc,WAAU,wBAAuB,GAClD;AAAA,OACF;AAAA,IACA,oBAAC,kBACC,8BAAC,gBACC,8BAAC,uBACC,8BAAC,aAAU,oBAAwC,GACrD,GACF,GACF;AAAA,IACC,OAAO,cACN,oBAAC,iBAAc,WAAU,sCACvB,8BAAC,YAAS,UAAU,MAClB,8BAAC,YAAS,MAAM,OAAO,MAAM,GAC/B,GACF,IACE;AAAA,IACJ,oBAAC,eAAY;AAAA,KACf;AAEJ;","names":[]}
package/dist/styles.css CHANGED
@@ -3,7 +3,9 @@
3
3
 
4
4
  @source "../../ui/src/**/*.{ts,tsx}";
5
5
  @source "../../components/src/**/*.{ts,tsx}";
6
+ @source "../../components/dist/**/*.js";
6
7
  @source "../src/**/*.{ts,tsx}";
8
+ @source "../dist/**/*.js";
7
9
 
8
10
  /*
9
11
  * Every neutral/foreground token we override must be declared in BOTH :root
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@silicajs/theme-amethyst",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "Amethyst theme for Silica — Tailwind v4 + Base UI, violet accent, Mintlify-style layout.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -24,12 +24,12 @@
24
24
  "test": "vitest run --passWithNoTests"
25
25
  },
26
26
  "dependencies": {
27
- "@silicajs/components": "^0.1.0",
28
- "@silicajs/core": "^0.1.0",
29
- "@silicajs/ui": "^0.1.0",
27
+ "@silicajs/components": "^0.2.0",
28
+ "@silicajs/core": "^0.2.0",
29
+ "@silicajs/ui": "^0.1.2",
30
30
  "@tailwindcss/typography": "^0.5.18",
31
31
  "class-variance-authority": "^0.7.1",
32
- "lucide-react": "^1.16.0"
32
+ "lucide-react": "^1.17.0"
33
33
  },
34
34
  "peerDependencies": {
35
35
  "react": "^19.2.0",
@@ -39,7 +39,16 @@
39
39
  "@types/react": "^19.2.10",
40
40
  "@types/react-dom": "^19.2.3",
41
41
  "react": "^19.2.6",
42
- "react-dom": "^19.2.6",
42
+ "react-dom": "^19.2.7",
43
43
  "tsup": "^8.5.1"
44
+ },
45
+ "homepage": "https://github.com/agdevhq/silica/tree/main/packages/theme-amethyst#readme",
46
+ "repository": {
47
+ "type": "git",
48
+ "url": "git+https://github.com/agdevhq/silica.git",
49
+ "directory": "packages/theme-amethyst"
50
+ },
51
+ "bugs": {
52
+ "url": "https://github.com/agdevhq/silica/issues"
44
53
  }
45
54
  }