boltdocs 2.2.0 → 2.4.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 (124) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/bin/boltdocs.js +2 -2
  3. package/dist/base-ui/index.d.mts +4 -4
  4. package/dist/base-ui/index.d.ts +4 -4
  5. package/dist/base-ui/index.js +1 -1
  6. package/dist/base-ui/index.mjs +1 -1
  7. package/dist/{cache-CRAZ55X7.mjs → cache-P6WK424C.mjs} +1 -1
  8. package/dist/chunk-2DI3OGHV.mjs +1 -0
  9. package/dist/chunk-2Z5T6EAU.mjs +1 -0
  10. package/dist/chunk-64AJ5QLT.mjs +1 -0
  11. package/dist/chunk-DDX52BX4.mjs +1 -0
  12. package/dist/chunk-HRZDSFR5.mjs +1 -0
  13. package/dist/chunk-PPVDMDEL.mjs +1 -0
  14. package/dist/chunk-UBE4CKOA.mjs +1 -0
  15. package/dist/chunk-UWT4AJTH.mjs +73 -0
  16. package/dist/chunk-WWJ7WKDI.mjs +1 -0
  17. package/dist/chunk-Y4RRHPXC.mjs +1 -0
  18. package/dist/client/index.d.mts +15 -21
  19. package/dist/client/index.d.ts +15 -21
  20. package/dist/client/index.js +1 -1
  21. package/dist/client/index.mjs +1 -1
  22. package/dist/client/ssr.js +1 -1
  23. package/dist/client/ssr.mjs +1 -1
  24. package/dist/client/types.d.mts +1 -1
  25. package/dist/client/types.d.ts +1 -1
  26. package/dist/client/types.js +1 -1
  27. package/dist/{copy-markdown-CbS8X-qe.d.mts → copy-markdown--9yjpbyy.d.mts} +1 -1
  28. package/dist/{copy-markdown-C-90ixSe.d.ts → copy-markdown-l2MYkcG7.d.ts} +1 -1
  29. package/dist/hooks/index.d.mts +8 -16
  30. package/dist/hooks/index.d.ts +8 -16
  31. package/dist/hooks/index.js +1 -1
  32. package/dist/hooks/index.mjs +1 -1
  33. package/dist/integrations/index.d.mts +1 -1
  34. package/dist/integrations/index.d.ts +1 -1
  35. package/dist/{loading-chS3pm9W.d.ts → loading-BwUos0wZ.d.mts} +5 -16
  36. package/dist/{loading-BqGrFWO5.d.mts → loading-nlnUD01v.d.ts} +5 -16
  37. package/dist/mdx/index.d.mts +4 -2
  38. package/dist/mdx/index.d.ts +4 -2
  39. package/dist/mdx/index.js +1 -1
  40. package/dist/mdx/index.mjs +1 -1
  41. package/dist/node/cli-entry.js +25 -22
  42. package/dist/node/cli-entry.mjs +5 -1
  43. package/dist/node/index.d.mts +0 -9
  44. package/dist/node/index.d.ts +0 -9
  45. package/dist/node/index.js +14 -15
  46. package/dist/node/index.mjs +1 -1
  47. package/dist/primitives/index.d.mts +13 -22
  48. package/dist/primitives/index.d.ts +13 -22
  49. package/dist/primitives/index.js +1 -1
  50. package/dist/primitives/index.mjs +1 -1
  51. package/dist/search-dialog-OONKKC5H.mjs +1 -0
  52. package/dist/{types-j7jvWsJj.d.ts → types-opDA2E9-.d.mts} +4 -11
  53. package/dist/{types-j7jvWsJj.d.mts → types-opDA2E9-.d.ts} +4 -11
  54. package/dist/{use-routes-Cd806kGw.d.ts → use-routes-DNwgTRpU.d.ts} +1 -1
  55. package/dist/{use-routes-DDL0_jkQ.d.mts → use-routes-DrT80Eom.d.mts} +1 -1
  56. package/package.json +2 -1
  57. package/src/client/app/index.tsx +20 -9
  58. package/src/client/app/mdx-components-context.tsx +2 -2
  59. package/src/client/app/mdx-page.tsx +0 -1
  60. package/src/client/app/scroll-handler.tsx +21 -10
  61. package/src/client/app/theme-context.tsx +14 -7
  62. package/src/client/components/default-layout.tsx +6 -4
  63. package/src/client/components/docs-layout.tsx +34 -4
  64. package/src/client/components/icons-dev.tsx +154 -0
  65. package/src/client/components/mdx/code-block.tsx +57 -5
  66. package/src/client/components/mdx/component-preview.tsx +1 -0
  67. package/src/client/components/mdx/file-tree.tsx +35 -0
  68. package/src/client/components/primitives/helpers/observer.ts +30 -39
  69. package/src/client/components/primitives/index.ts +1 -0
  70. package/src/client/components/primitives/menu.tsx +18 -12
  71. package/src/client/components/primitives/navbar.tsx +34 -93
  72. package/src/client/components/primitives/on-this-page.tsx +7 -161
  73. package/src/client/components/primitives/popover.tsx +1 -2
  74. package/src/client/components/primitives/search-dialog.tsx +4 -4
  75. package/src/client/components/primitives/sidebar.tsx +3 -2
  76. package/src/client/components/primitives/skeleton.tsx +26 -0
  77. package/src/client/components/ui-base/copy-markdown.tsx +4 -10
  78. package/src/client/components/ui-base/index.ts +0 -1
  79. package/src/client/components/ui-base/loading.tsx +43 -73
  80. package/src/client/components/ui-base/navbar.tsx +18 -15
  81. package/src/client/components/ui-base/page-nav.tsx +2 -1
  82. package/src/client/components/ui-base/powered-by.tsx +4 -1
  83. package/src/client/components/ui-base/search-dialog.tsx +16 -5
  84. package/src/client/components/ui-base/sidebar.tsx +4 -2
  85. package/src/client/hooks/use-i18n.ts +3 -2
  86. package/src/client/hooks/use-localized-to.ts +6 -5
  87. package/src/client/hooks/use-navbar.ts +37 -6
  88. package/src/client/hooks/use-page-nav.ts +27 -6
  89. package/src/client/hooks/use-routes.ts +2 -1
  90. package/src/client/hooks/use-search.ts +81 -59
  91. package/src/client/hooks/use-sidebar.ts +2 -1
  92. package/src/client/index.ts +0 -1
  93. package/src/client/store/use-boltdocs-store.ts +6 -5
  94. package/src/client/theme/neutral.css +31 -3
  95. package/src/client/types.ts +2 -2
  96. package/src/node/{cli.ts → cli/build.ts} +17 -23
  97. package/src/node/cli/dev.ts +22 -0
  98. package/src/node/cli/doctor.ts +243 -0
  99. package/src/node/cli/index.ts +9 -0
  100. package/src/node/cli/ui.ts +54 -0
  101. package/src/node/cli-entry.ts +16 -16
  102. package/src/node/config.ts +1 -15
  103. package/src/node/mdx/cache.ts +1 -1
  104. package/src/node/mdx/index.ts +2 -0
  105. package/src/node/mdx/rehype-shiki.ts +9 -0
  106. package/src/node/mdx/remark-code-meta.ts +35 -0
  107. package/src/node/mdx/remark-shiki.ts +1 -1
  108. package/src/node/plugin/entry.ts +22 -15
  109. package/src/node/plugin/index.ts +46 -14
  110. package/src/node/routes/parser.ts +12 -9
  111. package/src/node/search/index.ts +55 -0
  112. package/src/node/ssg/index.ts +83 -15
  113. package/src/node/ssg/robots.ts +7 -4
  114. package/dist/chunk-5D6XPYQ3.mjs +0 -74
  115. package/dist/chunk-6QXCKZAT.mjs +0 -1
  116. package/dist/chunk-H4M6P3DM.mjs +0 -1
  117. package/dist/chunk-JXHNX2WN.mjs +0 -1
  118. package/dist/chunk-MZBG4N4W.mjs +0 -1
  119. package/dist/chunk-Q3MLYTIQ.mjs +0 -1
  120. package/dist/chunk-RSII2UPE.mjs +0 -1
  121. package/dist/chunk-ZK2266IZ.mjs +0 -1
  122. package/dist/chunk-ZRJ55GGF.mjs +0 -1
  123. package/dist/search-dialog-MA5AISC7.mjs +0 -1
  124. package/src/client/components/ui-base/progress-bar.tsx +0 -67
@@ -1,30 +1,29 @@
1
1
  #!/usr/bin/env node
