@geenius/docs 0.5.0 → 0.9.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.
@@ -1,16 +1,17 @@
1
- import { BreadcrumbItem, DocPage as DocPage$1, SearchResult, DocSection, TocItem, DocsConfig } from '@geenius/docs-shared';
2
- export { BreadcrumbItem, DocAccess, DocPage as DocPageType, DocSection, DocStatus, DocsConfig, SearchResult, TocItem } from '@geenius/docs-shared';
1
+ import { BreadcrumbItem, DocPage as DocPage$1, SearchResult, DocSection, TocItem, DocsConfig } from '@geenius/docs/shared';
2
+ export { BreadcrumbItem, DocAccess, DocPage as DocPageType, DocSection, DocStatus, DocsConfig, SearchResult, TocItem } from '@geenius/docs/shared';
3
3
  import { JSX, Accessor } from 'solid-js';
4
4
 
5
5
  /**
6
6
  * @module docsSolidCssBreadcrumbs
7
- * @package @geenius/docs-solidjs-css
7
+ * @package @geenius/docs/solidjs-css
8
8
  * @description Renders breadcrumb navigation for the SolidJS CSS docs variant
9
9
  * using the shared vanilla CSS class contract.
10
10
  */
11
11
 
12
12
  interface BreadcrumbsProps {
13
13
  items: BreadcrumbItem[];
14
+ class?: string;
14
15
  }
15
16
  /**
16
17
  * Renders a breadcrumb trail for docs pages.
@@ -22,13 +23,14 @@ declare function Breadcrumbs(props: BreadcrumbsProps): JSX.Element | null;
22
23
 
23
24
  /**
24
25
  * @module docsSolidCssDocPage
25
- * @package @geenius/docs-solidjs-css
26
+ * @package @geenius/docs/solidjs-css
26
27
  * @description Renders authored docs content for the SolidJS CSS variant using
27
28
  * safe Markdown output and the shared vanilla CSS class contract.
28
29
  */
29
30
 
30
31
  interface DocPageProps {
31
32
  page: DocPage$1;
33
+ class?: string;
32
34
  }
33
35
  /**
34
36
  * Renders a documentation page body.
@@ -40,7 +42,7 @@ declare function DocPage(props: DocPageProps): JSX.Element;
40
42
 
41
43
  /**
42
44
  * @module docsSolidCssDocSearch
43
- * @package @geenius/docs-solidjs-css
45
+ * @package @geenius/docs/solidjs-css
44
46
  * @description Provides the accessible command-palette-style search dialog for
45
47
  * the SolidJS CSS docs variant.
46
48
  */
@@ -52,6 +54,7 @@ interface DocSearchProps {
52
54
  onSelect: (result: SearchResult) => void;
53
55
  isOpen: boolean;
54
56
  onClose: () => void;
57
+ class?: string;
55
58
  }
56
59
  /**
57
60
  * Renders the modal docs search experience.
@@ -63,7 +66,7 @@ declare function DocSearch(props: DocSearchProps): JSX.Element | null;
63
66
 
64
67
  /**
65
68
  * @module docsSolidCssDocSidebar
66
- * @package @geenius/docs-solidjs-css
69
+ * @package @geenius/docs/solidjs-css
67
70
  * @description Renders the hierarchical documentation sidebar for the SolidJS
68
71
  * CSS variant with local disclosure state and the shared vanilla CSS class
69
72
  * contract.
@@ -76,6 +79,7 @@ interface DocSidebarProps {
76
79
  })[];
77
80
  currentPageId?: string;
78
81
  onNavigate: (page: DocPage$1, section: DocSection) => void;
82
+ class?: string;
79
83
  }
80
84
  /**
81
85
  * Renders the documentation sidebar tree.
@@ -87,7 +91,7 @@ declare function DocSidebar(props: DocSidebarProps): JSX.Element;
87
91
 
88
92
  /**
89
93
  * @module docsSolidCssDocsLayout
90
- * @package @geenius/docs-solidjs-css
94
+ * @package @geenius/docs/solidjs-css
91
95
  * @description Composes the sidebar, content column, breadcrumbs, and table
92
96
  * of contents for the SolidJS CSS docs variant.
93
97
  */
