boltdocs 3.2.2 → 3.3.1

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 (156) hide show
  1. package/bin/boltdocs.js +20 -1
  2. package/bin/preloader.mjs +28 -0
  3. package/dist/{adapters-ByYY44Zy.mjs → adapters-BmB4TKCc.mjs} +1 -1
  4. package/dist/{adapters-DvmtpdSF.cjs → adapters-Cp1Maurn.cjs} +1 -1
  5. package/dist/audit-CLXjMzwQ.mjs +11 -0
  6. package/dist/audit-COgjnQ5n.cjs +11 -0
  7. package/dist/build-D6FfNA8m.cjs +6 -0
  8. package/dist/build-D_7SvwTh.mjs +6 -0
  9. package/dist/cache-CJE9nWLE.cjs +6 -0
  10. package/dist/cache-OY4HzIXl.mjs +6 -0
  11. package/dist/callout-oI_LCbxS.d.ts +71 -0
  12. package/dist/callout-plqx9Dw-.d.cts +71 -0
  13. package/dist/client/index.cjs +1265 -569
  14. package/dist/client/index.d.cts +3 -542
  15. package/dist/client/index.d.ts +3 -542
  16. package/dist/client/index.js +1167 -521
  17. package/dist/client/mdx.cjs +1 -1
  18. package/dist/client/mdx.d.cts +24 -2
  19. package/dist/client/mdx.d.ts +24 -2
  20. package/dist/client/mdx.js +1 -1
  21. package/dist/client/primitives.cjs +14 -4
  22. package/dist/client/primitives.d.cts +281 -38
  23. package/dist/client/primitives.d.ts +281 -38
  24. package/dist/client/primitives.js +5 -5
  25. package/dist/client/router.cjs +49 -0
  26. package/dist/client/router.d.cts +3 -0
  27. package/dist/client/router.d.ts +3 -0
  28. package/dist/client/router.js +8 -0
  29. package/dist/client/theme/reset.css +40 -4
  30. package/dist/{config-BpzaPsJj.d.cts → config-BoRlz0Ca.d.mts} +157 -14
  31. package/dist/{config-xtS0ZkMm.d.mts → config-CTsX_tGM.d.cts} +157 -14
  32. package/dist/config-Ceib-AOH.cjs +7 -0
  33. package/dist/config-DGLQsy7y.mjs +7 -0
  34. package/dist/{package-CH2ChQqw.cjs → config-files-BYHDOrKn.mjs} +1 -1
  35. package/dist/config-files-D9cdBMl2.cjs +6 -0
  36. package/dist/config-jJh8WYJI.cjs +6 -0
  37. package/dist/csp-C4LmN1ko.cjs +6 -0
  38. package/dist/csp-D6JEOqKh.mjs +6 -0
  39. package/dist/dev-B9l7fVoQ.cjs +6 -0
  40. package/dist/dev-CwOyh-wP.mjs +6 -0
  41. package/dist/{docs-layout-BdtZ9z6s.js → docs-layout-CbZ7LDRe.js} +504 -249
  42. package/dist/{docs-layout-CFWI15Id.cjs → docs-layout-vzfXed1Q.cjs} +516 -254
  43. package/dist/{doctor-BBtmNJE0.cjs → doctor-B1_YL0Wt.cjs} +1 -1
  44. package/dist/doctor-C7whl4ED.cjs +6 -0
  45. package/dist/doctor-DmQnml2k.mjs +6 -0
  46. package/dist/{generator-COepVWGi.cjs → generator-BlW45ST7.cjs} +5 -3
  47. package/dist/{generator-CcOBN5vI.mjs → generator-BwknNejd.mjs} +5 -3
  48. package/dist/{handler-XX7cLTqe.cjs → handler-CDEoKARD.cjs} +2 -2
  49. package/dist/{handler-DzQae4eA.mjs → handler-D7UyZlPm.mjs} +2 -2
  50. package/dist/{image-Bz87fCla.js → image-B-NDSDuY.js} +129 -11
  51. package/dist/{image-C4TlpMHn.cjs → image-Hnaa2bJd.cjs} +175 -9
  52. package/dist/index-C56bL-A-.d.cts +1344 -0
  53. package/dist/{sidebar-COTaMHR-.d.ts → index-CPUUKzxD.d.cts} +344 -327
  54. package/dist/{sidebar-CrEdJuHX.d.cts → index-Ci4kfOHF.d.ts} +344 -327
  55. package/dist/index-Cu9H6CRa.d.ts +1344 -0
  56. package/dist/link-CgdI6O2o.js +872 -0
  57. package/dist/{link-D1Gjkb-2.cjs → link-vZjmD-es.cjs} +406 -223
  58. package/dist/{mdx-BuO6a1f7.js → mdx-BRT71V5Q.js} +211 -168
  59. package/dist/{mdx-CD-tSjRG.cjs → mdx-D0Absdq5.cjs} +225 -169
  60. package/dist/native-BNCY7PRF.cjs +6 -0
  61. package/dist/native-Di9Fnfrv.mjs +6 -0
  62. package/dist/native-Kre2T5eS.cjs +6 -0
  63. package/dist/node/cache.cjs +1 -1
  64. package/dist/node/cache.d.cts +19 -3
  65. package/dist/node/cache.d.mts +19 -3
  66. package/dist/node/cache.mjs +1 -1
  67. package/dist/node/cli-entry.cjs +1 -9
  68. package/dist/node/cli-entry.mjs +1 -9
  69. package/dist/node/index.cjs +1 -1
  70. package/dist/node/index.d.cts +245 -17
  71. package/dist/node/index.d.mts +246 -18
  72. package/dist/node/index.mjs +1 -1
  73. package/dist/node/mdx/shiki-adapter.cjs +1 -1
  74. package/dist/node/mdx/shiki-adapter.d.cts +24 -3
  75. package/dist/node/mdx/shiki-adapter.d.mts +24 -2
  76. package/dist/node/mdx/shiki-adapter.mjs +1 -1
  77. package/dist/node-BFNCsPs3.mjs +23 -0
  78. package/dist/node-TpmWEqXM.cjs +23 -0
  79. package/dist/{package-DSSB8B5L.mjs → package-5EsGUTVl.mjs} +1 -1
  80. package/dist/package-Ca2WSiy2.cjs +6 -0
  81. package/dist/pages-external-BBw8ObVK.mjs +6 -0
  82. package/dist/pages-external-DPiPFxxP.cjs +6 -0
  83. package/dist/parser-BqTOsEUa.cjs +6 -0
  84. package/dist/parser-CGMY2lJ7.mjs +6 -0
  85. package/dist/plugin-CUmUZOLD.mjs +69 -0
  86. package/dist/plugin-Ds3RLYpy.cjs +69 -0
  87. package/dist/plugin-context-C-l90hFt.cjs +15 -0
  88. package/dist/plugin-context-wqHNSZum.mjs +15 -0
  89. package/dist/plugin-lifecycle-BAKNKOxd.cjs +6 -0
  90. package/dist/resolve-B7vWOd8R.cjs +6 -0
  91. package/dist/resolve-C2kKnk_5.mjs +6 -0
  92. package/dist/resolve-It1Iug83.cjs +6 -0
  93. package/dist/resolve-YdTrt_FG.mjs +6 -0
  94. package/dist/router-C3kygdRK.cjs +1285 -0
  95. package/dist/router-CZBxMRAH.js +987 -0
  96. package/dist/routes-BL4y79tb.mjs +6 -0
  97. package/dist/routes-C2nPecwu.cjs +6 -0
  98. package/dist/routes-U9L8psZ9.cjs +6 -0
  99. package/dist/{search-dialog-DFnlx8LO.js → search-dialog-BqkzDTq2.js} +107 -57
  100. package/dist/search-dialog-D3jtaw6w.cjs +525 -0
  101. package/dist/search-dialog-DRiXejws.js +501 -0
  102. package/dist/{search-dialog-DHqwjJuG.cjs → search-dialog-DmirOMPg.cjs} +1 -1
  103. package/dist/{search-dialog-D6TvjcuV.js → search-dialog-MmwxFMmE.js} +1 -1
  104. package/dist/{search-dialog-B1NERUNx.cjs → search-dialog-x_qHU8ty.cjs} +107 -58
  105. package/dist/server/index.cjs +1 -1
  106. package/dist/server/index.d.mts +1 -1
  107. package/dist/server/index.mjs +1 -1
  108. package/dist/update-check-BKqmYfwT.cjs +11 -0
  109. package/dist/update-check-QnrVR3q1.mjs +11 -0
  110. package/dist/utils-8lzafE49.mjs +7 -0
  111. package/dist/utils-ej6_SjIZ.cjs +7 -0
  112. package/dist/virtual-modules-Ca5tHk1X.cjs +30 -0
  113. package/dist/virtual-modules-Dlgt1fP0.mjs +30 -0
  114. package/package.json +18 -16
  115. package/src/shared/mdx-path.ts +12 -0
  116. package/src/shared/structured-data.ts +145 -0
  117. package/src/shared/types.ts +220 -16
  118. package/dist/banner-BMop1KLF.d.ts +0 -100
  119. package/dist/banner-CVD0GugR.d.cts +0 -100
  120. package/dist/cache-CO4Dy2uQ.cjs +0 -6
  121. package/dist/cache-Dk53iOo6.mjs +0 -6
  122. package/dist/config-CCXp3aXO.mjs +0 -7
  123. package/dist/config-CMd4XoFq.cjs +0 -6
  124. package/dist/config-DlGoEM9D.cjs +0 -7
  125. package/dist/csp-CRp_3U7a.cjs +0 -6
  126. package/dist/csp-oTC2ygvF.mjs +0 -6
  127. package/dist/doctor-Bv16QSrI.cjs +0 -7
  128. package/dist/doctor-DOAbSaiL.mjs +0 -7
  129. package/dist/headers-Ddwek8K7.mjs +0 -6
  130. package/dist/headers-dg4SDrjY.cjs +0 -6
  131. package/dist/link-2PzgTnaP.js +0 -673
  132. package/dist/meta-loader-C4Hu9RN9.mjs +0 -6
  133. package/dist/meta-loader-Dq1zcFnh.cjs +0 -6
  134. package/dist/node-B5hu_6qj.cjs +0 -104
  135. package/dist/node-BXtqM1uH.mjs +0 -6
  136. package/dist/node-C8725aw7.mjs +0 -104
  137. package/dist/node-aD1eisrR.cjs +0 -6
  138. package/dist/pages-external-BYa4JSda.mjs +0 -6
  139. package/dist/pages-external-XkYIs-d5.cjs +0 -6
  140. package/dist/parser-DCiEWkSk.cjs +0 -8
  141. package/dist/parser-qk9FIHJ7.mjs +0 -8
  142. package/dist/plugin-CX1OZ6jB.cjs +0 -73
  143. package/dist/plugin-CgfiWaFZ.mjs +0 -73
  144. package/dist/routes-BW6zsk7Z.mjs +0 -6
  145. package/dist/routes-BgoIB5wb.cjs +0 -6
  146. package/dist/routes-CORVxc02.cjs +0 -6
  147. package/dist/search-dialog-BRFno7HD.cjs +0 -330
  148. package/dist/search-dialog-BmxHiKwt.js +0 -312
  149. package/dist/shiki-adapter-CoQ6jyJ4.cjs +0 -6
  150. package/dist/shiki-adapter-D-aKw7PP.mjs +0 -6
  151. package/dist/utils-Crm9oPcV.mjs +0 -7
  152. package/dist/utils-D6Xtj0FZ.cjs +0 -7
  153. /package/dist/{errors-0zGHRLue.mjs → errors-N-b6Sn2G.mjs} +0 -0
  154. /package/dist/{index-1KsTDq4o.d.mts → index-lFoyzCXy.d.mts} +0 -0
  155. /package/dist/{types-generator-BXhv7Ill.cjs → types-generator-DDSA93P3.cjs} +0 -0
  156. /package/dist/{types-generator-bDPvUztF.mjs → types-generator-DG1GX1EZ.mjs} +0 -0