2
- "use strict";var Ie=Object.create;var vt=Object.defineProperty;var je=Object.getOwnPropertyDescriptor;var He=Object.getOwnPropertyNames;var Le=Object.getPrototypeOf,Ee=Object.prototype.hasOwnProperty;var bt=(o,t)=>()=>(o&&(t=o(o=0)),t);var Ae=(o,t)=>{for(var e in t)vt(o,e,{get:t[e],enumerable:!0})},ze=(o,t,e,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of He(t))!Ee.call(o,i)&&i!==e&&vt(o,i,{get:()=>t[i],enumerable:!(s=je(t,i))||s.enumerable});return o};var f=(o,t,e)=>(e=o!=null?Ie(Le(o)):{},ze(t||!o||!o.__esModule?vt(e,"default",{value:o,enumerable:!0}):e,o));var Ne,w,m=bt(()=>{"use strict";Ne=()=>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,w=Ne()});function k(o){return o.replace(/\\/g,"/")}function q(o){return o.replace(/^\d+\./,"")}function nt(o){let t=o.match(/^(\d+)\./);return t?parseInt(t[1],10):void 0}function Nt(o){return/\.mdx?$/.test(o)}function rt(o){try{return wt.default.statSync(o).mtimeMs}catch{return 0}}function Ut(o){let t=wt.default.readFileSync(o,"utf-8");try{let{data:e,content:s}=(0,zt.default)(t);return{data:e,content:s}}catch{return{data:{},content:t}}}function H(o){return o.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&apos;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function Ct(o){return H(o)}function Gt(o){let e=o.split("/").map(q).join("/").replace(/\/$/,"");return e=e.replace(/\.mdx?$/,""),(e==="index"||e.endsWith("/index"))&&(e=e.replace(/index$/,"")),e.startsWith("/")||(e="/"+e),e.length>1&&e.endsWith("/")&&(e=e.slice(0,-1)),e}function J(o){return Pt.default.sanitize(o)}function $t(o){return Pt.default.sanitize(o,{ALLOWED_TAGS:[],KEEP_CONTENT:!0})}function K(o){return o.charAt(0).toUpperCase()+o.slice(1)}function St(o,t){return o?typeof o=="string"?o:t&&o[t]?o[t]:Object.values(o)[0]||"":""}var wt,zt,Pt,T=bt(()=>{"use strict";m();wt=f(require("fs")),zt=f(require("gray-matter")),Pt=f(require("isomorphic-dompurify"))});var Tt={};Ae(Tt,{AssetCache:()=>Rt,FileCache:()=>X,TransformCache:()=>Z,flushCache:()=>Je});async function Je(){await I.flush()}var C,B,E,L,A,st,Ue,at,kt,ro,Mt,Ge,Ve,We,qe,Bt,Dt,I,X,Z,Rt,Q=bt(()=>{"use strict";m();C=f(require("fs")),B=f(require("path")),E=f(require("crypto")),L=f(require("zlib")),A=require("util");T();st=(0,A.promisify)(C.default.writeFile),Ue=(0,A.promisify)(C.default.readFile),at=(0,A.promisify)(C.default.mkdir),kt=(0,A.promisify)(C.default.rename),ro=(0,A.promisify)(C.default.unlink),Mt=process.env.BOLTDOCS_CACHE_DIR||".boltdocs",Ge="assets",Ve="shards",We=parseInt(process.env.BOLTDOCS_CACHE_LRU_LIMIT||"2000",10),qe=process.env.BOLTDOCS_CACHE_COMPRESS!=="0",Bt=class{constructor(t){this.limit=t}cache=new Map;get(t){let e=this.cache.get(t);return e!==void 0&&(this.cache.delete(t),this.cache.set(t,e)),e}set(t,e){if(this.cache.has(t))this.cache.delete(t);else if(this.cache.size>=this.limit){let s=this.cache.keys().next().value;s!==void 0&&this.cache.delete(s)}this.cache.set(t,e)}get size(){return this.cache.size}clear(){this.cache.clear()}},Dt=class{queue=Promise.resolve();pendingCount=0;add(t){this.pendingCount++,this.queue=this.queue.then(t).finally(()=>{this.pendingCount--})}async flush(){await this.queue}get pending(){return this.pendingCount}},I=new Dt,X=class{entries=new Map;cachePath=null;compress;constructor(t={}){if(this.compress=t.compress!==void 0?t.compress:qe,t.name){let e=t.root||process.cwd(),s=this.compress?"json.gz":"json";this.cachePath=B.default.resolve(e,Mt,`${t.name}.${s}`)}}load(){if(process.env.BOLTDOCS_NO_CACHE!=="1"&&!(!this.cachePath||!C.default.existsSync(this.cachePath)))try{let t=C.default.readFileSync(this.cachePath);this.cachePath.endsWith(".gz")&&(t=L.default.gunzipSync(t));let e=JSON.parse(t.toString("utf-8"));this.entries=new Map(Object.entries(e))}catch{}}save(){if(process.env.BOLTDOCS_NO_CACHE==="1"||!this.cachePath)return;let t=Object.fromEntries(this.entries),e=JSON.stringify(t),s=this.cachePath,i=this.compress;I.add(async()=>{try{await at(B.default.dirname(s),{recursive:!0});let r=Buffer.from(e);i&&(r=L.default.gzipSync(r));let c=`${s}.${E.default.randomBytes(4).toString("hex")}.tmp`;await st(c,r),await kt(c,s)}catch{}})}get(t){let e=this.entries.get(t);return!e||rt(t)!==e.mtime?null:e.data}set(t,e){this.entries.set(t,{data:e,mtime:rt(t)})}isValid(t){let e=this.entries.get(t);return e?rt(t)===e.mtime:!1}invalidate(t){this.entries.delete(t)}invalidateAll(){this.entries.clear()}pruneStale(t){for(let e of this.entries.keys())t.has(e)||this.entries.delete(e)}get size(){return this.entries.size}async flush(){await I.flush()}},Z=class{index=new Map;memoryCache=new Bt(We);baseDir;shardsDir;indexPath;constructor(t,e=process.cwd()){this.baseDir=B.default.resolve(e,Mt,`transform-${t}`),this.shardsDir=B.default.resolve(this.baseDir,Ve),this.indexPath=B.default.resolve(this.baseDir,"index.json")}load(){if(process.env.BOLTDOCS_NO_CACHE!=="1"&&C.default.existsSync(this.indexPath))try{let t=C.default.readFileSync(this.indexPath,"utf-8");this.index=new Map(Object.entries(JSON.parse(t)))}catch{}}save(){if(process.env.BOLTDOCS_NO_CACHE==="1")return;let t=JSON.stringify(Object.fromEntries(this.index)),e=this.indexPath;I.add(async()=>{await at(B.default.dirname(e),{recursive:!0}),await st(e,t)})}async getMany(t){let e=new Map,s=[];for(let i of t){let r=this.memoryCache.get(i);r?e.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=B.default.resolve(this.shardsDir,`${c}.gz`);try{let n=await Ue(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&&e.set(r.key,r.val)}return e}get(t){let e=this.memoryCache.get(t);if(e)return e;let s=this.index.get(t);if(!s)return null;let i=B.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(t,c),c}catch{return null}}set(t,e){let s=E.default.createHash("md5").update(e).digest("hex");this.index.set(t,s),this.memoryCache.set(t,e);let i=B.default.resolve(this.shardsDir,`${s}.gz`);I.add(async()=>{if(C.default.existsSync(i))return;await at(this.shardsDir,{recursive:!0});let r=L.default.gzipSync(Buffer.from(e)),c=`${i}.${E.default.randomBytes(4).toString("hex")}.tmp`;await st(c,r),await kt(c,i)})}get size(){return this.index.size}async flush(){await I.flush()}},Rt=class{assetsDir;constructor(t=process.cwd()){this.assetsDir=B.default.resolve(t,Mt,Ge)}getFileHash(t){return E.default.createHash("md5").update(C.default.readFileSync(t)).digest("hex")}get(t,e){if(!C.default.existsSync(t))return null;let s=this.getFileHash(t),i=this.getCachedPath(t,`${e}-${s}`);return C.default.existsSync(i)?i:null}set(t,e,s){let i=this.getFileHash(t),r=this.getCachedPath(t,`${e}-${i}`);I.add(async()=>{await at(this.assetsDir,{recursive:!0});let c=`${r}.${E.default.randomBytes(4).toString("hex")}.tmp`;await st(c,s),await kt(c,r)})}getCachedPath(t,e){let s=B.default.extname(t),i=B.default.basename(t,s),r=e.replace(/[^a-z0-9]/gi,"-").toLowerCase();return B.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 I.flush()}}});m();var ke=f(require("cac"));m();var U=require("vite");m();var Pe=f(require("@vitejs/plugin-react")),Ce=f(require("@tailwindcss/vite"));m();var se=require("vite");m();var Kt=f(require("fast-glob"));T();m();Q();var _=new X({name:"routes"});function _t(){_.invalidateAll()}function Ot(o){_.invalidate(o)}m();var z=f(require("path")),Vt=f(require("github-slugger"));T();function Wt(o,t,e,s){let i=decodeURIComponent(o),r=z.default.resolve(i),c=z.default.resolve(t),p=k(z.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}=Ut(o),d=p.split("/"),u,y;if(s?.versions&&d.length>0){let R=d[0],yt=s.versions.prefix||"",it=s.versions.versions.find(W=>{let xt=yt+W.path;return R===xt||R===W.path});it&&(y=it.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 x;if(d.length>0){let R=d[0].match(/^\((.+)\)$/);R&&(x=R[1].toLowerCase(),d=d.slice(1))}let S=d.join("/"),a;n.permalink?a=n.permalink.startsWith("/")?n.permalink:`/${n.permalink}`:a=Gt(S||"index.md");let g=e;y&&(g+="/"+y),u&&(g+="/"+u),g+=a==="/"?"":a,(!g||g==="")&&(g="/");let b=d[d.length-1],h=q(b),D=q(z.default.basename(o,z.default.extname(o))),v=n.sidebarPosition??nt(b),$=d.length>=2?d[0]:void 0,P=$?q($):void 0,V=d.length>=2&&/^index\.mdx?$/.test(h),Me=new Vt.default,Et=[],Te=/^(#{2,4})\s+(.+)$/gm;for(let R of l.matchAll(Te)){let yt=R[1].length,it=R[2].replace(/\[([^\]]+)\]\([^\)]+\)/g,"$1").replace(/[_*`]/g,"").trim(),W=J(it).trim(),xt=Me.slug(W);Et.push({level:yt,text:W,id:xt})}let _e=n.title?J(String(n.title)):D,ht=n.description?J(String(n.description)):"";!ht&&l&&(ht=$t(l.replace(/^#+.*$/gm,"").replace(/\[([^\]]+)\]\([^\)]+\)/g,"$1").replace(/[_*`]/g,"").replace(/\s+/g," ")).trim().slice(0,160));let Oe=n.badge?J(String(n.badge)):void 0,At=n.icon?String(n.icon):void 0,Fe=Ke(l);return{route:{path:g,componentPath:o,filePath:p,title:_e,description:ht,sidebarPosition:v,headings:Et,locale:u,version:y,badge:Oe,icon:At,tab:x,_content:Fe,_rawContent:l},relativeDir:P,isGroupIndex:V,inferredTab:x,groupMeta:V?{title:n.groupTitle||n.title||(P?K(P):""),position:n.groupPosition??n.sidebarPosition??($?nt($):void 0),icon:At}:void 0,inferredGroupPosition:$?nt($):void 0}}function Ke(o){let t=o.replace(/^#+.*$/gm,"").replace(/\[([^\]]+)\]\([^\)]+\)/g,"$1").replace(/\{[^\}]+\}/g,"").replace(/[_*`]/g,"").replace(/\s+/g," ");return $t(t).trim()}m();function Jt(o){return o.sort((t,e)=>!t.group&&!e.group?qt(t,e):t.group?e.group?t.group!==e.group?Xe(t,e):qt(t,e):1:-1)}function qt(o,t){return o.sidebarPosition!==void 0&&t.sidebarPosition!==void 0?o.sidebarPosition-t.sidebarPosition:o.sidebarPosition!==void 0?-1:t.sidebarPosition!==void 0?1:o.title.localeCompare(t.title)}function Xe(o,t){return o.groupPosition!==void 0&&t.groupPosition!==void 0?o.groupPosition-t.groupPosition:o.groupPosition!==void 0?-1:t.groupPosition!==void 0?1:(o.groupTitle||o.group).localeCompare(t.groupTitle||t.group)}var Ft=null,Y=new Map;async function tt(o,t,e="/docs",s=!0){let i=performance.now();_.load(),Y.clear(),(process.env.BOLTDOCS_FORCE_REPARSE==="true"||t?.i18n)&&_.invalidateAll();let r;!s&&Ft?r=Ft:(r=await(0,Kt.default)(["**/*.md","**/*.mdx"],{cwd:o,absolute:!0,suppressErrors:!0,followSymbolicLinks:!1}),Ft=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 h=>{let D=_.get(h);if(D)return n++,D;let v=Wt(h,o,e,t);return _.set(h,v),v}));p.push(...b),a+c<r.length&&await new Promise(h=>setImmediate(h))}_.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:K(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,h=b?l.get(b):void 0;u[a]={...g.route,group:b,groupTitle:h?.title||(b?K(b):void 0),groupPosition:h?.position,groupIcon:h?.icon}}let y=u;if(t?.i18n){let a=Ze(u,t,e);y=[...u,...a]}let x=Jt(y),S=performance.now()-i;return console.log(`[boltdocs] Route generation: ${S.toFixed(2)}ms (${r.length} files, ${n} cache hits)`),x}function Ze(o,t,e){let s=t.i18n.defaultLocale,i=Object.keys(t.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=Qe(d.path,s,n,e,t);u!==d.path&&(l.has(u)||r.push({...d,path:u,locale:n}))}}return r}function Qe(o,t,e,s,i){let r=`${o}:${e}`,c=Y.get(r);if(c)return c;let p=s;if(i?.versions){let u=i.versions.prefix||"";for(let y of i.versions.versions){let x=u+y.path;if(o.startsWith(`${s}/${x}`)){p+="/"+x;break}if(o.startsWith(`${s}/${y.path}`)){p+="/"+y.path;break}}}let n=o.substring(p.length),l=`/${t}`;if(n.startsWith(l+"/"))n="/"+e+"/"+n.substring(l.length+1);else if(n===l)n="/"+e;else if(n==="/"||n==="")n="/"+e;else{let u=n.startsWith("/")?"":"/";n="/"+e+u+n}let d=p+n;return Y.size>2e3&&Y.clear(),Y.set(r,d),d}var ae=require("vite-plugin-image-optimizer");m();var ct=f(require("path")),Xt=f(require("fs")),Zt=require("vite");var lt=["boltdocs.config.js","boltdocs.config.mjs","boltdocs.config.ts"];async function O(o,t=process.cwd()){let e=t,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(e,n);if(Xt.default.existsSync(l))try{let d=await(0,Zt.loadConfigFromFile)({command:"serve",mode:"development"},l,e);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:ct.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=f(require("fs")),F=f(require("path"));T();var oe=require("url"),ie=require("module");m();T();function Qt(o,t){let e=H(t.title),s=H(t.description);return o.replace(/<title>.*?<\/title>/,`<title>${e}</title>`).replace(/(<meta name="description" content=")[^"]*(")/,`$1${s}$2`).replace(/(<meta property="og:title" content=")[^"]*(")/,`$1${e}$2`).replace(/(<meta property="og:description" content=")[^"]*(")/,`$1${s}$2`).replace(/(<meta name="twitter:title" content=")[^"]*(")/,`$1${e}$2`).replace(/(<meta name="twitter:description" content=")[^"]*(")/,`$1${s}$2`)}m();T();function Yt(o,t){let e=t?.siteUrl?.replace(/\/$/,"")||"https://example.com",s=new Date().toISOString().split("T")[0],i=[{url:"/",priority:"1.0",changefreq:"daily"}];if(t?.i18n){let c=t.i18n.defaultLocale;for(let p of Object.keys(t.i18n.locales))p!==c&&i.push({url:`/${p}/`,priority:"1.0",changefreq:"daily"})}return`<?xml version="1.0" encoding="UTF-8"?>
2
+ "use strict";var Xe=Object.create;var _t=Object.defineProperty;var Ye=Object.getOwnPropertyDescriptor;var Ze=Object.getOwnPropertyNames;var Qe=Object.getPrototypeOf,to=Object.prototype.hasOwnProperty;var Tt=(o,t)=>()=>(o&&(t=o(o=0)),t);var Zt=(o,t)=>{for(var e in t)_t(o,e,{get:t[e],enumerable:!0})},eo=(o,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Ze(t))!to.call(o,i)&&i!==e&&_t(o,i,{get:()=>t[i],enumerable:!(r=Ye(t,i))||r.enumerable});return o};var P=(o,t,e)=>(e=o!=null?Xe(Qe(o)):{},eo(t||!o||!o.__esModule?_t(e,"default",{value:o,enumerable:!0}):e,o));var oo,$,m=Tt(()=>{"use strict";oo=()=>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,$=oo()});function R(o){return o.replace(/\\/g,"/")}function Z(o){return o.replace(/^\d+\./,"")}function gt(o){let t=o.match(/^(\d+)\./);return t?parseInt(t[1],10):void 0}function te(o){return/\.mdx?$/.test(o)}function ft(o){try{return Ft.default.statSync(o).mtimeMs}catch{return 0}}function ht(o){let t=Ft.default.readFileSync(o,"utf-8");try{let{data:e,content:r}=(0,Qt.default)(t);return{data:e,content:r}}catch{return{data:{},content:t}}}function z(o){return o.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&apos;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function Ot(o){return z(o)}function ee(o){let e=o.split("/").map(Z).join("/").replace(/\/$/,"");return e=e.replace(/\.mdx?$/,""),(e==="index"||e.endsWith("/index"))&&(e=e.replace(/index$/,"")),e.startsWith("/")||(e="/"+e),e.length>1&&e.endsWith("/")&&(e=e.slice(0,-1)),e}function Q(o){return It.default.sanitize(o)}function jt(o){return It.default.sanitize(o,{ALLOWED_TAGS:[],KEEP_CONTENT:!0})}function tt(o){return o.charAt(0).toUpperCase()+o.slice(1)}function Ht(o,t){return o?typeof o=="string"?o:t&&o[t]?o[t]:Object.values(o)[0]||"":""}var Ft,Qt,It,F=Tt(()=>{"use strict";m();Ft=P(require("fs")),Qt=P(require("gray-matter")),It=P(require("isomorphic-dompurify"))});var Ut={};Zt(Ut,{AssetCache:()=>Et,FileCache:()=>et,TransformCache:()=>ot,flushCache:()=>co});async function co(){await A.flush()}var B,M,G,U,W,yt,io,xt,zt,bo,Nt,no,ro,so,ao,Lt,At,A,et,ot,Et,it=Tt(()=>{"use strict";m();B=P(require("fs")),M=P(require("path")),G=P(require("crypto")),U=P(require("zlib")),W=require("util");F();yt=(0,W.promisify)(B.default.writeFile),io=(0,W.promisify)(B.default.readFile),xt=(0,W.promisify)(B.default.mkdir),zt=(0,W.promisify)(B.default.rename),bo=(0,W.promisify)(B.default.unlink),Nt=process.env.BOLTDOCS_CACHE_DIR||".boltdocs",no="assets",ro="shards",so=parseInt(process.env.BOLTDOCS_CACHE_LRU_LIMIT||"2000",10),ao=process.env.BOLTDOCS_CACHE_COMPRESS!=="0",Lt=class{constructor(t){this.limit=t}cache=new Map;get(t){let e=this.cache.get(t);return e!==void 0&&(this.cache.delete(t),this.cache.set(t,e)),e}set(t,e){if(this.cache.has(t))this.cache.delete(t);else if(this.cache.size>=this.limit){let r=this.cache.keys().next().value;r!==void 0&&this.cache.delete(r)}this.cache.set(t,e)}get size(){return this.cache.size}clear(){this.cache.clear()}},At=class{queue=Promise.resolve();pendingCount=0;add(t){this.pendingCount++,this.queue=this.queue.then(t).finally(()=>{this.pendingCount--})}async flush(){await this.queue}get pending(){return this.pendingCount}},A=new At,et=class{entries=new Map;cachePath=null;compress;constructor(t={}){if(this.compress=t.compress!==void 0?t.compress:ao,t.name){let e=t.root||process.cwd(),r=this.compress?"json.gz":"json";this.cachePath=M.default.resolve(e,Nt,`${t.name}.${r}`)}}load(){if(process.env.BOLTDOCS_NO_CACHE!=="1"&&!(!this.cachePath||!B.default.existsSync(this.cachePath)))try{let t=B.default.readFileSync(this.cachePath);this.cachePath.endsWith(".gz")&&(t=U.default.gunzipSync(t));let e=JSON.parse(t.toString("utf-8"));this.entries=new Map(Object.entries(e))}catch{}}save(){if(process.env.BOLTDOCS_NO_CACHE==="1"||!this.cachePath)return;let t=Object.fromEntries(this.entries),e=JSON.stringify(t),r=this.cachePath,i=this.compress;A.add(async()=>{try{await xt(M.default.dirname(r),{recursive:!0});let s=Buffer.from(e);i&&(s=U.default.gzipSync(s));let c=`${r}.${G.default.randomBytes(4).toString("hex")}.tmp`;await yt(c,s),await zt(c,r)}catch{}})}get(t){let e=this.entries.get(t);return!e||ft(t)!==e.mtime?null:e.data}set(t,e){this.entries.set(t,{data:e,mtime:ft(t)})}isValid(t){let e=this.entries.get(t);return e?ft(t)===e.mtime:!1}invalidate(t){this.entries.delete(t)}invalidateAll(){this.entries.clear()}pruneStale(t){for(let e of this.entries.keys())t.has(e)||this.entries.delete(e)}get size(){return this.entries.size}async flush(){await A.flush()}},ot=class{index=new Map;memoryCache=new Lt(so);baseDir;shardsDir;indexPath;constructor(t,e=process.cwd()){this.baseDir=M.default.resolve(e,Nt,`transform-${t}`),this.shardsDir=M.default.resolve(this.baseDir,ro),this.indexPath=M.default.resolve(this.baseDir,"index.json")}load(){if(process.env.BOLTDOCS_NO_CACHE!=="1"&&B.default.existsSync(this.indexPath))try{let t=B.default.readFileSync(this.indexPath,"utf-8");this.index=new Map(Object.entries(JSON.parse(t)))}catch{}}save(){if(process.env.BOLTDOCS_NO_CACHE==="1")return;let t=JSON.stringify(Object.fromEntries(this.index)),e=this.indexPath;A.add(async()=>{await xt(M.default.dirname(e),{recursive:!0}),await yt(e,t)})}async getMany(t){let e=new Map,r=[];for(let i of t){let s=this.memoryCache.get(i);s?e.set(i,s):this.index.has(i)&&r.push(i)}if(r.length>0){let i=await Promise.all(r.map(async s=>{let c=this.index.get(s),u=M.default.resolve(this.shardsDir,`${c}.gz`);try{let n=await io(u),l=U.default.gunzipSync(n).toString("utf-8");return this.memoryCache.set(s,l),{key:s,val:l}}catch{return null}}));for(let s of i)s&&e.set(s.key,s.val)}return e}get(t){let e=this.memoryCache.get(t);if(e)return e;let r=this.index.get(t);if(!r)return null;let i=M.default.resolve(this.shardsDir,`${r}.gz`);if(!B.default.existsSync(i))return null;try{let s=B.default.readFileSync(i),c=U.default.gunzipSync(s).toString("utf-8");return this.memoryCache.set(t,c),c}catch{return null}}set(t,e){let r=G.default.createHash("md5").update(e).digest("hex");this.index.set(t,r),this.memoryCache.set(t,e);let i=M.default.resolve(this.shardsDir,`${r}.gz`);A.add(async()=>{if(B.default.existsSync(i))return;await xt(this.shardsDir,{recursive:!0});let s=U.default.gzipSync(Buffer.from(e)),c=`${i}.${G.default.randomBytes(4).toString("hex")}.tmp`;await yt(c,s),await zt(c,i)})}get size(){return this.index.size}async flush(){await A.flush()}},Et=class{assetsDir;constructor(t=process.cwd()){this.assetsDir=M.default.resolve(t,Nt,no)}getFileHash(t){return G.default.createHash("md5").update(B.default.readFileSync(t)).digest("hex")}get(t,e){if(!B.default.existsSync(t))return null;let r=this.getFileHash(t),i=this.getCachedPath(t,`${e}-${r}`);return B.default.existsSync(i)?i:null}set(t,e,r){let i=this.getFileHash(t),s=this.getCachedPath(t,`${e}-${i}`);A.add(async()=>{await xt(this.assetsDir,{recursive:!0});let c=`${s}.${G.default.randomBytes(4).toString("hex")}.tmp`;await yt(c,r),await zt(c,s)})}getCachedPath(t,e){let r=M.default.extname(t),i=M.default.basename(t,r),s=e.replace(/[^a-z0-9]/gi,"-").toLowerCase();return M.default.join(this.assetsDir,`${i}.${s}${r}`)}clear(){B.default.existsSync(this.assetsDir)&&B.default.rmSync(this.assetsDir,{recursive:!0,force:!0})}async flush(){await A.flush()}}});m();var We=P(require("cac"));m();m();var Le=require("vite");m();var Oe=P(require("@vitejs/plugin-react")),je=P(require("@tailwindcss/vite"));m();var ye=require("vite");m();var se=P(require("fast-glob"));F();m();it();var L=new et({name:"routes"});function Gt(){L.invalidateAll()}function Wt(o){L.invalidate(o)}m();var V=P(require("path")),oe=P(require("github-slugger"));F();function ie(o,t,e,r){let i=decodeURIComponent(o),s=V.default.resolve(i),c=V.default.resolve(t),u=R(V.default.relative(c,s));if(u.startsWith("../")||u===".."||s.includes("\0"))throw new Error(`Security breach: File is outside of docs directory or contains null bytes: ${o}`);let{data:n,content:l}=ht(o),d=u.split("/"),g,C;if(r?.versions&&d.length>0){let k=d[0],Rt=r.versions.prefix||"",ut=r.versions.versions.find(Y=>{let kt=Rt+Y.path;return k===kt||k===Y.path});ut&&(C=ut.path,d=d.slice(1))}if(r?.i18n&&d.length>0){let k=d[0];r.i18n.locales[k]&&(g=k,d=d.slice(1))}let w;if(d.length>0){let k=d[0].match(/^\((.+)\)$/);k&&(w=k[1].toLowerCase(),d=d.slice(1))}let x=d.join("/"),p;n.permalink?p=n.permalink.startsWith("/")?n.permalink:`/${n.permalink}`:p=ee(x||"index.md");let a=e;C&&(a+="/"+C),g&&(a+="/"+g),w&&(a+="/"+w),a+=p==="/"?"":p,(!a||a==="")&&(a="/");let h=d[d.length-1],f=Z(h),b=Z(V.default.basename(o,V.default.extname(o))),v=n.sidebarPosition??gt(h),y=d.length>=2?d[0]:void 0,S=y?Z(y):void 0,D=d.length>=2&&/^index\.mdx?$/.test(f),H=new oe.default,X=[],Ve=/^(#{2,4})\s+(.+)$/gm;for(let k of l.matchAll(Ve)){let Rt=k[1].length,ut=k[2].replace(/\[([^\]]+)\]\([^\)]+\)/g,"$1").replace(/[_*`]/g,"").trim(),Y=Q(ut).trim(),kt=H.slug(Y);X.push({level:Rt,text:Y,id:kt})}let qe=n.title?Q(String(n.title)):b,Mt=n.description?Q(String(n.description)):"";!Mt&&l&&(Mt=jt(l.replace(/^#+.*$/gm,"").replace(/\[([^\]]+)\]\([^\)]+\)/g,"$1").replace(/[_*`]/g,"").replace(/\s+/g," ")).trim().slice(0,160));let Je=n.badge?Q(String(n.badge)):void 0,Yt=n.icon?String(n.icon):void 0,Ke=lo(l);return{route:{path:a,componentPath:o,filePath:u,title:qe,description:Mt,sidebarPosition:v,headings:X,locale:g,version:C,badge:Je,icon:Yt,tab:w,_content:Ke,_rawContent:l},relativeDir:S,isGroupIndex:D,inferredTab:w,groupMeta:D?{title:n.groupTitle||n.title||(S?tt(S):""),position:n.groupPosition??n.sidebarPosition??(y?gt(y):void 0),icon:Yt}:void 0,inferredGroupPosition:y?gt(y):void 0}}function lo(o){let t=o.replace(/^#+.*$/gm,"").replace(/\[([^\]]+)\]\([^\)]+\)/g,"$1").replace(/\{[^\}]+\}/g,"").replace(/[_*`]/g,"").replace(/\s+/g," ");return jt(t).trim()}m();function re(o){return o.sort((t,e)=>!t.group&&!e.group?ne(t,e):t.group?e.group?t.group!==e.group?po(t,e):ne(t,e):1:-1)}function ne(o,t){return o.sidebarPosition!==void 0&&t.sidebarPosition!==void 0?o.sidebarPosition-t.sidebarPosition:o.sidebarPosition!==void 0?-1:t.sidebarPosition!==void 0?1:o.title.localeCompare(t.title)}function po(o,t){return o.groupPosition!==void 0&&t.groupPosition!==void 0?o.groupPosition-t.groupPosition:o.groupPosition!==void 0?-1:t.groupPosition!==void 0?1:(o.groupTitle||o.group).localeCompare(t.groupTitle||t.group)}var Vt=null,nt=new Map;async function q(o,t,e="/docs",r=!0){let i=performance.now();L.load(),nt.clear(),(process.env.BOLTDOCS_FORCE_REPARSE==="true"||t?.i18n)&&L.invalidateAll();let s;!r&&Vt?s=Vt:(s=await(0,se.default)(["**/*.md","**/*.mdx"],{cwd:o,absolute:!0,suppressErrors:!0,followSymbolicLinks:!1}),Vt=s),L.pruneStale(new Set(s));let c=50,u=[],n=0;for(let p=0;p<s.length;p+=c){let a=s.slice(p,p+c),h=await Promise.all(a.map(async f=>{let b=L.get(f);if(b)return n++,b;let v=ie(f,o,e,t);return L.set(f,v),v}));u.push(...h),p+c<s.length&&await new Promise(f=>setImmediate(f))}L.save();let l=new Map,d=[];for(let p of u)if(p.isGroupIndex&&p.relativeDir&&d.push(p),p.relativeDir){let a=l.get(p.relativeDir);a?(a.position===void 0&&p.inferredGroupPosition!==void 0&&(a.position=p.inferredGroupPosition),!a.icon&&p.route.icon&&(a.icon=p.route.icon)):(a={title:tt(p.relativeDir),position:p.inferredGroupPosition,icon:p.route.icon},l.set(p.relativeDir,a))}for(let p of d){let a=l.get(p.relativeDir);p.groupMeta&&(a.title=p.groupMeta.title,p.groupMeta.position!==void 0&&(a.position=p.groupMeta.position),p.groupMeta.icon&&(a.icon=p.groupMeta.icon))}let g=new Array(u.length);for(let p=0;p<u.length;p++){let a=u[p],h=a.relativeDir,f=h?l.get(h):void 0;g[p]={...a.route,group:h,groupTitle:f?.title||(h?tt(h):void 0),groupPosition:f?.position,groupIcon:f?.icon}}let C=g;if(t?.i18n){let p=mo(g,t,e);C=[...g,...p]}let w=re(C),x=performance.now()-i;return console.log(`[boltdocs] Route generation: ${x.toFixed(2)}ms (${s.length} files, ${n} cache hits)`),w}function mo(o,t,e){let r=t.i18n.defaultLocale,i=Object.keys(t.i18n.locales),s=[],c=new Map,u=[];for(let n of o){let l=n.locale||r;c.has(l)||c.set(l,new Set),c.get(l).add(n.path),l===r&&u.push(n)}for(let n of i){let l=c.get(n)||new Set;for(let d of u){let g=uo(d.path,r,n,e,t);g!==d.path&&(l.has(g)||s.push({...d,path:g,locale:n}))}}return s}function uo(o,t,e,r,i){let s=`${o}:${e}`,c=nt.get(s);if(c)return c;let u=r;if(i?.versions){let g=i.versions.prefix||"";for(let C of i.versions.versions){let w=g+C.path;if(o.startsWith(`${r}/${w}`)){u+="/"+w;break}if(o.startsWith(`${r}/${C.path}`)){u+="/"+C.path;break}}}let n=o.substring(u.length),l=`/${t}`;if(n.startsWith(l+"/"))n="/"+e+"/"+n.substring(l.length+1);else if(n===l)n="/"+e;else if(n==="/"||n==="")n="/"+e;else{let g=n.startsWith("/")?"":"/";n="/"+e+g+n}let d=u+n;return nt.size>2e3&&nt.clear(),nt.set(s,d),d}var xe=require("vite-plugin-image-optimizer");m();var vt=P(require("path")),ae=P(require("fs")),ce=require("vite");var bt=["boltdocs.config.js","boltdocs.config.mjs","boltdocs.config.ts"];async function _(o,t=process.cwd()){let e=t,r={docsDir:vt.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 bt){let l=vt.default.resolve(e,n);if(ae.default.existsSync(l))try{let d=await(0,ce.loadConfigFromFile)({command:"serve",mode:"development"},l,e);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||{}},u=Object.fromEntries(Object.entries(c).filter(([n,l])=>l!==void 0));return u.navbar&&(u.navbar=u.navbar.map(n=>({label:n.label||n.text||"",href:n.href||n.link||n.to||""}))),{docsDir:vt.default.resolve(o),homePage:i.homePage,theme:{...r.theme,...u},i18n:i.i18n,versions:i.versions,siteUrl:i.siteUrl,plugins:i.plugins||[],integrations:i.integrations,robots:i.robots,vite:i.vite}}m();var I=P(require("fs")),O=P(require("path"));F();var ue=require("url"),ge=require("module");m();F();function le(o,t){let e=z(t.title),r=z(t.description);return o.replace(/<title>.*?<\/title>/,`<title>${e}</title>`).replace(/(<meta name="description" content=")[^"]*(")/,`$1${r}$2`).replace(/(<meta property="og:title" content=")[^"]*(")/,`$1${e}$2`).replace(/(<meta property="og:description" content=")[^"]*(")/,`$1${r}$2`).replace(/(<meta name="twitter:title" content=")[^"]*(")/,`$1${e}$2`).replace(/(<meta name="twitter:description" content=")[^"]*(")/,`$1${r}$2`)}m();F();function de(o,t){let e=t?.siteUrl?.replace(/\/$/,"")||"https://example.com",r=new Date().toISOString().split("T")[0],i=[{url:"/",priority:"1.0",changefreq:"daily"}];if(t?.i18n){let c=t.i18n.defaultLocale;for(let u of Object.keys(t.i18n.locales))u!==c&&i.push({url:`/${u}/`,priority:"1.0",changefreq:"daily"})}return`<?xml version="1.0" encoding="UTF-8"?>
3
3
  <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
4
4
  ${[...i,...o.map(c=>({url:c,priority:"0.8",changefreq:"weekly"}))].map(c=>` <url>
5
- <loc>${Ct(e)}${Ct(c.url)}</loc>
6
- <lastmod>${s}</lastmod>
5
+ <loc>${Ot(e)}${Ot(c.url)}</loc>
6
+ <lastmod>${r}</lastmod>
7
7
  <changefreq>${c.changefreq}</changefreq>
8
8
  <priority>${c.priority}</priority>
9
9
  </url>`).join(`
10
10
  `)}
11
- </urlset>`}m();function dt(o){if(typeof o.robots=="string")return o.robots;let t=o.siteUrl?.replace(/\/$/,"")||"",e=o.robots||{},s=e.rules||[{userAgent:"*",allow:"/"}],i=e.sitemaps||(t?[`${t}/sitemap.xml`]:[]),r="";for(let c of s){if(r+=`User-agent: ${c.userAgent}
12
- `,c.disallow){let p=Array.isArray(c.disallow)?c.disallow:[c.disallow];for(let n of p)r+=`Disallow: ${n}
13
- `}if(c.allow){let p=Array.isArray(c.allow)?c.allow:[c.allow];for(let n of p)r+=`Allow: ${n}
14
- `}r+=`
15
- `}for(let c of i)r+=`Sitemap: ${c}
16
- `;return r.trim()}var Ye=(0,oe.fileURLToPath)(w),te=F.default.dirname(Ye),ee=(0,ie.createRequire)(w);async function It(o){let{docsDir:t,docsDirName:e,outDir:s,config:i}=o,r=await tt(t,i),c=F.default.resolve(te,"../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=ee("module"),n=p.prototype.require;p.prototype.require=function(a,...g){return a==="virtual:boltdocs-layout"?{__esModule:!0,default:function(h){try{let v=n.apply(this,[F.default.resolve(te,"../client/index.js")]).DefaultLayout||(({children:P})=>P);return n.apply(this,["react"]).createElement(v,h)}catch{return h.children}}}:n.apply(this,[a,...g])};let{render:l}=ee(c);p.prototype.require=n;let d=F.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=St(i?.theme?.title,a.locale)||"Boltdocs",b=St(i?.theme?.description,a.locale)||"",h=`${a.title} | ${g}`,D=a.description||b,v={};v[`/${e}/${a.filePath}`]={default:()=>null};try{let $=await l({path:a.path,routes:r,config:i||{},docsDirName:e,modules:v,homePage:void 0}),P=Qt(u,{title:H(h),description:H(D)}).replace("<!--app-html-->",$).replace('<div id="root"></div>',`<div id="root">${$}</div>`),V=F.default.join(s,a.path);await j.default.promises.mkdir(V,{recursive:!0}),await j.default.promises.writeFile(F.default.join(V,"index.html"),P,"utf-8")}catch($){console.error(`[boltdocs] Error SSR rendering route ${a.path}:`,$&&($.stack||$))}}));let y=Yt(r.map(a=>a.path),i);j.default.writeFileSync(F.default.join(s,"sitemap.xml"),y,"utf-8");let x=dt(i);j.default.writeFileSync(F.default.join(s,"robots.txt"),x,"utf-8"),console.log(`[boltdocs] Generated ${r.length} static pages + sitemap.xml + robots.txt`);let{flushCache:S}=await Promise.resolve().then(()=>(Q(),Tt));await S()}T();var M=f(require("path"));m();T();var jt=f(require("path")),ne=f(require("fs"));function re(o,t){let e=o.homePage?`import HomePage from '${k(o.homePage)}';`:"",s=jt.default.resolve(process.cwd(),"index.css"),i=ne.default.existsSync(s)?"import './index.css';":"",r=o.homePage?"homePage: HomePage,":"",c=t?.plugins?.flatMap(x=>Object.entries(x.components||{}))||[],p=c.map(([x,S])=>`import * as _comp_${x} from '${k(S)}';
11
+ </urlset>`}m();function wt(o){if(typeof o.robots=="string")return o.robots;let t=o.siteUrl?.replace(/\/$/,"")||"",e=o.robots||{},r=e.rules||[{userAgent:"*",allow:"/"}],i=e.sitemaps||(t?[`${t}/sitemap.xml`]:[]),s="";for(let c of r){if(s+=`User-agent: ${c.userAgent}
12
+ `,c.disallow){let u=Array.isArray(c.disallow)?c.disallow:[c.disallow];for(let n of u)s+=`Disallow: ${n}
13
+ `}if(c.allow){let u=Array.isArray(c.allow)?c.allow:[c.allow];for(let n of u)s+=`Allow: ${n}
14
+ `}s+=`
15
+ `}for(let c of i)s+=`Sitemap: ${c}
16
+ `;return s.trim()}var go=(0,ue.fileURLToPath)($),pe=O.default.dirname(go),me=(0,ge.createRequire)($);async function qt(o){let{docsDir:t,docsDirName:e,outDir:r,config:i}=o,s=await q(t,i),c=["tsx","ts","jsx","js"].map(a=>O.default.resolve(t,`pages-external/index.${a}`)).find(a=>I.default.existsSync(a));if(c)try{let a=I.default.readFileSync(c,"utf-8"),h=a.match(/pages\s*:\s*{([^}]+)}/s);if(h){let f=h[1].split(",").map(b=>b.split(":")[0].trim().replace(/['"]/g,"")).filter(b=>b&&b.startsWith("/"));for(let b of f)s.some(v=>v.path===b)||s.push({path:b,title:b.slice(1).charAt(0).toUpperCase()+b.slice(2),filePath:"",componentPath:"",_content:""})}a.includes("homePage")&&!s.some(f=>f.path==="/")&&s.push({path:"/",title:"Home",filePath:"",componentPath:"",_content:""})}catch(a){console.warn("[boltdocs] Failed to parse external routes for SSG:",a)}let u=O.default.resolve(pe,"../client/ssr.js");if(!I.default.existsSync(u)){console.error("[boltdocs] SSR module not found at",u,"- Did you build the core package?");return}let n=me("module"),l=n.prototype.require;n.prototype.require=function(a,...h){return a.startsWith("virtual:boltdocs-")?a==="virtual:boltdocs-layout"?{__esModule:!0,default:function(b){try{let y=l.apply(this,[O.default.resolve(pe,"../client/index.js")]).DefaultLayout||(({children:D})=>D);return l.apply(this,["react"]).createElement(y,b)}catch{return b.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,...h])};let{render:d}=me(u);n.prototype.require=l;let g=O.default.join(r,"index.html");if(!I.default.existsSync(g)){console.warn("[boltdocs] No index.html found in outDir, skipping SSG.");return}let C=I.default.readFileSync(g,"utf-8");await Promise.all(s.map(async a=>{let h=Ht(i?.theme?.title,a.locale)||"Boltdocs",f=Ht(i?.theme?.description,a.locale)||"",b=`${a.title} | ${h}`,v=a.description||f,y={};y[`/${e}/${a.filePath}`]={default:()=>null};try{let S=await d({path:a.path,routes:s,config:i||{},docsDirName:e,modules:y,homePage:void 0}),D=le(C,{title:z(b),description:z(v)}).replace("<!--app-html-->",S).replace('<div id="root"></div>',`<div id="root">${S}</div>`),H=O.default.join(r,a.path);await I.default.promises.mkdir(H,{recursive:!0}),await I.default.promises.writeFile(O.default.join(H,"index.html"),D,"utf-8")}catch(S){console.error(`[boltdocs] Error SSR rendering route ${a.path}:`,S&&(S.stack||S))}}));let w=de(s.map(a=>a.path),i);I.default.writeFileSync(O.default.join(r,"sitemap.xml"),w,"utf-8");let x=wt(i);I.default.writeFileSync(O.default.join(r,"robots.txt"),x,"utf-8"),console.log(`[boltdocs] Generated ${s.length} static pages + sitemap.xml + robots.txt`);let{flushCache:p}=await Promise.resolve().then(()=>(it(),Ut));await p()}F();var T=P(require("path"));m();F();var rt=P(require("path")),Jt=P(require("fs"));function fe(o,t){let e=o.homePage?`import HomePage from '${R(o.homePage)}';`:"",r=rt.default.resolve(process.cwd(),"index.css"),i=Jt.default.existsSync(r)?"import './index.css';":"",s=o.homePage?"homePage: HomePage,":"",c=t?.plugins?.flatMap(x=>Object.entries(x.components||{}))||[],u=c.map(([x,p])=>`import * as _comp_${x} from '${R(p)}';
17
17
  const ${x} = _comp_${x}.default || _comp_${x}['${x}'] || _comp_${x};`).join(`
18
- `),n=c.map(([x])=>x).join(", "),l=jt.default.basename(o.docsDir||"docs"),d=Object.entries(t?.external||{}),u=d.map(([x,S],a)=>`import _ext_${a} from '${k(S)}';`).join(`
19
- `),y=d.length>0?`externalPages: { ${d.map(([x],S)=>`"${x}": _ext_${S}`).join(", ")} },`:"";return`
18
+ `),n=c.map(([x])=>x).join(", "),l=rt.default.basename(o.docsDir||"docs"),d=rt.default.resolve(process.cwd(),o.docsDir||"docs"),g=["tsx","ts","jsx","js"].map(x=>rt.default.resolve(d,`pages-external/index.${x}`)).find(x=>Jt.default.existsSync(x)),C=g?`import * as _external_module from '${R(g)}';`:"";return s=g?"homePage: _external_module.homePage || HomePage,":o.homePage?"homePage: HomePage,":"",`
20
19
  import { createBoltdocsApp as _createApp } from 'boltdocs/client';
21
20
  import _routes from 'virtual:boltdocs-routes';
22
21
  import _config from 'virtual:boltdocs-config';
23
22
  import _user_mdx_components from 'virtual:boltdocs-mdx-components';
24
23
  ${i}
25
24
  ${e}
26
- ${p}
27
25
  ${u}
26
+ ${C}
28
27
 
29
28
  _createApp({
30
29
  target: '#root',
@@ -33,11 +32,11 @@ _createApp({
33
32
  config: _config,
34
33
  modules: import.meta.glob('/${l}/**/*.{md,mdx}'),
35
34
  hot: import.meta.hot,
36
- ${r}
37
- ${y}
35
+ ${s}
36
+ ${g?"externalPages: _external_module.pages, externalLayout: _external_module.layout,":""}
38
37
  components: { ${n}${n?", ":""} ...(_user_mdx_components || {}) },
39
38
  });
40
- `}m();function pt(o){return`<!doctype html>
39
+ `}m();function Pt(o){return`<!doctype html>
41
40
  <html lang="en">
42
41
  <head>
43
42
  <meta charset="UTF-8" />
@@ -47,8 +46,8 @@ _createApp({
47
46
  <body>
48
47
  <div id="root"></div>
49
48
  </body>
50
- </html>`}function Ht(o,t){let e=t.theme,s=e?.title||"Boltdocs",i=e?.description||"",r=e?.favicon;!r&&e?.logo&&(typeof e.logo=="string"?r=e.logo:r=e.logo.light||e.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}">`,e?.ogImage?`<meta property="og:image" content="${e.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}">`,e?.ogImage?`<meta name="twitter:image" content="${e.ogImage}">`:"",'<meta name="generator" content="Boltdocs">'].filter(Boolean).join(`
51
- `),p=`
49
+ </html>`}function Kt(o,t){let e=t.theme,r=e?.title||"Boltdocs",i=e?.description||"",s=e?.favicon;!s&&e?.logo&&(typeof e.logo=="string"?s=e.logo:s=e.logo.light||e.logo.dark);let c=[s?`<link rel="icon" href="${s}">`:"",`<meta name="description" content="${i}">`,`<meta property="og:title" content="${r}">`,`<meta property="og:description" content="${i}">`,e?.ogImage?`<meta property="og:image" content="${e.ogImage}">`:"",'<meta property="og:type" content="website">','<meta name="twitter:card" content="summary_large_image">',`<meta name="twitter:title" content="${r}">`,`<meta name="twitter:description" content="${i}">`,e?.ogImage?`<meta name="twitter:image" content="${e.ogImage}">`:"",'<meta name="generator" content="Boltdocs">'].filter(Boolean).join(`
50
+ `),u=`
52
51
  <script>
53
52
  (function() {
54
53
  try {
@@ -64,12 +63,16 @@ _createApp({
64
63
  } catch (e) {}
65
64
  })();
66
65
  </script>
67
- `;return o.includes("<title>")?o=o.replace(/<title>.*?<\/title>/,`<title>${s}</title>`):o=o.replace("</head>",` <title>${s}</title>
66
+ `;return o.includes("<title>")?o=o.replace(/<title>.*?<\/title>/,`<title>${r}</title>`):o=o.replace("</head>",` <title>${r}</title>
68
67
  </head>`),o=o.replace("</head>",` ${c}
69
- ${p} </head>`),!o.includes("src/main")&&!o.includes("virtual:boltdocs-entry")&&(o=o.replace("</body>",` <script type="module">import "virtual:boltdocs-entry";</script>
70
- </body>`)),o}var Lt=f(require("fs"));m();function ce(o={},t){let e=M.default.resolve(process.cwd(),o.docsDir||"docs"),s=k(e),i=t,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,se.loadEnv)(l.mode,d,"");return Object.assign(process.env,u),i||(i=await O(e)),{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 h=dt(i);g.statusCode=200,g.setHeader("Content-Type","text/plain"),g.end(h);return}b()}),n.middlewares.use(async(a,g,b)=>{let h=a.url?.split("?")[0]||"/",D=a.headers.accept||"",v=h==="/"||h.startsWith("/docs")||i.i18n&&Object.keys(i.i18n.locales).some(P=>h.startsWith(`/${P}/docs`)||h===`/${P}`)||i.external&&Object.keys(i.external).some(P=>h.startsWith(P)),$=/\.(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(h);if(D.includes("text/html")&&!$&&v){let P=pt(i);P=Ht(P,i),P=await n.transformIndexHtml(a.url||"/",P),g.statusCode=200,g.setHeader("Content-Type","text/html"),g.end(P);return}b()});let l=lt.map(a=>M.default.resolve(process.cwd(),a)),d=["tsx","jsx"],u=d.map(a=>M.default.resolve(e,`layout.${a}`)),y=["tsx","ts","jsx","js"],x=y.map(a=>M.default.resolve(e,`mdx-components.${a}`));n.watcher.add([...l,...x,...u]);let S=async(a,g)=>{try{let b=k(a);if(lt.some(v=>b.endsWith(v))){n.restart();return}if(y.some(v=>b.endsWith(`mdx-components.${v}`))){let v=n.moduleGraph.getModuleById("\0virtual:boltdocs-mdx-components");v&&n.moduleGraph.invalidateModule(v),n.ws.send({type:"full-reload"});return}if(d.some(v=>b.endsWith(`layout.${v}`))){let v=n.moduleGraph.getModuleById("\0virtual:boltdocs-layout");v&&n.moduleGraph.invalidateModule(v),n.ws.send({type:"full-reload"});return}if(!b.startsWith(s)||!Nt(b))return;if(g==="add"||g==="unlink"){_t(),i=await O(e);let v=n.moduleGraph.getModuleById("\0virtual:boltdocs-config");v&&n.moduleGraph.invalidateModule(v),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 Ot(a);let h=await tt(e,i,"/docs",g!=="change"),D=n.moduleGraph.getModuleById("\0virtual:boltdocs-routes");D&&n.moduleGraph.invalidateModule(D),n.ws.send({type:"custom",event:"boltdocs:routes-update",data:h})}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")return"\0"+n},async load(n){if(n==="\0virtual:boltdocs-routes"){let l=await tt(e,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 re(o,i);if(n==="\0virtual:boltdocs-mdx-components"){let l=["tsx","ts","jsx","js"],d=null;for(let u of l){let y=M.default.resolve(e,`mdx-components.${u}`);if(Lt.default.existsSync(y)){d=y;break}}if(d){let u=k(d);return`import * as components from '${u}';
68
+ ${u} </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 he(o){let t=[];for(let e of o)if(t.push({id:e.path,title:e.title,content:e._content||"",url:e.path,display:e.groupTitle?`${e.groupTitle} > ${e.title}`:e.title,locale:e.locale,version:e.version}),e.headings)for(let r of e.headings)t.push({id:`${e.path}#${r.id}`,title:r.text,content:`${r.text} in ${e.title}`,url:`${e.path}#${r.id}`,display:`${e.title} > ${r.text}`,locale:e.locale,version:e.version});return t}var Xt=P(require("fs"));m();function ve(o={},t){let e=T.default.resolve(process.cwd(),o.docsDir||"docs"),r=R(e),i=t,s,c=!1,u=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,ye.loadEnv)(l.mode,d,"");return Object.assign(process.env,g),i||(i=await _(e)),{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){s=n},configureServer(n){n.middlewares.use((a,h,f)=>{if(a.url==="/robots.txt"){let b=wt(i);h.statusCode=200,h.setHeader("Content-Type","text/plain"),h.end(b);return}f()}),n.middlewares.use(async(a,h,f)=>{let b=a.url?.split("?")[0]||"/",v=a.headers.accept||"",y=b==="/"||b.startsWith("/docs")||i.i18n&&Object.keys(i.i18n.locales).some(D=>b.startsWith(`/${D}/docs`)||b===`/${D}`)||!0,S=/\.(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(b);if(v.includes("text/html")&&!S&&y){let D=Pt(i);D=Kt(D,i),D=await n.transformIndexHtml(a.url||"/",D),h.statusCode=200,h.setHeader("Content-Type","text/html"),h.end(D);return}f()});let l=bt.map(a=>T.default.resolve(process.cwd(),a)),d=["tsx","jsx"],g=d.map(a=>T.default.resolve(e,`layout.${a}`)),C=["tsx","ts","jsx","js"],w=C.map(a=>T.default.resolve(e,`mdx-components.${a}`)),x=C.map(a=>T.default.resolve(e,`pages-external/index.${a}`));n.watcher.add([...l,...w,...g,...x]);let p=async(a,h)=>{try{let f=R(a);if(bt.some(y=>f.endsWith(y))){n.restart();return}if(C.some(y=>f.endsWith(`mdx-components.${y}`))){let y=n.moduleGraph.getModuleById("\0virtual:boltdocs-mdx-components");y&&n.moduleGraph.invalidateModule(y),n.ws.send({type:"full-reload"});return}if(d.some(y=>f.endsWith(`layout.${y}`))){let y=n.moduleGraph.getModuleById("\0virtual:boltdocs-layout");y&&n.moduleGraph.invalidateModule(y),n.ws.send({type:"full-reload"});return}if(f.includes("/pages-external/")||f.includes("\\pages-external\\")){let y=n.moduleGraph.getModuleById("\0virtual:boltdocs-entry");y&&n.moduleGraph.invalidateModule(y),n.ws.send({type:"full-reload"});return}if(!f.startsWith(r)||!te(f))return;if(h==="add"||h==="unlink"){Gt(),i=await _(e);let y=n.moduleGraph.getModuleById("\0virtual:boltdocs-config");y&&n.moduleGraph.invalidateModule(y),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 Wt(a);let b=await q(e,i,"/docs",h!=="change"),v=n.moduleGraph.getModuleById("\0virtual:boltdocs-routes");v&&n.moduleGraph.invalidateModule(v),n.ws.send({type:"custom",event:"boltdocs:routes-update",data:b})}catch(f){console.error(`[boltdocs] HMR error during ${h} event:`,f)}};n.watcher.on("add",a=>p(a,"add")),n.watcher.on("unlink",a=>p(a,"unlink")),n.watcher.on("change",a=>p(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 q(e,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 fe(o,i);if(n==="\0virtual:boltdocs-mdx-components"){let l=["tsx","ts","jsx","js"],d=null;for(let g of l){let C=T.default.resolve(e,`mdx-components.${g}`);if(Xt.default.existsSync(C)){d=C;break}}if(d){let g=R(d);return`import * as components from '${g}';
71
70
  const mdxComponents = components.default || components;
72
71
  export default mdxComponents;
73
- export * from '${u}';`}return"export default {};"}if(n==="\0virtual:boltdocs-layout"){let l=["tsx","jsx"],d=null;for(let u of l){let y=M.default.resolve(e,`layout.${u}`);if(Lt.default.existsSync(y)){d=y;break}}return d?`import UserLayout from '${k(d)}';
72
+ export * from '${g}';`}return"export default {};"}if(n==="\0virtual:boltdocs-layout"){let l=["tsx","jsx"],d=null;for(let g of l){let C=T.default.resolve(e,`layout.${g}`);if(Xt.default.existsSync(C)){d=C;break}}return d?`import UserLayout from '${R(d)}';
74
73
  export default UserLayout;`:`import { DefaultLayout } from 'boltdocs/client';
75
- export default DefaultLayout;`}},transformIndexHtml:{order:"pre",handler(n){return Ht(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(e||"docs");await It({docsDir:e,docsDirName:l,outDir:n,config:i});let{flushCache:d}=await Promise.resolve().then(()=>(Q(),Tt));await d()}},(0,ae.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 he=f(require("@mdx-js/rollup")),ye=f(require("remark-gfm")),xe=f(require("remark-frontmatter")),ve=f(require("rehype-slug")),be=f(require("crypto"));m();Q();var le="v3",N=new Z("mdx");m();var pe=require("unist-util-visit");m();var de=require("shiki"),mt=null;async function ut(o){if(mt)return mt;let t=typeof o=="object"?[o.light,o.dark]:[o??"github-dark"];return["github-light","github-dark"].forEach(e=>{t.includes(e)||t.push(e)}),mt=await(0,de.createHighlighter)({themes:t,langs:["tsx","jsx","ts","js","json","md","mdx","css","html","bash","sh","yaml","yml"]}),mt}function me(o){return async t=>{let e=o?.theme?.codeTheme??{light:"github-light",dark:"github-dark"},s=await ut(e);(0,pe.visit)(t,["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 e=="object"?{themes:{light:e.light,dark:e.dark},lang:"tsx"}:{theme:e,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 ue=require("unist-util-visit");function ge(o){return async t=>{let e=o?.theme?.codeTheme||{light:"github-light",dark:"github-dark"},s=await ut(e);(0,ue.visit)(t,"element",i=>{if(i.tagName==="pre"&&i.children?.[0]?.tagName==="code"){let r=i.children[0],p=(r.properties?.className||[]).find(y=>y.startsWith("language-")),n=p?p.slice(9):"text",l=r.children[0]?.value||"",d={lang:n};typeof e=="object"?d.themes={light:e.light,dark:e.dark}:d.theme=e;let u=s.codeToHtml(l,d);i.properties.dataHighlighted="true",i.properties.highlightedHtml=u,i.children=[]}})}}var fe=!1,gt=0,et=0;function we(o,t=he.default){let e=o?.plugins?.flatMap(r=>r.remarkPlugins||[])||[],s=o?.plugins?.flatMap(r=>r.rehypePlugins||[])||[],i=t({remarkPlugins:[ye.default,xe.default,[me,o],...e],rehypePlugins:[ve.default,[ge,o],...s],jsxRuntime:"automatic",providerImportSource:"@mdx-js/react"});return{...i,name:"vite-plugin-boltdocs-mdx",async buildStart(){gt=0,et=0,fe||(N.load(),fe=!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}`),et++;let n=be.default.createHash("md5").update(r).digest("hex"),l=`${c}:${n}:${le}`,d=N.get(l);if(d)return gt++,{code:d,map:null};let u=await i.transform.call(this,r,c,p);return u&&typeof u=="object"&&u.code&&N.set(l,u.code),u},async buildEnd(){et>0&&console.log(`[boltdocs] MDX Cache Performance: ${gt}/${et} hits (${Math.round(gt/et*100)||0}%)`),N.save(),await N.flush(),i.buildEnd&&await i.buildEnd.call(this)}}}async function $e(o){let t=o?.docsDir||"docs",e=await O(t),s={...o,homePage:o?.homePage||e.homePage};return[...ce(s,e),we(e)]}async function ft(o,t="development"){let e=await O("docs",o);return{root:o,mode:t,plugins:[(0,Pe.default)(),(0,Ce.default)(),await $e({docsDir:e.docsDir,homePage:e.homePage})],...e.vite}}var Se=f(require("path")),ot=f(require("fs"));async function Be(o=process.cwd()){try{let t=await ft(o,"development"),e=await(0,U.createServer)(t);await e.listen(),e.printUrls(),e.bindCLIShortcuts({print:!0})}catch(t){console.error("[boltdocs] Failed to start dev server:",t),process.exit(1)}}async function De(o=process.cwd()){let t=!1,e=Se.default.resolve(o,"index.html");try{if(!ot.default.existsSync(e)){let i=await O("docs",o);ot.default.writeFileSync(e,pt(i),"utf-8"),t=!0}let s=await ft(o,"production");await(0,U.build)(s),console.log("[boltdocs] Build completed successfully.")}catch(s){console.error("[boltdocs] Build failed:",s),process.exit(1)}finally{t&&ot.default.existsSync(e)&&ot.default.unlinkSync(e)}}async function Re(o=process.cwd()){try{let t=await ft(o,"production");(await(0,U.preview)(t)).printUrls()}catch(t){console.error("[boltdocs] Failed to start preview server:",t),process.exit(1)}}var G=(0,ke.default)("boltdocs");G.command("[root]","Start development server").alias("dev").action(Be);G.command("build [root]","Build for production").action(De);G.command("preview [root]","Preview production build").action(Re);G.help();G.version("2.0.0");G.parse();
74
+ export default DefaultLayout;`}if(n==="\0virtual:boltdocs-search"){let l=await q(e,i),d=he(l);return`export default ${JSON.stringify(d,null,2)};`}},transformIndexHtml:{order:"pre",handler(n){return Kt(n,i)}},async closeBundle(){if(!c)return;let n=s?.build?.outDir?T.default.resolve(s.root,s.build.outDir):T.default.resolve(process.cwd(),"dist"),l=T.default.basename(e||"docs");await qt({docsDir:e,docsDirName:l,outDir:n,config:i});let{flushCache:d}=await Promise.resolve().then(()=>(it(),Ut));await d()}},(0,xe.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"}]}}),...u.filter(n=>!!n)]}m();var Re=P(require("@mdx-js/rollup")),ke=P(require("remark-gfm")),_e=P(require("remark-frontmatter")),Te=P(require("rehype-slug")),Fe=P(require("crypto"));m();it();var be="v4",J=new ot("mdx");m();var Pe=require("unist-util-visit");m();var we=require("shiki"),$t=null;async function Ct(o){if($t)return $t;let t=typeof o=="object"?[o.light,o.dark]:[o??"github-dark"];return["github-light","github-dark"].forEach(e=>{t.includes(e)||t.push(e)}),$t=await(0,we.createHighlighter)({themes:t,langs:["tsx","jsx","ts","js","json","md","mdx","css","html","bash","sh","yaml","yml"]}),$t}function $e(o){return async t=>{let e=o?.theme?.codeTheme??{light:"github-light",dark:"github-dark"},r=await Ct(e);(0,Pe.visit)(t,["mdxJsxFlowElement","mdxJsxTextElement"],i=>{if(i.name!=="ComponentPreview")return;let s=i.attributes?.find(l=>l.name==="code"),c="";if(s){if(typeof s.value=="string")c=s.value;else if(s.value?.type==="mdxJsxAttributeValueExpression"){let l=s.value.value??"";c=l.match(/^[`'"]([\s\S]+)[`'"]$/)?.[1]??l}}if(!c)return;let u=typeof e=="object"?{themes:{light:e.light,dark:e.dark},lang:"tsx"}:{theme:e,lang:"tsx"},n=r.codeToHtml(c,u);i.attributes=(i.attributes??[]).filter(l=>l.name!=="highlightedHtml"),i.attributes.push({type:"mdxJsxAttribute",name:"highlightedHtml",value:n})})}}m();var Ce=require("unist-util-visit");function Se(o){return async t=>{let e=o?.theme?.codeTheme||{light:"github-light",dark:"github-dark"},r=await Ct(e);(0,Ce.visit)(t,"element",i=>{if(i.tagName==="pre"&&i.children?.[0]?.tagName==="code"){let s=i.children[0],u=(s.properties?.className||[]).find(p=>p.startsWith("language-")),n=u?u.slice(9):"text",l=s.children[0]?.value||"",g=(s.data?.meta||s.properties?.metastring||"").match(/title\s*=\s*"([^"]*)"/),C=g?g[1]:void 0,w={lang:n};typeof e=="object"?w.themes={light:e.light,dark:e.dark}:w.theme=e;let x=r.codeToHtml(l,w);i.properties.dataHighlighted="true",i.properties.highlightedHtml=x,i.properties["data-lang"]=n,C&&(i.properties.title=C),i.children=[]}})}}m();var De=require("unist-util-visit");function Be(){return o=>{(0,De.visit)(o,"code",t=>{if(t.data=t.data||{},t.data.hProperties=t.data.hProperties||{},t.lang&&(t.data.hProperties["data-lang"]=t.lang),!t.meta)return;let e=t.meta,r=e.match(/title\s*=\s*"([^"]*)"/);r&&(t.data.hProperties.title=r[1]),t.data.hProperties.metastring=e})}}var Me=!1,St=0,st=0;function Ie(o,t=Re.default){let e=o?.plugins?.flatMap(s=>s.remarkPlugins||[])||[],r=o?.plugins?.flatMap(s=>s.rehypePlugins||[])||[],i=t({remarkPlugins:[ke.default,_e.default,Be,[$e,o],...e],rehypePlugins:[Te.default,[Se,o],...r],jsxRuntime:"automatic",providerImportSource:"@mdx-js/react"});return{...i,name:"vite-plugin-boltdocs-mdx",async buildStart(){St=0,st=0,Me||(J.load(),Me=!0),i.buildStart&&await i.buildStart.call(this)},async transform(s,c,u){if(!c.endsWith(".md")&&!c.endsWith(".mdx"))return i.transform?.call(this,s,c,u);console.log(`[boltdocs] Transforming MDX: ${c}`),st++;let n=Fe.default.createHash("md5").update(s).digest("hex"),l=`${c}:${n}:${be}`,d=J.get(l);if(d)return St++,{code:d,map:null};let g=await i.transform.call(this,s,c,u);return g&&typeof g=="object"&&g.code&&J.set(l,g.code),g},async buildEnd(){st>0&&console.log(`[boltdocs] MDX Cache Performance: ${St}/${st} hits (${Math.round(St/st*100)||0}%)`),J.save(),await J.flush(),i.buildEnd&&await i.buildEnd.call(this)}}}async function He(o){let t=o?.docsDir||"docs",e=await _(t),r={...o,homePage:o?.homePage||e.homePage};return[...ve(r,e),Ie(e)]}async function at(o,t="development"){let e=await _("docs",o);return{root:o,mode:t,plugins:[(0,Oe.default)(),(0,je.default)(),await He({docsDir:e.docsDir,homePage:e.homePage})],...e.vite}}var dt={};Zt(dt,{colors:()=>K,error:()=>j,formatLog:()=>Dt,info:()=>ct,success:()=>lt});m();var K={reset:"\x1B[0m",bold:"\x1B[1m",red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",cyan:"\x1B[36m",gray:"\x1B[90m"};function Dt(o,t=""){return`${t}${K.bold}[boltdocs]${K.reset} ${o}${K.reset}`}function ct(o){console.log(Dt(o))}function j(o,t){console.error(Dt(o,K.red)),t&&console.error(t)}function lt(o){console.log(Dt(o,K.green))}async function Ae(o=process.cwd()){try{let t=await at(o,"development"),e=await(0,Le.createServer)(t);await e.listen(),e.printUrls(),e.bindCLIShortcuts({print:!0})}catch(t){j("Failed to start dev server:",t),process.exit(1)}}m();var Bt=require("vite");var Ee=P(require("path")),pt=P(require("fs"));async function ze(o=process.cwd()){let t=!1,e=Ee.default.resolve(o,"index.html");try{if(!pt.default.existsSync(e)){let i=await _("docs",o);pt.default.writeFileSync(e,Pt(i),"utf-8"),t=!0}let r=await at(o,"production");await(0,Bt.build)(r),lt("Build completed successfully.")}catch(r){j("Build failed:",r),process.exit(1)}finally{t&&pt.default.existsSync(e)&&pt.default.unlinkSync(e)}}async function Ne(o=process.cwd()){try{let t=await at(o,"production");(await(0,Bt.preview)(t)).printUrls()}catch(t){j("Failed to start preview server:",t),process.exit(1)}}m();var E=P(require("path")),mt=P(require("fs")),Ue=P(require("fast-glob"));F();async function Ge(o=process.cwd()){let{colors:t}=dt;ct(`${t.bold}Running documentation health check...${t.reset}
75
+ `);let e=performance.now();try{let r=await _("docs",o),i=E.default.resolve(o,"docs");mt.default.existsSync(i)||(j(`Documentation directory not found at ${i}`),process.exit(1));let s=await(0,Ue.default)(["**/*.md","**/*.mdx"],{cwd:i,absolute:!0,suppressErrors:!0}),c=0,u=0,n=0,l=new Map,d=(w,x)=>{let p=E.default.relative(i,w),a=l.get(p);a||(a=[],l.set(p,a)),a.push(x),x.level==="high"?c++:x.level==="warning"?u++:x.level==="low"&&n++},g="/docs";for(let w of s){let{data:x,content:p}=ht(w);x.title||d(w,{level:"warning",message:'Missing "title" in frontmatter.',suggestion:"Add `title: Your Title` to the YAML frontmatter at the top of the file."}),x.description||d(w,{level:"low",message:'Missing "description" in frontmatter.',suggestion:"Adding a description helps with SEO and search previews."});let a=/\[.*?\]\((.*?)\)/g,h=/<a\s+[^>]*href=["']([^"']+)["'][^>]*>/g,f=[...p.matchAll(a),...p.matchAll(h)];for(let b of f){let v=b[1];if(!v||v.startsWith("http")||v.startsWith("https")||v.startsWith("#")||v.startsWith("mailto:")||v.startsWith("tel:")||(v=v.split("#")[0],!v))continue;let y;if(v.startsWith("/")){let H=v;(v.startsWith(g+"/")||v===g)&&(H=v.substring(g.length)),y=E.default.join(i,H)}else y=E.default.resolve(E.default.dirname(w),v);let S=["",".md",".mdx","/index.md","/index.mdx"],D=!1;for(let H of S){let X=y+H;if(mt.default.existsSync(X)&&mt.default.statSync(X).isFile()){D=!0;break}}D||d(w,{level:"high",message:`Broken internal link: "${v}"`,suggestion:`Ensure the file exists at "${y}". If it's a directory, ensure it has an "index.md" or "index.mdx".`})}}if(r.i18n){let{defaultLocale:w,locales:x}=r.i18n,p=Object.keys(x).filter(a=>a!==w);for(let a of s){let f=R(E.default.relative(i,a)).split("/");if(f[0]===w){let b=f.slice(1).join("/");for(let v of p){let y=[v,...f.slice(1)],S=E.default.join(i,...y);mt.default.existsSync(S)||d(a,{level:"warning",message:`Missing translation for locale "${v}"`,suggestion:`Create a translated version of this file at "${v}/${b}".`})}}}}if(l.size===0)lt(`All documentation files are healthy!
76
+ `);else{for(let[w,x]of l.entries()){console.log(`\u{1F4C4} ${t.bold}${w}${t.reset}`);let p=x.sort((a,h)=>{let f={high:1,warning:2,low:3};return f[a.level]-f[h.level]});for(let a of p){let h="",f="";a.level==="high"?(h="\u274C",f=t.red):a.level==="warning"?(h="\u26A0\uFE0F",f=t.yellow):(h="\u2139\uFE0F",f=t.cyan),console.log(` ${f}${h} ${a.level.toUpperCase()}:${t.reset} ${a.message}`),a.suggestion&&console.log(` ${t.gray}\u{1F4A1} Suggestion: ${a.suggestion}${t.reset}`)}console.log("")}console.log(`${t.bold}Summary:${t.reset}`),console.log(` ${t.red}${c} high-level errors${t.reset}`),console.log(` ${t.yellow}${u} warnings${t.reset}`),console.log(` ${t.cyan}${n} minor improvements${t.reset}
77
+ `),c>0&&j("HIGH ERROR: Fix these to ensure your documentation builds correctly."),(u>0||n>0)&&ct("TIP: Address warnings and suggestions for premium quality docs."),console.log("")}let C=performance.now()-e;ct(`Finished in ${C.toFixed(2)}ms
78
+ `),c>0&&process.exit(1)}catch(r){j("Failed to run doctor check:",r),process.exit(1)}}var N=(0,We.default)("boltdocs");N.command("[root]","Start development server").alias("dev").action(Ae);N.command("build [root]","Build for production").action(ze);N.command("preview [root]","Preview production build").action(Ne);N.command("doctor [root]","Check documentation health").action(Ge);N.help();N.version("2.0.0");N.parse();
@@ -1,2 +1,6 @@
1
1
  #!/usr/bin/env node
2
- import{b as a,d as l,e as b,g as c,h as y}from"../chunk-5D6XPYQ3.mjs";import{a as u,b as w,c as i}from"../chunk-Q3MLYTIQ.mjs";import{createServer as S,build as h,preview as A}from"vite";import C from"path";import n from"fs";async function d(o=process.cwd()){try{let e=await c(o,"development"),t=await S(e);await t.listen(),t.printUrls(),t.bindCLIShortcuts({print:!0})}catch(e){console.error("[boltdocs] Failed to start dev server:",e),process.exit(1)}}async function p(o=process.cwd()){let e=!1,t=C.resolve(o,"index.html");try{if(!n.existsSync(t)){let f=await a("docs",o);n.writeFileSync(t,l(f),"utf-8"),e=!0}let s=await c(o,"production");await h(s),console.log("[boltdocs] Build completed successfully.")}catch(s){console.error("[boltdocs] Build failed:",s),process.exit(1)}finally{e&&n.existsSync(t)&&n.unlinkSync(t)}}async function v(o=process.cwd()){try{let e=await c(o,"production");(await A(e)).printUrls()}catch(e){console.error("[boltdocs] Failed to start preview server:",e),process.exit(1)}}var m=u(()=>{"use strict";i();y();b()});import B from"cac";var F=w(()=>{i();m();var r=B("boltdocs");r.command("[root]","Start development server").alias("dev").action(d);r.command("build [root]","Build for production").action(p);r.command("preview [root]","Preview production build").action(v);r.help();r.version("2.0.0");r.parse()});export default F();
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
+ `);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
+ `);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
+ `),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
6
+ `),k>0&&process.exit(1)}catch(g){a("Failed to run doctor check:",g),process.exit(1)}}var Z=v(()=>{"use strict";n();ie();se();C()});var _=v(()=>{"use strict";n();J();Q();Z();C()});import me from"cac";var de=te(()=>{n();_();var p=me("boltdocs");p.command("[root]","Start development server").alias("dev").action(q);p.command("build [root]","Build for production").action(K);p.command("preview [root]","Preview production build").action(N);p.command("doctor [root]","Check documentation health").action(X);p.help();p.version("2.0.0");p.parse()});export default de();
@@ -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,29 +1,28 @@
1
- "use strict";var ke=Object.create;var et=Object.defineProperty;var Me=Object.getOwnPropertyDescriptor;var Te=Object.getOwnPropertyNames;var _e=Object.getPrototypeOf,Oe=Object.prototype.hasOwnProperty;var ht=(o,t)=>()=>(o&&(t=o(o=0)),t);var Ht=(o,t)=>{for(var e in t)et(o,e,{get:t[e],enumerable:!0})},Lt=(o,t,e,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Te(t))!Oe.call(o,i)&&i!==e&&et(o,i,{get:()=>t[i],enumerable:!(s=Me(t,i))||s.enumerable});return o};var v=(o,t,e)=>(e=o!=null?ke(_e(o)):{},Lt(t||!o||!o.__esModule?et(e,"default",{value:o,enumerable:!0}):e,o)),Fe=o=>Lt(et({},"__esModule",{value:!0}),o);var Ie,P,m=ht(()=>{"use strict";Ie=()=>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=Ie()});function k(o){return o.replace(/\\/g,"/")}function V(o){return o.replace(/^\d+\./,"")}function ot(o){let t=o.match(/^(\d+)\./);return t?parseInt(t[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 t=yt.default.readFileSync(o,"utf-8");try{let{data:e,content:s}=(0,Et.default)(t);return{data:e,content:s}}catch{return{data:{},content:t}}}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 e=o.split("/").map(V).join("/").replace(/\/$/,"");return e=e.replace(/\.mdx?$/,""),(e==="index"||e.endsWith("/index"))&&(e=e.replace(/index$/,"")),e.startsWith("/")||(e="/"+e),e.length>1&&e.endsWith("/")&&(e=e.slice(0,-1)),e}function W(o){return xt.default.sanitize(o)}function vt(o){return xt.default.sanitize(o,{ALLOWED_TAGS:[],KEEP_CONTENT:!0})}function q(o){return o.charAt(0).toUpperCase()+o.slice(1)}function Pt(o,t){return o?typeof o=="string"?o:t&&o[t]?o[t]: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 Dt={};Ht(Dt,{AssetCache:()=>$t,FileCache:()=>J,TransformCache:()=>K,flushCache:()=>Ae});async function Ae(){await F.flush()}var C,B,E,L,z,nt,je,rt,St,to,Bt,He,Le,Ee,ze,wt,Ct,F,J,K,$t,X=ht(()=>{"use strict";m();C=v(require("fs")),B=v(require("path")),E=v(require("crypto")),L=v(require("zlib")),z=require("util");T();nt=(0,z.promisify)(C.default.writeFile),je=(0,z.promisify)(C.default.readFile),rt=(0,z.promisify)(C.default.mkdir),St=(0,z.promisify)(C.default.rename),to=(0,z.promisify)(C.default.unlink),Bt=process.env.BOLTDOCS_CACHE_DIR||".boltdocs",He="assets",Le="shards",Ee=parseInt(process.env.BOLTDOCS_CACHE_LRU_LIMIT||"2000",10),ze=process.env.BOLTDOCS_CACHE_COMPRESS!=="0",wt=class{constructor(t){this.limit=t}cache=new Map;get(t){let e=this.cache.get(t);return e!==void 0&&(this.cache.delete(t),this.cache.set(t,e)),e}set(t,e){if(this.cache.has(t))this.cache.delete(t);else if(this.cache.size>=this.limit){let s=this.cache.keys().next().value;s!==void 0&&this.cache.delete(s)}this.cache.set(t,e)}get size(){return this.cache.size}clear(){this.cache.clear()}},Ct=class{queue=Promise.resolve();pendingCount=0;add(t){this.pendingCount++,this.queue=this.queue.then(t).finally(()=>{this.pendingCount--})}async flush(){await this.queue}get pending(){return this.pendingCount}},F=new Ct,J=class{entries=new Map;cachePath=null;compress;constructor(t={}){if(this.compress=t.compress!==void 0?t.compress:ze,t.name){let e=t.root||process.cwd(),s=this.compress?"json.gz":"json";this.cachePath=B.default.resolve(e,Bt,`${t.name}.${s}`)}}load(){if(process.env.BOLTDOCS_NO_CACHE!=="1"&&!(!this.cachePath||!C.default.existsSync(this.cachePath)))try{let t=C.default.readFileSync(this.cachePath);this.cachePath.endsWith(".gz")&&(t=L.default.gunzipSync(t));let e=JSON.parse(t.toString("utf-8"));this.entries=new Map(Object.entries(e))}catch{}}save(){if(process.env.BOLTDOCS_NO_CACHE==="1"||!this.cachePath)return;let t=Object.fromEntries(this.entries),e=JSON.stringify(t),s=this.cachePath,i=this.compress;F.add(async()=>{try{await rt(B.default.dirname(s),{recursive:!0});let r=Buffer.from(e);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(t){let e=this.entries.get(t);return!e||it(t)!==e.mtime?null:e.data}set(t,e){this.entries.set(t,{data:e,mtime:it(t)})}isValid(t){let e=this.entries.get(t);return e?it(t)===e.mtime:!1}invalidate(t){this.entries.delete(t)}invalidateAll(){this.entries.clear()}pruneStale(t){for(let e of this.entries.keys())t.has(e)||this.entries.delete(e)}get size(){return this.entries.size}async flush(){await F.flush()}},K=class{index=new Map;memoryCache=new wt(Ee);baseDir;shardsDir;indexPath;constructor(t,e=process.cwd()){this.baseDir=B.default.resolve(e,Bt,`transform-${t}`),this.shardsDir=B.default.resolve(this.baseDir,Le),this.indexPath=B.default.resolve(this.baseDir,"index.json")}load(){if(process.env.BOLTDOCS_NO_CACHE!=="1"&&C.default.existsSync(this.indexPath))try{let t=C.default.readFileSync(this.indexPath,"utf-8");this.index=new Map(Object.entries(JSON.parse(t)))}catch{}}save(){if(process.env.BOLTDOCS_NO_CACHE==="1")return;let t=JSON.stringify(Object.fromEntries(this.index)),e=this.indexPath;F.add(async()=>{await rt(B.default.dirname(e),{recursive:!0}),await nt(e,t)})}async getMany(t){let e=new Map,s=[];for(let i of t){let r=this.memoryCache.get(i);r?e.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=B.default.resolve(this.shardsDir,`${c}.gz`);try{let n=await je(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&&e.set(r.key,r.val)}return e}get(t){let e=this.memoryCache.get(t);if(e)return e;let s=this.index.get(t);if(!s)return null;let i=B.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(t,c),c}catch{return null}}set(t,e){let s=E.default.createHash("md5").update(e).digest("hex");this.index.set(t,s),this.memoryCache.set(t,e);let i=B.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(e)),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(t=process.cwd()){this.assetsDir=B.default.resolve(t,Bt,He)}getFileHash(t){return E.default.createHash("md5").update(C.default.readFileSync(t)).digest("hex")}get(t,e){if(!C.default.existsSync(t))return null;let s=this.getFileHash(t),i=this.getCachedPath(t,`${e}-${s}`);return C.default.existsSync(i)?i:null}set(t,e,s){let i=this.getFileHash(t),r=this.getCachedPath(t,`${e}-${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(t,e){let s=B.default.extname(t),i=B.default.basename(t,s),r=e.replace(/[^a-z0-9]/gi,"-").toLowerCase();return B.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 Je={};Ht(Je,{createViteConfig:()=>qe,default:()=>Ft,defineConfig:()=>Xt,generateStaticPages:()=>lt,resolveConfig:()=>I});module.exports=Fe(Je);m();var we=v(require("@vitejs/plugin-react")),Ce=v(require("@tailwindcss/vite"));m();var se=require("vite");m();var qt=v(require("fast-glob"));T();m();X();var _=new J({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,t,e,s){let i=decodeURIComponent(o),r=A.default.resolve(i),c=A.default.resolve(t),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(G=>{let ft=gt+G.path;return R===ft||R===G.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=e;h&&(g+="/"+h),u&&(g+="/"+u),g+=a==="/"?"":a,(!g||g==="")&&(g="/");let b=d[d.length-1],f=V(b),D=V(A.default.basename(o,A.default.extname(o))),x=n.sidebarPosition??ot(b),$=d.length>=2?d[0]:void 0,w=$?V($):void 0,U=d.length>=2&&/^index\.mdx?$/.test(f),$e=new Ut.default,It=[],Se=/^(#{2,4})\s+(.+)$/gm;for(let R of l.matchAll(Se)){let gt=R[1].length,tt=R[2].replace(/\[([^\]]+)\]\([^\)]+\)/g,"$1").replace(/[_*`]/g,"").trim(),G=W(tt).trim(),ft=$e.slug(G);It.push({level:gt,text:G,id:ft})}let Be=n.title?W(String(n.title)):D,ut=n.description?W(String(n.description)):"";!ut&&l&&(ut=vt(l.replace(/^#+.*$/gm,"").replace(/\[([^\]]+)\]\([^\)]+\)/g,"$1").replace(/[_*`]/g,"").replace(/\s+/g," ")).trim().slice(0,160));let De=n.badge?W(String(n.badge)):void 0,jt=n.icon?String(n.icon):void 0,Re=Ne(l);return{route:{path:g,componentPath:o,filePath:p,title:Be,description:ut,sidebarPosition:x,headings:It,locale:u,version:h,badge:De,icon:jt,tab:y,_content:Re,_rawContent:l},relativeDir:w,isGroupIndex:U,inferredTab:y,groupMeta:U?{title:n.groupTitle||n.title||(w?q(w):""),position:n.groupPosition??n.sidebarPosition??($?ot($):void 0),icon:jt}:void 0,inferredGroupPosition:$?ot($):void 0}}function Ne(o){let t=o.replace(/^#+.*$/gm,"").replace(/\[([^\]]+)\]\([^\)]+\)/g,"$1").replace(/\{[^\}]+\}/g,"").replace(/[_*`]/g,"").replace(/\s+/g," ");return vt(t).trim()}m();function Wt(o){return o.sort((t,e)=>!t.group&&!e.group?Vt(t,e):t.group?e.group?t.group!==e.group?Ue(t,e):Vt(t,e):1:-1)}function Vt(o,t){return o.sidebarPosition!==void 0&&t.sidebarPosition!==void 0?o.sidebarPosition-t.sidebarPosition:o.sidebarPosition!==void 0?-1:t.sidebarPosition!==void 0?1:o.title.localeCompare(t.title)}function Ue(o,t){return o.groupPosition!==void 0&&t.groupPosition!==void 0?o.groupPosition-t.groupPosition:o.groupPosition!==void 0?-1:t.groupPosition!==void 0?1:(o.groupTitle||o.group).localeCompare(t.groupTitle||t.group)}var Mt=null,Z=new Map;async function Q(o,t,e="/docs",s=!0){let i=performance.now();_.load(),Z.clear(),(process.env.BOLTDOCS_FORCE_REPARSE==="true"||t?.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 D=_.get(f);if(D)return n++,D;let x=Gt(f,o,e,t);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:q(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?q(b):void 0),groupPosition:f?.position,groupIcon:f?.icon}}let h=u;if(t?.i18n){let a=Ge(u,t,e);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 Ge(o,t,e){let s=t.i18n.defaultLocale,i=Object.keys(t.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=Ve(d.path,s,n,e,t);u!==d.path&&(l.has(u)||r.push({...d,path:u,locale:n}))}}return r}function Ve(o,t,e,s,i){let r=`${o}:${e}`,c=Z.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=`/${t}`;if(n.startsWith(l+"/"))n="/"+e+"/"+n.substring(l.length+1);else if(n===l)n="/"+e;else if(n==="/"||n==="")n="/"+e;else{let u=n.startsWith("/")?"":"/";n="/"+e+u+n}let d=p+n;return Z.size>2e3&&Z.clear(),Z.set(r,d),d}var ae=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,t=process.cwd()){let e=t,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(e,n);if(Jt.default.existsSync(l))try{let d=await(0,Kt.loadConfigFromFile)({command:"serve",mode:"development"},l,e);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,t){let e=H(t.title),s=H(t.description);return o.replace(/<title>.*?<\/title>/,`<title>${e}</title>`).replace(/(<meta name="description" content=")[^"]*(")/,`$1${s}$2`).replace(/(<meta property="og:title" content=")[^"]*(")/,`$1${e}$2`).replace(/(<meta property="og:description" content=")[^"]*(")/,`$1${s}$2`).replace(/(<meta name="twitter:title" content=")[^"]*(")/,`$1${e}$2`).replace(/(<meta name="twitter:description" content=")[^"]*(")/,`$1${s}$2`)}m();T();function Qt(o,t){let e=t?.siteUrl?.replace(/\/$/,"")||"https://example.com",s=new Date().toISOString().split("T")[0],i=[{url:"/",priority:"1.0",changefreq:"daily"}];if(t?.i18n){let c=t.i18n.defaultLocale;for(let p of Object.keys(t.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(e)}${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 t=o.siteUrl?.replace(/\/$/,"")||"",e=o.robots||{},s=e.rules||[{userAgent:"*",allow:"/"}],i=e.sitemaps||(t?[`${t}/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 We=(0,ee.fileURLToPath)(P),Yt=O.default.dirname(We),te=(0,oe.createRequire)(P);async function lt(o){let{docsDir:t,docsDirName:e,outDir:s,config:i}=o,r=await Q(t,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}`,D=a.description||b,x={};x[`/${e}/${a.filePath}`]={default:()=>null};try{let $=await l({path:a.path,routes:r,config:i||{},docsDirName:e,modules:x,homePage:void 0}),w=Zt(u,{title:H(f),description:H(D)}).replace("<!--app-html-->",$).replace('<div id="root"></div>',`<div id="root">${$}</div>`),U=O.default.join(s,a.path);await j.default.promises.mkdir(U,{recursive:!0}),await j.default.promises.writeFile(O.default.join(U,"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(()=>(X(),Dt));await S()}T();var M=v(require("path"));m();T();var Tt=v(require("path")),ie=v(require("fs"));function ne(o,t){let e=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=t?.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(t?.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';
22
21
  import _user_mdx_components from 'virtual:boltdocs-mdx-components';
23
22
  ${i}
24
- ${e}
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,t){let e=t.theme,s=e?.title||"Boltdocs",i=e?.description||"",r=e?.favicon;!r&&e?.logo&&(typeof e.logo=="string"?r=e.logo:r=e.logo.light||e.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}">`,e?.ogImage?`<meta property="og:image" content="${e.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}">`,e?.ogImage?`<meta name="twitter:image" content="${e.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}var Ot=v(require("fs"));m();function ce(o={},t){let e=M.default.resolve(process.cwd(),o.docsDir||"docs"),s=k(e),i=t,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,se.loadEnv)(l.mode,d,"");return Object.assign(process.env,u),i||(i=await I(e)),{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]||"/",D=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(D.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(e,`layout.${a}`)),h=["tsx","ts","jsx","js"],y=h.map(a=>M.default.resolve(e,`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(e);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 Q(e,i,"/docs",g!=="change"),D=n.moduleGraph.getModuleById("\0virtual:boltdocs-routes");D&&n.moduleGraph.invalidateModule(D),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")return"\0"+n},async load(n){if(n==="\0virtual:boltdocs-routes"){let l=await Q(e,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(e,`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(e,`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;`}},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(e||"docs");await lt({docsDir:e,docsDirName:l,outDir:n,config:i});let{flushCache:d}=await Promise.resolve().then(()=>(X(),Dt));await d()}},(0,ae.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 he=v(require("@mdx-js/rollup")),ye=v(require("remark-gfm")),xe=v(require("remark-frontmatter")),be=v(require("rehype-slug")),ve=v(require("crypto"));m();X();var le="v3",N=new K("mdx");m();var pe=require("unist-util-visit");m();var de=require("shiki"),dt=null;async function pt(o){if(dt)return dt;let t=typeof o=="object"?[o.light,o.dark]:[o??"github-dark"];return["github-light","github-dark"].forEach(e=>{t.includes(e)||t.push(e)}),dt=await(0,de.createHighlighter)({themes:t,langs:["tsx","jsx","ts","js","json","md","mdx","css","html","bash","sh","yaml","yml"]}),dt}function me(o){return async t=>{let e=o?.theme?.codeTheme??{light:"github-light",dark:"github-dark"},s=await pt(e);(0,pe.visit)(t,["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 e=="object"?{themes:{light:e.light,dark:e.dark},lang:"tsx"}:{theme:e,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 ue=require("unist-util-visit");function ge(o){return async t=>{let e=o?.theme?.codeTheme||{light:"github-light",dark:"github-dark"},s=await pt(e);(0,ue.visit)(t,"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 e=="object"?d.themes={light:e.light,dark:e.dark}:d.theme=e;let u=s.codeToHtml(l,d);i.properties.dataHighlighted="true",i.properties.highlightedHtml=u,i.children=[]}})}}var fe=!1,mt=0,Y=0;function Pe(o,t=he.default){let e=o?.plugins?.flatMap(r=>r.remarkPlugins||[])||[],s=o?.plugins?.flatMap(r=>r.rehypePlugins||[])||[],i=t({remarkPlugins:[ye.default,xe.default,[me,o],...e],rehypePlugins:[be.default,[ge,o],...s],jsxRuntime:"automatic",providerImportSource:"@mdx-js/react"});return{...i,name:"vite-plugin-boltdocs-mdx",async buildStart(){mt=0,Y=0,fe||(N.load(),fe=!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=ve.default.createHash("md5").update(r).digest("hex"),l=`${c}:${n}:${le}`,d=N.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&&N.set(l,u.code),u},async buildEnd(){Y>0&&console.log(`[boltdocs] MDX Cache Performance: ${mt}/${Y} hits (${Math.round(mt/Y*100)||0}%)`),N.save(),await N.flush(),i.buildEnd&&await i.buildEnd.call(this)}}}async function Ft(o){let t=o?.docsDir||"docs",e=await I(t),s={...o,homePage:o?.homePage||e.homePage};return[...ce(s,e),Pe(e)]}async function qe(o,t="development"){let e=await I("docs",o);return{root:o,mode:t,plugins:[(0,we.default)(),(0,Ce.default)(),await Ft({docsDir:e.docsDir,homePage:e.homePage})],...e.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,c,f as d,g as e,h as f}from"../chunk-5D6XPYQ3.mjs";import"../chunk-Q3MLYTIQ.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};