boltdocs 2.7.10 → 2.8.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.
Files changed (193) hide show
  1. package/README.md +2 -2
  2. package/dist/banner-3N4Jd_L9.d.ts +100 -0
  3. package/dist/banner-MynZD_Ox.d.cts +100 -0
  4. package/dist/cache-BMUyNiiA.mjs +6 -0
  5. package/dist/cache-CKm45d2w.cjs +6 -0
  6. package/dist/client/index.cjs +2268 -1
  7. package/dist/client/index.d.cts +86 -110
  8. package/dist/client/index.d.ts +87 -111
  9. package/dist/client/index.js +2214 -1
  10. package/dist/client/mdx.cjs +12 -1
  11. package/dist/client/mdx.d.cts +39 -93
  12. package/dist/client/mdx.d.ts +38 -93
  13. package/dist/client/mdx.js +7 -1
  14. package/dist/client/primitives.cjs +60 -1
  15. package/dist/client/primitives.d.cts +411 -347
  16. package/dist/client/primitives.d.ts +411 -347
  17. package/dist/client/primitives.js +20 -1
  18. package/dist/docs-layout-CwCq42Zt.cjs +1348 -0
  19. package/dist/docs-layout-Dn6S5g59.js +1167 -0
  20. package/dist/doctor-BArviV8X.cjs +28 -0
  21. package/dist/doctor-CgLA7_Uv.mjs +28 -0
  22. package/dist/{doctor-CrytFkqW.cjs → doctor-DyNUVe96.cjs} +1 -1
  23. package/dist/{routes-DP1vmWRj.cjs → doctor-aN_leTbh.mjs} +1 -1
  24. package/dist/{generator-ClVanhvi.mjs → generator-BHCrLU6h.mjs} +2 -2
  25. package/dist/{generator-CHqxiQhF.cjs → generator-CC2yHzhZ.cjs} +2 -2
  26. package/dist/icons-dev-DvJ-hh9x.cjs +1209 -0
  27. package/dist/icons-dev-Oju24Wjp.js +845 -0
  28. package/dist/image-Ch4-GxdO.cjs +268 -0
  29. package/dist/image-Do8V9PCW.js +214 -0
  30. package/dist/mdx-D3A2_l7P.js +520 -0
  31. package/dist/mdx-PLhhPJRS.cjs +531 -0
  32. package/dist/node/cli-entry.cjs +3 -1
  33. package/dist/node/cli-entry.mjs +3 -1
  34. package/dist/node/index.cjs +1 -1
  35. package/dist/node/index.d.cts +258 -152
  36. package/dist/node/index.d.mts +258 -150
  37. package/dist/node/index.mjs +1 -1
  38. package/dist/node/routes/worker.cjs +1 -1
  39. package/dist/node/routes/worker.mjs +1 -1
  40. package/dist/node-BmlP0eBP.cjs +159 -0
  41. package/dist/node-Y8_4ayje.mjs +159 -0
  42. package/dist/package-2nFy_NsW.cjs +6 -0
  43. package/dist/{package--0Yf0t1N.mjs → package-DAbtltXX.mjs} +1 -1
  44. package/dist/parser-B7-6PyQz.cjs +6 -0
  45. package/dist/{parser-Aq8LoH-0.cjs → parser-BzB-zCkF.cjs} +1 -1
  46. package/dist/parser-WGZdWs0X.mjs +6 -0
  47. package/dist/routes-BDDSxAl0.mjs +6 -0
  48. package/dist/routes-DJNJ-rTt.cjs +6 -0
  49. package/dist/routes-DiYC4nD2.cjs +6 -0
  50. package/dist/routes-_Bb2f4eI.mjs +6 -0
  51. package/dist/search-dialog-BXVoecTx.cjs +483 -0
  52. package/dist/search-dialog-BYhOov4S.cjs +331 -0
  53. package/dist/search-dialog-C09riYmx.js +313 -0
  54. package/dist/search-dialog-CUeAfy-8.cjs +8 -0
  55. package/dist/search-dialog-D8gLkhUV.js +453 -0
  56. package/dist/search-dialog-DHc_8FFX.js +8 -0
  57. package/dist/{sidebar-CcBkrm06.d.cts → sidebar-DNq4_ZAa.d.ts} +118 -52
  58. package/dist/{sidebar-CyZS9YOm.d.ts → sidebar-Dlkgbxs6.d.cts} +118 -52
  59. package/dist/utils-BYITg7T5.mjs +7 -0
  60. package/dist/utils-Cjmx1hhk.cjs +7 -0
  61. package/dist/worker-pool-CtqklOXq.cjs +6 -0
  62. package/dist/worker-pool-k0DY6k8T.mjs +6 -0
  63. package/package.json +5 -6
  64. package/src/shared/config-utils.ts +4 -0
  65. package/src/shared/types.ts +52 -6
  66. package/dist/cache-Ba-DZQNH.cjs +0 -6
  67. package/dist/cache-BuMZ58L5.mjs +0 -6
  68. package/dist/cards-BakZPTz9.d.ts +0 -30
  69. package/dist/cards-CQn9mXZS.d.cts +0 -30
  70. package/dist/docs-layout-KoWNZc8_.js +0 -6
  71. package/dist/docs-layout-x2yKt2cL.cjs +0 -6
  72. package/dist/doctor-Be7Ly1oM.mjs +0 -21
  73. package/dist/doctor-jMxWZyLJ.cjs +0 -21
  74. package/dist/icons-dev-B_RZIyxu.js +0 -6
  75. package/dist/icons-dev-BlV3wWFT.cjs +0 -6
  76. package/dist/image-BHhTvQzr.cjs +0 -6
  77. package/dist/image-CqKzYD8f.js +0 -6
  78. package/dist/mdx-DudBEac0.js +0 -7
  79. package/dist/mdx-r4cDQxWu.cjs +0 -7
  80. package/dist/node-DtEDyN1u.cjs +0 -111
  81. package/dist/node-_1jhMGYx.mjs +0 -111
  82. package/dist/package-DrwtlXfk.cjs +0 -6
  83. package/dist/parser-CdNbqN5y.cjs +0 -6
  84. package/dist/parser-nE792MLO.mjs +0 -6
  85. package/dist/rolldown-runtime-fkIsjY3S.mjs +0 -6
  86. package/dist/routes-2k3tbUmC.cjs +0 -6
  87. package/dist/routes-CpxZIsMM.mjs +0 -6
  88. package/dist/search-dialog-B584t9ZF.js +0 -6
  89. package/dist/search-dialog-BvBopRsZ.cjs +0 -6
  90. package/dist/search-dialog-ByvGScjt.js +0 -6
  91. package/dist/search-dialog-Cyko6TJm.cjs +0 -6
  92. package/dist/search-dialog-D6BNohIJ.js +0 -6
  93. package/dist/search-dialog-DuYTIefy.cjs +0 -6
  94. package/dist/utils-CG65J0Sc.mjs +0 -7
  95. package/dist/utils-CKunkU96.cjs +0 -7
  96. package/dist/worker-pool-CGn7DrLb.mjs +0 -6
  97. package/dist/worker-pool-Crbqgw5R.cjs +0 -6
  98. package/src/client/app/config-context.tsx +0 -51
  99. package/src/client/app/doc-page.tsx +0 -38
  100. package/src/client/app/docs-layout.tsx +0 -28
  101. package/src/client/app/head.tsx +0 -122
  102. package/src/client/app/helmet-compat.tsx +0 -36
  103. package/src/client/app/mdx-component.tsx +0 -8
  104. package/src/client/app/mdx-components-context.tsx +0 -72
  105. package/src/client/app/routes-context.tsx +0 -34
  106. package/src/client/app/scroll-handler.tsx +0 -74
  107. package/src/client/app/theme-context.tsx +0 -103
  108. package/src/client/app/ui-context.tsx +0 -42
  109. package/src/client/components/docs-layout-default.tsx +0 -85
  110. package/src/client/components/icons-dev.tsx +0 -282
  111. package/src/client/components/mdx/callout.tsx +0 -97
  112. package/src/client/components/mdx/card.tsx +0 -99
  113. package/src/client/components/mdx/cards.tsx +0 -27
  114. package/src/client/components/mdx/code-block.tsx +0 -184
  115. package/src/client/components/mdx/field.tsx +0 -33
  116. package/src/client/components/mdx/image.tsx +0 -44
  117. package/src/client/components/mdx/index.ts +0 -19
  118. package/src/client/components/mdx/table.tsx +0 -54
  119. package/src/client/components/mdx/typographics.tsx +0 -120
  120. package/src/client/components/mdx/use-code-block.ts +0 -34
  121. package/src/client/components/primitives/breadcrumbs.tsx +0 -54
  122. package/src/client/components/primitives/button-group.tsx +0 -54
  123. package/src/client/components/primitives/button.tsx +0 -6
  124. package/src/client/components/primitives/code-block.tsx +0 -120
  125. package/src/client/components/primitives/docs-layout.tsx +0 -125
  126. package/src/client/components/primitives/error-boundary.tsx +0 -107
  127. package/src/client/components/primitives/heading.tsx +0 -128
  128. package/src/client/components/primitives/helpers/observer.ts +0 -141
  129. package/src/client/components/primitives/image.tsx +0 -26
  130. package/src/client/components/primitives/link.tsx +0 -102
  131. package/src/client/components/primitives/menu.tsx +0 -137
  132. package/src/client/components/primitives/navbar.tsx +0 -466
  133. package/src/client/components/primitives/on-this-page.tsx +0 -430
  134. package/src/client/components/primitives/page-nav.tsx +0 -51
  135. package/src/client/components/primitives/popover.tsx +0 -28
  136. package/src/client/components/primitives/search-dialog.tsx +0 -193
  137. package/src/client/components/primitives/sidebar.tsx +0 -423
  138. package/src/client/components/primitives/skeleton.tsx +0 -26
  139. package/src/client/components/primitives/tabs.tsx +0 -70
  140. package/src/client/components/primitives/tooltip.tsx +0 -81
  141. package/src/client/components/primitives/types.ts +0 -11
  142. package/src/client/components/ui-base/banner.tsx +0 -66
  143. package/src/client/components/ui-base/breadcrumbs.tsx +0 -44
  144. package/src/client/components/ui-base/copy-markdown.tsx +0 -107
  145. package/src/client/components/ui-base/error-boundary.tsx +0 -15
  146. package/src/client/components/ui-base/github-stars.tsx +0 -29
  147. package/src/client/components/ui-base/icons.tsx +0 -240
  148. package/src/client/components/ui-base/index.ts +0 -16
  149. package/src/client/components/ui-base/last-updated.tsx +0 -27
  150. package/src/client/components/ui-base/navbar.tsx +0 -266
  151. package/src/client/components/ui-base/not-found.tsx +0 -26
  152. package/src/client/components/ui-base/on-this-page.tsx +0 -57
  153. package/src/client/components/ui-base/page-nav.tsx +0 -50
  154. package/src/client/components/ui-base/search-dialog.tsx +0 -163
  155. package/src/client/components/ui-base/search-highlight.tsx +0 -10
  156. package/src/client/components/ui-base/sidebar.tsx +0 -92
  157. package/src/client/components/ui-base/tabs.tsx +0 -83
  158. package/src/client/components/ui-base/theme-toggle.tsx +0 -130
  159. package/src/client/components/ui-base/version-i18n.tsx +0 -80
  160. package/src/client/hooks/index.ts +0 -13
  161. package/src/client/hooks/use-analytics.ts +0 -272
  162. package/src/client/hooks/use-breadcrumbs.ts +0 -22
  163. package/src/client/hooks/use-i18n.ts +0 -182
  164. package/src/client/hooks/use-localized-to.ts +0 -113
  165. package/src/client/hooks/use-location.ts +0 -5
  166. package/src/client/hooks/use-navbar.ts +0 -130
  167. package/src/client/hooks/use-page-nav.ts +0 -46
  168. package/src/client/hooks/use-routes.ts +0 -108
  169. package/src/client/hooks/use-search-highlight.ts +0 -185
  170. package/src/client/hooks/use-search.ts +0 -118
  171. package/src/client/hooks/use-sidebar.ts +0 -205
  172. package/src/client/hooks/use-tabs.ts +0 -46
  173. package/src/client/hooks/use-version.ts +0 -111
  174. package/src/client/index.ts +0 -31
  175. package/src/client/mdx.ts +0 -2
  176. package/src/client/primitives.ts +0 -19
  177. package/src/client/ssg/boltdocs-shell.tsx +0 -148
  178. package/src/client/ssg/create-routes.tsx +0 -473
  179. package/src/client/ssg/index.ts +0 -4
  180. package/src/client/ssg/mdx-page.tsx +0 -38
  181. package/src/client/store/boltdocs-context.tsx +0 -137
  182. package/src/client/theme/neutral.css +0 -141
  183. package/src/client/theme/reset.css +0 -189
  184. package/src/client/types.ts +0 -116
  185. package/src/client/utils/cn.ts +0 -6
  186. package/src/client/utils/copy-clipboard.ts +0 -22
  187. package/src/client/utils/get-base-file-path.ts +0 -21
  188. package/src/client/utils/github.ts +0 -121
  189. package/src/client/utils/i18n.ts +0 -23
  190. package/src/client/utils/path.ts +0 -9
  191. package/src/client/utils/react-to-text.ts +0 -34
  192. package/src/client/virtual.d.ts +0 -24
  193. /package/dist/{meta-loader-CWg2gnbY.mjs → meta-loader-DzwDFtdT.mjs} +0 -0