@@ -95,6 +99,7 @@ declare function DocSidebar(props: DocSidebarProps): JSX.Element;
95
99
  interface DocsLayoutProps {
96
100
  sections: (DocSection & {
97
101
  pages?: DocPage$1[];
102
+ pageCount?: number;
98
103
  })[];
99
104
  currentPage?: DocPage$1;
100
105
  toc?: TocItem[];
@@ -103,6 +108,7 @@ interface DocsLayoutProps {
103
108
  currentPageId?: string;
104
109
  onNavigate: (page: DocPage$1, section: DocSection) => void;
105
110
  children: JSX.Element;
111
+ class?: string;
106
112
  }
107
113
  /**
108
114
  * Renders the shared docs layout shell for the SolidJS CSS package.
@@ -114,7 +120,7 @@ declare function DocsLayout(props: DocsLayoutProps): JSX.Element;
114
120
 
115
121
  /**
116
122
  * @module docsSolidCssEditButton
117
- * @package @geenius/docs-solidjs-css
123
+ * @package @geenius/docs/solidjs-css
118
124
  * @description Exposes the CSS-backed edit-link affordance for SolidJS docs
119
125
  * pages so hosts can route users to the source repository without Tailwind
120
126
  * utilities.
@@ -123,6 +129,7 @@ declare function DocsLayout(props: DocsLayoutProps): JSX.Element;
123
129
  interface EditButtonProps {
124
130
  pageSlug: string;
125
131
  editUrl?: string;
132
+ class?: string;
126
133
  }
127
134
  /**
128
135
  * Renders the "Edit this page" link when source editing is configured.
@@ -134,7 +141,7 @@ declare function EditButton(props: EditButtonProps): JSX.Element | null;
134
141
 
135
142
  /**
136
143
  * @module docsSolidCssPageNavigation
137
- * @package @geenius/docs-solidjs-css
144
+ * @package @geenius/docs/solidjs-css
138
145
  * @description Renders previous and next page affordances for the SolidJS CSS
139
146
  * docs variant using the shared vanilla CSS navigation classes.
140
147
  */
@@ -148,6 +155,7 @@ interface PageNavigationProps {
148
155
  title: string;
149
156
  href: string;
150
157
  };
158
+ class?: string;
151
159
  }
152
160
  /**
153
161
  * Renders previous and next page links for the current article.
@@ -159,7 +167,7 @@ declare function PageNavigation(props: PageNavigationProps): JSX.Element | null;
159
167
 
160
168
  /**
161
169
  * @module docsSolidCssTableOfContents
162
- * @package @geenius/docs-solidjs-css
170
+ * @package @geenius/docs/solidjs-css
163
171
  * @description Renders the CSS-backed table of contents tree for the SolidJS
164
172
  * docs variant.
165
173
  */
@@ -167,6 +175,7 @@ declare function PageNavigation(props: PageNavigationProps): JSX.Element | null;
167
175
  interface TableOfContentsProps {
168
176
  toc: TocItem[];
169
177
  activeId?: string;
178
+ class?: string;
170
179
  }
171
180
  /**
172
181
  * Renders the page table of contents.
@@ -178,7 +187,7 @@ declare function TableOfContents(props: TableOfContentsProps): JSX.Element | nul
178
187
 
179
188
  /**
180
189
  * @module docsSolidCssVersionSelector
181
- * @package @geenius/docs-solidjs-css
190
+ * @package @geenius/docs/solidjs-css
182
191
  * @description Provides the CSS-backed version selector for the SolidJS docs
183
192
  * variant using a native select for accessibility and low runtime overhead.
184
193
  */
@@ -187,6 +196,7 @@ interface VersionSelectorProps {
187
196
  versions: string[];
188
197
  current: string;
189
198
  onSelect: (version: string) => void;
199
+ class?: string;
190
200
  }
191
201
  /**
192
202
  * Renders a version switcher when multiple docs versions exist.
@@ -198,7 +208,7 @@ declare function VersionSelector(props: VersionSelectorProps): JSX.Element | nul
198
208
 
199
209
  /**
200
210
  * @module docsSolidCssDocSearchPage
201
- * @package @geenius/docs-solidjs-css
211
+ * @package @geenius/docs/solidjs-css
202
212
  * @description Renders the standalone SolidJS CSS full-page docs search
203
213
  * experience using local search results and vanilla CSS layouts.
204
214
  */
