boltdocs 3.3.4 → 3.3.6

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.
Files changed (79) hide show
  1. package/dist/{build-COgv-rkY.mjs → build-BJnL-FHG.mjs} +1 -1
  2. package/dist/{build-1CsvBIsN.cjs → build-CxT38vPv.cjs} +1 -1
  3. package/dist/client/index.cjs +80 -32
  4. package/dist/client/index.d.cts +1 -1
  5. package/dist/client/index.d.ts +1 -1
  6. package/dist/client/index.js +78 -31
  7. package/dist/client/mdx.cjs +1 -1
  8. package/dist/client/mdx.js +1 -1
  9. package/dist/client/primitives.cjs +4 -4
  10. package/dist/client/primitives.d.cts +40 -9
  11. package/dist/client/primitives.d.ts +40 -9
  12. package/dist/client/primitives.js +4 -4
  13. package/dist/config-B3_iVsbi.mjs +7 -0
  14. package/dist/{config-PLvresCv.cjs → config-BC_qhXws.cjs} +1 -1
  15. package/dist/config-BJp3lGzE.cjs +7 -0
  16. package/dist/{dev-C_9iBwmu.cjs → dev-46NiL0MC.cjs} +1 -1
  17. package/dist/{dev-UWVM3ah-.mjs → dev-C4kjO5xs.mjs} +1 -1
  18. package/dist/{docs-layout-CbZ7LDRe.js → docs-layout-D3Fmb0Wd.js} +16 -117
  19. package/dist/{docs-layout-vzfXed1Q.cjs → docs-layout-SgphExoE.cjs} +16 -123
  20. package/dist/{doctor-DMECtdK6.cjs → doctor-BqxOFRt3.cjs} +1 -1
  21. package/dist/{doctor-i8Qmd8DJ.mjs → doctor-Cv5lXnay.mjs} +1 -1
  22. package/dist/{doctor-FuFY1jBz.cjs → doctor-TS3JGNEU.cjs} +1 -1
  23. package/dist/{image-B-NDSDuY.js → image-BAiDReNd.js} +1 -1
  24. package/dist/{image-Hnaa2bJd.cjs → image-Bkx85rsq.cjs} +1 -1
  25. package/dist/{index-Cg3TmXIZ.d.ts → index-B1Mx0dHl.d.ts} +30 -6
  26. package/dist/{index-CSiMUBhC.d.cts → index-DLaHgD-i.d.cts} +30 -6
  27. package/dist/{link-vZjmD-es.cjs → link-hLWOsx0x.cjs} +59 -28
  28. package/dist/{link-CgdI6O2o.js → link-q1qHNGK_.js} +54 -29
  29. package/dist/{mdx-BRT71V5Q.js → mdx-CJGWzBGy.js} +2 -2
  30. package/dist/{mdx-D0Absdq5.cjs → mdx-Qi0DmaY8.cjs} +2 -2
  31. package/dist/node/cli-entry.cjs +1 -1
  32. package/dist/node/cli-entry.mjs +1 -1
  33. package/dist/node/highlight.d.cts +2 -2
  34. package/dist/node/highlight.d.mts +2 -2
  35. package/dist/node/index.cjs +1 -1
  36. package/dist/node/index.d.cts +7 -4
  37. package/dist/node/index.d.mts +7 -4
  38. package/dist/node/index.mjs +1 -1
  39. package/dist/node/mdx/shiki-adapter.cjs +1 -1
  40. package/dist/node/mdx/shiki-adapter.d.cts +7 -2
  41. package/dist/node/mdx/shiki-adapter.d.mts +7 -2
  42. package/dist/node/mdx/shiki-adapter.mjs +1 -1
  43. package/dist/node-7Cfw6nMr.cjs +23 -0
  44. package/dist/node-CT2E84nY.mjs +23 -0
  45. package/dist/{package-Cwma8oO7.cjs → package-Bah2tHjK.cjs} +1 -1
  46. package/dist/{package-CKC-4LtU.mjs → package-D6bf68FR.mjs} +1 -1
  47. package/dist/plugin-AgNI3ktz.cjs +69 -0
  48. package/dist/plugin-BAv_pYLt.mjs +69 -0
  49. package/dist/{plugin-context-BxF88sW4.cjs → plugin-context-BZs5lvDu.cjs} +3 -3
  50. package/dist/{plugin-context-BKK-nfOd.mjs → plugin-context-b5qVVQSU.mjs} +2 -2
  51. package/dist/{plugin-lifecycle-BjMclfc3.cjs → plugin-lifecycle-s89gzTlh.cjs} +1 -1
  52. package/dist/{registry-BbB6NqSv.d.cts → registry-B8pt41zj.d.cts} +1 -1
  53. package/dist/{registry-sJqDv0kE.d.mts → registry-BrrH2X9c.d.mts} +1 -1
  54. package/dist/routes-CzhKOw67.cjs +6 -0
  55. package/dist/{routes-C3_w9fLX.cjs → routes-Dq_2EUIB.cjs} +1 -1
  56. package/dist/routes-Dw6g0bfF.mjs +6 -0
  57. package/dist/search-dialog-BYZS9aeO.cjs +747 -0
  58. package/dist/{search-dialog-x_qHU8ty.cjs → search-dialog-CguKVtUu.cjs} +145 -5
  59. package/dist/{search-dialog-MmwxFMmE.js → search-dialog-DQwod5Xc.js} +1 -1
  60. package/dist/search-dialog-DzObE-Ar.js +717 -0
  61. package/dist/{search-dialog-DmirOMPg.cjs → search-dialog-QgKRRbsI.cjs} +1 -1
  62. package/dist/{search-dialog-BqkzDTq2.js → search-dialog-mYnqU4v7.js} +134 -6
  63. package/dist/{types-Db6zToZH.d.mts → types-74i_xUe2.d.mts} +1 -1
  64. package/dist/{types-o7iZ2BAR.d.cts → types-X_Pwk8Cg.d.cts} +1 -1
  65. package/dist/virtual-modules-C3S3Nz8r.cjs +40 -0
  66. package/dist/virtual-modules-CaxqrFd6.mjs +40 -0
  67. package/package.json +4 -3
  68. package/dist/config-CrsQJHQz.cjs +0 -7
  69. package/dist/config-DC0nMMk7.mjs +0 -7
  70. package/dist/node-C3HctGaH.cjs +0 -23
  71. package/dist/node-CUiheODn.mjs +0 -23
  72. package/dist/plugin-BX6TXR8x.cjs +0 -69
  73. package/dist/plugin-C8UMIA-4.mjs +0 -69
  74. package/dist/routes-C0kb4ue6.cjs +0 -6
  75. package/dist/routes-C4wrLWwu.mjs +0 -6
  76. package/dist/search-dialog-D3jtaw6w.cjs +0 -525
  77. package/dist/search-dialog-DRiXejws.js +0 -501
  78. package/dist/virtual-modules-XBiJoTsp.mjs +0 -39
  79. package/dist/virtual-modules-hndVivLR.cjs +0 -39
@@ -1,6 +1,6 @@
1
1
 
2
2
  import { ft as BoltdocsRoutePathWithFallback } from "../index-CuNSD3E2.js";
3
- import { $ as SidebarItem, J as Sidebar, Q as SidebarHeader, X as SidebarGroup, Y as SidebarContent, Z as SidebarGroupRenderProps, at as SidebarLinkProps, ct as SidebarSlots, et as SidebarItemProps, it as SidebarLink, lt as SidebarSubGroup, nt as SidebarItems, ot as SidebarMobile, qt as NavbarLink$1, rt as SidebarItemsProps, st as SidebarRoot, tt as SidebarItemRenderProps, ut as ComponentBase } from "../index-Cg3TmXIZ.js";
3
+ import { $ as SidebarItem, J as Sidebar, Q as SidebarHeader, X as SidebarGroup, Y as SidebarContent, Z as SidebarGroupRenderProps, at as SidebarLinkProps, ct as SidebarSlots, et as SidebarItemProps, it as SidebarLink, lt as SidebarSubGroup, nt as SidebarItems, ot as SidebarMobile, qt as NavbarLink$1, rt as SidebarItemsProps, st as SidebarRoot, tt as SidebarItemRenderProps, ut as ComponentBase } from "../index-B1Mx0dHl.js";
4
4
  import { a as CalloutRoot, c as CalloutTitleProps, i as CalloutProps, l as CalloutVariant, n as CalloutBody, o as CalloutRootProps, r as CalloutIcon, s as CalloutTitle, t as Callout } from "../callout-oI_LCbxS.js";
5
5
  import * as _$react from "react";
6
6
  import { CSSProperties, Component, ComponentProps, ComponentType, ErrorInfo, FC, HTMLAttributes, ImgHTMLAttributes, ReactNode, Ref, RefObject } from "react";
@@ -93,8 +93,16 @@ declare namespace Tabs {
93
93
  }