@@ -1,111 +0,0 @@
1
- /**
2
- * Boltdocs - https://boltdocs.vercel.app
3
- * Copyright (c) 2026 Jesus Alcala
4
- * Licensed under the MIT License.
5
- */
6
- import{l as e,n as t,s as n,u as r}from"./utils-CG65J0Sc.mjs";import{r as i}from"./cache-BuMZ58L5.mjs";import{i as a,n as o,t as s}from"./routes-CpxZIsMM.mjs";import{c,i as l,l as u,n as d,o as f}from"./doctor-Be7Ly1oM.mjs";import*as p from"node:module";import{createRequire as m}from"node:module";import ee from"@vitejs/plugin-react";import h from"@tailwindcss/vite";import{loadEnv as te,normalizePath as g}from"vite";import _ from"node:path";import v from"fs";import{z as y}from"zod";import*as b from"@bdocs/dui";import{error as x,warn as ne}from"@bdocs/dui";import S from"node:fs";import re from"node:crypto";import{ViteImageOptimizer as ie}from"vite-plugin-image-optimizer";import ae from"semver";import C from"path";import{fileURLToPath as oe}from"node:url";import se from"@mdx-js/rollup";import ce from"remark-gfm";import le from"remark-frontmatter";import ue from"rehype-slug";import{visit as w}from"unist-util-visit";import{createJavaScriptRegexEngine as de}from"shiki/engine/javascript";import{createHighlighterCore as fe}from"shiki/core";import pe from"@shikijs/themes/github-light";import me from"@shikijs/themes/github-dark";import T from"@shikijs/themes/tokyo-night";import E from"@shikijs/themes/dracula";import D from"@shikijs/themes/nord";import O from"@shikijs/themes/one-dark-pro";import he from"@shikijs/themes/one-light";import ge from"@shikijs/langs/html";import _e from"@shikijs/langs/js";import ve from"@shikijs/langs/ts";import ye from"@shikijs/langs/tsx";import be from"@shikijs/langs/css";import xe from"@shikijs/langs/json";import Se from"@shikijs/langs/bash";import Ce from"@shikijs/langs/markdown";import we from"@shikijs/langs/mdx";import Te from"@shikijs/langs/yaml";import Ee from"@shikijs/langs/rust";import De from"@shikijs/langs/toml";import Oe from"@shikijs/langs/csv";function ke(e){return e.map(e=>({path:e.path,filePath:e.filePath,title:e.title,description:e.description||``,sidebarPosition:e.sidebarPosition,badge:e.badge,icon:e.icon,headings:e.headings||[],_content:e._content||``,_rawContent:e._rawContent||``,locale:e.locale,version:e.version,tab:e.tab,group:e.group,groupTitle:e.groupTitle,groupPosition:e.groupPosition,groupIcon:e.groupIcon,subRouteGroup:e.subRouteGroup,seo:e.seo,date:e.date,lastUpdated:e.lastUpdated,category:e.category,order:e.order,sidebarLabel:e.sidebarLabel,sidebarHidden:e.sidebarHidden,frontmatter:e.frontmatter,slugParts:e.slugParts}))}function Ae(e,n){let r=(n.siteUrl||``).replace(/\/$/,``);if(!r)return``;let i=n.seo?.indexing!==`all`&&n.seo?.indexing!==`public`;return`<?xml version="1.0" encoding="UTF-8"?>
7
- <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
8
- ${e.filter(e=>e.seo?.noindex||typeof e.seo?.robots==`string`&&e.seo.robots.includes(`noindex`)?!1:(i&&e.seo?.index,!0)).map(e=>` <url>
9
- <loc>${t(`${r}${e.path.startsWith(`/`)?e.path:`/${e.path}`}`)}</loc>
10
- <changefreq>weekly</changefreq>
11
- <priority>0.7</priority>
12
- </url>`).join(`
13
- `)}
14
- </urlset>`}function je(e){let t=e.siteUrl||``,n=t?`${t.replace(/\/$/,``)}/sitemap.xml`:``;if(e.seo?.indexing!==`all`&&e.seo?.indexing!==`public`&&e.seo?.indexing)return[`User-agent: *`,`Disallow: /`].filter(Boolean).join(`
15
- `);if(typeof e.robots==`string`)return e.robots;if(e.robots&&typeof e.robots==`object`){let t=e.robots.rules||[],r=e.robots.sitemaps||[],i=t.map(e=>{let t=`User-agent: ${e.userAgent}\n`;return e.allow&&(Array.isArray(e.allow)?t+=e.allow.map(e=>`Allow: ${e}`).join(`
16
- `)+`
17
- `:t+=`Allow: ${e.allow}\n`),e.disallow&&(Array.isArray(e.disallow)?t+=e.disallow.map(e=>`Disallow: ${e}`).join(`
18
- `)+`
19
- `:t+=`Disallow: ${e.disallow}\n`),t.trim()}).join(`
20
-
21
- `),a=[...n?[n]:[],...r].map(e=>`Sitemap: ${e}`).join(`
22
- `);return`${i}${a?`\n\n${a}`:``}`}return[`User-agent: *`,`Allow: /`,``,n?`Sitemap: ${n}`:``].filter(Boolean).join(`
23
- `)}function Me(e){return`<!doctype html>
24
- <html lang="en">
25
- <head>
26
- <meta charset="UTF-8" />
27
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
28
- <title>${e.theme?.title||`Boltdocs`}</title>
29
- </head>
30
- <body>
31
- <div id="root"></div>
32
- </body>
33
- </html>`}function Ne(e,t){(!e||!e.includes(`<body`)||!e.includes(`<head`))&&(e=Me(t));let n=t.theme,r=n?.title||`Boltdocs`;if(typeof r==`object`){let e=t.i18n?.defaultLocale||``;r=r[e]||Object.values(r)[0]||`Boltdocs`}let i=n?.description||``;if(typeof i==`object`){let e=t.i18n?.defaultLocale||``;i=i[e]||Object.values(i)[0]||``}let a=n?.favicon;!a&&n?.logo&&(a=typeof n.logo==`string`?n.logo:n.logo.light||n.logo.dark);let o=[a?`<link rel="icon" href="${a}">`:``,`<meta name="description" content="${i}">`,`<meta property="og:title" content="${r}">`,`<meta property="og:description" content="${i}">`,`<meta property="og:type" content="website">`,`<meta name="twitter:card" content="summary_large_image">`,`<meta name="twitter:title" content="${r}">`,`<meta name="twitter:description" content="${i}">`,`<meta name="generator" content="Boltdocs">`].filter(Boolean).join(`
34
- `);e=e.includes(`<title>`)?e.replace(/<title>.*?<\/title>/,`<title>${r}</title>`):e.replace(`</head>`,` <title>${r}</title>\n </head>`);let s=``;if(t.integrations?.ga4){let e=t.integrations.ga4;if(process.env.NODE_ENV===`production`||e.debug){let t=e.anonymizeIp?`gtag('set', 'ip', true);`:``,n=e.sendPageView===!1?`{send_page_view: false}`:`{}`,r=e.cookieFlags?`, {'cookie_flags': '${e.cookieFlags}'}`:``;s=`
35
- <!-- Google tag (gtag.js) - ${e.measurementId} -->
36
- <script async src="https://www.googletagmanager.com/gtag/js?id=${e.measurementId}"><\/script>
37
- <script>
38
- window.dataLayer = window.dataLayer || [];
39
- function gtag(){dataLayer.push(arguments);}
40
- gtag('js', new Date());
41
- ${t}
42
- gtag('config', '${e.measurementId}', ${n}${r});
43
- <\/script>
44
- `}}let c=``,l=``;if(t.integrations?.gtm){let e=t.integrations.gtm;if(process.env.NODE_ENV===`production`){let t=e.dataLayerName||`dataLayer`;c=`
45
- <!-- Google Tag Manager -->
46
- <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
47
- new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
48
- j=d.createElement(s),dl=l!='${t}'?'&l='+l:'';j.async=true;j.src=
49
- 'https://www.googletagmanager.com/gtm.js?id='+i+dl+'${e.preview?`&gtm_preview=${e.preview}`:``}';f.parentNode.insertBefore(j,f);
50
- })(window,document,'script','${t}','${e.tagId}');<\/script>
51
- <!-- End Google Tag Manager -->
52
- `,l=`
53
- <!-- Google Tag Manager (noscript) -->
54
- <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=${e.tagId}"
55
- height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
56
- <!-- End Google Tag Manager (noscript) -->
57
- `}}return e=e.replace(`</head>`,` ${o}\n
58
- <script>
59
- (function() {
60
- try {
61
- var stored = localStorage.getItem("boltdocs-theme");
62
- var isDark =
63
- stored === "dark" ||
64
- (stored !== "light" && window.matchMedia("(prefers-color-scheme: dark)").matches);
65
- document.documentElement.classList.toggle("dark", isDark);
66
- document.documentElement.dataset.theme = isDark ? "dark" : "light";
67
- } catch (e) {}
68
- })();
69
- <\/script>
70
- \n${s}${c} </head>`),l&&(e=e.replace(/<body([^>]*)>/,`<body$1>\n${l}`)),!e.includes(`src/main`)&&!e.includes(`virtual:boltdocs-entry`)&&(e=e.replace(`</body>`,` <script type="module">import "virtual:boltdocs-entry";<\/script>
71
- </body>`)),e}var k=class e extends Error{pluginName;constructor(t,n){super(`[plugin:${t}] ${n}`),this.name=`PluginError`,this.pluginName=t,Object.setPrototypeOf(this,e.prototype)}},A=class e extends k{constructor(t,n){super(t,`Validation failed: ${n}`),this.name=`PluginValidationError`,Object.setPrototypeOf(this,e.prototype)}},Pe=class e extends k{constructor(t,n){super(t,`Compatibility error: ${n}`),this.name=`PluginCompatibilityError`,Object.setPrototypeOf(this,e.prototype)}},j=class e extends k{constructor(t,n){super(t,`Missing required permission: '${n}'`),this.name=`PluginPermissionError`,Object.setPrototypeOf(this,e.prototype)}},Fe=class e extends k{hookName;constructor(t,n,r){super(t,`Error in hook '${n}': ${r.message}`),this.name=`PluginHookError`,this.hookName=n,this.stack=r.stack,Object.setPrototypeOf(this,e.prototype)}},Ie=class{data=new Map;getNamespaceKey(e,t){return`${e}:${t}`}get(e,t){let n=this.getNamespaceKey(e,t),r=this.data.get(n);if(r!==void 0)return typeof r==`object`&&r?JSON.parse(JSON.stringify(r)):r}set(e,t,n){let r=this.getNamespaceKey(e,t),i=typeof n==`object`&&n?JSON.parse(JSON.stringify(n)):n;this.data.set(r,i)}has(e,t){let n=this.getNamespaceKey(e,t);return this.data.has(n)}};const M=u.extend({version:y.string().optional(),boltdocsVersion:y.string().optional(),permissions:y.array(y.string()).optional(),hooks:y.object({beforeBuild:y.function().optional(),afterBuild:y.function().optional(),beforeDev:y.function().optional(),afterDev:y.function().optional(),configResolved:y.function().optional(),buildEnd:y.function().optional()}).optional()});function N(e,t){let n=[],r=new Set;for(let i of e){let e=M.safeParse(i);if(!e.success)throw new A(i.name||`unknown`,e.error.issues.map(e=>`${e.path.join(`.`)}: ${e.message}`).join(`, `));let a=e.data;if(r.has(a.name))throw new A(a.name,`Duplicate plugin name detected`);if(r.add(a.name),a.boltdocsVersion&&!ae.satisfies(t,a.boltdocsVersion))throw new Pe(a.name,`Plugin expects Boltdocs version ${a.boltdocsVersion}, but current is ${t}`);if(a.components){for(let[e,t]of Object.entries(a.components))if((t.includes(`..`)||C.isAbsolute(t))&&t.includes(`..`))throw new A(a.name,`Component '${e}' has an invalid path: traversal sequences are not allowed.`)}n.push(a)}return n}function P(e,t){return e.permissions?e.permissions.includes(t):!1}var F=class e{static checkPermission(e,t){if(!P(e,t))throw new j(e.name,t)}static getSanitizedCapabilities(e){return{remarkPlugins:P(e,`mdx:remark`)?e.remarkPlugins:[],rehypePlugins:P(e,`mdx:rehype`)?e.rehypePlugins:[],vitePlugins:P(e,`vite:config`)?e.vitePlugins:[],components:P(e,`components`)?e.components:{}}}static async executeWithIsolation(t,n,r,i){try{return e.checkPermission(t,n),await i()}catch(e){if(e instanceof j){ne(`Skipping hook '${r}' for plugin '${t.name}': ${e.message}`);return}throw e}}},I=class{plugins;config;store;constructor(e,t){this.plugins=e,this.config=t,this.store=new Ie}async runHook(e,...t){let n=this.getSortedPlugins();for(let r of n){if(!r.hooks?.[e])continue;let n=this.createContext(r),i=e.toLowerCase().includes(`build`),a=e.toLowerCase().includes(`dev`),o=i?`hooks:build`:a?`hooks:dev`:void 0;try{o?await F.executeWithIsolation(r,o,e,()=>r.hooks[e](n,...t)):await r.hooks[e](n,...t)}catch(t){let i=new Fe(r.name,e,t instanceof Error?t:Error(String(t)));n.logger.error(i)}}}getSortedPlugins(){let e=this.plugins.filter(e=>e.enforce===`pre`),t=this.plugins.filter(e=>!e.enforce),n=this.plugins.filter(e=>e.enforce===`post`);return[...e,...t,...n]}createContext(e){return{config:Object.freeze({...this.config}),meta:{name:e.name,version:e.version,boltdocsVersion:e.boltdocsVersion},store:{get:(e,t)=>this.store.get(e,t),set:(e,t,n)=>this.store.set(e,t,n),has:(e,t)=>this.store.has(e,t)},logger:this.createLogger(e.name)}}createLogger(e){let t=`[plugin:${e}]`;return{info:e=>b.info(`${t} ${e}`),warn:e=>b.warn(`${t} ${e}`),error:e=>{b.error(`${t} ${e instanceof Error?e.message:e}`)},debug:e=>b.debug(`${t} ${e}`)}}};function Le(e){return e}const L=_.dirname(oe(import.meta.url));function R(e){return typeof e==`string`?[e]:Array.isArray(e)?e.flatMap(R):e&&typeof e==`object`?Object.values(e).flatMap(R):[]}const Re=new Set([`title`,`description`,`permalink`,`sidebarPosition`,`sidebarLabel`,`sidebarHidden`,`hidden`,`category`,`order`,`badge`,`icon`,`date`,`lastUpdated`,`groupTitle`,`groupPosition`,`seo`]);function ze(e){let t=[];for(let n of e){let e=``;n.frontmatter&&(e=R(Object.entries(n.frontmatter).filter(([e])=>!Re.has(e)).map(([e,t])=>t)).join(` `));let r=e?`${n._content||``} ${e}`:n._content||``;if(t.push({id:n.path,title:n.title,content:r,url:n.path,display:n.groupTitle?`${n.groupTitle} > ${n.title}`:n.title,locale:n.locale,version:n.version}),n.headings)for(let e of n.headings)t.push({id:`${n.path}#${e.id}`,title:e.text,content:`${e.text} in ${n.title}`,url:`${n.path}#${e.id}`,display:`${n.title} > ${e.text}`,locale:n.locale,version:n.version})}return t}function z(t,n,r=!1){let i=C.resolve(process.cwd(),`index.css`),a=v.existsSync(i)?`import './index.css';`:``,o=n?.plugins?.flatMap(e=>Object.entries(e.components||{}))||[],s=o.map(([t,n])=>`import * as _comp_${t} from '${e(n)}';
72
- const ${t} = _comp_${t}.default || _comp_${t}['${t}'] || _comp_${t};`).join(`
73
- `),c=o.map(([e])=>e).join(`, `),l=C.basename(t.docsDir||`docs`),u=C.resolve(process.cwd(),t.docsDir||`docs`),d=[`tsx`,`ts`,`jsx`,`js`].map(e=>C.resolve(u,`pages-external/index.${e}`)).find(e=>v.existsSync(e));return`
74
- import { ViteReactSSG, createRoutes } from 'boltdocs/client';
75
- import _routes from 'virtual:boltdocs-routes.ts';
76
- import _config from 'virtual:boltdocs-config.ts';
77
- import _user_mdx_components from 'virtual:boltdocs-mdx-components.tsx';
78
- import _Layout from 'virtual:boltdocs-layout.tsx';
79
- ${a}
80
- ${s}
81
- ${d?`import * as _external_module from '${e(d)}';`:``}
82
-
83
- const mdxModules = import.meta.glob('/${l}/**/*.{md,mdx}', { eager: true });
84
-
85
- export const createRoot = ViteReactSSG(
86
- {
87
- routes: createRoutes({
88
- routesData: _routes,
89
- config: _config,
90
- mdxModules,
91
- Layout: _Layout,
92
- ${d?`externalPages: _external_module.pages, externalLayout: _external_module.layout,`:``}
93
- components: { ${c}${c?`, `:``} ...(_user_mdx_components || {}) },
94
- }),
95
- },
96
- ({ isClient }) => {
97
- // Boltdocs initialization hook
98
- if (isClient) {
99
- // Client-side initialization
100
- }
101
- },
102
- );
103
- `}let B=null,V=null;function Be(){B=null,V=null}function Ve(t,n,r,i){return{name:`vite-plugin-boltdocs-virtual-modules`,resolveId(t){let n=r()?.root||process.cwd();return t.includes(`boltdocs-entry.tsx`)||t===`virtual:boltdocs-entry`||t===`boltdocs-entry`||t===`\0virtual:boltdocs-entry`?e(_.resolve(n,`boltdocs-entry.tsx`)):t.includes(`boltdocs-client.mjs`)||t===`virtual:boltdocs-client`||t===`boltdocs-client`||t===`\0virtual:boltdocs-client.ts`?e(_.resolve(n,`boltdocs-client.mjs`)):t.startsWith(`virtual:boltdocs-`)?`\0`+t:t.startsWith(`\0virtual:boltdocs-`)?t:null},async load(a){let o=r()?.command===`build`,c=n();if(a.includes(`boltdocs-entry.tsx`)||a===`\0virtual:boltdocs-entry`)return z(t,c,o);if(a.includes(`boltdocs-client.mjs`)||a===`\0virtual:boltdocs-client.ts`||a===`virtual:boltdocs-client`){let t=L,n=t;for(;t!==_.parse(t).root;){if(S.existsSync(_.join(t,`package.json`))&&JSON.parse(S.readFileSync(_.join(t,`package.json`),`utf-8`)).name===`boltdocs`){n=t;break}t=_.dirname(t)}let r=_.join(n,`src/client/index.ts`),i=_.join(n,`dist/client/index.js`);return`export * from '${e(S.existsSync(r)?r:i)}';`}if(!a.startsWith(`\0virtual:boltdocs-`))return;let l=a.replace(`\0virtual:boltdocs-`,``).replace(/\.tsx?$/,``);if(l===`routes`){let e=ke(await s(i,c));return`export default ${JSON.stringify(e,null,2)};`}if(l===`config`){if(B===null){let{loadDirectoryMeta:e}=await import(`./meta-loader-CWg2gnbY.mjs`);B=await e(i)}let e=B,t={base:c?.base,theme:c?.theme,i18n:c?.i18n,versions:c?.versions,siteUrl:c?.siteUrl,integrations:c?.integrations,plugins:c?.plugins?.map(e=>({name:e.name})),directoryMeta:e};return`export default ${JSON.stringify(t,null,2)};`}if(l===`entry`)return z(t,c,o);if(l===`mdx-components`){let t=[`tsx`,`ts`,`jsx`,`js`],n=null;for(let e of t){let t=_.resolve(i,`mdx-components.${e}`);if(S.existsSync(t)){n=t;break}}if(n){let t=e(n);return`import * as components from '${t}';
104
- const mdxComponents = components.default || components;
105
- export default mdxComponents;
106
- export * from '${t}';`}return`export default {};`}if(l===`layout`){let t=[`tsx`,`jsx`],n=null;for(let e of t){let t=_.resolve(i,`layout.${e}`);if(S.existsSync(t)){n=t;break}}if(n)return`import UserLayout from '${e(n)}';
107
- export default UserLayout;`;throw Error(`[Boltdocs] Layout file not found. A 'layout.tsx' or 'layout.jsx' file is mandatory in your docs directory. Please create one to define your site structure.`)}if(l===`icons`){let t=[`tsx`,`jsx`,`ts`,`js`],n=null;for(let e of t){let t=_.resolve(i,`icons.${e}`);if(S.existsSync(t)){n=t;break}}return n?`import * as icons from '${e(n)}';\nexport default icons;`:`export default {};`}if(l===`search`){if(!V){let e=ze(await s(i,c));V=`export default ${JSON.stringify(e,null,2)};`}return V}if(l===`client`){let t=L,n=``;for(;t&&t!==_.parse(t).root;){let r=_.join(t,`src/client/index.ts`),i=_.join(t,`dist/client/index.mjs`),a=_.join(t,`client/index.ts`);if(S.existsSync(r)){n=e(r);break}if(S.existsSync(i)){n=e(i);break}if(S.existsSync(a)){n=e(a);break}t=_.dirname(t)}if(!n)throw Error(`[boltdocs] Could not resolve boltdocs/client entry point starting from ${L}`);return`export * from '${n}';`}}}}const He={"X-Content-Type-Options":`nosniff`,"X-Frame-Options":`DENY`,"X-XSS-Protection":`1; mode=block`,"Referrer-Policy":`strict-origin-when-cross-origin`,"Permissions-Policy":`camera=(), microphone=(), geolocation=()`,"Strict-Transport-Security":`max-age=31536000; includeSubDomains`};function Ue(e){let t=process.env.NODE_ENV===`development`,n={"default-src":[`'self'`],"script-src":[`'self'`,`'unsafe-inline'`],"style-src":[`'self'`,`'unsafe-inline'`],"img-src":[`'self'`,`data:`,`https:`],"font-src":[`'self'`],"connect-src":[`'self'`]};return t&&(n[`script-src`]=[`'self'`,`'unsafe-eval'`,`'unsafe-inline'`],n[`style-src`]=[`'self'`,`'unsafe-inline'`]),Object.entries(n).map(([e,t])=>`${e} ${t.join(` `)}`).join(`; `)}const H=new Map;async function We(e){try{let{data:t}=await r(e),n=JSON.stringify(t);return re.createHash(`md5`).update(n).digest(`hex`)}catch{return``}}function Ge(e){return H.get(e)}function Ke(e,t){H.set(e,t)}function qe(e){H.delete(e)}function U(e,t){let n=e.moduleGraph.getModuleById(`\0virtual:boltdocs-${t}.ts`);n&&e.moduleGraph.invalidateModule(n)}function Je(t,r,i,s,u){let f=new Map;return{name:`vite-plugin-boltdocs-dev-server`,apply:`serve`,async configureServer(s){let p=u();await p?.runHook(`beforeDev`),d(t,process.cwd(),i()).catch(e=>{x(`Failed to generate initial link tree:`,e)}),setTimeout(async()=>{try{let{generateRoutes:e}=await import(`./routes-CpxZIsMM.mjs`).then(e=>e.r),n=await e(t,i());for(let e of n)if(e.filePath){let t=_.relative(process.cwd(),e.filePath).replace(/\\/g,`/`),n=t.startsWith(`/`)?t:`/${t}`;await s.transformRequest(n).catch(()=>{}),await new Promise(e=>setTimeout(e,50))}}catch{}},1e3),s.middlewares.use((e,t,n)=>{process.env.NODE_ENV===`production`&&Object.entries(He).forEach(([e,n])=>{t.setHeader(e,n)});let r=i();r.security?.enableCSP&&t.setHeader(`Content-Security-Policy`,Ue(r)),n()}),s.middlewares.use((e,t,n)=>{if(e.url===`/robots.txt`){n();return}n()}),s.middlewares.use(async(e,t,n)=>{let r=e.url?.split(`?`)[0]||`/`,a=e.headers.accept||``,o=i(),c=/\.(js|css|png|jpe?g|gif|svg|ico|webp|woff2?|ttf|otf|mp4|webm|ogg|mp3|wav|flac|aac|pdf|zip|gz|map|json)$/i.test(r);if(a.includes(`text/html`)&&!c){let n=Me(o);n=Ne(n,o),n=await s.transformIndexHtml(e.url||`/`,n),t.statusCode=200,t.setHeader(`Content-Type`,`text/html`),t.end(n);return}n()});let m=l.map(e=>_.resolve(process.cwd(),e)),ee=[`tsx`,`jsx`].map(e=>_.resolve(t,`layout.${e}`)),h=[`tsx`,`ts`,`jsx`,`js`],te=h.map(e=>_.resolve(t,`mdx-components.${e}`)),g=h.map(e=>_.resolve(t,`pages-external/index.${e}`)),v=h.map(e=>_.resolve(t,`icons.${e}`));s.watcher.add([...m,...te,...ee,...g,...v]);let y=async(u,p)=>{try{let m=e(u);if(l.some(e=>m.endsWith(e))){s.restart();return}if(h.some(e=>m.endsWith(`mdx-components.${e}`))){c(i(),t),U(s,`mdx-components.tsx`),s.ws.send({type:`full-reload`});return}if(h.some(e=>m.endsWith(`icons.${e}`))){U(s,`icons.tsx`),s.ws.send({type:`full-reload`});return}if(m.endsWith(`layout.tsx`)||m.endsWith(`layout.jsx`)){U(s,`layout.tsx`),s.ws.send({type:`full-reload`});return}if(m.includes(`/pages-external/`)||m.includes(`\\pages-external\\`)){U(s,`entry`),s.ws.send({type:`full-reload`});return}if(!m.toLowerCase().startsWith(r.toLowerCase())||!n(m))return;if(p===`add`||p===`unlink`){p===`unlink`&&qe(u),o(),Be();let e=i();c(e,t),U(s,`config`),U(s,`routes`),U(s,`search`),d(t,process.cwd(),e).catch(e=>{x(`Failed to update link tree:`,e)}),s.ws.send({type:`custom`,event:`boltdocs:config-update`,data:{theme:e?.theme,i18n:e?.i18n,versions:e?.versions,siteUrl:e?.siteUrl}}),s.ws.send({type:`full-reload`});return}f.has(m)&&clearTimeout(f.get(m)),f.set(m,setTimeout(async()=>{f.delete(m);try{let n=Ge(u),r=await We(u);Ke(u,r),a(u),n!==void 0&&n!==r&&(U(s,`routes`),U(s,`search`));let i=e(_.relative(t,u)),o=s.moduleGraph.getModulesByFile(m);if(o)for(let e of o)s.moduleGraph.invalidateModule(e);s.ws.send({type:`custom`,event:`boltdocs:mdx-update`,data:{file:m,relPath:i}})}catch(e){x(`HMR error processing content change:`,e)}},150))}catch(e){x(`HMR error during ${p} event:`,e)}};s.watcher.on(`add`,e=>y(e,`add`)),s.watcher.on(`unlink`,e=>y(e,`unlink`)),s.watcher.on(`change`,e=>y(e,`change`)),await p?.runHook(`afterDev`)},handleHotUpdate({file:t,server:i}){let a=e(t);if(a.toLowerCase().startsWith(r.toLowerCase())&&n(a))return[]}}}const W=p.createRequire(import.meta.url);function Ye(e){let t=_.dirname(e);for(;t&&t!==_.dirname(t);){let e=_.join(t,`package.json`);if(S.existsSync(e))return e;t=_.dirname(t)}return null}function Xe(e){let t=e.split(`/`);return e.startsWith(`@`)?{packageName:t.slice(0,2).join(`/`),subpath:t.slice(2).join(`/`)}:{packageName:t[0],subpath:t.slice(1).join(`/`)}}function G(e,t=W){try{let{packageName:n,subpath:r}=Xe(e),i;try{i=t.resolve(n+`/package.json`)}catch{i=Ye(t.resolve(n))||``}if(!i)throw Error(`Could not find package.json for ${n}`);let a=_.dirname(i),o=JSON.parse(S.readFileSync(i,`utf-8`)),s=``,c=r?`./`+r:`.`;if(o.exports){let e=o.exports[c]||o.exports[r];e&&(s=typeof e==`string`?e:e.import||e.default||e.require||e)}if(!s&&!r&&(s=o.module||o.main||`index.js`),typeof s==`object`&&(s=s.import||s.default||s.require||``),s){let e=_.resolve(a,s);if(S.existsSync(e))return e}}catch{}return t.resolve(e)}function Ze(){let t=[`react`,`react-dom`,`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`,`react-fast-compare`,`invariant`],n=[],r=W;try{let e=_.join(process.cwd(),`node_modules/boltdocs/package.json`);if(S.existsSync(e)){let t=S.realpathSync(e);r=p.createRequire(t)}else r=p.createRequire(_.join(process.cwd(),`package.json`))}catch{}for(let e of t)try{let t=``;t=e===`@bdocs/ssg`||e===`react-router-dom`||e===`react-helmet-async`?G(e,r):r.resolve(e),t&&n.push(S.realpathSync(t))}catch{}if(r!==W)for(let e of t)try{let t=``;t=e===`@bdocs/ssg`||e===`react-router-dom`||e===`react-helmet-async`?G(e,W):W.resolve(e),t&&n.push(S.realpathSync(t))}catch{}for(let e of[`react/jsx-runtime`,`react/jsx-dev-runtime`,`react-dom/client`]){try{n.push(S.realpathSync(r.resolve(e)))}catch{}if(r!==W)try{n.push(S.realpathSync(W.resolve(e)))}catch{}}return Array.from(new Set(n)).map(t=>e(t))}function Qe(t={},n){let r=_.resolve(process.cwd(),t.docsDir||`docs`),i=e(r),a=n,o,c=!1,l,u=[],d=()=>a;return[{name:`vite-plugin-boltdocs`,enforce:`pre`,async config(e,t){c=t.command===`build`;let n=!!(t.ssrBuild||t.ssr||e.build?.ssr),i=e.envDir||process.cwd(),o=te(t.mode,i,``);Object.assign(process.env,o),a||=await f(r);let d=(await import(`./package--0Yf0t1N.mjs`)).version,p=N(a.plugins||[],d);return a.plugins=p,l=new I(p,a),u=p.flatMap(e=>F.getSanitizedCapabilities(e).vitePlugins||[]),c&&await l.runHook(`beforeBuild`),{ssgOptions:{entry:`boltdocs/entry`,htmlEntry:`index.html`,dirStyle:`flat`,includeAllRoutes:!0,mock:!0,script:`async`,beastiesOptions:{preload:`media`},onFinished:async e=>{let t=Ae(ke(await s(r,a)),a);t&&S.writeFileSync(_.join(e,`sitemap.xml`),t);let n=je(a);S.writeFileSync(_.join(e,`robots.txt`),n)}},build:{ssrManifest:c},optimizeDeps:{include:[`react`,`react-dom`,`react-dom/client`,`react-router-dom`,`react-helmet-async`,`react-fast-compare`,`invariant`],exclude:[`boltdocs`,`boltdocs/client`]},resolve:{alias:[{find:`react-router-dom`,replacement:G(`react-router-dom`)},{find:`react-helmet-async`,replacement:G(`react-helmet-async`)},{find:`@bdocs/ssg`,replacement:G(`@bdocs/ssg`)}],dedupe:[`react`,`react-dom`,...n?[]:[`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`]]},ssr:{external:[`react`,`react-dom`,`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`,`react-fast-compare`,`invariant`,...Ze()],optimizeDeps:{include:[`react-fast-compare`,`invariant`]},noExternal:[]}}},configResolved(e){o=e,l?.runHook(`configResolved`,a)},resolveId(e,t,n){let r=[`react`,`react-dom`,`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`].find(t=>e===t||e.startsWith(t+`/`)||e.includes(`/node_modules/${t}/`)||t.startsWith(`@`)&&e.includes(`/node_modules/${t.replace(`/`,_.sep)}/`));if(r&&n?.ssr){let t=e;if(!_.isAbsolute(e)){let n=W;try{let e=_.join(process.cwd(),`node_modules/boltdocs/package.json`);if(S.existsSync(e)){let t=S.realpathSync(e);n=p.createRequire(t)}else n=p.createRequire(_.join(process.cwd(),`package.json`))}catch{}try{t=r===`@bdocs/ssg`||r===`react-router-dom`||r===`react-helmet-async`?G(e,n):n.resolve(e)}catch{try{t=r===`@bdocs/ssg`||r===`react-router-dom`||r===`react-helmet-async`?G(e,W):W.resolve(e)}catch{}}}try{t=S.realpathSync(t)}catch{}return{id:t,external:!0}}return null},transformIndexHtml:{order:`pre`,handler(e){return Ne(e,a)}},async buildEnd(){let{pool:e}=await import(`./worker-pool-CGn7DrLb.mjs`);await e.terminate()},async closeBundle(){!c||o?.build?.ssr||(await l?.runHook(`afterBuild`),await l?.runHook(`buildEnd`))},configurePreviewServer(e){let t=o?.build?.outDir?_.resolve(o.root||process.cwd(),o.build.outDir):_.resolve(process.cwd(),`dist`);e.middlewares.use((e,n,r)=>{let i=e.url||`/`,a=i.split(`?`)[0].split(`#`)[0];if(_.extname(a))return r();let o=a.replace(/\/$/,``)||`/`,s=_.join(t,o,`index.html`);o!==`/`&&S.existsSync(s)&&(e.url=`${o}/index.html${i.includes(`?`)?`?${i.split(`?`)[1]}`:``}`),r()})}},Ve(t,d,()=>o,r),Je(r,i,d,e=>{a=e},()=>l),{...ie({includePublic:!0,png:{quality:80},jpeg:{quality:80},jpg:{quality:80},webp:{quality:80},avif:{quality:80},svg:{multipass:!0,plugins:[{name:`preset-default`}]}}),apply:`build`},...u]}const K=new i(`mdx`),$e=[pe.default||pe,me.default||me,T.default||T,E.default||E,D.default||D,O.default||O,he.default||he],et=[ge,_e,ve,ye,be,xe,Se,Ce,we,Te,Ee,De,Oe];let q=null,J=null;const tt=()=>(q??=de(),q),nt=async e=>J||(J=fe({themes:$e,langs:et,engine:tt()}),J),Y={JSX_FLOW_ELEMENT:`mdxJsxFlowElement`,JSX_TEXT_ELEMENT:`mdxJsxTextElement`,JSX_ATTRIBUTE:`mdxJsxAttribute`,ELEMENT:`element`,TEXT:`text`,CODE:`code`},rt={PRE:`pre`,CODE:`code`},X={TITLE:`data-title`,LANG:`data-lang`,HIGHLIGHTED:`data-highlighted`,HIGHLIGHTED_HTML:`data-highlighted-html`},Z={LINE_NUMBERS:`shiki-line-numbers`,WORD_WRAP:`shiki-word-wrap`,FALLBACK:`shiki-fallback`},it={LIGHT:`github-light`,DARK:`github-dark`},Q={LANG:`plaintext`,MDX_DEFAULT_LANG:`text`},at=(e={})=>{let{activateByDefault:t=!1}=e;return{name:`boltdocs:line-numbers`,pre(e){let n=this.options.meta?.lineNumbers===!0;(t||n)&&this.addClassToHast(e,Z.LINE_NUMBERS)}}},ot=(e={})=>{let{activateByDefault:t=!1}=e;return{name:`boltdocs:word-wrap`,pre(e){let n=this.options.meta?.wordWrap===!0;(t||n)&&this.addClassToHast(e,Z.WORD_WRAP)}}},st=()=>({name:`AddTitleProperty`,pre(e){let t=this.options.meta?.title;t&&(e.properties[X.TITLE]=t)}}),ct=()=>({name:`AddLanguageProperty`,pre(e){e.properties[X.LANG]=this.options.lang||Q.LANG}});function lt(e){let t={};if(!e)return t;/lineNumbers|showLineNumbers/.test(e)&&(t.lineNumbers=!0),/wordWrap|word-wrap/.test(e)&&(t.wordWrap=!0);let n=e.match(/title=(["'])(.*?)\1/);return n&&(t.title=n[2]),t}var ut=class{config;constructor(e){this.config=e}getTheme(){return this.config?.theme?.codeTheme||{light:it.LIGHT,dark:it.DARK}}async getHighlighter(){return await nt(this.getTheme())}getOptions(e,t){let n=this.getTheme(),r={},i=``;typeof t==`string`?(i=t,r=lt(t)):t&&(r=t,i=t.__raw||``);let a={lang:e||Q.LANG,meta:{__raw:i,...r},transformers:[at(),ot(),st(),ct()]};return typeof n==`object`?a.themes={light:n.light,dark:n.dark}:a.theme=n,a}async render(e,t,n){try{let r=await this.getHighlighter(),i=this.getOptions(t,n);return r.codeToHtml(e,i)}catch(t){return console.error(`[ShikiAdapter] Failed to render code:`,t),`<pre class="${Z.FALLBACK}"><code>${dt(e)}</code></pre>`}}};function dt(e){return e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`).replace(/'/g,`&#039;`)}let $=null,ft;function pt(e){let t=JSON.stringify(e?.theme?.codeTheme||null);return($===null||ft!==t)&&($=new ut(e),ft=t),$}function mt(e){let t=pt(e);return async e=>{let n=await t.getHighlighter();w(e,Y.ELEMENT,e=>{if(e.tagName===rt.PRE&&e.children?.[0]?.type===Y.ELEMENT&&e.children[0].tagName===rt.CODE){let r=e.children[0],i=(r.properties?.className||[]).find(e=>e.startsWith(`language-`)),a=i?i.slice(9):Q.MDX_DEFAULT_LANG;if(a===`mermaid`)return;let o=r.children?.[0]?.value||``,s=lt(r.properties?.metastring||r.data?.meta||``),c=t.getOptions(a,s),l=``;try{l=n.codeToHtml(o,c)}catch(e){console.error(`[rehypeShiki] Failed to highlight code block:`,e),l=`<pre class="${Z.FALLBACK}"><code>${dt(o)}</code></pre>`}e.properties=e.properties||{},s.title&&(e.properties[X.TITLE]=s.title),e.properties[X.HIGHLIGHTED]=`true`,e.properties[X.HIGHLIGHTED_HTML]=l,e.properties[X.LANG]=a,e.children=[]}})}}function ht(){return e=>{w(e,Y.CODE,e=>{e.meta&&(e.data=e.data||{},e.data.hProperties=e.data.hProperties||{},e.data.hProperties.metastring=e.meta)})}}let gt=!1;function _t(e,t=se){let n=e?.plugins?.flatMap(e=>F.getSanitizedCapabilities(e).remarkPlugins||[])||[],r=e?.plugins?.flatMap(e=>F.getSanitizedCapabilities(e).rehypePlugins||[])||[],i=t({remarkPlugins:[ce,le,ht,...n],rehypePlugins:[ue,[mt,e],...r],jsxRuntime:`automatic`});return{...i,name:`vite-plugin-boltdocs-mdx`,async buildStart(){gt||=(await K.load(),!0),i.buildStart&&await i.buildStart.call(this)},async transform(e,t,n){let[r]=t.split(`?`);if(!r.endsWith(`.md`)&&!r.endsWith(`.mdx`))return i.transform?.call(this,e,t,n);let a=`${r}:${re.createHash(`md5`).update(e).digest(`hex`)}:${process.env.NODE_ENV===`production`?`prod`:`dev`}:v3`,o=await K.getAsync(a);if(o)return{code:o,map:null};let s=await i.transform.call(this,e,r,n);return s&&typeof s==`object`&&s.code&&(process.env.NODE_ENV!==`production`&&(s.code+=`
108
- if (import.meta.hot) {
109
- import.meta.hot.accept();
110
- }
111
- `),K.set(a,s.code)),s},async buildEnd(){K.save(),await K.flush(),i.buildEnd&&await i.buildEnd.call(this)}}}m(import.meta.url);async function vt(e){let t=await f(e?.docsDir||`docs`);return[...Qe({...e},t),_t(t)]}async function yt(e,t=`development`){let n=await f(`docs`,e),r=t===`production`,i=r?{...He}:{};return n.security?.enableCSP&&(i[`Content-Security-Policy`]=Ue(n)),{root:e,mode:t,oxc:{jsx:{development:!r,runtime:`automatic`,importSource:`react`}},optimizeDeps:{include:[`react`,`react-dom`,`react-dom/client`,`react-helmet-async`,`react-router-dom`,`react-fast-compare`,`invariant`,`use-sync-external-store/shim`]},build:{},plugins:[ee(),h(),...Qe({docsDir:`docs`,root:e},n),_t(n)],resolve:{alias:[{find:`boltdocs/entry`,replacement:g(_.resolve(e,`boltdocs-entry.tsx`))},{find:`boltdocs/client`,replacement:g(_.resolve(e,`boltdocs-client.mjs`))},{find:`use-sync-external-store/shim/index.js`,replacement:`react`},{find:`use-sync-external-store/shim`,replacement:`react`},{find:`use-sync-external-store`,replacement:`react`}],dedupe:[`react`,`react-dom`]},ssr:{external:[`react`,`react-dom`,`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`,`react-fast-compare`,`invariant`,...Ze()],optimizeDeps:{include:[`react-fast-compare`,`invariant`,...n.vite?.ssr?.optimizeDeps?.include||[]]},noExternal:[`boltdocs`,/@bdocs\/(?!ssg).*/,`react-aria-components`,`@react-aria/collections`,`@react-aria/utils`]},server:{headers:{...i,...n.vite?.server?.headers},...n.vite?.server},preview:{headers:{...i,...n.vite?.preview?.headers},...n.vite?.preview},...n.vite}}export{I as a,P as c,Pe as d,k as f,A as h,Le as i,N as l,j as m,yt as n,F as o,Fe as p,z as r,M as s,vt as t,Ie as u};
@@ -1,6 +0,0 @@
1
- /**
2
- * Boltdocs - https://boltdocs.vercel.app
3
- * Copyright (c) 2026 Jesus Alcala
4
- * Licensed under the MIT License.
5
- */
6
- var e=`2.7.10`;Object.defineProperty(exports,`version`,{enumerable:!0,get:function(){return e}});
@@ -1,6 +0,0 @@
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-CU-zTemE.cjs`),t=require(`./utils-CKunkU96.cjs`),n=require(`./cache-Ba-DZQNH.cjs`);let r=require(`node:path`);r=e.t(r);let i=require(`github-slugger`);i=e.t(i);function a(e,n,i,a,o){let s=r.default.relative(n,e).replace(/\\/g,`/`),c=s.split(`/`),l,u,d;if(a?.versions&&c.length>0){let e=c[0],t=a.versions.prefix||``,n=a.versions.versions.find(n=>e===t+n.path||e===n.path);n&&(u=n.path,c=c.slice(1))}if(a?.i18n&&c.length>0){let e=c[0];(Array.isArray(a.i18n.locales)?a.i18n.locales.includes(e):a.i18n.locales[e])&&(l=e,c=c.slice(1))}if(c.length>0){let e=c[0].match(/^\((.+)\)$/);e&&(d=e[1].toLowerCase(),c=c.slice(1))}let f=[...c],p=c.map(e=>t.m(e)).join(`/`),m=o?o.startsWith(`/`)?o:`/${o}`:t.i(p||`index.md`),h=[i,u,l,o?void 0:d,m].filter(Boolean).join(`/`).replace(/\/+/g,`/`).replace(/\/$/,``)||`/`;return{relativePath:s,finalPath:h.startsWith(`/`)?h:`/${h}`,remainingParts:f,locale:l,version:u,inferredTab:d,subRouteGroup:void 0}}const o=/^(#{2,4})\s+(.+)$/gm,s=/\[([^\]]+)\]\([^)]+\)/g,c=/[_*`]/g,l=/\s+/g,u=/[[\]_*`]|#+.*$|\{[^}]+\}/gm,d=/\((?:[^)]+)\)/g;function f(e,n){let r=new i.default,a=[];for(let n of e.matchAll(o)){let e=n[1].length,i=t.f(n[2].replace(s,`$1`).replace(c,``).trim()).trim(),o=r.slug(i);a.push({level:e,text:i,id:o})}let f=t.p(e.replace(u,``).replace(d,``).replace(l,` `)).trim(),p=n?t.f(n).trim():``;return!p&&e&&(p=f.substring(0,160)),{headings:a,description:p,plainText:f}}const p=[`og:`,`twitter:`,`article:`,`music:`,`video:`,`profile:`,`book:`],m=[`noindex`,`robots`,`canonical`,`keywords`,`author`];function h(e){let t={};e.seo&&typeof e.seo==`object`&&Object.assign(t,e.seo);for(let n of Object.keys(e))(m.includes(n)||p.some(e=>n.startsWith(e)))&&(t[n]=e[n]);return e.hidden===!0&&t.noindex===void 0&&(t.noindex=!0),Object.keys(t).length>0?t:void 0}function g(e){return{title:e.title?t.f(String(e.title)):void 0,badge:e.badge?t.f(String(e.badge)):void 0,description:e.description?t.f(String(e.description)):void 0}}async function _(e,i,o,s){let c=await n.t.get(e);if(c)return c;let l=e.replace(/\\/g,`/`),u=i.replace(/\\/g,`/`),d=v(l),p=r.default.resolve(d),m=r.default.resolve(u);if(r.default.sep===`/`){let e=e=>{let t=e.replace(/\\/g,`/`);return/^[a-zA-Z]:/.test(t)&&(t=t.replace(/^[a-zA-Z]:/,``)),r.default.resolve(t)};p=e(d),m=e(u)}let _=r.default.relative(m,p).replace(/\\/g,`/`);if(_.startsWith(`../`)||_!==`.`&&!t.y.test(_))throw new t.g(`Security breach: File is outside of docs directory, contains null bytes, or invalid path characters: ${r.default.basename(d)}`);let{data:y,content:b}=await t.u(e),x=a(p,m,o,s,y.permalink),S=f(b,y.description),C=g(y),w=h(y),T=r.default.basename(x.relativePath),E=t.m(T),D=x.remainingParts.map(e=>t.m(e)).slice(0,-1),O=/^index\.mdx?$/.test(E),k=y.sidebarPosition??t.r(T),A=D.join(`/`),j={route:{path:x.finalPath,componentPath:e,filePath:x.relativePath,title:C.title||t.m(r.default.basename(l,r.default.extname(l))),description:S.description,sidebarPosition:k,headings:S.headings,locale:x.locale,version:x.version,badge:C.badge,icon:y.icon?String(y.icon):void 0,tab:x.inferredTab,subRouteGroup:x.subRouteGroup,slugParts:D,_content:S.plainText,_rawContent:b,date:y.date,lastUpdated:y.lastUpdated,category:y.category,order:y.order,sidebarLabel:y.sidebarLabel,sidebarHidden:y.sidebarHidden||y.hidden,seo:w,frontmatter:y},relativeDir:A||void 0,isGroupIndex:O,inferredTab:x.inferredTab,groupMeta:O?{title:y.groupTitle||C.title||(D.length>0?t.t(D[D.length-1]):``),position:y.groupPosition??y.sidebarPosition??(x.remainingParts.length>1?t.r(x.remainingParts[x.remainingParts.length-2]):void 0),icon:y.icon?String(y.icon):void 0}:void 0,inferredGroupPosition:x.remainingParts.length>1?t.r(x.remainingParts[x.remainingParts.length-2]):void 0};return await n.t.set(e,j),j}function v(e){let n;try{n=decodeURIComponent(e)}catch{throw t.c(`SECURITY_ERROR`,`Invalid encoding in path`,{file:e}),new t.h(`Security breach: Invalid characters or encoding in path`)}if(n.length>260)throw new t.g(`Path length exceeds limit`);return n}Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return _}});
@@ -1,6 +0,0 @@
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"./rolldown-runtime-fkIsjY3S.mjs";import{c as t,f as n,g as r,h as i,i as a,m as o,p as s,r as c,t as l,u,y as d}from"./utils-CG65J0Sc.mjs";import{t as f}from"./cache-BuMZ58L5.mjs";import p from"node:path";import m from"github-slugger";function h(e,t,n,r,i){let s=p.relative(t,e).replace(/\\/g,`/`),c=s.split(`/`),l,u,d;if(r?.versions&&c.length>0){let e=c[0],t=r.versions.prefix||``,n=r.versions.versions.find(n=>e===t+n.path||e===n.path);n&&(u=n.path,c=c.slice(1))}if(r?.i18n&&c.length>0){let e=c[0];(Array.isArray(r.i18n.locales)?r.i18n.locales.includes(e):r.i18n.locales[e])&&(l=e,c=c.slice(1))}if(c.length>0){let e=c[0].match(/^\((.+)\)$/);e&&(d=e[1].toLowerCase(),c=c.slice(1))}let f=[...c],m=c.map(e=>o(e)).join(`/`),h=i?i.startsWith(`/`)?i:`/${i}`:a(m||`index.md`),g=[n,u,l,i?void 0:d,h].filter(Boolean).join(`/`).replace(/\/+/g,`/`).replace(/\/$/,``)||`/`;return{relativePath:s,finalPath:g.startsWith(`/`)?g:`/${g}`,remainingParts:f,locale:l,version:u,inferredTab:d,subRouteGroup:void 0}}const g=/^(#{2,4})\s+(.+)$/gm,_=/\[([^\]]+)\]\([^)]+\)/g,v=/[_*`]/g,y=/\s+/g,b=/[[\]_*`]|#+.*$|\{[^}]+\}/gm,x=/\((?:[^)]+)\)/g;function S(e,t){let r=new m,i=[];for(let t of e.matchAll(g)){let e=t[1].length,a=n(t[2].replace(_,`$1`).replace(v,``).trim()).trim(),o=r.slug(a);i.push({level:e,text:a,id:o})}let a=s(e.replace(b,``).replace(x,``).replace(y,` `)).trim(),o=t?n(t).trim():``;return!o&&e&&(o=a.substring(0,160)),{headings:i,description:o,plainText:a}}const C=[`og:`,`twitter:`,`article:`,`music:`,`video:`,`profile:`,`book:`],w=[`noindex`,`robots`,`canonical`,`keywords`,`author`];function T(e){let t={};e.seo&&typeof e.seo==`object`&&Object.assign(t,e.seo);for(let n of Object.keys(e))(w.includes(n)||C.some(e=>n.startsWith(e)))&&(t[n]=e[n]);return e.hidden===!0&&t.noindex===void 0&&(t.noindex=!0),Object.keys(t).length>0?t:void 0}function E(e){return{title:e.title?n(String(e.title)):void 0,badge:e.badge?n(String(e.badge)):void 0,description:e.description?n(String(e.description)):void 0}}async function D(e,t,n,i){let a=await f.get(e);if(a)return a;let s=e.replace(/\\/g,`/`),m=t.replace(/\\/g,`/`),g=O(s),_=p.resolve(g),v=p.resolve(m);if(p.sep===`/`){let e=e=>{let t=e.replace(/\\/g,`/`);return/^[a-zA-Z]:/.test(t)&&(t=t.replace(/^[a-zA-Z]:/,``)),p.resolve(t)};_=e(g),v=e(m)}let y=p.relative(v,_).replace(/\\/g,`/`);if(y.startsWith(`../`)||y!==`.`&&!d.test(y))throw new r(`Security breach: File is outside of docs directory, contains null bytes, or invalid path characters: ${p.basename(g)}`);let{data:b,content:x}=await u(e),C=h(_,v,n,i,b.permalink),w=S(x,b.description),D=E(b),k=T(b),A=p.basename(C.relativePath),j=o(A),M=C.remainingParts.map(e=>o(e)).slice(0,-1),N=/^index\.mdx?$/.test(j),P=b.sidebarPosition??c(A),F=M.join(`/`),I={route:{path:C.finalPath,componentPath:e,filePath:C.relativePath,title:D.title||o(p.basename(s,p.extname(s))),description:w.description,sidebarPosition:P,headings:w.headings,locale:C.locale,version:C.version,badge:D.badge,icon:b.icon?String(b.icon):void 0,tab:C.inferredTab,subRouteGroup:C.subRouteGroup,slugParts:M,_content:w.plainText,_rawContent:x,date:b.date,lastUpdated:b.lastUpdated,category:b.category,order:b.order,sidebarLabel:b.sidebarLabel,sidebarHidden:b.sidebarHidden||b.hidden,seo:k,frontmatter:b},relativeDir:F||void 0,isGroupIndex:N,inferredTab:C.inferredTab,groupMeta:N?{title:b.groupTitle||D.title||(M.length>0?l(M[M.length-1]):``),position:b.groupPosition??b.sidebarPosition??(C.remainingParts.length>1?c(C.remainingParts[C.remainingParts.length-2]):void 0),icon:b.icon?String(b.icon):void 0}:void 0,inferredGroupPosition:C.remainingParts.length>1?c(C.remainingParts[C.remainingParts.length-2]):void 0};return await f.set(e,I),I}function O(e){let n;try{n=decodeURIComponent(e)}catch{throw t(`SECURITY_ERROR`,`Invalid encoding in path`,{file:e}),new i(`Security breach: Invalid characters or encoding in path`)}if(n.length>260)throw new r(`Path length exceeds limit`);return n}var k=e({parseDocFile:()=>D});export{D as n,k as t};
@@ -1,6 +0,0 @@
1
- /**
2
- * Boltdocs - https://boltdocs.vercel.app
3
- * Copyright (c) 2026 Jesus Alcala
4
- * Licensed under the MIT License.
5
- */
6
- import"node:module";var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r};export{t};
@@ -1,6 +0,0 @@
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-CU-zTemE.cjs`),t=require(`./utils-CKunkU96.cjs`),n=require(`./cache-Ba-DZQNH.cjs`);let r=require(`node:path`);r=e.t(r);let i=require(`fdir`);const a=new n.n({name:`routes`});function o(){a.invalidateAll(),n.t.clear()}function s(e){a.invalidate(e),n.t.invalidate(e)}function c(e){return e.sort((e,t)=>!e.group&&!t.group?l(e,t):e.group?t.group?e.group===t.group?l(e,t):u(e,t):1:-1)}function l(e,t){return e.sidebarPosition!==void 0&&t.sidebarPosition!==void 0?e.sidebarPosition-t.sidebarPosition:e.sidebarPosition===void 0?t.sidebarPosition===void 0?e.title.localeCompare(t.title):1:-1}function u(e,t){return e.groupPosition!==void 0&&t.groupPosition!==void 0?e.groupPosition-t.groupPosition:e.groupPosition===void 0?t.groupPosition===void 0?(e.groupTitle||e.group).localeCompare(t.groupTitle||t.group):1:-1}let d=null;const f=new Map;let p=null;function m(){d=null,f.clear(),o()}async function h(e,n,o,s=!1){if(p)return p;let l=(async()=>{let l=o||n?.base||`/docs`;await a.load(),f.clear();let u;if(!s&&d)u=d;else{let t=await new i.fdir().withFullPaths().filter(t=>t.endsWith(`.md`)||t.endsWith(`.mdx`)?!r.default.relative(e,t).replace(/\\/g,`/`).split(`/`).some(e=>e.startsWith(`_`)&&e!==`_index.md`&&e!==`_index.mdx`):!1).crawl(e).withPromise(),n=[/index\./i,/intro/i,/getting-started/i,/readme/i],a=t.map(e=>{let t=r.default.basename(e),i=n.findIndex(e=>e.test(t));return{f:e,score:i===-1?2**53-1:i}});a.sort((e,t)=>e.score-t.score),u=a.map(e=>e.f),d=u}a.pruneStale(new Set(u));let p=process.env.NODE_ENV===`test`||process.env.VITEST===`true`,m;if(p){let{parseDocFile:t}=await Promise.resolve().then(()=>require(`./parser-Aq8LoH-0.cjs`));m=await Promise.all(u.map(async r=>{let i=a.get(r);if(i)return i;let o=await t(r,e,l,n);return a.set(r,o),o}))}else{let{pool:t}=await Promise.resolve().then(()=>require(`./worker-pool-Crbqgw5R.cjs`)),r=n?{i18n:n.i18n,versions:n.versions}:void 0;m=await Promise.all(u.map(async n=>{let i=a.get(n);if(i)return i;let o=await t.parseFile(n,e,l,r);return a.set(n,o),o}))}a.save();let h=new Map,_=[],v=n?.i18n?.defaultLocale||``;for(let e of m)if(e.isGroupIndex&&e.relativeDir&&_.push(e),e.relativeDir){let n=`${e.route.locale||v}:${e.relativeDir}`,r=h.get(n);r?r.position===void 0&&e.inferredGroupPosition!==void 0&&(r.position=e.inferredGroupPosition):(r={title:t.t(e.relativeDir),position:e.inferredGroupPosition},h.set(n,r))}for(let e of _){let t=`${e.route.locale||v}:${e.relativeDir}`,n=h.get(t);e.groupMeta&&(n.title=e.groupMeta.title,e.groupMeta.position!==void 0&&(n.position=e.groupMeta.position),e.groupMeta.icon&&(n.icon=e.groupMeta.icon))}if(n?.theme?.sidebarGroups){let e=n.i18n?Object.keys(n.i18n.locales):[v];for(let[r,i]of Object.entries(n.theme.sidebarGroups))for(let n of e){let e=`${n}:${r}`,a=h.get(e),o;typeof i.title==`string`?o=i.title:i.title&&(o=i.title[n]||i.title[v]),a?(o&&(a.title=o),i.icon&&(a.icon=i.icon)):h.set(e,{title:o||t.t(r),icon:i.icon})}}let y=Array(m.length);for(let e=0;e<m.length;e++){let n=m[e],r=n.relativeDir,i=n.route.locale||v,a=r?`${i}:${r}`:void 0,o=a?h.get(a):void 0,s;o&&(s=typeof o.title==`string`?o.title:o.title[i]||o.title[v]),y[e]={...n.route,group:r,groupTitle:s||(r?t.t(r):void 0),groupPosition:o?.position,groupIcon:o?.icon}}let b=y;if(n?.i18n){let e=g(y,n,l);b=[...y,...e]}return c(b)})();p=l;try{return await l}finally{p=null}}function g(e,t,n){let r=t.i18n.defaultLocale,i=Object.keys(t.i18n.locales),a=[],o=new Map,s=[];for(let t of e){let e=t.locale||r;o.has(e)||o.set(e,new Set),o.get(e).add(t.path),e===r&&s.push(t)}for(let e of i){let i=o.get(e)||new Set;for(let o of s){let s=_(o.path,r,e,n,t);s!==o.path&&(i.has(s)||a.push({...o,path:s,locale:e}))}}return a}function _(e,t,n,r,i){let a=`${e}:${n}`,o=f.get(a);if(o)return o;let s=r.startsWith(`/`)?r:`/`+r,c=s;if(i?.versions){let t=i.versions.prefix||``;for(let n of i.versions.versions){let r=`${s}/${t+n.path}`;if(e.startsWith(r)){c=r;break}let i=`${s}/${n.path}`;if(e.startsWith(i)){c=i;break}}}let l=e.substring(c.length),u=`/${t}`;if(l.startsWith(u+`/`))l=`/`+n+`/`+l.substring(u.length+1);else if(l===u)l=`/`+n;else if(l===`/`||l===``)l=`/`+n;else{let e=l.startsWith(`/`)?``:`/`;l=`/`+n+e+l}let d=c+l;return f.size>2e3&&f.clear(),f.set(a,d),d}Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return h}});
@@ -1,6 +0,0 @@
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"./rolldown-runtime-fkIsjY3S.mjs";import{t}from"./utils-CG65J0Sc.mjs";import{n,t as r}from"./cache-BuMZ58L5.mjs";import i from"node:path";import{fdir as a}from"fdir";const o=new n({name:`routes`});function s(){o.invalidateAll(),r.clear()}function c(e){o.invalidate(e),r.invalidate(e)}function l(e){return e.sort((e,t)=>!e.group&&!t.group?u(e,t):e.group?t.group?e.group===t.group?u(e,t):d(e,t):1:-1)}function u(e,t){return e.sidebarPosition!==void 0&&t.sidebarPosition!==void 0?e.sidebarPosition-t.sidebarPosition:e.sidebarPosition===void 0?t.sidebarPosition===void 0?e.title.localeCompare(t.title):1:-1}function d(e,t){return e.groupPosition!==void 0&&t.groupPosition!==void 0?e.groupPosition-t.groupPosition:e.groupPosition===void 0?t.groupPosition===void 0?(e.groupTitle||e.group).localeCompare(t.groupTitle||t.group):1:-1}var f=e({generateRoutes:()=>_,invalidateRouteCache:()=>g});let p=null;const m=new Map;let h=null;function g(){p=null,m.clear(),s()}async function _(e,n,r,s=!1){if(h)return h;let c=(async()=>{let c=r||n?.base||`/docs`;await o.load(),m.clear();let u;if(!s&&p)u=p;else{let t=await new a().withFullPaths().filter(t=>t.endsWith(`.md`)||t.endsWith(`.mdx`)?!i.relative(e,t).replace(/\\/g,`/`).split(`/`).some(e=>e.startsWith(`_`)&&e!==`_index.md`&&e!==`_index.mdx`):!1).crawl(e).withPromise(),n=[/index\./i,/intro/i,/getting-started/i,/readme/i],r=t.map(e=>{let t=i.basename(e),r=n.findIndex(e=>e.test(t));return{f:e,score:r===-1?2**53-1:r}});r.sort((e,t)=>e.score-t.score),u=r.map(e=>e.f),p=u}o.pruneStale(new Set(u));let d=process.env.NODE_ENV===`test`||process.env.VITEST===`true`,f;if(d){let{parseDocFile:t}=await import(`./parser-nE792MLO.mjs`).then(e=>e.t);f=await Promise.all(u.map(async r=>{let i=o.get(r);if(i)return i;let a=await t(r,e,c,n);return o.set(r,a),a}))}else{let{pool:t}=await import(`./worker-pool-CGn7DrLb.mjs`),r=n?{i18n:n.i18n,versions:n.versions}:void 0;f=await Promise.all(u.map(async n=>{let i=o.get(n);if(i)return i;let a=await t.parseFile(n,e,c,r);return o.set(n,a),a}))}o.save();let h=new Map,g=[],_=n?.i18n?.defaultLocale||``;for(let e of f)if(e.isGroupIndex&&e.relativeDir&&g.push(e),e.relativeDir){let n=`${e.route.locale||_}:${e.relativeDir}`,r=h.get(n);r?r.position===void 0&&e.inferredGroupPosition!==void 0&&(r.position=e.inferredGroupPosition):(r={title:t(e.relativeDir),position:e.inferredGroupPosition},h.set(n,r))}for(let e of g){let t=`${e.route.locale||_}:${e.relativeDir}`,n=h.get(t);e.groupMeta&&(n.title=e.groupMeta.title,e.groupMeta.position!==void 0&&(n.position=e.groupMeta.position),e.groupMeta.icon&&(n.icon=e.groupMeta.icon))}if(n?.theme?.sidebarGroups){let e=n.i18n?Object.keys(n.i18n.locales):[_];for(let[r,i]of Object.entries(n.theme.sidebarGroups))for(let n of e){let e=`${n}:${r}`,a=h.get(e),o;typeof i.title==`string`?o=i.title:i.title&&(o=i.title[n]||i.title[_]),a?(o&&(a.title=o),i.icon&&(a.icon=i.icon)):h.set(e,{title:o||t(r),icon:i.icon})}}let y=Array(f.length);for(let e=0;e<f.length;e++){let n=f[e],r=n.relativeDir,i=n.route.locale||_,a=r?`${i}:${r}`:void 0,o=a?h.get(a):void 0,s;o&&(s=typeof o.title==`string`?o.title:o.title[i]||o.title[_]),y[e]={...n.route,group:r,groupTitle:s||(r?t(r):void 0),groupPosition:o?.position,groupIcon:o?.icon}}let b=y;if(n?.i18n){let e=v(y,n,c);b=[...y,...e]}return l(b)})();h=c;try{return await c}finally{h=null}}function v(e,t,n){let r=t.i18n.defaultLocale,i=Object.keys(t.i18n.locales),a=[],o=new Map,s=[];for(let t of e){let e=t.locale||r;o.has(e)||o.set(e,new Set),o.get(e).add(t.path),e===r&&s.push(t)}for(let e of i){let i=o.get(e)||new Set;for(let o of s){let s=y(o.path,r,e,n,t);s!==o.path&&(i.has(s)||a.push({...o,path:s,locale:e}))}}return a}function y(e,t,n,r,i){let a=`${e}:${n}`,o=m.get(a);if(o)return o;let s=r.startsWith(`/`)?r:`/`+r,c=s;if(i?.versions){let t=i.versions.prefix||``;for(let n of i.versions.versions){let r=`${s}/${t+n.path}`;if(e.startsWith(r)){c=r;break}let i=`${s}/${n.path}`;if(e.startsWith(i)){c=i;break}}}let l=e.substring(c.length),u=`/${t}`;if(l.startsWith(u+`/`))l=`/`+n+`/`+l.substring(u.length+1);else if(l===u)l=`/`+n;else if(l===`/`||l===``)l=`/`+n;else{let e=l.startsWith(`/`)?``:`/`;l=`/`+n+e+l}let d=c+l;return m.size>2e3&&m.clear(),m.set(a,d),d}export{c as i,g as n,f as r,_ as t};
@@ -1,6 +0,0 @@
1
- /**
2
- * Boltdocs - https://boltdocs.vercel.app
3
- * Copyright (c) 2026 Jesus Alcala
4
- * Licensed under the MIT License.
5
- */
6
- import{G as e,X as t}from"./icons-dev-B_RZIyxu.js";import{n,t as r}from"./search-dialog-D6BNohIJ.js";import{useNavigate as i}from"react-router-dom";import{useCallback as a,useEffect as o,useMemo as s,useState as c}from"react";import{Fragment as l,jsx as u,jsxs as d}from"react/jsx-runtime";import{Index as f}from"flexsearch";import p from"virtual:boltdocs-search";function m(e){let{currentLocale:n,currentVersion:r}=t(),[i,a]=c(!1),[l,u]=c(``),[d,m]=c(null);o(()=>{if(!i||d)return;let e=new f({preset:`match`,tokenize:`full`,resolution:9,cache:!0});for(let t of p)e.add(t.id,`${t.title} ${t.content}`);m(e)},[i,d]);let h=s(()=>{let e=new Map;for(let t of p)e.set(t.id,t);return e},[]);return{isOpen:i,setIsOpen:a,query:l,setQuery:u,list:s(()=>{if(!l)return e.filter(e=>{let t=!n||e.locale===n,i=!r||e.version===r;return t&&i}).slice(0,10).map(e=>({id:e.path,title:e.title,path:e.path,bio:e.description||``,groupTitle:e.groupTitle}));if(!d)return[];let t=d.search(l,{limit:20,suggest:!0}),i=[],a=new Set;for(let e of t){let t=h.get(e);if(!t)continue;let o=!n||t.locale===n,s=!r||t.version===r;!o||!s||a.has(t.url)||(a.add(t.url),i.push({id:t.url,title:t.title,path:t.url,bio:t.display,groupTitle:t.display.split(` > `)[0],isHeading:t.url.includes(`#`)}))}return i.slice(0,10)},[l,d,n,r,e,h]),input:{value:l,onChange:e=>u(e.target.value)}}}function h({text:e,query:t}){if(!t||!e)return u(l,{children:e});let n=t.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`),r=RegExp(`(${n})`,`gi`);return u(l,{children:e.split(r).map((e,t)=>r.test(e)?u(`mark`,{className:`bg-primary-500/20 text-primary-600 dark:text-primary-400 font-bold px-0.5 rounded-sm`,children:e},t):e)})}function g({routes:t}){let{isOpen:s,setIsOpen:c,query:f,setQuery:p,list:g}=m(t),_=i();o(()=>{let e=e=>{(/Mac/.test(navigator.userAgent)?e.metaKey:e.ctrlKey)&&(e.key===`k`||e.key===`j`)&&(e.preventDefault(),c(e=>!e))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[c]);let v=a(e=>{let t=String(e);c(!1);let[n,r]=t.split(`#`);_(`${n}${f?`?hl=${encodeURIComponent(f)}`:``}${r?`#${r}`:``}`),r&&setTimeout(()=>{let e=document.getElementById(r);e&&e.scrollIntoView({behavior:`smooth`})},100)},[_,c,f]);return d(l,{children:[d(n.SearchTrigger.Desktop,{onPress:()=>c(!0),className:`rounded-xl border border-subtle bg-surface text-muted transition-all duration-200 hover:border-primary-500/50 hover:text-body hover:bg-soft/50 hover:shadow-sm active:scale-[0.98] focus-visible:ring-2 focus-visible:ring-primary-500/30`,children:[d(`div`,{className:`flex items-center gap-2`,children:[u(e,{size:16}),u(`span`,{className:`hidden sm:inline-block`,children:`Search docs...`})]}),u(n.SearchTrigger.Kbd,{className:`[&_kbd]:bg-main [&_kbd]:border [&_kbd]:border-subtle [&_kbd]:rounded [&_kbd]:px-1.5 [&_kbd]:h-5 [&_kbd]:w-5`})]}),u(n.SearchTrigger.Mobile,{onPress:()=>c(!0),className:`rounded-xl text-muted transition-all duration-200 hover:text-body active:scale-95 focus-visible:ring-2 focus-visible:ring-primary-500/30`,children:u(e,{size:20})}),u(r.Overlay,{isOpen:s,isDismissable:!0,onOpenChange:()=>c(!1),className:`fixed inset-0 z-100 flex items-center justify-center p-4 bg-black/40 backdrop-blur-xs animate-fade-in`,children:u(r.Content,{className:`w-full max-w-lg bg-main border border-subtle shadow-md rounded-2xl overflow-hidden p-6`,children:u(r.Dialog,{"aria-label":`Search documentation`,className:`flex flex-col min-h-0 h-[450px]`,children:d(r.Autocomplete,{onSelectionChange:v,className:`flex flex-col min-h-0`,children:[d(r.Input,{value:f,onChange:p,className:`flex items-center gap-2 border border-subtle bg-surface px-4 py-2.5 rounded-xl focus-within:border-primary-500 mb-4`,children:[u(r.Input.SearchInput,{placeholder:`Search documentation...`,className:`w-full bg-transparent outline-none text-body text-sm`}),f&&u(r.Input.Button,{onPress:()=>p(``),className:`text-muted hover:text-body text-xs cursor-pointer select-none`,children:`✕`})]}),u(r.List,{items:g,children:e=>d(r.Item,{onPress:()=>v(e.id),textValue:e.title,className:`flex items-center gap-3 px-4 py-2 rounded-xl group dark:hover:bg-primary-300/40 hover:bg-primary-200/50 transition-colors duration-100`,children:[u(r.Item.Icon,{isHeading:e.isHeading,className:`text-muted group-hover:text-primary-500 group-focus:text-primary-500`}),d(`div`,{className:`flex flex-col justify-center min-w-0`,children:[u(r.Item.Title,{className:`text-sm font-medium text-body truncate dark:group-hover:text-primary-100`,children:u(h,{text:e.title,query:f})}),u(r.Item.Bio,{className:`text-xs text-muted truncate`,children:u(h,{text:e.bio,query:f})})]})]},e.id)})]})})})})]})}export{m as n,g as t};
@@ -1,6 +0,0 @@
1
- /**
2
- * Boltdocs - https://boltdocs.vercel.app
3
- * Copyright (c) 2026 Jesus Alcala
4
- * Licensed under the MIT License.
5
- */
6
- const e=require(`./icons-dev-BlV3wWFT.cjs`);let t=require(`react`),n=require(`react/jsx-runtime`),r=require(`react-aria-components`);r=e.rt(r);const i=({children:t,className:r,...i})=>(0,n.jsx)(`header`,{className:e.y(`boltdocs-navbar sticky top-0 z-50 w-full`,r),...i,children:t}),a=({children:t,className:r})=>(0,n.jsx)(`div`,{className:e.y(`mx-auto flex lg:h-navbar max-w-(--breakpoint-3xl) items-center justify-between px-4 md:px-6`,r),children:t}),o=({children:t,className:r})=>(0,n.jsx)(`div`,{className:e.y(`flex flex-1 items-center justify-start gap-4 min-w-0`,r),children:t}),s=({children:t,className:r})=>(0,n.jsx)(`div`,{className:e.y(`flex flex-1 items-center justify-end gap-2 md:gap-4 min-w-0`,r),children:t}),c=({children:t,className:r})=>(0,n.jsx)(`div`,{className:e.y(`hidden lg:flex flex-1 justify-center items-center gap-4 px-4 min-w-0 w-full`,r),children:t}),l=({src:t,alt:r,width:i=24,height:a=24,className:o,href:s=`/`})=>(0,n.jsx)(e._,{href:s,className:e.y(`flex items-center gap-2 shrink-0 outline-none`,o),children:t?(0,n.jsx)(`img`,{src:t,alt:r,width:i,height:a,className:`h-6 w-6 object-contain`}):null}),u=({children:t,className:r,href:i=`/`})=>(0,n.jsx)(e._,{href:i,children:(0,n.jsx)(`span`,{className:e.y(`text-lg font-bold tracking-tight hidden sm:inline-block`,r),children:t})}),d=({children:t,className:r})=>(0,n.jsx)(`nav`,{className:e.y(`hidden md:flex items-center gap-6 text-sm font-medium`,r),children:t}),f=({label:t,href:r,to:i,className:a})=>(0,n.jsxs)(e._,{href:r,target:i===`external`?`_blank`:void 0,className:e.y(`transition-all outline-none`,a),children:[t,i===`external`&&(0,n.jsx)(`span`,{className:`ml-1 inline-block`,children:(0,n.jsx)(e.j,{size:12})})]}),p=({label:r,className:i,children:a})=>{let[o,s]=(0,t.useState)(!1);return(0,n.jsxs)(`div`,{className:e.y(`relative`,i),onMouseEnter:()=>{s(!0)},onMouseLeave:()=>{s(!1)},children:[(0,n.jsxs)(`div`,{className:e.y(`flex items-center gap-1 outline-none cursor-pointer select-none font-medium text-muted hover:text-body transition-colors`),children:[r,(0,n.jsx)(`svg`,{className:e.y(`w-4 h-4 transition-transform`,o&&`rotate-180`),fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,children:(0,n.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M19 9l-7 7-7-7`})})]}),o&&(0,n.jsx)(`div`,{className:`absolute top-full left-0 pt-1 z-[9999]`,children:(0,n.jsx)(`div`,{className:`min-w-[180px] p-1 bg-surface border border-subtle rounded-md shadow-lg`,children:a})})]})},m=({href:t,label:r,className:i})=>(0,n.jsx)(e._,{href:t,className:e.y(`block px-2 py-1.5 rounded hover:bg-surface`,i),children:r}),h={Desktop:({className:t,onPress:i,children:a})=>(0,n.jsx)(r.Button,{onPress:i,className:e.y(`hidden lg:flex items-center justify-between gap-2 px-3 py-2 text-sm outline-none cursor-pointer w-full max-w-[720px]`,t),children:a}),Mobile:({className:t,onPress:i,children:a})=>(0,n.jsx)(r.Button,{onPress:i,className:e.y(`lg:hidden flex h-10 w-10 items-center justify-center outline-none cursor-pointer`,t),"aria-label":`Search`,children:a}),Kbd:({className:r})=>{let[i,a]=(0,t.useState)(!1),o=i&&/Mac|iPod|iPhone|iPad/.test(navigator.platform);return(0,t.useEffect)(()=>{a(!0)},[]),(0,n.jsxs)(`div`,{className:e.y(`hidden sm:flex items-center gap-1 pointer-events-none select-none`,r),children:[(0,n.jsx)(`kbd`,{className:`flex items-center justify-center font-mono text-[10px]`,children:o?`⌘`:`Ctrl`}),(0,n.jsx)(`kbd`,{className:`flex items-center justify-center font-mono text-[10px]`,children:`K`})]})}},g=({className:t,theme:i,onThemeChange:a})=>(0,n.jsx)(r.ToggleButton,{isSelected:i===`dark`,onChange:a,className:e.y(`outline-none cursor-pointer`,t),"aria-label":`Toggle theme`,children:i===`dark`?(0,n.jsx)(e.K,{size:20}):(0,n.jsx)(e.H,{size:20})}),_=({name:t})=>{if(t===`github`)return(0,n.jsx)(e.s,{});if(t===`discord`)return(0,n.jsx)(e.o,{});if(t===`x`)return(0,n.jsx)(e.h,{});if(t===`bluesky`)return(0,n.jsx)(e.t,{})};i.Root=i,i.Left=o,i.Right=s,i.Center=c,i.Logo=l,i.Title=u,i.Links=d,i.Link=f,i.Dropdown=p,i.DropdownItem=m,i.SearchTrigger=h,i.Theme=g,i.Socials=({icon:t,link:r,className:i})=>(0,n.jsx)(e._,{href:r,target:`_blank`,rel:`noopener noreferrer`,className:e.y(`outline-none`,i),children:(0,n.jsx)(_,{name:t})}),i.Split=({className:t})=>(0,n.jsx)(r.Separator,{orientation:`vertical`,className:e.y(`h-full w-px`,t)}),i.Content=a,i.More=({onPress:t,className:i})=>(0,n.jsx)(r.Button,{onPress:t,className:e.y(`md:hidden flex items-center justify-center outline-none cursor-pointer`,i),"aria-label":`More navigation`,children:(0,n.jsx)(e.U,{size:20})}),i.MobileMenu=({isOpen:t,onClose:i,children:a,className:o})=>(0,n.jsx)(r.ModalOverlay,{isOpen:t,onOpenChange:e=>!e&&i(),isDismissable:!0,className:e.y(`fixed inset-0 z-60 md:hidden transition-all duration-100`,o),children:(0,n.jsx)(r.Modal,{className:`fixed inset-0 outline-none`,children:(0,n.jsxs)(r.Dialog,{className:`relative h-full outline-none flex flex-col p-6 pt-[calc(1.5rem+env(safe-area-inset-top,0px))] pb-[calc(1.5rem+env(safe-area-inset-bottom,0px))] px-[calc(1.5rem+env(safe-area-inset-left,0px))]`,children:[(0,n.jsxs)(`div`,{className:`flex items-center justify-between mb-6`,children:[(0,n.jsx)(`span`,{}),(0,n.jsx)(r.Button,{onPress:i,className:`flex items-center justify-center outline-none cursor-pointer text-muted hover:text-body transition-colors`,"aria-label":`Close menu`,children:(0,n.jsx)(e.J,{size:24})})]}),(0,n.jsx)(`nav`,{className:`flex-1 overflow-y-auto flex flex-col gap-4`,children:a})]})})}),i.MobileLink=({label:t,href:r,to:i,onPress:a,className:o})=>(0,n.jsx)(e._,{href:r,target:i===`external`?`_blank`:void 0,onClick:a,className:e.y(`group flex items-center outline-none`,o),children:t});const v=({className:t,...i})=>(0,n.jsx)(r.ModalOverlay,{className:e.y(`fixed inset-0 z-100`,t),...i});v.Root=v,v.Overlay=v,v.Content=({className:t,...i})=>(0,n.jsx)(r.Modal,{className:e.y(t),...i}),v.Dialog=({className:t,...i})=>(0,n.jsx)(r.Dialog,{className:e.y(`flex flex-col focus:outline-none`,t),...i}),v.Autocomplete=({children:t,className:i,onSelectionChange:a,...o})=>{let s=r.Autocomplete;return(0,n.jsx)(`div`,{className:e.y(`flex-1 min-h-0`,i),children:(0,n.jsx)(s,{...o,onSelectionChange:a,className:`flex flex-col min-h-0`,children:t})})},v.List=({children:t,className:i,...a})=>(0,n.jsx)(r.ListBox,{...a,className:e.y(`flex-1 overflow-y-auto outline-none min-h-0`,i),children:t}),v.Input=Object.assign(({className:t,...i})=>(0,n.jsx)(r.SearchField,{className:e.y(`flex items-center`,t),...i}),{SearchInput:({className:t,...i})=>(0,n.jsx)(r.Input,{className:e.y(`w-full bg-transparent outline-none border-none`,t),...i}),Button:({className:t,...i})=>(0,n.jsx)(r.Button,{slot:`clear`,className:e.y(t),...i})}),v.Item=Object.assign(({children:t,className:i,...a})=>(0,n.jsx)(r.ListBoxItem,{...a,className:e.y(`group flex items-center outline-none cursor-pointer`,i),children:r=>(0,n.jsxs)(n.Fragment,{children:[t,(r.isFocused||r.isSelected)&&(0,n.jsxs)(`div`,{className:`ml-auto opacity-50 flex items-center gap-1`,children:[(0,n.jsx)(`span`,{className:`text-[10px]`,children:`Select`}),(0,n.jsx)(e.A,{size:10})]})]})}),{Icon:({isHeading:t,className:r})=>(0,n.jsx)(`div`,{className:e.y(`shrink-0`,r),children:t?(0,n.jsx)(e.P,{size:18}):(0,n.jsx)(e.N,{size:18})}),Title:({children:t,className:r})=>(0,n.jsx)(`span`,{className:e.y(`block truncate flex-1`,r),children:t}),Bio:({children:t,className:r})=>(0,n.jsx)(`span`,{className:e.y(`ml-2 truncate hidden sm:inline`,r),children:t})}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return v}});
@@ -1,6 +0,0 @@
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"./search-dialog-B584t9ZF.js";export{e as SearchDialog};
@@ -1,6 +0,0 @@
1
- /**
2
- * Boltdocs - https://boltdocs.vercel.app
3
- * Copyright (c) 2026 Jesus Alcala
4
- * Licensed under the MIT License.
5
- */
6
- const e=require(`./search-dialog-DuYTIefy.cjs`);exports.SearchDialog=e.t;
@@ -1,6 +0,0 @@
1
- /**
2
- * Boltdocs - https://boltdocs.vercel.app
3
- * Copyright (c) 2026 Jesus Alcala
4
- * Licensed under the MIT License.
5
- */
6
- import{A as e,H as t,J as n,K as r,N as i,P as a,U as o,_ as s,h as c,j as l,o as u,s as d,t as f,y as p}from"./icons-dev-B_RZIyxu.js";import{useEffect as m,useState as h}from"react";import{Fragment as g,jsx as _,jsxs as v}from"react/jsx-runtime";import*as y from"react-aria-components";import{Button as b,Dialog as x,Modal as S,ModalOverlay as C,Separator as w,ToggleButton as T}from"react-aria-components";const E=({children:e,className:t,...n})=>_(`header`,{className:p(`boltdocs-navbar sticky top-0 z-50 w-full`,t),...n,children:e}),D=({children:e,className:t})=>_(`div`,{className:p(`mx-auto flex lg:h-navbar max-w-(--breakpoint-3xl) items-center justify-between px-4 md:px-6`,t),children:e}),O=({children:e,className:t})=>_(`div`,{className:p(`flex flex-1 items-center justify-start gap-4 min-w-0`,t),children:e}),k=({children:e,className:t})=>_(`div`,{className:p(`flex flex-1 items-center justify-end gap-2 md:gap-4 min-w-0`,t),children:e}),A=({children:e,className:t})=>_(`div`,{className:p(`hidden lg:flex flex-1 justify-center items-center gap-4 px-4 min-w-0 w-full`,t),children:e}),j=({src:e,alt:t,width:n=24,height:r=24,className:i,href:a=`/`})=>_(s,{href:a,className:p(`flex items-center gap-2 shrink-0 outline-none`,i),children:e?_(`img`,{src:e,alt:t,width:n,height:r,className:`h-6 w-6 object-contain`}):null}),M=({children:e,className:t,href:n=`/`})=>_(s,{href:n,children:_(`span`,{className:p(`text-lg font-bold tracking-tight hidden sm:inline-block`,t),children:e})}),N=({children:e,className:t})=>_(`nav`,{className:p(`hidden md:flex items-center gap-6 text-sm font-medium`,t),children:e}),P=({label:e,href:t,to:n,className:r})=>v(s,{href:t,target:n===`external`?`_blank`:void 0,className:p(`transition-all outline-none`,r),children:[e,n===`external`&&_(`span`,{className:`ml-1 inline-block`,children:_(l,{size:12})})]}),F=({label:e,className:t,children:n})=>{let[r,i]=h(!1);return v(`div`,{className:p(`relative`,t),onMouseEnter:()=>{i(!0)},onMouseLeave:()=>{i(!1)},children:[v(`div`,{className:p(`flex items-center gap-1 outline-none cursor-pointer select-none font-medium text-muted hover:text-body transition-colors`),children:[e,_(`svg`,{className:p(`w-4 h-4 transition-transform`,r&&`rotate-180`),fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,children:_(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M19 9l-7 7-7-7`})})]}),r&&_(`div`,{className:`absolute top-full left-0 pt-1 z-[9999]`,children:_(`div`,{className:`min-w-[180px] p-1 bg-surface border border-subtle rounded-md shadow-lg`,children:n})})]})},I=({href:e,label:t,className:n})=>_(s,{href:e,className:p(`block px-2 py-1.5 rounded hover:bg-surface`,n),children:t}),L={Desktop:({className:e,onPress:t,children:n})=>_(b,{onPress:t,className:p(`hidden lg:flex items-center justify-between gap-2 px-3 py-2 text-sm outline-none cursor-pointer w-full max-w-[720px]`,e),children:n}),Mobile:({className:e,onPress:t,children:n})=>_(b,{onPress:t,className:p(`lg:hidden flex h-10 w-10 items-center justify-center outline-none cursor-pointer`,e),"aria-label":`Search`,children:n}),Kbd:({className:e})=>{let[t,n]=h(!1),r=t&&/Mac|iPod|iPhone|iPad/.test(navigator.platform);return m(()=>{n(!0)},[]),v(`div`,{className:p(`hidden sm:flex items-center gap-1 pointer-events-none select-none`,e),children:[_(`kbd`,{className:`flex items-center justify-center font-mono text-[10px]`,children:r?`⌘`:`Ctrl`}),_(`kbd`,{className:`flex items-center justify-center font-mono text-[10px]`,children:`K`})]})}},R=({className:e,theme:n,onThemeChange:i})=>_(T,{isSelected:n===`dark`,onChange:i,className:p(`outline-none cursor-pointer`,e),"aria-label":`Toggle theme`,children:_(n===`dark`?r:t,{size:20})}),z=({name:e})=>{if(e===`github`)return _(d,{});if(e===`discord`)return _(u,{});if(e===`x`)return _(c,{});if(e===`bluesky`)return _(f,{})};E.Root=E,E.Left=O,E.Right=k,E.Center=A,E.Logo=j,E.Title=M,E.Links=N,E.Link=P,E.Dropdown=F,E.DropdownItem=I,E.SearchTrigger=L,E.Theme=R,E.Socials=({icon:e,link:t,className:n})=>_(s,{href:t,target:`_blank`,rel:`noopener noreferrer`,className:p(`outline-none`,n),children:_(z,{name:e})}),E.Split=({className:e})=>_(w,{orientation:`vertical`,className:p(`h-full w-px`,e)}),E.Content=D,E.More=({onPress:e,className:t})=>_(b,{onPress:e,className:p(`md:hidden flex items-center justify-center outline-none cursor-pointer`,t),"aria-label":`More navigation`,children:_(o,{size:20})}),E.MobileMenu=({isOpen:e,onClose:t,children:r,className:i})=>_(C,{isOpen:e,onOpenChange:e=>!e&&t(),isDismissable:!0,className:p(`fixed inset-0 z-60 md:hidden transition-all duration-100`,i),children:_(S,{className:`fixed inset-0 outline-none`,children:v(x,{className:`relative h-full outline-none flex flex-col p-6 pt-[calc(1.5rem+env(safe-area-inset-top,0px))] pb-[calc(1.5rem+env(safe-area-inset-bottom,0px))] px-[calc(1.5rem+env(safe-area-inset-left,0px))]`,children:[v(`div`,{className:`flex items-center justify-between mb-6`,children:[_(`span`,{}),_(b,{onPress:t,className:`flex items-center justify-center outline-none cursor-pointer text-muted hover:text-body transition-colors`,"aria-label":`Close menu`,children:_(n,{size:24})})]}),_(`nav`,{className:`flex-1 overflow-y-auto flex flex-col gap-4`,children:r})]})})}),E.MobileLink=({label:e,href:t,to:n,onPress:r,className:i})=>_(s,{href:t,target:n===`external`?`_blank`:void 0,onClick:r,className:p(`group flex items-center outline-none`,i),children:e});const B=({className:e,...t})=>_(y.ModalOverlay,{className:p(`fixed inset-0 z-100`,e),...t});B.Root=B,B.Overlay=B,B.Content=({className:e,...t})=>_(y.Modal,{className:p(e),...t}),B.Dialog=({className:e,...t})=>_(y.Dialog,{className:p(`flex flex-col focus:outline-none`,e),...t}),B.Autocomplete=({children:e,className:t,onSelectionChange:n,...r})=>{let i=y.Autocomplete;return _(`div`,{className:p(`flex-1 min-h-0`,t),children:_(i,{...r,onSelectionChange:n,className:`flex flex-col min-h-0`,children:e})})},B.List=({children:e,className:t,...n})=>_(y.ListBox,{...n,className:p(`flex-1 overflow-y-auto outline-none min-h-0`,t),children:e}),B.Input=Object.assign(({className:e,...t})=>_(y.SearchField,{className:p(`flex items-center`,e),...t}),{SearchInput:({className:e,...t})=>_(y.Input,{className:p(`w-full bg-transparent outline-none border-none`,e),...t}),Button:({className:e,...t})=>_(y.Button,{slot:`clear`,className:p(e),...t})}),B.Item=Object.assign(({children:t,className:n,...r})=>_(y.ListBoxItem,{...r,className:p(`group flex items-center outline-none cursor-pointer`,n),children:n=>v(g,{children:[t,(n.isFocused||n.isSelected)&&v(`div`,{className:`ml-auto opacity-50 flex items-center gap-1`,children:[_(`span`,{className:`text-[10px]`,children:`Select`}),_(e,{size:10})]})]})}),{Icon:({isHeading:e,className:t})=>_(`div`,{className:p(`shrink-0`,t),children:_(e?a:i,{size:18})}),Title:({children:e,className:t})=>_(`span`,{className:p(`block truncate flex-1`,t),children:e}),Bio:({children:e,className:t})=>_(`span`,{className:p(`ml-2 truncate hidden sm:inline`,t),children:e})});export{E as n,B as t};
@@ -1,6 +0,0 @@
1
- /**
2
- * Boltdocs - https://boltdocs.vercel.app
3
- * Copyright (c) 2026 Jesus Alcala
4
- * Licensed under the MIT License.
5
- */
6
- const e=require(`./icons-dev-BlV3wWFT.cjs`),t=require(`./search-dialog-BvBopRsZ.cjs`);let n=require(`react-router-dom`),r=require(`react`),i=require(`react/jsx-runtime`),a=require(`flexsearch`),o=require(`virtual:boltdocs-search`);o=e.rt(o);function s(t){let{currentLocale:n,currentVersion:i}=e.X(),[s,c]=(0,r.useState)(!1),[l,u]=(0,r.useState)(``),[d,f]=(0,r.useState)(null);(0,r.useEffect)(()=>{if(!s||d)return;let e=new a.Index({preset:`match`,tokenize:`full`,resolution:9,cache:!0});for(let t of o.default)e.add(t.id,`${t.title} ${t.content}`);f(e)},[s,d]);let p=(0,r.useMemo)(()=>{let e=new Map;for(let t of o.default)e.set(t.id,t);return e},[]);return{isOpen:s,setIsOpen:c,query:l,setQuery:u,list:(0,r.useMemo)(()=>{if(!l)return t.filter(e=>{let t=!n||e.locale===n,r=!i||e.version===i;return t&&r}).slice(0,10).map(e=>({id:e.path,title:e.title,path:e.path,bio:e.description||``,groupTitle:e.groupTitle}));if(!d)return[];let e=d.search(l,{limit:20,suggest:!0}),r=[],a=new Set;for(let t of e){let e=p.get(t);if(!e)continue;let o=!n||e.locale===n,s=!i||e.version===i;!o||!s||a.has(e.url)||(a.add(e.url),r.push({id:e.url,title:e.title,path:e.url,bio:e.display,groupTitle:e.display.split(` > `)[0],isHeading:e.url.includes(`#`)}))}return r.slice(0,10)},[l,d,n,i,t,p]),input:{value:l,onChange:e=>u(e.target.value)}}}function c({text:e,query:t}){if(!t||!e)return(0,i.jsx)(i.Fragment,{children:e});let n=t.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`),r=RegExp(`(${n})`,`gi`);return(0,i.jsx)(i.Fragment,{children:e.split(r).map((e,t)=>r.test(e)?(0,i.jsx)(`mark`,{className:`bg-primary-500/20 text-primary-600 dark:text-primary-400 font-bold px-0.5 rounded-sm`,children:e},t):e)})}function l({routes:a}){let{isOpen:o,setIsOpen:l,query:u,setQuery:d,list:f}=s(a),p=(0,n.useNavigate)();(0,r.useEffect)(()=>{let e=e=>{(/Mac/.test(navigator.userAgent)?e.metaKey:e.ctrlKey)&&(e.key===`k`||e.key===`j`)&&(e.preventDefault(),l(e=>!e))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[l]);let m=(0,r.useCallback)(e=>{let t=String(e);l(!1);let[n,r]=t.split(`#`);p(`${n}${u?`?hl=${encodeURIComponent(u)}`:``}${r?`#${r}`:``}`),r&&setTimeout(()=>{let e=document.getElementById(r);e&&e.scrollIntoView({behavior:`smooth`})},100)},[p,l,u]);return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(t.n.SearchTrigger.Desktop,{onPress:()=>l(!0),className:`rounded-xl border border-subtle bg-surface text-muted transition-all duration-200 hover:border-primary-500/50 hover:text-body hover:bg-soft/50 hover:shadow-sm active:scale-[0.98] focus-visible:ring-2 focus-visible:ring-primary-500/30`,children:[(0,i.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,i.jsx)(e.G,{size:16}),(0,i.jsx)(`span`,{className:`hidden sm:inline-block`,children:`Search docs...`})]}),(0,i.jsx)(t.n.SearchTrigger.Kbd,{className:`[&_kbd]:bg-main [&_kbd]:border [&_kbd]:border-subtle [&_kbd]:rounded [&_kbd]:px-1.5 [&_kbd]:h-5 [&_kbd]:w-5`})]}),(0,i.jsx)(t.n.SearchTrigger.Mobile,{onPress:()=>l(!0),className:`rounded-xl text-muted transition-all duration-200 hover:text-body active:scale-95 focus-visible:ring-2 focus-visible:ring-primary-500/30`,children:(0,i.jsx)(e.G,{size:20})}),(0,i.jsx)(t.t.Overlay,{isOpen:o,isDismissable:!0,onOpenChange:()=>l(!1),className:`fixed inset-0 z-100 flex items-center justify-center p-4 bg-black/40 backdrop-blur-xs animate-fade-in`,children:(0,i.jsx)(t.t.Content,{className:`w-full max-w-lg bg-main border border-subtle shadow-md rounded-2xl overflow-hidden p-6`,children:(0,i.jsx)(t.t.Dialog,{"aria-label":`Search documentation`,className:`flex flex-col min-h-0 h-[450px]`,children:(0,i.jsxs)(t.t.Autocomplete,{onSelectionChange:m,className:`flex flex-col min-h-0`,children:[(0,i.jsxs)(t.t.Input,{value:u,onChange:d,className:`flex items-center gap-2 border border-subtle bg-surface px-4 py-2.5 rounded-xl focus-within:border-primary-500 mb-4`,children:[(0,i.jsx)(t.t.Input.SearchInput,{placeholder:`Search documentation...`,className:`w-full bg-transparent outline-none text-body text-sm`}),u&&(0,i.jsx)(t.t.Input.Button,{onPress:()=>d(``),className:`text-muted hover:text-body text-xs cursor-pointer select-none`,children:`✕`})]}),(0,i.jsx)(t.t.List,{items:f,children:e=>(0,i.jsxs)(t.t.Item,{onPress:()=>m(e.id),textValue:e.title,className:`flex items-center gap-3 px-4 py-2 rounded-xl group dark:hover:bg-primary-300/40 hover:bg-primary-200/50 transition-colors duration-100`,children:[(0,i.jsx)(t.t.Item.Icon,{isHeading:e.isHeading,className:`text-muted group-hover:text-primary-500 group-focus:text-primary-500`}),(0,i.jsxs)(`div`,{className:`flex flex-col justify-center min-w-0`,children:[(0,i.jsx)(t.t.Item.Title,{className:`text-sm font-medium text-body truncate dark:group-hover:text-primary-100`,children:(0,i.jsx)(c,{text:e.title,query:u})}),(0,i.jsx)(t.t.Item.Bio,{className:`text-xs text-muted truncate`,children:(0,i.jsx)(c,{text:e.bio,query:u})})]})]},e.id)})]})})})})]})}Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return l}});
@@ -1,7 +0,0 @@
1
- /**
2
- * Boltdocs - https://boltdocs.vercel.app
3
- * Copyright (c) 2026 Jesus Alcala
4
- * Licensed under the MIT License.
5
- */
6
- import e from"fs";import t from"isomorphic-dompurify";import{z as n}from"zod";import{error as r}from"@bdocs/dui";const i=/^[a-zA-Z0-9\-_/.()]+$/,a=n.looseObject({title:n.string().max(200).optional(),description:n.string().max(500).optional(),permalink:n.string().optional(),sidebarPosition:n.number().optional(),sidebarLabel:n.string().max(100).optional(),sidebarHidden:n.boolean().optional(),hidden:n.boolean().optional(),category:n.string().max(50).optional(),order:n.number().optional(),badge:n.union([n.string().max(50),n.object({text:n.string().max(50),expires:n.string().optional()})]).optional(),icon:n.string().max(50).optional(),date:n.union([n.string(),n.date()]).optional(),lastUpdated:n.union([n.string(),n.date()]).optional(),groupTitle:n.string().max(100).optional(),groupPosition:n.number().optional(),seo:n.record(n.any()).optional()});function o(e){let t=e.trim();if(!t.startsWith(`---`))return{data:{},content:e,rawMatter:``};let n=t.indexOf(`---`,3);if(n===-1||n===3)return{data:{},content:e,rawMatter:``};let r=t.slice(3,n).trim(),i=t.slice(n+3).trim();return s(r)?{data:{},content:i,rawMatter:r}:{data:c(r),content:i,rawMatter:r}}function s(e){let t=!1,n=!1;for(let r=0;r<e.length;r++){let i=e[r],a=r>0?e[r-1]:``;i===`'`&&!n&&a!==`\\`?t=!t:i===`"`&&!t&&a!==`\\`&&(n=!n)}return t||n}function c(e){let t=e.split(`
7
- `),n={},r=0;for(;r<t.length;){let e=t[r],i=e.trim();if(!i||i.startsWith(`#`)){r++;continue}let a=i.indexOf(`:`);if(a!==-1){let o=i.slice(0,a).trim(),s=i.slice(a+1).trim();if(s===``){let i=l(t.slice(r+1),e.search(/\S|$/));i.value===void 0?r++:(n[o]=i.value,r+=i.linesConsumed)}else n[o]=u(s),r++}else r++}return n}function l(e,t){if(e.length===0)return{value:void 0,linesConsumed:0};if(e[0].trim().startsWith(`-`)){let n=[],r=0;for(;r<e.length;){let i=e[r],a=i.search(/\S|$/),o=i.trim();if(!o||o.startsWith(`#`)){r++;continue}if(o.startsWith(`-`)){let e=o.slice(1).trim();if(e.includes(`:`)){let t={},r=e.split(/,\s*/);for(let e of r){let n=e.indexOf(`:`);if(n!==-1){let r=e.slice(0,n).trim();t[r]=u(e.slice(n+1).trim())}}n.push(t)}else n.push(e)}else if(a>t&&n.length>0){let e=n[n.length-1];if(typeof e==`object`&&e){let t=e,n=o.indexOf(`:`);if(n!==-1){let e=o.slice(0,n).trim();t[e]=u(o.slice(n+1).trim())}}}else break;r++}return{value:n.length>0?n:void 0,linesConsumed:r}}let n={},r=0;for(;r<e.length;){let i=e[r],a=i.search(/\S|$/),o=i.trim();if(!o||o.startsWith(`#`)){r++;continue}if(a<=t)break;let s=o.indexOf(`:`);if(s!==-1){let e=o.slice(0,s).trim();n[e]=u(o.slice(s+1).trim())}r++}return{value:Object.keys(n).length>0?n:void 0,linesConsumed:r}}function u(e){let t=e.trim();if(t===`true`)return!0;if(t===`false`)return!1;if(t===`null`||t===`~`)return null;if(/^-?\d+(\.\d+)?$/.test(t))return Number(t);if(t.startsWith(`"`)&&t.endsWith(`"`)||t.startsWith(`'`)&&t.endsWith(`'`))return t.slice(1,-1);if(t.startsWith(`{`)&&t.endsWith(`}`)){let e=t.slice(1,-1).trim(),n={},r=e.split(/,\s*/);for(let e of r){let t=e.indexOf(`:`);if(t!==-1){let r=e.slice(0,t).trim();n[r]=u(e.slice(t+1).trim())}}return n}return t}var d=class e extends Error{constructor(t){super(t),this.name=`SecurityViolationError`,Object.setPrototypeOf(this,e.prototype)}},f=class e extends d{constructor(t){super(t),this.name=`PathTraversalError`,Object.setPrototypeOf(this,e.prototype)}},p=class e extends d{constructor(t){super(t),this.name=`EncodingSecurityError`,Object.setPrototypeOf(this,e.prototype)}},m=class e extends d{constructor(t){super(t),this.name=`ValidationError`,Object.setPrototypeOf(this,e.prototype)}};function h(e){return e.replace(/\\/g,`/`)}function g(e){return e.replace(/^\d+\./,``)}function _(e){let t=e.match(/^(\d+)\./);return t?parseInt(t[1],10):void 0}function v(e){return/\.mdx?$/.test(e)}function y(t){try{return e.statSync(t).mtimeMs}catch{return 0}}async function b(t,n=!0){let r=``;try{r=await e.promises.readFile(t,`utf-8`);let{data:i,content:s,rawMatter:c}=o(r);if(c&&c.length>10240)throw O(`FRONTMATTER_TOO_LARGE`,`Frontmatter block exceeds size limit`,{size:c.length,file:t}),new m(`Security breach: Frontmatter size exceeds limit of 10240 bytes`);if(!n)return{data:i,content:s,raw:r};let l=a.safeParse(i),u={...l.success?l.data:{}};return u.lastUpdated||=(await e.promises.stat(t)).mtimeMs,u.title&&=T(u.title).trim(),u.description&&=T(u.description).trim(),{data:u,content:s,raw:r}}catch(e){if(e instanceof m)throw e;return{data:{},content:r,raw:r}}}function x(e){return e.replace(/&/g,`&amp;`).replace(/"/g,`&quot;`).replace(/'/g,`&apos;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`)}function S(e){return x(e)}function C(e){let t=h(e).split(`/`).map(e=>D(g(e))).join(`/`).replace(/\/$/,``);return t=t.replace(/\.mdx?$/,``),(t===`index`||t.endsWith(`/index`))&&(t=t.replace(/index$/,``)),t.startsWith(`/`)||(t=`/`+t),t.length>1&&t.endsWith(`/`)&&(t=t.slice(0,-1)),t}function w(e){return t.sanitize(e,{ALLOWED_TAGS:`b.i.em.strong.a.p.br.code.pre.span.div.h1.h2.h3.h4.h5.h6.ul.ol.li.table.thead.tbody.tr.th.td.blockquote.hr`.split(`.`),ALLOWED_ATTR:[`href`,`title`,`target`,`class`,`id`,`src`,`alt`,`width`,`height`],FORCE_BODY:!0})}t.addHook(`afterSanitizeAttributes`,e=>{if(e.hasAttribute(`href`)){let t=e.getAttribute(`href`)?.toLowerCase()||``;(t.startsWith(`javascript:`)||t.startsWith(`data:`)||t.startsWith(`vbscript:`))&&e.removeAttribute(`href`)}if(e.hasAttribute(`src`)){let t=e.getAttribute(`src`)?.toLowerCase()||``;(t.startsWith(`javascript:`)||t.startsWith(`data:`)||t.startsWith(`vbscript:`))&&e.removeAttribute(`src`)}});function T(e){return e?e.replace(/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,``).replace(/<style\b[^<]*(?:(?!<\/style>)<[^<]*)*<\/style>/gi,``).replace(/<!--[\s\S]*?-->/g,``).replace(/<[^>]+>/g,` `).replace(/\s+/g,` `).trim():``}function E(e){return e.charAt(0).toUpperCase()+e.slice(1)}function D(e){return e.replace(/[^a-zA-Z0-9\-_/.]/g,``).split(`/`).filter(e=>e!==`..`&&e!==`.`).map(e=>e.replace(/\.\.+/g,`.`)).join(`/`)}function O(e,t,n={}){let i=new Date().toISOString(),a={...n};for(let e in a)typeof a[e]==`string`&&a[e].includes(`:`)&&(a[e]=a[e].split(/[\\/]/).pop()||a[e]);r(`[SECURITY][${i}] TYPE: ${e} | MESSAGE: ${t} | DETAILS: ${JSON.stringify(a)}`)}function k(){return{dir:process.env.BOLTDOCS_CACHE_DIR||`.boltdocs`,noCache:process.env.BOLTDOCS_NO_CACHE===`1`,lruLimit:parseInt(process.env.BOLTDOCS_CACHE_LRU_LIMIT||`2000`,10),lruTTL:parseInt(process.env.BOLTDOCS_CACHE_LRU_TTL||`14400000`,10),compress:process.env.BOLTDOCS_CACHE_COMPRESS!==`0`}}export{m as _,k as a,O as c,D as d,w as f,f as g,p as h,C as i,h as l,g as m,S as n,y as o,T as p,_ as r,v as s,E as t,b as u,a as v,i as y};
@@ -1,7 +0,0 @@
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-CU-zTemE.cjs`);let t=require(`fs`);t=e.t(t);let n=require(`isomorphic-dompurify`);n=e.t(n);let r=require(`zod`),i=require(`@bdocs/dui`);const a=/^[a-zA-Z0-9\-_/.()]+$/,o=r.z.looseObject({title:r.z.string().max(200).optional(),description:r.z.string().max(500).optional(),permalink:r.z.string().optional(),sidebarPosition:r.z.number().optional(),sidebarLabel:r.z.string().max(100).optional(),sidebarHidden:r.z.boolean().optional(),hidden:r.z.boolean().optional(),category:r.z.string().max(50).optional(),order:r.z.number().optional(),badge:r.z.union([r.z.string().max(50),r.z.object({text:r.z.string().max(50),expires:r.z.string().optional()})]).optional(),icon:r.z.string().max(50).optional(),date:r.z.union([r.z.string(),r.z.date()]).optional(),lastUpdated:r.z.union([r.z.string(),r.z.date()]).optional(),groupTitle:r.z.string().max(100).optional(),groupPosition:r.z.number().optional(),seo:r.z.record(r.z.any()).optional()});function s(e){let t=e.trim();if(!t.startsWith(`---`))return{data:{},content:e,rawMatter:``};let n=t.indexOf(`---`,3);if(n===-1||n===3)return{data:{},content:e,rawMatter:``};let r=t.slice(3,n).trim(),i=t.slice(n+3).trim();return c(r)?{data:{},content:i,rawMatter:r}:{data:l(r),content:i,rawMatter:r}}function c(e){let t=!1,n=!1;for(let r=0;r<e.length;r++){let i=e[r],a=r>0?e[r-1]:``;i===`'`&&!n&&a!==`\\`?t=!t:i===`"`&&!t&&a!==`\\`&&(n=!n)}return t||n}function l(e){let t=e.split(`
7
- `),n={},r=0;for(;r<t.length;){let e=t[r],i=e.trim();if(!i||i.startsWith(`#`)){r++;continue}let a=i.indexOf(`:`);if(a!==-1){let o=i.slice(0,a).trim(),s=i.slice(a+1).trim();if(s===``){let i=u(t.slice(r+1),e.search(/\S|$/));i.value===void 0?r++:(n[o]=i.value,r+=i.linesConsumed)}else n[o]=d(s),r++}else r++}return n}function u(e,t){if(e.length===0)return{value:void 0,linesConsumed:0};if(e[0].trim().startsWith(`-`)){let n=[],r=0;for(;r<e.length;){let i=e[r],a=i.search(/\S|$/),o=i.trim();if(!o||o.startsWith(`#`)){r++;continue}if(o.startsWith(`-`)){let e=o.slice(1).trim();if(e.includes(`:`)){let t={},r=e.split(/,\s*/);for(let e of r){let n=e.indexOf(`:`);if(n!==-1){let r=e.slice(0,n).trim();t[r]=d(e.slice(n+1).trim())}}n.push(t)}else n.push(e)}else if(a>t&&n.length>0){let e=n[n.length-1];if(typeof e==`object`&&e){let t=e,n=o.indexOf(`:`);if(n!==-1){let e=o.slice(0,n).trim();t[e]=d(o.slice(n+1).trim())}}}else break;r++}return{value:n.length>0?n:void 0,linesConsumed:r}}let n={},r=0;for(;r<e.length;){let i=e[r],a=i.search(/\S|$/),o=i.trim();if(!o||o.startsWith(`#`)){r++;continue}if(a<=t)break;let s=o.indexOf(`:`);if(s!==-1){let e=o.slice(0,s).trim();n[e]=d(o.slice(s+1).trim())}r++}return{value:Object.keys(n).length>0?n:void 0,linesConsumed:r}}function d(e){let t=e.trim();if(t===`true`)return!0;if(t===`false`)return!1;if(t===`null`||t===`~`)return null;if(/^-?\d+(\.\d+)?$/.test(t))return Number(t);if(t.startsWith(`"`)&&t.endsWith(`"`)||t.startsWith(`'`)&&t.endsWith(`'`))return t.slice(1,-1);if(t.startsWith(`{`)&&t.endsWith(`}`)){let e=t.slice(1,-1).trim(),n={},r=e.split(/,\s*/);for(let e of r){let t=e.indexOf(`:`);if(t!==-1){let r=e.slice(0,t).trim();n[r]=d(e.slice(t+1).trim())}}return n}return t}var f=class e extends Error{constructor(t){super(t),this.name=`SecurityViolationError`,Object.setPrototypeOf(this,e.prototype)}},p=class e extends f{constructor(t){super(t),this.name=`PathTraversalError`,Object.setPrototypeOf(this,e.prototype)}},m=class e extends f{constructor(t){super(t),this.name=`EncodingSecurityError`,Object.setPrototypeOf(this,e.prototype)}},h=class e extends f{constructor(t){super(t),this.name=`ValidationError`,Object.setPrototypeOf(this,e.prototype)}};function g(e){return e.replace(/\\/g,`/`)}function _(e){return e.replace(/^\d+\./,``)}function v(e){let t=e.match(/^(\d+)\./);return t?parseInt(t[1],10):void 0}function y(e){return/\.mdx?$/.test(e)}function b(e){try{return t.default.statSync(e).mtimeMs}catch{return 0}}async function x(e,n=!0){let r=``;try{r=await t.default.promises.readFile(e,`utf-8`);let{data:i,content:a,rawMatter:c}=s(r);if(c&&c.length>10240)throw k(`FRONTMATTER_TOO_LARGE`,`Frontmatter block exceeds size limit`,{size:c.length,file:e}),new h(`Security breach: Frontmatter size exceeds limit of 10240 bytes`);if(!n)return{data:i,content:a,raw:r};let l=o.safeParse(i),u={...l.success?l.data:{}};return u.lastUpdated||=(await t.default.promises.stat(e)).mtimeMs,u.title&&=E(u.title).trim(),u.description&&=E(u.description).trim(),{data:u,content:a,raw:r}}catch(e){if(e instanceof h)throw e;return{data:{},content:r,raw:r}}}function S(e){return e.replace(/&/g,`&amp;`).replace(/"/g,`&quot;`).replace(/'/g,`&apos;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`)}function C(e){return S(e)}function w(e){let t=g(e).split(`/`).map(e=>O(_(e))).join(`/`).replace(/\/$/,``);return t=t.replace(/\.mdx?$/,``),(t===`index`||t.endsWith(`/index`))&&(t=t.replace(/index$/,``)),t.startsWith(`/`)||(t=`/`+t),t.length>1&&t.endsWith(`/`)&&(t=t.slice(0,-1)),t}function T(e){return n.default.sanitize(e,{ALLOWED_TAGS:`b.i.em.strong.a.p.br.code.pre.span.div.h1.h2.h3.h4.h5.h6.ul.ol.li.table.thead.tbody.tr.th.td.blockquote.hr`.split(`.`),ALLOWED_ATTR:[`href`,`title`,`target`,`class`,`id`,`src`,`alt`,`width`,`height`],FORCE_BODY:!0})}n.default.addHook(`afterSanitizeAttributes`,e=>{if(e.hasAttribute(`href`)){let t=e.getAttribute(`href`)?.toLowerCase()||``;(t.startsWith(`javascript:`)||t.startsWith(`data:`)||t.startsWith(`vbscript:`))&&e.removeAttribute(`href`)}if(e.hasAttribute(`src`)){let t=e.getAttribute(`src`)?.toLowerCase()||``;(t.startsWith(`javascript:`)||t.startsWith(`data:`)||t.startsWith(`vbscript:`))&&e.removeAttribute(`src`)}});function E(e){return e?e.replace(/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,``).replace(/<style\b[^<]*(?:(?!<\/style>)<[^<]*)*<\/style>/gi,``).replace(/<!--[\s\S]*?-->/g,``).replace(/<[^>]+>/g,` `).replace(/\s+/g,` `).trim():``}function D(e){return e.charAt(0).toUpperCase()+e.slice(1)}function O(e){return e.replace(/[^a-zA-Z0-9\-_/.]/g,``).split(`/`).filter(e=>e!==`..`&&e!==`.`).map(e=>e.replace(/\.\.+/g,`.`)).join(`/`)}function k(e,t,n={}){let r=new Date().toISOString(),a={...n};for(let e in a)typeof a[e]==`string`&&a[e].includes(`:`)&&(a[e]=a[e].split(/[\\/]/).pop()||a[e]);(0,i.error)(`[SECURITY][${r}] TYPE: ${e} | MESSAGE: ${t} | DETAILS: ${JSON.stringify(a)}`)}function A(){return{dir:process.env.BOLTDOCS_CACHE_DIR||`.boltdocs`,noCache:process.env.BOLTDOCS_NO_CACHE===`1`,lruLimit:parseInt(process.env.BOLTDOCS_CACHE_LRU_LIMIT||`2000`,10),lruTTL:parseInt(process.env.BOLTDOCS_CACHE_LRU_TTL||`14400000`,10),compress:process.env.BOLTDOCS_CACHE_COMPRESS!==`0`}}Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,`v`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`y`,{enumerable:!0,get:function(){return a}});
@@ -1,6 +0,0 @@
1
- /**
2
- * Boltdocs - https://boltdocs.vercel.app
3
- * Copyright (c) 2026 Jesus Alcala
4
- * Licensed under the MIT License.
5
- */
6
- import e from"node:path";import t from"node:fs";import{fileURLToPath as n}from"node:url";import{Worker as r}from"node:worker_threads";import i from"node:os";const a=e.dirname(n(import.meta.url)),o=new class{workers=[];queue=[];activeWorkers=0;maxWorkers;maxQueueSize;constructor(e,t=2e3){this.maxWorkers=e||Math.max(1,i.cpus().length-1),this.maxQueueSize=t}idleWorkers=[];async parseFile(e,t,n,r){return this.queue.length>=this.maxQueueSize?Promise.reject(Error(`[boltdocs] WorkerPool queue is full (limit: ${this.maxQueueSize}). Too many files enqueued simultaneously. Consider increasing maxQueueSize.`)):new Promise((i,a)=>{this.queue.push({task:{type:`PARSE_FILE`,file:e,docsDir:t,basePath:n,config:r},resolve:i,reject:a}),this.processNext()})}processNext(){if(this.queue.length===0)return;let e=this.idleWorkers.pop();if(!e){if(this.activeWorkers>=this.maxWorkers)return;this.activeWorkers++;let t=this.getWorkerPath(),n=new r(t,{execArgv:t.endsWith(`.ts`)?[`--loader`,`tsx`]:[]});e=n,this.workers.push(n);let i=(e,t)=>{let n=this.workers.indexOf(e);if(n===-1)return;let r=e.currentTask;r&&(e.currentTask=null,r.reject(t||Error(`Worker terminated unexpectedly`))),this.activeWorkers--;let i=this.idleWorkers.indexOf(e);i>-1&&this.idleWorkers.splice(i,1),this.workers.splice(n,1),e.terminate(),this.processNext()};n.on(`message`,e=>{let t=n.currentTask;t&&(n.currentTask=null,e.type===`SUCCESS`?t.resolve(e.result):t.reject(Error(e.error))),this.idleWorkers.push(n),this.processNext()}),n.on(`error`,e=>{i(n,e)}),n.on(`exit`,e=>{e!==0&&i(n,Error(`Worker exited with code ${e}`))})}let{task:t,resolve:n,reject:i}=this.queue.shift();e.currentTask={resolve:n,reject:i},e.postMessage(t)}getWorkerPath(){if(import.meta.url.includes(`/dist/`)||e.extname(import.meta.url)===`.mjs`){let n=[e.resolve(a,`node/routes/worker.mjs`),e.resolve(a,`worker.mjs`),e.resolve(a,`./node/routes/worker.mjs`)];for(let e of n)if(t.existsSync(e))return e;return e.resolve(a,`node/routes/worker.mjs`)}return e.resolve(a,`worker.ts`)}async terminate(){let e=[...this.workers];await Promise.all(e.map(e=>e.terminate())),this.idleWorkers=[],this.workers=[],this.activeWorkers=0}};export{o as pool};
@@ -1,6 +0,0 @@
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-CU-zTemE.cjs`);let t=require(`node:path`);t=e.t(t);let n=require(`node:fs`);n=e.t(n);let r=require(`node:worker_threads`),i=require(`node:os`);i=e.t(i);let a=require(`node:url`);const o=t.default.dirname((0,a.fileURLToPath)(require(`url`).pathToFileURL(__filename).href)),s=new class{workers=[];queue=[];activeWorkers=0;maxWorkers;maxQueueSize;constructor(e,t=2e3){this.maxWorkers=e||Math.max(1,i.default.cpus().length-1),this.maxQueueSize=t}idleWorkers=[];async parseFile(e,t,n,r){return this.queue.length>=this.maxQueueSize?Promise.reject(Error(`[boltdocs] WorkerPool queue is full (limit: ${this.maxQueueSize}). Too many files enqueued simultaneously. Consider increasing maxQueueSize.`)):new Promise((i,a)=>{this.queue.push({task:{type:`PARSE_FILE`,file:e,docsDir:t,basePath:n,config:r},resolve:i,reject:a}),this.processNext()})}processNext(){if(this.queue.length===0)return;let e=this.idleWorkers.pop();if(!e){if(this.activeWorkers>=this.maxWorkers)return;this.activeWorkers++;let t=this.getWorkerPath(),n=new r.Worker(t,{execArgv:t.endsWith(`.ts`)?[`--loader`,`tsx`]:[]});e=n,this.workers.push(n);let i=(e,t)=>{let n=this.workers.indexOf(e);if(n===-1)return;let r=e.currentTask;r&&(e.currentTask=null,r.reject(t||Error(`Worker terminated unexpectedly`))),this.activeWorkers--;let i=this.idleWorkers.indexOf(e);i>-1&&this.idleWorkers.splice(i,1),this.workers.splice(n,1),e.terminate(),this.processNext()};n.on(`message`,e=>{let t=n.currentTask;t&&(n.currentTask=null,e.type===`SUCCESS`?t.resolve(e.result):t.reject(Error(e.error))),this.idleWorkers.push(n),this.processNext()}),n.on(`error`,e=>{i(n,e)}),n.on(`exit`,e=>{e!==0&&i(n,Error(`Worker exited with code ${e}`))})}let{task:t,resolve:n,reject:i}=this.queue.shift();e.currentTask={resolve:n,reject:i},e.postMessage(t)}getWorkerPath(){if(require(`url`).pathToFileURL(__filename).href.includes(`/dist/`)||t.default.extname(require(`url`).pathToFileURL(__filename).href)===`.mjs`){let e=[t.default.resolve(o,`node/routes/worker.mjs`),t.default.resolve(o,`worker.mjs`),t.default.resolve(o,`./node/routes/worker.mjs`)];for(let t of e)if(n.default.existsSync(t))return t;return t.default.resolve(o,`node/routes/worker.mjs`)}return t.default.resolve(o,`worker.ts`)}async terminate(){let e=[...this.workers];await Promise.all(e.map(e=>e.terminate())),this.idleWorkers=[],this.workers=[],this.activeWorkers=0}};exports.pool=s;
@@ -1,51 +0,0 @@
1
- import { createContext, use } from 'react'
2
- import type { BoltdocsConfig } from '../../shared/types'
3
-
4
- /**
5
- * Context for the global documentation configuration.
6
- * Using a global singleton pattern to survive dual-package or duplicated-code hazards.
7
- */
8
- const CONFIG_CONTEXT_SYMBOL = Symbol.for('__BDOCS_CONFIG_CONTEXT__')
9
- const CONFIG_INSTANCE_SYMBOL = Symbol.for('__BDOCS_CONFIG_INSTANCE__')
10
-
11
- export const ConfigContext =
12
- (globalThis as any)[CONFIG_CONTEXT_SYMBOL] ||
13
- ((globalThis as any)[CONFIG_CONTEXT_SYMBOL] =
14
- createContext<BoltdocsConfig | null>(null))
15
-
16
- export function ConfigProvider({
17
- config,
18
- children,
19
- }: {
20
- config: BoltdocsConfig
21
- children: React.ReactNode
22
- }) {
23
- // Sync with global registry for dual-package fallback
24
- if (typeof globalThis !== 'undefined') {
25
- ;(globalThis as any)[CONFIG_INSTANCE_SYMBOL] = config
26
- }
27
-
28
- return (
29
- <ConfigContext.Provider value={config}>{children}</ConfigContext.Provider>
30
- )
31
- }
32
-
33
- /**
34
- * Hook to access the Boltdocs configuration.
35
- */
36
- export function useConfig() {
37
- const context = use(ConfigContext)
38
-
39
- // Fallback to global registry if context is missing (dual-package hazard safety net)
40
- if (
41
- !context &&
42
- typeof globalThis !== 'undefined' &&
43
- (globalThis as any)[CONFIG_INSTANCE_SYMBOL]
44
- ) {
45
- return (globalThis as any)[CONFIG_INSTANCE_SYMBOL] as BoltdocsConfig
46
- }
47
-
48
- if (!context)
49
- throw new Error('useConfig must be used within a ConfigProvider')
50
- return context as BoltdocsConfig
51
- }
@@ -1,38 +0,0 @@
1
- import { useMdxComponents } from './mdx-components-context'
2
- import { useMemo } from 'react'
3
- import { LastUpdated as DefaultLastUpdated } from '../components/ui-base'
4
-
5
- /**
6
- * DocPage renders the MDX content and page-specific metadata.
7
- * It is rendered inside the Outlet of DocsLayout.
8
- */
9
- export function DocPage({
10
- route,
11
- content: Content,
12
- mdxComponents: propComponents,
13
- }: any) {
14
- // Access global MDX components (defaults + plugins + virtuals) from context
15
- const contextComponents = useMdxComponents()
16
-
17
- // Merge components: Prop components (from loader) take priority,
18
- // then context components (globals).
19
- const allComponents = useMemo(
20
- () => ({
21
- LastUpdated: DefaultLastUpdated,
22
- ...contextComponents,
23
- ...propComponents,
24
- }),
25
- [contextComponents, propComponents],
26
- )
27
-
28
- const LastUpdated = allComponents.LastUpdated || DefaultLastUpdated
29
-
30
- if (!Content) return null
31
-
32
- return (
33
- <>
34
- <Content components={allComponents} />
35
- {route?.lastUpdated && <LastUpdated date={route.lastUpdated} />}
36
- </>
37
- )
38
- }
@@ -1,28 +0,0 @@
1
- import { Outlet } from 'react-router-dom'
2
- import UserLayout from 'virtual:boltdocs-layout'
3
- import { useRoutes } from '../hooks/use-routes'
4
- import { useConfig } from './config-context'
5
- import { Head } from './head'
6
-
7
- /**
8
- * Wraps the docs Outlet with the user's (or default) layout component.
9
- * The Layout receives the routed page as `children`.
10
- * We use useRoutes to pass the current route context to the persistent layout.
11
- */
12
- export function DocsLayout() {
13
- const config = useConfig()
14
- const { currentRoute, allRoutes } = useRoutes()
15
-
16
- return (
17
- <>
18
- <Head
19
- siteTitle={config.theme?.title}
20
- siteDescription={config.theme?.description}
21
- routes={allRoutes || []}
22
- />
23
- <UserLayout route={currentRoute}>
24
- <Outlet />
25
- </UserLayout>
26
- </>
27
- )
28
- }