@@ -209,6 +219,7 @@ interface DocSearchPageProps {
209
219
  pageCount: number;
210
220
  })[] | undefined>;
211
221
  onSelectPage?: (page: DocPage$1, section: DocSection) => void;
222
+ class?: string;
212
223
  }
213
224
  /**
214
225
  * Full-page search experience for the standalone SolidJS CSS docs variant.
@@ -220,7 +231,7 @@ declare function DocSearchPage(props: DocSearchPageProps): JSX.Element;
220
231
 
221
232
  /**
222
233
  * @module docsSolidCssCreateDocsAdmin
223
- * @package @geenius/docs-solidjs-css
234
+ * @package @geenius/docs/solidjs-css
224
235
  * @description Adapts transport-level docs admin mutations into stable
225
236
  * SolidJS-friendly callbacks for the CSS variant.
226
237
  */
@@ -285,7 +296,7 @@ declare function createDocsAdmin(mutations: {
285
296
 
286
297
  /**
287
298
  * @module docsSolidCssDocsAdminPage
288
- * @package @geenius/docs-solidjs-css
299
+ * @package @geenius/docs/solidjs-css
289
300
  * @description Renders the standalone SolidJS CSS admin surface for managing
290
301
  * docs sections and pages using the package-local vanilla CSS panel styles.
291
302
  */
@@ -297,6 +308,7 @@ interface DocsAdminPageProps {
297
308
  })[] | undefined>;
298
309
  allPages?: DocPage$1[];
299
310
  admin: DocsAdminActions;
311
+ class?: string;
300
312
  }
301
313
  /**
302
314
  * Admin page for section and page management in the SolidJS CSS variant.
@@ -308,7 +320,7 @@ declare function DocsAdminPage(props: DocsAdminPageProps): JSX.Element;
308
320
 
309
321
  /**
310
322
  * @module docsSolidCssDocsIndexPage
311
- * @package @geenius/docs-solidjs-css
323
+ * @package @geenius/docs/solidjs-css
312
324
  * @description Renders the SolidJS CSS docs landing page with section cards,
313
325
  * recent pages, and a package-local search trigger.
314
326
  */
@@ -319,6 +331,7 @@ interface DocsIndexPageProps {
319
331
  pageCount: number;
320
332
  })[] | undefined>;
321
333
  onSelectPage?: (page: DocPage$1, section: DocSection) => void;
334
+ class?: string;
322
335
  }
323
336
  /**
324
337
  * Landing page for the standalone SolidJS CSS docs experience.
@@ -330,7 +343,7 @@ declare function DocsIndexPage(props: DocsIndexPageProps): JSX.Element;
330
343
 
331
344
  /**
332
345
  * @module docsSolidCssDocViewPage
333
- * @package @geenius/docs-solidjs-css
346
+ * @package @geenius/docs/solidjs-css
334
347
  * @description Renders the SolidJS CSS docs detail page with local layout, TOC
335
348
  * tracking, navigation footer, and metadata presentation.
336
349
  */
@@ -344,6 +357,7 @@ interface DocViewPageProps {
344
357
  editPageUrl?: string;
345
358
  onNavigate: (page: DocPage$1, section: DocSection) => void;
346
359
  onIncrementView?: (pageId: string) => void;
360
+ class?: string;
347
361
  }
348
362
  /**
349
363
  * Page view for the standalone SolidJS CSS docs variant.
@@ -355,7 +369,7 @@ declare function DocViewPage(props: DocViewPageProps): JSX.Element;
355
369
 
356
370
  /**
357
371
  * @module docsSolidCssCreateDocSearch
358
- * @package @geenius/docs-solidjs-css
372
+ * @package @geenius/docs/solidjs-css
359
373
  * @description Implements debounced docs search state for the SolidJS CSS
360
374
  * variant so modal and page-level search flows share the same behavior.
361
375
  */