94
94
  declare function TabsList({
95
95
  children,
96
- className
97
- }: ComponentBase): _$react_jsx_runtime0.JSX.Element;
96
+ className,
97
+ role
98
+ }: ComponentBase & {
99
+ /**
100
+ * Pass `null` when the "tabs" are plain navigation links (e.g. section
101
+ * tabs rendered as anchors): an ARIA `tablist` requires `tab` children and
102
+ * breaks otherwise. Omit to get the standard widget role.
103
+ */
104
+ role?: string | null;
105
+ }): _$react_jsx_runtime0.JSX.Element;
98
106
  declare function TabsItem({
99
107
  children,
100
108
  id,
@@ -183,8 +191,11 @@ declare function AnchorProvider({
183
191
  }: AnchorProviderProps): _$react_jsx_runtime0.JSX.Element;
184
192
  declare function OnThisPage({
185
193
  children,
186
- className
187
- }: ComponentBase): _$react_jsx_runtime0.JSX.Element;
194
+ className,
195
+ label
196
+ }: ComponentBase & {
197
+ /** Accessible name for the TOC nav landmark. */label?: string;
198
+ }): _$react_jsx_runtime0.JSX.Element;
188
199
  declare namespace OnThisPage {
189
200
  var Root: typeof OnThisPage;
190
201
  var Header: typeof OnThisPageHeader;
@@ -525,6 +536,12 @@ interface ErrorBoundaryProps {
525
536
  FallbackComponent?: ComponentType<FallbackProps>;
526
537
  onError?: (error: Error, info: ErrorInfo) => void;
527
538
  onReset?: () => void;
539
+ /**
540
+ * When any of these values change, a caught error is automatically
541
+ * reset (e.g. pass the current route path so navigation clears stale
542
+ * render errors).
543
+ */
544
+ resetKeys?: unknown[];
528
545
  }
529
546
  interface ErrorBoundaryState {
530
547
  hasError: boolean;
@@ -535,6 +552,8 @@ declare class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryS
535
552
  static getDerivedStateFromError(error: Error): ErrorBoundaryState;
536
553
  componentDidCatch(error: Error, errorInfo: ErrorInfo): void;
537
554
  resetErrorBoundary: () => void;
555
+ private prevResetKeys;
556
+ componentDidUpdate(prevProps: ErrorBoundaryProps): void;
538
557
  render(): string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | _$react.ReactPortal | _$react.ReactElement<unknown, string | _$react.JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | _$react_jsx_runtime0.JSX.Element | null | undefined;
539
558
  }
540
559
  interface ErrorBoundaryFallbackProps {
@@ -876,6 +895,8 @@ interface NavbarLogoProps extends Omit<ComponentBase, 'children'> {
876
895
  }
877
896
  interface NavbarSearchTriggerProps extends ComponentBase {
878
897
  onPress: () => void;
898
+ 'aria-label'?: string;
899
+ 'aria-keyshortcuts'?: string;
879
900
  }
880
901
  interface NavbarThemeProps {
881
902
  className?: string;
@@ -953,8 +974,16 @@ declare function NavbarTitle({
953
974
  }): _$react_jsx_runtime0.JSX.Element;
954
975
  declare function NavbarLinks({
955
976
  children,
956
- className
957
- }: ComponentBase): _$react_jsx_runtime0.JSX.Element;
977
+ className,
978
+ label
979
+ }: ComponentBase & {
980
+ /**
981
+ * Accessible name for the nav landmark. Required when the page renders
982
+ * multiple navs (e.g. a docs navbar plus a sidebar) so landmarks stay
983
+ * distinguishable.
984
+ */
985
+ label?: string;
986
+ }): _$react_jsx_runtime0.JSX.Element;
958
987
  declare function NavbarLink({
959
988
  label,
960
989
  href,
@@ -999,12 +1028,14 @@ declare function NavbarDropdownItem({
999
1028
  declare function NavbarSearchTriggerDesktop({
1000
1029
  className,
1001
1030
  onPress,
1002
- children
1031
+ children,
1032
+ ...props
1003
1033
  }: NavbarSearchTriggerProps): _$react_jsx_runtime0.JSX.Element;
1004
1034
  declare function NavbarSearchTriggerMobile({
1005
1035
  className,
1006
1036
  onPress,
1007
- children
1037
+ children,
1038
+ ...props
1008
1039
  }: NavbarSearchTriggerProps): _$react_jsx_runtime0.JSX.Element;
1009
1040
  declare function NavbarSearchTriggerKbd({
1010
1041
  className,
@@ -3,10 +3,10 @@
3
3
  * Copyright (c) 2026 Jesus Alcala
4
4
  * Licensed under the MIT License.
5
5
  */
6
- import { n as NavLink, o as cn, r as TransitionLink, t as Link } from "../link-CgdI6O2o.js";
7
- import { a as CodeBlockContent, c as CodeBlockHeader, d as CalloutBody, f as CalloutIcon, h as Heading, i as CodeBlockActions, l as CodeBlockPre, m as CalloutTitle, n as Tooltip, o as CodeBlockExpand, p as CalloutRoot, r as CodeBlock, s as CodeBlockGroup, t as Image, u as Callout } from "../image-B-NDSDuY.js";
8
- import { D as Popover, E as Menu, O as ButtonGroup, T as Tabs, _ as ScrollProvider, a as SidebarHeader, b as useItems, c as SidebarLink, d as SidebarSubGroup, f as PageNav, g as OnThisPageTree, h as OnThisPageItems, i as SidebarGroup, k as Breadcrumbs, l as SidebarMobile, m as OnThisPage, n as Sidebar, o as SidebarItem, p as AnchorProvider, r as SidebarContent, s as SidebarItems, t as DocsLayout, u as SidebarRoot, v as useActiveAnchor, y as useActiveAnchors } from "../docs-layout-CbZ7LDRe.js";
9
- import { a as ErrorBoundaryFallback, i as ErrorBoundary, n as Navbar, o as Button, t as SearchDialog } from "../search-dialog-BqkzDTq2.js";
6
+ import { n as NavLink, o as cn, r as TransitionLink, t as Link } from "../link-q1qHNGK_.js";
7
+ import { a as CodeBlockContent, c as CodeBlockHeader, d as CalloutBody, f as CalloutIcon, h as Heading, i as CodeBlockActions, l as CodeBlockPre, m as CalloutTitle, n as Tooltip, o as CodeBlockExpand, p as CalloutRoot, r as CodeBlock, s as CodeBlockGroup, t as Image, u as Callout } from "../image-BAiDReNd.js";
8
+ import { D as ButtonGroup, E as Popover, O as Breadcrumbs, T as Menu, _ as ScrollProvider, a as SidebarHeader, b as useItems, c as SidebarLink, d as SidebarSubGroup, f as PageNav, g as OnThisPageTree, h as OnThisPageItems, i as SidebarGroup, l as SidebarMobile, m as OnThisPage, n as Sidebar, o as SidebarItem, p as AnchorProvider, r as SidebarContent, s as SidebarItems, t as DocsLayout, u as SidebarRoot, v as useActiveAnchor, w as Tabs, y as useActiveAnchors } from "../docs-layout-D3Fmb0Wd.js";
9
+ import { c as Button, i as Navbar, o as ErrorBoundary, s as ErrorBoundaryFallback, t as SearchDialog } from "../search-dialog-mYnqU4v7.js";
10
10
  import { jsx } from "react/jsx-runtime";
11
11
 
12
12
  //#region src/client/components/primitives/skeleton.tsx
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Boltdocs - https://boltdocs.vercel.app
3
+ * Copyright (c) 2026 Jesus Alcala
4
+ * Licensed under the MIT License.
5
+ */
6
+ import{t as e}from"./chunk-BFSpntXv.mjs";import{r as t}from"./errors-N-b6Sn2G.mjs";import{t as n}from"./config-files-DfwZ3Wot.mjs";import r from"node:path";import i from"node:fs";import a from"node:crypto";import{z as o}from"zod";import{warn as s}from"@bdocs/dui";function c(e){return e}const l=o.object({icon:o.string().max(50),link:o.string().url()}),u=o.object({processor:o.enum([`satteri`]).default(`satteri`)}),d=o.object({name:o.string(),enforce:o.enum([`pre`,`post`]).optional(),version:o.string().optional(),boltdocsVersion:o.string().optional(),clientEntry:o.string().optional(),remarkPlugins:o.array(o.unknown()).optional(),rehypePlugins:o.array(o.unknown()).optional(),vitePlugins:o.array(o.unknown()).optional(),components:o.record(o.string(),o.string()).optional(),client:o.object({slots:o.record(o.string(),o.string()).optional(),providers:o.array(o.string()).optional(),mdxComponents:o.record(o.string(),o.string()).optional(),head:o.array(o.object({tag:o.enum([`script`,`link`,`meta`,`style`]),attrs:o.record(o.string(),o.union([o.string(),o.boolean()])).optional(),content:o.string().optional()})).optional()}).optional(),codeHighlighter:o.unknown().optional(),metadata:o.record(o.string(),o.unknown()).optional(),css:o.object({cssFiles:o.array(o.string()).optional(),headStyles:o.array(o.string()).optional(),postcssPlugins:o.array(o.unknown()).optional(),preprocessorOptions:o.record(o.string(),o.unknown()).optional()}).optional(),middleware:o.array(o.object({name:o.string().optional(),enforce:o.enum([`pre`,`post`]).optional()}).passthrough()).optional(),hooks:o.record(o.string(),o.unknown()).optional()}),f=o.object({title:o.union([o.string(),o.record(o.string(),o.string())]).optional(),description:o.union([o.string(),o.record(o.string(),o.string())]).optional(),logo:o.union([o.string(),o.object({dark:o.string(),light:o.string(),alt:o.string().optional(),width:o.number().optional(),height:o.number().optional()})]).optional(),navbar:o.array(o.object({label:o.union([o.string(),o.record(o.string(),o.string())]),href:o.string(),items:o.array(o.object({label:o.union([o.string(),o.record(o.string(),o.string())]),href:o.string()})).optional()})).optional(),sidebar:o.record(o.string(),o.array(o.object({text:o.string(),link:o.string()}))).optional(),sidebarGroups:o.record(o.string(),o.object({title:o.union([o.string(),o.record(o.string(),o.string())]).optional(),icon:o.string().optional()})).optional(),socialLinks:o.array(l).optional(),editLink:o.string().refine(e=>!e||e.includes(`:path`),{message:`editLink must contain ':path' placeholder if specified`}).optional(),communityHelp:o.string().url().optional(),version:o.string().max(50).optional(),githubRepo:o.string().max(100).optional(),favicon:o.string().optional(),tabs:o.array(o.object({id:o.string(),text:o.union([o.string(),o.record(o.string(),o.string())]),icon:o.string().optional()})).optional(),codeTheme:o.union([o.string(),o.object({light:o.string(),dark:o.string()})]).optional(),codeHighlighting:o.union([o.string(),o.object({engine:o.union([o.string(),o.unknown(),o.function()]).optional(),theme:o.union([o.string(),o.object({light:o.string(),dark:o.string()})]).optional(),options:o.record(o.string(),o.unknown()).optional()})]).optional()}),p=o.union([o.string(),o.object({rules:o.array(o.object({userAgent:o.string(),allow:o.union([o.string(),o.array(o.string())]).optional(),disallow:o.union([o.string(),o.array(o.string())]).optional()})).optional(),sitemaps:o.array(o.string().url()).optional()})]),m=o.object({defaultLocale:o.string(),locales:o.union([o.record(o.string(),o.string()),o.array(o.string())]).transform(e=>Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e),localeConfigs:o.record(o.string(),o.object({label:o.string().optional(),direction:o.enum([`ltr`,`rtl`]).optional(),htmlLang:o.string().optional(),calendar:o.string().optional()})).optional()}),h=o.object({defaultVersion:o.string(),prefix:o.string().optional(),versions:o.array(o.object({label:o.string(),path:o.string()}))}),g=o.object({headers:o.record(o.string(),o.string()).optional(),enableCSP:o.boolean().optional(),customHeaders:o.record(o.string(),o.string()).optional()}),_=o.object({google:o.string().optional(),bing:o.string().optional(),yandex:o.string().optional(),pinterest:o.string().optional(),facebook:o.string().optional()}),v=o.lazy(()=>o.union([o.string(),o.number(),o.boolean(),o.null(),o.array(v),o.record(o.string(),v)])),y=o.union([o.record(o.string(),v),o.array(o.record(o.string(),v))]),b=o.object({metatags:o.record(o.string(),o.string()).optional(),indexing:o.enum([`all`,`public`]).optional(),thumbnails:o.object({background:o.string().optional()}).optional(),verification:_.optional(),structuredData:y.optional()}),x=o.object({viewTransitions:o.union([o.boolean(),o.object({enabled:o.boolean().optional(),types:o.array(o.string()).optional()})]).optional(),fileRouting:o.boolean().optional()}),S=o.object({measurementId:o.string().min(1,`Measurement ID is required for GA4`),debug:o.boolean().optional(),anonymizeIp:o.boolean().optional(),sendPageView:o.boolean().optional(),cookieFlags:o.string().optional(),autoTrack:o.object({pageViews:o.boolean().optional(),downloads:o.boolean().optional(),externalLinks:o.boolean().optional(),search:o.boolean().optional()}).optional()}),C=o.object({tagId:o.string().min(1,`Tag ID is required for GTM`),dataLayerName:o.string().optional(),preview:o.string().optional()}),w=o.object({appId:o.string().min(1,`Algolia App ID is required`),apiKey:o.string().min(1,`Algolia API Key is required`),indexName:o.string().min(1,`Algolia Index Name is required`)}),T=o.object({repo:o.string().min(1,`Giscus repository is required`),repoId:o.string().min(1,`Giscus repository ID is required`),category:o.string().optional(),categoryId:o.string().optional(),mapping:o.enum([`pathname`,`url`,`title`,`og:title`,`specific`,`number`]).optional(),strict:o.union([o.enum([`0`,`1`]),o.boolean()]).optional(),reactionsEnabled:o.union([o.enum([`0`,`1`]),o.boolean()]).optional(),emitMetadata:o.union([o.enum([`0`,`1`]),o.boolean()]).optional(),inputPosition:o.enum([`top`,`bottom`]).optional(),theme:o.string().optional(),darkTheme:o.string().optional(),lang:o.string().optional(),loading:o.enum([`lazy`,`eager`]).optional()}),E=o.object({enabled:o.boolean(),owner:o.string().min(1,`GitHub owner is required`),repo:o.string().min(1,`GitHub repository name is required`),categorySlug:o.string().optional(),endpoint:o.string().optional()}),D=o.object({analytics:o.boolean().optional(),speedInsights:o.boolean().optional()}),O=o.object({apiKey:o.string().min(1,`API key is required for PostHog`),host:o.string().url().optional(),capturePageview:o.boolean().optional(),capturePageleave:o.boolean().optional(),sessionRecording:o.boolean().optional(),autocapture:o.boolean().optional()}),k=o.object({ga4:S.optional(),gtm:C.optional(),vercel:D.optional(),posthog:O.optional()}),A=o.object({algolia:w.optional()}),j=o.object({giscus:T.optional(),custom:E.optional()}),M=o.object({analytics:k.optional(),search:A.optional(),feedback:j.optional()}),N=o.object({criticalCss:o.enum([`zig-critters`,`beasties`,`none`]).optional(),criticalCssMaxSize:o.number().int().min(0).optional()}),P=o.object({labels:o.record(o.string(),o.union([o.string(),o.record(o.string(),o.string())])).optional(),positions:o.record(o.string(),o.number()).optional(),postsPerPage:o.number().int().positive().optional(),defaultCollection:o.string().optional(),dateFormat:o.string().optional(),sortBy:o.enum([`date`,`title`,`sidebarPosition`]).optional()}),F=o.object({visible:o.boolean().optional(),environments:o.array(o.string()).optional()}),I=o.object({turbo:o.boolean().optional(),siteUrl:o.string().url().optional(),docsDir:o.string().optional(),base:o.string().optional(),theme:f.optional(),i18n:m.optional(),versions:h.optional(),mdx:u.optional(),ssg:N.optional(),plugins:o.array(d).optional(),collections:P.optional(),robots:p.optional(),security:g.optional(),seo:b.optional(),integrations:M.optional(),drafts:F.optional(),experimental:x.optional(),aliases:o.custom().optional(),featureFlags:o.record(o.string(),o.union([o.boolean(),o.string()])).optional(),vite:o.custom().optional()});var L=e({resolveConfig:()=>G});const R=new Map;function z(e,t,n,r){return`${e}::${t}::${n}::${r}`}function B(e){return r.join(e,`.boltdocs`,`cache`,`config.json`)}function V(e,t,n,r,i){return a.createHash(`sha256`).update(`${e}:${t}:${n}:${r}:${i}`).digest(`hex`)}function H(e,t,n){let a=B(e);if(!i.existsSync(a))return null;try{let o=i.readFileSync(a,`utf-8`),s=JSON.parse(o),c=r.resolve(e,s.filename);if(!i.existsSync(c))return null;let l=i.statSync(c);if(V(s.filename,l.mtimeMs,l.size,t,n)!==V(s.filename,s.mtimeMs,s.size,s.command,s.mode))return null;let u=I.safeParse(s.config);return u.success?{config:u.data,configFile:c}:null}catch{return null}}function U(e,t,n,a,o,s,c){try{let l=B(e);i.mkdirSync(r.dirname(l),{recursive:!0});let u={filename:t,mtimeMs:n,size:a,command:o,mode:s,config:{...c,plugins:[]}};i.writeFileSync(l,JSON.stringify(u),`utf-8`)}catch(e){process.env.BOLTDOCS_DEBUG===`true`&&console.warn(`[boltdocs] Failed to write config cache:`,e)}}async function W(e,t){let{createJiti:n}=await import(`jiti`),r=await n(t,{interopDefault:!0}).import(e);return r.default??r.config??r}async function G(e,a=process.cwd(),o=`serve`,c=`development`){let l=a,u=z(e,l,o,c);{let e=R.get(u);if(e)return e}let d=H(l,o,c);if(d){try{let e=await W(d.configFile,l);e?.plugins&&(d.config.plugins=e.plugins)}catch{}return R.set(u,d.config),d.config}let f={docsDir:r.resolve(l,e),theme:{title:`Boltdocs`,description:`A Vite documentation framework`,navbar:[{label:`Home`,href:`/`},{label:`Documentation`,href:`/docs`}],codeTheme:{light:`github-light`,dark:`github-dark`}}},p={},m=null;for(let e of n){let t=r.resolve(l,e);if(i.existsSync(t))try{let n;try{n=await W(t,l)}catch(r){process.env.BOLTDOCS_DEBUG===`true`&&console.warn(`[boltdocs] jiti config load failed for ${e}, falling back to Vite: ${r instanceof Error?r.message:String(r)}`);let{loadConfigFromFile:i}=await import(`vite`);n=(await i({command:o,mode:c},t,l))?.config}if(n){p=n;let r=i.statSync(t);m={filename:e,mtimeMs:r.mtimeMs,size:r.size};break}}catch(t){t instanceof Error&&(console.error(`\x1b[31m[boltdocs] ✖ Failed to load config from ${e}: ${t.message}\x1b[0m`),s(`Failed to load config from ${e}: ${t.message}`))}}let h={title:p.title,description:p.description,logo:p.logo,favicon:p.favicon,navbar:p.navbar,sidebar:p.sidebar,sidebarGroups:p.theme?.sidebarGroups,socialLinks:p.socialLinks,githubRepo:p.githubRepo,tabs:p.tabs,codeTheme:p.codeTheme,codeHighlighting:p.theme?.codeHighlighting,communityHelp:p.communityHelp,version:p.version,editLink:p.editLink,...p.theme||{}},g=Object.fromEntries(Object.entries(h).filter(([e,t])=>t!==void 0));g.navbar&&=g.navbar.map(e=>({label:e.label||``,href:e.href||``,items:e.items}));let _={docsDir:r.resolve(l,p.docsDir||e),theme:{...f.theme,...g},i18n:p.i18n?{...p.i18n,locales:Array.isArray(p.i18n.locales)?Object.fromEntries(p.i18n.locales.map(e=>[e,e])):p.i18n.locales}:void 0,versions:p.versions,siteUrl:p.siteUrl,base:p.base,ssg:p.ssg,seo:p.seo,plugins:p.plugins||[],robots:p.robots,security:p.security,integrations:p.integrations,experimental:p.experimental,featureFlags:p.featureFlags,aliases:p.aliases,drafts:p.drafts,collections:p.collections,vite:p.vite},v=I.safeParse(_);if(!v.success)throw new t(`Invalid Boltdocs configuration:\n${v.error.issues.map(e=>` - ${e.path.join(`.`)}: ${e.message}`).join(`
7
+ `)}`);let y=v.data;return m&&U(l,m.filename,m.mtimeMs,m.size,o,c,y),R.set(u,y),y}export{c as i,G as n,d as r,L as t};
@@ -3,4 +3,4 @@
3
3
  * Copyright (c) 2026 Jesus Alcala
4
4
  * Licensed under the MIT License.
5
5
  */
6
- const e=require(`./config-CrsQJHQz.cjs`);require(`./config-files-ph2ZtHWl.cjs`),exports.resolveConfig=e.t;
6
+ const e=require(`./config-BJp3lGzE.cjs`);require(`./config-files-ph2ZtHWl.cjs`),exports.resolveConfig=e.t;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Boltdocs - https://boltdocs.vercel.app
3
+ * Copyright (c) 2026 Jesus Alcala
4
+ * Licensed under the MIT License.
5
+ */
6
+ const e=require(`./chunk-D1Md3oWO.cjs`),t=require(`./errors-vKw8CkiX.cjs`),n=require(`./config-files-ph2ZtHWl.cjs`);let r=require(`node:path`);r=e.r(r);let i=require(`node:fs`);i=e.r(i);let a=require(`node:crypto`);a=e.r(a);let o=require(`zod`),s=require(`@bdocs/dui`);function c(e){return e}const l=o.z.object({icon:o.z.string().max(50),link:o.z.string().url()}),u=o.z.object({processor:o.z.enum([`satteri`]).default(`satteri`)}),d=o.z.object({name:o.z.string(),enforce:o.z.enum([`pre`,`post`]).optional(),version:o.z.string().optional(),boltdocsVersion:o.z.string().optional(),clientEntry:o.z.string().optional(),remarkPlugins:o.z.array(o.z.unknown()).optional(),rehypePlugins:o.z.array(o.z.unknown()).optional(),vitePlugins:o.z.array(o.z.unknown()).optional(),components:o.z.record(o.z.string(),o.z.string()).optional(),client:o.z.object({slots:o.z.record(o.z.string(),o.z.string()).optional(),providers:o.z.array(o.z.string()).optional(),mdxComponents:o.z.record(o.z.string(),o.z.string()).optional(),head:o.z.array(o.z.object({tag:o.z.enum([`script`,`link`,`meta`,`style`]),attrs:o.z.record(o.z.string(),o.z.union([o.z.string(),o.z.boolean()])).optional(),content:o.z.string().optional()})).optional()}).optional(),codeHighlighter:o.z.unknown().optional(),metadata:o.z.record(o.z.string(),o.z.unknown()).optional(),css:o.z.object({cssFiles:o.z.array(o.z.string()).optional(),headStyles:o.z.array(o.z.string()).optional(),postcssPlugins:o.z.array(o.z.unknown()).optional(),preprocessorOptions:o.z.record(o.z.string(),o.z.unknown()).optional()}).optional(),middleware:o.z.array(o.z.object({name:o.z.string().optional(),enforce:o.z.enum([`pre`,`post`]).optional()}).passthrough()).optional(),hooks:o.z.record(o.z.string(),o.z.unknown()).optional()}),f=o.z.object({title:o.z.union([o.z.string(),o.z.record(o.z.string(),o.z.string())]).optional(),description:o.z.union([o.z.string(),o.z.record(o.z.string(),o.z.string())]).optional(),logo:o.z.union([o.z.string(),o.z.object({dark:o.z.string(),light:o.z.string(),alt:o.z.string().optional(),width:o.z.number().optional(),height:o.z.number().optional()})]).optional(),navbar:o.z.array(o.z.object({label:o.z.union([o.z.string(),o.z.record(o.z.string(),o.z.string())]),href:o.z.string(),items:o.z.array(o.z.object({label:o.z.union([o.z.string(),o.z.record(o.z.string(),o.z.string())]),href:o.z.string()})).optional()})).optional(),sidebar:o.z.record(o.z.string(),o.z.array(o.z.object({text:o.z.string(),link:o.z.string()}))).optional(),sidebarGroups:o.z.record(o.z.string(),o.z.object({title:o.z.union([o.z.string(),o.z.record(o.z.string(),o.z.string())]).optional(),icon:o.z.string().optional()})).optional(),socialLinks:o.z.array(l).optional(),editLink:o.z.string().refine(e=>!e||e.includes(`:path`),{message:`editLink must contain ':path' placeholder if specified`}).optional(),communityHelp:o.z.string().url().optional(),version:o.z.string().max(50).optional(),githubRepo:o.z.string().max(100).optional(),favicon:o.z.string().optional(),tabs:o.z.array(o.z.object({id:o.z.string(),text:o.z.union([o.z.string(),o.z.record(o.z.string(),o.z.string())]),icon:o.z.string().optional()})).optional(),codeTheme:o.z.union([o.z.string(),o.z.object({light:o.z.string(),dark:o.z.string()})]).optional(),codeHighlighting:o.z.union([o.z.string(),o.z.object({engine:o.z.union([o.z.string(),o.z.unknown(),o.z.function()]).optional(),theme:o.z.union([o.z.string(),o.z.object({light:o.z.string(),dark:o.z.string()})]).optional(),options:o.z.record(o.z.string(),o.z.unknown()).optional()})]).optional()}),p=o.z.union([o.z.string(),o.z.object({rules:o.z.array(o.z.object({userAgent:o.z.string(),allow:o.z.union([o.z.string(),o.z.array(o.z.string())]).optional(),disallow:o.z.union([o.z.string(),o.z.array(o.z.string())]).optional()})).optional(),sitemaps:o.z.array(o.z.string().url()).optional()})]),m=o.z.object({defaultLocale:o.z.string(),locales:o.z.union([o.z.record(o.z.string(),o.z.string()),o.z.array(o.z.string())]).transform(e=>Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e),localeConfigs:o.z.record(o.z.string(),o.z.object({label:o.z.string().optional(),direction:o.z.enum([`ltr`,`rtl`]).optional(),htmlLang:o.z.string().optional(),calendar:o.z.string().optional()})).optional()}),h=o.z.object({defaultVersion:o.z.string(),prefix:o.z.string().optional(),versions:o.z.array(o.z.object({label:o.z.string(),path:o.z.string()}))}),g=o.z.object({headers:o.z.record(o.z.string(),o.z.string()).optional(),enableCSP:o.z.boolean().optional(),customHeaders:o.z.record(o.z.string(),o.z.string()).optional()}),_=o.z.object({google:o.z.string().optional(),bing:o.z.string().optional(),yandex:o.z.string().optional(),pinterest:o.z.string().optional(),facebook:o.z.string().optional()}),v=o.z.lazy(()=>o.z.union([o.z.string(),o.z.number(),o.z.boolean(),o.z.null(),o.z.array(v),o.z.record(o.z.string(),v)])),y=o.z.union([o.z.record(o.z.string(),v),o.z.array(o.z.record(o.z.string(),v))]),b=o.z.object({metatags:o.z.record(o.z.string(),o.z.string()).optional(),indexing:o.z.enum([`all`,`public`]).optional(),thumbnails:o.z.object({background:o.z.string().optional()}).optional(),verification:_.optional(),structuredData:y.optional()}),x=o.z.object({viewTransitions:o.z.union([o.z.boolean(),o.z.object({enabled:o.z.boolean().optional(),types:o.z.array(o.z.string()).optional()})]).optional(),fileRouting:o.z.boolean().optional()}),S=o.z.object({measurementId:o.z.string().min(1,`Measurement ID is required for GA4`),debug:o.z.boolean().optional(),anonymizeIp:o.z.boolean().optional(),sendPageView:o.z.boolean().optional(),cookieFlags:o.z.string().optional(),autoTrack:o.z.object({pageViews:o.z.boolean().optional(),downloads:o.z.boolean().optional(),externalLinks:o.z.boolean().optional(),search:o.z.boolean().optional()}).optional()}),C=o.z.object({tagId:o.z.string().min(1,`Tag ID is required for GTM`),dataLayerName:o.z.string().optional(),preview:o.z.string().optional()}),w=o.z.object({appId:o.z.string().min(1,`Algolia App ID is required`),apiKey:o.z.string().min(1,`Algolia API Key is required`),indexName:o.z.string().min(1,`Algolia Index Name is required`)}),T=o.z.object({repo:o.z.string().min(1,`Giscus repository is required`),repoId:o.z.string().min(1,`Giscus repository ID is required`),category:o.z.string().optional(),categoryId:o.z.string().optional(),mapping:o.z.enum([`pathname`,`url`,`title`,`og:title`,`specific`,`number`]).optional(),strict:o.z.union([o.z.enum([`0`,`1`]),o.z.boolean()]).optional(),reactionsEnabled:o.z.union([o.z.enum([`0`,`1`]),o.z.boolean()]).optional(),emitMetadata:o.z.union([o.z.enum([`0`,`1`]),o.z.boolean()]).optional(),inputPosition:o.z.enum([`top`,`bottom`]).optional(),theme:o.z.string().optional(),darkTheme:o.z.string().optional(),lang:o.z.string().optional(),loading:o.z.enum([`lazy`,`eager`]).optional()}),E=o.z.object({enabled:o.z.boolean(),owner:o.z.string().min(1,`GitHub owner is required`),repo:o.z.string().min(1,`GitHub repository name is required`),categorySlug:o.z.string().optional(),endpoint:o.z.string().optional()}),D=o.z.object({analytics:o.z.boolean().optional(),speedInsights:o.z.boolean().optional()}),O=o.z.object({apiKey:o.z.string().min(1,`API key is required for PostHog`),host:o.z.string().url().optional(),capturePageview:o.z.boolean().optional(),capturePageleave:o.z.boolean().optional(),sessionRecording:o.z.boolean().optional(),autocapture:o.z.boolean().optional()}),k=o.z.object({ga4:S.optional(),gtm:C.optional(),vercel:D.optional(),posthog:O.optional()}),A=o.z.object({algolia:w.optional()}),j=o.z.object({giscus:T.optional(),custom:E.optional()}),M=o.z.object({analytics:k.optional(),search:A.optional(),feedback:j.optional()}),N=o.z.object({criticalCss:o.z.enum([`zig-critters`,`beasties`,`none`]).optional(),criticalCssMaxSize:o.z.number().int().min(0).optional()}),P=o.z.object({labels:o.z.record(o.z.string(),o.z.union([o.z.string(),o.z.record(o.z.string(),o.z.string())])).optional(),positions:o.z.record(o.z.string(),o.z.number()).optional(),postsPerPage:o.z.number().int().positive().optional(),defaultCollection:o.z.string().optional(),dateFormat:o.z.string().optional(),sortBy:o.z.enum([`date`,`title`,`sidebarPosition`]).optional()}),F=o.z.object({visible:o.z.boolean().optional(),environments:o.z.array(o.z.string()).optional()}),I=o.z.object({turbo:o.z.boolean().optional(),siteUrl:o.z.string().url().optional(),docsDir:o.z.string().optional(),base:o.z.string().optional(),theme:f.optional(),i18n:m.optional(),versions:h.optional(),mdx:u.optional(),ssg:N.optional(),plugins:o.z.array(d).optional(),collections:P.optional(),robots:p.optional(),security:g.optional(),seo:b.optional(),integrations:M.optional(),drafts:F.optional(),experimental:x.optional(),aliases:o.z.custom().optional(),featureFlags:o.z.record(o.z.string(),o.z.union([o.z.boolean(),o.z.string()])).optional(),vite:o.z.custom().optional()}),L=new Map;function R(e,t,n,r){return`${e}::${t}::${n}::${r}`}function z(e){return r.default.join(e,`.boltdocs`,`cache`,`config.json`)}function B(e,t,n,r,i){return a.default.createHash(`sha256`).update(`${e}:${t}:${n}:${r}:${i}`).digest(`hex`)}function V(e,t,n){let a=z(e);if(!i.default.existsSync(a))return null;try{let o=i.default.readFileSync(a,`utf-8`),s=JSON.parse(o),c=r.default.resolve(e,s.filename);if(!i.default.existsSync(c))return null;let l=i.default.statSync(c);if(B(s.filename,l.mtimeMs,l.size,t,n)!==B(s.filename,s.mtimeMs,s.size,s.command,s.mode))return null;let u=I.safeParse(s.config);return u.success?{config:u.data,configFile:c}:null}catch{return null}}function H(e,t,n,a,o,s,c){try{let l=z(e);i.default.mkdirSync(r.default.dirname(l),{recursive:!0});let u={filename:t,mtimeMs:n,size:a,command:o,mode:s,config:{...c,plugins:[]}};i.default.writeFileSync(l,JSON.stringify(u),`utf-8`)}catch(e){process.env.BOLTDOCS_DEBUG===`true`&&console.warn(`[boltdocs] Failed to write config cache:`,e)}}async function U(e,t){let{createJiti:n}=await import(`jiti`),r=await n(t,{interopDefault:!0}).import(e);return r.default??r.config??r}async function W(e,a=process.cwd(),o=`serve`,c=`development`){let l=a,u=R(e,l,o,c);{let e=L.get(u);if(e)return e}let d=V(l,o,c);if(d){try{let e=await U(d.configFile,l);e?.plugins&&(d.config.plugins=e.plugins)}catch{}return L.set(u,d.config),d.config}let f={docsDir:r.default.resolve(l,e),theme:{title:`Boltdocs`,description:`A Vite documentation framework`,navbar:[{label:`Home`,href:`/`},{label:`Documentation`,href:`/docs`}],codeTheme:{light:`github-light`,dark:`github-dark`}}},p={},m=null;for(let e of n.t){let t=r.default.resolve(l,e);if(i.default.existsSync(t))try{let n;try{n=await U(t,l)}catch(r){process.env.BOLTDOCS_DEBUG===`true`&&console.warn(`[boltdocs] jiti config load failed for ${e}, falling back to Vite: ${r instanceof Error?r.message:String(r)}`);let{loadConfigFromFile:i}=await import(`vite`);n=(await i({command:o,mode:c},t,l))?.config}if(n){p=n;let r=i.default.statSync(t);m={filename:e,mtimeMs:r.mtimeMs,size:r.size};break}}catch(t){t instanceof Error&&(console.error(`\x1b[31m[boltdocs] ✖ Failed to load config from ${e}: ${t.message}\x1b[0m`),(0,s.warn)(`Failed to load config from ${e}: ${t.message}`))}}let h={title:p.title,description:p.description,logo:p.logo,favicon:p.favicon,navbar:p.navbar,sidebar:p.sidebar,sidebarGroups:p.theme?.sidebarGroups,socialLinks:p.socialLinks,githubRepo:p.githubRepo,tabs:p.tabs,codeTheme:p.codeTheme,codeHighlighting:p.theme?.codeHighlighting,communityHelp:p.communityHelp,version:p.version,editLink:p.editLink,...p.theme||{}},g=Object.fromEntries(Object.entries(h).filter(([e,t])=>t!==void 0));g.navbar&&=g.navbar.map(e=>({label:e.label||``,href:e.href||``,items:e.items}));let _={docsDir:r.default.resolve(l,p.docsDir||e),theme:{...f.theme,...g},i18n:p.i18n?{...p.i18n,locales:Array.isArray(p.i18n.locales)?Object.fromEntries(p.i18n.locales.map(e=>[e,e])):p.i18n.locales}:void 0,versions:p.versions,siteUrl:p.siteUrl,base:p.base,ssg:p.ssg,seo:p.seo,plugins:p.plugins||[],robots:p.robots,security:p.security,integrations:p.integrations,experimental:p.experimental,featureFlags:p.featureFlags,aliases:p.aliases,drafts:p.drafts,collections:p.collections,vite:p.vite},v=I.safeParse(_);if(!v.success)throw new t.r(`Invalid Boltdocs configuration:\n${v.error.issues.map(e=>` - ${e.path.join(`.`)}: ${e.message}`).join(`
7
+ `)}`);let y=v.data;return m&&H(l,m.filename,m.mtimeMs,m.size,o,c,y),L.set(u,y),y}Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return W}});
@@ -3,4 +3,4 @@
3
3
  * Copyright (c) 2026 Jesus Alcala
4
4
  * Licensed under the MIT License.
5
5
  */
6
- const e=require(`./chunk-D1Md3oWO.cjs`),t=require(`./node-C3HctGaH.cjs`),n=require(`./routes-C0kb4ue6.cjs`),r=require(`./update-check-DFQZyoSU.cjs`);let i=require(`node:path`);i=e.r(i);let a=require(`node:fs`);a=e.r(a);let o=require(`node:crypto`),s=require(`@bdocs/dui`),c=require(`@bdocs/ssg/node`);function l(e,t,n=e=>process.exit(e)){let r=!1;return{async shutdown(i){if(!r){r=!0;try{await e()}finally{t(),i!==void 0&&n(i)}}},isShuttingDown(){return r}}}function u(e){try{let t=Number.parseInt(a.default.readFileSync(e,`utf8`).trim(),10);return Number.isInteger(t)&&t>0?t:null}catch{return null}}function d(e){try{return process.kill(e,0),!0}catch(e){return e.code===`EPERM`}}function f(e){let t=i.default.join(e,`.boltdocs`,`dev-server.lock`);for(a.default.mkdirSync(i.default.dirname(t),{recursive:!0});;)try{let e=a.default.openSync(t,`wx`);a.default.writeFileSync(e,`${process.pid}\n`),a.default.closeSync(e);let n=!1;return{release(){if(!n){n=!0;try{u(t)===process.pid&&a.default.unlinkSync(t)}catch{}}}}}catch(e){if(e.code!==`EEXIST`)throw e;let n=u(t);if(n&&d(n))throw Error(`A Boltdocs dev server is already running for this project (pid ${n})`);let r=`${t}.stale-${process.pid}-${(0,o.randomUUID)()}`;try{a.default.renameSync(t,r),a.default.unlinkSync(r)}catch(e){try{a.default.existsSync(r)&&a.default.unlinkSync(r)}catch{}if(e.code===`ENOENT`)continue;throw Error(`Could not recover stale Boltdocs dev lock: ${t}`)}}}let p=!1;async function m(e=process.cwd(),a={}){if(p)return;p=!0;let o=null,u=null,d=()=>{};r.t();let m,h=process.env.BOLTDOCS_DEBUG===`true`,g=performance.now();try{o=f(e),h&&console.log(`[boltdocs-dev] acquireLock: ${Math.round(performance.now()-g)}ms`);let _=performance.now(),v=performance.now(),y=await t.n(e,`development`,void 0,{skipTypes:!0,skipLinkTree:!0,skipRoutes:!0});m=y.__boltdocsConfig,h&&console.log(`[boltdocs-dev] createViteConfig: ${Math.round(performance.now()-v)}ms`),y.logLevel=`warn`,y.clearScreen=!1,a.port!==void 0&&(y.server=y.server||{},y.server.port=Number(a.port)),a.host!==void 0&&(y.server=y.server||{},y.server.host=a.host),a.force&&(y.optimizeDeps=y.optimizeDeps||{},y.optimizeDeps.force=!0);let b=performance.now();u=await(0,c.createServer)(y,{skipResolveConfig:!0}),h&&console.log(`[boltdocs-dev] createServer: ${Math.round(performance.now()-b)}ms`),d=()=>{process.off(`SIGINT`,S),process.off(`SIGTERM`,C)};let x=l(()=>u.close(),()=>{p=!1,o?.release(),d()}),S=()=>{x.shutdown(0)},C=()=>{x.shutdown(143)};process.once(`SIGINT`,S),process.once(`SIGTERM`,C);let w=performance.now();try{await u.listen()}catch(e){throw d(),e}h&&console.log(`[boltdocs-dev] server.listen: ${Math.round(performance.now()-w)}ms`),u.httpServer?.once(`close`,()=>{d(),p=!1,o?.release()}),t.l(m,e),n.t(m?.docsDir||i.default.resolve(e,`docs`),m).catch(e=>{(0,s.error)(`Background route generation failed:`,e)});let T=performance.now()-_;h&&console.log(`[boltdocs-dev] total startup: ${Math.round(T)}ms`);let E=u.resolvedUrls;console.log(r.o(E?.local?.[0]??`http://localhost:${a.port??5173}`,E?.network?.[0]??null,{readyIn:T})),u.bindCLIShortcuts({print:!1})}catch(e){if(d(),u)try{await u.close()}catch{}p=!1,o?.release(),(0,s.error)(`Failed to start dev server:`,e),process.exit(1)}}exports.devAction=m;
6
+ const e=require(`./chunk-D1Md3oWO.cjs`),t=require(`./node-7Cfw6nMr.cjs`),n=require(`./routes-CzhKOw67.cjs`),r=require(`./update-check-DFQZyoSU.cjs`);let i=require(`node:path`);i=e.r(i);let a=require(`node:fs`);a=e.r(a);let o=require(`node:crypto`),s=require(`@bdocs/dui`),c=require(`@bdocs/ssg/node`);function l(e,t,n=e=>process.exit(e)){let r=!1;return{async shutdown(i){if(!r){r=!0;try{await e()}finally{t(),i!==void 0&&n(i)}}},isShuttingDown(){return r}}}function u(e){try{let t=Number.parseInt(a.default.readFileSync(e,`utf8`).trim(),10);return Number.isInteger(t)&&t>0?t:null}catch{return null}}function d(e){try{return process.kill(e,0),!0}catch(e){return e.code===`EPERM`}}function f(e){let t=i.default.join(e,`.boltdocs`,`dev-server.lock`);for(a.default.mkdirSync(i.default.dirname(t),{recursive:!0});;)try{let e=a.default.openSync(t,`wx`);a.default.writeFileSync(e,`${process.pid}\n`),a.default.closeSync(e);let n=!1;return{release(){if(!n){n=!0;try{u(t)===process.pid&&a.default.unlinkSync(t)}catch{}}}}}catch(e){if(e.code!==`EEXIST`)throw e;let n=u(t);if(n&&d(n))throw Error(`A Boltdocs dev server is already running for this project (pid ${n})`);let r=`${t}.stale-${process.pid}-${(0,o.randomUUID)()}`;try{a.default.renameSync(t,r),a.default.unlinkSync(r)}catch(e){try{a.default.existsSync(r)&&a.default.unlinkSync(r)}catch{}if(e.code===`ENOENT`)continue;throw Error(`Could not recover stale Boltdocs dev lock: ${t}`)}}}let p=!1;async function m(e=process.cwd(),a={}){if(p)return;p=!0;let o=null,u=null,d=()=>{};r.t();let m,h=process.env.BOLTDOCS_DEBUG===`true`,g=performance.now();try{o=f(e),h&&console.log(`[boltdocs-dev] acquireLock: ${Math.round(performance.now()-g)}ms`);let _=performance.now(),v=performance.now(),y=await t.n(e,`development`,void 0,{skipTypes:!0,skipLinkTree:!0,skipRoutes:!0});m=y.__boltdocsConfig,h&&console.log(`[boltdocs-dev] createViteConfig: ${Math.round(performance.now()-v)}ms`),y.logLevel=`warn`,y.clearScreen=!1,a.port!==void 0&&(y.server=y.server||{},y.server.port=Number(a.port)),a.host!==void 0&&(y.server=y.server||{},y.server.host=a.host),a.force&&(y.optimizeDeps=y.optimizeDeps||{},y.optimizeDeps.force=!0);let b=performance.now();u=await(0,c.createServer)(y,{skipResolveConfig:!0}),h&&console.log(`[boltdocs-dev] createServer: ${Math.round(performance.now()-b)}ms`),d=()=>{process.off(`SIGINT`,S),process.off(`SIGTERM`,C)};let x=l(()=>u.close(),()=>{p=!1,o?.release(),d()}),S=()=>{x.shutdown(0)},C=()=>{x.shutdown(143)};process.once(`SIGINT`,S),process.once(`SIGTERM`,C);let w=performance.now();try{await u.listen()}catch(e){throw d(),e}h&&console.log(`[boltdocs-dev] server.listen: ${Math.round(performance.now()-w)}ms`),u.httpServer?.once(`close`,()=>{d(),p=!1,o?.release()}),t.d(m,e),n.t(m?.docsDir||i.default.resolve(e,`docs`),m).catch(e=>{(0,s.error)(`Background route generation failed:`,e)});let T=performance.now()-_;h&&console.log(`[boltdocs-dev] total startup: ${Math.round(T)}ms`);let E=u.resolvedUrls;console.log(r.o(E?.local?.[0]??`http://localhost:${a.port??5173}`,E?.network?.[0]??null,{readyIn:T})),u.bindCLIShortcuts({print:!1})}catch(e){if(d(),u)try{await u.close()}catch{}p=!1,o?.release(),(0,s.error)(`Failed to start dev server:`,e),process.exit(1)}}exports.devAction=m;
@@ -3,4 +3,4 @@
3
3
  * Copyright (c) 2026 Jesus Alcala
4
4
  * Licensed under the MIT License.
5
5
  */
6
- import{n as e,u as t}from"./node-CUiheODn.mjs";import{t as n}from"./routes-C4wrLWwu.mjs";import{o as r,t as i}from"./update-check-BXD1atVv.mjs";import a from"node:path";import o from"node:fs";import{randomUUID as s}from"node:crypto";import{error as c}from"@bdocs/dui";import{createServer as l}from"@bdocs/ssg/node";function u(e,t,n=e=>process.exit(e)){let r=!1;return{async shutdown(i){if(!r){r=!0;try{await e()}finally{t(),i!==void 0&&n(i)}}},isShuttingDown(){return r}}}function d(e){try{let t=Number.parseInt(o.readFileSync(e,`utf8`).trim(),10);return Number.isInteger(t)&&t>0?t:null}catch{return null}}function f(e){try{return process.kill(e,0),!0}catch(e){return e.code===`EPERM`}}function p(e){let t=a.join(e,`.boltdocs`,`dev-server.lock`);for(o.mkdirSync(a.dirname(t),{recursive:!0});;)try{let e=o.openSync(t,`wx`);o.writeFileSync(e,`${process.pid}\n`),o.closeSync(e);let n=!1;return{release(){if(!n){n=!0;try{d(t)===process.pid&&o.unlinkSync(t)}catch{}}}}}catch(e){if(e.code!==`EEXIST`)throw e;let n=d(t);if(n&&f(n))throw Error(`A Boltdocs dev server is already running for this project (pid ${n})`);let r=`${t}.stale-${process.pid}-${s()}`;try{o.renameSync(t,r),o.unlinkSync(r)}catch(e){try{o.existsSync(r)&&o.unlinkSync(r)}catch{}if(e.code===`ENOENT`)continue;throw Error(`Could not recover stale Boltdocs dev lock: ${t}`)}}}let m=!1;async function h(o=process.cwd(),s={}){if(m)return;m=!0;let d=null,f=null,h=()=>{};i();let g,_=process.env.BOLTDOCS_DEBUG===`true`,v=performance.now();try{d=p(o),_&&console.log(`[boltdocs-dev] acquireLock: ${Math.round(performance.now()-v)}ms`);let i=performance.now(),y=performance.now(),b=await e(o,`development`,void 0,{skipTypes:!0,skipLinkTree:!0,skipRoutes:!0});g=b.__boltdocsConfig,_&&console.log(`[boltdocs-dev] createViteConfig: ${Math.round(performance.now()-y)}ms`),b.logLevel=`warn`,b.clearScreen=!1,s.port!==void 0&&(b.server=b.server||{},b.server.port=Number(s.port)),s.host!==void 0&&(b.server=b.server||{},b.server.host=s.host),s.force&&(b.optimizeDeps=b.optimizeDeps||{},b.optimizeDeps.force=!0);let x=performance.now();f=await l(b,{skipResolveConfig:!0}),_&&console.log(`[boltdocs-dev] createServer: ${Math.round(performance.now()-x)}ms`),h=()=>{process.off(`SIGINT`,C),process.off(`SIGTERM`,w)};let S=u(()=>f.close(),()=>{m=!1,d?.release(),h()}),C=()=>{S.shutdown(0)},w=()=>{S.shutdown(143)};process.once(`SIGINT`,C),process.once(`SIGTERM`,w);let T=performance.now();try{await f.listen()}catch(e){throw h(),e}_&&console.log(`[boltdocs-dev] server.listen: ${Math.round(performance.now()-T)}ms`),f.httpServer?.once(`close`,()=>{h(),m=!1,d?.release()}),t(g,o),n(g?.docsDir||a.resolve(o,`docs`),g).catch(e=>{c(`Background route generation failed:`,e)});let E=performance.now()-i;_&&console.log(`[boltdocs-dev] total startup: ${Math.round(E)}ms`);let D=f.resolvedUrls;console.log(r(D?.local?.[0]??`http://localhost:${s.port??5173}`,D?.network?.[0]??null,{readyIn:E})),f.bindCLIShortcuts({print:!1})}catch(e){if(h(),f)try{await f.close()}catch{}m=!1,d?.release(),c(`Failed to start dev server:`,e),process.exit(1)}}export{h as devAction};
6
+ import{f as e,n as t}from"./node-CT2E84nY.mjs";import{t as n}from"./routes-Dw6g0bfF.mjs";import{o as r,t as i}from"./update-check-BXD1atVv.mjs";import a from"node:path";import o from"node:fs";import{randomUUID as s}from"node:crypto";import{error as c}from"@bdocs/dui";import{createServer as l}from"@bdocs/ssg/node";function u(e,t,n=e=>process.exit(e)){let r=!1;return{async shutdown(i){if(!r){r=!0;try{await e()}finally{t(),i!==void 0&&n(i)}}},isShuttingDown(){return r}}}function d(e){try{let t=Number.parseInt(o.readFileSync(e,`utf8`).trim(),10);return Number.isInteger(t)&&t>0?t:null}catch{return null}}function f(e){try{return process.kill(e,0),!0}catch(e){return e.code===`EPERM`}}function p(e){let t=a.join(e,`.boltdocs`,`dev-server.lock`);for(o.mkdirSync(a.dirname(t),{recursive:!0});;)try{let e=o.openSync(t,`wx`);o.writeFileSync(e,`${process.pid}\n`),o.closeSync(e);let n=!1;return{release(){if(!n){n=!0;try{d(t)===process.pid&&o.unlinkSync(t)}catch{}}}}}catch(e){if(e.code!==`EEXIST`)throw e;let n=d(t);if(n&&f(n))throw Error(`A Boltdocs dev server is already running for this project (pid ${n})`);let r=`${t}.stale-${process.pid}-${s()}`;try{o.renameSync(t,r),o.unlinkSync(r)}catch(e){try{o.existsSync(r)&&o.unlinkSync(r)}catch{}if(e.code===`ENOENT`)continue;throw Error(`Could not recover stale Boltdocs dev lock: ${t}`)}}}let m=!1;async function h(o=process.cwd(),s={}){if(m)return;m=!0;let d=null,f=null,h=()=>{};i();let g,_=process.env.BOLTDOCS_DEBUG===`true`,v=performance.now();try{d=p(o),_&&console.log(`[boltdocs-dev] acquireLock: ${Math.round(performance.now()-v)}ms`);let i=performance.now(),y=performance.now(),b=await t(o,`development`,void 0,{skipTypes:!0,skipLinkTree:!0,skipRoutes:!0});g=b.__boltdocsConfig,_&&console.log(`[boltdocs-dev] createViteConfig: ${Math.round(performance.now()-y)}ms`),b.logLevel=`warn`,b.clearScreen=!1,s.port!==void 0&&(b.server=b.server||{},b.server.port=Number(s.port)),s.host!==void 0&&(b.server=b.server||{},b.server.host=s.host),s.force&&(b.optimizeDeps=b.optimizeDeps||{},b.optimizeDeps.force=!0);let x=performance.now();f=await l(b,{skipResolveConfig:!0}),_&&console.log(`[boltdocs-dev] createServer: ${Math.round(performance.now()-x)}ms`),h=()=>{process.off(`SIGINT`,C),process.off(`SIGTERM`,w)};let S=u(()=>f.close(),()=>{m=!1,d?.release(),h()}),C=()=>{S.shutdown(0)},w=()=>{S.shutdown(143)};process.once(`SIGINT`,C),process.once(`SIGTERM`,w);let T=performance.now();try{await f.listen()}catch(e){throw h(),e}_&&console.log(`[boltdocs-dev] server.listen: ${Math.round(performance.now()-T)}ms`),f.httpServer?.once(`close`,()=>{h(),m=!1,d?.release()}),e(g,o),n(g?.docsDir||a.resolve(o,`docs`),g).catch(e=>{c(`Background route generation failed:`,e)});let E=performance.now()-i;_&&console.log(`[boltdocs-dev] total startup: ${Math.round(E)}ms`);let D=f.resolvedUrls;console.log(r(D?.local?.[0]??`http://localhost:${s.port??5173}`,D?.network?.[0]??null,{readyIn:E})),f.bindCLIShortcuts({print:!1})}catch(e){if(h(),f)try{await f.close()}catch{}m=!1,d?.release(),c(`Failed to start dev server:`,e),process.exit(1)}}export{h as devAction};
@@ -3,8 +3,9 @@
3
3
  * Copyright (c) 2026 Jesus Alcala
4
4
  * Licensed under the MIT License.
5
5
  */
6
- import { G as useOptionalConfig, H as icons_exports, W as useConfig, d as resolvePublicAssetUrl, h as Check, l as useRoutesContext, o as cn, s as useLocalizedTo, t as Link, u as normalizePath, v as ChevronRight } from "./link-CgdI6O2o.js";
6
+ import { G as useConfig, K as useOptionalConfig, U as icons_exports, d as normalizePath, f as resolvePublicAssetUrl, g as Check, o as cn, s as useLocalizedTo, t as Link, u as useRoutesContext, y as ChevronRight } from "./link-q1qHNGK_.js";
7
7
  import { E as useLocation, L as defaultNavigate, O as useNavigate, m as parseUrlReference } from "./router-CZBxMRAH.js";
8
+ import { r as useSearchHighlight } from "./search-dialog-mYnqU4v7.js";
8
9
  import { Children, Fragment, createContext, use, useCallback, useContext, useEffect, useLayoutEffect, useMemo, useRef, useState } from "react";
9
10
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
10
11
  import * as RAC from "react-aria-components";
@@ -251,9 +252,9 @@ function Tabs({ children, className = "", ...props }) {
251
252
  children
252
253
  });
253
254
  }
254
- function TabsList({ children, className = "" }) {
255
+ function TabsList({ children, className, role }) {
255
256
  return /* @__PURE__ */ jsx("div", {
256
- role: "tablist",
257
+ role: role === null ? void 0 : role ?? "tablist",
257
258
  className: cn("relative flex flex-row items-center overflow-x-auto", className),
258
259
  children
259
260
  });
@@ -569,112 +570,6 @@ function useSidebar(routes) {
569
570
  };
570
571
  }
571
572
 
572
- //#endregion
573
- //#region src/client/hooks/use-search-highlight.ts
574
- /**
575
- * Hook to highlight search terms based on the 'hl' query parameter.
576
- */
577
- function useSearchHighlight(containerSelector = ".boltdocs-page") {
578
- const { search } = useLocation();
579
- const query = new URLSearchParams(search).get("hl");
580
- useEffect(() => {
581
- if (!query) {
582
- clearHighlights(containerSelector);
583
- return;
584
- }
585
- const container = document.querySelector(containerSelector);
586
- if (!container) return;
587
- let rafId;
588
- const observer = new MutationObserver((mutations) => {
589
- if (mutations.some((m) => {
590
- const addedNodes = Array.from(m.addedNodes);
591
- const removedNodes = Array.from(m.removedNodes);
592
- return addedNodes.some((n) => !(n instanceof HTMLElement && n.hasAttribute("data-search-highlight"))) || removedNodes.some((n) => !(n instanceof HTMLElement && n.hasAttribute("data-search-highlight")));
593
- })) run();
594
- });
595
- function run() {
596
- cancelAnimationFrame(rafId);
597
- rafId = requestAnimationFrame(() => {
598
- observer.disconnect();
599
- clearHighlights(containerSelector);
600
- const terms = query.split(/\s+/).map((t) => t.trim()).filter((t) => t.length >= 2);
601
- if (terms.length > 0) highlightTerms(container, terms);
602
- observer.observe(container, {
603
- childList: true,
604
- subtree: true
605
- });
606
- });
607
- }
608
- run();
609
- return () => {
610
- cancelAnimationFrame(rafId);
611
- observer.disconnect();
612
- clearHighlights(containerSelector);
613
- };
614
- }, [query, containerSelector]);
615
- }
616
- function clearHighlights(selector) {
617
- document.querySelectorAll(`${selector} mark[data-search-highlight]`).forEach((mark) => {
618
- try {
619
- const parent = mark.parentNode;
620
- if (parent && parent.contains(mark)) {
621
- const text = mark.textContent || "";
622
- parent.replaceChild(document.createTextNode(text), mark);
623
- }
624
- } catch (e) {}
625
- });
626
- }
627
- function highlightTerms(container, terms) {
628
- const walker = document.createTreeWalker(container, NodeFilter.SHOW_TEXT, { acceptNode: (node) => {
629
- const parent = node.parentElement;
630
- if (parent && (parent.tagName === "SCRIPT" || parent.tagName === "STYLE" || parent.tagName === "MARK" || parent.closest("pre") || parent.closest("code"))) return NodeFilter.FILTER_REJECT;
631
- return NodeFilter.FILTER_ACCEPT;
632
- } });
633
- const nodes = [];
634
- let node = walker.nextNode();
635
- while (node) {
636
- nodes.push(node);
637
- node = walker.nextNode();
638
- }
639
- const accentMap = {
640
- a: "[aáàäâã]",
641
- e: "[eéèëê]",
642
- i: "[iíìïî]",
643
- o: "[oóòöôõ]",
644
- u: "[uúùüû]",
645
- n: "[nñ]",
646
- c: "[cç]"
647
- };
648
- const prepareRegex = (term) => {
649
- let pattern = term.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
650
- pattern = pattern.split("").map((char) => {
651
- return accentMap[char.toLowerCase()] || char;
652
- }).join("");
653
- return pattern;
654
- };
655
- const combinedPattern = terms.map(prepareRegex).join("|");
656
- const regex = new RegExp(`(${combinedPattern})`, "gi");
657
- const matchRegexes = terms.map((term) => {
658
- const p = prepareRegex(term);
659
- return new RegExp(`^${p}$`, "i");
660
- });
661
- nodes.forEach((textNode) => {
662
- const text = textNode.textContent;
663
- if (text && regex.test(text)) {
664
- const fragment = document.createDocumentFragment();
665
- text.split(regex).forEach((part) => {
666
- if (matchRegexes.some((rx) => rx.test(part))) {
667
- const mark = document.createElement("mark");
668
- mark.textContent = part;
669
- mark.setAttribute("data-search-highlight", "true");
670
- fragment.appendChild(mark);
671
- } else if (part) fragment.appendChild(document.createTextNode(part));
672
- });
673
- if (textNode.parentNode) textNode.parentNode.replaceChild(fragment, textNode);
674
- }
675
- });
676
- }
677
-
678
573
  //#endregion
679
574
  //#region src/client/components/primitives/helpers/observer.ts
680
575
  function getItemId(url) {
@@ -838,9 +733,10 @@ function AnchorProvider({ toc, single = false, observerOptions, children }) {
838
733
  children
839
734
  });
840
735
  }
841
- function OnThisPage({ children, className }) {
736
+ function OnThisPage({ children, className, label = "On this page" }) {
842
737
  return /* @__PURE__ */ jsx("nav", {
843
738
  "data-otp-root": true,
739
+ "aria-label": label,
844
740
  className,
845
741
  children
846
742
  });
@@ -935,7 +831,7 @@ function OnThisPageIndicator({ style, className }) {
935
831
  const items = useItems();
936
832
  useEffect(() => {
937
833
  if (items.length === 0) return;
938
- const parent = containerRef.current?.parentElement;
834
+ const parent = containerRef.current?.offsetParent;
939
835
  if (!parent) return;
940
836
  const activeLinks = parent.querySelectorAll("a[data-active=\"true\"]");
941
837
  if (activeLinks.length > 0) {
@@ -960,6 +856,7 @@ function OnThisPageIndicator({ style, className }) {
960
856
  return /* @__PURE__ */ jsx("div", {
961
857
  ref: containerRef,
962
858
  "data-otp-indicator": true,
859
+ "aria-hidden": "true",
963
860
  className: cn("absolute", className),
964
861
  style: {
965
862
  transition: "transform 180ms cubic-bezier(0.2, 0.8, 0.2, 1), height 180ms cubic-bezier(0.2, 0.8, 0.2, 1), opacity 150ms",
@@ -973,9 +870,9 @@ function OnThisPageIndicator({ style, className }) {
973
870
  function OnThisPageItems({ headings = [], className, itemClassName, linkClassName, indicatorClassName }) {
974
871
  const activeIds = useActiveAnchors();
975
872
  if (headings.length === 0) return null;
976
- return /* @__PURE__ */ jsxs(OnThisPageList, {
873
+ return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(OnThisPageIndicator, { className: indicatorClassName }), /* @__PURE__ */ jsx(OnThisPageList, {
977
874
  className,
978
- children: [/* @__PURE__ */ jsx(OnThisPageIndicator, { className: indicatorClassName }), headings.map((h) => /* @__PURE__ */ jsx(OnThisPageItem, {
875
+ children: headings.map((h) => /* @__PURE__ */ jsx(OnThisPageItem, {
979
876
  level: h.level,
980
877
  className: itemClassName,
981
878
  children: /* @__PURE__ */ jsx(OnThisPageLink, {
@@ -984,8 +881,8 @@ function OnThisPageItems({ headings = [], className, itemClassName, linkClassNam
984
881
  className: linkClassName,
985
882
  children: h.text
986
883
  })
987
- }, h.id))]
988
- });
884
+ }, h.id))
885
+ })] });
989
886
  }
990
887
  /**
991
888
  * High-level automated Table of Contents tree
@@ -1032,6 +929,7 @@ OnThisPage.Tree = OnThisPageTree;
1032
929
  //#region src/client/components/primitives/page-nav.tsx
1033
930
  function PageNav({ children, className }) {
1034
931
  return /* @__PURE__ */ jsx("nav", {
932
+ "aria-label": "Pagination",
1035
933
  className: cn("grid sm:grid-cols-2 gap-4", className),
1036
934
  children
1037
935
  });
@@ -1131,7 +1029,7 @@ function SidebarHeader({ children, className }) {
1131
1029
  * The scroll container doubles as the semantic `<nav>` landmark. State and
1132
1030
  * scroll-position handling live here; all visuals belong to the theme.
1133
1031
  */
1134
- function SidebarContent({ children, className }) {
1032
+ function SidebarContent({ children, className, label = "Docs navigation" }) {
1135
1033
  const scrollRef = useRef(null);
1136
1034
  useLayoutEffect(() => {
1137
1035
  if (scrollRef.current) scrollRef.current.scrollTop = sidebarScrollPos;
@@ -1148,6 +1046,7 @@ function SidebarContent({ children, className }) {
1148
1046
  return /* @__PURE__ */ jsx("nav", {
1149
1047
  ref: scrollRef,
1150
1048
  "data-sidebar-content": true,
1049
+ "aria-label": label,
1151
1050
  className,
1152
1051
  children
1153
1052
  });
@@ -1454,4 +1353,4 @@ const DocsLayout = Object.assign(DocsLayoutRoot, {
1454
1353
  });
1455
1354
 
1456
1355
  //#endregion
1457
- export { UIProvider as A, IconRenderer as C, Popover$1 as D, Menu as E, ButtonGroup as O, useSidebar as S, Tabs as T, ScrollProvider as _, SidebarHeader as a, useItems as b, SidebarLink as c, SidebarSubGroup as d, PageNav as f, OnThisPageTree as g, OnThisPageItems as h, SidebarGroup as i, useUI as j, Breadcrumbs$1 as k, SidebarMobile as l, OnThisPage as m, Sidebar as n, SidebarItem as o, AnchorProvider as p, SidebarContent as r, SidebarItems as s, DocsLayout as t, SidebarRoot as u, useActiveAnchor as v, resolveIcon as w, useSearchHighlight as x, useActiveAnchors as y };
1356
+ export { useUI as A, resolveIcon as C, ButtonGroup as D, Popover$1 as E, Breadcrumbs$1 as O, IconRenderer as S, Menu as T, ScrollProvider as _, SidebarHeader as a, useItems as b, SidebarLink as c, SidebarSubGroup as d, PageNav as f, OnThisPageTree as g, OnThisPageItems as h, SidebarGroup as i, UIProvider as k, SidebarMobile as l, OnThisPage as m, Sidebar as n, SidebarItem as o, AnchorProvider as p, SidebarContent as r, SidebarItems as s, DocsLayout as t, SidebarRoot as u, useActiveAnchor as v, Tabs as w, useSidebar as x, useActiveAnchors as y };