boltdocs 2.1.0 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/base-ui/index.d.mts +25 -0
  3. package/dist/base-ui/index.d.ts +25 -0
  4. package/dist/base-ui/index.js +1 -0
  5. package/dist/base-ui/index.mjs +1 -0
  6. package/dist/{cache-Q4T6VAUL.mjs → cache-CRAZ55X7.mjs} +1 -1
  7. package/dist/chunk-5D6XPYQ3.mjs +74 -0
  8. package/dist/chunk-6QXCKZAT.mjs +1 -0
  9. package/dist/chunk-H4M6P3DM.mjs +1 -0
  10. package/dist/chunk-JD3RSDE4.mjs +1 -0
  11. package/dist/chunk-JXHNX2WN.mjs +1 -0
  12. package/dist/chunk-JZXLCA2E.mjs +1 -0
  13. package/dist/chunk-MZBG4N4W.mjs +1 -0
  14. package/dist/chunk-NBCYHLAA.mjs +1 -0
  15. package/dist/chunk-Q3MLYTIQ.mjs +1 -0
  16. package/dist/chunk-RSII2UPE.mjs +1 -0
  17. package/dist/chunk-T3W44KWY.mjs +1 -0
  18. package/dist/chunk-ZK2266IZ.mjs +1 -0
  19. package/dist/chunk-ZRJ55GGF.mjs +1 -0
  20. package/dist/client/index.d.mts +13 -115
  21. package/dist/client/index.d.ts +13 -115
  22. package/dist/client/index.js +1 -1
  23. package/dist/client/index.mjs +1 -1
  24. package/dist/client/ssr.js +1 -1
  25. package/dist/client/ssr.mjs +1 -1
  26. package/dist/client/types.d.mts +3 -0
  27. package/dist/client/types.d.ts +3 -0
  28. package/dist/client/types.js +1 -0
  29. package/dist/client/types.mjs +0 -0
  30. package/dist/copy-markdown-C-90ixSe.d.ts +15 -0
  31. package/dist/copy-markdown-CbS8X-qe.d.mts +15 -0
  32. package/dist/{client/hooks → hooks}/index.d.mts +25 -12
  33. package/dist/{client/hooks → hooks}/index.d.ts +25 -12
  34. package/dist/hooks/index.js +1 -0
  35. package/dist/hooks/index.mjs +1 -0
  36. package/dist/integrations/index.d.mts +48 -0
  37. package/dist/integrations/index.d.ts +48 -0
  38. package/dist/integrations/index.js +1 -0
  39. package/dist/integrations/index.mjs +1 -0
  40. package/dist/link-DfBwCeZc.d.mts +68 -0
  41. package/dist/link-DfBwCeZc.d.ts +68 -0
  42. package/dist/loading-BqGrFWO5.d.mts +68 -0
  43. package/dist/loading-chS3pm9W.d.ts +68 -0
  44. package/dist/{client/components/mdx → mdx}/index.d.mts +6 -38
  45. package/dist/{client/components/mdx → mdx}/index.d.ts +6 -38
  46. package/dist/mdx/index.js +1 -0
  47. package/dist/mdx/index.mjs +1 -0
  48. package/dist/node/cli-entry.js +27 -27
  49. package/dist/node/cli-entry.mjs +1 -1
  50. package/dist/node/index.d.mts +44 -14
  51. package/dist/node/index.d.ts +44 -14
  52. package/dist/node/index.js +23 -23
  53. package/dist/node/index.mjs +1 -1
  54. package/dist/primitives/index.d.mts +301 -0
  55. package/dist/primitives/index.d.ts +301 -0
  56. package/dist/primitives/index.js +1 -0
  57. package/dist/primitives/index.mjs +1 -0
  58. package/dist/search-dialog-MA5AISC7.mjs +1 -0
  59. package/dist/{types-Cp21DHI6.d.mts → types-j7jvWsJj.d.mts} +63 -17
  60. package/dist/{types-Cp21DHI6.d.ts → types-j7jvWsJj.d.ts} +63 -17
  61. package/dist/{use-routes-xLhumjbV.d.ts → use-routes-Cd806kGw.d.ts} +1 -1
  62. package/dist/{use-routes-8Iei6jTp.d.mts → use-routes-DDL0_jkQ.d.mts} +1 -1
  63. package/package.json +34 -8
  64. package/src/client/app/index.tsx +155 -35
  65. package/src/client/app/mdx-component.tsx +7 -3
  66. package/src/client/app/theme-context.tsx +40 -23
  67. package/src/client/components/default-layout.tsx +12 -6
  68. package/src/client/components/primitives/breadcrumbs.tsx +1 -1
  69. package/src/client/components/primitives/navbar.tsx +5 -2
  70. package/src/client/components/primitives/search-dialog.tsx +12 -3
  71. package/src/client/components/ui-base/breadcrumbs.tsx +1 -1
  72. package/src/client/components/ui-base/index.ts +17 -0
  73. package/src/client/components/ui-base/navbar.tsx +66 -33
  74. package/src/client/components/ui-base/powered-by.tsx +8 -5
  75. package/src/client/components/ui-base/sidebar.tsx +31 -22
  76. package/src/client/components/ui-base/tabs.tsx +4 -1
  77. package/src/client/components/ui-base/theme-toggle.tsx +35 -15
  78. package/src/client/hooks/use-i18n.ts +37 -7
  79. package/src/client/hooks/use-localized-to.ts +45 -68
  80. package/src/client/hooks/use-navbar.ts +10 -3
  81. package/src/client/hooks/use-routes.ts +61 -17
  82. package/src/client/hooks/use-search.ts +21 -5
  83. package/src/client/hooks/use-sidebar.ts +5 -2
  84. package/src/client/hooks/use-version.ts +5 -0
  85. package/src/client/integrations/index.ts +1 -0
  86. package/src/client/store/use-boltdocs-store.ts +43 -0
  87. package/src/client/types.ts +4 -2
  88. package/src/client/utils/i18n.ts +23 -0
  89. package/src/node/config.ts +54 -17
  90. package/src/node/index.ts +1 -1
  91. package/src/node/mdx/cache.ts +12 -0
  92. package/src/node/mdx/highlighter.ts +47 -0
  93. package/src/node/mdx/index.ts +114 -0
  94. package/src/node/mdx/rehype-shiki.ts +53 -0
  95. package/src/node/mdx/remark-shiki.ts +61 -0
  96. package/src/node/plugin/html.ts +8 -4
  97. package/src/node/plugin/index.ts +117 -68
  98. package/src/node/routes/index.ts +34 -13
  99. package/src/node/routes/parser.ts +12 -4
  100. package/src/node/ssg/index.ts +3 -3
  101. package/src/node/utils.ts +32 -2
  102. package/tsup.config.ts +7 -2
  103. package/dist/chunk-52MVMZWS.mjs +0 -1
  104. package/dist/chunk-BVWWKXJH.mjs +0 -1
  105. package/dist/chunk-DVY3RDXD.mjs +0 -1
  106. package/dist/chunk-FUVYCYWC.mjs +0 -1
  107. package/dist/chunk-GBLMDJ2B.mjs +0 -1
  108. package/dist/chunk-ISPX45DF.mjs +0 -1
  109. package/dist/chunk-PNXZMUCO.mjs +0 -1
  110. package/dist/chunk-V2ZHKQSP.mjs +0 -74
  111. package/dist/client/components/mdx/index.js +0 -1
  112. package/dist/client/components/mdx/index.mjs +0 -1
  113. package/dist/client/hooks/index.js +0 -1
  114. package/dist/client/hooks/index.mjs +0 -1
  115. package/dist/search-dialog-TWGYKF2D.mjs +0 -1
  116. package/src/node/mdx.ts +0 -279