@@ -387,7 +401,7 @@ declare function createDocSearch(searchFn: (query: string) => SearchResult[] | P
387
401
 
388
402
  /**
389
403
  * @module docsSolidCssCreateDocs
390
- * @package @geenius/docs-solidjs-css
404
+ * @package @geenius/docs/solidjs-css
391
405
  * @description Provides the SolidJS CSS docs state primitive that mirrors the
392
406
  * Tailwind SolidJS surface while staying local to the CSS package.
393
407
  */
@@ -435,7 +449,7 @@ declare function createDocs(tree: Accessor<(DocSection & {
435
449
 
436
450
  /**
437
451
  * @module docsSolidCssCreateTableOfContents
438
- * @package @geenius/docs-solidjs-css
452
+ * @package @geenius/docs/solidjs-css
439
453
  * @description Tracks extracted headings and the active article anchor for the
440
454
  * SolidJS CSS docs variant.
441
455
  */
@@ -460,4 +474,25 @@ interface TableOfContentsState {
460
474
  */
461
475
  declare function createTableOfContents(mdxContent: Accessor<string | undefined>): TableOfContentsState;
462
476
 
463
- export { Breadcrumbs, DocPage, DocSearch, DocSearchPage, DocSidebar, DocViewPage, DocsAdminPage, DocsIndexPage, DocsLayout, EditButton, PageNavigation, TableOfContents, VersionSelector, createDocSearch, createDocs, createDocsAdmin, createTableOfContents };
477
+ /**
478
+ * @module docsSolidCssTypes
479
+ * @package @geenius/docs/solidjs-css
480
+ * @description Declares the supporting SolidJS CSS types shared across the
481
+ * standalone vanilla CSS docs components and pages.
482
+ */
483
+
484
+ /**
485
+ * Optional `class` contract shared by SolidJS CSS docs exports.
486
+ */
487
+ interface WithClassName {
488
+ class?: string;
489
+ }
490
+ /**
491
+ * Shared docs section shape used by layout, navigation, and page components.
492
+ */
493
+ type DocsSectionWithPages = DocSection & {
494
+ pages?: DocPage$1[];
495
+ pageCount?: number;
496
+ };
497
+
498
+ export { Breadcrumbs, DocPage, DocSearch, DocSearchPage, type DocSearchState, DocSidebar, DocViewPage, type DocsAdminActions, DocsAdminPage, DocsIndexPage, DocsLayout, type DocsSectionWithPages, type DocsState, EditButton, PageNavigation, TableOfContents, type TableOfContentsState, VersionSelector, type WithClassName, createDocSearch, createDocs, createDocsAdmin, createTableOfContents };
@@ -1,18 +1,19 @@
1
1
  import { For, Show, createSignal, createUniqueId, createMemo, createEffect, children, onCleanup } from 'solid-js';
2
- import clsx from 'clsx';
3
2
  import { jsx, jsxs, Fragment } from 'solid-js/h/jsx-runtime';
4
3
  import remarkGfm from 'remark-gfm';
5
4
  import { SolidMarkdown } from 'solid-markdown';
6
5
 
7
6
  // src/components/Breadcrumbs.tsx
8
- function cx(...values) {
9
- return clsx(...values);
7
+
8
+ // src/lib/cx.ts
9
+ function cx(...classes) {
10
+ return classes.filter(Boolean).join(" ");
10
11
  }
11
12
  function Breadcrumbs(props) {
12
13
  if (props.items.length === 0) {
13
14
  return null;
14
15
  }
15
- return /* @__PURE__ */ jsx("nav", { class: "docs__breadcrumbs", "aria-label": "Breadcrumb", children: /* @__PURE__ */ jsx(For, { each: props.items, children: (item, index) => /* @__PURE__ */ jsxs(Fragment, { children: [
16
+ return /* @__PURE__ */ jsx("nav", { class: cx("docs__breadcrumbs", props.class), "aria-label": "Breadcrumb", children: /* @__PURE__ */ jsx(For, { each: props.items, children: (item, index) => /* @__PURE__ */ jsxs(Fragment, { children: [
16
17
  /* @__PURE__ */ jsx(Show, { when: index() > 0, children: /* @__PURE__ */ jsx(
17
18
  "svg",
18
19
  {
@@ -41,7 +42,7 @@ function Breadcrumbs(props) {
41
42
  ] }) }) });
42
43
  }
43
44
 
44
- // ../shared/dist/chunk-BR2XBF64.js
45
+ // ../shared/dist/chunk-QKKVTCRJ.js
45
46
  function toTocLevel(level) {
46
47
  if (level === 2 || level === 3 || level === 4) {
47
48
  return level;
@@ -206,7 +207,7 @@ function createHeading(Tag, className) {
206
207
  };
207
208
  }
208
209
  function DocPage(props) {
209
- return /* @__PURE__ */ jsx("article", { class: "docs__article", children: /* @__PURE__ */ jsx("div", { class: "docs__article-body docs__content-main", children: /* @__PURE__ */ jsx(
210
+ return /* @__PURE__ */ jsx("article", { class: cx("docs__article", props.class), children: /* @__PURE__ */ jsx("div", { class: "docs__article-body docs__content-main", children: /* @__PURE__ */ jsx(
210
211
  SolidMarkdown,
211
212
  {
212
213
  remarkPlugins: [remarkGfm],
@@ -290,7 +291,7 @@ function DocSearch(props) {
290
291
  if (!props.isOpen) {
291
292
  return null;
292
293
  }
293
- return /* @__PURE__ */ jsxs("div", { class: "docs__search-modal", children: [
294
+ return /* @__PURE__ */ jsxs("div", { class: cx("docs__search-modal", props.class), children: [
294
295
  /* @__PURE__ */ jsx(
295
296
  "button",
296
297
  {
@@ -490,10 +491,17 @@ function DocSidebar(props) {
490
491
  }
491
492
  );
492
493
  };
493
- return /* @__PURE__ */ jsxs("nav", { class: "docs__sidebar-nav", "aria-label": "Documentation", children: [
494
- /* @__PURE__ */ jsx("div", { class: "docs__sidebar-header", children: "Documentation" }),
495
- topLevelSections().map((section) => renderSection(section))
496
- ] });
494
+ return /* @__PURE__ */ jsxs(
495
+ "nav",
496
+ {
497
+ class: cx("docs__sidebar-nav", props.class),
498
+ "aria-label": "Documentation",
499
+ children: [
500
+ /* @__PURE__ */ jsx("div", { class: "docs__sidebar-header", children: "Documentation" }),
501
+ topLevelSections().map((section) => renderSection(section))
502
+ ]
503
+ }
504
+ );
497
505
  }
498
506
  function TocEntry(props) {
499
507
  const depth = props.depth ?? 0;
@@ -518,14 +526,14 @@ function TableOfContents(props) {
518
526
  if (props.toc.length === 0) {
519
527
  return null;
520
528
  }
521
- return /* @__PURE__ */ jsxs("nav", { class: "docs__toc", "aria-label": "On this page", children: [
529
+ return /* @__PURE__ */ jsxs("nav", { class: cx("docs__toc", props.class), "aria-label": "On this page", children: [
522
530
  /* @__PURE__ */ jsx("h2", { class: "docs__toc-title", children: "On this page" }),
523
531
  /* @__PURE__ */ jsx("div", { class: "docs__toc-list", children: /* @__PURE__ */ jsx(For, { each: props.toc, children: (item) => /* @__PURE__ */ jsx(TocEntry, { item, activeId: props.activeId }) }) })
524
532
  ] });
525
533
  }
526
534
  function DocsLayout(props) {
527
535
  const resolvedChildren = children(() => props.children);
528
- return /* @__PURE__ */ jsxs("div", { class: "docs__layout", children: [
536
+ return /* @__PURE__ */ jsxs("div", { class: cx("docs__layout", props.class), children: [
529
537
  /* @__PURE__ */ jsx("aside", { class: "docs__sidebar", children: /* @__PURE__ */ jsx(
530
538
  DocSidebar,
531
539
  {
@@ -554,7 +562,7 @@ function EditButton(props) {
554
562
  href,
555
563
  target: "_blank",
556
564
  rel: "noreferrer noopener",
557
- class: "docs__edit-link",
565
+ class: cx("docs__edit-link", props.class),
558
566
  children: [
559
567
  /* @__PURE__ */ jsx("svg", { "aria-hidden": "true", viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", width: "14", height: "14", children: /* @__PURE__ */ jsx(
560
568
  "path",
@@ -573,7 +581,7 @@ function PageNavigation(props) {
573
581
  if (!props.prev && !props.next) {
574
582
  return null;
575
583
  }
576
- return /* @__PURE__ */ jsxs("nav", { class: "docs__page-nav", "aria-label": "Page navigation", children: [
584
+ return /* @__PURE__ */ jsxs("nav", { class: cx("docs__page-nav", props.class), "aria-label": "Page navigation", children: [
577
585
  props.prev ? /* @__PURE__ */ jsxs("a", { href: props.prev.href, class: "docs__page-nav-prev", children: [
578
586
  /* @__PURE__ */ jsx("span", { class: "docs__page-nav-label", children: "Previous" }),
579
587
  /* @__PURE__ */ jsx("span", { class: "docs__page-nav-title", children: props.prev.title })
@@ -588,7 +596,7 @@ function VersionSelector(props) {
588
596
  if (props.versions.length <= 1) {
589
597
  return null;
590
598
  }
591
- return /* @__PURE__ */ jsx("div", { class: "docs__version-selector", children: /* @__PURE__ */ jsx(
599
+ return /* @__PURE__ */ jsx("div", { class: cx("docs__version-selector", props.class), children: /* @__PURE__ */ jsx(
592
600
  "select",
593
601
  {
594
602
  class: "docs__version-select docs__version-select--active",
@@ -641,11 +649,11 @@ function DocSearchPage(props) {
641
649
  return searchDocs(query, index);
642
650
  });
643
651
  if (props.tree() === void 0) {
644
- return /* @__PURE__ */ jsx("div", { class: "docs__empty", style: { "min-height": "100vh" }, children: /* @__PURE__ */ jsx("div", { class: "docs__skeleton", style: { width: "24rem", height: "3rem" } }) });
652
+ return /* @__PURE__ */ jsx("div", { class: cx("docs__empty", props.class), style: { "min-height": "100vh" }, children: /* @__PURE__ */ jsx("div", { class: "docs__skeleton", style: { width: "24rem", height: "3rem" } }) });
645
653
  }
646
654
  const sections = props.tree() ?? [];
647
655
  const flatPages = sections.flatMap((section) => section.pages ?? []);
648
- return /* @__PURE__ */ jsx("div", { class: "docs__main", children: /* @__PURE__ */ jsx("div", { class: "docs__content", children: /* @__PURE__ */ jsxs("div", { class: "docs__content-inner", style: { display: "block" }, children: [
656
+ return /* @__PURE__ */ jsx("div", { class: cx("docs__main", props.class), children: /* @__PURE__ */ jsx("div", { class: "docs__content", children: /* @__PURE__ */ jsxs("div", { class: "docs__content-inner", style: { display: "block" }, children: [
649
657
  /* @__PURE__ */ jsx("header", { class: "docs__header", children: /* @__PURE__ */ jsx("h1", { class: "docs__title", children: "Search documentation" }) }),
650
658
  /* @__PURE__ */ jsxs("div", { class: "docs__search-page", children: [
651
659
  /* @__PURE__ */ jsx(
@@ -745,9 +753,9 @@ function DocsAdminPage(props) {
745
753
  () => pageForm().title.trim().length > 0 && pageForm().slug.trim().length > 0 && pageForm().content.trim().length > 0
746
754
  );
747
755
  if (props.tree() === void 0) {
748
- return /* @__PURE__ */ jsx("div", { class: "docs__empty", style: { "min-height": "100vh" }, children: /* @__PURE__ */ jsx("div", { class: "docs__skeleton", style: { width: "24rem", height: "3rem" } }) });
756
+ return /* @__PURE__ */ jsx("div", { class: cx("docs__empty", props.class), style: { "min-height": "100vh" }, children: /* @__PURE__ */ jsx("div", { class: "docs__skeleton", style: { width: "24rem", height: "3rem" } }) });
749
757
  }
750
- return /* @__PURE__ */ jsx("div", { class: "docs__main", children: /* @__PURE__ */ jsx("div", { class: "docs__content", children: /* @__PURE__ */ jsxs("div", { class: "docs__content-inner", style: { display: "block" }, children: [
758
+ return /* @__PURE__ */ jsx("div", { class: cx("docs__main", props.class), children: /* @__PURE__ */ jsx("div", { class: "docs__content", children: /* @__PURE__ */ jsxs("div", { class: "docs__content-inner", style: { display: "block" }, children: [
751
759
  /* @__PURE__ */ jsx("header", { class: "docs__header", children: /* @__PURE__ */ jsx("h1", { class: "docs__title", children: "Docs admin" }) }),
752
760
  /* @__PURE__ */ jsxs("div", { class: "docs__admin-grid", children: [
753
761
  /* @__PURE__ */ jsxs("section", { class: "docs__admin-panel", children: [
@@ -1134,16 +1142,16 @@ function DocsIndexPage(props) {
1134
1142
  onCleanup(() => document.removeEventListener("keydown", handleKeydown));
1135
1143
  });
1136
1144
  if (docs.isLoading()) {
1137
- return /* @__PURE__ */ jsx("div", { class: "docs__empty", style: { "min-height": "100vh" }, children: /* @__PURE__ */ jsx("div", { class: "docs__skeleton", style: { width: "24rem", height: "3rem" } }) });
1145
+ return /* @__PURE__ */ jsx("div", { class: cx("docs__empty", props.class), style: { "min-height": "100vh" }, children: /* @__PURE__ */ jsx("div", { class: "docs__skeleton", style: { width: "24rem", height: "3rem" } }) });
1138
1146
  }
1139
1147
  if (docs.sections().length === 0) {
1140
- return /* @__PURE__ */ jsxs("div", { class: "docs__empty", style: { "min-height": "100vh" }, children: [
1148
+ return /* @__PURE__ */ jsxs("div", { class: cx("docs__empty", props.class), style: { "min-height": "100vh" }, children: [
1141
1149
  /* @__PURE__ */ jsx("div", { class: "docs__empty-icon", "aria-hidden": "true", children: "\u{1F4DA}" }),
1142
1150
  /* @__PURE__ */ jsx("div", { class: "docs__empty-title", children: "No documentation yet" }),
1143
1151
  /* @__PURE__ */ jsx("div", { class: "docs__empty-desc", children: "Create a section and at least one page to populate the docs index." })
1144
1152
  ] });
1145
1153
  }
1146
- return /* @__PURE__ */ jsxs("div", { class: "docs__main", children: [
1154
+ return /* @__PURE__ */ jsxs("div", { class: cx("docs__main", props.class), children: [
1147
1155
  /* @__PURE__ */ jsx("div", { class: "docs__content", children: /* @__PURE__ */ jsxs("div", { class: "docs__content-inner", style: { display: "block" }, children: [
1148
1156
  /* @__PURE__ */ jsxs("header", { class: "docs__header", children: [
1149
1157
  /* @__PURE__ */ jsx("h1", { class: "docs__title", children: "Documentation" }),
@@ -1348,11 +1356,11 @@ function DocViewPage(props) {
1348
1356
  };
1349
1357
  });
1350
1358
  if (docs.isLoading() || props.page() === void 0) {
1351
- return /* @__PURE__ */ jsx("div", { class: "docs__empty", style: { "min-height": "100vh" }, children: /* @__PURE__ */ jsx("div", { class: "docs__skeleton", style: { width: "24rem", height: "3rem" } }) });
1359
+ return /* @__PURE__ */ jsx("div", { class: cx("docs__empty", props.class), style: { "min-height": "100vh" }, children: /* @__PURE__ */ jsx("div", { class: "docs__skeleton", style: { width: "24rem", height: "3rem" } }) });
1352
1360
  }
1353
1361
  const page = props.page();
1354
1362
  if (!page) {
1355
- return /* @__PURE__ */ jsxs("div", { class: "docs__empty", style: { "min-height": "100vh" }, children: [
1363
+ return /* @__PURE__ */ jsxs("div", { class: cx("docs__empty", props.class), style: { "min-height": "100vh" }, children: [
1356
1364
  /* @__PURE__ */ jsx("div", { class: "docs__empty-icon", "aria-hidden": "true", children: "\u{1F50D}" }),
1357
1365
  /* @__PURE__ */ jsx("div", { class: "docs__empty-title", children: "Page not found" }),
1358
1366
  /* @__PURE__ */ jsx("div", { class: "docs__empty-desc", children: "The requested documentation page could not be resolved." })
@@ -1367,6 +1375,7 @@ function DocViewPage(props) {
1367
1375
  breadcrumbs: breadcrumbs(),
1368
1376
  currentPageId: page.id,
1369
1377
  onNavigate: props.onNavigate,
1378
+ class: props.class,
1370
1379
  children: [
1371
1380
  /* @__PURE__ */ jsxs("header", { class: "docs__page-header", children: [
1372
1381
  /* @__PURE__ */ jsx("h1", { class: "docs__page-title", children: page.title }),