@@ -1,73 +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,b as t,c as n,f as r,i,l as a,m as o,o as s,s as c,u as l}from"./node-C8725aw7.mjs";import{c as u,d,n as f,s as p,u as m}from"./utils-Crm9oPcV.mjs";import{TransformCache as h}from"./node/cache.mjs";import{a as g,n as _,r as v,t as y}from"./routes-BW6zsk7Z.mjs";import{t as ee}from"./pages-external-BYa4JSda.mjs";import{r as te,t as b}from"./config-CCXp3aXO.mjs";import{r as ne,t as x}from"./types-generator-bDPvUztF.mjs";import{n as S}from"./doctor-DOAbSaiL.mjs";import{a as re,i as C,n as ie,o as w,s as ae}from"./shiki-adapter-D-aKw7PP.mjs";import{t as oe}from"./headers-Ddwek8K7.mjs";import{n as se}from"./csp-oTC2ygvF.mjs";import{createRequire as T}from"node:module";import E from"node:path";import D from"node:fs";import{error as O}from"@bdocs/dui";import k from"node:crypto";import{SKIP as ce,parseMetaString as le,setNodeProperty as ue,visitNodes as A}from"@bdocs/unist-utils";import{fileURLToPath as de}from"node:url";import{loadEnv as fe}from"vite";import{ViteImageOptimizer as pe}from"@bdocs/plugin-image-optimizer";import me from"@mdx-js/rollup";import he from"remark-gfm";import ge from"remark-frontmatter";import _e from"rehype-slug";const j=E.dirname(de(import.meta.url));function M(e){return`<!doctype html>
7
- <html lang="en">
8
- <head>
9
- <meta charset="UTF-8" />
10
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
11
- </head>
12
- <body>
13
- <div id="root"></div>
14
- </body>
15
- </html>`}function ve(e,t,n){return e?typeof e==`string`?e:e[n||``]||Object.values(e)[0]||t:t}function ye(e){let t=e.i18n?.defaultLocale,n=ve(e.theme?.title,`Boltdocs`,t),r=e.theme?.favicon;!r&&e.theme?.logo&&(r=typeof e.theme.logo==`string`?e.theme.logo:e.theme.logo.light||e.theme.logo.dark);let i=e.seo?.indexing,a=i===`none`?`noindex, nofollow`:i===`all`?void 0:i,o=e.seo?.metatags||{},s=Object.entries(o).map(([e,t])=>{let n=f(e),r=f(t);return e.startsWith(`og:`)||e.startsWith(`music:`)||e.startsWith(`video:`)||e.startsWith(`article:`)||e.startsWith(`book:`)||e.startsWith(`profile:`)?`<meta property="${n}" content="${r}">`:`<meta name="${n}" content="${r}">`});return{title:n,favicon:r,robotsContent:a,customMetaTags:s}}function be(e){return[e.favicon?`<link rel="icon" href="${f(e.favicon)}">`:``,e.robotsContent?`<meta name="robots" content="${f(e.robotsContent)}">`:``,`<meta name="generator" content="Boltdocs">`,...e.customMetaTags].filter(Boolean).join(`
16
- `)}function xe(e){if(!e)return``;let t=[];return e.google&&t.push(`<meta name="google-site-verification" content="${f(e.google)}">`),e.bing&&t.push(`<meta name="msvalidate.01" content="${f(e.bing)}">`),e.yandex&&t.push(`<meta name="yandex-verification" content="${f(e.yandex)}">`),e.pinterest&&t.push(`<meta name="p:domain_verify" content="${f(e.pinterest)}">`),e.facebook&&t.push(`<meta name="facebook-domain-verification" content="${f(e.facebook)}">`),t.join(`
17
- `)}function Se(e){let t=[],n=e.theme?.logo,r;if(typeof n==`string`?r=n:n&&typeof n==`object`&&(r=n.light||n.dark),r){let e={webp:`image/webp`,png:`image/png`,jpg:`image/jpeg`,jpeg:`image/jpeg`,svg:`image/svg+xml`,avif:`image/avif`}[r.split(`.`).pop()?.toLowerCase()||``]||`image/png`;t.push(`<link rel="preload" as="image" href="${r}" type="${e}" fetchpriority="high">`)}return t.join(`
18
- `)}function Ce(){return`
19
- <script>
20
- (function() {
21
- try {
22
- var stored = localStorage.getItem("boltdocs-theme");
23
- var isDark =
24
- stored === "dark" ||
25
- (stored !== "light" && window.matchMedia("(prefers-color-scheme: dark)").matches);
26
- document.documentElement.classList.toggle("dark", isDark);
27
- document.documentElement.dataset.theme = isDark ? "dark" : "light";
28
- } catch (e) {
29
- }
30
- })();
31
- <\/script>
32
- `}function we(e,t){if(!e||!t&&!e.debug)return``;let n=e.anonymizeIp?`gtag('set', 'ip', true);`:``,r=e.sendPageView===!1?`{send_page_view: false}`:`{}`,i=e.cookieFlags?`, {'cookie_flags': '${e.cookieFlags}'}`:``,a=f(e.measurementId);return`
33
- <!-- Google tag (gtag.js) -->
34
- <script async src="https://www.googletagmanager.com/gtag/js?id=${a}"><\/script>
35
- <script>
36
- window.dataLayer = window.dataLayer || [];
37
- function gtag(){dataLayer.push(arguments);}
38
- gtag('js', new Date());
39
- ${n}
40
- gtag('config', '${a}', ${r}${i});
41
- <\/script>
42
- `}function Te(e,t){if(!e||!t)return{script:``,noScript:``};let n=f(e.dataLayerName||`dataLayer`),r=e.preview?`&gtm_preview=${f(e.preview)}`:``,i=f(e.tagId);return{script:`
43
- <!-- Google Tag Manager -->
44
- <script defer>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
45
- new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
46
- j=d.createElement(s),dl=l!='${n}'?'&l='+l:'';j.src=
47
- 'https://www.googletagmanager.com/gtm.js?id='+i+dl+'${r}';f.parentNode.insertBefore(j,f);
48
- })(window,document,'script','${n}','${i}');<\/script>
49
- <!-- End Google Tag Manager -->
50
- `,noScript:`
51
- <!-- Google Tag Manager (noscript) -->
52
- <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=${i}"
53
- height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
54
- <!-- End Google Tag Manager (noscript) -->
55
- `}}function Ee(e,t){if(!e||!t)return``;let{analytics:n,speedInsights:r}=e,i=``;return n&&(i+=`
56
- <script>window.va=window.va||function(){(window.vaq=window.vaq||[]).push(arguments)};<\/script>
57
- <script defer src="/_vercel/insights/script.js"><\/script>
58
- `),r&&(i+=`
59
- <script>window.si=window.si||function(){(window.siq=window.siq||[]).push(arguments)};<\/script>
60
- <script defer src="/_vercel/speed-insights/script.js"><\/script>
61
- `),i}function De(e,t){if(!e||!t)return``;let n=f(e.apiKey),r=[`api_host: "${f(e.host||`https://us.i.posthog.com`)}"`];return e.capturePageview===!1&&r.push(`capture_pageview: false`),e.capturePageleave===!1&&r.push(`capture_pageleave: false`),e.sessionRecording===!0&&r.push(`session_recording: { recordCrossOriginPages: true }`),e.autocapture===!0&&r.push(`autocapture: true`),`
62
- <!-- PostHog -->
63
- <script>
64
- !function(t,e){var o,n,p,r;e.__SV||(window.posthog=e,e._i=[],e.init=function(i,s,a){function g(t,e){var o=e.split(".");2==o.length&&(t=t[o[0]],e=o[1]),t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}}(p=t.createElement("script")).type="text/javascript",p.crossOrigin="anonymous",p.async=!0,p.src=s.api_host.replace(".i.posthog.com","-assets.i.posthog.com")+"/static/array.js",(r=t.getElementsByTagName("script")[0]).parentNode.insertBefore(p,r);var u=e;for(void 0!==a?(u=e[a]=[]):(a="posthog"),u.people=u.people||[],u.toString=function(t){var e="posthog";return"posthog"!==a&&(e+="."+a),t||(e+=" (stub)"),e},u.people.toString=function(){return u.toString(1)+".people (stub)"},o="init capture register register_once register_for_session unregister unregister_for_session getFeatureFlag getFeatureFlagResult isFeatureEnabled reloadFeatureFlags updateEarlyAccessFeatureEnrollment getEarlyAccessFeatures on onFeatureFlags onSessionId getSurveys getActiveMatchingSurveys renderSurvey canRenderSurvey getNextSurveyStep identify setPersonProperties group resetGroups setPersonPropertiesForFlags resetPersonPropertiesForFlags setGroupPropertiesForFlags resetGroupPropertiesForFlags reset get_distinct_id getGroups get_session_id get_session_replay_url alias set_config startSessionRecording stopSessionRecording sessionRecordingStarted captureException loadToolbar get_property getSessionProperty createPersonProfile opt_in_capturing opt_out_capturing has_opted_in_capturing has_opted_out_capturing clear_opt_in_out_capturing debug".split(" "),n=0;n<o.length;n++)g(u,o[n]);e._i.push([i,s,a])},e.__SV=1)}(document,window.posthog||[]);
65
- posthog.init("${n}", { ${r.join(`, `)} });
66
- <\/script>
67
- `}function Oe(e,t){return e.replace(`<head>`,`<head>\n${t}`)}function ke(e,t){return e.replace(`</head>`,` ${t}</head>`)}function Ae(e,t){return t?e.replace(/<body([^>]*)>/,`<body$1>\n${t}`):e}function je(e){return e.includes(`src/main`)||e.includes(`virtual:boltdocs-entry`)?e:e.replace(`</body>`,` <script type="module">import "virtual:boltdocs-entry";<\/script>
68
- </body>`)}function N(e,t){(!e||!e.includes(`<body`)||!e.includes(`<head`))&&(e=M(t));let n=process.env.NODE_ENV===`production`,r=be(ye(t)),i=xe(t.seo?.verification),a=Se(t),o=Ce(),s=we(t.integrations?.analytics?.ga4,n),c=Te(t.integrations?.analytics?.gtm,n),l=[i,a,r,s,Ee(t.integrations?.analytics?.vercel,n),De(t.integrations?.analytics?.posthog,n),c.script].filter(Boolean).join(`
69
- `);return e=Oe(e,o),e=ke(e,l),e=Ae(e,c.noScript),e=je(e),e}function P(e){return typeof e==`string`?[e]:Array.isArray(e)?e.flatMap(P):e&&typeof e==`object`?Object.values(e).flatMap(P):[]}const Me=new Set([`title`,`description`,`permalink`,`sidebarPosition`,`sidebarLabel`,`sidebarHidden`,`hidden`,`category`,`order`,`badge`,`icon`,`date`,`lastUpdated`,`groupTitle`,`groupPosition`,`seo`]);function Ne(e){let t=[];for(let n of e){let e=``;n.frontmatter&&(e=P(Object.entries(n.frontmatter).filter(([e])=>!Me.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}let F=null,I=null,L=null,R=null;function z(){F=null,I=null,L=null,R=null}function Pe(e,n,i,a){return{name:`vite-plugin-boltdocs-virtual-modules`,resolveId(e){let t=i()?.root||process.cwd();if(e.includes(`boltdocs-entry.tsx`)||e===`virtual:boltdocs-entry`||e===`boltdocs-entry`||e===`\0virtual:boltdocs-entry`)return m(E.resolve(t,`boltdocs-entry.tsx`));if(e.includes(`boltdocs-client.mjs`)||e===`virtual:boltdocs-client`||e===`boltdocs-client`||e===`\0virtual:boltdocs-client.ts`)return m(E.resolve(t,`boltdocs-client.mjs`));if(e.startsWith(`\0`)){let t=e.slice(1);if(!t.startsWith(`virtual:boltdocs-`)&&l.has(t))return e}else if(!e.startsWith(`virtual:boltdocs-`)&&l.has(e))return`\0`+e;return e.startsWith(`virtual:boltdocs-`)?`\0`+e:e.startsWith(`\0virtual:boltdocs-`)?e:null},async load(i){let o=n(),s=i.startsWith(`\0`)?i.slice(1):i;if(!s.includes(`boltdocs-entry.tsx`)&&!s.includes(`boltdocs-client.mjs`)&&!s.startsWith(`virtual:boltdocs-`)&&l.has(s)){let e=l.get(s);if(!e)return null;try{let t=await e.loader();if(typeof t!=`string`)throw Error(`[boltdocs] Plugin virtual module '${s}' loader must return a string source code, got ${typeof t}.`);return t}catch(e){throw Error(`[boltdocs] Plugin virtual module '${s}' failed to load: ${e instanceof Error?e.message:String(e)}`)}}if(i.includes(`boltdocs-entry.tsx`)||i===`\0virtual:boltdocs-entry`)return t(e,o);if(i.includes(`boltdocs-client.mjs`)||i===`\0virtual:boltdocs-client.ts`||i===`virtual:boltdocs-client`){let e=j,t=e;for(;e!==E.parse(e).root;){if(D.existsSync(E.join(e,`package.json`))&&JSON.parse(D.readFileSync(E.join(e,`package.json`),`utf-8`)).name===`boltdocs`){t=e;break}e=E.dirname(e)}let n=E.join(t,`src/client/index.ts`),r=E.join(t,`dist/client/index.js`);return`export * from '${m(D.existsSync(n)?n:r)}';`}if(!i.startsWith(`\0virtual:boltdocs-`))return;let c=i.replace(`\0virtual:boltdocs-`,``).replace(/\.tsx?$/,``);if(c===`routes`){if(!L){let e=r(await y(a,o));L=`export default ${JSON.stringify(e,null,2)};`}return L}if(c===`collections`){if(!R){let e=r(await y(a,o)),t={};for(let n of e)n.collection&&(t[n.collection]||(t[n.collection]=[]),t[n.collection].push({path:n.path,title:n.title,date:n.date,excerpt:n.excerpt,tags:n.tags,author:n.author,coverImage:n.coverImage,filePath:n.filePath,locale:n.locale,version:n.version,frontmatter:n.frontmatter,draft:n.frontmatter?.draft}));R=`export default ${JSON.stringify(t,null,2)};`}return R}if(c===`config`){if(F===null){let{loadDirectoryMeta:e}=await import(`./meta-loader-C4Hu9RN9.mjs`);F=await e(a)}let e=F,t={base:o?.base,theme:o?.theme,i18n:o?.i18n,versions:o?.versions,siteUrl:o?.siteUrl,integrations:o?.integrations,plugins:o?.plugins?.map(e=>({name:e.name})),directoryMeta:e};return`export default ${JSON.stringify(t,null,2)};`}if(c===`entry`)return t(e,o);if(c===`mdx-components`){let e=[`tsx`,`ts`,`jsx`,`js`],t=null;for(let n of e){let e=E.resolve(a,`mdx-components.${n}`);if(D.existsSync(e)){t=e;break}}if(t){let e=m(t);return`import * as components from '${e}';
70
- const mdxComponents = components.default || components;
71
- export default mdxComponents;
72
- export * from '${e}';`}return`export default {};`}if(c===`layout`){let e=[`tsx`,`jsx`],t=null;for(let n of e){let e=E.resolve(a,`layout.${n}`);if(D.existsSync(e)){t=e;break}}if(t)return`import UserLayout from '${m(t)}';
73
- 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(c===`icons`){let e=[`tsx`,`jsx`,`ts`,`js`],t=null;for(let n of e){let e=E.resolve(a,`icons.${n}`);if(D.existsSync(e)){t=e;break}}return t?`import * as icons from '${m(t)}';\nexport default icons;`:`export default {};`}if(c===`search`){if(!I){let e=Ne(await y(a,o));I=`export default ${JSON.stringify(e,null,2)};`}return I}if(c===`client`){let e=j,t=``;for(;e&&e!==E.parse(e).root;){let n=E.join(e,`src/client/index.ts`),r=E.join(e,`dist/client/index.mjs`),i=E.join(e,`client/index.ts`);if(D.existsSync(n)){t=m(n);break}if(D.existsSync(r)){t=m(r);break}if(D.existsSync(i)){t=m(i);break}e=E.dirname(e)}if(!t)throw Error(`[boltdocs] Could not resolve boltdocs/client entry point starting from ${j}`);return`export * from '${t}';`}}}}function B(e){return(t,n,r)=>{let i=e().integrations?.feedback?.custom,a=i?.endpoint||`/api/feedback`;if(!i?.enabled||t.method!==`POST`||t.url?.split(`?`)[0]!==a)return r();let o=``,s=0;t.on(`data`,e=>{if(s+=e.length,s>10240){n.statusCode=413,n.end(JSON.stringify({error:`Request body too large`})),t.destroy();return}o+=e}),t.on(`end`,async()=>{n.setHeader(`Content-Type`,`application/json`);try{let{handleFeedback:e}=await import(`./handler-DzQae4eA.mjs`).then(e=>e.n),t=await e(JSON.parse(o),process.env,{owner:i.owner,repo:i.repo,categorySlug:i.categorySlug});n.statusCode=200,n.end(JSON.stringify(t))}catch(e){n.statusCode=500;let t=e instanceof Error?e.message:`Failed to submit feedback`;n.end(JSON.stringify({error:t}))}})}}function Fe(e){return(t,n,r)=>{let i=t.url||`/`,a=i.split(`?`)[0].split(`#`)[0];if(E.extname(a))return r();let o=e(),s=E.resolve(o?.root||process.cwd(),o?.build?.outDir||`dist`),c=a.replace(/\/$/,``)||`/`,l=E.join(s,c,`index.html`);c!==`/`&&D.existsSync(l)&&(t.url=`${c}/index.html${i.includes(`?`)?`?${i.split(`?`)[1]}`:``}`),r()}}const Ie=/\.(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;function Le(e,t,n){let r=process.env.NODE_ENV===`production`;e.middlewares.use(B(n)),e.middlewares.use((e,t,i)=>{r&&Object.entries(oe).forEach(([e,n])=>{t.setHeader(e,n)});let a=n();a.security?.enableCSP&&t.setHeader(`Content-Security-Policy`,se(a)),i()}),e.middlewares.use((e,t,n)=>{if(e.url===`/robots.txt`){n();return}n()}),e.middlewares.use(async(t,r,i)=>{let a=t.url?.split(`?`)[0]||`/`,o=t.headers.accept||``,s=n();if(o.includes(`text/html`)&&!Ie.test(a)){let n=M(s);n=N(n,s),n=await e.transformIndexHtml(t.url||`/`,n),r.statusCode=200,r.setHeader(`Content-Type`,`text/html`),r.end(n);return}i()})}const V=[/\/index\./i,/\/getting-started/i,/\/intro/i,/\/readme/i];function H(e){for(let t=0;t<V.length;t++)if(V[t].test(e))return t;return V.length}function Re(e,t,n){setTimeout(async()=>{try{let{generateRoutes:r}=await import(`./routes-BW6zsk7Z.mjs`).then(e=>e.i),i=(await r(t,n())).filter(e=>e.filePath).map(e=>e.filePath).sort((e,t)=>H(e)-H(t));for(let t=0;t<i.length;t+=32){let n=i.slice(t,t+32);await Promise.allSettled(n.map(t=>{let n=E.relative(process.cwd(),t).replace(/\\/g,`/`),r=n.startsWith(`/`)?n:`/${n}`;return e.transformRequest(r)}))}}catch{}},150)}const ze=[`tsx`,`jsx`],U=[`tsx`,`ts`,`jsx`,`js`];function Be(e,t){let n=b.map(e=>E.resolve(process.cwd(),e)),r=ze.map(e=>E.resolve(t,`layout.${e}`)),i=U.map(e=>E.resolve(t,`mdx-components.${e}`)),a=U.map(e=>E.resolve(t,`pages-external/index.${e}`)),o=U.map(e=>E.resolve(t,`icons.${e}`));e.watcher.add([...n,...i,...r,...a,...o])}const W=new Map;function G(e){let{lastUpdated:t,...n}=e;return k.createHash(`md5`).update(JSON.stringify(n)).digest(`hex`)}async function Ve(e){try{let{data:t}=await d(e);return G(t)}catch{return``}}function He(e){let t=W.get(e);if(t===void 0){let n=g.getStale(e);n?.route?.frontmatter&&(t=G(n.route.frontmatter),W.set(e,t))}return t}function Ue(e,t){W.set(e,t)}function We(e){W.delete(e)}const K=[`tsx`,`ts`,`jsx`,`js`];function q(e,t){let n=e.moduleGraph.getModuleById(`\0virtual:boltdocs-${t}.ts`);n&&e.moduleGraph.invalidateModule(n)}function Ge(e,t,n,r){let i=new Map,a=n.toLowerCase(),o=null;function l(){if(o)return o;o=new Map;for(let[t,n]of e.moduleGraph.fileToModulesMap.entries())try{o.set(decodeURIComponent(t).toLowerCase(),n)}catch{}return o}e.watcher.on(`all`,()=>{o=null});let d=async(n,o)=>{try{let d=m(n);if(b.some(e=>d.endsWith(e))){e.restart();return}if(K.some(e=>d.endsWith(`mdx-components.${e}`))){x(r(),t),q(e,`mdx-components.tsx`),e.ws.send({type:`full-reload`});return}if(K.some(e=>d.endsWith(`icons.${e}`))){q(e,`icons.tsx`),e.ws.send({type:`full-reload`});return}if(d.endsWith(`layout.tsx`)||d.endsWith(`layout.jsx`)){q(e,`layout.tsx`),e.ws.send({type:`full-reload`});return}if(d.endsWith(`/post.tsx`)||d.endsWith(`/post.jsx`)||d.endsWith(`/list.tsx`)||d.endsWith(`/list.jsx`)){q(e,`entry`),e.ws.send({type:`full-reload`});return}if(d.includes(`/pages-external/`)||d.includes(`\\pages-external\\`)){q(e,`entry`),e.ws.send({type:`full-reload`});return}if(!d.toLowerCase().startsWith(a))return;let f=d.endsWith(`meta.json`)||d.endsWith(`_meta.json`);if(!f&&!u(d))return;if(o===`add`||o===`unlink`||f){o===`unlink`&&We(n),v(),z(),s(),c(o,d).catch(e=>{O(`Plugin HMR handler error:`,e)});let i=r();x(i,t),q(e,`config`),q(e,`routes`),q(e,`search`),q(e,`collections`),S(t,process.cwd(),i).catch(e=>{O(`Failed to update link tree:`,e)}),e.ws.send({type:`custom`,event:`boltdocs:config-update`,data:{theme:i?.theme,i18n:i?.i18n,versions:i?.versions,siteUrl:i?.siteUrl}}),e.ws.send({type:`full-reload`});return}i.has(d)&&clearTimeout(i.get(d)),i.set(d,setTimeout(async()=>{i.delete(d);try{let r=He(n),i=await Ve(n);if(Ue(n,i),_(n),r!==void 0&&r!==i){z(),q(e,`routes`),q(e,`search`),q(e,`collections`),e.ws.send({type:`full-reload`});return}let a=m(E.relative(t,n)),o=e.moduleGraph.getModulesByFile(d);if((!o||o.size===0)&&(o=l().get(d.toLowerCase())||null),o&&o.size>0)for(let t of o)e.moduleGraph.invalidateModule(t);else{e.ws.send({type:`full-reload`});return}e.ws.send({type:`custom`,event:`boltdocs:mdx-update`,data:{file:d,relPath:a}})}catch(e){O(`HMR error processing content change:`,e)}},150))}catch(e){O(`HMR error during ${o} event:`,e)}};e.watcher.on(`add`,e=>d(e,`add`)),e.watcher.on(`unlink`,e=>d(e,`unlink`)),e.watcher.on(`change`,e=>d(e,`change`))}function Ke(e){let t=e.toLowerCase();return({file:e})=>{let n=e.toLowerCase();if(n.startsWith(t)&&(u(e)||n.endsWith(`meta.json`)))return[]}}function qe(t,r,i,o,s){return{name:`vite-plugin-boltdocs-dev-server`,apply:`serve`,async configureServer(o){let c=s();await c?.runHook(`beforeDev`),S(t,process.cwd(),i()).catch(e=>{O(`Failed to generate initial link tree:`,e)}),Re(o,t,i),Le(o,t,i),Be(o,t),Ge(o,t,r,i),a((e,t)=>{o.ws.send(e,t)}),e(o),await n(),await c?.runHook(`afterDev`)},hotUpdate:Ke(r)}}const J=new h(`mdx`);function Je(e){let t=ie(e);return async e=>{let n=await t.getHighlighter();A(e,w.ELEMENT,e=>{if(e.tagName!==`pre`)return;let r=e.children?.[0];if(!r||r.type!==w.ELEMENT||r.tagName!==`code`)return;let i=(r.properties?.className||[]).find(e=>e.startsWith(`language-`)),a=i?i.slice(9):re.MDX_DEFAULT_LANG;if(a===`mermaid`)return;let o=le(r.properties?.metastring||r.data?.meta||``),s=t.getOptions(a,o),c=r.children?.[0]?.value??``;try{let t=n.codeToHast(c,s),r=t.type===`root`&&t.children?t.children[0]:t;r&&r.type===`element`&&(e.children=r.children,e.properties={...e.properties||{},...r.properties||{},[C.HIGHLIGHTED]:`true`,[C.LANG]:a})}catch(t){O(`[rehypeShiki] Failed to highlight code block:`,t);let n=e.properties??={};n.className=[...Array.isArray(n.className)?n.className:[],ae.FALLBACK],n[C.HIGHLIGHTED]=`false`,n[C.LANG]=a}return o.title&&((e.properties??={})[C.TITLE]=o.title),ce})}}function Ye(){return e=>{A(e,w.CODE,e=>{e.meta&&ue(e,`metastring`,e.meta)})}}let Xe=!1;function Ze(e,t,n=me){let r=e?.plugins?.flatMap(e=>e.remarkPlugins||[])||[],i=e?.plugins?.flatMap(e=>e.rehypePlugins||[])||[],a=n({remarkPlugins:[he,ge,Ye,...r],rehypePlugins:[_e,[Je,e],...i],jsxRuntime:`automatic`});return{...a,name:`vite-plugin-boltdocs-mdx`,async buildStart(){Xe||=(await J.load(),!0),a.buildStart&&await a.buildStart.call(this)},async load(e,n){if(e.endsWith(`.md`)||e.endsWith(`.mdx`))try{let n=D.readFileSync(e,`utf-8`),r=t?.();return r&&(n=(await r.runChain(`transformSource`,{code:n,filePath:e})).code),n}catch{return null}return a.load?a.load.call(this,e,n):null},async transform(e,n,r){let[i]=n.split(`?`);if(!i.endsWith(`.md`)&&!i.endsWith(`.mdx`))return a.transform?.call(this,e,n,r);let o=process.env.NODE_ENV===`production`?`prod`:`dev`,s=o===`dev`?`${i}:${p(i)}:${o}:v4`:`${i}:${k.createHash(`md5`).update(e).digest(`hex`)}:${o}:v4`,c=await J.getAsync(s);if(c)return{code:c,map:null};let l=await a.transform.call(this,e,i,r);if(l&&typeof l==`object`&&l.code){let e=l.code,n=t?.();return n&&(e=(await n.runChain(`transformMdx`,{code:e,filePath:i})).code),J.set(s,e),{code:e,map:null}}return l},async buildEnd(){J.save(),await J.flush(),a.buildEnd&&await a.buildEnd.call(this)}}}const Y=T(import.meta.url),Qe=[`react`,`react-dom`,`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`,`jsdom`],$e=[`react/jsx-runtime`,`react/jsx-dev-runtime`,`react-dom/client`];function X(e=Y){try{let e=E.join(process.cwd(),`node_modules/boltdocs/package.json`);return D.existsSync(e)?T(D.realpathSync(e)):T(E.join(process.cwd(),`package.json`))}catch{return e}}function Z(e,t=Y){try{let n=e.split(`/`),r=e.startsWith(`@`)?n.slice(0,2).join(`/`):n[0],i=e.startsWith(`@`)?n.slice(2).join(`/`):n.slice(1).join(`/`),a=``;try{a=t.resolve(`${r}/package.json`)}catch{let e=t.resolve(r),n=E.dirname(e);for(;n&&n!==E.dirname(n);){let e=E.join(n,`package.json`);if(D.existsSync(e)){a=e;break}n=E.dirname(n)}}if(!a)throw Error();let o=E.dirname(a),s=JSON.parse(D.readFileSync(a,`utf-8`)),c=i?`./${i}`:`.`,l=s.exports?.[c]||s.exports?.[i]||``;typeof l==`object`&&l&&(l=l.import||l.default||l.require||``),!l&&!i&&(l=s.module||s.main||`index.js`);let u=E.resolve(o,l);if(D.existsSync(u))return u}catch{}return t.resolve(e)}function Q(e=Y){let t=[],n=X(e),r=new Set([n,e]);for(let e of r){for(let n of Qe)try{let r=[`@bdocs/ssg`,`react-router-dom`,`react-helmet-async`].includes(n)?Z(n,e):e.resolve(n);r&&t.push(D.realpathSync(r))}catch{}for(let n of $e)try{t.push(D.realpathSync(e.resolve(n)))}catch{}}return Array.from(new Set(t)).map(e=>m(e))}const $=T(import.meta.url),et=[`react`,`react-dom`,`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`];function tt(t={},r){let a=E.resolve(process.cwd(),t.docsDir||`docs`),s=m(a),c=r,l,u=!1,d,f=[],p=[];if(c?.plugins?.length)try{let{version:e}=JSON.parse(D.readFileSync(E.resolve(j,`../../../package.json`),`utf-8`)),t=o(c.plugins,e);c.plugins=t,d=new i(t,c),p=t.flatMap(e=>e.vitePlugins||[])}catch{}let h=()=>c,g=e=>{c=e},_=()=>l,v=()=>d;return[{name:`vite-plugin-boltdocs`,enforce:`pre`,async config(e,t){u=t.command===`build`;let n=!!(t.isSsrBuild||e.build?.ssr);if(Object.assign(process.env,fe(t.mode,e.envDir||process.cwd(),``)),c||=await te(a),f.length===0){f=await y(a,c);let e=f.map(e=>e.path),t=(c.base||`/docs`).replace(/\/$/,``);e.includes(t)||e.push(t);let n=ee(a,c);for(let t of n)e.includes(t)||e.push(t);x(c,a,void 0,e),ne(e)}import(`./node/mdx/shiki-adapter.mjs`).then(({getShikiAdapter:e})=>{e(c).getHighlighter().catch(()=>{})}).catch(()=>{});let{version:r}=await import(`./package-DSSB8B5L.mjs`),s=o(c.plugins||[],r);return c.plugins=s,d=new i(s,c,a,void 0,f,l?.build?.outDir||`dist`),p=s.flatMap(e=>e.vitePlugins||[]),u&&await d.runHook(`beforeBuild`),{ssgOptions:{entry:`boltdocs/entry`,htmlEntry:`index.html`,dirStyle:`flat`,includeAllRoutes:!0,mock:!0,script:`async`,beastiesOptions:!1,onPageRendered:async(e,t)=>{if(!d)return t;try{let n=(await d.runChain(`transformHtml`,{html:t,path:e})).html;return n=(await d.runMiddlewareChain(`transformHtml`,{html:n,path:e})).html,n}catch{return t}}},build:{ssrManifest:u},optimizeDeps:{include:[`react`,`react-dom`,`react-dom/client`,`react-router-dom`,`react-helmet-async`,`react-fast-compare`,`invariant`],exclude:[`boltdocs`,`boltdocs/client`]},resolve:{alias:n?[]:[{find:`react-router-dom`,replacement:Z(`react-router-dom`)},{find:`react-helmet-async`,replacement:Z(`react-helmet-async`)},{find:`@bdocs/ssg`,replacement:Z(`@bdocs/ssg`)}],dedupe:[`react`,`react-dom`,...n?[]:[`react-router-dom`,`react-helmet-async`,`@bdocs/ssg`]]},ssr:{external:[`react`,`react-dom`,`react-helmet-async`,`react-router-dom`,`@bdocs/ssg`,`jsdom`,...Q($)],optimizeDeps:{include:[`react-fast-compare`]},noExternal:[]}}},configResolved(e){l=e},resolveId(e,t,n){let r=et.find(t=>e===t||e.startsWith(`${t}/`)||e.includes(`/node_modules/${t}/`)||t.startsWith(`@`)&&e.includes(`/node_modules/${t.replace(`/`,E.sep)}/`));if(r&&n?.ssr&&!E.isAbsolute(e)&&r!==`react`&&r!==`react-dom`){let t=X($),n=e;try{n=[`@bdocs/ssg`,`react-router-dom`,`react-helmet-async`].includes(r)?Z(e,t):t.resolve(e)}catch{try{n=[`@bdocs/ssg`,`react-router-dom`,`react-helmet-async`].includes(r)?Z(e,$):$.resolve(e)}catch{}}try{n=D.realpathSync(n)}catch{}return{id:n,external:!0}}return null},transformIndexHtml:{order:`pre`,handler:e=>N(e,c)},async closeBundle(){!u||l?.build?.ssr||(await d?.runHook(`afterBuild`),await d?.runHook(`buildEnd`))},configurePreviewServer(t){t.middlewares.use(B(h)),t.middlewares.use(Fe(_)),e(t),n().catch(()=>{})}},Pe(t,h,_,a),qe(a,s,h,g,v),...t.turbo?[]:[Ze(c,v)],...t.turbo?[(()=>{let e=null;async function t(){if(!e)try{let{createSatteriMdxPlugin:t}=await import(`./node-BXtqM1uH.mjs`);e=t(c,v)}catch{}return e}return{name:`vite-plugin-boltdocs-satteri-mdx`,enforce:`pre`,async load(e){let n=await t();return n&&n.load?n.load(e):null},async transform(e,n){let r=await t();return r&&r.transform?r.transform(e,n):null},async buildEnd(){let e=await t();e&&e.buildEnd&&await e.buildEnd()}}})()]:[],pe({includePublic:!0}),...p]}export{tt as boltdocsPlugin,X as getBaseRequire,Q as getExternalAbsolutePaths,Z as resolveEsm};
@@ -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"./chunk-BFSpntXv.mjs";import{t}from"./utils-Crm9oPcV.mjs";import{FileCache as n}from"./node/cache.mjs";import{t as r}from"./cache-Dk53iOo6.mjs";import{t as i}from"./pages-external-BYa4JSda.mjs";import a from"node:path";import{fdir as o}from"fdir";const s=new n({name:`routes`});function c(){s.invalidateAll(),r.clear()}function l(e){s.invalidate(e),r.invalidate(e)}function u(e){return e.sort((e,t)=>{let n=e.group?e.groupPosition??999:e.sidebarPosition??999,r=t.group?t.groupPosition??999:t.sidebarPosition??999;return n===r?!e.group&&t.group?-1:e.group&&!t.group?1:e.group&&t.group&&e.group!==t.group?(e.groupTitle||e.group).localeCompare(t.groupTitle||t.group):d(e,t):n-r})}function d(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}var f=e({generateRoutes:()=>b,getExternalRoutePaths:()=>i,invalidateFile:()=>_,invalidateRouteCache:()=>y});let p=null;const m=new Map;async function h(e,t,n){let r=Array(e.length),i=0;async function a(){for(;i<e.length;){let t=i++;r[t]=await n(e[t])}}return await Promise.all(Array.from({length:Math.min(t,e.length)},()=>a())),r}let g=null;function _(e){let t=e.replace(/\\/g,`/`);g&&g[t]&&delete g[t],l(e)}let v=null;function y(){p=null,m.clear(),c(),g=null}async function b(e,n,r,i=!1,c=!1){if(v)return v;let l=(async()=>{let l=r||n?.base||`/docs`;await s.load(),m.clear();let d;if(!i&&p)d=p;else{let t=await new o().withFullPaths().filter(t=>t.endsWith(`.md`)||t.endsWith(`.mdx`)?!a.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=a.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),d=r.map(e=>e.f),p=d}s.pruneStale(new Set(d));let f=process.env.NODE_ENV===`test`||process.env.VITEST===`true`,_,v=!0;for(let e of d)if(!s.get(e)){v=!1;break}if(v)_=d.map(e=>s.get(e));else{if(!f&&!g)try{let{runParser:t}=await import(`@bdocs/parser`);g=await t(e,c)}catch{}if(!f&&g!==null&&g){let{parseDocFileWithNative:t,parseDocFile:r}=await import(`./parser-qk9FIHJ7.mjs`);_=await h(d,32,async i=>{let a=s.get(i);if(a)return a;let o=i.replace(/\\/g,`/`),c=g[o];if(c){let r=await t(i,c,e,l,n);return s.set(i,r),r}else{let t=await r(i,e,l,n);return s.set(i,t),t}})}else{let{parseDocFile:t}=await import(`./parser-qk9FIHJ7.mjs`);_=await h(d,32,async r=>{let i=s.get(r);if(i)return i;let a=await t(r,e,l,n);return s.set(r,a),a})}}s.save();let y=[],b=new Map,S=process.env.NODE_ENV||`development`,C=n?.drafts?.visible||process.env.BOLTDOCS_DRAFTS===`true`||(n?.drafts?.environments?.includes(S)??!1);for(let e of _)if(!(e.route.draft&&!C)){if(e.route.featureFlags&&n?.featureFlags){if(!e.route.featureFlags.every(e=>{let t=n.featureFlags?.[e];return t===!0||t===S}))continue}else if(e.route.featureFlags&&!n?.featureFlags)continue;if(e.inferredCollection){let t=e.inferredCollection;b.has(t)||b.set(t,[]),b.get(t).push(e)}else y.push(e)}let w=new Map,T=[],E=n?.i18n?.defaultLocale||``;for(let e of y)if(e.isGroupIndex&&e.relativeDir&&T.push(e),e.relativeDir){let n=`${e.route.locale||E}:${e.relativeDir}`,r=w.get(n);r?r.position===void 0&&e.inferredGroupPosition!==void 0&&(r.position=e.inferredGroupPosition):(r={title:t(e.relativeDir),position:e.inferredGroupPosition},w.set(n,r))}for(let e of T){let t=`${e.route.locale||E}:${e.relativeDir}`,n=w.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):[E];for(let[r,i]of Object.entries(n.theme.sidebarGroups))for(let n of e){let e=`${n}:${r}`,a=w.get(e),o;typeof i.title==`string`?o=i.title:i.title&&(o=i.title[n]||i.title[E]),a?(o&&(a.title=o),i.icon&&(a.icon=i.icon)):w.set(e,{title:o||t(r),icon:i.icon})}}let D=Array(y.length);for(let e=0;e<y.length;e++){let n=y[e],r=n.relativeDir,i=n.route.locale||E,a=r?`${i}:${r}`:void 0,o=a?w.get(a):void 0,s;o&&(s=typeof o.title==`string`?o.title:o.title[i]||o.title[E]),D[e]={...n.route,group:r,groupTitle:s||(r?t(r):void 0),groupPosition:o?.position,groupIcon:o?.icon}}let O=[];for(let[,e]of b)for(let t of e)O.push({...t.route,collection:t.inferredCollection});O.sort((e,t)=>{let n=e.date?new Date(e.date).getTime():0;return(t.date?new Date(t.date).getTime():0)-n});let k=D;if(n?.i18n){let e=x(D,n,l);k=[...D,...e]}return[...u(k),...O]})();v=l;try{return await l}finally{v=null}}function x(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){if(e===r)continue;let i=o.get(e)||new Set;for(let o of s){let s=S(o.path,r,e,n,t);s!==o.path&&(i.has(s)||a.push({...o,path:s,locale:e}))}}return a}function S(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{s as a,f as i,_ as n,y as r,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(`./chunk-D1Md3oWO.cjs`),t=require(`./utils-D6Xtj0FZ.cjs`),n=require(`./node/cache.cjs`),r=require(`./cache-CO4Dy2uQ.cjs`);let i=require(`node:path`);i=e.r(i);let a=require(`fdir`);const o=new n.FileCache({name:`routes`});function s(){o.invalidateAll(),r.t.clear()}function c(e){o.invalidate(e),r.t.invalidate(e)}function l(e){return e.sort((e,t)=>{let n=e.group?e.groupPosition??999:e.sidebarPosition??999,r=t.group?t.groupPosition??999:t.sidebarPosition??999;return n===r?!e.group&&t.group?-1:e.group&&!t.group?1:e.group&&t.group&&e.group!==t.group?(e.groupTitle||e.group).localeCompare(t.groupTitle||t.group):u(e,t):n-r})}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}let d=null;const f=new Map;async function p(e,t,n){let r=Array(e.length),i=0;async function a(){for(;i<e.length;){let t=i++;r[t]=await n(e[t])}}return await Promise.all(Array.from({length:Math.min(t,e.length)},()=>a())),r}let m=null;function h(e){let t=e.replace(/\\/g,`/`);m&&m[t]&&delete m[t],c(e)}let g=null;function _(){d=null,f.clear(),s(),m=null}async function v(e,n,r,s=!1,c=!1){if(g)return g;let u=(async()=>{let u=r||n?.base||`/docs`;await o.load(),f.clear();let h;if(!s&&d)h=d;else{let t=await new a.fdir().withFullPaths().filter(t=>t.endsWith(`.md`)||t.endsWith(`.mdx`)?!i.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],r=t.map(e=>{let t=i.default.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),h=r.map(e=>e.f),d=h}o.pruneStale(new Set(h));let g=process.env.NODE_ENV===`test`||process.env.VITEST===`true`,_,v=!0;for(let e of h)if(!o.get(e)){v=!1;break}if(v)_=h.map(e=>o.get(e));else{if(!g&&!m)try{let{runParser:t}=await import(`@bdocs/parser`);m=await t(e,c)}catch{}if(!g&&m!==null&&m){let{parseDocFileWithNative:t,parseDocFile:r}=await Promise.resolve().then(()=>require(`./parser-DCiEWkSk.cjs`));_=await p(h,32,async i=>{let a=o.get(i);if(a)return a;let s=i.replace(/\\/g,`/`),c=m[s];if(c){let r=await t(i,c,e,u,n);return o.set(i,r),r}else{let t=await r(i,e,u,n);return o.set(i,t),t}})}else{let{parseDocFile:t}=await Promise.resolve().then(()=>require(`./parser-DCiEWkSk.cjs`));_=await p(h,32,async r=>{let i=o.get(r);if(i)return i;let a=await t(r,e,u,n);return o.set(r,a),a})}}o.save();let b=[],x=new Map,S=process.env.NODE_ENV||`development`,C=n?.drafts?.visible||process.env.BOLTDOCS_DRAFTS===`true`||(n?.drafts?.environments?.includes(S)??!1);for(let e of _)if(!(e.route.draft&&!C)){if(e.route.featureFlags&&n?.featureFlags){if(!e.route.featureFlags.every(e=>{let t=n.featureFlags?.[e];return t===!0||t===S}))continue}else if(e.route.featureFlags&&!n?.featureFlags)continue;if(e.inferredCollection){let t=e.inferredCollection;x.has(t)||x.set(t,[]),x.get(t).push(e)}else b.push(e)}let w=new Map,T=[],E=n?.i18n?.defaultLocale||``;for(let e of b)if(e.isGroupIndex&&e.relativeDir&&T.push(e),e.relativeDir){let n=`${e.route.locale||E}:${e.relativeDir}`,r=w.get(n);r?r.position===void 0&&e.inferredGroupPosition!==void 0&&(r.position=e.inferredGroupPosition):(r={title:t.t(e.relativeDir),position:e.inferredGroupPosition},w.set(n,r))}for(let e of T){let t=`${e.route.locale||E}:${e.relativeDir}`,n=w.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):[E];for(let[r,i]of Object.entries(n.theme.sidebarGroups))for(let n of e){let e=`${n}:${r}`,a=w.get(e),o;typeof i.title==`string`?o=i.title:i.title&&(o=i.title[n]||i.title[E]),a?(o&&(a.title=o),i.icon&&(a.icon=i.icon)):w.set(e,{title:o||t.t(r),icon:i.icon})}}let D=Array(b.length);for(let e=0;e<b.length;e++){let n=b[e],r=n.relativeDir,i=n.route.locale||E,a=r?`${i}:${r}`:void 0,o=a?w.get(a):void 0,s;o&&(s=typeof o.title==`string`?o.title:o.title[i]||o.title[E]),D[e]={...n.route,group:r,groupTitle:s||(r?t.t(r):void 0),groupPosition:o?.position,groupIcon:o?.icon}}let O=[];for(let[,e]of x)for(let t of e)O.push({...t.route,collection:t.inferredCollection});O.sort((e,t)=>{let n=e.date?new Date(e.date).getTime():0;return(t.date?new Date(t.date).getTime():0)-n});let k=D;if(n?.i18n){let e=y(D,n,u);k=[...D,...e]}return[...l(k),...O]})();g=u;try{return await u}finally{g=null}}function y(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){if(e===r)continue;let i=o.get(e)||new Set;for(let o of s){let s=b(o.path,r,e,n,t);s!==o.path&&(i.has(s)||a.push({...o,path:s,locale:e}))}}return a}function b(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,`i`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return _}}),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
- const e=require(`./routes-BgoIB5wb.cjs`),t=require(`./pages-external-XkYIs-d5.cjs`);exports.generateRoutes=e.t,exports.getExternalRoutePaths=t.t,exports.invalidateFile=e.n,exports.invalidateRouteCache=e.r;
@@ -1,330 +0,0 @@
1
- /**
2
- * Boltdocs - https://boltdocs.vercel.app
3
- * Copyright (c) 2026 Jesus Alcala
4
- * Licensed under the MIT License.
5
- */
6
- const require_link = require('./link-D1Gjkb-2.cjs');
7
- const require_search_dialog = require('./search-dialog-B1NERUNx.cjs');
8
- let react = require("react");
9
- let react_router_dom = require("react-router-dom");
10
- let react_jsx_runtime = require("react/jsx-runtime");
11
- let flexsearch = require("flexsearch");
12
- let virtual_boltdocs_search = require("virtual:boltdocs-search");
13
- virtual_boltdocs_search = require_link.__toESM(virtual_boltdocs_search);
14
-
15
- //#region src/client/components/internal/error-boundary.tsx
16
- function InternalFallback({ error, resetErrorBoundary }) {
17
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
18
- className: "p-2 font-mono flex flex-col items-center justify-between min-h-[30vh]",
19
- children: [
20
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
21
- className: "text-lg font-semibold text-red-500",
22
- children: "Something went wrong"
23
- }),
24
- error?.message && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("pre", {
25
- className: "text-sm mt-2 max-w-md overflow-auto whitespace-pre-wrap break-word",
26
- children: error.message
27
- }),
28
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
29
- type: "button",
30
- onClick: resetErrorBoundary,
31
- className: "px-2 py-3 mt-2 bg-slate-100 rounded border-slate-200 border font-mono font-semibold text-slate-700 hover:scale-105 transition-transform active:scale-95 cursor-pointer",
32
- children: "Try again"
33
- })
34
- ]
35
- });
36
- }
37
- function InternalErrorBoundary({ children, fallback }) {
38
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_search_dialog.ErrorBoundary, {
39
- fallback,
40
- FallbackComponent: !fallback ? InternalFallback : void 0,
41
- children
42
- });
43
- }
44
-
45
- //#endregion
46
- //#region src/client/hooks/use-search.ts
47
- function useSearch(routes) {
48
- const { currentLocale, currentVersion } = require_link.useRoutes();
49
- const config = require_link.useConfig();
50
- const algoliaConfig = config.integrations?.search?.algolia;
51
- const [isOpen, setIsOpen] = (0, react.useState)(false);
52
- const [query, setQuery] = (0, react.useState)("");
53
- const [index, setIndex] = (0, react.useState)(null);
54
- const [algoliaResults, setAlgoliaResults] = (0, react.useState)([]);
55
- const navigate = (0, react_router_dom.useNavigate)();
56
- (0, react.useEffect)(() => {
57
- const handleKeyDown = (e) => {
58
- if ((/Mac/.test(navigator.userAgent) ? e.metaKey : e.ctrlKey) && (e.key === "k" || e.key === "j")) {
59
- e.preventDefault();
60
- setIsOpen((prev) => !prev);
61
- }
62
- };
63
- window.addEventListener("keydown", handleKeyDown);
64
- return () => window.removeEventListener("keydown", handleKeyDown);
65
- }, []);
66
- const handleSelect = (0, react.useCallback)((key) => {
67
- const path = String(key);
68
- setIsOpen(false);
69
- const [baseUrl, hash] = path.split("#");
70
- navigate(`${baseUrl}${query ? `?hl=${encodeURIComponent(query)}` : ""}${hash ? `#${hash}` : ""}`);
71
- if (hash) setTimeout(() => {
72
- const el = document.getElementById(hash);
73
- if (el) el.scrollIntoView({ behavior: "smooth" });
74
- }, 100);
75
- }, [navigate, query]);
76
- (0, react.useEffect)(() => {
77
- if (algoliaConfig) return;
78
- if (!isOpen || index) return;
79
- const newIndex = new flexsearch.Index({
80
- preset: "match",
81
- tokenize: "full",
82
- resolution: 9,
83
- cache: true
84
- });
85
- for (const doc of virtual_boltdocs_search.default) newIndex.add(doc.id, `${doc.title} ${doc.content}`);
86
- setIndex(newIndex);
87
- }, [
88
- isOpen,
89
- index,
90
- algoliaConfig
91
- ]);
92
- (0, react.useEffect)(() => {
93
- if (!algoliaConfig) return;
94
- if (!query) {
95
- setAlgoliaResults([]);
96
- return;
97
- }
98
- const delayDebounceFn = setTimeout(async () => {
99
- try {
100
- const url = `https://${algoliaConfig.appId}-dsn.algolia.net/1/indexes/${algoliaConfig.indexName}/query`;
101
- const facetFilters = [];
102
- if (currentLocale) facetFilters.push(`lang:${currentLocale}`);
103
- if (currentVersion) facetFilters.push(`version:${currentVersion}`);
104
- let params = `query=${encodeURIComponent(query)}&hitsPerPage=20`;
105
- if (facetFilters.length > 0) params += `&facetFilters=${encodeURIComponent(JSON.stringify(facetFilters))}`;
106
- const response = await fetch(url, {
107
- method: "POST",
108
- headers: {
109
- "Content-Type": "application/json",
110
- "X-Algolia-API-Key": algoliaConfig.apiKey,
111
- "X-Algolia-Application-Id": algoliaConfig.appId
112
- },
113
- body: JSON.stringify({ params })
114
- });
115
- if (!response.ok) throw new Error(`Algolia search request failed: ${response.statusText}`);
116
- setAlgoliaResults(((await response.json()).hits || []).map((hit) => {
117
- let path = hit.url || "";
118
- try {
119
- if (path.startsWith("http://") || path.startsWith("https://")) {
120
- const urlObj = new URL(path);
121
- path = urlObj.pathname + urlObj.search + urlObj.hash;
122
- }
123
- } catch (e) {}
124
- const hierarchy = hit.hierarchy || {};
125
- const levels = [
126
- hierarchy.lvl0,
127
- hierarchy.lvl1,
128
- hierarchy.lvl2,
129
- hierarchy.lvl3,
130
- hierarchy.lvl4,
131
- hierarchy.lvl5,
132
- hierarchy.lvl6
133
- ].filter(Boolean);
134
- const title = levels[levels.length - 1] || "Documentation";
135
- const bio = levels.join(" > ");
136
- return {
137
- id: hit.objectID || path,
138
- title,
139
- path,
140
- bio,
141
- groupTitle: hierarchy.lvl0 || "Docs",
142
- isHeading: !!hit.anchor || path.includes("#")
143
- };
144
- }));
145
- } catch (err) {
146
- console.error("Error fetching search results from Algolia:", err);
147
- }
148
- }, 250);
149
- return () => clearTimeout(delayDebounceFn);
150
- }, [
151
- query,
152
- algoliaConfig,
153
- currentLocale,
154
- currentVersion
155
- ]);
156
- const searchDataMap = (0, react.useMemo)(() => {
157
- const map = /* @__PURE__ */ new Map();
158
- for (const doc of virtual_boltdocs_search.default) map.set(doc.id, doc);
159
- return map;
160
- }, []);
161
- return {
162
- isOpen,
163
- setIsOpen,
164
- query,
165
- setQuery,
166
- list: (0, react.useMemo)(() => {
167
- if (!query) return routes.filter((r) => {
168
- const routeLocale = r.locale || config.i18n?.defaultLocale;
169
- const routeVersion = r.version || config.versions?.defaultVersion;
170
- return (!currentLocale || routeLocale === currentLocale) && (!currentVersion || routeVersion === currentVersion);
171
- }).slice(0, 10).map((r) => ({
172
- id: r.path,
173
- title: r.title,
174
- path: r.path,
175
- bio: r.description || "",
176
- groupTitle: r.groupTitle
177
- }));
178
- if (algoliaConfig) return algoliaResults;
179
- if (!index) return [];
180
- const searchResults = index.search(query, {
181
- limit: 20,
182
- suggest: true
183
- });
184
- const results = [];
185
- const seen = /* @__PURE__ */ new Set();
186
- for (const id of searchResults) {
187
- const doc = searchDataMap.get(id);
188
- if (!doc) continue;
189
- const docLocale = doc.locale || config.i18n?.defaultLocale;
190
- const docVersion = doc.version || config.versions?.defaultVersion;
191
- if (!(!currentLocale || docLocale === currentLocale) || !(!currentVersion || docVersion === currentVersion)) continue;
192
- if (seen.has(doc.url)) continue;
193
- seen.add(doc.url);
194
- results.push({
195
- id: doc.url,
196
- title: doc.title,
197
- path: doc.url,
198
- bio: doc.display,
199
- groupTitle: doc.display.split(" > ")[0],
200
- isHeading: doc.url.includes("#")
201
- });
202
- }
203
- return results.slice(0, 10);
204
- }, [
205
- query,
206
- index,
207
- currentLocale,
208
- currentVersion,
209
- routes,
210
- searchDataMap,
211
- algoliaConfig,
212
- algoliaResults,
213
- config
214
- ]),
215
- handleSelect,
216
- input: {
217
- value: query,
218
- onChange: (e) => setQuery(e.target.value)
219
- }
220
- };
221
- }
222
-
223
- //#endregion
224
- //#region src/client/components/ui-base/search-dialog.tsx
225
- function Highlight({ text, query }) {
226
- if (!query || !text) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_jsx_runtime.Fragment, { children: text });
227
- const escapedQuery = query.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
228
- const regex = new RegExp(`(${escapedQuery})`, "gi");
229
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_jsx_runtime.Fragment, { children: text.split(regex).map((part, i) => regex.test(part) ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("mark", {
230
- className: "bg-primary-500/20 text-primary-600 dark:text-primary-400 font-bold px-0.5 rounded-sm",
231
- children: part
232
- }, i) : part) });
233
- }
234
- function SearchDialog({ routes }) {
235
- const { isOpen, setIsOpen, query, setQuery, list, handleSelect } = useSearch(routes);
236
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [
237
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_search_dialog.Navbar.SearchTrigger.Desktop, {
238
- onPress: () => setIsOpen(true),
239
- 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",
240
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
241
- className: "flex items-center gap-2",
242
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_link.Search, { size: 16 }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
243
- className: "hidden sm:inline-block",
244
- children: "Search docs..."
245
- })]
246
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_search_dialog.Navbar.SearchTrigger.Kbd, { className: "[&_kbd]:bg-main [&_kbd]:border [&_kbd]:border-subtle [&_kbd]:rounded [&_kbd]:px-1.5 [&_kbd]:h-5 [&_kbd]:w-5" })]
247
- }),
248
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_search_dialog.Navbar.SearchTrigger.Mobile, {
249
- onPress: () => setIsOpen(true),
250
- 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",
251
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_link.Search, { size: 20 })
252
- }),
253
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(InternalErrorBoundary, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_search_dialog.SearchDialog.Overlay, {
254
- isOpen,
255
- isDismissable: true,
256
- onOpenChange: () => setIsOpen(false),
257
- className: "fixed inset-0 z-100 flex items-center justify-center p-4 bg-black/40 backdrop-blur-xs animate-fade-in",
258
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_search_dialog.SearchDialog.Content, {
259
- className: "w-full max-w-lg bg-main border border-subtle shadow-md rounded-2xl overflow-hidden p-6",
260
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_search_dialog.SearchDialog.Dialog, {
261
- "aria-label": "Search documentation",
262
- className: "flex flex-col min-h-0 h-[450px]",
263
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_search_dialog.SearchDialog.Autocomplete, {
264
- onSelectionChange: handleSelect,
265
- className: "flex flex-col min-h-0",
266
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_search_dialog.SearchDialog.Input, {
267
- value: query,
268
- onChange: setQuery,
269
- 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",
270
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_search_dialog.SearchDialog.Input.SearchInput, {
271
- placeholder: "Search documentation...",
272
- className: "w-full bg-transparent outline-none text-body text-sm"
273
- }), query && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_search_dialog.SearchDialog.Input.Button, {
274
- onPress: () => setQuery(""),
275
- className: "text-muted hover:text-body hover:bg-surface rounded-md p-1 cursor-pointer select-none transition-colors",
276
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_link.X, { size: 16 })
277
- })]
278
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_search_dialog.SearchDialog.List, {
279
- items: list,
280
- children: (item) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_search_dialog.SearchDialog.Item, {
281
- onPress: () => handleSelect(item.id),
282
- textValue: item.title,
283
- 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",
284
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_search_dialog.SearchDialog.Item.Icon, {
285
- isHeading: item.isHeading,
286
- className: "text-muted group-hover:text-primary-500 group-focus:text-primary-500"
287
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
288
- className: "flex flex-col justify-center min-w-0",
289
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_search_dialog.SearchDialog.Item.Title, {
290
- className: "text-sm font-medium text-body truncate dark:group-hover:text-primary-100",
291
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Highlight, {
292
- text: item.title,
293
- query
294
- })
295
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_search_dialog.SearchDialog.Item.Bio, {
296
- className: "text-xs text-muted truncate",
297
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Highlight, {
298
- text: item.bio,
299
- query
300
- })
301
- })]
302
- })]
303
- }, item.id)
304
- })]
305
- })
306
- })
307
- })
308
- }) })
309
- ] });
310
- }
311
-
312
- //#endregion
313
- Object.defineProperty(exports, 'InternalErrorBoundary', {
314
- enumerable: true,
315
- get: function () {
316
- return InternalErrorBoundary;
317
- }
318
- });
319
- Object.defineProperty(exports, 'SearchDialog', {
320
- enumerable: true,
321
- get: function () {
322
- return SearchDialog;
323
- }
324
- });
325
- Object.defineProperty(exports, 'useSearch', {
326
- enumerable: true,
327
- get: function () {
328
- return useSearch;
329
- }
330
- });