boltdocs 2.3.0 → 2.4.2

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 (93) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/base-ui/index.d.mts +3 -3
  3. package/dist/base-ui/index.d.ts +3 -3
  4. package/dist/base-ui/index.js +1 -1
  5. package/dist/base-ui/index.mjs +1 -1
  6. package/dist/chunk-2DI3OGHV.mjs +1 -0
  7. package/dist/chunk-64AJ5QLT.mjs +1 -0
  8. package/dist/chunk-DDX52BX4.mjs +1 -0
  9. package/dist/chunk-HRZDSFR5.mjs +1 -0
  10. package/dist/chunk-PPVDMDEL.mjs +1 -0
  11. package/dist/{chunk-HA6543SL.mjs → chunk-UBE4CKOA.mjs} +1 -1
  12. package/dist/chunk-UWT4AJTH.mjs +73 -0
  13. package/dist/chunk-WWJ7WKDI.mjs +1 -0
  14. package/dist/client/index.d.mts +15 -21
  15. package/dist/client/index.d.ts +15 -21
  16. package/dist/client/index.js +1 -1
  17. package/dist/client/index.mjs +1 -1
  18. package/dist/client/ssr.js +1 -1
  19. package/dist/client/ssr.mjs +1 -1
  20. package/dist/client/types.d.mts +1 -1
  21. package/dist/client/types.d.ts +1 -1
  22. package/dist/client/types.js +1 -1
  23. package/dist/{copy-markdown-CbS8X-qe.d.mts → copy-markdown--9yjpbyy.d.mts} +1 -1
  24. package/dist/{copy-markdown-C-90ixSe.d.ts → copy-markdown-l2MYkcG7.d.ts} +1 -1
  25. package/dist/hooks/index.d.mts +3 -3
  26. package/dist/hooks/index.d.ts +3 -3
  27. package/dist/hooks/index.js +1 -1
  28. package/dist/hooks/index.mjs +1 -1
  29. package/dist/integrations/index.d.mts +1 -1
  30. package/dist/integrations/index.d.ts +1 -1
  31. package/dist/{loading-B7X5Wchs.d.ts → loading-BwUos0wZ.d.mts} +2 -11
  32. package/dist/{loading-WuaQbsKb.d.mts → loading-nlnUD01v.d.ts} +2 -11
  33. package/dist/mdx/index.d.mts +4 -2
  34. package/dist/mdx/index.d.ts +4 -2
  35. package/dist/mdx/index.js +1 -1
  36. package/dist/mdx/index.mjs +1 -1
  37. package/dist/node/cli-entry.js +16 -17
  38. package/dist/node/cli-entry.mjs +1 -1
  39. package/dist/node/index.d.mts +0 -9
  40. package/dist/node/index.d.ts +0 -9
  41. package/dist/node/index.js +13 -14
  42. package/dist/node/index.mjs +1 -1
  43. package/dist/primitives/index.d.mts +11 -20
  44. package/dist/primitives/index.d.ts +11 -20
  45. package/dist/primitives/index.js +1 -1
  46. package/dist/primitives/index.mjs +1 -1
  47. package/dist/search-dialog-OONKKC5H.mjs +1 -0
  48. package/dist/{types-j7jvWsJj.d.ts → types-opDA2E9-.d.mts} +4 -11
  49. package/dist/{types-j7jvWsJj.d.mts → types-opDA2E9-.d.ts} +4 -11
  50. package/dist/{use-routes-Cd806kGw.d.ts → use-routes-DNwgTRpU.d.ts} +1 -1
  51. package/dist/{use-routes-DDL0_jkQ.d.mts → use-routes-DrT80Eom.d.mts} +1 -1
  52. package/package.json +1 -1
  53. package/src/client/app/index.tsx +20 -9
  54. package/src/client/app/mdx-components-context.tsx +2 -2
  55. package/src/client/app/mdx-page.tsx +0 -1
  56. package/src/client/app/scroll-handler.tsx +21 -10
  57. package/src/client/components/default-layout.tsx +0 -2
  58. package/src/client/components/docs-layout.tsx +34 -4
  59. package/src/client/components/icons-dev.tsx +154 -0
  60. package/src/client/components/mdx/code-block.tsx +57 -5
  61. package/src/client/components/mdx/component-preview.tsx +1 -0
  62. package/src/client/components/mdx/file-tree.tsx +35 -0
  63. package/src/client/components/primitives/helpers/observer.ts +30 -39
  64. package/src/client/components/primitives/index.ts +1 -0
  65. package/src/client/components/primitives/menu.tsx +18 -12
  66. package/src/client/components/primitives/navbar.tsx +31 -90
  67. package/src/client/components/primitives/on-this-page.tsx +7 -161
  68. package/src/client/components/primitives/popover.tsx +1 -2
  69. package/src/client/components/ui-base/copy-markdown.tsx +4 -10
  70. package/src/client/components/ui-base/index.ts +0 -1
  71. package/src/client/components/ui-base/navbar.tsx +10 -9
  72. package/src/client/hooks/use-navbar.ts +37 -6
  73. package/src/client/index.ts +0 -1
  74. package/src/client/theme/neutral.css +2 -3
  75. package/src/client/types.ts +2 -2
  76. package/src/node/config.ts +0 -14
  77. package/src/node/mdx/cache.ts +1 -1
  78. package/src/node/mdx/index.ts +2 -0
  79. package/src/node/mdx/rehype-shiki.ts +9 -0
  80. package/src/node/mdx/remark-code-meta.ts +35 -0
  81. package/src/node/mdx/remark-shiki.ts +1 -1
  82. package/src/node/plugin/entry.ts +21 -14
  83. package/src/node/plugin/index.ts +22 -4
  84. package/src/node/routes/parser.ts +3 -0
  85. package/src/node/ssg/index.ts +76 -16
  86. package/dist/chunk-22NXDNP4.mjs +0 -74
  87. package/dist/chunk-2HUVMMJU.mjs +0 -1
  88. package/dist/chunk-CRZGOE32.mjs +0 -1
  89. package/dist/chunk-RPUERTVC.mjs +0 -1
  90. package/dist/chunk-URTD6E6S.mjs +0 -1
  91. package/dist/chunk-W2NB4T6V.mjs +0 -1
  92. package/dist/search-dialog-ZRXBAQJ5.mjs +0 -1
  93. package/src/client/components/ui-base/progress-bar.tsx +0 -67
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import{b as L,c as ie,e as V,f as re,h as w,i as Y}from"../chunk-22NXDNP4.mjs";import{a as v,b as te,c as oe,d as n,e as D,i as G,q as se}from"../chunk-Y4RRHPXC.mjs";var S={};oe(S,{colors:()=>x,error:()=>a,formatLog:()=>W,info:()=>b,success:()=>A});function W(s,e=""){return`${e}${x.bold}[boltdocs]${x.reset} ${s}${x.reset}`}function b(s){console.log(W(s))}function a(s,e){console.error(W(s,x.red)),e&&console.error(e)}function A(s){console.log(W(s,x.green))}var x,C=v(()=>{"use strict";n();x={reset:"\x1B[0m",bold:"\x1B[1m",red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",cyan:"\x1B[36m",gray:"\x1B[90m"}});import{createServer as ne}from"vite";async function q(s=process.cwd()){try{let e=await w(s,"development"),l=await ne(e);await l.listen(),l.printUrls(),l.bindCLIShortcuts({print:!0})}catch(e){a("Failed to start dev server:",e),process.exit(1)}}var J=v(()=>{"use strict";n();Y();C()});import{build as le,preview as ce}from"vite";import ae from"path";import M from"fs";async function K(s=process.cwd()){let e=!1,l=ae.resolve(s,"index.html");try{if(!M.existsSync(l)){let f=await L("docs",s);M.writeFileSync(l,V(f),"utf-8"),e=!0}let g=await w(s,"production");await le(g),A("Build completed successfully.")}catch(g){a("Build failed:",g),process.exit(1)}finally{e&&M.existsSync(l)&&M.unlinkSync(l)}}async function N(s=process.cwd()){try{let e=await w(s,"production");(await ce(e)).printUrls()}catch(e){a("Failed to start preview server:",e),process.exit(1)}}var Q=v(()=>{"use strict";n();Y();re();C()});import u from"path";import R from"fs";import fe from"fast-glob";async function X(s=process.cwd()){let{colors:e}=S;b(`${e.bold}Running documentation health check...${e.reset}
2
+ import{b as L,c as ie,e as V,f as re,h as w,i as Y}from"../chunk-UWT4AJTH.mjs";import{a as v,b as te,c as oe,d as n,e as D,i as G,q as se}from"../chunk-Y4RRHPXC.mjs";var S={};oe(S,{colors:()=>x,error:()=>a,formatLog:()=>W,info:()=>b,success:()=>A});function W(s,e=""){return`${e}${x.bold}[boltdocs]${x.reset} ${s}${x.reset}`}function b(s){console.log(W(s))}function a(s,e){console.error(W(s,x.red)),e&&console.error(e)}function A(s){console.log(W(s,x.green))}var x,C=v(()=>{"use strict";n();x={reset:"\x1B[0m",bold:"\x1B[1m",red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",cyan:"\x1B[36m",gray:"\x1B[90m"}});import{createServer as ne}from"vite";async function q(s=process.cwd()){try{let e=await w(s,"development"),l=await ne(e);await l.listen(),l.printUrls(),l.bindCLIShortcuts({print:!0})}catch(e){a("Failed to start dev server:",e),process.exit(1)}}var J=v(()=>{"use strict";n();Y();C()});import{build as le,preview as ce}from"vite";import ae from"path";import M from"fs";async function K(s=process.cwd()){let e=!1,l=ae.resolve(s,"index.html");try{if(!M.existsSync(l)){let f=await L("docs",s);M.writeFileSync(l,V(f),"utf-8"),e=!0}let g=await w(s,"production");await le(g),A("Build completed successfully.")}catch(g){a("Build failed:",g),process.exit(1)}finally{e&&M.existsSync(l)&&M.unlinkSync(l)}}async function N(s=process.cwd()){try{let e=await w(s,"production");(await ce(e)).printUrls()}catch(e){a("Failed to start preview server:",e),process.exit(1)}}var Q=v(()=>{"use strict";n();Y();re();C()});import u from"path";import R from"fs";import fe from"fast-glob";async function X(s=process.cwd()){let{colors:e}=S;b(`${e.bold}Running documentation health check...${e.reset}
3
3
  `);let l=performance.now();try{let g=await L("docs",s),f=u.resolve(s,"docs");R.existsSync(f)||(a(`Documentation directory not found at ${f}`),process.exit(1));let T=await fe(["**/*.md","**/*.mdx"],{cwd:f,absolute:!0,suppressErrors:!0}),k=0,B=0,j=0,P=new Map,F=(r,c)=>{let m=u.relative(f,r),t=P.get(m);t||(t=[],P.set(m,t)),t.push(c),c.level==="high"?k++:c.level==="warning"?B++:c.level==="low"&&j++},E="/docs";for(let r of T){let{data:c,content:m}=G(r);c.title||F(r,{level:"warning",message:'Missing "title" in frontmatter.',suggestion:"Add `title: Your Title` to the YAML frontmatter at the top of the file."}),c.description||F(r,{level:"low",message:'Missing "description" in frontmatter.',suggestion:"Adding a description helps with SEO and search previews."});let t=/\[.*?\]\((.*?)\)/g,d=/<a\s+[^>]*href=["']([^"']+)["'][^>]*>/g,i=[...m.matchAll(t),...m.matchAll(d)];for(let H of i){let o=H[1];if(!o||o.startsWith("http")||o.startsWith("https")||o.startsWith("#")||o.startsWith("mailto:")||o.startsWith("tel:")||(o=o.split("#")[0],!o))continue;let h;if(o.startsWith("/")){let I=o;(o.startsWith(E+"/")||o===E)&&(I=o.substring(E.length)),h=u.join(f,I)}else h=u.resolve(u.dirname(r),o);let O=["",".md",".mdx","/index.md","/index.mdx"],U=!1;for(let I of O){let z=h+I;if(R.existsSync(z)&&R.statSync(z).isFile()){U=!0;break}}U||F(r,{level:"high",message:`Broken internal link: "${o}"`,suggestion:`Ensure the file exists at "${h}". If it's a directory, ensure it has an "index.md" or "index.mdx".`})}}if(g.i18n){let{defaultLocale:r,locales:c}=g.i18n,m=Object.keys(c).filter(t=>t!==r);for(let t of T){let i=D(u.relative(f,t)).split("/");if(i[0]===r){let H=i.slice(1).join("/");for(let o of m){let h=[o,...i.slice(1)],O=u.join(f,...h);R.existsSync(O)||F(t,{level:"warning",message:`Missing translation for locale "${o}"`,suggestion:`Create a translated version of this file at "${o}/${H}".`})}}}}if(P.size===0)A(`All documentation files are healthy!
4
4
  `);else{for(let[r,c]of P.entries()){console.log(`\u{1F4C4} ${e.bold}${r}${e.reset}`);let m=c.sort((t,d)=>{let i={high:1,warning:2,low:3};return i[t.level]-i[d.level]});for(let t of m){let d="",i="";t.level==="high"?(d="\u274C",i=e.red):t.level==="warning"?(d="\u26A0\uFE0F",i=e.yellow):(d="\u2139\uFE0F",i=e.cyan),console.log(` ${i}${d} ${t.level.toUpperCase()}:${e.reset} ${t.message}`),t.suggestion&&console.log(` ${e.gray}\u{1F4A1} Suggestion: ${t.suggestion}${e.reset}`)}console.log("")}console.log(`${e.bold}Summary:${e.reset}`),console.log(` ${e.red}${k} high-level errors${e.reset}`),console.log(` ${e.yellow}${B} warnings${e.reset}`),console.log(` ${e.cyan}${j} minor improvements${e.reset}
5
5
  `),k>0&&a("HIGH ERROR: Fix these to ensure your documentation builds correctly."),(B>0||j>0)&&b("TIP: Address warnings and suggestions for premium quality docs."),console.log("")}let ee=performance.now()-l;b(`Finished in ${ee.toFixed(2)}ms
@@ -39,13 +39,6 @@ interface BoltdocsThemeConfig {
39
39
  label: string | Record<string, string>;
40
40
  /** URL path or external link */
41
41
  href: string;
42
- /** Nested items for NavigationMenu */
43
- items?: Array<{
44
- /** Text to display (can be a string or a map of translations) */
45
- label: string | Record<string, string>;
46
- /** URL path or external link */
47
- href: string;
48
- }>;
49
42
  }>;
50
43
  /** Items to display in the sidebar, organized optionally by group URLs */
51
44
  sidebar?: Record<string, Array<{
@@ -216,8 +209,6 @@ interface BoltdocsConfig {
216
209
  versions?: BoltdocsVersionsConfig;
217
210
  /** Custom plugins for extending functionality */
218
211
  plugins?: BoltdocsPlugin[];
219
- /** Map of custom external route paths to component file paths */
220
- external?: Record<string, string>;
221
212
  /** External integrations configuration */
222
213
  integrations?: BoltdocsIntegrationsConfig;
223
214
  /** Configuration for the robots.txt file */
@@ -39,13 +39,6 @@ interface BoltdocsThemeConfig {
39
39
  label: string | Record<string, string>;
40
40
  /** URL path or external link */
41
41
  href: string;
42
- /** Nested items for NavigationMenu */
43
- items?: Array<{
44
- /** Text to display (can be a string or a map of translations) */
45
- label: string | Record<string, string>;
46
- /** URL path or external link */
47
- href: string;
48
- }>;
49
42
  }>;
50
43
  /** Items to display in the sidebar, organized optionally by group URLs */
51
44
  sidebar?: Record<string, Array<{
@@ -216,8 +209,6 @@ interface BoltdocsConfig {
216
209
  versions?: BoltdocsVersionsConfig;
217
210
  /** Custom plugins for extending functionality */
218
211
  plugins?: BoltdocsPlugin[];
219
- /** Map of custom external route paths to component file paths */
220
- external?: Record<string, string>;
221
212
  /** External integrations configuration */
222
213
  integrations?: BoltdocsIntegrationsConfig;
223
214
  /** Configuration for the robots.txt file */
@@ -1,21 +1,20 @@
1
- "use strict";var Me=Object.create;var et=Object.defineProperty;var Te=Object.getOwnPropertyDescriptor;var _e=Object.getOwnPropertyNames;var Oe=Object.getPrototypeOf,Fe=Object.prototype.hasOwnProperty;var ht=(o,e)=>()=>(o&&(e=o(o=0)),e);var Ht=(o,e)=>{for(var t in e)et(o,t,{get:e[t],enumerable:!0})},Lt=(o,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of _e(e))!Fe.call(o,i)&&i!==t&&et(o,i,{get:()=>e[i],enumerable:!(s=Te(e,i))||s.enumerable});return o};var v=(o,e,t)=>(t=o!=null?Me(Oe(o)):{},Lt(e||!o||!o.__esModule?et(t,"default",{value:o,enumerable:!0}):t,o)),Ie=o=>Lt(et({},"__esModule",{value:!0}),o);var je,P,m=ht(()=>{"use strict";je=()=>typeof document>"u"?new URL(`file:${__filename}`).href:document.currentScript&&document.currentScript.tagName.toUpperCase()==="SCRIPT"?document.currentScript.src:new URL("main.js",document.baseURI).href,P=je()});function k(o){return o.replace(/\\/g,"/")}function W(o){return o.replace(/^\d+\./,"")}function ot(o){let e=o.match(/^(\d+)\./);return e?parseInt(e[1],10):void 0}function zt(o){return/\.mdx?$/.test(o)}function it(o){try{return yt.default.statSync(o).mtimeMs}catch{return 0}}function At(o){let e=yt.default.readFileSync(o,"utf-8");try{let{data:t,content:s}=(0,Et.default)(e);return{data:t,content:s}}catch{return{data:{},content:e}}}function H(o){return o.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&apos;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function bt(o){return H(o)}function Nt(o){let t=o.split("/").map(W).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 q(o){return xt.default.sanitize(o)}function vt(o){return xt.default.sanitize(o,{ALLOWED_TAGS:[],KEEP_CONTENT:!0})}function J(o){return o.charAt(0).toUpperCase()+o.slice(1)}function Pt(o,e){return o?typeof o=="string"?o:e&&o[e]?o[e]:Object.values(o)[0]||"":""}var yt,Et,xt,T=ht(()=>{"use strict";m();yt=v(require("fs")),Et=v(require("gray-matter")),xt=v(require("isomorphic-dompurify"))});var Bt={};Ht(Bt,{AssetCache:()=>$t,FileCache:()=>K,TransformCache:()=>X,flushCache:()=>Ne});async function Ne(){await F.flush()}var C,D,E,L,z,nt,He,rt,St,eo,Dt,Le,Ee,ze,Ae,wt,Ct,F,K,X,$t,Z=ht(()=>{"use strict";m();C=v(require("fs")),D=v(require("path")),E=v(require("crypto")),L=v(require("zlib")),z=require("util");T();nt=(0,z.promisify)(C.default.writeFile),He=(0,z.promisify)(C.default.readFile),rt=(0,z.promisify)(C.default.mkdir),St=(0,z.promisify)(C.default.rename),eo=(0,z.promisify)(C.default.unlink),Dt=process.env.BOLTDOCS_CACHE_DIR||".boltdocs",Le="assets",Ee="shards",ze=parseInt(process.env.BOLTDOCS_CACHE_LRU_LIMIT||"2000",10),Ae=process.env.BOLTDOCS_CACHE_COMPRESS!=="0",wt=class{constructor(e){this.limit=e}cache=new Map;get(e){let t=this.cache.get(e);return t!==void 0&&(this.cache.delete(e),this.cache.set(e,t)),t}set(e,t){if(this.cache.has(e))this.cache.delete(e);else if(this.cache.size>=this.limit){let s=this.cache.keys().next().value;s!==void 0&&this.cache.delete(s)}this.cache.set(e,t)}get size(){return this.cache.size}clear(){this.cache.clear()}},Ct=class{queue=Promise.resolve();pendingCount=0;add(e){this.pendingCount++,this.queue=this.queue.then(e).finally(()=>{this.pendingCount--})}async flush(){await this.queue}get pending(){return this.pendingCount}},F=new Ct,K=class{entries=new Map;cachePath=null;compress;constructor(e={}){if(this.compress=e.compress!==void 0?e.compress:Ae,e.name){let t=e.root||process.cwd(),s=this.compress?"json.gz":"json";this.cachePath=D.default.resolve(t,Dt,`${e.name}.${s}`)}}load(){if(process.env.BOLTDOCS_NO_CACHE!=="1"&&!(!this.cachePath||!C.default.existsSync(this.cachePath)))try{let e=C.default.readFileSync(this.cachePath);this.cachePath.endsWith(".gz")&&(e=L.default.gunzipSync(e));let t=JSON.parse(e.toString("utf-8"));this.entries=new Map(Object.entries(t))}catch{}}save(){if(process.env.BOLTDOCS_NO_CACHE==="1"||!this.cachePath)return;let e=Object.fromEntries(this.entries),t=JSON.stringify(e),s=this.cachePath,i=this.compress;F.add(async()=>{try{await rt(D.default.dirname(s),{recursive:!0});let r=Buffer.from(t);i&&(r=L.default.gzipSync(r));let c=`${s}.${E.default.randomBytes(4).toString("hex")}.tmp`;await nt(c,r),await St(c,s)}catch{}})}get(e){let t=this.entries.get(e);return!t||it(e)!==t.mtime?null:t.data}set(e,t){this.entries.set(e,{data:t,mtime:it(e)})}isValid(e){let t=this.entries.get(e);return t?it(e)===t.mtime:!1}invalidate(e){this.entries.delete(e)}invalidateAll(){this.entries.clear()}pruneStale(e){for(let t of this.entries.keys())e.has(t)||this.entries.delete(t)}get size(){return this.entries.size}async flush(){await F.flush()}},X=class{index=new Map;memoryCache=new wt(ze);baseDir;shardsDir;indexPath;constructor(e,t=process.cwd()){this.baseDir=D.default.resolve(t,Dt,`transform-${e}`),this.shardsDir=D.default.resolve(this.baseDir,Ee),this.indexPath=D.default.resolve(this.baseDir,"index.json")}load(){if(process.env.BOLTDOCS_NO_CACHE!=="1"&&C.default.existsSync(this.indexPath))try{let e=C.default.readFileSync(this.indexPath,"utf-8");this.index=new Map(Object.entries(JSON.parse(e)))}catch{}}save(){if(process.env.BOLTDOCS_NO_CACHE==="1")return;let e=JSON.stringify(Object.fromEntries(this.index)),t=this.indexPath;F.add(async()=>{await rt(D.default.dirname(t),{recursive:!0}),await nt(t,e)})}async getMany(e){let t=new Map,s=[];for(let i of e){let r=this.memoryCache.get(i);r?t.set(i,r):this.index.has(i)&&s.push(i)}if(s.length>0){let i=await Promise.all(s.map(async r=>{let c=this.index.get(r),p=D.default.resolve(this.shardsDir,`${c}.gz`);try{let n=await He(p),l=L.default.gunzipSync(n).toString("utf-8");return this.memoryCache.set(r,l),{key:r,val:l}}catch{return null}}));for(let r of i)r&&t.set(r.key,r.val)}return t}get(e){let t=this.memoryCache.get(e);if(t)return t;let s=this.index.get(e);if(!s)return null;let i=D.default.resolve(this.shardsDir,`${s}.gz`);if(!C.default.existsSync(i))return null;try{let r=C.default.readFileSync(i),c=L.default.gunzipSync(r).toString("utf-8");return this.memoryCache.set(e,c),c}catch{return null}}set(e,t){let s=E.default.createHash("md5").update(t).digest("hex");this.index.set(e,s),this.memoryCache.set(e,t);let i=D.default.resolve(this.shardsDir,`${s}.gz`);F.add(async()=>{if(C.default.existsSync(i))return;await rt(this.shardsDir,{recursive:!0});let r=L.default.gzipSync(Buffer.from(t)),c=`${i}.${E.default.randomBytes(4).toString("hex")}.tmp`;await nt(c,r),await St(c,i)})}get size(){return this.index.size}async flush(){await F.flush()}},$t=class{assetsDir;constructor(e=process.cwd()){this.assetsDir=D.default.resolve(e,Dt,Le)}getFileHash(e){return E.default.createHash("md5").update(C.default.readFileSync(e)).digest("hex")}get(e,t){if(!C.default.existsSync(e))return null;let s=this.getFileHash(e),i=this.getCachedPath(e,`${t}-${s}`);return C.default.existsSync(i)?i:null}set(e,t,s){let i=this.getFileHash(e),r=this.getCachedPath(e,`${t}-${i}`);F.add(async()=>{await rt(this.assetsDir,{recursive:!0});let c=`${r}.${E.default.randomBytes(4).toString("hex")}.tmp`;await nt(c,s),await St(c,r)})}getCachedPath(e,t){let s=D.default.extname(e),i=D.default.basename(e,s),r=t.replace(/[^a-z0-9]/gi,"-").toLowerCase();return D.default.join(this.assetsDir,`${i}.${r}${s}`)}clear(){C.default.existsSync(this.assetsDir)&&C.default.rmSync(this.assetsDir,{recursive:!0,force:!0})}async flush(){await F.flush()}}});var Ke={};Ht(Ke,{createViteConfig:()=>Je,default:()=>Ft,defineConfig:()=>Xt,generateStaticPages:()=>lt,resolveConfig:()=>I});module.exports=Ie(Ke);m();var Ce=v(require("@vitejs/plugin-react")),$e=v(require("@tailwindcss/vite"));m();var ae=require("vite");m();var qt=v(require("fast-glob"));T();m();Z();var _=new K({name:"routes"});function Rt(){_.invalidateAll()}function kt(o){_.invalidate(o)}m();var A=v(require("path")),Ut=v(require("github-slugger"));T();function Gt(o,e,t,s){let i=decodeURIComponent(o),r=A.default.resolve(i),c=A.default.resolve(e),p=k(A.default.relative(c,r));if(p.startsWith("../")||p===".."||r.includes("\0"))throw new Error(`Security breach: File is outside of docs directory or contains null bytes: ${o}`);let{data:n,content:l}=At(o),d=p.split("/"),u,h;if(s?.versions&&d.length>0){let R=d[0],gt=s.versions.prefix||"",tt=s.versions.versions.find(V=>{let ft=gt+V.path;return R===ft||R===V.path});tt&&(h=tt.path,d=d.slice(1))}if(s?.i18n&&d.length>0){let R=d[0];s.i18n.locales[R]&&(u=R,d=d.slice(1))}let y;if(d.length>0){let R=d[0].match(/^\((.+)\)$/);R&&(y=R[1].toLowerCase(),d=d.slice(1))}let S=d.join("/"),a;n.permalink?a=n.permalink.startsWith("/")?n.permalink:`/${n.permalink}`:a=Nt(S||"index.md");let g=t;h&&(g+="/"+h),u&&(g+="/"+u),g+=a==="/"?"":a,(!g||g==="")&&(g="/");let b=d[d.length-1],f=W(b),B=W(A.default.basename(o,A.default.extname(o))),x=n.sidebarPosition??ot(b),$=d.length>=2?d[0]:void 0,w=$?W($):void 0,G=d.length>=2&&/^index\.mdx?$/.test(f),Se=new Ut.default,It=[],De=/^(#{2,4})\s+(.+)$/gm;for(let R of l.matchAll(De)){let gt=R[1].length,tt=R[2].replace(/\[([^\]]+)\]\([^\)]+\)/g,"$1").replace(/[_*`]/g,"").trim(),V=q(tt).trim(),ft=Se.slug(V);It.push({level:gt,text:V,id:ft})}let Be=n.title?q(String(n.title)):B,ut=n.description?q(String(n.description)):"";!ut&&l&&(ut=vt(l.replace(/^#+.*$/gm,"").replace(/\[([^\]]+)\]\([^\)]+\)/g,"$1").replace(/[_*`]/g,"").replace(/\s+/g," ")).trim().slice(0,160));let Re=n.badge?q(String(n.badge)):void 0,jt=n.icon?String(n.icon):void 0,ke=Ue(l);return{route:{path:g,componentPath:o,filePath:p,title:Be,description:ut,sidebarPosition:x,headings:It,locale:u,version:h,badge:Re,icon:jt,tab:y,_content:ke,_rawContent:l},relativeDir:w,isGroupIndex:G,inferredTab:y,groupMeta:G?{title:n.groupTitle||n.title||(w?J(w):""),position:n.groupPosition??n.sidebarPosition??($?ot($):void 0),icon:jt}:void 0,inferredGroupPosition:$?ot($):void 0}}function Ue(o){let e=o.replace(/^#+.*$/gm,"").replace(/\[([^\]]+)\]\([^\)]+\)/g,"$1").replace(/\{[^\}]+\}/g,"").replace(/[_*`]/g,"").replace(/\s+/g," ");return vt(e).trim()}m();function Wt(o){return o.sort((e,t)=>!e.group&&!t.group?Vt(e,t):e.group?t.group?e.group!==t.group?Ge(e,t):Vt(e,t):1:-1)}function Vt(o,e){return o.sidebarPosition!==void 0&&e.sidebarPosition!==void 0?o.sidebarPosition-e.sidebarPosition:o.sidebarPosition!==void 0?-1:e.sidebarPosition!==void 0?1:o.title.localeCompare(e.title)}function Ge(o,e){return o.groupPosition!==void 0&&e.groupPosition!==void 0?o.groupPosition-e.groupPosition:o.groupPosition!==void 0?-1:e.groupPosition!==void 0?1:(o.groupTitle||o.group).localeCompare(e.groupTitle||e.group)}var Mt=null,Q=new Map;async function N(o,e,t="/docs",s=!0){let i=performance.now();_.load(),Q.clear(),(process.env.BOLTDOCS_FORCE_REPARSE==="true"||e?.i18n)&&_.invalidateAll();let r;!s&&Mt?r=Mt:(r=await(0,qt.default)(["**/*.md","**/*.mdx"],{cwd:o,absolute:!0,suppressErrors:!0,followSymbolicLinks:!1}),Mt=r),_.pruneStale(new Set(r));let c=50,p=[],n=0;for(let a=0;a<r.length;a+=c){let g=r.slice(a,a+c),b=await Promise.all(g.map(async f=>{let B=_.get(f);if(B)return n++,B;let x=Gt(f,o,t,e);return _.set(f,x),x}));p.push(...b),a+c<r.length&&await new Promise(f=>setImmediate(f))}_.save();let l=new Map,d=[];for(let a of p)if(a.isGroupIndex&&a.relativeDir&&d.push(a),a.relativeDir){let g=l.get(a.relativeDir);g?(g.position===void 0&&a.inferredGroupPosition!==void 0&&(g.position=a.inferredGroupPosition),!g.icon&&a.route.icon&&(g.icon=a.route.icon)):(g={title:J(a.relativeDir),position:a.inferredGroupPosition,icon:a.route.icon},l.set(a.relativeDir,g))}for(let a of d){let g=l.get(a.relativeDir);a.groupMeta&&(g.title=a.groupMeta.title,a.groupMeta.position!==void 0&&(g.position=a.groupMeta.position),a.groupMeta.icon&&(g.icon=a.groupMeta.icon))}let u=new Array(p.length);for(let a=0;a<p.length;a++){let g=p[a],b=g.relativeDir,f=b?l.get(b):void 0;u[a]={...g.route,group:b,groupTitle:f?.title||(b?J(b):void 0),groupPosition:f?.position,groupIcon:f?.icon}}let h=u;if(e?.i18n){let a=Ve(u,e,t);h=[...u,...a]}let y=Wt(h),S=performance.now()-i;return console.log(`[boltdocs] Route generation: ${S.toFixed(2)}ms (${r.length} files, ${n} cache hits)`),y}function Ve(o,e,t){let s=e.i18n.defaultLocale,i=Object.keys(e.i18n.locales),r=[],c=new Map,p=[];for(let n of o){let l=n.locale||s;c.has(l)||c.set(l,new Set),c.get(l).add(n.path),l===s&&p.push(n)}for(let n of i){let l=c.get(n)||new Set;for(let d of p){let u=We(d.path,s,n,t,e);u!==d.path&&(l.has(u)||r.push({...d,path:u,locale:n}))}}return r}function We(o,e,t,s,i){let r=`${o}:${t}`,c=Q.get(r);if(c)return c;let p=s;if(i?.versions){let u=i.versions.prefix||"";for(let h of i.versions.versions){let y=u+h.path;if(o.startsWith(`${s}/${y}`)){p+="/"+y;break}if(o.startsWith(`${s}/${h.path}`)){p+="/"+h.path;break}}}let n=o.substring(p.length),l=`/${e}`;if(n.startsWith(l+"/"))n="/"+t+"/"+n.substring(l.length+1);else if(n===l)n="/"+t;else if(n==="/"||n==="")n="/"+t;else{let u=n.startsWith("/")?"":"/";n="/"+t+u+n}let d=p+n;return Q.size>2e3&&Q.clear(),Q.set(r,d),d}var ce=require("vite-plugin-image-optimizer");m();var st=v(require("path")),Jt=v(require("fs")),Kt=require("vite");function Xt(o){return o}var at=["boltdocs.config.js","boltdocs.config.mjs","boltdocs.config.ts"];async function I(o,e=process.cwd()){let t=e,s={docsDir:st.default.resolve(o),theme:{title:"Boltdocs",description:"A Vite documentation framework",navbar:[{label:"Home",href:"/"},{label:"Documentation",href:"/docs"}],codeTheme:{light:"github-light",dark:"github-dark"},poweredBy:!0,breadcrumbs:!0}},i={};for(let n of at){let l=st.default.resolve(t,n);if(Jt.default.existsSync(l))try{let d=await(0,Kt.loadConfigFromFile)({command:"serve",mode:"development"},l,t);if(d){i=d.config;break}}catch(d){console.warn(`[boltdocs] Failed to load config from ${n}:`,d)}}let c={...{title:i.title,description:i.description,logo:i.logo,favicon:i.favicon,ogImage:i.ogImage,navbar:i.navbar,sidebar:i.sidebar,socialLinks:i.socialLinks,footer:i.footer,githubRepo:i.githubRepo,tabs:i.tabs,codeTheme:i.codeTheme,copyMarkdown:i.copyMarkdown,breadcrumbs:i.breadcrumbs,poweredBy:i.poweredBy,communityHelp:i.communityHelp,version:i.version,editLink:i.editLink},...i.theme||{}},p=Object.fromEntries(Object.entries(c).filter(([n,l])=>l!==void 0));return p.navbar&&(p.navbar=p.navbar.map(n=>({label:n.label||n.text||"",href:n.href||n.link||n.to||"",items:n.items?.map(l=>({label:l.label||l.text||"",href:l.href||l.link||l.to||""}))}))),{docsDir:st.default.resolve(o),homePage:i.homePage,theme:{...s.theme,...p},i18n:i.i18n,versions:i.versions,siteUrl:i.siteUrl,plugins:i.plugins||[],external:i.external,integrations:i.integrations,robots:i.robots,vite:i.vite}}m();var j=v(require("fs")),O=v(require("path"));T();var ee=require("url"),oe=require("module");m();T();function Zt(o,e){let t=H(e.title),s=H(e.description);return o.replace(/<title>.*?<\/title>/,`<title>${t}</title>`).replace(/(<meta name="description" content=")[^"]*(")/,`$1${s}$2`).replace(/(<meta property="og:title" content=")[^"]*(")/,`$1${t}$2`).replace(/(<meta property="og:description" content=")[^"]*(")/,`$1${s}$2`).replace(/(<meta name="twitter:title" content=")[^"]*(")/,`$1${t}$2`).replace(/(<meta name="twitter:description" content=")[^"]*(")/,`$1${s}$2`)}m();T();function Qt(o,e){let t=e?.siteUrl?.replace(/\/$/,"")||"https://example.com",s=new Date().toISOString().split("T")[0],i=[{url:"/",priority:"1.0",changefreq:"daily"}];if(e?.i18n){let c=e.i18n.defaultLocale;for(let p of Object.keys(e.i18n.locales))p!==c&&i.push({url:`/${p}/`,priority:"1.0",changefreq:"daily"})}return`<?xml version="1.0" encoding="UTF-8"?>
1
+ "use strict";var Te=Object.create;var it=Object.defineProperty;var Oe=Object.getOwnPropertyDescriptor;var Fe=Object.getOwnPropertyNames;var Ie=Object.getPrototypeOf,je=Object.prototype.hasOwnProperty;var xt=(o,e)=>()=>(o&&(e=o(o=0)),e);var Et=(o,e)=>{for(var t in e)it(o,t,{get:e[t],enumerable:!0})},zt=(o,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Fe(e))!je.call(o,i)&&i!==t&&it(o,i,{get:()=>e[i],enumerable:!(s=Oe(e,i))||s.enumerable});return o};var v=(o,e,t)=>(t=o!=null?Te(Ie(o)):{},zt(e||!o||!o.__esModule?it(t,"default",{value:o,enumerable:!0}):t,o)),He=o=>zt(it({},"__esModule",{value:!0}),o);var Le,P,u=xt(()=>{"use strict";Le=()=>typeof document>"u"?new URL(`file:${__filename}`).href:document.currentScript&&document.currentScript.tagName.toUpperCase()==="SCRIPT"?document.currentScript.src:new URL("main.js",document.baseURI).href,P=Le()});function k(o){return o.replace(/\\/g,"/")}function W(o){return o.replace(/^\d+\./,"")}function nt(o){let e=o.match(/^(\d+)\./);return e?parseInt(e[1],10):void 0}function Nt(o){return/\.mdx?$/.test(o)}function rt(o){try{return bt.default.statSync(o).mtimeMs}catch{return 0}}function Gt(o){let e=bt.default.readFileSync(o,"utf-8");try{let{data:t,content:s}=(0,At.default)(e);return{data:t,content:s}}catch{return{data:{},content:e}}}function L(o){return o.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&apos;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function Pt(o){return L(o)}function Ut(o){let t=o.split("/").map(W).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 q(o){return vt.default.sanitize(o)}function wt(o){return vt.default.sanitize(o,{ALLOWED_TAGS:[],KEEP_CONTENT:!0})}function J(o){return o.charAt(0).toUpperCase()+o.slice(1)}function Ct(o,e){return o?typeof o=="string"?o:e&&o[e]?o[e]:Object.values(o)[0]||"":""}var bt,At,vt,F=xt(()=>{"use strict";u();bt=v(require("fs")),At=v(require("gray-matter")),vt=v(require("isomorphic-dompurify"))});var Rt={};Et(Rt,{AssetCache:()=>Dt,FileCache:()=>K,TransformCache:()=>X,flushCache:()=>Ue});async function Ue(){await j.flush()}var $,M,z,E,A,st,Ee,at,Bt,io,Mt,ze,Ae,Ne,Ge,$t,St,j,K,X,Dt,Z=xt(()=>{"use strict";u();$=v(require("fs")),M=v(require("path")),z=v(require("crypto")),E=v(require("zlib")),A=require("util");F();st=(0,A.promisify)($.default.writeFile),Ee=(0,A.promisify)($.default.readFile),at=(0,A.promisify)($.default.mkdir),Bt=(0,A.promisify)($.default.rename),io=(0,A.promisify)($.default.unlink),Mt=process.env.BOLTDOCS_CACHE_DIR||".boltdocs",ze="assets",Ae="shards",Ne=parseInt(process.env.BOLTDOCS_CACHE_LRU_LIMIT||"2000",10),Ge=process.env.BOLTDOCS_CACHE_COMPRESS!=="0",$t=class{constructor(e){this.limit=e}cache=new Map;get(e){let t=this.cache.get(e);return t!==void 0&&(this.cache.delete(e),this.cache.set(e,t)),t}set(e,t){if(this.cache.has(e))this.cache.delete(e);else if(this.cache.size>=this.limit){let s=this.cache.keys().next().value;s!==void 0&&this.cache.delete(s)}this.cache.set(e,t)}get size(){return this.cache.size}clear(){this.cache.clear()}},St=class{queue=Promise.resolve();pendingCount=0;add(e){this.pendingCount++,this.queue=this.queue.then(e).finally(()=>{this.pendingCount--})}async flush(){await this.queue}get pending(){return this.pendingCount}},j=new St,K=class{entries=new Map;cachePath=null;compress;constructor(e={}){if(this.compress=e.compress!==void 0?e.compress:Ge,e.name){let t=e.root||process.cwd(),s=this.compress?"json.gz":"json";this.cachePath=M.default.resolve(t,Mt,`${e.name}.${s}`)}}load(){if(process.env.BOLTDOCS_NO_CACHE!=="1"&&!(!this.cachePath||!$.default.existsSync(this.cachePath)))try{let e=$.default.readFileSync(this.cachePath);this.cachePath.endsWith(".gz")&&(e=E.default.gunzipSync(e));let t=JSON.parse(e.toString("utf-8"));this.entries=new Map(Object.entries(t))}catch{}}save(){if(process.env.BOLTDOCS_NO_CACHE==="1"||!this.cachePath)return;let e=Object.fromEntries(this.entries),t=JSON.stringify(e),s=this.cachePath,i=this.compress;j.add(async()=>{try{await at(M.default.dirname(s),{recursive:!0});let r=Buffer.from(t);i&&(r=E.default.gzipSync(r));let c=`${s}.${z.default.randomBytes(4).toString("hex")}.tmp`;await st(c,r),await Bt(c,s)}catch{}})}get(e){let t=this.entries.get(e);return!t||rt(e)!==t.mtime?null:t.data}set(e,t){this.entries.set(e,{data:t,mtime:rt(e)})}isValid(e){let t=this.entries.get(e);return t?rt(e)===t.mtime:!1}invalidate(e){this.entries.delete(e)}invalidateAll(){this.entries.clear()}pruneStale(e){for(let t of this.entries.keys())e.has(t)||this.entries.delete(t)}get size(){return this.entries.size}async flush(){await j.flush()}},X=class{index=new Map;memoryCache=new $t(Ne);baseDir;shardsDir;indexPath;constructor(e,t=process.cwd()){this.baseDir=M.default.resolve(t,Mt,`transform-${e}`),this.shardsDir=M.default.resolve(this.baseDir,Ae),this.indexPath=M.default.resolve(this.baseDir,"index.json")}load(){if(process.env.BOLTDOCS_NO_CACHE!=="1"&&$.default.existsSync(this.indexPath))try{let e=$.default.readFileSync(this.indexPath,"utf-8");this.index=new Map(Object.entries(JSON.parse(e)))}catch{}}save(){if(process.env.BOLTDOCS_NO_CACHE==="1")return;let e=JSON.stringify(Object.fromEntries(this.index)),t=this.indexPath;j.add(async()=>{await at(M.default.dirname(t),{recursive:!0}),await st(t,e)})}async getMany(e){let t=new Map,s=[];for(let i of e){let r=this.memoryCache.get(i);r?t.set(i,r):this.index.has(i)&&s.push(i)}if(s.length>0){let i=await Promise.all(s.map(async r=>{let c=this.index.get(r),p=M.default.resolve(this.shardsDir,`${c}.gz`);try{let n=await Ee(p),l=E.default.gunzipSync(n).toString("utf-8");return this.memoryCache.set(r,l),{key:r,val:l}}catch{return null}}));for(let r of i)r&&t.set(r.key,r.val)}return t}get(e){let t=this.memoryCache.get(e);if(t)return t;let s=this.index.get(e);if(!s)return null;let i=M.default.resolve(this.shardsDir,`${s}.gz`);if(!$.default.existsSync(i))return null;try{let r=$.default.readFileSync(i),c=E.default.gunzipSync(r).toString("utf-8");return this.memoryCache.set(e,c),c}catch{return null}}set(e,t){let s=z.default.createHash("md5").update(t).digest("hex");this.index.set(e,s),this.memoryCache.set(e,t);let i=M.default.resolve(this.shardsDir,`${s}.gz`);j.add(async()=>{if($.default.existsSync(i))return;await at(this.shardsDir,{recursive:!0});let r=E.default.gzipSync(Buffer.from(t)),c=`${i}.${z.default.randomBytes(4).toString("hex")}.tmp`;await st(c,r),await Bt(c,i)})}get size(){return this.index.size}async flush(){await j.flush()}},Dt=class{assetsDir;constructor(e=process.cwd()){this.assetsDir=M.default.resolve(e,Mt,ze)}getFileHash(e){return z.default.createHash("md5").update($.default.readFileSync(e)).digest("hex")}get(e,t){if(!$.default.existsSync(e))return null;let s=this.getFileHash(e),i=this.getCachedPath(e,`${t}-${s}`);return $.default.existsSync(i)?i:null}set(e,t,s){let i=this.getFileHash(e),r=this.getCachedPath(e,`${t}-${i}`);j.add(async()=>{await at(this.assetsDir,{recursive:!0});let c=`${r}.${z.default.randomBytes(4).toString("hex")}.tmp`;await st(c,s),await Bt(c,r)})}getCachedPath(e,t){let s=M.default.extname(e),i=M.default.basename(e,s),r=t.replace(/[^a-z0-9]/gi,"-").toLowerCase();return M.default.join(this.assetsDir,`${i}.${r}${s}`)}clear(){$.default.existsSync(this.assetsDir)&&$.default.rmSync(this.assetsDir,{recursive:!0,force:!0})}async flush(){await j.flush()}}});var Ze={};Et(Ze,{createViteConfig:()=>Xe,default:()=>jt,defineConfig:()=>Qt,generateStaticPages:()=>pt,resolveConfig:()=>H});module.exports=He(Ze);u();var De=v(require("@vitejs/plugin-react")),Be=v(require("@tailwindcss/vite"));u();var ce=require("vite");u();var Kt=v(require("fast-glob"));F();u();Z();var I=new K({name:"routes"});function kt(){I.invalidateAll()}function _t(o){I.invalidate(o)}u();var N=v(require("path")),Vt=v(require("github-slugger"));F();function Wt(o,e,t,s){let i=decodeURIComponent(o),r=N.default.resolve(i),c=N.default.resolve(e),p=k(N.default.relative(c,r));if(p.startsWith("../")||p===".."||r.includes("\0"))throw new Error(`Security breach: File is outside of docs directory or contains null bytes: ${o}`);let{data:n,content:l}=Gt(o),d=p.split("/"),g,b;if(s?.versions&&d.length>0){let R=d[0],ht=s.versions.prefix||"",ot=s.versions.versions.find(V=>{let yt=ht+V.path;return R===yt||R===V.path});ot&&(b=ot.path,d=d.slice(1))}if(s?.i18n&&d.length>0){let R=d[0];s.i18n.locales[R]&&(g=R,d=d.slice(1))}let C;if(d.length>0){let R=d[0].match(/^\((.+)\)$/);R&&(C=R[1].toLowerCase(),d=d.slice(1))}let w=d.join("/"),m;n.permalink?m=n.permalink.startsWith("/")?n.permalink:`/${n.permalink}`:m=Ut(w||"index.md");let a=t;b&&(a+="/"+b),g&&(a+="/"+g),C&&(a+="/"+C),a+=m==="/"?"":m,(!a||a==="")&&(a="/");let y=d[d.length-1],f=W(y),x=W(N.default.basename(o,N.default.extname(o))),S=n.sidebarPosition??nt(y),h=d.length>=2?d[0]:void 0,B=h?W(h):void 0,D=d.length>=2&&/^index\.mdx?$/.test(f),et=new Vt.default,Ht=[],Me=/^(#{2,4})\s+(.+)$/gm;for(let R of l.matchAll(Me)){let ht=R[1].length,ot=R[2].replace(/\[([^\]]+)\]\([^\)]+\)/g,"$1").replace(/[_*`]/g,"").trim(),V=q(ot).trim(),yt=et.slug(V);Ht.push({level:ht,text:V,id:yt})}let Re=n.title?q(String(n.title)):x,ft=n.description?q(String(n.description)):"";!ft&&l&&(ft=wt(l.replace(/^#+.*$/gm,"").replace(/\[([^\]]+)\]\([^\)]+\)/g,"$1").replace(/[_*`]/g,"").replace(/\s+/g," ")).trim().slice(0,160));let ke=n.badge?q(String(n.badge)):void 0,Lt=n.icon?String(n.icon):void 0,_e=Ve(l);return{route:{path:a,componentPath:o,filePath:p,title:Re,description:ft,sidebarPosition:S,headings:Ht,locale:g,version:b,badge:ke,icon:Lt,tab:C,_content:_e,_rawContent:l},relativeDir:B,isGroupIndex:D,inferredTab:C,groupMeta:D?{title:n.groupTitle||n.title||(B?J(B):""),position:n.groupPosition??n.sidebarPosition??(h?nt(h):void 0),icon:Lt}:void 0,inferredGroupPosition:h?nt(h):void 0}}function Ve(o){let e=o.replace(/^#+.*$/gm,"").replace(/\[([^\]]+)\]\([^\)]+\)/g,"$1").replace(/\{[^\}]+\}/g,"").replace(/[_*`]/g,"").replace(/\s+/g," ");return wt(e).trim()}u();function Jt(o){return o.sort((e,t)=>!e.group&&!t.group?qt(e,t):e.group?t.group?e.group!==t.group?We(e,t):qt(e,t):1:-1)}function qt(o,e){return o.sidebarPosition!==void 0&&e.sidebarPosition!==void 0?o.sidebarPosition-e.sidebarPosition:o.sidebarPosition!==void 0?-1:e.sidebarPosition!==void 0?1:o.title.localeCompare(e.title)}function We(o,e){return o.groupPosition!==void 0&&e.groupPosition!==void 0?o.groupPosition-e.groupPosition:o.groupPosition!==void 0?-1:e.groupPosition!==void 0?1:(o.groupTitle||o.group).localeCompare(e.groupTitle||e.group)}var Tt=null,Q=new Map;async function G(o,e,t="/docs",s=!0){let i=performance.now();I.load(),Q.clear(),(process.env.BOLTDOCS_FORCE_REPARSE==="true"||e?.i18n)&&I.invalidateAll();let r;!s&&Tt?r=Tt:(r=await(0,Kt.default)(["**/*.md","**/*.mdx"],{cwd:o,absolute:!0,suppressErrors:!0,followSymbolicLinks:!1}),Tt=r),I.pruneStale(new Set(r));let c=50,p=[],n=0;for(let m=0;m<r.length;m+=c){let a=r.slice(m,m+c),y=await Promise.all(a.map(async f=>{let x=I.get(f);if(x)return n++,x;let S=Wt(f,o,t,e);return I.set(f,S),S}));p.push(...y),m+c<r.length&&await new Promise(f=>setImmediate(f))}I.save();let l=new Map,d=[];for(let m of p)if(m.isGroupIndex&&m.relativeDir&&d.push(m),m.relativeDir){let a=l.get(m.relativeDir);a?(a.position===void 0&&m.inferredGroupPosition!==void 0&&(a.position=m.inferredGroupPosition),!a.icon&&m.route.icon&&(a.icon=m.route.icon)):(a={title:J(m.relativeDir),position:m.inferredGroupPosition,icon:m.route.icon},l.set(m.relativeDir,a))}for(let m of d){let a=l.get(m.relativeDir);m.groupMeta&&(a.title=m.groupMeta.title,m.groupMeta.position!==void 0&&(a.position=m.groupMeta.position),m.groupMeta.icon&&(a.icon=m.groupMeta.icon))}let g=new Array(p.length);for(let m=0;m<p.length;m++){let a=p[m],y=a.relativeDir,f=y?l.get(y):void 0;g[m]={...a.route,group:y,groupTitle:f?.title||(y?J(y):void 0),groupPosition:f?.position,groupIcon:f?.icon}}let b=g;if(e?.i18n){let m=qe(g,e,t);b=[...g,...m]}let C=Jt(b),w=performance.now()-i;return console.log(`[boltdocs] Route generation: ${w.toFixed(2)}ms (${r.length} files, ${n} cache hits)`),C}function qe(o,e,t){let s=e.i18n.defaultLocale,i=Object.keys(e.i18n.locales),r=[],c=new Map,p=[];for(let n of o){let l=n.locale||s;c.has(l)||c.set(l,new Set),c.get(l).add(n.path),l===s&&p.push(n)}for(let n of i){let l=c.get(n)||new Set;for(let d of p){let g=Je(d.path,s,n,t,e);g!==d.path&&(l.has(g)||r.push({...d,path:g,locale:n}))}}return r}function Je(o,e,t,s,i){let r=`${o}:${t}`,c=Q.get(r);if(c)return c;let p=s;if(i?.versions){let g=i.versions.prefix||"";for(let b of i.versions.versions){let C=g+b.path;if(o.startsWith(`${s}/${C}`)){p+="/"+C;break}if(o.startsWith(`${s}/${b.path}`)){p+="/"+b.path;break}}}let n=o.substring(p.length),l=`/${e}`;if(n.startsWith(l+"/"))n="/"+t+"/"+n.substring(l.length+1);else if(n===l)n="/"+t;else if(n==="/"||n==="")n="/"+t;else{let g=n.startsWith("/")?"":"/";n="/"+t+g+n}let d=p+n;return Q.size>2e3&&Q.clear(),Q.set(r,d),d}var le=require("vite-plugin-image-optimizer");u();var ct=v(require("path")),Xt=v(require("fs")),Zt=require("vite");function Qt(o){return o}var lt=["boltdocs.config.js","boltdocs.config.mjs","boltdocs.config.ts"];async function H(o,e=process.cwd()){let t=e,s={docsDir:ct.default.resolve(o),theme:{title:"Boltdocs",description:"A Vite documentation framework",navbar:[{label:"Home",href:"/"},{label:"Documentation",href:"/docs"}],codeTheme:{light:"github-light",dark:"github-dark"},poweredBy:!0,breadcrumbs:!0}},i={};for(let n of lt){let l=ct.default.resolve(t,n);if(Xt.default.existsSync(l))try{let d=await(0,Zt.loadConfigFromFile)({command:"serve",mode:"development"},l,t);if(d){i=d.config;break}}catch(d){console.warn(`[boltdocs] Failed to load config from ${n}:`,d)}}let c={...{title:i.title,description:i.description,logo:i.logo,favicon:i.favicon,ogImage:i.ogImage,navbar:i.navbar,sidebar:i.sidebar,socialLinks:i.socialLinks,footer:i.footer,githubRepo:i.githubRepo,tabs:i.tabs,codeTheme:i.codeTheme,copyMarkdown:i.copyMarkdown,breadcrumbs:i.breadcrumbs,poweredBy:i.poweredBy,communityHelp:i.communityHelp,version:i.version,editLink:i.editLink},...i.theme||{}},p=Object.fromEntries(Object.entries(c).filter(([n,l])=>l!==void 0));return p.navbar&&(p.navbar=p.navbar.map(n=>({label:n.label||n.text||"",href:n.href||n.link||n.to||""}))),{docsDir:ct.default.resolve(o),homePage:i.homePage,theme:{...s.theme,...p},i18n:i.i18n,versions:i.versions,siteUrl:i.siteUrl,plugins:i.plugins||[],integrations:i.integrations,robots:i.robots,vite:i.vite}}u();var T=v(require("fs")),O=v(require("path"));F();var ie=require("url"),ne=require("module");u();F();function Yt(o,e){let t=L(e.title),s=L(e.description);return o.replace(/<title>.*?<\/title>/,`<title>${t}</title>`).replace(/(<meta name="description" content=")[^"]*(")/,`$1${s}$2`).replace(/(<meta property="og:title" content=")[^"]*(")/,`$1${t}$2`).replace(/(<meta property="og:description" content=")[^"]*(")/,`$1${s}$2`).replace(/(<meta name="twitter:title" content=")[^"]*(")/,`$1${t}$2`).replace(/(<meta name="twitter:description" content=")[^"]*(")/,`$1${s}$2`)}u();F();function te(o,e){let t=e?.siteUrl?.replace(/\/$/,"")||"https://example.com",s=new Date().toISOString().split("T")[0],i=[{url:"/",priority:"1.0",changefreq:"daily"}];if(e?.i18n){let c=e.i18n.defaultLocale;for(let p of Object.keys(e.i18n.locales))p!==c&&i.push({url:`/${p}/`,priority:"1.0",changefreq:"daily"})}return`<?xml version="1.0" encoding="UTF-8"?>
2
2
  <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
3
3
  ${[...i,...o.map(c=>({url:c,priority:"0.8",changefreq:"weekly"}))].map(c=>` <url>
4
- <loc>${bt(t)}${bt(c.url)}</loc>
4
+ <loc>${Pt(t)}${Pt(c.url)}</loc>
5
5
  <lastmod>${s}</lastmod>
6
6
  <changefreq>${c.changefreq}</changefreq>
7
7
  <priority>${c.priority}</priority>
8
8
  </url>`).join(`
9
9
  `)}
10
- </urlset>`}m();function ct(o){if(typeof o.robots=="string")return o.robots;let e=o.siteUrl?.replace(/\/$/,"")||"",t=o.robots||{},s=t.rules||[{userAgent:"*",allow:"/"}],i=t.sitemaps||(e?[`${e}/sitemap.xml`]:[]),r="";for(let c of s){if(r+=`User-agent: ${c.userAgent}
10
+ </urlset>`}u();function dt(o){if(typeof o.robots=="string")return o.robots;let e=o.siteUrl?.replace(/\/$/,"")||"",t=o.robots||{},s=t.rules||[{userAgent:"*",allow:"/"}],i=t.sitemaps||(e?[`${e}/sitemap.xml`]:[]),r="";for(let c of s){if(r+=`User-agent: ${c.userAgent}
11
11
  `,c.disallow){let p=Array.isArray(c.disallow)?c.disallow:[c.disallow];for(let n of p)r+=`Disallow: ${n}
12
12
  `}if(c.allow){let p=Array.isArray(c.allow)?c.allow:[c.allow];for(let n of p)r+=`Allow: ${n}
13
13
  `}r+=`
14
14
  `}for(let c of i)r+=`Sitemap: ${c}
15
- `;return r.trim()}var qe=(0,ee.fileURLToPath)(P),Yt=O.default.dirname(qe),te=(0,oe.createRequire)(P);async function lt(o){let{docsDir:e,docsDirName:t,outDir:s,config:i}=o,r=await N(e,i),c=O.default.resolve(Yt,"../client/ssr.js");if(!j.default.existsSync(c)){console.error("[boltdocs] SSR module not found at",c,"- Did you build the core package?");return}let p=te("module"),n=p.prototype.require;p.prototype.require=function(a,...g){return a==="virtual:boltdocs-layout"?{__esModule:!0,default:function(f){try{let x=n.apply(this,[O.default.resolve(Yt,"../client/index.js")]).DefaultLayout||(({children:w})=>w);return n.apply(this,["react"]).createElement(x,f)}catch{return f.children}}}:n.apply(this,[a,...g])};let{render:l}=te(c);p.prototype.require=n;let d=O.default.join(s,"index.html");if(!j.default.existsSync(d)){console.warn("[boltdocs] No index.html found in outDir, skipping SSG.");return}let u=j.default.readFileSync(d,"utf-8");await Promise.all(r.map(async a=>{let g=Pt(i?.theme?.title,a.locale)||"Boltdocs",b=Pt(i?.theme?.description,a.locale)||"",f=`${a.title} | ${g}`,B=a.description||b,x={};x[`/${t}/${a.filePath}`]={default:()=>null};try{let $=await l({path:a.path,routes:r,config:i||{},docsDirName:t,modules:x,homePage:void 0}),w=Zt(u,{title:H(f),description:H(B)}).replace("<!--app-html-->",$).replace('<div id="root"></div>',`<div id="root">${$}</div>`),G=O.default.join(s,a.path);await j.default.promises.mkdir(G,{recursive:!0}),await j.default.promises.writeFile(O.default.join(G,"index.html"),w,"utf-8")}catch($){console.error(`[boltdocs] Error SSR rendering route ${a.path}:`,$&&($.stack||$))}}));let h=Qt(r.map(a=>a.path),i);j.default.writeFileSync(O.default.join(s,"sitemap.xml"),h,"utf-8");let y=ct(i);j.default.writeFileSync(O.default.join(s,"robots.txt"),y,"utf-8"),console.log(`[boltdocs] Generated ${r.length} static pages + sitemap.xml + robots.txt`);let{flushCache:S}=await Promise.resolve().then(()=>(Z(),Bt));await S()}T();var M=v(require("path"));m();T();var Tt=v(require("path")),ie=v(require("fs"));function ne(o,e){let t=o.homePage?`import HomePage from '${k(o.homePage)}';`:"",s=Tt.default.resolve(process.cwd(),"index.css"),i=ie.default.existsSync(s)?"import './index.css';":"",r=o.homePage?"homePage: HomePage,":"",c=e?.plugins?.flatMap(y=>Object.entries(y.components||{}))||[],p=c.map(([y,S])=>`import * as _comp_${y} from '${k(S)}';
16
- const ${y} = _comp_${y}.default || _comp_${y}['${y}'] || _comp_${y};`).join(`
17
- `),n=c.map(([y])=>y).join(", "),l=Tt.default.basename(o.docsDir||"docs"),d=Object.entries(e?.external||{}),u=d.map(([y,S],a)=>`import _ext_${a} from '${k(S)}';`).join(`
18
- `),h=d.length>0?`externalPages: { ${d.map(([y],S)=>`"${y}": _ext_${S}`).join(", ")} },`:"";return`
15
+ `;return r.trim()}var Ke=(0,ie.fileURLToPath)(P),ee=O.default.dirname(Ke),oe=(0,ne.createRequire)(P);async function pt(o){let{docsDir:e,docsDirName:t,outDir:s,config:i}=o,r=await G(e,i),c=["tsx","ts","jsx","js"].map(a=>O.default.resolve(e,`pages-external/index.${a}`)).find(a=>T.default.existsSync(a));if(c)try{let a=T.default.readFileSync(c,"utf-8"),y=a.match(/pages\s*:\s*{([^}]+)}/s);if(y){let f=y[1].split(",").map(x=>x.split(":")[0].trim().replace(/['"]/g,"")).filter(x=>x&&x.startsWith("/"));for(let x of f)r.some(S=>S.path===x)||r.push({path:x,title:x.slice(1).charAt(0).toUpperCase()+x.slice(2),filePath:"",componentPath:"",_content:""})}a.includes("homePage")&&!r.some(f=>f.path==="/")&&r.push({path:"/",title:"Home",filePath:"",componentPath:"",_content:""})}catch(a){console.warn("[boltdocs] Failed to parse external routes for SSG:",a)}let p=O.default.resolve(ee,"../client/ssr.js");if(!T.default.existsSync(p)){console.error("[boltdocs] SSR module not found at",p,"- Did you build the core package?");return}let n=oe("module"),l=n.prototype.require;n.prototype.require=function(a,...y){return a.startsWith("virtual:boltdocs-")?a==="virtual:boltdocs-layout"?{__esModule:!0,default:function(x){try{let h=l.apply(this,[O.default.resolve(ee,"../client/index.js")]).DefaultLayout||(({children:D})=>D);return l.apply(this,["react"]).createElement(h,x)}catch{return x.children}}}:a==="virtual:boltdocs-mdx-components"?{__esModule:!0,default:{}}:a==="virtual:boltdocs-config"?{__esModule:!0,default:i}:{__esModule:!0,default:a.includes("routes")?[]:{}}:l.apply(this,[a,...y])};let{render:d}=oe(p);n.prototype.require=l;let g=O.default.join(s,"index.html");if(!T.default.existsSync(g)){console.warn("[boltdocs] No index.html found in outDir, skipping SSG.");return}let b=T.default.readFileSync(g,"utf-8");await Promise.all(r.map(async a=>{let y=Ct(i?.theme?.title,a.locale)||"Boltdocs",f=Ct(i?.theme?.description,a.locale)||"",x=`${a.title} | ${y}`,S=a.description||f,h={};h[`/${t}/${a.filePath}`]={default:()=>null};try{let B=await d({path:a.path,routes:r,config:i||{},docsDirName:t,modules:h,homePage:void 0}),D=Yt(b,{title:L(x),description:L(S)}).replace("<!--app-html-->",B).replace('<div id="root"></div>',`<div id="root">${B}</div>`),et=O.default.join(s,a.path);await T.default.promises.mkdir(et,{recursive:!0}),await T.default.promises.writeFile(O.default.join(et,"index.html"),D,"utf-8")}catch(B){console.error(`[boltdocs] Error SSR rendering route ${a.path}:`,B&&(B.stack||B))}}));let C=te(r.map(a=>a.path),i);T.default.writeFileSync(O.default.join(s,"sitemap.xml"),C,"utf-8");let w=dt(i);T.default.writeFileSync(O.default.join(s,"robots.txt"),w,"utf-8"),console.log(`[boltdocs] Generated ${r.length} static pages + sitemap.xml + robots.txt`);let{flushCache:m}=await Promise.resolve().then(()=>(Z(),Rt));await m()}F();var _=v(require("path"));u();F();var Y=v(require("path")),Ot=v(require("fs"));function re(o,e){let t=o.homePage?`import HomePage from '${k(o.homePage)}';`:"",s=Y.default.resolve(process.cwd(),"index.css"),i=Ot.default.existsSync(s)?"import './index.css';":"",r=o.homePage?"homePage: HomePage,":"",c=e?.plugins?.flatMap(w=>Object.entries(w.components||{}))||[],p=c.map(([w,m])=>`import * as _comp_${w} from '${k(m)}';
16
+ const ${w} = _comp_${w}.default || _comp_${w}['${w}'] || _comp_${w};`).join(`
17
+ `),n=c.map(([w])=>w).join(", "),l=Y.default.basename(o.docsDir||"docs"),d=Y.default.resolve(process.cwd(),o.docsDir||"docs"),g=["tsx","ts","jsx","js"].map(w=>Y.default.resolve(d,`pages-external/index.${w}`)).find(w=>Ot.default.existsSync(w)),b=g?`import * as _external_module from '${k(g)}';`:"";return r=g?"homePage: _external_module.homePage || HomePage,":o.homePage?"homePage: HomePage,":"",`
19
18
  import { createBoltdocsApp as _createApp } from 'boltdocs/client';
20
19
  import _routes from 'virtual:boltdocs-routes';
21
20
  import _config from 'virtual:boltdocs-config';
@@ -23,7 +22,7 @@ import _user_mdx_components from 'virtual:boltdocs-mdx-components';
23
22
  ${i}
24
23
  ${t}
25
24
  ${p}
26
- ${u}
25
+ ${b}
27
26
 
28
27
  _createApp({
29
28
  target: '#root',
@@ -33,10 +32,10 @@ _createApp({
33
32
  modules: import.meta.glob('/${l}/**/*.{md,mdx}'),
34
33
  hot: import.meta.hot,
35
34
  ${r}
36
- ${h}
35
+ ${g?"externalPages: _external_module.pages, externalLayout: _external_module.layout,":""}
37
36
  components: { ${n}${n?", ":""} ...(_user_mdx_components || {}) },
38
37
  });
39
- `}m();function re(o){return`<!doctype html>
38
+ `}u();function se(o){return`<!doctype html>
40
39
  <html lang="en">
41
40
  <head>
42
41
  <meta charset="UTF-8" />
@@ -46,7 +45,7 @@ _createApp({
46
45
  <body>
47
46
  <div id="root"></div>
48
47
  </body>
49
- </html>`}function _t(o,e){let t=e.theme,s=t?.title||"Boltdocs",i=t?.description||"",r=t?.favicon;!r&&t?.logo&&(typeof t.logo=="string"?r=t.logo:r=t.logo.light||t.logo.dark);let c=[r?`<link rel="icon" href="${r}">`:"",`<meta name="description" content="${i}">`,`<meta property="og:title" content="${s}">`,`<meta property="og:description" content="${i}">`,t?.ogImage?`<meta property="og:image" content="${t.ogImage}">`:"",'<meta property="og:type" content="website">','<meta name="twitter:card" content="summary_large_image">',`<meta name="twitter:title" content="${s}">`,`<meta name="twitter:description" content="${i}">`,t?.ogImage?`<meta name="twitter:image" content="${t.ogImage}">`:"",'<meta name="generator" content="Boltdocs">'].filter(Boolean).join(`
48
+ </html>`}function Ft(o,e){let t=e.theme,s=t?.title||"Boltdocs",i=t?.description||"",r=t?.favicon;!r&&t?.logo&&(typeof t.logo=="string"?r=t.logo:r=t.logo.light||t.logo.dark);let c=[r?`<link rel="icon" href="${r}">`:"",`<meta name="description" content="${i}">`,`<meta property="og:title" content="${s}">`,`<meta property="og:description" content="${i}">`,t?.ogImage?`<meta property="og:image" content="${t.ogImage}">`:"",'<meta property="og:type" content="website">','<meta name="twitter:card" content="summary_large_image">',`<meta name="twitter:title" content="${s}">`,`<meta name="twitter:description" content="${i}">`,t?.ogImage?`<meta name="twitter:image" content="${t.ogImage}">`:"",'<meta name="generator" content="Boltdocs">'].filter(Boolean).join(`
50
49
  `),p=`
51
50
  <script>
52
51
  (function() {
@@ -66,9 +65,9 @@ _createApp({
66
65
  `;return o.includes("<title>")?o=o.replace(/<title>.*?<\/title>/,`<title>${s}</title>`):o=o.replace("</head>",` <title>${s}</title>
67
66
  </head>`),o=o.replace("</head>",` ${c}
68
67
  ${p} </head>`),!o.includes("src/main")&&!o.includes("virtual:boltdocs-entry")&&(o=o.replace("</body>",` <script type="module">import "virtual:boltdocs-entry";</script>
69
- </body>`)),o}m();function se(o){let e=[];for(let t of o)if(e.push({id:t.path,title:t.title,content:t._content||"",url:t.path,display:t.groupTitle?`${t.groupTitle} > ${t.title}`:t.title,locale:t.locale,version:t.version}),t.headings)for(let s of t.headings)e.push({id:`${t.path}#${s.id}`,title:s.text,content:`${s.text} in ${t.title}`,url:`${t.path}#${s.id}`,display:`${t.title} > ${s.text}`,locale:t.locale,version:t.version});return e}var Ot=v(require("fs"));m();function le(o={},e){let t=M.default.resolve(process.cwd(),o.docsDir||"docs"),s=k(t),i=e,r,c=!1,p=i?.plugins?.flatMap(n=>n.vitePlugins||[])||[];return[{name:"vite-plugin-boltdocs",enforce:"pre",async config(n,l){c=l.command==="build";let d=n.envDir||process.cwd(),u=(0,ae.loadEnv)(l.mode,d,"");return Object.assign(process.env,u),i||(i=await I(t)),{optimizeDeps:{include:["react","react-dom"],exclude:["boltdocs","boltdocs/client","boltdocs/hooks","boltdocs/primitives","boltdocs/base-ui","boltdocs/mdx","boltdocs/integrations","boltdocs/client/hooks","boltdocs/client/primitives"]}}},configResolved(n){r=n},configureServer(n){n.middlewares.use((a,g,b)=>{if(a.url==="/robots.txt"){let f=ct(i);g.statusCode=200,g.setHeader("Content-Type","text/plain"),g.end(f);return}b()}),n.middlewares.use(async(a,g,b)=>{let f=a.url?.split("?")[0]||"/",B=a.headers.accept||"",x=f==="/"||f.startsWith("/docs")||i.i18n&&Object.keys(i.i18n.locales).some(w=>f.startsWith(`/${w}/docs`)||f===`/${w}`)||i.external&&Object.keys(i.external).some(w=>f.startsWith(w)),$=/\.(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(f);if(B.includes("text/html")&&!$&&x){let w=re(i);w=_t(w,i),w=await n.transformIndexHtml(a.url||"/",w),g.statusCode=200,g.setHeader("Content-Type","text/html"),g.end(w);return}b()});let l=at.map(a=>M.default.resolve(process.cwd(),a)),d=["tsx","jsx"],u=d.map(a=>M.default.resolve(t,`layout.${a}`)),h=["tsx","ts","jsx","js"],y=h.map(a=>M.default.resolve(t,`mdx-components.${a}`));n.watcher.add([...l,...y,...u]);let S=async(a,g)=>{try{let b=k(a);if(at.some(x=>b.endsWith(x))){n.restart();return}if(h.some(x=>b.endsWith(`mdx-components.${x}`))){let x=n.moduleGraph.getModuleById("\0virtual:boltdocs-mdx-components");x&&n.moduleGraph.invalidateModule(x),n.ws.send({type:"full-reload"});return}if(d.some(x=>b.endsWith(`layout.${x}`))){let x=n.moduleGraph.getModuleById("\0virtual:boltdocs-layout");x&&n.moduleGraph.invalidateModule(x),n.ws.send({type:"full-reload"});return}if(!b.startsWith(s)||!zt(b))return;if(g==="add"||g==="unlink"){Rt(),i=await I(t);let x=n.moduleGraph.getModuleById("\0virtual:boltdocs-config");x&&n.moduleGraph.invalidateModule(x),n.ws.send({type:"custom",event:"boltdocs:config-update",data:{theme:i?.theme,integrations:i?.integrations,i18n:i?.i18n,versions:i?.versions,siteUrl:i?.siteUrl}})}else kt(a);let f=await N(t,i,"/docs",g!=="change"),B=n.moduleGraph.getModuleById("\0virtual:boltdocs-routes");B&&n.moduleGraph.invalidateModule(B),n.ws.send({type:"custom",event:"boltdocs:routes-update",data:f})}catch(b){console.error(`[boltdocs] HMR error during ${g} event:`,b)}};n.watcher.on("add",a=>S(a,"add")),n.watcher.on("unlink",a=>S(a,"unlink")),n.watcher.on("change",a=>S(a,"change"))},resolveId(n){if(n==="virtual:boltdocs-routes"||n==="virtual:boltdocs-config"||n==="virtual:boltdocs-entry"||n==="virtual:boltdocs-mdx-components"||n==="virtual:boltdocs-layout"||n==="virtual:boltdocs-search")return"\0"+n},async load(n){if(n==="\0virtual:boltdocs-routes"){let l=await N(t,i);return`export default ${JSON.stringify(l,null,2)};`}if(n==="\0virtual:boltdocs-config"){let l={theme:i?.theme,integrations:i?.integrations,i18n:i?.i18n,versions:i?.versions,siteUrl:i?.siteUrl};return`export default ${JSON.stringify(l,null,2)};`}if(n==="\0virtual:boltdocs-entry")return ne(o,i);if(n==="\0virtual:boltdocs-mdx-components"){let l=["tsx","ts","jsx","js"],d=null;for(let u of l){let h=M.default.resolve(t,`mdx-components.${u}`);if(Ot.default.existsSync(h)){d=h;break}}if(d){let u=k(d);return`import * as components from '${u}';
68
+ </body>`)),o}u();function ae(o){let e=[];for(let t of o)if(e.push({id:t.path,title:t.title,content:t._content||"",url:t.path,display:t.groupTitle?`${t.groupTitle} > ${t.title}`:t.title,locale:t.locale,version:t.version}),t.headings)for(let s of t.headings)e.push({id:`${t.path}#${s.id}`,title:s.text,content:`${s.text} in ${t.title}`,url:`${t.path}#${s.id}`,display:`${t.title} > ${s.text}`,locale:t.locale,version:t.version});return e}var It=v(require("fs"));u();function de(o={},e){let t=_.default.resolve(process.cwd(),o.docsDir||"docs"),s=k(t),i=e,r,c=!1,p=i?.plugins?.flatMap(n=>n.vitePlugins||[])||[];return[{name:"vite-plugin-boltdocs",enforce:"pre",async config(n,l){c=l.command==="build";let d=n.envDir||process.cwd(),g=(0,ce.loadEnv)(l.mode,d,"");return Object.assign(process.env,g),i||(i=await H(t)),{optimizeDeps:{include:["react","react-dom"],exclude:["boltdocs","boltdocs/client","boltdocs/hooks","boltdocs/primitives","boltdocs/base-ui","boltdocs/mdx","boltdocs/integrations","boltdocs/client/hooks","boltdocs/client/primitives"]}}},configResolved(n){r=n},configureServer(n){n.middlewares.use((a,y,f)=>{if(a.url==="/robots.txt"){let x=dt(i);y.statusCode=200,y.setHeader("Content-Type","text/plain"),y.end(x);return}f()}),n.middlewares.use(async(a,y,f)=>{let x=a.url?.split("?")[0]||"/",S=a.headers.accept||"",h=x==="/"||x.startsWith("/docs")||i.i18n&&Object.keys(i.i18n.locales).some(D=>x.startsWith(`/${D}/docs`)||x===`/${D}`)||!0,B=/\.(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(x);if(S.includes("text/html")&&!B&&h){let D=se(i);D=Ft(D,i),D=await n.transformIndexHtml(a.url||"/",D),y.statusCode=200,y.setHeader("Content-Type","text/html"),y.end(D);return}f()});let l=lt.map(a=>_.default.resolve(process.cwd(),a)),d=["tsx","jsx"],g=d.map(a=>_.default.resolve(t,`layout.${a}`)),b=["tsx","ts","jsx","js"],C=b.map(a=>_.default.resolve(t,`mdx-components.${a}`)),w=b.map(a=>_.default.resolve(t,`pages-external/index.${a}`));n.watcher.add([...l,...C,...g,...w]);let m=async(a,y)=>{try{let f=k(a);if(lt.some(h=>f.endsWith(h))){n.restart();return}if(b.some(h=>f.endsWith(`mdx-components.${h}`))){let h=n.moduleGraph.getModuleById("\0virtual:boltdocs-mdx-components");h&&n.moduleGraph.invalidateModule(h),n.ws.send({type:"full-reload"});return}if(d.some(h=>f.endsWith(`layout.${h}`))){let h=n.moduleGraph.getModuleById("\0virtual:boltdocs-layout");h&&n.moduleGraph.invalidateModule(h),n.ws.send({type:"full-reload"});return}if(f.includes("/pages-external/")||f.includes("\\pages-external\\")){let h=n.moduleGraph.getModuleById("\0virtual:boltdocs-entry");h&&n.moduleGraph.invalidateModule(h),n.ws.send({type:"full-reload"});return}if(!f.startsWith(s)||!Nt(f))return;if(y==="add"||y==="unlink"){kt(),i=await H(t);let h=n.moduleGraph.getModuleById("\0virtual:boltdocs-config");h&&n.moduleGraph.invalidateModule(h),n.ws.send({type:"custom",event:"boltdocs:config-update",data:{theme:i?.theme,integrations:i?.integrations,i18n:i?.i18n,versions:i?.versions,siteUrl:i?.siteUrl}})}else _t(a);let x=await G(t,i,"/docs",y!=="change"),S=n.moduleGraph.getModuleById("\0virtual:boltdocs-routes");S&&n.moduleGraph.invalidateModule(S),n.ws.send({type:"custom",event:"boltdocs:routes-update",data:x})}catch(f){console.error(`[boltdocs] HMR error during ${y} event:`,f)}};n.watcher.on("add",a=>m(a,"add")),n.watcher.on("unlink",a=>m(a,"unlink")),n.watcher.on("change",a=>m(a,"change"))},resolveId(n){if(n==="virtual:boltdocs-routes"||n==="virtual:boltdocs-config"||n==="virtual:boltdocs-entry"||n==="virtual:boltdocs-mdx-components"||n==="virtual:boltdocs-layout"||n==="virtual:boltdocs-search")return"\0"+n},async load(n){if(n==="\0virtual:boltdocs-routes"){let l=await G(t,i);return`export default ${JSON.stringify(l,null,2)};`}if(n==="\0virtual:boltdocs-config"){let l={theme:i?.theme,integrations:i?.integrations,i18n:i?.i18n,versions:i?.versions,siteUrl:i?.siteUrl,plugins:i?.plugins?.map(d=>({name:d.name}))};return`export default ${JSON.stringify(l,null,2)};`}if(n==="\0virtual:boltdocs-entry")return re(o,i);if(n==="\0virtual:boltdocs-mdx-components"){let l=["tsx","ts","jsx","js"],d=null;for(let g of l){let b=_.default.resolve(t,`mdx-components.${g}`);if(It.default.existsSync(b)){d=b;break}}if(d){let g=k(d);return`import * as components from '${g}';
70
69
  const mdxComponents = components.default || components;
71
70
  export default mdxComponents;
72
- export * from '${u}';`}return"export default {};"}if(n==="\0virtual:boltdocs-layout"){let l=["tsx","jsx"],d=null;for(let u of l){let h=M.default.resolve(t,`layout.${u}`);if(Ot.default.existsSync(h)){d=h;break}}return d?`import UserLayout from '${k(d)}';
71
+ export * from '${g}';`}return"export default {};"}if(n==="\0virtual:boltdocs-layout"){let l=["tsx","jsx"],d=null;for(let g of l){let b=_.default.resolve(t,`layout.${g}`);if(It.default.existsSync(b)){d=b;break}}return d?`import UserLayout from '${k(d)}';
73
72
  export default UserLayout;`:`import { DefaultLayout } from 'boltdocs/client';
74
- export default DefaultLayout;`}if(n==="\0virtual:boltdocs-search"){let l=await N(t,i),d=se(l);return`export default ${JSON.stringify(d,null,2)};`}},transformIndexHtml:{order:"pre",handler(n){return _t(n,i)}},async closeBundle(){if(!c)return;let n=r?.build?.outDir?M.default.resolve(r.root,r.build.outDir):M.default.resolve(process.cwd(),"dist"),l=M.default.basename(t||"docs");await lt({docsDir:t,docsDirName:l,outDir:n,config:i});let{flushCache:d}=await Promise.resolve().then(()=>(Z(),Bt));await d()}},(0,ce.ViteImageOptimizer)({includePublic:!0,png:{quality:80},jpeg:{quality:80},jpg:{quality:80},webp:{quality:80},avif:{quality:80},svg:{multipass:!0,plugins:[{name:"preset-default"}]}}),...p.filter(n=>!!n)]}m();var ye=v(require("@mdx-js/rollup")),xe=v(require("remark-gfm")),be=v(require("remark-frontmatter")),ve=v(require("rehype-slug")),Pe=v(require("crypto"));m();Z();var de="v3",U=new X("mdx");m();var me=require("unist-util-visit");m();var pe=require("shiki"),dt=null;async function pt(o){if(dt)return dt;let e=typeof o=="object"?[o.light,o.dark]:[o??"github-dark"];return["github-light","github-dark"].forEach(t=>{e.includes(t)||e.push(t)}),dt=await(0,pe.createHighlighter)({themes:e,langs:["tsx","jsx","ts","js","json","md","mdx","css","html","bash","sh","yaml","yml"]}),dt}function ue(o){return async e=>{let t=o?.theme?.codeTheme??{light:"github-light",dark:"github-dark"},s=await pt(t);(0,me.visit)(e,["mdxJsxFlowElement","mdxJsxTextElement"],i=>{if(i.name!=="ComponentPreview")return;let r=i.attributes?.find(l=>l.name==="code"),c="";if(r){if(typeof r.value=="string")c=r.value;else if(r.value?.type==="mdxJsxAttributeValueExpression"){let l=r.value.value??"";c=l.match(/^[`'"](.+)[`'"]$/)?.[1]??l}}if(!c)return;let p=typeof t=="object"?{themes:{light:t.light,dark:t.dark},lang:"tsx"}:{theme:t,lang:"tsx"},n=s.codeToHtml(c,p);i.attributes=(i.attributes??[]).filter(l=>l.name!=="highlightedHtml"),i.attributes.push({type:"mdxJsxAttribute",name:"highlightedHtml",value:n})})}}m();var ge=require("unist-util-visit");function fe(o){return async e=>{let t=o?.theme?.codeTheme||{light:"github-light",dark:"github-dark"},s=await pt(t);(0,ge.visit)(e,"element",i=>{if(i.tagName==="pre"&&i.children?.[0]?.tagName==="code"){let r=i.children[0],p=(r.properties?.className||[]).find(h=>h.startsWith("language-")),n=p?p.slice(9):"text",l=r.children[0]?.value||"",d={lang:n};typeof t=="object"?d.themes={light:t.light,dark:t.dark}:d.theme=t;let u=s.codeToHtml(l,d);i.properties.dataHighlighted="true",i.properties.highlightedHtml=u,i.children=[]}})}}var he=!1,mt=0,Y=0;function we(o,e=ye.default){let t=o?.plugins?.flatMap(r=>r.remarkPlugins||[])||[],s=o?.plugins?.flatMap(r=>r.rehypePlugins||[])||[],i=e({remarkPlugins:[xe.default,be.default,[ue,o],...t],rehypePlugins:[ve.default,[fe,o],...s],jsxRuntime:"automatic",providerImportSource:"@mdx-js/react"});return{...i,name:"vite-plugin-boltdocs-mdx",async buildStart(){mt=0,Y=0,he||(U.load(),he=!0),i.buildStart&&await i.buildStart.call(this)},async transform(r,c,p){if(!c.endsWith(".md")&&!c.endsWith(".mdx"))return i.transform?.call(this,r,c,p);console.log(`[boltdocs] Transforming MDX: ${c}`),Y++;let n=Pe.default.createHash("md5").update(r).digest("hex"),l=`${c}:${n}:${de}`,d=U.get(l);if(d)return mt++,{code:d,map:null};let u=await i.transform.call(this,r,c,p);return u&&typeof u=="object"&&u.code&&U.set(l,u.code),u},async buildEnd(){Y>0&&console.log(`[boltdocs] MDX Cache Performance: ${mt}/${Y} hits (${Math.round(mt/Y*100)||0}%)`),U.save(),await U.flush(),i.buildEnd&&await i.buildEnd.call(this)}}}async function Ft(o){let e=o?.docsDir||"docs",t=await I(e),s={...o,homePage:o?.homePage||t.homePage};return[...le(s,t),we(t)]}async function Je(o,e="development"){let t=await I("docs",o);return{root:o,mode:e,plugins:[(0,Ce.default)(),(0,$e.default)(),await Ft({docsDir:t.docsDir,homePage:t.homePage})],...t.vite}}0&&(module.exports={createViteConfig,defineConfig,generateStaticPages,resolveConfig});
73
+ export default DefaultLayout;`}if(n==="\0virtual:boltdocs-search"){let l=await G(t,i),d=ae(l);return`export default ${JSON.stringify(d,null,2)};`}},transformIndexHtml:{order:"pre",handler(n){return Ft(n,i)}},async closeBundle(){if(!c)return;let n=r?.build?.outDir?_.default.resolve(r.root,r.build.outDir):_.default.resolve(process.cwd(),"dist"),l=_.default.basename(t||"docs");await pt({docsDir:t,docsDirName:l,outDir:n,config:i});let{flushCache:d}=await Promise.resolve().then(()=>(Z(),Rt));await d()}},(0,le.ViteImageOptimizer)({includePublic:!0,png:{quality:80},jpeg:{quality:80},jpg:{quality:80},webp:{quality:80},avif:{quality:80},svg:{multipass:!0,plugins:[{name:"preset-default"}]}}),...p.filter(n=>!!n)]}u();var ve=v(require("@mdx-js/rollup")),Pe=v(require("remark-gfm")),we=v(require("remark-frontmatter")),Ce=v(require("rehype-slug")),$e=v(require("crypto"));u();Z();var pe="v4",U=new X("mdx");u();var ue=require("unist-util-visit");u();var me=require("shiki"),mt=null;async function ut(o){if(mt)return mt;let e=typeof o=="object"?[o.light,o.dark]:[o??"github-dark"];return["github-light","github-dark"].forEach(t=>{e.includes(t)||e.push(t)}),mt=await(0,me.createHighlighter)({themes:e,langs:["tsx","jsx","ts","js","json","md","mdx","css","html","bash","sh","yaml","yml"]}),mt}function ge(o){return async e=>{let t=o?.theme?.codeTheme??{light:"github-light",dark:"github-dark"},s=await ut(t);(0,ue.visit)(e,["mdxJsxFlowElement","mdxJsxTextElement"],i=>{if(i.name!=="ComponentPreview")return;let r=i.attributes?.find(l=>l.name==="code"),c="";if(r){if(typeof r.value=="string")c=r.value;else if(r.value?.type==="mdxJsxAttributeValueExpression"){let l=r.value.value??"";c=l.match(/^[`'"]([\s\S]+)[`'"]$/)?.[1]??l}}if(!c)return;let p=typeof t=="object"?{themes:{light:t.light,dark:t.dark},lang:"tsx"}:{theme:t,lang:"tsx"},n=s.codeToHtml(c,p);i.attributes=(i.attributes??[]).filter(l=>l.name!=="highlightedHtml"),i.attributes.push({type:"mdxJsxAttribute",name:"highlightedHtml",value:n})})}}u();var fe=require("unist-util-visit");function he(o){return async e=>{let t=o?.theme?.codeTheme||{light:"github-light",dark:"github-dark"},s=await ut(t);(0,fe.visit)(e,"element",i=>{if(i.tagName==="pre"&&i.children?.[0]?.tagName==="code"){let r=i.children[0],p=(r.properties?.className||[]).find(m=>m.startsWith("language-")),n=p?p.slice(9):"text",l=r.children[0]?.value||"",g=(r.data?.meta||r.properties?.metastring||"").match(/title\s*=\s*"([^"]*)"/),b=g?g[1]:void 0,C={lang:n};typeof t=="object"?C.themes={light:t.light,dark:t.dark}:C.theme=t;let w=s.codeToHtml(l,C);i.properties.dataHighlighted="true",i.properties.highlightedHtml=w,i.properties["data-lang"]=n,b&&(i.properties.title=b),i.children=[]}})}}u();var ye=require("unist-util-visit");function xe(){return o=>{(0,ye.visit)(o,"code",e=>{if(e.data=e.data||{},e.data.hProperties=e.data.hProperties||{},e.lang&&(e.data.hProperties["data-lang"]=e.lang),!e.meta)return;let t=e.meta,s=t.match(/title\s*=\s*"([^"]*)"/);s&&(e.data.hProperties.title=s[1]),e.data.hProperties.metastring=t})}}var be=!1,gt=0,tt=0;function Se(o,e=ve.default){let t=o?.plugins?.flatMap(r=>r.remarkPlugins||[])||[],s=o?.plugins?.flatMap(r=>r.rehypePlugins||[])||[],i=e({remarkPlugins:[Pe.default,we.default,xe,[ge,o],...t],rehypePlugins:[Ce.default,[he,o],...s],jsxRuntime:"automatic",providerImportSource:"@mdx-js/react"});return{...i,name:"vite-plugin-boltdocs-mdx",async buildStart(){gt=0,tt=0,be||(U.load(),be=!0),i.buildStart&&await i.buildStart.call(this)},async transform(r,c,p){if(!c.endsWith(".md")&&!c.endsWith(".mdx"))return i.transform?.call(this,r,c,p);console.log(`[boltdocs] Transforming MDX: ${c}`),tt++;let n=$e.default.createHash("md5").update(r).digest("hex"),l=`${c}:${n}:${pe}`,d=U.get(l);if(d)return gt++,{code:d,map:null};let g=await i.transform.call(this,r,c,p);return g&&typeof g=="object"&&g.code&&U.set(l,g.code),g},async buildEnd(){tt>0&&console.log(`[boltdocs] MDX Cache Performance: ${gt}/${tt} hits (${Math.round(gt/tt*100)||0}%)`),U.save(),await U.flush(),i.buildEnd&&await i.buildEnd.call(this)}}}async function jt(o){let e=o?.docsDir||"docs",t=await H(e),s={...o,homePage:o?.homePage||t.homePage};return[...de(s,t),Se(t)]}async function Xe(o,e="development"){let t=await H("docs",o);return{root:o,mode:e,plugins:[(0,De.default)(),(0,Be.default)(),await jt({docsDir:t.docsDir,homePage:t.homePage})],...t.vite}}0&&(module.exports={createViteConfig,defineConfig,generateStaticPages,resolveConfig});
@@ -1 +1 @@
1
- import{a,b,d as c,g as d,h as e,i as f}from"../chunk-22NXDNP4.mjs";import"../chunk-Y4RRHPXC.mjs";f();export{e as createViteConfig,d as default,a as defineConfig,c as generateStaticPages,b as resolveConfig};
1
+ import{a,b,d as c,g as d,h as e,i as f}from"../chunk-UWT4AJTH.mjs";import"../chunk-Y4RRHPXC.mjs";f();export{e as createViteConfig,d as default,a as defineConfig,c as generateStaticPages,b as resolveConfig};
@@ -1,6 +1,6 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import React__default, { ReactNode, RefObject } from 'react';
3
- import { g as BoltdocsSocialLink, C as ComponentRoute } from '../types-j7jvWsJj.mjs';
3
+ import { g as BoltdocsSocialLink, C as ComponentRoute } from '../types-opDA2E9-.mjs';
4
4
  import * as RAC from 'react-aria-components';
5
5
  import { LinkProps } from 'react-aria-components';
6
6
  export { Separator, ToggleButton } from 'react-aria-components';
@@ -39,18 +39,6 @@ interface NavbarThemeProps {
39
39
  theme: 'dark' | 'light';
40
40
  onThemeChange: (isSelected: boolean) => void;
41
41
  }
42
- interface NavbarMenuProps extends ComponentBase {
43
- label: ReactNode;
44
- icon?: ReactNode;
45
- }
46
- interface NavbarVersionProps extends ComponentBase {
47
- current: string;
48
- }
49
- interface NavbarItemProps extends Omit<ComponentBase, 'children'> {
50
- label: string;
51
- onPress?: () => void;
52
- isCurrent?: boolean;
53
- }
54
42
  interface NavbarSocialsProps extends ComponentBase {
55
43
  icon: string;
56
44
  link: string;
@@ -66,8 +54,6 @@ declare const NavbarLinks: ({ children, className }: ComponentBase) => react_jsx
66
54
  declare const NavbarLink: ({ label, href, active, to, className, }: NavbarLinkProps) => react_jsx_runtime.JSX.Element;
67
55
  declare const NavbarSearchTrigger: ({ className, onPress, }: NavbarSearchTriggerProps) => react_jsx_runtime.JSX.Element;
68
56
  declare const NavbarTheme: ({ className, theme, onThemeChange, }: NavbarThemeProps) => react_jsx_runtime.JSX.Element;
69
- declare const NavbarMenu: ({ label, children, className, icon, }: NavbarMenuProps) => react_jsx_runtime.JSX.Element;
70
- declare const NavbarItem: ({ label, className, onPress, isCurrent, }: NavbarItemProps) => react_jsx_runtime.JSX.Element;
71
57
  declare const Icon: ({ name }: {
72
58
  name: BoltdocsSocialLink["icon"];
73
59
  }) => react_jsx_runtime.JSX.Element | undefined;
@@ -165,10 +151,6 @@ interface OnThisPageIndicatorProps extends ComponentBase {
165
151
  style?: React__default.CSSProperties;
166
152
  }
167
153
  declare function useItems(): TOCItemInfo[];
168
- declare function useScrollStatus(ref: RefObject<HTMLElement | null>): {
169
- isOverflowing: boolean;
170
- isAtBottom: boolean;
171
- };
172
154
  declare function useActiveAnchor(): string | undefined;
173
155
  declare function useActiveAnchors(): string[];
174
156
  /** Optional: add auto-scroll to TOC items. */
@@ -296,6 +278,15 @@ interface TooltipContentProps extends RAC.TooltipProps {
296
278
  }
297
279
  declare const Tooltip: ({ content, children, delay, closeDelay, ...props }: TooltipProps) => react_jsx_runtime.JSX.Element;
298
280
 
281
+ interface SkeletonProps extends React.HTMLAttributes<HTMLDivElement> {
282
+ variant?: 'rect' | 'circle';
283
+ }
284
+ /**
285
+ * A flexible skeleton component that mimics the shape of content
286
+ * while it is loading. Features a smooth pulse animation.
287
+ */
288
+ declare function Skeleton({ className, variant, ...props }: SkeletonProps): react_jsx_runtime.JSX.Element;
289
+
299
290
  declare function cn(...inputs: ClassValue[]): string;
300
291
 
301
- export { AnchorProvider, type AnchorProviderProps, BreadcrumbsItem, BreadcrumbsLink, BreadcrumbsRoot, BreadcrumbsSeparator, ButtonGroup, type ButtonGroupProps, Icon, Menu, MenuItem, MenuSection, type MenuSectionProps, MenuSeparator, MenuTrigger, type MenuTriggerProps, NavbarCenter, NavbarContent, NavbarItem, type NavbarItemProps, NavbarLeft, NavbarLink, type NavbarLinkProps, NavbarLinks, NavbarLogo, type NavbarLogoProps, NavbarMenu, type NavbarMenuProps, NavbarRight, NavbarRoot, NavbarSearchTrigger, type NavbarSearchTriggerProps, NavbarSocials, type NavbarSocialsProps, NavbarSplit, NavbarTheme, type NavbarThemeProps, NavbarTitle, type NavbarVersionProps, type NavigationMenuComponent, type NavigationMenuItemProps, type NavigationMenuLinkProps, OnThisPageContent, type OnThisPageContentProps, OnThisPageHeader, OnThisPageIndicator, type OnThisPageIndicatorProps, OnThisPageItem, type OnThisPageItemProps, OnThisPageLink, type OnThisPageLinkProps, OnThisPageList, OnThisPageRoot, PageNavDescription, PageNavIcon, PageNavLink, type PageNavProps, PageNavRoot, PageNavTitle, Popover, type PopoverProps, ScrollProvider, type ScrollProviderProps, SearchDialogAutocomplete, SearchDialogInput, SearchDialogItemBio, SearchDialogItemIcon, type SearchDialogItemIconProps, type SearchDialogItemProps, SearchDialogItemRoot, SearchDialogItemTitle, SearchDialogList, type SearchDialogProps, SearchDialogRoot, SidebarGroup, SidebarGroupItem, type SidebarGroupProps, SidebarLink, type SidebarLinkProps, SidebarRoot, SubmenuTrigger, type TOCItemInfo, type TOCItemType, type TableOfContents, TabsContent, TabsIndicator, type TabsIndicatorProps, TabsItem, type TabsItemProps, TabsList, TabsRoot, Tooltip, type TooltipContentProps, type TooltipProps, cn, useActiveAnchor, useActiveAnchors, useItems, useScrollStatus };
292
+ export { AnchorProvider, type AnchorProviderProps, BreadcrumbsItem, BreadcrumbsLink, BreadcrumbsRoot, BreadcrumbsSeparator, ButtonGroup, type ButtonGroupProps, Icon, Menu, MenuItem, MenuSection, type MenuSectionProps, MenuSeparator, MenuTrigger, type MenuTriggerProps, NavbarCenter, NavbarContent, NavbarLeft, NavbarLink, type NavbarLinkProps, NavbarLinks, NavbarLogo, type NavbarLogoProps, NavbarRight, NavbarRoot, NavbarSearchTrigger, type NavbarSearchTriggerProps, NavbarSocials, type NavbarSocialsProps, NavbarSplit, NavbarTheme, type NavbarThemeProps, NavbarTitle, type NavigationMenuComponent, type NavigationMenuItemProps, type NavigationMenuLinkProps, OnThisPageContent, type OnThisPageContentProps, OnThisPageHeader, OnThisPageIndicator, type OnThisPageIndicatorProps, OnThisPageItem, type OnThisPageItemProps, OnThisPageLink, type OnThisPageLinkProps, OnThisPageList, OnThisPageRoot, PageNavDescription, PageNavIcon, PageNavLink, type PageNavProps, PageNavRoot, PageNavTitle, Popover, type PopoverProps, ScrollProvider, type ScrollProviderProps, SearchDialogAutocomplete, SearchDialogInput, SearchDialogItemBio, SearchDialogItemIcon, type SearchDialogItemIconProps, type SearchDialogItemProps, SearchDialogItemRoot, SearchDialogItemTitle, SearchDialogList, type SearchDialogProps, SearchDialogRoot, SidebarGroup, SidebarGroupItem, type SidebarGroupProps, SidebarLink, type SidebarLinkProps, SidebarRoot, Skeleton, SubmenuTrigger, type TOCItemInfo, type TOCItemType, type TableOfContents, TabsContent, TabsIndicator, type TabsIndicatorProps, TabsItem, type TabsItemProps, TabsList, TabsRoot, Tooltip, type TooltipContentProps, type TooltipProps, cn, useActiveAnchor, useActiveAnchors, useItems };
@@ -1,6 +1,6 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import React__default, { ReactNode, RefObject } from 'react';
3
- import { g as BoltdocsSocialLink, C as ComponentRoute } from '../types-j7jvWsJj.js';
3
+ import { g as BoltdocsSocialLink, C as ComponentRoute } from '../types-opDA2E9-.js';
4
4
  import * as RAC from 'react-aria-components';
5
5
  import { LinkProps } from 'react-aria-components';
6
6
  export { Separator, ToggleButton } from 'react-aria-components';
@@ -39,18 +39,6 @@ interface NavbarThemeProps {
39
39
  theme: 'dark' | 'light';
40
40
  onThemeChange: (isSelected: boolean) => void;
41
41
  }
42
- interface NavbarMenuProps extends ComponentBase {
43
- label: ReactNode;
44
- icon?: ReactNode;
45
- }
46
- interface NavbarVersionProps extends ComponentBase {
47
- current: string;
48
- }
49
- interface NavbarItemProps extends Omit<ComponentBase, 'children'> {
50
- label: string;
51
- onPress?: () => void;
52
- isCurrent?: boolean;
53
- }
54
42
  interface NavbarSocialsProps extends ComponentBase {
55
43
  icon: string;
56
44
  link: string;
@@ -66,8 +54,6 @@ declare const NavbarLinks: ({ children, className }: ComponentBase) => react_jsx
66
54
  declare const NavbarLink: ({ label, href, active, to, className, }: NavbarLinkProps) => react_jsx_runtime.JSX.Element;
67
55
  declare const NavbarSearchTrigger: ({ className, onPress, }: NavbarSearchTriggerProps) => react_jsx_runtime.JSX.Element;
68
56
  declare const NavbarTheme: ({ className, theme, onThemeChange, }: NavbarThemeProps) => react_jsx_runtime.JSX.Element;
69
- declare const NavbarMenu: ({ label, children, className, icon, }: NavbarMenuProps) => react_jsx_runtime.JSX.Element;
70
- declare const NavbarItem: ({ label, className, onPress, isCurrent, }: NavbarItemProps) => react_jsx_runtime.JSX.Element;
71
57
  declare const Icon: ({ name }: {
72
58
  name: BoltdocsSocialLink["icon"];
73
59
  }) => react_jsx_runtime.JSX.Element | undefined;
@@ -165,10 +151,6 @@ interface OnThisPageIndicatorProps extends ComponentBase {
165
151
  style?: React__default.CSSProperties;
166
152
  }
167
153
  declare function useItems(): TOCItemInfo[];
168
- declare function useScrollStatus(ref: RefObject<HTMLElement | null>): {
169
- isOverflowing: boolean;
170
- isAtBottom: boolean;
171
- };
172
154
  declare function useActiveAnchor(): string | undefined;
173
155
  declare function useActiveAnchors(): string[];
174
156
  /** Optional: add auto-scroll to TOC items. */
@@ -296,6 +278,15 @@ interface TooltipContentProps extends RAC.TooltipProps {
296
278
  }
297
279
  declare const Tooltip: ({ content, children, delay, closeDelay, ...props }: TooltipProps) => react_jsx_runtime.JSX.Element;
298
280
 
281
+ interface SkeletonProps extends React.HTMLAttributes<HTMLDivElement> {
282
+ variant?: 'rect' | 'circle';
283
+ }
284
+ /**
285
+ * A flexible skeleton component that mimics the shape of content
286
+ * while it is loading. Features a smooth pulse animation.
287
+ */
288
+ declare function Skeleton({ className, variant, ...props }: SkeletonProps): react_jsx_runtime.JSX.Element;
289
+
299
290
  declare function cn(...inputs: ClassValue[]): string;
300
291
 
301
- export { AnchorProvider, type AnchorProviderProps, BreadcrumbsItem, BreadcrumbsLink, BreadcrumbsRoot, BreadcrumbsSeparator, ButtonGroup, type ButtonGroupProps, Icon, Menu, MenuItem, MenuSection, type MenuSectionProps, MenuSeparator, MenuTrigger, type MenuTriggerProps, NavbarCenter, NavbarContent, NavbarItem, type NavbarItemProps, NavbarLeft, NavbarLink, type NavbarLinkProps, NavbarLinks, NavbarLogo, type NavbarLogoProps, NavbarMenu, type NavbarMenuProps, NavbarRight, NavbarRoot, NavbarSearchTrigger, type NavbarSearchTriggerProps, NavbarSocials, type NavbarSocialsProps, NavbarSplit, NavbarTheme, type NavbarThemeProps, NavbarTitle, type NavbarVersionProps, type NavigationMenuComponent, type NavigationMenuItemProps, type NavigationMenuLinkProps, OnThisPageContent, type OnThisPageContentProps, OnThisPageHeader, OnThisPageIndicator, type OnThisPageIndicatorProps, OnThisPageItem, type OnThisPageItemProps, OnThisPageLink, type OnThisPageLinkProps, OnThisPageList, OnThisPageRoot, PageNavDescription, PageNavIcon, PageNavLink, type PageNavProps, PageNavRoot, PageNavTitle, Popover, type PopoverProps, ScrollProvider, type ScrollProviderProps, SearchDialogAutocomplete, SearchDialogInput, SearchDialogItemBio, SearchDialogItemIcon, type SearchDialogItemIconProps, type SearchDialogItemProps, SearchDialogItemRoot, SearchDialogItemTitle, SearchDialogList, type SearchDialogProps, SearchDialogRoot, SidebarGroup, SidebarGroupItem, type SidebarGroupProps, SidebarLink, type SidebarLinkProps, SidebarRoot, SubmenuTrigger, type TOCItemInfo, type TOCItemType, type TableOfContents, TabsContent, TabsIndicator, type TabsIndicatorProps, TabsItem, type TabsItemProps, TabsList, TabsRoot, Tooltip, type TooltipContentProps, type TooltipProps, cn, useActiveAnchor, useActiveAnchors, useItems, useScrollStatus };
292
+ export { AnchorProvider, type AnchorProviderProps, BreadcrumbsItem, BreadcrumbsLink, BreadcrumbsRoot, BreadcrumbsSeparator, ButtonGroup, type ButtonGroupProps, Icon, Menu, MenuItem, MenuSection, type MenuSectionProps, MenuSeparator, MenuTrigger, type MenuTriggerProps, NavbarCenter, NavbarContent, NavbarLeft, NavbarLink, type NavbarLinkProps, NavbarLinks, NavbarLogo, type NavbarLogoProps, NavbarRight, NavbarRoot, NavbarSearchTrigger, type NavbarSearchTriggerProps, NavbarSocials, type NavbarSocialsProps, NavbarSplit, NavbarTheme, type NavbarThemeProps, NavbarTitle, type NavigationMenuComponent, type NavigationMenuItemProps, type NavigationMenuLinkProps, OnThisPageContent, type OnThisPageContentProps, OnThisPageHeader, OnThisPageIndicator, type OnThisPageIndicatorProps, OnThisPageItem, type OnThisPageItemProps, OnThisPageLink, type OnThisPageLinkProps, OnThisPageList, OnThisPageRoot, PageNavDescription, PageNavIcon, PageNavLink, type PageNavProps, PageNavRoot, PageNavTitle, Popover, type PopoverProps, ScrollProvider, type ScrollProviderProps, SearchDialogAutocomplete, SearchDialogInput, SearchDialogItemBio, SearchDialogItemIcon, type SearchDialogItemIconProps, type SearchDialogItemProps, SearchDialogItemRoot, SearchDialogItemTitle, SearchDialogList, type SearchDialogProps, SearchDialogRoot, SidebarGroup, SidebarGroupItem, type SidebarGroupProps, SidebarLink, type SidebarLinkProps, SidebarRoot, Skeleton, SubmenuTrigger, type TOCItemInfo, type TOCItemType, type TableOfContents, TabsContent, TabsIndicator, type TabsIndicatorProps, TabsItem, type TabsItemProps, TabsList, TabsRoot, Tooltip, type TooltipContentProps, type TooltipProps, cn, useActiveAnchor, useActiveAnchors, useItems };