@geenius/docs 0.8.10 → 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.
- package/CHANGELOG.md +6 -0
- package/package.json +33 -21
- package/packages/convex/dist/index.d.ts +4 -4
- package/packages/convex/dist/index.js.map +1 -1
- package/packages/react/dist/index.css +2 -0
- package/packages/react/dist/index.css.map +1 -0
- package/packages/react/dist/index.d.ts +67 -49
- package/packages/react/dist/index.js +83 -41
- package/packages/react/dist/index.js.map +1 -1
- package/packages/react-css/dist/index.d.ts +68 -33
- package/packages/react-css/dist/index.js +61 -38
- package/packages/react-css/dist/index.js.map +1 -1
- package/packages/shared/dist/{chunk-BR2XBF64.js → chunk-QKKVTCRJ.js} +2 -2
- package/packages/shared/dist/{chunk-BR2XBF64.js.map → chunk-QKKVTCRJ.js.map} +1 -1
- package/packages/shared/dist/index.d.ts +6 -6
- package/packages/shared/dist/index.js +1 -1
- package/packages/shared/dist/index.js.map +1 -1
- package/packages/shared/dist/providers.d.ts +4 -4
- package/packages/shared/dist/providers.js +1 -1
- package/packages/shared/dist/providers.js.map +1 -1
- package/packages/shared/dist/{types-n-Ryn258.d.ts → types-D8ITXVwj.d.ts} +1 -1
- package/packages/solidjs/dist/index.css +2 -0
- package/packages/solidjs/dist/index.css.map +1 -0
- package/packages/solidjs/dist/index.d.ts +57 -27
- package/packages/solidjs/dist/index.js +58 -28
- package/packages/solidjs/dist/index.js.map +1 -1
- package/packages/solidjs-css/dist/index.d.ts +55 -20
- package/packages/solidjs-css/dist/index.js +34 -25
- package/packages/solidjs-css/dist/index.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lib/cx.ts","../src/components/Breadcrumbs.tsx","../../shared/src/utilities.ts","../src/components/DocPage.tsx","../src/components/DocSearch.tsx","../src/components/DocSidebar.tsx","../src/components/TableOfContents.tsx","../src/components/DocsLayout.tsx","../src/components/EditButton.tsx","../src/components/PageNavigation.tsx","../src/components/VersionSelector.tsx","../src/primitives/createDocSearch.ts","../src/pages/DocSearchPage.tsx","../src/pages/DocsAdminPage.tsx","../src/primitives/createDocs.ts","../src/pages/DocsIndexPage.tsx","../src/primitives/createTableOfContents.ts","../src/pages/DocViewPage.tsx","../src/primitives/createDocsAdmin.ts"],"names":["children","jsxs","jsx","createSignal","createMemo","createEffect","Fragment","For","sections","flatPages","onCleanup","page"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * @module docsSolidCssCx\n * @package @geenius/docs-solidjs-css\n * @description Exposes the SolidJS CSS-variant class composer so components\n * can build BEM-style class strings without leaking ad hoc concatenation into\n * every render function.\n */\n\nimport clsx, { type ClassValue } from 'clsx'\n\n/**\n * Merges class name values into a normalized string for the SolidJS CSS\n * variant.\n *\n * @param values - Static and conditional class name fragments.\n * @returns A normalized class list string.\n */\nexport function cx(...values: ClassValue[]): string {\n return clsx(...values)\n}\n","/**\n * @module docsSolidCssBreadcrumbs\n * @package @geenius/docs-solidjs-css\n * @description Renders breadcrumb navigation for the SolidJS CSS docs variant\n * using the shared vanilla CSS class contract.\n */\n\n\nimport type { BreadcrumbItem } from '@geenius/docs-shared'\nimport type { JSX } from 'solid-js'\nimport { For, Show } from 'solid-js'\n\nimport { cx } from '../lib/cx'\n\ninterface BreadcrumbsProps {\n items: BreadcrumbItem[]\n}\n\n/**\n * Renders a breadcrumb trail for docs pages.\n *\n * @param props - Breadcrumb items describing the current page path.\n * @returns The breadcrumb navigation or `null` when there are no items.\n */\nexport function Breadcrumbs(props: BreadcrumbsProps): JSX.Element | null {\n if (props.items.length === 0) {\n return null\n }\n\n return (\n <nav class=\"docs__breadcrumbs\" aria-label=\"Breadcrumb\">\n <For each={props.items}>\n {(item, index) => (\n <>\n <Show when={index() > 0}>\n <svg\n class=\"docs__breadcrumb-separator\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n <path d=\"M6 4l4 4-4 4\" stroke=\"currentColor\" stroke-width=\"1.5\" />\n </svg>\n </Show>\n <Show\n when={index() === props.items.length - 1}\n fallback={\n <a href={item.href} class=\"docs__breadcrumb-item\">\n {item.title}\n </a>\n }\n >\n <span\n class={cx('docs__breadcrumb-item', 'docs__breadcrumb-item--current')}\n aria-current=\"page\"\n >\n {item.title}\n </span>\n </Show>\n </>\n )}\n </For>\n </nav>\n )\n}\n","/**\n * @module docsUtilities\n * @package @geenius/docs-shared\n * @description Hosts the framework-agnostic docs helpers used by the shared\n * barrel and provider implementations for search, slugging, breadcrumbs, table\n * of contents extraction, and default config resolution.\n */\n\nimport type {\n BreadcrumbItem,\n DocPage,\n DocSection,\n DocsConfig,\n SearchResult,\n TocItem,\n} from './types'\n\nfunction toTocLevel(level: number): TocItem['level'] {\n if (level === 2 || level === 3 || level === 4) {\n return level\n }\n\n return 4\n}\n\n/**\n * Extracts a nested table of contents from Markdown heading lines.\n *\n * @param mdxContent - Markdown or MDX content to parse.\n * @returns A nested heading tree containing only level 2 through 4 headings.\n */\nexport function extractToc(mdxContent: string): TocItem[] {\n const headingRegex = /^(#{2,4})\\s+(.+)$/gm\n const items: TocItem[] = []\n let match = headingRegex.exec(mdxContent)\n\n while (match !== null) {\n const text = match[2].trim()\n items.push({\n id: slugify(text),\n text,\n level: toTocLevel(match[1].length),\n children: [],\n })\n match = headingRegex.exec(mdxContent)\n }\n\n const nested: TocItem[] = []\n let currentH2: TocItem | null = null\n let currentH3: TocItem | null = null\n\n for (const item of items) {\n if (item.level === 2) {\n currentH2 = item\n currentH3 = null\n nested.push(item)\n continue\n }\n\n if (item.level === 3) {\n currentH3 = item\n if (currentH2) {\n currentH2.children.push(item)\n } else {\n nested.push(item)\n }\n continue\n }\n\n if (currentH3) {\n currentH3.children.push(item)\n } else if (currentH2) {\n currentH2.children.push(item)\n } else {\n nested.push(item)\n }\n }\n\n return nested\n}\n\n/**\n * Calculates approximate word count and reading time for page content.\n *\n * @param content - Markdown or MDX content to measure.\n * @returns Word count and reading-time metadata derived from the content.\n */\nexport function calcWordCount(\n content: string,\n): { wordCount: number; readingTime: number } {\n const stripped = content\n .replace(/```[\\s\\S]*?```/g, '')\n .replace(/`[^`]+`/g, '')\n .replace(/!\\[.*?\\]\\(.*?\\)/g, '')\n .replace(/\\[([^\\]]+)\\]\\(.*?\\)/g, '$1')\n .replace(/[#*_~>|-]/g, '')\n .trim()\n\n const words = stripped.split(/\\s+/).filter(Boolean)\n\n return {\n wordCount: words.length,\n readingTime: Math.max(1, Math.ceil(words.length / 225)),\n }\n}\n\n/**\n * Builds a breadcrumb trail for a page from a section tree.\n *\n * @param sections - Full section list used to resolve parent relationships.\n * @param sectionId - Identifier of the page's containing section.\n * @param slug - Page slug appended as the terminal breadcrumb.\n * @returns Breadcrumb items suitable for page-level navigation UI.\n */\nexport function buildBreadcrumbs(\n sections: DocSection[],\n sectionId: string,\n slug: string,\n): BreadcrumbItem[] {\n const crumbs: BreadcrumbItem[] = [{ title: 'Docs', href: '/docs' }]\n const sectionMap = new Map(sections.map((section) => [section.id, section]))\n const trail: DocSection[] = []\n let current = sectionMap.get(sectionId)\n\n while (current) {\n trail.unshift(current)\n current = current.parentId ? sectionMap.get(current.parentId) : undefined\n }\n\n for (const section of trail) {\n crumbs.push({ title: section.title, href: `/docs/${section.slug}` })\n }\n\n if (slug) {\n const parentSlug = trail[trail.length - 1]?.slug ?? ''\n crumbs.push({ title: slug, href: `/docs/${parentSlug}/${slug}` })\n }\n\n return crumbs\n}\n\n/**\n * Builds a full-text search index from published pages and their sections.\n *\n * @param pages - Page records to index.\n * @param sections - Section metadata used to enrich each result.\n * @returns Search index entries derived from the published pages.\n */\nexport function buildDocsIndex(\n pages: DocPage[],\n sections: DocSection[],\n): SearchResult[] {\n const sectionMap = new Map(sections.map((section) => [section.id, section]))\n\n return pages\n .filter((page) => page.status === 'published')\n .map((page) => {\n const section = sectionMap.get(page.sectionId)\n\n return {\n pageId: page.id,\n pageTitle: page.title,\n sectionTitle: section?.title ?? '',\n sectionSlug: section?.slug ?? '',\n slug: page.slug,\n highlight: page.excerpt ?? page.content.slice(0, 160),\n score: 0,\n tags: page.tags,\n }\n })\n}\n\n/**\n * Searches a shared search index and returns ranked matches.\n *\n * @param query - User-entered search query.\n * @param index - Search index entries to rank.\n * @returns Ranked search results limited to the top twenty entries.\n */\nexport function searchDocs(\n query: string,\n index: SearchResult[],\n): SearchResult[] {\n if (!query.trim()) {\n return []\n }\n\n const terms = query.toLowerCase().split(/\\s+/).filter(Boolean)\n\n return index\n .map((entry) => {\n let score = 0\n const titleLower = entry.pageTitle.toLowerCase()\n const highlightLower = entry.highlight.toLowerCase()\n const sectionLower = entry.sectionTitle.toLowerCase()\n const tagsLower = entry.tags.map((tag) => tag.toLowerCase())\n\n for (const term of terms) {\n if (titleLower.includes(term)) {\n score += 10\n }\n if (tagsLower.some((tag) => tag.includes(term))) {\n score += 5\n }\n if (sectionLower.includes(term)) {\n score += 3\n }\n if (highlightLower.includes(term)) {\n score += 2\n }\n }\n\n return { ...entry, score }\n })\n .filter((entry) => entry.score > 0)\n .sort((left, right) => right.score - left.score)\n .slice(0, 20)\n}\n\n/**\n * Creates a URL-safe slug from arbitrary text.\n *\n * @param title - Source text to slugify.\n * @returns A lower-case kebab-case slug.\n */\nexport function slugify(title: string): string {\n return title\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, '-')\n .replace(/(^-|-$)/g, '')\n}\n\n/**\n * Produces a search-result snippet centred around a matching query.\n *\n * @param text - Source text used to build the snippet.\n * @param query - User-entered search query.\n * @param maxLen - Maximum snippet length.\n * @returns A trimmed snippet containing the best query match when available.\n */\nexport function highlightMatch(\n text: string,\n query: string,\n maxLen = 160,\n): string {\n if (!query.trim()) {\n return text.slice(0, maxLen)\n }\n\n const lowerText = text.toLowerCase()\n const lowerQuery = query.toLowerCase()\n const index = lowerText.indexOf(lowerQuery)\n\n if (index === -1) {\n return text.slice(0, maxLen)\n }\n\n const start = Math.max(0, index - 40)\n const end = Math.min(text.length, index + query.length + (maxLen - 80))\n let snippet = text.slice(start, end)\n\n if (start > 0) {\n snippet = `…${snippet}`\n }\n if (end < text.length) {\n snippet = `${snippet}…`\n }\n\n return snippet\n}\n\n/**\n * Baseline config used by the framework variants when no explicit config is provided.\n */\nexport const defaultDocsConfig: DocsConfig = {\n siteName: 'Docs',\n cmdKEnabled: true,\n showReadingTime: true,\n showLastEdited: true,\n versionsEnabled: false,\n defaultAccess: 'public',\n printModeEnabled: true,\n}\n","/**\n * @module docsSolidCssDocPage\n * @package @geenius/docs-solidjs-css\n * @description Renders authored docs content for the SolidJS CSS variant using\n * safe Markdown output and the shared vanilla CSS class contract.\n */\n\n\nimport type { DocPage as DocPageType } from '@geenius/docs-shared'\nimport { slugify } from '@geenius/docs-shared'\nimport remarkGfm from 'remark-gfm'\nimport type { JSX } from 'solid-js'\nimport { SolidMarkdown } from 'solid-markdown'\n\ninterface DocPageProps {\n page: DocPageType\n}\n\nfunction getNodeText(children: unknown): string {\n if (Array.isArray(children)) {\n return children.map((child) => getNodeText(child)).join(' ')\n }\n\n if (typeof children === 'string' || typeof children === 'number') {\n return String(children)\n }\n\n return ''\n}\n\nfunction createHeading(\n Tag: 'h1' | 'h2' | 'h3' | 'h4',\n className?: string,\n): (props: { children: JSX.Element }) => JSX.Element {\n return (props) => {\n const text = getNodeText(props.children)\n const id = slugify(text)\n\n return (\n <Tag id={id} class={className}>\n {props.children}\n <a href={`#${id}`} class=\"docs__heading-anchor\" aria-label={`Link to ${text}`}>\n #\n </a>\n </Tag>\n )\n }\n}\n\n/**\n * Renders a documentation page body.\n *\n * @param props - The docs page whose Markdown content should be rendered.\n * @returns The rendered article.\n */\nexport function DocPage(props: DocPageProps): JSX.Element {\n return (\n <article class=\"docs__article\">\n <div class=\"docs__article-body docs__content-main\">\n <SolidMarkdown\n remarkPlugins={[remarkGfm]}\n components={{\n h1: createHeading('h1', 'docs__article-title'),\n h2: createHeading('h2'),\n h3: createHeading('h3'),\n h4: createHeading('h4'),\n a: (componentProps) => (\n <a\n href={componentProps.href}\n target={componentProps.href?.startsWith('/') ? undefined : '_blank'}\n rel={componentProps.href?.startsWith('/') ? undefined : 'noreferrer noopener'}\n >\n {componentProps.children}\n </a>\n ),\n pre: (componentProps) => (\n <div class=\"docs__code-block\">\n <pre>{componentProps.children}</pre>\n </div>\n ),\n table: (componentProps) => (\n <div class=\"docs__table-wrapper\">\n <table class=\"docs__table\">{componentProps.children}</table>\n </div>\n ),\n }}\n >\n {props.page.content}\n </SolidMarkdown>\n </div>\n </article>\n )\n}\n","/**\n * @module docsSolidCssDocSearch\n * @package @geenius/docs-solidjs-css\n * @description Provides the accessible command-palette-style search dialog for\n * the SolidJS CSS docs variant.\n */\n\n\nimport type { SearchResult } from '@geenius/docs-shared'\nimport { highlightMatch } from '@geenius/docs-shared'\nimport type { JSX } from 'solid-js'\nimport { createEffect, createMemo, createSignal, createUniqueId } from 'solid-js'\n\nimport { cx } from '../lib/cx'\n\ninterface DocSearchProps {\n results: SearchResult[]\n query: string\n onQuery: (query: string) => void\n onSelect: (result: SearchResult) => void\n isOpen: boolean\n onClose: () => void\n}\n\nconst FOCUSABLE_SELECTOR =\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\n\nfunction getActiveElement(): HTMLElement | null {\n return document.activeElement instanceof HTMLElement\n ? document.activeElement\n : null\n}\n\n/**\n * Renders the modal docs search experience.\n *\n * @param props - Controlled search state, results, and close/select callbacks.\n * @returns The search dialog when open, otherwise `null`.\n */\nexport function DocSearch(props: DocSearchProps): JSX.Element | null {\n const [activeIndex, setActiveIndex] = createSignal(0)\n const dialogId = `docs-search-${createUniqueId()}`\n let inputRef: HTMLInputElement | undefined\n let dialogRef: HTMLDivElement | undefined\n let previousFocus: HTMLElement | null = null\n const resultRefs: Array<HTMLButtonElement | undefined> = []\n\n const activeResultId = createMemo(() => {\n const activeResult = props.results[activeIndex()]\n\n return activeResult ? `${dialogId}-result-${activeResult.pageId}` : undefined\n })\n\n createEffect(() => {\n if (!props.isOpen) {\n return\n }\n\n previousFocus = getActiveElement()\n inputRef?.focus()\n setActiveIndex(0)\n })\n\n createEffect(() => {\n props.query\n props.results\n setActiveIndex(0)\n })\n\n createEffect(() => {\n const element = resultRefs[activeIndex()]\n element?.scrollIntoView({ block: 'nearest' })\n })\n\n const handleKeyDown: JSX.EventHandler<HTMLDivElement, KeyboardEvent> = (\n event,\n ): void => {\n if (event.key === 'Escape') {\n event.preventDefault()\n props.onClose()\n previousFocus?.focus()\n return\n }\n\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n setActiveIndex((index) => Math.min(index + 1, props.results.length - 1))\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n setActiveIndex((index) => Math.max(index - 1, 0))\n return\n }\n\n if (event.key === 'Enter' && props.results[activeIndex()]) {\n event.preventDefault()\n props.onSelect(props.results[activeIndex()])\n return\n }\n\n if (event.key !== 'Tab' || !dialogRef) {\n return\n }\n\n const focusableElements = Array.from(\n dialogRef.querySelectorAll<HTMLElement>(FOCUSABLE_SELECTOR),\n ).filter((element) => !element.hasAttribute('disabled'))\n\n if (focusableElements.length === 0) {\n return\n }\n\n const firstElement = focusableElements[0]\n const lastElement = focusableElements[focusableElements.length - 1]\n\n if (event.shiftKey && document.activeElement === firstElement) {\n event.preventDefault()\n lastElement.focus()\n }\n\n if (!event.shiftKey && document.activeElement === lastElement) {\n event.preventDefault()\n firstElement.focus()\n }\n }\n\n if (!props.isOpen) {\n return null\n }\n\n return (\n <div class=\"docs__search-modal\">\n <button\n type=\"button\"\n class=\"docs__search-backdrop\"\n aria-label=\"Close search\"\n onClick={() => {\n props.onClose()\n previousFocus?.focus()\n }}\n />\n <div\n ref={dialogRef}\n class=\"docs__search-panel\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={`${dialogId}-title`}\n onKeyDown={handleKeyDown}\n >\n <div class=\"docs__search-header\">\n <h2 id={`${dialogId}-title`} class=\"docs__search-title\">\n Search documentation\n </h2>\n <input\n ref={inputRef}\n type=\"search\"\n value={props.query}\n onInput={(event) => props.onQuery(event.currentTarget.value)}\n class=\"docs__search-input\"\n placeholder=\"Search documentation\"\n aria-label=\"Search documentation\"\n aria-controls={`${dialogId}-results`}\n aria-activedescendant={activeResultId()}\n />\n </div>\n\n <div id={`${dialogId}-results`} class=\"docs__search-results\" role=\"listbox\">\n {props.results.length === 0 ? (\n <div class=\"docs__search-empty\">\n <div class=\"docs__search-empty-title\">\n {props.query.trim()\n ? `No results for “${props.query}”`\n : 'Start typing to search'}\n </div>\n <div class=\"docs__search-empty-desc\">\n {props.query.trim()\n ? 'Try a broader keyword or check your spelling.'\n : 'Search across sections, titles, and content snippets.'}\n </div>\n </div>\n ) : (\n props.results.map((result, index) => (\n <button\n ref={(element) => {\n resultRefs[index] = element\n }}\n id={`${dialogId}-result-${result.pageId}`}\n type=\"button\"\n role=\"option\"\n aria-selected={index === activeIndex()}\n onMouseEnter={() => setActiveIndex(index)}\n onClick={() => props.onSelect(result)}\n class={cx(\n 'docs__search-result-item',\n index === activeIndex() && 'docs__search-result-item--active',\n )}\n >\n <div class=\"docs__search-result-header\">\n <span class=\"docs__search-result-section\">{result.sectionTitle}</span>\n <strong class=\"docs__search-result-title\">{result.pageTitle}</strong>\n </div>\n <span class=\"docs__search-result-highlight\">\n {highlightMatch(result.highlight, props.query)}\n </span>\n {result.tags.length > 0 ? (\n <div class=\"docs__search-tags\">\n {result.tags.slice(0, 3).map((tag) => (\n <span class=\"docs__tag\">{tag}</span>\n ))}\n </div>\n ) : null}\n </button>\n ))\n )}\n </div>\n\n <div class=\"docs__search-footer\">\n <span class=\"docs__search-hint\">Up/Down to navigate</span>\n <span class=\"docs__search-hint\">Enter to select</span>\n <span class=\"docs__search-hint\">Esc to close</span>\n </div>\n </div>\n </div>\n )\n}\n","/**\n * @module docsSolidCssDocSidebar\n * @package @geenius/docs-solidjs-css\n * @description Renders the hierarchical documentation sidebar for the SolidJS\n * CSS variant with local disclosure state and the shared vanilla CSS class\n * contract.\n */\n\n\nimport type { DocPage, DocSection } from '@geenius/docs-shared'\nimport type { JSX } from 'solid-js'\nimport { createEffect, createMemo, createSignal } from 'solid-js'\n\nimport { cx } from '../lib/cx'\n\ninterface DocSidebarProps {\n sections: (DocSection & { pages?: DocPage[]; pageCount?: number })[]\n currentPageId?: string\n onNavigate: (page: DocPage, section: DocSection) => void\n}\n\ntype SidebarSection = DocSection & { pages?: DocPage[]; pageCount?: number }\n\nfunction collectAncestorIds(\n section: SidebarSection,\n sectionMap: Map<string, SidebarSection>,\n): string[] {\n const ids = [section.id]\n let parentId = section.parentId\n\n while (parentId) {\n ids.push(parentId)\n parentId = sectionMap.get(parentId)?.parentId\n }\n\n return ids\n}\n\n/**\n * Renders the documentation sidebar tree.\n *\n * @param props - Section tree, active page id, and navigation callback.\n * @returns The sidebar navigation for the CSS-backed docs experience.\n */\nexport function DocSidebar(props: DocSidebarProps): JSX.Element {\n const [expandedIds, setExpandedIds] = createSignal<Set<string>>(new Set())\n\n const sectionMap = createMemo(\n () => new Map(props.sections.map((section) => [section.id, section])),\n )\n const topLevelSections = createMemo(() =>\n props.sections.filter((section) => !section.parentId),\n )\n\n createEffect(() => {\n const currentPageId = props.currentPageId\n\n if (!currentPageId) {\n return\n }\n\n const owningSection = props.sections.find((section) =>\n (section.pages ?? []).some((page) => page.id === currentPageId),\n )\n\n if (!owningSection) {\n return\n }\n\n const ids = collectAncestorIds(owningSection, sectionMap())\n\n setExpandedIds((previous) => {\n const next = new Set(previous)\n\n for (const id of ids) {\n next.add(id)\n }\n\n return next\n })\n })\n\n const childSections = (parentId: string): SidebarSection[] =>\n props.sections.filter((section) => section.parentId === parentId)\n\n const toggleSection = (sectionId: string): void => {\n setExpandedIds((previous) => {\n const next = new Set(previous)\n\n if (next.has(sectionId)) {\n next.delete(sectionId)\n } else {\n next.add(sectionId)\n }\n\n return next\n })\n }\n\n const renderSection = (\n section: SidebarSection,\n depth = 0,\n ): JSX.Element => {\n const children = childSections(section.id)\n const pages = section.pages ?? []\n const hasContent = children.length > 0 || pages.length > 0\n const isExpanded = expandedIds().has(section.id)\n const containsCurrentPage = Boolean(\n props.currentPageId &&\n (pages.some((page) => page.id === props.currentPageId) ||\n children.some((child) =>\n child.pages?.some((page) => page.id === props.currentPageId),\n )),\n )\n const regionId = `docs-sidebar-section-${section.id}`\n\n return (\n <div\n class={cx(\n 'docs__sidebar-section',\n containsCurrentPage && 'docs__sidebar-section--active',\n )}\n style={depth > 0 ? { 'padding-left': `${depth * 12}px` } : undefined}\n >\n <button\n type=\"button\"\n class=\"docs__sidebar-section-btn\"\n aria-expanded={hasContent ? isExpanded : undefined}\n aria-controls={hasContent ? regionId : undefined}\n onClick={() => {\n if (hasContent) {\n toggleSection(section.id)\n }\n }}\n >\n {section.icon ? (\n <span class=\"docs__sidebar-section-icon\" aria-hidden=\"true\">\n {section.icon}\n </span>\n ) : null}\n <span class=\"docs__sidebar-section-title\">{section.title}</span>\n {section.pageCount !== undefined ? (\n <span class=\"docs__sidebar-section-count\">{section.pageCount}</span>\n ) : null}\n {hasContent ? (\n <svg\n class={cx(\n 'docs__sidebar-section-chevron',\n isExpanded && 'docs__sidebar-section-chevron--open',\n )}\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n <path d=\"M6 4l4 4-4 4\" stroke=\"currentColor\" stroke-width=\"1.5\" />\n </svg>\n ) : null}\n </button>\n\n {hasContent && isExpanded ? (\n <div id={regionId} class=\"docs__sidebar-pages\">\n {pages.map((page) => (\n <button\n type=\"button\"\n class={cx(\n 'docs__sidebar-link',\n page.id === props.currentPageId && 'docs__sidebar-link--active',\n )}\n aria-current={page.id === props.currentPageId ? 'page' : undefined}\n onClick={() => props.onNavigate(page, section)}\n >\n <span class=\"docs__sidebar-section-title\">{page.title}</span>\n </button>\n ))}\n {children.map((child) => renderSection(child, depth + 1))}\n </div>\n ) : null}\n </div>\n )\n }\n\n return (\n <nav class=\"docs__sidebar-nav\" aria-label=\"Documentation\">\n <div class=\"docs__sidebar-header\">Documentation</div>\n {topLevelSections().map((section) => renderSection(section))}\n </nav>\n )\n}\n","/**\n * @module docsSolidCssTableOfContents\n * @package @geenius/docs-solidjs-css\n * @description Renders the CSS-backed table of contents tree for the SolidJS\n * docs variant.\n */\n\n\nimport type { TocItem } from '@geenius/docs-shared'\nimport type { JSX } from 'solid-js'\nimport { For, } from 'solid-js'\n\nimport { cx } from '../lib/cx'\n\ninterface TableOfContentsProps {\n toc: TocItem[]\n activeId?: string\n}\n\nfunction TocEntry(props: {\n item: TocItem\n activeId?: string\n depth?: number\n}): JSX.Element {\n const depth = props.depth ?? 0\n\n return (\n <>\n <a\n href={`#${props.item.id}`}\n class={cx(\n 'docs__toc-item',\n props.activeId === props.item.id && 'docs__toc-item--active',\n depth === 1 && 'docs__toc-item--h3',\n depth >= 2 && 'docs__toc-item--h4',\n )}\n >\n {props.item.text}\n </a>\n <For each={props.item.children}>\n {(child) => (\n <TocEntry item={child} activeId={props.activeId} depth={depth + 1} />\n )}\n </For>\n </>\n )\n}\n\n/**\n * Renders the page table of contents.\n *\n * @param props - TOC entries and the currently active heading id.\n * @returns The TOC navigation or `null` when the page has no headings.\n */\nexport function TableOfContents(\n props: TableOfContentsProps,\n): JSX.Element | null {\n if (props.toc.length === 0) {\n return null\n }\n\n return (\n <nav class=\"docs__toc\" aria-label=\"On this page\">\n <h2 class=\"docs__toc-title\">On this page</h2>\n <div class=\"docs__toc-list\">\n <For each={props.toc}>\n {(item) => <TocEntry item={item} activeId={props.activeId} />}\n </For>\n </div>\n </nav>\n )\n}\n","/**\n * @module docsSolidCssDocsLayout\n * @package @geenius/docs-solidjs-css\n * @description Composes the sidebar, content column, breadcrumbs, and table\n * of contents for the SolidJS CSS docs variant.\n */\n\n\nimport type { BreadcrumbItem, DocPage, DocSection, TocItem } from '@geenius/docs-shared'\nimport type { JSX } from 'solid-js'\nimport { children } from 'solid-js'\n\nimport { Breadcrumbs } from './Breadcrumbs'\nimport { DocSidebar } from './DocSidebar'\nimport { TableOfContents } from './TableOfContents'\n\ninterface DocsLayoutProps {\n sections: (DocSection & { pages?: DocPage[] })[]\n currentPage?: DocPage\n toc?: TocItem[]\n activeHeadingId?: string\n breadcrumbs?: BreadcrumbItem[]\n currentPageId?: string\n onNavigate: (page: DocPage, section: DocSection) => void\n children: JSX.Element\n}\n\n/**\n * Renders the shared docs layout shell for the SolidJS CSS package.\n *\n * @param props - Sidebar content, page context, and rendered children.\n * @returns The composed docs layout.\n */\nexport function DocsLayout(props: DocsLayoutProps): JSX.Element {\n const resolvedChildren = children(() => props.children)\n\n return (\n <div class=\"docs__layout\">\n <aside class=\"docs__sidebar\">\n <DocSidebar\n sections={props.sections}\n currentPageId={props.currentPageId}\n onNavigate={props.onNavigate}\n />\n </aside>\n <main class=\"docs__main\">\n <div class=\"docs__content\">\n <div class=\"docs__content-inner\">\n <div class=\"docs__content-main\">\n {props.breadcrumbs && props.breadcrumbs.length > 0 ? (\n <Breadcrumbs items={props.breadcrumbs} />\n ) : null}\n {resolvedChildren()}\n </div>\n {props.toc && props.toc.length > 0 ? (\n <aside class=\"docs__article-toc\">\n <TableOfContents toc={props.toc} activeId={props.activeHeadingId} />\n </aside>\n ) : null}\n </div>\n </div>\n </main>\n </div>\n )\n}\n","/**\n * @module docsSolidCssEditButton\n * @package @geenius/docs-solidjs-css\n * @description Exposes the CSS-backed edit-link affordance for SolidJS docs\n * pages so hosts can route users to the source repository without Tailwind\n * utilities.\n */\n\nimport type { JSX } from 'solid-js'\n\ninterface EditButtonProps {\n pageSlug: string\n editUrl?: string\n}\n\n/**\n * Renders the \"Edit this page\" link when source editing is configured.\n *\n * @param props - Page slug and optional base edit URL.\n * @returns The edit link or `null` when editing is disabled.\n */\nexport function EditButton(props: EditButtonProps): JSX.Element | null {\n if (!props.editUrl) {\n return null\n }\n\n const href = `${props.editUrl.replace(/\\/$/, '')}/${props.pageSlug}.mdx`\n\n return (\n <a\n href={href}\n target=\"_blank\"\n rel=\"noreferrer noopener\"\n class=\"docs__edit-link\"\n >\n <svg aria-hidden=\"true\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" width=\"14\" height=\"14\">\n <path\n d=\"M11.5 1.5l3 3-9 9H2.5v-3l9-9z\"\n stroke-width=\"1.5\"\n stroke-linejoin=\"round\"\n />\n </svg>\n Edit this page\n </a>\n )\n}\n","/**\n * @module docsSolidCssPageNavigation\n * @package @geenius/docs-solidjs-css\n * @description Renders previous and next page affordances for the SolidJS CSS\n * docs variant using the shared vanilla CSS navigation classes.\n */\n\nimport type { JSX } from 'solid-js'\n\ninterface PageNavigationProps {\n prev?: { title: string; href: string }\n next?: { title: string; href: string }\n}\n\n/**\n * Renders previous and next page links for the current article.\n *\n * @param props - Optional previous and next navigation links.\n * @returns Page navigation markup or `null` when neither link exists.\n */\nexport function PageNavigation(\n props: PageNavigationProps,\n): JSX.Element | null {\n if (!props.prev && !props.next) {\n return null\n }\n\n return (\n <nav class=\"docs__page-nav\" aria-label=\"Page navigation\">\n {props.prev ? (\n <a href={props.prev.href} class=\"docs__page-nav-prev\">\n <span class=\"docs__page-nav-label\">Previous</span>\n <span class=\"docs__page-nav-title\">{props.prev.title}</span>\n </a>\n ) : (\n <div class=\"docs__page-nav-prev\" aria-hidden=\"true\" />\n )}\n {props.next ? (\n <a href={props.next.href} class=\"docs__page-nav-next\">\n <span class=\"docs__page-nav-label\">Next</span>\n <span class=\"docs__page-nav-title\">{props.next.title}</span>\n </a>\n ) : (\n <div class=\"docs__page-nav-next\" aria-hidden=\"true\" />\n )}\n </nav>\n )\n}\n","/**\n * @module docsSolidCssVersionSelector\n * @package @geenius/docs-solidjs-css\n * @description Provides the CSS-backed version selector for the SolidJS docs\n * variant using a native select for accessibility and low runtime overhead.\n */\n\nimport type { JSX } from 'solid-js'\nimport { For } from 'solid-js'\n\ninterface VersionSelectorProps {\n versions: string[]\n current: string\n onSelect: (version: string) => void\n}\n\n/**\n * Renders a version switcher when multiple docs versions exist.\n *\n * @param props - Supported versions, the current version, and the selection callback.\n * @returns The version selector or `null` when only one version exists.\n */\nexport function VersionSelector(\n props: VersionSelectorProps,\n): JSX.Element | null {\n if (props.versions.length <= 1) {\n return null\n }\n\n return (\n <div class=\"docs__version-selector\">\n <select\n class=\"docs__version-select docs__version-select--active\"\n aria-label=\"Select documentation version\"\n value={props.current}\n onChange={(event) => props.onSelect(event.currentTarget.value)}\n >\n <For each={props.versions}>\n {(version: string) => <option value={version}>v{version}</option>}\n </For>\n </select>\n </div>\n )\n}\n","/**\n * @module docsSolidCssCreateDocSearch\n * @package @geenius/docs-solidjs-css\n * @description Implements debounced docs search state for the SolidJS CSS\n * variant so modal and page-level search flows share the same behavior.\n */\n\n\nimport type { SearchResult } from '@geenius/docs-shared'\nimport { type Accessor, createEffect, createSignal, onCleanup } from 'solid-js'\n\n/**\n * Search state returned by the SolidJS CSS docs search primitive.\n *\n * @property results - Accessor returning the current ranked search results.\n * @property isSearching - Accessor describing whether a search request is pending.\n * @property query - Accessor returning the active search query.\n * @property setQuery - Updates the active search query.\n * @property clearSearch - Resets the query, results, and loading state.\n */\nexport interface DocSearchState {\n results: Accessor<SearchResult[]>\n isSearching: Accessor<boolean>\n query: Accessor<string>\n setQuery: (query: string) => void\n clearSearch: () => void\n}\n\n/**\n * Debounces doc search calls for the SolidJS CSS variant.\n *\n * @param searchFn - Search function returning ranked docs results.\n * @param debounceMs - Delay before the search function executes.\n * @returns Search accessors and control helpers.\n */\nexport function createDocSearch(\n searchFn: (query: string) => SearchResult[] | Promise<SearchResult[]>,\n debounceMs = 250,\n): DocSearchState {\n const [query, setQuery] = createSignal('')\n const [results, setResults] = createSignal<SearchResult[]>([])\n const [isSearching, setIsSearching] = createSignal(false)\n\n createEffect(() => {\n const currentQuery = query()\n\n if (!currentQuery.trim()) {\n setResults([])\n setIsSearching(false)\n return\n }\n\n setIsSearching(true)\n\n const timer = window.setTimeout(async () => {\n try {\n const nextResults = await searchFn(currentQuery)\n setResults(nextResults)\n } catch {\n setResults([])\n } finally {\n setIsSearching(false)\n }\n }, debounceMs)\n\n onCleanup(() => window.clearTimeout(timer))\n })\n\n const clearSearch = (): void => {\n setQuery('')\n setResults([])\n setIsSearching(false)\n }\n\n return { results, isSearching, query, setQuery, clearSearch }\n}\n","/**\n * @module docsSolidCssDocSearchPage\n * @package @geenius/docs-solidjs-css\n * @description Renders the standalone SolidJS CSS full-page docs search\n * experience using local search results and vanilla CSS layouts.\n */\n\n\nimport type { DocPage, DocSection, SearchResult } from '@geenius/docs-shared'\nimport { buildDocsIndex, highlightMatch, searchDocs } from '@geenius/docs-shared'\nimport type { Accessor, JSX } from 'solid-js'\n\nimport { createDocSearch } from '../primitives/createDocSearch'\n\ninterface DocSearchPageProps {\n tree: Accessor<(DocSection & { pages: DocPage[]; pageCount: number })[] | undefined>\n onSelectPage?: (page: DocPage, section: DocSection) => void\n}\n\n/**\n * Full-page search experience for the standalone SolidJS CSS docs variant.\n *\n * @param props - Docs tree accessor and an optional page selection callback.\n * @returns Full-page search UI for docs results.\n */\nexport function DocSearchPage(props: DocSearchPageProps): JSX.Element {\n const search = createDocSearch((query: string): SearchResult[] => {\n const sections = props.tree() ?? []\n const flatPages = sections.flatMap((section) => section.pages ?? [])\n const index = buildDocsIndex(flatPages, sections)\n return searchDocs(query, index)\n })\n\n if (props.tree() === undefined) {\n return (\n <div class=\"docs__empty\" style={{ 'min-height': '100vh' }}>\n <div class=\"docs__skeleton\" style={{ width: '24rem', height: '3rem' }} />\n </div>\n )\n }\n\n const sections = props.tree() ?? []\n const flatPages = sections.flatMap((section) => section.pages ?? [])\n\n return (\n <div class=\"docs__main\">\n <div class=\"docs__content\">\n <div class=\"docs__content-inner\" style={{ display: 'block' }}>\n <header class=\"docs__header\">\n <h1 class=\"docs__title\">Search documentation</h1>\n </header>\n\n <div class=\"docs__search-page\">\n <input\n type=\"search\"\n value={search.query()}\n onInput={(event) => search.setQuery(event.currentTarget.value)}\n placeholder=\"Type to search\"\n class=\"docs__search-input\"\n aria-label=\"Search documentation\"\n />\n\n {search.isSearching() ? (\n <p class=\"docs__search-status\">Searching…</p>\n ) : null}\n\n {search.results().length > 0 ? (\n <div class=\"docs__search-page-results\">\n {search.results().map((result) => {\n const section = sections.find(\n (currentSection) => currentSection.slug === result.sectionSlug,\n )\n const page = flatPages.find(\n (currentPage) => currentPage.id === result.pageId,\n )\n\n return (\n <button\n type=\"button\"\n class=\"docs__search-result-item\"\n onClick={() => {\n if (page && section) {\n props.onSelectPage?.(page, section)\n }\n }}\n >\n <div class=\"docs__search-result-header\">\n <span class=\"docs__search-result-section\">\n {result.sectionTitle}\n </span>\n <strong class=\"docs__search-result-title\">\n {result.pageTitle}\n </strong>\n </div>\n <span class=\"docs__search-result-highlight\">\n {highlightMatch(result.highlight, search.query())}\n </span>\n </button>\n )\n })}\n </div>\n ) : search.query().trim() && !search.isSearching() ? (\n <div class=\"docs__empty\" style={{ 'min-height': '16rem' }}>\n <div class=\"docs__empty-icon\" aria-hidden=\"true\">🔍</div>\n <div class=\"docs__empty-title\">No results found</div>\n <div class=\"docs__empty-desc\">Try a different keyword or phrase.</div>\n </div>\n ) : null}\n </div>\n </div>\n </div>\n </div>\n )\n}\n","/**\n * @module docsSolidCssDocsAdminPage\n * @package @geenius/docs-solidjs-css\n * @description Renders the standalone SolidJS CSS admin surface for managing\n * docs sections and pages using the package-local vanilla CSS panel styles.\n */\n\n\nimport type { DocAccess, DocPage, DocSection } from '@geenius/docs-shared'\nimport type { Accessor, JSX } from 'solid-js'\nimport { createMemo, createSignal } from 'solid-js'\n\nimport type { DocsAdminActions } from '../primitives/createDocsAdmin'\n\ninterface DocsAdminPageProps {\n tree: Accessor<(DocSection & { pages: DocPage[]; pageCount: number })[] | undefined>\n allPages?: DocPage[]\n admin: DocsAdminActions\n}\n\ninterface SectionForm {\n title: string\n slug: string\n description: string\n icon: string\n access: DocAccess\n}\n\ninterface PageForm {\n title: string\n slug: string\n content: string\n access: DocAccess\n tags: string\n}\n\nfunction toDocAccess(value: string): DocAccess {\n if (value === 'public' || value === 'team' || value === 'admin') {\n return value\n }\n\n return 'team'\n}\n\nfunction initialSectionForm(): SectionForm {\n return {\n title: '',\n slug: '',\n description: '',\n icon: '',\n access: 'team',\n }\n}\n\nfunction initialPageForm(): PageForm {\n return {\n title: '',\n slug: '',\n content: '',\n access: 'team',\n tags: '',\n }\n}\n\n/**\n * Admin page for section and page management in the SolidJS CSS variant.\n *\n * @param props - Tree data, optional page list, and admin actions.\n * @returns Admin UI for managing docs content.\n */\nexport function DocsAdminPage(props: DocsAdminPageProps): JSX.Element {\n const sections = createMemo(() => props.tree() ?? [])\n const [selectedSectionId, setSelectedSectionId] = createSignal<string | null>(null)\n const [showSectionForm, setShowSectionForm] = createSignal(false)\n const [showPageForm, setShowPageForm] = createSignal(false)\n const [sectionForm, setSectionForm] = createSignal<SectionForm>(initialSectionForm())\n const [pageForm, setPageForm] = createSignal<PageForm>(initialPageForm())\n\n const selectedSection = createMemo(() =>\n sections().find((section) => section.id === selectedSectionId()),\n )\n const sectionPages = createMemo(() => {\n const section = selectedSection()\n\n if (!section) {\n return []\n }\n\n if (props.allPages) {\n return props.allPages.filter((page) => page.sectionId === section.id)\n }\n\n return section.pages ?? []\n })\n const canCreateSection = createMemo(\n () =>\n sectionForm().title.trim().length > 0 &&\n sectionForm().slug.trim().length > 0,\n )\n const canCreatePage = createMemo(\n () =>\n pageForm().title.trim().length > 0 &&\n pageForm().slug.trim().length > 0 &&\n pageForm().content.trim().length > 0,\n )\n\n if (props.tree() === undefined) {\n return (\n <div class=\"docs__empty\" style={{ 'min-height': '100vh' }}>\n <div class=\"docs__skeleton\" style={{ width: '24rem', height: '3rem' }} />\n </div>\n )\n }\n\n return (\n <div class=\"docs__main\">\n <div class=\"docs__content\">\n <div class=\"docs__content-inner\" style={{ display: 'block' }}>\n <header class=\"docs__header\">\n <h1 class=\"docs__title\">Docs admin</h1>\n </header>\n\n <div class=\"docs__admin-grid\">\n <section class=\"docs__admin-panel\">\n <div class=\"docs__admin-panel-header\">\n <h2 class=\"docs__admin-panel-title\">Sections</h2>\n <button\n type=\"button\"\n class=\"docs__admin-add-btn\"\n onClick={() => setShowSectionForm((value) => !value)}\n >\n Add section\n </button>\n </div>\n\n {showSectionForm() ? (\n <div class=\"docs__admin-form\">\n <label class=\"docs__admin-field\" for=\"docs-admin-section-title\">\n <span class=\"docs__admin-label\">Title</span>\n <input\n id=\"docs-admin-section-title\"\n class=\"docs__admin-input\"\n value={sectionForm().title}\n onInput={(event) =>\n setSectionForm((current) => ({\n ...current,\n title: event.currentTarget.value,\n }))\n }\n />\n </label>\n <label class=\"docs__admin-field\" for=\"docs-admin-section-slug\">\n <span class=\"docs__admin-label\">Slug</span>\n <input\n id=\"docs-admin-section-slug\"\n class=\"docs__admin-input\"\n value={sectionForm().slug}\n onInput={(event) =>\n setSectionForm((current) => ({\n ...current,\n slug: event.currentTarget.value,\n }))\n }\n />\n </label>\n <label class=\"docs__admin-field\" for=\"docs-admin-section-icon\">\n <span class=\"docs__admin-label\">Icon</span>\n <input\n id=\"docs-admin-section-icon\"\n class=\"docs__admin-input\"\n value={sectionForm().icon}\n onInput={(event) =>\n setSectionForm((current) => ({\n ...current,\n icon: event.currentTarget.value,\n }))\n }\n />\n </label>\n <label class=\"docs__admin-field\" for=\"docs-admin-section-description\">\n <span class=\"docs__admin-label\">Description</span>\n <input\n id=\"docs-admin-section-description\"\n class=\"docs__admin-input\"\n value={sectionForm().description}\n onInput={(event) =>\n setSectionForm((current) => ({\n ...current,\n description: event.currentTarget.value,\n }))\n }\n />\n </label>\n <label class=\"docs__admin-field\" for=\"docs-admin-section-access\">\n <span class=\"docs__admin-label\">Access</span>\n <select\n id=\"docs-admin-section-access\"\n class=\"docs__admin-input\"\n value={sectionForm().access}\n onChange={(event) =>\n setSectionForm((current) => ({\n ...current,\n access: toDocAccess(event.currentTarget.value),\n }))\n }\n >\n <option value=\"public\">Public</option>\n <option value=\"team\">Team</option>\n <option value=\"admin\">Admin</option>\n </select>\n </label>\n <div class=\"docs__admin-form-actions\">\n <button\n type=\"button\"\n class=\"docs__admin-add-btn\"\n disabled={!canCreateSection()}\n onClick={async () => {\n await props.admin.createSection({\n ...sectionForm(),\n order: sections().length,\n icon: sectionForm().icon || undefined,\n description: sectionForm().description || undefined,\n })\n setSectionForm(initialSectionForm())\n setShowSectionForm(false)\n }}\n >\n Create\n </button>\n <button\n type=\"button\"\n class=\"docs__admin-action-btn\"\n onClick={() => setShowSectionForm(false)}\n >\n Cancel\n </button>\n </div>\n </div>\n ) : null}\n\n {sections().length === 0 ? (\n <div class=\"docs__empty\" style={{ 'min-height': '14rem' }}>\n <div class=\"docs__empty-title\">No sections</div>\n <div class=\"docs__empty-desc\">\n Create the first section to start authoring documentation.\n </div>\n </div>\n ) : (\n sections().map((section) => (\n <button\n type=\"button\"\n class={\n section.id === selectedSectionId()\n ? 'docs__admin-section-item docs__admin-section-item--selected'\n : 'docs__admin-section-item'\n }\n onClick={() => setSelectedSectionId(section.id)}\n >\n {section.icon ? <span>{section.icon}</span> : null}\n <span class=\"docs__sidebar-section-title\">{section.title}</span>\n <span class=\"docs__sidebar-section-count\">\n {section.pageCount ?? 0}\n </span>\n </button>\n ))\n )}\n </section>\n\n <section class=\"docs__admin-panel\">\n <div class=\"docs__admin-panel-header\">\n <h2 class=\"docs__admin-panel-title\">\n {selectedSection() ? `Pages — ${selectedSection()?.title}` : 'Pages'}\n </h2>\n {selectedSection() ? (\n <button\n type=\"button\"\n class=\"docs__admin-add-btn\"\n onClick={() => setShowPageForm((value) => !value)}\n >\n Add page\n </button>\n ) : null}\n </div>\n\n {selectedSection() && showPageForm() ? (\n <div class=\"docs__admin-form\">\n <label class=\"docs__admin-field\" for=\"docs-admin-page-title\">\n <span class=\"docs__admin-label\">Title</span>\n <input\n id=\"docs-admin-page-title\"\n class=\"docs__admin-input\"\n value={pageForm().title}\n onInput={(event) =>\n setPageForm((current) => ({\n ...current,\n title: event.currentTarget.value,\n }))\n }\n />\n </label>\n <label class=\"docs__admin-field\" for=\"docs-admin-page-slug\">\n <span class=\"docs__admin-label\">Slug</span>\n <input\n id=\"docs-admin-page-slug\"\n class=\"docs__admin-input\"\n value={pageForm().slug}\n onInput={(event) =>\n setPageForm((current) => ({\n ...current,\n slug: event.currentTarget.value,\n }))\n }\n />\n </label>\n <label class=\"docs__admin-field\" for=\"docs-admin-page-content\">\n <span class=\"docs__admin-label\">Content</span>\n <textarea\n id=\"docs-admin-page-content\"\n class=\"docs__admin-input docs__admin-textarea\"\n value={pageForm().content}\n onInput={(event) =>\n setPageForm((current) => ({\n ...current,\n content: event.currentTarget.value,\n }))\n }\n />\n </label>\n <label class=\"docs__admin-field\" for=\"docs-admin-page-tags\">\n <span class=\"docs__admin-label\">Tags</span>\n <input\n id=\"docs-admin-page-tags\"\n class=\"docs__admin-input\"\n value={pageForm().tags}\n onInput={(event) =>\n setPageForm((current) => ({\n ...current,\n tags: event.currentTarget.value,\n }))\n }\n />\n </label>\n <label class=\"docs__admin-field\" for=\"docs-admin-page-access\">\n <span class=\"docs__admin-label\">Access</span>\n <select\n id=\"docs-admin-page-access\"\n class=\"docs__admin-input\"\n value={pageForm().access}\n onChange={(event) =>\n setPageForm((current) => ({\n ...current,\n access: toDocAccess(event.currentTarget.value),\n }))\n }\n >\n <option value=\"public\">Public</option>\n <option value=\"team\">Team</option>\n <option value=\"admin\">Admin</option>\n </select>\n </label>\n <div class=\"docs__admin-form-actions\">\n <button\n type=\"button\"\n class=\"docs__admin-add-btn\"\n disabled={!canCreatePage()}\n onClick={async () => {\n const section = selectedSection()\n\n if (!section) {\n return\n }\n\n await props.admin.createPage({\n title: pageForm().title,\n slug: pageForm().slug,\n content: pageForm().content,\n sectionId: section.id,\n access: pageForm().access,\n tags: pageForm().tags\n ? pageForm().tags.split(',').map((tag) => tag.trim())\n : [],\n order: sectionPages().length,\n })\n setPageForm(initialPageForm())\n setShowPageForm(false)\n }}\n >\n Create\n </button>\n <button\n type=\"button\"\n class=\"docs__admin-action-btn\"\n onClick={() => setShowPageForm(false)}\n >\n Cancel\n </button>\n </div>\n </div>\n ) : null}\n\n {!selectedSection() ? (\n <div class=\"docs__empty\" style={{ 'min-height': '14rem' }}>\n <div class=\"docs__empty-title\">Select a section</div>\n <div class=\"docs__empty-desc\">\n Pick a section to inspect or create docs pages.\n </div>\n </div>\n ) : sectionPages().length === 0 ? (\n <div class=\"docs__empty\" style={{ 'min-height': '14rem' }}>\n <div class=\"docs__empty-title\">No pages in this section</div>\n <div class=\"docs__empty-desc\">\n Add the first page to begin writing content.\n </div>\n </div>\n ) : (\n sectionPages().map((page) => (\n <div class=\"docs__admin-page-item\">\n <div class=\"docs__admin-page-info\">\n <div class=\"docs__admin-page-title\">{page.title}</div>\n <div class=\"docs__admin-page-slug\">/{page.slug}</div>\n </div>\n <span\n class={\n page.status === 'published'\n ? 'docs__status-badge docs__status-badge--published'\n : page.status === 'archived'\n ? 'docs__status-badge docs__status-badge--archived'\n : 'docs__status-badge docs__status-badge--draft'\n }\n >\n {page.status}\n </span>\n <div class=\"docs__admin-actions\">\n {page.status === 'draft' ? (\n <button\n type=\"button\"\n class=\"docs__admin-action-btn docs__admin-action-btn--publish\"\n onClick={() => props.admin.publishPage(page.id)}\n >\n Publish\n </button>\n ) : null}\n {page.status === 'published' ? (\n <button\n type=\"button\"\n class=\"docs__admin-action-btn docs__admin-action-btn--archive\"\n onClick={() => props.admin.archivePage(page.id)}\n >\n Archive\n </button>\n ) : null}\n <button\n type=\"button\"\n class=\"docs__admin-action-btn docs__admin-action-btn--delete\"\n onClick={() => props.admin.deletePage(page.id)}\n >\n Delete\n </button>\n </div>\n </div>\n ))\n )}\n </section>\n </div>\n </div>\n </div>\n </div>\n )\n}\n","/**\n * @module docsSolidCssCreateDocs\n * @package @geenius/docs-solidjs-css\n * @description Provides the SolidJS CSS docs state primitive that mirrors the\n * Tailwind SolidJS surface while staying local to the CSS package.\n */\n\n\nimport {\n type DocPage,\n type DocSection,\n type DocsConfig,\n defaultDocsConfig,\n} from '@geenius/docs-shared'\nimport { type Accessor, createMemo, createSignal } from 'solid-js'\n\n/**\n * Aggregate docs state returned by the SolidJS CSS docs primitive.\n *\n * @property sections - Accessor returning the normalized docs sections.\n * @property currentSection - Accessor for the currently selected section.\n * @property setSection - Updates the selected section and resets the page selection.\n * @property currentPage - Accessor for the currently selected page.\n * @property setPage - Updates the selected page.\n * @property searchQuery - Accessor for the active docs search query.\n * @property setSearchQuery - Updates the active docs search query.\n * @property isLoading - Accessor describing whether the tree is still unresolved.\n * @property config - Accessor returning the merged docs configuration.\n * @property flatPages - Accessor returning the flattened page list.\n */\nexport interface DocsState {\n sections: Accessor<(DocSection & { pages: DocPage[]; pageCount: number })[]>\n currentSection: Accessor<DocSection | null>\n setSection: (section: DocSection | null) => void\n currentPage: Accessor<DocPage | null>\n setPage: (page: DocPage | null) => void\n searchQuery: Accessor<string>\n setSearchQuery: (query: string) => void\n isLoading: Accessor<boolean>\n config: Accessor<DocsConfig>\n flatPages: Accessor<DocPage[]>\n}\n\n/**\n * Resolves docs tree state for the SolidJS CSS variant.\n *\n * @param tree - Accessor returning the docs tree or `undefined` while loading.\n * @param config - Optional runtime config overrides.\n * @returns Accessors and setters describing the current docs state.\n */\nexport function createDocs(\n tree: Accessor<(DocSection & { pages: DocPage[]; pageCount: number })[] | undefined>,\n config?: Partial<DocsConfig>,\n): DocsState {\n const [currentSection, setCurrentSection] = createSignal<DocSection | null>(null)\n const [currentPage, setCurrentPage] = createSignal<DocPage | null>(null)\n const [searchQuery, setSearchQuery] = createSignal('')\n\n const mergedConfig = createMemo<DocsConfig>(() => ({\n ...defaultDocsConfig,\n ...config,\n }))\n const sections = createMemo(\n () => tree() ?? [],\n )\n const flatPages = createMemo(() =>\n sections().flatMap((section) => section.pages ?? []),\n )\n const isLoading = createMemo(() => tree() === undefined)\n\n const handleSetSection = (section: DocSection | null): void => {\n setCurrentSection(section)\n setCurrentPage(null)\n }\n\n return {\n sections,\n currentSection,\n setSection: handleSetSection,\n currentPage,\n setPage: setCurrentPage,\n searchQuery,\n setSearchQuery,\n isLoading,\n config: mergedConfig,\n flatPages,\n }\n}\n","/**\n * @module docsSolidCssDocsIndexPage\n * @package @geenius/docs-solidjs-css\n * @description Renders the SolidJS CSS docs landing page with section cards,\n * recent pages, and a package-local search trigger.\n */\n\n\nimport type { DocPage, DocSection, SearchResult } from '@geenius/docs-shared'\nimport { buildDocsIndex, searchDocs } from '@geenius/docs-shared'\nimport type { Accessor, JSX } from 'solid-js'\nimport { createEffect, createMemo, createSignal, onCleanup } from 'solid-js'\n\nimport { DocSearch } from '../components/DocSearch'\nimport { createDocSearch } from '../primitives/createDocSearch'\nimport { createDocs } from '../primitives/createDocs'\n\ninterface DocsIndexPageProps {\n tree: Accessor<(DocSection & { pages: DocPage[]; pageCount: number })[] | undefined>\n onSelectPage?: (page: DocPage, section: DocSection) => void\n}\n\n/**\n * Landing page for the standalone SolidJS CSS docs experience.\n *\n * @param props - Docs tree plus an optional page selection handler.\n * @returns Landing page UI for the SolidJS CSS docs variant.\n */\nexport function DocsIndexPage(props: DocsIndexPageProps): JSX.Element {\n const docs = createDocs(props.tree)\n const [isSearchOpen, setIsSearchOpen] = createSignal(false)\n\n const recentPages = createMemo(() =>\n docs.flatPages()\n .slice()\n .sort(\n (left, right) =>\n new Date(right.updatedAt).getTime() - new Date(left.updatedAt).getTime(),\n )\n .slice(0, 6),\n )\n\n const search = createDocSearch((query: string): SearchResult[] => {\n const index = buildDocsIndex(docs.flatPages(), docs.sections())\n return searchDocs(query, index)\n })\n\n createEffect(() => {\n const handleKeydown = (event: KeyboardEvent): void => {\n if (\n docs.config().cmdKEnabled &&\n (event.metaKey || event.ctrlKey) &&\n event.key.toLowerCase() === 'k'\n ) {\n event.preventDefault()\n setIsSearchOpen(true)\n }\n }\n\n document.addEventListener('keydown', handleKeydown)\n onCleanup(() => document.removeEventListener('keydown', handleKeydown))\n })\n\n if (docs.isLoading()) {\n return (\n <div class=\"docs__empty\" style={{ 'min-height': '100vh' }}>\n <div class=\"docs__skeleton\" style={{ width: '24rem', height: '3rem' }} />\n </div>\n )\n }\n\n if (docs.sections().length === 0) {\n return (\n <div class=\"docs__empty\" style={{ 'min-height': '100vh' }}>\n <div class=\"docs__empty-icon\" aria-hidden=\"true\">📚</div>\n <div class=\"docs__empty-title\">No documentation yet</div>\n <div class=\"docs__empty-desc\">\n Create a section and at least one page to populate the docs index.\n </div>\n </div>\n )\n }\n\n return (\n <div class=\"docs__main\">\n <div class=\"docs__content\">\n <div class=\"docs__content-inner\" style={{ display: 'block' }}>\n <header class=\"docs__header\">\n <h1 class=\"docs__title\">Documentation</h1>\n <p>\n Browse guides, references, and implementation notes across the docs\n workspace.\n </p>\n </header>\n\n <div class=\"docs__search-bar\">\n <button\n type=\"button\"\n class=\"docs__search-trigger\"\n aria-haspopup=\"dialog\"\n onClick={() => setIsSearchOpen(true)}\n >\n <svg\n class=\"docs__search-trigger-icon\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n aria-hidden=\"true\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M9 3.5a5.5 5.5 0 100 11 5.5 5.5 0 000-11zM2 9a7 7 0 1112.452 4.391l3.328 3.329a.75.75 0 11-1.06 1.06l-3.329-3.328A7 7 0 012 9z\"\n clip-rule=\"evenodd\"\n />\n </svg>\n <span class=\"docs__search-trigger-text\">Search documentation…</span>\n <span class=\"docs__search-trigger-kbd\">⌘K</span>\n </button>\n </div>\n\n <div class=\"docs__section-grid\">\n {docs.sections()\n .filter((section) => !section.parentId)\n .map((section) => (\n <button\n type=\"button\"\n class=\"docs__section-card\"\n onClick={() => {\n const firstPage = section.pages?.[0]\n if (firstPage) {\n props.onSelectPage?.(firstPage, section)\n }\n }}\n >\n {section.icon ? (\n <span class=\"docs__section-card-icon\" aria-hidden=\"true\">\n {section.icon}\n </span>\n ) : null}\n <span class=\"docs__section-card-title\">{section.title}</span>\n {section.description ? (\n <span class=\"docs__section-card-desc\">{section.description}</span>\n ) : null}\n <span class=\"docs__section-card-meta\">\n {section.pageCount ?? section.pages?.length ?? 0} pages\n </span>\n </button>\n ))}\n </div>\n\n {recentPages().length > 0 ? (\n <>\n <h2>Recently updated</h2>\n <div class=\"docs__section-grid\">\n {recentPages().map((page) => {\n const section = docs.sections().find(\n (currentSection) => currentSection.id === page.sectionId,\n )\n\n return (\n <button\n type=\"button\"\n class=\"docs__section-card\"\n onClick={() => {\n if (section) {\n props.onSelectPage?.(page, section)\n }\n }}\n >\n <span class=\"docs__section-card-title\">{page.title}</span>\n <span class=\"docs__section-card-desc\">\n {section?.title ?? 'Unsectioned'}\n </span>\n <span class=\"docs__section-card-meta\">\n {page.readingTime} min read\n </span>\n </button>\n )\n })}\n </div>\n </>\n ) : null}\n </div>\n </div>\n\n <DocSearch\n results={search.results()}\n query={search.query()}\n onQuery={search.setQuery}\n onSelect={(result) => {\n setIsSearchOpen(false)\n search.clearSearch()\n\n const section = docs.sections().find(\n (currentSection) => currentSection.slug === result.sectionSlug,\n )\n const page = docs.flatPages().find(\n (currentPage) => currentPage.id === result.pageId,\n )\n\n if (page && section) {\n props.onSelectPage?.(page, section)\n }\n }}\n isOpen={isSearchOpen()}\n onClose={() => {\n setIsSearchOpen(false)\n search.clearSearch()\n }}\n />\n </div>\n )\n}\n","/**\n * @module docsSolidCssCreateTableOfContents\n * @package @geenius/docs-solidjs-css\n * @description Tracks extracted headings and the active article anchor for the\n * SolidJS CSS docs variant.\n */\n\n\nimport { extractToc, type TocItem } from '@geenius/docs-shared'\nimport {\n type Accessor,\n createEffect,\n createMemo,\n createSignal,\n onCleanup,\n} from 'solid-js'\n\n/**\n * Table-of-contents state returned by the SolidJS CSS docs TOC primitive.\n *\n * @property toc - Accessor returning the extracted heading tree.\n * @property activeId - Accessor returning the currently active heading id.\n * @property setActiveId - Updates the currently active heading id.\n */\nexport interface TableOfContentsState {\n toc: Accessor<TocItem[]>\n activeId: Accessor<string>\n setActiveId: (id: string) => void\n}\n\n/**\n * Extracts a page TOC and tracks the active heading.\n *\n * @param mdxContent - Accessor returning the markdown content to observe.\n * @returns Extracted TOC entries and the current active heading id.\n */\nexport function createTableOfContents(\n mdxContent: Accessor<string | undefined>,\n): TableOfContentsState {\n const [activeId, setActiveId] = createSignal('')\n\n const toc = createMemo<TocItem[]>(() => {\n const content = mdxContent()\n\n if (!content) {\n return []\n }\n\n return extractToc(content)\n })\n\n const flatIds = createMemo(() => {\n const ids: string[] = []\n\n const collect = (items: TocItem[]): void => {\n for (const item of items) {\n ids.push(item.id)\n collect(item.children)\n }\n }\n\n collect(toc())\n return ids\n })\n\n createEffect(() => {\n const ids = flatIds()\n\n if (ids.length === 0) {\n return\n }\n\n const observer = new IntersectionObserver(\n (entries) => {\n for (const entry of entries) {\n if (entry.isIntersecting) {\n setActiveId(entry.target.id)\n break\n }\n }\n },\n {\n rootMargin: '-80px 0px -70% 0px',\n threshold: 0,\n },\n )\n\n for (const id of ids) {\n const element = document.getElementById(id)\n\n if (element) {\n observer.observe(element)\n }\n }\n\n onCleanup(() => observer.disconnect())\n })\n\n return { toc, activeId, setActiveId }\n}\n","/**\n * @module docsSolidCssDocViewPage\n * @package @geenius/docs-solidjs-css\n * @description Renders the SolidJS CSS docs detail page with local layout, TOC\n * tracking, navigation footer, and metadata presentation.\n */\n\n\nimport type { DocPage as DocPageType, DocSection } from '@geenius/docs-shared'\nimport { buildBreadcrumbs } from '@geenius/docs-shared'\nimport type { Accessor, JSX } from 'solid-js'\nimport { createEffect, createMemo } from 'solid-js'\n\nimport { DocPage } from '../components/DocPage'\nimport { DocsLayout } from '../components/DocsLayout'\nimport { EditButton } from '../components/EditButton'\nimport { PageNavigation } from '../components/PageNavigation'\nimport { createDocs } from '../primitives/createDocs'\nimport { createTableOfContents } from '../primitives/createTableOfContents'\n\ninterface DocViewPageProps {\n tree: Accessor<(DocSection & { pages: DocPageType[]; pageCount: number })[] | undefined>\n page: Accessor<DocPageType | null | undefined>\n editPageUrl?: string\n onNavigate: (page: DocPageType, section: DocSection) => void\n onIncrementView?: (pageId: string) => void\n}\n\n/**\n * Page view for the standalone SolidJS CSS docs variant.\n *\n * @param props - Docs tree, selected page accessor, and page-level event handlers.\n * @returns Detailed page view or an appropriate empty/loading state.\n */\nexport function DocViewPage(props: DocViewPageProps): JSX.Element {\n const docs = createDocs(props.tree)\n const tocState = createTableOfContents(() => props.page()?.content)\n\n createEffect(() => {\n const page = props.page()\n\n if (page?.id) {\n props.onIncrementView?.(page.id)\n }\n })\n\n const breadcrumbs = createMemo(() => {\n const page = props.page()\n\n if (!page) {\n return []\n }\n\n return buildBreadcrumbs(docs.sections(), page.sectionId, page.slug)\n })\n\n const navigation = createMemo(() => {\n const page = props.page()\n\n if (!page) {\n return { prev: undefined, next: undefined }\n }\n\n const flatPages = docs.flatPages()\n const currentIndex = flatPages.findIndex(\n (currentPage) => currentPage.id === page.id,\n )\n const prevPage = currentIndex > 0 ? flatPages[currentIndex - 1] : undefined\n const nextPage =\n currentIndex >= 0 && currentIndex < flatPages.length - 1\n ? flatPages[currentIndex + 1]\n : undefined\n const prevSection = prevPage\n ? docs.sections().find((section) => section.id === prevPage.sectionId)\n : undefined\n const nextSection = nextPage\n ? docs.sections().find((section) => section.id === nextPage.sectionId)\n : undefined\n\n return {\n prev: prevPage\n ? {\n title: prevPage.title,\n href: `/docs/${prevSection?.slug ?? ''}/${prevPage.slug}`,\n }\n : undefined,\n next: nextPage\n ? {\n title: nextPage.title,\n href: `/docs/${nextSection?.slug ?? ''}/${nextPage.slug}`,\n }\n : undefined,\n }\n })\n\n if (docs.isLoading() || props.page() === undefined) {\n return (\n <div class=\"docs__empty\" style={{ 'min-height': '100vh' }}>\n <div class=\"docs__skeleton\" style={{ width: '24rem', height: '3rem' }} />\n </div>\n )\n }\n\n const page = props.page()\n\n if (!page) {\n return (\n <div class=\"docs__empty\" style={{ 'min-height': '100vh' }}>\n <div class=\"docs__empty-icon\" aria-hidden=\"true\">🔍</div>\n <div class=\"docs__empty-title\">Page not found</div>\n <div class=\"docs__empty-desc\">\n The requested documentation page could not be resolved.\n </div>\n </div>\n )\n }\n\n return (\n <DocsLayout\n sections={docs.sections()}\n toc={tocState.toc()}\n activeHeadingId={tocState.activeId()}\n breadcrumbs={breadcrumbs()}\n currentPageId={page.id}\n onNavigate={props.onNavigate}\n >\n <header class=\"docs__page-header\">\n <h1 class=\"docs__page-title\">{page.title}</h1>\n <div class=\"docs__reading-meta\">\n <span class=\"docs__reading-meta-author\">\n {page.author.avatar ? (\n <img src={page.author.avatar} alt=\"\" class=\"docs__reading-meta-avatar\" />\n ) : (\n <span class=\"docs__reading-meta-avatar-placeholder\">\n {page.author.name[0]}\n </span>\n )}\n {page.author.name}\n </span>\n {docs.config().showReadingTime ? <span>{page.readingTime} min read</span> : null}\n {page.lastEditedBy ? <span>Edited by {page.lastEditedBy.name}</span> : null}\n {docs.config().showViewCount && page.viewCount > 0 ? (\n <span>{page.viewCount.toLocaleString()} views</span>\n ) : null}\n </div>\n {page.tags.length > 0 ? (\n <div class=\"docs__tag-list\">\n {page.tags.map((tag) => (\n <span class=\"docs__tag docs__tag--badge\">{tag}</span>\n ))}\n </div>\n ) : null}\n </header>\n\n <DocPage page={page} />\n\n <div class=\"docs__page-footer\">\n <EditButton pageSlug={page.slug} editUrl={props.editPageUrl} />\n {page.version ? <span>v{page.version}</span> : null}\n </div>\n\n <PageNavigation prev={navigation().prev} next={navigation().next} />\n </DocsLayout>\n )\n}\n","/**\n * @module docsSolidCssCreateDocsAdmin\n * @package @geenius/docs-solidjs-css\n * @description Adapts transport-level docs admin mutations into stable\n * SolidJS-friendly callbacks for the CSS variant.\n */\n\n/**\n * Stable docs admin actions exposed by the SolidJS CSS package.\n */\nexport interface DocsAdminActions {\n createSection: (data: {\n title: string\n slug: string\n parentId?: string\n order: number\n icon?: string\n description?: string\n access: 'public' | 'team' | 'admin'\n }) => Promise<void>\n updateSection: (sectionId: string, data: Record<string, unknown>) => Promise<void>\n deleteSection: (sectionId: string) => Promise<void>\n reorderSections: (sectionIds: string[]) => Promise<void>\n createPage: (data: {\n title: string\n slug: string\n content: string\n sectionId: string\n access: 'public' | 'team' | 'admin'\n tags?: string[]\n version?: string\n status?: 'draft' | 'published' | 'archived'\n author?: { name: string; avatar?: string }\n excerpt?: string\n order?: number\n }) => Promise<void>\n updatePage: (pageId: string, data: Record<string, unknown>) => Promise<void>\n publishPage: (pageId: string) => Promise<void>\n archivePage: (pageId: string) => Promise<void>\n deletePage: (pageId: string) => Promise<void>\n reorderPages: (pageIds: string[]) => Promise<void>\n movePage: (pageId: string, newSectionId: string, newOrder: number) => Promise<void>\n}\n\n/**\n * Creates stable admin callbacks from low-level transport mutations.\n *\n * @param mutations - Mutation handlers provided by the consuming app.\n * @returns Stable admin actions for docs authoring flows.\n */\nexport function createDocsAdmin(mutations: {\n createSection: (args: Record<string, unknown>) => Promise<unknown>\n updateSection: (args: Record<string, unknown>) => Promise<unknown>\n deleteSection: (args: Record<string, unknown>) => Promise<unknown>\n reorderSections: (args: Record<string, unknown>) => Promise<unknown>\n createPage: (args: Record<string, unknown>) => Promise<unknown>\n updatePage: (args: Record<string, unknown>) => Promise<unknown>\n publishPage: (args: Record<string, unknown>) => Promise<unknown>\n archivePage: (args: Record<string, unknown>) => Promise<unknown>\n deletePage: (args: Record<string, unknown>) => Promise<unknown>\n reorderPages: (args: Record<string, unknown>) => Promise<unknown>\n movePage: (args: Record<string, unknown>) => Promise<unknown>\n}): DocsAdminActions {\n return {\n createSection: async (data) => {\n await mutations.createSection(data)\n },\n updateSection: async (sectionId, data) => {\n await mutations.updateSection({ sectionId, ...data })\n },\n deleteSection: async (sectionId) => {\n await mutations.deleteSection({ sectionId })\n },\n reorderSections: async (sectionIds) => {\n await mutations.reorderSections({ sectionIds })\n },\n createPage: async (data) => {\n await mutations.createPage(data)\n },\n updatePage: async (pageId, data) => {\n await mutations.updatePage({ pageId, ...data })\n },\n publishPage: async (pageId) => {\n await mutations.publishPage({ pageId })\n },\n archivePage: async (pageId) => {\n await mutations.archivePage({ pageId })\n },\n deletePage: async (pageId) => {\n await mutations.deletePage({ pageId })\n },\n reorderPages: async (pageIds) => {\n await mutations.reorderPages({ pageIds })\n },\n movePage: async (pageId, newSectionId, newOrder) => {\n await mutations.movePage({ pageId, newSectionId, newOrder })\n },\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/lib/cx.ts","../src/components/Breadcrumbs.tsx","../../shared/src/utilities.ts","../src/components/DocPage.tsx","../src/components/DocSearch.tsx","../src/components/DocSidebar.tsx","../src/components/TableOfContents.tsx","../src/components/DocsLayout.tsx","../src/components/EditButton.tsx","../src/components/PageNavigation.tsx","../src/components/VersionSelector.tsx","../src/primitives/createDocSearch.ts","../src/pages/DocSearchPage.tsx","../src/pages/DocsAdminPage.tsx","../src/primitives/createDocs.ts","../src/pages/DocsIndexPage.tsx","../src/primitives/createTableOfContents.ts","../src/pages/DocViewPage.tsx","../src/primitives/createDocsAdmin.ts"],"names":["children","jsxs","jsx","createSignal","createMemo","createEffect","Fragment","For","sections","flatPages","onCleanup","page"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * @module docsSolidCssCx\n * @package @geenius/docs/solidjs-css\n * @description Exposes the SolidJS CSS-variant class composer so components\n * can build BEM-style class strings without leaking ad hoc concatenation into\n * every render function.\n */\n\n/**\n * Merges class name values into a normalized string for the SolidJS CSS\n * variant.\n *\n * @param classes - Static and conditional class name fragments.\n * @returns A normalized class list string.\n */\nexport function cx(...classes: (string | false | null | undefined)[]): string {\n return classes.filter(Boolean).join(' ')\n}\n","/**\n * @module docsSolidCssBreadcrumbs\n * @package @geenius/docs/solidjs-css\n * @description Renders breadcrumb navigation for the SolidJS CSS docs variant\n * using the shared vanilla CSS class contract.\n */\n\n\nimport type { BreadcrumbItem } from '@geenius/docs/shared'\nimport type { JSX } from 'solid-js'\nimport { For, Show } from 'solid-js'\n\nimport { cx } from '../lib/cx'\n\ninterface BreadcrumbsProps {\n items: BreadcrumbItem[]\n class?: string\n}\n\n/**\n * Renders a breadcrumb trail for docs pages.\n *\n * @param props - Breadcrumb items describing the current page path.\n * @returns The breadcrumb navigation or `null` when there are no items.\n */\nexport function Breadcrumbs(props: BreadcrumbsProps): JSX.Element | null {\n if (props.items.length === 0) {\n return null\n }\n\n return (\n <nav class={cx('docs__breadcrumbs', props.class)} aria-label=\"Breadcrumb\">\n <For each={props.items}>\n {(item, index) => (\n <>\n <Show when={index() > 0}>\n <svg\n class=\"docs__breadcrumb-separator\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n <path d=\"M6 4l4 4-4 4\" stroke=\"currentColor\" stroke-width=\"1.5\" />\n </svg>\n </Show>\n <Show\n when={index() === props.items.length - 1}\n fallback={\n <a href={item.href} class=\"docs__breadcrumb-item\">\n {item.title}\n </a>\n }\n >\n <span\n class={cx('docs__breadcrumb-item', 'docs__breadcrumb-item--current')}\n aria-current=\"page\"\n >\n {item.title}\n </span>\n </Show>\n </>\n )}\n </For>\n </nav>\n )\n}\n","/**\n * @module docsUtilities\n * @package @geenius/docs/shared\n * @description Hosts the framework-agnostic docs helpers used by the shared\n * barrel and provider implementations for search, slugging, breadcrumbs, table\n * of contents extraction, and default config resolution.\n */\n\nimport type {\n BreadcrumbItem,\n DocPage,\n DocSection,\n DocsConfig,\n SearchResult,\n TocItem,\n} from './types'\n\nfunction toTocLevel(level: number): TocItem['level'] {\n if (level === 2 || level === 3 || level === 4) {\n return level\n }\n\n return 4\n}\n\n/**\n * Extracts a nested table of contents from Markdown heading lines.\n *\n * @param mdxContent - Markdown or MDX content to parse.\n * @returns A nested heading tree containing only level 2 through 4 headings.\n */\nexport function extractToc(mdxContent: string): TocItem[] {\n const headingRegex = /^(#{2,4})\\s+(.+)$/gm\n const items: TocItem[] = []\n let match = headingRegex.exec(mdxContent)\n\n while (match !== null) {\n const text = match[2].trim()\n items.push({\n id: slugify(text),\n text,\n level: toTocLevel(match[1].length),\n children: [],\n })\n match = headingRegex.exec(mdxContent)\n }\n\n const nested: TocItem[] = []\n let currentH2: TocItem | null = null\n let currentH3: TocItem | null = null\n\n for (const item of items) {\n if (item.level === 2) {\n currentH2 = item\n currentH3 = null\n nested.push(item)\n continue\n }\n\n if (item.level === 3) {\n currentH3 = item\n if (currentH2) {\n currentH2.children.push(item)\n } else {\n nested.push(item)\n }\n continue\n }\n\n if (currentH3) {\n currentH3.children.push(item)\n } else if (currentH2) {\n currentH2.children.push(item)\n } else {\n nested.push(item)\n }\n }\n\n return nested\n}\n\n/**\n * Calculates approximate word count and reading time for page content.\n *\n * @param content - Markdown or MDX content to measure.\n * @returns Word count and reading-time metadata derived from the content.\n */\nexport function calcWordCount(\n content: string,\n): { wordCount: number; readingTime: number } {\n const stripped = content\n .replace(/```[\\s\\S]*?```/g, '')\n .replace(/`[^`]+`/g, '')\n .replace(/!\\[.*?\\]\\(.*?\\)/g, '')\n .replace(/\\[([^\\]]+)\\]\\(.*?\\)/g, '$1')\n .replace(/[#*_~>|-]/g, '')\n .trim()\n\n const words = stripped.split(/\\s+/).filter(Boolean)\n\n return {\n wordCount: words.length,\n readingTime: Math.max(1, Math.ceil(words.length / 225)),\n }\n}\n\n/**\n * Builds a breadcrumb trail for a page from a section tree.\n *\n * @param sections - Full section list used to resolve parent relationships.\n * @param sectionId - Identifier of the page's containing section.\n * @param slug - Page slug appended as the terminal breadcrumb.\n * @returns Breadcrumb items suitable for page-level navigation UI.\n */\nexport function buildBreadcrumbs(\n sections: DocSection[],\n sectionId: string,\n slug: string,\n): BreadcrumbItem[] {\n const crumbs: BreadcrumbItem[] = [{ title: 'Docs', href: '/docs' }]\n const sectionMap = new Map(sections.map((section) => [section.id, section]))\n const trail: DocSection[] = []\n let current = sectionMap.get(sectionId)\n\n while (current) {\n trail.unshift(current)\n current = current.parentId ? sectionMap.get(current.parentId) : undefined\n }\n\n for (const section of trail) {\n crumbs.push({ title: section.title, href: `/docs/${section.slug}` })\n }\n\n if (slug) {\n const parentSlug = trail[trail.length - 1]?.slug ?? ''\n crumbs.push({ title: slug, href: `/docs/${parentSlug}/${slug}` })\n }\n\n return crumbs\n}\n\n/**\n * Builds a full-text search index from published pages and their sections.\n *\n * @param pages - Page records to index.\n * @param sections - Section metadata used to enrich each result.\n * @returns Search index entries derived from the published pages.\n */\nexport function buildDocsIndex(\n pages: DocPage[],\n sections: DocSection[],\n): SearchResult[] {\n const sectionMap = new Map(sections.map((section) => [section.id, section]))\n\n return pages\n .filter((page) => page.status === 'published')\n .map((page) => {\n const section = sectionMap.get(page.sectionId)\n\n return {\n pageId: page.id,\n pageTitle: page.title,\n sectionTitle: section?.title ?? '',\n sectionSlug: section?.slug ?? '',\n slug: page.slug,\n highlight: page.excerpt ?? page.content.slice(0, 160),\n score: 0,\n tags: page.tags,\n }\n })\n}\n\n/**\n * Searches a shared search index and returns ranked matches.\n *\n * @param query - User-entered search query.\n * @param index - Search index entries to rank.\n * @returns Ranked search results limited to the top twenty entries.\n */\nexport function searchDocs(\n query: string,\n index: SearchResult[],\n): SearchResult[] {\n if (!query.trim()) {\n return []\n }\n\n const terms = query.toLowerCase().split(/\\s+/).filter(Boolean)\n\n return index\n .map((entry) => {\n let score = 0\n const titleLower = entry.pageTitle.toLowerCase()\n const highlightLower = entry.highlight.toLowerCase()\n const sectionLower = entry.sectionTitle.toLowerCase()\n const tagsLower = entry.tags.map((tag) => tag.toLowerCase())\n\n for (const term of terms) {\n if (titleLower.includes(term)) {\n score += 10\n }\n if (tagsLower.some((tag) => tag.includes(term))) {\n score += 5\n }\n if (sectionLower.includes(term)) {\n score += 3\n }\n if (highlightLower.includes(term)) {\n score += 2\n }\n }\n\n return { ...entry, score }\n })\n .filter((entry) => entry.score > 0)\n .sort((left, right) => right.score - left.score)\n .slice(0, 20)\n}\n\n/**\n * Creates a URL-safe slug from arbitrary text.\n *\n * @param title - Source text to slugify.\n * @returns A lower-case kebab-case slug.\n */\nexport function slugify(title: string): string {\n return title\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, '-')\n .replace(/(^-|-$)/g, '')\n}\n\n/**\n * Produces a search-result snippet centred around a matching query.\n *\n * @param text - Source text used to build the snippet.\n * @param query - User-entered search query.\n * @param maxLen - Maximum snippet length.\n * @returns A trimmed snippet containing the best query match when available.\n */\nexport function highlightMatch(\n text: string,\n query: string,\n maxLen = 160,\n): string {\n if (!query.trim()) {\n return text.slice(0, maxLen)\n }\n\n const lowerText = text.toLowerCase()\n const lowerQuery = query.toLowerCase()\n const index = lowerText.indexOf(lowerQuery)\n\n if (index === -1) {\n return text.slice(0, maxLen)\n }\n\n const start = Math.max(0, index - 40)\n const end = Math.min(text.length, index + query.length + (maxLen - 80))\n let snippet = text.slice(start, end)\n\n if (start > 0) {\n snippet = `…${snippet}`\n }\n if (end < text.length) {\n snippet = `${snippet}…`\n }\n\n return snippet\n}\n\n/**\n * Baseline config used by the framework variants when no explicit config is provided.\n */\nexport const defaultDocsConfig: DocsConfig = {\n siteName: 'Docs',\n cmdKEnabled: true,\n showReadingTime: true,\n showLastEdited: true,\n versionsEnabled: false,\n defaultAccess: 'public',\n printModeEnabled: true,\n}\n","/**\n * @module docsSolidCssDocPage\n * @package @geenius/docs/solidjs-css\n * @description Renders authored docs content for the SolidJS CSS variant using\n * safe Markdown output and the shared vanilla CSS class contract.\n */\n\n\nimport type { DocPage as DocPageType } from '@geenius/docs/shared'\nimport { slugify } from '@geenius/docs/shared'\nimport remarkGfm from 'remark-gfm'\nimport type { JSX } from 'solid-js'\nimport { SolidMarkdown } from 'solid-markdown'\n\nimport { cx } from '../lib/cx'\n\ninterface DocPageProps {\n page: DocPageType\n class?: string\n}\n\nfunction getNodeText(children: unknown): string {\n if (Array.isArray(children)) {\n return children.map((child) => getNodeText(child)).join(' ')\n }\n\n if (typeof children === 'string' || typeof children === 'number') {\n return String(children)\n }\n\n return ''\n}\n\nfunction createHeading(\n Tag: 'h1' | 'h2' | 'h3' | 'h4',\n className?: string,\n): (props: { children: JSX.Element }) => JSX.Element {\n return (props) => {\n const text = getNodeText(props.children)\n const id = slugify(text)\n\n return (\n <Tag id={id} class={className}>\n {props.children}\n <a href={`#${id}`} class=\"docs__heading-anchor\" aria-label={`Link to ${text}`}>\n #\n </a>\n </Tag>\n )\n }\n}\n\n/**\n * Renders a documentation page body.\n *\n * @param props - The docs page whose Markdown content should be rendered.\n * @returns The rendered article.\n */\nexport function DocPage(props: DocPageProps): JSX.Element {\n return (\n <article class={cx('docs__article', props.class)}>\n <div class=\"docs__article-body docs__content-main\">\n <SolidMarkdown\n remarkPlugins={[remarkGfm]}\n components={{\n h1: createHeading('h1', 'docs__article-title'),\n h2: createHeading('h2'),\n h3: createHeading('h3'),\n h4: createHeading('h4'),\n a: (componentProps) => (\n <a\n href={componentProps.href}\n target={componentProps.href?.startsWith('/') ? undefined : '_blank'}\n rel={componentProps.href?.startsWith('/') ? undefined : 'noreferrer noopener'}\n >\n {componentProps.children}\n </a>\n ),\n pre: (componentProps) => (\n <div class=\"docs__code-block\">\n <pre>{componentProps.children}</pre>\n </div>\n ),\n table: (componentProps) => (\n <div class=\"docs__table-wrapper\">\n <table class=\"docs__table\">{componentProps.children}</table>\n </div>\n ),\n }}\n >\n {props.page.content}\n </SolidMarkdown>\n </div>\n </article>\n )\n}\n","/**\n * @module docsSolidCssDocSearch\n * @package @geenius/docs/solidjs-css\n * @description Provides the accessible command-palette-style search dialog for\n * the SolidJS CSS docs variant.\n */\n\n\nimport type { SearchResult } from '@geenius/docs/shared'\nimport { highlightMatch } from '@geenius/docs/shared'\nimport type { JSX } from 'solid-js'\nimport { createEffect, createMemo, createSignal, createUniqueId } from 'solid-js'\n\nimport { cx } from '../lib/cx'\n\ninterface DocSearchProps {\n results: SearchResult[]\n query: string\n onQuery: (query: string) => void\n onSelect: (result: SearchResult) => void\n isOpen: boolean\n onClose: () => void\n class?: string\n}\n\nconst FOCUSABLE_SELECTOR =\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\n\nfunction getActiveElement(): HTMLElement | null {\n return document.activeElement instanceof HTMLElement\n ? document.activeElement\n : null\n}\n\n/**\n * Renders the modal docs search experience.\n *\n * @param props - Controlled search state, results, and close/select callbacks.\n * @returns The search dialog when open, otherwise `null`.\n */\nexport function DocSearch(props: DocSearchProps): JSX.Element | null {\n const [activeIndex, setActiveIndex] = createSignal(0)\n const dialogId = `docs-search-${createUniqueId()}`\n let inputRef: HTMLInputElement | undefined\n let dialogRef: HTMLDivElement | undefined\n let previousFocus: HTMLElement | null = null\n const resultRefs: Array<HTMLButtonElement | undefined> = []\n\n const activeResultId = createMemo(() => {\n const activeResult = props.results[activeIndex()]\n\n return activeResult ? `${dialogId}-result-${activeResult.pageId}` : undefined\n })\n\n createEffect(() => {\n if (!props.isOpen) {\n return\n }\n\n previousFocus = getActiveElement()\n inputRef?.focus()\n setActiveIndex(0)\n })\n\n createEffect(() => {\n props.query\n props.results\n setActiveIndex(0)\n })\n\n createEffect(() => {\n const element = resultRefs[activeIndex()]\n element?.scrollIntoView({ block: 'nearest' })\n })\n\n const handleKeyDown: JSX.EventHandler<HTMLDivElement, KeyboardEvent> = (\n event,\n ): void => {\n if (event.key === 'Escape') {\n event.preventDefault()\n props.onClose()\n previousFocus?.focus()\n return\n }\n\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n setActiveIndex((index) => Math.min(index + 1, props.results.length - 1))\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n setActiveIndex((index) => Math.max(index - 1, 0))\n return\n }\n\n if (event.key === 'Enter' && props.results[activeIndex()]) {\n event.preventDefault()\n props.onSelect(props.results[activeIndex()])\n return\n }\n\n if (event.key !== 'Tab' || !dialogRef) {\n return\n }\n\n const focusableElements = Array.from(\n dialogRef.querySelectorAll<HTMLElement>(FOCUSABLE_SELECTOR),\n ).filter((element) => !element.hasAttribute('disabled'))\n\n if (focusableElements.length === 0) {\n return\n }\n\n const firstElement = focusableElements[0]\n const lastElement = focusableElements[focusableElements.length - 1]\n\n if (event.shiftKey && document.activeElement === firstElement) {\n event.preventDefault()\n lastElement.focus()\n }\n\n if (!event.shiftKey && document.activeElement === lastElement) {\n event.preventDefault()\n firstElement.focus()\n }\n }\n\n if (!props.isOpen) {\n return null\n }\n\n return (\n <div class={cx('docs__search-modal', props.class)}>\n <button\n type=\"button\"\n class=\"docs__search-backdrop\"\n aria-label=\"Close search\"\n onClick={() => {\n props.onClose()\n previousFocus?.focus()\n }}\n />\n <div\n ref={dialogRef}\n class=\"docs__search-panel\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={`${dialogId}-title`}\n onKeyDown={handleKeyDown}\n >\n <div class=\"docs__search-header\">\n <h2 id={`${dialogId}-title`} class=\"docs__search-title\">\n Search documentation\n </h2>\n <input\n ref={inputRef}\n type=\"search\"\n value={props.query}\n onInput={(event) => props.onQuery(event.currentTarget.value)}\n class=\"docs__search-input\"\n placeholder=\"Search documentation\"\n aria-label=\"Search documentation\"\n aria-controls={`${dialogId}-results`}\n aria-activedescendant={activeResultId()}\n />\n </div>\n\n <div id={`${dialogId}-results`} class=\"docs__search-results\" role=\"listbox\">\n {props.results.length === 0 ? (\n <div class=\"docs__search-empty\">\n <div class=\"docs__search-empty-title\">\n {props.query.trim()\n ? `No results for “${props.query}”`\n : 'Start typing to search'}\n </div>\n <div class=\"docs__search-empty-desc\">\n {props.query.trim()\n ? 'Try a broader keyword or check your spelling.'\n : 'Search across sections, titles, and content snippets.'}\n </div>\n </div>\n ) : (\n props.results.map((result, index) => (\n <button\n ref={(element) => {\n resultRefs[index] = element\n }}\n id={`${dialogId}-result-${result.pageId}`}\n type=\"button\"\n role=\"option\"\n aria-selected={index === activeIndex()}\n onMouseEnter={() => setActiveIndex(index)}\n onClick={() => props.onSelect(result)}\n class={cx(\n 'docs__search-result-item',\n index === activeIndex() && 'docs__search-result-item--active',\n )}\n >\n <div class=\"docs__search-result-header\">\n <span class=\"docs__search-result-section\">{result.sectionTitle}</span>\n <strong class=\"docs__search-result-title\">{result.pageTitle}</strong>\n </div>\n <span class=\"docs__search-result-highlight\">\n {highlightMatch(result.highlight, props.query)}\n </span>\n {result.tags.length > 0 ? (\n <div class=\"docs__search-tags\">\n {result.tags.slice(0, 3).map((tag) => (\n <span class=\"docs__tag\">{tag}</span>\n ))}\n </div>\n ) : null}\n </button>\n ))\n )}\n </div>\n\n <div class=\"docs__search-footer\">\n <span class=\"docs__search-hint\">Up/Down to navigate</span>\n <span class=\"docs__search-hint\">Enter to select</span>\n <span class=\"docs__search-hint\">Esc to close</span>\n </div>\n </div>\n </div>\n )\n}\n","/**\n * @module docsSolidCssDocSidebar\n * @package @geenius/docs/solidjs-css\n * @description Renders the hierarchical documentation sidebar for the SolidJS\n * CSS variant with local disclosure state and the shared vanilla CSS class\n * contract.\n */\n\n\nimport type { DocPage, DocSection } from '@geenius/docs/shared'\nimport type { JSX } from 'solid-js'\nimport { createEffect, createMemo, createSignal } from 'solid-js'\n\nimport { cx } from '../lib/cx'\n\ninterface DocSidebarProps {\n sections: (DocSection & { pages?: DocPage[]; pageCount?: number })[]\n currentPageId?: string\n onNavigate: (page: DocPage, section: DocSection) => void\n class?: string\n}\n\ntype SidebarSection = DocSection & { pages?: DocPage[]; pageCount?: number }\n\nfunction collectAncestorIds(\n section: SidebarSection,\n sectionMap: Map<string, SidebarSection>,\n): string[] {\n const ids = [section.id]\n let parentId = section.parentId\n\n while (parentId) {\n ids.push(parentId)\n parentId = sectionMap.get(parentId)?.parentId\n }\n\n return ids\n}\n\n/**\n * Renders the documentation sidebar tree.\n *\n * @param props - Section tree, active page id, and navigation callback.\n * @returns The sidebar navigation for the CSS-backed docs experience.\n */\nexport function DocSidebar(props: DocSidebarProps): JSX.Element {\n const [expandedIds, setExpandedIds] = createSignal<Set<string>>(new Set())\n\n const sectionMap = createMemo(\n () => new Map(props.sections.map((section) => [section.id, section])),\n )\n const topLevelSections = createMemo(() =>\n props.sections.filter((section) => !section.parentId),\n )\n\n createEffect(() => {\n const currentPageId = props.currentPageId\n\n if (!currentPageId) {\n return\n }\n\n const owningSection = props.sections.find((section) =>\n (section.pages ?? []).some((page) => page.id === currentPageId),\n )\n\n if (!owningSection) {\n return\n }\n\n const ids = collectAncestorIds(owningSection, sectionMap())\n\n setExpandedIds((previous) => {\n const next = new Set(previous)\n\n for (const id of ids) {\n next.add(id)\n }\n\n return next\n })\n })\n\n const childSections = (parentId: string): SidebarSection[] =>\n props.sections.filter((section) => section.parentId === parentId)\n\n const toggleSection = (sectionId: string): void => {\n setExpandedIds((previous) => {\n const next = new Set(previous)\n\n if (next.has(sectionId)) {\n next.delete(sectionId)\n } else {\n next.add(sectionId)\n }\n\n return next\n })\n }\n\n const renderSection = (\n section: SidebarSection,\n depth = 0,\n ): JSX.Element => {\n const children = childSections(section.id)\n const pages = section.pages ?? []\n const hasContent = children.length > 0 || pages.length > 0\n const isExpanded = expandedIds().has(section.id)\n const containsCurrentPage = Boolean(\n props.currentPageId &&\n (pages.some((page) => page.id === props.currentPageId) ||\n children.some((child) =>\n child.pages?.some((page) => page.id === props.currentPageId),\n )),\n )\n const regionId = `docs-sidebar-section-${section.id}`\n\n return (\n <div\n class={cx(\n 'docs__sidebar-section',\n containsCurrentPage && 'docs__sidebar-section--active',\n )}\n style={depth > 0 ? { 'padding-left': `${depth * 12}px` } : undefined}\n >\n <button\n type=\"button\"\n class=\"docs__sidebar-section-btn\"\n aria-expanded={hasContent ? isExpanded : undefined}\n aria-controls={hasContent ? regionId : undefined}\n onClick={() => {\n if (hasContent) {\n toggleSection(section.id)\n }\n }}\n >\n {section.icon ? (\n <span class=\"docs__sidebar-section-icon\" aria-hidden=\"true\">\n {section.icon}\n </span>\n ) : null}\n <span class=\"docs__sidebar-section-title\">{section.title}</span>\n {section.pageCount !== undefined ? (\n <span class=\"docs__sidebar-section-count\">{section.pageCount}</span>\n ) : null}\n {hasContent ? (\n <svg\n class={cx(\n 'docs__sidebar-section-chevron',\n isExpanded && 'docs__sidebar-section-chevron--open',\n )}\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n <path d=\"M6 4l4 4-4 4\" stroke=\"currentColor\" stroke-width=\"1.5\" />\n </svg>\n ) : null}\n </button>\n\n {hasContent && isExpanded ? (\n <div id={regionId} class=\"docs__sidebar-pages\">\n {pages.map((page) => (\n <button\n type=\"button\"\n class={cx(\n 'docs__sidebar-link',\n page.id === props.currentPageId && 'docs__sidebar-link--active',\n )}\n aria-current={page.id === props.currentPageId ? 'page' : undefined}\n onClick={() => props.onNavigate(page, section)}\n >\n <span class=\"docs__sidebar-section-title\">{page.title}</span>\n </button>\n ))}\n {children.map((child) => renderSection(child, depth + 1))}\n </div>\n ) : null}\n </div>\n )\n }\n\n return (\n <nav\n class={cx('docs__sidebar-nav', props.class)}\n aria-label=\"Documentation\"\n >\n <div class=\"docs__sidebar-header\">Documentation</div>\n {topLevelSections().map((section) => renderSection(section))}\n </nav>\n )\n}\n","/**\n * @module docsSolidCssTableOfContents\n * @package @geenius/docs/solidjs-css\n * @description Renders the CSS-backed table of contents tree for the SolidJS\n * docs variant.\n */\n\n\nimport type { TocItem } from '@geenius/docs/shared'\nimport type { JSX } from 'solid-js'\nimport { For, } from 'solid-js'\n\nimport { cx } from '../lib/cx'\n\ninterface TableOfContentsProps {\n toc: TocItem[]\n activeId?: string\n class?: string\n}\n\nfunction TocEntry(props: {\n item: TocItem\n activeId?: string\n depth?: number\n}): JSX.Element {\n const depth = props.depth ?? 0\n\n return (\n <>\n <a\n href={`#${props.item.id}`}\n class={cx(\n 'docs__toc-item',\n props.activeId === props.item.id && 'docs__toc-item--active',\n depth === 1 && 'docs__toc-item--h3',\n depth >= 2 && 'docs__toc-item--h4',\n )}\n >\n {props.item.text}\n </a>\n <For each={props.item.children}>\n {(child) => (\n <TocEntry item={child} activeId={props.activeId} depth={depth + 1} />\n )}\n </For>\n </>\n )\n}\n\n/**\n * Renders the page table of contents.\n *\n * @param props - TOC entries and the currently active heading id.\n * @returns The TOC navigation or `null` when the page has no headings.\n */\nexport function TableOfContents(\n props: TableOfContentsProps,\n): JSX.Element | null {\n if (props.toc.length === 0) {\n return null\n }\n\n return (\n <nav class={cx('docs__toc', props.class)} aria-label=\"On this page\">\n <h2 class=\"docs__toc-title\">On this page</h2>\n <div class=\"docs__toc-list\">\n <For each={props.toc}>\n {(item) => <TocEntry item={item} activeId={props.activeId} />}\n </For>\n </div>\n </nav>\n )\n}\n","/**\n * @module docsSolidCssDocsLayout\n * @package @geenius/docs/solidjs-css\n * @description Composes the sidebar, content column, breadcrumbs, and table\n * of contents for the SolidJS CSS docs variant.\n */\n\n\nimport type { BreadcrumbItem, DocPage, DocSection, TocItem } from '@geenius/docs/shared'\nimport type { JSX } from 'solid-js'\nimport { children } from 'solid-js'\nimport { cx } from '../lib/cx'\nimport { Breadcrumbs } from './Breadcrumbs'\nimport { DocSidebar } from './DocSidebar'\nimport { TableOfContents } from './TableOfContents'\n\ninterface DocsLayoutProps {\n sections: (DocSection & { pages?: DocPage[]; pageCount?: number })[]\n currentPage?: DocPage\n toc?: TocItem[]\n activeHeadingId?: string\n breadcrumbs?: BreadcrumbItem[]\n currentPageId?: string\n onNavigate: (page: DocPage, section: DocSection) => void\n children: JSX.Element\n class?: string\n}\n\n/**\n * Renders the shared docs layout shell for the SolidJS CSS package.\n *\n * @param props - Sidebar content, page context, and rendered children.\n * @returns The composed docs layout.\n */\nexport function DocsLayout(props: DocsLayoutProps): JSX.Element {\n const resolvedChildren = children(() => props.children)\n\n return (\n <div class={cx('docs__layout', props.class)}>\n <aside class=\"docs__sidebar\">\n <DocSidebar\n sections={props.sections}\n currentPageId={props.currentPageId}\n onNavigate={props.onNavigate}\n />\n </aside>\n <main class=\"docs__main\">\n <div class=\"docs__content\">\n <div class=\"docs__content-inner\">\n <div class=\"docs__content-main\">\n {props.breadcrumbs && props.breadcrumbs.length > 0 ? (\n <Breadcrumbs items={props.breadcrumbs} />\n ) : null}\n {resolvedChildren()}\n </div>\n {props.toc && props.toc.length > 0 ? (\n <aside class=\"docs__article-toc\">\n <TableOfContents toc={props.toc} activeId={props.activeHeadingId} />\n </aside>\n ) : null}\n </div>\n </div>\n </main>\n </div>\n )\n}\n","/**\n * @module docsSolidCssEditButton\n * @package @geenius/docs/solidjs-css\n * @description Exposes the CSS-backed edit-link affordance for SolidJS docs\n * pages so hosts can route users to the source repository without Tailwind\n * utilities.\n */\n\nimport type { JSX } from 'solid-js'\n\nimport { cx } from '../lib/cx'\n\ninterface EditButtonProps {\n pageSlug: string\n editUrl?: string\n class?: string\n}\n\n/**\n * Renders the \"Edit this page\" link when source editing is configured.\n *\n * @param props - Page slug and optional base edit URL.\n * @returns The edit link or `null` when editing is disabled.\n */\nexport function EditButton(props: EditButtonProps): JSX.Element | null {\n if (!props.editUrl) {\n return null\n }\n\n const href = `${props.editUrl.replace(/\\/$/, '')}/${props.pageSlug}.mdx`\n\n return (\n <a\n href={href}\n target=\"_blank\"\n rel=\"noreferrer noopener\"\n class={cx('docs__edit-link', props.class)}\n >\n <svg aria-hidden=\"true\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" width=\"14\" height=\"14\">\n <path\n d=\"M11.5 1.5l3 3-9 9H2.5v-3l9-9z\"\n stroke-width=\"1.5\"\n stroke-linejoin=\"round\"\n />\n </svg>\n Edit this page\n </a>\n )\n}\n","/**\n * @module docsSolidCssPageNavigation\n * @package @geenius/docs/solidjs-css\n * @description Renders previous and next page affordances for the SolidJS CSS\n * docs variant using the shared vanilla CSS navigation classes.\n */\n\nimport type { JSX } from 'solid-js'\n\nimport { cx } from '../lib/cx'\n\ninterface PageNavigationProps {\n prev?: { title: string; href: string }\n next?: { title: string; href: string }\n class?: string\n}\n\n/**\n * Renders previous and next page links for the current article.\n *\n * @param props - Optional previous and next navigation links.\n * @returns Page navigation markup or `null` when neither link exists.\n */\nexport function PageNavigation(\n props: PageNavigationProps,\n): JSX.Element | null {\n if (!props.prev && !props.next) {\n return null\n }\n\n return (\n <nav class={cx('docs__page-nav', props.class)} aria-label=\"Page navigation\">\n {props.prev ? (\n <a href={props.prev.href} class=\"docs__page-nav-prev\">\n <span class=\"docs__page-nav-label\">Previous</span>\n <span class=\"docs__page-nav-title\">{props.prev.title}</span>\n </a>\n ) : (\n <div class=\"docs__page-nav-prev\" aria-hidden=\"true\" />\n )}\n {props.next ? (\n <a href={props.next.href} class=\"docs__page-nav-next\">\n <span class=\"docs__page-nav-label\">Next</span>\n <span class=\"docs__page-nav-title\">{props.next.title}</span>\n </a>\n ) : (\n <div class=\"docs__page-nav-next\" aria-hidden=\"true\" />\n )}\n </nav>\n )\n}\n","/**\n * @module docsSolidCssVersionSelector\n * @package @geenius/docs/solidjs-css\n * @description Provides the CSS-backed version selector for the SolidJS docs\n * variant using a native select for accessibility and low runtime overhead.\n */\n\nimport type { JSX } from 'solid-js'\nimport { For } from 'solid-js'\n\nimport { cx } from '../lib/cx'\n\ninterface VersionSelectorProps {\n versions: string[]\n current: string\n onSelect: (version: string) => void\n class?: string\n}\n\n/**\n * Renders a version switcher when multiple docs versions exist.\n *\n * @param props - Supported versions, the current version, and the selection callback.\n * @returns The version selector or `null` when only one version exists.\n */\nexport function VersionSelector(\n props: VersionSelectorProps,\n): JSX.Element | null {\n if (props.versions.length <= 1) {\n return null\n }\n\n return (\n <div class={cx('docs__version-selector', props.class)}>\n <select\n class=\"docs__version-select docs__version-select--active\"\n aria-label=\"Select documentation version\"\n value={props.current}\n onChange={(event) => props.onSelect(event.currentTarget.value)}\n >\n <For each={props.versions}>\n {(version: string) => <option value={version}>v{version}</option>}\n </For>\n </select>\n </div>\n )\n}\n","/**\n * @module docsSolidCssCreateDocSearch\n * @package @geenius/docs/solidjs-css\n * @description Implements debounced docs search state for the SolidJS CSS\n * variant so modal and page-level search flows share the same behavior.\n */\n\n\nimport type { SearchResult } from '@geenius/docs/shared'\nimport { type Accessor, createEffect, createSignal, onCleanup } from 'solid-js'\n\n/**\n * Search state returned by the SolidJS CSS docs search primitive.\n *\n * @property results - Accessor returning the current ranked search results.\n * @property isSearching - Accessor describing whether a search request is pending.\n * @property query - Accessor returning the active search query.\n * @property setQuery - Updates the active search query.\n * @property clearSearch - Resets the query, results, and loading state.\n */\nexport interface DocSearchState {\n results: Accessor<SearchResult[]>\n isSearching: Accessor<boolean>\n query: Accessor<string>\n setQuery: (query: string) => void\n clearSearch: () => void\n}\n\n/**\n * Debounces doc search calls for the SolidJS CSS variant.\n *\n * @param searchFn - Search function returning ranked docs results.\n * @param debounceMs - Delay before the search function executes.\n * @returns Search accessors and control helpers.\n */\nexport function createDocSearch(\n searchFn: (query: string) => SearchResult[] | Promise<SearchResult[]>,\n debounceMs = 250,\n): DocSearchState {\n const [query, setQuery] = createSignal('')\n const [results, setResults] = createSignal<SearchResult[]>([])\n const [isSearching, setIsSearching] = createSignal(false)\n\n createEffect(() => {\n const currentQuery = query()\n\n if (!currentQuery.trim()) {\n setResults([])\n setIsSearching(false)\n return\n }\n\n setIsSearching(true)\n\n const timer = window.setTimeout(async () => {\n try {\n const nextResults = await searchFn(currentQuery)\n setResults(nextResults)\n } catch {\n setResults([])\n } finally {\n setIsSearching(false)\n }\n }, debounceMs)\n\n onCleanup(() => window.clearTimeout(timer))\n })\n\n const clearSearch = (): void => {\n setQuery('')\n setResults([])\n setIsSearching(false)\n }\n\n return { results, isSearching, query, setQuery, clearSearch }\n}\n","/**\n * @module docsSolidCssDocSearchPage\n * @package @geenius/docs/solidjs-css\n * @description Renders the standalone SolidJS CSS full-page docs search\n * experience using local search results and vanilla CSS layouts.\n */\n\n\nimport type { DocPage, DocSection, SearchResult } from '@geenius/docs/shared'\nimport { buildDocsIndex, highlightMatch, searchDocs } from '@geenius/docs/shared'\nimport type { Accessor, JSX } from 'solid-js'\n\nimport { cx } from '../lib/cx'\nimport { createDocSearch } from '../primitives/createDocSearch'\n\ninterface DocSearchPageProps {\n tree: Accessor<(DocSection & { pages: DocPage[]; pageCount: number })[] | undefined>\n onSelectPage?: (page: DocPage, section: DocSection) => void\n class?: string\n}\n\n/**\n * Full-page search experience for the standalone SolidJS CSS docs variant.\n *\n * @param props - Docs tree accessor and an optional page selection callback.\n * @returns Full-page search UI for docs results.\n */\nexport function DocSearchPage(props: DocSearchPageProps): JSX.Element {\n const search = createDocSearch((query: string): SearchResult[] => {\n const sections = props.tree() ?? []\n const flatPages = sections.flatMap((section) => section.pages ?? [])\n const index = buildDocsIndex(flatPages, sections)\n return searchDocs(query, index)\n })\n\n if (props.tree() === undefined) {\n return (\n <div class={cx('docs__empty', props.class)} style={{ 'min-height': '100vh' }}>\n <div class=\"docs__skeleton\" style={{ width: '24rem', height: '3rem' }} />\n </div>\n )\n }\n\n const sections = props.tree() ?? []\n const flatPages = sections.flatMap((section) => section.pages ?? [])\n\n return (\n <div class={cx('docs__main', props.class)}>\n <div class=\"docs__content\">\n <div class=\"docs__content-inner\" style={{ display: 'block' }}>\n <header class=\"docs__header\">\n <h1 class=\"docs__title\">Search documentation</h1>\n </header>\n\n <div class=\"docs__search-page\">\n <input\n type=\"search\"\n value={search.query()}\n onInput={(event) => search.setQuery(event.currentTarget.value)}\n placeholder=\"Type to search\"\n class=\"docs__search-input\"\n aria-label=\"Search documentation\"\n />\n\n {search.isSearching() ? (\n <p class=\"docs__search-status\">Searching…</p>\n ) : null}\n\n {search.results().length > 0 ? (\n <div class=\"docs__search-page-results\">\n {search.results().map((result) => {\n const section = sections.find(\n (currentSection) => currentSection.slug === result.sectionSlug,\n )\n const page = flatPages.find(\n (currentPage) => currentPage.id === result.pageId,\n )\n\n return (\n <button\n type=\"button\"\n class=\"docs__search-result-item\"\n onClick={() => {\n if (page && section) {\n props.onSelectPage?.(page, section)\n }\n }}\n >\n <div class=\"docs__search-result-header\">\n <span class=\"docs__search-result-section\">\n {result.sectionTitle}\n </span>\n <strong class=\"docs__search-result-title\">\n {result.pageTitle}\n </strong>\n </div>\n <span class=\"docs__search-result-highlight\">\n {highlightMatch(result.highlight, search.query())}\n </span>\n </button>\n )\n })}\n </div>\n ) : search.query().trim() && !search.isSearching() ? (\n <div class=\"docs__empty\" style={{ 'min-height': '16rem' }}>\n <div class=\"docs__empty-icon\" aria-hidden=\"true\">🔍</div>\n <div class=\"docs__empty-title\">No results found</div>\n <div class=\"docs__empty-desc\">Try a different keyword or phrase.</div>\n </div>\n ) : null}\n </div>\n </div>\n </div>\n </div>\n )\n}\n","/**\n * @module docsSolidCssDocsAdminPage\n * @package @geenius/docs/solidjs-css\n * @description Renders the standalone SolidJS CSS admin surface for managing\n * docs sections and pages using the package-local vanilla CSS panel styles.\n */\n\n\nimport type { DocAccess, DocPage, DocSection } from '@geenius/docs/shared'\nimport type { Accessor, JSX } from 'solid-js'\nimport { createMemo, createSignal } from 'solid-js'\n\nimport { cx } from '../lib/cx'\nimport type { DocsAdminActions } from '../primitives/createDocsAdmin'\n\ninterface DocsAdminPageProps {\n tree: Accessor<(DocSection & { pages: DocPage[]; pageCount: number })[] | undefined>\n allPages?: DocPage[]\n admin: DocsAdminActions\n class?: string\n}\n\ninterface SectionForm {\n title: string\n slug: string\n description: string\n icon: string\n access: DocAccess\n}\n\ninterface PageForm {\n title: string\n slug: string\n content: string\n access: DocAccess\n tags: string\n}\n\nfunction toDocAccess(value: string): DocAccess {\n if (value === 'public' || value === 'team' || value === 'admin') {\n return value\n }\n\n return 'team'\n}\n\nfunction initialSectionForm(): SectionForm {\n return {\n title: '',\n slug: '',\n description: '',\n icon: '',\n access: 'team',\n }\n}\n\nfunction initialPageForm(): PageForm {\n return {\n title: '',\n slug: '',\n content: '',\n access: 'team',\n tags: '',\n }\n}\n\n/**\n * Admin page for section and page management in the SolidJS CSS variant.\n *\n * @param props - Tree data, optional page list, and admin actions.\n * @returns Admin UI for managing docs content.\n */\nexport function DocsAdminPage(props: DocsAdminPageProps): JSX.Element {\n const sections = createMemo(() => props.tree() ?? [])\n const [selectedSectionId, setSelectedSectionId] = createSignal<string | null>(null)\n const [showSectionForm, setShowSectionForm] = createSignal(false)\n const [showPageForm, setShowPageForm] = createSignal(false)\n const [sectionForm, setSectionForm] = createSignal<SectionForm>(initialSectionForm())\n const [pageForm, setPageForm] = createSignal<PageForm>(initialPageForm())\n\n const selectedSection = createMemo(() =>\n sections().find((section) => section.id === selectedSectionId()),\n )\n const sectionPages = createMemo(() => {\n const section = selectedSection()\n\n if (!section) {\n return []\n }\n\n if (props.allPages) {\n return props.allPages.filter((page) => page.sectionId === section.id)\n }\n\n return section.pages ?? []\n })\n const canCreateSection = createMemo(\n () =>\n sectionForm().title.trim().length > 0 &&\n sectionForm().slug.trim().length > 0,\n )\n const canCreatePage = createMemo(\n () =>\n pageForm().title.trim().length > 0 &&\n pageForm().slug.trim().length > 0 &&\n pageForm().content.trim().length > 0,\n )\n\n if (props.tree() === undefined) {\n return (\n <div class={cx('docs__empty', props.class)} style={{ 'min-height': '100vh' }}>\n <div class=\"docs__skeleton\" style={{ width: '24rem', height: '3rem' }} />\n </div>\n )\n }\n\n return (\n <div class={cx('docs__main', props.class)}>\n <div class=\"docs__content\">\n <div class=\"docs__content-inner\" style={{ display: 'block' }}>\n <header class=\"docs__header\">\n <h1 class=\"docs__title\">Docs admin</h1>\n </header>\n\n <div class=\"docs__admin-grid\">\n <section class=\"docs__admin-panel\">\n <div class=\"docs__admin-panel-header\">\n <h2 class=\"docs__admin-panel-title\">Sections</h2>\n <button\n type=\"button\"\n class=\"docs__admin-add-btn\"\n onClick={() => setShowSectionForm((value) => !value)}\n >\n Add section\n </button>\n </div>\n\n {showSectionForm() ? (\n <div class=\"docs__admin-form\">\n <label class=\"docs__admin-field\" for=\"docs-admin-section-title\">\n <span class=\"docs__admin-label\">Title</span>\n <input\n id=\"docs-admin-section-title\"\n class=\"docs__admin-input\"\n value={sectionForm().title}\n onInput={(event) =>\n setSectionForm((current) => ({\n ...current,\n title: event.currentTarget.value,\n }))\n }\n />\n </label>\n <label class=\"docs__admin-field\" for=\"docs-admin-section-slug\">\n <span class=\"docs__admin-label\">Slug</span>\n <input\n id=\"docs-admin-section-slug\"\n class=\"docs__admin-input\"\n value={sectionForm().slug}\n onInput={(event) =>\n setSectionForm((current) => ({\n ...current,\n slug: event.currentTarget.value,\n }))\n }\n />\n </label>\n <label class=\"docs__admin-field\" for=\"docs-admin-section-icon\">\n <span class=\"docs__admin-label\">Icon</span>\n <input\n id=\"docs-admin-section-icon\"\n class=\"docs__admin-input\"\n value={sectionForm().icon}\n onInput={(event) =>\n setSectionForm((current) => ({\n ...current,\n icon: event.currentTarget.value,\n }))\n }\n />\n </label>\n <label class=\"docs__admin-field\" for=\"docs-admin-section-description\">\n <span class=\"docs__admin-label\">Description</span>\n <input\n id=\"docs-admin-section-description\"\n class=\"docs__admin-input\"\n value={sectionForm().description}\n onInput={(event) =>\n setSectionForm((current) => ({\n ...current,\n description: event.currentTarget.value,\n }))\n }\n />\n </label>\n <label class=\"docs__admin-field\" for=\"docs-admin-section-access\">\n <span class=\"docs__admin-label\">Access</span>\n <select\n id=\"docs-admin-section-access\"\n class=\"docs__admin-input\"\n value={sectionForm().access}\n onChange={(event) =>\n setSectionForm((current) => ({\n ...current,\n access: toDocAccess(event.currentTarget.value),\n }))\n }\n >\n <option value=\"public\">Public</option>\n <option value=\"team\">Team</option>\n <option value=\"admin\">Admin</option>\n </select>\n </label>\n <div class=\"docs__admin-form-actions\">\n <button\n type=\"button\"\n class=\"docs__admin-add-btn\"\n disabled={!canCreateSection()}\n onClick={async () => {\n await props.admin.createSection({\n ...sectionForm(),\n order: sections().length,\n icon: sectionForm().icon || undefined,\n description: sectionForm().description || undefined,\n })\n setSectionForm(initialSectionForm())\n setShowSectionForm(false)\n }}\n >\n Create\n </button>\n <button\n type=\"button\"\n class=\"docs__admin-action-btn\"\n onClick={() => setShowSectionForm(false)}\n >\n Cancel\n </button>\n </div>\n </div>\n ) : null}\n\n {sections().length === 0 ? (\n <div class=\"docs__empty\" style={{ 'min-height': '14rem' }}>\n <div class=\"docs__empty-title\">No sections</div>\n <div class=\"docs__empty-desc\">\n Create the first section to start authoring documentation.\n </div>\n </div>\n ) : (\n sections().map((section) => (\n <button\n type=\"button\"\n class={\n section.id === selectedSectionId()\n ? 'docs__admin-section-item docs__admin-section-item--selected'\n : 'docs__admin-section-item'\n }\n onClick={() => setSelectedSectionId(section.id)}\n >\n {section.icon ? <span>{section.icon}</span> : null}\n <span class=\"docs__sidebar-section-title\">{section.title}</span>\n <span class=\"docs__sidebar-section-count\">\n {section.pageCount ?? 0}\n </span>\n </button>\n ))\n )}\n </section>\n\n <section class=\"docs__admin-panel\">\n <div class=\"docs__admin-panel-header\">\n <h2 class=\"docs__admin-panel-title\">\n {selectedSection() ? `Pages — ${selectedSection()?.title}` : 'Pages'}\n </h2>\n {selectedSection() ? (\n <button\n type=\"button\"\n class=\"docs__admin-add-btn\"\n onClick={() => setShowPageForm((value) => !value)}\n >\n Add page\n </button>\n ) : null}\n </div>\n\n {selectedSection() && showPageForm() ? (\n <div class=\"docs__admin-form\">\n <label class=\"docs__admin-field\" for=\"docs-admin-page-title\">\n <span class=\"docs__admin-label\">Title</span>\n <input\n id=\"docs-admin-page-title\"\n class=\"docs__admin-input\"\n value={pageForm().title}\n onInput={(event) =>\n setPageForm((current) => ({\n ...current,\n title: event.currentTarget.value,\n }))\n }\n />\n </label>\n <label class=\"docs__admin-field\" for=\"docs-admin-page-slug\">\n <span class=\"docs__admin-label\">Slug</span>\n <input\n id=\"docs-admin-page-slug\"\n class=\"docs__admin-input\"\n value={pageForm().slug}\n onInput={(event) =>\n setPageForm((current) => ({\n ...current,\n slug: event.currentTarget.value,\n }))\n }\n />\n </label>\n <label class=\"docs__admin-field\" for=\"docs-admin-page-content\">\n <span class=\"docs__admin-label\">Content</span>\n <textarea\n id=\"docs-admin-page-content\"\n class=\"docs__admin-input docs__admin-textarea\"\n value={pageForm().content}\n onInput={(event) =>\n setPageForm((current) => ({\n ...current,\n content: event.currentTarget.value,\n }))\n }\n />\n </label>\n <label class=\"docs__admin-field\" for=\"docs-admin-page-tags\">\n <span class=\"docs__admin-label\">Tags</span>\n <input\n id=\"docs-admin-page-tags\"\n class=\"docs__admin-input\"\n value={pageForm().tags}\n onInput={(event) =>\n setPageForm((current) => ({\n ...current,\n tags: event.currentTarget.value,\n }))\n }\n />\n </label>\n <label class=\"docs__admin-field\" for=\"docs-admin-page-access\">\n <span class=\"docs__admin-label\">Access</span>\n <select\n id=\"docs-admin-page-access\"\n class=\"docs__admin-input\"\n value={pageForm().access}\n onChange={(event) =>\n setPageForm((current) => ({\n ...current,\n access: toDocAccess(event.currentTarget.value),\n }))\n }\n >\n <option value=\"public\">Public</option>\n <option value=\"team\">Team</option>\n <option value=\"admin\">Admin</option>\n </select>\n </label>\n <div class=\"docs__admin-form-actions\">\n <button\n type=\"button\"\n class=\"docs__admin-add-btn\"\n disabled={!canCreatePage()}\n onClick={async () => {\n const section = selectedSection()\n\n if (!section) {\n return\n }\n\n await props.admin.createPage({\n title: pageForm().title,\n slug: pageForm().slug,\n content: pageForm().content,\n sectionId: section.id,\n access: pageForm().access,\n tags: pageForm().tags\n ? pageForm().tags.split(',').map((tag) => tag.trim())\n : [],\n order: sectionPages().length,\n })\n setPageForm(initialPageForm())\n setShowPageForm(false)\n }}\n >\n Create\n </button>\n <button\n type=\"button\"\n class=\"docs__admin-action-btn\"\n onClick={() => setShowPageForm(false)}\n >\n Cancel\n </button>\n </div>\n </div>\n ) : null}\n\n {!selectedSection() ? (\n <div class=\"docs__empty\" style={{ 'min-height': '14rem' }}>\n <div class=\"docs__empty-title\">Select a section</div>\n <div class=\"docs__empty-desc\">\n Pick a section to inspect or create docs pages.\n </div>\n </div>\n ) : sectionPages().length === 0 ? (\n <div class=\"docs__empty\" style={{ 'min-height': '14rem' }}>\n <div class=\"docs__empty-title\">No pages in this section</div>\n <div class=\"docs__empty-desc\">\n Add the first page to begin writing content.\n </div>\n </div>\n ) : (\n sectionPages().map((page) => (\n <div class=\"docs__admin-page-item\">\n <div class=\"docs__admin-page-info\">\n <div class=\"docs__admin-page-title\">{page.title}</div>\n <div class=\"docs__admin-page-slug\">/{page.slug}</div>\n </div>\n <span\n class={\n page.status === 'published'\n ? 'docs__status-badge docs__status-badge--published'\n : page.status === 'archived'\n ? 'docs__status-badge docs__status-badge--archived'\n : 'docs__status-badge docs__status-badge--draft'\n }\n >\n {page.status}\n </span>\n <div class=\"docs__admin-actions\">\n {page.status === 'draft' ? (\n <button\n type=\"button\"\n class=\"docs__admin-action-btn docs__admin-action-btn--publish\"\n onClick={() => props.admin.publishPage(page.id)}\n >\n Publish\n </button>\n ) : null}\n {page.status === 'published' ? (\n <button\n type=\"button\"\n class=\"docs__admin-action-btn docs__admin-action-btn--archive\"\n onClick={() => props.admin.archivePage(page.id)}\n >\n Archive\n </button>\n ) : null}\n <button\n type=\"button\"\n class=\"docs__admin-action-btn docs__admin-action-btn--delete\"\n onClick={() => props.admin.deletePage(page.id)}\n >\n Delete\n </button>\n </div>\n </div>\n ))\n )}\n </section>\n </div>\n </div>\n </div>\n </div>\n )\n}\n","/**\n * @module docsSolidCssCreateDocs\n * @package @geenius/docs/solidjs-css\n * @description Provides the SolidJS CSS docs state primitive that mirrors the\n * Tailwind SolidJS surface while staying local to the CSS package.\n */\n\n\nimport {\n type DocPage,\n type DocSection,\n type DocsConfig,\n defaultDocsConfig,\n} from '@geenius/docs/shared'\nimport { type Accessor, createMemo, createSignal } from 'solid-js'\n\n/**\n * Aggregate docs state returned by the SolidJS CSS docs primitive.\n *\n * @property sections - Accessor returning the normalized docs sections.\n * @property currentSection - Accessor for the currently selected section.\n * @property setSection - Updates the selected section and resets the page selection.\n * @property currentPage - Accessor for the currently selected page.\n * @property setPage - Updates the selected page.\n * @property searchQuery - Accessor for the active docs search query.\n * @property setSearchQuery - Updates the active docs search query.\n * @property isLoading - Accessor describing whether the tree is still unresolved.\n * @property config - Accessor returning the merged docs configuration.\n * @property flatPages - Accessor returning the flattened page list.\n */\nexport interface DocsState {\n sections: Accessor<(DocSection & { pages: DocPage[]; pageCount: number })[]>\n currentSection: Accessor<DocSection | null>\n setSection: (section: DocSection | null) => void\n currentPage: Accessor<DocPage | null>\n setPage: (page: DocPage | null) => void\n searchQuery: Accessor<string>\n setSearchQuery: (query: string) => void\n isLoading: Accessor<boolean>\n config: Accessor<DocsConfig>\n flatPages: Accessor<DocPage[]>\n}\n\n/**\n * Resolves docs tree state for the SolidJS CSS variant.\n *\n * @param tree - Accessor returning the docs tree or `undefined` while loading.\n * @param config - Optional runtime config overrides.\n * @returns Accessors and setters describing the current docs state.\n */\nexport function createDocs(\n tree: Accessor<(DocSection & { pages: DocPage[]; pageCount: number })[] | undefined>,\n config?: Partial<DocsConfig>,\n): DocsState {\n const [currentSection, setCurrentSection] = createSignal<DocSection | null>(null)\n const [currentPage, setCurrentPage] = createSignal<DocPage | null>(null)\n const [searchQuery, setSearchQuery] = createSignal('')\n\n const mergedConfig = createMemo<DocsConfig>(() => ({\n ...defaultDocsConfig,\n ...config,\n }))\n const sections = createMemo(\n () => tree() ?? [],\n )\n const flatPages = createMemo(() =>\n sections().flatMap((section) => section.pages ?? []),\n )\n const isLoading = createMemo(() => tree() === undefined)\n\n const handleSetSection = (section: DocSection | null): void => {\n setCurrentSection(section)\n setCurrentPage(null)\n }\n\n return {\n sections,\n currentSection,\n setSection: handleSetSection,\n currentPage,\n setPage: setCurrentPage,\n searchQuery,\n setSearchQuery,\n isLoading,\n config: mergedConfig,\n flatPages,\n }\n}\n","/**\n * @module docsSolidCssDocsIndexPage\n * @package @geenius/docs/solidjs-css\n * @description Renders the SolidJS CSS docs landing page with section cards,\n * recent pages, and a package-local search trigger.\n */\n\n\nimport type { DocPage, DocSection, SearchResult } from '@geenius/docs/shared'\nimport { buildDocsIndex, searchDocs } from '@geenius/docs/shared'\nimport type { Accessor, JSX } from 'solid-js'\nimport { createEffect, createMemo, createSignal, onCleanup } from 'solid-js'\n\nimport { DocSearch } from '../components/DocSearch'\nimport { cx } from '../lib/cx'\nimport { createDocSearch } from '../primitives/createDocSearch'\nimport { createDocs } from '../primitives/createDocs'\n\ninterface DocsIndexPageProps {\n tree: Accessor<(DocSection & { pages: DocPage[]; pageCount: number })[] | undefined>\n onSelectPage?: (page: DocPage, section: DocSection) => void\n class?: string\n}\n\n/**\n * Landing page for the standalone SolidJS CSS docs experience.\n *\n * @param props - Docs tree plus an optional page selection handler.\n * @returns Landing page UI for the SolidJS CSS docs variant.\n */\nexport function DocsIndexPage(props: DocsIndexPageProps): JSX.Element {\n const docs = createDocs(props.tree)\n const [isSearchOpen, setIsSearchOpen] = createSignal(false)\n\n const recentPages = createMemo(() =>\n docs.flatPages()\n .slice()\n .sort(\n (left, right) =>\n new Date(right.updatedAt).getTime() - new Date(left.updatedAt).getTime(),\n )\n .slice(0, 6),\n )\n\n const search = createDocSearch((query: string): SearchResult[] => {\n const index = buildDocsIndex(docs.flatPages(), docs.sections())\n return searchDocs(query, index)\n })\n\n createEffect(() => {\n const handleKeydown = (event: KeyboardEvent): void => {\n if (\n docs.config().cmdKEnabled &&\n (event.metaKey || event.ctrlKey) &&\n event.key.toLowerCase() === 'k'\n ) {\n event.preventDefault()\n setIsSearchOpen(true)\n }\n }\n\n document.addEventListener('keydown', handleKeydown)\n onCleanup(() => document.removeEventListener('keydown', handleKeydown))\n })\n\n if (docs.isLoading()) {\n return (\n <div class={cx('docs__empty', props.class)} style={{ 'min-height': '100vh' }}>\n <div class=\"docs__skeleton\" style={{ width: '24rem', height: '3rem' }} />\n </div>\n )\n }\n\n if (docs.sections().length === 0) {\n return (\n <div class={cx('docs__empty', props.class)} style={{ 'min-height': '100vh' }}>\n <div class=\"docs__empty-icon\" aria-hidden=\"true\">📚</div>\n <div class=\"docs__empty-title\">No documentation yet</div>\n <div class=\"docs__empty-desc\">\n Create a section and at least one page to populate the docs index.\n </div>\n </div>\n )\n }\n\n return (\n <div class={cx('docs__main', props.class)}>\n <div class=\"docs__content\">\n <div class=\"docs__content-inner\" style={{ display: 'block' }}>\n <header class=\"docs__header\">\n <h1 class=\"docs__title\">Documentation</h1>\n <p>\n Browse guides, references, and implementation notes across the docs\n workspace.\n </p>\n </header>\n\n <div class=\"docs__search-bar\">\n <button\n type=\"button\"\n class=\"docs__search-trigger\"\n aria-haspopup=\"dialog\"\n onClick={() => setIsSearchOpen(true)}\n >\n <svg\n class=\"docs__search-trigger-icon\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n aria-hidden=\"true\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M9 3.5a5.5 5.5 0 100 11 5.5 5.5 0 000-11zM2 9a7 7 0 1112.452 4.391l3.328 3.329a.75.75 0 11-1.06 1.06l-3.329-3.328A7 7 0 012 9z\"\n clip-rule=\"evenodd\"\n />\n </svg>\n <span class=\"docs__search-trigger-text\">Search documentation…</span>\n <span class=\"docs__search-trigger-kbd\">⌘K</span>\n </button>\n </div>\n\n <div class=\"docs__section-grid\">\n {docs.sections()\n .filter((section) => !section.parentId)\n .map((section) => (\n <button\n type=\"button\"\n class=\"docs__section-card\"\n onClick={() => {\n const firstPage = section.pages?.[0]\n if (firstPage) {\n props.onSelectPage?.(firstPage, section)\n }\n }}\n >\n {section.icon ? (\n <span class=\"docs__section-card-icon\" aria-hidden=\"true\">\n {section.icon}\n </span>\n ) : null}\n <span class=\"docs__section-card-title\">{section.title}</span>\n {section.description ? (\n <span class=\"docs__section-card-desc\">{section.description}</span>\n ) : null}\n <span class=\"docs__section-card-meta\">\n {section.pageCount ?? section.pages?.length ?? 0} pages\n </span>\n </button>\n ))}\n </div>\n\n {recentPages().length > 0 ? (\n <>\n <h2>Recently updated</h2>\n <div class=\"docs__section-grid\">\n {recentPages().map((page) => {\n const section = docs.sections().find(\n (currentSection) => currentSection.id === page.sectionId,\n )\n\n return (\n <button\n type=\"button\"\n class=\"docs__section-card\"\n onClick={() => {\n if (section) {\n props.onSelectPage?.(page, section)\n }\n }}\n >\n <span class=\"docs__section-card-title\">{page.title}</span>\n <span class=\"docs__section-card-desc\">\n {section?.title ?? 'Unsectioned'}\n </span>\n <span class=\"docs__section-card-meta\">\n {page.readingTime} min read\n </span>\n </button>\n )\n })}\n </div>\n </>\n ) : null}\n </div>\n </div>\n\n <DocSearch\n results={search.results()}\n query={search.query()}\n onQuery={search.setQuery}\n onSelect={(result) => {\n setIsSearchOpen(false)\n search.clearSearch()\n\n const section = docs.sections().find(\n (currentSection) => currentSection.slug === result.sectionSlug,\n )\n const page = docs.flatPages().find(\n (currentPage) => currentPage.id === result.pageId,\n )\n\n if (page && section) {\n props.onSelectPage?.(page, section)\n }\n }}\n isOpen={isSearchOpen()}\n onClose={() => {\n setIsSearchOpen(false)\n search.clearSearch()\n }}\n />\n </div>\n )\n}\n","/**\n * @module docsSolidCssCreateTableOfContents\n * @package @geenius/docs/solidjs-css\n * @description Tracks extracted headings and the active article anchor for the\n * SolidJS CSS docs variant.\n */\n\n\nimport { extractToc, type TocItem } from '@geenius/docs/shared'\nimport {\n type Accessor,\n createEffect,\n createMemo,\n createSignal,\n onCleanup,\n} from 'solid-js'\n\n/**\n * Table-of-contents state returned by the SolidJS CSS docs TOC primitive.\n *\n * @property toc - Accessor returning the extracted heading tree.\n * @property activeId - Accessor returning the currently active heading id.\n * @property setActiveId - Updates the currently active heading id.\n */\nexport interface TableOfContentsState {\n toc: Accessor<TocItem[]>\n activeId: Accessor<string>\n setActiveId: (id: string) => void\n}\n\n/**\n * Extracts a page TOC and tracks the active heading.\n *\n * @param mdxContent - Accessor returning the markdown content to observe.\n * @returns Extracted TOC entries and the current active heading id.\n */\nexport function createTableOfContents(\n mdxContent: Accessor<string | undefined>,\n): TableOfContentsState {\n const [activeId, setActiveId] = createSignal('')\n\n const toc = createMemo<TocItem[]>(() => {\n const content = mdxContent()\n\n if (!content) {\n return []\n }\n\n return extractToc(content)\n })\n\n const flatIds = createMemo(() => {\n const ids: string[] = []\n\n const collect = (items: TocItem[]): void => {\n for (const item of items) {\n ids.push(item.id)\n collect(item.children)\n }\n }\n\n collect(toc())\n return ids\n })\n\n createEffect(() => {\n const ids = flatIds()\n\n if (ids.length === 0) {\n return\n }\n\n const observer = new IntersectionObserver(\n (entries) => {\n for (const entry of entries) {\n if (entry.isIntersecting) {\n setActiveId(entry.target.id)\n break\n }\n }\n },\n {\n rootMargin: '-80px 0px -70% 0px',\n threshold: 0,\n },\n )\n\n for (const id of ids) {\n const element = document.getElementById(id)\n\n if (element) {\n observer.observe(element)\n }\n }\n\n onCleanup(() => observer.disconnect())\n })\n\n return { toc, activeId, setActiveId }\n}\n","/**\n * @module docsSolidCssDocViewPage\n * @package @geenius/docs/solidjs-css\n * @description Renders the SolidJS CSS docs detail page with local layout, TOC\n * tracking, navigation footer, and metadata presentation.\n */\n\n\nimport type { DocPage as DocPageType, DocSection } from '@geenius/docs/shared'\nimport { buildBreadcrumbs } from '@geenius/docs/shared'\nimport type { Accessor, JSX } from 'solid-js'\nimport { createEffect, createMemo } from 'solid-js'\n\nimport { DocPage } from '../components/DocPage'\nimport { DocsLayout } from '../components/DocsLayout'\nimport { EditButton } from '../components/EditButton'\nimport { PageNavigation } from '../components/PageNavigation'\nimport { cx } from '../lib/cx'\nimport { createDocs } from '../primitives/createDocs'\nimport { createTableOfContents } from '../primitives/createTableOfContents'\n\ninterface DocViewPageProps {\n tree: Accessor<(DocSection & { pages: DocPageType[]; pageCount: number })[] | undefined>\n page: Accessor<DocPageType | null | undefined>\n editPageUrl?: string\n onNavigate: (page: DocPageType, section: DocSection) => void\n onIncrementView?: (pageId: string) => void\n class?: string\n}\n\n/**\n * Page view for the standalone SolidJS CSS docs variant.\n *\n * @param props - Docs tree, selected page accessor, and page-level event handlers.\n * @returns Detailed page view or an appropriate empty/loading state.\n */\nexport function DocViewPage(props: DocViewPageProps): JSX.Element {\n const docs = createDocs(props.tree)\n const tocState = createTableOfContents(() => props.page()?.content)\n\n createEffect(() => {\n const page = props.page()\n\n if (page?.id) {\n props.onIncrementView?.(page.id)\n }\n })\n\n const breadcrumbs = createMemo(() => {\n const page = props.page()\n\n if (!page) {\n return []\n }\n\n return buildBreadcrumbs(docs.sections(), page.sectionId, page.slug)\n })\n\n const navigation = createMemo(() => {\n const page = props.page()\n\n if (!page) {\n return { prev: undefined, next: undefined }\n }\n\n const flatPages = docs.flatPages()\n const currentIndex = flatPages.findIndex(\n (currentPage) => currentPage.id === page.id,\n )\n const prevPage = currentIndex > 0 ? flatPages[currentIndex - 1] : undefined\n const nextPage =\n currentIndex >= 0 && currentIndex < flatPages.length - 1\n ? flatPages[currentIndex + 1]\n : undefined\n const prevSection = prevPage\n ? docs.sections().find((section) => section.id === prevPage.sectionId)\n : undefined\n const nextSection = nextPage\n ? docs.sections().find((section) => section.id === nextPage.sectionId)\n : undefined\n\n return {\n prev: prevPage\n ? {\n title: prevPage.title,\n href: `/docs/${prevSection?.slug ?? ''}/${prevPage.slug}`,\n }\n : undefined,\n next: nextPage\n ? {\n title: nextPage.title,\n href: `/docs/${nextSection?.slug ?? ''}/${nextPage.slug}`,\n }\n : undefined,\n }\n })\n\n if (docs.isLoading() || props.page() === undefined) {\n return (\n <div class={cx('docs__empty', props.class)} style={{ 'min-height': '100vh' }}>\n <div class=\"docs__skeleton\" style={{ width: '24rem', height: '3rem' }} />\n </div>\n )\n }\n\n const page = props.page()\n\n if (!page) {\n return (\n <div class={cx('docs__empty', props.class)} style={{ 'min-height': '100vh' }}>\n <div class=\"docs__empty-icon\" aria-hidden=\"true\">🔍</div>\n <div class=\"docs__empty-title\">Page not found</div>\n <div class=\"docs__empty-desc\">\n The requested documentation page could not be resolved.\n </div>\n </div>\n )\n }\n\n return (\n <DocsLayout\n sections={docs.sections()}\n toc={tocState.toc()}\n activeHeadingId={tocState.activeId()}\n breadcrumbs={breadcrumbs()}\n currentPageId={page.id}\n onNavigate={props.onNavigate}\n class={props.class}\n >\n <header class=\"docs__page-header\">\n <h1 class=\"docs__page-title\">{page.title}</h1>\n <div class=\"docs__reading-meta\">\n <span class=\"docs__reading-meta-author\">\n {page.author.avatar ? (\n <img src={page.author.avatar} alt=\"\" class=\"docs__reading-meta-avatar\" />\n ) : (\n <span class=\"docs__reading-meta-avatar-placeholder\">\n {page.author.name[0]}\n </span>\n )}\n {page.author.name}\n </span>\n {docs.config().showReadingTime ? <span>{page.readingTime} min read</span> : null}\n {page.lastEditedBy ? <span>Edited by {page.lastEditedBy.name}</span> : null}\n {docs.config().showViewCount && page.viewCount > 0 ? (\n <span>{page.viewCount.toLocaleString()} views</span>\n ) : null}\n </div>\n {page.tags.length > 0 ? (\n <div class=\"docs__tag-list\">\n {page.tags.map((tag) => (\n <span class=\"docs__tag docs__tag--badge\">{tag}</span>\n ))}\n </div>\n ) : null}\n </header>\n\n <DocPage page={page} />\n\n <div class=\"docs__page-footer\">\n <EditButton pageSlug={page.slug} editUrl={props.editPageUrl} />\n {page.version ? <span>v{page.version}</span> : null}\n </div>\n\n <PageNavigation prev={navigation().prev} next={navigation().next} />\n </DocsLayout>\n )\n}\n","/**\n * @module docsSolidCssCreateDocsAdmin\n * @package @geenius/docs/solidjs-css\n * @description Adapts transport-level docs admin mutations into stable\n * SolidJS-friendly callbacks for the CSS variant.\n */\n\n/**\n * Stable docs admin actions exposed by the SolidJS CSS package.\n */\nexport interface DocsAdminActions {\n createSection: (data: {\n title: string\n slug: string\n parentId?: string\n order: number\n icon?: string\n description?: string\n access: 'public' | 'team' | 'admin'\n }) => Promise<void>\n updateSection: (sectionId: string, data: Record<string, unknown>) => Promise<void>\n deleteSection: (sectionId: string) => Promise<void>\n reorderSections: (sectionIds: string[]) => Promise<void>\n createPage: (data: {\n title: string\n slug: string\n content: string\n sectionId: string\n access: 'public' | 'team' | 'admin'\n tags?: string[]\n version?: string\n status?: 'draft' | 'published' | 'archived'\n author?: { name: string; avatar?: string }\n excerpt?: string\n order?: number\n }) => Promise<void>\n updatePage: (pageId: string, data: Record<string, unknown>) => Promise<void>\n publishPage: (pageId: string) => Promise<void>\n archivePage: (pageId: string) => Promise<void>\n deletePage: (pageId: string) => Promise<void>\n reorderPages: (pageIds: string[]) => Promise<void>\n movePage: (pageId: string, newSectionId: string, newOrder: number) => Promise<void>\n}\n\n/**\n * Creates stable admin callbacks from low-level transport mutations.\n *\n * @param mutations - Mutation handlers provided by the consuming app.\n * @returns Stable admin actions for docs authoring flows.\n */\nexport function createDocsAdmin(mutations: {\n createSection: (args: Record<string, unknown>) => Promise<unknown>\n updateSection: (args: Record<string, unknown>) => Promise<unknown>\n deleteSection: (args: Record<string, unknown>) => Promise<unknown>\n reorderSections: (args: Record<string, unknown>) => Promise<unknown>\n createPage: (args: Record<string, unknown>) => Promise<unknown>\n updatePage: (args: Record<string, unknown>) => Promise<unknown>\n publishPage: (args: Record<string, unknown>) => Promise<unknown>\n archivePage: (args: Record<string, unknown>) => Promise<unknown>\n deletePage: (args: Record<string, unknown>) => Promise<unknown>\n reorderPages: (args: Record<string, unknown>) => Promise<unknown>\n movePage: (args: Record<string, unknown>) => Promise<unknown>\n}): DocsAdminActions {\n return {\n createSection: async (data) => {\n await mutations.createSection(data)\n },\n updateSection: async (sectionId, data) => {\n await mutations.updateSection({ sectionId, ...data })\n },\n deleteSection: async (sectionId) => {\n await mutations.deleteSection({ sectionId })\n },\n reorderSections: async (sectionIds) => {\n await mutations.reorderSections({ sectionIds })\n },\n createPage: async (data) => {\n await mutations.createPage(data)\n },\n updatePage: async (pageId, data) => {\n await mutations.updatePage({ pageId, ...data })\n },\n publishPage: async (pageId) => {\n await mutations.publishPage({ pageId })\n },\n archivePage: async (pageId) => {\n await mutations.archivePage({ pageId })\n },\n deletePage: async (pageId) => {\n await mutations.deletePage({ pageId })\n },\n reorderPages: async (pageIds) => {\n await mutations.reorderPages({ pageIds })\n },\n movePage: async (pageId, newSectionId, newOrder) => {\n await mutations.movePage({ pageId, newSectionId, newOrder })\n },\n }\n}\n"]}
|