@@ -1,21 +1,21 @@
1
- "use strict";var we=Object.create;var Q=Object.defineProperty;var $e=Object.getOwnPropertyDescriptor;var Se=Object.getOwnPropertyNames;var De=Object.getPrototypeOf,Be=Object.prototype.hasOwnProperty;var gt=(o,t)=>()=>(o&&(t=o(o=0)),t);var Ft=(o,t)=>{for(var e in t)Q(o,e,{get:t[e],enumerable:!0})},It=(o,t,e,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Se(t))!Be.call(o,i)&&i!==e&&Q(o,i,{get:()=>t[i],enumerable:!(s=$e(t,i))||s.enumerable});return o};var y=(o,t,e)=>(e=o!=null?we(De(o)):{},It(t||!o||!o.__esModule?Q(e,"default",{value:o,enumerable:!0}):e,o)),Re=o=>It(Q({},"__esModule",{value:!0}),o);var Me,C,g=gt(()=>{"use strict";Me=()=>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,C=Me()});function R(o){return o.replace(/\\/g,"/")}function U(o){return o.replace(/^\d+\./,"")}function Y(o){let t=o.match(/^(\d+)\./);return t?parseInt(t[1],10):void 0}function jt(o){return/\.mdx?$/.test(o)}function tt(o){try{return ft.default.statSync(o).mtimeMs}catch{return 0}}function Ht(o){let t=ft.default.readFileSync(o,"utf-8"),{data:e,content:s}=(0,Et.default)(t);return{data:e,content:s}}function E(o){return o.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&apos;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function yt(o){return E(o)}function Lt(o){let e=o.split("/").map(U).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 G(o){return ht.default.sanitize(o)}function xt(o){return ht.default.sanitize(o,{ALLOWED_TAGS:[],KEEP_CONTENT:!0})}function q(o){return o.charAt(0).toUpperCase()+o.slice(1)}var ft,Et,ht,k=gt(()=>{"use strict";g();ft=y(require("fs")),Et=y(require("gray-matter")),ht=y(require("isomorphic-dompurify"))});var $t={};Ft($t,{AssetCache:()=>Pt,FileCache:()=>V,TransformCache:()=>W,flushCache:()=>Ie});async function Ie(){await O.flush()}var w,S,z,L,A,et,ke,ot,Ct,Ze,wt,Te,_e,Oe,Fe,bt,vt,O,V,W,Pt,K=gt(()=>{"use strict";g();w=y(require("fs")),S=y(require("path")),z=y(require("crypto")),L=y(require("zlib")),A=require("util");k();et=(0,A.promisify)(w.default.writeFile),ke=(0,A.promisify)(w.default.readFile),ot=(0,A.promisify)(w.default.mkdir),Ct=(0,A.promisify)(w.default.rename),Ze=(0,A.promisify)(w.default.unlink),wt=process.env.BOLTDOCS_CACHE_DIR||".boltdocs",Te="assets",_e="shards",Oe=parseInt(process.env.BOLTDOCS_CACHE_LRU_LIMIT||"2000",10),Fe=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()}},vt=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}},O=new vt,V=class{entries=new Map;cachePath=null;compress;constructor(t={}){if(this.compress=t.compress!==void 0?t.compress:Fe,t.name){let e=t.root||process.cwd(),s=this.compress?"json.gz":"json";this.cachePath=S.default.resolve(e,wt,`${t.name}.${s}`)}}load(){if(process.env.BOLTDOCS_NO_CACHE!=="1"&&!(!this.cachePath||!w.default.existsSync(this.cachePath)))try{let t=w.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;O.add(async()=>{try{await ot(S.default.dirname(s),{recursive:!0});let r=Buffer.from(e);i&&(r=L.default.gzipSync(r));let a=`${s}.${z.default.randomBytes(4).toString("hex")}.tmp`;await et(a,r),await Ct(a,s)}catch{}})}get(t){let e=this.entries.get(t);return!e||tt(t)!==e.mtime?null:e.data}set(t,e){this.entries.set(t,{data:e,mtime:tt(t)})}isValid(t){let e=this.entries.get(t);return e?tt(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 O.flush()}},W=class{index=new Map;memoryCache=new bt(Oe);baseDir;shardsDir;indexPath;constructor(t,e=process.cwd()){this.baseDir=S.default.resolve(e,wt,`transform-${t}`),this.shardsDir=S.default.resolve(this.baseDir,_e),this.indexPath=S.default.resolve(this.baseDir,"index.json")}load(){if(process.env.BOLTDOCS_NO_CACHE!=="1"&&w.default.existsSync(this.indexPath))try{let t=w.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;O.add(async()=>{await ot(S.default.dirname(e),{recursive:!0}),await et(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 a=this.index.get(r),p=S.default.resolve(this.shardsDir,`${a}.gz`);try{let n=await ke(p),c=L.default.gunzipSync(n).toString("utf-8");return this.memoryCache.set(r,c),{key:r,val:c}}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=S.default.resolve(this.shardsDir,`${s}.gz`);if(!w.default.existsSync(i))return null;try{let r=w.default.readFileSync(i),a=L.default.gunzipSync(r).toString("utf-8");return this.memoryCache.set(t,a),a}catch{return null}}set(t,e){let s=z.default.createHash("md5").update(e).digest("hex");this.index.set(t,s),this.memoryCache.set(t,e);let i=S.default.resolve(this.shardsDir,`${s}.gz`);O.add(async()=>{if(w.default.existsSync(i))return;await ot(this.shardsDir,{recursive:!0});let r=L.default.gzipSync(Buffer.from(e)),a=`${i}.${z.default.randomBytes(4).toString("hex")}.tmp`;await et(a,r),await Ct(a,i)})}get size(){return this.index.size}async flush(){await O.flush()}},Pt=class{assetsDir;constructor(t=process.cwd()){this.assetsDir=S.default.resolve(t,wt,Te)}getFileHash(t){return z.default.createHash("md5").update(w.default.readFileSync(t)).digest("hex")}get(t,e){if(!w.default.existsSync(t))return null;let s=this.getFileHash(t),i=this.getCachedPath(t,`${e}-${s}`);return w.default.existsSync(i)?i:null}set(t,e,s){let i=this.getFileHash(t),r=this.getCachedPath(t,`${e}-${i}`);O.add(async()=>{await ot(this.assetsDir,{recursive:!0});let a=`${r}.${z.default.randomBytes(4).toString("hex")}.tmp`;await et(a,s),await Ct(a,r)})}getCachedPath(t,e){let s=S.default.extname(t),i=S.default.basename(t,s),r=e.replace(/[^a-z0-9]/gi,"-").toLowerCase();return S.default.join(this.assetsDir,`${i}.${r}${s}`)}clear(){w.default.existsSync(this.assetsDir)&&w.default.rmSync(this.assetsDir,{recursive:!0,force:!0})}async flush(){await O.flush()}}});var qe={};Ft(qe,{createViteConfig:()=>Ge,default:()=>kt,defineConfig:()=>Wt,generateStaticPages:()=>st,resolveConfig:()=>j});module.exports=Re(qe);g();var fe=y(require("@vitejs/plugin-react")),he=y(require("@tailwindcss/vite"));g();var ie=require("vite");g();var Gt=y(require("fast-glob"));k();g();K();var T=new V({name:"routes"});function St(){T.invalidateAll()}function Dt(o){T.invalidate(o)}g();var N=y(require("path")),zt=y(require("github-slugger"));k();function At(o,t,e,s){let i=decodeURIComponent(o),r=N.default.resolve(i),a=N.default.resolve(t),p=R(N.default.relative(a,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:c}=Ht(o),l=p.split("/"),u,b;if(s?.versions&&l.length>0){let B=l[0];s.versions.versions[B]&&(b=B,l=l.slice(1))}if(s?.i18n&&l.length>0){let B=l[0];s.i18n.locales[B]&&(u=B,l=l.slice(1))}let x;if(l.length>0){let B=l[0].match(/^\((.+)\)$/);B&&(x=B[1].toLowerCase(),l=l.slice(1))}let d=l.join("/"),m;n.permalink?m=n.permalink.startsWith("/")?n.permalink:`/${n.permalink}`:m=Lt(d||"index.md");let h=e;b&&(h+="/"+b),u&&(h+="/"+u),h+=m==="/"?"":m,(!h||h==="")&&(h="/");let f=l[l.length-1],$=U(f),D=U(N.default.basename(o,N.default.extname(o))),P=n.sidebarPosition??Y(f),v=l.length>=2?l[0]:void 0,I=v?U(v):void 0,H=l.length>=2&&/^index\.mdx?$/.test($),mt=new zt.default,Tt=[],ye=/^(#{2,4})\s+(.+)$/gm,pt;for(;(pt=ye.exec(c))!==null;){let B=pt[1].length,Pe=pt[2].replace(/\[([^\]]+)\]\([^\)]+\)/g,"$1").replace(/[_*`]/g,"").trim(),Ot=G(Pe).trim(),Ce=mt.slug(Ot);Tt.push({level:B,text:Ot,id:Ce})}let xe=n.title?G(String(n.title)):D,ut=n.description?G(String(n.description)):"";!ut&&c&&(ut=xt(c.replace(/^#+.*$/gm,"").replace(/\[([^\]]+)\]\([^\)]+\)/g,"$1").replace(/[_*`]/g,"").replace(/\s+/g," ")).trim().slice(0,160));let be=n.badge?G(String(n.badge)):void 0,_t=n.icon?String(n.icon):void 0,ve=Ee(c);return{route:{path:h,componentPath:o,filePath:p,title:xe,description:ut,sidebarPosition:P,headings:Tt,locale:u,version:b,badge:be,icon:_t,tab:x,_content:ve,_rawContent:c},relativeDir:I,isGroupIndex:H,inferredTab:x,groupMeta:H?{title:n.groupTitle||n.title||(I?q(I):""),position:n.groupPosition??n.sidebarPosition??(v?Y(v):void 0),icon:_t}:void 0,inferredGroupPosition:v?Y(v):void 0}}function Ee(o){let t=o.replace(/^#+.*$/gm,"").replace(/\[([^\]]+)\]\([^\)]+\)/g,"$1").replace(/\{[^\}]+\}/g,"").replace(/[_*`]/g,"").replace(/\s+/g," ");return xt(t).trim()}g();function Ut(o){return o.sort((t,e)=>!t.group&&!e.group?Nt(t,e):t.group?e.group?t.group!==e.group?je(t,e):Nt(t,e):1:-1)}function Nt(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 je(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 J=new Map;async function X(o,t,e="/docs"){let s=performance.now();T.load(),J.clear(),(process.env.BOLTDOCS_FORCE_REPARSE==="true"||t?.i18n)&&T.invalidateAll();let i=await(0,Gt.default)(["**/*.md","**/*.mdx"],{cwd:o,absolute:!0,suppressErrors:!0,followSymbolicLinks:!1});T.pruneStale(new Set(i));let r=50,a=[],p=0;for(let d=0;d<i.length;d+=r){let m=i.slice(d,d+r),h=await Promise.all(m.map(async f=>{let $=T.get(f);if($)return p++,$;let D=At(f,o,e,t);return T.set(f,D),D}));a.push(...h),d+r<i.length&&await new Promise(f=>setImmediate(f))}T.save();let n=new Map,c=[];for(let d of a)if(d.isGroupIndex&&d.relativeDir&&c.push(d),d.relativeDir){let m=n.get(d.relativeDir);m?(m.position===void 0&&d.inferredGroupPosition!==void 0&&(m.position=d.inferredGroupPosition),!m.icon&&d.route.icon&&(m.icon=d.route.icon)):(m={title:q(d.relativeDir),position:d.inferredGroupPosition,icon:d.route.icon},n.set(d.relativeDir,m))}for(let d of c){let m=n.get(d.relativeDir);d.groupMeta&&(m.title=d.groupMeta.title,d.groupMeta.position!==void 0&&(m.position=d.groupMeta.position),d.groupMeta.icon&&(m.icon=d.groupMeta.icon))}let l=new Array(a.length);for(let d=0;d<a.length;d++){let m=a[d],h=m.relativeDir,f=h?n.get(h):void 0;l[d]={...m.route,group:h,groupTitle:f?.title||(h?q(h):void 0),groupPosition:f?.position,groupIcon:f?.icon}}let u=l;if(t?.i18n){let d=He(l,t,e);u=[...l,...d]}let b=Ut(u),x=performance.now()-s;return console.log(`[boltdocs] Route generation: ${x.toFixed(2)}ms (${i.length} files, ${p} cache hits)`),b}function He(o,t,e){let s=t.i18n.defaultLocale,i=Object.keys(t.i18n.locales),r=[],a=new Map,p=[];for(let n of o){let c=n.locale||s;a.has(c)||a.set(c,new Set),a.get(c).add(n.path),c===s&&p.push(n)}for(let n of i){if(n===s)continue;let c=a.get(n)||new Set;for(let l of p){let u=Le(l.path,s,n,e);c.has(u)||r.push({...l,path:u,locale:n})}}return r}function Le(o,t,e,s){let i=`${o}:${e}`,r=J.get(i);if(r)return r;let a=s,p=o.match(new RegExp(`^${s}/(v[0-9]+)`));p&&(a+="/"+p[1]);let n=o.substring(a.length),c=`/${t}`;if(n.startsWith(c+"/"))n="/"+e+"/"+n.substring(c.length+1);else if(n===c)n="/"+e;else if(n==="/"||n==="")n="/"+e;else{let u=n.startsWith("/")?"":"/";n="/"+e+u+n}let l=a+n;return J.size>2e3&&J.clear(),J.set(i,l),l}var ne=require("vite-plugin-image-optimizer");g();var it=y(require("path")),qt=y(require("fs")),Vt=require("vite");function Wt(o){return o}var nt=["boltdocs.config.js","boltdocs.config.mjs","boltdocs.config.ts"];async function j(o,t=process.cwd()){let e=t,s={docsDir:it.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 nt){let c=it.default.resolve(e,n);if(qt.default.existsSync(c))try{let l=await(0,Vt.loadConfigFromFile)({command:"serve",mode:"development"},c,e);if(l){i=l.config;break}}catch(l){console.warn(`[boltdocs] Failed to load config from ${n}:`,l)}}let a={...{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.themeConfig||{},...i.theme||{}},p=Object.fromEntries(Object.entries(a).filter(([n,c])=>c!==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(c=>({label:c.label||c.text||"",href:c.href||c.link||c.to||""}))}))),{docsDir:it.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}}g();var F=y(require("fs")),_=y(require("path"));k();var Qt=require("url"),Yt=require("module");g();k();function Kt(o,t){let e=E(t.title),s=E(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`)}g();k();function Jt(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 a=t.i18n.defaultLocale;for(let p of Object.keys(t.i18n.locales))p!==a&&i.push({url:`/${p}/`,priority:"1.0",changefreq:"daily"})}return`<?xml version="1.0" encoding="UTF-8"?>
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"?>
2
2
  <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
3
- ${[...i,...o.map(a=>({url:a,priority:"0.8",changefreq:"weekly"}))].map(a=>` <url>
4
- <loc>${yt(e)}${yt(a.url)}</loc>
3
+ ${[...i,...o.map(c=>({url:c,priority:"0.8",changefreq:"weekly"}))].map(c=>` <url>
4
+ <loc>${bt(e)}${bt(c.url)}</loc>
5
5
  <lastmod>${s}</lastmod>
6
- <changefreq>${a.changefreq}</changefreq>
7
- <priority>${a.priority}</priority>
6
+ <changefreq>${c.changefreq}</changefreq>
7
+ <priority>${c.priority}</priority>
8
8
  </url>`).join(`
9
9
  `)}
10
- </urlset>`}g();function rt(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 a of s){if(r+=`User-agent: ${a.userAgent}
11
- `,a.disallow){let p=Array.isArray(a.disallow)?a.disallow:[a.disallow];for(let n of p)r+=`Disallow: ${n}
12
- `}if(a.allow){let p=Array.isArray(a.allow)?a.allow:[a.allow];for(let n of p)r+=`Allow: ${n}
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}
11
+ `,c.disallow){let p=Array.isArray(c.disallow)?c.disallow:[c.disallow];for(let n of p)r+=`Disallow: ${n}
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
- `}for(let a of i)r+=`Sitemap: ${a}
15
- `;return r.trim()}var ze=(0,Qt.fileURLToPath)(C),Xt=_.default.dirname(ze),Zt=(0,Yt.createRequire)(C);async function st(o){let{docsDir:t,docsDirName:e,outDir:s,config:i}=o,r=await X(t,i),a=i?.themeConfig?.title||"Boltdocs",p=i?.themeConfig?.description||"",n=_.default.resolve(Xt,"../client/ssr.js");if(!F.default.existsSync(n)){console.error("[boltdocs] SSR module not found at",n,"- Did you build the core package?");return}let c=Zt("module"),l=c.prototype.require;c.prototype.require=function(f,...$){return f==="virtual:boltdocs-layout"?{__esModule:!0,default:function(P){try{let I=l.apply(this,[_.default.resolve(Xt,"../client/index.js")]).DefaultLayout||(({children:mt})=>mt);return l.apply(this,["react"]).createElement(I,P)}catch{return P.children}}}:l.apply(this,[f,...$])};let{render:u}=Zt(n);c.prototype.require=l;let b=_.default.join(s,"index.html");if(!F.default.existsSync(b)){console.warn("[boltdocs] No index.html found in outDir, skipping SSG.");return}let x=F.default.readFileSync(b,"utf-8");await Promise.all(r.map(async f=>{let $=`${f.title} | ${a}`,D=f.description||p,P={};P[`/${e}/${f.filePath}`]={default:()=>null};try{let v=await u({path:f.path,routes:r,config:i||{},docsDirName:e,modules:P,homePage:void 0}),I=Kt(x,{title:E($),description:E(D)}).replace("<!--app-html-->",v).replace('<div id="root"></div>',`<div id="root">${v}</div>`),H=_.default.join(s,f.path);await F.default.promises.mkdir(H,{recursive:!0}),await F.default.promises.writeFile(_.default.join(H,"index.html"),I,"utf-8")}catch(v){console.error(`[boltdocs] Error SSR rendering route ${f.path}:`,v&&(v.stack||v))}}));let d=Jt(r.map(f=>f.path),i);F.default.writeFileSync(_.default.join(s,"sitemap.xml"),d,"utf-8");let m=rt(i);F.default.writeFileSync(_.default.join(s,"robots.txt"),m,"utf-8"),console.log(`[boltdocs] Generated ${r.length} static pages + sitemap.xml + robots.txt`);let{flushCache:h}=await Promise.resolve().then(()=>(K(),$t));await h()}k();var M=y(require("path"));g();k();var Bt=y(require("path")),te=y(require("fs"));function ee(o,t){let e=o.homePage?`import HomePage from '${R(o.homePage)}';`:"",s=Bt.default.resolve(process.cwd(),"index.css"),i=te.default.existsSync(s)?"import './index.css';":"",r=o.homePage?"homePage: HomePage,":"",a=t?.plugins?.flatMap(x=>Object.entries(x.components||{}))||[],p=a.map(([x,d])=>`import * as _comp_${x} from '${R(d)}';
16
- const ${x} = _comp_${x}.default || _comp_${x}['${x}'] || _comp_${x};`).join(`
17
- `),n=a.map(([x])=>x).join(", "),c=Bt.default.basename(o.docsDir||"docs"),l=Object.entries(t?.external||{}),u=l.map(([x,d],m)=>`import _ext_${m} from '${R(d)}';`).join(`
18
- `),b=l.length>0?`externalPages: { ${l.map(([x],d)=>`"${x}": _ext_${d}`).join(", ")} },`:"";return`
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`
19
19
  import { createBoltdocsApp as _createApp } from 'boltdocs/client';
20
20
  import _routes from 'virtual:boltdocs-routes';
21
21
  import _config from 'virtual:boltdocs-config';
@@ -28,25 +28,25 @@ ${u}
28
28
  _createApp({
29
29
  target: '#root',
30
30
  routes: _routes,
31
- docsDirName: '${c}',
31
+ docsDirName: '${l}',
32
32
  config: _config,
33
- modules: import.meta.glob('/${c}/**/*.{md,mdx}'),
33
+ modules: import.meta.glob('/${l}/**/*.{md,mdx}'),
34
34
  hot: import.meta.hot,
35
35
  ${r}
36
- ${b}
36
+ ${h}
37
37
  components: { ${n}${n?", ":""} ...(_user_mdx_components || {}) },
38
38
  });
39
- `}g();function oe(o){return`<!doctype html>
39
+ `}m();function re(o){return`<!doctype html>
40
40
  <html lang="en">
41
41
  <head>
42
42
  <meta charset="UTF-8" />
43
43
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
44
- <title>${o.theme?.title||o.themeConfig?.title||"Boltdocs"}</title>
44
+ <title>${o.theme?.title||"Boltdocs"}</title>
45
45
  </head>
46
46
  <body>
47
47
  <div id="root"></div>
48
48
  </body>
49
- </html>`}function Rt(o,t){let e=t.theme||t.themeConfig,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 a=[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(`
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(`
50
50
  `),p=`
51
51
  <script>
52
52
  (function() {
@@ -64,11 +64,11 @@ _createApp({
64
64
  })();
65
65
  </script>
66
66
  `;return o.includes("<title>")?o=o.replace(/<title>.*?<\/title>/,`<title>${s}</title>`):o=o.replace("</head>",` <title>${s}</title>
67
- </head>`),o=o.replace("</head>",` ${a}
67
+ </head>`),o=o.replace("</head>",` ${c}
68
68
  ${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 at=y(require("fs"));g();function re(o={},t){let e=M.default.resolve(process.cwd(),o.docsDir||"docs"),s=R(e),i=t,r,a=!1,p=i?.plugins?.flatMap(n=>n.vitePlugins||[])||[];return[{name:"vite-plugin-boltdocs",enforce:"pre",async config(n,c){a=c.command==="build";let l=n.envDir||process.cwd(),u=(0,ie.loadEnv)(c.mode,l,"");return Object.assign(process.env,u),i||(i=await j(e)),{optimizeDeps:{include:["react","react-dom"]}}},configResolved(n){r=n},configureServer(n){n.middlewares.use((m,h,f)=>{if(m.url==="/robots.txt"){let $=rt(i);h.statusCode=200,h.setHeader("Content-Type","text/plain"),h.end($);return}f()}),n.middlewares.use(async(m,h,f)=>{let $=m.url?.split("?")[0]||"/";if((m.headers.accept||"").includes("text/html")&&!$.includes(".")){let P=M.default.resolve(process.cwd(),"index.html");if(!at.default.existsSync(P)){let v=oe(i);v=Rt(v,i),v=await n.transformIndexHtml(m.url||"/",v),h.statusCode=200,h.setHeader("Content-Type","text/html"),h.end(v);return}}f()});let c=nt.map(m=>M.default.resolve(process.cwd(),m)),l=["tsx","jsx"],u=l.map(m=>M.default.resolve(e,`layout.${m}`)),b=["tsx","ts","jsx","js"],x=b.map(m=>M.default.resolve(e,`mdx-components.${m}`));n.watcher.add([...c,...x,...u]);let d=async(m,h)=>{let f=R(m);if(nt.some(P=>f.endsWith(P))){n.restart();return}if(b.some(P=>f.endsWith(`mdx-components.${P}`))){let P=n.moduleGraph.getModuleById("\0virtual:boltdocs-mdx-components");P&&n.moduleGraph.invalidateModule(P),n.ws.send({type:"full-reload"});return}if(l.some(P=>f.endsWith(`layout.${P}`))){let P=n.moduleGraph.getModuleById("\0virtual:boltdocs-layout");P&&n.moduleGraph.invalidateModule(P),n.ws.send({type:"full-reload"});return}if(!f.startsWith(s)||!jt(f))return;h==="add"||h==="unlink"?St():Dt(m);let $=await X(e,i),D=n.moduleGraph.getModuleById("\0virtual:boltdocs-routes");D&&n.moduleGraph.invalidateModule(D),n.ws.send({type:"custom",event:"boltdocs:routes-update",data:$})};n.watcher.on("add",m=>d(m,"add")),n.watcher.on("unlink",m=>d(m,"unlink")),n.watcher.on("change",m=>d(m,"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 c=await X(e,i);return`export default ${JSON.stringify(c,null,2)};`}if(n==="\0virtual:boltdocs-config"){let c={theme:i?.theme,themeConfig:i?.themeConfig,integrations:i?.integrations,i18n:i?.i18n,versions:i?.versions,siteUrl:i?.siteUrl};return`export default ${JSON.stringify(c,null,2)};`}if(n==="\0virtual:boltdocs-entry")return ee(o,i);if(n==="\0virtual:boltdocs-mdx-components"){let c=["tsx","ts","jsx","js"],l=null;for(let u of c){let b=M.default.resolve(e,`mdx-components.${u}`);if(at.default.existsSync(b)){l=b;break}}if(l){let u=R(l);return`import * as components from '${u}';
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}';
70
70
  const mdxComponents = components.default || components;
71
71
  export default mdxComponents;
72
- export * from '${u}';`}return"export default {};"}if(n==="\0virtual:boltdocs-layout"){let c=["tsx","jsx"],l=null;for(let u of c){let b=M.default.resolve(e,`layout.${u}`);if(at.default.existsSync(b)){l=b;break}}return l?`import UserLayout from '${R(l)}';
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)}';
73
73
  export default UserLayout;`:`import { DefaultLayout } from 'boltdocs/client';
74
- export default DefaultLayout;`}},transformIndexHtml:{order:"pre",handler(n){return Rt(n,i)}},async closeBundle(){if(!a)return;let n=r?.build?.outDir?M.default.resolve(r.root,r.build.outDir):M.default.resolve(process.cwd(),"dist"),c=M.default.basename(e||"docs");await st({docsDir:e,docsDirName:c,outDir:n,config:i});let{flushCache:l}=await Promise.resolve().then(()=>(K(),$t));await l()}},(0,ne.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)]}g();var ae=y(require("@mdx-js/rollup")),ce=y(require("remark-gfm")),le=y(require("remark-frontmatter")),de=y(require("rehype-slug")),me=y(require("crypto")),Mt=require("unist-util-visit"),pe=require("shiki");K();var ct=null;async function ue(o){if(ct)return ct;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)}),ct=await(0,pe.createHighlighter)({themes:t,langs:["tsx","jsx","ts","js","json","md","mdx","css","html","bash","sh","yaml","yml"]}),ct}function Ae(o){return async t=>{let e=o?.themeConfig?.codeTheme??{light:"github-light",dark:"github-dark"},s=await ue(e);(0,Mt.visit)(t,["mdxJsxFlowElement","mdxJsxTextElement"],i=>{if(i.name!=="ComponentPreview")return;let r=i.attributes?.find(c=>c.name==="code"),a="";if(r){if(typeof r.value=="string")a=r.value;else if(r.value?.type==="mdxJsxAttributeValueExpression"){let c=r.value.value??"";a=c.match(/^[`'"](.+)[`'"]$/)?.[1]??c}}if(!a)return;let p=typeof e=="object"?{themes:{light:e.light,dark:e.dark},lang:"tsx"}:{theme:e,lang:"tsx"},n=s.codeToHtml(a,p);i.attributes=(i.attributes??[]).filter(c=>c.name!=="highlightedHtml"),i.attributes.push({type:"mdxJsxAttribute",name:"highlightedHtml",value:n})})}}function Ne(o){return async t=>{let e=o?.themeConfig?.codeTheme||{light:"github-light",dark:"github-dark"},s=await ue(e);(0,Mt.visit)(t,"element",i=>{if(i.tagName==="pre"&&i.children?.[0]?.tagName==="code"){let r=i.children[0],p=(r.properties?.className||[]).find(b=>b.startsWith("language-")),n=p?p.slice(9):"text",c=r.children[0]?.value||"",l={lang:n};typeof e=="object"?l.themes={light:e.light,dark:e.dark}:l.theme=e;let u=s.codeToHtml(c,l);i.properties.dataHighlighted="true",i.properties.highlightedHtml=u,i.children=[]}})}}var Ue="v3",Z=new W("mdx"),se=!1;function ge(o,t=ae.default){let e=o?.plugins?.flatMap(r=>r.remarkPlugins||[])||[],s=o?.plugins?.flatMap(r=>r.rehypePlugins||[])||[],i=t({remarkPlugins:[ce.default,le.default,[Ae,o],...e],rehypePlugins:[de.default,[Ne,o],...s],jsxRuntime:"automatic",providerImportSource:"@mdx-js/react"});return i.isMock&&console.log("MDX PLUGIN IS MOCKED"),{...i,name:"vite-plugin-boltdocs-mdx",async buildStart(){lt=0,dt=0,se||(Z.load(),se=!0),i.buildStart&&await i.buildStart.call(this)},async transform(r,a,p){if(!a.endsWith(".md")&&!a.endsWith(".mdx"))return i.transform?.call(this,r,a,p);console.log(`[boltdocs] Transforming MDX: ${a}`),dt++;let n=me.default.createHash("md5").update(r).digest("hex"),c=`${a}:${n}:${Ue}`,l=Z.get(c);if(l)return lt++,{code:l,map:null};let u=await i.transform.call(this,r,a,p);return u&&typeof u=="object"&&u.code&&Z.set(c,u.code),u},async buildEnd(){console.log(`[boltdocs] MDX Cache Performance: ${lt}/${dt} hits (${Math.round(lt/dt*100)||0}%)`),Z.save(),await Z.flush(),i.buildEnd&&await i.buildEnd.call(this)}}}var lt=0,dt=0;async function kt(o){let t=o?.docsDir||"docs",e=await j(t),s={...o,homePage:o?.homePage||e.homePage};return[...re(s,e),ge(e)]}async function Ge(o,t="development"){let e=await j("docs",o);return{root:o,mode:t,plugins:[(0,fe.default)(),(0,he.default)(),await kt({docsDir:e.docsDir,homePage:e.homePage})],...e.vite}}0&&(module.exports={createViteConfig,defineConfig,generateStaticPages,resolveConfig});
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});
@@ -1 +1 @@
1
- import{a,b,c,f as d,g as e,h as f}from"../chunk-V2ZHKQSP.mjs";import"../chunk-PNXZMUCO.mjs";f();export{e as createViteConfig,d as default,a as defineConfig,c as generateStaticPages,b as resolveConfig};
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};
@@ -0,0 +1,301 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import React__default, { ReactNode, RefObject } from 'react';
3
+ import { g as BoltdocsSocialLink, C as ComponentRoute } from '../types-j7jvWsJj.mjs';
4
+ import * as RAC from 'react-aria-components';
5
+ import { LinkProps } from 'react-aria-components';
6
+ export { Separator, ToggleButton } from 'react-aria-components';
7
+ export { a as Button, B as ButtonProps, L as Link, b as LinkProps, N as NavLink, c as NavLinkProps, d as buttonVariants } from '../link-DfBwCeZc.mjs';
8
+ import { ClassValue } from 'clsx';
9
+ import 'vite';
10
+ import 'class-variance-authority/types';
11
+ import 'class-variance-authority';
12
+
13
+ type ComponentBase = {
14
+ className?: string;
15
+ children?: ReactNode;
16
+ };
17
+ /**
18
+ * Helper to type compound components (e.g. Navbar with Navbar.Link)
19
+ */
20
+ type CompoundComponent<P, S> = React.FC<P> & S;
21
+
22
+ interface NavbarLinkProps extends Omit<ComponentBase, 'children'> {
23
+ label: ReactNode;
24
+ href: string;
25
+ active?: boolean;
26
+ to?: 'internal' | 'external';
27
+ }
28
+ interface NavbarLogoProps extends Omit<ComponentBase, 'children'> {
29
+ src: string;
30
+ alt: string;
31
+ width?: number;
32
+ height?: number;
33
+ }
34
+ interface NavbarSearchTriggerProps extends ComponentBase {
35
+ onPress: () => void;
36
+ }
37
+ interface NavbarThemeProps {
38
+ className?: string;
39
+ theme: 'dark' | 'light';
40
+ onThemeChange: (isSelected: boolean) => void;
41
+ }
42
+ interface NavbarMenuProps extends ComponentBase {
43
+ label: ReactNode;
44
+ icon?: ReactNode;
45
+ }
46
+ interface NavbarVersionProps extends ComponentBase {
47
+ current: string;
48
+ }
49
+ interface NavbarItemProps extends Omit<ComponentBase, 'children'> {
50
+ label: string;
51
+ onPress?: () => void;
52
+ isCurrent?: boolean;
53
+ }
54
+ interface NavbarSocialsProps extends ComponentBase {
55
+ icon: string;
56
+ link: string;
57
+ }
58
+ declare const NavbarRoot: ({ children, className, ...props }: ComponentBase) => react_jsx_runtime.JSX.Element;
59
+ declare const NavbarContent: ({ children, className }: ComponentBase) => react_jsx_runtime.JSX.Element;
60
+ declare const NavbarLeft: ({ children, className }: ComponentBase) => react_jsx_runtime.JSX.Element;
61
+ declare const NavbarRight: ({ children, className }: ComponentBase) => react_jsx_runtime.JSX.Element;
62
+ declare const NavbarCenter: ({ children, className }: ComponentBase) => react_jsx_runtime.JSX.Element;
63
+ declare const NavbarLogo: ({ src, alt, width, height, className, }: NavbarLogoProps) => react_jsx_runtime.JSX.Element;
64
+ declare const NavbarTitle: ({ children, className }: ComponentBase) => react_jsx_runtime.JSX.Element;
65
+ declare const NavbarLinks: ({ children, className }: ComponentBase) => react_jsx_runtime.JSX.Element;
66
+ declare const NavbarLink: ({ label, href, active, to, className, }: NavbarLinkProps) => react_jsx_runtime.JSX.Element;
67
+ declare const NavbarSearchTrigger: ({ className, onPress, }: NavbarSearchTriggerProps) => react_jsx_runtime.JSX.Element;
68
+ declare const NavbarTheme: ({ className, theme, onThemeChange, }: NavbarThemeProps) => react_jsx_runtime.JSX.Element;
69
+ declare const NavbarMenu: ({ label, children, className, icon, }: NavbarMenuProps) => react_jsx_runtime.JSX.Element;
70
+ declare const NavbarItem: ({ label, className, onPress, isCurrent, }: NavbarItemProps) => react_jsx_runtime.JSX.Element;
71
+ declare const Icon: ({ name }: {
72
+ name: BoltdocsSocialLink["icon"];
73
+ }) => react_jsx_runtime.JSX.Element | undefined;
74
+ declare const NavbarSocials: ({ icon, link, className, }: NavbarSocialsProps) => react_jsx_runtime.JSX.Element;
75
+ declare const NavbarSplit: ({ className }: ComponentBase) => react_jsx_runtime.JSX.Element;
76
+
77
+ interface NavigationMenuItemProps extends ComponentBase {
78
+ label: string;
79
+ }
80
+ interface NavigationMenuLinkProps extends Omit<ComponentBase, 'children'> {
81
+ href: string;
82
+ label: string;
83
+ description?: string;
84
+ children?: React.ReactNode | ((opts: RAC.MenuItemRenderProps) => React.ReactNode);
85
+ }
86
+ type NavigationMenuComponent = CompoundComponent<ComponentBase, {
87
+ List: React.FC<ComponentBase>;
88
+ Item: React.FC<NavigationMenuItemProps>;
89
+ Link: React.FC<NavigationMenuLinkProps>;
90
+ }>;
91
+
92
+ interface SearchDialogProps extends ComponentBase {
93
+ isOpen?: boolean;
94
+ onOpenChange?: (isOpen: boolean) => void;
95
+ }
96
+ interface SearchDialogItemProps extends Omit<RAC.ListBoxItemProps, 'children'> {
97
+ className?: string;
98
+ children: React.ReactNode;
99
+ }
100
+ interface SearchDialogItemIconProps {
101
+ isHeading?: boolean;
102
+ className?: string;
103
+ }
104
+ declare const SearchDialogRoot: ({ children, isOpen, onOpenChange, className, }: SearchDialogProps) => react_jsx_runtime.JSX.Element;
105
+ declare const SearchDialogAutocomplete: ({ children, className, onSelectionChange, ...props }: RAC.AutocompleteProps<object> & {
106
+ className?: string;
107
+ onSelectionChange?: (key: RAC.Key) => void;
108
+ }) => react_jsx_runtime.JSX.Element;
109
+ declare const SearchDialogInput: ({ className, ...props }: RAC.InputProps & {
110
+ className?: string;
111
+ }) => react_jsx_runtime.JSX.Element;
112
+ declare const SearchDialogList: ({ children, className, ...props }: RAC.ListBoxProps<object> & {
113
+ className?: string;
114
+ }) => react_jsx_runtime.JSX.Element;
115
+ declare const SearchDialogItemRoot: ({ children, className, ...props }: SearchDialogItemProps) => react_jsx_runtime.JSX.Element;
116
+ declare const SearchDialogItemIcon: ({ isHeading, className, }: SearchDialogItemIconProps) => react_jsx_runtime.JSX.Element;
117
+ declare const SearchDialogItemTitle: ({ children, className, }: ComponentBase) => react_jsx_runtime.JSX.Element;
118
+ declare const SearchDialogItemBio: ({ children, className }: ComponentBase) => react_jsx_runtime.JSX.Element;
119
+
120
+ interface TOCItemType {
121
+ title: ReactNode;
122
+ url: string;
123
+ depth: number;
124
+ _step?: number;
125
+ }
126
+ type TableOfContents = TOCItemType[];
127
+ interface TOCItemInfo {
128
+ id: string;
129
+ active: boolean;
130
+ /** last time the item is updated */
131
+ t: number;
132
+ /** currently active but not intersecting in viewport */
133
+ fallback: boolean;
134
+ original?: TOCItemType;
135
+ }
136
+ interface AnchorProviderProps {
137
+ toc: TOCItemType[];
138
+ /**
139
+ * Only accept one active item at most
140
+ * @defaultValue false
141
+ */
142
+ single?: boolean;
143
+ children?: ReactNode;
144
+ }
145
+ interface ScrollProviderProps {
146
+ /**
147
+ * Scroll into the view of container when active
148
+ */
149
+ containerRef: RefObject<HTMLElement | null>;
150
+ children?: ReactNode;
151
+ }
152
+ interface OnThisPageContentProps extends ComponentBase {
153
+ ref?: React__default.Ref<HTMLDivElement>;
154
+ scrollRef?: RefObject<HTMLElement | null>;
155
+ }
156
+ interface OnThisPageItemProps extends ComponentBase {
157
+ level?: number;
158
+ }
159
+ interface OnThisPageLinkProps extends ComponentBase {
160
+ href?: string;
161
+ active?: boolean;
162
+ onClick?: (event: React__default.MouseEvent<HTMLAnchorElement>) => void;
163
+ }
164
+ interface OnThisPageIndicatorProps extends ComponentBase {
165
+ style?: React__default.CSSProperties;
166
+ }
167
+ declare function useItems(): TOCItemInfo[];
168
+ declare function useScrollStatus(ref: RefObject<HTMLElement | null>): {
169
+ isOverflowing: boolean;
170
+ isAtBottom: boolean;
171
+ };
172
+ declare function useActiveAnchor(): string | undefined;
173
+ declare function useActiveAnchors(): string[];
174
+ /** Optional: add auto-scroll to TOC items. */
175
+ declare function ScrollProvider({ containerRef, children, }: ScrollProviderProps): react_jsx_runtime.JSX.Element;
176
+ declare function AnchorProvider({ toc, single, children, }: AnchorProviderProps): react_jsx_runtime.JSX.Element;
177
+ declare const OnThisPageRoot: ({ children, className }: ComponentBase) => react_jsx_runtime.JSX.Element;
178
+ declare const OnThisPageHeader: ({ children, className, ...props }: ComponentBase) => react_jsx_runtime.JSX.Element;
179
+ declare const OnThisPageContent: {
180
+ ({ children, className, ref, ...props }: OnThisPageContentProps): react_jsx_runtime.JSX.Element;
181
+ displayName: string;
182
+ };
183
+ declare const OnThisPageList: ({ children, className }: ComponentBase) => react_jsx_runtime.JSX.Element;
184
+ declare const OnThisPageItem: ({ level, children, className, }: OnThisPageItemProps) => react_jsx_runtime.JSX.Element;
185
+ declare const OnThisPageLink: ({ children, href, active, onClick, className, }: OnThisPageLinkProps) => react_jsx_runtime.JSX.Element;
186
+ declare const OnThisPageIndicator: ({ style, className, }: OnThisPageIndicatorProps) => react_jsx_runtime.JSX.Element;
187
+
188
+ interface PageNavProps extends ComponentBase {
189
+ to: string;
190
+ direction: 'prev' | 'next';
191
+ }
192
+ declare const PageNavRoot: ({ children, className }: ComponentBase) => react_jsx_runtime.JSX.Element;
193
+ declare const PageNavLink: ({ children, to, direction, className, }: PageNavProps) => react_jsx_runtime.JSX.Element;
194
+ declare const PageNavTitle: ({ children, className }: ComponentBase) => react_jsx_runtime.JSX.Element;
195
+ declare const PageNavDescription: ({ children, className }: ComponentBase) => react_jsx_runtime.JSX.Element;
196
+ declare const PageNavIcon: ({ children }: ComponentBase) => react_jsx_runtime.JSX.Element;
197
+
198
+ interface TabsItemProps extends ComponentBase {
199
+ id: string;
200
+ selected?: boolean;
201
+ onClick?: () => void;
202
+ onKeyDown?: (event: React.KeyboardEvent) => void;
203
+ disabled?: boolean;
204
+ }
205
+ interface TabsIndicatorProps extends ComponentBase {
206
+ style?: React.CSSProperties;
207
+ }
208
+ declare const TabsRoot: ({ children, className, ...props }: ComponentBase) => react_jsx_runtime.JSX.Element;
209
+ declare const TabsList: ({ children, className }: ComponentBase) => react_jsx_runtime.JSX.Element;
210
+ declare const TabsItem: ({ children, id, selected, className, ...props }: TabsItemProps) => react_jsx_runtime.JSX.Element;
211
+ declare const TabsContent: ({ children, className }: ComponentBase) => react_jsx_runtime.JSX.Element;
212
+ declare const TabsIndicator: ({ className, style, }: TabsIndicatorProps) => react_jsx_runtime.JSX.Element;
213
+
214
+ interface SidebarGroupProps extends ComponentBase {
215
+ title?: string;
216
+ icon?: React.ElementType;
217
+ isOpen?: boolean;
218
+ onToggle?: () => void;
219
+ }
220
+ interface SidebarLinkProps extends ComponentBase {
221
+ label: string;
222
+ href: string;
223
+ active?: boolean;
224
+ icon?: React.ElementType;
225
+ badge?: ComponentRoute['badge'];
226
+ }
227
+ declare const SidebarRoot: ({ children, className }: ComponentBase) => react_jsx_runtime.JSX.Element;
228
+ declare const SidebarGroup: ({ children, title, icon: Icon, isOpen, onToggle, className, }: SidebarGroupProps) => react_jsx_runtime.JSX.Element;
229
+ declare const SidebarGroupItem: ({ children, className }: ComponentBase) => react_jsx_runtime.JSX.Element;
230
+ declare const SidebarLink: ({ label, href, active, icon: Icon, badge, className, }: SidebarLinkProps) => react_jsx_runtime.JSX.Element;
231
+
232
+ declare const BreadcrumbsRoot: ({ children, className, ...props }: ComponentBase) => react_jsx_runtime.JSX.Element;
233
+ declare const BreadcrumbsItem: ({ children, className, ...props }: ComponentBase) => react_jsx_runtime.JSX.Element;
234
+ declare const BreadcrumbsLink: ({ children, href, className, ...props }: LinkProps & {
235
+ className?: string;
236
+ }) => react_jsx_runtime.JSX.Element;
237
+ declare const BreadcrumbsSeparator: ({ className }: ComponentBase) => react_jsx_runtime.JSX.Element;
238
+
239
+ interface ButtonGroupProps extends ComponentBase {
240
+ vertical?: boolean;
241
+ }
242
+ declare const ButtonGroup: ({ children, className, vertical, }: ButtonGroupProps) => react_jsx_runtime.JSX.Element;
243
+
244
+ interface PopoverProps extends Omit<RAC.PopoverProps, 'children'> {
245
+ children: React.ReactNode;
246
+ className?: string;
247
+ showArrow?: boolean;
248
+ }
249
+ /**
250
+ * A reusable Popover primitive with premium glassmorphism styling and smooth animations.
251
+ */
252
+ declare const Popover: ({ children, className, showArrow, ...props }: PopoverProps) => react_jsx_runtime.JSX.Element;
253
+
254
+ /**
255
+ * MenuTrigger wraps a trigger (usually a Button) and a Menu.
256
+ */
257
+ interface MenuTriggerProps extends RAC.MenuTriggerProps {
258
+ placement?: PopoverProps['placement'];
259
+ }
260
+ declare function MenuTrigger(props: MenuTriggerProps): react_jsx_runtime.JSX.Element;
261
+ /**
262
+ * SubmenuTrigger for nested menus.
263
+ */
264
+ declare function SubmenuTrigger(props: RAC.SubmenuTriggerProps): react_jsx_runtime.JSX.Element;
265
+ /**
266
+ * The Menu container.
267
+ */
268
+ declare function Menu<T extends object>(props: RAC.MenuProps<T>): react_jsx_runtime.JSX.Element;
269
+ /**
270
+ * MenuItem with support for selection states and submenus.
271
+ */
272
+ declare function MenuItem(props: RAC.MenuItemProps): react_jsx_runtime.JSX.Element;
273
+ /**
274
+ * MenuSection for grouping items with an optional header.
275
+ */
276
+ interface MenuSectionProps<T> extends RAC.MenuSectionProps<T> {
277
+ title?: string;
278
+ }
279
+ declare function MenuSection<T extends object>({ title, ...props }: MenuSectionProps<T>): react_jsx_runtime.JSX.Element;
280
+ /**
281
+ * MenuSeparator for visual division.
282
+ */
283
+ declare function MenuSeparator(props: RAC.SeparatorProps): react_jsx_runtime.JSX.Element;
284
+
285
+ interface TooltipProps extends Omit<RAC.TooltipProps, 'children'> {
286
+ /** The content to show inside the tooltip */
287
+ content: ReactNode;
288
+ /** The trigger element (usually a button or link) */
289
+ children: React.ReactElement;
290
+ /** Delay in milliseconds before showing the tooltip */
291
+ delay?: number;
292
+ /** Delay in milliseconds before hiding the tooltip */
293
+ closeDelay?: number;
294
+ }
295
+ interface TooltipContentProps extends RAC.TooltipProps {
296
+ }
297
+ declare const Tooltip: ({ content, children, delay, closeDelay, ...props }: TooltipProps) => react_jsx_runtime.JSX.Element;
298
+
299
+ declare function cn(...inputs: ClassValue[]): string;
300
+
301
+ export { AnchorProvider, type AnchorProviderProps, BreadcrumbsItem, BreadcrumbsLink, BreadcrumbsRoot, BreadcrumbsSeparator, ButtonGroup, type ButtonGroupProps, Icon, Menu, MenuItem, MenuSection, type MenuSectionProps, MenuSeparator, MenuTrigger, type MenuTriggerProps, NavbarCenter, NavbarContent, NavbarItem, type NavbarItemProps, NavbarLeft, NavbarLink, type NavbarLinkProps, NavbarLinks, NavbarLogo, type NavbarLogoProps, NavbarMenu, type NavbarMenuProps, NavbarRight, NavbarRoot, NavbarSearchTrigger, type NavbarSearchTriggerProps, NavbarSocials, type NavbarSocialsProps, NavbarSplit, NavbarTheme, type NavbarThemeProps, NavbarTitle, type NavbarVersionProps, type NavigationMenuComponent, type NavigationMenuItemProps, type NavigationMenuLinkProps, OnThisPageContent, type OnThisPageContentProps, OnThisPageHeader, OnThisPageIndicator, type OnThisPageIndicatorProps, OnThisPageItem, type OnThisPageItemProps, OnThisPageLink, type OnThisPageLinkProps, OnThisPageList, OnThisPageRoot, PageNavDescription, PageNavIcon, PageNavLink, type PageNavProps, PageNavRoot, PageNavTitle, Popover, type PopoverProps, ScrollProvider, type ScrollProviderProps, SearchDialogAutocomplete, SearchDialogInput, SearchDialogItemBio, SearchDialogItemIcon, type SearchDialogItemIconProps, type SearchDialogItemProps, SearchDialogItemRoot, SearchDialogItemTitle, SearchDialogList, type SearchDialogProps, SearchDialogRoot, SidebarGroup, SidebarGroupItem, type SidebarGroupProps, SidebarLink, type SidebarLinkProps, SidebarRoot, SubmenuTrigger, type TOCItemInfo, type TOCItemType, type TableOfContents, TabsContent, TabsIndicator, type TabsIndicatorProps, TabsItem, type TabsItemProps, TabsList, TabsRoot, Tooltip, type TooltipContentProps, type TooltipProps, cn, useActiveAnchor, useActiveAnchors, useItems, useScrollStatus };